diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 275b6797..b57c4e8a 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Architecture.pdf b/Doc/RomWBW Architecture.pdf index 468e8fde..4e93b2ea 100644 Binary files a/Doc/RomWBW Architecture.pdf and b/Doc/RomWBW Architecture.pdf differ diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index f5f33b31..4d92d17f 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Getting Started.pdf b/Doc/RomWBW Getting Started.pdf index 225e2dda..bd96edbd 100644 Binary files a/Doc/RomWBW Getting Started.pdf and b/Doc/RomWBW Getting Started.pdf differ diff --git a/ReadMe.md b/ReadMe.md index a37f7228..7680b0e8 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,7 +3,7 @@ ## Z80/Z180 System Software Version 3.1 Pre-release -Saturday 16 May 2020 +Tuesday 19 May 2020 Wayne Warthen @@ -706,6 +706,10 @@ most stable and you are less likely to encounter problems. ### Notes + - You can change media, but it must be done while at the OS command + prompt and you **must** warm start CP/M by pressing ctrl-c. This is + a CP/M 2.2 constraint and is well documented in the DRI manuals. + - The original versions of DDT, DDTZ, and ZSID used the RST 38 vector which conflicts with interrupt mode 1 use of this vector. The DDT, DDTZ, and ZSID applications in RomWBW have been modified to use RTS @@ -735,6 +739,10 @@ Manual.pdf”). of the ZSDOS paths and will fail in some scenarios (use `COPY` instead). + - Although ZSDOS can recognize a media change in some cases, it will + not always work. You should only change media at a command prompt + and be sure to warm start the OS with a ctrl-c. + ## NZCOM Automatic Z-System NZCOM is a much further refined version of Z-System (ZCPR 3.4). NZCOM @@ -775,10 +783,16 @@ tracks. `CPMLDR.SYS` chain loads `CPM3.SYS`. used to read the current date/time for file stamping, etc. You can use the `RTC` app to set the RTC clock. - - The `COPYSYS` command described in the DRI CP/M 3 documentatin is + - The `COPYSYS` command described in the DRI CP/M 3 documentation is not provided with RomWBW. The RomWBW `SYSCOPY` command is used instead. + - Although CP/M 3 is generally able to run CP/M 2.2 programs, this is + not universally true. This is especially true of the utility + programs included with the operating system. For example, the + `SUBMIT` program of CP/M 3 is completely different from the `SUBMIT` + program of CP/M 2.2. + ## Simeon Cran’s ZPM3 ZPM3 is an interesting combination of the features of both CP/M 3 and @@ -792,8 +806,9 @@ tracks of the disk. - `ZPMLDR` is included with ZPM3, but it is not working correctly. - The ZPM operating system is contained in the file called CPM3.SYS - which is confusing, but it is the author’s intended way of using - ZPM3. + which is confusing, but this is as intended by the ZPM3 + distribution. I believe it was done this way to make it easier for + users to transition from CP/M 3 to ZPM3. ## FreeRTOS diff --git a/ReadMe.txt b/ReadMe.txt index 81a3de1e..d7c946d6 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -3,7 +3,7 @@ RomWBW Z80/Z180 System Software Version 3.1 Pre-release -Saturday 16 May 2020 +Tuesday 19 May 2020 Wayne Warthen wwarthen@gmail.com @@ -737,6 +737,10 @@ most stable and you are less likely to encounter problems. Notes +- You can change media, but it must be done while at the OS command + prompt and you must warm start CP/M by pressing ctrl-c. This is a + CP/M 2.2 constraint and is well documented in the DRI manuals. + - The original versions of DDT, DDTZ, and ZSID used the RST 38 vector which conflicts with interrupt mode 1 use of this vector. The DDT, DDTZ, and ZSID applications in RomWBW have been modified to use RTS @@ -764,6 +768,10 @@ Notes of the ZSDOS paths and will fail in some scenarios (use COPY instead). +- Although ZSDOS can recognize a media change in some cases, it will + not always work. You should only change media at a command prompt + and be sure to warm start the OS with a ctrl-c. + NZCOM Automatic Z-System NZCOM is a much further refined version of Z-System (ZCPR 3.4). NZCOM @@ -804,9 +812,15 @@ Notes to read the current date/time for file stamping, etc. You can use the RTC app to set the RTC clock. -- The COPYSYS command described in the DRI CP/M 3 documentatin is not +- The COPYSYS command described in the DRI CP/M 3 documentation is not provided with RomWBW. The RomWBW SYSCOPY command is used instead. +- Although CP/M 3 is generally able to run CP/M 2.2 programs, this is + not universally true. This is especially true of the utility + programs included with the operating system. For example, the SUBMIT + program of CP/M 3 is completely different from the SUBMIT program of + CP/M 2.2. + Simeon Cran’s ZPM3 ZPM3 is an interesting combination of the features of both CP/M 3 and @@ -820,8 +834,9 @@ Notes - ZPMLDR is included with ZPM3, but it is not working correctly. - The ZPM operating system is contained in the file called CPM3.SYS - which is confusing, but it is the author’s intended way of using - ZPM3. + which is confusing, but this is as intended by the ZPM3 + distribution. I believe it was done this way to make it easier for + users to transition from CP/M 3 to ZPM3. FreeRTOS diff --git a/Source/CBIOS/cbios.asm b/Source/CBIOS/cbios.asm index 47018547..6d2c1a9b 100644 --- a/Source/CBIOS/cbios.asm +++ b/Source/CBIOS/cbios.asm @@ -2103,6 +2103,7 @@ INIT: ; SOFT RESET HBIOS LD B,BF_SYSRESET ; HB FUNC: RESET + LD C,BF_SYSRES_INT ; WARM START RST 08 ; DO IT ; CREATE A TEMP COPY OF THE HBIOS CONFIG BLOCK (HCB) diff --git a/Source/CPM3/biosldr.z80 b/Source/CPM3/biosldr.z80 index beeeb878..ed478b2d 100644 --- a/Source/CPM3/biosldr.z80 +++ b/Source/CPM3/biosldr.z80 @@ -59,7 +59,7 @@ boot: ; this routine to avoid issues. ld (stksav),sp ld sp,stack - + ; Do the real work call boot0 @@ -718,10 +718,20 @@ medid ds 1 ; media id lba ds 4 ; current lba sps ds 2 ; sectors per slice -csvbuf ds 128 ; length (CSV) = ((DRM+1)/4) -alvbuf ds 512 ; length (ALV) = ((DSM+1)/4) -dirbuf ds 512 ; sector buffer -dtabuf ds 512 ; sector buffer +;csvbuf ds 128 ; length (CSV) = ((DRM+1)/4) +;alvbuf ds 512 ; length (ALV) = ((DSM+1)/4) +;dirbuf ds 512 ; sector buffer +;dtabuf ds 512 ; sector buffer + +; Trying to save space. The loader must fit underneath +; the start of BNKBDOS3 and we have a big BNKBDOS because +; of all the disk allocations. Putting these buffers +; in upper memory actually helps quite a bit. + +csvbuf equ 8000h +alvbuf equ csvbuf + 128 +dirbuf equ alvbuf + 512 +dtabuf equ dirbuf + 512 ds 64 stack equ $ diff --git a/Source/Doc/Applications.md b/Source/Doc/Applications.md index 236b02e2..463ed760 100644 --- a/Source/Doc/Applications.md +++ b/Source/Doc/Applications.md @@ -360,7 +360,7 @@ message. ## Etymology -The `SYSCOPY` command is an original product and the source code is +The `MODE` command is an original product and the source code is provided in the RomWBW distribution. `\clearpage`{=latex} diff --git a/Source/Doc/Architecture.md b/Source/Doc/Architecture.md index cb6b9807..6260d673 100644 --- a/Source/Doc/Architecture.md +++ b/Source/Doc/Architecture.md @@ -428,7 +428,7 @@ _Code_ | _Meaning_ -7 | media not present -8 | hardware not present -9 | I/O error --10 | write request to read-only media +-10 | write request to read-only media -11 | device timeout -12 | invalid configuration @@ -1565,7 +1565,7 @@ the value of the subfucntion. See subfunctions below. #### SYSRESET Subfunction 0x00 -- Internal HBIOS Reset (RESINT) | _Entry Parameters_ -| BC: 0xF000 +| BC: 0xFD00 | _Returned Values_ | A: Status (0=OK, else error) @@ -1576,7 +1576,7 @@ current OS. Does not reinitialize physical devices. #### SYSRESET Subfunction 0x01 -- Warm Start System (RESWARM) | _Entry Parameters_ -| BC: 0xF001 +| BC: 0xFD01 | _Returned Values_ | @@ -1587,7 +1587,7 @@ reinitialize physical devices. #### SYSRESET Subfunction 0x02 -- Cold Start System (RESCOLD) | _Entry Parameters_ -| BC: 0xF002 +| BC: 0xFD02 | _Returned Values_ | diff --git a/Source/Doc/GettingStarted.md b/Source/Doc/GettingStarted.md index f63ef2e3..2e6820da 100644 --- a/Source/Doc/GettingStarted.md +++ b/Source/Doc/GettingStarted.md @@ -755,6 +755,11 @@ likely to encounter problems. ### Notes +- You can change media, but it must be done while at the OS +command prompt and you **must** warm start CP/M by pressing +ctrl-c. This is a CP/M 2.2 constraint and is well documented +in the DRI manuals. + - The original versions of DDT, DDTZ, and ZSID used the RST 38 vector which conflicts with interrupt mode 1 use of this vector. The DDT, DDTZ, and ZSID applications in RomWBW have been modified @@ -783,6 +788,10 @@ Manual.pdf"). may not work as expected. The best example is PIP which is not aware of the ZSDOS paths and will fail in some scenarios (use `COPY` instead). +- Although ZSDOS can recognize a media change in some cases, it will not +always work. You should only change media at a command prompt and be +sure to warm start the OS with a ctrl-c. + ## NZCOM Automatic Z-System NZCOM is a much further refined version of Z-System (ZCPR 3.4). NZCOM @@ -823,9 +832,14 @@ system tracks. `CPMLDR.SYS` chain loads `CPM3.SYS`. used to read the current date/time for file stamping, etc. You can use the `RTC` app to set the RTC clock. -- The `COPYSYS` command described in the DRI CP/M 3 documentatin is +- The `COPYSYS` command described in the DRI CP/M 3 documentation is not provided with RomWBW. The RomWBW `SYSCOPY` command is used instead. +- Although CP/M 3 is generally able to run CP/M 2.2 programs, this is +not universally true. This is especially true of the utility programs +included with the operating system. For example, the `SUBMIT` program +of CP/M 3 is completely different from the `SUBMIT` program of CP/M 2.2. + ## Simeon Cran's ZPM3 ZPM3 is an interesting combination of the features of both CP/M 3 and @@ -840,7 +854,9 @@ tracks of the disk. - `ZPMLDR` is included with ZPM3, but it is not working correctly. - The ZPM operating system is contained in the file called CPM3.SYS -which is confusing, but it is the author's intended way of using ZPM3. +which is confusing, but this is as intended by the ZPM3 distribution. +I believe it was done this way to make it easier for users to transition +from CP/M 3 to ZPM3. ## FreeRTOS diff --git a/Source/HBIOS/dbgmon.asm b/Source/HBIOS/dbgmon.asm index 24a9f26a..69016865 100644 --- a/Source/HBIOS/dbgmon.asm +++ b/Source/HBIOS/dbgmon.asm @@ -1400,7 +1400,7 @@ DISPLAYBUF: .FILL 8,0 #ELSE ; DSKY_ENTRY: - CALL PANIC ; NO RETURN + JP EXIT ; #ENDIF ; diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index a172f71d..0e6d78c4 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -215,6 +215,8 @@ CB_SERDEV .DB 0 ; PRIMARY SERIAL UNIT IS UNIT #0 BY FIAT CB_CRTDEV .DB $FF ; PRIMARY CRT UNIT, $FF UNTIL AFTER HBIOS INIT CB_CONDEV .DB $FF ; CONSOLE UNIT, $FF UNTIL AFTER HBIOS INIT ; +CB_DIAGLVL .DB DIAGLVL ; ROMWBW HBIOS DIAGNOSTIC LEVEL +; ; MEMORY MANAGEMENT VARIABLES START AT $20 ; .FILL (HCB + $20 - $),0 @@ -2950,13 +2952,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_FUNCERR ; HANDLE INVALID UNIT INDEX + JR NC,HB_UNITERR ; 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_UNITERR ; HANDLE FN NUM OUT OF RANGE ERROR + JR NC,HB_FUNCERR ; HANDLE FN NUM OUT OF RANGE ERROR ; BUMP IY TO ACTUAL XXX_TBL ENTRY FOR INCOMING UNIT INDEX PUSH BC ; SAVE BC @@ -3548,6 +3550,69 @@ HB_RDSEC: ; #ENDIF ; +; SYSTEM CHECK: DUMP MACHINE STATE AND CONTINUE? +; +SYSCHK: + ; CHECK DIAG LEVEL TO SEE IF WE SHOULD DISPLAY + PUSH AF ; PRESERVE INCOMING AF VALUE + LD A,(CB_DIAGLVL) ; GET DIAGNOSTIC LEVEL + CP DL_ERROR ; >= ERROR LEVEL + JR C,SYSCHK1 ; IF NOT, GO HOME + POP AF ; RESTORE INCOMING AF VALUE +; + ; DISPLAY SYSCHK MESSAGE + PUSH DE ; PRESERVE DE VALUE + LD DE,STR_SYSCHK ; POINT TO PREFIX STRING + CALL WRITESTR ; PRINT IT + POP DE ; RESTORE DE VALUE + CALL XREGDMP ; DUMP REGISTERS + JR CONTINUE ; CHECK W/ USER +; +SYSCHK1: + ; RETURN IF MESSAGING BYPASSED BY DIAG LEVEL + POP AF + RET +; +; PANIC: DUMP MACHINE STATE AND HALT +; +PANIC: + PUSH DE + LD DE,STR_PANIC + CALL WRITESTR + POP DE + CALL XREGDMP ; DUMP REGISTERS + JR SYSHALT ; FULL STOP +; +; +; +CONTINUE: + PUSH AF +CONTINUE1: + PUSH DE + LD DE,STR_CONTINUE + CALL WRITESTR + POP DE + CALL CIN + RES 5,A ; FORCE UPPERCASE (IMPERFECTLY) + CALL COUT ; ECHO + CP 'Y' + JR Z,CONTINUE3 + CP 'N' + JR Z,SYSHALT + JR CONTINUE1 +CONTINUE3: + CALL NEWLINE + POP AF + RET +; +; +; +SYSHALT: + LD DE,STR_HALT + CALL WRITESTR + DI + HALT +; ; PRINT VALUE OF HL AS THOUSANDTHS, IE. 0.000 ; PRTD3M: @@ -4289,6 +4354,10 @@ STR_SWITCH .DB "*** Activating CRT Console ***$" STR_BADINT .DB "\r\n*** BAD INT ***\r\n$" STR_LOWBAT .DB "\r\n\r\n+++ LOW BATTERY +++$" ; +STR_PANIC .TEXT "\r\n>>> PANIC: $" +STR_SYSCHK .TEXT "\r\n>>> SYSCHK: $" +STR_CONTINUE .TEXT "\r\nContinue (Y/N)? $" +; #IF (DSKYENABLE) ; 'H','B','I','O',' ',' ',' ',' ' MSG_HBVER .DB $BE,$FF,$8A,$FB,$80,$80,$80,$80 ; "HBIO " #ENDIF diff --git a/Source/HBIOS/hbios.inc b/Source/HBIOS/hbios.inc index 491f2422..3c131c6f 100644 --- a/Source/HBIOS/hbios.inc +++ b/Source/HBIOS/hbios.inc @@ -121,7 +121,7 @@ CIO_CONSOLE .EQU $80 ; CIO UNIT NUM FOR CUR CON ERR_NONE .EQU 0 ; SUCCESS ; ERR_UNDEF .EQU -1 ; UNDEFINED ERROR -ERR_NOTIMPL .EQU -2 ; FUNC NOT IMPLEMENTED +ERR_NOTIMPL .EQU -2 ; FUNCTION NOT IMPLEMENTED ERR_NOFUNC .EQU -3 ; INVALID FUNCTION ERR_NOUNIT .EQU -4 ; INVALID UNIT NUMBER ERR_NOMEM .EQU -5 ; OUT OF MEMORY @@ -129,7 +129,7 @@ ERR_RANGE .EQU -6 ; PARAMETER OUT OF RANGE ERR_NOMEDIA .EQU -7 ; MEDIA NOT PRESENT ERR_NOHW .EQU -8 ; HARDWARE NOT PRESENT ERR_IO .EQU -9 ; I/O ERROR -ERR_READONLY .EQU -10 ; WRITE REQ TO READ-ONLY MEDIA +ERR_READONLY .EQU -10 ; WRITE REQUEST TO READ-ONLY MEDIA ERR_TIMEOUT .EQU -11 ; DEVICE TIMEOUT ERR_BADCFG .EQU -12 ; INVALID CONFIGURATION ERR_INTERNAL .EQU -13 ; INTERNAL ERROR @@ -220,8 +220,7 @@ HCB_BOOTBID .EQU $0F ; BANK ID OF ROM PAGE BOOTED (BYTE) HCB_SERDEV .EQU $10 ; PRIMARY SERIAL DEVICE/UNIT (BYTE) HCB_CRTDEV .EQU $11 ; CRT DISPLAY DEVICE/UNIT (BYTE) HCB_CONDEV .EQU $12 ; ACTIVE CONSOLE DEVICE/UNIT (BYTE) -;HCB_CUREMU .EQU $13 ; CURRENT VDA TERMINAL EMULATION (DEPRECATED) -;HCB_CURVDA .EQU $14 ; CURRENT VDA TARGET FOR EMULATION (DEPRECATED) +HCB_DIAGLVL .EQU $13 ; HBIOS DIAGNOSTIC LEVEL (BYTE) ; HCB_HEAP .EQU $20 ; DWORD ADDRESS OF START OF HEAP HCB_HEAPTOP .EQU $22 ; DWORD ADDRESS OF TOP OF HEAP diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index f17704ee..9e0bf162 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -285,6 +285,8 @@ runcmd: #if (BIOS == BIOS_WBW) cp 'I' ; C = set console interface jp z,setcon ; if so, do it + cp 'V' ; V = diagnostic verbosity + jp z,setdl ; is so, do it #endif ; ; Attempt ROM application launch @@ -473,6 +475,44 @@ setcon: ; #endif ; +; Set RomWBW HBIOS Diagnostic Level +; +#if (BIOS == BIOS_WBW) +; +setdl: + ; On entry DE is expected to be pointing to start + ; of command + call findws ; skip command + call skipws ; and skip it + or a ; set flags to check for null + jr z,showdl ; no parm, just display + call isnum ; do we have a number? + jp nz,err_invcmd ; if not, invalid + call getnum ; parse number into A + jp c,err_invcmd ; handle overflow error +; + ; Set diagnostic level + ld b,BF_SYSPOKE ; HBIOS func: POKE + ld d,BID_BIOS ; BIOS bank + ld e,a ; diag level value + ld hl,HCB_LOC + HCB_DIAGLVL ; offset into HCB + rst 08 ; do it + ; Fall thru to display new value +; +showdl: + ; Display current diagnostic level + ld hl,str_diaglvl ; diag level tag + call pstr ; print it + ld b,BF_SYSPEEK ; HBIOS func: PEEK + ld d,BID_BIOS ; BIOS bank + ld hl,HCB_LOC + HCB_DIAGLVL ; offset into HCB + rst 08 ; do it, E := level value + ld a,e ; put in accum + call prtdecb ; print it + ret ; done +; +#endif +; ; Restart system ; reboot: @@ -1079,6 +1119,8 @@ rdln_cr: ; findws: ld a,(de) ; get next char + or a ; check for eol + ret z ; done if so cp ' ' ; blank? ret z ; nope, done inc de ; bump buffer pointer @@ -1089,6 +1131,8 @@ findws: ; skipws: ld a,(de) ; get next char + or a ; check for eol + ret z ; done if so cp ' ' ; blank? ret nz ; nope, done inc de ; bump buffer pointer @@ -1740,6 +1784,7 @@ devunk .db "UNK",0 err_invcmd: ld hl,str_err_invcmd jr err +; err_nodisk: ld hl,str_err_nodisk jr err @@ -1833,6 +1878,7 @@ str_binfo3 .db "-0x",0 str_binfo4 .db ", entry @ 0x",0 str_binfo5 .db "]",0 str_ldsec .db ", Sector 0x",0 +str_diaglvl .db "\r\n\r\nHBIOS Diagnostic Level: ",0 ; str_help .db "\r\n" .db "\r\n L - List ROM Applications" @@ -1840,6 +1886,7 @@ str_help .db "\r\n" .db "\r\n R - Reboot System" #if (BIOS == BIOS_WBW) .db "\r\n I - Set Console Interface" + .db "\r\n V - Set HBIOS Diagnostic Verbosity" #endif .db "\r\n [.] - Boot Disk Unit/Slice" .db 0 diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index a6ee8022..b7459ce3 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -30,9 +30,15 @@ USEXIO .EQU 1 ; BASIC SERIAL DRIVER USEMIO .EQU 2 ; MEMORY BUFFER DRIVER WBWDEBUG .EQU USENONE ; -; DISPLAY SYSTEM CHECKS? +; DIAGNOSTIC LEVEL OPTIONS ; -SYSCHKENABLE .EQU FALSE +DL_NONE .EQU 0 ; HBIOS DISPLAY NO MESSAGES +DL_CRITICAL .EQU 4 ; HBIOS DISPLAY CRITICAL ERROR MESSAGES +DL_ERROR .EQU 8 ; HBIOS DISPLAYS ALL ERROR MESSAGES +DL_WARNING .EQU 12 ; HBIOS DISPLAYS WARNING MESSAGES +DL_INFO .EQU 16 ; HBIOS DISPLAYS INFORMATIONAL MESSAGES +DL_DETAIL .EQU 20 ; HBIOS DISPLAYS DETAILED DIAGNOSTIC MESSAGES +DL_VERBOSE .EQU 24 ; HBIOS DISPLAYS ANYTHING IT KNOWS HOW TO ; ; PRIMARY HARDWARE PLATFORMS ; @@ -62,6 +68,11 @@ BIOS_NONE .EQU 0 ; NO BIOS TYPE DEFINED BIOS_WBW .EQU 1 ; ROMWBW HBIOS BIOS_UNA .EQU 2 ; UNA UBIOS ; +; DEFAULT HBIOS DIAGNOSTIC LEVEL +; WILL ULTIMATELY BE MOVED TO CONFIG FILE +; +DIAGLVL .EQU DL_CRITICAL +; ; MEMORY MANAGERS ; MM_NONE .EQU 0 diff --git a/Source/HBIOS/util.asm b/Source/HBIOS/util.asm index 7a8868dd..d4396495 100644 --- a/Source/HBIOS/util.asm +++ b/Source/HBIOS/util.asm @@ -381,30 +381,6 @@ TSTPT: POP DE JR REGDMP ; DUMP REGISTERS AND RETURN ; -; SYSTEM CHECK: DUMP MACHINE STATE AND CONTINUE? -; -SYSCHK: -#IF (SYSCHKENABLE) - PUSH DE - 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: @@ -491,35 +467,10 @@ REGDMP_SP .DW 0 ; ; ; -CONTINUE: - PUSH AF - PUSH DE - LD DE,STR_CONTINUE - CALL WRITESTR - POP DE -CONTINUE1: - CALL CIN - CP 'Y' - JR Z,CONTINUE3 - CP 'y' - JR Z,CONTINUE3 - CP 'N' - JR Z,CONTINUE2 - CP 'n' - JR Z,CONTINUE2 - JR CONTINUE1 -CONTINUE2: - HALT -CONTINUE3: - POP AF - RET -; ; ; -STR_PANIC .DB "\r\n\r\n>>> PANIC: $" -STR_SYSCHK .DB "\r\n\r\n>>> SYSCHK: $" +STR_HALT .TEXT "\r\n\r\n*** System Halted ***$" STR_TSTPT .TEXT "\r\n+++ TSTPT: $" -STR_CONTINUE .TEXT " Continue? (Y/N): $" ;STR_AF .DB " AF=$" ;STR_BC .DB " BC=$" ;STR_DE .DB " DE=$" diff --git a/Source/ver.inc b/Source/ver.inc index 74eae58b..f8b3b588 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,4 +2,4 @@ #DEFINE RMN 1 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.1.1-pre.11" +#DEFINE BIOSVER "3.1.1-pre.12" diff --git a/Source/ver.lib b/Source/ver.lib index f0a72730..ffca8b84 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 1 rup equ 1 rtp equ 0 biosver macro - db "3.1.1-pre.11" + db "3.1.1-pre.12" endm