From 4cfa164f1f04298e623751585b85b4ac71e2cfa3 Mon Sep 17 00:00:00 2001 From: wayne Date: Fri, 30 Nov 2012 19:11:13 +0000 Subject: [PATCH] Reintegrate wbw -> trunk --- Source/config_n8_2312.asm | 2 + Source/config_n8_2511.asm | 2 + Source/config_n8vem.asm | 2 + Source/config_n8vem_cvdu.asm | 2 + Source/config_n8vem_dide.asm | 2 + Source/config_n8vem_diskio.asm | 2 + Source/config_n8vem_diskio3.asm | 2 + Source/config_n8vem_ppide.asm | 2 + Source/config_n8vem_ppisd.asm | 2 + Source/config_n8vem_propio.asm | 2 + Source/config_n8vem_vdu.asm | 2 + Source/config_simh.asm | 2 + Source/config_zeta.asm | 2 + Source/config_zeta_ppp.asm | 2 + Source/kbd.asm | 6 +- Source/ppk.asm | 4 +- Source/std.asm | 21 ++++-- Source/util.asm | 117 ++++++++++++++++---------------- 18 files changed, 110 insertions(+), 66 deletions(-) diff --git a/Source/config_n8_2312.asm b/Source/config_n8_2312.asm index 92fa62f9..55feac91 100644 --- a/Source/config_n8_2312.asm +++ b/Source/config_n8_2312.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU TRUE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU TRUE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU TRUE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_n8_2511.asm b/Source/config_n8_2511.asm index 965544dd..de8db8ba 100644 --- a/Source/config_n8_2511.asm +++ b/Source/config_n8_2511.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU TRUE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU TRUE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU TRUE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_n8vem.asm b/Source/config_n8vem.asm index 8c44ba1a..1dcbd06b 100644 --- a/Source/config_n8vem.asm +++ b/Source/config_n8vem.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_n8vem_cvdu.asm b/Source/config_n8vem_cvdu.asm index f51bf15e..c61d57f7 100644 --- a/Source/config_n8vem_cvdu.asm +++ b/Source/config_n8vem_cvdu.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU TRUE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU TRUE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU TRUE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_n8vem_dide.asm b/Source/config_n8vem_dide.asm index 75594496..35655287 100644 --- a/Source/config_n8vem_dide.asm +++ b/Source/config_n8vem_dide.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_n8vem_diskio.asm b/Source/config_n8vem_diskio.asm index 18720748..c1b602e8 100644 --- a/Source/config_n8vem_diskio.asm +++ b/Source/config_n8vem_diskio.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_n8vem_diskio3.asm b/Source/config_n8vem_diskio3.asm index 9e2aa938..1803e16d 100644 --- a/Source/config_n8vem_diskio3.asm +++ b/Source/config_n8vem_diskio3.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_n8vem_ppide.asm b/Source/config_n8vem_ppide.asm index 1cb4fecf..e3b2f53e 100644 --- a/Source/config_n8vem_ppide.asm +++ b/Source/config_n8vem_ppide.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_n8vem_ppisd.asm b/Source/config_n8vem_ppisd.asm index 94ece388..65c25441 100644 --- a/Source/config_n8vem_ppisd.asm +++ b/Source/config_n8vem_ppisd.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_n8vem_propio.asm b/Source/config_n8vem_propio.asm index 01c3ebed..a40c9738 100644 --- a/Source/config_n8vem_propio.asm +++ b/Source/config_n8vem_propio.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_n8vem_vdu.asm b/Source/config_n8vem_vdu.asm index 96829b89..a1b1858d 100644 --- a/Source/config_n8vem_vdu.asm +++ b/Source/config_n8vem_vdu.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU TRUE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU TRUE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU TRUE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_simh.asm b/Source/config_simh.asm index 6878660a..cc6ab010 100644 --- a/Source/config_simh.asm +++ b/Source/config_simh.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_zeta.asm b/Source/config_zeta.asm index a51f84b5..0580e1ef 100644 --- a/Source/config_zeta.asm +++ b/Source/config_zeta.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/config_zeta_ppp.asm b/Source/config_zeta_ppp.asm index 63ebc89d..ea464f24 100644 --- a/Source/config_zeta_ppp.asm +++ b/Source/config_zeta_ppp.asm @@ -79,7 +79,9 @@ HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) ; PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) ; TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT diff --git a/Source/kbd.asm b/Source/kbd.asm index 74086ad2..e11f7811 100644 --- a/Source/kbd.asm +++ b/Source/kbd.asm @@ -180,7 +180,7 @@ KBD_PUTCMD0: RET KBD_PUTCMD1: LD A,E ; RECOVER VALUE TO WRITE -#IFDEF KBD_DEBUG +#IF (KBDTRACE >= 2) CALL PC_SPACE CALL PC_GT CALL PC_GT @@ -205,7 +205,7 @@ KBD_PUTDATA0: RET KBD_PUTDATA1: LD A,E ; RECOVER VALUE TO WRITE -#IFDEF KBD_DEBUG +#IF (KBDTRACE >= 2) CALL PC_SPACE CALL PC_GT CALL PRTHEXBYTE @@ -229,7 +229,7 @@ KBD_GETDATA0: RET KBD_GETDATA1: IN A,(KBD_DATA) ; GET THE DATA VALUE -#IFDEF KBD_DEBUG +#IF (KBDTRACE >= 2) PUSH AF CALL PC_SPACE CALL PC_LT diff --git a/Source/ppk.asm b/Source/ppk.asm index 6fd6fa2f..8de2db5d 100644 --- a/Source/ppk.asm +++ b/Source/ppk.asm @@ -184,7 +184,7 @@ PPK_GETDATA2: CALL PPK_CLKLO ; SUPPRESS KEYBOARD XMIT LD A,E ; RETURN WITH RAW SCANCODE BYTE IN A -#IFDEF PPK_DEBUG +#IF (PPKTRACE >= 2) CALL PC_SPACE CALL PC_LT CALL PRTHEXBYTE @@ -200,7 +200,7 @@ PPK_PUTDATA: ; LD E,A ; STASH INCOMING BYTE VALUE IN E -#IFDEF PPK_DEBUG +#IF (PPKTRACE >= 2) CALL PC_SPACE CALL PC_GT CALL PRTHEXBYTE diff --git a/Source/std.asm b/Source/std.asm index 1c11e44b..65716ba5 100644 --- a/Source/std.asm +++ b/Source/std.asm @@ -33,6 +33,7 @@ BIOSSIZE .EQU 0100H ; DEPRECATED!!! PLT_N8VEM .EQU 1 ; N8VEM ECB Z80 SBC PLT_ZETA .EQU 2 ; ZETA Z80 SBC PLT_N8 .EQU 3 ; N8 (HOME COMPUTER) Z180 SBC +PLT_S2I .EQU 4 ; SCSI2IDE ; ; BOOT STYLE ; @@ -199,14 +200,23 @@ RTC .EQU 70H ; ADDRESS OF RTC LATCH AND INPUT PORT ; ; PPI 82C55 I/O IS DECODED TO PORT 60-67 ; -PPIA .EQU 60H ; PORT A -PPIB .EQU 61H ; PORT B -PPIC .EQU 62H ; PORT C -PPIX .EQU 63H ; PPI CONTROL PORT +#IF (PLATFORM == PLT_S2I) +PPIBASE .EQU 80H +#ELSE +PPIBASE .EQU 60H +#ENDIF +PPIA .EQU PPIBASE + 0 ; PORT A +PPIB .EQU PPIBASE + 1 ; PORT B +PPIC .EQU PPIBASE + 2 ; PORT C +PPIX .EQU PPIBASE + 3 ; PPI CONTROL PORT ; ; 16C550 SERIAL LINE UART ; +#IF (PLATFORM == PLT_S2I) +SIO_BASE .EQU 90H +#ELSE SIO_BASE .EQU 68H +#ENDIF SIO_RBR .EQU SIO_BASE + 0 ; DLAB=0: RCVR BUFFER REG (READ ONLY) SIO_THR .EQU SIO_BASE + 0 ; DLAB=0: XMIT HOLDING REG (WRITE ONLY) SIO_IER .EQU SIO_BASE + 1 ; DLAB=0: INT ENABLE REG @@ -488,6 +498,9 @@ CCPSIZ: .EQU 00800H #IF (PLATFORM == PLT_N8) #DEFINE PLATFORM_NAME "N8 Z180 SBC" #ENDIF +#IF (PLATFORM == PLT_S2I) + #DEFINE PLATFORM_NAME "SCSI2IDE" +#ENDIF ; #IF (DSKYENABLE) #DEFINE DSKYLBL ", DSKY" diff --git a/Source/util.asm b/Source/util.asm index 18f4d608..f1b7ba51 100644 --- a/Source/util.asm +++ b/Source/util.asm @@ -93,12 +93,11 @@ NEWLINE: PRTHEXBYTE: PUSH AF PUSH DE - LD DE,HEXSTRBUF - CALL HEXSTRBYTE - LD A,'$' - LD (DE),A - LD DE,HEXSTRBUF - CALL WRITESTR + CALL HEXASCII + LD A,D + CALL COUT + LD A,E + CALL COUT POP DE POP AF RET @@ -114,50 +113,30 @@ PRTHEXWORD: POP AF RET ; -; CONVERT VALUE IN A TO A 2 CHARACTER HEX STRING AT DE -; -HEXCHR .TEXT "0123456789ABCDEF" +; CONVERT BINARY VALUE IN A TO ASCII HEX CHARACTERS IN DE ; -HEXSTRBYTE: - PUSH BC - PUSH HL - PUSH AF - LD BC,0 - RRA - RRA - RRA - RRA - AND 0FH - LD C,A - LD HL,HEXCHR - ADD HL,BC - LD A,(HL) - LD (DE),A - INC DE - POP AF - PUSH AF - LD BC,0 - AND 0FH - LD C,A - LD HL,HEXCHR - ADD HL,BC - LD A,(HL) - LD (DE),A - INC DE - POP AF - POP HL - POP BC +HEXASCII: + LD D,A + CALL HEXCONV + LD E,A + LD A,D + RLCA + RLCA + RLCA + RLCA + CALL HEXCONV + LD D,A RET ; -; CONVERT VALUE IN BC TO A 4 CHARACTER HEX STRING AT DE +; CONVERT LOW NIBBLE OF A TO ASCII HEX ; -HEXSTRWORD: - LD A,B - CALL HEXSTRBYTE - LD A,C - CALL HEXSTRBYTE - RET - +HEXCONV: + AND 0FH ;LOW NIBBLE ONLY + ADD A,90H + DAA + ADC A,40H + DAA + RET ; ; PRINT A BYTE BUFFER IN HEX POINTED TO BY DE ; REGISTER A HAS SIZE OF BUFFER @@ -209,29 +188,34 @@ PANIC: CALL WRITESTR LD DE,STR_AF CALL WRITESTR - POP BC + POP BC ; AF CALL PRTHEXWORD LD DE,STR_BC CALL WRITESTR - POP BC + POP BC ; BC CALL PRTHEXWORD LD DE,STR_DE CALL WRITESTR - POP BC + POP BC ; DE CALL PRTHEXWORD LD DE,STR_HL CALL WRITESTR - POP BC + POP BC ; HL CALL PRTHEXWORD LD DE,STR_PC CALL WRITESTR - POP BC + POP BC ; PC CALL PRTHEXWORD LD DE,STR_SP CALL WRITESTR - LD (PANIC_SP),SP - LD BC,(PANIC_SP) + LD HL,0 + ADD HL,SP ; SP + LD B,H + LD C,L CALL PRTHEXWORD + + RST 38 + JP 0 ; ;================================================================================================== @@ -252,6 +236,14 @@ COUT: LD B,BF_CIOOUT CALL BIOS_DISPATCH #ENDIF +#IFDEF CIOMODE_HBIOS + #DEFINE CIOMODE_NONDOS + LD E,A + LD A,DEFCON + LD C,A + LD B,BF_CIOOUT + RST 08 +#ENDIF #IFDEF CIOMODE_CBIOS #DEFINE CIOMODE_NONDOS LD C,A @@ -282,6 +274,14 @@ CIN: CALL BIOS_DISPATCH LD A,E #ENDIF +#IFDEF CIOMODE_HBIOS + #DEFINE CIOMODE_NONDOS + LD A,DEFCON + LD C,A + LD B,BF_CIOIN + RST 08 + LD A,E +#ENDIF #IFDEF CIOMODE_CBIOS #DEFINE CIOMODE_NONDOS CALL CBIOS_CONIN @@ -308,6 +308,13 @@ CST: LD C,A CALL BIOS_DISPATCH #ENDIF +#IFDEF CIOMODE_HBIOS + #DEFINE CIOMODE_NONDOS + LD B,BF_CIOIST + LD A,DEFCON + LD C,A + RST 08 +#ENDIF #IFDEF CIOMODE_CBIOS #DEFINE CIOMODE_NONDOS CALL CBIOS_CONST @@ -631,12 +638,8 @@ DSKY_COFF ; STR_EMPTY .TEXT "$" ; -HEXSTRBUF .TEXT "XX$" -; KY_BUF .DB 0 DSKY_BUF: .FILL 8,0 DSKY_BUFLEN .EQU $ - DSKY_BUF DSKY_HEXBUF .FILL 4,0 DSKY_HEXBUFLEN .EQU $ - DSKY_HEXBUF -; -PANIC_SP .DW 0