Browse Source

HBIOS Proxy Temp Stack Enhancement

Reuse the bounce buffer area as the temporary stack space required briefly in HBX_INVOKE when transitioning banks.  Increases size of temporary stack space to 64 bytes.
pull/109/head
Wayne Warthen 6 years ago
parent
commit
7c60884847
  1. 7
      Source/HBIOS/hbios.asm

7
Source/HBIOS/hbios.asm

@ -268,14 +268,16 @@ 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_TMPSTK ; USE SMALL TEMP STACK FRAME IN HI MEM FOR BANK SWITCH
LD SP,HBX_BUF_END ; BORROW HBX_BUF FOR TEMP STACK
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_TMPSTK ; USE SMALL TEMP STACK FRAME IN HI MEM FOR BANK SWITCH
LD SP,HBX_BUF_END ; BORROW HBX_BUF FOR TEMP STACK
PUSH AF ; SAVE AF (FUNCTION RETURN)
LD A,(HB_INVBNK) ; LOAD ORIGINAL BANK
@ -636,6 +638,7 @@ HBX_INTFILL .EQU (HBX_XFC - HBX_BUFSIZ - $)
; INTERBANK COPY BUFFER (64 BYTES)
;
HBX_BUF .FILL HBX_BUFSIZ,0
HBX_BUF_END .EQU $
;
; HBIOS PROXY MGMT BLOCK (TOP 32 BYTES)
;

Loading…
Cancel
Save