;
; SYSLIB Module Name: SMA2HC
; Author: Richard Conn
; SYSLIB Version Number: 2.0
; Module Version Number: 1.0
; Module Entry Points:
; MA2HC
; Module External References:
; EN
;
;
; MA2HC --
; STORE REG A AS 2 HEXADECIMAL CHARACTERS IN MEMORY PTED TO BY DE;
; ON INPUT, A=VALUE AND HL=PTR TO 2-BYTE BUFFER
; ON RETURN, DE PTS TO NEXT BYTE AFTER BUFFER
;
EXT EN
MA2HC::
XCHG ; PTR IN HL INSTEAD
PUSH PSW ; SAVE A
PUSH PSW
CALL EN ; EXCHANGE NYBBLES
CALL PAHC ; PRINT LOW-ORDER NYBBLE AS HEX
POP PSW ; GET A
CALL PAHC ; PRINT LOW-ORDER NYBBLE AS HEX
POP PSW ; RESTORE A
XCHG ; POINTER BACK IN DE
RET
PAHC: ANI 0FH ; MASK FOR LOW NYBBLE
CPI 10 ; LETTER OR DIGIT?
JC PADIG ; DIGIT IF CARRY
ADI 'A'-10 ; CONVERT TO 'A'-'F'
JMP PUT ; PUT IN MEMORY
PADIG: ADI '0' ; CONVERT TO '0'-'9'
PUT: MOV M,A ; CHAR IN MEMORY
INX H ; PT TO NEXT LOCATION
RET