Model 4 Micro Labs Grafyx Solution Hires Board [Documentation summarized by Mark McDougall] The Grafyx Solution contains 153,600 bits of memory, each of which corresponds to one dot position on the 640x240 hi-resolution screen. This memory is provided by ten 2Kx8 (20K) static RAM chips. In the Model 4 version of the board, the graphics memory is accessed via 4 ports. According to the documentation, the Model 3 version is memory mapped, but I have no further details on that. Also, the Radio Shack board is compatible with the Model 4 version, so all software that runs on this should also run on the RS board. A summary of operation The board operates in one of 3 modes Normal (text only) mode, ie. the board is disabled Graphics only mode, where the normal text screen is disabled Mixed mode, where the graphics and text screens are overlayed There are 2 available graphics modes, 512x192 and 640x240 which correspond to the Model III and Model IV text modes respectively. If you're using the M4 in 'Model III' mode and overlaying graphics and text, you can only place the board into 512x192 mode, and similarly only 640x240 if in Model IV mode. Graphics are accessed by placing values into the X and Y registers (detailed below) and writing an 8-bit value to the graphics data register. The 8-bit value written to this data register corresponds to 8 adjacent bits on a line of the display. Thus, the X coordinate register specifies the coordiinate of the BYTE rather than the pixel. The origin is at the upper left corner of the display. Following are the details of the port assignments: 128 - X coordinate This write-only port accepts values 0-79 (0-63 in M3 mode). This register is the X coordinate of the BYTE (8 pixels) for the subsequent read/write operation. ie. this is the pixel coordinate DIVIDED by 8. 129 - Y coordinate This write-only port accepts values 0-239 (0-511 in M3 mode). This register is the Y coordinate of the (8) pixels for the subsequent read/write operation. 130 - Graphics data register This read/write port controls the state of 8 adjacent pixels on the graphics display. The MSB corresponds to the left-most pixel in the byte, the LSB the right-most. Note that reading this register will return the current state of the pixels addressed by the X and Y registers. 131 - Mode register This write-only register controls the graphics mode. Bit assignments are as follows :- Bit Definition 0 graphics / alpha* 1 640 x 240 / 512 x 192* 2 X register dec / inc 1 selects dec 3 Y register dec / inc 1 selects dec 4 X clock on read 0 clocks after read 5 Y clock on read 0 clocks after read 6 X clock on write 0 clocks after write 7 Y clock on write 0 clocks after write * out 131,252; normal display without hi-res out 131,253; hires 640x240 / 512x192 with text overlay out 131,255; hires 640x240 with text screen turned off The definitions for bits 0,1 are a little confusing. The above is straight from the manual. It doesn't quite gel with the definitions - at least not for me! The remaining bits control the auto-increment and auto-decrement modes of the coordinate registers. The registers are inc/decremented after a read/write operation on the data register (130). When the board is operating in overlay mode, the graphics and text screens are XORed together. eg. by filling the entire graphics screen you get an inverted text display. It should also be fairly obvious that the graphics screen will not scroll with the text screen. On power-up the mode register is initialised to zero, disabling the hires display but also selecting auto-increment on every operation. The graphics memory contains random data on power-up. The contents of the graphics screen are NOT affected by a RESET. For Tim I /think/ this is enough information to allow you to implement the emulation of the hires board. As you can see, it should be a fairly trivial task. I guess you could implement it as either another bit-plane (and set up the pallete to produce an XORed display) or simply add the graphics data as you copy the characters to the window!?! I can send you some software for the board so that you can test your implementation. I have the Micro Labs extended graphics basic and various other software. Just let me know if you'd like me to forward it onto you. I'm off OS on Saturday for 3 weeks or so (actually headed over your way) so you'll need to catch me fairly soon if you feel anything's missing from the specs.