View Single Post
  #1  
Old 07-05-2007, 12:02 AM
Grant Stockly Grant Stockly is offline
Administrator
 
Join Date: Jan 2005
Posts: 447
Default Serial Loading Program

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)

Code:
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


Last edited by Grant Stockly; 07-05-2007 at 12:05 AM.
Reply With Quote