|
|
|
@ -4,7 +4,7 @@ |
|
|
|
; PROVIDES THE CAPABILTY TO UPDATE ROMWBW FROM THE SBC BOOT LOADER USING |
|
|
|
; AN XMODEM FILE TRANSFER. |
|
|
|
; |
|
|
|
; THIS TOOL CAN BE LAUNCHED FROM THE ROMWBW BOOT LOADER USING OPTION 'R'. |
|
|
|
; THIS TOOL CAN BE LAUNCHED FROM THE ROMWBW BOOT LOADER USING OPTION 'X'. |
|
|
|
; |
|
|
|
; OPTION (C) AND (S) - CONSOLE AND SERIAL DEVICE |
|
|
|
; |
|
|
|
@ -50,7 +50,7 @@ |
|
|
|
; IF THE UPDATE FAILS IT IS RECOMMENDED THAT YOU RETRY BEFORE REBOOTING OR |
|
|
|
; EXITING TO THE SBC BOOT LOADER AS YOUR MACHINE MAY NOT BE BOOTABLE. |
|
|
|
; |
|
|
|
; OPTION (X) - EXIT TO THE SBC BOOT LOADER. THE SBC IS RELOADED FROM ROM AND |
|
|
|
; OPTION (Q) - EXIT TO THE SBC BOOT LOADER. THE SBC IS RELOADED FROM ROM AND |
|
|
|
; EXECUTED. AFTER A SUCCESSFUL UPDATE A REBOOT SHOULD BE PERFORMED. HOWEVER, |
|
|
|
; IN THE CASE OF A FAILED UPDATE THIS OPTION COULD BE USED TO ATTEMPT TO |
|
|
|
; LOAD CP/M AND PERFORM THE NORMAL XMODEM / FLASH PROCESS TO RECOVER. |
|
|
|
@ -60,12 +60,13 @@ |
|
|
|
; THE CURRENT FLASH. |
|
|
|
; |
|
|
|
; OPTION (1) AND (2) - CALCULATE AND DISPLAY CRC32 OF 1ST OR 2ND 512K ROM. |
|
|
|
; OPTION (3) - CALCULATE AND DISPLAY CRC32 OF A 1024K ROM. |
|
|
|
; |
|
|
|
; OPTION (H) - DEBUG OPTION - SWITCH ON CPU CLOCK DIVIDER ON SBC-V2-004+ |
|
|
|
; OPTION (T) - DEBUG OPTION - TEST TIMER FOR 32S, 16S, 8S, 4S, 2S & 1S |
|
|
|
; |
|
|
|
; |
|
|
|
; V.DEV 18/1/2021 PHIL SUMMERS, DIFFICULTYLEVELHIGH@GMAIL.COM |
|
|
|
; V.DEV 23/7/2021 PHIL SUMMERS, DIFFICULTYLEVELHIGH@GMAIL.COM |
|
|
|
; b1ackmai1er ON RETROBREWCOMPUTERS.ORG |
|
|
|
; |
|
|
|
; |
|
|
|
@ -164,6 +165,9 @@ BSPC: .EQU 'H'-40h ; ^H = Backspace |
|
|
|
RST 08 ; TO USE AS |
|
|
|
LD A,E ; DEFAULT |
|
|
|
LD (SERDEV),A |
|
|
|
|
|
|
|
CALL GETDINFO ; SAVE INITIAL |
|
|
|
LD (ORISPD),A ; SERIAL SPEED |
|
|
|
; |
|
|
|
LD HL,msgHeader ; PRINT |
|
|
|
CALL PRTSTR0 ; GREETING |
|
|
|
@ -195,9 +199,20 @@ CHPFND: LD (ERATYP),A ; SAVE ERASE TYPE |
|
|
|
LD BC,$F8F0 ; GET CPU SPEED |
|
|
|
RST 08 ; AND MULTIPLY |
|
|
|
LD A,L ; BY 4 |
|
|
|
PUSH AF |
|
|
|
ADD A,A ; TO CREATE |
|
|
|
ADD A,A ; TIMEOUT DELAY |
|
|
|
LD (TmoFct),A ; FACTOR |
|
|
|
POP AF |
|
|
|
; |
|
|
|
LD HL,CLKTBL-1 ; DETERMINE |
|
|
|
ADD A,L ; RECOMMENDED |
|
|
|
LD L,A ; SPEED BASED |
|
|
|
ADC A,H ; ON CPU CLOCK |
|
|
|
SUB L |
|
|
|
LD H,A ; LOOK IT |
|
|
|
LD A,(HL) ; UP IN THE |
|
|
|
LD (RECSPD),A ; CLOCK TABLE |
|
|
|
; |
|
|
|
MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING |
|
|
|
LD (MD_FBAS),DE ; AT BANK 0 SECTOR 0 |
|
|
|
@ -207,6 +222,12 @@ MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING |
|
|
|
; |
|
|
|
CALL MENU ; DISPLAY MENU |
|
|
|
CALL GETINP ; GET SELECTION |
|
|
|
; |
|
|
|
CP '>' ; CHANGE TO |
|
|
|
JP Z,OPTIONG ; RECOMMENDED BAUD RATE |
|
|
|
; |
|
|
|
CP '<' ; REVERT TO |
|
|
|
JP Z,OPTIONL ; ORIGINAL BAUD RATE |
|
|
|
; |
|
|
|
CP 'U' ; BEGIN |
|
|
|
JR Z,BEGUPD ; TRANSFER |
|
|
|
@ -230,13 +251,13 @@ MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING |
|
|
|
JP Z,OPTIOND ; FLASH |
|
|
|
; |
|
|
|
CP '1' ; CALCULATE |
|
|
|
JP Z,OPTION1 ; CRC 512K FLASH |
|
|
|
JP Z,OPTION1 ; CRC FLASH #1 |
|
|
|
; |
|
|
|
CP '2' ; CALCULATE |
|
|
|
JP Z,OPTION2 ; CRC 1024K FLASH |
|
|
|
JP Z,OPTION2 ; CRC FLASH #2 |
|
|
|
; |
|
|
|
CP '3' ; CALCULATE |
|
|
|
JP Z,OPTION3 ; CRC FLASH #2 |
|
|
|
CP '2' ; CALCULATE |
|
|
|
JP Z,OPTION3 ; CRC 1024K FLASH |
|
|
|
; |
|
|
|
#IF (XFUDBG) |
|
|
|
CP 'T' ; TEST TIMEOUT |
|
|
|
@ -564,22 +585,6 @@ GETINP2:CALL CONIN |
|
|
|
AND ~$20 ; CONVERT CHARACTER TO LOWER |
|
|
|
GETINP3:RET |
|
|
|
; |
|
|
|
PRTSTR0:LD A,(HL) ; PRINT MESSAGE POINTED TOP HL UNTIL 0 |
|
|
|
OR A ; CHECK IF GOT ZERO? |
|
|
|
RET Z ; IF ZERO RETURN TO CALLER |
|
|
|
LD C,A |
|
|
|
CALL CONOUT ; ELSE PRINT THE CHARACTER |
|
|
|
INC HL |
|
|
|
JP PRTSTR0 |
|
|
|
; |
|
|
|
PRTSTRD:LD A,(HL) ; PRINT MESSAGE POINTED TOP HL UNTIL $ |
|
|
|
CP '$' ; CHECK IF GOT IT? |
|
|
|
RET Z ; IF MATCH RETURN TO CALLER |
|
|
|
LD C,A |
|
|
|
CALL CONOUT ; ELSE PRINT THE CHARACTER |
|
|
|
INC HL |
|
|
|
JP PRTSTRD |
|
|
|
; |
|
|
|
MENU: CALL COUTON |
|
|
|
LD HL,msgConsole ; DISPLAY |
|
|
|
CALL PRTSTR0 ; CONSOLE |
|
|
|
@ -604,6 +609,16 @@ MENU: CALL COUTON |
|
|
|
CALL CONOUT |
|
|
|
POP AF |
|
|
|
CALL DISPBAUD |
|
|
|
; |
|
|
|
LD HL,msgSetBaud ; DISPLAY |
|
|
|
CALL PRTSTR0 ; RECOMMENDED |
|
|
|
LD A,(RECSPD) ; BAUD RATE |
|
|
|
CALL DECBAUD |
|
|
|
; |
|
|
|
LD HL,msgRevertBaud ; DISPLAY |
|
|
|
CALL PRTSTR0 ; ORIGINAL |
|
|
|
LD A,(ORISPD) ; BAUD RATE |
|
|
|
CALL DECBAUD |
|
|
|
; |
|
|
|
LD HL,msgWriteV ; DISPLAY |
|
|
|
CALL PRTSTR0 ; VERIFY |
|
|
|
@ -618,7 +633,33 @@ MENU1: CALL PRTSTR0 |
|
|
|
CALL PRTSTR0 ; MENU OPTIONS |
|
|
|
RET |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; DISPLAY THE BAUD RATE FOR THE DEVICE SPECIFIED IN A |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
DISPBAUD: |
|
|
|
CALL GETDINFO ; GET DEVICE INFO |
|
|
|
RET NZ ; EXIT IF NOT SERIAL |
|
|
|
DECBAUD:;CALL PRTHEXB |
|
|
|
BIT 4,A ; CONVERT ; IF X > 15 X=(X-15)*2 |
|
|
|
JR Z,UNDER15 ; DEVICE ; ELSE X=(X*2)-1 |
|
|
|
AND %00001111 ; BAUD |
|
|
|
INC A ; CODE TO |
|
|
|
ADD A,A ; TABLE |
|
|
|
JR WASOVER ; INDEX |
|
|
|
UNDER15:AND %00001111 |
|
|
|
ADD A,A |
|
|
|
DEC A |
|
|
|
WASOVER:;CALL PRTHEXB |
|
|
|
LD DE,BAUDTBL ; DISPLAY |
|
|
|
CALL PRTIDXDEA ; BAUD RATE |
|
|
|
RET |
|
|
|
; |
|
|
|
; GET DEVICE INFO FOR DEVICE SPECIFIED IN A |
|
|
|
; RETURN NZ FLAG IF NON SERIAL. |
|
|
|
; RETURN Z FLAG IF SERIAL DEVICE AND A CONTAINING ENCODED BAUD BYTE |
|
|
|
; |
|
|
|
GETDINFO: |
|
|
|
PUSH AF |
|
|
|
LD C,A |
|
|
|
LD B,$06 ; GET |
|
|
|
@ -631,21 +672,8 @@ DISPBAUD: |
|
|
|
LD C,B ; GET |
|
|
|
LD B,$05 ; DEVICE |
|
|
|
RST 08 ; INFO |
|
|
|
XOR A |
|
|
|
LD A,D |
|
|
|
; |
|
|
|
; CALL PRTHEXB |
|
|
|
BIT 4,A ; CONVERT ; IF X > 15 X=(X-15)*2 |
|
|
|
JR Z,UNDER15 ; DEVICE ; ELSE X=(X*2)-1 |
|
|
|
AND %00001111 ; BAUD |
|
|
|
INC A ; CODE TO |
|
|
|
ADD A,A ; TABLE |
|
|
|
JR WASOVER ; INDEX |
|
|
|
UNDER15:AND %00001111 |
|
|
|
ADD A,A |
|
|
|
DEC A |
|
|
|
WASOVER:;CALL PRTHEXB |
|
|
|
LD DE,BAUDTBL ; DISPLAY |
|
|
|
CALL PRTIDXDEA ; BAUD RATE |
|
|
|
RET |
|
|
|
; |
|
|
|
OPTIOND:CALL COUTON ; TURN ON OUTPUT |
|
|
|
@ -736,6 +764,26 @@ VERF: POP BC ; EXIT WITH FAIL |
|
|
|
POP BC ; FAIL MESSAGE AND |
|
|
|
JP FAILWF ; RETURN TO MENU |
|
|
|
; |
|
|
|
OPTIONG:LD HL,msgChangeNow |
|
|
|
CALL PRTSTR0 |
|
|
|
LD A,(RECSPD) |
|
|
|
; CALL PRTHEXB |
|
|
|
CALL DECBAUD |
|
|
|
LD HL,msgPressKey |
|
|
|
CALL PRTSTR0 |
|
|
|
CALL GETINP |
|
|
|
JP MENULP |
|
|
|
; |
|
|
|
OPTIONL:LD HL,msgChangeNow |
|
|
|
CALL PRTSTR0 |
|
|
|
LD A,(ORISPD) |
|
|
|
; CALL PRTHEXB |
|
|
|
CALL DECBAUD |
|
|
|
LD HL,msgPressKey |
|
|
|
CALL PRTSTR0 |
|
|
|
CALL GETINP |
|
|
|
JP MENULP |
|
|
|
; |
|
|
|
OPTIONV:LD A,(WRTVER) ; TOGGLE |
|
|
|
CPL ; VERIFY |
|
|
|
LD (WRTVER),A ; FLAG |
|
|
|
@ -862,6 +910,10 @@ OPTIONE:LD HL,msgErase ; DISPLAY |
|
|
|
JP Done1 |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; CONSOLE AND SERIAL I/O ROUTINES |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
SEROUT: PUSH HL ; SERIAL OUTPUT CHARACTER IN C |
|
|
|
PUSH DE |
|
|
|
PUSH BC |
|
|
|
@ -943,6 +995,10 @@ CONIN: PUSH HL ; CONSOLE INPUT. WAIT FOR A CHARACTER ADD RETURN IT IN A |
|
|
|
POP HL |
|
|
|
RET |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; TEXT OUTPUT ROUTINES |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
PRTHEXB:PUSH AF ; PRINT HEX BYTE IN A TO CONSOLE |
|
|
|
PUSH BC |
|
|
|
PUSH DE |
|
|
|
@ -974,18 +1030,66 @@ HEXCONV:AND 0FH ; CONVERT LOW NIBBLE OF A TO ASCII HEX |
|
|
|
ADC A,40H |
|
|
|
DAA |
|
|
|
RET |
|
|
|
|
|
|
|
OPTION3:LD HL,$1000 ; CRC32 STARTING |
|
|
|
LD (MD_FBAS),HL ; BANK $10 SECTOR $00 |
|
|
|
LD B,16 ; 16 BANKS (512K) |
|
|
|
JR CALCCRC |
|
|
|
|
|
|
|
; |
|
|
|
; PRINT 0 TERMINATED STRING POINTED TO BY HL |
|
|
|
; |
|
|
|
PRTSTR0:LD A,(HL) ; PRINT MESSAGE POINTED TOP HL UNTIL 0 |
|
|
|
OR A ; CHECK IF GOT ZERO? |
|
|
|
RET Z ; IF ZERO RETURN TO CALLER |
|
|
|
LD C,A |
|
|
|
CALL CONOUT ; ELSE PRINT THE CHARACTER |
|
|
|
INC HL |
|
|
|
JP PRTSTR0 |
|
|
|
; |
|
|
|
; PRINT $ TERMINATED STRING POINTED TO BY HL |
|
|
|
; |
|
|
|
PRTSTRD:LD A,(HL) ; PRINT MESSAGE POINTED TOP HL UNTIL $ |
|
|
|
CP '$' ; CHECK IF GOT IT? |
|
|
|
RET Z ; IF MATCH RETURN TO CALLER |
|
|
|
LD C,A |
|
|
|
CALL CONOUT ; ELSE PRINT THE CHARACTER |
|
|
|
INC HL |
|
|
|
JP PRTSTRD |
|
|
|
; |
|
|
|
; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY $ |
|
|
|
; A REGISTER DEFINES THE nTH STRING IN THE LIST TO PRINT AND DE POINTS |
|
|
|
; TO THE START OF THE STRING LIST. |
|
|
|
; |
|
|
|
PRTIDXDEA: |
|
|
|
PUSH BC |
|
|
|
LD C,A ; INDEX COUNT |
|
|
|
OR A |
|
|
|
LD A,0 |
|
|
|
PRTIDXDEA1: |
|
|
|
JR Z,PRTIDXDEA3 |
|
|
|
PRTIDXDEA2: |
|
|
|
LD A,(DE) ; LOOP UNIT |
|
|
|
INC DE ; WE REACH |
|
|
|
CP '$' ; END OF STRING |
|
|
|
JR NZ,PRTIDXDEA2 |
|
|
|
DEC C ; AT STRING END. SO GO |
|
|
|
JR PRTIDXDEA1 ; CHECK FOR INDEX MATCH |
|
|
|
PRTIDXDEA3: |
|
|
|
POP BC |
|
|
|
EX DE,HL |
|
|
|
CALL PRTSTRD ; FALL THROUGH TO WRITESTR |
|
|
|
RET |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; CRC OPTIONS AND CALCULATIONS |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
OPTION1:LD HL,$0000 ; CRC32 STARTING |
|
|
|
LD (MD_FBAS),HL ; BANK $00 SECTOR $00 |
|
|
|
LD B,16 ; 16 BANKS (512K) |
|
|
|
JR CALCCRC |
|
|
|
; |
|
|
|
OPTION2:LD HL,$0000 ; CRC32 STARTING |
|
|
|
OPTION2:LD HL,$1000 ; CRC32 STARTING |
|
|
|
LD (MD_FBAS),HL ; BANK $10 SECTOR $00 |
|
|
|
LD B,16 ; 16 BANKS (512K) |
|
|
|
JR CALCCRC |
|
|
|
; |
|
|
|
OPTION3:LD HL,$0000 ; CRC32 STARTING |
|
|
|
LD (MD_FBAS),HL ; BANK $00 SECTOR $00 |
|
|
|
LD B,32 ; 32 BANKS (1024K) |
|
|
|
; |
|
|
|
@ -997,8 +1101,7 @@ CALCCRC:CALL COUTON ; TURN ON OUTPUT |
|
|
|
LD HL,$FFFF ; SET THE |
|
|
|
LD (CRC),HL ; START CRC |
|
|
|
LD (CRC+2),HL ; CONDITION |
|
|
|
|
|
|
|
; LD B,16 ; |
|
|
|
; |
|
|
|
CRCLP1: PUSH BC ; LOOP THROUGH ALL BANKS |
|
|
|
LD B,8 ; LOOP THROUGH |
|
|
|
CRCLP2: PUSH BC ; 8 SECTORS |
|
|
|
@ -1076,37 +1179,38 @@ CLEAR: DEC B |
|
|
|
JP NZ,BYTELP |
|
|
|
LD (CRC),DE |
|
|
|
LD (CRC+2),HL |
|
|
|
; |
|
|
|
RET |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY $ |
|
|
|
; A REGISTER DEFINES THE nTH STRING IN THE LIST TO PRINT AND DE POINTS |
|
|
|
; TO THE START OF THE STRING LIST. |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
PRTIDXDEA: |
|
|
|
PUSH BC |
|
|
|
LD C,A ; INDEX COUNT |
|
|
|
OR A |
|
|
|
LD A,0 |
|
|
|
; LD (PRTIDXCNT),A ; RESET CHARACTER COUNT |
|
|
|
PRTIDXDEA1: |
|
|
|
JR Z,PRTIDXDEA3 |
|
|
|
PRTIDXDEA2: |
|
|
|
LD A,(DE) ; LOOP UNIT |
|
|
|
INC DE ; WE REACH |
|
|
|
CP '$' ; END OF STRING |
|
|
|
JR NZ,PRTIDXDEA2 |
|
|
|
DEC C ; AT STRING END. SO GO |
|
|
|
JR PRTIDXDEA1 ; CHECK FOR INDEX MATCH |
|
|
|
PRTIDXDEA3: |
|
|
|
POP BC |
|
|
|
EX DE,HL |
|
|
|
CALL PRTSTRD ; FALL THROUGH TO WRITESTR |
|
|
|
; RET |
|
|
|
; |
|
|
|
#INCLUDE "decode.asm" |
|
|
|
; multiply DE:HL by 10, exit wit C set if overflwo |
|
|
|
; |
|
|
|
multb10:call multb2 ; x2 |
|
|
|
ret c |
|
|
|
push de |
|
|
|
push hl |
|
|
|
call multb2 ; x4 |
|
|
|
ret c |
|
|
|
call multb2 ; x8 |
|
|
|
ret c |
|
|
|
; |
|
|
|
pop bc ; x8 + 2 |
|
|
|
add hl,bc |
|
|
|
pop bc |
|
|
|
jr nc,multbc |
|
|
|
inc de |
|
|
|
ret c |
|
|
|
multbc: ex de,hl |
|
|
|
add hl,bc |
|
|
|
ex de,hl |
|
|
|
ret |
|
|
|
|
|
|
|
multb2: ex de,hl ; multiply by 2 |
|
|
|
add hl,hl |
|
|
|
ret c |
|
|
|
ex de,hl |
|
|
|
add hl,hl |
|
|
|
jr nc,multbnc |
|
|
|
inc de |
|
|
|
multbnc:ret |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; CALCULATE BANK AND ADDRESS DATA FROM MEMORY ADDRESS |
|
|
|
@ -1223,16 +1327,20 @@ msgCRC32: .DB CR,LF,CR,LF,"CRC32 : ",0 |
|
|
|
msgFailWrt: .DB CR,LF,"FLASH WRITE FAILED",CR,LF,0 |
|
|
|
msgFailure: .DB CR,LF,"TRANSMISSION FAILED",CR,LF,0 |
|
|
|
msgCancel: .DB CR,LF,"TRANSMISSION CANCELLED",CR,LF,0 |
|
|
|
msgChangeNow: .DB CR,LF,"Change speed now to ",0 |
|
|
|
msgPressKey: .DB CR,LF,"Press a key to Resume.",CR,LF,0 |
|
|
|
msgConsole: .DB CR,LF,CR,LF,"(C) Set Console Device : ",0 |
|
|
|
msgIODevice: .DB CR,LF,"(S) Set Serial Device : ",0 |
|
|
|
msgSetBaud: .DB CR,LF,"(>) Set Recommended Baud Rate : ",0 |
|
|
|
msgRevertBaud: .DB CR,LF,"(<) Revert to Original Baud Rate : ",0 |
|
|
|
msgWriteV: .DB CR,LF,"(V) Toggle Write Verify : ",0 |
|
|
|
msgBegin: .DB CR,LF,"(R) Reboot" |
|
|
|
.DB CR,LF,"(U) Begin Update" |
|
|
|
.DB CR,LF,"(Q) Quit to Rom Loader" |
|
|
|
.DB CR,LF,"(D) Duplicate Flash #1 to #2" |
|
|
|
.DB CR,LF,"(1) CRC 512K Flash" |
|
|
|
.DB CR,LF,"(2) CRC 1024K Flash" |
|
|
|
.DB CR,LF,"(3) CRC Flash chip #2" |
|
|
|
.DB CR,LF,"(1) CRC 512K Flash #1" |
|
|
|
.DB CR,LF,"(2) CRC 512K Flash #2" |
|
|
|
.DB CR,LF,"(3) CRC 1024K Flash" |
|
|
|
#IF (XFUDBG) |
|
|
|
.DB CR,LF,"(H) Select half speed" |
|
|
|
.DB CR,LF,"(T) Test timeout" |
|
|
|
@ -1260,6 +1368,9 @@ WRTVER: .DB $FF ; WRITE VERIFY OPTION FLAG |
|
|
|
VERRES: .DB $00 ; WRITE VERIFY RESULT |
|
|
|
BLKCOUT: .DB $FF ; BLOCK TEXT OUTPUT DURING TRANSFER IF ZERO |
|
|
|
ERATYP .DB $00 ; HOLDS THE ERASE TYPE FLAG FOR VARIOUS CHIPS |
|
|
|
;CPUSPD: .DB 0 ; HOLDS CURRENT PROCESSOR SPEED |
|
|
|
ORISPD: .DB 0 ; HOLDS ORIGINAL BAUD RATE SPEED |
|
|
|
RECSPD: .DB 0 ; HOLDS RECOMMENDED BAUD RATE SPEED |
|
|
|
oldSP: .DW 0 ; The orginal SP to be restored before exiting |
|
|
|
retrycnt: .DB 0 ; Counter for retries before giving up |
|
|
|
chksum: .DB 0 ; For calculating the checksum of the packet |
|
|
|
@ -1277,6 +1388,10 @@ packet: .DB 0 ; SOH |
|
|
|
.FILL 128,0 ; data*128, |
|
|
|
.DB 0 ; chksum |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; SUPPORTED DEVICES AND ID CODES |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
DEVICES: |
|
|
|
.DW $BFB7 ; 39SF040 0 |
|
|
|
.DW $01A4 ; 29F040 1 |
|
|
|
@ -1289,7 +1404,7 @@ DEVICES: |
|
|
|
LSTDEV: .EQU $ |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; BOARD RATE TABLE |
|
|
|
; BAUD RATE TABLE |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
BAUDTBL:.DB "75$" ; 0 0 |
|
|
|
@ -1325,6 +1440,31 @@ BAUDTBL:.DB "75$" ; 0 0 |
|
|
|
.DB "3686400$" ; 30 30 |
|
|
|
.DB "7372800$" ; 31 16 |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
; CLOCK SETTING TABLE |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
CLKTBL: .DB 6 ; 1 4800 |
|
|
|
.DB 7 ; 2 9600 |
|
|
|
.DB 7 ; 3 9600 |
|
|
|
.DB 8 ; 4 19200 |
|
|
|
.DB 8 ; 5 19200 |
|
|
|
.DB 8 ; 6 19200 |
|
|
|
.DB 8 ; 7 19200 |
|
|
|
.DB 9 ; 8 38400 |
|
|
|
.DB 9 ; 9 38400 |
|
|
|
.DB 9 ; 10 38400 |
|
|
|
.DB 9 ; 11 38400 |
|
|
|
.DB 9 ; 12 38400 |
|
|
|
.DB 9 ; 13 38400 |
|
|
|
.DB 9 ; 14 38400 |
|
|
|
.DB 9 ; 15 38400 |
|
|
|
.DB 9 ; 16 38400 |
|
|
|
.DB 9 ; 17 38400 |
|
|
|
.DB 9 ; 18 38400 |
|
|
|
.DB 9 ; 19 38400 |
|
|
|
.DB 9 ; 20 38400 |
|
|
|
; |
|
|
|
sector4k: .EQU $ ; 32 PACKETS GET ACCUMULATED HERE BEFORE FLASHING |
|
|
|
; |
|
|
|
SLACK .EQU (UPD_END - $) |
|
|
|
|