MOVSI T,JOBPFI ;SET LH OF XJBPFI WITH JOBPFI\r
MOVEM T,XJBPFI ;LOADER DORES NOT HANDLE GLOBALS IN LH\r
IFN FT2REL,<\r
- JSP TSTREG ;GO TEST IF TWO RELOC REGISTERS EXIST\r
+ JSR TSTREG ;GO TEST IF TWO RELOC REGISTERS EXIST\r
>\r
;HIGHEST LOC. IN JOB AREA PROTECTED FROM IO\r
\f;MOVE SYMBOL TABLE UP IN MEMORY\r
HRL TAC,TAC1 ;XWD LENGTH,LENGTH+FIRST ADDRESS \r
SUBI DAT,1(TAC) ;NEW LAST+1-OLD LAST+1\r
HRRM DAT,STO1 ;DIST, TO MOVE\r
- MOVE TAC1,UUO ;L-N,FIRST ADD.\r
+ MOVE TAC1,UUO ;-N,FIRST ADD.\r
ADDI TAC1,1(DAT) ;FROM NEW S.T. POINTER\r
MOVEM TAC1,DDTSYM ;STORE IN LOWER CORE\r
MOVE TAC1,-1(TAC)\r
ANDI DAT,7 ;MASIC OUT NUMBER OF DDB'S\r
LSH DAT,1 ;SHIFT LEFT ONE SO MATCH PI LOCATIONS\r
JUMPE DAT,NOPICH ;DOES THIS DEVICE HAVE A PI CHANNEL (PTY)?\r
- MOVE DAT,ITEM ;YES, PICK UP JSR CH'N FROM LOWER CORE\r
+ MOVE ITEM,40(DAT) ;YES, PICK UP JSR CH'N FROM LOWER CORE\r
INTLP1: MOVE DAT,ITEM ;SAVE IT IN DAT (EITHER A JRST DEV'NT OR\r
; JEN @CH'N\r
MOVE ITEM,1(DAT) ;PICK UP INSTR. FOLLOWING INTERRUPT CONSO\r
-\r
- TLNN ITEM,00740 ;IS IT A JEN?\r
+ TLNN ITEM,000740 ;IS IT A JEN?\r
JRST INTLP1 ;NO, KEEP LOOKING\r
MOVE TAC1,INTTAB(TAC) ;YES, LAST DEVICE SO FAR, GET DEV'NT\r
HRLI TAC1,(JRST) ;MAKE JRST INSTR.\r
MOVEM TAC1,1(DAT) ;CHANGE JEN @CH'N TO JRST DEV'NT\r
- MOVEM ITEM,1(TAC) ;MAKE DEV'NT+1 BE JEN @CH'N\r
+ MOVEM ITEM,1(TAC1) ;MAKE DEV'NT+1 BE JEN @CH'N\r
NOPICH: AOBJN TAC,.+1 ;PICKUP EVERY OTHER WORD?\r
AOBJN TAC,INTLOP ;ANY MOVE INTERRUPT SERVICE ROUTINES?\r
ALRCHN:\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
\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
CONO APR,ILM ;CLEAR APR FLAGS AGAIN\r
MOVEI TAC,AND2RG ;=0 IF SOFTWARE CANNOT HANDLE 2 SEG(NULSEG LOADED)\r
ANDM TAC,TWOREG ;=-1 IF IT CAN(SEGCON LOADED)\r
- ;TWOSEG SET TO AND OF SOFTWARE AND HARDWARE CAPABILITES\r
+ ;TWOSEG SET TO AND OF SOFTWARE AND HARDWARE CAPABILITIES\r
MOVNI TAC,SEGN ;SET LH OF POINTER TO FIRST SEG IN JBTXX TABLES\r
HRLI TAC,JOBN ;SET RH OF POINTER TO FIRST HIGH SEG\r
;THIS MUST BE DONE HERE BECAUSE SEGPTR APPEARS IN FIRST\r
-\r
; WHICH BUILD FORBITS FROM HAVING EXTERNALS\r
MOVSM TAC,SEGPTR ;POINTER USED FOR AOBJN LOOPS\r
CONO PI,10000 ;CLEAR PI SYSTEM\r
\f\r
;ONCE ONLY CODE - OPERATOR SETUP DIALOGUE\r
\r
+\r
IFN FTRC10, <\r
ENTRY RCXWNZ ;THIS SYMBOL IS SOLELY TO PERMIT THE SYSTEM\r
RCXWNZ: ; BUILDER TO RETRIEVE THE CORRECT BINARY FILE.\r
IFE FTTTYSER,<\r
DEFINE SETTYO <MOVE DAT,LINEP>\r
DEFINE TYPE <IDBP CHREC,DAT>\r
-\r
DEFINE NEXTC <ILDB CHREC,TAC>>\r
IFN FTTTYSER,<\r
DEFINE SETTYO <PUSHJ PDP,OTSET>\r
IMULI TAC,JIFMIN ;JIFFIES SINCE MIDNIGHT\r
MOVEM TAC,TIME ;TIME=JIFFIES SINCE MIDNIGHT\r
\r
+\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
\r
EXTERNAL CNTDB\r
\r
-ONCE3: PUSHJ PDP,SYSSIZ ;SAVE CURRENT VALUE\r
- JSP TAC,CNTDB ;UPDATE SYSSIZ BY SPACE USED\r
+ONCE3: PUSH 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
\f;PRINT OCTAL SIZE OF MONITOR\r
\r
MOVEI TAC,EXECIS\r
; IF NOT PATCHED, LEAVE COMMON'S VALUE\r
ONCE5A:\r
\r
+\r
INTERNAL FTDISK\r
IFN FTDISK,<\r
PUSHJ PDP,REF ;GO THROUGH THE REFRESH DIALOG.\r
>\r
\r
+\r
QUICK: ;THIS IS THE SHORT-CUT EXIT TO BY-PASS MOST OF THE DIALOGUE\r
\r
+\r
INTERNAL FTCHECK\r
\r
IFN FTCHECK,<\r
PUSHJ PDP,OK ;CHECKSUM MONITOR AND SAVE THE ANSWER.\r
>\r
\r
+\r
JRST @ONCE ;***EXIT FROM THE "ONCE-ONLY CODE"***\r
\fIFN FTDISK,<\r
EXTERNAL OCTIN,MFDBLK,SATXWD,NUMBLK,SYSPP,REFLAG\r
MOVEI TAC,REF4M ;TYPE LOGICAL DISK ADDRESS OF MFD RETR, INFO\r
PUSHJ PDP,ICONM\r
PUSHJ PDP,OPOUT\r
-\r
PUSHJ PDP,GETLIN\r
JRST REF2\r
IFN FTTTYSER,<PUSHJ PDP,SKIPS>\r
PUSHJ PDP,REFRES ;REFRESH.\r
JRST REF5 ;ERROR\r
\r
+\r
MOVEI TAC,REF6M ;REFRESHING SUCCESSFULLY COMPLETED !\r
PUSHJ PDP,ICONM\r
PUSHJ PDP,OPOUT ;TYPE "REFRESHED !"\r
\r
+\r
MOVE TAC,SYSPP\r
MOVEM TAC,REFLAG ;TO PERMIT AUTOMATIC LOG-IN UNDER\r
; PROJ-PROG NUMBER [1,1] EVEN\r
PUSHJ PDP,ICONM ; ON THE NEWLY REFRESHED DISK.\r
PUSHJ PDP,OPOUT\r
POPJ PDP,\r
-\r
\fIFE FTRC10, <\r
REF4: POP PDP,TAC1\r
MOVEI TAC,REF5M\r
\r
\r
REF1M: ASCIZ /DO YOU WANT TO REFRESH THE DISK ? (Y OR CR)\r
+\r
/\r
-REF2M: ASCIZ /ARE YOU SURE(Y OR CR)?\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
ADD TAC,[XWD 070000,0] ;NO, BACK UP BYTE POINTER\r
TLNE TAC,400000 ;FINISHED THIS WORD YET?\r
ADD TAC,[XWD 347777,-1] ;YES, BACK UP ADDRESS>\r
- MOVEI CHREC,134\r
+ MOVEI CHREC,134 ;OUTPUT BACK SLASH\r
PUSHJ PDP,TYO\r
SOJA ITEM,GET1\r
\r
IO CONFIGURATION\r
/\r
OPRM: ASCIZ /\r
-TYPE NAME OF OPR CONSOLE.\r
+TYPE NAME OF OPR CONSOLE\r
/\r
\fSYSM: ASCIZ /\r
DO YOU WANT SYSMAK (TYPE Y IF YES, CR IF NO)?\r
/\r
CRLFMS: ASCIZ /\r
/\r
+\r
\f;INITIALIZE SAT SEARCH ENTRIES\r
\r
;THIS "DFWUNS" ROUTINE IS CALLED BY MANDATORY ONCE ONLY CODE(LINKSR)\r
DFWUNS:\r
IFN FTRC10, <\r
PUSHJ PDP,WRITLK ;FORCE THE WRITE-LOCK SWITCH SETTINGS TO BE ZERO.\r
-\r
PUSHJ PDP,RDSTAT ;READ VITAL DISK STATISTICS BLOCK, STORE PARAMETERS\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
- SETTYO ;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
+\r
/\r
PUSHJ PDP,OPOUT ;START TTY\r
PUSHJ PDP,REF ;GO THROUGH THE REFRESH DIALOGUE\r
CAIL DAT,NUMBIT ;BLOCK FULL?\r
JRST SETS8\r
PUSHJ PDP,DFGETF ;NO. GET A FREE BLOCK\r
-\r
PUSHJ PDP,SETS7 ;WRITE\r
PUSHJ PDP,SETFRE ;FREE THE BLOCK\r
>\r
\r
+\r
SETS5B: MOVEI TAC1,SENTSZ ;PREPARE TO BUMP SATPTR\r
POP PDP,TAC\r
AOBJN TAC,SETS1 ;DO ALL SAT BLOCKS\r
\r
+\r
IFE FTRC10, <\r
JRST SAT05 ;RETURN\r
>\r
\r
+\r
IFN FTRC10, <\r
HRRZ TAC,SATPTR\r
SETS5X: CAIL TAC,SATTOP\r
\fSETS6: POP PDP,TAC ;ERROR, TRY AGAIN\r
JRST SETS2\r
\r
+\r
IFE FTRC10, <\r
\r
;WRITE-LOCK DETERMINATION ON THE OLD PDP-6 (DATA PRODUCTS) DISK --\r
HRRM TAC,DSKBUF(DEVDAT) \r
JRST SETS5B\r
\r
+\r
SETS9: BLOCK 204\r
\r
> ;CLOSE THE IFE FTRC10\r
AOS TAC ;SAT RETREIVAL INFORMATION\r
ADD TAC,MFDBLK\r
SETZB IOS,DEVIOS(DEVDAT)\r
-\r
MOVE TAC1,[XWD -200,SATRET]\r
MOVEM TAC1,DSKBUF(DEVDAT)\r
PUSHJ PDP,MQOUT\r
XWD 001777,-1\r
ONES 200+NULBLK-.\r
\r
+\r
+\r
> ;END OF THE REFRESHER FOR THE OLD PDP-6 DISK.\r
\f\r
IFN FTRC10, <\r
;BITS 26 - 27 DISK SELECTED BY BITS 18-19 OF LAST CONO\r
;BITS 28 - 35 CURRENT SECTOR POSITION OF SELECTED DISK (FOR LATENCY OPTIMIZATION!)\r
\r
+\r
;DATAO FORMAT FOR THE MODEL RC-10 DISK SYNCHRONIZER --\r
\r
;BITS 00 - 17 DISK ADDRESS ELECTION\r
;BITS 18 - 23 INITIAL PARITY REGISTER SETTING 9ZERO EXCEPT FOR DIAGNOSTIC PROGRAMS)\r
DDSKPE=1B24 ;DISABLE DISK PARITY ERROR STOP\r
DCHNPE=1B25 ;DISABLE CHANNEL DATA PARITY ERROR STOP\r
-WRBIT=1B16 ;SET MEANS WRITE ON DISK, RESET MEANS READ FROM DISK\r
+WRBIT=1B26 ;SET MEANS WRITE ON DISK, RESET MEANS READ FROM DISK\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
CAIG TAC1,STATBK ;SWAPPING AREA MUST NOT OVERLAY THE\r
JRST RFRSHE ; VITAL STATISTICS BLOCK.\r
>\r
- IDIVI TAC1,NUMBLK\r
+ IDIVI TAC,NUMBLK\r
MOVN TAC1,TAC ;SET SATXWD TO SHOW ONLY THE NUMBER OF\r
HRLM TAC1,SATXWD ; SAT BLOCKS ACTUALLY IN EXISTENCE.\r
HRRZ TAC1,MFDBLK\r
POP PDP,TAC ; DIALOGUE TO AK THE PARAMETER SPECIFICATION\r
JRST REF6 ; QUESTIONS AGAIN.\r
\r
-RFSHME: ASCIZ /PARAMETER SPECIFICATION ERROR. TRY AGAIN.\r
+RFSHME: ASCIZ /PARAMETER SPECIFICATION ERROR. TRY AGAIN.\r
+\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
-\r
+\f\r
;NEXT WRITE THE MFD (MASTER FILE DIRECTORY) ONTO THE DISK\r
\r
PUSHJ PDP,WNZCLR ;CLEAR THE OUTPUT BUFFER\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
- \r
JRST REFERR ;ERROR\r
\r
MOVE TAC,[XWD -200,WNZBUF]\r
REFST6: POP PDP,TAC ;LOOP THROUGH THE WHOLE SET OF SPECIAL BLOCKS\r
AOBJN TAC,REFST5 ; WHICH MUST BE MARKED UNAVAILABLE.\r
\r
-REFST7: MOVE TAC,[XWD -200,WNZBUF]\r
-\r
+REFST7: MOVE TAC,[XWD -200,WNZBUF] \r
PUSHJ PDP,CHKSUM ;COMPUTE CHECKSUM\r
MOVE TAC,SATPTR\r
HRRZM TAC1,1(TAC) ;STORE IT TEMPORARILY IN THE SATENT TABLE.\r
\f\r
;ROUTINE TO WRITE THE FIXED BLOCK OF VITAL STATISTICS ONTO THE DISK.\r
\r
+\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
XWD 0,LOWSWP ;LOWSWP DOES DOUBLE DUMMY DUTY IN\r
; NON-SWAPPING SYSTEM\r
>\r
+\r
WRSTSZ=.-WRSTA9\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
+\r
RDSTAT: MOVEI TAC,STATBK\r
PUSHJ PDP,WNZRD ;READ IN THE VITAL STATISTICS BLOCK.\r
JRST RDSTA2 ;ERROR\r
JRST RDSTAT ;NOW TRY AGAIN.\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
MOVEM TAC,LBHIGH ;TEMPORARILY CHANGE THIS VALYUE SO THAT THE VALIDITY\r
; CHECK IN "DSKINT" WILL NOT FAIL SPURIOUSLY.\r
\r
- MOVEI TAC,3\r
+ MOVEI TAC,0\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,LBHIGH\r
JRST CAPCTY ;TRY AGAIN\r
CPCTM1: ASCIZ /DISK READ ERROR DURING CAPACITY SEARCH INITIALIZATION\r
+\r
/\r
\f\r
;ROUTINE TO ASSURE THAT THE STATUS OF THE WRITE-LOCK SWITCHES ON THE\r
MOVE TAC,[252525252525]\r
MOVEM TAC,WNZBUF\r
MOVE TAC,[XWD WNZBUF,WNZBUF+1]\r
-\r
BLT TAC,WNZBUF+177\r
MOVEI TAC,0\r
PUSHJ PDP,WNZWR ;WRITE PATTERN IN BLOCK 0.\r
JRST WRITLK ;GO TRY AGAIN\r
\r
WRLKM1: ASCIZ /DISK BLOCK 0 WRITE ERROR DURING WRITE-LOCK CHECK.\r
+\r
/\r
WRLKM2: ASCIZ /"MAINTENANCE SEGMENT" SWITCH MUST BE OFF. AND\r
DISK 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
POPJ PDP, ;SUBROUTINE EXIT............\r
\r
\r
+\r
;ERROR EXIT FROM "REFRESH" WHEN A BAD WRITE ON THE DISK OCCURS DURING REFREHSING.\r
\r
REFER1: POP PDP,TAC ;CORRECT PDP IF EXTRA PUSH HAD OCCURRED.\r
-\r
REFERR: MOVE TAC,LBSAVE ;GET BLOCK NUMBER FOR THE ERROR MESSAGE AT REF4.\r
POPJ PDP, ;THIS NO-SKIP RETURN RE-ENTERS THE REFRESH DIALOGUE.\r
\r