Reintegrate wbw -> trunk

This commit is contained in:
wayne
2012-11-30 19:11:13 +00:00
parent a8e9e6cdca
commit c49301f737
18 changed files with 110 additions and 66 deletions

View File

@@ -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
; CONVERT BINARY VALUE IN A TO ASCII HEX CHARACTERS IN DE
;
HEXCHR .TEXT "0123456789ABCDEF"
;
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 "<EMPTY>$"
;
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