[Coco] Questions on CoCo 3 graphics
keeper63 at cox.net
Sun Jan 20 23:16:02 EST 2008
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
-- Andrew L. Ayers
More information about the Coco