X-Git-Url: http://git.sky-visions.com/cgi-bin/gitweb.cgi/retro-software/dec/tops10/v4.5.git/blobdiff_plain/d693caac75dd25e668e43e85c29205bfc8dea06e..HEAD:/src/common.mac diff --git a/src/common.mac b/src/common.mac index 5f3ef5c..e7ad159 100644 --- a/src/common.mac +++ b/src/common.mac @@ -1,22 +1,21 @@ -TITLE COMMON - MONITOR COMMON DATA AREA AND CONFIGURATION DEFINITION - V437 + TITLE COMMON - MONITOR COMMON DATA AREA AND CONFIGURATION DEFINITION - V437 SUBTTL PART 3 COMMON.MAC - T. HASTINGS/RCC TS 03 JUN 69 XP VCOMMN,437 ;PUT VERSION NUMBER IN GLOB AND LOADER STORAGE MAP -REPEAT 0, < +REPEAT 0,< ;THE COMMON SUBPROGRAM CONSISTS OF 3 FILES ASSEMBLED TOGETHER AS ONE SUBPROGRAM: - 1. S.MAC - THE USUAL SYSTEM SYMBOL DEFINITIONS ASSEMBLED WITH - EVERY MONITOR SUBPROGRAM - 2. CONFIG.MAC - THE CONFIGURATION DEFINITION FILE GENERATED BY THE - CONFIGURATION PROGRAM (MONGEN) OR BY AN EDITOR (SEE ABOVE) - 3. COMMON.MAC - THE REST OF THIS PROGRAM WHICH IS THE SAME SOURCE FOR - ALL CONFIGURATIONS. HOWEVER, THE ASSEMBLIES ARE CONDITIONED BY - SYMBOLS AND MACROS DEFINED IN 2. - THE FOLLOWING SYMBOLS AND TABLES ARE GENERATED BELOW: - - A. MONITOR STARTUP LOCATIONS (140-147), HENCE LOAD THIS FIRST. - B. JOB TABLES - LENGTH DEPENDENT ON MAXIMUM NUMBER OF JOBS ALLOWED + 1. S.MAC - THE USUAL SYSTEM SYMBOL DEFINTIONS ASSEMBLED WITH EVERY MONITOR SUBPROGRAM + 2. CONFIG.MAC - THE CONFIGURATION DEFINTION FILE GENERATED BY THE + CONFIGURATION CONFIG PROGRAM OR BY AND EDITOR(SEE ABOVE) + 3. COMMON.MAC - THE REST OF THIS PROGRAM WHICH IS THE SAME + SOURCE FOR ALL CONFIGURATIONS. + HOWEVER, THE ASSEMBLIES ARE CONDITIONED BY MACROS DEFINED IN 2. + THE FOLLOWING SYMBOLS AND TABLES ARE GENERATED: + + A. MONITOR STARTUP LOCATIONS(140-147), HENCE LOAD THIS FIRST. + B. JOB TABLES - LENGTH DEPENDENT ON MAX. NO. OF JOBS ALLOWED C. ALL VARIABLE STORAGE NOT ASSOCIATED WITH A PARTICULAR DEVICE D. COMMON SUBROUTINE RETURNS E. COMMON BYTE POINTERS @@ -32,17 +31,17 @@ REPEAT 0, < ;HAVING PREVIOUSLY DEFINED THEM ON THE CONFIG.MAC FILE USING ;MONGEN PROGRAM - IFNDEF LISTSN, ;FORCE S.MAC TO BE LISTED WITH COMMON FILE ONLY ;UNLESS 'LISTSN' DEFINED TO BE 0 WITH MONGEN -IFNDEF APRSN, ;SERIAL NUMBER OF APR +IFNDEF APRSN, ;SERIAL NUMBER OF APR ;STANDARD MAG TAPE DENSITY(556 BPI),PARITY(ODD-BINARY) INTERN STDENS ;STANDARD MAG TAPE DENSITY(556 BPI),PARITY(ODD-BINARY) - IFNDEF STDENS, ;STAND. == BINARY AT 556 BPI + + IFNDEF STDENS, ;STAND.== BINARY AT 556 BPI ;STDENS==D+P WHERE D AND P ARE: - ;D==1(200 BPI);D== (556 BPI);D==3(800 BPI) - ;P==0(ODD-BINARY PARITY);P=4(EVEN-BCD PARITY) + ;D==1(200 BPI);D==2(556 BPI);D==3(800 BPI) + ;P==0(ODD-BINARY PARITY);P==4(EVEN-BCD PARITY) INTERN JIFSEC ;NO. OF CLOCK TICKS(JIFFIES) PER SECOND IFNDEF JIFSEC, ;STAND.==60 JIFFIES PER SEC. XP HNGSEC,2*JIFSEC @@ -50,27 +49,30 @@ IFNDEF APRSN, ;SERIAL NUMBER OF APR INTERN DTTRY ;NO. OF TIMES TO TRY ON DECTAPE ERRORS IFNDEF DTTRY, ;STAND.==4 TRIES - INTERN MTSIZ ;SIZE OF MAGTAPE RECORDS(DATA WORDS IN BUFFER+1) + INTERN MTSIZ ;SIZE OF MAGTPAE RECORDS(DATA WORDS IN BUFFER+1) IFNDEF MTSIZ, ;STAND.==128 WORDS PER BUFFER INTERN LPTSIZ ;SIZE OF LPT BUFFER(NO. OF DATA WORDS+2) IFNDEF LPTSIZ, ;STAND.==24 WORDS PER LPT BUFFER - INTERN BLKQNT ;MAX. NO OF CONSECUTIVE DECTAPE BLOCKS SEARCHED BEFORE - ; RESCHEDULING IF ANOTHER JOB IS WAITING TO USE CONTROL. + INTERN BLKQNT ;MAX. NO OF CONSECUTIVE DECTAPE BLOCK SEARCHED BEFORE + ; RESCHEDULING IF ANOTHER JOB IS WAITING TO USE CONTROL IFNDEF BLKQNT, ;STAND.==50 DT BLOCKS SEARCHED(3 SECS.) - INTERN NSPMEM ;NO OF NANO-SECONDS PER MEMORY CYCLE - IFNDEF NSPMEM, ;STAND.==1760 NANO-SECONDS PER MEMORY CYCLE -INTERNAL JIFSC2,JIFMIN,WDPJIF + INTERN NSPMEM ;NO. OF NANO-SECONDS PER MEMORY CYCLE + IFNDEF NSPMEM, ;STAND.==1760 NANO-SECONDS PER MEMORY CYCLE + +INTERN JIFSC2,JIFMIN,WDPJIF JIFSC2==JIFSEC/2 ;HALF NO. OF JIFFIES IN A SEC (FOR ROUNDING) - JIFMIN==JIFSEC*^D60 ;NO., OF JIFFIES PER MINUTE - WDPJIF==^D100000/NSPMEM*^D5000/JIFSEC ;NO. OF WORDS MOVED - IFNDEF MINCOR, ;DISK DDB AND ACCESS ENTRY - ; ALLOCATION REQUIRMENTS IN FREE CORE + JIFMIN==JIFSEC*^D60 ;NO. OF JIFFIES PER MINUTE + WDPJIF==^D100000/NSPMEM*^D5000/JIFSEC ;NO. OF WORDS MOVED + IFNDEF MINCOR, ;DISK DDB AND ACCESS ENTRY + ; ALLOCATION REQUIREMENTS IN FREE CORE ;USED TO EXPAND SIZE OF MONITOR AT ONCE ONLY TIME + ;32 WORDS/DDB AND 4 WORDS/ACCESS ENTRY = 36 WORDS - ;ASSUME 1.5 OPEN FILE/JOB + ;ASSUME 1.5 OPEN FILES/JOB + INTERN LOGSIZ IFNDEF LOGSIZ, ;MINSIZ OF VIRTUAL CORE LEFT @@ -80,7 +82,7 @@ IFNDEF LOGSIZ, ;MINSIZ OF VIRTUAL CORE LEFT ;SYSTEM INITIALIZATION DISPATCH TABLE, STARTING AT LOCATION 140 ;THIS SUBROUTINE MUST BE LOADED FIRST ;ROUTINE "ONCE" IS ONCE ONLY CODE. IT CONVERTS THE DATE -;AND SETS UP I/O SERVICE CHAIN, +;AND SETS UP IO SERVICE CHAIN, EXTERN SYSINI,SYSMAK,NULJOB,ONCE,JSR2 INTERN SYSDSP,SYSDDT @@ -92,13 +94,13 @@ IFNDEF LOGSIZ, ;MINSIZ OF VIRTUAL CORE LEFT SYSDSP: JRST SYSINI ;INITIALIZE SYSTEM VARIABLES ONCE ONLY SYSDDT: -IFG DDTN, < ;IF EXEC DDT IS LOADED..... +IFG DDTN,< ;EXEC DDT TO BE LOADED? EXTERN PATSYM JRST PATSYM ;YES, EXEC DDT(PATCH SYMBOL TABLE POINTER FIRST) > - IFE DDTN, < - HALT . ;NO. EXEC DDT +IFE DDTN,< + HALT . ;NO, EXEC DDT > JRST SYSMAK ;MAKE NEW SYSTEM JRST SYSINI ;INITIALIZE SYSTEM VARIABLES ALWAYS @@ -114,47 +116,46 @@ SYSCRS: JRST SYSTOP ;STOP MONITOR IN CASE OF DISASTER INTERN SYSSNP,FORTY,NULDAT,SIXTY,NULPDL,ERRPDL,KT10A,RCXIOC,RCXCCW,DDTSYM INTERN T30SYM,RAXIOC,RAXCCW,CRSHWD - RAXIOC=26 ;XWD 0,ADDRESS FOR RA-10'S DATA CHANNEL + RAXIOC=26 ;XWD 0,ADDRESS FOR RA10 DATA CHANNEL ; MUST BE EVEN AND .LT. 777 RAXCCW=RAXIOC+1 ;XWD CONTROL WORD ADDRESS,DATA ADDRESS ; STORED ON CHANNEL TERMINATION - CRSHWD=30 ;NORMALLY THIS WORD WILL BE 0. IF IT IS + CRSHWD=30 ;NORMALLY THIS WORD WILL BE 0. IF IT IS ;ACCIDENTALLY OR PURPOSEFULLY OVERWRITTEN ;THE MONITOR WILL ATTEMPT TO SAVE THE - ;AC'S AND THE STATE OF ALL DEVICES, + ;AC'S AND THE STATE OF ALL DEVICES. ;[A LA 147 RESTART] KT10A=33 ;COPY OF CONTENTS OF RELOCATION AND PROTECTION - ; DONE BY DATAO APR + ; DONE BY DTATO APR ; NEEDED BECAUSE KT10A MOD DOES NOT COME WITH ; LIGHTS FOR 2ND REG. RCXIOC=34 ;INITIAL CONTROL WORD FOR DATA CHANNEL - ; (TRANSFERS CHANNEL TO SEQUENCE OF IOWD'S IN DSKINT) + ; (TRANSFERS CHANNE TO SEQUENCE OF IOWD'S IN DSKINT) ; MUST BE IN EVEN LOC IN FIRST 1K OF MEMORY RCXCCW=RCXIOC+1 ;CHANNEL STORES FINAL CONTROL WORD ; HERE ON TERMINATION SYSSNP=37 ;WHEN DEPOSITED NON-ZERO,PRINTS SNAP SHOT OF SYSTEM ; ON LPT SEE LPSNAP SUBPROGRAM - DDTSYM=36 ;CONTAINS ADDRESS OF POINTER TO EXEC DDT SYMBOL TABLE + DDTSYM=36 ;CONTAINS ADR. OF POINTER TO EXEC DDT SYMBOL TABLE FORTY=40 ;PLACE WHERE UUOS ARE STORED ON TRAP - NULDAT=42 ;JOB DATA AREA FOR NULL JOB (USES EXEC - ; 62 THRU 101 20-36 FOR DUMP AC) + NULDAT=42 ;JOB DATA AREA FOR NULL JOB(USES EXEC + ; 62 THRU 101 20-36 FOR DUMP ACS) ; AND ABOVE FOR PUSHDOWN LIST - SIXTY=60 ;PLACE WHERE UNIMPLEMENTED INSTR. ARE STORED ON - ; TRAP (PDP-10 ONLY) + SIXTY=60 ;PLACE WHERE UNIMPLEMETNED INSTR. ARE STORED ON + ; TRAP(PDP-10 ONLY) NULPDL=101 ;PUSH DOWN LIST FOR NULL JOB ; USES EXEC LOCS 102 THRU 137 - ; USED FOR RE-SCHEDULING WHEN CURRENT JOB + ; USED FOR RESCHEDULING WHEN CURRENT JOB ; GOES INTO IO WAIT ERRPDL=120 ;PUSH DOWN LIST FOR ERROR IN NULL JOB T30SYM=131 ;PLACE IN 10/30 JOB DATA AREA WHERE SYMBOL TABLE ; POINTER IS STORED BY REGULAR 10/30 LOADER ; (MOVED TO DDTSYM BY ONCE) ;PROTECTED JOB DATA STORAGE AND OTHER LOCATIONS SET EACH TIME -;A NEW JOB IS RUN (SEE APRSER-CLKINT) - +;A NEW JOB IS RUN(SEE APRSER-CLKINT) INTERN SYSBEG,SYSBG1,SYSEND -SYSBEG: ;FIRST LOCATION CLEARED ON 143 RESTART (SEE SYSINI) +SYSBEG: ;FIRST LOCATION CLEARED ON 143 RESTART(SEE SYSINI) XP SYSBG1,SYSBEG+1 INTERN JOB,JOBADR,JOBDAT,USRREL,USRSAV @@ -166,8 +167,8 @@ JOBADR: 0 ;XWD PROTECTION,RELOCATION FOR CURRENT JOB ;SAME AS JBTADR(JOB) AND AC PROG USRREL: 0 ;LH==0, RH CONTAINS CONTENTS OF PROTECTION REGISTER ;LOW ORDER BITS==1777, IE THIS IS HIGHEST REL. LOC - ;IN CURRENT USER AREA (USED FOR ADDRESS CHECKING) -USRSAV: 0 ;TEMPORARY FOR UUO HANDLER (IMPURE ROUTINE!) + ;IN CURRENT USER AREA(USED FOR ADDRESS CHECKING) +USRSAV: 0 ;TEMPORARY FOR UUO HANDLER(IMPURE ROUTINE!) ;LOCATIONS COPIED FROM JOB DATA AREA INTO MONITOR WHEN A JOB RUNS ;THIS PREVENTS THE USER FROM CLOBBERING THEM AND MAKES IT @@ -179,28 +180,28 @@ USRSAV: 0 ;TEMPORARY FOR UUO HANDLER (IMPURE ROUTINE!) INTERN USRPRT,USRPR1,USRPC,USRDDT,USRHCU,USRSAV,USRJDA,USRLO,USRLO1,USRHI -USRPRT: ;FIRST LOCATION OF PROTECTED JOB DATA - USRPR1==USRPRT+1 ;FIRST LOCATION+1 +USRPRT: ;FIRST LOC. OF PROTECTED JOB DATA + USRPR1==USRPRT+1 ;FIRST LOC.+1 -USRHCU: 0 ;HIGHEST USER I/O CHANNEL IN USE - ;0 MEANS EITHER NONE OR CHANNEL 0 IN USE +USRHCU: 0 ;HIGHEST USER IO CHANNEL IN USE + ;0 MEANS EITHER NONE OR CHAN. 0 IN USE ;LH=-1 DURING GET OF LOW OR HIGH SEG OR SAVE OF HIGH SEG - ;SETREL ROUTINE DOESN'T STORE IN JOBHRL(11$) WHEN NEG, + ;SETREL ROUTINE DOESN'T STORE IN JOBHRL(115) WHEN NEG. ;LH=-2 DURING SAVE OF LOW SEG AS FLAG THAT CORE - ; IS COMPRESSED. - ;ONLY CHANNEL ASSIGNMENTS IN USE ARE COPIED INTO - ; MONITOR WHEN JOB RUNS + ; IS COMPRESSED + ;ONLY CHAN. ASSIGNMENTS IN USE ARE COPIED INTO + ;MONITOR WHEN JOB RUNS USRPC: 0 ;JOB PC WHEN SCHEDULER IS CALLED -USRDDT: 0 ;RH==STARTING ADDRESS OF USER DDT, LH UNUSED +USRDDT: 0 ;RH==STARTING ADR. OF USER DDT,LH UNUSED USRJDA: BLOCK 20 ;RH==JOB DEVICE ASSIGNMENTS (DEVICE DATA ; BLOCK ADDRESSES) - ;LH==UUO'S DONE SO FAR FOR THIS CHANNEL (SEE SYSPAR) - ;0 MEANS NO DEVICE INITIALIZED ON THIS CHANNEL + ; LH==UUOS DONE SO FAR FOR THIS CHANNEL(SEE SYSPAR) + ; 0 MEANS NO DEVICE INITIALIZED ON THIS CHANNEL USRLO==USRJDA ;FIRST LOC CLEARED BY SETUSR ROUTINE ;ON A CALL [SIXBIT /RESET/] ;ALSO CLEARS USRHCU USRLO1==USRLO+1 ;FIRST LOC+1 - USRHI==.-1 ;LAST LOC CLEARED BY SETUSR ROUTINE + USRHI==.-1 ;LAST LOC CLEARED BY SETUSR ROUT. ;OTHER SYSTEM DATA STORAGE @@ -211,13 +212,13 @@ USRJDA: BLOCK 20 ;RH==JOB DEVICE ASSIGNMENTS (DEVICE DATA COMCNT: 0 ;NUMBER OF COMMANDS TYPED-IN BUT NOT DECODED ;SET BY SCNSER, DECREMENTED BY COMCON -HNGTIM: 0 ;HUNG DEVICE TIME COUNT CHECK FOR HUNG I/O - ;DEVICES WHEN THIS GOES TO ZERO (ONCE PER HNGSEC) +HNGTIM: 0 ;HUNG DEVICE TIME COUNT CHECK FOR HUNG IO + ;DEVICES WHEN THIS GOES TO ZERO (ONCE A SECOND) CLKFLG: 0 ;NON-ZERO WHEN CLK INTERRUPT FORCED FOR ANY REASON TIMEF: 0 ;NON-ZERO FOR CLOCK INTERRUPT ON APR ;SET BY APRSER, TESTED AND CLEARED BY CLK ROUTINE APRERR: 0 ;APR ERROR BITS ON NON-EX MEM, ETC. - ;SET BY APRSER, CLEARED BY CLK ROUTINE (CLOCK) + ;SET BY APRSER, CLEARED BY CLK ROUTINE(CLOCK) APRPC: 0 ;PC WHEN APR ERROR DETECTED SCHEDF: 0 ;FORCED RESCHEDULING FLAG FOR CLK ROUTINE ;USED TO FORCE RESCHEDULING WHEN JOB IS IN EXEC MODE @@ -225,24 +226,24 @@ NULERR: 0 ;SET NON-ZERO IF MONITOR DETECTS ERROR WHILE ; NULL JOB IS RUNNING POTLST: 0 ;-1 WHEN SCHEDULER SEES THAT THERE ARE ;JOBS WHICH ARE POTENTIALLY RUNABLE BUT - ;HAS TO RUN NULL JOB. - ;0 WHEN IT FINDS A REAL JOB TO - ;RUN OR NULL JOB IS ONLY JOB WHICH WANTS TO - ;RUN. 'LSTWRD' IS INCREMENTED EVERY JIFFY - ;IF THIS FLAG IS -1 AND PREVIOUS JOB WAS NULL JOB. + ;HAS TO RUN NULL JOB. + ;0 WHEN IT FINDS A REAL JOB TO + ;RUN OR NULL JOB IS ONLY JOB WHICH WANTS + ;TO RUN. 'LSTWRD' IS INCREMENTED EVERY JIFFY + ;IF THIS FLAG IS -1 AND PREVIOUS JOB WAS NULL JOB IFN FTTRPSET,< INTERN STOPTS STOPTS: 0 ;STOP TIME SHARING OTHER USERS BECAUSE JOB 1 DID ;A TRPSET UUO WITH NON-ZERO AC(IE SET LOWER CORE - ; PI TRAP LOCATION,ALSO STOP CORE SHUFFLING + ; PI TRAP LOCATION. ALSO STOP CORE SHUFFLING > - SLJOBN=0 ;NUMBER OF JOBS IF NO SLEEP FEATURE + SLJOBN=0 ;NO. OF JOBS IF NO SLEEP FEATURE IFN FTSLEEP, ;LEAVE ONE ENTRY PER JOB CIPWT: BLOCK SLJOBN+3 ;CLOCK REQUEST QUEUE ; LH-MONITOR ADDRESS TO PUSHJ TO AT CLOCK LEVEL ; WHEN BITS 24-35 COUNT DOWN TO ZERO ; BITS 18-23 ARE DATA SET IN AC TAC WHEN PUSHJ DONE - ; BITS 24-35 ARE NUMBER OF CLK TICKS LEFT TO GO + ; BITS 24-35 ARE NO. OF CLK TICKS LEFT TO GO CIPWTM=CIPWT-1 ;FIRST LOC-1 OF CLOCK QUEUE ;STORAGE FOR VARIOUS CORE ALLOCATION FUNCTIONS @@ -251,105 +252,105 @@ CIPWT: BLOCK SLJOBN+3 ;CLOCK REQUEST QUEUE NSWTBL: ;FIRST LOCATION OF MONITOR DATA STORAGE - ; RETURNED BY GETTAB UUO (THESE LOCATIONS + ; RETURNED BY GETTAB UUO(THESE LOCATIONS ; PRESENT IN NON-SWAPPING SYSTEMS TOO) - ; OCTAL NUMBERS IN () CORRESPOND TO GETTAB ARG -CORTAB: BLOCK 10 ;(0-7) BIT=1 IF CORRESPONDING K OF CORE IN USE BY + ; OCTAL NOS. IN () CORRESPOND TO GETTAB ARG +CORTAB: BLOCK 10 ;(0-7)BIT=1 IF CORRESPONDING K OF CORE IN USE BY ; ACTIVE,IDLE, OR DORMANT HIGH OR LOW SEGS OR NON-EX XP CORBLK,^D256 ;NUMBER OF BITS IN CORE TABLE -CORMAX: 0 ;(10)MAX. CORE REQUEST+1(IE LARGEST REL. ADR.+1) - ; CAN BE RESTRICTED TO LESS THEN ALL OF USER CORE +CORMAX: 0 ;(10)MAX. CORE REQUEST+1(IE LARGEST REL. ADR,+1) + ; CAN BE RESTRICTED TO LESS THAN ALL OF USER CORE ; BY BUILD AND/OR ONCE - - -CORLST: 0 ;(11) 1 BIT BYTE POINTER TO LAST FREE BLOCK POSSIBLE +CORLST: 0 ;(11)1 BIT BYTE POINTER TO LAST FREE BLOCK POSSIBLE ; SET BY SYSINI ON 143 STARTUP -CORTAL: 0 ;(12) TOTAL NUMBER OF FREE+DORMANT+IDLE CORE BLKS LEFT -SHFWAT: 0 ;(13) JOB NUMBER SHUFFLER HAS TEMPORARILY STOPPED - ;UNTIL ITS IO DEVICES TO BECOME INACTIVE BEFORE SHUFFLING -HOLEF: 0 ;(14) ABSOLUTE ADDRESS OF LOWEST HOLE IN CORE, 0=NONE -UPTIME: 0 ;(15) NUMBER OF CLOCK TICKS SINCE SYSTEM LOADED OR +CORTAL: 0 ;(12)TOTAL NO. OF FREE+DORMANT+IDLE CORE BLOCKS LEFT +SHFWAT: 0 ;(13)JOB NO. SHUFFLER HAS TEMPORARILY STOPPED + ;UNTIL ITS IO DEVICES BECOME INACTIVE, BEFORE SHUFFLING +HOLEF: 0 ;(14)ABS. ADDRESS OF JOB ABOVE LOWEST HOLE, 0 IF NO JOB. +UPTIME: 0 ;(15)NO. OF CLOCK TICKS SINCE SYSTEM LOADED OR ; RESTARTED AT 143 -SHFWRD: 0 ;(16) TOT NO. OF WORDS SHUFFLED BY SYSTEM -STUSER: 0 ;(17) JOB CURRENTLY USING THE SYSTEM TAPE +SHFWRD: 0 ;(16)TOT. NO. OF WORDS SHUFFLED BY SYSTEM +STUSER: 0 ;(17)JOB CURRENTLY USING THE SYSTEM TAPE ; NEEDED SO CONTROL C WILL NOT TIE UP SYSTEM TAPE -HIGHJB: 0 ;(20) HIGHEST JOB NUMBER CURRENTLY ASSIGNED -CLRWRD: 0 ;(21) TOTAL NO. OF WORDS CLEARED BY 'CLRCOR' RTN. -LSTWRD: 0 ;(22) TOTAL NO. OF CLOCK TICKS WHEN NULL JOB RAN - ; BUT OTHER JOBS WANTED TO RUN AND COULD NOT - ; DO SO BECAUSE: --- +HIGHJB: 0 ;(20)HIGHEST JOB NUMBER CURRENTLY ASSIGNED + +CLRWRD: 0 ;(21) TOTAL NO. OF WORDS CLEARED BY "CLRCOR" RTNE. +LSTWRD: 0 ;(22) TOTAL NO. OF CLOCK TICKS WHEN NULL + ;JOB RAN BUT OTHER JOBS WANTED TO RUN, BUT + ;COULD NOT BE BECAUSE:- ; 1. SWAPPED OUT OR ON WAY IN OR OUT - ; 2. MONITOR WAITING FOR I/O TO STOP SO - ; IT CAN SHUFFLE OR SWAP - ; 3. JOB BEING SWAPPED OUT BECAUSE IT IS + ; 2. MONITOR WAITING FOR IO TO STOP SO + ; CAN SHUFFLE OR SWAP + ; 3. JOB BEING SWAPPED OUT BECAUSE ; EXPANDING CORE ;INSERT NEW LOCATIONS HERE WHICH ARE OF INTEREST ; TO USERS IN NON-SWAP AND SWAP SYSTEMS -NSWMXL=<.-NSWTBL-1>B26 ;MAXIMUM ENTRY FOR GETTAB SHIFTED LEFT 9 +NSWMXL=<.-NSWTBL-1>B26 ;MAX. ENTRY FOR GETTAB SHIFTED LEFT 9 ;CORE ALLOCATION DATA NOT AVAILABLE VIA GETTAB -IFN FTTRACK, +IFN FTTRACK, ;DATA LOCATIONS PRESENT ONLY IN SWAPPING SYSTEMS - IFG SYS50N, < ;SWAPPING SYSTEM ? + IFG SYS50N,< ;SWAPPING SYSTEM? INTERN SWPTBL,SWPMXL,BIGHOL,FINISH,FORCE,FIT,SWPERC,VIRTAL INTERN FULCNT,MAXSIZ,MAXJBN,SUMCOR SWPTBL: ;FIRST LOCATION OF MONITOR DATA STORAGE - ; RETURNED BY GETTAB UUO (THESE LOCATIONS + ; RETURNED BY GETTAB UUO(THESE LOCATIONS ; PRESENT ONLY IN SWAP SYSTEMS) - ; OCTAL NUMBERS IN () CORRESPOND TO GETTAB ARG -BIGHOL: 0 ;(0) CURRENT BIGGEST HOLE IN CORE (1K BLOCKS) -FINISH: 0 ;(1) IF +, THEN JOB NUMBER OF JOB BEING SWAPPED IN, - ;IF -, THEN JOB NUMBER OF JOB BEING SWAPPED OUT -FORCE: 0 ;(2) JOB NUMBER BEING FORCED TO SWAP OUT -FIT: 0 ;(3) JOB NUMBER WAITING TO BE FITTED INTO CORE -VIRTAL: 0 ;(4) NUMBER OF FREE 1K BLOCKS OF SWAPPING SPACE LEFT + ; OCTAL NOS. IN () CORRESPOND TO GETTAB ARG +BIGHOL: 0 ;(0)CURRENT BIGGEST HOLE IN CORE (1K BLOCKS) +FINISH: 0 ;(1)+JOBNO OF JOB BEING SWAPPED IN, + ;-JOBNO OF JOB BEING SWAPPED OUT +FORCE: 0 ;(2)JOBNO BEING FORCED TO SWAP OUT +FIT: 0 ;(3)JOBNO WAITING TO BE FITTED INTO CORE +VIRTAL: 0 ;(4)NO. OF FREE 1K BLOCKS OF SWAPPING SPACE LEFT ; (COUNTING DORMANT SEGMENTS AS IF FREE). - ; PRINTED WITH CORE COMMAND (NO ARG) OR ERROR + ; PRINTED WITH CORE COMMAND(NO ARG) OR ERROR ; USUALLY THE SAME AS THE AMOUNT OF VIRTUAL CORE ; LEFT IN SYSTEM, EXCEPT WHILE R,RUN,KJOB,GET ; COMMAND ARE WAITING TO BE SWAPPED IN, BECAUSE ; THE OLD DISK SPACE HAS NOT BEEN RETURNED YET, ; BUT VIRTUAL CORE IS ONLY 140 WORDS FOR SWAPIN -SWPERC: 0 ;(5) LH= NUMBER OF SWAPPER READ OR WRITE FAILURES - ; RH= ERROR BITS (BITS 18-21) + NUMBER OF K OF +SWPERC: 0 ;(5)LH= NO. OF SWAPPER READ OR WRITE FAILURES + ; RH= ERROR BITS (BITS 18-21) + NO. OF K OF ; DISCARDED SWAPPING SPACE ;INSERT NEW LOCATIONS HERE WHICH ARE OF INTEREST ; TO USER PROGS IN SWAPPING SYSTEMS -SWPMXL=<.-SWPTBL-1>B26 ;MAXIMUM ENTRY FOR GETTAB SHIFTED LEFT 9 +SWPMXL=<.-SWPTBL-1>B26 ;MAX. ENTRY FOR GETTAB SHIFTED LEFT 9 ;MORE SWAPPING SYSTEM LOCATIONS (NOT RETURNED BY GETTAB) FULCNT: 0 ;PRINT DISK IS FULL EVERY 30 SECONDS MAXSIZ: 0 ;SIZE OF LARGEST JOB WHICH MIGHT BE SWAPPED OUT MAXJBN: 0 ;NUMBER OF THAT JOB -SUMCOR: 0 ;TEMPORARY STORAGE CELL USED BY SWAPPER FOR SUM OF - ; CORE NEEDED FOR SWAP IN +SUMCOR: 0 ;TEMP USED BY SWAPPER FOR SUM OF CORE NEEDED FOR SWAP IN IFN FT2REL,< INTERN SWPIN,SWPOUT -SWPIN: 0 ;JOB NUMBER BEING SWAPPED IN IF IT HAS A HIGH SEG - ; USED TO REMEMBER THE JOB NUMBER DURING HIGH SEG -SWPOUT: 0 ;JOB NUMBER BEING SWAPPED OUT IF IT HAS A HIGH SEG - ; USED TO REMEMBER THE JOB NUMBER DURING HIGH SEG +SWPIN: 0 ;JOB NO. BEING SWAPPED IN IF IT HAS A HIGH SEG + ; USED TO REMEMBER THE JOB NUMBER DURING HIGH SEG SWAP + +SWPOUT: 0 ;JOB NO. BEING SWAPPED OUT IF IT HASA HIGH SEG + ; USED TO REMEMBER THE JOB NUMBER DURING HIGH SEG SWAP + > INTERN FTTRACK -IFN FTTRACK, < - INTERN LASIN,LASOUT +IFN FTTRACK,< + INTERN LASOUT,LASIN -LASIN: 0 ;LAST JOB OR HIGH SEG SWAPPED IN LASOUT: 0 ;LAST JOB OR HIGH SEG SWAPPED OUT +LASIN: 0 ;LAST JOB OR HIGH SEG SWAPPED IN ; ABOVE TWO FOR DEBUGGING ONLY > > -;DEFINE BLOCK FOR BIT TABLE DENOTING 4 WORD BLOCKS AVAILABLE (=0), IN USE (=1) -; USE MULTIPLES OF 4*^D36 WORDS SO THE TABLE WILL HAVE A MULTIPLE OF ^D36 BITS +;DEFINE BLOCK FOR BIT TABLE DENOTING 4. WORD BLOCKS AVAILABLE (=0), IN USE(=1) +; USE MULTIPLES OF 4*36. WORDS SO THE TABLE WILL HAVE A MULTIPLE OF 36. BITS ; ADD 7 WORDS TO ACCOMODATE A POSSIBLE 1K BEYOND MINCOR AMOUNT IFG DSKN, < @@ -357,66 +358,65 @@ INTERNAL DDBTAB,MINCOR DDBTAB: BLOCK +1+7 > - ;MONITOR TABLES WITH ONE ENTRY PER JOB INTERN JBTSTS,JBTADR,JBTDAT,JBTNAM,JBTPRG INTERN JOBMAX,JBTMAX,MJOBN,JBTAD1,JOBMXL,JBTMXL INTERN FTTIME,FTKCT,FTPRV - JOBMAX==JOBN-1 ;MAXIMUM LEGAL JOB NUMBER - JOBMXL==B26 ;HIGHEST JOB NUMBERSHIFTED LEFT 9 (FOR GETTAB UUO) - MJOBN==-JOBN ;NEGATIVE NUMBERS OF JOBS (COUNTING NULL JOB) - IFG KT10AN, ;IF ANY HIGH SEGMENTS, + JOBMAX==JOBN-1 ;MAX. LEGAL JOB NUMBER + JOBMXL==B26 ;HIGHEST JOB NO.SHIFTED LEFT 9(FOR GETTAB UUO) + MJOBN==-JOBN ;NEG. NOS. OF JOBS(COUNTING NULL JOB) + IFG KT10AN, ;IF ANY HIGH SEGMENTS, ; MUST HAVE AT LEAST AS MANY AS JOBS JBTMAX==JOBN+SEGN-1 ;HIGHEST INDEX IN JBT TABLES - JBTMXL=B26 ;HIGHEST JBT ENTRY SHIFTED LEFT 9 (FOR GETTAB UUO) + JBTMXL=B26 ;HIGHEST JBT ENTRY SHIFTED LEFT 9(FOR GETTAB UUO) JBTSTS: BLOCK JOBN+SEGN ;JOB AND HIGH SEG STATUS WORD - ;LH==STATUS BITS (SEE S.MAC FOR DESCRIPTION) - ;RH==QUANTUM RUN TIME LEFT (SEE CLKCSS) FOR LOW SEGS + ;LH==STATUS BITS(SEE S.MAC FOR DESC.) + ;RH==QUANTUM RUN TIME LEFT(SEE CLKCSS) FOR LOW SEGS ;RH=IN CORE COUNT FOR HIGH SEGS JBTADR: BLOCK JOBN+SEGN ;JOB AND HIGH SEG CORE ASSIGNMENT - ; LH==PROTECTION (LENGTH-1) - ; RH==RELOCATION (ABSOLUTE LOCATION IN CORE) - JBTAD1==JBTADR+1 ;ADDRESS OF JOB 1 (USED BY SYSMAK) + ; LH==PROTECTION,(LENGTH-1)RH==RELOCATION + ; (ABS. LOC. IN CORE) + JBTAD1==JBTADR+1 ;ADR. OF JOB 1(USED BY SYSMAK) JBTDAT==JBTADR ;RH==ADDRESS OF JOB DATA AREA - ;SAME AS JBTADR (JDAT==PROG) + ;SAME AS JBTADR(JDAT==PROG) INTERN JBTSGN JBTSGN: IFG SEGN, < - BLOCK JOBN ;RH=SEGMENT NUMBER OF HIGH SEGMENT THIS JOB - ; IS USING IN CORE OR ON DISK + BLOCK JOBN ;SEGMENT NUMBER OF HIGH SEGMENT THIS JOB + ; IS USING IN CORE OR DISK ; 0 MEANS JOB DOES NOT HAVE HIGH SEG - ;LH=USER DEPENDENT HIGH SEG STATUS BITS (SEE S.MAC) - XP ITMSGN,ITEM+JOBMXL ;LH SYMBOL FOR GETTAB UUO + ; LH=USER DEPENDENT HIGH SEG STATUS BITS + ; (SEE S.MAC) + XP ITMSGN,ITEM+JOBMXL ;LH SYSMBOL FOR GETTAB UUO > IFE SEGN, < - 0 ;SINGLE-ENTRY NULL JBTSGN TABLE.... - XP ITMSGN,JOBMXL ;LH SYMBOL FOR GETTAB UUO SO THAT JBTSGN IS - ; UNDEFINED, I.E., MAKE INDEXING BY ITEM BE 0, BUT - ; ALLOW REFERENCES UP TO JOBMXL. + 0 + XP ITMSGN,JOBMXL ;LH SYMBOL FOR GETTAB UUO + ;SO THAT JBTSGN IS UNDEFINED + ;I.E. MAKE INDEXING BY ITEM BE 0 + ; BUT ALLOW REFERENCES UP TO JOBMXL > - IFG DSKN, < ;DISK SYSTEM ? + IFG DSKN,< ;DISK SYSTEM? INTERN PRJPRG,JBTDIR -JBTDIR: ;HIGH SEGMENT DIRECTORY NAME (DSK) OR PHYSICAL - ; DEVICE NAME (DTA,MTA) -PRJPRG: BLOCK JOBN+SEGN ;XWD PROJECT NUMBER,PROGRAMMER NUMBER +JBTDIR: ;HIGH SEGMENT DIRECTORY NAME(DSK) OR PHYSICAL + ; DEVICE NAME(DTA,MTA) +PRJPRG: BLOCK JOBN+SEGN ;XWD PROJECT NO.,PROGRAMMER NO. > - IFE DSKN, > - IFN FTTIME, < + IFN FTTIME,< INTERN RTIME,TTIME -RTIME: BLOCK JOBN ;TOTAL RUN TIME SINCE LAST IJOB OR RUNTIME -TTIME: BLOCK JOBN ;TOTAL RUN TIME SINCE LAST IJOB +RTIME: BLOCK JOBN ;TOT. RUN TIME SINCE LAST IJOB OR RUNTIME +TTIME: BLOCK JOBN ;TOT. RUN TIME SINCE LAST IJOB > - - IFG SYS50N,< ;SWAPPING SYSTEM ? - INTERNAL JBTSWP,JBTCHK + IFG SYS50N,< ;SWAPPING SYSTEM? + INTERN JBTSWP,JBTCHK JBTSWP: BLOCK JOBN+SEGN ;LH:==PROTECT TIME WHILE JOB IS IN CORE. ; DISK ADDRESS WHILE SWAPPED OUT - ;BIT 0=1 IF SEGMENT IS FRAGMENTED ; BITS18-26:==OUTCORE IMAGE SIZE ; BITS27-35:==INCORE IMAGE SIZE ; FOR HIGH SEG, LH ALWAYS DISK ADDRESS @@ -424,40 +424,40 @@ JBTSWP: BLOCK JOBN+SEGN ;LH:==PROTECT TIME WHILE JOB IS IN CORE. ; SAME AREA FOR HIGH SEG > -JBTNAM: ;NAME OF HIGH SEGMENT (FILE IT WAS INITIALIZED FROM) +JBTNAM: ;NAME OF HIGH SEGMENT(FILE IT WAS INITIALIZED FROM) JBTPRG: BLOCK JOBN+SEGN ;NAME OF FILE USED IN LAST R,RUN,GET, ETC ; USED BY SYSTAT PROGRAM - IFN FTKCT, < + IFN FTKCT,< INTERN JBTKCT -JBTKCT: BLOCK JOBN ;PRODUCT OF CORE LENGTH (IN K) TIMES NUMBER OF JIFFIES +JBTKCT: BLOCK JOBN ;PRODUCT OF CORE LENGTH(IN K) TIMES NO. OF JIFFIES ; PROGRAM USED CPU. USED FOR TIME ACCOUNTING. > - IFN FTPRV, < + IFN FTPRV,< INTERN JBTPRV -JBTPRV: BLOCK JOBN ;PRIVILEGE BITS FOR JOB SET BY LOGIN +JBTPRV: BLOCK JOBN ;PRIVELEGE BITS FOR JOB SET BY LOGIN > - IFG DSKN, < + IFG DSKN,< INTERN MQUEUE,MQTOP -MQUEUE: BLOCK JOBN ;DISK MONITOR I/O QUEUE +MQUEUE: BLOCK JOBN ;DISK MONITOR IO QUEUE MQTOP=. ;LAST LOC+1 OF MONITOR QUEUE > - IFG SYS50N, < + IFG SYS50N,< ;THE FOLLOWING ARE USED TO CREATE MXQUE -;THE MAXIMUM QUEUE SIZE, USED BY SWAPPING SCHEDULER (SCHED) - FTDISK=-DSKN ;DEFINE FEATURE SWITCH FTDISK,SINCE IT APPEARS +;THE MAXIMUM QUEUE SIZE, USED BY SWAPPING SCHEDULER(SCHED) + FTDISK==-DSKN ;DEFINE FEATURE SWITCH FTDISK,SINCE IT APPEARS ; IN MACRO QUEUES ; WHICH IS DEFINED IN S.MAC XP MXQUE,0 LALL ;LIST QUEUE DEFINITIONS FOR ALL TO SEE - DEFINE X + DEFINE X QUEUES DEFINE X (A) CODES MXQUE==MXQUE+3 @@ -465,11 +465,10 @@ DEFINE X (A) XALL ;BACK TO NORMAL MACRO EXPANSION INTERN JBTQ,JBTQM1,JBTQP1,JBTQMN - - BLOCK MXQUE ;NUMBER OF QUEUES FOR SWAPPING SCHEDULER + BLOCK MXQUE ;NO. OF QUEUES FOR SWAPPING SCHEDULER JBTQ: BLOCK JOBN ;ONE ENTRY PER JOB, - ; LH=PREVIOUS JOB, RH=NEXT JOB IN QUEUE - ; NEGATIVE MEANS THIS IS FIRST (LH) OR LAST (RH) + ; LH=PREVIOUS JOB, RH=NEXT JOB IN QUEUE + ; NEGATIVE MENAS THIS IS FIRST (LH) OR LAST (RH) ; JOB IN QUEUE JBTQM1==JBTQ-1 ;JBTQ-1 JBTQP1==JBTQ+1 ;JBTQ+1 @@ -479,25 +478,25 @@ JBTQ: BLOCK JOBN ;ONE ENTRY PER JOB, ;INDEXED BY TTY LINE NUMBER, CONTAINS TTY DDB ADDRESS IN RH ;(ASSIGNED WHEN FIRST CHARACTER TYPED ON TTY BY SCNSER ;BIT 0==1 IF COMMAND TYPED BUT NOT PROCESSED - ;BITS 6-11==JOB NUMBER TTYP IS ATTACHED TO + ;BITS 6-11==JOB NUMBER TTY IS ATTACHED TO ;BITS 12-17==NEXT LINE NUMBER IN TALK RING OR ITS SELF IF NOT TALKING INTERN TTYTAB,PTYTAB,TPYTAB,TCONLN,MLTTYL,MTTYLN,TTPLEN,TTMODL,TTPMXL -TTYTAB: BLOCK HGHLIN+1+1 ;NO OF TTYS PLUS CTY +TTYTAB: BLOCK HGHLIN+1+1 ;NO OF TTYS PLUS CTY TPYTAB==.-1 ;ADDRESS OF LAST ENTRY TCONLN==.-1-TTYTAB ;LINE NUMBER OF CTY BLOCK PTYN ;PSEUDO TTY TRANSLATOR TABLE - ; THIS IS FOR LINKED TTY LINES, + ; THIS IS FOR THE LINKED TTY LINES, ; NOT THE DEVICE "PTYN"'S DDB TTPLEN==.-TTYTAB ;LENGTH OF ENTIRE TABLE - TTPMXL=B26 ;HIGHET ENTRY IN TTYTAB SHIFTED LEFT 9(FOR GETTAB UUO) + TTPMXL==B26 ;HIGHEST ENTRY IN TTYTAB SHIFTED LEFT 9(FOR GETTAB UUO) - MLTTYL==-JOBN ;NEG, NO OF TTY DDBS (ONE FOR EACH JOB, PLUS 1 ETRA + MLTTYL==-JOBN ;NEG, NO OF TTY DDBS (ONE FOR EACH JOB, PLUS 1 EXTRA ; SO JOB CAPACITY EXCEEDED MESSAGE CAN BE TYPED MTTYLN==-TTPLEN ;NEG, LENGTH OF ENTIRE TRANSLATOR TABLE -PTYTAB: BLOCK PTYN+1 ;ADDRESS OF THE DDBS FOR DEVICE PTYN +PTYTAB: BLOCK PTYN+1 ;ADDRESSES OF THE DDBS FOR DEVICE PTYN ; NOT THE LINKED TTY LINES. SEE TPYTAB. ;LAST LOCATION CLEARED BY SYSINI ON 143 RESTART SYSEND==.-1 @@ -526,33 +525,33 @@ CNTDB: SETZM DESONC ;PREVENT DESTRUCTION OF ONCE ONLY CODE HRRM TAC, LINKED ;STORE EXIT FROM THIS ROUTINE (ONCE ONLY CODE WILL ; BE OVERLAYED BY MULTIPLE DEVICE DATA ; BLOCK GENERATION) - MOVSI TAC,INTNUM ;NEG NUMBER OF ENTRIES IN TABLE + MOVSI TAC,INTNUM ;NEG NO. OF ENTRIES IN TABLE MOVEI DEVDAT,DEVLST-DEVSER ;MAKE DEVLST LOOK LIKE DEVSER IN A DOB LOOP: MOVE TAC1,INTTB1(TAC) ;GET NEXT DEVICE DATA BLOCK ADDRESS JUMPE TAC1,NEXT ;0 MEANS NO DOB FOR DEVICE - SKIPE DESONC ;OK TO DESTROY ONCE ONLY CODE ? + SKIPE DESONC ;OK TO DESTROY ONCE ONLY CODE? HRLM TAC1,DEVSER(DEVDAT) ;YES, STORE IN PREVIOUS DEVICE DATA BLOCK HRRZ DEVDAT,TAC1 ;MAKE DEVDAT POINT TO CURRENT DOB - LDB UUO,DDBNUM ;GET NUMBER OF DDB'S - SOJLE UUO,NEXT ;ONE OR LESS ? + LDB UUO,DDBNUM ;GET NO. OF DDB'S + SOJLE UUO,NEXT ;ONE OR LESS? HRRZ JBUF,DEVDAT ;NO, CREATE MULTIPLE COPIES OF DOB ; SAVE ORIGINAL IN JBUF MOVEI AC3,1 ;STARTING WITH DEV1,DEV2,DEV77 LDB AC1,PUNIT ;START UNIT NUMBER FROM ; ASSEMBLE DEVICE DATA BLOCK - ; PTY STARTS UNIT NUMBER AT 1 INSTEAD OF 0 + ; PTY STARTS UNIT NO. AT 1 INSTEAD OF 0 ; ALTHOUGH DEVICE NAMES ARE PTY0,PTY1,ETC. MULDDB: HRRZ TAC1,SYSSIZ ;ADR. OF NEXT DDB IS AT END OF MONITOR - SKIPE DESONC ;OK TO DESTROY ONCE ONLY CODE ? - HRLM TAC1,DEVSER(DEVDAT) ;YES, MAKE PREVIOUS DDB POINT TO THE ONE ABOUT TO BE CREATED + SKIPE DESONC ;OK TO DESTROY ONCE ONLY CODE? + HRLM TAC1,DEVSER(DEVDAT) ;YES,MAKE PREVIOUS DDB POINT TO ONE ABOUT TO BE CREATED HRL DEVDAT,JBUF ;SOURCE ADDRESS TO LH HRR DEVDAT,TAC1 ;DESTINATION ADDRESS TO RH HLRZ AC2,INTTB1(TAC) ;LENGTH OF DEVICE DATA BLOCK ADDB AC2,SYSSIZ ;LAST LOCATION+1 AFTER MOVE - SKIPN DESONC ;OK TO DESTROY ONCE ? + SKIPN DESONC ;OK TO DESTROY ONCE? JRST JUSTCT ;NO, JUST COUNT DDB SPACE BLT DEVDAT,-1(AC2) ;MOVE ORIGINAL TO FREE STORAGE - SKIPL INTTAB(TAC) ;IS THIS DECTAPE (ANY OF 3 SERVICES)? + SKIPL INTTAB(TAC) ;IS THIS DECTAPE(ANY OF 3 SERVICES)? JRST NOTDTA ;NO HRRZ AC2,DEVDAT ;YES,DESTINATION SUBI AC2,(JBUF) ;-SOURCE=DISTANCE MOVED @@ -560,9 +559,8 @@ LOOP: MOVE TAC1,INTTB1(TAC) ;GET NEXT DEVICE DATA BLOCK ADDRESS ; (SORRY ABOUT NO SYMBOL) NOTDTA: MOVE PROG,PHYNAM ;BYTE POINTER TO NEWLY CREATED ; DDB PHYSICAL NAME - - MOVE ITEM,AC3 ;MAKE COPY OF UNIT NUMBER - TRNN ITEM,70 ;IS IT 10 OR MORE ? + MOVE ITEM,AC3 ;MAKE COPY OF UNIT NO. + TRNN ITEM,70 ;IS IT 10 OR MORE? JRST SMALL ;NO ROT ITEM,-3 ;YES, CONVERT HIGH ORDER OCTAL DIGIT TO ADDI ITEM,20 ;SIXBIT @@ -578,11 +576,11 @@ JUSTCT: CAIGE AC3,(UUO) ;COMPARE WITH HIGHEST DEVICE NUMBER NEXT: AOBJN TAC,.+1 ;MOVE BY TWOS AOBJN TAC,LOOP ;ANY MORE DEVICES MOVEI TAC,0 ;NO, FLAG END OF DEVICE DATA BLOCK CHAIN WITH 0 LINK - SKIPE DESONC ;OK TO DESTROY ONCE ? + SKIPE DESONC ;OK TO DESTROY ONCE? HRLM TAC,DEVSER(DEVDAT) ;YES, STORE 0 IN CASE LAST DDB IS MULTIPLE -IFG DSKN, < - EXTERNAL LOCORE,CRINIT - MOVE TAC,SYSSIZ ;SIZE OF MONITOR SO FAR (SYSMAK, EXEC DDT OR NOT) +IFG DSKN,< + EXTERN LOCORE,CRINIT + MOVE TAC,SYSSIZ ;SIZE OF MONITOR SO FAR(SYSMAK,EXEC DDT OR NOT) MOVEM TAC,LOCORE ;SAVE POINTER TO FIRST 4 WORD BLOCK ADDI TAC,MINCOR ;MINIMUM REQUIRED FOR DISK DDBS IORI TAC,1777 ;FORCE TO 1K BOUNDARY @@ -602,71 +600,74 @@ DESONC: 0 ;FLAG =0 IF CALLED BY JSP TAC,CNTDB DDBNUM: POINT 8,INTTAB(TAC),8 ;POINTER TO DDB NUMBER PHYNAM: POINT 6,DEVNAM(DEVDAT),17 ;BYTE POINTER TO DB PHYSICAL NAME - ;MACROS TO DEFINE PI CHANNEL NUMBER AND GENERATE INTERRUPT CHAINING -;INFORMATION FOR ONCE + ;MACRO TO DEFINE PI CHANNEL NUMBER AND GENERATE INTERRUPT CHAINNING +;INFORMATION FOR ONCE ;SO IT CAN LINK THE DEVICE INTERRUPT SERVICE ROUTINES AND THE DEVICE DATA BLOCKS ;TABLE INTTAB IS GENERATED WITH PAIRS OF ENTRIES FOR EACH DEVICE -;WHICH HAS A DEVICE DATA BLOCK(0-7) -;FIRST WORD: BIT 0==1 IF DECTAPE,BITS 1-9==NO. OF DDBS, BITS 9-17==PI CHANNEL(0-7) +;WHICH HAS A DEVICE DATA BLOC(0-7) +;FIRST WORD: BIT 0==1 IF DECTAPE,BITS 1-9==NO. OF DDBS,BITS 9-17==PI CHANNEL(0-7) ;0 MEANS NO PI CHANNEL (EG PTY) -;SECOND WORD:LH==0 IF SINGLE DEVICE,==LENGTH OF DDB IF MULTIPLE, RH==DDB ADDRESS +;SECOND WORD:LH==0 IF SINGLE DEVICE,==LENGTH OF DDB IF MULTIPLE,RH==DDB ADDRESS ;MACRO FOR DEVICES WHICH ARE ALWAYS PRESENT(AND WHICH DO NOT USE A CHANNEL SAVE ROUTINE ;AND HAVE NO DDB (EX-APR,CTY,PEN,CLK) -DEFINE SPASGINT (DEV,PI) < + +DEFINE SPASGINT (DEV,PI) < DEV'N==1 ASGINT DEV,PI > -DEFINE ASGINT (DEV,PI) < - IFG DEV'N, , <.CHAS==1 ;CHANNEL PI IN USE.> - INTERNAL DEV'CHN +DEFINE ASGINT (DEV,PI)< + IFG DEV'N,,<.CHAS==1 ;CHANNEL PI IN USE> + INTERN DEV'CHN DEV'CHN==PI - EXTERNAL DEV'INT ;INTERRUPT SERVICE CONSO INSTRUCTION + EXTERN DEV'INT ;INTERRUPT SERVICE CONSO INSTRUCTION XWD PI,DEV'INT ;GENERATE INTERRUPT ENTRY POINT FOR ONCE XWD 0,0 ;NO DDB TO CHAIN TOGETHER - ASGIN1 DEV,\PI + ASGIN1 (DEV,\PI) > >> -DEFINE ASGIN1 (DEV,PI) < - IFDEF CH'PI, < ;WAIT TILL PASS 2 TO DEFINE +DEFINE ASGIN1 (DEV,PI)< + IFDEF CH'PI,< ;WAIT TILL PASS 2 TO DEFINE DEV'CHL==CH'PI - INTERNAL DEV'CHL + INTERN DEV'CHL >> +;MACRO FOR OPTIONAL DEVICES (ALWAYS USE CHANNEL SAVE ROUTINE) + ; (EXAMPLE: CR, DSK, PTR, ETC. ALSO PTY WITH 0 PI) -;MACRO FOR OPTIONAL DEVICES WHICH ALWAYS USE A CHANNEL SAVE ROUTINE -; (EXAMPLES: CDR, DSK, PTR, ETC. ALSO PTY WITH 0 PI) - -DEFINE SPASGSAV (DEV,PI,NUM) < +DEFINE SPASGSAV (DEV,PI,NUM) < DEV'N==NUM ASGSAV DEV,PI > + DEFINE ASGSAV (DEV,PI) < IFG DEV'N, EXTERN DEV'DDB ASGSV1 (DEV,\PI) >> + ;MACRO FOR: 1. COMPLETION OF THE DEFINITION REQUIRED FOR THOSE ; DEVICES INVOKING THE ASGSAV MACRO ; ; 2. COMPLETE DEFINITION FOR THOSE DEVICES WITH THEIR -; INTERRUPT ENTRY POINT AND DDB'S HERE IN COMMON +; INTERRUPT ENTRY POINT AND DDB'S IN COMMON ; (EXAMPLE: LPT'S) DEFINE ASGSV1 (DEV,PI) < IFG PI, < - IFE , <.CHAS==1 ;CHANNEL PI IN USE.> + IFE ,<.CHAS==1 ;CHANNEL PI IN USE> DEV'CHN==PI ;DEFINE DEVICE CHANNEL NUMBER INTERN DEV'CHN ;DECLARE INTERNAL - ONLY IF DEVICE WANTED USED'PI==1 ;SET FLAG SO THAT A CHANNEL SAVE ; ROUTINE WILL BE GENERATED FOR ; THIS PI CHANNEL + IFDEF SAV'PI, < ;WAIT TILL CHANNEL SAVE ROUTINES ; ARE DEFINED BELOW (IN PASS 2) @@ -675,34 +676,36 @@ DEFINE ASGSV1 (DEV,PI) < ; (USUALLY POPJ USED) DEV'CHL==CH'PI ;LOCATION WHERE INTERRUPT PC IS STORED DEV'SAC==SAVAC'PI ;STARTING CHANNEL SAVE LOCATION FOR AC'S + INTERN DEV'SAV, DEV'RET, DEV'CHL, DEV'SAC >> DTBIT==0 ;ASSUME THIS IS NOT A DECTAPE - IFIDN , , ;IS IT PDP-10 DECTAPES ? - IFIDN , , ; OR PDP-6 DECTAPES ? + IFIDN ,, ;IS IT PDP-10 DECTAPES? + IFIDN ,, ; OF PDP-6 DECTAPES? IFE PI, < XWD DEV'N*1000+0,0 ;NO PI CHANNEL FOR THIS DEVICE > IFG PI, < - XWD DTBIT*400000+DEV'N*1000+PI,DEV'INT ;FIRST WORD OF INTTAB ENTRY + XWD DTBIT*400000+DEV'N*1000+PI,DEV'INT ;FIRST WORD > IFG DEV'N-1, < - XWD DEV'DDS,DEV'DDB ;MULTIPLE DEVICE SECOND WORD OF INTTAB ENTRY + XWD DEV'DDS,DEV'DDB ;MULTIPLE DEVICE SECOND WORD EXTERN DEV'DDS > + IFE DEV'N-1, < - XWD 0,DEV'DDB ;SINGLE DEVICE SECOND WORD OF INTTAB ENTRY + XWD 0,DEV'DDB ;SINGLE DEVICE SECOND WORD >> - -;MACRO'S TO ALLOW GENERATION OF MULTIPLE INTTAB ENTRIES FOR MULTIPLE -; DEVICES SUCH AS LINE-PRINTERS + ;MACRO'S TO ALLOW GENERATION OF MULTIPLE INTTAB ENTRIES FOR MULTIPLE +; DEVICES SUCH AS LINE PRINTERS DEFINE MULASG (DEV,DE,PI) < + IFG DEV'N, < ZZ==0 REPEAT DEV'N, < @@ -713,26 +716,20 @@ DEFINE MULASG (DEV,DE,PI) < > DEFINE DEVASG (DE,X,PI) < + DE'X'N==1 ASGSV1 DE'X,\PI > - ;MACROS TO CONTROL ASSIGNMENT OF PI CHANNELS TO DEVICES -DEFINE NEXTCH < .CH==.CH+1 +DEFINE NEXTCH< .CH==.CH+1 .CHAS==0 -NEXTCU \.CH +NEXTCU (\.CH) > -DEFINE NEXTCQ < IFN .CHAS,> -DEFINE NEXTCU (N) < IFDEF UNIQ'N,>> - - - - - - -;ASSUME NO PI CHANNEL SAVE ROUTINES NEEDED +DEFINE NEXTCQ< IFN .CHAS,> +DEFINE NEXTCU (N) >> + ;ASSUME NO PI CHANNEL SAVE ROUTINES NEEDED USED1==0 USED2==0 @@ -745,17 +742,15 @@ DEFINE NEXTCU (N) < IFDEF UNIQ'N,>> ;NOW GENERATE THE TABLE FOR ONCE AND DEFINE PI CHANNEL ASSIGNMENTS INTERN INTTAB,INTTB1,INTNUM,SCNN,CTYN - CTYN==1 ;ALWAYS ONE CTY SCNN==JOBN ;NUMBER OF SCN DDB - ; ONE FOR EACH JOB + NULL JOB (EXTRA ONE) + ; ONE FOR EACH JOB + NULL JOB(EXTRA ONE) APRN==1 ;ALWAYS AN APR CLKN==1 ;ALWAYS LOWEST PRIORITY CLOCK -INTTAB: ;TABLE OF DATA FOR DEFINING PI CHAN AND NUMBER OF DOB +INTTAB: ;TABLE OF DATA FOR DEFINING PI CHAN AND NO. OF DOB INTTB1==INTTAB+1 - ASGSAV PTY,0 .CHAS==0 @@ -768,30 +763,29 @@ NEXTCH ;NOTE THAT THE PDP-6 DECTAPE AND MAGTAPE SHARE A ; 136 DATA CONTROL IF BOTH ARE PRESENT. - ;DATA PRODUCTS DISK BLKI/BLKO PI CHANNEL: - IFNDEF DCBCHN, > ;PDP-6 OR PDP-10 MAGTAPE BLKI/BLKO PI CHANNEL: - IFNDEF MTDCHN, > - IFNDEF DCTCHN, > - ;PDP-6 OR PDP-10 DECTAPE BLKI/BLKO PI CHANNEL: - IFNDEF DTDCHN, > - IFNDEF DCTCHN, > -IFNDEF BLKMXC, ;REMEMBER THIS CHANNEL ON PASS 1 +IFNDEF BLKMXC, ;REMEMBER THIS CHANNEL ON PASS 1 .CH==BLKMXC ;ON PASS 2, SKIP OVER BLKI CHANNELS - ;THE FOLLOWING ARE GROUPED ON A CHANNEL FOR HIGH-PRIORITY DEVICES +;THE FOLLOWING ARE GROUPED ON A CHANNEL FOR HIGH-PRIORITY DEVICES ASGSAV CDR,.CH ASGINT APR,.CH NEXTCQ - -;THE FOLLOWING ARE MEDIUM-PRIORITY DEVICES, AS A GROUP + ;THE FOLLOWING ARE MEDIUM-PRIORITY DEVICES, AS A GROUP ASGSAV SCN,.CH ASGSAV PTR,.CH MULASG LPT,LP,.CH @@ -802,107 +796,101 @@ NEXTCQ ASGINT CTY,.CH NEXTCQ - -;THE FOLLOWING ARE LOWER-PRIORITY DEVICES, AS A GROUP + +;THE FOLLOWING ARE LOWER-PRIORITY DEVICES,AS A GROUP ASGSAV DSK,.CH ASGSAV PEN,.CH ASGSAV PTP,.CH ASGSAV CDP,.CH ASGSAV PLT,.CH -NEXTCQ +NEXTCQ -;THESE DEVICES GET LOW PRIORITY CHANNEL +;THE DISPLAY GETS ITS OWN LOW-PRIORITY CHANNEL ASGSAV DIS,.CH NEXTCQ - + ;LAST IS THE SCHEDULER, ON CHANNEL 7 BY ITSELF -IFG <.CH-7>, < PRINTX ;NOT ENOUGH PI'S TO SERVICE THIS CONFIGURATION. +IFG <.CH-7>, + PRINTX ; A SINGLE CHANNEL> .CH==7 ASGINT CLK,.CH - - SPCINT - ;GENERATE ANY SPECIAL DEVICES CUSTOMER IS SUPPLYING + SPCINT + ;GENERATE ANY SPECIAL DEVICES CUSTOMER IS SUPPLING ; WHICH DO NOT USE A CHANNEL SAVE ROUTINE AND HAVE - ; NO DEVICE DATA BLOCK + ; NO DEVIC EDATA BLOCK SPCSAV - ;GENERATE ANY SPECIAL DEVICES CUSTOMER IS SUPPLYING + ;GENERATE ANY SPECIAL DEVICES CUSTOME IS SUPPLYING ; WHICH DO NEED A CHANNEL SAVE ROUTINE + ; AND HAVE MULTIPLE DEVICE DATA BLOCKS(0 MEANS NONE) ;END OF THE ASSIGNMENT TABLE INTNUM==INTTAB-. ;-LENGTH OF INTERRUPT CHANNEL ASSIGNMENT TABLE - IFLE .-SYSEND, + IFLE .-SYSEND, ; SET LOC UP TO SYSEND+1, UNLESS ONCE ONLY CODE ; IS BIGGER - - - -;SYSTEM CONSTANTS AND PARAMETERS + ;SYSTEM CONSTATNS AND PARAMETERS INTERN CNFTBL,CNFMXL,CONFIG,SYSTAP,SYSDAT -CNFTBL: ;FIRST LOCATION OF MONITOR DATA STORAGE - ; RETURNED BE GETTAB UUO (THESE LOCATIONS +CNFTBL: ;FIRST LOCATION 0F MONITOR DATA STORAGE + ; RETURNED BE GETTAB UUO(THESE LOCATIONS ; NOT CLEARED BY SYSINI) - ; CNFTBL IS GETTAB TABLE 11 (RH OF AC) - ; OCTAL NO. IN () CORRESPOND TO GETTAB UUO -CONFIG: SYSNAM - - LOC CONFIG+5 ;ALWAYS LEAVE 5 WORDS (24 CHARS) + ; CNFTBL IS GETTAB TABLE 11(RH OF AC) + ; OCTAL NOS. IN () CORRESPOND TO GETTAB UUO +CONFIG: SYSNAM ;(0-4)NAME OF SYSTEM, IN ASCII + LOC CONFIG+5 ;ALWAYS LEAVE 5 WORDS(24 CHARS) ; SO GETTAB UUO WILL BE CONSTANT -SYSDAT: SYSDAT - ;(5,6) GENERATE SYSTEM DATE +SYSDAT: SYSDAT ;(5,6)GENERATE SYSTEM DATE LOC SYSDAT+2 ;ALWAYS LEAVE 2 WORDS SO GETTAB CONSTANT -SYSTAP: SYSDEV - ;(7) NAME OF SYSTEM DEVICE, IN SIXBIT +SYSTAP: SYSDEV ;(7)NAME OF SYSTEM DEVICE, IN SIXBIT -;LOCATIONS SETUP BY ONCE ONLY OPERATOR DIALOGUE AND NEVER RESET ON RESTARTS + ;LOCATIONS SETUP BY ONCE ONLY OPERATOR DIALOGUE AND NEVER RESET ON RESTARTS INTERN TIME,THSDAT,SYSSIZ,DEVOPR,DEVLST,SEGPTR,TWOREG,STATES INTERN SERIAL EXTERN PATCH -TIME: 0 ;(10) TIME OF DAY IN JIFFIES (60TH OR 50THS OF A SEC) -THSDAT: 0 ;(11) TODAY'S DATE ((Y-1964)*12+(M-1))*31+(D-1) -SYSSIZ: EXP PATCH ;(12) SIZE OF MONITOR (FIRST LOC NOT USED) -DEVOPR: SIXBIT /CTY/ ;(13) SIXBIT PHYSICAL NAME OF OPERATORS CONSOLE +TIME: 0 ;(10)TIME OF DAY IN JIFFIES (60TH OR 50THS OF A SEC.) +THSDAT: 0 ;(11)TODAY'S DATE((Y-1964)*12+(M-1))*31+(D-1) +SYSSIZ: EXP PATCH ;(12)SIZE OF MONITOR(FIRST LOC NOT USED) +DEVOPR: SIXBIT /CTY/ ;(13)SIXBIT PHYSICAL NAME OF OPERATORS CONSOLE ; (IF THIS LOCATION CONTAINS 0, NONE HAS ; BEEN DESIGNATED) - ;PUBLIC LOGICAL NAME "OPR" WILL BE THIS DEVICE. - ; ALSO UNEXPLAINED MONITOR ERROR MESSAGES - ; WILL BE TYPED ON TTY OPR -DEVLST: XWD 0,0 ;(14) LH CONTAINS ADDRESS OF FIRST DEVICE DATA BLOCK - ; ONCE ONLY CODE LINKS DEVICE DATA BLOCKS - SEGPTR: XWD -SEGN,JOBN ;(15) AOBJN POINTER TO 1ST HIGH SEG IN JBTXXX TABLES - ; LH=-NO. OF HIGH SEGS, RH= ST HIGH SEG NO. -TWOREG: 0 ;(16) FLAG TO INDICATE WHETHER BOTH HARDWARE AND SOFTWARE + ;PUBLIC LOGICAL NAME "OPR" WILL BE THIS DEVICE + ;ALSO UNEXPLAINED MONITOR ERROR MESSAGE WILL BE TYPED + ;ON TTY OPR +DEVLST: XWD 0,0 ;(14)LH CONTAINS ADDRESS OF FIRST DEVICE DATA BLOCK + ;ONCE ONLY CODE LINKS DEVICE DATA BLOCKS + SEGPTR: XWD -SEGN,JOBN ;(15)AOBJN POINTER TO FIRST HIGH SEG IN JBTXXX TABLES + ; LH=-NO. OF HIGH SEGS, RH=FIRST HIGH SEG NO. +TWOREG: 0 ;(16)FLAG TO INDICATE WHETHER BOTH HARDWARE AND SOFTWARE ; HAVE 2 RELOC REG CAPACITY ; NON-ZERO IF BOTH DO, 0 IF EITHER OR BOTH DO NOT ; SET BY ONCE ONLY CODE - ZZ==0 - IFG DSKN, ;1 IF DISK SYSTEM (ANALOGOUS TO FTDISK) - IFG SYS50N, ;1 IF SWAPPING SYSTEM (ANALOGOUS TO FTSWAP) - IFG LOGINN, ;1 IF LOGIN (ANALOGOUS TO FTLOGIN) + IFG DSKN, ;1 IF DISK SYSTEM(ANALOGOUS TO FTDISK) + IFG SYS50N, ;1 IF SWAPPING SYSTEM(ANALOGOUS TO FTSWAP) + IFG LOGINN, ;1 IF LOGIN(ANALOGOUS TO FTLOGIN) IFN FTTTYSER, ;1 IF FULL DUPLEX SOFTWARE IFN FTPRV, ;1 IF PRIVILEGE FEATURE INCLUDED IFN FT2REL, ;1 IF REENTRANT SOFTWARE - IFE JIFSEC-^D50, ;1 IF 50 CYCLE MACHINE, 0 IF 60 CYCLE -STATES: EXP ZZ ;(17) BITS WHICH DEFINE TYPE OF SYSTEM IN LH + IFE JIFSEC-^D50, ;1 IF 50 CYCLE MACHINE, 0 OF 60 CYCLE +STATES: EXP ZZ ;(17)BITS WHICH DEFINE TYPE OF SYSTEM IN LH ; RH PATCHED BY MONITOR COMMAND TO ; INDICATE OPERATIONAL STATE OF SYSTEM + ;INSERT NEW LOCATIONS OF INTEREST SETUP + ; BY ONCE ONLY CODE HERE SERIAL: EXP APRSN ;(20) SERIAL NUMBER OF APR -CNFMXL==<.-CNFTBL-1>B26 ;MAXIMUM ENTRY IN CNFTBL FOR GETTAB UUO - IFG DSKN, < +CNFMXL==<.-CNFTBL-1>B26 ;MAX. ENTRY IN CNFTBL FOR GETTAB UUO + IFG DSKN,< INTERN ODPTBL,ODPMXL,SWPHGH,K4SWAP,PROT,PROT0 IFG SYS50N,< EXTERN ICPROT,ICPRT1 ;THESE ARE DEFINED ONLY IN @@ -911,24 +899,24 @@ IFLE SYS50N,< XP ICPROT,0 ;IF NON-SWAPPING, DECLARE XP ICPRT1,0 ; INTERNAL IN COMMON> ODPTBL: ;FIRST LOC IN MONITOR DATA AREA FOR DISK - ; LOCATIONS WHICH ARE NOT SET TO 0 WHEN SYSTEM - ; STARTED, ODPTBL IS GETTAB UUO TABLE 15 + ; LOCATION WHICH ARE NOT SET TO 0 WHEN SYSTEM + ; STARTED. ODPTBL IS GETTAB UUO TABLE 15 SWPHGH: 0 ;(0) HIGHEST LOGICAL BLOCK # IN THE SWAPPING ; SPACE ON THE DISK (SET BY SWPINI) K4SWAP: 0 ;(1)K OF DISK WORDS SET ASIDE FOR SWAPPING ; ASSIGNED AT ONCE ONLY REFRESH TIME +PROT: EXP ICPROT ;(2) IN-CORE PROTECT TIME PARAMETER USED TO + ; MULTIPLY TIMES (K-1) OF CORE +PROT0: EXP ICPRT1 ;(3) IN-CORE PROTECT TIME PARAMETER ADDED TO + ; ABOVE REULT TO COMPLETE COMPUTATION + -PROT: EXP ICPROT ;(2) IN-CORE PROTECT TIME PARAMETER TO BE - ; MULTIPLIED BY (K-1) OF CORE IN JOB. -PROT0: EXP ICPRT1 ;(3) IN-CORE PROTECT TIME PARAMETER TO - ; BE ADDED TO ABOVE RESULT. ;INSERT NEW LOCATIONS OF INTEREST SETUP ; BY ONCE ONLY CODE HERE FOR DISK SYSTEMS -ODPMXL==<.-ODPTBL-1>B26 ;MAXIMUM ENTRY IN ODPTBL FOR GETTAB UUO -> - +ODPMXL==<.-ODPTBL-1>B26 ;MAX. ENTRY IN ODPTBL FOR GETTAB UUO +> ;MORE DATA LOCATIONS SETUP AT ASSEMBLY TIME OR ONCE ONLY TIME ; BUT NOT OF INTEREST TO USER PROGRAMS @@ -936,7 +924,7 @@ ODPMXL==<.-ODPTBL-1>B26 ;MAXIMUM ENTRY IN ODPTBL FOR GETTAB UUO XJBPFI: XWD .,0 ;LH FILLED IN WITH EXTERNAL JOBPFI (SEE JOBDAT) ; JOBPFI==HIGHEST LOC, IN USER JOB DATA AREA - ; PROTECTED FROM I/O + ; PROTECTED FROM IO ;MONTH TABLE FOR DAYTIME COMMAND PRINTING PMONTB: POINT 6,MONTAB(TAC),5 ;POINTER TO NUMBER OF DAYS INMONTH @@ -952,7 +940,7 @@ MONTAB: EXP ^D30B5+"JAN" EXP ^D30B5+"OCT" EXP ^D29B5+"NOV" EXP ^D30B5+"DEC" -MIDNIT: EXP ^D60*^D60*^D24*JIFSEC ;NO OF JIFFIES TILL MIDNIGHT +MIDNIT: EXP ^D60*^D60*^D24*JIFSEC ;NO OF JIFFIES TILL MIDNIGHT ;STOP PROCEDURE WHEN SHUTTING DOWN SYSTEM ;BECAUSE OF CATOSTROPHIC FAILURE OR ANY OTHER REASON ;WRITE OUT DIRECTORIES STILL IN CORE (DISK) @@ -961,11 +949,11 @@ MIDNIT: EXP ^D60*^D60*^D24*JIFSEC ;NO OF JIFFIES TILL MIDNIGHT ;PROCEDURE TO SAVE CRASHED MONITOR ON DECTAPE FOR LATER DEBUGGING UNDER TIME SHARING ;OPERATOR SHOULD: ; 1. PUSH STOP AND HOLD IT DOWN -; 2. PUSH CONTINUE (APR PI IN PROGRESS SHOULD COME ON) +; 2. PUSH CONTINUE(APR PI IN PROGRESS SHOULD COME ON) ; THIS PUTS MACHINE INTO EXEC MODE AND STORES PC OC CRASH ; 3. LETUP ON STOP ; 4. SET ADDRESS SWITCHES TO 147 -; 5. PUSH START (DO NOT PUSH I/O RESET AS IT WILL CLEAR DEVICES) +; 5. PUSH START(DO NOT PUSH IO RESET AS IT WILL CLEAR DEVICES) INTERN APRSTS,PISTS,SYSTOP,CRASHX,SWTSTS,TTYSTS,PTRSTS,TMCSTS INTERN PTPSTS,DLSSTS,DTSSTS,CRSTS,LPTSTS,PLTSTS,TMSSTS,DSKSTS,DSKDTI @@ -986,6 +974,7 @@ SYSTOP: MOVEM 17,CRSHAC+17 ;SAVE ALL ACS MOVEI 17,CRSHAC ;SOURCE==0, DESTINATION==CRSHAC BLT 17,CRSHAC+16 ;SO DDT CAN LOOK AT SAVED CRASH LATER + APRSTS: CONI APR,. ;STORE APR STATUS HERE PISTS: CONI PI,. ;STORE PI STATUS HERE SWTSTS: DATAI APR,. @@ -1003,18 +992,16 @@ DSKSTS: CONI DSK,. DSKDTI: DATAI DSK,. CONO APR,APRRST ;RESET SYSTEM MOVEI PDP,SYSPDL ;SETUP PDP TO SPARE AREA - IFG DSKN, < + IFG DSKN,< EXTERN DSKSTP PUSHJ PDP,DSKSTP> - HALT 137400 ;STOP AT TENDMP(READY TO READ IN ANYTHING) + HALT 137400 ;STOP AT TENDMP(READY TO READ IN ANYTHING) + ;ERROR RECOVERY - TRY TO START NULL JOB NULJB1: MOVEI ITEM,0 ;SET JOB NUMBER TO 0 JRST NULJOB ;GO RESTORE NULL JOB - - - -;COMMON SUBROUTINE RETURNS + ;COMMON SUBROUTINE RETURNS INTERN CPOPJ,CPOPJ1,DPOPJ,TPOPJ,TPOPJ1,CPOPJ2,IPOPJ1,IPOPJ INTERN CUXIT1,CUXIT,UXIT @@ -1022,7 +1009,7 @@ NULJB1: MOVEI ITEM,0 ;SET JOB NUMBER TO 0 CPOPJ2: AOS (PDP) ;DOUBLE SKIP SUBROUTINE RETURN CUXIT1: ;OLD SKIP RETURN FOR UUOS CPOPJ1: AOSA (PDP) ;SKIP SUBROUTINE RETURN -DPOPJ: MOVEM IOS,DEVIOS(DEVDAT) ;DEPOSIT I/O STATUS WORD IN DDB +DPOPJ: MOVEM IOS,DEVIOS(DEVDAT) ;DEPOSIT IO STATUS WORD IN DDB UXIT: CUXIT: ;OLD RETURN FOR UUOS CPOPJ: POPJ PDP, @@ -1034,7 +1021,7 @@ IPOPJ1: AOS -1(PDP) ;SET FOR SKIP RETURN IPOPJ: POP PDP,ITEM ;RESTORE ITEM (USUALLY JOB OR HIGH SEG NUMBER) POPJ PDP, - ; SYSTEM BYTE POINTERS +; SYSTEM BYTE POINTERS INTERN PUUOAC,PIOMOD,PJOBN,PUNIT,PJBSTS,PDVTIM,PDVCNT,PCORSZ,COREP INTERN IADPTR @@ -1042,23 +1029,23 @@ IPOPJ: POP PDP,ITEM ;RESTORE ITEM (USUALLY JOB OR HIGH SEG NUMBER) PUUOAC: POINT 4,UUO,12 ;UUO AC FIELD PIOMOD: POINT 4,IOS,35 ;MODE BITS PJOBN: POINT 6,DEVCHR(DEVDAT),5 ;DEVICE JOB ASSIGNMENT -PUNIT: POINT 6,DEVCHR(DEVDAT),23 ;DEVICE UNIT NUMBER -PJBSTS: POINT JWSIZ,JBTSTS(ITEM),JWPOS ;JOB WAIT STATE (QUEUE) CODE +PUNIT: POINT 6,DEVCHR(DEVDAT),23 ;DEVICE UNIT NO. +PJBSTS: POINT JWSIZ,JBTSTS(ITEM),JWPOS ;JOB WAIT STATE(QUEUE) CODE ;IN JOB STATUS WORD PDVTIM: POINT 6,DEVCHR(DEVDAT),17 ;TIME IN SECONDS BEFORE DEVICE - ;IS SAID TO BE HUNG -PDVCNT: POINT 6,DEVCHR(DEVDAT),11 ;COUNTED DOWN EACH SECOND, + ;IS SAID TO BE HUNG +PDVCNT: POINT 6,DEVCHR(DEVDAT),11 ;COUNTER DOWN EACH SECOND, ;1 TO 0 TRANSITION MEANS HUNG DEVICE -IADPTR: POINT 2,DEVIAD(DEVDAT),2 ;COUNT OF NUMBER OF USER CHANNELS INITED - ; ON THIS DEVICE (DECTAPE ONLY) +IADPTR: POINT 2,DEVIAD(DEVDAT),2 ;COUNT OF NO. OF USER CHANNELS INITED + ; ON THIS DEVICE(DECTAPE ONLY) PCORSZ: POINT 8,JBTADR(ITEM),7 ;BYTE POINTER TO LOW OR HIGH SEG CORE SIZE-1 COREP: POINT 1,CORTAB ;1 BIT POINTER TO CORE ALLOCATION TABLE - IFG SYS50N, < ;SWAPPING SYSTEM ? + IFG SYS50N,< ;SWAPPING SYSTEM? INTERN IMGIN,IMGOUT,IMGINT,OUTMSK,INMSK,INLEFT INMSK=000377 ;RH MASK TO IMGIN - INLEFT=12 ;NUMBER OF BITS TO SHIFT TO LEFT JUSTIFY IN RH + INLEFT=12 ;NO. OF BITS TO SHIFT TO LEFT JUSTIFY IN RH IMGIN: POINT 8,JBTSWP(ITEM),35 ;BYTE POINTER FOR # 1K BLOCKS OF CORE ;WHEN JOB OR HIGH SEG NEXT SWAPPED IN @@ -1070,16 +1057,15 @@ IMGOUT: POINT 8,JBTSWP(ITEM),26 ;BYTE POINTER FOR # 1K BLOCK OF DISK ; (IE NO DISK SPACE) IMGINT: POINT 8,JBTSWP(DEVDAT),35 ;POINTER TO INCORE IMAGE > - - ;SPECIAL PROJECT-PROGRAMMER NUMBERS - IFG DSKN, < ;DISK SYSTEM? + ;SPECIAL PROJECT-PROGRAMMER NOS. + IFG DSKN,< ;DISK SYSTEM? INTERN CUSPPP,SYSPP,DUMPPP,HELPPP CUSPPP: ;CUSP FILE DIRECTORY, MAKE SEPARATE TAG FROM ; MFD(SYSPP) SYSPP: XWD 1,1 ;THE MASTER FILE DIRECTORY PROJECT PROGRAMMER NO. -DUMPPP: XWD 1,2 ;THE FAILSAFE PROJ,PROG NO (CAN READ OF WRITE ANYTHING) -HELPPP: XWD 2,4 ;SYSTAT AND HELP PROJECT,PROGRAMMER NOS IF JOB NOT LOGGED IN ALREADY +DUMPPP: XWD 1,2 ;THE FAILSAFE PROJ,PROG NO.(CAN READ OR WRITE ANYTHING) +HELPPP: XWD 2,4 ;SYSTAT AND HELP PROJECT,PROGRAMMER NOS IF JOB NOT LOGGED INALREADY > ;DEFINE PI CHANNEL SAVE AND RESTORE ROUTINES IF A DEVICE IS ON THE CHANNEL @@ -1118,19 +1104,16 @@ CH'PI'PD1: EXP RET'PI ;FIRST WORD ON LIST, LIST > - ;GENERATE THE CHANNEL SAVE ROUTINE ONLY FOR PI WHICH NEED THEM (ASGSAV MACRO USED) - - IFN USED1, - IFN USED2, - IFN USED3, - IFN USED4, - IFN USED5, - IFN USED6, - IFN USED7, - + ;GENERATE THE CHANNEL SAVE ROUTINE ONLY FOR PI WHICH NEED THEM(ASGSAV MACRO USED) - -;GENERATE NULL CHANNEL SAVE ROUTINES FOR THOSE CHANNELS NOT USED + IFN USED1, + IFN USED2, + IFN USED3, + IFN USED4, + IFN USED5, + IFN USED6, + IFN USED7, +;GENERATE NULL CHANNEL SAVE ROUTINES FOR THOSE CHANNEL NOT USED DEFINE NULL (PI)< XLIST @@ -1140,31 +1123,31 @@ CH'PI: 0 LIST > - IFE USED1, - IFE USED2, - IFE USED3, - IFE USED4, - IFE USED5, - IFE USED6, - IFE USED7, - ;HERE ON TRAPS TO LOC 60/61 - UNIMPLEMENTED INSTRUCTIONS (PDP-10 ONLY) -;OPCODE AND EFFECTIVE ADDRESS STORED IN SIXTY AND 61 EXECUTED (JSR UUO2) -;OP CODE 100 (UJEN) IS USED TO DISMISS USER MODE INTERRUPTS FOR REAL TIME OPERATION + IFE USED1, + IFE USED2, + IFE USED3, + IFE USED4, + IFE USED5, + IFE USED6, + IFE USED7, + ;HERE ON TRAPS TO LOC 60/61 - UNIMPLEMENTED INSTRUCTIONS(PDP-10 ONLY) +;OPCODE AND EFFECTIVE ADDRESS STORED IN SIXTY AND 61 EXECUTED(JSR UUO2) +;OP CODE 100(UJEN) IS USED TO DISMISS USER MODE INTERRUPTS FOR REAL TIME OPERATION ;USED IN CONJUNCTION WITH TRPSET UUOWHICH IS SOON TO BE REPLACED ;WITH SOME KNAVE-PROOF REAL TIME UUOS. THIS CODE IS HERE ONLY ;BECAUSE MANUAL DESCRIBES TRPSET AND TRPJEN UUOS. -;TRPJEN HAS BEEN REPLACED WITH OPCODE 100 (UJEN). +;TRPJEN HAS BEEN REPLACED WITH OPCODE 100(UJEN). ;CALL: UGEN U ;WHERE U CONTAINS PC STORED BY INTERRUPT JSR INTERN UUO2 UUO2: 0 ;USER PC STORE HERE BY JSR EXCH TAC,UUO2 ;GET USER PC, SAVE TAC -IFN FTTRPSET, < - TLNN TAC,UIOMOD ;USER I/O MODE ON ? +IFN FTTRPSET,< + TLNN TAC,UIOMOD ;USER IO MODE ON? JRST UUOER2 ;NO, TREAT AS AN ILLEGAL INSTRUCTION AND PRINT MESS. HLL TAC,SIXTY ;YES, GET UNIMPLEMENTED OPCODE WHICH TRAPPED - TLNE TAC,677777 ;IS IT OPCODE 100 (UJEN)? + TLNE TAC,677777 ;IS IT OPCODE 100(UJEN)? JRST UUOER1 ;NO, TREAT AS ILLEGAL INSTRUCTION MOVE TAC,SIXTY ;YES, GET EFFECTIVE ADDRESS ADD TAC,JOBADR ;ADD RELOCATION FOR CURRENT JOB @@ -1172,13 +1155,13 @@ IFN FTTRPSET, < EXCH TAC,UUO2 ;RESTORE TAC, AND STORE PC JEN @UUO2 ;DISMISS INTERRUPT -UUOER1: HRLI TAC,USRMOD!UIOMOD ;SET USER MODE AND USER I/O MODE BACK ON +UUOER1: HRLI TAC,USRMOD!UIOMOD ;SET USER MODE AND USER IO MODE BACK ON > UUOER2: MOVEM TAC,UUO0 ;STORE PC AS IF AN ILLEGAL INSTR. HAD OCCURRED SETOM FORTY ;MAKE IT LOOK LIKE AN ILLEGAL INSTRUCTION ; TRAPPED TO 40 SKIPA TAC,UUO2 ;RETORE TAC AND FALL INTO REGULAR UUO HANDLER - ;HERE ON TRAPS TO EXEC LOC 40/41 - OPCODES 0,40-77 (0-77 ON PDP-6) + ;HERE ON TRAPS TO EXEC LOC 40/41 - OPCODES 0,40-77(0-77 ON PDP-6) INTERN UUO0 EXTERN UUOUSR,UUOSY1,ERROR @@ -1186,69 +1169,64 @@ UUOER2: MOVEM TAC,UUO0 ;STORE PC AS IF AN ILLEGAL INSTR. HAD OCCURRED UUO0: 0 ;JSR HERE FROM LOC 41 MOVEM 17,USRSAV ;SAVE 17 MOVE 17,UUO0 ;GET PROCESSOR FLAGS - TLNN 17,USRMOD ;IS UUO FROM MONITOR ? + TLNN 17,USRMOD ;IS UUO FROM MONITOR? JRST UUOSY1 ;YES, DO NOT SAVE ACS - SKIPN 17,JOBADR ;IS THERE A JOB DATA AREA ? + SKIPN 17,JOBADR ;IS THERE A JOB DATA AREA? JSP DAT,ERROR ;NO, MUST BE UUO DURING NULL JOB ; PRINT ERROR IN MONITOR -IFE PDP10N, < ;FOR PDP-6 OPCODES 1-37 +IFE PDP10N,< ;FOR PDP-6 OPCODES 1-37 EXCH TAC,FORTY ;SAVE TAC, PICK UP UUO - TLNN TAC,740000 ;IS THIS SYSTEM UUO ? - TLNN TAC,077000 ;NO, IS IT 0 UUO ? + TLNN TAC,740000 ;IS THIS SYSTEM UUO? + TLNN TAC,077000 ;NO, IS IT 0 UUO? JRST UUOSYS ;YES MOVEM TAC,40(17) ;STORE UUO IN USER'S 40 HRRZ TAC,41(17) ;PICK UP ADR OF USER'S JSR - JUMPE TAC,UUOSYS ;IF ADDRESS=0,ILLEGAL USER UUO****UWA PATCH - HLL TAC,UUO0 ;USER PD FLAGS (RESTORED ON RETURN) + JUMPE TAC,UUOSYS ;IF ADDRESS=0,ILLEGAL USER UUO + HLL TAC,UUO0 ;USER PD FLAGS(RESTORED ON RETURN) MOVEI 17,(TAC) ;17 NOW HAS REL.ADR+1 OF USER JSR - CAML 17,USRREL ;IS EFFECTIVE ADDRESS IN BOUNDS ? + CAML 17,USRREL ;IS EFFECTIVE ADDRESS IN BOUNDS? JRST UUOSY0 ;ERROR, JSR EFF. ADDR. OUTSIDE USER AREA HRRI TAC,1(TAC) ;YES, INCREMENT PC. EXCH TAC,UUO0 ;SET UP RETURN TO USER IN UUO0 ; PICKUP USERS FLAGS,PC - ADD 17,JOBADR ;MAKE REL. ADDRESS INTO ABSOLUTE ADDRESS + ADD 17,JOBADR ;MAKE REL. ADR. INTO ABS. ADR. MOVEM TAC,(17) ;STORE FLAGS AND PC LIKE JSR MOVE TAC,FORTY ;RESTORE TAC MOVE 17,USRSAV ;RESTORE 17 - JRST 2,@UUO0 ;RETURN TO USER (RESTORING FLAGS) + JRST 2,@UUO0 ;RETURN TO USER(RESTORING FLAGS) UUOSY0: MOVE 17,JOBADR ;SETUP 17 FOR LOW SEGMENT RELOCATION -UUOSYS: EXCH TAC,FORTY ;RESTORE USERS AC(TAC) AND USER'S UUO (FORTY) -> - JRST UUOUSR ;GO SAVE USER'S ACS IN REL. LOCATION 0-17 +UUOSYS: EXCH TAC,FORTY ;RESTORE USERS AC(TAC) AND USER'S UUO(FORTY) +> + JRST UUOUSR ;GO SAVE USER'S ACS IN REL. LOC. 0-17 ; AND DISPATCH ON UUO - ;GENERATE EXTERNAL GLOBALS TO CAUSE LOADING OF PROPER ROUTINES FROM MONITOR LIBRARY TAPE + ;GENERATE EXTERNAL GLOBALS TO CAUSE LOADING OF PROPER ROUT. FROM MONITOR LIBRARY TAPE ;IF THERE IS ONE ;ALWAYS LOAD CLOCK1,COMCON,CORE1,ERRCON,JOBDAT,ONCE,PATCH,SYSMAK,UUOCON - EXTERNAL CLOCK1,COMCON,CORE1,ERRCON,DATJOB,ONCE,PATCH,SYSMAK,UUOCON - ;LOAD DDT - IFG DDTN, - IFE DDTN, - -;LOAD SCHEDULER FOR NON-SWAPPING OR SWAPPING SYSTEM + IFG DDTN, + IFE DDTN, +;LOAD APPROPRIATE SCHEDULER FOR NON-SWAP OR SWAPPING SYSTEMS IFG SYS40N, ;CLKCSS IFG SYS50N, ;SCHED -;LOAD EITHER SEGCON (2REG SOFTWARE) OR NULSEG (1 REG SOFTWARE) +;LOAD EITHER SEGCON(2REG SOFTWARE) OR NULSEG(1 REG SOFTWARE) ; UNLESS USER HAS EDITTED S WITH FT2REL=0 SO ALL PUSHJ'S -; TO SEGCON (NULSEG) ARE REMOVED +; TO SEGCON(NULSEG) ARE REMOVED -IFN FT2REL, < +IFN FT2REL,< IFG KT10AN, - IFE KT10AN, > - ;APR AND PI BITS INTERN PION,PIOFF,REQCLK,PICLK,APRCLR,APRCLE,APRNUL,APRRST,NXM,APRFOV CLKBIT==1 - REPEAT 7-CLKCHN, + REPEAT 7-CLKCHN, PION==200 ;CONO PI,PION TURNS PI SYSTEM ON PIOFF==400 ;TURN IT OFF REQCLK==1B24+CLKBIT ;REQUEST INTERRUPT ON LOW PRIORITY CLK CHANNEL @@ -1257,9 +1235,9 @@ IFN FT2REL, < APRCLE==431550+APRCHN ;CLEAR ALL APR ERROR BITS ; AND DISABLE FOV AND AR OVF APRNUL==433550+APRCHN ;RESET APR FOR NULL JOB - ; CLEAR EVERYTHING BUT DON'T I/O RESET - APRRST==APRNUL+200000 ;RESET APR FOR SYSINI (I/O RESET TOO) - NXM==10000 ;NON-EX MEM (APR STATUS WORD) + ; CLEAR EVERYTHING BUT DONT IO RESET + APRRST==APRNUL+200000 ;RESET APR FOR SYSINI(IO RESET TOO) + NXM==10000 ;NON-EX MEM I(APR STATUS WORD) IFG PDP10N, IFE PDP10N, ;IF Z RELOC SOFTWARE, THEN FTZREI MUST BE -1 + IFG KT10AN, ;IF Z RELOC SOFTWARE, THEN FTZREL MUST BE -1 IFE COREN, - XP USRLIM,COREN ;DEFINE GLOBAL RESTRICTING SIZE OF CRE FOR ANY SINGLE USER - ; ONCE ONLY CODE CAN ALTER THIS VALUE - ; (PATCH RH CORLIM IN SYSIM) - ;SCANNER ENTRY POINTS AND BIT DEFINITIONS - - IFG DLSN, ;DATA LINE SCANNER - IFG CCIN, ;DA-10 PDP-8 680 - IFG DCSN, ;630 DATA COMMUNICATIONS SYS + XP USRLIM,COREN ;DEFINE GLOBAL RESTRICTING SIZE OF CORE FOR ANY SINGLE USER + ; ONCE ONLY CODE CAN ALTER THIS VALUE + ; (PATCH RH CORLIM IN SYSIM) + +;SCANNER ENTRY POINTS AND BIT DEFINITIONS - IFG FULLN, ;FULL DUPLEX SOFTWARE ENTRY POINT - IFE FULLN, ;HALF DUPLEX SOFTWARE ENTRY POINT + IFG DLSN, ;DATA LINE SCANNER + IFG CCIN, ;DA-10 PDP-8 680 + IFG DCSN, ;630 DATA COMMUNICATIONS SYS - IFG FULLN, < + IFG FULLN, ;FULL DUPLEX SOFTWARE ENTRY POINT + IFE FULLN, ;HALF DUPLEX SOFTWARE ENTRY POINT + IFG FULLN,< INTERN LINTAB -LINTAB: ;LINE CHARACTERISTICS BITS (NOT CLEARED ON SYSTEM STARTUP) +LINTAB: ;LINE CHARACTERISTIC BITS (NOT CLEARED ON SYSTEM STARTUP) -;TELETYPE LINE CHARACTERISTICS (LH OF LINTAB) +;TELETYPE LINE CHARACTERISTICS(LH OF LINTAB) ;USED IN SCNSRF ALSO XP PTYLIN,400000 ;PSEUDO TTY LINE @@ -1308,26 +1286,25 @@ LINTAB: ;LINE CHARACTERISTICS BITS (NOT CLEARED ON SYSTEM STARTUP) IFG EDITN,< ;HAS COMMON.MAC BEEN EDITED TO DEFINE TTY LINE CHAR. ; SO MONGEN TYPE-IN REDUCED? ;IF NO APR NUMBER, AND THIS IS NOT EDITED FOR THE CUSTOMER, -; MAKE ALL LIENS JUST BE MODEL 33 TELETYPES - -IFE APRN,> +; MAKE ALL LINES JUST BE MODEL 33 TELETYPES -IFE APRSN-2,< -;FOLLOWING LINE DEFINITIONS FOR DEC PDP12 #2 +IFE APRSN,> + IFE APRSN-2,< +;FOLLOWING LINE DEFINITIONS FOR DEC PDP10 #2 XWD T35,0 ;TTY0 XWD T35,0 ;TTY1 XWD T35,0 ;TTY2 XWD 0,0 ;TTY3 -REPEAT 3,< XWD T35,0>;TTY4-6 +REPEAT 3,< XWD T35,0> ;TTY4-6 XWD T35+TTYRMT,0 ;TTY7 - REMOTE 35 XWD DSDTLN,0 ;TTY10 XWD DSDTLN+HLFDPX,0 ;TTY11 XWD DSDTLN,0 ;TTY12 -REPEAT 4,< XWD T35,0>;TTY13-16 +REPEAT 4,< XWD T35,0> ;TTY13-16 + XWD TTYRMT,0 ;TTY17 - REMOTE REPEAT 8, > - IFE APRSN-^D40,< ;THIS CONFIGURATION FOR DEC SYSTEM NUMBER 40 @@ -1336,102 +1313,97 @@ REPEAT ^D8,<0 ;MODEL 33'S LOCALLY> REPEAT ^D8,< XWD DSDTLN,0 ;DATASET> > -; CTY AND PTY SET BY SCNSER -> ;END PRE-EDITED LINE CHARACTERISTICS - - -IFE EDITN,< ;MONGEN DIALOG DEFINE TTY CONFIG? +; CTY AND PTY SET BY SCNSRF +> ;END PRE-EDITED LINE CHARACTERISTICS + IFE EDITN,< ;MONGEN DIALOG DEFINE TTY CONFIG? -DEFINE GENLIN(LIN)< +DEFINE GENLIN (LIN)< IFNDEF DSD'LIN, ;DATA SET? IFNDEF TAB'LIN, ;HARDWARE TABS? IFNDEF RMT'LIN, ;REMOTE? IFNDEF HLF'LIN, ;HALF DUPLEX SCANNER? - XWD DSD'LIN*TAB'LIN*T35+RMT'LIN*TTYRMT+HLF'LIN*HLFDPX,0 + XWD DSD'LIN*DSDTLN+TAB'LIN*T35+RMT'LIN*TTYRMT+HLF'LIN*HLFDPX,0 > REPEAT HGHLIN+1, + GENLIN \LINE> + + > - LOC LINTAB+TTPLEN ;MAKE SURE ENOUGH SPACE FOR CTY+PTY;S + LOC LINTAB+TTPLEN ;MAKE SURE ENOUGH SPACE FOR CTY+PTY'S + -> ;END OF FULL DUPLEX CONDITIONAL +> ;END OF FULL DUPLEX CONDITIONAL INTERN FSNCHN,SCNON,SCNOFF - FSNCHN==SCNCHN*101 ;CHANNEL ASSIGNMENT FOR FULL DUPLEX SCN. - SCNBIT==<1_<7-SCNCHN>> + FSNCHN==SCNCHN*101 ;CHANNEL ASSIGN. FOR FULL DUPLEX SCN. + SCNBIT==1 + REPEAT 7-SCNCHN, SCNON==2000+SCNBIT ;CONO PI, TURNS SCANNER PI CHANNEL ON SCNOFF==1000+SCNBIT ;CONO PI, TURNS SCANNER PI CHANNEL OFF - IFG TABSN, ;HARDWARD TABS - IFE TABSN, -XP SCNNUM,HGHLIN+1 ;# OF SCANNER LINES (USED BY ONCE FOR PRINTING CONFIG) + IFG TABSN, ;HARDWARD TABS + IFE TABSN, +XP SCNNUM,HGHLIN+1 ;NO. OF SCANNER LINES (USED BY ONCE FOR PRINTING CONFIG) ;MAGTAPE ENTRY POINT AND BIT DEFINITIONS - IFG MTAN, ;TM10 ENTRY POINT - IFG MTCN, ;PDP-6 MAGTAPES ENTRY POINT - - IFG MTAN, < + IFG MTAN, ;TM10 ENTRY POINT + IFG MTCN, ;PDP-6 MAGTAPES ENTRY POINT - INTERN MMTSIZ,MTALOC,MTLOC1,MTBOTH,MTFLAG - - MMTSIZ==-MTSIZ - MTALOC==40+2*MTDCHN ;BLKI/BLKO LOCATION - MTLOC1==MTALOC+1 ;NEXT LOCATION - MTBOTH==MTACHN*10+MTDCHN ;BOTH PI CHANNELS - MTFLAG==400+MTACHN*10 + IFG MTAN,< + INTERN MTALOC,MTLOC1,MTBOTH,MTFLAG,MMTSIZ + MMTSIZ==-MTSIZ + MTALOC==40+2*MTDCHN ;BLKI/BLKO LOCATION + MTLOC1==MTALOC+1 ;NEXT LOCATION + MTBOTH==MTACHN*10+MTDCHN ;BOTH PI CHANNELS + MTFLAG==400+MTACHN*10 > - - IFG MTCN, < - - INTERN DCLOC,DCLOC1,DCON,DCOFF,DCIN,DCOUT - - DCLOC==40+2*DCTCHN ;EVEN DC PI CHANNEL LOCATION - DCLOC1==DCLOC+1 ;NEXT LOCATION + IFG MTCN,< + INTERN DCLOC,DCLOC1,DCON,DCOFF,DCIN,DCOUT + DCLOC==40+2*DCTCHN ;EVEN DC PI CHANNEL LOC + DCLOC1==DCLOC+1 ;NEXT LOCATION DCBIT==1 - REPEAT 7-DCTCHN, - DCON==2000+DCBIT ;TURN DC PI CHANNEL ON - DCOFF==1000+DCBIT ;TURN DC PI CHANNEL OFF - DCIN=4010+DCTCHN ;SET DATA CHANNEL FOR INPUT - DCOUT==3410+DCTCHN ;SET DATA CHANNEL FOR OUTPUT + REPEAT 7-DCTCHN, + DCON==2000+DCBIT ;TURN DC PI CHANNEL ON + DCOFF==1000+DCBIT ;TURN DC PI CHANNEL OFF + DCIN==4010+DCTCHN ;SET DC FOR INPUT + DCOUT==3410+DCTCHN ;SET DC FOR OUTPUT > - -;DECTAPE ENTRY POINT AND BIT DEFINITIONS + ;DECTAPE ENTRY POINT ADN BIT DEFINITIONS SAVN==1 ;WE ONLY SUPPORT NEW FORMAT NOW - ;MONGEN NO LONGER ASKS QUESTION, + ;MONGEN NO LONGER ASKS QUESTION. - IFG DTAN, ;TD10 WITH NEW FORMAT - IFG DTCN, < - IFG SAVN, ;556 WITH NEW FORMAT - IFE SAVN, ;556 WITH OLD FORMAT + IFG DTAN, ;TD10 WITH NEW FORMAT + IFG DTCN,< + IFG SAVN, ;556 WITH NEW FORMAT + IFE SAVN, ;556 WITH OLD FORMAT > - IFG DTAN, < ;DEFINE SYMBOLS IF PDP-10 DECTAPES (TD10) - INTERNAL DTALOC,DTALC2,DTBOTH,DTTURN + IFG DTAN,< ;DEFINE SYMBOLS IF PDP-10 DECTAPES(TD10) + INTERN DTALOC,DTALC2,DTBOTH,DTTURN DTALOC==40+2*DTDCHN ;BLKI/BLKO LOCATION - DTALC2==DTALOC+1 ;NEXT LOCATION + DTALC2==DTALOC+1 ;NEXT LOCATION DTBOTH==DTDCHN*10+DTACHN DTTURN==300200+DTBOTH > - IFG DTCN, < ;DEFINE SYMBOLS IF PDP-6 DECTAPES (556) - INTERNAL DCLOC,DCLOC1,DCON,DCOFF,DCIN,DCOUT + IFG DTCN,< ;DEFINE SYMBOLS IF PDP-6 DECTAPES(556) + INTERN DCLOC,DCLOC1,DCON,DCOFF,DCIN,DCOUT DCLOC==40+2*DCTCHN ;EVEN DC PI CHANNEL LOC DCLOC1==DCLOC+1 ;NEXT LOCATION DCBIT==1 - REPEAT 7-DCTCHN, - DCON==2000+DCBIT ;TURN DC PI CHANNEL ON - DCOFF==1000+DCBIT ;TURN DC PI CHANNEL OFF - DCIN==4010+DCTCHN ;SET DATA CHANNEL FOR INPUT - DCOUT==3410+DCTCHN ;SET DATA CHANNEL FOR OUTPUT + REPEAT 7-DCTCHN, + DCON==2000+DCBIT ;TURN DC PI CHANNEL ON + DCOFF==1000+DCBIT ;TURN DC PI CHANNEL OFF + DCIN==4010+DCTCHN ;SET DC FOR INPUT + DCOUT==3410+DCTCHN ;SET DC FOR OUTPUT > - ;DEFINE SAVE MODE AND EXTENSION FOR OLD OR NEW FORMAT - INTERNAL SAVDMP - IFE SAVN, ;EXTENSION FOR SAVED FILES == "DMP" > - IFN SAVN, < + IFN SAVN,< SAVDMP== ;EXTENSION FOR SAVED FILES == "SAV" > ;DISPLAY AND LITE PEN @@ -1439,17 +1411,19 @@ XP SCNNUM,HGHLIN+1 ;# OF SCANNER LINES (USED BY ONCE FOR PRINTING CONFIG) IFG DISN,< IFG T340N, ;TYPE 340 ENTRY POINT IFE T340N, ;TYPE 30 ENTRY POINT - INTERN DISBLK,DISJSR,OFFDIS,DISPON,DISPOF + INTERN DISBLK,DISJSR,ONDIS,NONDIS,OFFDIS,DISPON,DISPOF DISBLK==40+2*DISCHN ;BLKI/BLKO LOCATION DISJSR==DISBLK+1 ONDIS==100+10*PENCHN+DISCHN NONDIS==10*PENCHN+DISCHN OFFDIS==0 DISBIT==1 - REPEAT 7-DISCHN, + REPEAT 7-DISCHN, DISPON==2000+DISBIT ;CONO PI, TURNS DIS PI CHANNEL ON DISPOF==1000+DISBIT ;CONO PI, TURNS DIS PI CHANNEL OFF > + + ;LINE PRINTER ENTRY POINT AND DDB DEFINITIONS IFG LPTN, < @@ -1466,12 +1440,12 @@ LP'N'INT: CONSO LP'N,0 ;(-4) SKIP IF INTERRUPT FOR THIS LPT JRST .-1 ;(-3) GO TO NEXT SKIP CHAIN ELEMENT MOVEM DEVDAT,LP'N'SV1 ;(-2) SAVE DEVDAT IN CHANNEL SAVE AREA JSP DEVDAT,LPTINT ;(-1) SET UP DDB ADDRESS AND BRANCH + LP'N'DDB: LP'N'NAM: - - IFE LPTN-1, < SIXBIT /LPT/ ;( 0) PHYSICAL DEVICE NAME> - IFN LPTN-1, < SIXBIT /LPT'N/ ;( 0) PHYSICAL DEVICE NAME> - XWD ^D60*HUNGST,B23+LPTSIZ ;( 1) DEVICE CHARACTERISTICS + IFE LPTN-1, < SIXBIT /LPT/ ;( 0) PHYSICAL DEVICE NAME > + IFN LPTN-1, < SIXBIT /LPT'N/ ;( 0) PHYSICAL DEVICE NAME > + XWD ^D60*HUNGST,B23+LPTSIZ ;( 1) DEVICE CHARACTERISTICS 0 ;( 2) DEVICE I/O STATUS XWD 0,LPTDSP ;( 3) LH=DDB LINK, RH=DSP TABLE ADDR. LPTMOD==1_A+1_AL+1_I ;LPT LEGAL MODES @@ -1489,46 +1463,50 @@ LP'N'PTR: 0 ;( 7) BLOCK OUTPUT POINTER MOVE DEVDAT,LP'N'SV1 ;(16) RESTORE DEVDAT AND JEN @LP'N'CHL ;(17) DISMISS INTERRUPT - 0 ;(20) SAVE LOCATION FOR DAT + + 0 ;(20) SAVE LOCATION FOR TAC + CONSZ LP'N,LPTECM ;(21) THE REST OF THE DDB CONTAINS CONSO LP'N,LPTDON ;(22) THE ACTUAL I/O INSTRUCTIONS - CONSO LP'N,(DAT) ;(23) USED BY THE COMMON SERVICE - CONSZ LP'N,(DAT) ;(24) ROUTINE TO CONTROL A LINE - CONI LP'N,DAT ;(25) PRINTER. THEY ARE EXECUTED - CONO LP'N,(DAT) ;(26) BY MEANS OF AN XCT INSTRUCTION - DATAO LP'N,(DAT) ;(27) INDEXED TO THE PROPER DDB + ; USED BY THE COMMON SERVICE + CONSO LP'N,(TAC) ;(23) ROUTINE TO CONTROL A LINE + CONSZ LP'N,(TAC) ;(24) PRINTER. THEY ARE EXECUTED + CONI LP'N,TAC ;(25) BY MEANS OF AN XCT INSTRUCTION + CONO LP'N,(TAC) ;(26) INDEXED TO THE PROPER DDB + DATAO LP'N,(TAC) ;(27) BLKO LP'N,LP'N'PTR ;(30) - LIST ;TURN LISTING BACK ON AFTER EXPANSION - + LIST ;TURN LISTING BACK ON DURING EXPANSION > - EXTERN LPTSER, LPTNXT, LPTECM, LPTDON, LPTINT, LPTDSP - LPT2=234 ;DEVICE SELECT CODE FOR SECOND LPT + EXTERN LPTSER, LPTNXT, LPTECM, LPTDON, LPTINT, LPTDSP - IFNDEF LP0, ;DEFINE STANDARD MNEMONIC DEFINITIONS - IFNDEF LP1, ; BUT ALLOW FOR OVERRIDE + LPT2=524 ;DEVICE SELECT CODE FOR SECOND LPT - $LPNUM=0 ;TEMPORARY SYMBOL USED TO FACILITATE - ; MACRO GENERATION + IFNDEF LP0, ;DEFINE STANDARD MNEMONIC DEFINITIONS + IFNDEF LP1, ; BUT ALLOW FOR OVERRIDE + $LPNUM=0 ;TEMPORARY SYMBOL USED TO FACILITATE + ; MACRO GENERATION - REPEAT LPTN, < - LPTDDB \$LPNUM - $LPNUM=$LPNUM+1 + REPEAT LPTN, < + + LPTDDB (\$LPNUM) + $LPNUM=$LPNUM+1 + > + > -> ;CARD READER ENTRY POINT AND BITS - IFG CDRN, < - IFG CR10N, ;CR10 ENTRY POINT - IFE CR10N, ;PDP-6 CARD READER - INTERNAL CDRBTS + IFG CDRN,< + IFG CR10N, ;CR10 ENTRY POINT + IFE CR10N, ;PDP-6 CARD READER + INTERN CDRBTS CDRBTS==1670+CDRCHN -> + > ;CARD PUNCH ENTRY POINT @@ -1540,41 +1518,42 @@ LP'N'PTR: 0 ;( 7) BLOCK OUTPUT POINTER IFG PLTN, + ;PAPER TAPE READER ENTRY POINT AND MASK - IFG PTRN, ;MASK==0 IF PDP-10 READER - IFE PDP10N, ;MASK==777777 FOR PDP-6 READER + IFG PDP10N, ;MASK==0 IF PDP-10 READER + IFE PDP10N, ;MASK==777777 FOR PDP-6 READER > ;PAPER TAPE PUNCH ENTRY POINT IFG PTPN, - ;DISK ENTRY POINTS AND BITS + ;DISK ENTRY POINTS AND BITS + IFG DSKN,< INTERN DSKBIT,DCBBIT,DSKON,DSKOFF DCBBIT==0 ;0 UNLESS DATA PRODUCTS DISK(SEE BELOW) DSKBIT==1 ;LOW PRIORITY DISK PI CHANNEL REPEAT 7-DSKCHN, DSKON==2000+DSKBIT ;CONO PI, TURN DISK CHANNEL ON - DSKOFF=1000+DSKBIT ;CONO PI, TURN DISKCHANNEL OFF + DSKOFF==1000+DSKBIT ;CONO PI, TURN DISKCHANNEL OFF IFG RD10N,< ;BURROUGHS DISK - EXTERN RCXINT,DSKSRB,RCXWNZ ;LOAD EARLIER VERSION + EXTERN RCXINT,DSKSRB,RCXWNZ ;LOAD EARLIER VERSIONS OF ; DSKINT,DSKSRB,ONCEB IFG SYS50N, ;LOAD EARLIER VERSION OF SCHEDB > IFG DPDN,< ;IF DATA PRODUCTS DISK - EXTERNAL LODINT ;LOAD DPDINT - EXTERNAL DSKSRD ;LOAD ONCE=DSKSR FOR DATA PROD DISK - + EXTERNAL LDDINT ;LOAD DPDINT + EXTERNAL DSKSRD ;LOAD ONCE+DSKSR FOR DATA PROD DISK INTERN DCBBIT,DSKX8,DSKX9 DCBBIT==1 REPEAT 7-DCBCHN, - DSKX8==40+2*DCBCHN ;DATA-CONTROL BLKI/BLKO OCS + DSKX8==40+2*DCBCHN ;DATA-CONTROL BLKI/BLKO LOCS DSKX9==DSKX8+1 > IFG RA10N,< ;IF BRYANT DISK @@ -1583,19 +1562,19 @@ LP'N'PTR: 0 ;( 7) BLOCK OUTPUT POINTER > > + ;PSEUDO TTY ENTRY POINT - IFE PTYN, - IFG PTYN, < + IFG PTYN,< IFE FULLN, ;HALF DUPLEX SCANNER SOFTWARE IFG FULLN, ;FULL DUPLEX SCANNER SOFTWARE > LIT RELOC .-COMORG ;NOW MAKE RELOCATABLE SO NEXT PROGRAM WILL BE LOADED - ; IMMEDIATELY AFTER THIS ONE - -COMEND: END + ; IMMMEDIATELY AFTER THIS ONE +COMEND: END