
/
/   24 HOUR REAL TIME CLOCK.
TIMER  0
       LAC CLKCNT
       TAD CLKBUF
       DAC CLKCNT
TIMER1 TAD N1SEC
       SPA
       JMP* TIMER
       DAC CLKCNT   /RECYCLE REMAINDER
       ISZ SECS
       LAC SECS
       SAD P60
       SKP
       JMP TIMER2
       DZM SECS
       ISZ MINS
       LAC MINS
       SAD P60
       SKP
       JMP TIMER2
       DZM MINS
       ISZ HRS
       LAC HRS
       SAD P24
       DZM HRS
TIMER2 LAC CLKCNT   /REPEAT UNTIL LESS THAN 1 SEC
       JMP TIMER1
P24    30
P60    74
N1SEC  -10000
CLKCNT 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
