Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
68
Task/Show-ASCII-table/8080-Assembly/show-ascii-table.8080
Normal file
68
Task/Show-ASCII-table/8080-Assembly/show-ascii-table.8080
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
org 100h
|
||||
mvi a,32 ; Start with space
|
||||
mvi d,16 ; 16 lines
|
||||
dochar: mov c,a ; Print number
|
||||
call putnum
|
||||
mov a,c
|
||||
lxi h,spc ; Is it space?
|
||||
cpi 32
|
||||
jz print
|
||||
lxi h,del
|
||||
cpi 127 ; Is it del?
|
||||
jz print
|
||||
lxi h,chr ; Character
|
||||
mov m,a
|
||||
print: call puts
|
||||
adi 16 ; Next column
|
||||
jp dochar ; Done with this line?
|
||||
lxi h,nl
|
||||
call puts
|
||||
sui 95 ; Next line
|
||||
dcr d
|
||||
jnz dochar
|
||||
ret
|
||||
;;; Print number in A. C, D preserved.
|
||||
putnum: lxi h,num ; Set number string to spaces
|
||||
push h
|
||||
mvi b,' '
|
||||
mov m,b
|
||||
inx h
|
||||
mov m,b
|
||||
inx h
|
||||
mov m,b
|
||||
dgts: mvi b,-1
|
||||
divmod: sui 10 ; B = A/10, A = (A mod 10)-10
|
||||
inr b
|
||||
jnc divmod
|
||||
adi 58 ; Make digit
|
||||
mov m,a ; Store digit
|
||||
dcx h
|
||||
mov a,b ; Next digit
|
||||
ana a
|
||||
jnz dgts
|
||||
pop h ; Print number
|
||||
;;; Print zero-terminated (...ish) string
|
||||
puts: mov e,m
|
||||
call putch
|
||||
inx h
|
||||
dcr e
|
||||
jp puts
|
||||
ret
|
||||
;;; Output character in E using CP/M call,
|
||||
;;; preserving registers
|
||||
putch: push psw
|
||||
push b
|
||||
push d
|
||||
push h
|
||||
mvi c,2
|
||||
call 5
|
||||
pop h
|
||||
pop d
|
||||
pop b
|
||||
pop psw
|
||||
ret
|
||||
nl: db 13,10,0 ; Newline
|
||||
num: db ' : ',0 ; Placeholder for number string
|
||||
spc: db 'Spc ',0 ; Space
|
||||
del: db 'Del ',0 ; Del
|
||||
chr: db '* ',0 ; Placeholder for character
|
||||
Loading…
Add table
Add a link
Reference in a new issue