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