Hello,The TMS9918A is a CRT controller chip which has text and 16 colors graphic capabilities. The controller can manage up to 16 Kb of dynamic RAM and outputs NTSC video signal. The chip has even an NTSC composite input and sync to it, making it possible to cascade controllers or another video source. Graphics are created by defining 8x8 or 16x16 pixel arrays and positionning them on a 192x256 pixel plane. The small pixel arrays are called sprites and up to 32 sprites can be defined. Each sprite has its own priority (0=lowest, 31=highest) so highest priority sprites will mask lower priority sprites when overlapping thus giving some sort of 3D effect. Programming the chip is done trough a set of 16 8-bit registers. Video memory cannot be accessed directly. Memory access is fastest during TV vertical retrace. An interrupt can be generated to signal the beginning of that period. It is an old controller (circa 1982), maybe an ancestor of today's 2D accelerated cards and Amiga chips. It was used in TI-99 home computer. I want to evaluate its performances and maybe use it to simulate some electronic flight instrument for a homebrewed simulator (with a low-res flat-panel display), or some home automation controller project. I'm not sure yet.
You're right about $C050. Results would be funny as bank 0 is reserved for stack and direct pages on the GS. Turning on HGR would show random noise patterns at best :). I just got a copy of "Exploring the Apple 2GS" by Gary B. Little. That book helps a lot figuring what's inside a GS. I'll keep everyone posted about my findings.
Cheers, Yves David Empson wrote:
Yves McDonald <""yves.mcdonald\"@NO SPAM sympatico.ca> wrote:Ok, the situation so far is: a) i/o address is located in first 64 kb memory segment in GS memory mapThey are also in the $01Cxxx, $E0xxxx and $E1xxxx areas, but $00Cxxx is the easiest area to deal with it because the numbers will be the same as the (unsigned version of the) Applesoft BASIC PEEK and POKE addresses.b) a byte pointer could be used to access I/O address, thanks to ORCA Pascal pointer arithmetics.
(snip!)
To write a GS/OS device driver for TI chip, I will have to go deep into GS system programming.What does this chip do? I see you mentioned "sprite card" in the original posting, but some more information would be helpful.The first test I will try is to tick the speaker at $C050 in a delay loop to see if it actually works.You won't get very far if you access $C050 - it will turn on graphics mode (assuming you are initially in text mode). Try $C030 instead. :-)