Browse Source

Update updater.asm

Extend debug info. Add Teraterm usage info,  Other flash device prework
pull/181/head
b1ackmai1er 5 years ago
parent
commit
9d229e3f31
  1. 143
      Source/HBIOS/updater.asm

143
Source/HBIOS/updater.asm

@ -80,7 +80,19 @@
; TIMING BROADLY CALIBRATED ON A Z80 SBC-V2
; UNABIOS NOT SUPPORTED
;
; MAXIMUM SERIAL SPEED LIMITATIONS
; TERATERM:
;
; MACROS CAN BE USED TO AUTOMATE SENDING ROM UPDATES OR ROMS IMAGES
;
; EXAMPLE MACRO FILE TO SEND *.UPD FILE, SELECT CHECKSUM MODE AND DISPLAY CRC32
;
; ;XMODEM send, checksum, display CRC32
; xmodemsend '\\DESKTOP-FI43VI2\Users\Phillip\Documents\GitHub\RomWBW\Binary\SBC_std_cust.upd' 1
; crc32file crc '\\DESKTOP-FI43VI2\Users\Phillip\Documents\GitHub\RomWBW\Binary\SBC_std_cust.rom'
; sprintf '0x%08X' crc
; messagebox inputstr 'CRC32 = '
;
; MAXIMUM SERIAL SPEED LIMITATIONS:
;
; SBC-V2 UART NO FLOW CONTROL 2MHZ | 9600
; SBC-V2 UART NO FLOW CONTROL 4MHZ | 19200
@ -163,10 +175,47 @@ RESTART:
LD HL,MD_FIDEN ; IDENTIFY CHIP
CALL MD_FNCALL ; AT THIS BANK/SECTOR
LD HL,$B7BF ; FAIL
XOR A ; IF FLASH
SBC HL,BC ; CHIP IS
JP NZ,FAILBC ; NOT SUPPORTED
LD HL,$B7BF ; IS IT A 39SF040
XOR A
SBC HL,BC
LD A,0
JR Z,CHPFND ; YES IT IS ...
;
#IF (XFUDBG)
LD HL,$A401 ; IS IT A 29F040
XOR A
SBC HL,BC
LD A,1
JR Z,CHPFND ; YES IT IS ...
;
LD HL,$131F ; IS IT AN AT49F040
XOR A
SBC HL,BC
LD A,2
JR Z,CHPFND ; YES IT IS
;
LD HL,$A41F ; IS IT AN AT29C040
XOR A
SBC HL,BC
LD A,3
JR Z,CHPFND ; YES IT IS
;
LD HL,$E220 ; IS IT AN M29F040
XOR A
SBC HL,BC
LD A,4
JR Z,CHPFND ; YES IT IS
;
LD HL,$A4C2 ; IS IT AN MX29F040
SBC HL,BC
LD A,5
;
#ENDIF
;
JP NZ,FAILBC ; SUPPORTED CHIP NOT FOUND
;
CHPFND: LD (ERATYP),A ; SAVE ERASE TYPE
LD BC,$F8F0 ; GET CPU SPEED
RST 08 ; AND MULTIPLY
@ -182,22 +231,6 @@ MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING
CALL PRTSTR0
CALL MENU ; DISPLAY MENU
;
#IF (XFUDBG)
LD C,'B'
CALL CONOUT
LD A,(MD_BANK)
CALL PRTHEXB
LD C,'S'
CALL CONOUT
LD A,(MD_SECT)
CALL PRTHEXB
LD C,'T'
CALL CONOUT
LD A,(TmoFct)
CALL PRTHEXB
LD C,':'
CALL CONOUT
#ENDIF
CALL GETINP ; GET SELECTION
;
CP 'U' ; BEGIN
@ -233,6 +266,9 @@ MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING
;
CP 'H' ; HALF
JP Z,OPTIONH ; SPEED SWITCH
;
CP 'F' ; DUMP
JP Z,OPTIONF ; BUFFER
#ENDIF
;
JR MENULP
@ -262,7 +298,7 @@ GetNewPacket:
LD HL,retrycnt ; WE RETRY 20 TIMES BEFORE GIVING UP
LD (HL),20
;
NPloop: LD B,5 ; 5 SECONDS OF TIMEOUT BEFORE EACH NEW BLOCK
NPloop: LD B,6 ; 6 SECONDS OF TIMEOUT BEFORE EACH NEW BLOCK
CALL GetCharTmo
JP NC,NotPacketTimeout
;
@ -404,11 +440,7 @@ Die1: LD B,BF_SYSRESET ; SYSTEM RESTART
CALL $FFF0 ; CALL HBIOS
RET
WSEC: ;PUSH HL ; WRITE A
;PUSH BC ; FLASH
;PUSH DE ; SECTOR
;
CALL DISPROG ; DISPLAY PROGRESS
WSEC: CALL DISPROG ; DISPLAY PROGRESS
;
WSEC1: LD HL,MD_FERAS ; ERASE
CALL MD_FNCALL ; AND WRITE
@ -425,9 +457,7 @@ WSEC1: LD HL,MD_FERAS ; ERASE
CALL MD_FNCALL
LD (VERRES),A ; SAVE STATUS
;
NOVER: ;POP DE ;
LD DE,sector4k ; POINT BACK TO START OF 4K BUFFER
;PUSH DE
NOVER: LD DE,sector4k ; POINT BACK TO START OF 4K BUFFER
;
LD HL,MD_FBAS
LD A,(HL) ; DID WE JUST
@ -444,9 +474,6 @@ NXTS2: LD A,$10 ; NEXT SECTOR
LD (HL),A ; SO WE JUST INCREASE HIGH BYTE
;
NXTS3: LD A,(VERRES) ; EXIT WITH STATUS
; POP DE
; POP BC
; POP HL
RET
;
DISPROG:LD A,(BLKCOUT) ; SKIP OUTPUT
@ -698,6 +725,54 @@ OPTIONH:LD A,8 ; TURN ON THE SBC-V2-004+
LD HL,TmoFct ; AND ADJUST
SRL (HL) ; DELAY FACTOR (/2)
JP MENULP ; BACK TO MENU
;
OPTIONF:LD HL,msgCRLF ; DISPLAY
CALL PRTSTR0 ; BANK
LD C,'B' ; SECTOR
CALL CONOUT ; TIMEOUT
LD A,(MD_BANK)
CALL PRTHEXB
LD C,'S'
CALL CONOUT
LD A,(MD_SECT)
CALL PRTHEXB
LD C,'T'
CALL CONOUT
LD A,(TmoFct)
CALL PRTHEXB
;
LD HL,msgCRLF ; DISPLAY
CALL PRTSTR0 ; ACK/NAK BYTE
LD HL,packet ; DISPLAY
LD B,3 ; LAST
DMPBUF2:LD A,(HL) ; NUMBERS
CALL PRTHEXB
LD C,' '
CALL CONOUT
INC HL
DJNZ DMPBUF2
LD HL,msgCRLF
CALL PRTSTR0
LD B,128 ; DISPLAY
LD HL,packet+3 ; LAST
DMPBUF: LD A,(HL) ; PACKET
CALL PRTHEXB ; CONTENTS
LD C,' '
CALL CONOUT
LD A,B
SUB 2
AND %00001111
CP %00001111
JR NZ,DMPBUF1
PUSH HL
LD HL,msgCRLF
CALL PRTSTR0
POP HL
DMPBUF1:
INC HL
DJNZ DMPBUF
JP MENULP
#ENDIF
;
SEROUT: PUSH HL ; SERIAL OUTPUT CHARACTER IN C
@ -1285,6 +1360,7 @@ msgBegin: .DB CR,LF,"(R) Reboot"
#IF (XFUDBG)
.DB CR,LF,"(H) Select half speed"
.DB CR,LF,"(T) Test timeout"
.DB CR,LF,"(F) Dump last packet"
#ENDIF
.DB CR,LF,CR,LF,"Select : ",0
msgSuccess: .DB CR,LF,CR,LF,"COMPLETED WITHOUT ERRORS ",CR,LF,0
@ -1304,6 +1380,7 @@ SERDEV: .DB $00 ; HBIOS SERIAL DEVICE NUMBER USED FOR XMODEM TRANSFER
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
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

Loading…
Cancel
Save