XIN: LXI H,0 ; ANSWER := 0; XINLOOP:CALL GET ; A :== INPUT [character]; CPI '0' ; is A LT '0'? RC ; if so then return; CPI ':' ; is A LT ':' [numerics]? JC XINSHIFT ; if so then go shift it in; CPI 'A' ; is A LT 'A'? RC ; if so then return; CPI 'G' ; is A LT'G' [alphabetic A to F]? RNC ; if not then return; ADI 9 ; A := A + 9 [convert to hexadecimal]; XINSHIFT:ANI 15 ; A := A & b'00001111' [mask low order]; DAD H ; shift ANSWER register pair RC ; left four bit DAD H ; positions using RC ; double byte addition DAD H ; and test each RC ; operation for DAD H ; an overflow error RC ; return condition; ORA L ; A := A OR L [add new code to lower order]; MOV L,A ; restore low order to ANSWER; JMP XINLOOP ; reiterate for next nybble;