Browse Source

Change PANIC behavior a bit

- Also includes a fix for a build issue in PPIDE identified by Richard Deane.
pull/132/head
Wayne Warthen 6 years ago
parent
commit
3f46921c6c
  1. BIN
      Doc/RomWBW Applications.pdf
  2. BIN
      Doc/RomWBW Architecture.pdf
  3. BIN
      Doc/RomWBW Disk Catalog.pdf
  4. BIN
      Doc/RomWBW Getting Started.pdf
  5. 22
      Source/Doc/Architecture.md
  6. 2
      Source/HBIOS/acia.asm
  7. 10
      Source/HBIOS/bqrtc.asm
  8. 5
      Source/HBIOS/cvdu.asm
  9. 2
      Source/HBIOS/dbgmon.asm
  10. 10
      Source/HBIOS/dsrtc.asm
  11. 23
      Source/HBIOS/fd.asm
  12. 41
      Source/HBIOS/hbios.asm
  13. 1
      Source/HBIOS/hbios.inc
  14. 10
      Source/HBIOS/hdsk.asm
  15. 12
      Source/HBIOS/ide.asm
  16. 12
      Source/HBIOS/intrtc.asm
  17. 10
      Source/HBIOS/md.asm
  18. 14
      Source/HBIOS/ppide.asm
  19. 17
      Source/HBIOS/ppp.asm
  20. 17
      Source/HBIOS/prp.asm
  21. 13
      Source/HBIOS/rf.asm
  22. 21
      Source/HBIOS/sd.asm
  23. 10
      Source/HBIOS/simrtc.asm
  24. 5
      Source/HBIOS/sio.asm
  25. 4
      Source/HBIOS/std.asm
  26. 5
      Source/HBIOS/tms.asm
  27. 20
      Source/HBIOS/util.asm
  28. 5
      Source/HBIOS/vga.asm
  29. 2
      Source/ver.inc
  30. 2
      Source/ver.lib

BIN
Doc/RomWBW Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Architecture.pdf

Binary file not shown.

BIN
Doc/RomWBW Disk Catalog.pdf

Binary file not shown.

BIN
Doc/RomWBW Getting Started.pdf

Binary file not shown.

22
Source/Doc/Architecture.md

@ -410,6 +410,28 @@ require double-buffering if the caller’s buffer is in the lower 32K of CPU
address space. For optimal performance, such buffers should be placed in
the upper 32K of CPU address space.
Error Codes
-----------
The following error codes are defined generically for all HBIOS functions.
Most function calls will return a result in register A.
_Code_ | _Meaning_
------ | ---------
0 | function succeeded
-1 | undefined error
-2 | function not implemented
-3 | invalid function
-4 | invalid unit numberr
-5 | out of memory
-6 | parameter out of range
-7 | media not present
-8 | hardware not present
-9 | I/O error
-10 | write request to read-only media
-11 | device timeout
-12 | invalid configuration
`\clearpage`{=latex}
Character Input/Output (CIO)

2
Source/HBIOS/acia.asm

@ -165,7 +165,7 @@ ACIA_INIT1:
;
ACIA0_INT:
ACIA1_INT:
CALL PANIC
CALL PANIC ; NO RETURN
;
#ENDIF
;

10
Source/HBIOS/bqrtc.asm

@ -161,7 +161,10 @@ BQRTC_DISPATCH:
JP Z, BQRTC_SETALM ; Set Alarm
DEC A
JP Z, BQRTC_DEVICE ; Report RTC device info
CALL PANIC
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
RET
;
; NVRAM FUNCTIONS ARE NOT AVAILABLE
@ -170,7 +173,10 @@ BQRTC_GETBYT:
BQRTC_SETBYT:
BQRTC_GETBLK:
BQRTC_SETBLK:
CALL PANIC
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
RET
; RTC Get Time
; A: Result (OUT), 0=OK, Z=OK, NZ=Error

5
Source/HBIOS/cvdu.asm

@ -136,7 +136,10 @@ CVDU_VDADEV:
RET
CVDU_VDASCS:
CALL PANIC ; NOT IMPLEMENTED (YET)
CALL SYSCHK ; NOT IMPLEMENTED (YET)
LD A,ERR_NOTIMPL
OR A
RET
CVDU_VDASCP:
CALL CVDU_XY ; SET CURSOR POSITION

2
Source/HBIOS/dbgmon.asm

@ -1400,7 +1400,7 @@ DISPLAYBUF: .FILL 8,0
#ELSE
;
DSKY_ENTRY:
CALL PANIC
CALL PANIC ; NO RETURN
;
#ENDIF
;

10
Source/HBIOS/dsrtc.asm

@ -241,7 +241,10 @@ DSRTC_DISPATCH:
JP Z,DSRTC_SETALM ; SET ALARM
DEC A
JP Z,DSRTC_DEVICE ; REPORT RTC DEVICE INFO
CALL PANIC
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
RET
;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
;
@ -249,7 +252,10 @@ DSRTC_GETBLK:
DSRTC_SETBLK:
DSRTC_GETALM:
DSRTC_SETALM:
CALL PANIC
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
RET
;
; RTC GET TIME
; A: RESULT (OUT), 0=OK, Z=OK, NZ=ERR

23
Source/HBIOS/fd.asm

@ -483,7 +483,10 @@ FD_FNTBL:
FD_VERIFY:
FD_FORMAT:
FD_DEFMED:
CALL PANIC ; INVALID SUB-FUNCTION
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
RET
;
;
;
@ -555,7 +558,8 @@ FD_MEDIARETRY:
;LD (HL),0 ; SET TO NO MEDIA
LD (IY+FD_MEDTYP),0 ; SET DRIVE = NO MEDIA
LD E,0
OR $FF ; SIGNAL ERROR
LD A,ERR_NOMEDIA ; SIGNAL ERROR
OR A ; SET FLAGS
RET
FD_TESTMEDIA:
@ -784,7 +788,7 @@ FD_FDCRESET:
LD (FCD_FDCRDY),A
; MARK ALL DRIVES AS NEEDING RECALIBRATION
; NOTE THAT IF THE VALUE IS CURRENT $FF,
; NOTE THAT IF THE VALUE IS CURRENTLY $FF,
; WE NEED TO LEAVE IT ALONE, SO WE 'OR' IN THE
; $FE TO AVOID THIS SCENARIO.
@ -972,8 +976,14 @@ FD_RETRY:
CALL FC_PRTRESULTS
#ENDIF
; RETURN APPROPRIATE HBIOS ERROR
LD A,(FST_RC)
OR A ; OTHERWISE SET FLAGS BASED ON RC (IN A)
CP FRC_NOTWRIT
LD A,ERR_READONLY ; ASSUME WRITE PROTECTED ERROR
JR Z,FD_RETRY1
LD A,ERR_IO ; OTHERWISE I/O ERROR
FD_RETRY1:
OR A ; SET FLAGS
RET ; AND GIVE UP
;
;
@ -1042,7 +1052,10 @@ FD_RUN1:
JR Z,FC_WRITE
CP DOP_READID
JR Z,FC_READID
CALL PANIC
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
RET
FD_RUNCHK:
#IF (DSKYENABLE)

41
Source/HBIOS/hbios.asm

@ -1796,7 +1796,7 @@ HB_DISPATCH:
PUSH AF
LD A,(HB_STACK - HB_STKSIZ + $08)
CP $FF
CALL NZ,PANIC
CALL SYSCHK
LD A,$FF
LD (HB_STACK - HB_STKSIZ + $08),A
POP AF
@ -1813,17 +1813,20 @@ HB_DISPCALL:
CP BF_RTC + $10 ; $20-$2F: REAL TIME CLOCK (RTC)
JP C,RTC_DISPATCH
CP BF_EMU + $10 ; $30-$3F: EMULATION
CALL C,PANIC ; OBSOLETE!
JR C,HB_DISPERR
CP BF_VDA + $10 ; $40-$4F: VIDEO DISPLAY ADAPTER
JP C,VDA_DISPATCH
CP BF_SND + $08 ; $50-$58: SOUND DRIVERS
JP C,SND_DISPATCH
CP BF_SYS ; SKIP TO BF_SYS VALUE AT $F0
CALL C,PANIC ; PANIC IF LESS THAN BF_SYS
JR C,HB_DISPERR ; ERROR IF LESS THAN BF_SYS
JP SYS_DISPATCH ; OTHERWISE SYS CALL
CALL PANIC ; THIS SHOULD NEVER BE REACHED
; FALL THRU
;
HB_DISPERR:
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
RET
;
;==================================================================================================
@ -2185,7 +2188,7 @@ RTC_DISPATCH:
RET
;
RTC_DISPERR:
;CALL PANIC
CALL SYSCHK
LD A,ERR_NOHW
OR A
RET
@ -2340,7 +2343,7 @@ SYS_RESET:
JR Z,SYS_RESWARM
CP BF_SYSRES_COLD
JR Z,SYS_RESCOLD
;CALL PANIC
CALL SYSCHK
LD A,ERR_NOFUNC
OR A ; SIGNAL ERROR
RET
@ -2453,7 +2456,7 @@ SYS_ALLOC:
; ALL OTHER REGISTERS PRESERVED
;
SYS_FREE:
;CALL PANIC ; NOT YET IMPLEMENTED
CALL SYSCHK ; NOT YET IMPLEMENTED
LD A,ERR_NOTIMPL ; NOT YET INMPLEMENTED
OR A ; SET FLAGS
RET
@ -2470,9 +2473,9 @@ SYS_GET:
CP BF_SYSGET_RTCCNT
JR Z,SYS_GETRTCCNT
CP BF_SYSGET_VDACNT
JR Z,SYS_GETVDACNT
JP Z,SYS_GETVDACNT
CP BF_SYSGET_SNDCNT
JR Z, SYS_GETSNDCNT
JP Z, SYS_GETSNDCNT
CP BF_SYSGET_TIMER
JR Z,SYS_GETTIMER
CP BF_SYSGET_SECS
@ -2485,7 +2488,7 @@ SYS_GET:
JR Z,SYS_GETMEMINFO
CP BF_SYSGET_BNKINFO
JR Z,SYS_GETBNKINFO
;CALL PANIC
CALL SYSCHK
LD A,ERR_NOFUNC ; SIGNAL ERROR
OR A ; SET FLAGS
RET
@ -2625,7 +2628,7 @@ SYS_SET:
JR Z,SYS_SETSECS
CP BF_SYSSET_BOOTINFO
JR Z,SYS_SETBOOTINFO
;CALL PANIC
CALL SYSCHK
LD A,ERR_NOFUNC ; SIGNAL ERROR
OR A ; SET FLAGS
RET
@ -2722,7 +2725,7 @@ SYS_INT:
JR Z,SYS_INTGET
CP BF_SYSINT_SET
JR Z,SYS_INTSET
;CALL PANIC
CALL SYSCHK
LD A,ERR_NOFUNC ; SIGNAL ERROR
OR A ; SET FLAGS
RET
@ -2750,7 +2753,7 @@ SYS_INTINFO:
;
SYS_INTVECADR:
#IF (INTMODE == 0)
;CALL PANIC ; INVALID FOR INT MODE 0
CALL SYSCHK ; INVALID FOR INT MODE 0
LD A,ERR_BADCFG ; SIGNAL ERROR
OR A ; SET FLAGS
RET
@ -2766,7 +2769,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 PANIC ; ELSE ERROR
CALL SYSCHK ; ELSE ERROR
LD A,ERR_RANGE ; SIGNAL ERROR
OR A ; SET FLAGS
RET
@ -2985,13 +2988,13 @@ HB_DISPCALL:
RET ; JUMP TO DRIVER FUNC ADR ON TOS
;
HB_FUNCERR:
;CALL PANIC
CALL SYSCHK
LD A,ERR_NOFUNC ; SIGNAL ERROR
OR A ; SET FLAGS
RET
;
HB_UNITERR:
;CALL PANIC
CALL SYSCHK
LD A,ERR_NOUNIT ; SIGNAL ERROR
OR A ; SET FLAGS
RET
@ -3080,7 +3083,7 @@ HB_ALLOC:
HB_ALLOC1:
; ERROR RETURN
POP DE ; RESTORE INCOMING DE
;CALL PANIC
CALL SYSCHK
LD A,ERR_NOMEM ; SIGNAL ERROR
OR A ; SET FLAGS
RET

1
Source/HBIOS/hbios.inc

@ -132,6 +132,7 @@ ERR_IO .EQU -9 ; I/O ERROR
ERR_READONLY .EQU -10 ; WRITE REQ TO READ-ONLY MEDIA
ERR_TIMEOUT .EQU -11 ; DEVICE TIMEOUT
ERR_BADCFG .EQU -12 ; INVALID CONFIGURATION
ERR_INTERNAL .EQU -13 ; INTERNAL ERROR
;
; MEDIA ID VALUES
;

10
Source/HBIOS/hdsk.asm

@ -121,7 +121,10 @@ HDSK_FNTBL:
HDSK_VERIFY:
HDSK_FORMAT:
HDSK_DEFMED:
CALL PANIC ; INVALID SUB-FUNCTION
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
RET
;
;
;
@ -291,7 +294,10 @@ HDSK_RW6:
LD E,C ; SECTOR READ COUNT TO E
LD HL,(HDSK_DMA) ; CURRENT DMA TO HL
OR A ; SET FLAGS BASED ON RETURN CODE
RET ; AND RETURN, A HAS RETURN CODE
RET Z ; RETURN IF SUCCESS
LD A,ERR_IO ; SIGNAL IO ERROR
OR A ; SET FLAGS
RET ; AND DONE
;
;
;

12
Source/HBIOS/ide.asm

@ -461,7 +461,10 @@ IDE_FNTBL:
IDE_VERIFY:
IDE_FORMAT:
IDE_DEFMED:
CALL PANIC ; NOT IMPLEMENTED
CALL SYSCHK ; NOT IMPLEMENTED
LD A,ERR_NOTIMPL
OR A
RET
;
;
;
@ -520,7 +523,10 @@ IDE_IO3:
LD E,C ; SECTOR READ COUNT TO E
LD HL,(IDE_DSKBUF) ; CURRENT DMA TO HL
OR A ; SET FLAGS BASED ON RETURN CODE
RET ; AND RETURN, A HAS RETURN CODE
RET Z ; RETURN IF SUCCESS
LD A,ERR_IO ; SIGNAL IO ERROR
OR A ; SET FLAGS
RET ; AND DONE
;
;
;
@ -574,6 +580,8 @@ IDE_MEDIA2:
LD E,MID_HD ; ASSUME WE ARE OK
RET Z ; RETURN IF GOOD INIT
LD E,MID_NONE ; SIGNAL NO MEDIA
LD A,ERR_NOMEDIA ; NO MEDIA ERROR
OR A ; SET FLAGS
RET ; AND RETURN
;
;

12
Source/HBIOS/intrtc.asm

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

10
Source/HBIOS/md.asm

@ -80,7 +80,10 @@ MD_FNTBL:
MD_VERIFY:
MD_FORMAT:
MD_DEFMED:
CALL PANIC ; INVALID SUB-FUNCTION
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
RET
;
;
;
@ -102,7 +105,10 @@ MD_CAP:
JR Z,MD_CAP0 ; UNIT 0
DEC A ; TRY UNIT 1
JR Z,MD_CAP1 ; UNIT 1
CALL PANIC ; PANIC ON INVALID UNIT
CALL SYSCHK ; INVALID UNIT
LD A,ERR_NOUNIT
OR A
RET
MD_CAP0:
LD A,(HCB + HCB_ROMBANKS) ; POINT TO ROM BANK COUNT
JR MD_CAP2

14
Source/HBIOS/ppide.asm

@ -470,7 +470,10 @@ PPIDE_FNTBL:
PPIDE_VERIFY:
PPIDE_FORMAT:
PPIDE_DEFMED:
CALL PANIC ; NOT IMPLEMENTED
CALL SYSCHK ; NOT IMPLEMENTED
LD A,ERR_NOTIMPL
OR A
RET
;
;
;
@ -529,7 +532,10 @@ PPIDE_IO3:
LD E,C ; SECTOR READ COUNT TO E
LD HL,(PPIDE_DSKBUF) ; CURRENT DMA TO HL
OR A ; SET FLAGS BASED ON RETURN CODE
RET ; AND RETURN, A HAS RETURN CODE
RET Z ; RETURN IF SUCCESS
LD A,ERR_IO ; SIGNAL IO ERROR
OR A ; SET FLAGS
RET ; AND DONE
;
;
;
@ -583,6 +589,8 @@ PPIDE_MEDIA2:
LD E,MID_HD ; ASSUME WE ARE OK
RET Z ; RETURN IF GOOD INIT
LD E,MID_NONE ; SIGNAL NO MEDIA
LD A,ERR_NOMEDIA ; NO MEDIA ERROR
OR A ; SET FLAGS
RET ; AND RETURN
;
;
@ -978,7 +986,7 @@ PPIDE_RESET:
; OLDER CF CARDS DO NOT SEEM TO SET THE
; REGISTERS ON RESET, SO HERE WE FAKE THINGS BY
; SETTING THEM AS A RESET WOULD
#IF (IDETRACE >= 3)
#IF (PPIDETRACE >= 3)
PRTS(" FAKE$")
#ENDIF
XOR A

17
Source/HBIOS/ppp.asm

@ -338,7 +338,10 @@ PPPCON_OST:
;
;
PPPCON_INITDEV:
CALL PANIC
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
RET
;
;
;
@ -499,7 +502,10 @@ PPPSD_FNTBL:
PPPSD_VERIFY:
PPPSD_FORMAT:
PPPSD_DEFMED:
CALL PANIC ; INVALID SUB-FUNCTION
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
RET
;
;
;
@ -566,8 +572,11 @@ PPPSD_IO2:
PPPSD_IO3:
LD E,C ; SECTOR READ COUNT TO E
LD HL,(PPPSD_DSKBUF) ; CURRENT BUF ADR TO HL
OR A ; SET FLAGS BASED ON RETURN CODE
RET Z ; RETURN IF SUCCESS
LD A,ERR_IO ; SIGNAL IO ERROR
OR A ; SET FLAGS
RET ; RETURN WITH A = STATUS
RET ; AND DONE
;
;
;
@ -697,6 +706,8 @@ PPPSD_MEDIA:
LD E,MID_HD ; ASSUME WE ARE OK
RET Z ; RETURN IF GOOD INIT
LD E,MID_NONE ; SIGNAL NO MEDA
LD A,ERR_NOMEDIA ; NO MEDIA ERROR
OR A ; SET FLAGS
RET ; AND RETURN
;
;

17
Source/HBIOS/prp.asm

@ -211,7 +211,10 @@ PRPCON_OST1:
;
;
PRPCON_INITDEV:
CALL PANIC
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
RET
;
;
;
@ -396,7 +399,10 @@ PRPSD_FNTBL:
PRPSD_VERIFY:
PRPSD_FORMAT:
PRPSD_DEFMED:
CALL PANIC ; INVALID SUB-FUNCTION
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
RET
;
;
;
@ -463,8 +469,11 @@ PRPSD_IO2:
PRPSD_IO3:
LD E,C ; SECTOR READ COUNT TO E
LD HL,(PRPSD_DSKBUF) ; CURRENT BUF ADR TO HL
OR A ; SET FLAGS BASED ON RETURN CODE
RET Z ; RETURN IF SUCCESS
LD A,ERR_IO ; SIGNAL IO ERROR
OR A ; SET FLAGS
RET ; RETURN WITH A = STATUS
RET ; AND DONE
;
;
;
@ -553,6 +562,8 @@ PRPSD_MEDIA:
LD E,MID_HD ; ASSUME WE ARE OK
RET Z ; RETURN IF GOOD INIT
LD E,MID_NONE ; SIGNAL NO MEDA
LD A,ERR_NOMEDIA ; NO MEDIA ERROR
OR A ; SET FLAGS
RET ; AND RETURN
;
;

13
Source/HBIOS/rf.asm

@ -138,7 +138,10 @@ RF_FNTBL:
RF_VERIFY:
RF_FORMAT:
RF_DEFMED:
CALL PANIC ; INVALID SUB-FUNCTION
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
RET
;
;
;
@ -219,7 +222,8 @@ RF_WRITE:
CALL RF_CHKWP ; WRITE PROTECTED?
JR Z,RF_RW ; IF 0, NOT WP, CONTINUE WITH GENERIC R/W ROUTINE
LD E,0 ; ZERO SECTORS WRITTEN
OR $FF ; SIGNAL ERROR
LD A,ERR_READONLY ; SIGNAL ERROR
OR A ; SET FLAGS
RET ; AND DONE
;
;
@ -255,7 +259,10 @@ RF_RW3:
LD E,C ; SECTOR READ COUNT TO E
LD HL,(RF_DSKBUF) ; CURRENT DMA TO HL
OR A ; SET FLAGS BASED ON RETURN CODE
RET ; AND RETURN, A HAS RETURN CODE
RET Z ; RETURN SUCCESS
LD A,ERR_IO ; SIGNAL IO ERROR
OR A ; SET FLAGS
RET ; AND DONE
;
; READ SECTOR
;

21
Source/HBIOS/sd.asm

@ -672,7 +672,10 @@ SD_FNTBL:
SD_VERIFY:
SD_FORMAT:
SD_DEFMED:
CALL PANIC ; INVALID SUB-FUNCTION
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
RET
;
;
;
@ -737,7 +740,10 @@ SD_IO3:
LD E,C ; SECTOR READ COUNT TO E
LD HL,(SD_DSKBUF) ; CURRENT DMA TO HL
OR A ; SET FLAGS BASED ON RETURN CODE
RET ; AND RETURN, A HAS RETURN CODE
RET Z ; RETURN IF SUCCESS
LD A,ERR_IO ; SIGNAL IO ERROR
OR A ; SET FLAGS
RET ; AND DONE
;
;
;
@ -802,6 +808,8 @@ SD_MEDIA2:
LD E,MID_HD ; ASSUME WE ARE OK
RET Z ; RETURN IF GOOD INIT
LD E,MID_NONE ; SIGNAL NO MEDIA
LD A,ERR_NOMEDIA ; NO MEDIA ERROR
OR A ; SET FLAGS
RET ; AND RETURN
;
;
@ -1054,10 +1062,14 @@ SD_INITCARD5:
; GET SIZE OF DEVICE IN BLOCKS
LD A,(IY+SD_TYPE) ; GET CARD TYPE
OR A ; SET FLAGS
CALL Z,PANIC ; PANIC IF CARD TYPE UNKNOWN
JR Z,SD_INITCARD5A ; HANDLE CARD TYPE UNKNOWN
CP SD_TYPESDHC ; COMPARE TO SDHC (V2)
JP NC,SD_INITCARD8 ; HANDLE SDHC (V2) OR BETTER
JR SD_INITCARD6 ; HANDLE MMC OR SDSC
;
SD_INITCARD5A:
CALL SYSCHK
JP SD_NOMEDIA
;
; CAPACITY CALCULATION FOR MMC OR SDSC (V1) CARDS:
; BYTES = (C_SIZE + 1) * 2^(2+C_SIZE_MULT+READ_BL_LEN) = (C_SIZE+1) << (2+C_SIZE_MULT+READ_BL_LEN)
@ -1165,6 +1177,9 @@ SD_SECTIO:
CP SD_CMD_WRITE_BLOCK ; WRITE_BLOCK?
JR Z,SD_SECTIO2 ; HANDLE WRITE
CALL PANIC ; PANIC ON ANYTHING ELSE
LD A,ERR_INTERNAL
OR A
RET
SD_SECTIO1:
; GET SECTOR DATA
CALL SD_GETDATA ; GET THE BLOCK

10
Source/HBIOS/simrtc.asm

@ -55,7 +55,10 @@ SIMRTC_DISPATCH:
JP Z,SIMRTC_SETALM ; SET ALARM
DEC A
JP Z,SIMRTC_DEVICE ; REPORT RTC DEVICE INFO
CALL PANIC
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
RET
;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
;
@ -65,7 +68,10 @@ SIMRTC_GETBLK:
SIMRTC_SETBLK:
SIMRTC_GETALM:
SIMRTC_SETALM:
CALL PANIC
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
RET
;
; RTC GET TIME
; A: RESULT (OUT), 0=OK, Z=OK, NZ=ERR

5
Source/HBIOS/sio.asm

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

4
Source/HBIOS/std.asm

@ -30,6 +30,10 @@ USEXIO .EQU 1 ; BASIC SERIAL DRIVER
USEMIO .EQU 2 ; MEMORY BUFFER DRIVER
WBWDEBUG .EQU USENONE
;
; DISPLAY SYSTEM CHECKS?
;
SYSCHKENABLE .EQU FALSE
;
; PRIMARY HARDWARE PLATFORMS
;
PLT_SBC .EQU 1 ; SBC ECB Z80 SBC

5
Source/HBIOS/tms.asm

@ -224,7 +224,10 @@ TMS_VDADEV:
RET
TMS_VDASCS:
CALL PANIC ; NOT IMPLEMENTED (YET)
CALL SYSCHK ; NOT IMPLEMENTED (YET)
LD A,ERR_NOTIMPL
OR A
RET
TMS_VDASCP:
#IF (CPUFAM == CPU_Z180)

20
Source/HBIOS/util.asm

@ -381,17 +381,30 @@ TSTPT:
POP DE
JR REGDMP ; DUMP REGISTERS AND RETURN
;
; PANIC: TRY TO DUMP MACHINE STATE
; SYSTEM CHECK: DUMP MACHINE STATE AND CONTINUE?
;
PANIC:
SYSCHK:
#IF (SYSCHKENABLE)
PUSH DE
LD DE,STR_PANIC
LD DE,STR_SYSCHK
CALL WRITESTR
POP DE
CALL XREGDMP ; DUMP REGISTERS
CALL CONTINUE ; CHECK W/ USER
#ENDIF
RET
;
; PANIC: DUMP MACHINE STATE AND HALT
;
PANIC:
PUSH DE
LD DE,STR_PANIC
CALL WRITESTR
POP DE
CALL XREGDMP ; DUMP REGISTERS
DI ; NO INTERRUPTS
HALT ; FULL STOP
;
;
;
REGDMP:
@ -504,6 +517,7 @@ CONTINUE3:
;
;
STR_PANIC .DB "\r\n\r\n>>> PANIC: $"
STR_SYSCHK .DB "\r\n\r\n>>> SYSCHK: $"
STR_TSTPT .TEXT "\r\n+++ TSTPT: $"
STR_CONTINUE .TEXT " Continue? (Y/N): $"
;STR_AF .DB " AF=$"

5
Source/HBIOS/vga.asm

@ -208,7 +208,10 @@ VGA_VDADEV:
RET
VGA_VDASCS:
CALL PANIC ; NOT IMPLEMENTED (YET)
CALL SYSCHK ; NOT IMPLEMENTED (YET)
LD A,ERR_NOTIMPL
OR A
RET
VGA_VDASCP:
CALL VGA_XY ; SET CURSOR POSITION

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1
#DEFINE RUP 1
#DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.10"
#DEFINE BIOSVER "3.1.1-pre.11"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1
rtp equ 0
biosver macro
db "3.1.1-pre.10"
db "3.1.1-pre.11"
endm

Loading…
Cancel
Save