5t4nd1ng @ th3 3dg3 0f 5p3ct4t10n!

Welcome to Walt Perko's Brainless.org-anizm
Too Bored? Try a Two Board Altair 8800c!

0
.
123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 12
. . . . .
. .
Altair Reference CARD.pdf
Created by Thomas Niccum

. . . . . We Need More Solutions for this Page!
. . . . .
. . How to Create a Personal DSK on the microSD card via CP/M?
. . . . .
. . . . .
.
. . . . .
. . . . .

Table of Contents

. . . . . Table of Contents
. . . . .
. So you got your Altair-Duino built! Great!
. . . . . First is to list the programs in the emulator:
. . . . . Now lets load the "Games (CP/M programs)
. . CP/M Programs from 00001) DISK01.DSK: CP/M (63k)
. . . . . Running 16K BASIC
. . . . . First test program
. Toggeling in a short program on the front panel switches
. . . . . How to Run a CP/M Program
. . . . . Making a DSK for the Altair-Duino with CP/M and MBASIC
. . ECHO the Terminal Keyboard
. . . . . How to Save a Toggled In Program in CP/M
. . . . . Mounting Multiple Disks and Copying files DSK to DSK
. Copy a file from Drive A: to Drive B:
. . . . . Setting up to use XMODEM at 9600 BAUD
. . . . . How to transfer a program from the PC to CP/M
. . MBASIC Control Characters
. . . . . Making a backup copy of a file
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .

1
. .
. . . . .
. . . . .
.
So you got your Altair-Duino built! Great!
. . . . . Next Step is connecting to TeraTerm in MS Windows
. . Connect USB cable from Altair-Duino to PC
. . . . . Right-Click the Windows ICON in the lower left of the PC screen and select "Device Manager" from the upper list.
. . . . . In the Device Manager expand the "Ports (COM & LPT) list to find the new COM port connected to your Altair-Duino computer.
. Mine say's; "USB Serial Device (COM47)
. . . . .
. . . . . On the PC/Windows START TeraTerm.exe program
. . In the TeraTerm "New Connection" screen select "O" or "C" depending upon the type of printer output you want.
. . . . .
. . . . . In the Port: window select the COM port you saw in your "Device Manager"
. Mine is: COM47:USB Serial Device (COM47)
. . . . . Next is to set the BAUD rate by Selecting the "Setup"
. . . . . In the Pull-Down list select "Serial port setup"
. . In the window select 115200 and leave everything else alone!
. . . . . Now you're connected with your Altair-Duino.
. . . . .
.
. . . . .
. . . . .

2
. .
. . . . .
. . . . .
. First is to list the programs in the emulator:
. . . . . The AUX1 Switch is the left AUX Switch and AUX2 Switch is the Right AUX Switch
. . . . . With all the address/data switches down press AUX1 switch down
. . You should see a list drop down in the Terminal screen
. . . . . The left numbers are the addresses of the programs for loading
. . . . .
. Now lets goto the next program list
. . . . . Select Address Switch 12 UP ... now A12 = 1
. . . . . Next is to press the AUX2 switch down
. . You should see a new list below the first with more loadable programs
. . . . .
. . . . .
.
IF you stretch the TeraTerm window down to see all the text so far you will have to move the right slider back up to the top to find the text again.
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .

3
. .
Now lets load the "Games (CP/M programs)
. . . . .
. Using the binary address to the left of the name set the address/data switches starting from the right working left
. . . . . When you have the 00 000 101 set on the switches then press AUX2 down again
. . . . . You will see: [Mounted disk image 'DISK05.DSK: Games (CMP/M programs)' in drive 01
. . Now you need to go back to the first program list
. . . . . Select all the address/data switches DOWN
. . . . . Then press AUX1 (the left AUX switch) DOWN
. In the list you will see "00001000)Disk boot ROM"
. . . . . Set the address/data switches starting from the right to that address
. . . . . Press AUX1 DOWN
. . You should see [Running Disk boot ROM] some more CP/M etc. then an A> prompt
. . . . .
. . . . . At the "A>" prompt type "DIR"
. Now you have a list of the games on that disk.
. . . . . Type in the name of the program you want to run and hit "ENTER"
. . . . .
. .
. . . . .
. . . . .

4
. .
CP/M Programs from 00001) DISK01.DSK: CP/M (63k)
. . . . .
. ASM.COM
. . . . . This is an 8080 assembler
. . . . .
. . CRC.COM
. . . . . CRC is a mathematical algorithm to check the integrity of a file or data.
. . . . .
. Debugger
. . . . . DDT.COM
. . . . .
. . DUMP.COM
. . . . . Hex dump of a file
. . . . .
. ED.COM
. . . . . Text editor
. . . . .
. . FORMAT.COM
. . . . . Format (erase) a disk. Use with caution!
. . . . .
. L80.COM
. . . . . linker for relocatable object format
. . . . .
. .
. . . . .
. . . . .
. LADDER.COM
. . . . . The 1975 LADDER game. A platform game using ASCII text. It's fun. Try it. Use the numeric keypad for control (7=left, 6=right, space=jump)
. . . . . Predates the Donkey Kong game that came out in 1981.
. . LOAD.COM
. . . . . Another debugging/software development tool. Loads hex files into memory so you can save them back out as binary (COM) files
. . . . .
. LS.COM
. . . . . Sorted directory listing with file sizes
. . . . .
. . M80.COM
. . . . . MAC.COM
. . . . . Assemblers
. MBASIC.COM
. . . . . Microsoft BASIC-80
. . . . .
. . MOVCPM.COM
. . . . . IIRC, this is used to install CP/M to a different disk
. . . . . Relocate CP/M for other memory configurations
. NSWP.COM
. . . . . This is an early disk manager. There are definitely better ones out there!
. . . . .
. . OTHELLOW.COM
. . . . . Ever wanted to play Othello? Here's your chance
. . . . .
. PCGET.COM
. . . . . Download files via XMODEM from the PC.
. . . . .
. . PCPUT.COM
. . . . . Upload files via XMODEM to the PC.
. . . . .
. PIP.COM
. . . . . Copy files. CP/M does not have an internal COPY command, so you use PIP
. . . . . PIP dest=src (e.g. B:=A:filename.ext)
. . B: gets the file from A:
. . . . . Read as B: becomes equal to the filename on A:
. . . . .
. STAT.COM
. . . . . Shows detail disk information
. . . . .
. . SUBMIT.COM
. . . . . Batch file processor. Lets you run a sequence of commands. Create a SUB file with a list of commands (like a DOS batch file)
. . . . . SUBMIT filename
. SURVEY.COM
. . . . . Customer satistfaction survey ... Just kidding!
. . . . . This analyzes the memory and ports on your computer to show what's free and what's in use.
. . SYSGEN.COM
. . . . . Create a CP/M system disk. IIRC, this can also let you change the memory reserved for the TPA - either for smaller RAM systems
. . . . . or for systems with ROM boards that limit your free RAM ... or write a relocated CP/M onto the system tracks
. VIEW.COM
. . . . . List a file, one screen at a time
. . . . .
. . WM.COM
. . . . . Editor mainly for source code
. . . . . Word Processor
. XSUB.COM
. . . . . Submit batch processor extension to redirect input/output from interactive programs
. . . . .
. .
. . . . . Info was graciously provided by Tom Wilson and Udo Munk
. . . . .

5
.
. . . . .
. . . . .
. .
Running 16K BASIC
. . . . .
. First thing we need to do is STOP the computer program currently running
. . . . . Press the "STOP/RUN" switch UP. As a habit I then press the "RESET" switch UP.
. . . . .
Loading 16K BASIC is a good start
. . . . . With all the address/data switches down press the AUX1 switch down
. . . . . In the list you'll find: "00000110) 16k ROM Basic"
. Set the address/data switches staring from the right again
. . . . . Press the AUX1 switch down to load the 16K BASIC
. . . . . After a moment you'll see [Runnig 16K ROM Basic]
. . Then you'll see; "MEMORY SIZE?" ... Hit ENTER
. . . . . At this time you want to have your Caps Lock ON
. . . . . Then comes "LINEPRINTER?" and here you type in a capital "O"h and
. Next you'll see; "48101 BYTES FREE"
. . . . . "OK"
. . . . .

6
. .
First test program
. . . . .
. Type in;
. . . . . 10 FOR I=0 TO 9
. . . . . 20 PRINT I,SIN(I)
. . 30 NEXT I
. . . . . LIST
. . . . . RUN
. You should see a list of positive and negative numbers like this;
. . . . .
. . . . . 0 0
. . 1 .841471
. . . . . 2 .909298
. . . . . 3 .14112
. 4 -.756802
. . . . . 5 -.958924
. . . . . 6 -.279416
. . 7 .656987
. . . . . 8 .989358
. . . . . 9 .412118
. OK
. . . . .
. . . . .

7
. .
Toggeling in a short program on the front panel switches
. . . . .
ZERO MEMORY program
. . . . . This is a very simple program to zero out all the memory except the first few bytes in the machine.
. . . . .
. . Set all address/data switches "DOWN"
. . . . . Press "STOP"
. . . . . Press "RESET"
. Set the D7 to D0 switches to 00 110 011
. . . . . Press the "DEPOSIT" switch UP
. . . . . Set the D7 to D0 switches to 11 000 111
. . Press the "DEPOSIT NEXT" switch "DOWN"
. . . . . You can double check your program entry by first "RESET" UP
. . . . . Then with all the address/data switches "DOWN" pressing "EXAMINE" UP
. You'll see the DATA LEDs as: "OFF OFF ON ON OFF OFF ON ON"
. . . . . Then press "EXAMINE NEXT" "DOWN"
. . . . . You should have seen the second program byte as: "ON ON OFF OFF OFF ON ON ON"
. . Now hit "RESET" again to go back to address zero
. . . . . or with all the address/data switches "DOWN" you can press the "EXAMINE" switch UP
. . . . . Next you press the "STOP/RUN" switch DOWN to run the program
. Wait about 1-minute or until the LEDs seem to stablize with just the far left two or so LEDs flashing, then press the "STOP/RUN" switch UP to stop the
. . . . . program.
. . . . . Now press the "RESET" to get back to the zero address of the machine.
. . From here start with "EXAMINE NEXT" and after the first few addresses, all the "DATA LEDs" should stay OFF showing the memory is zeroed out.
. . . . . This way if you toggle in a program and set the output data at a higher address you know that address is zero before the program
. . . . . runs and so if there's new data you'll see that data in that address and not some random left over data from another program.
.
. . . . .
. . . . .

8
. .
How to Run a CP/M Program
. . . . .
. All Address/Data Switches DOWN except for A12 and A0 UP
. . . . . Press AUX2 (Right AUX Switch) DOWN to "Mount 00001) DISK01.DSK: CP/M (63k) to Drive 0
. . . . . Now Mount the CP/M Program Disk from the choices
. . e.g., 00101) DISK05.DSK: Games (CP/M programs)
. . . . . Switches A12, A2 and A0 UP
. . . . . Press AUX2 (Right AUX Switch) DOWN
. You will see: [mounted disk image 'DISK05.DSK: Games (CP/M programs)' in drive 0]
. . . . . Next is to RUN the 00001000) Disk boot ROM
. . . . . Switches A12 and A3 UP
. . Press AUX2 (Left AUX Switch) DOWN
. . . . . You should see;
. . . . . 62K CP/M
. Version 2.2mits (07/28/80)
. . . . . Copyright 1980 by Burcon Inc.
. . . . .
. . A>
. . . . . Now you type: DIR
. . . . . A>DIR
. and you will see;
. . . . . A: CHASE BAS . . . : LADDER COM : CATCHUM COM : CATCHUM DAT
. . . . . A: PCGET COM . . .: LADDER DAT . : LS COM . . . . . . . : PCPUT COM
. . A: 8080PRE COM . : SURVEY COM . : VIEW COM . . . . : 8080EXM COM
. . . . . A: LUNAR BAS . . . : TST8080 COM . : CPUTEST COM : MBASIC COM
. . . . . A: PIP COM . . . . . . .: STAT COM . . . . : SYSGEN COM . : NSWP COM
. A: OTHELLO COM .: STARTRK BAS .: TICTAK BAS . . .: WM COM
. . . . . A: WM HLP . . . . . . .: MOVCPM COM : STARINS BAS
. . . . . A>
. . From here you can just type in the name of a .COM program at the A> prompt and it should run.
. . . . .
. . . . .
.
. . . . .
. . . . .

9
. .
. . . . .
Making a DSK for the Altair-Duino with CP/M and MBASIC
. . . . . Connect the microSD card to the PC
. Edit the DISKDIR.TXT file and add your name into the list like so;
. . . . .
. . . . . ---------------------------------------------
. . Available disks images:
. . . . . 00001) DISK01.DSK: CP/M (63k)
. . . . . ...
. BINARY ADDRESS for switch settings, DSKID#HEX and Disk Title from DISKINFO.TXT
. . . . . 11000) DISK18.DSK: Walt's Development Disk0
. . . . . 11001) DISK19.DSK: Walt's Programs & Data Disk1
. . 11010) DISK1A.DSK: Walt's BASIC Programs Disk2
. . . . . 11011) DISK1B.DSK: Walt's Assembler Programs Disk3
. . . . . Then save the file and install the microSD card back into the Altair-Duino computer.
. Holding the STOP switch UP press the AUX1 switch UP to go into the Arduino File Manager System. (Page 8 of the Altair-Duino Manual)
. . . . . IMPORTANT! Caps and Lower Case is IMPORTANT in this Program!
. . . . . Select F to enter the (F)ile manager for SD card
. . Select d to list the files on the SD card.
. . . . . Select c to copy DISK01.DSK to a new DSK and name it DISK18.DSK
. . . . . Do that again to create DISK19.DSK
. Select x to Exit
. . . . . Select x to Exit
. . . . . Now with address switch A12 UP, press AUX2 DOWN to see your two new disks in the list.
. . Next, Set the address/data switches to 11000 and then press AUX2 DOWN
. . . . . This mounts your new DSK to the Altair.
. . . . . [mounted disk image 'DISK18.DSK' in drive 0]
. Now set address/data switches to 11001 and Press AUX2 DOWN
. . . . . [mounted disk image 'DISK19.DSK' in drive 1]
. . . . . Now set address/data switches to 11010 and Press AUX2 DOWN
. . [mounted disk image 'DISK1A.DSK' in drive 2]
. . . . . Now set address/data switches to 11011 and Press AUX2 DOWN
. . . . . [mounted disk image 'DISK1B.DSK' in drive 3]
. Next, Set the address switches to 01000 and press AUX1 DOWN to run CP/M from your new DSK.
. . . . . [Running Disk boot ROM]
. . . . .
. . 63K CP/M
. . . . . Version 2.2mits (07/28/80)
. . . . . Copyright 1980 by Burcon Inc.
.
The Altair 8" Floppy Disk is 308KBytes
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .

10
. .
. . . . .
. . . . .
.
ECHO the Terminal Keyboard
. . . . . This is a SIO (not 2SIO) Echo Test
. .
. . . . . 0000 . . . . . . . . . . . . . . . . . . . . . . . . . org . . . . . . . 0
. . . . . 0000 DB00 . . . . . . . . loop . . . . . . . . in . . . . . . . . 00h . . . . . . . . ; wait for character
. . 0002 0F . . . . . . . . . . . . . . . . . . . . . .. rrc
. . . . . 0003 DA0000 . . . . . . . . . . . . . . . . . . jc . . . . . . . . loop . . . . . . .. ; nothing yet (negative logic)
. . . . . 0006 DB01 . . . . . . . . . . . . . . . . . . . . in . . . . . . . . 01h . . . . . . . . ; read the character
. . 0008 D301 . . . . . . . . . . . . . . . . . . . . out . . . . . . .. 01h . . . . . . . . ; echo the character
. . . . . 000A C30000 . . . . . . . . . . . . . . . . . . jmp . . . . . . . loop
. . . . .
. On the Front Panel Switches;
. . . . First Hold the STOP switch UP, Press the RESET switch UP for a Hard Reset of the Altair 8800
. . . .
. Set all the address switches DOWN for address 0000h
. . . . .
. . . . Now you can enter the program using the front panel switches.
. .
Octal Program Listing for Quick Front Panel Toggle Switch Entry;
. . . . .
. . 000: 333 000 017 332 000 000 333 001
. . . . . 010: 323 001 303 000 000
. . . . .
.
. . . . .
. . . . .

11
. .
How to Save a Toggled In Program in CP/M
. . . . .
. When you get the A> prompt, STOP RESET , EXAMINE 400 octal and enter the following 3 bytes:
. . . . . 303 DEPOSIT
. . . . . 000 DEPOSIT NEXT
. . 000 DEPOSIT NEXT
. . . . . This is a short program JMP 0 instruction. Now, EXAMINE 0 octal, and RUN you should be back at the CP/M A> prompt. Do the following command:
. . . . . SAVE 1 REBOOT.COM
.
. . . . . You now have a COMmand program! Enter
. . . . . A>REBOOT
. . and CP/M will reboot - Your first program!
. . . . .
. . . . . IF you set all the address switches DOWN and Hit Run you are back to CP/M and you can do this for any program you toggle in on the front panel
.
. . . . .
. . . . .

12
. .
Mounting Multiple Disks and Copying files DSK to DSK
. . . . .
. Remember with A12 UP and all other address switches DOWN Pressing AUX2 DOWN gives a list of available disk images
. . . . . Setting A8 UP will Mount a disk into drive 1 = B:
. . . . . Setting A8 DOWN will Mount a disk into drive 0 = A:
. . Setting A9 and A8 UP will Mount a disk into drive 2 = C:
. . . . .
. . . . .
.
Copy a file from Drive A: to Drive B:
. . . . .
. . PIP B:=A:filename.ext
. . . . .
. . . . . Reads as B: becomes equal to A:filename.ext
.
. . . . .
. . . . .

13
. .
Setting up to use XMODEM at 9600 BAUD
. . . . .
. Enter the Altair-Duino "Configuration Editor"
. . . . . Stop switch UP and AUX1 UP
. . . . . Make the settings look like the following;
. . Configure host serial settings
. . . . .
. . . . . (0) USB Programming Port : 115200 baud
. (1) Serial (pin 18/19) : 9600 baud 8N1
. . . . . (2) USB Native Port : 115200 baud
. . . . . (3) Serial (pin A6/A7) : 9600 baud 8N1
. . (4) Serial (RXL/TXL) : 9600 baud 8N1
. . . . .
. . . . . (P)rimary host serial : USB Programming Port
. (A)pply host serial settings
. . . . . E(x)it to main menu
. . . . .
. . Command:
. . . . . Command: S
. . . . . Save as config # (0=default): 1
.
. . . . . Configuration #01 exists. Overwrite (y/n)?y
. . . . .
. . Command: x
. . . . . Apply new host serial settings (y/n/ESC)? y
. . . . . [will revert to old settings if new settings not confirmed within 30 seconds]
.
. . . . . Now set TeraTerm to 9600 BAUD and type a "y" to confirm the new configuration
. . . . .
. .
. . . . .
. . . . .

14
.
How to transfer a program from the PC to CP/M
. . . . .
. . A>PCGET.COM filename
. . . . . Send the file now using XMODEM...
. . . . .
. Transfer Complete
. . . . .
. . . . . A>
. .
. . . . . Now you can do a DIR and see the file in the list of files.
. . . . . Try a LS and check the file size against the PC file.
.
. . . . .
. . . . .

15
. .
MBASIC Control Characters
. . . . .
.. Ctrl+A = Entering Edit Mode on the line being typed.
. . . .. Ctrl+C = Interrupt the current program execution = STOP the Running Program return to MBASIC command level.
. . . .. Ctrl+G = Ring the terminal bell.
. . Ctrl+H = Backspace deleting the last character typed.
. . . . . Ctrl+I = Tab
. . . . . Ctrl+O = Halts program output while execution continues. Second Ctrl+O Resumes
. Ctrl+R = Tetypes the line that is currently being typed.
. . .... Ctrl+S = Suspends program execution.
. . . .. Ctrl+Q = Resumes program execution after a Ctrl+S
. . Ctrl+U = Deletes the line that is currently being typed.
. . . ...
. . . . .
.
. . . . .
. . . . .

16
. .
Making a backup copy of a file
. . . . .
. D: ED COM : ASM COM : LOAD COM : DEMO ASM
. . . . .
. . . . . D>C:PIP D:SPEAK1.ASM=D:DEMO.ASM
. .
. . . . . D: ED COM : ASM COM : LOAD COM : DEMO ASM D: SPEAK1 ASM
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .

Spare!
. .
. . . . .
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .

Spare!
. .
. . . . .
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .

Spare!
. .
. . . . .
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .

Spare!
. .
. . . . .
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .

Spare!
. .
. . . . .
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .
. .
. . . . .
. . . . .
.
. . . . .
. . . . .