home *** CD-ROM | disk | FTP | other *** search
- *--------------------------------------
- *árOUTINEáTOáCONVERTáasciiáSTRINGáAT
- *áascstráTOáAáTWOáBYTEáHEXáNUMBERáAT
- *ánum,ánum+1.ááuSEávaráSTATEMENTáTOáSET
- *á]1áTOá'F'áORá'f'áACCORDINGáTOáWHICH
- *áasciiáSETáISáDESIRED.áátHEáROUTINE
- *áIGNORESáEXTRAáLEADINGáDIGITS,áSOáTHAT
- *á'abcde'áWILLáCONVERTáTOá$bcde,áETC.
- *--------------------------------------
-
- aschex lda #0
- sta num+1 ;iNITánum
- tax ;áANDáSTRINGáPOINTER
- beq :hx ;aLWAYSáTAKEN
- ]loop ora num
- :hx sta num
- lda ascstr,x ;gETáDIGIT
- cmp #'0' ;vALIDáHEXáDIGIT?
- blt :gothex ;eXITáIFáNOT
- eor #'0'
- cmp #10 ;nUMERICáDIGIT?
- blt :ix ;gOáONáIFáSO
- adc #-]1!'0'-2
- cmp #$fa ;vALIDáHEXáDIGIT?
- blt :gothex ;eXITáIFáNOT
- eor #$f0 ;cONVERTáTOáNIBBLE
- :ix inx
- ldy #4 ;iNDEXáFORáNIBBLEáSHIFT
- :shift asl num
- rol num+1
- dey
- bne :shift
- beq ]loop ;aLWAYSáTAKEN
- :gothex rts ;xáPOINTSáTOáCHRáAFTERáHEXáSTRING
-