1 ;;; Copyright (c) 1999 Massachusetts Institute of Technology
3 ;;; This program is free software; you can redistribute it and/or
4 ;;; modify it under the terms of the GNU General Public License as
5 ;;; published by the Free Software Foundation; either version 2 of the
6 ;;; License, or (at your option) any later version.
8 ;;; This program is distributed in the hope that it will be useful,
9 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
10 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 ;;; General Public License for more details.
13 ;;; You should have received a copy of the GNU General Public License
14 ;;; along with this program; if not, write to the Free Software
15 ;;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 IFNDEF DEFSYM,[ ;ALLOW USER TO USE SYMBOLS IN OTHER WAYS IF HE WISHES.
20 ;BUT NORMALLY, DEFSYM FOO==BAR DOES FOO==BAR WITH ERROR CHECK.
27 IFN Z-$$TEM1,.ERR Z MULTIPLY .QUOTE`.QUOTE/DEFINED/`
32 IFLE .MLLIT,.ERR .MLLIT MUST BE 1; SETTING IT TO 1.
38 ;FILE SYSTEM PARAMETERS - APPLIES TO ALL ITS MACHINES
40 ;9/5/79 - tut format changed!
44 IFDEF NBLKS,[ ;MFDBLK KNOWN ONLY IF .INSRT APPROPRIATE PHYSICAL PARAMS FILE
45 DEFSYM MFDBLK==NBLKS/2-1 ;LOC ON DISK
46 DEFSYM MFDCYL==MFDBLK/NBLKSC
47 DEFSYM MFDSRF==<MFDBLK-MFDCYL*NBLKSC>*SECBLK/NSECS
48 DEFSYM MFDSEC==<MFDBLK-MFDCYL*NBLKSC>*SECBLK-MFDSRF*NSECS
51 DEFSYM MDNUM==0 ;ASCENDING DIR NUM
52 DEFSYM MDNAMP==1 ;PNTR TO ORG OF USER NAME BLOCK AREA
53 DEFSYM MDYEAR==2 ;CURRENT YEAR
54 DEFSYM MPDOFF==3 ;DE-CORIOLIS CLOCK OFFSET
55 DEFSYM MPDWDK==4 ;PREFERRED WRITING DISK (PHYSICAL DRIVE #)
56 DEFSYM MDCHK==5 ;THIS WORD MUST BE M.F.D. (FOR CHECKING)
57 DEFSYM MDNUDS==6 ;NUMBER USER DIRECTORIES (FOR CHECKING ONLY)
58 DEFSYM LMIBLK==7 ;TOTAL STG USED BY HACKS LIKE THIS
59 ;USER NAME BLKS FROM C(MDNAMP) TO END
60 DEFSYM LMNBLK==2 ;# WDS/BLK
61 DEFSYM MNUNAM==0 ;6BIT USER NAME
62 ;SECOND WORD OF A USER-NAME BLOCK IS ZERO.
63 ;DECUUO CONTAINS A KLUDGE WHICH DEPENDS ON THIS,
64 ;PLEASE NOTIFY BUG-DECUUO BEFORE CHANGING IT.
69 DEFSYM TUTBLK==MFDBLK-NTUTBL ;LOC ON DISK
70 DEFSYM TUTCYL==TUTBLK/NBLKSC
71 DEFSYM TUTSRF==<TUTBLK-TUTCYL*NBLKSC>*SECBLK/NSECS
72 DEFSYM TUTSEC==<TUTBLK-TUTCYL*NBLKSC>*SECBLK-TUTSRF*NSECS
74 DEFSYM TUTBYT==3 ;SIZE OF BYTES (USED TO BE 4)
75 DEFSYM TUTBP==<440000+TUTBYT_6>,,
76 DEFSYM TUTEPW==36./TUTBYT ;NUMBER OF ENTRIES PER WORD
77 DEFSYM TUTMAX==1_TUTBYT
78 DEFSYM TUTLK==TUTMAX-1 ;HIGHEST CODE MEANS LOCKED OUT
79 DEFSYM TUTMNY==TUTLK-1 ;TUT MANY OR MORE REFS
81 ;RANDOM INFO IN TUT (AT THE FRONT)
82 DEFSYM QPKNUM==0 ;PACK #
83 DEFSYM QPAKID==1 ;PACK ID
84 DEFSYM QTUTP==2 ;FREE SPACE POINTER TO TRACK AREA. ADVANCE BY CYLINDERS
85 DEFSYM QSWAPA==3 ;SWAPPING AREA. FIRST TRACK OF NON-SWAPPING AREA
86 ;NEW FILES WILL NOT BE WRITTEN LOWER THAN THIS.
87 DEFSYM QFRSTB==4 ;FIRST BLOCK TUT'ED
88 DEFSYM QLASTB==5 ;LAST BLOCK TUT'ED
89 DEFSYM QTRSRV==6 ;-1 IF ONLY ALLOCATED DIRS CAN HAVE FILES ON THIS PACK
90 ;IF NOT 0 AND NOT -1, SIXBIT NAME OF "SECONDARY" PACK
91 ;STG FOR RANDOM INFO ^
92 DEFSYM LTIBLK==20 ;BYTES MAPPING THE DISK START HERE
95 ;IF A IS RELATIVE LOCATION OF MFD ENTRY, USER DIR IS LOCATED IN
96 ;TRACK NUMBERED <A-2000+2*MDNUDS>/2 (SEE QFL2)
98 DEFSYM UFDBYT==6 ;SIZE OF BYTES (Do not change!)
99 DEFSYM UFDBPW==36./UFDBYT ;NUMBER OF BYTES PER WORD
102 DEFSYM UDESCP==0 ;FS PNTR TO DESC AREA
103 DEFSYM UDNAMP==1 ;PNTR TO ORG OF NAME AREA
104 DEFSYM UDNAME==2 ;USER NAME (FOR CHECKING)
105 DEFSYM UDBLKS==3 ;LEFT HALF HAS AMOUNT OF SPACE ALLOCATED (NOT USED
106 ; CURRENTLY BY SYSTEM), RIGHT HALF HAS NUMBER OF BLOCKS USED.
107 DEFSYM UDALLO==4 ;IF NONZERO, LEFT HALF HAS DISK NUMBER, RIGHT
108 ; HALF HAS AMOUNT OF SPACE ALLOCATED
109 DEFSYM UDDESC==11. ;FIRST LOC AVAIL FOR DESC
112 ;0 => FREE 1-UDTKMX => TAKE NEXT N
113 ;UDTKMX+1 THRU UDWPH-1 => SKIP N-UDTKMX AND TAKE ONE
114 ;UDWPH => WRITE-PLACE-HOLDER
115 ;40 BIT SET => LOAD ADDRESS. LOWER 5 BITS PLUS NEXT NXLBYT (2)
116 ; CHARS (17 BITS IN ALL)
117 ;40 BIT & 20 BIT => "FUNNY" BLOCK IF DMDSK. WHAT IS THIS, ANYWAY?
121 ;6 CHAR OR UNTIL ; = SYS NAME. MUST HAVE NO CHAR = 0 IN THIS OR NEXT 2 NAMES
122 ;NEXT CHAR QUOTED BY : (FOR NAMES WITH : OR ;)
127 DEFSYM UDTKMX==12. ;HIGHEST "TAKE N" CODE
128 DEFSYM UDWPH==31. ;PLACE HOLDER ON WRITE (OR NULL FILE)
129 DEFSYM UDSKMX==UDWPH-UDTKMX-1 ;# BLOCKS THAT CAN BE SKIPPED
130 DEFSYM NXLBYT==2 ;# ADDITIONAL BYTES FOR LOAD ADDR
131 ;IN SYSTEM THIS IS DEFINED AT FRONT OF FILE
135 DEFSYM LUNBLK==5 ;WDS/NAME BLK
136 DEFSYM UNFN1==0 ;FIRST FN
137 DEFSYM UNFN2==1 ;SECOND FN
138 DEFSYM UNRNDM==2 ;ALL KINDS OF RANDOM INFO
139 DEFSYM UNDSCP==1500,, ;PNTR TO DESC
140 DEFSYM UNPKN==150500,, ;PACK #
141 DEFSYM UNLINK==1 ;LINK BIT
142 DEFSYM UNLNKB==220100,,
143 DEFSYM UNREAP==2 ;IF 1, DONT REAP FILE
144 DEFSYM UNWRIT==4 ;OPEN FOR WRITING
145 DEFSYM UNMARK==10 ;GC MARK BIT
146 DEFSYM UNCDEL==20 ;DEL WHEN CLOSED
147 DEFSYM DELBTS==20 ;DELETED -- IGNORE
148 DEFSYM UNIGFL==24 ;BITS TO IGNORE FILE
149 DEFSYM UNWRDC==301200,, ;WORD COUNT OF LAST BLOCK MOD 2000
150 DEFSYM UNDUMP==400000 ;HAS BEEN DUMPED
151 DEFSYM UNDATE==3 ;DATE ETC.
152 DEFSYM UNTIM==2200,, ;COMPACTED TIME OF CREATION
153 DEFSYM UNYMD==222000,, ;Y,M,D OF CREATION
154 DEFSYM UNMON==270400,, ;MONTH
155 DEFSYM UNDAY==220500,, ;DAY
156 DEFSYM UNYRB==330700,, ;YEAR
157 DEFSYM UNREF==4 ;REFERENCE DATE SAME AS LEFT HALF OF UNDATE
158 DEFSYM UNREFD==222000,, ;REFERENCE DATE BYTE POINTER
159 DEFSYM UNAUTH==111100,, ;MFD INDEX OF AUTHOR, ALL 1=> NO DIRECTORY
160 DEFSYM UNBYTE==001100,, ;FILE BYTE SIZE AND LENGTH INFO.
161 ;LET S=BITS PER BYTE, C=COUNT OF UNUSED BYTES IN LAST WD
162 ;400+100xS+C S=1 TO 3 C=0 TO 35.
163 ;200+20xS+C S=4 TO 7 C=0 TO 8
164 ;44+4xS+C S=8 TO 18. C=0 TO 3
165 ;44-S S=19. TO 36. C=0
166 ;NOTE THAT OLD FILES HAVE UNBYTE=0 => S=36.
168 IF1 IFDEF NUDSL, IFG NUDSL*LMNBLK+LMIBLK-2000,.ERR MFD LOSES
170 IFN $$TEMP,EXPUNG DEFSYM