        org $8000

ZahlSP1 equ $8500	; Speicherplatz der zu convertierenden Hex-Zahl
ZahlSP2 equ $8501	; Speicherplatz "Einer-Zahl"
ZahlSP3 equ $8502	; Speicherplatz "Zehner-Zahl"
ZahlSP4 equ $8503	; Speicherplatz "Hunderter-Zahl"

        push b          ;Register retten
        push d
        push h

        lda ZahlSP1	; Zahl laden und gleich auf 0 abfragen
        cpi $00
        jnz Count1
        mvi D,$00
	mvi E,$00
	mvi E,$00
        jmp END

Count1  lda ZahlSP1	; Zahl erneut laden
        mov b,a
Count2  mvi c,$0A
Count3  inr D

        dcr c		; 0-9 Zähler
        mov a,c
        cpi $00
        jz Zehn

        dcr b		
        mov a,b
        cpi $00
        jz End
        jmp Count3

Zehn    inr E		; 10-90 Zähler
        mvi D,$00

        mov a,e
        cpi $0A
        jz Hund

        dcr b
        mov a,b
        cpi $00
        jz End
        jmp Count2

Hund    inr H		; 100-200 Zähler
        mvi E,$00

        dcr b
        mov a,b
        cpi $00
        jz End
        jmp Count2

End     mov a,D		; Convertierten "Einer-Zahlenwert" laden und
        ori $40		; als ASCII kodieren
        sta ZahlSP2

        mov A,E		; Convertierten "Zehner-Zahlenwert" laden und
        ori $40		; als ASCII kodieren
        sta ZahlSP3

        mov A,H		; Convertierten "Hunderter-Zahlenwert" laden und
        ori $40		; als ASCII kodieren
        sta ZahlSP4

        push h		; Register wieder herstellen
        push d
        push b
        jmp $0000
