Browse Source

Update hbios.asm

Add improved interrupt protection to HBIOS PEEK, POKE, and BNKCPY functions.
pull/109/head
Wayne Warthen 6 years ago
parent
commit
a207ede5be
  1. 27
      Source/HBIOS/hbios.asm

27
Source/HBIOS/hbios.asm

@ -2221,11 +2221,15 @@ SYS_BNKCPY:
LD HL,(HB_CPYLEN) ; HL := COPY LEN (SAVED IN SETCPY)
EX (SP),HL ; RESTORE HL & SET (SP) TO COPY LEN
POP BC ; BC := COPY LEN
#IF (INTMODE == 1)
#IF (INTMODE > 0)
LD A,I
DI
PUSH AF
#ENDIF
CALL HB_BNKCPY
#IF (INTMODE == 1)
#IF (INTMODE > 0)
POP AF
JP PO,$+4
EI
#ENDIF
XOR A
@ -2436,11 +2440,15 @@ SYS_SETSECS:
; RETURN: E=BYTE VALUE
;
SYS_PEEK:
#IF (INTMODE == 1)
#IF (INTMODE > 0)
LD A,I
DI
PUSH AF
#ENDIF
CALL HBX_PEEK ; IMPLEMENTED IN PROXY
#IF (INTMODE == 1)
#IF (INTMODE > 0)
POP AF
JP PO,$+4
EI
#ENDIF
XOR A
@ -2450,11 +2458,15 @@ SYS_PEEK:
; ENTRY: D=BANK ID, HL=ADDRESS IN HBIOS BANK, E=BYTE VALUE
;
SYS_POKE:
#IF (INTMODE == 1)
#IF (INTMODE > 0)
LD A,I
DI
PUSH AF
#ENDIF
CALL HBX_POKE ; IMPLEMENTED IN PROXY
#IF (INTMODE == 1)
#IF (INTMODE > 0)
POP AF
JP PO,$+4
EI
#ENDIF
XOR A
@ -2564,9 +2576,6 @@ SYS_INTSET1:
INC HL
LD (HL),B ; SAVE MSB
EX DE,HL ; HL := PREV VEC
;#IF (INTMODE == 2)
; LD DE,HBX_INT ; DE := IM2 INT ROUTING ENGINE
;#ENDIF
XOR A ; SIGNAL SUCCESS
RET ; DONE
;

Loading…
Cancel
Save