; 2. USUAL SHROT ONCE ONLY CODE(ONCE) - CTY FOR DATE AND TIME\r
; 3. OPTIONAL ONCE ONLY CODE - CTY DIALOG TO CHANGE MONITOR\r
; OR REFRESH DISK(ALT-MODE INSTEAD OF CR AFTER TIME)\r
+\f\r
+\r
\r
;INITIALIZE PRIORITY CHANNELS AND SETUP INTERRUPT SERVICE ROUTINE CHAIN\r
\r
+\r
T=TAC ;DEFINE ACCUMULATOR T\r
\r
;LINK TO SERVICE ROUTINES\r
IFN FT2REL,<\r
JSP TSTREG ;GO TEST IF TWO RELOC REGISTERS EXIST\r
>\r
-\r
;HIGHEST LOC. IN JOB AREA PROTECTED FROM IO\r
-\r
-;MOVE SYMBOL TABLE UP IN MEMORY\r
+\f;MOVE SYMBOL TABLE UP IN MEMORY\r
;EXEC MUST BE LOADED IN 15K OR LESS IF GOING INTO 16K MACHINE\r
;FIRST FIND THE FIRST LOCATION OF NON-EXISTENT MEMORY\r
\r
STO1: MOVEM TAC1,.(TAC)\r
SUB TAC,[XWD 1,1]\r
JUMPGE TAC,.-3\r
-\r
- EXTERN DEVLST,INTNUM,INTTAB\r
+\f EXTERN DEVLST,INTNUM,INTTAB\r
;SETUP LOCATIONS 40 THRU 61\r
\r
JRSTI1: MOVE TAC,[XWD LOC40,40] ;SET UP LOWER CORE PI LOCATIONS\r
EXTERN NULPDL,DSKINI\r
\r
MOVEI PDP,NULPDL\r
- PUSHJ PDP,DSKINT ;INITIALIZE THE DISK\r
+ PUSHJ PDP,DSKINI ;INITIALIZE THE DISK\r
; AFTER SETTING UP CHANNEL LOC\r
; BUT BEFORE OVERWRITTING ONCE WITH DDB'S\r
>\r
;MULTIPLE DEVICE DATA BLOCKS ARE CREATED\r
;AS SPECIFIED BY SYSSIZ AND MAY ERASE PART\r
;OF ONCE ONLY CODE\r
-JRST1: JRST @LINKSR ;YES,RETURN\r
-\r
-EXTERN UUO0,ERROR,UUO2,LINKDR,DEVLST\r
+JRSTI: JRST @LINKSR ;YES,RETURN\r
+\fEXTERN UUO0,ERROR,UUO2,LINKDB,DEVLST\r
EXTERN CH1,CH2,CH3,CH4,CH5,CH6,CH7\r
\r
LOC40: 0 ;UUO PC\r
0 ;LOC 60/61 TRAPPED TO FOR UNIMPLEMENTED OP CODES ON PDP-10\r
;OP CODE 100 IS USED TO DISMISS USER MODE INTERRUPTS(SEE TRPSET UUO)\r
JSR UUO2 ;GO SEE IF OP CODE 100 OR SOME OTHER ONE\r
-\r
-IFN FT2REL,<\r
+\fIFN FT2REL,<\r
;SET LOC TWOREG TO -1 IF MACHINE HAS TWO RELOC REG,0 IF ONLY ONE RELOC REG\r
EXTERN TWOREG,SEGN,SEGPTR,AND2RG,JOBN\r
\r
CONO PI,10000 ;CLEAR PI SYSTEM\r
JRST @TSTREG\r
>\r
-\r
-;ROUTINE TO FIND THE EXEC DDT SYMBOL TABLE POINTER AND MOVE IT TO THE PLACE\r
+\f;ROUTINE TO FIND THE EXEC DDT SYMBOL TABLE POINTER AND MOVE IT TO THE PLACE\r
;WHERE EXEC DDT EXPECTS IT(DDTSYM=36)\r
;THE MONITOR CAN BE LOADED IN ANY OF 3 WAYS(IN ORDER OF PERFERNCE):\r
; 1. UNDER TIME SHARING WITH REGULAR LOADER AND COMMON\r
; 2. JUNK JUNK(NON-NEG) S.T.PTR\r
; 3. S.T.PTR S.T.PTR JUNK\r
\r
-;CALL: JSP MOVSTP\r
+;CALL: JSP MOVSTR\r
; RETURN WITH AC UUO SET TO SYMBOL TABLE POINTER\r
;CALLED FROM MANDATORY ONCE ONLY CODE AND 141 START CODE(WHICHEVER OCCURS FIRST)\r
\r
- INTERN MOVTP\r
+ INTERN MOVSTR\r
EXTERN T30SYM,JOBSYM,DDTSYM,DDTX,SYSDDT\r
\r
MOVSTR: 0 ;JSR HERE FROM MANDATORY ONCE ONLY CODE AND\r
INTERN PATSYM\r
EXTERN DDTX\r
\r
-PATSYM: JSR MOVSTP ;MOVE DDT SYMBOL TABLE POINTER SO EXEC DDT WILL\r
+PATSYM: JSR MOVSTR ;MOVE DDT SYMBOL TABLE POINTER SO EXEC DDT WILL\r
; FIND IT AND PATCH 141 TO GO DIRECTLY TO EXEC DDT\r
JRST DDTX ;AND GO DIRECTLY TO EXEC DDT\r
+\f\r
+;ONCE ONLY CODE - OPERATOR SETUP DIALOGUE\r
\r
IFN FTRC10, <\r
ENTRY RCXWNZ ;THIS SYMBOL IS SOLELY TO PERMIT THE SYSTEM\r
MOVEI TAC,TSEXEC\r
PUSHJ PDP,CONMES\r
PUSHJ PDP,OPOUT\r
-\r
-\r
-;ASK FOR TODAY'S DATE AND CONVERT \r
+\f;ASK FOR TODAY'S DATE AND CONVERT \r
;DATE STORED AS ((Y-64)*12.+M-1)*31.+D-1\r
\r
-EXTERNAL THSDAT,JUFMIN,SKIPS\r
+EXTERNAL THSDAT,JIFMIN,SKIPS\r
\r
PUSHJ PDP,DATLOP\r
JRST .-1\r
SUBI TAC1,^D64 ;YEAR ZERO\r
IMULI TAC1,^D12*^D31\r
ADDM TAC1,THSDAT\r
-\r
-\r
-;GET TIME OF DAY\r
+\f;GET TIME OF DAY\r
\r
EXTERNAL TIME\r
\r
- POP PDP,TC\r
+ POP PDP,TAC\r
PUSHJ PDP,TIMLOP\r
JRST .-1\r
TIMLOP: SETZM TIME\r
MOVEI TAC,TIMEM\r
- PUSHJ PDP,IOCONM\r
+ PUSHJ PDP,ICONM\r
PUSHJ PDP,OPOUT\r
PUSHJ PDP,GETLIN\r
JRST TIMLOP ;JUST A CR\r
JRST TIMLOP ;NO ARGUMENT\r
JRST TIMLOP ;ILLEGAL CHARACTER\r
MOVE TAC,TAC1\r
- IDIVI TYAC,^D100 ;TAC=HRS.TAC1=MINS\r
+ IDIVI TAC,^D100 ;TAC=HRS.TAC1=MINS\r
\r
SKIPL TAC ;HRS NEGATIVE?\r
CAILE TAC,^D23 ;OR .G. 23?\r
JUMPGE ITEM,QUICK ;SKIP NEXT PART OF DIALOGUE UNLESS THE LAST ITEM\r
; TYPED IN (NAMELY TIME OF DAT) WAS TERMINATED BY\r
; AN "ALT MODE". (ACCUMULATOR "ITEM" IS SET UP\r
- ; IUN THE "GETLIN" SUBROUTINE CALLED ABOVE.)\r
-\r
+ ; IN THE "GETLIN" SUBROUTINE CALLED ABOVE.)\r
+\f;PRINT IO CONFIGURATION\r
\r
-;PRINT IO CONFIGURATION\r
-\r
-EXTERNAL DEVLST,TCONLN,INLMES,PRENAME,INTTB1,INTTAB\r
+EXTERNAL DEVLST,TCONLN,INLMES,PRNAME,INTTB1,INTTAB\r
EXTERNAL OCTPNT\r
\r
IFN FT2REL,<\r
PUSHJ PDP,OPOUT\r
>\r
MOVEI TAC,IOCONF\r
- PUSHJ PDP,IOCNM\r
+ PUSHJ PDP,ICONM\r
HLRZ AC1,DEVLST\r
JUMPN AC1,ALRLNK ;DEVICE DATA BLOCK ALREADY LINKED?\r
- MOVESI PROG,INTNUM ;NO, NOT LOADED BY BULD,-NO. OF DEVICES*2\r
+ MOVSI PROG,INTNUM ;NO, NOT LOADED BY BULD,-NO. OF DEVICES*2\r
CONFLP: SKIPN AC1,INTTB1(PROG) ;INT LOC HAVE DEV DATA BLOCK?\r
JRST NODDB ;NO, GO GET NEXT DEVICE DATA BLOCK\r
LDB UUO,[POINT 8,INTTAB(PROG),8] ;YES. NO. OF DEV DATA BLKS\r
PUSHJ PDP,RADX10 ;IN DECIMAL\r
PUSHJ PDP,INLMES ;PRINT 1 SPACE\r
ASCIZ / /\r
- HLLZ TAC1,DEVNAME(AC) ;DEVICE NAME\r
+ HLLZ TAC1,DEVNAM(AC1) ;DEVICE NAME\r
PUSHJ PDP,PRNAME ;PRINT IT\r
SOJLE UUO,SINGLE ;IS THIS JUST A SIGNLE DEVICE?\r
PUSHJ PDP,INLMES ;NO, APPEND 'S TO DEVICE NAME\r
ASCIZ / (OCTAL) TTY SCANNER LINES\r
/\r
PUSHJ PDP,OPOUT\r
-\r
+\f\r
;ASK FOR OPERATORS CONSOLE TO BE SPECIFIED\r
\r
EXTERNAL INLMES,DEVOPR,CTEXT,DEVPHY\r
CAMN TAC,[SIXBIT /CTY/] ;CTY?\r
JRST .+3 ;YES. JUST STORE IT.\r
PUSHJ PDP,DEVPHY\r
- JRST ONCEP ;PHYSICAL NAME NOT FOUND\r
+ JRST ONCEOP ;PHYSICAL NAME NOT FOUND\r
MOVEM TAC,DEVOPR ;SET FOR SYSTEM\r
;DEVICE "OPR" WILL BE SAME AS THIS\r
-\r
+\f\r
;ASK IF SYSMAK IS WANTED\r
\r
EXTERN MAKEND,SYSSIZ\r
ONCE3: PUSHJ PDP,SYSSIZ ;SAVE CURRENT VALUE\r
JSP TAC,CNTDB ;UPDATE SYSSIZ BY SPACE USED\r
; FOR DEVICE DATA BLOCKS FOR DSK,DTA,MTA,TTY,PTY)\r
-\r
-;PRINT OCTAL SIZE OF MONITOR\r
+\f;PRINT OCTAL SIZE OF MONITOR\r
\r
MOVEI TAC,EXECIS\r
PUSHJ PDP,ICONM\r
>\r
\r
JRST @ONCE ;***EXIT FROM THE "ONCE-ONLY CODE"***\r
-\r
-\r
-IFN FTNDISK,<\r
-EXTERNAL OCTIN,MFDBLK,SATXWD,NUMPLK,SYSPP,REFLAG\r
+\fIFN FTDISK,<\r
+EXTERNAL OCTIN,MFDBLK,SATXWD,NUMBLK,SYSPP,REFLAG\r
\r
;REFRESH DIALOGUE\r
\r
IFN FTTTYSER,<PUSHJ PDP,SKIPS>\r
PUSHJ PDP,OCTIN\r
JRST REF2\r
- JRET REF2\r
+ JRST REF2\r
IFE FTRC10, <\r
PUSH PDP,TAC1 ;IS IT A MULTIPLE OF NUMBLK?\r
MOVEI TAC,(TAC1)\r
HRRZM TAC1,MFDBLK\r
AOS TAC1\r
HRRM TAC1,SATXWD\r
-REF3:\r
+\fREF3:\r
INTERNAL FTSWAP\r
IFN FTSWAP,<IFN FTRC10, <\r
MOVEI TAC,REF9M ;HOW MANY 1K BLOCKS ON THE ISK FOR SWAPPING ?\r
REF3A:\r
>>\r
\r
+\r
+\r
PUSHJ PDP,REFRES ;REFRESH.\r
JRST REF5 ;ERROR\r
\r
PUSHJ PDP,OPOUT\r
POPJ PDP,\r
\r
-IFE FTRC10, <\r
+\fIFE FTRC10, <\r
REF4: POP PDP,TAC1\r
MOVEI TAC,REF5M\r
PUSHJ PDP,ICONM\r
REF5: PUSH PDP,TAC ;ERROR. ON COMMING HERE, TAC HAS LOGICAL BLOCK\r
; NUMBER WHICH COULD NOT BE WRITTEN\r
MOVEI TAC,REF7M\r
- PUSHJ PDP,IOCONM\r
+ PUSHJ PDP,ICONM\r
POP PDP,TAC\r
PUSHJ PDP,OCTPNT\r
PUSHJ PDP,CRLF\r
PUSHJ PDP,OPOUT\r
JRST REF6 ;GO BACK TO TRY AGAIN.,\r
\r
+\r
REF1M: ASCIZ /DO YOU WANT TO REFRESH THE DISK ? (Y OR CR)\r
/\r
REF2M: ASCIZ /ARE YOU SURE(Y OR CR)?\r
/\r
REF3M: ASCIZ /DO YOU WANT TO CHANGE THE LOCATION OF THE MFD(Y OR CR)?\r
/\r
-REF4M: ASCIZ /TYPE THE LOGICAL DISK ADDRESS OF THE MFT RETREIVAL INFORMATION\r
+\fREF4M: ASCIZ /TYPE THE LOGICAL DISK ADDRESS OF THE MFT RETREIVAL INFORMATION\r
/\r
IFE FTRC10, <\r
REF5M: ASCIZ /MUST BE A MULTIPLE OF NUMBLK.\r
/\r
>\r
> ;THIS CLOSES AN FTDISK CONDITIONAL SERVAL PAGES BACK.\r
-\r
-;ROUTINE TO READ A LINE FROM OPERATORS CONSOLE\r
+\f;ROUTINE TO READ A LINE FROM OPERATORS CONSOLE\r
;CALL: PUSHJ PDP,GETLIN\r
; JUST A CR TYPED IN\r
; A LINE TYPED IN,TAC SEYT AS BYTE POINTER\r
\r
IFN FTTTYSER,<EXTERN TSETBF,SETBFI,SCNDDB,DCPUTR,PUTCHI>\r
\r
-EXTNERAL CPOPJ\r
+EXTERNAL CPOPJ1\r
\r
GETLIN: IFE FTTTYSER,<MOVE TAC,LINEP>\r
IFN FTTTYSER,< PUSHJ PDP,SETBFI>\r
GETLN1: SETOM ITEM ;MECHANISM USED TO BY-PASS PART OF DIALOGUE\r
MOVEI CHREC,15 ;WHEN ALTMODEIS TYPED.\r
JRST GET2\r
-\r
-;ROUTINE TO TYPE A LINE ON OPERATOR CONSOLE\r
+\f;ROUTINE TO TYPE A LINE ON OPERATOR CONSOLE\r
;ECHO CHECK STOPS LINE AND RETURNS\r
;CALL: DAT SET TO END OF MESSAGE\r
\r
OPOUT: IFE FTTTYSER,<MOVE TAC,LINEP>\r
IFN FTTTYSER,<MOVEI DAT,TTOBUF(DEVDAT)>\r
CONO TTY,1000 ;CLEAR INPUT\r
-OPOUT1: IFE FTTYSER,<\r
+OPOUT1: IFE FTTTYSER,<\r
CAMN TAC,DAT\r
POPJ PDP,>\r
CONSZ TTY,40\r
JRST OPOUT2 ;ECHO CHECK\r
- MEXTC\r
+ NEXTC\r
IFN FTTTYSER,< JUMPE CHREC,CPOPJ>\r
PUSHJ PDP,TYO\r
JRST OPOUT1\r
MOVEI CHREC,12\r
PUSHJ PDP,TYO\r
CONO TTY,1000 ;CLEAR INPUT\r
-\r
+\f\r
;WAIT TILL OUTPUT BUSY OFF BEFORE TYPING OUT CHAR.\r
\r
EXTERNAL TCONLN,TYPL\r
CONO APR,1000 ;YES, CLEAR CLOCK FLAG\r
AOS TIME ;INCREMENT TIME\r
POPJ PDP,\r
-\r
-ICONM: PUSH PDP,TAC\r
- SETTTYO ;INITIALIZE LINE BUFFER\r
+\fICONM: PUSH PDP,TAC\r
+ SETTYO ;INITIALIZE LINE BUFFER\r
POP PDP,TAC\r
JRST CONMES ;OUTPUT MESSAGE\r
\r
MOVSI TEM,120 ;TTYCHR\r
HRRI TEM,TIBF(DEVDAT)\r
MOVEM TEM,TTIBUF(DEVDAT) ;INIT INPUT POINTER\r
- HRRI TEM,TDBF(DEVDAT) ;AND OUTPUT POINTER\r
+ HRRI TEM,TOBF(DEVDAT) ;AND OUTPUT POINTER\r
MOVEM TEM,TTOBUF(DEVDAT)\r
JRST TSETBF ;NOW CLEAR THE BUFFERS\r
>\r
CAIN CHREC,"Y" ;WAS IT A Y?\r
AOS 0(PDP) ;YES, SKIP\r
POPJ PDP, ;NO. MAYBE IT WAS "N", SO DONT SKIP\r
-\r
+\f\r
;CONSTANTS AND PUSH DOWN LIST\r
\r
ONCEPN=20\r
OPRM: ASCIZ /\r
TYPE NAME OF OPR CONSOLE.\r
/\r
-SYSM: ASCIZ /\r
+\fSYSM: ASCIZ /\r
DO YOU WANT SYSMAK (TYPE Y IF YES, CR IF NO)?\r
/\r
SYSDM: ASCIZ /\r
/\r
CRLFMS: ASCIZ /\r
/\r
-\r
-\r
-;INITIALIZE SAT SEARCH ENTRIES\r
+\f;INITIALIZE SAT SEARCH ENTRIES\r
\r
;THIS "DFWUNS" ROUTINE IS CALLED BY MANDATORY ONCE ONLY CODE(LINKSR)\r
; AFTER ALL MULTIPLE DEVICE DATA BLOCKS HAVE BEEN GENERATED IN CORE\r
; PERFORMED, DFWUNS IS CALLED AFTER REFRES SINCE SYSINI CALLS LINKSR AFTER ONCE.\r
\r
INTERNAL FTDISK\r
-IFN FTDISK,\r
+IFN FTDISK,<\r
\r
INTERNAL DFWUNS\r
EXTERNAL SAT05,JSAT06,SATENT,SATPTR,SATBK2,SATXWD,SATPTR\r
PUSHJ PDP,CAPCTY ;DETERMINE CURRENT SYSTEM CAPACITY (HOW MANY DISKS).\r
CAMN TAC,LBHIGH ;HAS CAPACITY CHANGED SINCE LAST REFRESH ?\r
JRST DFWNZ1 ;NO, EVERYTHING APPPEARS TO BE OKAY.\r
- SETTTYO ;YES, PRINT WARNING MESSAGE...\r
+ SETTYO ;YES, PRINT WARNING MESSAGE...\r
PUSHJ PDP,INLMES\r
ASCIZ /DISK CAPACITY HAS CHANGED SINCE LAST REFRESHING.\r
EITHER RESTORE PREVIOUS DISK CONFIGURATION OR REFRESH.\r
JRST DFWUNS ;NOW TRY AGAIN.\r
DFWNZ1:\r
>\r
- MOVEI TAC,SETENT\r
+ MOVEI TAC,SATENT\r
MOVEM TAC,SATPTR\r
MOVEI PROG,0\r
MOVEI DEVDAT,DSKDDB\r
MOVE TAC,SATBK2\r
MOVEM TAC,2(DAT)\r
MOVSI TAC1,400000\r
- MOVEM TAC1,1(DSAT)\r
+ MOVEM TAC1,1(DAT)\r
MOVEI DAT,0\r
-SETS3: MOVE AC1,(TAC) ;COUNT ONE-BITS\r
+\fSETS3: MOVE AC1,(TAC) ;COUNT ONE-BITS\r
AOJN AC1,SETS3A ;IS THE WORD = -1?\r
ADDI DAT,44 ;YES\r
JRST SETS5\r
;BITS HAVE BEEN COUNTED, CHECK FOR WRITE-LOCK\r
CAIL DAT,NUMBIT ;BLOCK FULL?\r
JRST SETS8\r
- PUSHJ PDP,DEGETF ;NO. GET A FREE BLOCK\r
+ PUSHJ PDP,DFGETF ;NO. GET A FREE BLOCK\r
\r
PUSHJ PDP,SETS7 ;WRITE\r
PUSHJ PDP,SETFRE ;FREE THE BLOCK\r
HRRM TAC1,(TAC) ; TABLE TO SHOW ALL NON-EXISTENT DISKS AS\r
JRST SETS5X ; BOTH WRITE-LOCKED AND FULL.\r
>\r
+\fSETS6: POP PDP,TAC ;ERROR, TRY AGAIN\r
+ JRST SETS2\r
\r
IFE FTRC10, <\r
\r
\r
> ;CLOSE THE IFE FTRC10\r
> ;CLOSES AN IFN FTDISK A COUPLE PAGES BACK.\r
-\r
-IFN FTDISK,<\r
+\fIFN FTDISK,<\r
\r
;DISK REFRESHING ROUTINES ---\r
\r
MOVEI DEVDAT,DSKDDB\r
PUSH PDP,SETSAT\r
MOVE TAC,RPOPJ\r
- MOVEM TAC,SETSET\r
+ MOVEM TAC,SETSAT\r
PUSHJ PDP,DSKINI\r
POP PDP,SETSAT\r
MOVEI TAC,DSKCHN\r
LSH TAC,1\r
-\r
ADDI TAC,40\r
MOVE TAC1,[JSR DSKCHL]\r
MOVEM TAC1,(TAC)\r
REFER: POP PDP,WSYNC\r
RPOPJ: POPJ PDP,\r
\r
-DEFINE ZEROS (A),<XLIST\r
+DEFINE ZEROES (A),<XLIST\r
REPEAT A,<0>\r
LIST>\r
\r
DEFINE BLOCKR (NAME,EXT,PROT,PROGX,B,F,Z),<\r
NAME\r
EXT\r
- EXP PROT*1B8+14812\r
+ EXP PROT*1B8+14B12\r
XWD 1,PROGX\r
EXP Z\r
ZEROES 172\r
MFDRET: BLOCKR <XWD 1,1>,<SIXBIT /UFD/>,45,1,0,4,20 ;MFD RETREIVAL INFO\r
\r
SATBL1: XWD 777776,0 ;THIS SAT BLOCK CONTAINSS\r
- ZERSO 5400/44-1 ;ALLOCATION FOR MFD AND SAT BLOCKS\r
+ ZEROES 5400/44-1 ;ALLOCATION FOR MFD AND SAT BLOCKS\r
XWD 001777,-1\r
ONES 200+SATBL1-.\r
\r
XWD 654644,0\r
SIXBIT /*SAT*/\r
XWD 637163,17 ;RELOCATED\r
- ZEROS 174\r
+ ZEROES 174\r
\r
-NULBLK: ZEROS 5400/44-1 ;NULL SAT BLOCK\r
+NULBLK: ZEROES 5400/44-1 ;NULL SAT BLOCK\r
XWD 001777,-1\r
ONES 200+NULBLK-.\r
\r
> ;END OF THE REFRESHER FOR THE OLD PDP-6 DISK.\r
-\r
-\r
+\f\r
IFN FTRC10, <\r
\r
;DISK REFRESHER FOR THE NEW PDP-10 MODEL RC-10 (BURROUGHS) DISK--\r
\r
EXTERNAL CPOPJ1,THSDAT,TIME\r
EXTERNAL MFDBLK,SATXWD,NUMSAT,NUMBLK,SATTOP,SENTSZ\r
- EXTERNAL DISKUP,DFREF,DFWRT,DSKFDG,CHKSUM,RCXCCW,RCXFIN\r
+ EXTERNAL DISKUP,DFRED,DFWRT,DSKFDG,CHKSUM,RCXCCW,RCXFIN\r
EXTERNAL K4SWAP\r
IFN FTSWAP,<\r
- EXTNERAL MAXSWP,MXK2SWP,BLKSPK\r
+ EXTERNAL MAXSWP,MXK2SWP,BLKSPK\r
>\r
EXTERNAL LBHIGH\r
INTERNAL STATBK\r
SRCHE=1B19 ;SEARCH ERROR (DISK TIMING TRACK PROBLEMS!!)\r
DDE=1B20 ;DISK DESIGNATION ERROR\r
TSE=1B21 ;TRACK SELECT ERROR (OR EXCEEDS SYSTEM CAPACITY)\r
- MRDY=1B22 ;DISK NOT READY (OR NON-EXISTENT DISK REFERENCED)\r
+ NRDY=1B22 ;DISK NOT READY (OR NON-EXISTENT DISK REFERENCED)\r
PSF=1B23 ;POWER SUPPLY FAILURE\r
DPAR=1B24 ;DISK PARITY ERROR\r
CHDPAR=1B25 ;CHANNEL DATA PARITY ERROR\r
OVR=1B29 ;OVERRUN, I.E., MEMORY DIDN'T RESPOND QUICKLY ENOUGH\r
;BIT 30 CHANNEL CONTROL WORD WRITTEN IN MEMORY (THIS BIT IS\r
;TURNED ON ON ALMOST ALL TERMINATIONS.)\r
-BUSYRT=1B31 ;BUSY (SYNCHRONIZER PERFORMING A COMMAND SEQUENCE)\r
+BUSYBT=1B31 ;BUSY (SYNCHRONIZER PERFORMING A COMMAND SEQUENCE)\r
DONEFLG=1B32 ;DONE -- THIS ACTUALLY CAUSES THE INTERRUPT.\r
;BITS 33 - 35 PI CHANNEL SELECTION BITS.\r
\r
;COMBINATIONS OF ERRO BITS GROUPED BY TYPE --\r
DATERR=DPAR!CHDPAR ;DATA ERRORS.\r
DEVERR=SRCHE!PSF!CHCPAR!OVR ;DEVICE ERRORS.\r
-SETERR=DDE!TSE!NRDY!NXMEM ;SOFTWARE-PREVENTABLE ERRORS.\r
-\r
-\r
-;CONO FORMAT FOR THE MODEL RC-10 DISK SYNCHRONIZER\r
+SETERR=DDE!TSE!NRDY!WRPE!NXMEM ;SOFTWARE-PREVENTABLE ERRORS.\r
+\f;CONO FORMAT FOR THE MODEL RC-10 DISK SYNCHRONIZER\r
\r
;BITS 00 - 17 UNUSED\r
;BITS 18 - 19 SELECT DISK FOR SECTOR COUNTER READ-OUT A(SEE DATAI BITS 28-35)\r
;BITS 27 - 34 ;CORRESPONDING BITS OF INITIAL CHANNEL CONTROL ADDRESS, HENCE,\r
; THIS ADDRESS MUST BE EVEN AND IN THE FIRST 1K OF CORE MEMORY!\r
;BIT 35 ;WRITE EVEN PARITY DATA INTO MEMORY (DIAGNOSTICS ONLY!)\r
-\r
+\f\r
\r
REFRESH:\r
PUSHJ PDP,DISKUP ;BE SURE THE DISK IS UP AND READY.\r
POP PDP,TAC ; DIALOGUE TO AK THE PARAMETER SPECIFICATION\r
JRST REF6 ; QUESTIONS AGAIN.\r
\r
-RFSHME: ACSIZ /PARAMETER SPECIFICATION ERROR. TRY AGAIN.\r
+RFSHME: ASCIZ /PARAMETER SPECIFICATION ERROR. TRY AGAIN.\r
/\r
+\f\r
\r
RFRSH1: PUSHJ PDP,WRSTAT ;WRITE OUT THE VITAL STATISTICS BLOCK ON THE DISK.\r
JRST REFERR ; AN ERROR ON THIS WRITE IS BAD TROUBLE !!\r
MOVE TAC,[XWD 1,1] ;THE FIRST ENTRY IN THE MFD IS FOR\r
MOVEM TAC,WNZBUF ; THE MFD ITSELF.\r
MOVE TAC,[SIXBIT/UFD/]\r
- HRR TC,MFDBLK ;POINTER TO MFD RETRIEVAL INFORMATION\r
+ HRR TAC,MFDBLK ;POINTER TO MFD RETRIEVAL INFORMATION\r
MOVEM TAC,WNZBUF+1\r
MOVE TAC,[SIXBIT/*SAT*/] ;THE ONLY OTHER ENTRY INITIALLY IN THE\r
MOVEM TAC,WNZBUF+2 ; MFD IS FOR THE FILE NAMED *SAT*.SYS WHICH\r
HRRZ TAC,MFDBLK ; ANYONE WHO WANTS TO LOOK AT THEM.\r
SUBI TAC,-1(TAC1) ;COMPUTE POINTER TO THE RETRIEVAL INFORMATION\r
HLL TAC,[SIXBIT/SYS/] ; FOR THE *SAT*.SYS FILE.\r
- MOVEM TAC,WNZBYUF+3\r
+ MOVEM TAC,WNZBUF+3\r
HRRZS TAC\r
ADDI TAC,1 ;COMPUTE LOGICAL BLOCK NUMBER OF THE MFD.\r
PUSHJ PDP,WNZWR ;WRITE THE MFD OUT ONTO THE DISK.\r
PUSHJ PDP,CHKSUM\r
HRRZM TAC1,CHKSAV ;SAVE CHECKSUM TO GO INTO RETRIEVAL INFORMATION.\r
\r
+\r
;NEXT WRITE MFD RETRIEVAL INFORMATION BLOCK ONTO THE DISK\r
\r
PUSHJ PDP,WNZCLR ;CLEAR OUTPUT BUFFER\r
HLL TAC,[SIXBIT /UFD/]\r
MOVEM TAC,WNZBUF+1 ;FILE EXTENSION, DATE\r
HRLZI TAC,045000 ;PROTECTION (ANY PROJECT 1 USER MAY WRITE IN MFD)\r
- PUSHJ PDP,MDTMDT ;FILL IN TIME, DATE, AND MODE\r
+ PUSHJ PDP,MDTMOT ;FILL IN TIME, DATE, AND MODE\r
MOVEM TAC,WNZBUF+2\r
MOVE TAC,[XWD -200,1] ;NEGATIVE WORD COUNT AND PROGRAMMER NUMBER\r
MOVEM TAC,WNZBUF+3 ;GO INTO WORD 4 OF RETRIEVAL INFO\r
MOVEM TAC,WNZBUF+177 ; MUST CONTAIN ITS OWN BLOCK NUMBER.\r
PUSHJ PDP,WNZWR ;WRITE MFD RETRIEVAL INFOMRATION ONTO THE DISK\r
JRST REFERR ;ERROR\r
-\r
+\f\r
;NEXT CREATE THE NECESSARY SAT BLOCKS ON THE DISK\r
\r
PUSH PDP,SATXWD ;SATXWD CONTROLS THE OUTER LOOP\r
MOVEI TAC,0\r
PUSHJ PDP,SETWNZ\r
JRST REFST7 ;HAVING SET ALL BITS, NO FURTHER TESTING IS NEEDED,\r
->\r
+\r
REFST2: MOVN TAC,TAC1\r
ADDI TAC1,NUMBLK\r
SUB TAC1,LOWSWP ;IS ANY OF SWAPPING AREA WITHIN THIS SAT BLOCK?\r
SUB TAC,TAC1\r
MOVEI TAC1,1 ;YES, MARK IT UNAVAILABLE,\r
PUSHJ PDP,SETWNZ\r
-\r
+\f\r
REFST4: MOVE TAC,SATXWD ;SET UP TO LOOP THRU LOGICAL BLOCK NUMBERS FOR MFD.\r
SUB TAC,[XWD 3,1] ; MFD RETRVL INFO. SAT BLOCKS, AND SAT RETRVL INFO.\r
\r
MOVE TAC,SATPTR ; BACK TO DO NEXT SAT BLOCK.\r
ADDI TAC,SENTSZ\r
JRST REFST1\r
-\r
+\f\r
;FINALLY, WRITE OUT THE RETRIEVAL INFORMATION FOR THE FILE *SAT*.SYS\r
\r
REFSRF: PUSHJ PDP,WNZCLR ;CLEAR THE BUFFER\r
HLL TAC,[SIXBIT /SYS/]\r
MOVEM TAC,WNZBUF+1 ;STORE EXTENSION AND DATE\r
HRLZI TAC,555000 ;PROTECTION CODE (UNTOUCHABLE FILE ! )\r
- PUSHJ PDP.MDTMDT ;FILL IN TIME, DATE AND MODE\r
+ PUSHJ PDP,MDTMOT ;FILL IN TIME, DATE AND MOTE\r
MOVEM TAC,WNZBUF+2\r
HLLZ TAC,SATXWD ;COMPUTE NEGATIVE WORD COUNT\r
LSH TAC,7\r
HRRI TAC,1 ;PROGRAMMER NUMBER=1\r
MOVEM TAC,WNZBUF+3\r
\r
+\r
MOVEI TAC,SATENT ;PREPARE TO STORE POINTERS TO ALL THE SAT BLOCKS.\r
MOVE TAC1,SATXWD\r
MOVEI AC2,0\r
PUSHJ PDP,WNZWR ;WRITE THE *SAT*.SYS RETRVL INFO ONTO THE DISK.\r
JRST REFERR ;ERROR\r
\r
- JRST CPOPJ1 ;***EXIT FROM PDP-10 DISK REFRESHER.***.........\r
\r
\r
+ JRST CPOPJ1 ;***EXIT FROM PDP-10 DISK REFRESHER.***.........\r
+\f\r
;ROUTINE TO WRITE THE FIXED BLOCK OF VITAL STATISTICS ONTO THE DISK.\r
\r
-WRSTAT: PUSHJ PDPWNZCLR ;CLEAR THE OUTPUT BUFFER\r
+WRSTAT: PUSHJ PDP,WNZCLR ;CLEAR THE OUTPUT BUFFER\r
MOVE TAC,[XWD -WRSTSZ,0]\r
WRSTA1: MOVE TAC1,@WRSTA9(TAC) ;STORE KEY QUANTITIES IN THE OUTPUT BUFFER\r
MOVEM TAC1,WNZBUF(TAC)\r
WRSTM1: ASCIZ /CANNOT WRITE VITAL STATISTICS BLOCK ON DISK. HELP!!\r
/\r
\r
+\r
;TABLE OF POINTERS TO THE VITAL STATISTICS THAT ARE STORED IN "STATBK" ON THE DISK.\r
\r
WRSTA9: XWD ,MFDBLK ;LOGICAL BLOCK NUMBER OF MFD RETRIEVAL INFORMATION\r
; NON-SWAPPING SYSTEM\r
>\r
WRSTSZ=.-WRSTA9\r
-\r
+\f\r
;ROUTINE TO READ IN THE FIXED BLOCK OF "VITAL STATISTICS" FROM\r
; THE DISK AND DISTRUBUTE THEM TO THE APPROPRIATE CORE LOCATIONS.\r
\r
JRST RDSTA2 ;ERROR, STATISTICS BLOCK APPARENTLY WAS CLOBBERED.\r
\r
MOVE TAC,[XWD -WRSTSZ,0] ;STORE AWAY THESE IMPORTANT PARAMETERS\r
-RDSTA1; MOVE TAC1,WNZBUF(TAC) ; UNDER CONTROL OF A TABLE IN THE "WRSTAT"\r
+RDSTA1: MOVE TAC1,WNZBUF(TAC) ; UNDER CONTROL OF A TABLE IN THE "WRSTAT"\r
MOVEM TAC1,@WRSTA9(TAC) ; ROUTINE WHICH WRITES OUT THE VITAL\r
AOBJN TAC,RDSTA1 ; STATISTICS BLOCK ONTO THE DISK.\r
\r
POPJ PDP, ;***SUBROUTINE EXIT***........\r
\r
-RDSTA2: MOVEI TAC,RDTM1\r
+\r
+RDSTA2: MOVEI TAC,RDSTM1\r
;PRINT ERROR MESSAGE IF THE VITAL\r
PUSHJ PDP,ICONM ; STATISTICS BLOCK CANNOT BE READ\r
PUSHJ PDP,OPOUT\r
\r
RDSTM1: ASCIZ /VITAL DISK STATISTICS LOST, SUGGEST REFRESHING!\r
/\r
-\r
+\f\r
;ROUTINE TO DETERMINE THE CURRENT SYSTEM'S DISK CAPACITY. I.E., THE NUMBER OF\r
; DISKS ATTACHED TO THE RC-10 DISK SYNCHRONIZER TODAY.\r
\r
; CHECK IN "DSKINT" WILL NOT FAIL SPURIOUSLY.\r
\r
MOVEI TAC,3\r
-CPCT1; PUSH PDP,TAC\r
+CPCT1: PUSH PDP,TAC\r
PUSHJ PDP,WNZRD ;ATTEMPT TO READ FIRST BLOK OF EACH SUCCESSIVE DISK.,\r
JRST CPCT3 ;ERROR\r
POP PDP,TAC\r
POP PDP,LBHIGH ;RESTORE PREVIOUSLY EXISTING VALUE OF THE HIGHEST\r
; LEGAL LOGICAL DISK BLOCK NUMBER.\r
POPJ PDP, ;***SUBROUTINE EXIT***.......\r
+i\r
\r
CPCT3: POP PDP,TAC\r
CONSZ DSK,NRDY ;NON-EXISTENT DISK?\r
; HOWEVER, DISK 0 MUST ALWAYS BE PRESENT.\r
\r
MOVEI TAC,CPCTM1 ;NO, SOME OTHER TYPE OF READ ERROR.\r
- PUSHJ PDP,IOCONM \r
+ PUSHJ PDP,ICONM \r
PUSHJ PDP,OPOUT ;PRINT ERROR MESSAGE\r
POP PDP,LBHIGH\r
JRST CAPCTY ;TRY AGAIN\r
-CPCTM1: ACSIZ /DISK READ ERROR DURING CAPACITY SEARCH INITIALIZATION\r
+CPCTM1: ASCIZ /DISK READ ERROR DURING CAPACITY SEARCH INITIALIZATION\r
/\r
-\r
-\r
+\f\r
;ROUTINE TO ASSURE THAT THE STATUS OF THE WRITE-LOCK SWITCHES ON THE\r
; DISK MAINTENANCE PANEL IS SUCH THAT THEY ARE PROTECTING "LESS THAN 0000".\r
\r
\r
WRITLK: CONI DSK,TAC\r
TLNN TAC,13777 ;BOUNDARY ZERO AND MAINTENANCE-SEGMENT OFF ?\r
- TLNN TAC,<PLGW>B53 ;YES, IS ROTARY SWITCH SET\r
+ TLNN TAC,<PLGSW>B53 ;YES, IS ROTARY SWITCH SET\r
; TO EITHER X UNDER OR OVER(AS OPPOSED\r
; TO UNDER OR X OVER)\r
JRST WRLK8 ;NO. GO PRINT ERROR MESSAGE AND LOOP.\r
JRST WRLK2 ;ERROR\r
POPJ PDP, ;***GOOD EXIT FROM WRITLK SUBROUTINE***.........\r
\r
+\r
WRLK2: MOVEI TAC,WRLKM1\r
CONSZ DSK,WRPE ;WRITE-PROTECTION ERROR ?\r
;YES, PROTECT SWITCH ERRONEOUSLY SET ON "LESS THAN\r
DIS WRITE PROTECTION SWITCHES MUST BE SET TO 0000 AND "LESS THAN",\r
FIX THEM ! !\r
/\r
-\r
+\f\r
;DISK READING ROUTINE FOR USE ONLY DURING ONCE-ONLY CODE.\r
; AVOIDS USING THE MONITOR OUFUFS AND INTERRUPT STRUCTURE.\r
\r
CONSZ DSK,DATERR!DEVERR!SETERR ;ANY ERRORS ?\r
JRST WNZRDX ;YES, GIVE ERROR RETURN.\r
MOVE TAC1,RCXCCW ;NO, BUT CHECK THAT THE FINAL VALUE OF THE\r
- CAMN TAC1,RCXFIX ; CHANNEL CONTROL WORD WAS AS EXCPECTED ALSO.\r
+ CAMN TAC1,RCXFIN ; CHANNEL CONTROL WORD WAS AS EXCPECTED ALSO.\r
AOS (PDP) ;***GOOD RETURN***........\r
WNZRDX: POPJ PDP, ;ERROR RETURN,\r
\r
\r
+\r
+\r
+\r
+\r
+\r
;DISK WRITING ROUTINE FOR USE ONLY DURING ONCE-ONLY CODE.\r
; AVOIDS USING THE MONITOR QUEUES AND INTERRUPT STRUCTURE.\r
\r
;ON ENTRY TO THIS SUBROUTINE, TAC CONTAINS THE LOGICAL BLOCK NUMBER OF THE DISK\r
; BLOCK WHICH IS TO BE WRITTEN ONTO THE DISK FROM THE ONCE-ONLY DISK BUFFER AREA.\r
\r
-WNZWR: CONO DSK,DATERR!DEVERR!SETERR!RESCIG ;CLEAR THE DISK SYNCHRONIZER.\r
+WNZWR: CONO DSK,DATERR!DEVERR!SETERR!RESETB ;CLEAR THE DISK SYNCHRONIZER.\r
CONSZ DSK,BUSYBT!DONEFLG\r
JRST WNZWR ;DON'T PROCEED UNLESS THAE CLEAR WORKED.\r
\r
MOVEM TAC,LBSAVE ;SAVE LOGICAL BLOCK NUMBER IN CASE AN ERROR RETURN\r
; MUST BE TAKEN FROM THE "REFRESH" SUBROUTINE.\r
- PUSH POP,DSKFDG ;SAVE THIS ISNTRUCTION FROM "DSKINT".\r
+ PUSH PDP,DSKFDG ;SAVE THIS ISNTRUCTION FROM "DSKINT".\r
MOVE TAC1,[HRRZI TAC,0] ;NOW TAMPER WITH THAT SAVED LOCATION SO\r
MOVEM TAC1,DSKFDG ; THAT DSKINT WILL NOT ENABLE ANY INTERRUPT CHANNEL.\r
- MOVE TAC1,[XWD -200,WNZPUT-1]\r
+ MOVE TAC1,[XWD -200,WNZBUF-1]\r
PUSHJ PDP,DFWRT ;CALL DEVICE-DEPENDENT ROUTINE IN "DSKINT" DIRECTLY.\r
\r
JRST WNZRDC ;THE REMAINDER OF THE WRITE ROUTINE IS IDENTICAL\r
; TO THE READ ROUTINE\r
\r
-;SUBROUTINE TO WATCH FOR THE DONE FLAG TO COME ON AND TIME OUT IF\r
+\f;SUBROUTINE TO WATCH FOR THE DONE FLAG TO COME ON AND TIME OUT IF\r
; IT DOESN'T COME UP SOON ENOUGH (SAY 5 SEC OR SO).\r
\r
WNZWAT: MOVE TAC,[^D1000000] ;AT MOST ONE MILLION TIMES THRU THE CONSZ-SOJG LOOP\r
WATMSG: ASCIZ /DISK HUNG.\r
/\r
\r
+\r
;SUBROUTINE TO SET SPECIFIED BITS IN A SAT BLOCK WHILE FORMING IT IN WNZBUF\r
\r
;ENTRY CONDITIONS -- C(TAC) = FIRST BIT NUMBER TO SET (NUMBERED BEGINNING AT 0)\r
STWNZ2: SOJN AC1,STWNZ1\r
POPJ PDP, ;SUBROUTINE EXIT...........\r
\r
+\r
;SUBROUTINE TO CLEAR THE ONCE-ONLY OUTPUT BUFFER, WNZBUF\r
WNZCLR: SETZM WNZBUF\r
MOVE TAC,[XWD WNZBUF,WNZBUF+1]\r
BLT TAC,WNZBUF+177\r
POPJ PDP, ;SUBROUTINE EXIT...........\r
-\r
+\f\r
;SUBROUTINE TO MASK THE TIME, DATE, AND DATA MODE (=14 FOR BINARY MODE0 INTO ACCUMU-\r
; LATOR TAC IN THE FORMAT USED IN WORD 3 OF A DISK RETRIEVAL INFORMATION BLOCK.\r
\r
-MDTMDT: PUSH PDP,TAC\r
+MDTMOT: PUSH PDP,TAC\r
MOVE TAC,TIME ;GET TIME IN JIFFIES.\r
IDIVI TAC,JIFMIN ;CONVERT TO MINUTES\r
LSH TAC,^D12\r
> ;END OF REFRESH PROCEDURE FOR THE RD10 DISK.\r
\r
> ;CLOSE AN EVEN EARLIER FTDISK CONDITIONAL.\r
-\r
-INTERNAL FTCHECK\r
+\fINTERNAL FTCHECK\r
IFN FTCHEC,<\r
\r
EXTERNAL CHKREG,CHKEND,CHECK,MONPTR,MONSUM\r
>\r
\r
ONCEND: END\r
-\f\r