uio
| Name | Last modified | Size |
|---|---|---|
| ../ | ||
| 8K BASIC Ver 3-2.tap | 03-Oct-2026 14:40 | 7.0 KB |
| LDR8K32.HEX | 03-Oct-2026 14:40 | 79 bytes |
| README.pdf | 03-Oct-2026 14:40 | 47.6 KB |
| uio.toml | 03-Oct-2026 14:40 | 3.3 KB |
| uio.zip | 03-Oct-2026 14:40 | 43.5 KB |
88-UIO: two boards in one
Altair 8K BASIC 3.2 loads from a cassette through one 88-UIO board.
cd examples/uio
altairsim uio.toml
The machine stops at the BASIC prompts. Press Enter at MEMORY SIZE? and at TERMINAL WIDTH?.
Type Y at WANT SIN-COS-TAN-ATN?. BASIC then prints:
10312 BYTES FREE
ALTAIR BASIC VERSION 3.2
[EIGHT-K VERSION]
OK
What is different
The built-in basic8k machine needs two boards. An 88-2SIO is the console. An 88-ACR is the
cassette. This machine has one board, the MITS 88-UIO, which does both jobs.
- The 6850 serial port of the 88-UIO responds to port 0x10. This is where Port A of an 88-2SIO responds. The serial port is the console.
- The cassette section responds to port 0x06. This is where an 88-ACR responds. The cassette section is the tape.
Both sections use the standard ports. Therefore the MITS bootstrap LDR8K32.HEX runs without a
change. 8K BASIC does not know that one board does both jobs. The sense switches are 0x8C. The
header of the loader gives this value: A15 selects load from cassette, and A11 and A10 select an
88-2SIO terminal.
Try it
Type a program at the OK prompt:
10 PRINT 6*7
20 PRINT "TAPE OK"
RUN
An 88-UIO can do things that an 88-ACR cannot. Press Ctrl-E to get the monitor, then type:
SHOW uio0 ; show both sections: serial_port, port, standard, motor
SET uio0 standard=kansas ; use the Kansas City standard (2400/1200) for the modem
REWIND uio0:tape ; put the tape back at the start
Ctrl-E returns you to the altairsim> monitor at any time.
Files
| File | What it is |
|---|---|
uio.toml |
The machine file: one 88-UIO, 16K of RAM, the front panel and the console. |
8K BASIC Ver 3-2.tap |
Altair 8K BASIC 3.2, a cassette image from the period. |
LDR8K32.HEX |
The 8K bootstrap loader. The machine file puts it in memory at address 0. |
The processor runs at full speed, and the tape loads in about one second. To run at the 2 MHz
speed of the real machine, type SET cpu0 clock_hz=2000000. A 300-baud cassette then takes about
90 seconds to load.