; SUBROUTINE TO CONVERT FROM HEX TO ASCII. ; ; ENTRY: (A) = 8-BIT VALUE TO BE CONVERTED. ; CALL HEX2A. ; (RETURN). ; EXIT: (HL) = TWO ASCII VALUES, HIGH AND LOW. ; (A) = DESTROYED. ; (C) = DESTROYED. ; .ORG 0000h LD SP, 0080h ; ADDED FOR TESTING PURPOSES. LD A, 6Ch ; ADDED FOR TESTING PURPOSES. CALL HEX2A ; ADDED FOR TESTING PURPOSES. HALT ; ADDED FOR TESTING PURPOSES. HEX2A: LD C, A ; SAVE TWO HEX DIGITS. SRL A ; SHIFT RIGHT LOGICAL TO ALIGN HIGH DIGIT. SRL A SRL A SRL A CALL TEST ; CONVERT TO ASCII. LD H, A ; SAVE FOR RETURN. LD A, C ; RESTORE ORIGINAL. AND 0Fh ; GET LOW DIGIT BY MASKING OUT HIGH DIGIT. CALL TEST ; CONVERT TO ASCII LD L, A ; SAVE FOR RETURN. RET ; RETURN. TEST: ADD A, 30h ; CONVERSION FACTOR. CP 3Ah ; TEST FOR 0 TO 9. JP M, TEST1 ; GO IF 0 TO 9. ADD A, 7 ; CORRECT FOR A TO F. TEST1: RET ; RETURN. .END