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 >
Wrap
Assembly Source File
|
1999-09-09
|
1KB
|
1 lines
* 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¢