diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index 2a899669..4c9c8cd6 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -849,8 +849,6 @@ MD_FNCALL: ; USING HBX_BUF FOR CODE AREA CALL PRTHEXWORD #ENDIF ; - EX AF,AF' - PUSH AF LD A,(HB_CURBNK) ; WE ARE STARTING IN HB_CURBNK ; HB_DI @@ -859,9 +857,6 @@ MD_FNCALL: ; USING HBX_BUF FOR CODE AREA CALL HBX_BUF ; EXECUTE RELOCATED CODE LD SP,(MD_SAVSTK) ; RESTORE STACK HB_EI -; - POP AF - EX AF,AF' ; #IF (MD_FDBG==1) CALL PC_SPACE @@ -913,8 +908,6 @@ MD_FIDEN_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY LD A,D ; RETURN TO ORIGINAL BANK JP HBX_BNKSEL ; WHICH IS OUR RAM BIOS COPY ; -; RET -; MD_I_SZ .EQU $-MD_FIDEN_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED .ECHO "MD_FIDEN_R occupies " .ECHO MD_I_SZ @@ -935,7 +928,7 @@ MD_I_SZ .EQU $-MD_FIDEN_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED ; MD_FERAS_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY ; - EX AF,AF' ; SAVE CURRENT BANK + PUSH AF ; SAVE CURRENT BANK LD A,B ; SELECT BANK CALL HBX_BNKSEL ; TO PROGRAM ; @@ -976,11 +969,9 @@ MD_WT4: LD A,(HL) ; DO TWO SUCCESSIVE READS JR MD_WT6 MD_WT5: LD C,L ; SET SUCCESS STATUS ; -MD_WT6: EX AF,AF' ; RETURN TO ORIGINAL BANK +MD_WT6: POP AF ; RETURN TO ORIGINAL BANK JP HBX_BNKSEL ; WHICH IS OUR RAM BIOS COPY ; -; RET -; MD_S_SZ .EQU $-MD_FERAS_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED .ECHO "MD_FERAS_R occupies " .ECHO MD_S_SZ @@ -1008,19 +999,17 @@ MD_FREAD_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY LD H,C ; SECTOR LD L,D ; ADDRESS ; - EX AF,AF' ; PUT DESTINATION BANK IN AF' + PUSH AF ; SAVE CURRENT BANK ; -MD_FRD1: - LD A,B ; PUT SOURCE BANK IN AF - CALL HBX_BNKSEL ; READ ; SWITCH TO SOURCE BANK +MD_FRD1:LD A,B ; CHANGE TO SOURCE BANK + CALL HBX_BNKSEL ; READ LD C,(HL) ; BYTE ; - EX AF,AF' ; SELECT BANK ; SWITCH DESTINATION BANK - PUSH AF - CALL HBX_BNKSEL ; TO WRITE - POP AF + POP AF ; RESTORE CURRENT BANK + PUSH AF ; AND SAVE A COPY FOR NEXT LOOP + CALL HBX_BNKSEL ; SELECT BANK TO WRITE TO +; LD (IX+0),C ; WRITE BYTE - EX AF,AF' ; ; PUT SOURCE BANK IN AF ; INC HL ; NEXT SOURCE LOCATION INC IX ; NEXT DESTINATION LOCATION @@ -1029,6 +1018,7 @@ MD_FRD1: BIT 4,D ; WE HAVE DONE ONE SECTOR JR Z,MD_FRD1 ; + POP AF RET ; MD_R_SZ .EQU $-MD_FREAD_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED @@ -1057,20 +1047,19 @@ MD_FVERI_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY LD H,C ; SECTOR LD L,D ; ADDRESS ; - EX AF,AF' ; PUT SOURCE BANK IN AF' (RAM) + PUSH AF ; SAVE CURRENT BANK ; -MD_FVE1: - LD A,B ; SELECT BANK - CALL HBX_BNKSEL ; TO READ ; SWITCH TO FLASH BANK - LD A,(HL) ; READ BYTE +MD_FVE1:LD A,B ; SELECT BANK + CALL HBX_BNKSEL ; TO READ + LD C,(HL) ; READ BYTE ; - EX AF,AF' ; SELECT BANK ; SWITCH TO RAM BANK - PUSH AF + POP AF ; RESTORE CURRENT BANK + PUSH AF ; AND SAVE A COPY FOR NEXT LOOP CALL HBX_BNKSEL ; TO VERIFY AGAINST - POP AF - EX AF,AF' ; + LD A,C SUB (IX+0) ; COMPARE BYTE + LD C,A ; SET STATUS JR NZ,MD_FVE2 ; EXIT IF MISMATCH ; INC HL ; NEXT SOURCE LOCATION @@ -1080,10 +1069,7 @@ MD_FVE1: BIT 4,D ; WE HAVE DONE ONE SECTOR JR Z,MD_FVE1 ; -MD_FVE2: - LD C,A ; SET STATUS - EX AF,AF' -; +MD_FVE2:POP AF RET ; MD_V_SZ .EQU $-MD_FVERI_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED @@ -1112,11 +1098,8 @@ MD_FWRIT_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY LD H,C ; SECTOR LD L,D ; ADDRESS ; -MD_FWRI1: - PUSH AF - CALL HBX_BNKSEL ; SELECT BANK TO READ - POP AF - EX AF,AF' ; SAVE CURRENT BANK + PUSH AF ; SAVE CURRENT BANK +MD_FWR1:CALL HBX_BNKSEL ; SELECT BANK TO READ ; LD C,(IX+0) ; READ IN BYTE ; @@ -1134,25 +1117,25 @@ MD_FWRI1: LD (HL),C ; WRITE OUT BYTE ; ; ; DO TWO SUCCESSIVE READS -MD_FW7: LD A,(HL) ; FROM THE SAME FLASH ADDRESS. +MD_FWR2:LD A,(HL) ; FROM THE SAME FLASH ADDRESS. LD C,(HL) ; IF TOGGLE BIT (BIT 6) XOR C ; IS THE SAME ON BOTH READS BIT 6,A ; THEN WRITE IS COMPLETE SO EXIT. - JR NZ,MD_FW7 ; Z TRUE IF BIT 6=0 I.E. "NO TOGGLE" WAS DETECTED. + JR NZ,MD_FWR2 ; Z TRUE IF BIT 6=0 I.E. "NO TOGGLE" WAS DETECTED. ; INC HL ; NEXT DESTINATION LOCATION INC IX ; NEXT SOURCE LOCATION ; - EX AF,AF' ; RESTORE CURRENT BANK + POP AF ; RESTORE CURRENT BANK + PUSH AF ; AND SAVE A COPY FOR NEXT LOOP ; INC DE ; CONTINUE WRITING UNTIL BIT 4,D ; WE HAVE DONE ONE SECTOR - JR Z,MD_FWRI1 + JR Z,MD_FWR1 ; + POP AF ; RESTORE CURRENT BANK JP HBX_BNKSEL ; RETURN TO ORIGINAL BANK WHICH IS OUR RAM BIOS COPY ; -; RET -; MD_W_SZ .EQU $-MD_FWRIT_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED .ECHO "MD_FWRIT_R occupies " .ECHO MD_W_SZ diff --git a/Source/HBIOS/updater.asm b/Source/HBIOS/updater.asm index 7497bd03..6aaf0017 100644 --- a/Source/HBIOS/updater.asm +++ b/Source/HBIOS/updater.asm @@ -222,7 +222,7 @@ CHPFND: LD (ERATYP),A ; SAVE ERASE TYPE RST 08 ; AND MULTIPLY LD A,L ; BY 4 ADD A,A ; TO CREATE - ADD A,A ; TIMOUT DELAY + ADD A,A ; TIMEOUT DELAY LD (TmoFct),A ; FACTOR ; MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING @@ -501,15 +501,15 @@ DISP1: LD C,' ' ; DISPLAY CALL PRTHEXB RET ; -; WAITS FOR UP TO A SECONDS FOR A CHARACTER TO BECOME AVAILABLE AND +; WAITS FOR UP TO B SECONDS FOR A CHARACTER TO BECOME AVAILABLE AND ; RETURNS IT IN A WITHOUT ECHO AND CARRY CLEAR. IF TIMEOUT THEN CARRY ; IT SET. ; -; 4MHZ 20 SECONDS B=16 -; 10MHZ 20 SECONDS B=39 +; 4MHZ 20 SECONDS TmoFct = 16 +; 10MHZ 20 SECONDS TmoFct = 39 ; GetCharTmo1: - LD B,1 + LD B,1 ; WAIT 1 SECOND FOR SERIAL INPUT GetCharTmo: CALL SERST ; IF THERE IS A OR A ; CHARACTER AVAILABLE @@ -1187,9 +1187,9 @@ MD_FREAD_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY LD L,D ; ADDRESS ; PUSH AF ; SAVE CURRENT BANK -MD_FRD1: - LD A,B ; PUT SOURCE BANK IN AF - CALL HBX_BNKSEL ; READ ; SWITCH TO SOURCE BANK +; +MD_FRD1:LD A,B ; CHANGE TO SOURCE BANK + CALL HBX_BNKSEL ; READ LD C,(HL) ; BYTE ; POP AF ; RESTORE CURRENT BANK @@ -1230,8 +1230,8 @@ MD_FVERI_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY LD L,D ; ADDRESS ; PUSH AF ; SAVE CURRENT BANK -MD_FVE1: - LD A,B ; SELECT BANK +; +MD_FVE1:LD A,B ; SELECT BANK CALL HBX_BNKSEL ; TO READ LD C,(HL) ; READ BYTE ; @@ -1276,8 +1276,7 @@ MD_FWRIT_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY LD L,D ; ADDRESS ; PUSH AF ; SAVE CURRENT BANK -MD_FWRI1: - CALL HBX_BNKSEL ; SELECT BANK TO READ +MD_FWR1:CALL HBX_BNKSEL ; SELECT BANK TO READ ; LD C,(IX+0) ; READ IN BYTE ; @@ -1295,11 +1294,11 @@ MD_FWRI1: LD (HL),C ; WRITE OUT BYTE ; ; ; DO TWO SUCCESSIVE READS -MD_FW7: LD A,(HL) ; FROM THE SAME FLASH ADDRESS. +MD_FWR2:LD A,(HL) ; FROM THE SAME FLASH ADDRESS. LD C,(HL) ; IF TOGGLE BIT (BIT 6) XOR C ; IS THE SAME ON BOTH READS BIT 6,A ; THEN WRITE IS COMPLETE SO EXIT. - JR NZ,MD_FW7 ; Z TRUE IF BIT 6=0 I.E. "NO TOGGLE" WAS DETECTED. + JR NZ,MD_FR2 ; Z TRUE IF BIT 6=0 I.E. "NO TOGGLE" WAS DETECTED. ; INC HL ; NEXT DESTINATION LOCATION INC IX ; NEXT SOURCE LOCATION @@ -1309,7 +1308,7 @@ MD_FW7: LD A,(HL) ; FROM THE SAME FLASH ADDRESS. ; INC DE ; CONTINUE WRITING UNTIL BIT 4,D ; WE HAVE DONE ONE SECTOR - JR Z,MD_FWRI1 + JR Z,MD_FWR1 ; POP AF ; RESTORE CURRENT BANK JP HBX_BNKSEL ; RETURN TO ORIGINAL BANK WHICH IS OUR RAM BIOS COPY