The Altair 8800 Experience

From GlassTTY
Jump to: navigation, search

Introduction

For anyone with an interest in early 8 bit computers, even for those of us in the UK, it is impossible not to recognise the importance of the Altair 8800. Well today, I received my very own, well sort of. I am now the proud owner of an Altair clone (https://altairclone.com). This machine replicates the Altair 8800.

The back story for me having one of these is that back in 1975 my father asked me what I wanted for my 18th birthday. I showed him the Altair and he thought the idea of spending so much money on this new computer fad was ridiculous, he was one of the people who actually said ...computers will never catch on!. He recognised his mistake several years later and the comment became a great source of amusement within the family. My parents are gone now but with a legacy they have left me, it seems only fitting to use some of it to purchase the machine in his memory.

Hello World

Well, more acurately Kill the Bit and Pong. Before hooking up the terminal I thought it was important to start the session by entering two of the Altairs most famous programs starting with Kill the Bit. This program iluminates some of the front panel lights in turn and the player is asked to operate a switch at the point the light is directly above it. If you miss then more lights are added to the sequential series. The second program Pong displays, using the front panel leds, a light (ball) passing from left to right, the right hand player has to flick a switch just at the right moment to bounce the ball back to the player on the left who attempts to do the same using a switch on the left.

Terminal Required

I would love to get a period terminal for this machine but until then I have been using my Mac and Linux laptops running Minicom. I have used Minicom with my old systems in the past as it supports the usual VT and ANSI emulations and will allow character and new line delays for use when pasting text. One other option that I have found very useful, especially if you are happy with VT52 emulation is Kermit (ckermit). Great for sending and receiving files also. I use this on my Mac to talk to one of my single board machines and launch it with something like:

   kermit -8 -C "SET LINE /dev/tty.Repleo-PL2303-00002014, SET CARRIER-WATCH OFF, SET SPEED 9600, SET FLOW XON/XOFF"

This provides only VT52 emulation though.

A very nice alternative to both Minicom and Kermit when using a Mac, is the application Serial available from the Apple App Store (https://apps.apple.com/us/app/serial/id877615577?mt=12). At the time of writing, it costs just under 30USD and I would highly recomend it. A bonus with Serial is that it comes with its own serial port drivers which eliminates any serial issues prevelant in third party drivers. See Serial Port Driver Issues below.

On Windows the recomendation is to use TeraTerm as a terminal emulator and it is supplies in the download kit avaliable from https://altairclone.com.

USB-Serial Port Driver Issues

The serial port drivers supplied with the various USB-Serial adapters are notoriously unreliable, especially when using a Mac. This is easily solved with terminal emulation applications such as Serial (see above) which includes its own drivers for common USB-Serial adapters. An alternative is to purchase a set of drivers from https://www.mac-usb-serial.com/ for around 8USD. I have used these to be extremely reliable over the years.

Disk Images

With the Altair 8800 clone, disk images are sent and retrieved to a PC/Mac/Linus etc. machine using the XModem protocol. This works fine but requires the terminal speed to be changed from 9600 baud to the faster 115200 baud for the disk transfer. The speed change is reasonably slick when using TeraTerm on Windows as there are a couple of macros that will switch the speed from a key combination, however, for other terminal emulators its not so much fun.

To ease things, the machine can be configured to use the second serial port for disk transfers. this means running two terminal emulations, one for the console at 9600 baud and a second at 115200 baud for disk transfers.

To simplify things still further, I wrote a small command line utility to transfer disk images without messing with the console baud rate or having to run tw terminals. This accesses the Altair's second serial port and manages the XModem and file system activities.

For example when saving a disk to the local machine using the Altair clone Floppy Drive Menu e.g.

   === Floppy Drive Menu ===
   
   1) Change Drive Number
   2) Load Floppy from PC
   3) Save Floppy to PC
   4) Change Description
   x) Exit Menu
   
   Choice: 3
   
   Save content of "Wordstar 3" to the PC. Are you sure (y/n)? y
   
   Step 1: Set port 2 baud rate to 115.2K
   Step 2: Start XMODEM file RECEIVE after setting the baud rate... 

Once the Start XMODEM file RECEIVE... message appears, all that is required is to launch a terminal in the folder you want the disk saved to and enter.

   $ xclone -r Wordstar3.dsk
   
   Altair Clone Disk Transfer Utility Ver. 0.1
   Copyright (c) 2019 John Newcombe (https://glasstty.com)
   
   Configuring for 115200N81
   Opened port /dev/cu.Repleo-PL2303-00002014 as 115200N81
   Receiving ws3.dsk.
   
   Receiving packet: 2639
   Transfer complete!
   
   $

To send a disk image using the utility simply use the -s switch e.g.

   $ xclone -s Wordstar3.dsk

Naturally to send a disk image to the Altair clone the appropriate menu item must be selected from the Floppy Drive Menu.

The source code for the utility and the associated XCode project files are available here, https://bitbucket.org/johnnewcombe/xclone/src/master/. The code should compile both on MacOS and Linus without any issues. Please note that the xclone.conf file included within the source should be placed in /etc/.

The Altair32 Emulator

The Altair 32 emulator for Windows works well with Wine on Linux and MacOS and is a nice implementation that uses standard Altair disk formats.

The emulator comes with its own built-in VT100 terminal but also has the option to be accessed over a serial port.

When using Wine all that is required is to add a symlink from the real Linux/MacOS serial device to COM1 within Wine. So to add my Prolific USB serial adapter to wine I simply added the following symlink within the ~/.wine/dosdevices folder.

   ln -s /dev/tty.Repleo-PL2303-00002014 com1

Connecting a serial terminal to the Prolific USB adapter allows me to control the Altair32 emulator. In my case the Terminal was to be a terminal emulator running on the same machine as the emulater was running. I added a second Prolific USB serial adapter, used this with the terminal emulator software and connected a short null modem cabe between the two adapters.