Google
 

Trailing-Edge - PDP-10 Archives - AP-4178E-RM - swskit-sources/filini.mac
There are 50 other files named filini.mac in the archive. Click here to see a list.
;<3A.MONITOR>FILINI.MAC.7, 11-Aug-78 10:34:25, Edit by ENGEL
;FIX THE PROBLEM WITH THE MISSPELLING OF DIRECOTRY
;<1BOSACK>FILINI.MAC.1004, 19-Jun-78 17:18:04, EDIT BY BOSACK
;<1BOSACK>FILINI.MAC.1003, 15-Jun-78 22:10:59, EDIT BY BOSACK
;<1BOSACK>FILINI.MAC.1002,  5-Jun-78 21:35:38, EDIT BY BOSACK
;<1BOSACK>FILINI.MAC.1001,  5-Jun-78 20:45:44, EDIT BY BOSACK
;<1BOSACK>FILINI.ORG.4,  5-Jun-78 18:33:18, EDIT BY BOSACK
;<3A.MONITOR>FILINI.MAC.3, 22-Feb-78 09:27:59, EDIT BY MILLER
;IF DELDF IN IDXINI FAILS, DON'T BUGHLT
;<3A.MONITOR>FILINI.MAC.2,  3-Feb-78 19:22:24, EDIT BY MILLER
;MAKE TEST OF EXADRF CORRECT
;<3A.MONITOR>FILINI.MAC.1,  3-Feb-78 18:22:41, EDIT BY MILLER
;CHANEG ENTRY NAME FOR FILINE TO EFILIN
;<3-MONITOR>FILINI.MAC.217,  7-Nov-77 13:01:50, EDIT BY KIRSCHEN
;MORE COPYRIGHT UPDATING...
;<3-MONITOR>FILINI.MAC.216, 12-Oct-77 13:46:16, EDIT BY KIRSCHEN
;UPDATE COPYRIGHT FOR RELEASE 3
;<3-MONITOR>FILINI.MAC.215,  2-Sep-77 14:46:01, EDIT BY KIRSCHEN
;IN IDXINI, DO MOVE ON MXDIRN INSTEAD OF MOVEI
;<3-MONITOR>FILINI.MAC.214, 11-Aug-77 09:38:51, EDIT BY HURLEY
;ADD THE CREATION OF <NEW-SYSTEM> AND <NEW-SUBSYS> FOR RELEASE PROCEDURES
;<3-MONITOR>FILINI.MAC.213, 29-Jul-77 10:10:40, EDIT BY HURLEY
;SPEED UP WILD CARD DIRECTORY LOOKUPS
;<3-MONITOR>FILINI.MAC.212, 27-Jul-77 14:24:20, EDIT BY HALL
;MAKE CPYBAK CLEAR FB%DIR IN BACKUP-COPY-OF-ROOT-DIRECTORY
;<3-MONITOR>FILINI.MAC.211, 21-Jul-77 17:33:14, Edit by MACK
;DEFAULT ACCT IS "OPERATOR" AGAIN
;<3-MONITOR>FILINI.MAC.210, 21-Jul-77 17:10:36, EDIT BY HURLEY
;FIX TYPO IN PREVIOUS EDIT
;<3-MONITOR>FILINI.MAC.209, 21-Jul-77 16:51:16, EDIT BY HURLEY
;TCO 1812 - TAKE OUT INITIALIZING OF STRLDN BECAUSE FSIINI DOES IT
;<3-MONITOR>FILINI.MAC.208, 21-Jul-77 16:39:44, EDIT BY HALL
;TCO 1812 - RENAME CREIDX TO FNDIDX
;<3-MONITOR>FILINI.MAC.207, 20-Jul-77 20:12:31, EDIT BY HALL
;TCO 1812 - MADE NORMAL STARTUP NOT REBUILD IDXTAB
;<3-MONITOR>FILINI.MAC.206, 20-Jul-77 10:59:25, Edit by MACK
;TCO 1822 - DEFAULT ACCOUNT SET IN JBFINI CHANES FROM "OPERATOR"
; TO "NOT-LOGGED-IN"
;<3-MONITOR>FILINI.MAC.205, 12-Jul-77 13:19:32, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.204, 12-Jul-77 00:18:22, Edit by MCLEAN
;MAKE MXDIRN A CORE LOCATION
;<3-MONITOR>FILINI.MAC.203,  6-Jul-77 15:36:42, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.202,  5-Jul-77 16:26:20, Edit by MCLEAN
;CHANGE INITBT TO USE EXADFL INSTEAD OF EXADF1
;<3-MONITOR>FILINI.MAC.201,  2-Jul-77 21:54:51, Edit by MCLEAN
;MORE FILINE CREATION
;<3-MONITOR>FILINI.MAC.200,  2-Jul-77 18:47:51, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.199,  1-Jul-77 14:51:30, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.198,  1-Jul-77 14:47:48, Edit by MCLEAN
;ADD FILINE FOR EXTENDED DIRECTORY SUPPORT
;<3-MONITOR>FILINI.MAC.197, 30-Jun-77 11:44:09, Edit by HESS
;ADD INIT OF USER NAME STRING AND ACCT STRING TO JFBINI
;<3-MONITOR>FILINI.MAC.196, 28-Jun-77 17:06:10, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.195, 27-Jun-77 14:32:06, Edit by MCLEAN
;MOVE BITTABLE TO NON/ZERO SECTION
;<3-MONITOR>FILINI.MAC.193, 27-Jun-77 13:41:24, Edit by HESS
;REMOVE REFS TO ACCTPT

;<2-PERF>FILINI.MAC.1, 26-May-77 14:41:03, EDIT BY HURLEY
;ADDED CONNECTED DIRECTORY NAME STRING TO JSB
;<1BOSACK>FILINI.MAC.191, 31-May-77 00:48:53, EDIT BY BOSACK
;<1BOSACK>FILINI.MAC.190, 30-May-77 19:50:10, EDIT BY BOSACK
;<1BOSACK>FILINI.MAC.189, 24-May-77 22:30:24, EDIT BY BOSACK
;<3-MONITOR>FILINI.MAC.187,  6-May-77 14:04:26, EDIT BY KIRSCHEN
;TCO 1796 - DO NOT BUGHLT WHEN MOUNTING BAD STR'S
;<3-MONITOR>FILINI.MAC.186,  2-May-77 20:31:52, EDIT BY BOSACK
;<3-MONITOR>FILINI.MAC.185,  6-Apr-77 03:04:35, Edit by MCLEAN
;ADD EXADF1 FOR SM10
;<3-MONITOR>FILINI.MAC.184,  5-Apr-77 18:15:12, EDIT BY MILLER
;REFERENCE IDX TABLE BY IDXFIL
;<3-MONITOR>FILINI.MAC.183, 29-Mar-77 14:29:24, EDIT BY HALL
;CHANGE MS%ASG TO MI%ASG
;<3-MONITOR>FILINI.MAC.182, 28-Feb-77 04:35:09, EDIT BY CROSSLAND
;TCO 1742 - ADD CALL TO NETINI FOR ARPA SUPPORT
;<3-MONITOR>FILINI.MAC.181,  8-Feb-77 01:43:57, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.179,  5-Feb-77 01:37:58, EDIT BY BOSACK
;REMOVE DTFLG CONDITIONALS
;ADD CODE TO FIX OLD ROOTDIR SUBDIR COUNTS ON IDX INIT
;<3-MONITOR>FILINI.MAC.178,  5-Feb-77 01:20:35, EDIT BY BOSACK
;<3-MONITOR>FILINI.MAC.177,  4-Feb-77 15:16:14, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.176, 29-Jan-77 18:08:05, Edit by MCLEAN
;TCO 1720 ADD BOOTSTRAP.BIN FILE
;<3-MONITOR>FILINI.MAC.174, 24-Jan-77 16:07:36, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.173, 21-Jan-77 17:19:33, EDIT BY BOSACK
;<3-MONITOR>FILINI.MAC.172, 21-Jan-77 17:18:07, EDIT BY BOSACK
;ADD SUPERIOR DIR ARGUMENT TO SETIDX CALLS
;<3-MONITOR>FILINI.MAC.171, 21-Jan-77 00:39:33, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.170,  7-Jan-77 18:41:36, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.169, 27-Dec-76 17:32:12, EDIT BY HURLEY
;<3-MONITOR>FILINI.MAC.168, 27-Dec-76 12:52:35, Edit by HESS
;TCO 1689 - FIX INITIAL QUOTA INFO (FILCRD)
;<3-MONITOR>FILINI.MAC.167, 17-Dec-76 00:25:58, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.167, 17-Dec-76 00:25:47, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.166,  4-Dec-76 22:48:16, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.165,  4-Dec-76 16:57:10, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.164, 28-Nov-76 12:45:48, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.163, 27-Nov-76 03:14:14, Edit by MCLEAN
;<3-MONITOR>FILINI.MAC.162, 26-Nov-76 16:18:09, Edit by MCLEAN
;TCO 1669 EXTENDED ADDRESSING
;<2-MONITOR>FILINI.MAC.161, 16-Nov-76 17:45:56, Edit by HESS
;CHANGE TO FILRFS AND IDXINI TO FIX FILES ON DISK
;<2-MONITOR>FILINI.MAC.160, 16-Nov-76 14:36:32, Edit by MACK
;TEST RIGHT HALF OF 36-BIT DIRECTORY DESIGNATOR AFTER CRDIR
;<2-MONITOR>FILINI.MAC.159,  9-Nov-76 11:25:56, EDIT BY KIRSCHEN
;MAKE NEWIB GIVE FAIL RETURN INSTEAD OF BUGHLT'ING
;<2-MONITOR>FILINI.MAC.158,  5-Nov-76 10:44:56, EDIT BY KIRSCHEN
;ADD BUGCHK FOR NEW CALLING SEQUENCE FOR FIXFES
;<2-MONITOR>FILINI.MAC.157,  4-Nov-76 11:41:13, EDIT BY HALL
;MADE FILREC RELEASE THE OFN FOR ROOT-DIRECTORY SINCE THE CALLER
; WILL CALL SETRDO TO GET IT AGAIN
;<2-MONITOR>FILINI.MAC.156,  1-Nov-76 20:48:04, EDIT BY HELLIWELL
;MAKE FILREC INTERNAL
;<2-MONITOR>FILINI.MAC.155,  1-Nov-76 15:16:55, EDIT BY KIRSCHEN
;CHANGE FILREC TO GIVE FAIL RETURN ON FAILURE, INSTEAD OF BUGHLT
;<2-MONITOR>FILINI.MAC.154,  1-Nov-76 10:49:22, EDIT BY KIRSCHEN
;CHANGE MS%MSG TO MI%MSG
;<2-MONITOR>FILINI.MAC.153, 29-Oct-76 09:34:37, Edit by HESS
;CHANGE STR INITING FORK TO JOB #
;<2-MONITOR>FILINI.MAC.152, 27-Oct-76 12:01:47, EDIT BY HALL
;IF WRTBTB FAILS AND ERROR IS MSTRX6, DON'T BUGHLT
;<2-MONITOR>FILINI.MAC.151, 26-Oct-76 09:41:31, EDIT BY KIRSCHEN
;MOVE CALL TO MNTBTB FROM CREIDX TO MSTR JSYS
;<2-MONITOR>FILINI.MAC.150, 23-Oct-76 16:34:52, EDIT BY HALL
;MOVED CALL TO MNTBTB FOR PS INTO FILIN1 PATH, REMOVED FROM CREIDX
;CALLED GTFESZ TO GET SIZE OF FRONT END FILE SYSTEM IF NOT GIVEN AT
; FSIINI TIME
;<2-MONITOR>FILINI.MAC.149, 22-Oct-76 13:20:36, EDIT BY HALL
;BUG FIX IN PREVIOUS EDIT
;<2-MONITOR>FILINI.MAC.148, 21-Oct-76 15:56:54, EDIT BY HALL
;WHEN MNTBTB FAILS, SET SF%BTE, SF%CDE AND MS%ASG,CLEAR D1%INI, AND CALL CRTBTB
;IF MS%ASG IS SET, DON'T CALL CHKBT OR CHKBAK
;<2-MONITOR>FILINI.MAC.147, 20-Oct-76 14:46:29, EDIT BY KIRSCHEN
;REMOVE MAKIDX ROUTINE
;<2-MONITOR>FILINI.MAC.146, 20-Oct-76 10:51:00, EDIT BY KIRSCHEN
;CLEAR CURUC AFTER SETTING UP OFN OF INDEX TABLE
;<2-MONITOR>FILINI.MAC.145, 20-Oct-76 10:04:51, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.144, 20-Oct-76 09:59:41, EDIT BY KIRSCHEN
;MAKE INDEX TABLE FILE NOT BE DUMP-ABLE
;<2-MONITOR>FILINI.MAC.143, 19-Oct-76 15:41:39, EDIT BY HALL
;TEMPORARY BUG FIX IN FILINI
;<2-MONITOR>FILINI.MAC.142, 18-Oct-76 19:18:33, EDIT BY HURLEY
;MAKE IDXINI ZERO IDXTAB BEFORE BUILDING IT
;<2-MONITOR>FILINI.MAC.141, 18-Oct-76 12:12:21, EDIT BY KIRSCHEN
;MAKE CREIDX OPEN INDEX TABLE FILE THAWED; UPDATE BACKUP ROOT-DIR ON CREATION
;<2-MONITOR>FILINI.MAC.140, 16-Oct-76 10:22:40, EDIT BY HALL
;CLEANUP OF FILINI CODE TO HANDLE PS ONLY, HANDLE FAILURE OF CHKBT
;<2-MONITOR>FILINI.MAC.139, 14-Oct-76 11:14:16, EDIT BY KIRSCHEN
;PROVIDE FOR FAIL RETURN ON CALL TO FEFSYS; PROVIDE # OF PAGES TO ALLOCATE.
;<2-MONITOR>FILINI.MAC.138, 11-Oct-76 10:24:44, EDIT BY KIRSCHEN
;UNDO EFFECT OF LARGE COMMENT BELOW (FILINI.MAC.134); INSTEAD, SET
; STIDX WHEN THE OFN OF THE INDEX TABLE FILE HAS BEEN SET UP.
;<2-MONITOR>FILINI.MAC.137,  8-Oct-76 17:39:29, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.136,  8-Oct-76 10:25:05, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.135,  7-Oct-76 15:24:42, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.134,  7-Oct-76 15:15:40, EDIT BY KIRSCHEN
;CHANGED CREIDX TO MAKE INDEX TABLE A FILE, STILL INITIALIZED ON EVERY
; STRUCTURE MOUNT.  ALSO, THE MOUNTING OF THE BIT TABLE WAS MOVED TO
; CREIDX, BECAUSE OF A CHICKEN-AND-EGG DILEMNA: NAMELY, IF NO INDEX FILE
; EXISTS, AN OPENF MUST BE DONE TO CREATE THE INDEX BLOCK FOR THE FILE;
; THIS REQUIRES THAT THE BIT TABLE BE MOUNTED, WHICH IN TURN REQUIRES THAT
; THE INDEX TABLE BE MAPPED (WHEN THE GTJFN ON THE BIT TABLE FILE IS DONE.)
; BECAUSE THE GTJFN FOR THE INDEX FILE IN CREIDX ALREADY REQUIRED THAT THE
; SYSTEM BE FOOLED INTO THINKING THAT THE INDEX FILE WAS ALREADY MAPPED,
; THE CALL TO MNTBTB WAS PLACED HERE.  SIMILAR MACHINATIONS WERE PERFORMED
; ON THE SYSLOD PATH.
;<2-MONITOR>FILINI.MAC.133, 29-Sep-76 15:46:32, Edit by HESS
;REMOVE REFERENCES TO JSSTR
;<2-MONITOR>FILINI.MAC.132, 23-Sep-76 14:46:09, EDIT BY HALL
;ADDED UNLOCK OF JSSTLK IN JBFINI
;<2-MONITOR>FILINI.MAC.131, 21-Sep-76 12:16:12, EDIT BY HALL
;MADE FILIN1 PASS STRUCTURE NUMBER TO CHKBAK
;<2-MONITOR>FILINI.MAC.130, 20-Sep-76 15:05:18, EDIT BY KIRSCHEN
;ASSIGN ENOUGH SPACE TO HOLD FILE NAME IN CREBAK
;<2-MONITOR>FILINI.MAC.129,  7-Sep-76 16:21:46, EDIT BY MILLER
;make psnam be a core location
;<2-MONITOR>FILINI.MAC.128,  2-Sep-76 16:17:50, EDIT BY HALL
;CHANGED INISTR TO FORCE STRUCTURE 0 TO HAVE A NAME OF PS IN DEVNAM
;<2-MONITOR>FILINI.MAC.127, 20-Aug-76 15:35:51, EDIT BY HURLEY
;<2-MONITOR>FILINI.MAC.126, 18-Aug-76 17:04:22, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.125, 18-Aug-76 16:52:51, EDIT BY KIRSCHEN
;FIX CPYBAK TO DO GTJFN OF FILE ON CORRECT STRUCTURE
;<2-MONITOR>FILINI.MAC.124, 18-Aug-76 14:48:35, EDIT BY KIRSCHEN
;<1KIRSCHEN>FILINI.MAC.2, 11-Aug-76 11:10:26, EDIT BY KIRSCHEN
;MAKE FILCRD DO NEW FORM OF CRDIR; FIX CPYBAK TO WORK ON ANY STRUCTURE
;<2-MONITOR>FILINI.MAC.123,  8-Aug-76 21:27:08, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.122,  8-Aug-76 19:42:29, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.121,  8-Aug-76 17:09:14, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.120,  7-Aug-76 20:39:13, EDIT BY KIRSCHEN
;MAKE FILCRD DO CRDIR'S ON SPECIFIED STRUCTURE
;<2-MONITOR>FILINI.MAC.119,  4-Aug-76 19:07:37, EDIT BY HURLEY
;<2-MONITOR>FILINI.MAC.118,  4-Aug-76 14:37:42, EDIT BY HURLEY
;<2-MONITOR>FILINI.MAC.117,  3-Aug-76 19:02:17, EDIT BY HURLEY
;EXPAND DIRECTORY NUMBERS TO 36 BITS
;<HESS>FILINI.MAC.2, 29-Jul-76 15:03:49, Edit by HESS
;TCO 1478 - QUOTA CHECKING
;<2-MONITOR>FILINI.MAC.115,  3-Aug-76 14:08:46, EDIT BY KIRSCHEN
;MAKE FILCRD INTERNAL
;<2-MONITOR>FILINI.MAC.114,  3-Aug-76 13:58:56, EDIT BY KIRSCHEN
;MAKE NEWIB INTERNAL
;<2-MONITOR>FILINI.MAC.113,  2-Aug-76 15:25:03, EDIT BY HALL
;FIXED TYPO IN JBFINI
;<2-MONITOR>FILINI.MAC.112,  2-Aug-76 13:06:07, EDIT BY HALL
;FIXED TYPO IN PREVIOUS EDIT
;<2-MONITOR>FILINI.MAC.111,  2-Aug-76 12:31:28, EDIT BY HALL
;IN JBFINI CHANGED INITIALIZATION OF STRUCTURE NUMBER IN JSB
;<2-MONITOR>FILINI.MAC.110,  1-Aug-76 15:53:01, EDIT BY HALL
;FIXED USE OF BAD DEFSTRS
;<2-MONITOR>FILINI.MAC.109, 30-Jul-76 10:50:08, EDIT BY KIRSCHEN
;REMOVE CODE TO FUDGE SPECIAL-DIRECTORY TABLE TO CREATE ROOT-DIRECTORY
;<2-MONITOR>FILINI.MAC.108, 30-Jul-76 10:45:50, EDIT BY KIRSCHEN
;FIX TYPO, JSFIN1==>JBFIN1
;<2-MONITOR>FILINI.MAC.107, 30-Jul-76 10:12:50, EDIT BY HALL
;ADDED TO JBFINI THE CODE TO INITIALIZE THE JSSTR BLOCK IN THE JSB
;<2-MONITOR>FILINI.MAC.106, 30-Jul-76 09:49:16, EDIT BY KIRSCHEN
;SET STCRD WHEN CREATING ROOT-DIRECTORY IN FILCRD
;<2-MONITOR>FILINI.MAC.105, 24-Jul-76 11:31:25, EDIT BY HALL
;COMMENT IN JBFINI
;<2-MONITOR>FILINI.MAC.104, 24-Jul-76 11:05:35, EDIT BY HALL
;IN JBFINI INITIALIZED CONNECTED STRUCTURE AND DIRECTORY TO BE
;PS:<SYSTEM>
;<2-MONITOR>FILINI.MAC.103,  7-Jul-76 11:08:38, EDIT BY KIRSCHEN
;ADD FLAGS TO CALLING SEQUENCE OF CHKBT
;<2-MONITOR>FILINI.MAC.102, 30-Jun-76 13:11:06, EDIT BY HALL
;ADDED COMMENTS ON INISTR
;<2-MONITOR>FILINI.MAC.101, 29-Jun-76 13:44:20, EDIT BY KIRSCHEN
;ADD NEW CALLING SEQUENCE FOR CHKBAT
;<2-MONITOR>FILINI.MAC.52, 23-Jun-76 11:37:26, EDIT BY KIRSCHEN
;FIXED TYPO FROM PREVIOUS EDIT
;<2-MONITOR>FILINI.MAC.51, 22-Jun-76 18:08:38, EDIT BY HALL
;ADDED 'REBUILD BIT TABLE' QUESTION
;<1B-MONITOR>FILINI.MAC.98, 16-Jun-76 14:55:30, EDIT BY HURLEY
;TCO # 1429 - MAKE OPERATOR BE CREATED WITH SC%OPR
;<2-MONITOR>FILINI.MAC.49, 17-Jun-76 12:20:48, EDIT BY MILLER
;ADD MLJFN. REMOVE SJFN
;<2-MONITOR>FILINI.MAC.48,  1-JUN-76 16:25:31, EDIT BY HALL
;MADE FRESTR INTERNAL
;<2-MONITOR>FILINI.MAC.47,  1-JUN-76 14:29:25, EDIT BY HALL
;ADDED CALL TO FEFSYS IN REFRESH CODE
;<2-MONITOR>FILINI.MAC.46, 25-MAY-76 17:29:00, EDIT BY HALL
;GOT RID OF A SETZ ON STRUCTURE NUMBER
;<2-MONITOR>FILINI.MAC.45, 25-MAY-76 13:16:13, EDIT BY HALL
;FIXED STKVARS TO HAVE DIFFERENT NAMES FOR STRUCTURE NUMBER
;<2-MONITOR>FILINI.MAC.44, 25-MAY-76 13:10:54, EDIT BY HALL
;REORDERED CODE SO THAT FILCRD AND CREBAK ARE OUT OF THE WAY
;<2-MONITOR>FILINI.MAC.43, 25-MAY-76 12:48:08, EDIT BY KIRSCHEN
;MADE CREIDX, IDXINI, AND SETRDO INTERNAL
;<2-MONITOR>FILINI.MAC.42, 25-MAY-76 12:27:43, EDIT BY HALL
;REORDERED STKVARS TO PUT STRNUM FIRST
;<2-MONITOR>FILINI.MAC.41, 24-MAY-76 17:14:42, EDIT BY HALL
;FIX TO PREVIOUS EDIT IN FILCRD
;<2-MONITOR>FILINI.MAC.40, 24-MAY-76 11:32:30, EDIT BY HALL
;CHANGED FILCRD TO ACCEPT STRUCTURE NUMBER AND PASS IT TO CREBAK,
;FILINI TO ASSUME STRUCTURE 0 IN CAL TO FILCRD, CREBAK TO GET 14 WORDS FOR
;FILE SPEC
;<2-MONITOR>FILINI.MAC.39, 20-MAY-76 11:08:24, EDIT BY KIRSCHEN
;BUG FIX- ONLY GET OFN OF ROOT-DIR FOR EXTANT STRUCTURES
;<2-MONITOR>FILINI.MAC.38, 20-MAY-76 11:03:47, EDIT BY KIRSCHEN
;ELIMINATE DOUBLE SKIP RETURN FROM DIRLKX
;<2-MONITOR>FILINI.MAC.37, 19-MAY-76 09:59:15, EDIT BY KIRSCHEN
;ASSUME STRUCTURE 0 IN CALL TO DIRLKX IN ISDIRT
;<2-MONITOR>FILINI.MAC.36, 17-MAY-76 11:08:14, EDIT BY KIRSCHEN
;ADD SUBROUTINE SETRDO TO SET UP ROOT-DIRECTORY OFN FOR A STRUCTURE
;<2-MONITOR>FILINI.MAC.35, 14-MAY-76 09:24:35, EDIT BY KIRSCHEN
;REMOVE REFERENCES TO LSTDRN (REFER TO SDB INSTEAD)
;<2-MONITOR>FILINI.MAC.34, 13-MAY-76 09:52:32, EDIT BY KIRSCHEN
;REMOVE REFERENCES TO DIDSCB; MAKE CREBAK USE STRUCTURE NUMBER
;<2-MONITOR>FILINI.MAC.33, 12-MAY-76 17:34:36, EDIT BY HALL
;ADD STRNUM TO STKVAR LIST IN CPYBAK
;<2-MONITOR>FILINI.MAC.32, 11-MAY-76 14:15:42, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.31, 11-MAY-76 13:04:28, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.30, 11-MAY-76 13:03:14, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.29, 11-MAY-76 11:35:57, EDIT BY KIRSCHEN
;GET OFN OF ROOT-DIRECTORY FOR ALL STRUCTURES, MAKE IDXTAB SIMILARLY
;<2-MONITOR>FILINI.MAC.28, 10-MAY-76 10:25:50, EDIT BY HALL
;MADE CHKBAT NOT BE CALLED FOR STRUCTURE 0 - DONE IN MEXEC (AGAIN)
;<2-MONITOR>FILINI.MAC.27, 10-MAY-76 10:15:12, EDIT BY KIRSCHEN
;MOVE STRST ROUTINE TO FUTILITY
;<2-MONITOR>FILINI.MAC.26, 10-MAY-76 09:32:59, EDIT BY KIRSCHEN
;ADD CODE TO GET HANDLE ON INDEX TABLE FOR ALL STRUCTURES
;<2-MONITOR>FILINI.MAC.25,  8-MAY-76 13:56:11, EDIT BY HALL
;FIXED A TYPO...
;<2-MONITOR>FILINI.MAC.24,  8-MAY-76 13:35:47, EDIT BY HALL
;CHANGES TO GET RID OF ASSUMPTIONS ABOUT STRUCTURE 0
;<2-MONITOR>FILINI.MAC.23,  7-MAY-76 14:31:51, EDIT BY KIRSCHEN
;ADD CODE TO SAVE AND RETRIEVE OFN OF ROOT-DIR FROM SDB (STRRDO)
;<2-MONITOR>FILINI.MAC.22,  7-MAY-76 11:40:51, EDIT BY KIRSCHEN
;ASSUME STRUCTURE 0 IN CALL TO DIRINI
;<2-MONITOR>FILINI.MAC.21,  7-MAY-76 11:00:06, EDIT BY KIRSCHEN
;PROVIDE STRUCTURE # (TEMPORARILY 0) FOR CALL TO MAPDIR IN CPYBAK
;<2-MONITOR>FILINI.MAC.20 - MADE IDXINI DO GTJFN FOR PROPER STRUCTURE
;<2-MONITOR>FILINI.MAC.19,  7-MAY-76 09:00:11, EDIT BY HALL
;MERGED STKVARS IN FILINI CODE
;<2-MONITOR>FILINI.MAC.18,  6-MAY-76 17:41:24, EDIT BY HALL
;FIXED BUG AT FILIN6
;<2-MONITOR>FILINI.MAC.17,  6-MAY-76 11:38:28, EDIT BY HALL
;ADDED NOTES ABOUT MISSING STRUCTURE NUMBERS
;<2-MONITOR>FILINI.MAC.16,  6-MAY-76 11:09:56, EDIT BY HALL
;MERGED IN CHANGES FOR MULTIPLE STRUCTURES (CALL INITIALIZATION ROUTINES
;FOR ALL STRUCTURES)
;<2-MONITOR>FILINI.MAC.15,  3-MAY-76 22:39:18, EDIT BY KIRSCHEN
;ADD PER-PROCESS MAPPING OF IDXTAB
;<2-MONITOR>FILINI.MAC.14,  3-MAY-76 08:37:09, EDIT BY KIRSCHEN
;RESTORE CORRECT VERSION - GENERATIONS 12 AND 13 WERE INTERIM DEVELOPMENT
;<2-MONITOR>FILINI.MAC.11, 22-APR-76 13:54:32, EDIT BY KIRSCHEN
;FIX BUG IN CREIDX
;<2-MONITOR>FILINI.MAC.10, 22-APR-76 13:11:49, EDIT BY HALL
;REMOVED INITIALIZATION OF BTBORA AND BTBLCK (MOVED TO STG)
;<2-MONITOR>FILINI.MAC.9, 21-APR-76 16:11:28, EDIT BY HALL
;ADDED STRUCTURE NUMBER TO CALLS TO DSKASA, ETC.
;<2-MONITOR>FILINI.MAC.8, 21-APR-76 14:11:25, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.7, 21-APR-76 14:00:27, EDIT BY KIRSCHEN
;<2-MONITOR>FILINI.MAC.6, 21-APR-76 13:38:06, EDIT BY KIRSCHEN
;ADD CREIDX ROUTINE
;<2-MONITOR>FILINI.MAC.5, 20-APR-76 15:52:13, EDIT BY HALL
;BUG FIXES FOR MOUNTABLE STRUCTURES
;<2-MONITOR>FILINI.MAC.3, 19-APR-76 17:40:11, EDIT BY HALL
;MOVED CHKBT, CHKBAK, AND CHKBAT CALLS INTO FILIN2 FROM MEXEC
;<2-MONITOR>FILINI.MAC.2, 19-APR-76 15:13:19, EDIT BY HALL
;CHANGED CALLS TO BIT TABLE ROUTINES
;<2-MONITOR>FILINI.MAC.1, 18-APR-76 18:11:56, EDIT BY MILLER
;NOTED CALLS TO ASOFN
;<1A-MONITOR>FILINI.MAC.97,  1-APR-76 14:10:27, EDIT BY HURLEY
;TCO # 1233 - SET RETENTION COUNT OF SYSTEM TO 0
;<1A-MONITOR>FILINI.MAC.96,  1-APR-76 13:56:14, EDIT BY HURLEY
;<1A-MONITOR>FILINI.MAC.95,  1-APR-76 13:50:58, EDIT BY HURLEY
;TCO # 1230 - FIX SPELLING ERRORS IN BUGCHK MESSAGES
;<2MONITOR>FILINI.MAC.94, 27-JAN-76 18:27:11, EDIT BY HURLEY
;MCO 29 - SET RETENTION COUNT OF SPOOL TO 0
;<2MONITOR>FILINI.MAC.93, 16-JAN-76 17:47:24, EDIT BY MURPHY
;<2MONITOR>FILINI.MAC.92, 31-DEC-75 17:09:15, EDIT BY MILLER


;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
;  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (C) 1976, 1977, 1978 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

	SEARCH PROLOG
   IFNDEF EXADRF,<	TTITLE FILINI>
   IFDEF EXADRF,< TTITLE FILINI,EFILIN>
	SWAPCD

;LOCAL ITEMS IN STG.MAC

PSNUM==:0			;STRUCTURE NUMBER (OFFSET IN STRTAB) FOR
				;THE PUBLIC STRUCTURE

EXTN <INIDEV>

ROOTDN==:1			;ROOT-DIRECTORY DIRECTORY NUMBER
SYSTDN==:2			;SYSTEM DIRECTORY NUMBER
SUBSDN==:3			;SUBSYS DIRECTORY NUMBER
ACNTDN==:4			;ACCOUNTS DIRECTORY NUMBER
OPERDN==:5			;OPERATOR DIRECTORY NUMBER
SPOLDN==:6			;SPOOL DIRECTORY NUMBER
NSYSDN==:7			;<NEW-SYSTEM>
NSUBDN==:10			;<NEW-SUBSYS>

NRESDN==:17			;NUMBER OF RESERVED DIR NUMBERS FOR DEC

;SPECIAL AC DEFINITIONS USED HEREIN

DEFAC (STS,P1)
DEFAC (JFN,P2)			;SEE GTJFN FOR FUNCTIONS
DEFAC (DEV,P4)
DEFAC (F1,P5)

RS BKOFN,1			;OFN OF BACKUP FILE DURING RECONSTRUCTION
; Initialize file stuff
;CALLED BY MEXEC WHEN A JOB IS STARTED.  INITIALIZES THE JSB

JBFINI::MOVEI A,JSFREE		; Origin of free area in jsb
	HRLOM A,JSBFRE		; To header
	MOVEI A,IJSFRE
	HRRZM A,JSFREE		; One big block free
	MOVEM A,JSBFRE+2
	SETOM JSBFRE+1
	MOVE A,[XWD JSFREE+IJSFRE,JSFREE]
	MOVEM A,JSBFRE+4
	MOVEI A,MAXLW+1
	MOVEM A,JSBFRE+3
	MOVE A,[XWD JBCOR,JBCOR+1]
	SETZM JBCOR
	BLT A,JBCOR+3
	UNLOCK JBCLCK
	UNLOCK JSFLCK		; INIT DEALL STACK LOCK
	UNLOCK JSSTLK		;INITIALIZE JSB STRUCTURE LOCK
	MOVEI C,FREJP		; Start with frejp page
IJFRLP:	MOVE A,C
	LSH A,9
	PUSH P,C
	CALL RELPAG
	POP P,C
	CAIGE C,JSLST-1
	AOJA C,IJFRLP
	SETOM PRIMRY		; Primary io to controlling tty
	SETOM JFNLCK		; Unlock jfnlck
	SETOM LNMLCK		; UNLOCK LOGICAL NAME LOCK
	MOVEI A,1
	MOVEM A,MAXJFN
	MOVE A,STRTAB+PSNUM	;GET SDB ADDRESS OF STRUCTURE 0 (PUBLIC)
	LOAD A,STRUC,(A)	;GET ITS UNIQUE STRUCTURE CODE
	STOR A,JSUC		;SAVE AS CONNECTED STRUCTURE CODE
	MOVEI A,SYSTDN		;GET DIRECTORY NUMBER FOR <SYSTEM>
	STOR A,JSDIR		;MAKE THIS THE CONNECTED DIRECTORY
	MOVE A,[[3
		 ASCIZ "OPERATOR"],,USRNAM]
	BLT A,USRNAM+2		;INIT USER NAME STRING
	MOVE A,[[3
		 ASCIZ "OPERATOR"],,ACCTSL]
	BLT A,ACCTSR+1		;INIT ACCT STRING
	SETZRO JSCDF		;MARK THAT THERE IS NO DIR STRING
	MOVE B,JOBNO
	SETZM JOBDIR(B)		;INDICATE NOT YET LOGGED IN
	MOVE A,[XWD 777000,-1]
	MOVEM A,CAPMSK
	MOVEM A,CAPENB

;INITIALIZE THE 3-WORD BLOCKS IN THE JSB FOR STRUCTURES.  THIS CODE MERELY
;SETS THE STRUCTURE NUMBER TO -1 TO INDICATE THE SLOT IS FREE.  GTSTOF
;INITIALIZES THE REST OF THE BLOCK WHEN IT IS ASSIGNED.

	MOVSI T1,-STRN
	HRRI T1,JSSTRT		;T1/(-COUNT,,ADDRESS OF WORD 0 OF BLOCK)
JBFIN1:	MOVX T2,JSFRST
	STOR T2,JSSTN,(T1)	;INITIALIZE STRUCTURE NUMBER TO -1
	ADDI T1,JSSTMX-1	;GO TO NEXT BLOCK OF WORDS
	AOBJN T1,JBFIN1		;..
	RET
;INITBT - BITTABLE INITILIZATION

;	CALL BTINIT

;RETURNS +1 ALWAYS
;R4 - INDEX INTO MMAP FOR BITTABLE ENTRIES FOR NON/EXTENDED BITTABLES
;
;THIS ROUTINE INITALIZES THE ADDRESSES FOR THE BITTABLE
;
	RESCD
INITBT::
   IFDEF EXADRF,<
	SETOM EXADDR		;SET LARGE DIRECTORY
   >
   IFNDEF EXADRF,<
	MOVEI T1,1		;SET NON/ZERO SECTION
	MOVEM T1,EXADDR>
	SKIPN EXADFL		;CHECK TO SEE IF EXAD MACHINE
	SETZM EXADDR		;NO PROTECT FROM ATTEMPT TO USE NONZERO SECTIONS
	MOVNI T4,<BTBMAX+777>/1000 ;NON EXTENDED
	HRLZS T4
	MOVEI T1,BTB		;FIND BASE OF BITTABLE FOR NON EX
	SKIPE EXADDR		;WHICH
	MOVE T1,[BTSEC,,0]	;EXTENDED
	MOVEM T1,BTBORA		;SET ORIGIN
	LSH T1,-PGSFT		;MAKE PAGE ADDRESS
	MOVEM T1,BTSTRT		;SAVE START
	HRR T4,T1		;SET PAGE NUMBER FOR RETURN
	ADDI T1,<BTBMAX-1>/1000	;SET END PAGE NUMBER
	MOVEM T1,BTEND		;SET END OF BITMAP
	MOVEI T1,BTBMAX		;BITTABLE MAX FOR NON/EXTENDED
   IFDEF EXADRF,<
	SKIPGE EXADDR
	MOVEI T1,BTMXSZ		;EXTENDED
   >
	MOVEM T1,BTBSIZ		;SET SIZE
	RET
	SWAPCD
;FILINI - File system initialization

;	CALL FILINI

;RETURNS +1: ALWAYS

;THIS CODE IS CALLED BY JBI0 IN MEXEC AS PART OF SYSTEM STARTUP
;IF THE MONITOR WAS STARTED AT SYSGO1, STARTF IS 0
;IF IT WAS STARTED AT SYSLOD, STARTF HAS SOME COMBINATION OF THE FOLLOWING BITS SET:
;	MI%RFS IF THE USER REQUESTED REFRESHING THE FILE SYSTEM
;	MI%RCN IF THE USER DID NOT REQUEST REFRESH
;	MI%HMB IF THE HOME BLOCKS WERE REWRITTEN
;IF THE SYSTEM WAS STARTED AT SYSGO1, OR IF IT WAS STARTED AT SYSLOD,
;BUT ALL QUESTIONS WERE ANSWERED 'NO', STARTF IS 0

FILINI::STKVAR <FILINZ>
	CALL DEVINI		;INIT DEVICE TABLES
	MOVEI T1,<NIDXPG*PGSIZ>/.IDXLN	;MAXIMUM DIRECTORY NUMBER
   IFDEF EXADRF,<
	SKIPGE EXADDR		;IF EXADDR -1 THEN LARGE DIRECTORY NUMBER LEGAL
	MOVEI T1,<MXDRNM*PGSIZ>/.IDXLN	;MAX LARGE DIRECTORY NUMBER
   >
	MOVEM T1,MXDIRN		;SET UP MAX DIRECTORY NUMBER
	MOVE A,[XWD MSEC1,DIRPGA]	;GET ADDRESS OF DIRECTORY MAPPING AREA
	SKIPE EXADDR		;IF EXADDR 0  THEN ALL SEC 0
	MOVE A,[DRSECN,,0]	;DIRECT SECTION (SEC DRSECN)
	MOVEM A,DIRORA		;INITIALIZE THE BASE ADDRESS WORD
	MOVEI A,DRMASZ		; MAGIC NUMBER OF DIRECTORY PAGES
   IFDEF EXADRF,<
	SKIPGE EXADDR		;SET DIRECTORY SIZE 0=SEC 0 30PGS
				;1=SEC 1 SIZE 30 PGS -1=SEC1 777PGS
	MOVEI A,DRMXSZ
   >
	MOVEM A,NDIRPG
	MOVE A,[<30+^D35>/^D36+1] ;SET SIZE OF FREE BIT TABLE
   IFDEF EXADRF,<
	SKIPGE EXADDR
	MOVE A,[<DRMXSZ+^D35>/^D36+1]
   >
	MOVEM A,FBTSIZ
	MOVE A,[EXP IDXPGA]	;GET ADDRESS OF INDEX TABLE
	SKIPE EXADDR		;CHECK FOR EXADDR HERE
	MOVE A,[IDXSEC,,0]	;SET IDX SECTION
	MOVEM A,IDXORA		;SET UP BASE OF INDEX TABLE
	UNLOCK LDTLCK		;INITIALIZE THE DIRECTORY LOCK TABLE
	SETZM FILINZ		;ASSUME NO NEED TO FIX FRONT END FILE SYSTEM
	SKIPN B,STARTF		;ZERO IF STARTED AT SYSGO1
	JRST FILIN1		;DIDN'T START AT SYSLOD. DO USUAL STARTUP

;STARTED THE MONITOR AT SYSLOD.  SEE WHAT THEY WANT TO DO

	TXNE B,MI%RFS		;DO WE WANT A FULL REFRESH?
	JRST FILRFS		;YES. GO DO IT
	TXNE B,MI%HMB		;NO. WERE THE HOME BLOCKS REWRITTEN?
	SETOM FILINZ		;YES. INDICATE POINTER TO FRONT END FILE SYSTEM
				; HAS BEEN CLOBBERED

;NOT REFRESHING. SEE IF RECONSTRUCTING ROOT-DIRECTORY

	HRROI A,[ASCIZ /RECONSTRUCT ROOT-DIRECTORY? /]
	PSOUT
	CALL YESNO		;SEE IF RECONSTRUCTING
	JUMPN A, [	MOVEI A,PSNUM	;YES. A/STRUCTURE NUMBER FOR PS
			CALL FILREC	;GO DO RECONSTRUCTION
			 BUG(HLT,BADREC,<FILINI - Reconstruction of ROOT-DIRECTORY failed>)
			HRROI A,RCDMSG	;GET POINTER TO ADVISORY MESSAGE
			PSOUT		;INFORM USER EVERYTHING OK SO FAR
			MOVX B,MI%BTB	;INDICATE REBUILD BIT TABLE
			IORM B,STARTF	; FOR MEXEC TO SEE LATER
			JRST FILIN1]	;THEN PROCEED NORMALLY

;IF EXPANDING A STRUCTURE WITHOUT REFRESHING, ANSWER TO NEXT QUESTION
;SHOULD BE YES

	MOVX A,MI%RCN		;NOT RECONSTRUCTING. CLEAR THE BIT
	ANDCAM A,STARTF		; IN STARTF (SET BY FSSINI)
	HRROI A,[ASCIZ/REBUILD BIT TABLE? /]
	PSOUT			;ASK ABOUT BIT TABLE
	CALL YESNO		;GET THE ANSWER
	JUMPN A,[MOVX B,MI%BTB	;INDICATE REBUILD BIT TABLE
		IORM B,STARTF	; FOR MEXEC TO SEE LATER
		JRST FILIN1]	;THEN PROCEED NORMALLY

;USER DIDN'T WANT TO REFRESH, RECONSTRUCT, OR REBUILD. ASSUME NORMAL STARTUP

	SETZM STARTF		;ACT AS IF NOTHING HAD HAPPENED
	HRROI A,[ASCIZ /NORMAL STARTUP ASSUMED.
/]
	PSOUT

; Make directory and index known to system

FILIN1:
	MOVEI A,PSNUM		;A/STRUCTURE NUMBER FOR PS
	CALL SETRDO		;SET UP ROOT-DIRECTORY OFN
	 BUG(HLT,IBOFNF,<FILINI: ASOFN FAILURE FOR ROOT DIRECTORY IB>)
	MOVEI A,PSNUM		;A/STRUCTURE NUMBER FOR PS
	SKIPN B,STRTAB(A)	;GET SDB ADDRESS FOR THIS STRUCTURE
	JRST FILERR		;PS MUST BE DEFINED
	CALL INISTR		;GO SET UP DEVNAM, ETC.
	MOVEI T1,PSNUM		;T1/STRUCTURE NUMBER FOR PS
	CALL MNTBTB		;GET AN OFN ON THE BIT TABLE FILE
	 JRST [	BUG(CHK,NOBTB,<FILINI - UNABLE TO OPEN BIT TABLE FILE>)
		MOVX T4,SF%BTE!SF%CDE ;FAILED. INDICATE BIT TABLE ERRORS
		IORM T4,FACTSW	;SO THAT SYSJOB WON'T START
		MOVEI T1,PSNUM	;T1/STRUCTURE NUMBER FOR PS
		CALL CRTBTB	;INITIALIZE A PRIVATE COPY OF THE BIT
				; TABLE SO WE CAN RUN
		 BUG(HLT,BTBCR1,<FILINI - NO BIT TABLE FILE AND UNABLE TO CREATE ONE>)
		MOVEI T1,PSNUM	;GET STRUCTURE NUMBER FOR PS
		HRRZ T2,STRTAB(T1) ;POINT TO ITS SDB
		MOVX T4,MI%ASG	;FORBID ASSIGNING PAGES UNTIL CHECKD CAN
		IORM T4,SDBSTS(T2) ; RUN AND REBUILD THE BIT TABLE
		ADDI T1,DVXST0	;POINT TO THIS STRUCTURE IN DEVICE TABLES
		MOVX T4,D1%INI	;CLEAR THE 'INI' BIT ON THE ASSUMPTION
		ANDCAM T4,DEVCH1(T1) ; THAT CHECKD WILL REBUILD THE BIT TABLE
		JRST .+1]
	MOVEI T1,PSNUM		;T1/STRUCTURE NUMBER FOR PS
	CALL FNDIDX		;GET OFN FOR INDEX TABLE
	 JRST [	MOVEI T1,PSNUM	;FAILED.T1/ STRUCTURE NUMBER FOR PS
		CALL MAKIDX	;NOT THERE, MAKE A NEW ONE
		 BUG(HLT,BADXT1,<INDEX TABLE MISSING AND CAN NOT BE CREATED>)
		BUG(CHK,BADXT2,<INDEX TABLE MISSING AND WAS CREATED>)
		MOVX A,MI%XTB	;INDICATE NEEDS TO BE INITIALIZED LATER
		IORM A,STARTF
		MOVX A,SF%BTE	;FORCE CHECKD TO BE RUN BEFORE
		IORM A,FACTSW	; SYSTEM COMES UP FOR TIME-SHARING
		JRST .+1]
	JRST FILIN2		;PROCEED TO COMMON CODE
;FILRFS - HERE WHEN REFRESHING FILE SYSTEM

FILRFS:	SE1ENT
	MOVEI A,PSNUM		;A/STRUCTURE NUMBER
	SKIPN B,STRTAB(A)	;B/ADDRESS OF SDB
	JRST FILERR		;PS MUST BE DEFINED
	CALL INISTR		;SET UP DEVNAM, INDICATE BEING INITED
	MOVEI A,PSNUM		;A/STRUCTURE NUMBER
	CALL CRTBTB		;INITIALIZE A BIT TABLE IN CORE
	 BUG(HLT,BTBCRT,<FILINI - COULD NOT INITIALIZE BIT TABLE FOR PUBLIC STRUCTURE>)

;CREATE INDEX BLOCK FOR PRIMARY COPY OF ROOT-DIRECTORY

	MOVE A,DIDSCI		;GET INITIAL INDEX BLOCK ADR FOR ROOT
	MOVEI B,PSNUM		;B/STRUCTURE NUMBER
	CALL NEWIB		;GET THE INDEX BLOCK FOR THE ROOT DIR
	 BUG(HLT,NEWROT,<FILRFS - NEWIB FAILURE FOR ROOT-DIRECTORY>)
	MOVE C,STRTAB+PSNUM	;GET ADDRESS OF SDB
	STOR A,STRRDO,(C)	;REMEMBER THE OFN OF THE ROOT-DIR INDEX BLOCK

;CREATE INDEX BLOCK FOR BACKUP COPY OF ROOT-DIRECTORY

	MOVE A,DIDSCJ		;GET AN OFN FOR BACKUP FILE ALSO
	MOVEI B,PSNUM		;B/STRUCTURE NUMBER
	CALL NEWIB		;SO BACKUP FILE STARTS IN A KNOWN SPOT
	 BUG(HLT,NEWBAK,<FILRFS - NEWIB FAILURE FOR BACKUP ROOT-DIR>)
	MOVEM A,BKOFN		;SAVE ITS OFN

;SET UP THE INDEX TABLE FOR ROOT-DIRECTORY. THIS CODE MAKES A TEMPORARY
;COPY OF IDXTAB IN JSB FREE SPACE IN ORDER TO CREATE THE FIRST FEW
;DIRECTORIES ON THE SYSTEM.  IDXORA POINTS TO THAT FREE SPACE TEMPORARILY.

	PUSH P,IDXORA		;SAVE THE OLD IDXTAB ORIGIN
	CALL ASGPAG		;GET PAGE TO PUT TEMPORARY IDXTAB INTO
	 BUG(HLT,IDXNOS,<FILINI - COULD NOT ASSIGN FREE SPACE FOR IDXTAB>)
	MOVEM A,IDXORA		;SAVE THE ADDRESS FOUND

;PUT AN ENTRY FOR ROOT-DIRECTORY IN THE TEMPORARY IDXTAB, AND INITIALIZE
;THE DIRECTORY

	MOVEI A,ROOTDN		;NOW SET UP THE INDEX TABLE 
	MOVEI B,0		;DONT HAVE AN FDB ADDRESS YET
	MOVE C,DIDSCI		;GET DISK ADR OF INDEX BLOCK
	MOVEI D,ROOTDN		;SETUP SUPERIOR AS ROOT DIRECTORY
	CALL SETIDX		;SETUP THE INDEX TABLE FOR THE ROOT DIR
	 BUG(HLT,FILRID,<FILINW: INDEX TABLE ALREADY SET UP FOR ROOT DIR>)
	MOVEI A,ROOTDN		;NOW INITIALIZE THE DIRECTORY FILE
	MOVEI B,PSNUM		;ASSUME THE PUBLIC STRUCTURE
	CALL DIRINI		; TO LOOK LIKE A DIRECTORY (SETS UP HEADER)
INIROT:	 BUG(HLT,FILIRD,<FILINW: COULD NOT INITIALIZE THE ROOT DIRECTORY>)

;CREATE A FEW SPECIAL DIRECTORIES

	MOVEI A,PSNUM		;A/STRUCTURE NUMBER FOR PS
	CALL FILCRD		;GO CREATE ALL THE DIRECTORIES
	MOVE A,BKOFN		;A/OFN OF BACKUP FILE
	CALL RELOFN		;RELEASE OFN OF BACKUP FILE
	SETZM BKOFN
	MOVEI A,PSNUM		;A/STRUCTURE NUMBER FOR PS

;CREATE A BIT TABLE FILE AND COPY THE TEMPORARY ONE INTO IT.  

	CALL WRTBTB		;GO CREATE BIT TABLE FILE
	 JRST [	CAIE T1,MSTRX6	;DID HOME BLOCK WRITE FAIL?
		 BUG(HLT,FILBTB,<UNABLE TO WRITE BIT TABLE FILE>)
		BUG(CHK,FILHOM,<UNABLE TO REWRITE HOME BLOCKS IN WRTBTB>)
		JRST .+1]	;THIS ISN'T FATAL UNLESS OLD STYLE HOME BLOCKS

;CREATE A PERMANENT IDXTAB FILE AND MAKE IDXORA POINT TO THE STANDARD
;PLACE IN THE MONITOR MAP.  RELEASE THE JSB FREE SPACE

	MOVEI A,PSNUM		;GET NUMBER OF THE PUBLIC STRUCTURE
	CALL MAKIDX		;GO CREATE INDEX FILE
	 JRST IDXBAD		;COULD NOT SET UP INDEX TABLE FILE
	MOVX T1,MI%XTB		;INDICATE INDEX TABLE MUST BE INITIALIZED
	IORM T1,STARTF		; FOR COMMON CODE TO SEE LATER
	MOVEI A,JSBFRE		;RELEASE THE IDXTAB PAGE
	MOVE A,IDXORA		;GET THE ADDRESS
	CALL RELPAG		;RELEASE FREE PAGE
	POP P,IDXORA		;RESTORE THE IDXTABLE ADDRESS

;CREATE THE FRONT END FILE SYSTEM

	SE0ENT
	MOVEI A,PSNUM		;GET NUMBER OF PUBLIC STRUCTURE
	SKIPGE T2,FEFSIZ	;SEE IF FE FILE SYSTEM SIZE WAS GIVEN
	JRST [	MOVEI T1,PSNUM	;NO. T1/STRUCTURE NUMBER FOR PS
		CALL GTFESZ	;GET THE SIZE FROM THE HOME BLOCKS
		 BUG(HLT,NOFEFS,<FILINI - UNABLE TO GET SIZE OF FRONT END FILE SYSTEM>)
		MOVE T2,T1	;T2/NUMBER PAGES IN FE FILE SYSTEM
		JRST .+1]
	MOVEI T1,PSNUM		;T1/STRUCTURE NUMBER
	CALL FEFSYS		;CREATE A FRONT END FILE SYSTEM
	 BUG(CHK,FILFEF,<Could not create Front End File System>)

;CREATE BOOTSTRAP.BIN

	MOVEI T1,PSNUM		;GET NUMBER OF PUBLIC STRUCTURE
	SKIPGE T2,BOTSIZ	;SEE IF BOOTSTRAP.BIN WAS GIVEN
	JRST [	MOVEI T1,PSNUM	;NO. T1/STRUCTURE NUMBER FOR PS
		CALL GTBTSZ	;GET THE SIZE FROM THE HOME BLOCKS
		BUG(HLT,NOBTBN,<FILINI - UNABLE TO GET SIZE OF BOOTSTRAP.BIN FILE>)
		MOVE T2,T1	;T2/NUMBER OF PAGES IN BOOTSTRAP.BIN
		JRST .+1]
	CALL BOTSYS		;CREATE A BOOTSTRAP.BIN FILE
	BUG(CHK,FILBOT,<COULD NOT CREATE BOOTSTRAP.BIN FILE>)

;UPDATE THE DISK FOR ROOT-DIRECTORY

	MOVE T1,STRTAB+PSNUM	;GET SDB FOR PS
	LOAD T1,STRRDO,(T1)	;GET OFN ON <ROOT-DIRECTORY>
	HRLZS T1		;OFN,,0
	MOVEI T2,1000		;ALL PAGES
	CALL UPDPGS		;UPDATE ON DISK
	MOVE T1,STRTAB+PSNUM	;GET SDB AGAIN
	LOAD T1,STRRDO,(T1)	; OFN
	CALL UPDOFN		;UPDATE OFN ALSO
	;..
;HERE FOR NORMAL STARTUP OR WHEN INITIALIZATION IS COMPLETE

	;..
FILIN2:	SKIPN B,STRTAB+PSNUM	;GET SDB ADDRESS FOR PS
	JRST FILERR		;PS MUST BE DEFINED
	MOVEI A,ROOTDN		;NOW CHECK ROOT-DIR
	LOAD C,STRUC,(B)	;GET UNIQUE CODE
	HRL A,C			;A/UNIQUE CODE,,DIRECTORY
	CALL SETDIR		;MAP IN ROOT-DIR AND LOCK IT
	 BUG(HLT,FILMAP,<FILIN2: COULD NOT MAP IN ROOT-DIRECTORY>)
	CALL BLKSCN		;MAKE SURE IT IS VALID
	 BUG(HLT,BADROT,<FILIN2: ROOT-DIRECTORY IS INVALID>)
	CALL USTDIR		;UPDATE AND UNLOCK THE DIR
	MOVE B,STARTF		;GET STARTUP FLAGS
	TXZE B,MI%XTB		;DO WE NEED TO INIT INDEX TABLE?
	JRST [	MOVEI A,PSNUM	;YES. A/ NUMBER OF PS
		CALL IDXINI	;INITIALIZE IT
		 JRST IDXBAD
		JRST .+1]

	CALL ISDIRT		;INIT SPECIAL DIR TABLE
	CALL INIDEV		;INITIALIZE DEVICE DRIVERS
	CALL ENQINI		;INITIALIZE THE ENQ/DEQ DATA BASE
	CALL SNPINI		;INITIALIZE THE SNOOP DATA BASE
	CALL DMPINI		;INITIALIZE THE DUMP MODE DATA BASE
	CALL NETINI		;INITIALIZE THE ARPANET STORAGE


	MOVX T3,MI%BTB		;DON'T CHECK BIT TABLE IF REBUILDING
	TDNE T3,STARTF
	JRST FILIN3
	MOVE T1,STRTAB+PSNUM	;GET POINTER TO SDB FOR PS
	MOVX T3,MI%ASG		;IF ASSIGNMENTS ARE PROHIBITED, BIT TABLE
	TDNE T3,SDBSTS(T1)	; DOESN'T EXIST. DON'T TRY TO CHECK IT
	JRST FILIN3		;OR CHECK THE ROOT-DIRECT ORY BACKUP
	MOVEI T1,PSNUM		;T1/STRUCTURE NUMBER
	MOVX T2,MI%MSG		;T2/REQUEST MESSAGES ON CONSOLE
	CALL CHKBT		;CHECK CONSISTENCY OF BIT TABLE AND FIX IT
	 JRST [	MOVX T3,SF%BTE	;FAILED. INDICATE BIT TABLE ERRORS ON PS
		IORM T3,FACTSW	; FOR MEXEC TO SEE LATER
		JRST .+1] 	; AND THEN PROCEED NORMALLY
	MOVX T3,MI%RCN		;DON'T CHECK THE BACKUP IF RECONSTRUCTING
	TDNN T3,STARTF		; (FILREC DELETED IT)
	JRST [	MOVEI T1,PSNUM	;T1/STRUCTURE NUMBER FOR PS
		CALL CHKBAK	;CHECK BACKUP OF ROOT-DIRECTORY
		 BUG(CHK,BADBAK,<FILIN2 - BACKUP COPY OF ROOT DIRECTORY IS NOT GOOD>)
		JRST .+1]
FILIN3:
	SKIPE FILINZ		;DID WE REWRITE HOME BLOCKS?
	JRST [	MOVEI A,PSNUM	;A/STRUCTURE NUMBER FOR PS
		CALL FIXFES	;YES. PUT POINTER TO FE FILE SYSTEM BACK IN
		 BUG(CHK,FIXBAD,<Could not re-write Home Blocks to point to FE Filesystem>)
		JRST .+1]	; HOME BLOCKS
	SKIPE FILINZ		;DID WE REWRITE HOME BLOCKS?
	JRST [	MOVEI A,PSNUM	;A/STRUCTURE NUMBER FOR PS
		CALL FIXBOT	;YES -- PUT POINTER TO BOOT FILE BACK
		BUG(CHK,FIXBDB,<COULD NOT RE-WRITE HOME BLOCKS TO POINT TO BOOTSTRAP.BIN>)
		JRST .+1]
	MOVEI A,PSNUM		;A/STRUCTURE NUMBER FOR PS
	SKIPN STRTAB(A)		;IS THERE AN ENTRY FOR PS?
	JRST FILERR		;PS MUST BE DEFINED
	CALL FRESTR		;GO CLEAR SLOT IN DEVNAM, ETC.
	RET

FILERR:	BUG(HLT,STZERO,<FILINI: STRTAB ENTRY FOR PS IS 0>)
	RET

IDXBAD:	 BUG(HLT,BADXTB,<FILIN2: Could not initialize index table>)

;ROUTINE TO CREATE ALL THE STANDARD DIRECTORIES

;ACCEPTS:
;	T1/STRUCTURE NUMBER

;	CALL FILCRD

;RETURNS +1:	ALWAYS

;CALLED DURING REFRESH ONLY

BLKSIZ==<.CDDGP+1>+<MAXLW+2>	;SPACE FOR CRDIR BLOCK+DEV:<DIR> STRING

FILCRD::SAVEQ			;PRESERVE SOME ACCUMULATORS
	MOVEM A,Q3		;SAVE STRUCTURE NUMBER
	MOVEI B,BLKSIZ		;ASSIGN SPACE FOR CRDIR BLOCK AND DIR STRING
	CALL ASGJFR		;USE JSB FREE SPACE
	 JRST [	BUG(CHK,FILJB1,<FILCRD: No room to create standard system directories>)
		RET ]		;RETURN
	MOVEI Q2,1(A)		;SAVE ADDRESS OF CRDIR BLOCK
	MOVSI Q1,-CRDTBL	;SET UP AOBJN COUNTER
FILCR1:	HRROI A,[ASCIZ/DEC-20/]	;GET DEFAULT PASSWORD
	MOVEM A,.CDPSW(Q2)	;SET UP PARAMETER BLOCK FOR CRDIR
	MOVX A,SC%OPR		;MAKE THE DIR BE OPERATOR
	MOVEM A,.CDPRV(Q2)	;ONLY FOR DIR'S THAT ARE NOT FILES-ONLY
	MOVX A,MD%FO		;SET UP FOR FILES-ONLY DIRECTORIES
	MOVEM A,.CDMOD(Q2)	;ONLY SET ID CD%MOD IS SET
	HRLZI A,377777		;SET INFINITY FOR THOSE DIRS
	MOVEM A,.CDLIQ(Q2)	; WITH QUOTAS
	MOVEM A,.CDLOQ(Q2)	; ...
	HRROI A,.CDDGP+1(Q2)	;GET DESTINATION FOR COMPLETE STRING
	MOVE B,Q3		;GET STRUCTURE NUMBER
	HRRO C,CRDTAB(Q1)	;GET POINTER TO DIRECTORY NAME
	CALL STRST		;FORM COMPLETE DIRECTORY STRING (INCLUDING STR)
	 JRST [	BUG(CHK,FILCCD,<Could not create directory>)
		JRST FILCR3 ]	;GO ON TO NEXT DIRECTORY
	MOVEI A,1(Q1)		;GET DIRECTORY NUMBER BEING SET
	MOVEM A,.CDNUM(Q2)
	MOVE B,STRTAB(Q3)	;GET ADDRESS OF SDB FOR THIS STRUCTURE
	CAIE A,ROOTDN		;CREATING ROOT-DIRECTORY ?
	JRST FILCR2		;NO, GO ON
	SETONE STCRD,(B)	;YES, NOTE ROOT-DIRECTORY BEING CREATED
FILCR2:	MOVEI A,SYSDPT		;GET PROTECTION OF SYSTEM AND SUBSYS
	MOVEM A,.CDDPT(Q2)	;SET UP PROTECTION WORD
	MOVEI A,SYSFPT		;GET FILE PROTECTION OF SYSTEM AND SUBSYS
	MOVEM A,.CDFPT(Q2)
	SETZM .CDRET(Q2)	;SET RETENTION COUNT TO 0
	HRROI A,.CDD