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