[Coco] Coco Digest, Vol 49, Issue 20
Gene Heskett
gene.heskett at verizon.net
Mon Aug 6 00:17:25 EDT 2007
On Sunday 05 August 2007, Paul Fitch wrote:
>> From: Gene Heskett <gene.heskett at verizon.net>
>> Subject: Re: [Coco] c.pass1 and Nitros9 6309 v030206
>> To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
>> Message-ID: <200708052145.54374.gene.heskett at verizon.net>
>> Content-Type: text/plain; charset=iso-8859-1
>>
>> On Sunday 05 August 2007, Paul Fitch wrote:
>> >I'm seeing some odd behavior here. I'm compiling Rick Adams
>>
>> CC2 with the
>>
>> >stock CC1 patched for /dd. I also patched c.prep for /dd.
>> >I made changes to Ricks CC2 so that it would use RMA and
>>
>> RLINK once it was
>>
>> >compiled, but I'm letting c.asm and c.link do the work the first time
>> >through.
>> >
>> >
>> >I type in "cc1 cc2.c" and the compile crashes almost immediately. It
>> >crashes under both VCC and MESS104. When I say crash, I
>>
>> don't mean it
>>
>> >errors out, I mean my screen gets filled with all sorts of
>>
>> trash and I have
>>
>> >to hard reset and reboot.
>> >
>> >Now, cc1 does appear to run OK. The following files are
>>
>> generated c.com,
>>
>> >ctmp.3.m and ctmp.3.i.
>> >C.com looks likes a batch file to do the compile, and
>>
>> ctmp.3.m looks like
>>
>> >cc2.c without all the pretty formatting. Ctmp.3.i is a 0
>>
>> length file.
>>
>> >Just before the compile crashes I can see that cc1 and
>>
>> c.prep are completed,
>>
>> >and c.pass1 starts. Then everybody dies.
>> >
>> >So, for suspects I have the following:
>> >1) something in the emulation doesn't like c.pass1 <--- Not
>>
>> very likely
>>
>> >considering all the other software that runs happily under emulation.
>> >2) something in c.pass1 doesn't like the 6309, but to stomp
>>
>> all over the
>>
>> >operating system like it does, it would have to me something
>>
>> major I'm sure
>>
>> >I'd have heard about before now.
>> >3) something in c.pass1 doesn't like Nitros9. Same response as #2.
>> >
>> >Any thoughts?
>>
>> Yes, this is one of the classic (if it quacks its probably a
>> duck) symptoms of
>> the src file being too big for the original c.prep. It
>> generates code that
>> falls over once the src file exceeds about 8k-12k, depending
>> on how many vars
>> it has to track. I also believe its 'scope' of memory for
>> these vars is
>> broken but never really tried to test it specifically for that.
>>
>> Replace it with the c.prep in c.prep19.lzh. (see
>> os9archive.rtsi.com) I hope
>> and think this will fix it for you.
>>
>> Scopewise, the version I sort of inherited from Matthew
>> (Thompson?, he of
>> scsisys fame) purportedly had the scope problems fixed, so
>> the expansions I
>> did in the next 3 releases concentrated on allowing it to use
>> more memory for
>> var storage, which in turn allowed it to handle larger
>> collations of src. It
>> is after all, c.preps job to not only #include all the header
>> files into its
>> output stream, and to insert all the #define 'var's in the
>> right places by
>> substitution in the output stream data, but to keep track of
>> all the vars
>> used.
>>
>> Yes, I had a hand in that code, and it was the difference
>> between being able
>> to build the rz/sz you may be using for file transfers, or building a
>> crash-o-matic. That src code totals about 34k IIRC for each
>> of rz and sz.
>>
>> --
>> Cheers, Gene
>> "There are four boxes to be used in defense of liberty:
>> soap, ballot, jury, and ammo. Please use in that order."
>> -Ed Howdershelt (Author)
>> When angry, count four; when very angry, swear.
>
>Tried that Gene, no go. But, I think you misread my post.
Possibly. I at first read it as the finished program crashed, which is the
trademark of the original c.prep.
>C.prep isn't
>dying, c.pass1 is. And somehow, VCC and MESS are crashing. Or rather the
>emulation is.
Its possible c.prep could generate something that c.pass1 (or c.comp) might
get upset over, but that's not a condition I ever triggered.
>Under VCC I can watch the disk reads and writes during the c.prep phase.
>Seems to be working. Then c.pass1 starts, the disk goes idle, and then
>(this is weird) the reported cpu speed drops to .89Mhz from 1.7Mhz, and the
>computer is now locked up.
>
>I've run just the following line, and it crashed the VCC and MESS emulations
>of the COCO36309 everytime:
>
>c.pass1 ctmp.3.m -o=ctmp.3.i
>
>ctmp.3.m has a bytecount of 142b
>cc2.c has a bytecount of 1e85
ctmp.3.m _should_ be nothing more nor less than the input src stream with the
includes & defines etc all merged in the order encountered, with defined
substitutions for var name values. I don't think it should contain any
non-printable characters other than the EOL (chr$(13)) unless there are
#defines in the src for them as constants or that sort of thing. In other
words, that file should be human readable. Is it?
>Somehow, I don't think it's a file size thing.
No, at $142b, that's pretty small to trigger c.prep19's more or less silent
buffer overflow.
--
Cheers, Gene
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Established technology tends to persist in the face of new technology.
-- G. Blaauw, one of the designers of System 360
More information about the Coco
mailing list