14 hours ago •
I added a link to Josh Bensadon's short Youtube video demo of the MemberChip Card. (Thanks, Josh! I've never made a video in my life, and didn't know how I was going to add one to meet the contest rules.)
I now have a program to read files from the upper pages of a larger EPROM. This opens the door to using a file system like Mike Riley's Elf/OS.
The standard ROM is 32k bytes (1 bank), and is simply addressed from 0-32k. But by rewiring the chip-select logic (a single 74HC132), the 1802 can select up to eight 32k banks in a larger ROM.
Here's the trick: EPROM /CE is selected by *either* /MRD or /MWR, and address bit A15 is connected to EPROM /OE. This means any address from 0-32k selects the EPROM. Obviously, you can't write to an EPROM.
However, 1802 I/O instructions move bytes from the data bus to/from memory. For example, the INP 1 instruction sets /MWR low, puts the register pointed to by X on the address bus, and writes whatever is on the data bus into that memory location *and* into CPU register D.
INP 1 thus sets /MWR low (to select the EPROM), sets /MRD high (addresses the upper 32-64k bank), and register X provides the other 15 bits of the address to read in that 32-64k bank. The byte read from the EPROM goes into the 1802's D register. It can subsequently be used, or saved anywhere in RAM.
The 1802 has three bits (N0, N1, and N2) to indicate the I/O port address. The INP instructions set these to reflect the I/O instruction (INP 0 to INP 7). These three bits can be connected to the address bits of larger EPROMs to address up to 256K bytes of banked memory.
08/30/2023 at 03:25 •
More updates to the manual at sunrise-ev.com/photos/1802/1802me-manual.pdf.
I figured out a clever scheme to double the EPROM size (from 32k to 64k) with bank switching. This will allow me to put both the standard and alternate ROMs in at once. Now I'll have to see if there's enough room on the PCB to actually implement it!
Numerous small bug fixes and enhancements have been made to the Alternate ROM software. Allow tabs in the editor. Handle the illegal 1802 opcode 68h in the monitor and debugger. Add new words to FORTH, etc.
06/03/2023 at 00:00 •
Added some new material to the manual, and updated the parts list.
I've also started to document the programs in the Alternate ROM package. It has tiny versions of several classical programming languages (BASIC, FORTH, LISP, etc.) so many users will need some "hints" on how they work.
05/15/2023 at 18:38 •
Corrected a few typos on the schematic, and clarified the text. Updated the PDF manual.
05/13/2023 at 06:25 •
I've been working on this project for a few years, but only created this Hackaday.io Project on March 28, 2023. So I'm afraid my log will have to be retroactive. Here is the history of how I arrived at this point:
1976: The August 1976 issue of Popular Electronics magazine had an article "Build the COSMAC Elf - A Low Cost Experimenter's Computer for under $80". http://www.exemark.com/Microcontrollers/PopularElecwebc.pdf I built one, and it worked! It taught me about computers, and started me on the path to a successful career in computers and engineering.
1980's: I furthered my education by building and using dozens of kits; test equipment, TVs, stereos, ham gear, etc. I built many brands, but Heathkits were the best. Their great designs and excellent manuals taught me how to solder, what parts look like, and how to troubleshoot and repair your own gear. College taught me the theory; but Heathkits taught me the practical side of electronics. I figured if I was going to make a kit, that was the way to do it!
2010: I retired; but still had the "itch" to do something with electronics. But computers were no fun any more. They had become appliances that were designed, built, and programmed by "someone else". They were mainly used for games, entertainment, shopping, and social media. People bought pre-assembled boards, and ran pre-written software, to do things that someone else wanted you to do.
So, I designed an updated version of my old COSMAC Elf. It ran the same software, but had greatly expanded speed, memory and features. But it was *still* simple, easy to build, and cost under $80. It was entirely built with vintage parts and through-hole technology, and fit in an Altoids tin. I called it the 1802 Membership Card. http://www.sunrise-ev.com/1802.htm Quite a number of people wrote programs for it.
2017: There is quite an active community of 1802 enthusiasts at http://cosmacelf.com/ For April Fool's day, someone mocked up an even smaller version of my 1802 Membership Card that fit in an Altoids Smalls tin, using surface-mount parts, DIP switches for the front panel, etc. But it was a fake; it didn't actually work. Commenters pointed out that "such a thing was impossible".
Naturally, I took that as a challenge. :-) I started scheming and schematicing to see if there was any way to actually do it. I stripped the circuit to its absolute minimum, while still remaining a working computer, compatible with the existing Elf software. I wanted to stick to through-hole logic, so beginners (and old-timers like me with weak eyes and shaky hands) could build it. I figured out that it could be done with just five ICs; the CPU, RAM, ROM, address latch, and a quad NAND gate as "glue" logic.
But there wasn't room for that many ICs on an Altoids Smalls size (2.15" x 1.35") PCB. I built and debugged a prototype, but it took two stacked PCBs. It worked, but was too tall to fit in the tin.
2018: Chuck Yakym and others collaborated to put RCA's 1981 BASIC3 floating-point BASIC3 on the 1802 Membership Card. The same code ran in my MemberChip prototype, too.
2019: Aha! What if I mounted the chips on both sides of the PCB! This is often done with surface-mount parts. But with through-hole, there have to be pads for the pins on both sides. It took quite a while to figure out a layout so the top and bottom IC pads missed each other. I also had to work out an assembly order so putting parts on one side didn't block access to soldering the parts on the other side.
2020: I made my first batch of PCBs, and sent them out to various friends in the 1802 community. Since it ran the same software as my regular 1802 Membership Card, it was immediately usable with a number of programs. I got lots of good comments on fixes and improvements, and started writing a manual.
2021: Based on the feedback, I made a new batch of rev.A PCBs. The main addition was a 20-pin expansion port, plus some tweaks to make it easier to build and a better fit into the Altoids tin. Since it seemed to be more interesting to beginners than my regular 1802 Membership Card users, I started aiming the manual toward beginners. I added a "story" section, "how to solder", and some humorous examples in the hopes that it might capture people's attention and interest in a way that a plain old technical manual wouldn't.
I made the kit price low; basically just the cost of the bare board and parts. I started selling it to real customers, to get more feedback and ideas for improvements.
2/22/2022: Richard Goedeken rewrote Scott Adams classic "Adventureland" game to run on the 1802 MemberChip Card. We added it into the leftover space in the standard ROM with Chuck's monitor and BASIC3.
10/3/2022: Mike Riley developed a mini operating system for the 1802, which he called Elf-OS. It provided a way to run his many 1802 programs, including a monitor, mini assembler/editor, BASIC, FORTH, LISP, VTL2, etc. He assembled a version of it for the MemberChip Card, so I added it to the software mix.