[Coco] replacing main rom

William Astle lost at l-w.ca
Wed May 11 23:06:44 EDT 2005


Hmmm. I need to actually read what I'm replying to more carefully in 
future. I managed to miss the word "cursor" in what I replied to. Ooops. 
In any event:

jdaggett at gate.net wrote:
> William
> 
> The Coco 3 was the first of the Cocos to have attributes for the text 
> characters. Bit 7 of the attribute byte controls character blink at a 
> half second interval. Clearing and setting that bit controls the 
> character blink attribute as long as the COCO bit of INIT0 is 
> cleared. If set then the attributes are not functional. 

Yup. I knew all of that.

> The cursor blink is done in the basic rom as far as I can tell. Looking 
> through the unravelled series I have yet to see where the IEN and 
> FEN bits of INIT0 are set. That means in normal startup the Coco3 
> is useing the IRQs from the PIA chips. 

This is, indeed, correct. The basic ROM in the Coco3 does not use the 
GIME interrupts. Probably for compatibility reasons.

> It is my contention that the character blink attribute is either used by 
> other programs. I also do not believe that the timer is used, instead 
> there is another internal timer that is used to determine character 
> blink interval. This timer has as its input the vertical rate of 59.94 
> Hz. Count to 30 and you have about one half second. So the 
> character attiribute is flipped every 30 vertical frames. 

Someone else already pointed out that you can demonstrate that the 
character blink rate is determined by the timer. The timer itself has 
two possible input frequencies which correspond to the vertical and 
horizontal syncs (IIRC).

The cursor blink is done in the "console in" routine which is "patched" 
by Super Extended basic to handle blinking the cursor on the hires text 
screen. It doesn't do anything so clever as count interrupts or anything 
like that to blink the cursor. IIRC it's merely Y times through the 
"wait for a keypress" loop then flip the cursor. Lather, rinse, repeat. 
Just like on the 32 column screen, just with only 2 states. You can 
demonstrate that it doesn't count interrupts or anything so clever by 
switching to high speed mode and you'll see the cursor blink rate doubles.


-- 
William Astle
finger lost at l-w.ca for further information

Geek Code V3.12: GCS/M/S d- s+:+ !a C++ UL++++$ P++ L+++ !E W++ !N w---
!D !M PS PE V-- Y+ PGP t+@ 5++ X !R tv+@ b+++@ !DI D? G e++ h+ y?



More information about the Coco mailing list