Micro Beast: Self contained 8-bit computer kit in a box
feertech.com
feertech.com
I know the point of it isn't to run on new hardware, but this would be a way to learn it on a stable platform without having to worry about dealing with constant problems from old hardware before trying to implement it on said.
---
Being that it is for a post-Collapse world would be nice to see it ported to run on RISC-V (not trolling) because RISC-V is already the subject of "Computer Organization and Design RISC-V Edition" and very well documented, but also going to be increasing the architecture with the most resources through student, assignments, etc, but also to salvage from existing electronics.
Thought the author's timeline is 2030, which is a bit too soon for that, but by 2040 I think my argument holds.
People are having fun with computers.
This is especially exciting to me as someone juuuuuust old enough to have extensively used those machines (C64, //e, Atari 800, etc) when they were contemporary but now diving deep into an interest in the fundamentals of computing while in the middle of a completely different career. A project like this is specifically exciting because I could look at 8 bit computing from the ground up without having to worry about buying a vintage machine and a whole host of gremlins it might have built up over the years.
To me it is an extremely fun, human-scale design space. Machines of lower capability are mostly toys or needlessly painful, but an 8-bit CPU running at a few MHz with 64KB of RAM is enough to provided a very nice text-only computing experience. You can run self-hosting development tools (Turbo Pascal!), get access to all kinds of CLI tools, real file systems, etc, while still keeping the entire memory map in your head.
I love the idea of a computing environment that just provides you with a thousand fully-independent, 64KB 8-bit machines and just drops time-slicing and task switching completely.
At the same time, modern 'mainstream' computing has become increasingly user-hostile, built to encourage spending, ad-views, and content consumption rather than experimenting and creating.
This is not the 8bit world so many cut their teeth on, it's Kim-1 or Altair era but with more memory than anyone knew what to do with.
Seen like that, you could have something like that on a C128, I guess.
Apparently it's straight forward to breadboard a legacy CPU today and get serial I/O, which solves many ills. But getting video is a large wall to scale.
There have been several video solutions out there that folks have made. I think Ben Eater has a video of banging together something that can drive VGA (but not, necessarily, what one would consider "video" for a computer).
The original home 8-Bit computers were essentially video display systems that had some spare cycles to actually run some software. The fundamentals of the system design revolved around the video. Everything was a slave to the video clock cycle.
There is no real one chip device folks can drop on to a CPU bus and "get video", not that I've seen yet, especially not the way folk remember the 8-bit experience with memory mapped video. Even integrating something like the ubiquitous 6845 (which was used everywhere back in the day) is challenging, as it's not a one chip solution, plus, today, interfacing it to a generic HDMI monitor is a trick. (Also, I'm not sure today how availability of the 6845 is today.)
Even the Commander X16, which went through great lengths to reinvent the 8-bit experience, created their own video chip (FPGA I think), and it does not share video memory with the host 6502, it use a memory mapped I/O interface.
Then, of course, there's things like a Raspberry Pi 0, that (in theory) can be bought for $10. Tie that to the serial port, and host some software on it, and it can do all sorts of amazing things far faster than a 10MHz Z80.
The original creator of this kit (which by the way, looks like a really nice, well packaged kit) had this as an original goal:
* Genuine 8-bit design, don't cheat with "support" processors that are more powerful than the main CPU.
Obviously, a Rasp Pi is quite disqualified from that. And, to be fair, I'm going to quibble, because the CP2102N chip they use for USB connectivity is likely a powerful CPU, more powerful than the Z80. You have to be to be able to drive USB 2.0.But I can't condemn them for that, the addition of the UART talking to the CP2102N is a very good design. And adding USB to the system opens it to a huge variety of peripherals. With that clock chip, they can go to 56K baud, that's 5K Bps. That's fast for a floppy at the time. Slow for a hard drive, but overall not too bad.
At 10MHz, they might have got better transfer rates with a bit banged SPI USB driver.
Uzebox, one of the first projects of this type, found a path with the ATMega that really does it all-in-one, but the compromise is great - NTSC video, the available space is tiny and shared with the software kernel, and you have to program it externally. It's not a complete computer.
The Agon Light goes in the direction of completely embracing a serial "eZ80 talks to ESP32" architecture, thus achieving its boast of being the "fastest 8-bit" by not really constraining itself. It's elegant for what it is; video games really DO benefit from that kind of setup since they typically operate with relatively light gameplay logic driving a massive amount of graphics.
It's a black box transceiver with no CPU functionality exposed.
https://www.silabs.com/documents/public/data-sheets/cp2102n-...
...but to me that's more than fine.
However, I'm working on it! VideoBeast is a video 'chip' that I hope solves some of the problems with getting decent graphics out of 8-bit retro and homebrew computers.
* It has a high bandwidth interface, acting like a (paged) RAM chip that should be compatible with most 8-bit CPUs.
* It outputs a digital video signal that can be easily connected with modern monitors.
* It supports text, bitmaps, tile maps and sprites and composites them in up to six layers.
* It has a large (1Mb) video ram to support full screen graphics, and provides an SD-Card interface to load data efficiently either for display or the host CPU to read.
* It supports the features used in many late 80's arcade boards that allow a relatively slow CPU to move large graphics around on screen, including hardware scrolling, palette effects, raster timing, windowing and transparency.
Whilst there are designs out there that do this with TTL logic, for reasons of cost and sanity the design is FPGA based - I'm working hard to use the lowest cost device to do the maximum amount of work, whilst taking nothing away from the host CPU. VideoBeast acts like an old school Video Display Processor, with memory mapped graphics, not a co-processor pretending to be a graphics device.
I think this is a far better solution than a Pi or ESP32 on a serial bus (slow to update and restricted by on-board RAM), and it should reasonably outperform the X16 thanks to an architecture that centres on efficient and flexible memory access.
There are some more details linked from the MicroBeast page. I've got the prototype units running currently and will be sharing more demos and information over the next few months as it approaches feature complete. There's a way to go yet, but I think this is going to be pretty exciting.
Love it. Great combination of hard work (emulator available!) and lightheartedness.
https://www.ticalc.org/archives/files/fileinfo/238/23843.htm...
https://www.ticalc.org/archives/files/fileinfo/419/41975.htm...
But what it says is that it required 24MB of HDD (12MB after installation), and a 386 or equivalent computer. An i386 is quite powerful, to be honest. It even has protected mode!
And, 4MB RAM, which is more than what I had on my 286 laptop back in the day.
There really aren't. You could consider Arm (maybe with the simplified but 16-bit "thumb" instruction set), or MIPS, or RISC-V. Between all of those, it's rare to find bare CPUs; usually you get them in a system-on-a-chip, with things like DDR memory and other sophisticated peripherals built-in. You need complicated drivers and a bootloader, maybe even with signed payloads. Nothing as architecturally simple as wiring the address and data lines of a CPU into the address and data lines of some RAM or 7800 logic directly wired into a keyboard.
In principle those devices could exist, but as a hobbyist you can only really get your hands on hardware with that kind of conceptual simplicity by either programming it into an FPGA, or by using hardware that dates back to when that approach to computer design was cutting-edge.
edit: you could maybe consider some kinds of microcontrollers? The Parallax Propeller comes to mind.
Available ColdFire ICs:
https://www.nxp.com/products/product-selector:PRODUCT-SELECT...
Differences between ColdFire and 68k:
(Disclosure: I’m the designer and lead developer on that project).
That said, we _do_ have a slightly-related 6502 too https://github.com/rosco-6502/rosco_6502
More seriously, since the time of 8-bit CPUs, hardware has essentially split into deeply embedded system on chip designs (often ARM or RiscV cores) or monster multi-core 64 bit CPUs. The intervening 16 and 32 bit processors have largely been consigned to history (genuinely a shame - but that's the reason there are so few kits based on them). Ironically, it's the old Z80 and 6502 that are still being manufactured today in volume and at low cost as a convenient building block for simple "computer" devices.
So, no - this sort of kit does not teach you how your M3 Mac works - but it does provide you with a system that you can completely understand and control, that you can build your own peripherals for, that you can write a complete operating system for, or games and programs, that you can have the satisfaction of building yet still has the basic architecture of any modern computer. And for the sort of task you're likely to undertake, it's surprisingly capable.
Alternatively, if you want hardware with a simple programming model that abstracts the difficult stuff away, get an Arduino. That's really the choice you're making - either 'close to the metal' coding on older CPUs, or the modern approach of abstracting everything into software. Both are equally valid.
Inverted T forever.