Browse Source

Merge pull request #211 from danwerner21/dw-071121-dbgmon-work

Dw 071121 dbgmon work
pull/212/head
Wayne Warthen 5 years ago
committed by GitHub
parent
commit
995d0a8c1c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 36
      Source/HBIOS/Config/MBC_ddw.asm
  2. BIN
      Source/HBIOS/MBC_ddw.upd
  3. 82
      Source/HBIOS/dbgmon.asm
  4. 142
      Source/HBIOS/dskyng.asm
  5. 2
      Source/HBIOS/hbios.asm
  6. 21
      Source/HBIOS/romldr.asm
  7. BIN
      Source/ZRC/hd1024_zrc_prefix.dat
  8. 8197
      Source/ZZR/RCZ280_nat_zzr.hex
  9. BIN
      Source/ZZR/hd1024_zzr_prefix.dat

36
Source/HBIOS/Config/MBC_ddw.asm

@ -0,0 +1,36 @@
;
;==================================================================================================
; MBC CONFIGURATION
;==================================================================================================
;
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS.
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY
; YOUR FILE IN THE BUILD PROCESS.
;
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM.
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON
; SETTINGS.
;
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE,
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS!
;
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
; DIRECTORIES ABOVE THIS ONE).
;
#DEFINE PLATFORM_NAME "Multi Board Computer"
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
;
#include "cfg_mbc.asm"
;
BATCOND .SET FALSE
;
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
;
DSKYENABLE .SET TRUE ; ENABLES DSKY
DSKYMODE .SET DSKYMODE_NG ; DSKY VERTSION: DSKYMODE_[V1|NG]
DSKYOSC .SET 100000

BIN
Source/HBIOS/MBC_ddw.upd

Binary file not shown.

82
Source/HBIOS/dbgmon.asm

@ -371,7 +371,7 @@ DUMPMEM:
CALL WORDPARM ; GET END ADDRESS
JP C,ERR ; HANDLE ERRORS
PUSH DE ; SAVE IT
POP DE ; DE := END ADDRESS
POP HL ; HL := START ADDRESS
@ -488,7 +488,7 @@ FILLMEM:
CALL NONBLANK ; LOOK FOR EXTRANEOUS PARAMETERS
CP 0 ; TEST FOR TERMINATING NULL
JP NZ,ERR ; ERROR IF NOT TERMINATING NULL
POP DE ; END ADR TO DE
POP HL ; START ADR TO HL
DEC HL ; PRE-DECREMENT
@ -981,6 +981,11 @@ DSKY_ENTRY:
;_____________________________________________________________________________
;
CALL DSKY_INIT ; INIT 8255
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_BEEP
#ENDIF
;
;__COMMAND_PARSE______________________________________________________________
;
@ -991,8 +996,17 @@ FRONTPANELLOOP:
LD HL,CPUUP ; SET POINTER TO CPU UP MSG
CALL DSKY_SHOWSEG ; DISPLAY UNENCODED
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_HIGHLIGHTCMDKEYS
CALL DSKY_L1ON
#ENDIF
CALL KB_GET ; GET KEY FROM KB
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_L1OFF
#ENDIF
FRONTPANELLOOP1:
CP KY_PR ; IS PORT READ?
JP Z,DOPORTREAD ; YES, JUMP
@ -1027,6 +1041,11 @@ DOBOOT:
;_____________________________________________________________________________
;
DOPORTREAD:
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_HIGHLIGHTNUMKEYS
#ENDIF
CALL GETPORT ; GET PORT INTO A
PORTREADLOOP:
LD C,A ; STORE PORT IN "C"
@ -1049,6 +1068,11 @@ PORTREADGETKEY:
;_____________________________________________________________________________
;
DOPORTWRITE:
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_HIGHLIGHTNUMKEYS
#ENDIF
CALL GETPORT ; GET PORT INTO A
PORTWRITELOOP:
LD L,A ; SAVE PORT NUM
@ -1070,7 +1094,17 @@ PORTWRITEGETKEY:
;_____________________________________________________________________________
;
DOGO:
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_HIGHLIGHTNUMKEYS
#ENDIF
CALL GETADDR ; GET ADDRESS INTO HL
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_HIGHLIGHTKEYSOFF
#ENDIF
PUSH HL ; EXEC ADR TO TOS
LD HL,GOTO ; POINT TO "GO" MSG
CALL INITBUF
@ -1091,6 +1125,11 @@ DOGO:
;_____________________________________________________________________________
;
DOEXAMINE:
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_HIGHLIGHTNUMKEYS
#ENDIF
CALL GETADDR ; GET ADDRESS INTO HL
EXAMINELOOP:
LD DE,DISPLAYBUF+0
@ -1106,6 +1145,11 @@ EXAMINELOOP:
LD A,(HL) ; GET VALUE FROM ADDRESS IN HL
CALL PUTVALUE
CALL ENCDISPLAY ; DISPLAY BUFFER ON DISPLAYS
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_HIGHLIGHTFWDKEYS
#ENDIF
EXAMINEGETKEY:
CALL KB_GET ; GET KEY FROM KB
CP KY_EN ; [EN] PRESSED, INC ADDRESS AND LOOP
@ -1123,6 +1167,11 @@ EXAMINEFW:
;_____________________________________________________________________________
;
DODEPOSIT:
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_HIGHLIGHTNUMKEYS
#ENDIF
CALL GETADDR ; GET ADDRESS INTO HL
DEPOSITLOOP:
LD DE,DISPLAYBUF+0
@ -1139,6 +1188,11 @@ DEPOSITLOOP:
LD DE,DISPLAYBUF+6 ; DISPLAY WRITTEN MEM VALUE
CALL PUTVALUE ; ... WITHOUT DP'S
CALL ENCDISPLAY ; DISPLAY BUFFER CONTENTS
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_HIGHLIGHTFWDKEYS
#ENDIF
DEPOSITGETKEY:
CALL KB_GET ; GET KEY FROM KB
CP KY_EN ; [EN] PRESSED, INC ADDRESS AND LOOP
@ -1424,7 +1478,7 @@ SEGDECODE:
;
; POS $00 $01 $02 $03 $04 $05 $06 $07
; GLYPH '0' '1' '2' '3' '4' '5' '6' '7'
.DB $3F, $06, $58, $4F, $66, $6D, $7D, $07
.DB $3F, $06, $5B, $4F, $66, $6D, $7D, $07
;
; POS $08 $09 $0A $0B $0C $0D $0E $0F
; GLYPH '8' '9' 'A' 'B' 'C' 'D' 'E' 'F'
@ -1434,6 +1488,28 @@ SEGDECODE:
; GLYPH ' ' '-' '.' 'P' 'o' 'r' 't' 'A' 'd' 'r' 'G'
.DB $00, $40, $00, $73, $5C, $50, $78, $77, $5E, $50, $3D
;
DSKY_HIGHLIGHTFWDKEYS:
CALL DSKY_PUTLED
.DB $00,$00,$00,$30,$00,$00,$00,$00
RET
DSKY_HIGHLIGHTCMDKEYS:
CALL DSKY_PUTLED
.DB $20,$00,$20,$3F,$00,$00,$00,$00
RET
DSKY_HIGHLIGHTNUMKEYS:
CALL DSKY_PUTLED
.DB $1F,$3F,$1F,$30,$00,$00,$00,$00
RET
DSKY_HIGHLIGHTKEYSOFF:
CALL DSKY_PUTLED
.DB $00,$00,$00,$00,$00,$00,$00,$00
RET
#ENDIF
;
DISPLAYBUF: .FILL 8,0

142
Source/HBIOS/dskyng.asm

@ -24,14 +24,14 @@
;
; LED BIT MAP (BIT VALUES)
;
; $08 $09 $0A $0B $0C
; --- --- --- --- ---
; $08 $09 $0A $0B $0C $0D $0E $0F
; --- --- --- --- --- --- --- ---
; 01 01 01 01 01
; 02 02 02 02 02
; 04 04 04 04 04
; 08 08 08 08 08
; 10 10 10 10 10
; 20 20 20 20 10
; 20 20 20 20 20 L1 L2 BUZZ
;
PPIA .EQU DSKYPPIBASE + 0 ; PORT A
PPIB .EQU DSKYPPIBASE + 1 ; PORT B
@ -87,8 +87,6 @@ DSKY_REINIT:
; SET CLOCK SCALER TO 20
LD A,DSKY_CMD_CLK | DSKY_PRESCL
CALL DSKY_CMD
; LD A,%00001000 ; dan
; CALL DSKY_CMD
; FALL THRU
;
DSKY_RESET:
@ -470,6 +468,140 @@ DSKY_PUTENCSTR1:
POP BC
DJNZ DSKY_PUTENCSTR1
RET
;
; This function is intended to update the LEDs. It expects 8 bytes following the call, and
; updates the entire matrix.
;
; EXAMPLE:
; CALL DSKY_PUTLED
; .DB $00,$00,$00,$00,$00,$00,$00,$00
;
;
DSKY_PUTLED:
EX (SP),HL
PUSH AF
PUSH BC
LD C,8
DSKY_PUTLED_1:
LD A,(HL)
PUSH BC
CALL DSKY_PUTBYTE
POP BC
INC C
INC HL
LD A,C
CP $10
JP NZ,DSKY_PUTLED_1
POP BC
POP AF
EX (SP),HL
RET
;
; This function is intended to beep the speaker on the DSKY
;
;
DSKY_BEEP:
PUSH AF
PUSH BC
LD C,$0F
CALL DSKY_GETBYTE
or $20
LD C,$0F
CALL DSKY_PUTBYTE
;;; timer . . .
PUSH HL
ld hl,$8FFF
DSKY_BEEP1:
dec hl
ld a,H
cp 0
jp nz,DSKY_BEEP1
pop hl
LD C,$0F
CALL DSKY_GETBYTE
and $DF
LD C,$0F
CALL DSKY_PUTBYTE
POP BC
POP AF
RET
;
; This function is intended to turn on DSKY L1
;
DSKY_L1ON:
PUSH AF
PUSH BC
LD C,$0D
CALL DSKY_GETBYTE
or $20
LD C,$0D
CALL DSKY_PUTBYTE
POP BC
POP AF
RET
;
; This function is intended to turn on DSKY L2
;
DSKY_L2ON:
PUSH AF
PUSH BC
LD C,$0E
CALL DSKY_GETBYTE
and $DF
LD C,$0E
CALL DSKY_PUTBYTE
POP BC
POP AF
RET
;
; This function is intended to turn off DSKY L1
;
DSKY_L1OFF:
PUSH AF
PUSH BC
LD C,$0D
CALL DSKY_GETBYTE
and $DF
LD C,$0D
CALL DSKY_PUTBYTE
POP BC
POP AF
RET
;
; This function is intended to turn off DSKY L2
;
DSKY_L2OFF:
PUSH AF
PUSH BC
LD C,$0E
CALL DSKY_GETBYTE
or $20
LD C,$0E
CALL DSKY_PUTBYTE
POP BC
POP AF
RET
;
; SETUP PPI FOR WRITING: PUT PPI PORT A IN OUTPUT MODE
; AVOID REWRTING PPIX IF ALREADY IN OUTPUT MODE

2
Source/HBIOS/hbios.asm

@ -522,7 +522,7 @@ HBX_RAMX:
EI ; *** DO NOT USE HB_EI HERE ***
LD A,(HBX_MMA) ; RESTORE INCOMING ACCUM
#ENDIF
;
;
RET
;
HBX_MMA .DB 0 ; TEMPORARY STORAGE FOR REG A

21
Source/HBIOS/romldr.asm

@ -209,6 +209,14 @@ prompt:
call DSKY_RESET ; clear DSKY
ld hl,msg_sel ; boot select msg
call DSKY_SHOWSEG ; show on DSKY
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_PUTLED
.DB $3f,$3f,$3f,$3f,$00,$00,$00,$00
call DSKY_BEEP
call DSKY_L2ON
#ENDIF
#endif
;
wtkey:
@ -361,6 +369,13 @@ dskycmd:
cp $FF ; check for error
ret z ; abort if so
;
#IF (DSKYMODE == DSKYMODE_NG)
CALL DSKY_PUTLED
.DB $00,$00,$00,$00,$00,$00,$00,$00
call DSKY_L2OFF
#ENDIF
; Attempt built-in commands
cp KY_BO ; reboot system
jp z,reboot ; if so, do it
@ -491,10 +506,10 @@ iseven: dec a ; 15=19200
add a,16 ; 20=115200
setspd: ld (newspeed),a ; save validated baud rate
;
ld hl,str_chspeed ; notify user
ld hl,str_chspeed ; notify user
call pstr ; to change
call cin ; speed
;
;
; Get the current settings for chosen console
ld b,BF_CIOQUERY ; BIOS serial device query
ld a,(newcon) ; get device unit num
@ -503,7 +518,7 @@ setspd: ld (newspeed),a ; save validated baud rate
jp nz,err_invcmd ; abort on error
;
ld a,d ; mask off current
and $11100000 ; baud rate
and $11100000 ; baud rate
ld hl,newspeed ; and load in new
or (hl) ; baud rate
ld d,a

BIN
Source/ZRC/hd1024_zrc_prefix.dat

Binary file not shown.

8197
Source/ZZR/RCZ280_nat_zzr.hex

File diff suppressed because it is too large

BIN
Source/ZZR/hd1024_zzr_prefix.dat

Binary file not shown.
Loading…
Cancel
Save