The insides of a vacuum tube computer

1950s Vacuum Tube Computer Replica Communicates Through USB

When we talk about a “computer” today, we generally picture an electronic machine that can perform various kinds of mathematical operations, manage its program flow, move data from one place to another, and string all these functions together to perform some useful task. But once upon a time there were machines that could perform only a subset of these functions; these might be classified somewhere between computers and calculators.

One such machine was the Elektronensaldierer ES 24, built in 1955 by German computer pioneer Heinz Nixdorf. Its name translates as “electronic balancer”, with “balance” in the accounting sense meaning the difference of assets and liabilities. Designed to interface with a punch card machine from French manufacturer Bull, it contained several hundred vacuum tubes and could be used to add and subtract numbers stored on those punch cards.

[Henry Westphal] decided to make a modern copy of the ES 24 (translated), based on Nixdorf’s original schematics, for display in the HNF computer museum in Paderborn. The result is a huge display containing 204 tubes as well as a massive power supply. Like the 1955 original it can add incoming numbers and output the result as a twelve-digit decimal number. To make its inner workings visible, [Henry] also added a status light to each tube, showing whether it is storing a “0” or a “1”. This makes for a beautiful Blinkenlights display that shows the bits moving through the machine’s inner circuits.

Continue reading “1950s Vacuum Tube Computer Replica Communicates Through USB” →

DIY Infrared Calculator Printer

[Ziggurat29] had been playing around with infrared protocols, and realized he had a spare point-of-sale printer kicking around in his junk box. So he decided to whip up his own calculator infrared printer by bolting on an STM32 Blue Pill module and an IR receiver. [Ziggurat29] initially thought such a homemade printer would be cheaper than a commercial HP 82240 IR printer, even a used one. In hindsight, these point-of-sale printers can be pricey. If you don’t have one laying around, it may be cheaper to buy one, but not as fun as building it yourself.

It used to be commonplace for calculators to have a printing mechanism — even entirely mechanical adding machines often had them. As electronic calculators became the norm, the printer began to fade away. Back in 1987, HP introduced a portable calculator printer, the HP 82240A (see HP Journal Oct 1987). The calculator could print using a one-way infrared protocol which came to be known as Redeye. This made good sense, since not every one needs a printing calculator. As well, if you had one of these printers, it could be used with multiple calculators. Later in 1991, HP added a bi-directional infrared link called SIR beginning with the HP 48SX calculator (see HP Journal Jun 1991), allowing calculators to communicate with each other or with an IR-equipped PC. Finally HP and other companies teamed up in 1995 to create the IrDA standards you are probably more familiar with. But a bunch of Redeye and SIR devices are still floating around, and even some modern calculators like SwissMicros offerings can still output to these printers.

If you want to make your own IR printer, be sure to check out [ziggurat29]’s Hackaday.io project. Also [Martin Hepperle] has an excellent writeup on an Arduino-based project on his site. We also covered a reverse project way back in 2011, an adaptor that prints over IR from wired serial signals. Have you found a printing calculator, or a standalone printer like this, to be useful in your workflow? Let us know in the comments below.

Turing Ring Is Compact

One of the problems with a classic Turing machine is the tape must be infinitely long. [Mark’s] Turing Ring still doesn’t have an infinite tape, but it does make it circular to save space. That along with a very clever and capable UI makes this one of the most usable Turing machines we’ve seen. You can see a demo in the video below.

The device uses an Arduino Nano, a Neopixel ring, an encoder, and a laser-cut enclosure that looks great. The minimal UI has several modes and the video below takes you through all of them.

Continue reading “Turing Ring Is Compact” →

Single Bit Computer From Vacuum Tubes

Culminating a year-long project, [Usagi Electric] aka [David] has just wrapped up his single-bit vacuum tube computer. It is based on the Motorola MC14500 1-bit industrial controller, but since [David] changed the basic logic unit into an arithmetic-logic unit, he’s dubbing it the UE14500. Built on a wooden panel about 2.5 x 3 rabbit lengths excluding power supply. [David] admits he has cheated a little bit, in that he’s using two silicon diodes instead of a 6AL5 dual diode tube in his universal NOR gate on which the computer is based — but in his defense he notes that plenty of vacuum tube computers of the era used silicon diodes.

The tube he uses in the NOR gates is the 6AU6 miniature pentode, which he selected because of its availability, price, and suitability for low voltage. [David] runs this computer with two power supplies of +24 and -12 VDC, rather than the hundreds of volts typically used in vacuum tube designs. The modules are constructed on single-sided copper-clad PCB panels etched using a milling machine. The video below the break wraps up the 22-part series, where he fixes a few power supply issues and builds a remote front panel for I/O, and gives a demo of the computer in operation. Alas, this only completes one fourth of the project, as there are three more building blocks to build before the whole system is complete — Program Control (magnetic tape), RAM Memory bank, and a serial input/output module. We look forward to seeing the whole system up and running in the future.

We just wrote about the MC14500 a few days ago, and we’ve also covered [David]’s vacuum tube implementation of a 555 timer among other of his vacuum tube projects, several of which are featured on his Hackaday.io page.

Continue reading “Single Bit Computer From Vacuum Tubes” →

6502 Goes FPGA (Again)

While there has been no shortage of FPGA-based recreations of classic processors, we always enjoy seeing a new approach. Last month [Some Assembly Required] took on the challenge to recreate a classic computer from the ground up and started with a 6502 implementation in Verilog. You can see in the second video below that he’s made good progress and there are apparently more videos to come.

The ROL instruction is the subject of the second video. We liked the approach of looking at what the instruction does and how many cycles it takes on different variants It is always good to make sure you know exactly what you are trying to accomplish before you get started.

Continue reading “6502 Goes FPGA (Again)” →

WS2812s On A 6502

We can still remember when the WS2812 LED first came into our consciousness, way back in the mists of time. The timing diagrams in the datasheet-of-questionable-veracity made it sound quite tricky, with tight timing tolerances and essentially a high-speed two-bit PWM data protocol at 500 kHz. It was a challenge to bit-bang with an ATtiny85 back then, but there’s no way something as old and crusty as an Apple II would be up to snuff, right?

[Anders Nielsen] took up the challenge of getting the venerable 6502 processor to drive Neopixels and won! After all, if the chip is good enough for Bender and the Terminator T-800, it should be able to blink some colored LEDs, right? The secret sauce is shift registers!

Specifically, [Anders] abuses the 74LS165 parallel-in, serial-out shift register for his dirty work. Instead of bit-banging the WS2812’s “long high is a 1, short high is a 0” signal directly, the first few bits of the shift register are hard-wired to VCC and the last few to GND.

The bits in the middle determine if the pulse shifted out is long or short, and they’re set by the 6502, through a 6522 VIA chip, just like the Apple II would have. Clocking the data out of the shift register handles the timing-critical stuff. Very clever!

Video below the break.

Continue reading “WS2812s On A 6502” →

Building MS-DOS From Scratch Like It’s 1983

Building a complete operating system by compiling its source code is not something for the faint-hearted; a modern Linux or BSD distribution contains thousands of packages with millions of lines of code, all of which need to be processed in the right order and the result stored in the proper place. For all but the most hardcore Gentoo devotees, it’s way easier to get pre-compiled binaries, but obviously someone must have run the entire compilation process at some point.

What’s true for modern OSes also holds for ancient software such as MS-DOS. When Microsoft released the source code for several DOS versions a couple of years ago, many people pored over the code to look for weird comments and undocumented features, but few actually tried to compile the whole package. But [Michal Necasek] over at the OS/2 Museum didn’t shy away from that challenge, and documented the entirely-not-straightforward process of compiling DOS 2.11 from source.

The first problem was figuring out which version had been made available: although the Computer History Museum labelled the package simply as “MS-DOS 2.0”, it actually contained a mix of OEM binaries from version 2.0, source code from version 2.11 and some other stuff left from the development process. The OEM binaries are mostly finished executables, but also contain basic source code for some system components, allowing computer manufacturers to tailor those components to their specific hardware platform.

Compiling the source code was not trivial either. [Michal] was determined to use period-correct tools and examined the behaviour of about a dozen versions of MASM, the assembler likely to have been used by Microsoft in the early 1980s. As it turned out, version 1.25 from 1983 produced code that most closely matched the object code found in existing binaries, and even then some pieces of source code required slight modifications to build correctly. [Michal]’s blog post also goes into extensive detail on the subtle differences between Microsoft-style and IBM-style DOS, which go deeper than just the names of system files (MSDOS.SYS versus IBMDOS.COM).

The end result of this exercise is a modified DOS 2.11 source package that actually compiles to a working set of binaries, unlike the original. And although this does not generate any new code, since binaries of DOS 2.11 have long been available, it does provide a fascinating look into software development practices in an age when even the basic components of the PC platform were not fully standardized. And don’t forget that even today some people still like to develop new DOS software.