1593 EA42 20 46 EA WRAX JSR NUMA
1594 EA45 8A TXA
1595 EA46
1596 EA46 ;PRINT ONE BYTE=TWO ASCII CHARS TO OUTPUT DEVICE
1597 EA46 48 NUMA PHA
1598 EA47 4A LSR A
1599 EA48 4A LSR A
1600 EA49 4A LSR A
1601 EA4A 4A LSR A
1602 EA4B 20 51 EA JSR NOUT
1603 EA4E 68 PLA
1604 EA4F 29 0F AND #$F
1605 EA51 18 NOUT CLC
1606 EA52 69 30 ADC #'0'
1607 EA54 C9 3A CMP #'9'+1
1608 EA56 90 02 BCC LT10
1609 EA58 69 06 ADC #6 ;CARRY IS SET
1610 EA5A 4C BC E9 LT10 JMP OUTALL
1611 EA5D
1612 EA5D ;READ TWO CHR & PACK THEM INTO ONE BYTE
1613 EA5D ;PART OF ALTER MEMORY , / COMM
1614 EA5D 20 73 E9 RD2 JSR REDOUT
1615 EA60 C9 0D CMP #CR ;<CR>?
1616 EA62 F0 17 BEQ RSPAC
1617 EA64 C9 20 CMP #' ' ;FOR MEMORY ALTER
1618 EA66 F0 13 BEQ RSPAC
1619 EA68 C9 2E CMP #'.' ;TREAT "." AS <SPACE>
1620 EA6A D0 04 BNE RD1
1621 EA6C A9 20 LDA #' '
1622 EA6E D0 0B BNE RSPAC
1623 EA70 20 84 EA RD1 JSR PACK
1624 EA73 B0 06 BCS RSPAC
1625 EA75 20 73 E9 JSR REDOUT
1626 EA78 4C 84 EA JMP PACK
1627 EA7B ;WAS SPACE OR <CR>
1628 EA7B 38 RSPAC SEC
1629 EA7C 60 RTS
1630 EA7D
1631 EA7D ;CONVERT ACC IN ASCII TO ACC IN HEX (4 MSB=0)
1632 EA7D 48 HEX PHA ;SAVE A
1633 EA7E A9 00 LDA #0 ;CLEAR STIY IF HEX
1634 EA80 8D 29 A4 STA STIY+2 ;BECAUSE ONLY ONCE
1635 EA83 68 PLA
1636 EA84 ;PACK TWO ASCII INTO ONE HEX (CALL SUBR TWO TIMES)
1637 EA84 ;RESULT IS GIVEN ON ACC WITH FIRST CHR INTO 4 MSB
1638 EA84 C9 30 PACK CMP #'0' ;< 30 ?
1639 EA86 90 F3 BCC RSPAC
1640 EA88 C9 47 CMP #'F'+1 ; > 47 ?
1641 EA8A B0 EF BCS RSPAC
1642 EA8C C9 3A CMP #'9'+1 ; < $10
1643 EA8E 90 06 BCC PAK1
1644 EA90 C9 40 CMP #'A'-1 ; > $10 ?
1645 EA92 90 E7 BCC RSPAC
1646 EA94 69 08 ADC #8 ;ADD 9 IF LETTER (C IS SET)
1647 EA96 2A PAK1 ROL A ;SHIFT A 4 TIMES
1648 EA97 2A ROL A
1649 EA98 2A ROL A
1650 EA99 2A ROL A
1651 EA9A 8E 2D A4 STX CPIY+3 ;SAVE X
1652 EA9D A2 04 LDX #4
1653 EA9F 2A PAK2 ROL A ;TRANSFER A TO STIY
1654 EAA0 2E 29 A4 ROL STIY+2 ; THRU CARRY