
CR     215
LF     212
SLASH  251
LINE   0
       LAC CR
       JMS TYPE
       LAC LF
       JMS TYPE
       JMP* LINE
/SIX OCTAL DIGIT PRINT SUBROUTINE
OCT6    0
        DAC OCTS   /SAVE DATA
       LAC (240
       JMS TYPE
      LAC OCTS       /GET DATA
       AND (700000
       CLL!RTL
       RTL
       TAD (260
       JMS TYPE
       LAC OCTS     /GET 2ND DIGIT
       SWHA
       AND (70
       CLL!RAR
       RTR
       TAD (260
       JMS TYPE
       LAC OCTS     /GET 3RD DIGIT
       SWHA
       AND (7
       TAD (260
       JMS TYPE
       LAC OCTS           /GET 4TH DIGIT
       SWHA
       AND (700000
       CLL!RTL
       RTL
       TAD (260
       JMS TYPE
       LAC OCTS          /GET 5TH DIGIT
       AND (70
       CLL!RAR
       RTR
       TAD (260
       JMS TYPE
       LAC OCTS          /GET 6TH DIGIT
       AND (7
       TAD (260
       JMS TYPE
       JMP* OCT6
OCTS   0
/
/
/ASCII PRINT FROM SIXBT PACKED WORD.
/THREE 6-BIT ASCII CHARACTERS ARE PACKED INTO ONE
/WORD BY THE PSEUDO-OP .SIXBT
/THE MESSAGE IS ENDED BY "@".
ASPRT  0
       DAC SAVE9
ASPRT1 LAC* SAVE9   /GET PACKED WORD.
       RAR          /ROTATE RIGHT 3 BITS
       RTR
       SWHA
       DAC SAVE11
       AND MASK5    /MASK5 = 77
       SNA
       JMP* ASPRT   /END OF MESSAGE
       JMS ASPRT2
       LAC SAVE11   /GET MIDDLE CHARACTER
       RAR
       RTR
       SWHA
       
       AND MASK5
       SNA
       JMP* ASPRT   /END OF MESSAGE
       JMS ASPRT2
       LAC* SAVE9   /GET THIRD CHARACTER
       AND MASK5
       SNA
       JMP* ASPRT   /END OF MESSAGE
       JMS ASPRT2
       ISZ SAVE9    /GET NEXT WORD
       JMP ASPRT1
SAVE9  0
SAVE11 0
SAVE12 0
MASK5  77
MASK6  40
B100   100
ASPRT2 0
       DAC SAVE12
       AND MASK6     /MASK6 =40
       SNA!CLA       /NUMBERS 40 TO 77, DO NOTHING.
       LAC B100      /NUMBERS 00 TO 37, ADD 100.
       TAD SAVE12
       JMS TYPE
       JMP* ASPRT2
TYPE   0
       TSF
       JMP .-1
       TLS
       JMP* TYPE
TSF=700401
TLS=700406
       .END START
