|
|
|
@ -58,11 +58,15 @@ |
|
|
|
; 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 (D) - DUPLICATE FLASH #1 TO FLASH #2 WILL MAKE A COPY OF FLASH #1 |
|
|
|
; ONTO FLASH #2. THE PURPOSE OF THIS IS TO ENABLE MAKING A BACKUP COPY OF |
|
|
|
; THE CURRENT FLASH. |
|
|
|
; |
|
|
|
; 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 |
|
|
|
; |
|
|
|
; |
|
|
|
; V.DEV 3/1/2021 PHIL SUMMERS, DIFFICULTYLEVELHIGH@GMAIL.COM |
|
|
|
; V.DEV 8/1/2021 PHIL SUMMERS, DIFFICULTYLEVELHIGH@GMAIL.COM |
|
|
|
; b1ackmai1er ON RETROBREWCOMPUTERS.ORG |
|
|
|
; |
|
|
|
; |
|
|
|
@ -100,8 +104,6 @@ |
|
|
|
HBX_BNKSEL .EQU $FE2B |
|
|
|
HBX_START .EQU $FE00 |
|
|
|
; |
|
|
|
BIOSBID .EQU $00 ; BIOS BANK ID NUMBER |
|
|
|
; |
|
|
|
#DEFINE HB_DI DI |
|
|
|
#DEFINE HB_EI EI |
|
|
|
; |
|
|
|
@ -150,11 +152,14 @@ BSPC: .EQU 'H'-40h ; ^H = Backspace |
|
|
|
LD (SERDEV),A |
|
|
|
; |
|
|
|
RESTART: |
|
|
|
LD DE,$0000 ; SET UP |
|
|
|
LD HL,$0000 ; START |
|
|
|
CALL MD_CALBAS ; BANK AND |
|
|
|
LD HL,MD_FIDEN ; SECTOR |
|
|
|
CALL MD_FNCALL |
|
|
|
; LD DE,$0000 ; SET UP |
|
|
|
; LD HL,$0000 ; START |
|
|
|
; CALL MD_CALBAS ; BANK AND SECTOR |
|
|
|
LD DE,$0000 |
|
|
|
LD (MD_FBAS),DE |
|
|
|
|
|
|
|
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 |
|
|
|
@ -171,10 +176,10 @@ MENULP: CALL MENU ; DISPLAY MENU |
|
|
|
CALL GETINP ; GET SELECTION |
|
|
|
; |
|
|
|
CP 'U' ; BEGIN |
|
|
|
JR Z,CLRSER ; TRANSFER |
|
|
|
JR Z,BEGUPD ; TRANSFER |
|
|
|
; |
|
|
|
CP 'V' ; CHECK FOR |
|
|
|
CALL Z,OPTIONV ; VERIFY TOGGLE |
|
|
|
JP Z,OPTIONV ; VERIFY TOGGLE |
|
|
|
; |
|
|
|
CP 'X' ; CHECK FOR |
|
|
|
JP Z,FAILUX ; USER EXIT |
|
|
|
@ -183,29 +188,29 @@ MENULP: CALL MENU ; DISPLAY MENU |
|
|
|
JP Z,REBOOT ; COLD REBOOT REQUEST |
|
|
|
; |
|
|
|
CP 'C' ; CHECK FOR |
|
|
|
CALL Z,OPTIONC ; CONSOLE CHANGE |
|
|
|
JP Z,OPTIONC ; CONSOLE CHANGE |
|
|
|
; |
|
|
|
CP 'S' ; CHECK FOR |
|
|
|
CALL Z,OPTIONS ; SERIAL CHANGE |
|
|
|
JP Z,OPTIONS ; SERIAL CHANGE |
|
|
|
; |
|
|
|
; CP 'D' ; DUPLICATE |
|
|
|
; CALL Z,OPTIOND ; FLASH |
|
|
|
CP 'D' ; DUPLICATE |
|
|
|
JP Z,OPTIOND ; FLASH |
|
|
|
; |
|
|
|
#IF (XFUDBG) |
|
|
|
CP 'T' ; TEST TIMEOUT |
|
|
|
CALL Z,OPTIONT ; LOOP |
|
|
|
JP Z,OPTIONT ; LOOP |
|
|
|
; |
|
|
|
CP 'H' ; HALF |
|
|
|
CALL Z,OPTIONH ; SPEED SWITCH |
|
|
|
JP Z,OPTIONH ; SPEED SWITCH |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
JR MENULP |
|
|
|
; |
|
|
|
CLRSER: CALL SERST ; EMPTY SERIAL BUFFER |
|
|
|
BEGUPD: CALL SERST ; EMPTY SERIAL BUFFER |
|
|
|
OR A ; SO WE HAVE A CLEAN |
|
|
|
JR Z,SERCLR ; START ON TRANSFER |
|
|
|
CALL SERIN |
|
|
|
JR CLRSER |
|
|
|
JR BEGUPD |
|
|
|
; |
|
|
|
SERCLR: LD HL,msgInstr ; PROVIDE |
|
|
|
CALL PRTSTR0 ; INSTRUCTION |
|
|
|
@ -240,7 +245,7 @@ NPloop: LD B,5 ; 5 SECONDS OF TIMEOUT BEFORE EACH NEW BLOCK |
|
|
|
; |
|
|
|
NotPacketTimeout: |
|
|
|
cp EOT ; DID UPLOADER SAY WE'RE FINISHED? |
|
|
|
jp Z,Done ; YES, THEN WE'RE DONE |
|
|
|
JP Z,Done ; YES, THEN WE'RE DONE |
|
|
|
cp CAN ; UPLOADER WANTS TO FAIL TRANSFER? |
|
|
|
jp Z,FAILCN ; YES, THEN WE'RE ALSO DONE |
|
|
|
cp SOH ; DID WE GET A START-OF-NEW-PACKET? |
|
|
|
@ -281,7 +286,7 @@ GetRestOfPacket: |
|
|
|
LD B,128 |
|
|
|
XOR A |
|
|
|
csloop: add A,(HL) ; JUST ADD UP THE BYTES |
|
|
|
inc HL |
|
|
|
INC HL |
|
|
|
DJNZ csloop |
|
|
|
; |
|
|
|
XOR (HL) ; HL POINTS TO THE RECEIVED CHECKSUM SO |
|
|
|
@ -295,7 +300,7 @@ csloop: add A,(HL) ; JUST ADD UP THE BYTES |
|
|
|
; |
|
|
|
LD HL,pktNo ; HAVE WE RECEIVED |
|
|
|
LD A,(HL) ; A BLOCK OF 32 |
|
|
|
DEC A ; XMODEM PACKETS |
|
|
|
DEC A ; XMODEM PACKETS? |
|
|
|
AND %00011111 ; IF YES THEN WERE WE |
|
|
|
CP %00011111 ; HAVE ENOUGH TO |
|
|
|
LD A,0 ; WRITE A FLASH SECTOR |
|
|
|
@ -314,9 +319,13 @@ csloop: add A,(HL) ; JUST ADD UP THE BYTES |
|
|
|
; |
|
|
|
JP GetNewPacket |
|
|
|
; |
|
|
|
COUTON: LD A,$FF ; TURN ON |
|
|
|
LD (BLKCOUT),A ; OUTPUT |
|
|
|
RET |
|
|
|
; |
|
|
|
Done: LD C,ACK ; TELL UPLOADER |
|
|
|
CALL SEROUT ; WE'RE DONE |
|
|
|
LD HL,msgSucces1 ; BACK TO |
|
|
|
Done1: LD HL,msgSuccess ; BACK TO |
|
|
|
JR MSGRS ; MENU |
|
|
|
; |
|
|
|
FAILTO: LD HL,msgTimout ; TIMOUT WAITING |
|
|
|
@ -335,7 +344,7 @@ FAILPN: LD HL,msgPacErr ; PACKET |
|
|
|
JR ERRRX ; NUMBER ERROR |
|
|
|
; |
|
|
|
FAILCN: LD HL,msgCancel ; TRANSMISSION |
|
|
|
JR ERRRX ; FAILCN |
|
|
|
JR ERRRX ; FAILURE |
|
|
|
; |
|
|
|
FAILUX: LD HL,msgUserEx ; USER |
|
|
|
JR Die ; EXIT |
|
|
|
@ -343,25 +352,22 @@ FAILUX: LD HL,msgUserEx ; USER |
|
|
|
FAILBC: LD HL,msgUnsupC ; UNSUPPORTED |
|
|
|
JR Die ; FLASH CHIP |
|
|
|
; |
|
|
|
ERRRX: LD A,$FF |
|
|
|
LD (BLKCOUT),A ; TURN ON OUTPUT |
|
|
|
ERRRX: CALL COUTON ; TURN ON OUTPUT |
|
|
|
CALL PRTSTR0 ; DISPLAY TRANSMISSION |
|
|
|
LD HL,msgFailure ; RECEIPT ERROR |
|
|
|
CALL PRTSTR0 |
|
|
|
JP RESTART |
|
|
|
; |
|
|
|
MSGRS: LD A,$FF |
|
|
|
LD (BLKCOUT),A ; TURN ON OUTPUT |
|
|
|
CALL PRTSTR0 ; DISPLAY TRANSMISSION |
|
|
|
JP RESTART |
|
|
|
MSGRS: CALL COUTON ; TURN ON OUTPUT |
|
|
|
CALL PRTSTR0 ; DISPLAY |
|
|
|
JP RESTART ; MESSAGE |
|
|
|
; |
|
|
|
REBOOT: LD HL,msgReboot ; REBOOT MESSAGE |
|
|
|
CALL PRTSTR0 |
|
|
|
LD C,BF_SYSRES_COLD ; COLD RESTART |
|
|
|
JR Die1 |
|
|
|
; |
|
|
|
Die: LD A,$FF |
|
|
|
LD (BLKCOUT),A ; TURN ON OUTPUT |
|
|
|
Die: CALL COUTON ; TURN ON OUTPUT |
|
|
|
CALL PRTSTR0 ; Prints message and exits from program |
|
|
|
LD C,BF_SYSRES_WARM ; WARM START |
|
|
|
Die1: LD B,BF_SYSRESET ; SYSTEM RESTART |
|
|
|
@ -373,28 +379,7 @@ WSEC: PUSH HL ; WRITE A |
|
|
|
PUSH BC ; FLASH |
|
|
|
PUSH DE ; SECTOR |
|
|
|
; |
|
|
|
LD A,(BLKCOUT) ; SKIP OUTPUT |
|
|
|
OR A ; IF TRANSFERRING |
|
|
|
JR Z,WSEC1 ; OVER CONSOLE |
|
|
|
; |
|
|
|
LD A,(MD_SECT) ; IF SECTOR IS 0 |
|
|
|
OR A ; THEN DISPLAY |
|
|
|
JR NZ,NXTS1 ; BANK # PREFIX |
|
|
|
LD HL,msgBank |
|
|
|
CALL PRTSTR0 |
|
|
|
LD A,(MD_BANK) |
|
|
|
CALL PRTHEXB |
|
|
|
; |
|
|
|
NXTS1: LD C,' ' ; DISPLAY |
|
|
|
CALL CONOUT ; CURRENT |
|
|
|
LD C,'S' ; SECTOR |
|
|
|
CALL CONOUT |
|
|
|
LD A,(MD_SECT) |
|
|
|
RRCA |
|
|
|
RRCA |
|
|
|
RRCA |
|
|
|
RRCA |
|
|
|
CALL PRTHEXB |
|
|
|
CALL DISPROG ; DISPLAY PROGRESS |
|
|
|
; |
|
|
|
WSEC1: LD HL,MD_FERAS ; ERASE |
|
|
|
CALL MD_FNCALL ; AND WRITE |
|
|
|
@ -404,7 +389,7 @@ WSEC1: LD HL,MD_FERAS ; ERASE |
|
|
|
; |
|
|
|
LD A,(WRTVER) ; VERIFY |
|
|
|
OR A ; WRITE IF |
|
|
|
JR Z,NOVER ; OPTION |
|
|
|
JR Z,NOVER ; OPTION SET |
|
|
|
; |
|
|
|
LD IX,sector4k ; VERIFY |
|
|
|
LD HL,MD_FVERI ; WRITE |
|
|
|
@ -435,6 +420,30 @@ NXTS3: LD A,(VERRES) ; EXIT WITH STATUS |
|
|
|
POP HL |
|
|
|
RET |
|
|
|
; |
|
|
|
DISPROG:LD A,(BLKCOUT) ; SKIP OUTPUT |
|
|
|
OR A ; IF OUTPUT |
|
|
|
RET Z ; BLOCKED |
|
|
|
; |
|
|
|
LD A,(MD_SECT) ; IF SECTOR IS 0 |
|
|
|
OR A ; THEN DISPLAY |
|
|
|
JR NZ,DISP1 ; BANK # PREFIX |
|
|
|
LD HL,msgBank |
|
|
|
CALL PRTSTR0 |
|
|
|
LD A,(MD_BANK) |
|
|
|
CALL PRTHEXB |
|
|
|
; |
|
|
|
DISP1: LD C,' ' ; DISPLAY |
|
|
|
CALL CONOUT ; CURRENT |
|
|
|
LD C,'S' ; SECTOR |
|
|
|
CALL CONOUT |
|
|
|
LD A,(MD_SECT) |
|
|
|
RRCA |
|
|
|
RRCA |
|
|
|
RRCA |
|
|
|
RRCA |
|
|
|
CALL PRTHEXB |
|
|
|
RET |
|
|
|
; |
|
|
|
; WAITS FOR UP TO A SECONDS FOR A CHARACTER TO BECOME AVAILABLE AND |
|
|
|
; RETURNS IT IN A WITHOUT ECHO AND CARRY CLEAR. IF TIMEOUT THEN CARRY |
|
|
|
; IT SET. |
|
|
|
@ -463,7 +472,7 @@ GCtmoc: PUSH BC |
|
|
|
DJNZ GCtmob |
|
|
|
POP BC |
|
|
|
DJNZ GetCharTmo |
|
|
|
scf ; SET CARRY SIGNALS TIMEOUT |
|
|
|
SCF ; SET CARRY SIGNALS TIMEOUT |
|
|
|
RET |
|
|
|
; |
|
|
|
GotChar:POP BC |
|
|
|
@ -475,7 +484,7 @@ GotChrX:CALL SERIN |
|
|
|
; |
|
|
|
GETINP: CALL CONIN ; GET A CHARACTER |
|
|
|
LD C,A ; RETURN SEQUENCE |
|
|
|
CALL CONOUT ; COVERT TO UPPERCASE |
|
|
|
CALL CONOUT ; CONVERT TO UPPERCASE |
|
|
|
LD C,BSPC ; RETURN CHARACTER IN A |
|
|
|
CALL CONOUT |
|
|
|
LD B,A |
|
|
|
@ -501,8 +510,8 @@ PRTSTR0:LD A,(HL) ; PRINT MESSAGE POINTED TOP HL UNTIL 0 |
|
|
|
RET Z ; IF ZERO RETURN TO CALLER |
|
|
|
LD C,A |
|
|
|
CALL CONOUT ; ELSE PRINT THE CHARACTER |
|
|
|
inc HL |
|
|
|
jp PRTSTR0 |
|
|
|
INC HL |
|
|
|
JP PRTSTR0 |
|
|
|
; |
|
|
|
MENU: LD HL,msgConsole ; DISPLAY |
|
|
|
CALL PRTSTR0 ; CONSOLE |
|
|
|
@ -531,13 +540,83 @@ MENU1: CALL PRTSTR0 |
|
|
|
CALL PRTSTR0 ; MENU OPTIONS |
|
|
|
RET |
|
|
|
; |
|
|
|
OPTIOND: |
|
|
|
RET |
|
|
|
OPTIOND:CALL COUTON ; TURN ON OUTPUT |
|
|
|
; |
|
|
|
LD HL,msgConfirm ; CONFIRM |
|
|
|
CALL PRTSTR0 ; OK |
|
|
|
CALL GETINP ; TO |
|
|
|
CP 'Y' ; PROCEED |
|
|
|
JP NZ,MENULP |
|
|
|
DUPL: LD HL,msgCopying |
|
|
|
CALL PRTSTR0 |
|
|
|
; |
|
|
|
LD B,16 ; LOOP THROUGH 16 BANKS |
|
|
|
; |
|
|
|
XOR A ; START AT |
|
|
|
LD (MD_BANK),A ; BANK 0 |
|
|
|
; |
|
|
|
NXTB: PUSH BC |
|
|
|
; |
|
|
|
XOR A ; START AT |
|
|
|
LD (MD_SECT),A ; SECTOR 0 |
|
|
|
; |
|
|
|
LD B,8 ; LOOP THROUGH 8 SECTORS |
|
|
|
NXTS: PUSH BC |
|
|
|
; |
|
|
|
CALL DISPROG ; DISPLAY PROGRESS |
|
|
|
; |
|
|
|
LD IX,sector4k ; READ SECTOR |
|
|
|
LD HL,MD_FREAD ; FROM ROM #1 |
|
|
|
CALL MD_FNCALL |
|
|
|
; |
|
|
|
LD HL,MD_BANK ; SET CHIP #2 |
|
|
|
SET 4,(HL) |
|
|
|
; |
|
|
|
LD HL,MD_FERAS ; ERASE SECTOR |
|
|
|
CALL MD_FNCALL ; ON ROM #2 |
|
|
|
OR A |
|
|
|
JR NZ,VERF |
|
|
|
; |
|
|
|
LD IX,sector4k ; WRITE SECTOR |
|
|
|
LD HL,MD_FWRIT ; ON ROM #2 |
|
|
|
CALL MD_FNCALL |
|
|
|
; |
|
|
|
LD A,(WRTVER) ; VERIFY |
|
|
|
OR A ; WRITE IF |
|
|
|
JR Z,NOVER1 ; OPTION |
|
|
|
; |
|
|
|
LD IX,sector4k ; VERIFY |
|
|
|
LD HL,MD_FVERI ; WRITE |
|
|
|
CALL MD_FNCALL |
|
|
|
OR A ; EXIT IF |
|
|
|
JR NZ,VERF ; VERIFY FAILED |
|
|
|
; |
|
|
|
NOVER1: LD HL,MD_BANK ; RESET TO CHIP #1 |
|
|
|
RES 4,(HL) |
|
|
|
; |
|
|
|
LD A,(MD_SECT) ; POINT TO |
|
|
|
ADD A,$10 ; NEXT |
|
|
|
LD (MD_SECT),A ; SECTOR |
|
|
|
; |
|
|
|
POP BC ; LOOP |
|
|
|
DJNZ NXTS ; NEXT SECTOR |
|
|
|
; |
|
|
|
LD HL,MD_BANK ; POINT TO ; 00-15 = CHIP 1 |
|
|
|
INC (HL) ; NEXT BANK ; 16-21 = CHIP 2 |
|
|
|
; |
|
|
|
POP BC ; LOOP |
|
|
|
DJNZ NXTB ; NEXT BANK |
|
|
|
; |
|
|
|
JP Done1 ; SUCCESS. RETURN TO MENU |
|
|
|
; |
|
|
|
VERF: POP BC ; EXIT WITH FAIL |
|
|
|
POP BC ; FAIL MESSAGE AND |
|
|
|
JP FAILWF ; RETURN TO MENU |
|
|
|
; |
|
|
|
OPTIONV:LD A,(WRTVER) ; TOGGLE |
|
|
|
CPL ; VERIFY |
|
|
|
LD (WRTVER),A ; FLAG |
|
|
|
RET |
|
|
|
JP MENULP ; BACK TO MENU |
|
|
|
; |
|
|
|
OPTIONC:LD HL,msgEnterUnit ; GET |
|
|
|
CALL PRTSTR0 ; CONSOLE |
|
|
|
@ -553,8 +632,8 @@ CLRCON: CALL CONST ; EMPTY CONSOLE BUFFER |
|
|
|
JR Z,CONCLR ; FALSE ENTRIES |
|
|
|
CALL CONIN |
|
|
|
JR CLRCON |
|
|
|
CONCLR: XOR A |
|
|
|
RET |
|
|
|
|
|
|
|
CONCLR: JP MENULP ; BACK TO MENU |
|
|
|
; |
|
|
|
OPTIONS:LD HL,msgEnterUnit ; GET |
|
|
|
CALL PRTSTR0 ; CONSOLE |
|
|
|
@ -565,23 +644,25 @@ OPTIONS:LD HL,msgEnterUnit ; GET |
|
|
|
JR NC,CONCLR |
|
|
|
SUB '0' ; NUMBER |
|
|
|
LD (SERDEV),A |
|
|
|
XOR A |
|
|
|
RET |
|
|
|
; |
|
|
|
#IF (XFUDBG) |
|
|
|
OPTIONT:LD C,'*' |
|
|
|
CALL CONOUT |
|
|
|
LD B,20 |
|
|
|
CALL GetCharTmo |
|
|
|
LD C,'*' |
|
|
|
CALL CONOUT |
|
|
|
RET |
|
|
|
JP MENULP ; BACK TO MENU |
|
|
|
; |
|
|
|
OPTIONH:LD A,8 ; TURN ON THE |
|
|
|
OUT (RTCIO),A ; SBC-V2-004+ |
|
|
|
LD HL,TmoFct ; CLOCK DIVIDER |
|
|
|
SRL (HL) ; AND ADJUST |
|
|
|
RET ; DELAY FACTOR (/2) |
|
|
|
#IF (XFUDBG) |
|
|
|
OPTIONT:LD HL,msgCRLF |
|
|
|
CALL PRTSTR0 |
|
|
|
LD C,'*' ; DISPLAY START |
|
|
|
CALL CONOUT ; INDICATOR |
|
|
|
LD B,20 ; DELAY 20 |
|
|
|
CALL GetCharTmo ; SECONDS |
|
|
|
LD C,'*' ; DISPLAY FINISH |
|
|
|
CALL CONOUT ; INDICATOR |
|
|
|
JP MENULP ; BACK TO MENU |
|
|
|
; |
|
|
|
OPTIONH:LD A,8 ; TURN ON THE SBC-V2-004+ |
|
|
|
OUT (RTCIO),A ; CLOCK DIVIDER |
|
|
|
LD HL,TmoFct ; AND ADJUST |
|
|
|
SRL (HL) ; DELAY FACTOR (/2) |
|
|
|
JP MENULP ; BACK TO MENU |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
SEROUT: PUSH HL ; SERIAL OUTPUT CHARACTER IN C |
|
|
|
@ -705,23 +786,23 @@ HEXCONV:AND 0FH ; CONVERT LOW NIBBLE OF A TO ASCII HEX |
|
|
|
; C CONTAINS HIGH BYTE OF SECTOR ADDRESS |
|
|
|
;====================================================================== |
|
|
|
; |
|
|
|
MD_CALBAS: |
|
|
|
;MD_CALBAS: |
|
|
|
; |
|
|
|
PUSH HL |
|
|
|
LD A,E ; BOTTOM PORTION OF SECTOR |
|
|
|
AND $0F ; ADDRESS THAT GETS WRITTEN |
|
|
|
RLC H ; WITH ERASE COMMAND BYTE |
|
|
|
RLA ; A15 GETS DROPPED OFF AND |
|
|
|
LD B,A ; ADDED TO BANK SELECT |
|
|
|
; PUSH HL |
|
|
|
; LD A,E ; BOTTOM PORTION OF SECTOR |
|
|
|
; AND $0F ; ADDRESS THAT GETS WRITTEN |
|
|
|
; RLC H ; WITH ERASE COMMAND BYTE |
|
|
|
; RLA ; A15 GETS DROPPED OFF AND |
|
|
|
; LD B,A ; ADDED TO BANK SELECT |
|
|
|
; |
|
|
|
LD A,H ; TOP SECTION OF SECTOR |
|
|
|
RRA ; ADDRESS THAT GETS WRITTEN |
|
|
|
AND $70 ; TO BANK SELECT PORT |
|
|
|
LD C,A |
|
|
|
POP HL |
|
|
|
; LD A,H ; TOP SECTION OF SECTOR |
|
|
|
; RRA ; ADDRESS THAT GETS WRITTEN |
|
|
|
; AND $70 ; TO BANK SELECT PORT |
|
|
|
; LD C,A |
|
|
|
; POP HL |
|
|
|
; |
|
|
|
LD (MD_FBAS),BC ; SAVE BANK AND SECTOR FOR USE IN FLASH ROUTINES |
|
|
|
RET |
|
|
|
; LD (MD_FBAS),BC ; SAVE BANK AND SECTOR FOR USE IN FLASH ROUTINES |
|
|
|
; RET |
|
|
|
; |
|
|
|
MD_FSTART: .EQU $ ; FLASH ROUTINES WHICH GET RELOCATED TO HIGH MEMORY |
|
|
|
; |
|
|
|
@ -1040,11 +1121,13 @@ MD_FWRIT .EQU HBX_START-MD_CSIZ+MD_FWRIT_R-MD_FSTART ; CALL ADDRESS FOR WRITE F |
|
|
|
; Message strings |
|
|
|
; |
|
|
|
msgHeader: .DB CR,LF,CR,LF,"ROMWBW XMODEM FLASH UPDATER",CR,LF,0 |
|
|
|
msgConfirm: .DB CR,LF,CR,LF,"ENTER Y TO CONFIRM OVERWRITE : ",0 |
|
|
|
msgInstr: .DB CR,LF,CR,LF,"START TRANSFER OF YOUR UPDATE IMAGE OR ROM",CR,LF,0 |
|
|
|
msgUserEx: .DB CR,LF,"UPDATER EXITED BY USER",CR,LF,0 |
|
|
|
msgBank: .DB CR,LF,"BANK ",0 |
|
|
|
msgUnsupC: .DB CR,LF,"FLASH CHIP NOT SUPPORTED",CR,LF,0 |
|
|
|
msgReboot: .DB CR,LF,"REBOOTING ...",CR,LF,0 |
|
|
|
msgCopying: .DB CR,LF,"COPYING ...",CR,LF,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 |
|
|
|
@ -1054,13 +1137,13 @@ 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" |
|
|
|
.DB CR,LF,"(D) Duplicate Flash #1 to #2" |
|
|
|
#IF (XFUDBG) |
|
|
|
.DB CR,LF,"(H) Select half speed" |
|
|
|
.DB CR,LF,"(T) Test 20s timeout" |
|
|
|
#ENDIF |
|
|
|
.DB CR,LF,CR,LF,"Select : ",0 |
|
|
|
msgSucces1: .DB CR,LF,CR,LF,"UPDATE COMPLETED WITHOUT ERRORS ",CR,LF,0 |
|
|
|
msgSuccess: .DB CR,LF,CR,LF,"COMPLETED WITHOUT ERRORS ",CR,LF,0 |
|
|
|
msgEnterUnit: .DB CR,LF,"ENTER UNIT NUMBER : ",0 |
|
|
|
msgCRLF: .DB CR,LF,0 |
|
|
|
msgYES: .DB "YES",0 |
|
|
|
|