|
|
|
@ -2185,7 +2185,9 @@ RTC_DISPATCH: |
|
|
|
RET |
|
|
|
; |
|
|
|
RTC_DISPERR: |
|
|
|
OR $FF |
|
|
|
;CALL PANIC |
|
|
|
LD A,ERR_NOHW |
|
|
|
OR A |
|
|
|
RET |
|
|
|
; |
|
|
|
; SET RTC DISPATCH ADDRESS, USED BY RTC DRIVERS DURING INIT |
|
|
|
@ -2338,7 +2340,9 @@ SYS_RESET: |
|
|
|
JR Z,SYS_RESWARM |
|
|
|
CP BF_SYSRES_COLD |
|
|
|
JR Z,SYS_RESCOLD |
|
|
|
OR $FF ; SIGNAL ERROR |
|
|
|
;CALL PANIC |
|
|
|
LD A,ERR_NOFUNC |
|
|
|
OR A ; SIGNAL ERROR |
|
|
|
RET |
|
|
|
; |
|
|
|
; SOFT RESET HBIOS, RELEASE HEAP MEMORY NOT USED BY HBIOS |
|
|
|
@ -2449,8 +2453,9 @@ SYS_ALLOC: |
|
|
|
; ALL OTHER REGISTERS PRESERVED |
|
|
|
; |
|
|
|
SYS_FREE: |
|
|
|
CALL PANIC ; NOT YET IMPLEMENTED |
|
|
|
OR $FF |
|
|
|
;CALL PANIC ; NOT YET IMPLEMENTED |
|
|
|
LD A,ERR_NOTIMPL ; NOT YET INMPLEMENTED |
|
|
|
OR A ; SET FLAGS |
|
|
|
RET |
|
|
|
; |
|
|
|
; GET SYSTEM INFORMATION |
|
|
|
@ -2480,7 +2485,9 @@ SYS_GET: |
|
|
|
JR Z,SYS_GETMEMINFO |
|
|
|
CP BF_SYSGET_BNKINFO |
|
|
|
JR Z,SYS_GETBNKINFO |
|
|
|
OR $FF ; SIGNAL ERROR |
|
|
|
;CALL PANIC |
|
|
|
LD A,ERR_NOFUNC ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
RET |
|
|
|
; |
|
|
|
; GET TIMER |
|
|
|
@ -2618,7 +2625,9 @@ SYS_SET: |
|
|
|
JR Z,SYS_SETSECS |
|
|
|
CP BF_SYSSET_BOOTINFO |
|
|
|
JR Z,SYS_SETBOOTINFO |
|
|
|
OR $FF ; SIGNAL ERROR |
|
|
|
;CALL PANIC |
|
|
|
LD A,ERR_NOFUNC ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
RET |
|
|
|
; |
|
|
|
; SET BOOT INFORMATION |
|
|
|
@ -2713,7 +2722,9 @@ SYS_INT: |
|
|
|
JR Z,SYS_INTGET |
|
|
|
CP BF_SYSINT_SET |
|
|
|
JR Z,SYS_INTSET |
|
|
|
OR $FF ; SIGNAL ERROR |
|
|
|
;CALL PANIC |
|
|
|
LD A,ERR_NOFUNC ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
RET |
|
|
|
; |
|
|
|
; GET INTERRUPT SYSTEM INFORMATION |
|
|
|
@ -2739,8 +2750,9 @@ SYS_INTINFO: |
|
|
|
; |
|
|
|
SYS_INTVECADR: |
|
|
|
#IF (INTMODE == 0) |
|
|
|
CALL PANIC ; INVALID FOR INT MODE 0 |
|
|
|
OR $FF |
|
|
|
;CALL PANIC ; INVALID FOR INT MODE 0 |
|
|
|
LD A,ERR_BADCFG ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
RET |
|
|
|
#ENDIF |
|
|
|
#IF (INTMODE == 1) |
|
|
|
@ -2754,8 +2766,9 @@ SYS_INTVECADR: |
|
|
|
LD A,E ; INCOMING INDEX POSITION TO A |
|
|
|
CP C ; COMPARE TO VECTOR COUNT |
|
|
|
JR C,SYS_INTGET1 ; CONTINUE IF POSITION IN RANGE |
|
|
|
CALL PANIC ; ELSE ERROR |
|
|
|
OR $FF |
|
|
|
;CALL PANIC ; ELSE ERROR |
|
|
|
LD A,ERR_RANGE ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
RET |
|
|
|
SYS_INTGET1: |
|
|
|
OR A ; CLEAR CARRY |
|
|
|
@ -2934,13 +2947,13 @@ HB_DISPCALL: |
|
|
|
; CHECK INCOMING UNIT INDEX IN C FOR VAILIDITY |
|
|
|
LD A,C ; A := INCOMING DISK UNIT INDEX |
|
|
|
CP (IY-1) ; COMPARE TO COUNT |
|
|
|
JR NC,HB_DISPERR ; HANDLE INVALID UNIT INDEX |
|
|
|
JR NC,HB_FUNCERR ; HANDLE INVALID UNIT INDEX |
|
|
|
|
|
|
|
; CHECK FUNCTION INDEX FOR VALIDITY |
|
|
|
LD A,B ; A := INCOMING FUNCTION NUMBER |
|
|
|
AND $0F ; LOW NIBBLE ONLY FOR FUNC INDEX |
|
|
|
CP (IY-3) ; CHECK FN NUM AGAINST MAX |
|
|
|
JR NC,HB_DISPERR ; HANDLE FN NUM OUT OF RANGE ERROR |
|
|
|
JR NC,HB_UNITERR ; HANDLE FN NUM OUT OF RANGE ERROR |
|
|
|
|
|
|
|
; BUMP IY TO ACTUAL XXX_TBL ENTRY FOR INCOMING UNIT INDEX |
|
|
|
PUSH BC ; SAVE BC |
|
|
|
@ -2971,10 +2984,17 @@ HB_DISPCALL: |
|
|
|
|
|
|
|
RET ; JUMP TO DRIVER FUNC ADR ON TOS |
|
|
|
; |
|
|
|
HB_DISPERR: |
|
|
|
CALL PANIC ; PANIC |
|
|
|
OR $FF ; SIGNAL ERROR |
|
|
|
RET ; AND RETURN VIA DISPEXIT |
|
|
|
HB_FUNCERR: |
|
|
|
;CALL PANIC |
|
|
|
LD A,ERR_NOFUNC ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
RET |
|
|
|
; |
|
|
|
HB_UNITERR: |
|
|
|
;CALL PANIC |
|
|
|
LD A,ERR_NOUNIT ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
RET |
|
|
|
; |
|
|
|
; ADD AN ENTRY TO THE UNIT TABLE AT ADDRESS IN HL |
|
|
|
; BC: DRIVER FUNCTION TABLE |
|
|
|
@ -3060,8 +3080,10 @@ HB_ALLOC: |
|
|
|
HB_ALLOC1: |
|
|
|
; ERROR RETURN |
|
|
|
POP DE ; RESTORE INCOMING DE |
|
|
|
OR $FF ; SIGNAL ERROR |
|
|
|
RET ; AND RETURN |
|
|
|
;CALL PANIC |
|
|
|
LD A,ERR_NOMEM ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
RET |
|
|
|
; |
|
|
|
HB_TMPSZ .DW 0 |
|
|
|
HB_TMPREF .DW 0 |
|
|
|
|