mark@unisec.usi.com (Mark Rinfret) (05/24/87)
Let me start with an apology. As Frank Prindle stated, I really should
not have posted all of the stuff I did to comp.sys.cbm. I underestimated
the total size of everything and I forgot to consider sites
that are probably overwhelmed by large amounts of traffic from unexpected
sources (read: groups). Also, I 'hang out' in comp.sys.amiga where it is
customary (though possibly inappropriate) to post sources, executables, etc.
directly to that group. I'm sorry if I caused anyone (besides Frank) to
break into a new pack of Rolaids.
Now, with regards to compiling the assembler and ra on Unix, my recommendation
is this: DON'T! At least, don't expect to succeed without some pain. After
several bug reports came back, I tried it myself for the first time (the Unix
additions were not mine) and failed miserably. A couple of nasty bugs also
surfaced which are not revealed by C-Power (this stuff DOES WORK when compiled
and linked under C-Power on the C64!). There are some diffs at the end of
this message that should be applied to the module assm5.c to correct some
structure reference errors.
Apparently, C-Power lets you misuse structure member (element?) names
across structure definitions. That is, a member name from one structure
can be applied to another. For instance, the following is possible:
typedef structure xyz {
structure xyz *next;
blah.blah.blah
} xyzrec;
typedef structure abc {
structure abc *abc_next;
blah.blah.blah
} abcrec;
abcrec *ptr;
ptr = ptr->next; /* should be abc_next */
This is all well and good as long as the member offsets are the same. When
I discovered this problem, I went back through the source and "uniqified"
most of the member names - looks like I forgot a few.
Another problem that arises when compiling on Unix has to do with some
unfortunate implementation dependencies built (not designed) into C-ASSM.
On C-Power, int, unsigned, pointer, are all 16 bits. There are at least
a couple of cases where this will cause problems on Unix machines having
32 bit pointers. Also, the C-Power include file <strings.h> may have a
different name on other systems (<string.h> on SYSV here). The module
openfile.c should not be included in the Unix-based version. Unless you
really want the ability to do cross-development on Unix, I'd recommend
that you forget it. I may move the stuff over to my Amiga and work out the
kinks, but I'm not promising any support.
To those of you who sent me mail regarding C-ASSM, RA and MRterm, thanks
for your feedback. I attempted to respond to your messages but it appears
that our mailer is brain-damaged at the moment. One last note on C-Power:
About a week ago, I read a message from Steve Punter on ProLine's BBS
(416-276-6811) stating that Spinnaker Software (address unknown) had taken
over sales (and marketing?) of C-Power. For those of you wanting to play
with C on your C64 or 64C computer, this is a dandy little development
system.
# The following diffs should be applied to C-ASSM source module assm5.c.
# A bug in C-Power (revealed by compiling on Unix) allows use of illegal
# structure member names.
148c148
< nxtptr = ptr->next;
---
> nxtptr = ptr->ext_next;
182c182
< nxtptr = ptr->next;
---
> nxtptr = ptr->ext_next;
213a214
> char *malloc();
--
| Mark R. Rinfret, SofTech, Inc. mark@unisec.usi.com |
| Guest of UniSecure Systems, Inc., Newport, RI |
| UUCP: {gatech|mirror|cbosgd|uiucdcs|ihnp4}!rayssd!unisec!mark |
| work: (401)-849-4174 home: (401)-846-7639 |