X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/cda2ba6d27526e5ef6f27f7b3391cfb55055bf2e..bb920f47d2b4fd2ac0c46c72df890dfe6931e943:/src/comcon.mac diff --git a/src/comcon.mac b/src/comcon.mac index 050b588..d51df4f 100644 --- a/src/comcon.mac +++ b/src/comcon.mac @@ -1,13 +1,13 @@ TITLE COMCON - COMMAND DECODER AND SAVEGET ROUTINES - V433 SUBTTL /RCC 03 JUN 69 XP VCOMCN,433 + ;THIS MACRO PUTS VERSION NO. IN STORAGE MAP AND GLOB ENTRY COMCON ;ALWAYS LOAD COMCON IF LIBRARY SEARCH COMCON: ;CALLED FROM CLOCK ROUTINE WHEN 'COMCNT' IS GREATER THAN 0 - ;AS SET BY TTY SERVICE ROUTINE ;ALL AC'S HAVE BEEN SAVED BY CLOCK CHANNEL ;THE COMMAND DECODER CALLS TTYCOM WHICH SCANS FOR TTY WHICH TYPED @@ -37,8 +37,7 @@ COMCON: ;IF A COMMAND FUNCTION CANNOT DO THIS, IT MUST JUST SET ;THE JOB TO RUNABLE STATUS AND RETURN IMMEDIATELY ;OR DELAY THE COMMAND FOR LATER EXECUTION - -INTERNAL COMMAND + INTERNAL COMMAND INTERNAL FTLOGIN,FTSWAP,FTTIME EXTERNAL COMCNT,TTYCOM,JBTSTS,JOBMAX,JBTDAT,JBTADR,JOBHCU EXTERNAL CONFIG,HIGHJB @@ -79,8 +78,7 @@ COMLP: MOVE T2,COMTAB(T) ;GET NEXT ENTRY FROM COMMAND TABLE COMNEQ: AOBJN T,COMLP ;NO, KEEP LOOKING CAIN T4,1 ;DID ONE AND ONLY ONE COMMAND MATCH? MOVE T,T3 ;YES, GET ITS INDEX - -COMFND: MOVE TAC1,DISP(T) ;GET DISPATCH TABLE ENTRY, + COMFND: MOVE TAC1,DISP(T) ;GET DISPATCH TABLE ENTRY, PUSH PDP,TAC1 ;SAVE RH(DISPATCH ADR,+BITS) MOVE T,JBTSTS(ITEM) ;JOB STATUS WORD FOR THIS JOB IFN FTLOGIN,< @@ -89,7 +87,8 @@ IFN FTLOGIN,< JRST CHKNO ;YES JSP TAC,COMER ;NO, TYPE "LOGIN PLEASE" ASCIZ /LOGIN PLEASE -/> +/ +> CHKNO: JUMPN ITEM,CHKRUN ;JOB NUMBER ALREADY ASSIGNED? TLNE TAC1,NOJOBN ;NO, DOES THIS COMMAND NEED A JOB NUMBER? JRST COMGO ;NO @@ -103,9 +102,11 @@ NUMLOP: MOVE T,JBTSTS(ITEM) ;SCAN FOR FREE JOB NO. JSP TAC,COMER ;YES, NONE LEFT, PRINT "JOB CAPACITY EXCEEDED" ASCIZ /JOB CAPACITY EXCEEDED / + ; EVEN THROUGH THIS IS A NEW JOB NUMBER ; IT MAY HAVE CORE ASSIGNED NOW BECAUSE IT WAS DELAYED ; UNTIL IT COULD BE SWAPPED IN(LOGIN WITH CORE FULL) + NEWJOB: MOVEI T1,ASSCON ;SET ASSIGNED BY CONSOLE BIT FOR TTY IORM T1,DEVMOD(DEVDAT) ;SO OTHER JOBS CAN NOT USE SETZM DEVLOG(DEVDAT) ;SET LOGICAL NAME TO ZERO @@ -120,8 +121,7 @@ IFN FTKCT,< > CAMLE ITEM,HIGHJB ;HIGHEST JOB NUMBER ASSIGNED? MOVEM ITEM,HIGHJB ;YES,SAVE IT FOR SCHEDULER SCAN OF JOBS - -CHKRUN: TLNE T,RUN ;RUN BIT ON IN JOB STATUS? + CHKRUN: TLNE T,RUN ;RUN BIT ON IN JOB STATUS? TLNN TAC1,NORUN ;YES, DOES THIS COMMAND REQUIRE A JOB? JRST CHKACT ;NO JSP TAC,COMER ;YES. @@ -150,6 +150,7 @@ IFN FTSWAP,< TLNN TAC1,INCOR ;IS THIS TRUE? CHKDLY: HRRI TAC1,DLYCM1 ;NO, JUST DELAY COMMAND UNTIL SWAP OUT OR IN IS FINISHED JRST COMDIS ;AND DISPATCH TO DELAY COMMAND +> CHKCO2: TLNE TAC1,NOACT ;CAN COMMAND BE PERFORMED WITH ACTIVE DEVICES? PUSHJ PDP,RUNCHK ;NO, RETURN IF JOB STOPPED AND NO ACTIVE DEVICES CHKCO1: TLNE TAC1,NOCORE ;DOES THIS COMMAND NEED CORE? @@ -158,8 +159,7 @@ CHKCO1: TLNE TAC1,NOCORE ;DOES THIS COMMAND NEED CORE? JSP TAC,COMER ;NO, PRINT "NO CORE ASSIGNED" ASCIZ /NO CORE ASSIGNED / - -CHKXPN: TLNN TAC1,PLSXPN ;DOES THIS COMMAND NEED CORE TO BE EXPANDED? + CHKXPN: TLNN TAC1,PLSXPN ;DOES THIS COMMAND NEED CORE TO BE EXPANDED? JRST COMGO ;NO HLRE IOS,JOBHCU(JDAT) ;YES, IS CORE STILL COMPRESSED(SAVE DID NOT GO ; TO COMPLETION) @@ -187,10 +187,10 @@ COMGO: MOVSI IOS,CMWRQ ANDCAM IOS,(PDP) ;NO, CLEAR REQUEU BIT IN DISP. FLAGS MOVEM T,JBTSTS(ITEM) + COMDIS: MOVEI IOS,0 ;CLEAR IOS FOR SETTING DISPATCH ADDRESSES PUSHJ PDP,(TAC1) ;DISPATCH TO COMMAND SETUP ROUTINE. - -;RETURN FROM COMMAND SETUP ROUTINE + ;RETURN FROM COMMAND SETUP ROUTINE COMRET: POP PDP,T1 ;RESTORE COMMAND FLAGS POP PDP,DEVDAT ;RESTORE TTY DDB ADDRESS. @@ -230,8 +230,7 @@ IFE FTLOGIN, < PUSHJ PDP,PRSPC PUSHJ PDP,DAYTM1 > - -PCRLF: TLNE T1,ERRFLG ;DID AN ERROR OCCUR? + PCRLF: TLNE T1,ERRFLG ;DID AN ERROR OCCUR? PUSHJ PDP,PRQM ;YES. APPEND ? TLNN T1,NOCRLF ;SUPRESS CRLF? PUSHJ PDP,CRLF ;NO @@ -250,7 +249,6 @@ IFN FTSWAP, < LDB ITEM,PJOBN ;GET JOB NUMBER FROM TTY DEVICE DATA BLOCK JUMPE ITEM,CPOPJ TLNE T1,CMWRQ ;REQUEUE JOB AFTER COMMAND WAIT OR ERROR? - JRST REQUE ;YES > POPJ PDP, @@ -266,8 +264,7 @@ SKPBR1: PUSHJ PDP,GETCHR JUMPN TEM,SKPBR2 ;LOOK FURTHER FOR BREAK JRST TPOPJ ;UNLESS NO MORE CHARS > - -;TABLE OF CONSOLE COMMANDS + ;TABLE OF CONSOLE COMMANDS INTERNAL FTATTACH,FTTIME,FTTALK,FTEXAMINE,FTLOGIN,FTREASSIGN INTERNAL FTFINISH,FTCCL @@ -306,11 +303,11 @@ TTYRNC=20 ;KEEP TTY IN COMMAND MODE AND START JOB ; WHEN COMMAND RESPONSE STOPS TYPING NOMESS=10 ;NO COMMAND RESPONSE EVER, DO NOT CALL TTYSTR - ;T TAKEN ABOVE BY 'PLSXPN' BIT + ;4 TAKEN ABOVE BY 'PLSXPN' BIT + ERRFLG=1 ;COMMAND ERROR - -DEFINE NAMES< + DEFINE NAMES< C START,START,NOPER!TTYRNU!INCORE!NOACT!NORUN C HALT,STOP,NOCORE!NOJOBN!NOLOGIN!NOINCK!CMWRQ C KJOB,KJOB,NOCORE!NOJOBN!NOINCK!NOLOGIN!NOACT!NORUN!NOPER!NOCRLF!NOMESS!NOTRAN @@ -382,16 +379,16 @@ IFN FTCCL,< C CTEST,CCLRUN,NOCORE!NOPER!TTYRNU!NOCRLF!INCORE!NOACT!NORUN > > - -;GENERATE TABLE OF SIXBIT COMMAND NAMES + ;GENERATE TABLE OF SIXBIT COMMAND NAMES DEFINE C(A,B,D) < > + COMTAB: NAMES + XWD NOCORE+NOJOBN+NOLOGIN+NOINCK,NOCOM DISPL=.-COMTAB ;LENGTH OF TABLE - -;GENERATE THE DISPATCH TABLE PLUS SPECIAL BITS + ;GENERATE THE DISPATCH TABLE PLUS SPECIAL BITS DEFINE C(A,B,D) < Z B (D) @@ -442,8 +439,7 @@ IFN FT2REL,< MOVEI TAC,0 ;RETURN BOTH PHYSICAL AND LOGICAL CORE SOS (PDP) ;NEGATE SKIP RETURN WHICH CORE1 WILL DO JRST CORE1 ;GO DO IT AND RETURN TO CALLER - -; "PJOB" PRINT JOB NUMBER OF JOB TTY IS ATTACHED TO + ; "PJOB" PRINT JOB NUMBER OF JOB TTY IS ATTACHED TO INTERNAL PJOB,DECLF @@ -478,7 +474,7 @@ IFE FTSWAP+FTLOGIN,< JUMPE PROG,DLYCM1 ;DELAY COMMAND IF CORE ASSIGNED ON DISK JSP TAC1,MONJOB ;YES, SCHEDULE MONITOR JOB(PC IN EXEC MODE) ;RETURN HERE AT UUO LEVEL WHEN SCHEDULED -JOBKL: MOVEI TAC1,ESTOP ;PUT ESTOP ON END OF PDL + JOBKL: MOVEI TAC1,ESTOP ;PUT ESTOP ON END OF PDL JSP TAC,MONSTR ;GO SETUP ACS AND PD LIST PUSHJ PDP,JOB1 ;FLUSH CORE AFTER RELEASING DEVICES JOBKA: @@ -491,14 +487,15 @@ IFE FTLOGIN, < PUSHJ PDP,TTYKIL ;RETURN TTY TO VIRGIN STATE JRST KSTOP ;CLEAR JOB STATUS WORD AND STOP JOB + ;ERROR IN COMMAND + CERR: JRST ERRMES JOBKB: SETZM -1(PDP) ;CLEAR NOJOBN SO COMRET WILL PRINT ERROR MSG. JRST ATT4 ;"NOT A JOB" - -; "START L" OR "START" - START AT LOC, L OR STARTING ADDRESS + ; "START L" OR "START" - START AT LOC, L OR STARTING ADDRESS INTERNAL FT2REL EXTERNAL JOBSA @@ -528,8 +525,7 @@ SNOARG: SKIPA TAC1,JOBSA(JDAT) ;NO. ARG SPECIFIED, USE START ADR SUPPLIED ; BY PROGRAM END STATEMENT AND STORED BY LINKING LOADER ; SKIP INTO REENTER, START WITH PC IN USER MODE > - -;"REENTER" - REENTER USER PROGRAM + ;"REENTER" - REENTER USER PROGRAM EXTERNAL JOBREN @@ -592,8 +588,7 @@ CONT: MOVSI TAC1,JERR ASCIZ /CAN'T CONTINUE / - -; "CORE #" - ASSIGNS #*1024 WORDS OF CORE TO JOB + ; "CORE #" - ASSIGNS #*1024 WORDS OF CORE TO JOB ; "CORE" WITH NO ARG. WILL PRINT NO OF FREE BLOCKS LEFT ; WITHOUT AFFECTING CURRENT ASSIGNMENT OF CORE ; JOB NOT IN MIDDLE OF SWAPPING @@ -612,7 +607,6 @@ IFN FTSWAP,< ; IF ASKING FOR 0 CORE > LSH TAC1,12 ;CONVERT 1K BLOCKS TO WORDS - MOVEI TAC,-1(TAC1) ;HIGHEST RELATIVE ADDRESS=LENGTH-1 OF LOW SEG PUSHJ PDP,CORE0 ;TRY TO ASSIGN CORE JRST COR2 ;CORE NOT AVAILABLE. GO PRINT MESSAGE @@ -625,8 +619,7 @@ COR1: JUMPN PROG,COR0 ;GO RELEASE ALL DEVICES IF HE HAS CORE IN MEMORY YET JRST DLYCM ;AND DELAY COMMAND TILL CORE IS IN MEMORY ; DLYCM WILL SWAP IT IN. > - -COR2: IFN FTTTYSERM,< + COR2: IFN FTTTYSERM,< MOVE DEVDAT,-2(PDP) ;RESTORE TTY DDB ADR > PUSHJ PDP,INLMES ;PRINT ? FOR PATCH @@ -665,8 +658,7 @@ VIR. CORE LEFT =/ MOVE TAC,VIRTAL ;PRINT AMOUNT OF FREE SWAP SAPCE LEFT JRST RADX10 ;IN DECIMAL > - -; "SSAVE FILENAM.EXT [PROJ,PROG] CORE" + ; "SSAVE FILENAM.EXT [PROJ,PROG] CORE" ;WORKS LIKE SAVE, EXCEPT THAT HIGH SEG IS SAVED AS SHARABLE(EXT=SHR) ;INSTEAD OF NON-SHARABLE(EXT=HGH) @@ -703,8 +695,7 @@ LOGREF: MOVEM TAC,PRJPRG(ITEM) ;PRJ,PRG NRS. IN REFLAG SETZM REFLAG ;ONLY ONCE POPJ PDP, > - -;"HELP" -HELP COMMAND + ;"HELP" -HELP COMMAND INTERNAL FTLOGIN @@ -744,13 +735,13 @@ ALOGN1: PUSHJ PDP,TTYATT ;MAKE SURE TTY IS ATTACHED IN CASE JFCL > POPJ PDP, - -INTERN FTCCL + INTERN FTCCL IFN FTCCL,< CCLRUN: MOVE TAC,[SIXBIT /COMPIL/] ;CUSP NAME JRST ARCOM ;RUN IT + > ;"LOGIN" - LOGIN COMMAND @@ -784,8 +775,7 @@ CLOG2: SKIPE TAC,REFLAG ;REFLAG SET NON-ZERO FOR AUTOMATIC LOGIN? MOVE TAC,[SIXBIT /LOGIN/] ;CUSP NAME JRST ARCOM ;RUN IT > - -; "R CUSTNAME CORE" - DOES "RUN SYS:CUSPNAME" + ; "R CUSTNAME CORE" - DOES "RUN SYS:CUSPNAME" RCOM: MOVEI TAC,0 ;NO FILE NAME, TTY WILL SUPPLY IT JRST ARCOM1 @@ -812,14 +802,13 @@ IFE FTSWAP,< IFN FTSWAP,< JRST DLYCM ;NO. DELAY COMMAND UNTIL IN CORE > - -; "ASSIGN DEV:NAME" - ASSIGN DEVICE TO JOB AND GIVE IT LOGICAL NAME + ; "ASSIGN DEV:NAME" - ASSIGN DEVICE TO JOB AND GIVE IT LOGICAL NAME EXTERNAL DEVLST,PJOBN,SYSTAP ASSIGN: PUSHJ PDP, CTEXT1 ;GET FIRST ARGUMENT JUMPE TAC1, NOTENF ;NO ARGUEMNT TYPED IF 0 -IFN FTLOGIN, - -;ALREADY ASSIGNED TO ANOTHER JOB + ;ALREADY ASSIGNED TO ANOTHER JOB ASSER1: IFE FTTTYSER,< PDP PDP, TAC @@ -903,8 +890,7 @@ IFN FTTTYSER,< > ASSMS2: ASCIZ /ALREADY ASSIGNED TO JOB / - -;DEVICE ASSIGNED, GIVE IT A LOGICAL NAME + ;DEVICE ASSIGNED, GIVE IT A LOGICAL NAME ASSFIN: SETZM DEVLOG(DEVDAT) ;CLEAR LOGICAL NAME IFE FTTTYSER,< POP PDP,TAC ;RESTORE INPUT BYTE POINTER @@ -969,8 +955,7 @@ DEAER2: MOVE TAC1,DEVNAM(DEVDAT) ;PRINT PHYSICAL DEVICE NAME ASCIZ / WASN'T ASSIGNED / - -INTERNAL FTREASSIGN + INTERNAL FTREASSIGN IFE FTREASSIGN,< REASSI=UUOERR > @@ -1048,8 +1033,7 @@ REASS1: EXCH ITEM,(PDP) ;NEW JOB NO. IN ITEM REASS4: HRRZ DSER,DEVSER(DEVDAT) HRRZM DEVDAT,JOBFDV(JDAT) MOVE UCHN,USRHCU - -REASS2: MOVE DEVDAT,USRJDA(UCHN) ;GET XWD UUO BITS,DDB ADDRESS + REASS2: MOVE DEVDAT,USRJDA(UCHN) ;GET XWD UUO BITS,DDB ADDRESS HRRZ TAC,JOBFDV(JDAT) ;GET ADDR. OF DDB SAVED BY COMMAND PUSH PDP,UCHN ;SAVE USER CHANNEL CAIN TAC,(DEVDAT) ;IS CHOSEN DEVICE ON THHS CHANNEL? @@ -1088,8 +1072,7 @@ REASE7: MOVE TAC1,DEVNAM(DEVDAT) ASCIZ / CAN'T BE REASSIGNED / > - -INTERNAL FTATTACH + INTERNAL FTATTACH IFN FTATTACH,< ;"ATTACH DEVNAME" -ATTACHES A PREVIOUSLY PARTITIONED DEVICE @@ -1190,8 +1173,7 @@ ATT6: POP PDP,DEVDAT ASCIZ /WASN'T DET / > - -INTERNAL FTATTACH + INTERNAL FTATTACH IFN FTATTACH,< ;"DETACH" - DETACH CONSOLE FROM JOB @@ -1234,8 +1216,7 @@ DETACH: PUSHJ PDP,CTEXT1 ;GET ARGUMENT HRRM TAC1,TTYTAB(TAC) ;SO THAT SCNSER CHECKS FOR THIS POP PDP,DEVDAT ;RESTORE TTY DDB POPJ PDP, ;SUCCESSFUL RETURN - -TEMP1: POP PDP,DEVDAT ;RESTORE TTY DDB + TEMP1: POP PDP,DEVDAT ;RESTORE TTY DDB JRST DEAER1 ;PRINT ERROR MSG. AND RETURN TEMP2: IFE FTTTYSER,< POP PDP,DEVDAT ;RESTORE TTY DDB @@ -1247,10 +1228,8 @@ IFN FTTTYSER,< LOGER1: JSP TAC,ERRMES ASCIZ /CAN'T DET DEV / - >> ;CLOSE BOTH FTLOGIN AND FTATTACH CONDITIONALS. - -;"DAYTIME" - PRINT TIME OF DAY + ;"DAYTIME" - PRINT TIME OF DAY EXTERNAL TIME,THSDAT,MONTAB,JIFMIN @@ -1287,8 +1266,7 @@ DAYTM1: MOVE TAC,THSDAT ;PRINT TODAY'S DATE PUSHJ PDP,PRSPC MOVE TAC,TIME ;PRINT TIME OF DAY JRST PRTIM1 - -INTERNAL FTTIME + INTERNAL FTTIME IFN FTTIME,< ;"TIME (JOB NO.)" - PRINT TOTAL AND INCREMENTAL RUNNING TIME FOR A JOB ;FOLLOWED BY KILO-CORE TICKS @@ -1329,8 +1307,8 @@ RUN2: PUSHJ PDP,INLMES ;PRINT ASCIZ /UP / MOVE TAC,UPTIME JRST PRTIME ;AND RETURN - -RUN1: + + RUN1: IFE FTLOGIN,< MOVEI TAC,0 ;GET SET TO CLEAR INCREMENTAL RUN TIME > @@ -1356,8 +1334,7 @@ IFE FTKCT,< JRST PRTIME ;PRINT IT AND RETURN > > - -;ROUTINE TO LET TTY TALK TO ANY OTHER RING OF TTYS + ;ROUTINE TO LET TTY TALK TO ANY OTHER RING OF TTYS ; "TALK TTYN" ; TTYN NEED NEVER HAVE BEEN TYPED ON BEFORE @@ -1387,8 +1364,7 @@ TALK1: MOVE DEVDAT,-2(PDP) ;RESTORE TTY DDB ASCIZ /BUSY / > - -INTERNAL FTEXAMINE + INTERNAL FTEXAMINE IFN FTEXAMINE,< @@ -1464,8 +1440,9 @@ DCOM1: PUSHJ PDP,DEAT ;CHECK FOR AC REFERENCE HRLI TAC1,PROG ;SET FOR RELOCATION MOVEM IOS,@TAC1 POPJ PDP, - -DEAT: TLZ TAC1,-1 ;CLEAR LH IN CASE THIS IS A SUCCESSIVE E WITH NO ARG + + + DEAT: TLZ TAC1,-1 ;CLEAR LH IN CASE THIS IS A SUCCESSIVE E WITH NO ARG HRRM TAC1,JOBEXM(JDAT) ;STORE FOR NEXT TIME, DO NOT TOUCH LH(D OR E LAST) ; YES, WAS JOB STOPPED IN USER MODE? CAIL TAC1,20 ;IS IT AN AC? @@ -1484,10 +1461,8 @@ IFN FT2REL,< ECOMA: JSP TAC,ERRMES ;OUT OF BOUNDS ASCIZ /OUT OF BOUNDS / - > - -IFN FTLOGIN,< + IFN FTLOGIN,< ;"SCHEDULE OCTN" - SETS RH OF STATES TO OCTN, IF TYPED FROM ; THE OPERATOR CONSOLE (C(DEVOPR)), OTHERWISE ILLEGAL ;"SCHEDULE" WITH NO ARGUMENTS TYPES OUT RH OF STATES, LEGAL FOR ALL. @@ -1525,8 +1500,7 @@ IFN FTTTYSER,< ;COMMAND NOT IN COMMAND DICECTORY NOCOM: JRST COMERR ;NO, APPEND ? TO WHAT HE TYPED IN - -IFN FTFINISH,< + IFN FTFINISH,< ; "FINISH DEVICE" - CLOSES,RELEASE AND DESASSIGNS DEVICE ;JOB MUST HAVE CORE @@ -1558,8 +1532,7 @@ FDV1: HRRZ DEVDAT,USRJDA(UCHN) ;GET NEXT DEVICE JFCL ;IGNORE IF NOT ASSIGNED BY CONSOLE JRST ESTOP ;STOP JOB SO HE CANNOT CONTINUE > - -IFN FTTIME,< + IFN FTTIME,< ;"RESOURCES" - PRINT OUT AVAILABLE DEVICES AND FREE BLOCKS ON THE DISK EXTERNAL DEVLST @@ -1608,8 +1581,7 @@ LOP02: HLRZ T,DEVSER(T) ;GET NEXT DEVICE IN CHAIN JUMPN T,LOP01 ;IS THERE ONE? JRST CRLF ;NO. DONE, PRINT CR. LF AND THEN POPJ > - -EXTERNAL CPOPJ,STUSER + EXTERNAL CPOPJ,STUSER ;ROUTINE TO CHECK FOR ACTIVE DEVICES ;NEVER GET HERE DURING SWAP IN OU OUT ;SINCE COMMAND TABLE SHOULD AHVE NOTRAN BIT ON @@ -1670,8 +1642,7 @@ STOPC: HLRZ DEVDAT,DEVSER(DEVDAT) JRST STOPD JRST CPOPJ1 ;OK TO STOP > - -SUBTTL COMCSS - COMMON COMMAND SUBROUTINES + SUBTTL COMCSS - COMMON COMMAND SUBROUTINES ;ROUTINE TO RETURN NEXT ALPHANUMERIC STRING ; IN COMMAND LINE (SIXBIT) @@ -1698,7 +1669,7 @@ IFE FTTTYSER,< CTEX0: ILDB TEM,TAC > IFN FTTTYSER,< -EXTERN TAKR,GETCHAR +EXTERN TAKR,GETCHR LDB TEM,TAKR(DAT) ;GET LAST CHAR. JRST CTEX1 CTEX0: PUSHJ PDP,GETCHR ;ROUTINE IN SCNSER TO PICK UP CHAR. @@ -1709,8 +1680,7 @@ CTEX1: PUSHJ PDP, CTEX ;IS IT ALPHANUMERIC TLNE T,770000 ;SIX CHARS YET? IDPB TEM,T ;NO. BUILD WORD JRST CTEX0 ;LOOP FOR MORE - -;SCAN FOR ALPHANUMERIC CHAR IN TEM + ;SCAN FOR ALPHANUMERIC CHAR IN TEM CTEX: CAILE TEM,"Z"+40 ;GREATER THAN LC Z? JRST CTEXA ;YES. NOT SIXBIT. CAIL TEM,"A"+40 ;LOWER CASE LETTER? @@ -1735,8 +1705,7 @@ CTXCNC: MOVSI TAC1,(SIXBIT /HAL/) ;MAKE PHONY HALT COMMAND MOVSI TEM,12 ;WITH LF FOR TERMINATION JRST TPOPJ ;AND RETURN UP A LEVEL > - -;ROUTINE TO IGNORE LEADING SPACES, TABS, AND NULLS + ;ROUTINE TO IGNORE LEADING SPACES, TABS, AND NULLS ;ALSO CLEARS TAC1 ;DOES NOT RETURN IF PREVIOUS CHAR. OR NEXT NON-SPACING ;CHAR, IS CR(IE POPS SUBROUTINE LEVEL UP 1 ON RETURN) @@ -1780,8 +1749,7 @@ SKIPS3: CAIN TEM,3 ;^C? MOVEI TEM,12 ;FOR BREAK CONSISTENCY JRST TPOPJ ;RETURN ONE LEVEL UP > - -;ROUTINE TO APPEND A "?" TO INPUT STRING AND SET AS OUTPUT + ;ROUTINE TO APPEND A "?" TO INPUT STRING AND SET AS OUTPUT ;CALLED FROM OCTIN, RETURNS TO SECOND LEVEL ON PDL ;CALL: MOVE TAC, BYTE POINTER TO LAST CHAR. IN INPUT STRING ; PUSHJ PDP, COMERA @@ -1823,8 +1791,7 @@ IFE FTTTYSER,< DPB T,DAT > TDZA ITEM,ITEM ;CLEAR JOB NO. AND SKIP INTO CRLF ROUT. - -;ROUTINE TO PRINT A COMMAND ERROR MESSAGE + ;ROUTINE TO PRINT A COMMAND ERROR MESSAGE ;SAME CALL AS CONMES INTERNAL ERRMES @@ -1869,8 +1836,7 @@ IFE FTTTYSER,< IDPB TEM,DAT > JRST CON0 ;KEEP GOING - -;ROUTINE TO PRINT INLINE ASCIZ MESSAGE + ;ROUTINE TO PRINT INLINE ASCIZ MESSAGE ;CALL: PUSHJ PDP,INLMES ; ASCIZ /THE MESSAGE/ ;RETURN TO NEXT LOC AFTER MESSAGE @@ -1900,6 +1866,7 @@ IFE FTTTYSER,< PRSPC: MOVEI TAC,[ASCIZ / /] JRST CONMES + ;ROUTINE TO PRINT "TOO FEW ARGUMENTS" ;CALL: MOVE DAT,BYTE POINTER ; PUSHJ PDP,NOTENF @@ -1969,7 +1936,7 @@ DEA1: CAIE DEVDAT,@(PDP) ;IS THIS DEVICE NOT TO BE DEASSIGNED? POP PDP,DEVDAT ;RESTORE TTY DDB ADDRESS POPJ PDP, -;ROUTINE TO REA CONSOLE AND CONVERT ANY RADIX NUMBER +;ROUTINE TO READ CONSOLE AND CONVERT ANY RADIX NUMBER ; CALL: MOVE TAC1, DESIRED RADIX ; MOVE TAC, BYTE POINTER TO FIRST CHARACTER ; PUSHJ PDP, ANYRIN @@ -2000,7 +1967,7 @@ OCT0: CAIGE TEM,175 ;ALTMODES(175 OR 176)? ; BEFORE [P,P] IN ATT AND GET COMMANDS. JRST CPOPJ2 ;YES. SKIP RETURN CAIE TEM,"-" ;DASH? - CAIG TEM,400 ;SPACE OR CONTROL CHAR? + CAIG TEM,40 ;SPACE OR CONTROL CHAR? JRST CPOPJ2 ;YES, ONLY LEGAL TERMINATORS CAIE TEM,"," ;COMMA? CAIN TEM,"]" ;RIGHT BRACKET? @@ -2014,8 +1981,7 @@ OCT0: CAIGE TEM,175 ;ALTMODES(175 OR 176)? IFE FTTTYSER,< ILDB TEM,TAC ;NEXT CHAR> IFN FTTTYSER,< PUSHJ PDP,GETCHR> ;NEXT CHAR JRST OCT0 - -INTERNAL FTLOGIN + INTERNAL FTLOGIN IFN FTLOGIN,< ;GET PROJECT-PROGRAMMER NUMBERS ;CALL: MOVE TAC,INPUT BYTE POINTER @@ -2067,8 +2033,7 @@ IFE FTTTYSER, ;YES, SKIP IT IFN FTTTYSER, ;YES, SKIP IT SO FINAL ] IS OPTIONAL POPJ PDP, ;RETURN RO CALL > - -;ROUTINE TO PRINT TIME AS HOURS,MINUTES,SECONDS, AND HUNDRETHS + ;ROUTINE TO PRINT TIME AS HOURS,MINUTES,SECONDS, AND HUNDRETHS ;FORMAT IS HHMM:SS.HH ;CALL: MOVE TAC,TIME IN JIFFIES(60THS,50THS OR MILLISECONDS) ; MOVE DAT,OUTPUT TEXT BYTE POINTER @@ -2108,8 +2073,7 @@ PR1: POP PDP,TAC ;RESTORE SECONDS(IN JIFFIES) CAIL TAC1,JIFSC2 ;ROUND IF GREATER THEN HALF AOS TAC JRST PRT2LF ;PRINT - -PRTIM1: IDIVI TAC,JIFMIN ; + PRTIM1: IDIVI TAC,JIFMIN ; IDIVI TAC,^D60 ;HOURS,MINUTES IN TAC,TAC1 PUSHJ PDP,PRT2 PUSHJ PDP,INLMES ;PRINT "HH:" @@ -2122,8 +2086,7 @@ PRT2: MOVEI TEM,"0" CAIGE TAC,^D10 XCT CONOUT ;PUT LEADING 0 IF LESS THEN 10 JRST RADX10 ;PRINT REST OF NUMBER - -;ROUTINE TO PRINT SIZE OF LOGICAL SEGMENT (LOW OR HIGH) + ;ROUTINE TO PRINT SIZE OF LOGICAL SEGMENT (LOW OR HIGH) ;CALL: MOVE ITEM, HIGH OR LOW SEG NUMBER ; PUSHJ PDP,PRT SEG ; RETURN @@ -2154,8 +2117,7 @@ IFN FTSWAP,< JUMPE TAC1,CPOPJ ;IS IT IN CORE? LSH TAC1,-12 ;YES, CONVERT TO #K-1 AOJA TAC1,CPOPJ ;ADD 1 AND RETURN NUMBER OF K - -;ROUTINE TO ASSIGN A MINIMAL CORE AREA(140 WORDS) + ;ROUTINE TO ASSIGN A MINIMAL CORE AREA(140 WORDS) ;CALLED FROM CORE,KJOB, AND RUN COMMANDS ;THIS ROUTINE PRESERVES INPUT BYTE POINTER IN TAC ;CALL: PUSHJ PDP,GETMIN @@ -2189,8 +2151,7 @@ IFN FTTTYSER,< IFE FTTTYSER,< JRST TPOPJ ;RESTORE TAC AND RETURN > - -;ROUTINE TO GET 1 WORD FORM USER ARE WHICH CAN BE IN LOW OR HIGH SEG + ;ROUTINE TO GET 1 WORD FORM USER ARE WHICH CAN BE IN LOW OR HIGH SEG ;CALL: MOVE PROG,[XWD PROT,RELOC FOR LOW SEG] ; MOVE ITEM,JOB NUMBER ; HRLI UUO,PROG ;FOR RELOCATION @@ -2215,8 +2176,7 @@ IFE FT2REL,< > MOVE TAC,@UUO ;YES, GET IT FROM LOW SEG JRST CPOPJ1 ;AND SKIP RETURN - -SUBTTL SAVGET - SAVE,GET,R,RUN COMMANDS AND RUN,GETSEG UUOS + SUBTTL SAVGET - SAVE,GET,R,RUN COMMANDS AND RUN,GETSEG UUOS ;SAVGET LOWER CORE LOCATIONS USED FOR UUOS TO MONITOR ;USED IN SAVGET IN APRSER AND SAVGET IN SEGCON @@ -2248,8 +2208,7 @@ SUBTTL SAVGET - SAVE,GET,R,RUN COMMANDS AND RUN,GETSEG UUOS XP SGALOW,17 ;LH=EXT WHICH USER TYPED FOR SAVE OR GET COMMAND ; OR .SAV IF HE DIDN'T TYPE AN ARG WITH LEADING PERIOD ; RH=0 - -;ROUTINE TO SCAN COMMAND STRING ARGUMENTS FOR SAVE,GET,RUN AND R + ;ROUTINE TO SCAN COMMAND STRING ARGUMENTS FOR SAVE,GET,RUN AND R ;COMAMNDS AND STORE THEM IN JOB DATA AREA WHICH MUST BE IN CORE ;WHEN SGSET IS CALLED FROM COMMAND DECODER ;CALL: MOVE TAC,INPUT BYTE POINTER @@ -2298,8 +2257,7 @@ SGSET1: MOVEM TAC1,SGANEW(PROG) ;STORE FOR RUN AND SAVE ; GUARRANTEE LH OF PC WORD IS 0, SINCE IT WILL ; BE ADDED TO STARTING ADDRESS(IF RUN COM) JRST MSTART ;START JOB WITH PC IN MONITOR MODE - -;ROUTINE TO PICKUP ARGUMENTS FOR RUN AND GETSET UUOS + ;ROUTINE TO PICKUP ARGUMENTS FOR RUN AND GETSET UUOS ;THIS ROUTINE DOES SAME THING AS SGSET, EXCEPT THAT ARGUMENTS ARE ;OBTAINED FROM USER UUO ARGUMENTS INSTEAD OF FROM CONSOLE COMMAND ;THE USERS ARG ARE MOVED TO USER ACS(SGA...), THEREBY CLOBBERING HIS AC$S @@ -2312,7 +2270,7 @@ SGSET1: MOVEM TAC1,SGANEW(PROG) ;STORE FOR RUN AND SAVE ; RETURN INTERN GETARG - EXTERN JBTPROG,JOBCORE,PUUOAC + EXTERN JBTPRG,JOBCOR,PUUOAC GETARG: HRR UUO,TAC ;MOVE ADR. OF ARG LIST TO UUO EXCH TAC,(PDP) ;AND PUT ON PD LIST @@ -2342,8 +2300,7 @@ IFN FT2REL,< ; IGNORE LH JRST SG2A ;GO SET UP LOWER CORE AND RETURN ; DO NOT DO A RESET - -;THIS JOB SAVES A JOB AREA ON RETRIEVABLE STORAGE + ;THIS JOB SAVES A JOB AREA ON RETRIEVABLE STORAGE ;THIS JOB RUNS IN EXEC MODE AND CALLS IO ROUTINES USING REGULAR UUOS ;NO ATTEMPT IS MADE TO SAVE STATUS OF IO DEVICES, JOBDP, OR AC'S ;IN FACT THE ONLY USEFUL THING WHICH MAY BE DONE WITH A JOB AREA @@ -2378,8 +2335,7 @@ SAVJB1: OPEN 0,SGAMOD ;RE INIT DEVICE, SO UGETF WILL SET FIRST FREE JRST SAVERR ;DIRECTORY FULL OR PROTECTION FAILURE MOVE TAC,JOB41(JDAT) ;SAVE USER UUO HANDLING JSR MOVEM TAC,JOBS41(JDAT) ;IN UPPER PART OF JOB DATA AREA - - MOVE TAC,JOBDDT(JDAT) ;SAVE DDT STARTING ADDRESS HIGHER UP IN JOB DATA AREA + MOVE TAC,JOBDDT(JDAT) ;SAVE DDT STARTING ADDRESS HIGHER UP IN JOB DATA AREA MOVEM TAC,JOBSDD(JDAT) ;SO COMPRESS ALWAYS MOVES CODE DOWN HRROS USRHCU ;FLAG THAT SAVE GET IS UNDER WAY ; SO THAT JOBHRL WILL NOT BE MODIFIED BY SETHGH RUOTINE @@ -2421,8 +2377,7 @@ CMPTHR: HRLI TEM,254000 ;SET A JRST C(JOBSA) ; CORE ON START ,ODT,SAVE, REENTER,SSAVE IN CASE ; THIS SAE IO DOES NOT GO TO COMPLETION. (CONTROL C ; OR DEVICE FULL, SO THAT CORE DOES NOT GET EXPANDED - - PUSHJ PDP,SGDOA ;DO OUTPUT,RELEASE,FIND TTY + PUSHJ PDP,SGDOA ;DO OUTPUT,RELEASE,FIND TTY OUTPUT 0,SGALEN ;OUTPUT UUO EXECUTED BY SGDO ; RETURN HERE ONLY IF NO ERRORS SAVFIN: PUSHJ PDP,SGREL ;RELEASE DEVICE AND FIND TTY @@ -2464,8 +2419,7 @@ RUNJOB: JSP TAC1,SG1 ;SETUP ACS, SETUP LOWER CORE(SGALEN,SGADMP) ; PUT TAC1 AS FIRST ITEM ON PD LIST(JOBPN1) ; LH USED BY SGRELE ON ERROR TO SEE IF FROM USER ; AND LH ADDED TO START PC(JOBSA) BY URUN - -;RUN UUO + ;RUN UUO ;CALL: MOVE AC,[XWD N,D] ; CALL AC,[SIXBIT /RUN/] ; ERROR RETURN ;UNLESS LH=HALT(PRINT CONSOLE MESS, IF YES) @@ -2511,8 +2465,7 @@ IFN FT2REL,< HRLI TAC1,USRMOD ;SET USER MODE BIT IN PC PUSH PDP,TAC1 ;PUT ON PD LIST JRST USRXIT ;AND GO TO RETURN TO USER AS IF FROM UUO - -;UUO TO GET JUST HIGH SEG AND RETURN TO USER + ;UUO TO GET JUST HIGH SEG AND RETURN TO USER ;CALL IS THE SAME AS FOR RUN UUO EXCEPT THAT OK RETURN IS SKIP RETURN ;IF ERROR RETURN HAS HALT IN LH, STANDARD CONSOLE MESSAGE IS PRINTED AND JOB STOPPED @@ -2526,8 +2479,7 @@ IFN FT2REL,< UGTERR: MOVEI TAC,ILUERR ;ILLEGAL UUO ERROR CORE PUSHJ PDP,SGRELE ;SEE IF USER WANTS ERROR JRST UUOERR ;NO, PRINT ILLEGAL UUO - -;ROUTINE TO SETUP ACS, RESET IO, AND SETUP LOWER CORE LOCATIONS + ;ROUTINE TO SETUP ACS, RESET IO, AND SETUP LOWER CORE LOCATIONS ;FOR SAVE AND GET(SGALEN SET IO IOWD OR PP IF DTA OR DSK) ;SGADMP SET TO IOWD FOR THIS SIZE CORE ;CALL: JSP TAC1,SG1 @@ -2568,8 +2520,7 @@ IFN FT2REL,< > JRST SGERRA ;NOT AVAILABLE ;DEVICE INITED(OR FOUND) - -;COMMON EXIT FROM SAVHGH AND GETHGH ROUTINES(HIGH SEG SAVE AND GET) + ;COMMON EXIT FROM SAVHGH AND GETHGH ROUTINES(HIGH SEG SAVE AND GET) ;SO THAT SGA... LOCATIONS ARE RESTOREED TO ORIGINAL VALUES FOR LOW SEG SG3: MOVE TAC,JOBFF(JDAT) ;FIRST FREE LOC IN JOB(SET FROM LH OF @@ -2617,8 +2568,7 @@ SGERR1: MOVEI TAC,NSDERR ;ERROR CODE IN CASE RUN UUO(NO SUCH DEVICE) ; OR FIND TTY AND PRINT ?CRLF JSP TAC,PHOLD ;START TTY AND STOP JOB ASCIZ /NO SUCH DEVICE/ - -;ROUTINE TO GET FILE FROM DEVICE(LOW AND/OR HIGH) + ;ROUTINE TO GET FILE FROM DEVICE(LOW AND/OR HIGH) ;CALL: ACS JDAT,PROG,PDP,DEVDAT SETUP ; MOVE ITEM,JOB NUMBER ; IFN FTDISK, @@ -2672,25 +2622,7 @@ LOWFIN: HRRZ TAC,JOBCOR(JDAT) ;CORE ARG FROM PREVIOUS SAVE(THIS MONITOR ; USER TO USE TO RESET CORE TO INITIAL SETTING WHEN ; PROGRAM IS RESTARTED ; FALL INTO SGREL -;ROUTINE TO RELEASE DEVICE AND FIND TTY -INTERN SGREL - -SGREL: SKIPN DEVDAT,USRJDA ;HAS CHANNEL BEEN RELEASED ALREADY? - JRST SGREL2 ;YES, FIND TTY AND WAIT FOR OUTPUT TO FINISH - PUSH PDP,T4 ;NO, - MOVE TAC1,DEVMOD(DEVDAT) - TLNE TAC1,DVMTA ;MAGTAPE? - TLNN DEVDAT,INPB ;YES, WAS AN INPUT DONE? - JRST SGREL1 ;NO - CLOSE 0,CLSOUT ;YES, CLOSE MTA INPUT - STATO 0,IOTEND+IODEND ;AT END OF APTE? - MTAPE 0,16 ;NO SKIP TO EOF -SGREL1: RELEASE 0, ;NO RELEASE DEVICE - POP PDP,T4 -SGREL2: - JRST TTYFNU ;FIND TTY FOR CURRENT USER - -;ROUTINE TO EXECUTE DUMP MODE COMMAND LIST SETUP IN SGALEN(R) + ;ROUTINE TO EXECUTE DUMP MODE COMMAND LIST SETUP IN SGALEN(R) ;AND CHECK FOR ERRORS. USED ONLY TO READ LOW FILE. ;CALL: PUSHJ P,SGDO ; INPUT 0,SGALEN OR OUTPUT 0,SGALEN @@ -2730,8 +2662,24 @@ SGIOCK: MOVE T4,DEVIOS(DEVDAT) ;IO STATUS WORD FOR THIS DEVICE ; OF FIND TTY AND PRINT ?CRLF JSP TAC,PHOLD ;START TTY AND STOP JOB ASCIZ /TRANSMISSION ERROR/ - -;ROUTINE TO EXPAND CORE AFTER A SAVE(LOW SEG ONLY) +;ROUTINE TO RELEASE DEVICE AND FIND TTY +INTERN SGREL + +SGREL: SKIPN DEVDAT,USRJDA ;HAS CHANNEL BEEN RELEASED ALREADY? + JRST SGREL2 ;YES, FIND TTY AND WAIT FOR OUTPUT TO FINISH + PUSH PDP,T4 ;NO, + MOVE TAC1,DEVMOD(DEVDAT) + TLNE TAC1,DVMTA ;MAGTAPE? + TLNN DEVDAT,INPB ;YES, WAS AN INPUT DONE? + JRST SGREL1 ;NO + CLOSE 0,CLSOUT ;YES, CLOSE MTA INPUT + STATO 0,IOTEND+IODEND ;AT END OF APTE? + MTAPE 0,16 ;NO SKIP TO EOF +SGREL1: RELEASE 0, ;NO RELEASE DEVICE + POP PDP,T4 +SGREL2: + JRST TTYFNU ;FIND TTY FOR CURRENT USER + ;ROUTINE TO EXPAND CORE AFTER A SAVE(LOW SEG ONLY) ;CALL: MOVE DEVDAT,DEVICE ADR. ; MOVE PROG,JOBADR. ; MOVE ITEM,JOB NUMBER @@ -2771,8 +2719,7 @@ EXPAND: HLRE AC3,SGALEN(PROG) ;-LENGTH OF FILE JRST EXPND1 EXPZ: MOVSI TAC,-2 HLLM TAC,JOBSV(PROG) - -;COME HERE TO DO THE ACTUAL EXPANSION OF A FILE + ;COME HERE TO DO THE ACTUAL EXPANSION OF A FILE EXPND1: MOVE TAC,[XWD PROG,JOBSV] ;IT WAS READ INTO JOBSV MOVE TAC,@TAC ;FIRST IOWD EXPLP1: HRRZ AC1,TAC1 ;ADDRESS OF IOWD @@ -2791,7 +2738,6 @@ EXPLP1: HRRZ AC1,TAC1 ;ADDRESS OF IOWD HRRZ TAC,@TAC ;TOP REAL LOCATION NEEDED TRO TAC,1777 ;MAKE IT NK-1 - HLRZ TAC1,PROG ;PRESENT SIZ OF LOW SEG CAMG TAC,TAC1 ;IS THERE ENOUGH? JRST EXPCOR ;YES. @@ -2825,8 +2771,7 @@ EXPLP3: SOS AC1 MOVEM AC2,JOBDDT(JDAT) ;SET USER DDT STR ADR JRST SGDO2 ;AND SETUP USRDDT IN MONITOR PROTECTED ; FROM THIS USER - -;THIS ROUTINE WILL DELETE ALL DATA FROM A COMPRESSED FILE + ;THIS ROUTINE WILL DELETE ALL DATA FROM A COMPRESSED FILE ;WHICH IS BELOW JOBSOD (PROBABLY WRITTEN BY TENDUMP) TOOLOW: HLRE AC2,@TAC ;WORDCOUNT OF OFFENDING IOWD @@ -2851,8 +2796,7 @@ IOWBLT: MOVSI TAC,@TAC ;YES, KEEP THE ENTIRE IOWD DATA SUBI AC3,(TAC) ;AC3 POINTS TO TOP OF DATA READ IN-(N) BLT TAC1,@AC3 ;MOVE ONLY GOOD DATA DOWN JRST EXPND1 ;GO EXPAND THE GOOD DATA - -SGDO1: MOVEI TAC,JOBDDT(PROG) ;MOVE EVERYTHING DOWN )MUST BE NON-COMPRESSED DSK FILE + SGDO1: MOVEI TAC,JOBDDT(PROG) ;MOVE EVERYTHING DOWN )MUST BE NON-COMPRESSED DSK FILE HRLI TAC,JOBSVD(TAC) ;OR CONVERT SAVE FILE SKIPGE JOBSV(JDAT) ;IS THIS CONVERT FILE(FIRST WORD IS IOWD)? HRLI TAC,JOBSDP(TAC) ;YES, ALSO SKIP OVER IOWD @@ -2863,8 +2807,7 @@ SGDOER: POP PDP,TAC SETZM JOBHCU(JDAT) ;CLEAR LH AND SET HIGHEST USER CHAN, IN ; USE TO 0(WHERE IT SHOULD BE ANYWAY) POPJ PDP, ;ERROR RETURN OR OK RETURN - -;ROUTINE TO CHECK USER SUPPLIED CORE ARG AND CHECK TO SEE IF 0 + ;ROUTINE TO CHECK USER SUPPLIED CORE ARG AND CHECK TO SEE IF 0 ;OR GREATER THAN OR EQUAL TO IOWD USED TO SAVE OR GET FILE ;CALL: HLRE TAC1,-NO. OF WORDS IN FILE ; PUSHJ PDP,CKIOWD @@ -2908,6 +2851,7 @@ NOROOM: MOVEI TAC,NECERR ;ERROR CODE IN CASE THIS IS RUN UUO(NOT ENOUGH CORE) JSP TAC,PHOLD ;START TTY ADN STOP JOB ASCIZ /K OF CORE NEEDED/ + ;ROUTINE TO ASSIGN CORE FOR LOW AND HIGH SEG ;CALL: MOVE PROG,LOW SEG RELOCATION ; HRR TAC,HIGHEST LOC DESIRED @@ -2921,8 +2865,7 @@ GETCOR: HRRZM TAC,SGACOR(PROG) ;SOTRE CORE ARG FOR CORE UUO IN USER AC CALLI SGACOR,11 ;DO CORE UUO JRST NOROOM ;NOT AVAILABLE, PRINT ERROR AND AMOUNT TRYING FOR JRST TPOPJ ;OK, REMOVE TAC FROM PD LIST AND RETURN - -;ROUTINE TO PRINT NOT A SAVE FILE IF WRONG FORMAT FILE DETECTED + ;ROUTINE TO PRINT NOT A SAVE FILE IF WRONG FORMAT FILE DETECTED INTERN GETERR @@ -2948,8 +2891,7 @@ NOFILE: MOVEI TAC,FNFERR ;ERROR CODE IN CASE THIS IS RUN UUO(FILE NOT FOUND PUSHJ PDP,PRNAME JSP TAC,PHOLD ;START TTY AND STOP JOB ASCIZ / NOT FOUND/ - -;ROUTINE TO RELEASE DEVICE ON AN ERROR AND CHECK TO SEE + ;ROUTINE TO RELEASE DEVICE ON AN ERROR AND CHECK TO SEE ;IF THIS IS A MONITOR COMMAND OR USER UUO ;IF USER UUO, GIVE ERROR RETURN TO USER UNLESS THERE IS A HALT ;IN LH OF EROR RETURN WORD, IN WHICH CASE FIND TTY, PRINT ?CRLF @@ -2991,4 +2933,3 @@ SGRLE1: PUSHJ PDP,SGREL ;RELEASE DEVICE AND FIND TTY ASCIZ /? / COMEND: END ;END OF COMCON -