;IF A COMMAND FUNCTION CANNOT DO THIS, IT MUST JUST SET\r
;THE JOB TO RUNABLE STATUS AND RETURN IMMEDIATELY\r
;OR DELAY THE COMMAND FOR LATER EXECUTION\r
-\f\r
-INTERNAL COMMAND\r
+\fINTERNAL COMMAND\r
INTERNAL FTLOGIN,FTSWAP,FTTIME\r
EXTERNAL COMCNT,TTYCOM,JBTSTS,JOBMAX,JBTDAT,JBTADR,JOBHCU\r
EXTERNAL CONFIG,HIGHJB\r
COMNEQ: AOBJN T,COMLP ;NO, KEEP LOOKING\r
CAIN T4,1 ;DID ONE AND ONLY ONE COMMAND MATCH?\r
MOVE T,T3 ;YES, GET ITS INDEX\r
-\f\r
-COMFND: MOVE TAC1,DISP(T) ;GET DISPATCH TABLE ENTRY,\r
+\fCOMFND: MOVE TAC1,DISP(T) ;GET DISPATCH TABLE ENTRY,\r
PUSH PDP,TAC1 ;SAVE RH(DISPATCH ADR,+BITS)\r
MOVE T,JBTSTS(ITEM) ;JOB STATUS WORD FOR THIS JOB\r
IFN FTLOGIN,<\r
>\r
CAMLE ITEM,HIGHJB ;HIGHEST JOB NUMBER ASSIGNED?\r
MOVEM ITEM,HIGHJB ;YES,SAVE IT FOR SCHEDULER SCAN OF JOBS\r
-\f\r
-CHKRUN: TLNE T,RUN ;RUN BIT ON IN JOB STATUS?\r
+\fCHKRUN: TLNE T,RUN ;RUN BIT ON IN JOB STATUS?\r
TLNN TAC1,NORUN ;YES, DOES THIS COMMAND REQUIRE A JOB?\r
JRST CHKACT ;NO\r
JSP TAC,COMER ;YES.\r
TLNN TAC1,INCOR ;IS THIS TRUE?\r
CHKDLY: HRRI TAC1,DLYCM1 ;NO, JUST DELAY COMMAND UNTIL SWAP OUT OR IN IS FINISHED\r
JRST COMDIS ;AND DISPATCH TO DELAY COMMAND\r
+>\r
CHKCO2: TLNE TAC1,NOACT ;CAN COMMAND BE PERFORMED WITH ACTIVE DEVICES?\r
PUSHJ PDP,RUNCHK ;NO, RETURN IF JOB STOPPED AND NO ACTIVE DEVICES\r
CHKCO1: TLNE TAC1,NOCORE ;DOES THIS COMMAND NEED CORE?\r
JSP TAC,COMER ;NO, PRINT "NO CORE ASSIGNED"\r
ASCIZ /NO CORE ASSIGNED\r
/\r
-\f\r
-CHKXPN: TLNN TAC1,PLSXPN ;DOES THIS COMMAND NEED CORE TO BE EXPANDED?\r
+\fCHKXPN: TLNN TAC1,PLSXPN ;DOES THIS COMMAND NEED CORE TO BE EXPANDED?\r
JRST COMGO ;NO\r
HLRE IOS,JOBHCU(JDAT) ;YES, IS CORE STILL COMPRESSED(SAVE DID NOT GO\r
; TO COMPLETION)\r
\r
COMDIS: MOVEI IOS,0 ;CLEAR IOS FOR SETTING DISPATCH ADDRESSES\r
PUSHJ PDP,(TAC1) ;DISPATCH TO COMMAND SETUP ROUTINE.\r
-\f\r
-;RETURN FROM COMMAND SETUP ROUTINE\r
+\f;RETURN FROM COMMAND SETUP ROUTINE\r
\r
COMRET: POP PDP,T1 ;RESTORE COMMAND FLAGS\r
POP PDP,DEVDAT ;RESTORE TTY DDB ADDRESS.\r
PUSHJ PDP,PRSPC\r
PUSHJ PDP,DAYTM1\r
>\r
-\f\r
-PCRLF: TLNE T1,ERRFLG ;DID AN ERROR OCCUR?\r
+\fPCRLF: TLNE T1,ERRFLG ;DID AN ERROR OCCUR?\r
PUSHJ PDP,PRQM ;YES. APPEND ?\r
TLNN T1,NOCRLF ;SUPRESS CRLF?\r
PUSHJ PDP,CRLF ;NO\r
JUMPN TEM,SKPBR2 ;LOOK FURTHER FOR BREAK\r
JRST TPOPJ ;UNLESS NO MORE CHARS\r
>\r
-\f\r
-;TABLE OF CONSOLE COMMANDS\r
+\f;TABLE OF CONSOLE COMMANDS\r
\r
INTERNAL FTATTACH,FTTIME,FTTALK,FTEXAMINE,FTLOGIN,FTREASSIGN\r
INTERNAL FTFINISH,FTCCL\r
;T TAKEN ABOVE BY 'PLSXPN' BIT\r
\r
ERRFLG=1 ;COMMAND ERROR\r
-\f\r
-DEFINE NAMES<\r
+\fDEFINE NAMES<\r
C START,START,NOPER!TTYRNU!INCORE!NOACT!NORUN\r
C HALT,STOP,NOCORE!NOJOBN!NOLOGIN!NOINCK!CMWRQ\r
C KJOB,KJOB,NOCORE!NOJOBN!NOINCK!NOLOGIN!NOACT!NORUN!NOPER!NOCRLF!NOMESS!NOTRAN\r
C CTEST,CCLRUN,NOCORE!NOPER!TTYRNU!NOCRLF!INCORE!NOACT!NORUN\r
>\r
>\r
-\f\r
-;GENERATE TABLE OF SIXBIT COMMAND NAMES\r
+\f;GENERATE TABLE OF SIXBIT COMMAND NAMES\r
\r
DEFINE C(A,B,D) <\r
<SIXBIT /A/>\r
>\r
COMTAB: NAMES\r
DISPL=.-COMTAB ;LENGTH OF TABLE\r
-\f\r
-;GENERATE THE DISPATCH TABLE PLUS SPECIAL BITS\r
+\f;GENERATE THE DISPATCH TABLE PLUS SPECIAL BITS\r
\r
DEFINE C(A,B,D) <\r
Z B (D)\r
>\r
DISP: NAMES\r
-\f\r
-;CALLED FROM COMMAND DECODER WHICH IS CALLED FROM CLOCK ROUTINE\r
+\f;CALLED FROM COMMAND DECODER WHICH IS CALLED FROM CLOCK ROUTINE\r
;WITH FOLLOWING AC'S SET:\r
;TAC= BYTE POINTER TO COMMAND STRING(SPACE OR CR AFTER COMMAND NAME)\r
;ITEM = JOB NUMBER\r
MOVEI TAC,0 ;RETURN BOTH PHYSICAL AND LOGICAL CORE\r
SOS (PDP) ;NEGATE SKIP RETURN WHICH CORE1 WILL DO\r
JRST CORE1 ;GO DO IT AND RETURN TO CALLER\r
-\f\r
-; "PJOB" PRINT JOB NUMBER OF JOB TTY IS ATTACHED TO\r
+\f; "PJOB" PRINT JOB NUMBER OF JOB TTY IS ATTACHED TO\r
\r
INTERNAL PJOB,DECLF\r
\r
JUMPE PROG,DLYCM1 ;DELAY COMMAND IF CORE ASSIGNED ON DISK\r
JSP TAC1,MONJOB ;YES, SCHEDULE MONITOR JOB(PC IN EXEC MODE)\r
;RETURN HERE AT UUO LEVEL WHEN SCHEDULED\r
-JOBKL: MOVEI TAC1,ESTOP ;PUT ESTOP ON END OF PDL\r
+\fJOBKL: MOVEI TAC1,ESTOP ;PUT ESTOP ON END OF PDL\r
JSP TAC,MONSTR ;GO SETUP ACS AND PD LIST\r
PUSHJ PDP,JOB1 ;FLUSH CORE AFTER RELEASING DEVICES\r
JOBKA:\r
\r
JOBKB: SETZM -1(PDP) ;CLEAR NOJOBN SO COMRET WILL PRINT ERROR MSG.\r
JRST ATT4 ;"NOT A JOB"\r
-\f\r
-; "START L" OR "START" - START AT LOC, L OR STARTING ADDRESS\r
+\f; "START L" OR "START" - START AT LOC, L OR STARTING ADDRESS\r
INTERNAL FT2REL\r
EXTERNAL JOBSA\r
\r
; BY PROGRAM END STATEMENT AND STORED BY LINKING LOADER\r
; SKIP INTO REENTER, START WITH PC IN USER MODE\r
>\r
-\f\r
-;"REENTER" - REENTER USER PROGRAM\r
+\f;"REENTER" - REENTER USER PROGRAM\r
\r
EXTERNAL JOBREN\r
\r
\r
ASCIZ /CAN'T CONTINUE\r
/\r
-\f\r
-; "CORE #" - ASSIGNS #*1024 WORDS OF CORE TO JOB\r
+\f; "CORE #" - ASSIGNS #*1024 WORDS OF CORE TO JOB\r
; "CORE" WITH NO ARG. WILL PRINT NO OF FREE BLOCKS LEFT\r
; WITHOUT AFFECTING CURRENT ASSIGNMENT OF CORE\r
; JOB NOT IN MIDDLE OF SWAPPING\r
JRST DLYCM ;AND DELAY COMMAND TILL CORE IS IN MEMORY\r
; DLYCM WILL SWAP IT IN.\r
>\r
-\f\r
-COR2: IFN FTTTYSERM,<\r
+\fCOR2: IFN FTTTYSERM,<\r
MOVE DEVDAT,-2(PDP) ;RESTORE TTY DDB ADR\r
>\r
PUSHJ PDP,INLMES ;PRINT ? FOR PATCH\r
MOVE TAC,VIRTAL ;PRINT AMOUNT OF FREE SWAP SAPCE LEFT\r
JRST RADX10 ;IN DECIMAL\r
>\r
-\f\r
-; "SSAVE FILENAM.EXT [PROJ,PROG] CORE"\r
+\f; "SSAVE FILENAM.EXT [PROJ,PROG] CORE"\r
;WORKS LIKE SAVE, EXCEPT THAT HIGH SEG IS SAVED AS SHARABLE(EXT=SHR)\r
;INSTEAD OF NON-SHARABLE(EXT=HGH)\r
\r
SETZM REFLAG ;ONLY ONCE\r
POPJ PDP,\r
>\r
-\f\r
-;"HELP" -HELP COMMAND\r
+\f;"HELP" -HELP COMMAND\r
\r
INTERNAL FTLOGIN\r
\r
JFCL\r
>\r
POPJ PDP,\r
-\f\r
-INTERN FTCCL\r
+\fINTERN FTCCL\r
\r
IFN FTCCL,<\r
\r
MOVE TAC,[SIXBIT /LOGIN/] ;CUSP NAME\r
JRST ARCOM ;RUN IT\r
>\r
-\f\r
-; "R CUSTNAME CORE" - DOES "RUN SYS:CUSPNAME"\r
+\f; "R CUSTNAME CORE" - DOES "RUN SYS:CUSPNAME"\r
\r
RCOM: MOVEI TAC,0 ;NO FILE NAME, TTY WILL SUPPLY IT\r
JRST ARCOM1\r
IFN FTSWAP,<\r
JRST DLYCM ;NO. DELAY COMMAND UNTIL IN CORE\r
>\r
-\f\r
-; "ASSIGN DEV:NAME" - ASSIGN DEVICE TO JOB AND GIVE IT LOGICAL NAME\r
+\f; "ASSIGN DEV:NAME" - ASSIGN DEVICE TO JOB AND GIVE IT LOGICAL NAME\r
\r
EXTERNAL DEVLST,PJOBN,SYSTAP\r
\r
ASSIGN: PUSHJ PDP, CTEXT1 ;GET FIRST ARGUMENT\r
JUMPE TAC1, NOTENF ;NO ARGUEMNT TYPED IF 0\r
-IFN FTLOGIN,<EXTERN PRJPROG\r
+IFN FTLOGIN,<EXTERN PRJPRG\r
CAME TAC,[SIXBIT .SYS.]\r
JRST ASSG6\r
HLRZ T1,PRJPRG(ITEM)\r
ASSG5: PUSHJ PDP,ASSASG ;NO, TRY TO ASSGIN DEVICE\r
JRST ASSER1 ;ALREADY ASSIGNED TO ANOTHER JOB\r
JRST ASSFIN ;ASSIGNED\r
-\f\r
-;SYSTEM TAPE OR NOT MATCH OF ARG AND PHYSICAL NAME.\r
+\f;SYSTEM TAPE OR NOT MATCH OF ARG AND PHYSICAL NAME.\r
\r
ASSG1: CAMN TAC,SYSTAP ;IS THIS SYSTEM TAPE?\r
JRST ASSG2 ;YES\r
MOVEM TAC1,SYSTAP\r
POPJ PDP,\r
>\r
-\f\r
-;ALREADY ASSIGNED TO ANOTHER JOB\r
+\f;ALREADY ASSIGNED TO ANOTHER JOB\r
ASSER1:\r
IFE FTTTYSER,<\r
PDP PDP, TAC\r
>\r
\r
ASSMS2: ASCIZ /ALREADY ASSIGNED TO JOB /\r
-\f\r
-;DEVICE ASSIGNED, GIVE IT A LOGICAL NAME\r
+\f;DEVICE ASSIGNED, GIVE IT A LOGICAL NAME\r
ASSFIN: SETZM DEVLOG(DEVDAT) ;CLEAR LOGICAL NAME\r
IFE FTTTYSER,<\r
POP PDP,TAC ;RESTORE INPUT BYTE POINTER\r
\r
ASCIZ / WASN'T ASSIGNED\r
/\r
-\f\r
-INTERNAL FTREASSIGN\r
+\fINTERNAL FTREASSIGN\r
IFE FTREASSIGN,<\r
REASSI=UUOERR\r
>\r
REASS4: HRRZ DSER,DEVSER(DEVDAT)\r
HRRZM DEVDAT,JOBFDV(JDAT)\r
MOVE UCHN,USRHCU\r
-\f\r
-REASS2: MOVE DEVDAT,USRJDA(UCHN) ;GET XWD UUO BITS,DDB ADDRESS\r
+\fREASS2: MOVE DEVDAT,USRJDA(UCHN) ;GET XWD UUO BITS,DDB ADDRESS\r
HRRZ TAC,JOBFDV(JDAT) ;GET ADDR. OF DDB SAVED BY COMMAND\r
PUSH PDP,UCHN ;SAVE USER CHANNEL\r
CAIN TAC,(DEVDAT) ;IS CHOSEN DEVICE ON THHS CHANNEL?\r
ASCIZ / CAN'T BE REASSIGNED\r
/\r
>\r
-\f\r
-INTERNAL FTATTACH\r
+\fINTERNAL FTATTACH\r
IFN FTATTACH,<\r
\r
;"ATTACH DEVNAME" -ATTACHES A PREVIOUSLY PARTITIONED DEVICE\r
ASCIZ /WASN'T DET\r
/\r
>\r
-\f\r
-INTERNAL FTATTACH\r
+\fINTERNAL FTATTACH\r
IFN FTATTACH,<\r
\r
;"DETACH" - DETACH CONSOLE FROM JOB\r
HRRM TAC1,TTYTAB(TAC) ;SO THAT SCNSER CHECKS FOR THIS\r
POP PDP,DEVDAT ;RESTORE TTY DDB\r
POPJ PDP, ;SUCCESSFUL RETURN\r
-\f\r
-TEMP1: POP PDP,DEVDAT ;RESTORE TTY DDB\r
+\fTEMP1: POP PDP,DEVDAT ;RESTORE TTY DDB\r
JRST DEAER1 ;PRINT ERROR MSG. AND RETURN\r
TEMP2:\r
IFE FTTTYSER,< POP PDP,DEVDAT ;RESTORE TTY DDB\r
LOGER1: JSP TAC,ERRMES\r
ASCIZ /CAN'T DET DEV\r
/\r
-\r
>> ;CLOSE BOTH FTLOGIN AND FTATTACH CONDITIONALS.\r
-\r
-;"DAYTIME" - PRINT TIME OF DAY\r
+\f;"DAYTIME" - PRINT TIME OF DAY\r
\r
EXTERNAL TIME,THSDAT,MONTAB,JIFMIN\r
\r
PUSHJ PDP,PRSPC\r
MOVE TAC,TIME ;PRINT TIME OF DAY\r
JRST PRTIM1\r
-\f\r
-INTERNAL FTTIME\r
+\fINTERNAL FTTIME\r
IFN FTTIME,<\r
;"TIME (JOB NO.)" - PRINT TOTAL AND INCREMENTAL RUNNING TIME FOR A JOB\r
;FOLLOWED BY KILO-CORE TICKS\r
ASCIZ /UP /\r
MOVE TAC,UPTIME\r
JRST PRTIME ;AND RETURN\r
-\f\r
-RUN1:\r
+\r
+\fRUN1:\r
IFE FTLOGIN,<\r
MOVEI TAC,0 ;GET SET TO CLEAR INCREMENTAL RUN TIME\r
>\r
JRST PRTIME ;PRINT IT AND RETURN\r
>\r
>\r
-\f\r
-;ROUTINE TO LET TTY TALK TO ANY OTHER RING OF TTYS\r
+\f;ROUTINE TO LET TTY TALK TO ANY OTHER RING OF TTYS\r
; "TALK TTYN"\r
; TTYN NEED NEVER HAVE BEEN TYPED ON BEFORE\r
\r
ASCIZ /BUSY\r
/\r
>\r
-\f\r
-INTERNAL FTEXAMINE\r
+\fINTERNAL FTEXAMINE\r
\r
IFN FTEXAMINE,<\r
\r
HRLI TAC1,PROG ;SET FOR RELOCATION\r
MOVEM IOS,@TAC1 \r
POPJ PDP,\r
-\f\r
-DEAT: TLZ TAC1,-1 ;CLEAR LH IN CASE THIS IS A SUCCESSIVE E WITH NO ARG\r
+\r
+\r
+\fDEAT: TLZ TAC1,-1 ;CLEAR LH IN CASE THIS IS A SUCCESSIVE E WITH NO ARG\r
HRRM TAC1,JOBEXM(JDAT) ;STORE FOR NEXT TIME, DO NOT TOUCH LH(D OR E LAST)\r
; YES, WAS JOB STOPPED IN USER MODE?\r
CAIL TAC1,20 ;IS IT AN AC?\r
ECOMA: JSP TAC,ERRMES ;OUT OF BOUNDS\r
ASCIZ /OUT OF BOUNDS\r
/\r
-\r
>\r
-\f\r
-IFN FTLOGIN,<\r
+\fIFN FTLOGIN,<\r
;"SCHEDULE OCTN" - SETS RH OF STATES TO OCTN, IF TYPED FROM\r
; THE OPERATOR CONSOLE (C(DEVOPR)), OTHERWISE ILLEGAL\r
;"SCHEDULE" WITH NO ARGUMENTS TYPES OUT RH OF STATES, LEGAL FOR ALL.\r
;COMMAND NOT IN COMMAND DICECTORY\r
\r
NOCOM: JRST COMERR ;NO, APPEND ? TO WHAT HE TYPED IN\r
-\f\r
-IFN FTFINISH,<\r
+\fIFN FTFINISH,<\r
; "FINISH DEVICE" - CLOSES,RELEASE AND DESASSIGNS DEVICE\r
;JOB MUST HAVE CORE\r
\r
JFCL ;IGNORE IF NOT ASSIGNED BY CONSOLE\r
JRST ESTOP ;STOP JOB SO HE CANNOT CONTINUE\r
>\r
-\f\r
-IFN FTTIME,<\r
+\fIFN FTTIME,<\r
;"RESOURCES" - PRINT OUT AVAILABLE DEVICES AND FREE BLOCKS ON THE DISK\r
\r
EXTERNAL DEVLST\r
JUMPN T,LOP01 ;IS THERE ONE?\r
JRST CRLF ;NO. DONE, PRINT CR. LF AND THEN POPJ\r
>\r
-\f\r
-EXTERNAL CPOPJ,STUSER\r
+\fEXTERNAL CPOPJ,STUSER\r
;ROUTINE TO CHECK FOR ACTIVE DEVICES\r
;NEVER GET HERE DURING SWAP IN OU OUT\r
;SINCE COMMAND TABLE SHOULD AHVE NOTRAN BIT ON\r
JRST STOPD\r
JRST CPOPJ1 ;OK TO STOP\r
>\r
-\f\r
-SUBTTL COMCSS - COMMON COMMAND SUBROUTINES\r
+\fSUBTTL COMCSS - COMMON COMMAND SUBROUTINES\r
\r
;ROUTINE TO RETURN NEXT ALPHANUMERIC STRING\r
; IN COMMAND LINE (SIXBIT)\r
CTEX0: ILDB TEM,TAC\r
>\r
IFN FTTTYSER,<\r
-EXTERN TAKR,GETCHAR\r
+EXTERN TAKR,GETCHR\r
LDB TEM,TAKR(DAT) ;GET LAST CHAR.\r
JRST CTEX1\r
CTEX0: PUSHJ PDP,GETCHR ;ROUTINE IN SCNSER TO PICK UP CHAR.\r
TLNE T,770000 ;SIX CHARS YET?\r
IDPB TEM,T ;NO. BUILD WORD \r
JRST CTEX0 ;LOOP FOR MORE\r
-\f\r
-;SCAN FOR ALPHANUMERIC CHAR IN TEM\r
+\f;SCAN FOR ALPHANUMERIC CHAR IN TEM\r
CTEX: CAILE TEM,"Z"+40 ;GREATER THAN LC Z?\r
JRST CTEXA ;YES. NOT SIXBIT.\r
CAIL TEM,"A"+40 ;LOWER CASE LETTER?\r
MOVSI TEM,12 ;WITH LF FOR TERMINATION\r
JRST TPOPJ ;AND RETURN UP A LEVEL\r
>\r
-\f\r
-;ROUTINE TO IGNORE LEADING SPACES, TABS, AND NULLS\r
+\f;ROUTINE TO IGNORE LEADING SPACES, TABS, AND NULLS\r
;ALSO CLEARS TAC1\r
;DOES NOT RETURN IF PREVIOUS CHAR. OR NEXT NON-SPACING\r
;CHAR, IS CR(IE POPS SUBROUTINE LEVEL UP 1 ON RETURN)\r
MOVEI TEM,12 ;FOR BREAK CONSISTENCY\r
JRST TPOPJ ;RETURN ONE LEVEL UP\r
>\r
-\f\r
-;ROUTINE TO APPEND A "?" TO INPUT STRING AND SET AS OUTPUT\r
+\f;ROUTINE TO APPEND A "?" TO INPUT STRING AND SET AS OUTPUT\r
;CALLED FROM OCTIN, RETURNS TO SECOND LEVEL ON PDL\r
;CALL: MOVE TAC, BYTE POINTER TO LAST CHAR. IN INPUT STRING\r
; PUSHJ PDP, COMERA\r
DPB T,DAT\r
>\r
TDZA ITEM,ITEM ;CLEAR JOB NO. AND SKIP INTO CRLF ROUT.\r
-\f\r
-;ROUTINE TO PRINT A COMMAND ERROR MESSAGE\r
+\f;ROUTINE TO PRINT A COMMAND ERROR MESSAGE\r
;SAME CALL AS CONMES\r
\r
INTERNAL ERRMES\r
IDPB TEM,DAT\r
>\r
JRST CON0 ;KEEP GOING\r
-\f\r
-;ROUTINE TO PRINT INLINE ASCIZ MESSAGE\r
+\f;ROUTINE TO PRINT INLINE ASCIZ MESSAGE\r
;CALL: PUSHJ PDP,INLMES\r
; ASCIZ /THE MESSAGE/\r
;RETURN TO NEXT LOC AFTER MESSAGE\r
PRSPC: MOVEI TAC,[ASCIZ / /]\r
JRST CONMES\r
\f\r
+\r
;ROUTINE TO PRINT "TOO FEW ARGUMENTS"\r
;CALL: MOVE DAT,BYTE POINTER\r
; PUSHJ PDP,NOTENF\r
POP PDP,DEVDAT ;RESTORE TTY DDB ADDRESS\r
POPJ PDP,\r
\f\r
-;ROUTINE TO REA CONSOLE AND CONVERT ANY RADIX NUMBER\r
+;ROUTINE TO READ CONSOLE AND CONVERT ANY RADIX NUMBER\r
; CALL: MOVE TAC1, DESIRED RADIX\r
; MOVE TAC, BYTE POINTER TO FIRST CHARACTER\r
; PUSHJ PDP, ANYRIN\r
IFE FTTTYSER,< ILDB TEM,TAC ;NEXT CHAR>\r
IFN FTTTYSER,< PUSHJ PDP,GETCHR> ;NEXT CHAR\r
JRST OCT0\r
-\f\r
-INTERNAL FTLOGIN\r
+\fINTERNAL FTLOGIN\r
IFN FTLOGIN,<\r
;GET PROJECT-PROGRAMMER NUMBERS\r
;CALL: MOVE TAC,INPUT BYTE POINTER\r
IFN FTTTYSER,<PUSHJ PDP,GETCHR> ;YES, SKIP IT SO FINAL ] IS OPTIONAL\r
POPJ PDP, ;RETURN RO CALL\r
>\r
-\f\r
-;ROUTINE TO PRINT TIME AS HOURS,MINUTES,SECONDS, AND HUNDRETHS\r
+\f;ROUTINE TO PRINT TIME AS HOURS,MINUTES,SECONDS, AND HUNDRETHS\r
;FORMAT IS HHMM:SS.HH\r
;CALL: MOVE TAC,TIME IN JIFFIES(60THS,50THS OR MILLISECONDS)\r
; MOVE DAT,OUTPUT TEXT BYTE POINTER\r
CAIL TAC1,JIFSC2 ;ROUND IF GREATER THEN HALF\r
AOS TAC\r
JRST PRT2LF ;PRINT\r
-\f\r
-PRTIM1: IDIVI TAC,JIFMIN ;\r
+\fPRTIM1: IDIVI TAC,JIFMIN ;\r
IDIVI TAC,^D60 ;HOURS,MINUTES IN TAC,TAC1\r
PUSHJ PDP,PRT2\r
PUSHJ PDP,INLMES ;PRINT "HH:"\r
CAIGE TAC,^D10\r
XCT CONOUT ;PUT LEADING 0 IF LESS THEN 10\r
JRST RADX10 ;PRINT REST OF NUMBER\r
-\f\r
-;ROUTINE TO PRINT SIZE OF LOGICAL SEGMENT (LOW OR HIGH)\r
+\f;ROUTINE TO PRINT SIZE OF LOGICAL SEGMENT (LOW OR HIGH)\r
;CALL: MOVE ITEM, HIGH OR LOW SEG NUMBER\r
; PUSHJ PDP,PRT SEG\r
; RETURN\r
JUMPE TAC1,CPOPJ ;IS IT IN CORE?\r
LSH TAC1,-12 ;YES, CONVERT TO #K-1\r
AOJA TAC1,CPOPJ ;ADD 1 AND RETURN NUMBER OF K\r
-\f\r
-;ROUTINE TO ASSIGN A MINIMAL CORE AREA(140 WORDS)\r
+\f;ROUTINE TO ASSIGN A MINIMAL CORE AREA(140 WORDS)\r
;CALLED FROM CORE,KJOB, AND RUN COMMANDS\r
;THIS ROUTINE PRESERVES INPUT BYTE POINTER IN TAC\r
;CALL: PUSHJ PDP,GETMIN\r
IFE FTTTYSER,<\r
JRST TPOPJ ;RESTORE TAC AND RETURN\r
>\r
-\f\r
-;ROUTINE TO GET 1 WORD FORM USER ARE WHICH CAN BE IN LOW OR HIGH SEG\r
+\f;ROUTINE TO GET 1 WORD FORM USER ARE WHICH CAN BE IN LOW OR HIGH SEG\r
;CALL: MOVE PROG,[XWD PROT,RELOC FOR LOW SEG]\r
; MOVE ITEM,JOB NUMBER\r
; HRLI UUO,PROG ;FOR RELOCATION\r
>\r
MOVE TAC,@UUO ;YES, GET IT FROM LOW SEG\r
JRST CPOPJ1 ;AND SKIP RETURN\r
-\f\r
-SUBTTL SAVGET - SAVE,GET,R,RUN COMMANDS AND RUN,GETSEG UUOS\r
+\fSUBTTL SAVGET - SAVE,GET,R,RUN COMMANDS AND RUN,GETSEG UUOS\r
\r
;SAVGET LOWER CORE LOCATIONS USED FOR UUOS TO MONITOR\r
;USED IN SAVGET IN APRSER AND SAVGET IN SEGCON\r
XP SGALOW,17 ;LH=EXT WHICH USER TYPED FOR SAVE OR GET COMMAND\r
; OR .SAV IF HE DIDN'T TYPE AN ARG WITH LEADING PERIOD\r
; RH=0\r
-\f\r
-;ROUTINE TO SCAN COMMAND STRING ARGUMENTS FOR SAVE,GET,RUN AND R\r
+\f;ROUTINE TO SCAN COMMAND STRING ARGUMENTS FOR SAVE,GET,RUN AND R\r
;COMAMNDS AND STORE THEM IN JOB DATA AREA WHICH MUST BE IN CORE\r
;WHEN SGSET IS CALLED FROM COMMAND DECODER\r
;CALL: MOVE TAC,INPUT BYTE POINTER\r
; GUARRANTEE LH OF PC WORD IS 0, SINCE IT WILL\r
; BE ADDED TO STARTING ADDRESS(IF RUN COM)\r
JRST MSTART ;START JOB WITH PC IN MONITOR MODE\r
-\f\r
-;ROUTINE TO PICKUP ARGUMENTS FOR RUN AND GETSET UUOS\r
+\f;ROUTINE TO PICKUP ARGUMENTS FOR RUN AND GETSET UUOS\r
;THIS ROUTINE DOES SAME THING AS SGSET, EXCEPT THAT ARGUMENTS ARE\r
;OBTAINED FROM USER UUO ARGUMENTS INSTEAD OF FROM CONSOLE COMMAND\r
;THE USERS ARG ARE MOVED TO USER ACS(SGA...), THEREBY CLOBBERING HIS AC$S\r
; RETURN\r
\r
INTERN GETARG\r
- EXTERN JBTPROG,JOBCORE,PUUOAC\r
+ EXTERN JBTPRG,JOBCOR,PUUOAC\r
\r
GETARG: HRR UUO,TAC ;MOVE ADR. OF ARG LIST TO UUO\r
EXCH TAC,(PDP) ;AND PUT ON PD LIST\r
; IGNORE LH\r
JRST SG2A ;GO SET UP LOWER CORE AND RETURN\r
; DO NOT DO A RESET\r
-\f\r
-;THIS JOB SAVES A JOB AREA ON RETRIEVABLE STORAGE\r
+\f;THIS JOB SAVES A JOB AREA ON RETRIEVABLE STORAGE\r
;THIS JOB RUNS IN EXEC MODE AND CALLS IO ROUTINES USING REGULAR UUOS\r
;NO ATTEMPT IS MADE TO SAVE STATUS OF IO DEVICES, JOBDP, OR AC'S\r
;IN FACT THE ONLY USEFUL THING WHICH MAY BE DONE WITH A JOB AREA\r
JRST SAVERR ;DIRECTORY FULL OR PROTECTION FAILURE\r
MOVE TAC,JOB41(JDAT) ;SAVE USER UUO HANDLING JSR\r
MOVEM TAC,JOBS41(JDAT) ;IN UPPER PART OF JOB DATA AREA\r
-\f\r
- MOVE TAC,JOBDDT(JDAT) ;SAVE DDT STARTING ADDRESS HIGHER UP IN JOB DATA AREA\r
+\f MOVE TAC,JOBDDT(JDAT) ;SAVE DDT STARTING ADDRESS HIGHER UP IN JOB DATA AREA\r
MOVEM TAC,JOBSDD(JDAT) ;SO COMPRESS ALWAYS MOVES CODE DOWN\r
HRROS USRHCU ;FLAG THAT SAVE GET IS UNDER WAY\r
; SO THAT JOBHRL WILL NOT BE MODIFIED BY SETHGH RUOTINE\r
; CORE ON START ,ODT,SAVE, REENTER,SSAVE IN CASE\r
; THIS SAE IO DOES NOT GO TO COMPLETION. (CONTROL C\r
; OR DEVICE FULL, SO THAT CORE DOES NOT GET EXPANDED\r
-\f\r
- PUSHJ PDP,SGDOA ;DO OUTPUT,RELEASE,FIND TTY\r
+\f PUSHJ PDP,SGDOA ;DO OUTPUT,RELEASE,FIND TTY\r
OUTPUT 0,SGALEN ;OUTPUT UUO EXECUTED BY SGDO\r
; RETURN HERE ONLY IF NO ERRORS\r
SAVFIN: PUSHJ PDP,SGREL ;RELEASE DEVICE AND FIND TTY\r
; PUT TAC1 AS FIRST ITEM ON PD LIST(JOBPN1)\r
; LH USED BY SGRELE ON ERROR TO SEE IF FROM USER\r
; AND LH ADDED TO START PC(JOBSA) BY URUN\r
-\f\r
-;RUN UUO\r
+\f;RUN UUO\r
;CALL: MOVE AC,[XWD N,D]\r
; CALL AC,[SIXBIT /RUN/]\r
; ERROR RETURN ;UNLESS LH=HALT(PRINT CONSOLE MESS, IF YES)\r
HRLI TAC1,USRMOD ;SET USER MODE BIT IN PC\r
PUSH PDP,TAC1 ;PUT ON PD LIST\r
JRST USRXIT ;AND GO TO RETURN TO USER AS IF FROM UUO\r
-\f\r
-;UUO TO GET JUST HIGH SEG AND RETURN TO USER\r
+\f;UUO TO GET JUST HIGH SEG AND RETURN TO USER\r
;CALL IS THE SAME AS FOR RUN UUO EXCEPT THAT OK RETURN IS SKIP RETURN\r
;IF ERROR RETURN HAS HALT IN LH, STANDARD CONSOLE MESSAGE IS PRINTED AND JOB STOPPED\r
\r
UGTERR: MOVEI TAC,ILUERR ;ILLEGAL UUO ERROR CORE\r
PUSHJ PDP,SGRELE ;SEE IF USER WANTS ERROR\r
JRST UUOERR ;NO, PRINT ILLEGAL UUO\r
-\f\r
-;ROUTINE TO SETUP ACS, RESET IO, AND SETUP LOWER CORE LOCATIONS\r
+\f;ROUTINE TO SETUP ACS, RESET IO, AND SETUP LOWER CORE LOCATIONS\r
;FOR SAVE AND GET(SGALEN SET IO IOWD OR PP IF DTA OR DSK)\r
;SGADMP SET TO IOWD FOR THIS SIZE CORE\r
;CALL: JSP TAC1,SG1\r
>\r
JRST SGERRA ;NOT AVAILABLE\r
;DEVICE INITED(OR FOUND)\r
-\f\r
-;COMMON EXIT FROM SAVHGH AND GETHGH ROUTINES(HIGH SEG SAVE AND GET)\r
+\f;COMMON EXIT FROM SAVHGH AND GETHGH ROUTINES(HIGH SEG SAVE AND GET)\r
;SO THAT SGA... LOCATIONS ARE RESTOREED TO ORIGINAL VALUES FOR LOW SEG\r
\r
SG3: MOVE TAC,JOBFF(JDAT) ;FIRST FREE LOC IN JOB(SET FROM LH OF\r
; OR FIND TTY AND PRINT ?CRLF\r
JSP TAC,PHOLD ;START TTY AND STOP JOB\r
ASCIZ /NO SUCH DEVICE/\r
-\f\r
-;ROUTINE TO GET FILE FROM DEVICE(LOW AND/OR HIGH)\r
+\f;ROUTINE TO GET FILE FROM DEVICE(LOW AND/OR HIGH)\r
;CALL: ACS JDAT,PROG,PDP,DEVDAT SETUP\r
; MOVE ITEM,JOB NUMBER\r
; IFN FTDISK,<MOVE TAC1,DEVMOD(DEVDAT) ;DEVICE CHAR.>\r
; USER TO USE TO RESET CORE TO INITIAL SETTING WHEN\r
; PROGRAM IS RESTARTED\r
; FALL INTO SGREL\r
-;ROUTINE TO RELEASE DEVICE AND FIND TTY\r
-INTERN SGREL\r
-\r
-SGREL: SKIPN DEVDAT,USRJDA ;HAS CHANNEL BEEN RELEASED ALREADY?\r
- JRST SGREL2 ;YES, FIND TTY AND WAIT FOR OUTPUT TO FINISH\r
- PUSH PDP,T4 ;NO,\r
- MOVE TAC1,DEVMOD(DEVDAT)\r
- TLNE TAC1,DVMTA ;MAGTAPE?\r
- TLNN DEVDAT,INPB ;YES, WAS AN INPUT DONE?\r
- JRST SGREL1 ;NO\r
- CLOSE 0,CLSOUT ;YES, CLOSE MTA INPUT\r
- STATO 0,IOTEND+IODEND ;AT END OF APTE?\r
- MTAPE 0,16 ;NO SKIP TO EOF\r
-SGREL1: RELEASE 0, ;NO RELEASE DEVICE\r
- POP PDP,T4\r
-SGREL2:\r
- JRST TTYFNU ;FIND TTY FOR CURRENT USER\r
-\f\r
-;ROUTINE TO EXECUTE DUMP MODE COMMAND LIST SETUP IN SGALEN(R)\r
+\f;ROUTINE TO EXECUTE DUMP MODE COMMAND LIST SETUP IN SGALEN(R)\r
;AND CHECK FOR ERRORS. USED ONLY TO READ LOW FILE.\r
;CALL: PUSHJ P,SGDO\r
; INPUT 0,SGALEN OR OUTPUT 0,SGALEN\r
; OF FIND TTY AND PRINT ?CRLF\r
JSP TAC,PHOLD ;START TTY AND STOP JOB\r
ASCIZ /TRANSMISSION ERROR/\r
-\f\r
-;ROUTINE TO EXPAND CORE AFTER A SAVE(LOW SEG ONLY)\r
+;ROUTINE TO RELEASE DEVICE AND FIND TTY\r
+INTERN SGREL\r
+\r
+SGREL: SKIPN DEVDAT,USRJDA ;HAS CHANNEL BEEN RELEASED ALREADY?\r
+ JRST SGREL2 ;YES, FIND TTY AND WAIT FOR OUTPUT TO FINISH\r
+ PUSH PDP,T4 ;NO,\r
+ MOVE TAC1,DEVMOD(DEVDAT)\r
+ TLNE TAC1,DVMTA ;MAGTAPE?\r
+ TLNN DEVDAT,INPB ;YES, WAS AN INPUT DONE?\r
+ JRST SGREL1 ;NO\r
+ CLOSE 0,CLSOUT ;YES, CLOSE MTA INPUT\r
+ STATO 0,IOTEND+IODEND ;AT END OF APTE?\r
+ MTAPE 0,16 ;NO SKIP TO EOF\r
+SGREL1: RELEASE 0, ;NO RELEASE DEVICE\r
+ POP PDP,T4\r
+SGREL2:\r
+ JRST TTYFNU ;FIND TTY FOR CURRENT USER\r
+\f;ROUTINE TO EXPAND CORE AFTER A SAVE(LOW SEG ONLY)\r
;CALL: MOVE DEVDAT,DEVICE ADR.\r
; MOVE PROG,JOBADR.\r
; MOVE ITEM,JOB NUMBER\r
JRST EXPND1\r
EXPZ: MOVSI TAC,-2\r
HLLM TAC,JOBSV(PROG)\r
-\f\r
-;COME HERE TO DO THE ACTUAL EXPANSION OF A FILE\r
+\f;COME HERE TO DO THE ACTUAL EXPANSION OF A FILE\r
EXPND1: MOVE TAC,[XWD PROG,JOBSV] ;IT WAS READ INTO JOBSV\r
MOVE TAC,@TAC ;FIRST IOWD\r
EXPLP1: HRRZ AC1,TAC1 ;ADDRESS OF IOWD\r
HRRZ TAC,@TAC ;TOP REAL LOCATION NEEDED\r
\r
TRO TAC,1777 ;MAKE IT NK-1\r
-\r
HLRZ TAC1,PROG ;PRESENT SIZ OF LOW SEG\r
CAMG TAC,TAC1 ;IS THERE ENOUGH?\r
JRST EXPCOR ;YES.\r
MOVEM AC2,JOBDDT(JDAT) ;SET USER DDT STR ADR\r
JRST SGDO2 ;AND SETUP USRDDT IN MONITOR PROTECTED\r
; FROM THIS USER\r
-\f\r
-;THIS ROUTINE WILL DELETE ALL DATA FROM A COMPRESSED FILE\r
+\f;THIS ROUTINE WILL DELETE ALL DATA FROM A COMPRESSED FILE\r
;WHICH IS BELOW JOBSOD (PROBABLY WRITTEN BY TENDUMP)\r
\r
TOOLOW: HLRE AC2,@TAC ;WORDCOUNT OF OFFENDING IOWD\r
SUBI AC3,(TAC) ;AC3 POINTS TO TOP OF DATA READ IN-(N)\r
BLT TAC1,@AC3 ;MOVE ONLY GOOD DATA DOWN\r
JRST EXPND1 ;GO EXPAND THE GOOD DATA\r
-\f\r
-SGDO1: MOVEI TAC,JOBDDT(PROG) ;MOVE EVERYTHING DOWN )MUST BE NON-COMPRESSED DSK FILE\r
+\fSGDO1: MOVEI TAC,JOBDDT(PROG) ;MOVE EVERYTHING DOWN )MUST BE NON-COMPRESSED DSK FILE\r
HRLI TAC,JOBSVD(TAC) ;OR CONVERT SAVE FILE\r
SKIPGE JOBSV(JDAT) ;IS THIS CONVERT FILE(FIRST WORD IS IOWD)?\r
HRLI TAC,JOBSDP(TAC) ;YES, ALSO SKIP OVER IOWD\r
SETZM JOBHCU(JDAT) ;CLEAR LH AND SET HIGHEST USER CHAN, IN\r
; USE TO 0(WHERE IT SHOULD BE ANYWAY)\r
POPJ PDP, ;ERROR RETURN OR OK RETURN\r
-\f\r
-;ROUTINE TO CHECK USER SUPPLIED CORE ARG AND CHECK TO SEE IF 0\r
+\f;ROUTINE TO CHECK USER SUPPLIED CORE ARG AND CHECK TO SEE IF 0\r
;OR GREATER THAN OR EQUAL TO IOWD USED TO SAVE OR GET FILE\r
;CALL: HLRE TAC1,-NO. OF WORDS IN FILE\r
; PUSHJ PDP,CKIOWD\r
JSP TAC,PHOLD ;START TTY ADN STOP JOB\r
ASCIZ /K OF CORE NEEDED/\r
\f\r
+\r
;ROUTINE TO ASSIGN CORE FOR LOW AND HIGH SEG\r
;CALL: MOVE PROG,LOW SEG RELOCATION\r
; HRR TAC,HIGHEST LOC DESIRED\r
CALLI SGACOR,11 ;DO CORE UUO\r
JRST NOROOM ;NOT AVAILABLE, PRINT ERROR AND AMOUNT TRYING FOR\r
JRST TPOPJ ;OK, REMOVE TAC FROM PD LIST AND RETURN\r
-\f\r
-;ROUTINE TO PRINT NOT A SAVE FILE IF WRONG FORMAT FILE DETECTED\r
+\f;ROUTINE TO PRINT NOT A SAVE FILE IF WRONG FORMAT FILE DETECTED\r
\r
INTERN GETERR\r
\r
PUSHJ PDP,PRNAME\r
JSP TAC,PHOLD ;START TTY AND STOP JOB\r
ASCIZ / NOT FOUND/\r
-\f\r
-;ROUTINE TO RELEASE DEVICE ON AN ERROR AND CHECK TO SEE\r
+\f;ROUTINE TO RELEASE DEVICE ON AN ERROR AND CHECK TO SEE\r
;IF THIS IS A MONITOR COMMAND OR USER UUO\r
;IF USER UUO, GIVE ERROR RETURN TO USER UNLESS THERE IS A HALT\r
;IN LH OF EROR RETURN WORD, IN WHICH CASE FIND TTY, PRINT ?CRLF\r
ASCIZ /?\r
/\r
COMEND: END ;END OF COMCON\r
-\r