Date and Time
I’ve written one more program for BMOW: a utility to set the date and time. OK, I admit it’s not very exciting, but it is mighty useful when a buggy program overwrites the memory-mapped real-time clock registers for the fifth time. It also shows the time incrementing as you sit idle at the setting screen, demonstrating that the machine hasn’t crashed.
This will become part of the standard suite of ROM-based demo programs for BMOW. Speaking of which, I’ve put together the final menu of programs for the demo ROM (all of which have been discussed here before), and it totals 403923 bytes. That’s a bit of a problem, since I only have a bit less than 131072 bytes (128K) available.
I’m planning to compress the programs using a 6502-based LZW decompression routine. Compressed, the demo programs require only 124371 bytes, which should leave just enough space for the decompression routine, and a few last-minute odds and ends. I still need to work out the details of the decompressor, but I hope to have that wrapped up later this week.
Once that’s done, I still need to do one last pass through the BMOW schematics and documentation. Much of what’s posted online is out of date, and even what I’ve got here on my PC doesn’t reflect the true state of the hardware in some cases. I need to document it all before I forget everything, and post the updated docs back here for the curious. With that, I’ll be ready to call BMOW done. Maybe I’ll try to arrange a demo party for anyone in the San Francisco area who’s interested.
Lots of ideas have been swirling in my head for my Next Big Project, and I think it’s going to be pretty cool, but I’m forcing myself to hold off on it until BMOW is completed. I only have enough time and energy for one crazy electronics project at a time. BMOW’s almost at the finish line, though, and I’ll definitely be writing more about NBP here soon.
Read 6 comments and join the conversation6 Comments so far
Leave a reply. For customer support issues, please use the Customer Support link instead of writing comments.
If you ever feel the urge to come to the St. Louis area, bring the bad boy along. I’d like to meet the beast. ;P
Well I still find this creation to be amazing. It is right up there with the one created by Bill Buzbee.
Thanks. A story on Slashdot about Bill’s Magic-1 is what motivated me to start this project in the first place.
99% done, and it looks like I’ll be bringing out the wire wrap tools one more time. I’ve run into problems using LZW to decompress the demo programs from ROM. There’s evidently some glitchy hardware bugs that it revealed, but I didn’t have the stomach to really dive into them. I was able to work around the glitches by changing the program’s memory layout, but then I discovered that some programs fail to decompress correctly, even in the simulator. Normally if I can reproduce a bug in the simulator, I can fix it, but something’s going wrong deep in the LZW inflate code that I don’t really understand, and I didn’t write the code.
I’ve decided to cry uncle, get a 512K ROM to replace the 128K ROM, so I won’t need any compression. That’s going to require wiring two additional address lines. The new ROM also has a 90ns access time, instead of the 70ns access time of the one it’s replacing, which could definitely cause problems. According to my figuring, it should be OK though. I’m crossing my fingers!
cool stuff!
your project took me back to the days when computers used to be built with wire wrapped boards and chassis. at that time we used individual transistors, resistors and diodes to create the gates. integrated circuits were just being invented around then.
one bad thing about wire wrap is that field changes are a bear to do. unwrapping the wires from the posts and then trying to rewrap them without the end breaking off. i don’t miss those days at all.
Procesador de 8 bit casero y artesanal…
Después de 18 meses de trabajo, 1.000 dólares y de unir más de 1.250 pedazos de cable, Steve Chamberlin consiguió montar un procesador de 8 bit funcional, convenientemente bautizado como BMOW –Big Mess Of Wires (gran lío de cables), que es preci…
WOW! Fantastic project. I’ve always wanted to build a CPU from scratch using 74xx parts. Hats off to you for making it a reality.
Having designed lots of wire-wrap boards in the day, I’m curious why you wouldn’t use a tape recorder or other mechanism for storage. I built a Z80-based board (Circuit Cellar) and used a 1200/2400 Hz modulator to store a serial stream of 1s and 0s. Slow, but it worked.
How did you get the C compiler to work on your customer processor? Open source and modification?
Again, great project. Job well done.