
#pragma ASM

    $REGUSE _fast_ascii_hexadecimal_to_binary( A, R7 )

#pragma ENDASM

char fast_ascii_hexadecimal_to_binary( char character )
{
    character = character;                  // Supress UNUSED warning.

    #pragma ASM

        MOV     A,R7                        ;
                                            ;
fast_ascii_hexadecimal_to_binary:           ;
                                            ;
        MOV     C,Acc.6                     ;C set for 'A'-'F' or 'a'-'f'
        ANL     A,#0x0F                     ;
        JNC     ?fahtb_skip                 ;
        ADD     A,#0x09                     ;
                                            ;
?fahtb_skip:                                ;
                                            ;
        MOV     R7,A                        ;
                                            ;
    #pragma ENDASM

    return( character );
}
