5t4nd1ng @ th3 3dg3 0f 5p3ct4t10n!
Welcome to Walt Perko's Brainless.org-anizm
0
. . . . . |
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
. .
. . . . . . . . . . |
.
. . . . . 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
. . . . . . . . . . |
.
. . . . . |
. .
. . . . . . . . . . |
.
. . . . . . . . . . |
3
. .
. . . . . |
.
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
. .
. . . . . |
.
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 Konggame 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
.
. . . . . . . . . . |
. .
. . . . . |
.
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. . . . . . |
. . . . . 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
. .
. . . . . |
.
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
. .
|
. . . . . |
. .
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
. .
. . . . . |
.
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
. .
. . . . . |
.
Edit the DISKDIR.TXTfile 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 Fto enter the (F)ile manager for SD card |
. .
Select dto list the files on the SD card. . . . . . Select cto copy DISK01.DSK to a new DSK and name it DISK18.DSK . . . . . Do that again to create DISK19.DSK |
.
Select xto Exit . . . . . Select xto 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 mountsyour 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. |
.
. . . . . |
. .
. . . . . . . . . . |
.
. . . . . . . . . . |
10
. .
. . . . . . . . . . |
. |
. .
. . . . . 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. |
. .
|
. .
000: 333 000 017 332 000 000 333 001
. . . . . 010: 323 001 303 000 000 . . . . . |
.
. . . . . . . . . . |
11
. .
. . . . . |
.
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
. .
. . . . . |
.
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:
. . . . . . . . . . |
.
. . . . . |
. .
PIP B:=A:filename.ext
. . . . . . . . . . Reads as B: becomes equal to A:filename.ext |
.
. . . . . . . . . . |
13
. .
. . . . . |
.
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
.
. . . . . |
. .
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
. .
. . . . . |
..
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
. .
. . . . . |
.
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!
. .
. . . . . . . . . . |
.
. . . . . . . . . . |
. .
. . . . . . . . . . |
.
. . . . . . . . . . |
. .
. . . . . . . . . . |
.
. . . . . . . . . . |