49 lines
616 B
Z80 Assembly
49 lines
616 B
Z80 Assembly
org &1000
|
|
PrintChar equ &BB5A
|
|
ld hl,1 ;START AT ONE
|
|
main:
|
|
push hl
|
|
;PRINT HIGH BYTE
|
|
ld a,h
|
|
call ShowHex
|
|
;THEN PRINT LOW BYTE
|
|
ld a,l
|
|
call ShowHex
|
|
|
|
;NEW LINE
|
|
ld a,13
|
|
call PrintChar
|
|
ld a,10
|
|
call PrintChar
|
|
|
|
pop hl
|
|
;NEXT HL
|
|
inc hl
|
|
;COMPARE HL TO ZERO
|
|
ld a,h
|
|
or l
|
|
jr nz,main ;IF NOT ZERO, REPEAT
|
|
ret ;RETURN TO BASIC
|
|
|
|
|
|
ShowHex:
|
|
push af
|
|
and %11110000
|
|
rrca
|
|
rrca
|
|
rrca
|
|
rrca
|
|
call PrintHexChar
|
|
pop af
|
|
and %00001111
|
|
;call PrintHexChar
|
|
;execution flows into it naturally.
|
|
PrintHexChar:
|
|
;this converts hexadecimal to ascii.
|
|
or a ;Clear Carry Flag
|
|
daa
|
|
add a,&F0
|
|
adc a,&40
|
|
jp PrintChar
|
|
;ret
|