Years ago, I outlined interfacing the F18A, a TMS9918A Video Display Processor (VDP) clone with VGA output, to the Apple II. I never followed through, but somebody on the AtariAge forum recently completed a design and released a PCB. The “AppleTi” board is a functional clone of the E-Z Color Graphics Interface. The AppleTi board only supports the F18A, not the original TM9918A, and is the simplest interface possible with only a single 74LS00 NAND package generating read/write control signals.
The VDP interfaces to the 6502 via two memory-mapped byte-sized registers selected with the MODE pin. The AppleTi interface connects MODE to the Apple’s A0 address signal. Combined with the “DEVICE SELECT” decoding on the Apple II motherboard, this design shadows the VDP registers across the 16 byte slot-specific address space ($C0n0 – $C0nF where n is the slot number plus 8).
The practical consequence is that the AppleTi is mostly-kind-of-sort-of compatible with software written for the Synetix SuperSprite and Third Millennium Engineering Arcade Board. I say “mostly-kind-of-sort-of” because code that accesses the VDP is compatible but code that expects sound or video switch hardware won’t work. Most of the sample code from Synetix and Third Millennium won’t work. For the software that does work, there is minor VDP screen corruption from sound and video switch initialization attempts. However, despite these limitations, the AMPARCADE library from Third Millennium and the StarSprite library from Synetix do function well enough to be useful with the AppleTi/F18A board.
At KansasFest 2016, I shared an introduction to the VDP, AppleTi, and programming the board with the AMPARCADE library.
- VIDEO: Please watch my presentation here. Thank Mr. Jason Scott for recording and uploading the video.
- SOFTWARE: The disk image I used, complete with the AMPARCADE library patched for ProDOS (run /SPRITE/AMPLOAD), the presentation slides as an AppleSoft program using the VDP for video (run /KFEST.VDP/PRESENT), and the simple game created during the presentation (run /KFEST.VDP/GAME), is available here. I also suggest Convert9918, a tool for creating mode 2 bitmaps, and Magellan, a tool for creating patterns, sprites, and name tables.
- DOCUMENTATION: I reversed engineered AMPARCADE, and partial preliminary documentation is available here.
Over the next month, I hope to create a series of posts with a tutorial introduction to VDP programming.