Creating own, new minimalist computer (architecture) and/or OS

Hi, I think a great source is “An Introduction to Microcomputers” by Adam Osborne (1997)

https://archive.org/details/AnIntroductionToMicroprocessorsVolume1

(Compare this previous post.)
It covers general architecture, but also goes quite into detail regarding CPU architecture, bit-sliced CPUs and microcode, and generally helps in understanding even advanced concepts and what they may involve.

Another great source, predating any microcomputer related thinking, are the UNIVAC I manuals, which were written, when the concept was still new, and go into such detail that you could build a copy from the descriptions provided. As this is starting from the very principles and basic building blocks, it may provide an inspiration for thinking out-of the box and finding your very own angle point for lifting the world.
These are available at Bitsavers (I’d have a look at the Preliminary Description and the Intro To Computers): http://bitsavers.org/pdf/univac/univac1/
(However, it’s still about von Neumann architecture, or, if you prefer, Eckert–Mauchly architecture, as it is, well, by Eckert and Mauchly.)

Then, I think, @EdS tip on prototyping in a familiar language and in a familiar environment is a great one. (You can actually write a OS in basic JS for the browser, compare https://masswerk.at/jsuix/.)

The OpenCores site has some interesting processor designs: https://opencores.org/

There’s also the SCAMP, which apart from right shifts being a mess is quite a nifty word based TTL processor (no interrupts either)

Writing your own simple OS is actually pretty easy, but start with a simple processor not a PI. There’s a huge amount of baggage to make all these modern processors do much useful.

If you start with something simple like a monitor and then extend it slowly to provide basic I/O services to whatever you are running you’ll end up with something akin to as lot of the early micro systems. Disk is a bit more fun because you’ve then got to deal with storage allocation which cassette tape didn’t need.

2 Likes

The book covers it all A number of OISC designs.
Computer Architecture: A Minimalist Perspective

Essentially what I did in my Ruby project - but I copied ideas because I was somewhat lazy in the early days, and I like the 6502 - so I wrote my own thing that looked like “Woz Mon” and made Apple Integer BASIC run under it, then Applesoft, then I upgraded it to an Acorn MOS look-a-like because I wanted BBC Basic.

Then I took that from the 6502 to the 65816 and used it to bootstrap my BCPL OS.

Who knows where I’m going next!

(Actually, I do know, but I don’t know if I’ll get there - yet…)

-Gordon
Ps. As well as lazy, I’ve found it hard to get away from the unix paradigm in both things like system calls and a shell-like CLI … )-:

So you know about Ben Eater’s breadboard computer based on the 6502, but he also has a project where he builds a computer and CPU from logic gates.
https://eater.net/8bit

His YouTube series where he describes the project is also a good introduction to how simple CPUs can work - I think it could be useful to watch if you want a place to start, even if you don’t want to copy his design.

(edit - I don’t think it includes keyboard or much of a display, just some lights it can blink)

3 Likes

I found a Brainfuck CPU on Opencores.
On Google, I found another Brainfuck computer which is very minimalistic.

Unfortunately, it’s just an Arduino shield, and originally I thought of a computer with regular keyboard and display.
But a good inspiration.
It has 4-bit, 4 buttons, 10 LEDs and a buzzer.

I also found the very expensive book “Computer Architecture: A Minimalist Perspective” mentioned above, online. Maybe, there are better books, or it’s better to read several books or read websites than spending $100 for that book.

1 Like