[Coco] Questions on CoCo 3 graphics

Andrew keeper63 at cox.net
Sun Jan 20 23:16:02 EST 2008


All,

I have a few questions regarding CoCo 3 graphics modes and such, using 
Disk Extended Basic - that I want to run by everyone to see what they 
think. The responses I get may come in handy in the future, if I get 
around to playing with something I thought may be useful to others:

1. First off - does anyone know if it is possible to have more than one 
320x200x16 color screen in memory on a 128K CoCo 3? I assume that such a 
thing would be easily possible on a 512K or higher machine.

2. Is is possible - and more importantly, how - to have two such screens 
in memory (on a stock 128K machine), and be able to cause DECB to 
redirect the graphics commands (ie, HLINE, HCIRCLE, etc) to this 
"hidden" page, then "flip" it forward? Even if it required a small bit 
of assembler, that is OK.

3. Basically, I want to do page flipping (and double buffered graphics) 
on a normal 128K CoCo 3 - however, I am not sure if it can be done in 
the memory map as shown (it seems like there isn't another contiguous 
32K segment of memory in the map - is this right or wrong?

4. Is it possible to instead set up a pair of 256x200x16 color screen 
(using the GIME registers), and then use DECB along with some assembler 
routines to access/display them (in other words, create custom line, 
circle, get/put routines)?

5. If none of this is possible - would it be better to create fast 
blitting routines in assembler, and blit/redraw the graphics as needed 
(dirty rectangle, maybe?) during the vblank interval? I think this is 
what rogers butterfly game is doing?

6. Am I expecting too much out of DECB? I am not expecting blazing 
framerates, but even one frame per second with 2-3 sprites could be 
useful...? I am also thinking about doing this under CBASIC-3 (from 
Cer-Comp) - IIRC, it allowed inline assembler.

7. Is the only way possible on a 128K CoCo 3 would be to overwrite BASIC 
(since we're in all-ram mode)? Can I overwrite only a "non-essential" 
portion of BASIC in order to get the extra graphics screen in place?

Basically - a long time ago I wrote a library for 
QuickBasic/QBasic/PowerBasic called "The Blast! Library" - and I would 
like to replicate it in some small manner (probably couldn't recreate 
all of the functions I had) on the CoCo 3 - hopefully a 128K CoCo 3. It 
basically handled sprites and such with double-buffering in the 
320x200x256 color mode (VGA mode 13h). It would be nice to do something 
similar under DECB on the CoCo 3.

Does anybody know of sample code or articles or something that can show 
me how to access and control the CoCo 3 graphics modes properly, both in 
DECB (ok - techinically I know there is the word "Super" in there) 
and/or in assembler? I have seen such articles in the Rainbow (from my 
collection) for the regular PMODEs for the CoCo 2, but not much, if 
anything, for the CoCo 3.

Thank you for any responses - like I said, I don't know if I will get 
around to this project, but I am interested in trying such a thing in 
the future.

-- Andrew L. Ayers
    Glendale, Arizona



More information about the Coco mailing list