mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
HBIOS - clean up TMPSTK
This commit is contained in:
@@ -63,7 +63,7 @@
|
||||
; - [xio|mio].asm
|
||||
; - dsky.asm
|
||||
; - unlzsa2s.asm
|
||||
;
|
||||
;
|
||||
;
|
||||
; INCLUDE GENERIC STUFF
|
||||
;
|
||||
@@ -268,16 +268,14 @@ HBX_INVOKE:
|
||||
LD A,(HB_CURBNK) ; GET CURRENT BANK
|
||||
LD (HB_INVBNK),A ; SAVE INVOCATION BANK
|
||||
|
||||
;LD SP,HBX_TMPSTK ; USE SMALL TEMP STACK FRAME IN HI MEM FOR BANK SWITCH
|
||||
LD SP,HBX_BUF_END ; BORROW HBX_BUF FOR TEMP STACK
|
||||
LD SP,HBX_TMPSTK ; BORROW HBX_BUF FOR STACK IN HIGH MEMORY
|
||||
LD A,BID_BIOS ; HBIOS BANK
|
||||
CALL HBX_BNKSEL ; SELECT IT
|
||||
LD SP,HB_STACK ; NOW USE FULL HBIOS STACK IN HBIOS BANK
|
||||
|
||||
CALL HB_DISPATCH ; CALL HBIOS FUNCTION DISPATCHER
|
||||
|
||||
;LD SP,HBX_TMPSTK ; USE SMALL TEMP STACK FRAME IN HI MEM FOR BANK SWITCH
|
||||
LD SP,HBX_BUF_END ; BORROW HBX_BUF FOR TEMP STACK
|
||||
LD SP,HBX_TMPSTK ; BORROW HBX_BUF FOR STACK IN HIGH MEMORY
|
||||
PUSH AF ; SAVE AF (FUNCTION RETURN)
|
||||
|
||||
LD A,(HB_INVBNK) ; LOAD ORIGINAL BANK
|
||||
@@ -392,7 +390,7 @@ HBX_BNKSEL1:
|
||||
;
|
||||
HBX_BNKCPY:
|
||||
LD (HBX_BC_SP),SP ; PUT STACK
|
||||
LD SP,HBX_TMPSTK ; ... IN HI MEM
|
||||
LD SP,HBX_BNKSTK ; TEMPORARY STACK IN HIGH MEMORY (NOT IN HBX_BUF)
|
||||
|
||||
LD A,(HB_CURBNK) ; GET CURRENT BANK
|
||||
PUSH AF ; AND SAVE TO RESTORE LATER
|
||||
@@ -473,7 +471,7 @@ HBX_TGTADR .EQU $ + 1
|
||||
;
|
||||
HBX_PEEK:
|
||||
LD (HBX_PPSP),SP ; SAVE ORIGINAL STACK FRAME
|
||||
LD SP,HBX_TMPSTK ; USE SMALL TEMP STACK FRAME IN HI MEM
|
||||
LD SP,HBX_TMPSTK ; BORROW HBX_BUF FOR STACK IN HIGH MEMORY
|
||||
LD A,(HB_CURBNK)
|
||||
PUSH AF
|
||||
LD A,D
|
||||
@@ -483,7 +481,7 @@ HBX_PEEK:
|
||||
;
|
||||
HBX_POKE:
|
||||
LD (HBX_PPSP),SP ; SAVE ORIGINAL STACK FRAME
|
||||
LD SP,HBX_TMPSTK ; USE SMALL TEMP STACK FRAME IN HI MEM
|
||||
LD SP,HBX_TMPSTK ; BORROW HBX_BUF FOR STACK IN HIGH MEMORY
|
||||
LD A,(HB_CURBNK)
|
||||
PUSH AF
|
||||
LD A,D
|
||||
@@ -497,11 +495,6 @@ HBX_PPRET:
|
||||
HBX_PPSP .EQU $ - 2
|
||||
RET
|
||||
;
|
||||
; SMALL TEMPORARY STACK FOR USE BY INVOKE, PEEK, AND POKE
|
||||
;
|
||||
.FILL 20,$CC ; 10 LEVEL STACK
|
||||
HBX_TMPSTK .EQU $
|
||||
;
|
||||
; PRIVATE STACK AT END OF HBIOS CODE
|
||||
; OCCUPIES SPACE BEFORE IVT
|
||||
;
|
||||
@@ -517,9 +510,9 @@ HBX_STACK .EQU $
|
||||
; HBIOS INTERRUPT SLOT ASSIGNMENTS
|
||||
;
|
||||
; # Z80 Z180
|
||||
; --- -------------- --------------
|
||||
; --- -------------- --------------
|
||||
; 0 CTC0A INT1 -+
|
||||
; 1 CTC0B INT2 |
|
||||
; 1 CTC0B INT2 |
|
||||
; 2 CTC0C TIM0 |
|
||||
; 3 CTC0D TIM1 |
|
||||
; 4 DMA0 +- Z180 INTERNAL
|
||||
@@ -605,7 +598,7 @@ HBX_INT: ; COMMON INTERRUPT ROUTING CODE
|
||||
|
||||
LD L,(HL) ; OFFSET INTO JP TABLE FOR THIS INT
|
||||
LD H,HB_IVT >> 8 ; MSB OF HBIOS INT JP TABLE
|
||||
|
||||
|
||||
CALL JPHL ; CALL HANDLER VIA INT JP TABLE
|
||||
|
||||
LD A,(HB_CURBNK) ; GET PRE-INT BANK
|
||||
@@ -629,16 +622,23 @@ HBX_INT_SP .EQU $ - 2
|
||||
;
|
||||
; FILL TO START OF BOUNCE BUFFER
|
||||
;
|
||||
HBX_INTFILL .EQU (HBX_XFC - HBX_BUFSIZ - $)
|
||||
.ECHO "HBIOS INT space remaining: "
|
||||
.ECHO HBX_INTFILL
|
||||
HBX_PROXYFILL .EQU (HBX_XFC - HBX_BUFSIZ - $)
|
||||
.ECHO "HBIOS PROXY space remaining: "
|
||||
.ECHO HBX_PROXYFILL
|
||||
.ECHO " bytes.\n"
|
||||
.FILL HBX_INTFILL,$FF
|
||||
.FILL HBX_PROXYFILL,$FF
|
||||
;
|
||||
; TEMPORARY STACK FOR USE BY HBX_BNKCPY (NOT IN HBX_BUF)
|
||||
;
|
||||
HBX_BNKSTK .EQU $
|
||||
;
|
||||
; INTERBANK COPY BUFFER (64 BYTES)
|
||||
;
|
||||
HBX_BUF .FILL HBX_BUFSIZ,0
|
||||
HBX_BUF_END .EQU $
|
||||
;
|
||||
; TEMPORARY STACK FOR USE BY INVOKE, PEEK, AND POKE
|
||||
;
|
||||
HBX_TMPSTK .EQU $
|
||||
;
|
||||
; HBIOS PROXY MGMT BLOCK (TOP 32 BYTES)
|
||||
;
|
||||
@@ -931,7 +931,7 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
|
||||
#IF (BT_REC_TYPE == BT_REC_SBC01)
|
||||
LD A,%00100000 ; DISABLE RTC AND
|
||||
OUT (RTCIO),A ; DRQ DRIVER READ
|
||||
IN A,(RTCIO) ; BIT 0 (DRQ).
|
||||
IN A,(RTCIO) ; BIT 0 (DRQ).
|
||||
CPL ; PULLED HIGH
|
||||
AND 1 ; IS RECOVERY MODE
|
||||
LD (HB_BOOT_REC),A ; SAVE FOR LATER
|
||||
@@ -939,16 +939,16 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK
|
||||
#IF (BT_REC_TYPE == BT_REC_SBC1B)
|
||||
IN A,(RTCIO) ; RTC PORT, BIT 6 HAS THE
|
||||
BIT 6,A ; STATE OF CONFIG JUMPER
|
||||
LD A,1 ; JUMPER INSTALLED
|
||||
LD A,1 ; JUMPER INSTALLED
|
||||
JR Z,SAVE_REC_M ; IS RECOVERY MODE
|
||||
LD A,0
|
||||
SAVE_REC_M:
|
||||
LD (HB_BOOT_REC),A ; SAVE FOR LATER
|
||||
#ENDIF
|
||||
#IF (BT_REC_TYPE == BT_REC_SBCRI)
|
||||
IN A,($68 + 6) ; UART_MSR MODEM
|
||||
IN A,($68 + 6) ; UART_MSR MODEM
|
||||
BIT 6,A ; STATUS REGISTER
|
||||
LD A,0 ; BIT 6
|
||||
LD A,0 ; BIT 6
|
||||
JR Z,SAVE_REC_M ; IS RECOVERY MODE
|
||||
LD A,1
|
||||
SAVE_REC_M:
|
||||
@@ -1113,7 +1113,7 @@ HB_CPU2:
|
||||
;
|
||||
#IF (HTIMENABLE) ; SIMH TIMER
|
||||
;
|
||||
#IF (INTMODE == 1)
|
||||
#IF (INTMODE == 1)
|
||||
LD HL,HB_TIMINT
|
||||
CALL HB_ADDIM1 ; ADD TO IM1 CALL LIST
|
||||
#ENDIF
|
||||
@@ -1125,7 +1125,7 @@ HB_CPU2:
|
||||
#IF (KIOENABLE)
|
||||
LD A,%11111001 ; RESET ALL DEVICES, SET DAISYCHAIN
|
||||
OUT (KIOBASE+$0E),A ; DO IT
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
#IF (CTCENABLE)
|
||||
CALL CTC_PREINIT
|
||||
@@ -1187,7 +1187,7 @@ HB_CPU2:
|
||||
LD DE,(HB_PCINITTBL) ; EXECUTE FIRST ; DE IS VALUE OF TOP ENTRY
|
||||
LD HL,HB_PCINITTBL ; HL IS ADDRESS OF TOP OF TABLE
|
||||
PUSH HL ; PUSH (1) TOP OF TABLE
|
||||
PUSH DE ; PUSH (2) VALUE OF TOP ENTRY
|
||||
PUSH DE ; PUSH (2) VALUE OF TOP ENTRY
|
||||
PUSH HL ; PUSH (3) TOP OF TABLE
|
||||
CALL ADDHLA ; HL IS ADDRESS OF DESIRED CONSOLE ENTRY
|
||||
POP DE ; PLACE IT AT THE TOP OF THE ; POP (3) DE IS TOP OF TABLE
|
||||
@@ -1391,7 +1391,7 @@ HB_SPDTST:
|
||||
JR Z,NOT_REC_M1 ; INITIALIZATION TABLE
|
||||
LD B,HB_INITRLEN
|
||||
LD DE,HB_INIT_REC
|
||||
JR IS_REC_M1
|
||||
JR IS_REC_M1
|
||||
#ENDIF
|
||||
|
||||
NOT_REC_M1:
|
||||
@@ -1834,7 +1834,7 @@ DIO_TBL .FILL DIO_SIZ,0 ; SPACE FOR ENTRIES
|
||||
; HL=BUF ADR
|
||||
; E=SEC COUNT
|
||||
; D=BUF BANK ID
|
||||
;
|
||||
;
|
||||
HB_DSKREAD:
|
||||
;
|
||||
; THE ACTUAL SECTOR READ FUNCTION ADDRESS IS ON TOS, SAVE IT
|
||||
@@ -1922,7 +1922,7 @@ HB_DSKREADX:
|
||||
; HL=BUF ADR
|
||||
; E=SEC COUNT
|
||||
; D=BUF BANK ID
|
||||
;
|
||||
;
|
||||
HB_DSKWRITE:
|
||||
;
|
||||
; THE ACTUAL SECTOR READ FUNCTION ADDRESS IS ON TOS, SAVE IT
|
||||
@@ -2680,7 +2680,7 @@ HB_BADINTCNT .DB 0
|
||||
RRCA
|
||||
CALL PRTHEXBYTE
|
||||
PRTS("H: $")
|
||||
|
||||
|
||||
CALL XREGDMP
|
||||
;CALL CONTINUE
|
||||
OR $FF ; SIGNAL INTERRUPT HANDLED
|
||||
@@ -2953,8 +2953,8 @@ ORG_FONTS .EQU $
|
||||
FONT8X8:
|
||||
#IF USELZSA2
|
||||
#INCLUDE "font8x8c.asm"
|
||||
#ELSE
|
||||
#INCLUDE "font8x8u.asm"
|
||||
#ELSE
|
||||
#INCLUDE "font8x8u.asm"
|
||||
#ENDIF
|
||||
.ECHO " 8X8"
|
||||
#ENDIF
|
||||
@@ -2963,8 +2963,8 @@ FONT8X8:
|
||||
FONT8X11:
|
||||
#IF USELZSA2
|
||||
#INCLUDE "font8x11c.asm"
|
||||
#ELSE
|
||||
#INCLUDE "font8x11u.asm"
|
||||
#ELSE
|
||||
#INCLUDE "font8x11u.asm"
|
||||
#ENDIF
|
||||
.ECHO " 8X11"
|
||||
#ENDIF
|
||||
@@ -2973,8 +2973,8 @@ FONT8X11:
|
||||
FONT8X16:
|
||||
#IF USELZSA2
|
||||
#INCLUDE "font8x16c.asm"
|
||||
#ELSE
|
||||
#INCLUDE "font8x16u.asm"
|
||||
#ELSE
|
||||
#INCLUDE "font8x16u.asm"
|
||||
#ENDIF
|
||||
.ECHO " 8X16"
|
||||
#ENDIF
|
||||
@@ -3855,7 +3855,7 @@ COUT:
|
||||
JR COUT2 ; CONTINUE
|
||||
;
|
||||
COUT1:
|
||||
;
|
||||
;
|
||||
#IF (WBWDEBUG == USEXIO)
|
||||
LD A,E ; GET OUTPUT CHAR BACK TO ACCUM
|
||||
CALL XIO_OUTC ; OUTPUT VIA XIO
|
||||
|
||||
@@ -131,7 +131,7 @@ VDADEV_VGA .EQU $40 ; ECB VGA3 - HITACHI HD6445
|
||||
;EMUTYP_NONE .EQU 0 ; NONE
|
||||
;EMUTYP_TTY .EQU 1 ; TTY
|
||||
;EMUTYP_ANSI .EQU 2 ; ANSI
|
||||
;
|
||||
;
|
||||
; HBIOS CONTROL BLOCK OFFSETS
|
||||
; WARNING: THESE OFFSETS WILL CHANGE SIGNIFICANTLY BETWEEN RELEASES
|
||||
; IT IS STRONGLY RECOMMENDED THAT YOU DO NOT USE THEM!
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
; JUST DISCARD THE FIRST BYTE RECEIVED AFTER A COMMAND IS SENT WITH THE
|
||||
; ASSUMPTION THAT IT MUST BE A FILL BYTE AND IS NOT RELIABLE DUE TO FLOATING
|
||||
; MISO.
|
||||
;
|
||||
;
|
||||
; THESE CHANGES ARE CONSISTENT WITH THE POPULAR ARDUINO SDFAT LIBRARY, SO THEY ARE
|
||||
; PROBABLY PRETTY SAFE. HOWEVER, I HAVE BRACKETED THE CHANGES WITH THE EQUATE BELOW.
|
||||
; IF YOU WANT TO REVERT THESE HACKS, JUST SET THE EQUATE TO FALSE.
|
||||
|
||||
Reference in New Issue
Block a user