|
|
|
@ -383,7 +383,7 @@ HBX_BNKSEL1: |
|
|
|
; Copy Data - Possibly between banks. This resembles CP/M 3, but |
|
|
|
; usage of the HL and DE registers is reversed. |
|
|
|
; Caller MUST preset HBX_SRCBNK and HBX_DSTBNK. |
|
|
|
; Interrupts are disabled if IM1/IM2 active. |
|
|
|
; IM1/IM2 interrupts are disabled during HBX_BNKCPY. |
|
|
|
; Enter: |
|
|
|
; HL = Source Address |
|
|
|
; DE = Destination Address |
|
|
|
@ -482,9 +482,14 @@ HBX_TGTADR .EQU $ + 1 |
|
|
|
; |
|
|
|
; PEEK & POKE ROUTINES |
|
|
|
; ADDRESS IN HL, BANK IN D, VALUE IN/OUT IN E, A IS TRASHED |
|
|
|
; CALLER MUST DISABLE INTS IF IM1 AND ACCESSING PAGE W/O IM1 INT VECTOR |
|
|
|
; IM1/IM2 INTERRUPTS ARE DISABLED DURING HBX_PEEK & HBX_POKE. |
|
|
|
; |
|
|
|
HBX_PEEK: |
|
|
|
#IF (INTMODE > 0) |
|
|
|
LD A,I |
|
|
|
DI |
|
|
|
PUSH AF |
|
|
|
#ENDIF |
|
|
|
LD (HBX_PPSP),SP ; SAVE ORIGINAL STACK FRAME |
|
|
|
LD SP,HBX_TMPSTK ; USE SMALL TEMP STACK FRAME IN HI MEM |
|
|
|
LD A,(HB_CURBNK) |
|
|
|
@ -495,6 +500,11 @@ HBX_PEEK: |
|
|
|
JR HBX_PPRET |
|
|
|
; |
|
|
|
HBX_POKE: |
|
|
|
#IF (INTMODE > 0) |
|
|
|
LD A,I |
|
|
|
DI |
|
|
|
PUSH AF |
|
|
|
#ENDIF |
|
|
|
LD (HBX_PPSP),SP ; SAVE ORIGINAL STACK FRAME |
|
|
|
LD SP,HBX_TMPSTK ; USE SMALL TEMP STACK FRAME IN HI MEM |
|
|
|
LD A,(HB_CURBNK) |
|
|
|
@ -508,6 +518,11 @@ HBX_PPRET: |
|
|
|
CALL HBX_BNKSEL |
|
|
|
LD SP,0 ; RESTORE ORIGINAL STACK FRAME |
|
|
|
HBX_PPSP .EQU $ - 2 |
|
|
|
#IF (INTMODE > 0) |
|
|
|
POP AF |
|
|
|
JP PO,$+4 |
|
|
|
EI |
|
|
|
#ENDIF |
|
|
|
RET |
|
|
|
; |
|
|
|
; PRIVATE STACK AT END OF HBIOS CODE |
|
|
|
@ -2440,17 +2455,7 @@ SYS_SETSECS: |
|
|
|
; RETURN: E=BYTE VALUE |
|
|
|
; |
|
|
|
SYS_PEEK: |
|
|
|
#IF (INTMODE > 0) |
|
|
|
LD A,I |
|
|
|
DI |
|
|
|
PUSH AF |
|
|
|
#ENDIF |
|
|
|
CALL HBX_PEEK ; IMPLEMENTED IN PROXY |
|
|
|
#IF (INTMODE > 0) |
|
|
|
POP AF |
|
|
|
JP PO,$+4 |
|
|
|
EI |
|
|
|
#ENDIF |
|
|
|
XOR A |
|
|
|
RET |
|
|
|
; |
|
|
|
@ -2458,17 +2463,7 @@ SYS_PEEK: |
|
|
|
; ENTRY: D=BANK ID, HL=ADDRESS IN HBIOS BANK, E=BYTE VALUE |
|
|
|
; |
|
|
|
SYS_POKE: |
|
|
|
#IF (INTMODE > 0) |
|
|
|
LD A,I |
|
|
|
DI |
|
|
|
PUSH AF |
|
|
|
#ENDIF |
|
|
|
CALL HBX_POKE ; IMPLEMENTED IN PROXY |
|
|
|
#IF (INTMODE > 0) |
|
|
|
POP AF |
|
|
|
JP PO,$+4 |
|
|
|
EI |
|
|
|
#ENDIF |
|
|
|
XOR A |
|
|
|
RET |
|
|
|
; |
|
|
|
|