![]() |
#1
|
|||
|
|||
![]()
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 01:05 AM. |
#2
|
|||
|
|||
![]()
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? |
#3
|
|||
|
|||
![]()
Thank You for the program, I have put it in my Notebook !!!!
I await more programs from all of You !! Thank You Marty |
#4
|
|||
|
|||
![]() Quote:
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 |
![]() |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Loading BASIC With Tera Term | TomL_12953 | Altair 8800 | 9 | 08-28-2009 12:54 PM |
Altair Disk Basic, How Do I return to the monitor program? | lovenewyawkcity | Altair 8800 | 1 | 09-06-2008 12:51 AM |
Kenbak-1 demo program. | Geoff Harrison | Kenbak-1 | 9 | 10-14-2007 12:42 AM |