home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / enterprs / c128 / util / mer128.arc / ASCHEX < prev    next >
Encoding:
Text File  |  1993-04-15  |  847 b   |  35 lines

  1. *--------------------------------------
  2. *árOUTINEáTOáCONVERTáasciiáSTRINGáAT
  3. *áascstráTOáAáTWOáBYTEáHEXáNUMBERáAT
  4. *ánum,ánum+1.ááuSEávaráSTATEMENTáTOáSET
  5. *á]1áTOá'F'áORá'f'áACCORDINGáTOáWHICH
  6. *áasciiáSETáISáDESIRED.áátHEáROUTINE
  7. *áIGNORESáEXTRAáLEADINGáDIGITS,áSOáTHAT
  8. *á'abcde'áWILLáCONVERTáTOá$bcde,áETC.
  9. *--------------------------------------
  10.  
  11. aschex lda #0
  12.  sta num+1 ;iNITánum
  13.  tax ;áANDáSTRINGáPOINTER
  14.  beq :hx ;aLWAYSáTAKEN
  15. ]loop ora num
  16. :hx sta num
  17.  lda ascstr,x ;gETáDIGIT
  18.  cmp #'0' ;vALIDáHEXáDIGIT?
  19.  blt :gothex ;eXITáIFáNOT
  20.  eor #'0'
  21.  cmp #10 ;nUMERICáDIGIT?
  22.  blt :ix ;gOáONáIFáSO
  23.  adc #-]1!'0'-2
  24.  cmp #$fa ;vALIDáHEXáDIGIT?
  25.  blt :gothex ;eXITáIFáNOT
  26.  eor #$f0 ;cONVERTáTOáNIBBLE
  27. :ix inx
  28.  ldy #4 ;iNDEXáFORáNIBBLEáSHIFT
  29. :shift asl num
  30.  rol num+1
  31.  dey
  32.  bne :shift
  33.  beq ]loop ;aLWAYSáTAKEN
  34. :gothex rts ;xáPOINTSáTOáCHRáAFTERáHEXáSTRING
  35.