![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
It looks kind of fun, but once again, it does make me wonder why it’s so constrained. Extremely low-res graphics, for instance. TBH I would have sneered at this for being low-end when I was about 13 years old. (Shortly before I got my first computer, a 48K ZX Spectrum.)
Why isn’t anyone trying to make an easy home-build high-end eight-bit? Something that really pushes the envelope right out there – the sort of dream machine I wanted by about the middle of the 1980s.
In 1987 I owned an Amstrad PCW9512:
- 4MHz Z80A
- 512 kB RAM, so 64kB CP/M 3 TPA plus something over 400kB RAMdisc as drive M:
- 720 x 256 monochrome screen resolution, 90 x 30 characters in text mode
Later in 1989 I bought an MGT SAM Coupé:
- 6MHz Z80B
- 256 kB RAM
- 256 x 192 or 512 x 192 graphics, with 1/2/4 bits per pixel
Both had graphics easily outdone by the MSX 2 and later Z80 machines, but those had a dedicated GPU. That might be a reach but then given the limits of a 64 kB memory map, maybe a good one.
Another aspirational machine was the BBC Micro: a expandable, modular OS called MOS; an excellent BASIC, BBC BASIC, with structured flow, named procedures, with local variables, enabling recursive programming, and inline assembly language so if you graduated to machine-code you could just enter and edit it in the BASIC line editor. (Which was weird, but powerful – for instance, 2 independent cursors, one source and one destination, eliminating the whole “clipboard” concept.) Resolution-independent graphics, and graphics modes that cheerfully used most of the RAM, leaving exploitation as an exercise for the developer. Which they rose to magnificently.
The BBC Micro supported dual processors over the Tube interface, so one 6502 could run the OS, the DOS, and the framebuffer, using most of its 64 kB, and Hi-BASIC could run on the 2nd 6502 (or Z80!) processor, therefore having most of 64 kB to itself.
In a 21st century 8-bit, I want something that comfortably exceeds a 1980s 8-bit, let alone a 1990s 8-bit.
(And yes, there were new 8-bit machines in the 1990s, such as the Amstrad CPC Plus range, or MSX Turbo R.)
So my wish list would include…
- At least 80-column legible text, ideally more. We can forget analog TVs and CRT limitations now. Aim to exceed VGA resolutions. 256 colours in some low resolutions but a high mono resolution is handy too.
- Lots of RAM with some bank-switching mechanism, plus mechanisms to make this useful to BASIC programmers not just machine code developers. A RAMdisc is easy. Beta BASIC on the ZX Spectrum 128 lets BASIC declare arrays kept in the RAMdisc, so while a BASIC program is limited to under 30 kB of RAM, it can manipulate 100-odd kB of data in arrays. That’s a simple, clever hack.
- A really world-class BASIC with structured programming support.
- A fast processor (double-digit megahertz doesn’t seem too much to ask).
- Some provision for 3rd party OSes. There are some impressive ones out there now, such as SymbOS, Contiki, and Fuzix. GEOS is open source now, too.
Intentional constraints
Date: 2025-01-05 06:17 am (UTC)As the person behind the Cody Computer I can explain a bit. The constraints are a design feature; this isn't intended for someone who wants a high-end computer with a 6502 attached. There are certainly technical constraints in terms of the Propeller selection, and you could probably slap a Pi Zero or more powerful MCU on there and bit-bang the 65C02 bus from ARM assembly, but that's not what this was trying to be. Someone like yourself really isn't the target audience for it, and I'm not sure there was a target audience for it aside from the parts that made a dog smile or wag his tail; the three of us had fun working on it over the years, and it's shared because someone else might be inspired from it the way other projects gave me ideas.
It's a computer, but in reality, it's more of a toy. It captures the essence of an early home computer. It can exchange files and data over serial communications (instead of a cassette port), it has an expansion port, you can make a cartridge for it, you can program in a simple BASIC and assembly, and it has an intentionally limited feature set that would let you make simple games or programs for it. It's not trying to compete even with the more advanced systems of its era much less something like the Mega65 or Commander X16 or whatever else. A kid today isn't going to have the same sense of wonder with a computer that I did with my Commodore 64 at the age of three, but I think something like this might have come close as a family project and modern-day equivalent.
Think of it like a radio kit, either an old crystal radio kit or a more modern one; those aren't going to compete with what a Raspberry Pi and a software-defined-radio setup are going to do. Or in model rocketry where one might build simple, fun rockets with limited payloads, things you can study, understand, and then take down to the local park or salt flats; if you're just interested in putting something in the air, you're better off just buying a drone. Or in model railroading where you could go for a system with DCC or you could build one using traditional wiring, switches, lights, and solenoids.
My wife once introduced me to a PBS program, The Woodwright's Shop, from North Carolina public television. The presenter not only did woodworking but talked about its cultural significance. He went so far as to quote Jacob Bronowski in The Ascent of Man, discussing how once man began working with wood and stone it changed our conception of working with materials and the external world, how they could be cut, crafted, manipulated according to underlying principles. I think that I was lucky enough as a kid to have toys that encouraged the same spirit, and that's what this thing is trying to be.
I remember in the summer of 2019 when I got the original breadboard more or less working, then Cody walked around it on the living room floor and sniffed all the ICs. I knew at that point that if a very smart Pomeranian was checking out all those black rectangles that came in the mail and got plugged into a breadboard, a smart kid building something like this with mom or dad would also be interested in what all those obvious, visible parts did too. You can also see that philosophy in the 3D printed side of it or the nature of the PCB design.
From a purely practical perspective, by the time you end up with a more modern 65C02 or 65816 system with many of the advanced features you describe, you might be better off with an FPGA or emulated system anyway. At best you'd probably end up plugging an FPGA board or Pi Zero into something with a 65816 and calling it a day. You could assemble it at home, but I'm not sure it would have the same impact. By way of comparison, why write games in the Pico-8 "fantasy console" when you can do so much more without it? The simplicity and the limitations are part of the charm. This is like that for people who have an interest in retro electronics, computing, and also brandish a 3D printer and a soldering iron.
The other issue with a more fully-featured design is that it can often take away from the simplicity and intentional limitations that make something educational or fun. Saint-Exupery said it best although in a different context: Il semble que la perfection soit atteinte non quand il n’y a plus rien à ajouter, mais quand il n’y a plus rien à retrancher. Au terme de son évolution, la machine se dissimule. In this case, of course, we don't want the machine to disappear, but we want it to show itself in a simple way that also levels the playing field.
It's not really aimed at computer people, at least not that kind or in that sense.
Re: Intentional constraints
Date: 2025-01-07 02:32 pm (UTC)Thanks for this, and for taking the time to reply!
You don't actually spell out who Cody is or was, either here or in the homepage. I had a glance at the PDF of the manual and I see a photo which tells me a little more, but still is not unambiguous or unequivocal. Cody is/was your dog?
I sort of see your points. I do see the appeal of something very simple and minimal, and that one can build oneself from just a few ICs. (Not that that's something I'd particularly want to do, myself.)
I think we have personally got mutually opposed philosophies about this, and some of them I coincidentally expressed in a recent article of mine, which has gone on to do rather well. You might find it interesting.
How a good business deal made us underestimate BASIC.
Young Americans in the '80s maybe got to explore computers via a C64, and aside from the pricy Apple II -- which wasn't better in every way, just more expandable -- that was home computing. (I don't know; I wasn't one.)
Young Brits probably got a Sinclair Spectrum, with much weaker graphics and sound, but a much better BASIC. But unless their parents were rich, if they dabbled in BASIC as I did, they probably aspired to a BBC Micro.
My take is this: give kids a good BASIC and a fairly unconstrained environment if you can. (The BBC Micro had hardware-driven "MODE 7" graphics using a Teletext chip, so you got most of the paltry 32kB RAM free. Most users chose that, and wrote programs that flipped into graphics mode as required. The cut-down Electron machine didn't have the Teletext chip, was thereby crippled, and flopped.)
The take here seems to be that '80s American kids' take away was "the Vic-20 was awful and the C64 not much better, but I got here fine, so that's enough."
My take, as an '80s Brit kit, "my BASIC was pretty good and I could get Beta BASIC, and given that, I did fine. I would give kids absolutely the best BASIC and graphics I could fit, and tailor my machine to fit that."
Does that make sense?