/ ALTMODE=233 SETPA, 0 JMS I (SETX "P;"A /KEEP HERE TO MAKE EASY TO PATCH JMP I SETPA MAKSUB, 0 TAD DELIM SNA CLA JMP I (CMDERR /DON'T ALLOW MAKE JMS SETLXR JMS I (GETSPC JMS I (LOVE JMS TECPUT "E;"W;0 JMS TECMOV JMS SETPA JMS TECPUT ALTMODE;0 JMS I (CHKSUP JMS I (REMEM 0 JMP I MAKSUB SETLXR, 0 TAD I (LBEGIN DCA LXR TAD (MOFILE-1 DCA I (TYR TAD (-5 /ZERO OPTION TABLE TOO JMS I (ZEROCD TAD LXR DCA SAVLXR JMP I SETLXR /PUT FOLLOWING CHARS INTO TECO BUFFER VIA TXR TECPUT, 0 / TAD NAME1 / SNA CLA / JMP I (CDER2 TAD I TECPUT ISZ TECPUT SNA JMP I TECPUT JMS I (TPUT JMP TECPUT+1 /MOVE CHARS FROM FIELD 0 LINE BUFFER /FROM SAVLXR+1 TO LXR-1 INCLUSIVE /INTO TECO LINE BUFFER AT 17600 TECMOV, 0 TAD SAVLXR DCA XR2 TAD SAVLXR CMA TAD LXR SNA CLA JMP I (CDER2 /NO FILE SPEC TECL, CDF 0 TAD I XR2 CDF 10 JMS I (TPUT TAD XR2 CMA TAD LXR SNA CLA JMP I TECMOV JMP TECL TECSUB, 0 JMS SETLXR JMS I (GETSPC TAD DELIM SNA JMP TECNORM TAD (-"< /ALLOW "_" AS WELL AS "<" SNA JMP EXTEN TAD ("<-"_ SZA CLA JMP I (CDER2 EXTEN, CDF 0 DCA I LXR /CHANGE < TO 0 CDF 10 JMS TECPUT "E;"W;0 JMS TECMOV JMS SETPA TAD LXR DCA SAVLXR JMS I (CHKSUP JMS I (GETSPC JMS TECPUT ALTMODE;"E;"R;0 JMS TECMOV JMS SETPA JMS TECPUT ALTMODE;"Y;0 JMP TECLV TECNORM,JMS TECPUT "E;"B;0 JMS TECMOV JMS SETPA JMS TECPUT ALTMODE;"Y;0 TECLV, JMS I (REMEM 0 JMP I TECSUB SAVLXR, 0 PAGE TPUT, 0 AND (177 /TECO LIKES 7-BIT ISZ TYR DCA I TYR TAD TYR TAD (-7646 /CHECK FOR OVERFLOW OF CD AREA SZA CLA JMP I TPUT JMP CDER9 MNGSUB, 0 JMS I (SETLXR JMS I (GETSPC JMS I (TECPUT "E;"R;0 JMS I (TECMOV JMS SETX "T;"E EXTOK, JMS I (TECPUT ALTMODE;"Y;"H;"X;"Y;"H;"K;"I;0 TAD DELIM SNA JMP IFIN TAD (-", SZA CLA JMP I (CDER2 G, JMS I (GCH SNA JMP IFIN JMS TPUT JMP G IFIN, JMS I (TECPUT ALTMODE;"M;"Y;0 /MACRO GETS CALLED WITH POINTER PAST CHARS JMP I MNGSUB TYR, 0 /SET DEFAULT EXTENSION SETX, 0 TAD I SETX DCA C1 ISZ SETX TAD I SETX DCA C2 /FALL THRU 2ND EXT TAD NAME4 SNA CLA TAD NAME1 SNA CLA JMP I SETX TAD I TYR /GET LAST CHAR (NO EXT) TAD (-56 /WAS IT A DOT? SNA CLA JMP I SETX /YES JMS I (TECPUT /NO, USE DEFAULT EXTENSION ". C1, 0 C2, 0 0 TAD C1 AND (77 JMS I (ROTL DCA C1 TAD C2 AND (77 TAD C1 DCA NAME4 JMP I SETX CDER9, JMS I (PRMESG TOOLNG CCERA, JMS I (PRMESG CONTRA CRSUB, 0 TAD I (7617 SNA CLA /BETTER BE NO INPUT TAD I (7600 /ANYTHING THERE? SNA CLA JMP I (CDER2 /NO OUTPUT OR YES INPUT CDF 0 DCA I ARLOC /REMOVE BACK-ARROW CDF 10 JMS I (REMEM /REMEMBER CREATE LINE WITHOUT BACKARROW 1 JMP I CRSUB EDSUB, 0 JMS I (REMEM /REMEMBER NEW COMMAND LINE 1 JMP I EDSUB ARLOC, BEGLN /LOCATION OF ADDED BACK-ARROW IN COMMAND LINE CCER3, CDF 10 JMS I (PRMESG BADMON CDER4, CLA JMS I (PRMESG BADSW CDER44, CLA JMS I (PRMESG BADSW2 CDER7, JMS I (PRMESG BADX PAGE INSARR, 0 TAD (BEGLN DCA XR CDF 0 TAD I XR SZA CLA JMP .-2 STA TAD XR DCA XR TAD ("< DCA I XR DCA I XR CDF 10 STA TAD XR DCA I (ARLOC /REMEMBER WHERE WE INSERTED A "_" JMP I INSARR BKA, 0 TAD I (LBEGIN DCA CLXR GG, CDF 0 ISZ CLXR TAD I CLXR CDF 10 SNA JMP NOBKAR TAD (-"< SNA JMP I BKA TAD ("<-"_ SZA CLA JMP GG TAD ("< CDF 0 DCA I CLXR CDF 10 JMP I BKA NOBKAR, ISZ BKA JMP I BKA AT, 0 TAD (BEGLN-1 DCA LXR ATLOOP, JMS I (GLXR SNA JMP I AT TAD (-300 SZA CLA JMP ATLOOP TAD LXR DCA I (SAVL JMS I (FUDG JMS I (GETSPC JMS I (ASSIGN DCA I (SETEXT TAD (EXTCM DCA DEFALT JMS I (LOOKUP CLA TAD I (LNAME /GET BLOCK NUMBER DCA BLN TAD I (ASADR /GET HANDLER ADDRESS DCA T CIF 0 JMS I T 200 /READ 2 PAGES NWB, BFR+200 /INTO BUFFER BLN, 0 /FROM THIS BLOCK JMP ATERR / I/O ERROR TAD (-200 DCA COUNT TAD (BFR-1 DCA XR TAD NWB DCA T CDF 0 ALP, TAD I T JMS I (P CLL RTR RTR DCA BKA ISZ T TAD I T JMS I (P CLL RTL RTL RAL TAD BKA JMS I (P CLA ISZ T ISZ COUNT JMP ALP JMP I (ATOVER ATERR, CDF 10 CLA JMS I (PRMESG ATIO COUNT, 0 PAGE P, 0 AND (177 SNA JMP CTZ /END AT 0 OR ^Z TAD (-32 SNA JMP CTZ TAD (32-16 /IGNORE CR,LF,FF,VT CLL TAD (16-12 SZL JMP POGO TAD (212 /FORCE 8-BIT DCA I XR POGO, CLA TAD I T AND (7400 JMP I P CTZ, CDF 10 TAD LXR DCA ATEND STA TAD LXR DCA LXR /INCASE @ GOES TO EOL JMS I (GLXR /SEARCH FOR EOL SZA CLA JMP .-2 TAD LXR CMA TAD ATEND DCA ENDLEN TAD XR CMA TAD (BFR /GET LENGTH OF INSERTED STUFF DCA NEWLEN TAD ENDLEN JMS I (MOVE /MOVE REST OF LINE UP CDF 0 ATEND, 0 /FIRST CHAR POSITION AFTER @ SPEC CDF 0 BEGLN+1000 TAD NEWLEN JMS I (MOVE /MOVE IN NEW STUFF CDF 0 BFR CDF 0 SAVL, 0 /POINTS TO @ TAD NEWLEN CIA TAD SAVL DCA NEWEND CLL TAD NEWEND TAD (-BEGLN-1000 SZL CLA JMP ATOVER TAD ENDLEN JMS I (MOVE /MOVE BACK END CDF 0 BEGLN+1000 CDF 0 NEWEND, 0 /FIRST POSITION AFTER NEW STUFF JMP I (AT+1 /LOOK FOR MORE ATOVER, JMS I (PRMESG OVFLOW ENDLEN, 0 /- NO. OF CHARS AT END INCLUDING 0 NEWLEN, 0 /- NO. OF CHARS BEING INSERTED NUMC, 0 TAD (SKP DCA I (NUMSKP TAD (-11 DCA I (NUMKNT JMS I (NUMBER DCA NAME2 TAD I (HIORD DCA NAME1 STA TAD LXR DCA LXR TAD (-11 DCA I (NUMKNT JMS I (NUMBER DCA NAME4 TAD I (HIORD DCA NAME3 TAD (SPA DCA I (NUMSKP JMP I NUMC PAGE HISIZ, 0 /HIGHEST CORE BANK NEWCOR, 0 /PROPOSED NEW CORE BANK DETCOR, 0 CIF 0 JMS I (CORE TAD (-10 SNA JMS I (K8 TAD (-30 SNA JMS K32 TAD (40 JMS OTOD CDF 0 DCA I (CORMES CDF 10 TAD I (LBEGIN DCA LXR CDF 0 STA TAD I (CORSIZ DCA HISIZ JMS I (GLXR /GET NEXT CHAR SNA JMP COREQ /NOT SETTING CORE SIZE TAD (-260 DCA NEWCOR TAD NEWCOR AND (7770 SZA CLA JMP I (CMDERR /TRIED TO SET CORE SIZE GT 7 TAD NEWCOR CIA TAD HISIZ SPA CLA JMP BADCOR /TRIED TO SET SOFTWARE CORE SIZE GT REAL CORE SIZE CDF 0 TAD I (7777 CDF 10 RTL /BATCH BIT TO LINK SZL CLA JMP WRSCOR /CAN'T CHANGE CORE SIZE UNDER BATCH TAD NEWCOR CLL RTL RAL DCA NEWCOR CDF 0 TAD I (7777 AND (7707 TAD NEWCOR DCA I (7777 COREQ, CDF 0 TAD I (7777 CDF 10 AND (70 SNA JMP ABSCOR TAD (10 CLL RAR JMS OTOD CDF 0 DCA I (SCRMES TAD I (SCRMES CIA TAD I (CORMES CDF 10 SNA CLA JMP ABSCOR /DON'T PRINT SOFT IF = REAL JMS I (PRINT SCRMES JMP I DETCOR BADCOR, JMS I (PRINT NOCORE JMP COREQ ABSCOR, JMS I (PRINT CORMES JMP I DETCOR WRSCOR, JMS I (PRINT BATCOR JMP COREQ OTOD, 0 DCA TT DCA T TAD TT TAD (-12 ISZ T SMA JMP .-3 TAD (72 DCA CORETM STA TAD T SNA TAD (40-60 TAD (60 JMS I (ROTL TAD CORETM JMP I OTOD CORETM, K32, 0 TAD (4100 CDF 0 DCA I (CORMES+4 CDF 10 JMP I K32 PAGE DATE, 0 TAD I (DATWD SNA JMP NODATE DCA DATEM TAD DATEM CLL RTL RTL RAL AND (17 DCA TM1 TAD TM1 TAD (MONLST-1 DCA TM2 CDF 0 TAD I TM2 CDF 10 DCA MONP TAD DATEM AND (7 DCA TM2 TAD TM2 TAD (6760 DCA YEAR TAD DATEM CLL RTR RAR AND (37 DCA DATEM TAD DATEM JMS I (OTOD DCA DAY CDF 0 STL CLA RTL /2 TAD TM2 CLL RTR SNL SMA JMP LEAP ISZ I (JAN ISZ I (FEB LEAP, AND (37 TAD TM2 TAD (3 TAD DATEM DCA DATEM TAD TM1 TAD (JAN-1 DCA TM1 TAD I TM1 CDF 10 TAD DATEM DIV7, CLL TAD (-7 SZL JMP DIV7 TAD (7 TAD (WEEKLST DCA TM2 CDF 0 TAD I TM2 CDF 10 DCA WKP STA /DON'T CRLF JMS I (PRINT WKP, 0 STA JMS I (PRINT DAYDAY STA JMS I (PRINT MONP, 0 STL CLA RAR JMS I (PRWD /SPACE TAD DAY JMS I (PRWD STA JMS I (PRINT COM19 TAD YEAR JMS I (PRWD JMS I (CRLF JMS I (LOOK /LOOKUP SYS:DATE.SV YDATE JMP I DATE /DO NOTHING IF IT'S NOT THERE JMP I (CHAIN /CHAIN TO IT, IF IT'S THERE PAUSE