home *** CD-ROM | disk | FTP | other *** search
/ Syzygy Magazine 7 / Syzygy_Magazine_7_1999___pl_Disk_2_of_2_Side_B.atr / lekcja.arc / ASC2LONG.ASM next >
Assembly Source File  |  1999-09-09  |  1KB  |  1 lines

  1. * ASCII string ==> 24-bit word¢* In:  AX  - string pointer¢* Out: Z=1 - non numeric¢*      AXY - 24-bit word¢¢a2long equ *¢¢_ptr equ $15¢_lng equ $32¢_ax  equ $35¢¢     sta _ptr¢     stx _ptr+1¢     ldy #0¢     sty _lng¢     sty _lng+1¢     sty _lng+2¢¢     lda (_ptr),y¢     cmp #'$'¢     bne _dec¢¢_hex iny           ; HEX¢     lda (_ptr),y¢     jsr _cdc¢     bcc _skp¢     cmp #'A'¢     bcc _ext¢     cmp #'F'+1¢     bcs _ext¢     sbc #6¢_skp and #$f¢¢     ldx #4¢_m16 asl _lng¢     rol _lng+1¢     rol _lng+2¢     dex¢     bne _m16¢     ora _lng¢     sta _lng¢     jmp _hex¢¢_dec lda (_ptr),y  ; DEC¢     jsr _cdc¢     bcs _fin¢     and #$f¢     pha¢¢     asl _lng¢     rol _lng+1¢     rol _lng+2¢¢     lda _lng+1¢     sta _ax¢     lda _lng+2¢     sta _ax+1¢¢     lda _lng¢     asl @¢     rol _ax¢     rol _ax+1¢     asl @¢     rol _ax¢     rol _ax+1¢¢     ldx #$100-3¢_add adc _lng+3,x¢     sta _lng+3,x¢     lda _ax+3,x¢     inx¢     bne _add¢¢     pla¢     adc _lng¢     sta _lng¢     bcc _nxt¢     inc _lng+1¢     bne _nxt¢     inc _lng+2¢_nxt iny¢     bne _dec¢¢_ext dey¢_fin tya¢     php¢     lda _lng¢     ldx _lng+1¢     ldy _lng+2¢     plp¢     rts¢¢_cdc cmp #'0'      ; check dec digit¢     bcc _sec¢     cmp #'9'+1¢     dta b($24)¢_sec sec¢     rts¢