X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/cda2ba6d27526e5ef6f27f7b3391cfb55055bf2e..HEAD:/src/comcon.mac
diff --git a/src/comcon.mac b/src/comcon.mac
index 050b588..2397feb 100644
--- a/src/comcon.mac
+++ b/src/comcon.mac
@@ -7,7 +7,6 @@ XP VCOMCN,433
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 +36,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
@@ -50,6 +48,7 @@ EXTERNAL MONSTR,MSTART,OCTPNT,PHOLD,PRNAME,RADX10,RELEA5
EXTERNAL RELEA6,RESET,SETRUN,STOP1
EXTERNAL STOTAC,UPTIME,USRXIT,USTART,UUOERR
+
T=BUFPNT ;TEMPORARY AC'S
T1=BUFWRD
T2=UUO
@@ -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
@@ -97,15 +96,16 @@ CHKNO: JUMPN ITEM,CHKRUN ;JOB NUMBER ALREADY ASSIGNED?
NUMLOP: MOVE T,JBTSTS(ITEM) ;SCAN FOR FREE JOB NO.
TLNN T,JNA+CMWB ;THIS NUMBER ASSIGNED?
JRST NEWJOB ;NO, SO USE THIS NUMBER
-
CAIGE ITEM,JOBMAX ;YES, IS THE MAX. JOB NO.?
AOJA ITEM,NUMLOP ;NO, KEEP LOOKING
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
@@ -118,10 +118,10 @@ IFN FTKCT,<
EXTERN JBTKCT
SETZM JBTKCT(ITEM) ;CLEAR CORE-RUNNING TIME CORE
>
+
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
@@ -288,11 +285,12 @@ INCORE=4000!NOTRAN ;COMMAND MUST BE DELAYED IF JOB HAS LOGICAL CORE
; WHICH IS ON DISK OR ON ITS WAY IN OR OUT.
; JOB WILL BE SWAPPED IN (SEE DLYCOM)
; AND IS NOT SITTING QUIETLY IN CORE(IE NO SWAPPING TRANSFER)
-PLSXPN=4 ;CORE MUST BE EXPANED IF STILL COMPRESSED BY SAVE NOT GOING
+PLSXPN==4 ;CORE MUST BE EXPANED IF STILL COMPRESSED BY SAVE NOT GOING
; TO COMPLETION(CONTROL C OR DEVICE OK?)
; MUST BE USED IN CONJUNCTION WITH COMMANDS WHICH
; NEED CORE AND NEED IT IN CORE
+
;BITS CHECKED AFTER RETURN FROM COMMAND SETUP ROUTINE
CMWRQ=2000 ;REQUEUE JOB AFTER COMMAND WAIT
@@ -306,11 +304,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,21 +380,23 @@ 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
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)
>
DISP: NAMES
+
+ XWD NOCORE+NOJOBN+NOLOGIN+NOINCK,NOCOM
+
;CALLED FROM COMMAND DECODER WHICH IS CALLED FROM CLOCK ROUTINE
;WITH FOLLOWING AC'S SET:
@@ -451,6 +451,7 @@ PJOB: MOVE TAC,ITEM ;JOB NO.
DECLF: PUSHJ PDP,RADX10 ;PRINT TAC AS DEC. THEN CRLF
JRST CRLF
+
; "KJOB" KILL ATTACHED JOB
EXTERNAL JBTSTS,TTYKILM,CPOPJ
@@ -478,7 +479,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,22 +492,25 @@ 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
START: ;SAME AS CSTART, DIFF BY COMTAB BITS
; WHICH PUT TTY IN MONITOR OR USER MODE
+
; "CSTART L" OR "CSTART" - START AT LOC. L(TTY IN COMMAND MODE)
+
STARTC: PUSHJ PDP,OCTIN ;CONVERT POSSIBLE OCTAL NO ARG.
IFE FT2REL,<
SKIPA TAC1,JOBSA(JDAT) ;NO START ADR. SPECIFIED RETURN
@@ -528,8 +532,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 +595,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 +614,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 +626,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 FTTTYSER,<
MOVE DEVDAT,-2(PDP) ;RESTORE TTY DDB ADR
>
PUSHJ PDP,INLMES ;PRINT ? FOR PATCH
@@ -653,7 +653,7 @@ IFN FTSWAP,<
>
PUSHJ PDP,RADX10 ;PRINT NO. OF 1K BLOCKS AVAILABLE
IFE FTSWAP,<
- JSP TAC,CONMAS
+ JSP TAC,CONMES
ASCIZ /K CORE
/
>
@@ -661,15 +661,15 @@ IFN FTSWAP,<
EXTERN VIRTAL
PUSHJ PDP,INLMES
ASCIZ /K CORE
-VIR. CORE LEFT =/
+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)
+
; "SAVE FILE-NAME[PROJ.,PROG.] CORE" - SAVES JOB AREA ON RETRIEVABLE DEVICE
;ONLY A SAVE OR A GET IN PROGRESS FOR EACH JOB
;NO ATTEMPT IS MADE TO SAVE DEVICE ASSGINMENTS, AC'S OR PC
@@ -682,6 +682,7 @@ SSAVE: HRRI IOS,SAVJOB ;SETUP TO RUN SAVEJOB (IOS CLEARED BEFORE
SETZM JBTPRG(ITEM) ;CLEAR JOB'S PROGRAM NAME FOR ROOM
JRST SGSET
+
; "GET DEVICE:FILE-NAME[PROJ.,PROG.] CORE" - SETS UP JOB AREA FROM RETREIVABLE
;DEVICE AND ASSIGNS CORE.
@@ -703,15 +704,14 @@ LOGREF: MOVEM TAC,PRJPRG(ITEM) ;PRJ,PRG NRS. IN REFLAG
SETZM REFLAG ;ONLY ONCE
POPJ PDP,
>
-
-;"HELP" -HELP COMMAND
+;"HELP" -HELP COMMAND
INTERNAL FTLOGIN
IFN FTLOGIN,< EXTERNAL HELPPP
HELP1:
MOVE TAC,HELPPP
- TLN T,JLOG
+ TLNN T,JLOG
JRST ALOGIN
POPJ PDP,
>
@@ -728,6 +728,7 @@ SYSTAT: IFN FTLOGIN,<
MOVE TAC,[SIXBIT /SYSTAT/] ;CUSP NAME
JRST ARCOM ;RUN IT
+
EXTERNAL JBTSTS,TTYATT
ALOGIN:
@@ -744,13 +745,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 +785,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 +812,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,
IFE FTTTYSER,<
-
PUSH PDP, TAC ;SAVE INPUT BYTE POINT
>
MOVE TAC,TAC1
@@ -852,8 +850,7 @@ ASSG4: CAMN T1,[SIXBIT /DSK/] ;IS THIS A DISC?(IF YES,
ASSG5: PUSHJ PDP,ASSASG ;NO, TRY TO ASSGIN DEVICE
JRST ASSER1 ;ALREADY ASSIGNED TO ANOTHER JOB
JRST ASSFIN ;ASSIGNED
-
-;SYSTEM TAPE OR NOT MATCH OF ARG AND PHYSICAL NAME.
+;SYSTEM TAPE OR NOT MATCH OF ARG AND PHYSICAL NAME.
ASSG1: CAMN TAC,SYSTAP ;IS THIS SYSTEM TAPE?
JRST ASSG2 ;YES
@@ -882,8 +879,7 @@ ASSG7: PUSHJ PDP,CTEXT1
MOVEM TAC1,SYSTAP
POPJ PDP,
>
-
-;ALREADY ASSIGNED TO ANOTHER JOB
+;ALREADY ASSIGNED TO ANOTHER JOB
ASSER1:
IFE FTTTYSER,<
PDP PDP, TAC
@@ -903,8 +899,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
@@ -917,7 +912,7 @@ IFN FTTTYSER,<
SKIPE TAC,TAC1 ;IS THERE A LOGICAL NAME SPECIFIED?
PUSHJ PDP, DEVLG ;YES, SEE IF IT IS ALREADY IN USE
; BY THIS USER
- JRST ASSG1 ;NO
+ JRST ASSF1 ;NO
MOVEI TAC,LOGERR ;YES, PRINT ERROR
MOVE DEVDAT,-3(PDP) ;RESTORE TTY DDB
PUSHJ PDP,ERRMES
@@ -939,7 +934,7 @@ IFN FT2REL,<
ASCIZ / ASSIGNED
/
-LOGERR: ASCIZ /LOGICAL NAME ALREADY IN USE. /
+LOGERR: ASCIZ /LOGICAL NAME ALREADY IN USE, /
;"DEASSIGN DEV" - DEASSIGNS DEVICE FROM CONSOLE
@@ -969,8 +964,7 @@ DEAER2: MOVE TAC1,DEVNAM(DEVDAT) ;PRINT PHYSICAL DEVICE NAME
ASCIZ / WASN'T ASSIGNED
/
-
-INTERNAL FTREASSIGN
+INTERNAL FTREASSIGN
IFE FTREASSIGN,<
REASSI=UUOERR
>
@@ -997,9 +991,10 @@ REASSI: LDB UUO,PUUOAC
;"REASSIGN DEV:JOB" - REASSIGN DEVICE "DEV" TO JOB "JOB"
+
REASS:
- PUSHJ PDP,CTEXT ;GET DEVICE NAME
- JUMPE TAC,NOTENF ;NULL NAME?
+ PUSHJ PDP,CTEXT1 ;GET DEVICE NAME
+ JUMPE TAC1,NOTENF ;NULL NAME?
MOVE UUO,TAC1 ;SAVE IT IN UUO
PUSHJ PDP,DECIN1 ;GET NEW JOB NUMBER
JRST NOTENF ;NONE SPECIFIED, DOESN'T RETURN IF ERROR
@@ -1026,7 +1021,6 @@ REASS1: EXCH ITEM,(PDP) ;NEW JOB NO. IN ITEM
CAME TAC,ITEM ;ASSIGNED TO THIS JOB
JRST REASE3 ;NO
MOVE TAC,DEVMOD(DEVDAT)
-
TLNE TAC,DVTTY ;IS IT A TTY?
JRST REASE6 ;YES. CAN'T BE REASSIGNED
TRNN TAC,ASSPRG ;IS DEVICE INITED?
@@ -1048,8 +1042,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 +1081,7 @@ REASE7: MOVE TAC1,DEVNAM(DEVDAT)
ASCIZ / CAN'T BE REASSIGNED
/
>
-
-INTERNAL FTATTACH
+INTERNAL FTATTACH
IFN FTATTACH,<
;"ATTACH DEVNAME" -ATTACHES A PREVIOUSLY PARTITIONED DEVICE
@@ -1108,7 +1100,6 @@ ATTACH: IFE FTTTYSER,<
IFN FTLOGIN, <
JRST DEVATT ;WANTS TO ATTACH A DEVICE
>
-
IFE FTLOGIN, <
JRST ATT1
>
@@ -1170,28 +1161,33 @@ DEVATT: IFE FTTTYSER,<
ATT1: JSP TAC,ERRMES
ASCIZ /ILLEGAL JOB NUMBER
/
+
ATT2: MOVE TAC1,DEVNAM(DEVDAT) ;[PRINT PHYSICAL NAME
MOVE DEVDAT,-2(PDP) ;RESTORE TTY DDB
PUSHJ PDP,PRNAME
JSP TAC,ERRMES
ASCIZ / ALREADY ATTACHED
/
+
ATT3: JSP TAC,ERRMES
ASCIZ /CAN'T ATT TO JOB
/
+
ATT4: JSP TAC,ERRMES
ASCIZ /NOT A JOB
/
+
+
ATT5: JSP TAC,ERRMES
ASCIZ /CAN'T ATT DEV
/
+
ATT6: POP PDP,DEVDAT
JSP TAC,ERRMES
ASCIZ /WASN'T DET
/
>
-
-INTERNAL FTATTACH
+INTERNAL FTATTACH
IFN FTATTACH,<
;"DETACH" - DETACH CONSOLE FROM JOB
@@ -1234,8 +1230,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 +1242,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 +1280,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
@@ -1307,7 +1299,6 @@ RUNTIM: PUSHJ PDP,DECIN ;GETJOB NO. ARG.
JRST PRTIME ;PRINT AND RETURN
RUN2: PUSHJ PDP,INLMES ;PRINT
-
ASCIZ /SHFL / ;"SHUFFLING "
MOVE TAC,SHFWRD ;NO. WORDS SHUFFLED
IDIVI TAC,WDPJIF ;NO.WORDS/JIFFY USING BLT
@@ -1329,8 +1320,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 +1347,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 +1377,7 @@ TALK1: MOVE DEVDAT,-2(PDP) ;RESTORE TTY DDB
ASCIZ /BUSY
/
>
-
-INTERNAL FTEXAMINE
+INTERNAL FTEXAMINE
IFN FTEXAMINE,<
@@ -1403,7 +1392,7 @@ ECOM: SKIPGE JOBEXM(JDAT) ;WAS PREVIOUS D OR E COMMAND. A D COMMAND?
AOS JOBEXM(JDAT) ;NO, IT WAS AN E. INCREMENT IN CASE HE TYPES NO ARG
HRROS JOBEXM(JDAT) ;YES, FLAG THAT E HAPPENED LAST(LH=-1)
PUSHJ PDP,OCTIN ;GET OCTAL LOCATION
- SKIPA TAC,JOBEXM(JDAT) ;NONE SPECIFIED, USE LAST LOC OF D OR NEXT OF E
+ SKIPA TAC1,JOBEXM(JDAT) ;NONE SPECIFIED, USE LAST LOC OF D OR NEXT OF E
JRST COMERA ;ILLEGAL CHARACTER
PUSHJ PDP,DEAT ;CHECK FOR AC REFERENCE AND STORE JOBEXM
HRRZ UUO,TAC1 ;IGNORE LH
@@ -1422,7 +1411,7 @@ ECOM: SKIPGE JOBEXM(JDAT) ;WAS PREVIOUS D OR E COMMAND. A D COMMAND?
HRRZ TAC,(PDP) ;PRINT RIGHT HALF
PUSHJ PDP,OCTPNT
PUSHJ PDP,INLMES ;PRINT FINAL TAB
- ASCIZ / /
+ ASCIZ / /
JRST TPOPJ ;POP PDP,TAC,POPJ PDP,
;"DEPOSIT LH RH LOC" - DEPOSITS XWD LH,RH IN LOCATION LOC
@@ -1464,8 +1453,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?
@@ -1473,6 +1463,7 @@ DEAT: TLZ TAC1,-1 ;CLEAR LH IN CASE THIS IS A SUCCESSIVE E WITH NO ARG
MOVE TAC,JOBPC(JDAT)
TLNE TAC,USRMOD ;USER MODE?
ADDI TAC1,20 ;YES USER ACS ARE AT 20 INSTEAD OF 0
+ POPJ PDP,
DCOMA:
IFN FT2REL,<
@@ -1484,10 +1475,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.
@@ -1510,6 +1499,7 @@ SKED1: HRRZ TAC,STATES ;SCHEDULE WITH NO ARGUMENTS.
;"BLANK" OR NO ALPHA NUMERIC BEFORE BREAK CHAR COMMAND
;DISPATCHED TO LIKE ANY OTHER COMMAND(0 IN COMMAND TABLE)
+
CBLANK:
IFE FTTTYSER,<
LDB TEM,TAC ;GET BREAK CHARACTER
@@ -1525,8 +1515,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 +1547,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
@@ -1585,7 +1573,7 @@ LOP06: ADDI T1,SENTSZ ;BUMP POINTER
ASCIZ /. BLKS/
>
- HRLZ T,DEVLST ;GET DDB POINTER
+ HLRZ T,DEVLST ;GET DDB POINTER
MOVEI AC2,0 ;SET DEVICE NAME 0 FOR FIRST COMPARE
LOP01: MOVE T1,DEVMOD(T) ;DEVICE CHARACTERISTICS
TRNN T1,ASSCON!ASSPRG ;DEVICE ASSIGNED BY CONSOLE OR PROGRAM?
@@ -1608,8 +1596,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
@@ -1665,13 +1652,11 @@ STOPD: LDB TAC,PJOBN
JRST CPOPJ ;YES. DELAY
STOPC: HLRZ DEVDAT,DEVSER(DEVDAT)
MOVSI TAC,446353
-
CAMN TAC,DEVNAM(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 +1683,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 +1694,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?
@@ -1729,14 +1713,12 @@ IFN FTTTYSER,<
CAIN TEM,":" ;DEVICE NAME?
PUSHJ PDP,GETCHR ;YES. SKIP COLON
CAIE TEM,3 ;CONTROL C?
-
JRST TPOPJ ;NO. RETURN ONE LEVEL UP
CTXCNC: MOVSI TAC1,(SIXBIT /HAL/) ;MAKE PHONY HALT COMMAND
- MOVSI TEM,12 ;WITH LF FOR TERMINATION
+ MOVEI 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)
@@ -1759,6 +1741,7 @@ SKIPSA:
JRST SKIPSA
CAIN TEM,15 ;CR?
SKIPS2: POP PDP,T ;YES. POP SUB. LEVEL UP ONE
+ POPJ PDP,
>
IFN FTTTYSER,< EXTERNAL GETCHR,SPCHEK,BREAKB,TAKR
@@ -1780,8 +1763,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
@@ -1792,6 +1774,7 @@ COMERP: POP PDP,T ;REMOVE SUB. RETURN BEFORE CALLING COMERA
COMERA: IFE FTTTYSER,< IBP TAC>
IFN FTTTYSER,< PUSHJ PDP,GETCHR> ;MOVE UP, A CH
+
;ROUTINE TO REPLACE LAST CHARACTER IN INPUT STRING BY "?"
;AND SET AS OUTPUT
;CALL: MOVE TAC, BYTE POINTER TO LAST CHAR. IN INPUT STRING
@@ -1823,8 +1806,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 +1851,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
@@ -1889,7 +1870,6 @@ INTERNAL PRQM
PRQM: MOVEI TEM,"?"
IFN FTTTYSER,<
-
EXTERN OUTCHS
JRST OUTCHS
>
@@ -1897,9 +1877,10 @@ IFE FTTTYSER,<
IDPB TEM,DAT
POPJ PDP,
>
-PRSPC: MOVEI TAC,[ASCIZ / /]
+PRSPC: MOVEI TAC,[ASCIZ / /]
JRST CONMES
+
;ROUTINE TO PRINT "TOO FEW ARGUMENTS"
;CALL: MOVE DAT,BYTE POINTER
; PUSHJ PDP,NOTENF
@@ -1937,7 +1918,6 @@ DEASG: LDB T, PJOBN ;WAS DEVICE ASSIGNED TO THIS JOB?
ANDCAB TAC1,DEVMOD(DEVDAT) ;SET DEVICE CHARACTERISTICS FOR TEST
; AND ASGHGH
SETZM DEVLOG(DEVDAT) ;CLEAR LOGICAL NAME
-
TRNE TAC1,ASSCON ;IS DEVICE ASSIGNED BY CONSOLE?
AOS -1(PDP) ;YES, DO OK RETURN
IFN FT2REL,<
@@ -1958,6 +1938,7 @@ IFN FT2REL,<
INTERNAL DEASAL,DEASTY
EXTERNAL DEVLST
+
DEASTY:
DEASAL: PUSH PDP,DEVDAT ;SAVE TTY DDB ADDRESS
HLRZ DEVDAT,DEVLST ;SEARCH ALL DDB'S
@@ -1969,7 +1950,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 +1981,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 +1995,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
@@ -2026,6 +2006,7 @@ IFN FTLOGIN,<
;(AC2) = 0 IF NO [ ]'S TYPED
;THE TERMINAL ] IS OPTIONAL
+
IFE FTTTYSER,<
PJPGNO: SKIPA TAC1,TAC ;SAVE INPUT BYTE POINTER IN CASE NO
; [ ]'S WERE TYPED IN.
@@ -2033,7 +2014,6 @@ PP0: IBP TAC ;GET NEXT CHARACTER (2ND TIME THRU LOOP)
LDB TEM,TAC ;GET CHAR WHICH STOPED PREVIOUS FIELD SCAN
; (OR NEXT CHAR ON 2ND TIME THRU LOOP)
>
-
IFN FTTTYSER,<
PP0: PUSHJ PDP,SKIPS1
PJPGNO:
@@ -2067,8 +2047,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 +2087,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 +2100,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 +2131,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
@@ -2174,7 +2150,6 @@ IFN FTTTYSER,<
PUSH PDP,IOS ;SAVE DISPATCH ADDRESS(ANYACT USES IOS)
IFN FT2REL,<
EXTERN KILHGH
-
PUSHJ PDP,KILHGH ;KILL HIGH SEG
>
MOVEI TAC,JOBDA ;LENGTH OF JOBDATA AREA
@@ -2189,8 +2164,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,41 +2189,59 @@ 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
;THESE LOCATIONS ARE DEFINED TO BE IN THE USERS UUO ACS
;FOR LOOKUP,ENTER UUOS:
- XP SGANAM,0 ;FILE NAME
- XP SGAEXT,SGANAM+1 ;FILE EXTENSION
- XP SGADAT,SGANAM+2 ;FILE CREATION DATE+TIME
- XP SGALEN,SGANAM+3 ;LN=-LENGTH,RH=FIRST LOC-1 DUMPED
+ XP SGANAM,0
+ ;FILE NAME
+ XP SGAEXT,SGANAM+1
+ ;FILE EXTENSION
+ XP SGADAT,SGANAM+2
+ ;FILE CREATION DATE+TIME
+ XP SGALEN,SGANAM+3
+ ;LN=-LENGTH,RH=FIRST LOC-1 DUMPED
+
; OR PROJECT-PROGRAMMER NUMBER(DISK)
- XP SGAEND,SGALEN+1 ;LAST WORD OF DUMP COMMAND LIST=0(SAVE AND GET)
- XP SGAREN,SGAEND ; ALSO FIRST WORD FOR RENAME USED AS DELETE
- XP SGAPPN,SGAREN+3 ;FOURTH WORD-PLACE TO SAVE PROJECT-PROGRAMEMR
+ XP SGAEND,SGALEN+1
+ ;LAST WORD OF DUMP COMMAND LIST=0(SAVE AND GET)
+ XP SGAREN,SGAEND
+ ; ALSO FIRST WORD FOR RENAME USED AS DELETE
+ XP SGAPPN,SGAREN+3
+ ;FOURTH WORD-PLACE TO SAVE PROJECT-PROGRAMEMR
+
; NUMBER USER TYPED
;FOR OPEN UUOS:
- XP SGAMOD,10 ;IOS MODE WORD FOR OPEN UUO
- XP SGADEV,SGAMOD+1 ;DEVICE NAME
- XP SGAHED,SGAMOD+2 ;INPUT-OUTPUT BUFFER HEADER ADDRESSES=0
+ XP SGAMOD,10
+ ;IOS MODE WORD FOR OPEN UUO
+ XP SGADEV,SGAMOD+1
+ ;DEVICE NAME
+ XP SGAHED,SGAMOD+2
+ ;INPUT-OUTPUT BUFFER HEADER ADDRESSES=0
;MISC. DATA LOCATIONS:
- XP SGADMP,13 ;DUMP COMMAND IOWD
- XP SGACOR,14 ;AC FOR CORE UUO'S(HIGHEST USER LOC DESIRED)
- XP SGANEW,15 ;NEW CORE ASSIGNMENT AS SPECIFIED BY THIRD ARG
- XP SGAHGH,16 ;LH=EXT TO USE FOR SAVING HIGH SEG
+ XP SGADMP,13
+ ;DUMP COMMAND IOWD
+ XP SGACOR,14
+ ;AC FOR CORE UUO'S(HIGHEST USER LOC DESIRED)
+ XP SGANEW,15
+ ;NEW CORE ASSIGNMENT AS SPECIFIED BY THIRD ARG
+ XP SGAHGH,16
+ ;LH=EXT TO USE FOR SAVING HIGH SEG
+
; RH=EXT TO DELETE(IE SHRHGH OR HGHSHR)
- XP SGALOW,17 ;LH=EXT WHICH USER TYPED FOR SAVE OR GET COMMAND
+ 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
@@ -2291,15 +2283,14 @@ IFN FTLOGIN,<
PUSHJ PDP,DECIN1 ;AMOUNT OF CORE (OPTIONAL THIRD ARG.)
JRST SGSET1 ;DOES NOT RETURN IF ERROR. RETURN HERE IF NO ARG.
JRST COMERA ;ILLEGAL CHARACTER
- LSH TAC,12 ;CONVERT TO HIGHEST REL. LOC.
- SUBI TAC,1
+ LSH TAC1,12 ;CONVERT TO HIGHEST REL. LOC.
+ SUBI TAC1,1
SGSET1: MOVEM TAC1,SGANEW(PROG) ;STORE FOR RUN AND SAVE
HRRZ TAC1,IOS ;SCHEDULE MONITOR JOB
; 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,13 +2303,12 @@ 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
PUSH PDP,TAC ;MOVE RETURN PC UP ONE IN PD LIST
LDB TAC,PUUOAC ;USER AC FIELD IN RUN OF GETSEG UUO
-
HRRM TAC,-1(PDP) ;SAVE IN CASE OF ERROR RETURN
PUSHJ PDP,GETWDU ;GET FIRST ARG FROM USER AREA
MOVEM TAC,SGADEV(PROG) ;STORE DEVICE NAME
@@ -2342,8 +2332,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
@@ -2353,6 +2342,7 @@ IFN FT2REL,<
INTERNAL SAVJOB,SAVERR
EXTERNAL JOB41,JOBS41,JOBDDT,JOBSDD,JOBSV
+
SAVJOB: JSP TAC1,SG1 ;SET UP ACS PROG,PDP,JDAT,ITEM.
; RESET DEVICES
HLRE TAC1,SGADMP(PROG) ;-NO. OF WORDS TO WRITE
@@ -2374,12 +2364,12 @@ SAVJB1: OPEN 0,SGAMOD ;RE INIT DEVICE, SO UGETF WILL SET FIRST FREE
UGETF 0,SGAHED ;GET FIRST FREE BLOCK(MEANINGFUL ONLY IF DTA)
; CAUSE ENTER TO ASSIGN FIRST LOBCK OF FILE
; AS LOWEST FREE BLOCK SO TENDMP CAN READ
+ ; SAVED FILES, SGAHED IS NO LONGER NEEDED(OPEN UUO)
ENTER 0,SGANAM ;ENTER FILE NAME IN DIRECTORY
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
@@ -2397,7 +2387,6 @@ SAVJB1: OPEN 0,SGAMOD ;RE INIT DEVICE, SO UGETF WILL SET FIRST FREE
CMPLP1: MOVEM TAC,DAT ;SAVE 1ST LOC FOR IOWD
CAMLE TAC1,ITEM ;SEARCH FOR 1ST NON-0 WORD
AOJA TAC,CMPTHR ;THROUGH
-
SKIPN @TAC1 ;THIS A DATA WORD?
AOJA TAC1,.-3 ;NO, KEEP LOOKING
MOVNI AC1,1 ;YES, AC1 WILL BE AN IOWD
@@ -2421,13 +2410,13 @@ 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
JSP TAC,PHOLD ;PRINT MESSAGE AND STOP JOB
ASCIZ /JOB SAVED/
+
SAVERR: MOVEI TAC,PRTERR ;ERROR CORE IN CASE RUN UUO(PROTECTION ERROR)
; CHANGE TO DISK ERROR CODE IF DEV IS DSK
PUSHJ PDP,SGRELL ;CHANGE TO DISK ENTER ERROR CODE IF DSK
@@ -2464,8 +2453,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 +2499,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 +2513,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 +2554,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
@@ -2589,7 +2574,7 @@ IFN FTDISK,<
MOVE TAC1,DEVMOD(DEVDAT) ;RETURN DEVICE CHARACTERISTICS(IF DISK SYS)
TLNE TAC1,DVDSK ;IS THIS DEVICE A DISK?
- MOVS TAC1,SGAPPN(PROG) ;YES. MAKE SURE FORTH WORD IS PROJ,PROG NO.
+ MOVS TAC,SGAPPN(PROG) ;YES. MAKE SURE FORTH WORD IS PROJ,PROG NO.
>
MOVSM TAC,SGALEN(PROG) ;NO. MAKE SURE FORTH WORD IS IOWD FOR DECTAPE
; SINCE DECTAPE USES RH TO COMPUTE LENGTH IN K
@@ -2617,14 +2602,14 @@ 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,
; PUSHJ PDP,GETJB
; RETURN ONLY IF EVERYTHING OK
+
EXTERNAL JOBCOR,JOB,CPOPJ,JOBS41,JOB41
GETJB:
@@ -2662,7 +2647,7 @@ IFN FT2REL,<
MOVEM TAC,JOB41(JDAT) ;SAVED BY SAVE
LOWFIN: HRRZ TAC,JOBCOR(JDAT) ;CORE ARG FROM PREVIOUS SAVE(THIS MONITOR
; ALWAYS STORES SOMETHING)
- SKIP TAC ;IS THIS AN OLD FORMAT FILE WITH NO CORE ARG TO SAVE?
+ SKIPN TAC ;IS THIS AN OLD FORMAT FILE WITH NO CORE ARG TO SAVE?
MOVE TAC,USRREL ;YES, USE ASSIGNMENT MADE WEN LOW FILE READ IN
PUSHJ PDP,CKSARG ;RETURN ONLY IF USER'S SUPLLIED ARG IS 0 OR NOT
; SMALLER THAN SAVE CORE ARG. RETURN LARGER
@@ -2672,24 +2657,26 @@ 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
+EXTERN TTYFUW
-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
+SGREL: SKIPN DEVDAT,USRJDA ;HAS CHANNEL BEEN RELEASED ALREADY?
+ JRST TTYFUW ;YES, FIND TTY AND WAIT FOR OUTPUT TO FINISH
+ PUSH PDP,IOS ;NO,
+ MOVE TAC,DEVMOD(DEVDAT)
+ TLNE TAC,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,6 ;NO SKIP TO EOF
+SGREL1: RELEAS ;NO RELEASE DEVICE
+ POP PDP,IOS
SGREL2:
- JRST TTYFNU ;FIND TTY FOR CURRENT USER
-
+ JRST TTYFUW ;FIND TTY FOR CURRENT USER
+
;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
@@ -2698,20 +2685,20 @@ SGREL2:
;SGDOA CALLED FROM SAVE, IT HAS ALREADY SET LH OF USRHCU=-2
;TO INDICATE CORE IS COMPRESSED
- EXTERN USRHCU,USRJDA,JOBSA,JOBDDT,JOBSDD,JOBSD1,JOBSAV,JOBCOR
- EXTERN JOBSV,JOBSV3,JOBSVD,JOBSDP
+ EXTERN USRHCU,USRJDA,JOBSA,JOBDDT,JOBSDD,JOBSD1,JOBSAV,JOBCOR
+ EXTERN JOBSV,JOBSV3,JOBSVD,JOBSDP
-SGDO: HRROS USRHCU ;SET LH OF USRCHU-1 AS A FLAG TO INDICATE SAVE GET
+SGDO: HRROS USRHCU ;SET LH OF USRCHU-1 AS A FLAG TO INDICATE SAVE GET
; LOW FILE IO IN PROGRESS, SO MONITOR WILL
; NOT STORE HIGH SEG PROTECTION IN JOBHRL WHICH
; HAS IOWD FOR ZERO COMPRESSION
-SGDOA: XCT @(PDP) ;EXECUTE INPUT OR OUTPUT UUO
- MOVE ITEM,JOB ;READ INTO PROTECTED PART OF JOB DATA AREA
- PUSHJ PDP,EXPAND ;EXPAND CORE IMAGE
- JRST ADRERR ;ADDRESS CHECK, PRINT MESSAGE AND STOP JOB
- MOVE TAC1,JOBDDT(PROG) ;COPY DDT STARTING ADR
- MOVEM TAC1,USRDDT ;INTO MONITOR PROTECTED AREA(IN CASE THIS IS GET)
- SETZM USRHCU ;FLAG THAT SAVE-GET IO FINISHED AND CORE EXPANDED
+SGDOA: XCT @(PDP) ;EXECUTE INPUT OR OUTPUT UUO
+ MOVE ITEM,JOB ;READ INTO PROTECTED PART OF JOB DATA AREA
+ PUSHJ PDP,EXPAND ;EXPAND CORE IMAGE
+ JRST ADRERR ;ADDRESS CHECK, PRINT MESSAGE AND STOP JOB
+ MOVE TAC,JOBDDT(PROG) ;COPY DDT STARTING ADR
+ MOVEM TAC,USRDDT ;INTO MONITOR PROTECTED AREA(IN CASE THIS IS GET)
+ SETZM USRHCU ;FLAG THAT SAVE-GET IO FINISHED AND CORE EXPANDED
AOS (PDP) ;SKIP OVER UUO IN CALLING SEQUENCE
;ROUTINE TO CHECK FOR IO ERRORS(CALLED FROM SEGCON)
@@ -2721,8 +2708,8 @@ SGDOA: XCT @(PDP) ;EXECUTE INPUT OR OUTPUT UUO
INTERN SGIOCK
-SGIOCK: MOVE T4,DEVIOS(DEVDAT) ;IO STATUS WORD FOR THIS DEVICE
- TRNN T4,IOBKTL!IODTER!IODERR!IOIMPM ;ANY ERRORS ON SAVE-GET DEVICE?
+SGIOCK: MOVE IOS,DEVIOS(DEVDAT) ;IO STATUS WORD FOR THIS DEVICE
+ TRNN IOS,IOBKTL!IODTER!IODERR!IOIMPM ;ANY ERRORS ON SAVE-GET DEVICE?
POPJ PDP, ;NO, GIVE OK RETURN
MOVEI TAC,TRNERR ;YES, ERROR CODE IN CASE THIS IS RUN UUO
; (TRANSMISSION ERROR)
@@ -2730,8 +2717,7 @@ 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 EXPAND CORE AFTER A SAVE(LOW SEG ONLY)
;CALL: MOVE DEVDAT,DEVICE ADR.
; MOVE PROG,JOBADR.
; MOVE ITEM,JOB NUMBER
@@ -2771,10 +2757,9 @@ 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
+ MOVE TAC1,@TAC ;FIRST IOWD
EXPLP1: HRRZ AC1,TAC1 ;ADDRESS OF IOWD
CAIGE AC1,JOBSAV ;LEGAL?
AOJA AC1,TOOLOW ;NO. DELETE DATA WHICH IS TO LOW
@@ -2791,7 +2776,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 +2809,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
@@ -2845,14 +2828,13 @@ NXIOWD: SUB TAC,AC2 ;POINT TAC TO NEXT IOWD
HRRZ AC1,@TAC ;GET ADDRESS
CAIGE AC1,JOBSD1 ;LEGAL?
AOJA AC1,TOOLOW ;NO, AT LEAST PART OF THE DATA IS LOW
-IOWBLT: MOVSI TAC,@TAC ;YES, KEEP THE ENTIRE IOWD DATA
+IOWBLT: MOVSI TAC1,@TAC ;YES, KEEP THE ENTIRE IOWD DATA
HRRI TAC1,JOBSV(PROG) ;TAC1 IS A BLT POINTER
SUBI TAC,JOBSV ;RH OF TAC IS AMOUNT BEING DELETED
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 +2845,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 +2889,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 +2903,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
@@ -2941,6 +2922,7 @@ NOFILE: MOVEI TAC,FNFERR ;ERROR CODE IN CASE THIS IS RUN UUO(FILE NOT FOUND
PUSHJ PDP,SGRELL ;RETURN DISK LOOKUP OR ENTER ERROR CODE IF DSK
; RELEASE DEVICE AND ERROR RETURN TO USER IF HE WANTED
; OR FIND TTY AND PRINT ?CRLF
+
MOVE TAC1,SGANAM(PROG) ;PRINT FILE NAME
PUSHJ PDP,PRNAME
PUSHJ PDP,PRPER ;PRINT PERIOD
@@ -2948,8 +2930,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
@@ -2968,7 +2949,6 @@ IFN FTDISK,<
>
SGRELE: MOVE TAC1,JOBPD1(JDAT) ;GET FIRST PC ON PD LIST
TLNN TAC1,USRMOD ;IS IT IN USER MODE(IE USER UUO)?
-
JRST SGRLE1 ;NO. MUST BE MONITOR COMMAND OR CALLED OVERLAYED
; RELEASE DEVICE, FIND TTY, AND RETURN TO CALLED
PUSH PDP,TAC ;SAVE ERROR CORE
@@ -2983,12 +2963,13 @@ SGRELE: MOVE TAC1,JOBPD1(JDAT) ;GET FIRST PC ON PD LIST
SKIPE USRJDA+0 ;DO NOT RELEASE CHANNEL 0 IF NOT INITED YET
; UUO HANDLER DOES NOT ALLOW THIS FROM EXEC MODE
RELEAS 0, ;RELEASE DEVICE(IF INITED)
+ PUSH PDP,JOBPD1(JDAT) ;PUT RETURN ON END OF PDLIST
JRST USRXIT ;AND RETURN TO USER TO HANDLE ERROR
+
SGRLE1: PUSHJ PDP,SGREL ;RELEASE DEVICE AND FIND TTY
JSP TAC,CONMES ;PRINT ?CRLF AND RETURN TO CALLER
; WHO WILL PRINT REST OF ERROR MESSAGE AND STOP JOB
ASCIZ /?
/
COMEND: END ;END OF COMCON
-