Browse Source

Add bank unset. Fix xmodem transfer bios call

pull/290/head
b1ackmai1er 4 years ago
parent
commit
eb255e7016
  1. 32
      Source/HBIOS/dbgmon.asm

32
Source/HBIOS/dbgmon.asm

@ -38,7 +38,7 @@ ENA_XM .EQU FALSE ; NO ROOM FOR BOTH DSKY+XMODEM
ENA_XM .EQU TRUE ; INCLUDE XMODEM IF SPACE AVAILABLE ENA_XM .EQU TRUE ; INCLUDE XMODEM IF SPACE AVAILABLE
#ENDIF #ENDIF
; ;
ENA_MBC6502 .EQU FALSE ; ENABLE OR DISABLE MBC6502 OPTION
ENA_MBC6502 .EQU TRUE ; ENABLE OR DISABLE MBC6502 OPTION
; ;
#INCLUDE "util.asm" #INCLUDE "util.asm"
; ;
@ -71,6 +71,7 @@ UART_ENTRY:
; R XXXX - RUN A PROGRAM AT ADDRESS XXXX ; R XXXX - RUN A PROGRAM AT ADDRESS XXXX
; S XX - SET ACTIVE BANK TO XX ; S XX - SET ACTIVE BANK TO XX
; T XXXX - X-MODEM TRANSFER TO MEMORY LOCATION XXXX ; T XXXX - X-MODEM TRANSFER TO MEMORY LOCATION XXXX
; U - SET BANK TO PREVIOUS BANK
; 6 XX - TRANSFER CONTROL TO MBC6502 UNIT XX ; 6 XX - TRANSFER CONTROL TO MBC6502 UNIT XX
; X - EXIT MONITOR ; X - EXIT MONITOR
; ;
@ -129,6 +130,8 @@ SERIALCMDLOOP:
#IF (BIOS == BIOS_WBW) #IF (BIOS == BIOS_WBW)
CP 'S' ; IS IT A "S" (Y/N) CP 'S' ; IS IT A "S" (Y/N)
JP Z,SETBNK ; SET BANK COMMAND JP Z,SETBNK ; SET BANK COMMAND
CP 'U' ; IS IT A "U" (Y/N)
JP Z,UNSETBNK ; UNSET (REVERT) BANK COMMAND
#ENDIF #ENDIF
#IF ((PLATFORM = PLT_MBC) & ENA_MBC6502) #IF ((PLATFORM = PLT_MBC) & ENA_MBC6502)
CP '6' ; IS IT A "6" (Y/N) CP '6' ; IS IT A "6" (Y/N)
@ -225,6 +228,8 @@ SETBNK:
LD HL,TXT_IMERR LD HL,TXT_IMERR
CALL PRTSTR CALL PRTSTR
#ELSE #ELSE
LD A,($FFE0) ; GET AND SAVE
LD (BNKSAV),A ; CURRENT BANK
CALL BYTEPARM ; GET BANK NUMBER CALL BYTEPARM ; GET BANK NUMBER
JP C,ERR ; HANDLE DATA ENTRY ERROR JP C,ERR ; HANDLE DATA ENTRY ERROR
LD C,A ; PUT IN C FOR FOR FUNC CALL LD C,A ; PUT IN C FOR FOR FUNC CALL
@ -233,6 +238,25 @@ SETBNK:
#ENDIF #ENDIF
JP SERIALCMDLOOP ; NEXT COMMAND JP SERIALCMDLOOP ; NEXT COMMAND
; ;
;__UNSETBNK___________________________________________________________________
;
; PERFORM UNSET BANK ACTION - REVERT TO BANK BEFORE PREVIOUS SET
;_____________________________________________________________________________
;
UNSETBNK:
#IF (INTMODE == 1)
LD HL,TXT_IMERR
CALL PRTSTR
#ELSE
LD A,(BNKSAV)
LD C,A ; PUT IN C FOR FOR FUNC CALL
LD B,BF_SYSSETBNK ; SET BANK FUNCTION
CALL $FFF0 ; C HAS BANK, DO IT
#ENDIF
JP SERIALCMDLOOP ; NEXT COMMAND
;
BNKSAV .DB 00H ; OLD BANK FROM BEFORE SET
;
#ENDIF #ENDIF
; ;
;__RUN________________________________________________________________________ ;__RUN________________________________________________________________________
@ -365,7 +389,8 @@ XMLOAD: CALL WORDPARM ; GET STARTING LOCATION
CALL NEWLINE CALL NEWLINE
; ;
LD BC,$F8F0 ; GET CPU SPEED LD BC,$F8F0 ; GET CPU SPEED
RST 08 ; AND MULTIPLY
CALL $FFF0 ; CALL HBIOS
; RST 08 ; AND MULTIPLY
LD A,L ; BY 4 LD A,L ; BY 4
PUSH AF PUSH AF
ADD A,A ; TO CREATE ADD A,A ; TO CREATE
@ -1234,7 +1259,10 @@ TXT_HELP .TEXT "\r\nMonitor Commands (all values in hex):"
.TEXT "\r\nP xxxx - Program RAM at address xxxx" .TEXT "\r\nP xxxx - Program RAM at address xxxx"
.TEXT "\r\nR xxxx [[yy] [zzzz]] - Run code at address xxxx" .TEXT "\r\nR xxxx [[yy] [zzzz]] - Run code at address xxxx"
.TEXT "\r\n Pass yy and zzzz to register A and BC" .TEXT "\r\n Pass yy and zzzz to register A and BC"
#IF (BIOS == BIOS_WBW)
.TEXT "\r\nS xx - Set bank to xx" .TEXT "\r\nS xx - Set bank to xx"
.TEXT "\r\nU - Set bank to previous bank"
#ENDIF
#IF (ENA_XM) #IF (ENA_XM)
.TEXT "\r\nT xxxx - X-modem transfer to memory location xxxx" .TEXT "\r\nT xxxx - X-modem transfer to memory location xxxx"
#ENDIF #ENDIF

Loading…
Cancel
Save