home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er 1993 August
/
64er_Magazin_93-08_1993_Markt__Technik_de_Side_B.d64
/
dez-8bit.asc
< prev
next >
Wrap
Text File
|
2022-10-26
|
2KB
|
70 lines
*= $1000
;---------------------------------------
;Diese Funktion wandelt ein
;'8-bit unsigned byte' (vorzeichenlose
;8-Bit-Zahl im Bereich von 0 bis 255)
;die im x-Register uebergeben wird
;in einen Dezimalstring, der an der
;Adresse angelegt wird, auf die der
;pointer ($fc/$fd) weisst ($fc=lo-byte,
;$fd=hi-byte).
;Die Funktion wird mit "jsr dez" auf-
;gerufen.
; (w) 1992 Benjamin Bommer
;---------------------------------------
dez stx dl1 ;byte puffern
ldy #2 ;bereich mit
lda #$30 ;"000" loeschen
delp sta ($fc),y
dey
bpl delp
lda #<dtab ;pointer auf
sta $fe ;tabelle in ($fe)
lda #>dtab
sta $ff
dn0 ldx dl1 ;oberstes bit ge-
bpl dn1 ;setzt ?
ldy #2 ;wenn ja, addiere
clc ;wert aus tabelle
dr0 lda ($fc),y
adc ($fe),y
cmp #$3a
bcc dr1
sbc #10
dr1 sta ($fc),y
dey
bpl dr0
dn1 lda $fe ;tabellen-pointer
clc ;hochsetzen
adc #3
sta $fe
bcc dn4
inc $ff
dn4 asl dl1 ;das byte wird um
;ein bit nach links
;geshiftet.
bne dn0 ;noch ein bit ge-
;setzt ? Wenn ja,
;weiter, sonst:
rts ;ruecksprung
dtab .byte 1,2,8 ;2^7
.byte 0,6,4 ;.
.byte 0,3,2 ;.
.byte 0,1,6 ;.
.byte 0,0,8 ;
.byte 0,0,4 ;2^2
.byte 0,0,2 ;2^1
.byte 0,0,1 ;2^0
dl1 .byte 0