38 comments

[ 1.9 ms ] story [ 92.1 ms ] thread
> Goals > "These are my principles, and if you don't like them I have others." - Groucho Marx

Love it. Great combination of hard work (emulator available!) and lightheartedness.

Perfect for 1-D pacman!
And DOOM of course.
I don't think a 10 MHz Z80 and 512 KB of RAM is enough for DOOM as we know it. There are some games called "doom" for the similar Ti 83/84 calculators, but they're more similar to Wolfenstein 3D: very cut-down from what DOOM is actually like.

https://www.ticalc.org/archives/files/fileinfo/238/23843.htm...

https://www.ticalc.org/archives/files/fileinfo/419/41975.htm...

Yes, you're right. I don't know if you can see this: https://i.redd.it/vtswj6s8wh321.jpg

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.

You're correct. But hey, if Foone can "run Doom" "on a pregnancy test" then why not, in the same sense? ;)
(comment deleted)
I feel like there is a computing renaissance, so many new and creative projects, I am not sure if its because of pcbway or because of riscv, cheap parts, accessible knowledge, kicad and opensource tooling, but it makes me super excited.

People are having fun with computers.

Yeah, it really feels like people are going back to the pre-5150 personal computer era and looking at things from the ground up again.

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.

I'm too young to have participated much with 8-bit machines the first time around, but I've played around with Z80 + CP/M machines (both vintage and new/custom) a lot in recent 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.

A lot of things came together over the last decade or two to enable ever-more-impressive 'maker'/hobbyist projects. Ubiquitous 3D printing, cheap PCBs, powerful CAD software available to hobbyists, YouTube's growth as an educational resource, excitement over FPGAs, super-affordable microcontrollers and single-board computers, and a big wave of 80s/90s nostalgia often giving it direction.

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.

What are some other projects you've been excited by? Love seeing what people are capable of by indulging their passion.
That's a LOT of RAM for an 8bit, and to think it has no video display.

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.

This is a CP/M 2.2 installation, with the CCP loading from address D800h giving approximately 54Kb free for user programs. The system supports two 248K drives - Drive A is in ROM (and therefore readonly at present) and Drive B is in RAM.

Seen like that, you could have something like that on a C128, I guess.

Adding video is apparently quite difficult.

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.

I think the phenomenon of "underpowered host commands OP support" is somewhat inevitable in this "retro remake" space.

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.

> 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

It's a black box transceiver with no CPU functionality exposed.

https://www.silabs.com/documents/public/data-sheets/cp2102n-...

I think the word "exposed" is doing a lot of heavy lifting there for purists to quibble about...

...but to me that's more than fine.

Thank you for your kind words. I'm the guy behind MicroBeast - and yes, you're right that video is hard.

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.

(comment deleted)
It's perfect for CollapseOS http://collapseos.org/

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.

Tangent on CollapseOS/DuskOS because this is the first time I've encountered this and it is very much up by alley:

---

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.

You sent me on a Collapse OS and Forth rabbit hole. Apart from the technical appeal I like the sober writing style of its author and the website. I do not think the postulated collapse of global society is imminent but I am glad that this project exists.
I'm not sure why there is an obsession with 8-bit architectures for these sorts of projects. Are there no 32-bit CPUs with a simple architecture and easy programming model? I say this as an old fart who has a great deal of nostalgia for the 8 and 16 bit days. If I were teaching my kids computer architecture these days, I don't think I'd start with an underpowered, out dated arch.
(comment deleted)
> Are there no 32-bit CPUs with a simple architecture and easy programming model?

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.

The Motorola 68k series. A very nice 32-bit architecture that was fun to program. The downside, Motorola isn't making new ones, and I'm not sure who owns the property. Another nice 32-bit architecture was the VAX. It had the most regular assembly language I've ever seen, despite being a CISC architecture. But sadly, both are obsolete these days.
Freescale owned the IP after Motorola, and they've since been acquired by NXP. For now, they are still available in the form of the derivative (simplified) ColdFire processors.

Available ColdFire ICs:

https://www.nxp.com/products/product-selector:PRODUCT-SELECT...

Differences between ColdFire and 68k:

https://microapl.com/Porting/ColdFire/cf_68k_diffs.html

Oh God! It sounds dreadful to program on a ColdFire CPU. Some instructions I agree (CALLM), but the ROL/ROR instructions? ADD only applies to long words? Insane.
Probably not exactly what you’re looking for (since you mention “outdated”) but there are similar projects with 16 and 32 bit architectures, e.g. https://github.com/rosco-m68k/rosco_m68k

(Disclosure: I’m the designer and lead developer on that project).

Cool. It's more or less what I did for my senior project back in the late 90s. I think the 68k is the perfect choice for something like this due to the simplicity and much more reasonable performance compared to, say, a 6502 based design.
You can hand clock a Z80. It is kind of magical.
If you want to learn how modern computers work, you should probably give up on the idea of building something yourself - since any modern architecture relies on busses, peripherals and processor functionality that are way beyond hand soldered kits. Get a Raspberry Pi and accept that even light switches run Linux these days!

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.

The arrow keys seem to be placed for maximum torture, which was pretty typical in the 8bit era.

Inverted T forever.

(comment deleted)