Browse Source

Merge pull request #306 from b1ackmai1er/dev

SYSCHK changes
pull/331/head
Wayne Warthen 3 years ago
committed by GitHub
parent
commit
069aa2b5be
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 32
      Source/Doc/Architecture.md
  2. 8
      Source/HBIOS/bqrtc.asm
  3. 1
      Source/HBIOS/cfg_dyno.asm
  4. 1
      Source/HBIOS/cfg_ezz80.asm
  5. 1
      Source/HBIOS/cfg_master.asm
  6. 1
      Source/HBIOS/cfg_mbc.asm
  7. 1
      Source/HBIOS/cfg_mk4.asm
  8. 1
      Source/HBIOS/cfg_n8.asm
  9. 1
      Source/HBIOS/cfg_rcz180.asm
  10. 1
      Source/HBIOS/cfg_rcz280.asm
  11. 1
      Source/HBIOS/cfg_rcz80.asm
  12. 1
      Source/HBIOS/cfg_rph.asm
  13. 1
      Source/HBIOS/cfg_sbc.asm
  14. 1
      Source/HBIOS/cfg_scz180.asm
  15. 2
      Source/HBIOS/cfg_una.asm
  16. 1
      Source/HBIOS/cfg_zeta.asm
  17. 1
      Source/HBIOS/cfg_zeta2.asm
  18. 4
      Source/HBIOS/cvdu.asm
  19. 8
      Source/HBIOS/ds7rtc.asm
  20. 8
      Source/HBIOS/dsrtc.asm
  21. 8
      Source/HBIOS/fd.asm
  22. 4
      Source/HBIOS/gdc.asm
  23. 102
      Source/HBIOS/hbios.asm
  24. 105
      Source/HBIOS/hbios.inc
  25. 4
      Source/HBIOS/hdsk.asm
  26. 4
      Source/HBIOS/ide.asm
  27. 10
      Source/HBIOS/intrtc.asm
  28. 8
      Source/HBIOS/md.asm
  29. 4
      Source/HBIOS/ppide.asm
  30. 8
      Source/HBIOS/ppp.asm
  31. 8
      Source/HBIOS/prp.asm
  32. 4
      Source/HBIOS/rf.asm
  33. 8
      Source/HBIOS/rp5rtc.asm
  34. 8
      Source/HBIOS/sd.asm
  35. 8
      Source/HBIOS/simrtc.asm
  36. 4
      Source/HBIOS/sio.asm
  37. 5
      Source/HBIOS/std.asm
  38. 4
      Source/HBIOS/tms.asm
  39. 4
      Source/HBIOS/vga.asm

32
Source/Doc/Architecture.md

@ -2168,7 +2168,7 @@ IM1, the size of the table is the number of vectors chained together.
For IM2, the size of the table is the number of slots in the vector For IM2, the size of the table is the number of slots in the vector
table. table.
#### SYSINT Subfunction 0x10) -- Get Interrupt (INTGET)
#### SYSINT Subfunction 0x10 -- Get Interrupt (INTGET)
| _Entry Parameters_ | _Entry Parameters_
| BC: 0xFC10 | BC: 0xFC10
@ -2182,7 +2182,7 @@ On entry, register E must contain an index into the interrupt vector
table. On return, HL will contain the address of the current interrupt table. On return, HL will contain the address of the current interrupt
vector at the specified index. vector at the specified index.
#### SYSINT Subfunction 0x20) -- Set Interrupt (INTSET)
#### SYSINT Subfunction 0x20 -- Set Interrupt (INTSET)
| _Entry Parameters_ | _Entry Parameters_
| BC: 0xFC20 | BC: 0xFC20
@ -2236,6 +2236,7 @@ Possible reasons a PANIC may occur are:
- RAM Bank range error when attempting a read or write to a RAM disk. - RAM Bank range error when attempting a read or write to a RAM disk.
- Sector read function has not been setup but a read was attempted. - Sector read function has not been setup but a read was attempted.
- An interrupt vector has not been set up when an interrupt was received.
- There was an attempt to add more devices than the device table had room for. - There was an attempt to add more devices than the device table had room for.
- An illegal SD card command was encountered. - An illegal SD card command was encountered.
@ -2244,21 +2245,30 @@ which section of the software or hardware caused the fault.
### SYSCHK ### SYSCHK
A syschk error is reported when an internal error is detected. The key differance
to the PANIC error is that execution may be continued. In which case an error
code is returned to the calling routine. The error code is not displayed at the console.
A syschk error is identified when an internal error is detected. When this
occurs an error code is returned to the calling program in the A register.
A non-zero result indicates an error.
Syschk errors may be reported to the console. Whether this occurs depends on
the value of the diagnosis level equate DIAGLVL. By default syschk errors
are not reported to the console.
If the diagnosis level is set to display the diagnosis information, then
memory address, register dump and error code is displayed.
A key differance with the PANIC error is that execution may be continued.
Example error message: Example error message:
\>>> SYSCHK: @06C4[DFA3:DFC3:0100:F103:04FC:0000:2B5E] Continue (Y/N)
\>>> SYSCHK: @06C4[DFA3:DFC3:0100:F103:04FC:0000:2B5E] FD
Continue (Y/N)
The format of the information provided is the same as with the PANIC report.
The format of the information provided is similar the PANIC report.
@XXXX [-AF-:-BC-:-DE-:-HL-:-SP-:-IX-:-IY-]
@XXXX [-AF-:-BC-:-DE-:-HL-:-SP-:-IX-:-IY-] YY
Syschk error codes are returned in the A register.
The syschk error codes YY is returned in the A register.
| Error | Code |
| Error | Code YY |
| ----------------------------------- | -------- | | ----------------------------------- | -------- |
| Success | 0x00 | | Success | 0x00 |
| Undefined Error | 0xFF | | Undefined Error | 0xFF |
@ -2305,7 +2315,7 @@ ROMWBW can be configured to display boot progress with the assistance of additio
hardware. This take the form of an LED breakout debugging board connected to an hardware. This take the form of an LED breakout debugging board connected to an
8-bit output port. As the boot code executes, the LED output display is updated. 8-bit output port. As the boot code executes, the LED output display is updated.
To us an LED breakout board, it must be connected the computers data, reset and port
To use a LED breakout board, it must be connected the computers data, reset and port
select lines. select lines.
To enable the DIAG option the following settings must be made in the systems .ini To enable the DIAG option the following settings must be made in the systems .ini

8
Source/HBIOS/bqrtc.asm

@ -161,9 +161,7 @@ BQRTC_DISPATCH:
JP Z, BQRTC_SETALM ; Set Alarm JP Z, BQRTC_SETALM ; Set Alarm
DEC A DEC A
JP Z, BQRTC_DEVICE ; Report RTC device info JP Z, BQRTC_DEVICE ; Report RTC device info
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
SYSCHKERR(ERR_NOFUNC)
RET RET
; ;
@ -173,9 +171,7 @@ BQRTC_GETBYT:
BQRTC_SETBYT: BQRTC_SETBYT:
BQRTC_GETBLK: BQRTC_GETBLK:
BQRTC_SETBLK: BQRTC_SETBLK:
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL)
RET RET
; RTC Get Time ; RTC Get Time

1
Source/HBIOS/cfg_dyno.asm

@ -66,6 +66,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED) LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_ezz80.asm

@ -67,6 +67,7 @@ WDOGIO .EQU $6F ; WATCHDOG REGISTER ADR
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED) LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_master.asm

@ -98,6 +98,7 @@ WDOGIO .EQU $6F ; WATCHDOG REGISTER ADR
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED) LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_mbc.asm

@ -63,6 +63,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU TRUE ; ENABLES STATUS LED LEDENABLE .EQU TRUE ; ENABLES STATUS LED
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_mk4.asm

@ -69,6 +69,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED) LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_n8.asm

@ -71,6 +71,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED LEDENABLE .EQU FALSE ; ENABLES STATUS LED
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_rcz180.asm

@ -69,6 +69,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED) LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_rcz280.asm

@ -74,6 +74,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED) LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_rcz80.asm

@ -68,6 +68,7 @@ WDOGIO .EQU $6E ; WATCHDOG REGISTER ADR
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED) LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_rph.asm

@ -69,6 +69,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED LEDENABLE .EQU FALSE ; ENABLES STATUS LED
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_sbc.asm

@ -63,6 +63,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED LEDENABLE .EQU FALSE ; ENABLES STATUS LED
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_scz180.asm

@ -64,6 +64,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $0D ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $0D ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED) LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]

2
Source/HBIOS/cfg_una.asm

@ -32,3 +32,5 @@ ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
; ;
DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE) DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING

1
Source/HBIOS/cfg_zeta.asm

@ -55,6 +55,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED LEDENABLE .EQU FALSE ; ENABLES STATUS LED
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]

1
Source/HBIOS/cfg_zeta2.asm

@ -66,6 +66,7 @@ WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
; ;
LEDENABLE .EQU FALSE ; ENABLES STATUS LED LEDENABLE .EQU FALSE ; ENABLES STATUS LED
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC] LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]

4
Source/HBIOS/cvdu.asm

@ -171,9 +171,7 @@ CVDU_VDADEV:
RET RET
CVDU_VDASCS: CVDU_VDASCS:
CALL SYSCHK ; NOT IMPLEMENTED (YET)
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; NOT IMPLEMENTED (YET)
RET RET
CVDU_VDASCP: CVDU_VDASCP:

8
Source/HBIOS/ds7rtc.asm

@ -100,9 +100,7 @@ DS7_DISPATCH:
JP Z, DS7_SETALM ; SET ALARM JP Z, DS7_SETALM ; SET ALARM
DEC A DEC A
JP Z, DS7_DEVICE ; REPORT RTC DEVICE INFO JP Z, DS7_DEVICE ; REPORT RTC DEVICE INFO
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
SYSCHKERR(ERR_NOFUNC)
RET RET
; ;
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
@ -269,9 +267,7 @@ DS7_GETBLK:
DS7_SETBLK: DS7_SETBLK:
DS7_SETALM DS7_SETALM
DS7_GETALM DS7_GETALM
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL)
RET RET
;----------------------------------------------------------------------------- ;-----------------------------------------------------------------------------
; REPORT RTC DEVICE INFO ; REPORT RTC DEVICE INFO

8
Source/HBIOS/dsrtc.asm

@ -247,9 +247,7 @@ DSRTC_DISPATCH:
JP Z,DSRTC_SETALM ; SET ALARM JP Z,DSRTC_SETALM ; SET ALARM
DEC A DEC A
JP Z,DSRTC_DEVICE ; REPORT RTC DEVICE INFO JP Z,DSRTC_DEVICE ; REPORT RTC DEVICE INFO
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
SYSCHKERR(ERR_NOFUNC)
RET RET
; ;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR ; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
@ -258,9 +256,7 @@ DSRTC_GETBLK:
DSRTC_SETBLK: DSRTC_SETBLK:
DSRTC_GETALM: DSRTC_GETALM:
DSRTC_SETALM: DSRTC_SETALM:
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL)
RET RET
; ;
; RTC GET TIME ; RTC GET TIME

8
Source/HBIOS/fd.asm

@ -490,9 +490,7 @@ FD_FNTBL:
FD_VERIFY: FD_VERIFY:
FD_FORMAT: FD_FORMAT:
FD_DEFMED: FD_DEFMED:
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; INVALID SUB-FUNCTION
RET RET
; ;
; ;
@ -1149,9 +1147,7 @@ FD_RUN1:
JR Z,FC_WRITE JR Z,FC_WRITE
CP DOP_READID CP DOP_READID
JR Z,FC_READID JR Z,FC_READID
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
SYSCHKERR(ERR_NOFUNC)
RET RET
FD_RUNCHK: FD_RUNCHK:

4
Source/HBIOS/gdc.asm

@ -157,9 +157,7 @@ GDC_VDADEV: ; VIDEO DEVICE INFORMATION
RET RET
; ;
GDC_VDASCS: ; SET CURSOR STYLE GDC_VDASCS: ; SET CURSOR STYLE
CALL SYSCHK ; NOT IMPLEMENTED (YET)
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL)
RET RET
GDC_VDASCP: ; SET CURSOR POSITION GDC_VDASCP: ; SET CURSOR POSITION

102
Source/HBIOS/hbios.asm

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

105
Source/HBIOS/hbios.inc

@ -156,6 +156,111 @@ ERR_TIMEOUT .EQU -11 ; DEVICE TIMEOUT
ERR_BADCFG .EQU -12 ; INVALID CONFIGURATION ERR_BADCFG .EQU -12 ; INVALID CONFIGURATION
ERR_INTERNAL .EQU -13 ; INTERNAL ERROR ERR_INTERNAL .EQU -13 ; INTERNAL ERROR
; ;
; HBIOS DIAG OPTIONS
;
DIAG_PROG .EQU 0 ; PROGRESS BAR
DIAG_STEP .EQU 1 ; STEP BAR
DIAG_ASCII .EQU 2 ; 8-BIT ASCII 30H - 39H
DIAG_BINARY .EQU 3 ; BINARY 00H - 09H
DIAG_7SEG .EQU 4 ; 7-SEGMENT
DIAG_FLASH .EQU 5 ; FLASH
DIAG_TRIG .EQU 6 ; TRIGGER
;
DIAG_DISP .EQU DIAG_PROG ; DEFAULT
;
#IF (DIAG_DISP == DIAG_PROG)
DIAG_00 .EQU 00000000B
DIAG_01 .EQU 00000001B
DIAG_02 .EQU 00000011B
DIAG_03 .EQU 00000111B
DIAG_04 .EQU 00001111B
DIAG_05 .EQU 00011111B
DIAG_06 .EQU 00111111B
DIAG_07 .EQU 01111111B
DIAG_08 .EQU 11111111B
DIAG_09 .EQU 11111111B
#ENDIF
;
#IF (DIAG_DISP == DIAG_STEP)
DIAG_00 .EQU 00000000B
DIAG_01 .EQU 00000001B
DIAG_02 .EQU 00000010B
DIAG_03 .EQU 00000100B
DIAG_04 .EQU 00001000B
DIAG_05 .EQU 00010000B
DIAG_06 .EQU 00100000B
DIAG_07 .EQU 01000000B
DIAG_08 .EQU 10000000B
DIAG_09 .EQU 11111111B
#ENDIF
;
#IF (DIAG_DISP == DIAG_ASCII)
DIAG_00 .EQU '0'
DIAG_01 .EQU '1'
DIAG_02 .EQU '2'
DIAG_03 .EQU '3'
DIAG_04 .EQU '4'
DIAG_05 .EQU '5'
DIAG_06 .EQU '6'
DIAG_07 .EQU '7'
DIAG_08 .EQU '8'
DIAG_09 .EQU '9'
#ENDIF
;
#IF (DIAG_DISP == DIAG_BINARY)
DIAG_00 .EQU 0
DIAG_01 .EQU 1
DIAG_02 .EQU 2
DIAG_03 .EQU 3
DIAG_04 .EQU 4
DIAG_05 .EQU 5
DIAG_06 .EQU 6
DIAG_07 .EQU 7
DIAG_08 .EQU 8
DIAG_09 .EQU 9
#ENDIF
;
#IF (DIAG_DISP == DIAG_7SEG)
; abcdefg
DIAG_00 .EQU 00000000B ; BLANK
DIAG_01 .EQU 01111110B ; 0
DIAG_02 .EQU 00110000B ; 1
DIAG_03 .EQU 01101101B ; 2
DIAG_04 .EQU 01111001B ; 3
DIAG_05 .EQU 00110011B ; 4
DIAG_06 .EQU 01011011B ; 5
DIAG_07 .EQU 00011111B ; 6
DIAG_08 .EQU 01110000B ; 7
DIAG_09 .EQU 01111111B ; 8
DIAG_10 .EQU 01110011B ; 9
#ENDIF
;
#IF (DIAG_DISP == DIAG_FLASH)
DIAG_00 .EQU 00000000B ; OFF
DIAG_01 .EQU 11111111B ; ON
DIAG_02 .EQU 00000000B ; OFF
DIAG_03 .EQU 11111111B ; ON
DIAG_04 .EQU 00000000B ; OFF
DIAG_05 .EQU 11111111B ; ON
DIAG_06 .EQU 00000000B ; OFF
DIAG_07 .EQU 11111111B ; ON
DIAG_08 .EQU 00000000B ; OFF
DIAG_09 .EQU 11111111B ; ON
#ENDIF
;
#IF (DIAG_DISP == DIAG_TRIG)
DIAG_00 .EQU 11111111B ; ON
DIAG_01 .EQU 11111111B ; ON
DIAG_02 .EQU 11111111B ; ON
DIAG_03 .EQU 11111111B ; ON
DIAG_04 .EQU 11111111B ; ON
DIAG_05 .EQU 11111111B ; ON
DIAG_06 .EQU 11111111B ; ON
DIAG_07 .EQU 11111111B ; ON
DIAG_08 .EQU 11111111B ; ON
DIAG_09 .EQU 11111111B ; ON
#ENDIF
;
; MEDIA ID VALUES ; MEDIA ID VALUES
; ;
MID_NONE .EQU 0 MID_NONE .EQU 0

4
Source/HBIOS/hdsk.asm

@ -121,9 +121,7 @@ HDSK_FNTBL:
HDSK_VERIFY: HDSK_VERIFY:
HDSK_FORMAT: HDSK_FORMAT:
HDSK_DEFMED: HDSK_DEFMED:
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; INVALID SUB-FUNCTION
RET RET
; ;
; ;

4
Source/HBIOS/ide.asm

@ -461,9 +461,7 @@ IDE_FNTBL:
IDE_VERIFY: IDE_VERIFY:
IDE_FORMAT: IDE_FORMAT:
IDE_DEFMED: IDE_DEFMED:
CALL SYSCHK ; NOT IMPLEMENTED
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; NOT IMPLEMENTED
RET RET
; ;
; ;

10
Source/HBIOS/intrtc.asm

@ -56,9 +56,7 @@ INTRTC_DISPATCH:
JP Z,INTRTC_SETALM ; SET ALARM JP Z,INTRTC_SETALM ; SET ALARM
DEC A DEC A
JP Z,INTRTC_DEVICE ; REPORT RTC DEVICE INFO JP Z,INTRTC_DEVICE ; REPORT RTC DEVICE INFO
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
SYSCHKERR(ERR_NOFUNC)
RET RET
; ;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR ; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
@ -69,9 +67,7 @@ INTRTC_GETBLK:
INTRTC_SETBLK: INTRTC_SETBLK:
INTRTC_GETALM: INTRTC_GETALM:
INTRTC_SETALM: INTRTC_SETALM:
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL)
RET RET
; ;
; RTC GET TIME ; RTC GET TIME
@ -205,7 +201,7 @@ INTRTC_INT2:
JR NZ,INTRTC_INTX ; NOPE, DONE JR NZ,INTRTC_INTX ; NOPE, DONE
LD (HL),0 ; BACK TO YEAR ZERO LD (HL),0 ; BACK TO YEAR ZERO
INTRTC_INTX: INTRTC_INTX:
JP SYSCHK
JP PANIC
INTRTC_VEC .EQU $-2 INTRTC_VEC .EQU $-2
; ;
; CONVERT FROM BINARY BUF (HL) TO BCD BUF (DE) ; CONVERT FROM BINARY BUF (HL) TO BCD BUF (DE)

8
Source/HBIOS/md.asm

@ -157,9 +157,7 @@ MD_FNTBL:
MD_VERIFY: MD_VERIFY:
MD_FORMAT: MD_FORMAT:
MD_DEFMED: MD_DEFMED:
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; INVALID SUB-FUNCTION
RET RET
; ;
; ;
@ -182,9 +180,7 @@ MD_CAP: ; ASSUMES THAT UNIT 0 IS RAM, UNIT 1 IS ROM
JR Z,MD_CAP0 ; UNIT 0 JR Z,MD_CAP0 ; UNIT 0
DEC A ; TRY UNIT 1 DEC A ; TRY UNIT 1
JR Z,MD_CAP1 ; UNIT 1 JR Z,MD_CAP1 ; UNIT 1
CALL SYSCHK ; INVALID UNIT
LD A,ERR_NOUNIT
OR A
SYSCHKERR(ERR_NOUNIT) ; INVALID UNIT
RET RET
MD_CAP0: MD_CAP0:
LD A,(HCB + HCB_RAMBANKS) ; POINT TO RAM BANK COUNT LD A,(HCB + HCB_RAMBANKS) ; POINT TO RAM BANK COUNT

4
Source/HBIOS/ppide.asm

@ -470,9 +470,7 @@ PPIDE_FNTBL:
PPIDE_VERIFY: PPIDE_VERIFY:
PPIDE_FORMAT: PPIDE_FORMAT:
PPIDE_DEFMED: PPIDE_DEFMED:
CALL SYSCHK ; NOT IMPLEMENTED
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; NOT IMPLEMENTED
RET RET
; ;
; ;

8
Source/HBIOS/ppp.asm

@ -338,9 +338,7 @@ PPPCON_OST:
; ;
; ;
PPPCON_INITDEV: PPPCON_INITDEV:
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL)
RET RET
; ;
; ;
@ -504,9 +502,7 @@ PPPSD_FNTBL:
PPPSD_VERIFY: PPPSD_VERIFY:
PPPSD_FORMAT: PPPSD_FORMAT:
PPPSD_DEFMED: PPPSD_DEFMED:
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; INVALID SUB-FUNCTION
RET RET
; ;
; ;

8
Source/HBIOS/prp.asm

@ -211,9 +211,7 @@ PRPCON_OST1:
; ;
; ;
PRPCON_INITDEV: PRPCON_INITDEV:
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL)
RET RET
; ;
; ;
@ -401,9 +399,7 @@ PRPSD_FNTBL:
PRPSD_VERIFY: PRPSD_VERIFY:
PRPSD_FORMAT: PRPSD_FORMAT:
PRPSD_DEFMED: PRPSD_DEFMED:
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; INVALID SUB-FUNCTION
RET RET
; ;
; ;

4
Source/HBIOS/rf.asm

@ -138,9 +138,7 @@ RF_FNTBL:
RF_VERIFY: RF_VERIFY:
RF_FORMAT: RF_FORMAT:
RF_DEFMED: RF_DEFMED:
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; INVALID SUB-FUNCTION
RET RET
; ;
; ;

8
Source/HBIOS/rp5rtc.asm

@ -159,9 +159,7 @@ RP5RTC_DISPATCH:
JP Z,RP5RTC_SETALM ; SET ALARM JP Z,RP5RTC_SETALM ; SET ALARM
DEC A DEC A
JP Z,RP5RTC_DEVICE ; REPORT RTC DEVICE INFO JP Z,RP5RTC_DEVICE ; REPORT RTC DEVICE INFO
CALL SYSCHK
LD A, ERR_NOFUNC
OR A
SYSCHKERR(ERR_NOFUNC)
RET RET
; ;
; RTC GET NVRAM BYTE ; RTC GET NVRAM BYTE
@ -240,9 +238,7 @@ RP5RTC_GETBLK:
RP5RTC_SETBLK: RP5RTC_SETBLK:
RP5RTC_GETALM: RP5RTC_GETALM:
RP5RTC_SETALM: RP5RTC_SETALM:
LD A, ERR_NOTIMPL
CALL SYSCHK
OR A
SYSCHKERR(ERR_NOTIMPL)
RET RET
; ;
; RTC GET TIME ; RTC GET TIME

8
Source/HBIOS/sd.asm

@ -710,9 +710,7 @@ SD_FNTBL:
SD_VERIFY: SD_VERIFY:
SD_FORMAT: SD_FORMAT:
SD_DEFMED: SD_DEFMED:
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; INVALID SUB-FUNCTION
RET RET
; ;
; ;
@ -1131,7 +1129,9 @@ SD_INITCARD5:
JR SD_INITCARD6 ; HANDLE MMC OR SDSC JR SD_INITCARD6 ; HANDLE MMC OR SDSC
; ;
SD_INITCARD5A: SD_INITCARD5A:
CALL SYSCHK
PUSH AF
SYSCHKERR(ERR_NOMEDIA)
POP AF
JP SD_NOMEDIA JP SD_NOMEDIA
; ;
; CAPACITY CALCULATION FOR MMC OR SDSC (V1) CARDS: ; CAPACITY CALCULATION FOR MMC OR SDSC (V1) CARDS:

8
Source/HBIOS/simrtc.asm

@ -55,9 +55,7 @@ SIMRTC_DISPATCH:
JP Z,SIMRTC_SETALM ; SET ALARM JP Z,SIMRTC_SETALM ; SET ALARM
DEC A DEC A
JP Z,SIMRTC_DEVICE ; REPORT RTC DEVICE INFO JP Z,SIMRTC_DEVICE ; REPORT RTC DEVICE INFO
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
SYSCHKERR(ERR_NOFUNC)
RET RET
; ;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR ; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
@ -68,9 +66,7 @@ SIMRTC_GETBLK:
SIMRTC_SETBLK: SIMRTC_SETBLK:
SIMRTC_GETALM: SIMRTC_GETALM:
SIMRTC_SETALM: SIMRTC_SETALM:
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL)
RET RET
; ;
; RTC GET TIME ; RTC GET TIME

4
Source/HBIOS/sio.asm

@ -843,9 +843,7 @@ SIO_INITGO:
LD L,SIO1_VEC ; ASSUME CHIP 1 LD L,SIO1_VEC ; ASSUME CHIP 1
DEC A ; CHIP 1? DEC A ; CHIP 1?
JR Z,SIO_INITIVT ; IF SO, DO IT JR Z,SIO_INITIVT ; IF SO, DO IT
CALL SYSCHK ; IMPOSSIBLE SITUATION
LD A,ERR_NOUNIT
OR A
SYSCHKERR(ERR_NOUNIT) ; IMPOSSIBLE SITUATION
RET RET
SIO_INITIVT: SIO_INITIVT:
LD A,L ; VALUE TO A LD A,L ; VALUE TO A

5
Source/HBIOS/std.asm

@ -56,11 +56,6 @@ BIOS_NONE .EQU 0 ; NO BIOS TYPE DEFINED
BIOS_WBW .EQU 1 ; ROMWBW HBIOS BIOS_WBW .EQU 1 ; ROMWBW HBIOS
BIOS_UNA .EQU 2 ; UNA UBIOS BIOS_UNA .EQU 2 ; UNA UBIOS
; ;
; DEFAULT HBIOS DIAGNOSTIC LEVEL
; WILL ULTIMATELY BE MOVED TO CONFIG FILE
;
DIAGLVL .EQU DL_CRITICAL
;
; MEMORY MANAGERS ; MEMORY MANAGERS
; ;
MM_NONE .EQU 0 MM_NONE .EQU 0

4
Source/HBIOS/tms.asm

@ -298,9 +298,7 @@ TMS_VDADEV:
RET RET
TMS_VDASCS: TMS_VDASCS:
CALL SYSCHK ; NOT IMPLEMENTED (YET)
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; NOT IMPLEMENTED (YET)
RET RET
TMS_VDASCP: TMS_VDASCP:

4
Source/HBIOS/vga.asm

@ -211,9 +211,7 @@ VGA_VDADEV:
RET RET
VGA_VDASCS: VGA_VDASCS:
CALL SYSCHK ; NOT IMPLEMENTED (YET)
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; NOT IMPLEMENTED (YET)
RET RET
VGA_VDASCP: VGA_VDASCP:

Loading…
Cancel
Save