|
|
@ -561,6 +561,13 @@ INITSYS1: |
|
|
POP DE |
|
|
POP DE |
|
|
DJNZ INITSYS1 |
|
|
DJNZ INITSYS1 |
|
|
; |
|
|
; |
|
|
|
|
|
; RECORD HEAP CURB AT THE CURRENT VALUE OF HEAP TOP. HEAP CURB |
|
|
|
|
|
; MARKS THE POINT IN THE HEAP AFTER WHICH MEMORY IS RELEASED |
|
|
|
|
|
; WHEN AN HBIOS RESET IS PEFORMED. |
|
|
|
|
|
; |
|
|
|
|
|
LD HL,(HCB + HCB_HEAPTOP) |
|
|
|
|
|
LD (HEAPCURB),HL |
|
|
|
|
|
; |
|
|
; PRIOR TO THIS POINT, CONSOLE I/O WAS DIRECTED TO HARDWARE (XIO.ASM). |
|
|
; PRIOR TO THIS POINT, CONSOLE I/O WAS DIRECTED TO HARDWARE (XIO.ASM). |
|
|
; NOW THAT HBIOS IS READY, SET THE CONSOLE UNIT TO ACTIVATE CONSOLE I/O |
|
|
; NOW THAT HBIOS IS READY, SET THE CONSOLE UNIT TO ACTIVATE CONSOLE I/O |
|
|
; VIA HBIOS. |
|
|
; VIA HBIOS. |
|
|
@ -1160,6 +1167,16 @@ SYS_DISPATCH: |
|
|
JP Z,SYS_PEEK ; $F9 |
|
|
JP Z,SYS_PEEK ; $F9 |
|
|
DEC A |
|
|
DEC A |
|
|
JP Z,SYS_POKE ; $FA |
|
|
JP Z,SYS_POKE ; $FA |
|
|
|
|
|
DEC A |
|
|
|
|
|
;JP Z,SYS_ ; $FB |
|
|
|
|
|
DEC A |
|
|
|
|
|
;JP Z,SYS_ ; $FC |
|
|
|
|
|
DEC A |
|
|
|
|
|
;JP Z,SYS_ ; $FD |
|
|
|
|
|
DEC A |
|
|
|
|
|
;JP Z,SYS_ ; $FE |
|
|
|
|
|
DEC A |
|
|
|
|
|
JP Z,SYS_RESET ; $FF |
|
|
CALL PANIC ; INVALID |
|
|
CALL PANIC ; INVALID |
|
|
; |
|
|
; |
|
|
; SET ACTIVE MEMORY BANK AND RETURN PREVIOUSLY ACTIVE MEMORY BANK |
|
|
; SET ACTIVE MEMORY BANK AND RETURN PREVIOUSLY ACTIVE MEMORY BANK |
|
|
@ -1417,6 +1434,14 @@ SYS_POKE: |
|
|
CALL HBX_POKE ; IMPLEMENTED IN PROXY |
|
|
CALL HBX_POKE ; IMPLEMENTED IN PROXY |
|
|
XOR A |
|
|
XOR A |
|
|
RET |
|
|
RET |
|
|
|
|
|
; |
|
|
|
|
|
; SOFT RESET HBIOS, RELEASE HEAP MEMORY NOT USED BY HBIOS |
|
|
|
|
|
; |
|
|
|
|
|
SYS_RESET: |
|
|
|
|
|
LD HL,(HEAPCURB) ; GET HBIOS HEAP THRESHOLD |
|
|
|
|
|
LD (HCB + HCB_HEAPTOP),HL ; RESTORE HEAP TOP |
|
|
|
|
|
XOR A |
|
|
|
|
|
RET |
|
|
;; |
|
|
;; |
|
|
;; GET HCB VALUE BYTE |
|
|
;; GET HCB VALUE BYTE |
|
|
;; C: HCB INDEX (OFFSET INTO HCB) |
|
|
;; C: HCB INDEX (OFFSET INTO HCB) |
|
|
@ -2594,6 +2619,8 @@ HSTLBAHI .EQU $ ; BLOCK ADDRESS LBA HIGH WORD |
|
|
HSTSEC .DB 0 ; SECTOR (0-255) |
|
|
HSTSEC .DB 0 ; SECTOR (0-255) |
|
|
HSTHEAD .DB 0 ; HEAD (0-255) |
|
|
HSTHEAD .DB 0 ; HEAD (0-255) |
|
|
; |
|
|
; |
|
|
|
|
|
HEAPCURB .DW 0 ; MARK HEAP ADDRESS AFTER INITIALIZATION |
|
|
|
|
|
; |
|
|
HB_INTSTKSAV .DW 0 ; SAVED STACK POINTER DURING INT PROCESSING |
|
|
HB_INTSTKSAV .DW 0 ; SAVED STACK POINTER DURING INT PROCESSING |
|
|
.FILL $40,$FF ; 32 ENTRY STACK FOR INTERRUPT PROCESSING |
|
|
.FILL $40,$FF ; 32 ENTRY STACK FOR INTERRUPT PROCESSING |
|
|
HB_INTSTK .EQU $ ; TOP OF INTERRUPT PROCESSING STACK |
|
|
HB_INTSTK .EQU $ ; TOP OF INTERRUPT PROCESSING STACK |
|
|
|