Here's my Motorola S-record hex loader, HEXLOAD. It's primary function is to allow loading from the 680b-UIO's serial port. On my 680b, the main serial port is connected to a Teletype ASR33, at 110 baud. the 680b-UIO serial port is set up for RS232 at 9600 baud - much faster. I use this faster port with either my Ghielmetti high-speed paper tape reader, or with a USB-to-serial dongle on my laptop. Altair Basic takes around 35 minutes to load from the Teletype, but only about 3 minutes at 9600 baud. To load larger programs (such as Altair Basic, the 680 assembler/editor, or my memory test program) from the high-speed serial port: First use the Altair 680b PROM Monitor's 'L' command to load HEXLOAD (via the Altair 680's main serial port, e.g. from paper tape) into memory at 8000h. (On my system, this is where I have set the 1K onboard RAM.) Then type 'J 8000' to run HEXLOAD. Begin sending an S-record file when the Altair 680b prints CR LF on the console. HEXLOAD adds a few features not found in the PROM Monitor's 'L' loader: 1) It reads back from memory after each write, to insure a correct write. 2) It blocks any attempt to write above 7FFFh (so that a load won't overwrite the loader or write to the I/O ports) 3) It checks for illegal hexadecimal characters, and 4) It checks the checksum of each record. In each of these four cases, the loader will report (on the console) the error, and the memory address associated with the error. (The PROM Monitor does check the ASCII characters and the checksums, but just aborts on any error - it gives you no idea what caused the error.) Any error is reported as 6 characters, before control is returned to the PROM Monitor. The first character is the error code: M,A,H,C for Memory write error, Address out of bounds, illegal Hex character, Checksum error. The second character printed is '?'. The last 4 characters are the offending address in hex. This program is deliberately minimalist, in keeping with the spirit of the Altair 680b. It is only 180 bytes long :-) Note that this program (as well as my memory test program) include a 1-byte S-record at the beginning and end of the file that turn off character echo during loading, then turn it back on when done. This is the same thing MITS did with their paper tape formats of their software. Note that the .obj file is once again the S-record file... Cheers, Martin Eberhard Nov 15 2011