
; ********************************************
;DN ASC2HEX
;D  Converteer ASCII teken (0..9 A..F) naar Hex nibble
;D  C=0 OK, C=1 bij ongeldige invoer
; ********************************************
ASC2HEX:  ADD   A,#208   ; '0' - 'F' wordt 00h - 16h
          JNC   ASC2HEX5 ; < '0' is fout
          ADD   A,#246   ; '0' - '9' wordt F6h - FFh
          JC    ASC2HEX2 ; > 3Ah (9+1) verder controleren
          ADD   A,#10    ; F6h - FFh wordt 00h - 09h
ASC2HEX1: CLR   C        ; OK
          RET

ASC2HEX2: ADD   A,#249   ; 'A' - 'F' wordt 00h - 06h
          JNC   ASC2HEX5 ; 3Ah - 40h is fout
          ADD   A,#250   ; 'A' - 'F' wordt FAh - FFh
          JC    ASC2HEX5 ; > 'F' is fout
          ADD   A,#16    ; 'A' - 'F' wordt 0Ah - 0Fh
          JMP   ASC2HEX1 ; en dat is OK

ASC2HEX5: SETB  C        ; Fout C=1
          RET

