looking for cheap small low level programmable computer
September 2, 2016 5:33 AM   Subscribe

I want to exercise my brain more using assembly language or even machine code on a microprocessor. I played with a webbased MITS Altair simulator but now I want to program a real device. I've seen some microprocessor learning kits that come with a small keyboard and display, but not too many cheap options. I'm not looking for something to program via USB, everything has to be onboard. And it has to be as cheap as possible, cause I don't know if the hobby will stick.
posted by spacefire to Computers & Internet (23 answers total) 5 users marked this as a favorite
Arduino is programmed in C language (which has been called a portable assembly language). It is programmed via USB connected to a laptop or desktop computer.
posted by mbarryf at 5:54 AM on September 2, 2016

An old HP48 series calculator is pretty cheap on Ebay and can be programmed in machine language.
posted by Confess, Fletch at 5:55 AM on September 2, 2016 [2 favorites]


And part of the Arduino ecosystem. Plenty of low level with a few I/O ports, for $7. And if you like the environment, there are hundreds of more boards, add-ons, and other items to use there.
posted by nickggully at 5:57 AM on September 2, 2016

A Raspberry Pi Zero costs $5. (You supply the keyboard and monitor.) There are resources for learning Assembly on it.

Bear in mind that each different processor has a different Assembly instruction set, so code that will work on ARM-based hardware will not run on Intel i86-based hardware.
posted by Multicellular Exothermic at 6:11 AM on September 2, 2016 [3 favorites]

Long ago in the mysts of hardware history a single board computer with an integrated keyboard was the cheapest option to manufacture, two byte display, enter hex commands, a bit of data and go. Building something like that is possible but much more expensive than one of the Pi's or an Omega2. The baked in usb, wifi or bluetooth interfaces just are far more cost and functional effective. So you can go real world cheap practical and do assembly or go history of computing but that'll be a bit expensive. Do consider the Arduino.
posted by sammyo at 6:31 AM on September 2, 2016

How cheap do you want to go? A lot of vintage 8-bit computers can be programmed in assembly and are well documented, but getting a full set-up may not be that cheap depending on your choice in computer (ti-99/4a, Apple II, Atari, TRS-80, etc).

You could look for a z80 based single-board kit.
posted by fimbulvetr at 7:22 AM on September 2, 2016 [2 favorites]

How about a Texas Instruments EZ430 development system? It's a whole system on a USB thumb drive. You can find them on eBay for about $10, or get a new one from Digikey for $24.

The MSP430 is a very popular low-cost low-power microprocessor. TI has very good (and freely available) documentation and tools. The assembly language is pretty close to the 8051.
posted by JoeZydeco at 7:40 AM on September 2, 2016

I was going to suggest another of Lee Hart's projects, the 1802 Membership Card (as fimbulvetr linked to the Z80 one above). Unlike Arduinos and other ┬Ác development cards, the Membership Card stands alone.

They're not cheap, though: $80 in kit form.
posted by scruss at 7:52 AM on September 2, 2016 [1 favorite]

The first computer I programmed on was a KIM-1: 1K of RAM, a 6 digit LED display and 20 key keypad.

The KIM Uno is a modern re-creation of the KIM-1 using an Arduino Uno.

I think this is exactly the sort of thing you're looking for: Hand assemble your own hex code, there's a wealth of code already out there to hack on and play with, completely stand-alone...
posted by straw at 8:09 AM on September 2, 2016 [1 favorite]

The all-in-one requirement is going to limit you.

You can get an Arduino clone board for <>
If you need a PC to program it with, well, the Raspberry Pi works fine for that.
posted by neckro23 at 9:27 AM on September 2, 2016

You can't reasonably write assembly for an AVR/Arduino, or an ARM/Raspberry Pi. At least not assembly that does anything interesting. I'd go for something Z80 based. Or just x86 assembly -- it's really not that hard!
posted by miyabo at 9:27 AM on September 2, 2016

After you plug an out-of-the-box BeagleBone Black into a USB port, it creates a virtual Ethernet link to its onboard web server where you will find a JavaScript-based integrated development environment.

The thing that sets the BeagleBone Black apart from similar little machines like the Raspberry Pi is that its system-on-chip also includes a pair of 200MHz real-time processors, the PRUs. These run completely independently of the main ARM core, have simple and predictable timing, and are intended to be programmed in assembler for tight real-time applications.
posted by flabdablet at 9:56 AM on September 2, 2016

Ugh, I messed up my answer.

I meant: You can get an Arduino clone board for <$10. A proper AVR programming setup would be significantly more expensive. If you're in this for the "fun", you should probably stay away from the newer boards like the Arduino Mega or Zero -- the microcontroller on those is significantly more complex, and the chips are soldered in. Arduino Uno has a socketed controller.
posted by neckro23 at 9:56 AM on September 2, 2016

You might have to wait a few weeks to get your hands on it, but the C.H.I.P. is a $9 minicomputer that was kickstarted as an open source hardware project. It has built-in Wifi and bluetooth, and lots of other nice features.

There is also a $69 system based on it called Pocket C.H.I.P, that includes a nice touch screen display, qwerty keyboard (little buttons), and some other nice features. It runs fairly vanilla Linux, and so gives nice extra-portable access to command line utilities.

While you can program it on a low-level basis, the PocketCHIP also ships with the very fun-looking and extremely high-level PICO-8 "fantasy console" and game-making software.
posted by SaltySalticid at 10:10 AM on September 2, 2016 [2 favorites]

PICO-8 is a great idea. It's not a real assembly language, but it's pretty low-level, and there's an incredibly vibrant community of people hacking in it to do awesome stuff.
posted by miyabo at 10:30 AM on September 2, 2016

By the way, you don't have to hook up your BeagleBone Black to another computer and program it that way; you can plug a USB hub into its inbuilt USB host port, attach a keyboard and mouse to the hub, attach a monitor to its HDMI output and it's a stand-alone Linux desktop computer out of the box, onto which you can install the PRU assembler toolchain.
posted by flabdablet at 10:37 AM on September 2, 2016

thanks for the responses so far. My preferences are: a processor with some historic significance, like the 8080 or Z80. Self contained system that doesn't require any extra hardware. And, no emulation.
posted by spacefire at 3:57 PM on September 2, 2016

Err... I'm not sure how much that sort of thing exists. The closest that half an hour of thinking and a bit of research has done is that the trs80 model 100 has at least a shitty assembler written in basic.

The Psion organizers can probably self host an assembler, and they're pretty neat little ARM based handhelds.
posted by wotsac at 6:00 PM on September 2, 2016

A couple more tidy all-in-ones of yore that aren't huge (i.e the Kaypro series - which are fine old CP/M stock, but enormous by modern standards, but typical of portables of the era) are the Comodore sx-64 lugable, the Epson px-8 laptop and the NEC 8401A Starlet. The Epson HX20 is also out there, but a bit limited. In addition to the TRS80 Model 100, there's a whole class of other Kyocera derived devices, like the Model 102 and the 200, along with the NEC 8201, NEC 8300 and a Kyocera KC85, Olivetti M10 and the Cambridge z88. More recent, and more compact are the common TI 8X graphing calculator series, which are z80 based and can be persuaded to execute assembly language.

Broadly speaking though, all-in-one devices from the original 8bit era were big and clunky, with things we take for granted like cheap, high contrast LCD panels and adequate batteries sitting a decade or more in the future (I've owned many of them). The truly compact devices, like the Kyocera derived devices and the HX20 and the TI 8X calculators (or the Nintendo Game Boy) are less difficult to live with in some ways, but they're built as limited purpose tools, not general purpose devices. And the wholesale cheap miniaturization era where a pi-0 can cost $5 and fit in your wallet so profoundly postdates these processors that there's been very little effort to drag them into it. Good luck though.
posted by wotsac at 10:18 PM on September 2, 2016 [1 favorite]

The Commodore SX-64 (I have one) is rotator-cuff-bustingly heavy, has a squinty fuzzy screen, and many spectacularly non-standard and fragile parts (disk drive, screen, keyboard) even by Commodore standards. It's a bear to maintain (disk drive alignment requires a full teardown) and commands hefty prices because of its rarity.

If the OP can find a Cambridge Computer Z88 for a decent price, it can be a surprisingly okay machine. Small, light, portable (about the size of a thick paper notebook), reasonable display, amazing battery life, only semi-execrable keyboard, decent BASIC with built-in assembler. I had one and loved it. They're nearly 30 years old now, though.

The PIC32-based ELLO might also be an option.
posted by scruss at 6:07 AM on September 3, 2016 [1 favorite]

There are still folks selling vintage Apple ][+ machines on eBay. Might be a little pricier than you'd like, and might also want attention paid to capacitors inside their power supplies before they run reliably, but if you're after a fully documented machine that's simple enough to learn inside out and back to front, made mostly out of small-scale TTL chips so you can probe every signal, I'd rate the Apple ][+ as pretty much impossible to better.

The 6502 processor at the heart of the Apple ][+ is also about as historically significant as any you'll find, as well as having an architecture that's simple enough to master completely and squirrelly enough to be interesting. It's long been my favourite 8 bit design, just because it manages to drag so much performance out of so few transistors.
posted by flabdablet at 10:32 AM on September 3, 2016 [1 favorite]

The Apple ][ peripherals are also things of considerable wonder. Once you're up to speed with 6502 assembler, studying the Disk II controller until you understand it completely is a genuine top-of-mountain experience.

I think it's perfectly fair to say that if Seymour Cray was computer design's Johann Sebastian Bach, Steve Wozniak is its Jimi Hendrix.
posted by flabdablet at 10:38 AM on September 3, 2016 [1 favorite]

Thanks for all the responses. I bought a Psion 3a organizer off Ebay, since I wanted one for my handheld collection for a while. I hope it has the assembly language commands that the Psion 2 has...if not, well, it was cheap.
posted by spacefire at 10:49 AM on September 3, 2016

« Older One House, Two Lines   |   We didn't domesticate cats, they domesticated us Newer »
This thread is closed to new comments.