Smallest BASIC Computer?

This may be the most minimal computer that we’ve ever seen running BASIC. Hackaday.io user [Kodera2t] has been working through the history of computing, so after his 4-bit CPU, he stepped up his game to eight bits. It’s amazing how much can be done with so little. It’s basically a Z80 on a single PCB.

[Kodera2t] is careful to give credit where credit is due: the design of this computer is by [Grant Searle]. It’s amazing what you can do with an old CPU (6809), some SRAM, a controller-interface chip, and an EPROM for your BASIC. Check out the GitHub for the computer’s PCB files if you want to make your own — it’s a very hobbyist-friendly two-layer board with fat traces. Or you could put it all together on a breadboard. It’s that non-critical.

9767261466906678330

The other sweet touch is this monochrome CRT build that pairs up with the tiny computer.

[Kodera2t] is doing some really clever retro and minimalistic hacks, and putting them all up on Hackaday.io. You should really give his whole portfolio a look. We recently wrote up his experimentations with the Atmel ATtiny10 if you’re in the mood for something more modern.

57 thoughts on “Smallest BASIC Computer?

  1. 6809 and 32k chip is dirty cheap nowadays. That was not the case in 80. The whole idea of cheap computers of 80 was to minimize the cost so they can be affordable for anyone. Still nice project in terms of Hacking skills.

    1. My first computer was a Sinclair ZX-81 kit that was $99 in 1982. It was 4 chips (technically 5 if you count the 7805), that would now cost $246, for a computer with 1k of RAM, soon expanded to 32k

      1. Yes, I’m just saying that the MC6809 was the most advanced 8-bit microprocessor Motorola produced from 6800 family. Also the 32k in single chip was astronomically expensive. So in contrast to computer revolution in 80, this project uses most advanced chips of that time. The real challenge of that time was to make computer with the same capabilities as this project, but with reasonable price tag. That was one of success factors of Commodore or Sinclair (as you mentioned).

        1. One reason this can be so simple is the higher density RAM (and static to boot, so no need for circuitry to refresh it) and the fact that we all have something that can be used as a terminal. Decades ago, you’d need lot more circuitry to have a video output, or minimal circuitry like the Sinclair, which impacted on operation. Now you just run terminal program on one of your computers.

          You could get expensive systems that used the 6809, SWTP and Gimix come to mind, or you could get a Radio Shack Color Computer (or The Dragon in the UK). The latter had limitations, but it got you a 6809. That’s the way I went.

          Michael

          1. I’ve got an SWTP 6809 with twin floppies in my attic, with full schematics iirc, but no software. FWIW, the terminal is dumb serial.

          2. IIRC few of the computers of that time had “circuitry” to do the refresh. There were things like a software interrupt that accessed each bank every X time, or a video controller that would automatically hit each RAM row in time.

  2. At first glance, this may seem like a waste of time, but many people (myself included) are tired of working with numerous bloated API’s and overly complex designs. Getting back to basics in this manner can be quite liberating and keep you in the “flow” of creativity.

    1. I’ve dropped this reference into Hackaday comments a few times before, but it’s worth repeating: check out http://www.nand2tetris.org for an OUTSTANDING course in how to build a complete computer system, hardware and software, from nothing but NAND gates. This is first principles learning at its best.

  3. “It’s basically a Z80 on a single PCB.” 6809 CPU. Ehm seriously? HaD editors???

    Guys, can we get someone at least slightly technically competent to edit these articles? You are writing for a technically skilled audience, not a random Joe who doesn’t know the difference between smocks and socks …

    Neat project, though – there aren’t that many 6809-based machines around, that CPU was never all that popular.

    1. Actually, there were fairly popular in embedded applications as the 6809 has some nice fast interrupt features along with some 16 bit features. Definitely used in telecom equipment like DTU’s, TDM line cards, etc.

      1. What I remember is that the SuperPet had the 6809 because Commodore or the potential market wanted higher level languages, and the 6809, designed for that, made it easier. So the 6809 was a means to an end, like those people buying the Apple II o thy could run VisiCalc, rather than to be a 6809 computer. Like any design, sometimes “complicating’ things makes something easier overall.

        There were two 6809 cards for the Apple II, one like the Z80 Softcard, just taking over the bus, and one that included its own RAM.

        Michael

  4. I can’t for the life of me remember all the details – but it was possible to buy a DIP-packaged Z80(?) CPU with onboard serial port and onboard basic ROM in the late 80’s. It only needed a crystal and RAM to finish the job off. As a poor teenager I desperately hankered after one, but couldn’t afford it…

    1. Yes; it was the Zilog Z80180 (second-sourced by Hitachi as the HD64180). They came out around 2006, and were a 64-pin DIP package that included a Z80 CPU, two UARTs, timer/counter, DMA, and memory management unit to handle up to 1Mb of memory. There was no internal ROM, but later versions in surface-mount packages did include ROM as well.

      1. I think you’re off by over a decade. I built an HD64180-based computer in around 1990-92. The package was a 64-pin “shrink DIP” package – it had 600 mil spacing between the two rows, but the pins were closer than 100 mil apart. Don’t remember the spacing exactly, but I had to cut slots in the perfboard I built it on for that chip.

        The memory management unit was especially useful in that it let you define three segments into a 1 MB physical memory space, which allowed you to put “kernel” code in one segment and “user” code in another, which meant you could either do a rudimentary task switching monitor and have multiple programs running, or have programs larger than 64 KB that did their own memory management.

        1. Oops; You’re right! The 180 came out around 1986 (not 2006). I happened to look at a data sheet online that had the 2006 date. But my vintage printed copy is dated 1986; so it was out by then. As I recall, Hitachi had their “2nd source” part out before Zilog did!

          On ROM: Though ROM wasn’t strictly required, you had to have some kind of non-volatile memory or it would “wake up dead”. :-) A front panel full of swiches and lights was one way. A non-volatile RAM somehow preloaded with your boot code was another. The easy route was just to include a ROM. Note that chip-selects for ROM and RAM didn’t necessarily add any chips or require a “hack”; there are ROMs and RAMs with active-low or active-high chip select pins.

          1. You’re right – Most SRAM and EPROM chips had at two or three CS inputs, with at least one being active-high and the other active-low.

            Once upon a time (circa 1978), my first computer was a Z-80 built from scratch with 4 KB of SRAM for memory and 2 KB for display refresh. (At $600, the TRS-80 was beyond my budget.) What I especially liked about the Z-80 was that if you didn’t mind thinking in octal, it was easy to assemble and disassemble machine code by hand. The instructions were generally in three fields – a two bit operator, and three bits each of source register and destination register. Single-operand instructions used the high five bits for opcode and the low three for register. There were only six (I think) general-purpose registers, so one of the register codes meant “immediate operand”, and another meant “indirect” which used an offset to the HL registers. This meant that it was possible to memorize many of the opcodes and the few exceptions and extensions (such as a prefix for instructions using operands relative to the X or Y register instead of HL), or use a cheat-sheet (for the less-often used instructions), and do assembly by hand. Which was what I did – I used a steno pad, writing the assembly code in the right column and then translating this into machine code in the left column. Since all of the conditional-branch instructions used 8-bit offsets from the program counter, I would leave a blank underlined field there until the “second pass”, where I would count (in octal of course) the offsets to the jump targets.

            By the time I built my upgrade to this – the HD64180 machine – I also had a PC, so I just wrote a loader that accepted octal over the serial port. I used an assembler written in GW-BASIC to assemble and upload programs.

            Good times.

        2. That’s not the one [eccentricelectron] is talking about.

          But I do seem to remember that one and it had 2 pins in the square root of 0.2″ so that if you pull every second pin outwards, it would fit diagonally on veroboard.

          The one [eccentricelectron] is talking about had BASIC burnt into Mask ROM when you bought it. I have a ROM image here and you can burn it into the PROM version.

          I *think* it was a Z8 but I will have to check.

  5. For a computer I would expect at least some display and keyboard interface – so a BASIC Stamp does not really count. But a MicroMite should, and its a lot smaller then this one here I think.

    1. I wouldn’t, all you need is a single rs232 port. what you desire is the job of the terminal.

      but then I also started in computers when all you had was toggles and single LED’s or the more fancy hex keypad and 7 segment readout.

  6. That’s a nice project – shame that the link to Grant’s website doesn’t work at present.
    Pity too that the HaD hacks don’t know a Z80 from a 6809 :-)
    I programmed for the 6809 back in the day when they were used in arcade game machines and slot machines. Some home computers like the Dragon also used them.
    Running BASIC is fun, but try the assembler. Whilst an 8-bit CPU the 6809 instruction set does have some 16-bit features which gave it the edge over the z80 stable.

      1. Nope, no ROM required. You just use static RAM with battery backup, and a second PCB containing the “programming panel” with the address and data switches and data LEDs. 32 KB SRAMs were available in that era with standby current of < 1 uA. Sure, adding ROM means you can put in a monitor that loads programs over one of the serial ports, but not strictly required. And adding ROM means you need at least one MORE chip to decode the upper address bits into chip selects, unless you REALLY hack it by using A15 to select the ROM and A14 to select RAM.

  7. Yes, the 8-bit battles of the 70’s and 80’s. Mostly took the form of systems with a keyboard that connected to your TV. Just about every 8 bit processor at some point entered the home market. The hobbyist side got more variety, RCA1802, Zilog Z80, Intel 8080, Motorola 6809, MOS 6502. I started with a KIM-1 and later upgraded to a SYM-1. Programming in HEX what fun!

  8. I start an office software company using Tandy II, I was selling a configuration hardware and software for accounting. I choose for it serious look an 24 lines X 80 columns. I never understand the MS Xenix option, I would rather prefer a server card add-on providing disk port, parralel printer port and network connection, with an OS, printer spool and data base software in ROM. I never understand at this time of terminal connected to time sharing, why nobody seem to propose a toaster like disk box with Zilog and basic language in ROM with 2 serial ports to connect to 24 lines by 80 characters terminal for about 700 USD. Now I will love to find such a board with Z80, SD card as disk and a 24 X 80 LCDterminal.

Leave a Reply to notarealemailCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.