|
|
@ -214,7 +214,7 @@ MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING |
|
|
CP 'V' ; CHECK FOR |
|
|
CP 'V' ; CHECK FOR |
|
|
JP Z,OPTIONV ; VERIFY TOGGLE |
|
|
JP Z,OPTIONV ; VERIFY TOGGLE |
|
|
; |
|
|
; |
|
|
CP 'X' ; CHECK FOR |
|
|
|
|
|
|
|
|
CP 'Q' ; CHECK FOR |
|
|
JP Z,FAILUX ; USER EXIT |
|
|
JP Z,FAILUX ; USER EXIT |
|
|
; |
|
|
; |
|
|
CP 'R' ; CHECK FOR |
|
|
CP 'R' ; CHECK FOR |
|
|
@ -235,10 +235,10 @@ MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING |
|
|
CP '2' ; CALCULATE |
|
|
CP '2' ; CALCULATE |
|
|
JP Z,OPTION2 ; CRC 1024K FLASH |
|
|
JP Z,OPTION2 ; CRC 1024K FLASH |
|
|
; |
|
|
; |
|
|
#IF (XFUDBG) |
|
|
|
|
|
CP '3' ; CALCULATE |
|
|
CP '3' ; CALCULATE |
|
|
JP Z,OPTION3 ; CRC FLASH #2 |
|
|
JP Z,OPTION3 ; CRC FLASH #2 |
|
|
; |
|
|
; |
|
|
|
|
|
#IF (XFUDBG) |
|
|
CP 'T' ; TEST TIMEOUT |
|
|
CP 'T' ; TEST TIMEOUT |
|
|
JP Z,OPTIONT ; LOOP |
|
|
JP Z,OPTIONT ; LOOP |
|
|
; |
|
|
; |
|
|
@ -572,20 +572,38 @@ PRTSTR0:LD A,(HL) ; PRINT MESSAGE POINTED TOP HL UNTIL 0 |
|
|
INC HL |
|
|
INC HL |
|
|
JP PRTSTR0 |
|
|
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 |
|
|
MENU: CALL COUTON |
|
|
LD HL,msgConsole ; DISPLAY |
|
|
LD HL,msgConsole ; DISPLAY |
|
|
CALL PRTSTR0 ; CONSOLE |
|
|
CALL PRTSTR0 ; CONSOLE |
|
|
LD A,(CONDEV) ; DEVICE |
|
|
LD A,(CONDEV) ; DEVICE |
|
|
|
|
|
PUSH AF |
|
|
ADD A,'0' |
|
|
ADD A,'0' |
|
|
LD C,A |
|
|
LD C,A |
|
|
CALL CONOUT |
|
|
CALL CONOUT |
|
|
|
|
|
LD C,' ' |
|
|
|
|
|
CALL CONOUT |
|
|
|
|
|
POP AF |
|
|
|
|
|
CALL DISPBAUD |
|
|
; |
|
|
; |
|
|
LD HL,msgIODevice ; DISPLAY |
|
|
LD HL,msgIODevice ; DISPLAY |
|
|
CALL PRTSTR0 ; SERIAL |
|
|
CALL PRTSTR0 ; SERIAL |
|
|
LD A,(SERDEV) ; DEVICE |
|
|
LD A,(SERDEV) ; DEVICE |
|
|
|
|
|
PUSH AF |
|
|
ADD A,'0' |
|
|
ADD A,'0' |
|
|
LD C,A |
|
|
LD C,A |
|
|
CALL CONOUT |
|
|
CALL CONOUT |
|
|
|
|
|
LD C,' ' |
|
|
|
|
|
CALL CONOUT |
|
|
|
|
|
POP AF |
|
|
|
|
|
CALL DISPBAUD |
|
|
; |
|
|
; |
|
|
LD HL,msgWriteV ; DISPLAY |
|
|
LD HL,msgWriteV ; DISPLAY |
|
|
CALL PRTSTR0 ; VERIFY |
|
|
CALL PRTSTR0 ; VERIFY |
|
|
@ -600,6 +618,36 @@ MENU1: CALL PRTSTR0 |
|
|
CALL PRTSTR0 ; MENU OPTIONS |
|
|
CALL PRTSTR0 ; MENU OPTIONS |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
|
|
|
DISPBAUD: |
|
|
|
|
|
PUSH AF |
|
|
|
|
|
LD C,A |
|
|
|
|
|
LD B,$06 ; GET |
|
|
|
|
|
RST 08 ; DEVICE |
|
|
|
|
|
LD A,C ; TYPE |
|
|
|
|
|
POP BC |
|
|
|
|
|
OR A ; EXIT IF |
|
|
|
|
|
RET NZ ; NOT SERIAL |
|
|
|
|
|
; |
|
|
|
|
|
LD C,B ; GET |
|
|
|
|
|
LD B,$05 ; DEVICE |
|
|
|
|
|
RST 08 ; INFO |
|
|
|
|
|
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 |
|
|
OPTIOND:CALL COUTON ; TURN ON OUTPUT |
|
|
; |
|
|
; |
|
|
LD HL,msgConfirm ; CONFIRM |
|
|
LD HL,msgConfirm ; CONFIRM |
|
|
@ -1028,10 +1076,39 @@ CLEAR: DEC B |
|
|
JP NZ,BYTELP |
|
|
JP NZ,BYTELP |
|
|
LD (CRC),DE |
|
|
LD (CRC),DE |
|
|
LD (CRC+2),HL |
|
|
LD (CRC+2),HL |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
RET |
|
|
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" |
|
|
|
|
|
; |
|
|
|
|
|
;====================================================================== |
|
|
; CALCULATE BANK AND ADDRESS DATA FROM MEMORY ADDRESS |
|
|
; CALCULATE BANK AND ADDRESS DATA FROM MEMORY ADDRESS |
|
|
; |
|
|
; |
|
|
; ON ENTRY DE:HL CONTAINS 32 BIT MEMORY ADDRESS. |
|
|
; ON ENTRY DE:HL CONTAINS 32 BIT MEMORY ADDRESS. |
|
|
@ -1151,17 +1228,18 @@ msgIODevice: .DB CR,LF,"(S) Set Serial Device : ",0 |
|
|
msgWriteV: .DB CR,LF,"(V) Toggle Write Verify : ",0 |
|
|
msgWriteV: .DB CR,LF,"(V) Toggle Write Verify : ",0 |
|
|
msgBegin: .DB CR,LF,"(R) Reboot" |
|
|
msgBegin: .DB CR,LF,"(R) Reboot" |
|
|
.DB CR,LF,"(U) Begin Update" |
|
|
.DB CR,LF,"(U) Begin Update" |
|
|
.DB CR,LF,"(X) Exit to Rom Loader" |
|
|
|
|
|
|
|
|
.DB CR,LF,"(Q) Quit to Rom Loader" |
|
|
.DB CR,LF,"(D) Duplicate Flash #1 to #2" |
|
|
.DB CR,LF,"(D) Duplicate Flash #1 to #2" |
|
|
.DB CR,LF,"(1) CRC 512K Flash" |
|
|
.DB CR,LF,"(1) CRC 512K Flash" |
|
|
.DB CR,LF,"(2) CRC 1024K Flash" |
|
|
.DB CR,LF,"(2) CRC 1024K Flash" |
|
|
|
|
|
.DB CR,LF,"(3) CRC Flash chip #2" |
|
|
#IF (XFUDBG) |
|
|
#IF (XFUDBG) |
|
|
.DB CR,LF,"(H) Select half speed" |
|
|
.DB CR,LF,"(H) Select half speed" |
|
|
.DB CR,LF,"(T) Test timeout" |
|
|
.DB CR,LF,"(T) Test timeout" |
|
|
.DB CR,LF,"(F) Dump Debug Data" |
|
|
.DB CR,LF,"(F) Dump Debug Data" |
|
|
.DB CR,LF,"(E) Erase Flash chip #1" |
|
|
.DB CR,LF,"(E) Erase Flash chip #1" |
|
|
.DB CR,LF,"(Z) Erase Flash chip #2" |
|
|
.DB CR,LF,"(Z) Erase Flash chip #2" |
|
|
.DB CR,LF,"(3) CRC Flash chip #2" |
|
|
|
|
|
|
|
|
|
|
|
#ENDIF |
|
|
#ENDIF |
|
|
.DB CR,LF,CR,LF,"Select : ",0 |
|
|
.DB CR,LF,CR,LF,"Select : ",0 |
|
|
msgSuccess: .DB CR,LF,CR,LF,"COMPLETED WITHOUT ERRORS ",CR,LF,0 |
|
|
msgSuccess: .DB CR,LF,CR,LF,"COMPLETED WITHOUT ERRORS ",CR,LF,0 |
|
|
@ -1210,6 +1288,43 @@ DEVICES: |
|
|
.DW $3786 ; A29040B 7 |
|
|
.DW $3786 ; A29040B 7 |
|
|
LSTDEV: .EQU $ |
|
|
LSTDEV: .EQU $ |
|
|
; |
|
|
; |
|
|
|
|
|
;====================================================================== |
|
|
|
|
|
; BOARD RATE TABLE |
|
|
|
|
|
;====================================================================== |
|
|
|
|
|
; |
|
|
|
|
|
BAUDTBL:.DB "75$" ; 0 0 |
|
|
|
|
|
.DB "150$" ; 1 1 |
|
|
|
|
|
.DB "225$" ; 2 16 |
|
|
|
|
|
.DB "300$" ; 3 2 |
|
|
|
|
|
.DB "450$" ; 4 17 |
|
|
|
|
|
.DB "600$" ; 5 3 |
|
|
|
|
|
.DB "900$" ; 6 18 |
|
|
|
|
|
.DB "1200$" ; 7 4 |
|
|
|
|
|
.DB "1800$" ; 8 19 |
|
|
|
|
|
.DB "2400$" ; 9 5 |
|
|
|
|
|
.DB "3600$" ; 10 20 |
|
|
|
|
|
.DB "4800$" ; 11 6 |
|
|
|
|
|
.DB "7200$" ; 12 21 |
|
|
|
|
|
.DB "9600$" ; 13 7 |
|
|
|
|
|
.DB "14400$" ; 14 22 |
|
|
|
|
|
.DB "19200$" ; 15 8 |
|
|
|
|
|
.DB "28800$" ; 16 23 |
|
|
|
|
|
.DB "38400$" ; 17 9 |
|
|
|
|
|
.DB "57600$" ; 18 24 |
|
|
|
|
|
.DB "76800$" ; 19 10 |
|
|
|
|
|
.DB "115200$" ; 20 25 |
|
|
|
|
|
.DB "153600$" ; 21 11 |
|
|
|
|
|
.DB "230400$" ; 22 26 |
|
|
|
|
|
.DB "307200$" ; 23 12 |
|
|
|
|
|
.DB "460800$" ; 24 27 |
|
|
|
|
|
.DB "614400$" ; 25 13 |
|
|
|
|
|
.DB "921600$" ; 26 28 |
|
|
|
|
|
.DB "1228800$" ; 27 14 |
|
|
|
|
|
.DB "1843200$" ; 28 29 |
|
|
|
|
|
.DB "2457600$" ; 29 15 |
|
|
|
|
|
.DB "3686400$" ; 30 30 |
|
|
|
|
|
.DB "7372800$" ; 31 16 |
|
|
|
|
|
; |
|
|
sector4k: .EQU $ ; 32 PACKETS GET ACCUMULATED HERE BEFORE FLASHING |
|
|
sector4k: .EQU $ ; 32 PACKETS GET ACCUMULATED HERE BEFORE FLASHING |
|
|
; |
|
|
; |
|
|
SLACK .EQU (UPD_END - $) |
|
|
SLACK .EQU (UPD_END - $) |
|
|
|