VOGONS


First post, by usotsuki

User metadata
Rank Newbie
Rank
Newbie

The reasons I'd want to do this are very odd and don't actually have anything to do with using a PC as a PC, so bear with me. 😉

What I'm trying to do is this: For the Apple ][ line there is an emulator card with pretty much a full XT on board, and I'm wondering if I can use the CGA without using the XT, since apparently the CGA registers and the 8086 memory are addressable from the 6502 side.

So as to not require setting up the V30 environment, I wouldn't have BIOS available to me, and would have to set up the CGA entirely from the 6502, by accessing the CGA ports from the 6502 side.

Reply 1 of 3, by Scali

User metadata
Rank l33t
Rank
l33t

If you get full access to the CGA's registers (the 6845, mode control, color-select and status register), it should be quite straightforward to initialize the CGA card.
You can find the correct register values for each mode in the manual: minuszerodegrees.net/oa/OA%20-%20IBM%20 ... 0(CGA).pdf
Just write them to the card, and that's it.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 2 of 3, by usotsuki

User metadata
Rank Newbie
Rank
Newbie

The documentation I'm using says that the equivalent of "3D0/3D2/3D4/3D6" is available at "CF2C", the equivalent of "3D1/3D3/3D5/3D7" at "CF2D", to access the 6845; and "mode select (port 3D8)" at CF2E and "color select (port 3D9)" at CF2F, also providing a window to access the XT's memory. It also says:

C832: current CGA mode index, used by 6502 @ $6869 to setup 6845, or 6845 reg index
C833: 6845 data to write in the case where C832 is the reg index rather than a mode offset

(I assume "$6869" refers to an address in the program usually used to initialize the XT card.)

The software that initializes the card into booting DOS off a disk is definitely able to initialize the CGA itself, and displays a splash screen, I believe, from the 6502 side before activating the V30.

Reply 3 of 3, by Arbee

User metadata
Rank Newbie
Rank
Newbie

Keep in mind the usual rules for $C800 arbitration apply: you should access $CFFF to clear all cards from accessing it and then access $Cs00 where s is the slot number. At that point the $C800-$CFFE stuff for the PC Transporter is valid. Also, the Transporter's CGA is not quite standard: it programs 6845 settings which would cause extreme weirdness on a real card.