mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
108 lines
2.3 KiB
NASM
108 lines
2.3 KiB
NASM
; dumpmac.asm 2/1/2012 dwg - dump macro, declaration and implementation
|
||
|
||
maclib portab
|
||
maclib globals
|
||
maclib hardware
|
||
maclib z80
|
||
maclib cpmbdos
|
||
maclib printers
|
||
|
||
cseg
|
||
|
||
; e=char on entry
|
||
public x$pr$vis
|
||
x$pr$vis:
|
||
enter
|
||
lxi h,x$visibool
|
||
mvi d,0
|
||
dad d
|
||
mov a,m
|
||
cpi 0
|
||
jz do$dot
|
||
mvi c,2
|
||
call BDOS
|
||
jmp x$pr$fini
|
||
do$dot:
|
||
conout '.'
|
||
x$pr$fini:
|
||
leave
|
||
ret
|
||
|
||
public x$dump
|
||
x$dump: shld x$dump$tmp
|
||
call pr$h$word
|
||
conout ':'
|
||
conout ' '
|
||
mvi b,16
|
||
x$d$lp1:
|
||
mov a,m
|
||
inx h
|
||
xchg
|
||
mov l,a
|
||
call pr$h$byte
|
||
conout ' '
|
||
xchg
|
||
dcr b
|
||
jnz x$d$lp1
|
||
conout ' '
|
||
conout ' '
|
||
mvi b,16
|
||
lhld x$dump$tmp
|
||
x$d$lp2:
|
||
mov a,m
|
||
inx h
|
||
mov e,a
|
||
call x$pr$vis
|
||
dcr b
|
||
jnz x$d$lp2
|
||
conout CR
|
||
conout LF
|
||
lhld x$dump$tmp
|
||
ret
|
||
|
||
|
||
; display a number of lines of sixteen bytes in hex with leading address
|
||
; and ascii
|
||
public x$dump$multi
|
||
x$dump$multi:
|
||
push h ; save display address in case x$dump changes it
|
||
call x$dump ; call actual dump routine for 16 bytes
|
||
pop h ; restore display address
|
||
lxi d,16 ; get ready to increment it by 16 bytes
|
||
dad d ; here we go, HL = new load address
|
||
dcr c ; decrement line counter
|
||
jnz x$dump$multi ; do more as necessary
|
||
ret
|
||
|
||
|
||
dseg
|
||
|
||
x$dump$tmp ds 2
|
||
|
||
public x$visibool
|
||
x$visibool:
|
||
; 0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||
; - - - - - - - - - - - - - - - -
|
||
vb$00 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
vb$10 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
vb$20 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; "#$%&'()*+,-./
|
||
vb$30 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;0123456789:;<=>?
|
||
vb$40 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;@ABCDEFGHIJKLMNO
|
||
vb$50 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;PQRSTUVWXYZ[\]^_
|
||
vb$60 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;`abcdefghijklmno
|
||
vb$70 db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 ;pqrstuvwxyz{|}~
|
||
vb$80 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
vb$90 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
vb$a0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
vb$b0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
vb$c0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
vb$d0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
vb$e0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
vb$f0 db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
|
||
; eof - dumpmac.asm
|
||
|
||
|
||
|
||
|
||
|