[Coco] CoCo 2 16k.. Upgrade or no?
William Astle
lost at l-w.ca
Wed Mar 14 18:09:20 EDT 2012
On 12-03-14 03:52 PM, Darren A wrote:
> On Wed, Mar 14, 2012 at 3:44 PM, William Astle<lost at l-w.ca> wrote:
>>
>> There's still a wasted byte related to setting the top of the stack pointer.
>> When it sets S, it should set it to the address of the last free byte of RAM
>> plus one rather than to the last free byte of RAM since pushing onto the
>> stack is a pre-decrement operation. (In other words, the stack pointer
>> should start out pointing to the lowest address byte of string space.)
>>
>>
>
> I always figured that the reason Color Basic has the one wasted byte
> is because of an oversight when the code was adapted from the 6800
> version of Microsoft Basic. The 6800 has a post-decrementing stack
> pointer. The ROM code in the MC-10 works the same way, but because it
> has a 6803 cpu, it needs to initialize the stack pointer to point at
> the last byte of RAM rather than just past it.
Could be. Seeing some of the excessively clever code in the Color Basic
ROM, there was no doubt no brain power left over for simple things like
the stack pointer.
There are some interesting bugs, too. For instance, you can put spaces
in the middle of numbers. So, "1 2 . 5 2" parses as "12.52".
This works even in line numbers. At least it isn't quite so pathological
as apple basic where you could put spaces in the middle of keywords.
More information about the Coco
mailing list