So I built Lee Hart’s slick little 1802 Membership Card and its Front Panel card. Next I wanted to load some programs onto it! There was that nice DB-25 connector all ready to connect to my PC’s parallel port. However… I’ve got a Mac, and haven’t seen a computer parallel port in perhaps a decade.
My solution to this problem was to create my own interface hardware based on an Arduino. I considered using a Spark Core to allow doing things wirelessly via WiFi, but decided that for this purpose the Arduino was something more people were likely to have, and it was just a somewhat simpler solution.
The final design uses an Arduino, a 16-line I2C port expander chip, and some software. The software consists of the Arduino program and a Python program that runs on my Mac. Since it’s Python, it should also run on a Windows system, a Linux box, etc.
You can also forego the Python side of things and directly control the Arduino loader from a terminal, or from your own software if you prefer.
Why go to all this trouble? Just a fun little project!
It’s been a good mental exercise and a nice trip down memory lane.
Here is the Git repository with the source code and documentation: Ā https://github.com/donmeyer/membership-card
Ā
Coming up next – an 1802 Emulator
Nice work. “Coming up next ā an 1802 Emulator”.
What kind of an emulator?
There are many emulators and simulators around.
http://www.donnelly-house.net/programming/cdp1802/simelf/
Wow, very cool simulator on your site.
The emulator I’m working on is for the Mac and mainly designed to let me run FIG-Forth. Will probably never be very polished, but I do plan to release the source and maybe a binary at some point.
I have seen several of the very well-done emulators out there, so I don’t think mine brings much to the party. Written as much as a fun exercise as anything. š
Just for your information, non-backwards compatible changes has been implemented in the python bincopy module with the intention to make it easier to use. A few minor changes to mcard.py are required to make it work with the latest version.
File File class has been renamed to BinFile and the add_xxx() functions does not take a file like object as argument, but a string instead. There are new add_xxx_file()-functions that takes a filename as argument.
Documentation: http://bincopy.readthedocs.io/en/latest/
Sorry for the inconvenience.
Erik, thanks for the info. I’ll add making those updates to my to-do list. And thanks for such a useful module!
Changes needed for the new bincopy version have been made. Nice API changes IMHO – I got to eliminate some code! š