From f18bd9fb0adc4ab70c4db8aba01d248b95a05bf5 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Wed, 6 Jan 2021 21:18:57 +0800 Subject: [PATCH] Fix updater bank display output Also loads derfault console and serial device number now for consistance with boot rom. --- Binary/ReadMe.txt | 2 +- Source/HBIOS/updater.asm | 46 ++++++++++++++++++++++++++++++---------- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/Binary/ReadMe.txt b/Binary/ReadMe.txt index 9cef6740..6118199f 100644 --- a/Binary/ReadMe.txt +++ b/Binary/ReadMe.txt @@ -48,7 +48,7 @@ ROM Firmware Update Images (_.upd) The files with a ".upd" extension are binary images identical to the .rom files, but they only have the first 128K bytes. The first 128K is the system image without the ROM disk contents. These files can be -used to update the system image without modifyuing the ROM disk +used to update the system image without modifying the ROM disk contents. Refer to the Getting Started document for more information. ROM Executable Images (_.com) diff --git a/Source/HBIOS/updater.asm b/Source/HBIOS/updater.asm index 6d19c394..b402d0ba 100644 --- a/Source/HBIOS/updater.asm +++ b/Source/HBIOS/updater.asm @@ -58,7 +58,7 @@ ; 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. ; -; OPTION (H) - DEBUG OPTION - SWITCH ON CPU CLCOK DIVIDER ON SBC-V2-004+ +; OPTION (H) - DEBUG OPTION - SWITCH ON CPU CLOCK DIVIDER ON SBC-V2-004+ ; OPTION (T) - DEBUG OPTION - TEST TIMER FOR 20 SECONDS. * = START AND FINISH ; ; @@ -100,6 +100,8 @@ HBX_BNKSEL .EQU $FE2B HBX_START .EQU $FE00 ; +BIOSBID .EQU $00 ; BIOS BANK ID NUMBER +; #DEFINE HB_DI DI #DEFINE HB_EI EI ; @@ -130,6 +132,23 @@ BSPC: .EQU 'H'-40h ; ^H = Backspace LD DE,HBX_START-MD_CSIZ ; ROUTINES TO LD BC,MD_CSIZ ; HIGH MEMORY LDIR +; + LD BC,$F8F2 ; LOOKUP + RST 08 ; CURRENT + LD B,$FA ; CONSOLE + LD HL,$112 ; DEVICE + RST 08 ; TO USE AS + LD A,E ; DEFAULT + LD (CONDEV),A +; + LD BC,$F8F2 ; LOOKUP + RST 08 ; CURRENT + LD B,$FA ; SERIAL + LD HL,$110 ; DEVICE + RST 08 ; TO USE AS + LD A,E ; DEFAULT + LD (SERDEV),A +; RESTART: LD DE,$0000 ; SET UP LD HL,$0000 ; START @@ -159,7 +178,7 @@ MENULP: CALL MENU ; DISPLAY MENU ; CP 'X' ; CHECK FOR JP Z,FAILUX ; USER EXIT - +; CP 'R' ; CHECK FOR JP Z,REBOOT ; COLD REBOOT REQUEST ; @@ -169,6 +188,9 @@ MENULP: CALL MENU ; DISPLAY MENU CP 'S' ; CHECK FOR CALL Z,OPTIONS ; SERIAL CHANGE ; +; CP 'D' ; DUPLICATE +; CALL Z,OPTIOND ; FLASH +; #IF (XFUDBG) CP 'T' ; TEST TIMEOUT CALL Z,OPTIONT ; LOOP @@ -285,7 +307,7 @@ csloop: add A,(HL) ; JUST ADD UP THE BYTES LD HL,pktNo ; UPDATE THE PACKET COUNTERS INC (HL) INC HL - dec (HL) + DEC (HL) ; LD C,ACK ; TELL UPLOADER THAT WE'RE HAPPY WITH WITH CALL SEROUT ; PACKET AND GO BACK AND FETCH SOME MORE @@ -355,21 +377,19 @@ WSEC: PUSH HL ; WRITE A OR A ; IF TRANSFERRING JR Z,WSEC1 ; OVER CONSOLE ; - LD HL,MD_SECT ; IF SECTOR IS 0 - LD A,(HL) ; THEN DISPLAY - OR A ; BANK # PREFIX - JR NZ,NXTS1 + LD A,(MD_SECT) ; IF SECTOR IS 0 + OR A ; THEN DISPLAY + JR NZ,NXTS1 ; BANK # PREFIX LD HL,msgBank CALL PRTSTR0 - LD HL,MD_BANK - LD A,(HL) + LD A,(MD_BANK) + CALL PRTHEXB ; NXTS1: LD C,' ' ; DISPLAY CALL CONOUT ; CURRENT LD C,'S' ; SECTOR CALL CONOUT - LD HL,MD_SECT - LD A,(HL) + LD A,(MD_SECT) RRCA RRCA RRCA @@ -511,6 +531,9 @@ MENU1: CALL PRTSTR0 CALL PRTSTR0 ; MENU OPTIONS RET ; +OPTIOND: + RET +; OPTIONV:LD A,(WRTVER) ; TOGGLE CPL ; VERIFY LD (WRTVER),A ; FLAG @@ -1031,6 +1054,7 @@ msgWriteV: .DB CR,LF,"(V) Toggle Write Verify : ",0 msgBegin: .DB CR,LF,"(R) Reboot" .DB CR,LF,"(U) Begin Update" .DB CR,LF,"(X) Exit to Rom Loader" +; .DB CR,LF,"(D) Duplicate ROM #1 to #2" #IF (XFUDBG) .DB CR,LF,"(H) Select half speed" .DB CR,LF,"(T) Test 20s timeout"