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 >
Text File  |  2022-10-26  |  2KB  |  70 lines

  1.          *= $1000
  2. ;---------------------------------------
  3. ;Diese Funktion wandelt ein
  4. ;'8-bit unsigned byte' (vorzeichenlose
  5. ;8-Bit-Zahl im Bereich von 0 bis 255)
  6. ;die im x-Register uebergeben wird
  7. ;in einen Dezimalstring, der an der
  8. ;Adresse angelegt wird, auf die der
  9. ;pointer ($fc/$fd) weisst ($fc=lo-byte,
  10. ;$fd=hi-byte).
  11. ;Die Funktion wird mit "jsr dez" auf-
  12. ;gerufen.
  13. ;               (w) 1992 Benjamin Bommer
  14. ;---------------------------------------
  15. dez      stx dl1     ;byte puffern
  16.  
  17.          ldy #2      ;bereich mit
  18.          lda #$30    ;"000" loeschen
  19. delp     sta ($fc),y
  20.          dey
  21.          bpl delp
  22.  
  23.          lda #<dtab  ;pointer auf
  24.          sta $fe     ;tabelle in ($fe)
  25.          lda #>dtab
  26.          sta $ff
  27.  
  28. dn0      ldx dl1     ;oberstes bit ge-
  29.          bpl dn1     ;setzt ?
  30.  
  31.          ldy #2      ;wenn ja, addiere
  32.          clc         ;wert aus tabelle
  33. dr0      lda ($fc),y
  34.          adc ($fe),y
  35.          cmp #$3a
  36.          bcc dr1
  37.          sbc #10
  38. dr1      sta ($fc),y
  39.          dey
  40.          bpl dr0
  41.  
  42. dn1      lda $fe    ;tabellen-pointer
  43.          clc        ;hochsetzen
  44.          adc #3
  45.          sta $fe
  46.          bcc dn4
  47.          inc $ff
  48.  
  49. dn4      asl dl1    ;das byte wird um
  50.                     ;ein bit nach links
  51.                     ;geshiftet.
  52.  
  53.          bne dn0    ;noch ein bit ge-
  54.                     ;setzt ? Wenn ja,
  55.                     ;weiter, sonst:
  56.  
  57.          rts        ;ruecksprung
  58.  
  59. dtab     .byte 1,2,8     ;2^7
  60.          .byte 0,6,4     ;.
  61.          .byte 0,3,2     ;.
  62.          .byte 0,1,6     ;.
  63.          .byte 0,0,8     ;
  64.          .byte 0,0,4     ;2^2
  65.          .byte 0,0,2     ;2^1
  66.          .byte 0,0,1     ;2^0
  67.  
  68. dl1      .byte 0
  69.  
  70.