*20 /DIAL PRINT MANUSCRIPT(SOURCE) /ASSEMBLE WITH TELETYPE /BLOCK 364, WITH THE TELETYPE ROUTINES IN BLOCK 363, QTR 3?2 *1000 RDC E7 3\D7+63 CLR ADD 1377 BSE I 6000 STA B5A+1 STC B5+1 ADD 1376 BCL I 7774 STC DTEXTR ADD 1376 BCL I 0003 STA B5A STC B5 STC PZT SET I 5 E6 /POINTER TO LINE NUMBERS LDA 5 /GET THE FIRST LINE NUMBER STA I X1, 0 /A TEMP FOR 8 MODE ADDRESSING LDA I 5 /SECOND LINE NUMBER STA I X2, 0 /SECOND TEMP PDP PMODE /GET INTO 8 MODE FOR GOOD COMPARES. CLA TAD X1 /GET THE FIRST LINE NUMBER CLL CML CIA /COMPLEMENT TAD X2 /NUMBER 2. SZL CLA /FIRST > SECOND??? CLA IAC /YES. SET AC TO NON ZERO. LINC LMODE /GET BACK INTO LINC MODE AZE /WE RE NUMBERS OK? JMP B8 /NOPE. EXIT. SET I 5 E6 SET I 3 J9+2 LDA 5 /1ST LINE AZE I JMP .+6 ADA I -1 AZE I COM STC K5-4 ADD . /GET A DUMMY INSTRUCTION IN THE AC. STC JBNOBK /AND STORE IN THE PAGE BREAK ROUTINE /THIS INSURES THAT IT WILL ONLY GIVE TWO LINES INITIALLY. ADD A5+1 STC L8 LDA I 5 AZE STC K5+7 LDA I 5 SAE I 7777 JMP .+3 LDA I 5443 STA 3 LDA I 5 STA I 3 LDA I 5 STA I 3 LDA I 5 STA I 3 LDA I -0 STA I 3 GT, SET I 15 RCG E7 SET I 3 7001 SET I 5 -1 LDA A5+3 SAE I 0 JMP S5 ADD A5+1 STC C8 K5, JMP Z8 JMP X8 SET I 13 -1000 LDA A5+3 SAE I 7776 JMP L5 /DONE JMP B8-1 /WAIT FOR KEY /PARTIAL PRINT S5, JMP A5 LDA I 43 SHD I 3 JMP K5-7 JMP CHECK JMP .-5 /PRINT LINE L5, JMP A5 /UP LINE SET 2 3 LDH I 2 SHD I 0000 /00=END OF FILE CHARACTER??? JMP JBDONE /END OF THE LISTING! SET I 13 -74 M5, JMP CHECK LDH I 3 SHD I 4700 /CHECK FOR A TAB SKP JMP NOTAB /NOT A TAB LDA TBCONT /GET THE OUTPUT POSITION ADA I -10 /BOP DWON BY 8 APO I JMP .-3 /STILL POSITIVE AZE I JMP .-5 /AND NONZERO COM /NOW GET THE POSITIVE REMAINDER ADA I -1 /AND ZAP DOWN FOR THE XSK TO FOLLOW ADD 13 /ADD IN NUMBER OF CHARS TO GO AZE I JMP DOIT /TOO BIG APO JMP NOPE /IT LL FIT DOIT, LDA I -1 /SO XSK WILL KNOW ITS THE END OF THE LINE NOPE, STC 13 /AND STORE BACK CORRECT COUNT NOTAB, LDA I /RESET Z8 TO DO A PAGE BREAK JMP T8 /PAGE BREAK CALLER STC JBNOBK /STORE IT AWAY LDH 3 /GET THE OLD CHAR BACK. SHD I 4300 JMP P5 JMP W8 LDH 3 SHD I 4000 JMP C5 N5, XSK I 13 JMP M5 JMP CHECK LDH I 3 SHD I 4300 JMP P5 /TT LINE CONTINUES PAST PAGE BREAK XSK I 5 JMP .+2 JMP Z8 JMP X8 SET I 13 -100 LDH 3 JMP M5+5 /COUNT TO NEXT SPACE OR EOL. /DO NOT BREAK WORDS AT END OF TT LINE C5, SET I 4 1 SET 2 3 JMP CHECK LDH I 2 SHD I 4300 JMP .+5 XSK I 4 SAE I 40 JMP .-7 LDA 13 ADD 4 APO JMP N5 LDA I -101 ADD 4 APO I JMP N5 JMP N5+2 /EOL P5, LDA A5+3 ADD A5+1 STC C8 STC TBCONT Q5, XSK I 5 JMP K5+1 JMP K5 /MS ADDRESS CKECK AND UP LINE NUMBER A5, LDA I 1 ADM I 0 /CURRENT LINE B5B, SET 6 0 LDA PZT APO JMP B5C JMP DTEXTR-1 B5A, 0 0 STC PZT MSC 1 ADD B5A+1 ADD A5+1 STC B5+1 JMP 6 JMP DTEXTR-1 B5, 0 0 ADD B5+1 ADD A5+1 STC B5+1 MSC 1 SET I 3 6777 SET 2 3 JMP 6 LDA I DTEXTR, 0 MSC 1 JMP 0 PZT, 0 B5C, LDA 3 SAE I 7377 JMP .+2 JMP B5-1 JMP 6 CHECK, SET 15 0 LDA 3 SAE I 7377 JMP .+2 JMP B5B JMP 15 / / JBDONE, LDA I 10 AXO /SET NO PAUSE TO MOVE CHK /TAPE 0 BACK TO DIAL D7 /TO SAVE TIME JMP A8 /EXIT WITH LINEFEEDS. / / / / *1376 RDC B7 A7 /DIAL PRINT MS(SRC) /ADD TELETYPE HERE BEFORE ASSEMBLY / EJECT /TELETYPE ROUTINES KBDOPR=1400 E6=2371 A6=2001 G7=346 D7=300 E7=0 J9=771 *1400 /DIAL TELETYPE ROUTINE /44-END PRINT / / A8, LDA I -4 /TO COMPENSATE FOR NO BREAK AT THE END ADM 5 /BOP DOWN LINE NUMBER COUNTER JMP T8 /DO A LINE FEED XSK I 5 /DONE YET??? JMP .-2 /DOWN TO BOTTOM OF PAGE. LDA I 55 /THE MINUS SIGN JMP W8 /PRINT IT SET I 5 -14 /ENOUGH TO GET PAST TEAR RIM. JMP X8 /C.R. S XSK I 5 /ALL DONE?? JMP .-2 /NOPE. NOP B8, SET I 15 LDF 3 SET I 16 RCG I E7 SET I 17 7\D7 CLR MSC 1 JMP 15 /PAGE PRESET Z8, SET I 5 -4 SET 14 0 JMP X8 JBNOBK, JMP T8 XSK I 5 JMP .-2 LDA I 55 JMP W8 /- JMP X8 JMP T8 LDH J9+2 SHD I 5400 JMP .+7 SET I 2 J9+2-4000 JMP Y8 /NAME LDA I 54 JMP W8 /, LDA I L8, 0 /PAGE NUMBER JMP P8 LDA I 1 /CONSTANT ADD .-4 STC .-5 ADD C8 /LINE NUMBER AZE I JMP X8-6 JMP W8-2 JMP W8-2 SET I 2 S8-4000 JMP Y8 /LN= LDA I C8, 0 /LN JMP P8 /PRINT NUMBER JMP X8 JMP T8 SET I 5 -71 STC TBCONT /ZERO OUT THE TAB COUNTER. A NEW LINE IS HERE. JMP 14 /EXIT. /KST, CARRIAGE RETURN X8, SET 7 0 KST JMP .+6 LIF 3 JMP KBDOPR SHD I 4300 JMP B8 PDP PMODE CLA TAD P215 JMS I TYPOA TAD P212 JMS I TYPOA LINC LMODE JMP 7 P215, 215 TYPOA, TYPO P212, 212 PMODE TYPO, 0 TSF JMP .-1 TLS CLA JMP I TYPO LMODE T8, PDP PMODE CLA TAD P212 JMS I TYPES LINC LMODE JMP 0 TYPES, TYPO /LINEFEED ONLY R8, SET 4 0 JMP M8 ADA I 60 JMP W8 JMP N8 JMP R8+2 /PRINT NUMBER, NO LEADS P8, SET 4 0 AZE JMP .+5 ADA I 60 JMP W8 JMP 4 P8S, JMP M8 AZE JMP .+3 JMP N8 JMP P8S ADA I 60 JMP R8+5 /NUMBER SUBS M8, ROL 3 STA I 0 BCL I 7770 JMP 0 N8, LDA M8+2 SRO I 3567 JMP 0 JMP 4 /PRINT LDA I 40 W8, PDP PMODE JMS I CONVT DCA TEMP TAD TEMP TAD M211A SNA CLA JMP TABP TAD TEMP JMS I TYPS ISZ TBCONT LNRT, LINC LMODE JMP 0 TYPS, TYPO TBCONT, 0 CONVT, CONVRT /PRINT LINE OR LABEL Y8, SET I 13 0 /CHARS PER LINE SET 7 0 LDH I 2 SHD I 4300 JMP 7 /END DIAL LINE SHD I 7700 /END NAME JMP 7 JMP W8 XSK I 13 JMP Y8+4 LDH I 2 /END OF TT LINE SHD I 4300 JMP 7 XSK I 5 JMP J8 /TTLINE CONTINUES PAST PAGE BREAK J8, JMP X8 SET I 7 JMP M5+2 SET I 14 -12 JMP W8-2 XSK I 14 JMP .-2 SET I 13 -66 LDH 2 JMP Y8+5 A7=370 B7=0 PMODE M47, -47 M40, -40 P240, 240 P100, 100 P211, 211 TEMP, 0 M211A, -211 M10, -10 P77, 77 CONVRT, 0 AND P77 DCA TEMP TAD TEMP TAD M47 SNA CLA JMP TABCV TAD TEMP TAD M40 SPA TAD P100 TAD P240 JMP I CONVRT TABCV, TAD P211 JMP I CONVRT TABP, TAD TBCONT TAD M10 SMA JMP .-2 JMS SKIP DCA TBCONT JMP LNRT T4, 0 SKIP, 0 DCA T4 TAD P240 JMS I TYPS ISZ T4 JMP .-3 JMP I SKIP LMODE D5, 4040 4040 4040 4040 4040 4040 2317 2522 0305 4040 4040 0211 1601 2231 4340 4016 0115 0540 E5, 4040 4002 1640 4002 1413 2343 S8, 1416 7543