alex_79 Posted January 18, 2015 Share Posted January 18, 2015 (edited) For those who don't know, Commavid's Magicard is a cartridge (initially only sold as a bare board without a case) that allowed to write programs in machine code on the 2600. It has 1Kb of RAM, a 2Kb Monitor program in rom which allows to enter programs using two keyboard controllers and, by building an interface described in the manual, to save and load them using a tape recorder. There are subroutines in the rom to easily generate a 40x42 pixel graphic display, or 7 lines of text with 10 characters each. A reduced ascii charset was also stored in rom. The monitor includes a simple disassembler, an hex dump of memory and a function to calculate relative addresses for branch instructions on the fly. I learned a bit of assembly after joining AtariAge and discovering the homebrew scene. From that I also became interested in the early microcomputers like the KIM-1 or the Cosmac ELF, and got fascinated by Commavid's Magicard which shares a lot of similarities with them. At the time I first discover it, the repros were already out of productions and the original was (and still is) rare and way too expensive for me, so the only way I could try it out was through emulation. I remapped the keyboard controllers in Stella so that they are layed out next to each other and attached little labels on a spare keyboard to make it easy to use. I downloaded and printed the scans of the Manual available here on AtariAge, tried programming it and I LOVED it! Later I disassembled the code (that wasn't too hard, because the monitor is described in detail in the manual, including ram usage and address and function of every subroutine) and I hacked it to work on a supercharger. The hack was a little buggy but it worked and I could run all of the example programs on the manual (with some screen roll due to the slow access to supercharger RAM). With the advent of the Harmony cart, I could finally run the original bankswitch scheme on real hardware and I started again working on it. I made a Pal version and a slighty enanched version with a few bugfixes. Here they are if anyone is interested (Although I'm probably the only one... ) ------------------------------------------------PAL conversion: magicard.asm Magicard_PAL_conversion.bin Like the original but with color correction and 50Hz display (without black bars on top and bottom of the image: the display is actually stretched to fill the screen, so the aspect ratio is the same as on the NTSC version). Here is a pdf version of the manual and overlays for the keyboard controllers you can print Magicard_Manual.pdf Magicard_Overlays.pdf ----------------------------------------------------------Magicard+: magicard+_WIP_NTSC.bin magicard+_WIP_PAL.bin changes: - Fixed "JSR" addressing mode in disassembler (The original lists it as "absolute Y", instead of "Absolute". There's a note on chapter 4.3 of the manual) - Different font - RIOT RAM $A2 to $A9 isn't zeroed anymore upon reset. - Debounced RESET switch - The left four digits are now blanked while typing hex codes (The original shows garbage data instead) - "Unshifted" and "Shifted" mode (see Chapter 4) are now indicated by a different background color - Using of "Fetch", "Hex dump" and "Disassembly" functions in write area doesn't cause unwanted writes anymore. I couldn't make the cassette interface to work with any tape recorder, computer soundcard, mp3 player or anything else. I think old tape recorders used stronger audio levels and I'm not able to design a new interface that can work with modern devices. That's the main reason I left it in WIP state. If someone will come up with a functioning interface maybe I'll start working on it again and add some other features I had in mind. Edited November 20, 2022 by alex_79 7 Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.