|
|
|
@ -53,6 +53,8 @@ |
|
|
|
; - build.inc |
|
|
|
; - config/<plt>_<cfg>.asm |
|
|
|
; - cfg_<plt>.asm |
|
|
|
; - [z180.inc|z280.inc] |
|
|
|
; - [eipc.inc] |
|
|
|
; - <drivers>.asm |
|
|
|
; - <fonts>.asm |
|
|
|
; - util.asm |
|
|
|
@ -61,7 +63,7 @@ |
|
|
|
; - decode.asm |
|
|
|
; - encode.asm |
|
|
|
; - [xio|mio].asm |
|
|
|
; - dsky.asm |
|
|
|
; - [dsky.asm|dskyng.asm] |
|
|
|
; - unlzsa2s.asm |
|
|
|
; |
|
|
|
; INCLUDE GENERIC STUFF |
|
|
|
@ -132,6 +134,11 @@ MODCNT .SET MODCNT + 1 |
|
|
|
#DEFINE LED(N) \; |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#DEFINE SYSCHKERR(HB_ERR) \ |
|
|
|
#DEFCONT \ CALL SYSCHKA |
|
|
|
#DEFCONT \ LD A,HB_ERR |
|
|
|
#DEFCONT \ OR A |
|
|
|
; |
|
|
|
; |
|
|
|
; |
|
|
|
#IF (INTMODE == 0) |
|
|
|
@ -1094,14 +1101,14 @@ HB_START: |
|
|
|
; |
|
|
|
#IFDEF APPBOOT |
|
|
|
#IF (MEMMGR == MM_Z280) |
|
|
|
LD A,%00000001 |
|
|
|
LD A,DIAG_01 |
|
|
|
OUT (DIAGPORT),A |
|
|
|
LD DE,Z280_BOOTERR |
|
|
|
LD C,9 |
|
|
|
LD A,%00000010 |
|
|
|
LD A,DIAG_02 |
|
|
|
OUT (DIAGPORT),A |
|
|
|
CALL $0005 |
|
|
|
LD A,%00001000 |
|
|
|
LD A,DIAG_04 |
|
|
|
OUT (DIAGPORT),A |
|
|
|
RET |
|
|
|
; |
|
|
|
@ -1130,7 +1137,7 @@ Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 n |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#IF (DIAGENABLE) |
|
|
|
LD A,%00000001 |
|
|
|
LD A,DIAG_01 |
|
|
|
OUT (DIAGPORT),A |
|
|
|
#ENDIF |
|
|
|
#IF (LEDENABLE) |
|
|
|
@ -1240,7 +1247,7 @@ Z280_INITZ: |
|
|
|
LD A,Z180_BASE |
|
|
|
OUT0 ($3F),A ; AT RESET, ICR IS AT $3F |
|
|
|
|
|
|
|
DIAG(%00000010) |
|
|
|
DIAG(DIAG_02) |
|
|
|
|
|
|
|
; DISABLE REFRESH |
|
|
|
XOR A |
|
|
|
@ -1335,7 +1342,7 @@ Z280_INITZ: |
|
|
|
; IS PERFORMED NEXT. |
|
|
|
; |
|
|
|
#IF (DIAGENABLE) |
|
|
|
LD A,%00000011 |
|
|
|
LD A,DIAG_02 |
|
|
|
OUT (DIAGPORT),A |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
@ -1663,7 +1670,7 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK |
|
|
|
LD SP,HBX_LOC - 2 ; RESET STACK |
|
|
|
; |
|
|
|
; NOTIFY THAT WE MADE THE TRANSITION! |
|
|
|
DIAG(%00000111) |
|
|
|
DIAG(DIAG_03) |
|
|
|
LED(%00000010) |
|
|
|
; |
|
|
|
; SET THE IN-RAM FLAG |
|
|
|
@ -1790,7 +1797,7 @@ SAVE_REC_M: |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
DIAG(%00001111) |
|
|
|
DIAG(DIAG_04) |
|
|
|
; |
|
|
|
#IF (WBWDEBUG == USEMIO) ; BUFFER OUTPUT UNTIL |
|
|
|
CALL MIO_INIT ; WE GET TO BOOT MESSAGE |
|
|
|
@ -1879,7 +1886,7 @@ HB_CPU1: |
|
|
|
; |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
DIAG(%00011111) |
|
|
|
DIAG(DIAG_05) |
|
|
|
; |
|
|
|
; INIT OSCILLATOR SPEED FROM CONFIG |
|
|
|
; |
|
|
|
@ -2171,7 +2178,7 @@ Z280_TC .EQU CPUOSC / 4 / 50 / 2 ; TIME CONSTANT |
|
|
|
LD A,$FF ; FILL WITH $FF |
|
|
|
CALL FILL ; DO IT |
|
|
|
; |
|
|
|
DIAG(%00111111) |
|
|
|
DIAG(DIAG_06) |
|
|
|
; |
|
|
|
#IF FALSE |
|
|
|
; |
|
|
|
@ -2227,7 +2234,7 @@ NOT_REC_M0: |
|
|
|
; |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
DIAG(%01111111) |
|
|
|
DIAG(DIAG_07) |
|
|
|
LED(%00000011) |
|
|
|
; |
|
|
|
; |
|
|
|
@ -2315,7 +2322,7 @@ NXTMIO: LD A,(HL) |
|
|
|
#ENDIF |
|
|
|
NOT_REC_M2: |
|
|
|
; |
|
|
|
DIAG(%11111111) |
|
|
|
DIAG(DIAG_08) |
|
|
|
; |
|
|
|
; IO PORT SCAN |
|
|
|
; |
|
|
|
@ -3128,7 +3135,7 @@ HB_DISPATCH: |
|
|
|
PUSH AF |
|
|
|
LD A,(HB_STACK - HB_STKSIZ + $08) |
|
|
|
CP $FF |
|
|
|
CALL SYSCHK |
|
|
|
SYSCHKERR(ERR_INTERNAL) |
|
|
|
LD A,$FF |
|
|
|
LD (HB_STACK - HB_STKSIZ + $08),A |
|
|
|
POP AF |
|
|
|
@ -3156,9 +3163,7 @@ HB_DISPATCH1: |
|
|
|
; FALL THRU |
|
|
|
; |
|
|
|
HB_DISPERR: |
|
|
|
CALL SYSCHK |
|
|
|
LD A,ERR_NOFUNC |
|
|
|
OR A |
|
|
|
SYSCHKERR(ERR_NOFUNC) |
|
|
|
RET |
|
|
|
; |
|
|
|
;================================================================================================== |
|
|
|
@ -3499,7 +3504,7 @@ HB_DSKFN: |
|
|
|
HB_DSKFNADR .EQU $+1 |
|
|
|
CALL PANIC ; READ ONE SECTOR |
|
|
|
#IF (DIAGENABLE & DIAGDISKIO) |
|
|
|
DIAG(0) ; CLEAR DIAG LEDS |
|
|
|
DIAG(DIAG_00) ; CLEAR DIAG LEDS |
|
|
|
#ENDIF |
|
|
|
#IF (LEDENABLE & LEDDISKIO) |
|
|
|
LED($00) |
|
|
|
@ -3620,9 +3625,7 @@ RTC_DISPATCH: |
|
|
|
RET |
|
|
|
; |
|
|
|
RTC_DISPERR: |
|
|
|
CALL SYSCHK |
|
|
|
LD A,ERR_NOHW |
|
|
|
OR A |
|
|
|
SYSCHKERR(ERR_NOHW) |
|
|
|
RET |
|
|
|
; |
|
|
|
; SET RTC DISPATCH ADDRESS, USED BY RTC DRIVERS DURING INIT |
|
|
|
@ -3820,9 +3823,7 @@ SYS_RESET: |
|
|
|
JR Z,SYS_RESCOLD |
|
|
|
CP BF_SYSRES_USER |
|
|
|
JR Z,SYS_RESUSER |
|
|
|
CALL SYSCHK |
|
|
|
LD A,ERR_NOFUNC |
|
|
|
OR A ; SIGNAL ERROR |
|
|
|
SYSCHKERR(ERR_NOFUNC) |
|
|
|
RET |
|
|
|
; |
|
|
|
; SOFT RESET HBIOS, RELEASE HEAP MEMORY NOT USED BY HBIOS |
|
|
|
@ -4026,9 +4027,7 @@ SYS_ALLOC: |
|
|
|
; ALL OTHER REGISTERS PRESERVED |
|
|
|
; |
|
|
|
SYS_FREE: |
|
|
|
CALL SYSCHK ; NOT YET IMPLEMENTED |
|
|
|
LD A,ERR_NOTIMPL ; NOT YET INMPLEMENTED |
|
|
|
OR A ; SET FLAGS |
|
|
|
SYSCHKERR(ERR_NOTIMPL) ; NOT YET INMPLEMENTED |
|
|
|
RET |
|
|
|
; |
|
|
|
; GET SYSTEM INFORMATION |
|
|
|
@ -4068,9 +4067,7 @@ SYS_GET: |
|
|
|
JP Z,SYS_GETBNKINFO |
|
|
|
CP BF_SYSGET_CPUSPD |
|
|
|
JP Z,SYS_GETCPUSPD |
|
|
|
CALL SYSCHK |
|
|
|
LD A,ERR_NOFUNC ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR |
|
|
|
RET |
|
|
|
; |
|
|
|
; GET TIMER |
|
|
|
@ -4157,7 +4154,7 @@ SYS_GETBNKINFO: |
|
|
|
XOR A |
|
|
|
RET |
|
|
|
; |
|
|
|
; GET SYSTEM CPU SPEED ORMANCE ATTRIBUTES |
|
|
|
; GET SYSTEM CPU SPEED PERFORMANCE ATTRIBUTES |
|
|
|
; RETURNS: |
|
|
|
; L: CLOCK MULT (0:HALF, 1:FULL, 2: DOUBLE) |
|
|
|
; D: MEMORY WAIT STATES |
|
|
|
@ -4362,9 +4359,7 @@ SYS_SET: |
|
|
|
JR Z,SYS_SETBOOTINFO |
|
|
|
CP BF_SYSSET_CPUSPD |
|
|
|
JR Z,SYS_SETCPUSPD |
|
|
|
CALL SYSCHK |
|
|
|
LD A,ERR_NOFUNC ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR |
|
|
|
RET |
|
|
|
; |
|
|
|
; SET BOOT INFORMATION |
|
|
|
@ -4725,9 +4720,7 @@ SYS_INT: |
|
|
|
JR Z,SYS_INTGET |
|
|
|
CP BF_SYSINT_SET |
|
|
|
JR Z,SYS_INTSET |
|
|
|
CALL SYSCHK |
|
|
|
LD A,ERR_NOFUNC ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR |
|
|
|
RET |
|
|
|
; |
|
|
|
; GET INTERRUPT SYSTEM INFORMATION |
|
|
|
@ -4753,9 +4746,7 @@ SYS_INTINFO: |
|
|
|
; |
|
|
|
SYS_INTVECADR: |
|
|
|
#IF (INTMODE == 0) |
|
|
|
CALL SYSCHK ; INVALID FOR INT MODE 0 |
|
|
|
LD A,ERR_BADCFG ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
SYSCHKERR(ERR_BADCFG) ; SIGNAL ERROR. INVALID FOR INT MODE 0 |
|
|
|
RET |
|
|
|
#ENDIF |
|
|
|
#IF (INTMODE == 1) |
|
|
|
@ -4769,9 +4760,7 @@ 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 SYSCHK ; ELSE ERROR |
|
|
|
LD A,ERR_RANGE ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
SYSCHKERR(ERR_RANGE) ; ELSE ERROR |
|
|
|
RET |
|
|
|
SYS_INTGET1: |
|
|
|
OR A ; CLEAR CARRY |
|
|
|
@ -5252,15 +5241,11 @@ HB_DISPCALC: |
|
|
|
RET ; JUMP TO DRIVER FUNC ADR ON TOS |
|
|
|
; |
|
|
|
HB_FUNCERR: |
|
|
|
CALL SYSCHK |
|
|
|
LD A,ERR_NOFUNC ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR |
|
|
|
RET |
|
|
|
; |
|
|
|
HB_UNITERR: |
|
|
|
CALL SYSCHK |
|
|
|
LD A,ERR_NOUNIT ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
SYSCHKERR(ERR_NOUNIT) ; SIGNAL ERROR |
|
|
|
RET |
|
|
|
; |
|
|
|
; ADD AN ENTRY TO THE UNIT TABLE AT ADDRESS IN HL |
|
|
|
@ -5347,9 +5332,7 @@ HB_ALLOC: |
|
|
|
HB_ALLOC1: |
|
|
|
; ERROR RETURN |
|
|
|
POP DE ; RESTORE INCOMING DE |
|
|
|
CALL SYSCHK |
|
|
|
LD A,ERR_NOMEM ; SIGNAL ERROR |
|
|
|
OR A ; SET FLAGS |
|
|
|
SYSCHKERR(ERR_NOMEM) ; SIGNAL ERROR |
|
|
|
RET |
|
|
|
; |
|
|
|
HB_TMPSZ .DW 0 |
|
|
|
@ -6337,7 +6320,7 @@ HB_RDSEC: |
|
|
|
; |
|
|
|
; SYSTEM CHECK: DUMP MACHINE STATE AND CONTINUE? |
|
|
|
; |
|
|
|
SYSCHK: |
|
|
|
SYSCHKA: |
|
|
|
; CHECK DIAG LEVEL TO SEE IF WE SHOULD DISPLAY |
|
|
|
PUSH AF ; PRESERVE INCOMING AF VALUE |
|
|
|
LD A,(CB_DIAGLVL) ; GET DIAGNOSTIC LEVEL |
|
|
|
@ -6351,6 +6334,17 @@ SYSCHK: |
|
|
|
CALL WRITESTR ; PRINT IT |
|
|
|
POP DE ; RESTORE DE VALUE |
|
|
|
CALL XREGDMP ; DUMP REGISTERS |
|
|
|
|
|
|
|
; DISPLAY ERROR CODE. IT IS AT RETURN ADDRESS+1 .. LD A,XX |
|
|
|
EX (SP),HL ; GET RETURN ADDRESS |
|
|
|
INC HL ; POINT TO THE ERROR CODE |
|
|
|
PUSH AF |
|
|
|
LD A,(HL) ; DISPLAY |
|
|
|
CALL PRTHEXBYTE |
|
|
|
POP AF |
|
|
|
DEC HL ; RESTORE RETURN ADDRESS |
|
|
|
EX (SP),HL |
|
|
|
; |
|
|
|
JR CONTINUE ; CHECK W/ USER |
|
|
|
; |
|
|
|
SYSCHK1: |
|
|
|
@ -6891,7 +6885,7 @@ PS_PRTDEV: |
|
|
|
CALL PS_PAD ; PAD N SPACES (SPECIFIED IN A) |
|
|
|
RET |
|
|
|
; |
|
|
|
; PRINT DEVICE NMEMONIC, DEVTYP/NUM SPECIFIED IN DE |
|
|
|
; PRINT DEVICE MNEMONIC, DEVTYP/NUM SPECIFIED IN DE |
|
|
|
; |
|
|
|
PS_PRTNUL: |
|
|
|
LD HL,PS_STRNUL |
|
|
|
|