Another real-time update: The Cat-644 is no longer a naked circuit board. The two boards fit side by side inside a compact wooden case. I could have just put the circuit board in a box, and connect it through a KVM to my existing keyboard and screen. Instead, since this is a retro-ish project, I opted to build the classic 80's microcomputer form factor: A computer built into a keyboard.
I thought about the commodore 64, and the smaller Commodore 64c.
Everyone, of course, knows about the wooden cased Apple I.
I took a look online and came across the Sol Terminal Computer.
It all sort of spun together in my head, and what I came up with was pretty simple:
(Sorry the photo is a little grainy, I took it with my phone.)
The case was built to just hold a keyboard I already had, one of these Cherry keyboards.
I need to add a slot for the SD card. Or, I could just tie it down inside and treat it as a 'hard drive' and never take it out. For an 8-bit machine, 1GB hard drive might as well be nearly infinite storage space. I always have the serial port to download programs into it. No sneakernet required shuttling sdcards from PC to PC.
After putting it all together and turning it on, typing on it really reminded me of typing on this when I was a kid.
Both use the SPI bus. The ENC28J60 is very simple, so the burden of the TCP stack is pushed into my code: I have to do it or find a library. There are libraries out there, but limited abilities. The Wiznet chip does the TCP stack itself, leaving me with more-or-less a serial interface; once the socket is up I just send/recv bytes to the thing. I was also tempted by the simplicity of a device such as the wiz110sr, which just IS a serial port that connects to a socket. I would put it in a seperate box, call it a 'modem,' and get on with my life.
I didn't want to use-up the only serial port of the ATMega. And I have a 'no surface mount' rule currently in this project. So I opted to use a ready-made Wiz5100 module, which is essentially just the w5100 chip, a 3.3v regulator, and some decoupling capacitors on a board. The exact one I got was intended for Arduino use, but I got it for $16 on clearance because its the 'old version.' (Turns out the new version has an SD card slot, so maybe I could have saved myself some time NOT building my own damned level converter... )
So, I will be using the Wiznet 5100 chip, for now.
What I really want to do later is combine with THIS after he finishes his project: replace serial with a high speed SPI link between the ethernet microcontroller and the Cat-644 MPU.
Software: I've been working on cat-os. So far, the 'main' of the program displays some graphics on the screen, and interacts through the keyboard and serial port. I do have sound, sdcard code, and a virtual machine interpreter, as seperate little test programs, but they haven't been integrated in yet. The intention is to integrate them next. Cat-os should start up in a simple shell that lets you navigate the sdcard filesystem, using either the screen and keyboard or the serial port. Then when the user selects a program, that program is loaded and run in the VM interpreter. That's the plan. What's the long term plan? I want an editor, and at least a VM bytecode assembler, running on the Cat. I can't call it a 'true computer,' until I turn it on, sit down in front of it, and write a program on it, eithout the assistance of a modern PC.
I still have 1 'backlog' topic: The SD Card. My project runs on 5v, but SDCards like 3.3v. I had to come up with a level shifter, and since I'm a big fan of 'parts on hand' and not waiting for mail order, I whipped up this:
Bye for now...
Well, its almost the Hackaday Prize deadline. What are the last things I want to say before I await judgement: Thanks Hackaday! By jumping into this contest, it really motivated me to get all the documentation drawn up on the computer and put out there on the internet. If I hadn't decided to enter this project, all the notes would still be on paper. And I probably wouldn't have bothered to build the case yet. Even if I loose, it did give me a kick in the butt, and the project will finish a whole hell of a lot faster.