Well, I just started playing with 7800 programming and it seems somewhat interesting. Haven't really figured out what to do, though. I've been thinking it might be interesting to see if I can manage a missile defense or area-filling game using only the 4K of internal RAM. The location of the zero-page and stack shadows is nuisancesome, but I have a kernel that seems like it should work for 128x96x4 colors with some cycles left over for a few overlay objects. The bitmap is stored linearly at
I've managed to patch version 2.13 of Z26 to support 4A50 bank switching. I've sent the code to Eckhard for his approval; if he likes it, I should be able to release it. It auto-assumes that a 64K or 128K file is 4A50 format, and includes bank-switches in the log file. For example (left columns elided)
nvbdIZC 8c 11 00 f1 b8a6: 0c 44 6e nop 6e44 (*BANKS 22000/1E000/1C100*)
nvbdIZC 8c 11 00 f1 b8a9: 4c 89 b7 jmp b789
nvbdIZC 8c 11 00 f1 b789: 85 02 sta WSYNC
nvbdIZC 8c 11 00 f1
Here's a rough banking file to run 4A50-format banking on the CC2, along with a little test program. The banking file has a slight bug which this program works around. In particular, the hotspots at $7Fxx don't work unless they are immediately preceded by a read operation which fetches a value $60-$6F (should be $60-$7F). It's possible to work around this this by banking a page full of the value $60 into address $1Exx, and then using "LDA $1EFF,Y" to do the read (with a Y value one higher tha
I'm just about done with 4A50 EEPROM access. I'm a bit surprised by how zippy the EEPROM code can be with a fairly small amount of logic to support it.The biggest limitation is that the EEPROM code must be located in $0000-$3FFF of RAM, $0000-$3FFF of flash, or $8000-$BFFF of flash. Accessing RAM from $4000-$7FFF or ROM from $C000-$FFFF will disrupt EEPROM access.Otherwise, the code that I was expecting to be a real pain in the tusch is actually pretty compact, though it is of necessity split
It's been awhile since I've posted about the 4A50 cart, so many people may be thinking it's been abandoned. It actually still is a work in progress, despite some "shiny object syndrome" that resulted in things like Strat-O-Gems.I worked awhile ago with Chad Schell to produce some VHDL for 4A50 and unfortunately did not have time then to diagnose it other than to determine that something didn't work. Hopefully within the next few days I'll be able to diagnose exactly what it IS doing and take t
I haven't gone into much detail elsewhere about the 4A50 cart and some of the techniques it uses, but since people may find it interesting I'll discuss it here.The heart of the cartridge is a Xilinx CPLD. This device has 36 macrocells connected to 32 I/O pins. While it's a step up from the 22V10 used in Al's bankswitch carts, it's still very cheap as such devices go.Another key to the cartridge is a 14.31818Mhz oscillator. Although many RAM-plus carts get by with some simple RC circuitry for
Although I may still make a couple more tweaks, I would say that anyone with a Cuttle Cart 2 can now safely start development on 4A50-based projects. Use the banking file in the previous blog entry.I don't yet have EEPROM support in the CPLD, but expect that I will soon. I have in-circuit programming working for DOS-based PC's with printer ports. On a Compaq Presario 2100 (booting DOS off floppy and running off a RAMdisk) it takes 38 seconds to program and verify the Archon demo in the previo
This is some very rough test code for a 13-character text display with Chimera.
(edit)Removed a vestigial 'include' and a couple of vestigial macro invocations.