PDA

View Full Version : Serial Loading Program


Grant Stockly
07-05-2007, 12:02 AM
I have a 1702A EPROM programmer loaned to me hooked up to my Altair 8800. This programmer can only be used with an Altair 8800 or S-100 based computer. With the help of some other people I was able to recreate the VTL-2 EPROM set for the Altair 680. The data is 768 bytes and I did not want to toggle in all of it!

So I used a simple serial loader program that I wrote a while back.

It is located at 0x1000 in memory and halts when the specified number of bytes has been read.

Here it is for those who are interested: (I assembled it using A85)

01 0000 ;Serial loader to get 768 bytes into RAM to burn VTL-2 for the 680
02 0000 ;
03 0000 .EQU CONT,0 ;CONTROL/STATUS PORT OF 2SIO CARD
04 0001 .EQU DATA,1 ;DATA PORT OF 2SIO CARD
05 0000 .EQU LOWADDR,H'00
06 0003 .EQU HIGHADDR,H'03
07 0000 ;
08 1000 .org H'1000 ;1000 IS STARTING POINT IN MEMORY
09 1000 ;.org H'7BFD ;31000 is STARTING POINT IN MEMORY
10 1000 ;
11 1000 ;
12 1000 3E03 RESET: MVI A, H'03 ;MASTER RESET
13 1002 D300 OUT CONT
14 1004 3E15 MVI A, H'15 ;CLK/16, 8N1, RTS LOW TX/RX INTERRUPTS DISABLED
15 1006 D300 OUT CONT
16 1008 210000 LXI H, H'0000 ;STARTING ADDRESS IN MEMORY FOR IMAGE
17 100B DB00 LOADLP: IN CONT ;WAIT FOR RX BUFFER TO BE FULL
18 100D E601 ANI H'01
19 100F CA0B10 JZ LOADLP
20 1012 DB01 IN DATA ;GET DATA
21 1014 77 MOV M, A ;STORE TO RAM
22 1015 23 INX H ;INCREASE ADDRESS POINTER
23 1016 7D MOV A,L ;COMPARE LOW MEMORY POINTER TO GOAL
24 1017 FE00 CPI LOWADDR
25 1019 C20B10 JNZ LOADLP ;NOT EQUAL, CONTINUE
26 101C 7C MOV A,H ;COMPARE HIGH MEMORY POINTER TO GOAL
27 101D FE03 CPI HIGHADDR
28 101F C20B10 JNZ LOADLP ;NOT EQUAL, CONTINUE
29 1022 ;*******************************
30 1022 ;* The memory image has been downloaded. You can choose between two
31 1022 ;* next steps. One is to jump right to address 0000 and start running
32 1022 ;* the image. The second is to halt the computer. If you choose halt
33 1022 ;* you will have to reset the Altair, examine address 0000, and then
34 1022 ;* press run to boot basic
35 1022 ;*******************************
36 1022 ; JMP H'0000 ;MEMORY IMAGE DOWNLOADED, JMP to 0000
37 1022 76 HLT
38 1023 ;
CONT =0000
DATA =0001
HIGHADDR=0003
LOADLP =100B
LOWADDR =0000
RESET =1000

sje
07-05-2007, 12:04 PM
Although it may not make a difference here, I learned a while back that the first instruction in any power-up/bootstrap should be "disable system interrupts". Just in case there might be some chatty random timer or peripheral.

You mention the Altair 680. I see these from time to time on the auction sites. Are you planning a replica for it?

marty
07-05-2007, 03:17 PM
Thank You for the program, I have put it in my Notebook !!!!
I await more programs from all of You !!
Thank You Marty

Grant Stockly
07-08-2007, 09:42 AM
You mention the Altair 680. I see these from time to time on the auction sites. Are you planning a replica for it?


I couldn't answer your question until the official website was up. It is now, so the answer to your question is YES. :)

Click here:

http://www.altair680kit.com/index.html