100 / CONTROL CHARACTER TABLE. 110 120 CTABLE, COMMON/PRCONT /000 <^> 130 PRCONT /001 <^A> 140 PRCONT /002 <^B> 150 PRCONT /003 <^C> 160 PRCONT /004 <^D> 170 PRCONT /005 <^E> 180 PRCONT /006 <^F> 190 VTBELL /007 <^G> 200 CLEFT /010 <^H> 210 VTTAB /011 <^I> 220 VTLF /012 <^J> 230 CDOWN /013 <^K> 240 VTFF /014 <^L> 250 VTCR /015 <^M> 260 VTCAD /016 <^N> 270 PRCONT /017 <^O> 280 PRCONT /020 <^P> 290 PRCONT /021 <^Q> 300 PRCONT /022 <^R> 310 PRCONT /023 <^S> 320 PRCONT /024 <^T> 330 PRCONT /025 <^U> 340 PRCONT /026 <^V> 350 PRCONT /027 <^W> 360 CRIGHT /030 <^X> 370 PRCONT /031 <^Y> 380 CUP /032 <^Z> 390 ESCAPE /033 <^[> 400 VTRUB /034 <^\> > 410 VTHOME /035 <^]> 420 VTEOL /036 <^^> 430 VTEOS /037 <^ 440 EJECT 450 / LOGICAL LPT: HANDLER. 460 470 / SETTING LPMODE TO 0000 ALLOWS BUFFERING TO A CHARACTER. 480 490 / SETTING LPMODE TO 0001 DISABLES ALL BUFFERING. 500 510 / DURING BUFFERING OPERATIONS, LPMODE WILL CHANGE FROM 0000 TO A 520 / NEGATIVE COUNT FOR INITIALIZATION PURPOSES. 530 540 LPTOUT, DCA LPTAC /SAVE PASSED AC 550 NL0002 /SET CIF BIT 560 RDF /GET CALLING FIELD 570 TAD [CDF] /TURN INTO CIF CDF RETURN FIELD 580 DCA LPTRET /STORE FOR EXIT LATER 590 TAD LPTAC /GET PASSED AC VALUE 600 CMA /INVERT FOR TEST 610 SNA CLA /SKIP IF 7777 WAS NOT PASSED 620 JMP LPINIT /JUMP IF 7777 WAS PASSED 630 TAD LPTAC /GET ORIGINAL VALUE 640 AND [177] /JUST SEVEN-BIT 650 DCA LPTCHAR /SAVE THE CHARACTER TO BE OUTPUT 660 TAD LPMODE /GET BUFFERING MODE 670 SZA CLA /SKIP IF BUFFERING CURRENTLY ALLOWED 680 JMP BUFOFF /JUMP IF NOT 690 JMS I (BUFCHK) /CHECK CURRENT BUFFER STATUS 700 JMP BUFULL /BUFFER CURRENTLY FULL 710 JMP BUFACTIVE /BUFFER CURRENTLY PARTIALLY FULL 720 BUFEMPT,TAD LPTCHAR /GET THE CHARACTER 730 JMS I (LPOUT) /TRY TO OUTPUT IT 740 SKP /SKIP IF UNSUCCESSFUL 750 JMP LPEXIT /JUMP IF IT WORKED 760 LPFFTST,TAD LPTCHAR /GET THE CHARACTER 770 TAD (-14) /COMPARE TO 780 SNA CLA /SKIP IF DIFFERENT 790 JMP LPFXIT /ELSE TAKE NON-SKIP RETURN 800 JMS I (LPFILL) /BUFFER THE CHARACTER 810 JMP LPEXIT /TAKE SKIP RETURN 820 830 BUFACTI,JMS I (LPEMPTY) /GET A CHARACTER FROM BUFFER 840 JMS I (LPOUT) /TRY TO OUTPUT IT 850 JMP LPFFTST /COULDN'T, TRY TO BUFFER LATEST CHARACTER 860 BUFULEN,TAD EMPTR /GET TEMPORARY POINTER 870 DCA EMPTPTR /PERMANENTLY EMPTY THE BUFFER POSITION 880 JMS I (BUFCHK) /CHECK THE BUFFER AGAIN 890 HLT /**** IMPOSSIBLE TO BE FULL WHEN JUST EMPTIED ONE **** 900 JMP BUFACTIVE /BUFFER STILL ACTIVE, TRY AGAIN TO EMPTY IT 910 JMP BUFEMPTY /BUFFER NOW EMPTY, GO DEAL WITH LATEST CHARACTER 920 930 BUFULL, JMS I (LPEMPTY) /GET A CHARACTER FROM BUFFER 940 JMS I (LPOUT) /TRY TO OUTPUT IT 950 JMP LPFXIT /COULDN'T, FORGET IT 960 JMP BUFULENTRY /DID, SO DOWNGRADE THE BUFFER TO ACTIVE AND KEEP GOING 970 EJECT