Browse Source

Update updater.asm

Display device baud rate
pull/218/head
b1ackmai1er 5 years ago
parent
commit
484ef274e9
  1. 125
      Source/HBIOS/updater.asm

125
Source/HBIOS/updater.asm

@ -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 - $)

Loading…
Cancel
Save