43 lines
1.3 KiB
Text
43 lines
1.3 KiB
Text
org 100h
|
|
lxi h,200h ; Zero out a page to keep nugget flags
|
|
xra a
|
|
znugs: mov m,a
|
|
inr l
|
|
jnz znugs
|
|
lxi b,101 ; B = 6 stepper, C = 101 (limit)
|
|
loopa: mov d,b ; D = 9 stepper
|
|
loopb: mov l,d ; L = 20 stepper
|
|
loopc: inr m ; Mark nugget
|
|
mvi a,20 ; 20 step
|
|
add l
|
|
mov l,a
|
|
cmp c
|
|
jc loopc
|
|
mvi a,9 ; 9 step
|
|
add d
|
|
mov d,a
|
|
cmp c
|
|
jc loopb
|
|
mvi a,6 ; 6 step
|
|
add b
|
|
mov b,a
|
|
cmp c
|
|
jc loopa
|
|
mov l,c ; Find largest number not seen
|
|
scan: dcr l
|
|
dcr m
|
|
jp scan
|
|
mov a,l
|
|
mvi b,'0'-1 ; B = high digit
|
|
digit: inr b
|
|
sui 10
|
|
jnc digit
|
|
adi '0'+10 ; A = low digit
|
|
lxi h,digits+1
|
|
mov m,a ; Store digits
|
|
dcx h
|
|
mov m,b
|
|
xchg
|
|
mvi c,9 ; CP/M print string
|
|
jmp 5
|
|
digits: db 0,0,'$' ; Placeholder for output
|