-
Notifications
You must be signed in to change notification settings - Fork 103
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Notify HBIOS of speed changes (keeps HBIOS in sync with panel) - Correct display for HL, SP, and PC registers.
- Loading branch information
Showing
11 changed files
with
358 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
@echo off | ||
setlocal | ||
|
||
set TOOLS=../../../../Tools | ||
set PATH=%TOOLS%\tasm32;%PATH% | ||
set TASMTABS=%TOOLS%\tasm32 | ||
|
||
tasm -t80 -g3 -fFF testh8p.asm testh8p.com testh8p.lst || exit /b | ||
|
||
copy /Y testh8p.com ..\..\..\..\Binary\Apps\Test\ || exit /b |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
@echo off | ||
setlocal | ||
|
||
if exist *.com del *.com | ||
if exist *.lst del *.lst | ||
if exist *.bin del *.bin |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
OBJECTS = testh8p.com | ||
# DOCS = testh8p.doc | ||
DEST = ../../../../Binary/Apps/Test | ||
DOCDEST = ../../../../Binary/Apps/Test | ||
TOOLS =../../../../Tools | ||
|
||
USETASM=1 | ||
|
||
include $(TOOLS)/Makefile.inc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,238 @@ | ||
;=============================================================================== | ||
; H8 Panel Test | ||
;=============================================================================== | ||
; | ||
; AUTHOR: WAYNE WARTHEN ([email protected]) | ||
;_______________________________________________________________________________ | ||
; | ||
; | ||
; Trivial utility to test the register pair display functionality of the | ||
; Heath H8 Front Panel. | ||
; | ||
; Program will display a set of known register values on the console, | ||
; then go into an infinite loop. The H8 panel can then be checked to | ||
; see if the correct values are displayed. | ||
; | ||
; There is no way to exit this program. You must reset your system. | ||
; | ||
;=============================================================================== | ||
; Definitions | ||
;=============================================================================== | ||
; | ||
stksiz .equ $40 ; Working stack size | ||
; | ||
restart .equ $0000 ; CP/M restart vector | ||
bdos .equ $0005 ; BDOS invocation vector | ||
; | ||
regA .equ $11 | ||
regBC .equ $2233 | ||
regDE .equ $4455 | ||
regHL .equ $6677 | ||
; | ||
;=============================================================================== | ||
; Code Section | ||
;=============================================================================== | ||
; | ||
; | ||
.org $100 | ||
; | ||
; setup stack (save old value) | ||
ld (stksav),sp ; save stack | ||
ld sp,stack ; set new stack | ||
; | ||
ld de,str_prefix | ||
call prtstr | ||
; | ||
ld de,str_A | ||
ld hl,regA | ||
call prtreg | ||
ld de,str_BC | ||
ld hl,regBC | ||
call prtreg | ||
ld de,str_DE | ||
ld hl,regDE | ||
call prtreg | ||
ld de,str_HL | ||
ld hl,regHL | ||
call prtreg | ||
ld de,str_SP | ||
ld hl,regSP | ||
call prtreg | ||
ld de,str_PC | ||
ld hl,regPC | ||
call prtreg | ||
; | ||
ld a,regA | ||
ld bc,regBC | ||
ld de,regDE | ||
ld hl,regHL | ||
regPC: jr $ | ||
; | ||
; | ||
; | ||
prtreg: | ||
call prtstr ; print label | ||
ld a,h ; first byte | ||
call prtoctbyte ; print it | ||
ld a,'.' ; separator | ||
call prtchr ; print it | ||
ld a,l ; second byte | ||
call prtoctbyte ; print it | ||
ret | ||
; | ||
; | ||
; | ||
prtoctbyte: | ||
rlca ; 2 ms bits | ||
rlca | ||
push af | ||
and %00000011 ; isolate | ||
add a,'0' ; make char | ||
call prtchr ; show it | ||
pop af | ||
rlca ; next 3 bits | ||
rlca | ||
rlca | ||
push af | ||
and %00000111 ; isolate | ||
add a,'0' ; make char | ||
call prtchr ; show it | ||
pop af | ||
rlca ; next 3 bits | ||
rlca | ||
rlca | ||
push af | ||
and %00000111 ; isolate | ||
add a,'0' ; make char | ||
call prtchr ; show it | ||
pop af | ||
ret | ||
; | ||
; Print character in A without destroying any registers | ||
; | ||
prtchr: | ||
push bc ; save registers | ||
push de | ||
push hl | ||
ld e,a ; character to print in E | ||
ld c,$02 ; BDOS function to output a character | ||
call bdos ; do it | ||
pop hl ; restore registers | ||
pop de | ||
pop bc | ||
ret | ||
; | ||
; Print a zero terminated string at (DE) without destroying any registers | ||
; | ||
prtstr: | ||
push de | ||
; | ||
prtstr1: | ||
ld a,(de) ; get next char | ||
or a | ||
jr z,prtstr2 | ||
call prtchr | ||
inc de | ||
jr prtstr1 | ||
; | ||
prtstr2: | ||
pop de ; restore registers | ||
ret | ||
; | ||
; Start a new line | ||
; | ||
crlf2: | ||
call crlf ; two of them | ||
crlf: | ||
push af ; preserve AF | ||
ld a,13 ; <CR> | ||
call prtchr ; print it | ||
ld a,10 ; <LF> | ||
call prtchr ; print it | ||
pop af ; restore AF | ||
ret | ||
; | ||
; Print the value in A in hex without destroying any registers | ||
; | ||
prthex: | ||
push af ; save AF | ||
push de ; save DE | ||
call hexascii ; convert value in A to hex chars in DE | ||
ld a,d ; get the high order hex char | ||
call prtchr ; print it | ||
ld a,e ; get the low order hex char | ||
call prtchr ; print it | ||
pop de ; restore DE | ||
pop af ; restore AF | ||
ret ; done | ||
; | ||
; print the hex word value in hl | ||
; | ||
prthexword: | ||
push af | ||
ld a,h | ||
call prthex | ||
ld a,l | ||
call prthex | ||
pop af | ||
ret | ||
; | ||
; print the hex dword value in de:hl | ||
; | ||
prthex32: | ||
push bc | ||
push de | ||
pop bc | ||
call prthexword | ||
push hl | ||
pop bc | ||
call prthexword | ||
pop bc | ||
ret | ||
; | ||
; Convert binary value in A to ascii hex characters in DE | ||
; | ||
hexascii: | ||
ld d,a ; save A in D | ||
call hexconv ; convert low nibble of A to hex | ||
ld e,a ; save it in E | ||
ld a,d ; get original value back | ||
rlca ; rotate high order nibble to low bits | ||
rlca | ||
rlca | ||
rlca | ||
call hexconv ; convert nibble | ||
ld d,a ; save it in D | ||
ret ; done | ||
; | ||
; Convert low nibble of A to ascii hex | ||
; | ||
hexconv: | ||
and $0F ; low nibble only | ||
add a,$90 | ||
daa | ||
adc a,$40 | ||
daa | ||
ret | ||
; | ||
;=============================================================================== | ||
; Storage Section | ||
;=============================================================================== | ||
; | ||
rtcbuf .fill 6,$FF ; RTC data buffer | ||
; | ||
str_prefix .db "\r\n\r\nRegisters: ",0 | ||
; | ||
str_A .db "A=",0 | ||
str_BC .db ", BC=",0 | ||
str_DE .db ", DE=",0 | ||
str_HL .db ", HL=",0 | ||
str_SP .db ", SP=",0 | ||
str_PC .db ", PC=",0 | ||
; | ||
stksav .dw 0 ; stack pointer saved at start | ||
.fill stksiz,0 ; stack | ||
stack .equ $ ; stack top | ||
regSP: | ||
; | ||
.end |
Oops, something went wrong.