(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (FILECREATED "11-May-2023 21:40:09" ("compiled on " {DSK}c>Users>Larry>home>il>MEDLEY>SOURCES>LOCALFILE.;2) "10-May-2023 09:23:17" brecompiled changes%: \LFDeleteFile in "FULL 10-May-2023 ..." dated "10-May-2023 09:23:21") (FILECREATED "11-May-2023 21:39:23" {DSK}c>Users>Larry>home>il>MEDLEY>SOURCES>LOCALFILE.;2 277722 :EDIT-BY "lmm" :CHANGES-TO (FNS \LFDeleteFile) :PREVIOUS-DATE "19-Jan-93 10:55:28" {DSK}c>Users>Larry>home>il>MEDLEY>SOURCES>LOCALFILE.;1) \PFFetchString :D8 (L (2 maxLength 1 lengthLoc 0 startLoc)) :ABdHH !H kJIHJ@Jk JkZH(47 RPLCHARCODE 27 NCHARS 18 ALLOCSTRING) NIL () \PFReplaceString :D8 (L (3 newString 2 maxLength 1 lengthLoc 0 startLoc)) C bd BdHHHkjCSKdj kپKdj _NKl ؽKdj lD_Nk^M OONON¼JI@JLǿJkԺAHC(97 %%ARRAY-TYPE-NUMBER 82 \GETBASEFIXP 67 %%ARRAY-BASE 48 %%ARRAY-OFFSET 13 NCHARS 5 MKSTRING) NIL () CREATEDSKDIRECTORYA0001 :D8 (NAME SI::*UNWIND-PROTECT* P 3 \INTERRUPTABLE I 0 SI::*CLEANUP-FORMS* F 4 volName F 5 smashDirectory) `hg Thi !H o UH H o g Y IgIgg Z(JgJgH Hi gggT (230 PACKFILENAME.STRING 225 U-CASE 203 \PFDsplyVolumes 197 \LFOpenDevice 191 \LFMakeVolumeDirectory 183 \LFMakeVolumeDirectory 138 \GETDEVICEFROMNAME 127 \LFCreateDevice 84 \GETDEVICEFROMNAME 70 ERROR 59 \LFDirectoryP 52 \LFPurgeDirectory 43 ERROR 32 \PFPilotVolumeP 23 \LFEntryPoint 15 OBTAIN.MONITORLOCK) (219 DIRECTORY 214 DSK 209 HOST 175 NILL 168 FDEV 159 \LFCloseFile 152 FDEV 144 FDEV 133 DSK 120 NILL 113 FDEV 105 \LFCloseFile 98 FDEV 90 FDEV 79 DSK 10 WITH.MONITOR 4 \LFtopMonitor) ( 65 "Directory already created" 38 "Non-pilot volume") CREATEDSKDIRECTORY :D8 (P 1 SI::*RESETFORMS* P 0 SI::*LOCKED-MONITOR* I 1 smashDirectory I 0 volName)  g $(22 SI::MONITOR-UNWIND 17 \MVLIST 12 CREATEDSKDIRECTORYA0001) (7 SI::MONITOR-UNWIND) () PURGEDSKDIRECTORYA0001 :D8 (NAME SI::*UNWIND-PROTECT* P 6 \INTERRUPTABLE I 0 SI::*CLEANUP-FORMS* F 7 volName F 8 dontDeleteFiles) 0`hg Whi g BH o IhdIlJh[3WgggHlHll( \ZLKLl H.` o` L ` Khd` o` M ` H h(300 \LFCloseDevice 294 \LFFindDirectoryVol 288 \LFPurgeDirectory 277 PRIN1 267 DELFILE 260 PRIN1 244 TERPRI 225 PRIN1 215 CLOSEF 208 PRIN1 192 TERPRI 178 \PFGetVol 173 \GETBASEFIXP 126 FILDIR 121 PACKFILENAME 116 \PFFetchString 54 ERROR 43 \PFPilotVolumeP 34 \GETDEVICEFROMHOSTNAME 24 \LFEntryPoint 15 OBTAIN.MONITORLOCK) (272 PROMPTWINDOW 255 PROMPTWINDOW 239 PROMPTWINDOW 220 PROMPTWINDOW 203 PROMPTWINDOW 187 PROMPTWINDOW 166 FileDescriptor 159 STREAM 151 FileDescriptor 144 STREAM 136 STREAM 101 DIRECTORY 96 DSK 91 HOST 64 FDEV 29 DSK 10 WITH.MONITOR 4 \LFtopMonitor) ( 250 "Deleting " 198 "Closing " 49 "Non-pilot volume") PURGEDSKDIRECTORY :D8 (P 1 SI::*RESETFORMS* P 0 SI::*LOCKED-MONITOR* I 1 dontDeleteFiles I 0 volName)  g $(22 SI::MONITOR-UNWIND 17 \MVLIST 12 PURGEDSKDIRECTORYA0001) (7 SI::MONITOR-UNWIND) () LISPDIRECTORYPA0001 :D8 (NAME SI::*UNWIND-PROTECT* I 0 SI::*CLEANUP-FORMS* F 0 volumeName) <`hg dgdgPhi d hh(53 \LFDirectoryP 46 \LFEntryPoint 20 MACHINETYPE 15 OBTAIN.MONITORLOCK) (34 DOVE 26 DANDELION 10 WITH.MONITOR 4 \LFtopMonitor) () LISPDIRECTORYP :D8 (P 1 SI::*RESETFORMS* P 0 SI::*LOCKED-MONITOR* I 0 volumeName)  g $(22 SI::MONITOR-UNWIND 17 \MVLIST 12 LISPDIRECTORYPA0001) (7 SI::MONITOR-UNWIND) () VOLUMES :D8 NIL Vdgdg@hi @*d[lKll( IHhZH&J(66 MKATOM 61 U-CASE 56 \PFFetchString 37 \PFGetVols 29 \LFEntryPoint 4 MACHINETYPE) (18 DOVE 10 DANDELION) () VOLUMESIZE :D8 (L (1 recompute 0 volName)) @ HH(5 \LFEntryPoint) NIL () \DFSCurrentVolume :D8 NIL +hi HlHll(  (40 MKATOM 35 U-CASE 29 \PFFetchString 11 \PFCurrentVol 6 \LFEntryPoint) NIL () \DFSFreeDiskPagesA0001 :D8 (NAME SI::*UNWIND-PROTECT* I 0 SI::*CLEANUP-FORMS* F 0 volName F 1 recompute) `hg P Q (27 \PFFreeDiskPages 21 \LFEntryPoint 15 OBTAIN.MONITORLOCK) (10 WITH.MONITOR 4 \LFtopMonitor) () \DFSFreeDiskPages :D8 (P 1 SI::*RESETFORMS* P 0 SI::*LOCKED-MONITOR* I 1 recompute I 0 volName)  g $(22 SI::MONITOR-UNWIND 17 \MVLIST 12 \DFSFreeDiskPagesA0001) (7 SI::MONITOR-UNWIND) () \LFEntryPoint :D8 (L (2 dontDefault 1 noVolName 0 volName)) @@d3 @ dgdgo o A1@ @h Bhh H o Hh(124 ERROR 108 \LFFindDirectoryVol 90 \PFGetLVPage 85 \LFNormalizeVolumeName 75 ERROR 64 \PFVersionOK 59 \PFEnsureInitialized 53 ERROR 25 MACHINETYPE 19 \ILLEGAL.ARG 12 STRINGP) (40 DOVE 31 DANDELION) ( 119 "Volume not on local disk" 70 "Wrong Pilot version on disk" 48 "Wrong machinetype") \LFNormalizeVolumeName :D8 (L (0 volName)) o@ @ @(17 \LFParseFileName 10 STRPOS) NIL ( 4 "{") \LFCreateDevice :D8 NIL bg ;`/`g`g``dk dgdgdgdgdgbdgDdgdgdg^dgFdg`dgdgdg dg dgdgdgdg dgRdgPdgNdgHdgBdg@dg>dgHk 3 ZHkJ (117 PACKFILENAME.STRING 111 U-CASE 106 SUBSTRING 90 LASTCHPOS 73 U-CASE 68 \PFFetchString 35 \LFFindDirectoryVol 24 \LFParseFileName 15 OBTAIN.MONITORLOCK) (78 NAME 53 DIRECTORY 48 DSK 43 HOST 10 WITH.MONITOR 4 \LFtopMonitor) () \LFDirectoryNameP :D8 (P 1 SI::*RESETFORMS* P 0 SI::*LOCKED-MONITOR* I 0 DirSpec)  g $(22 SI::MONITOR-UNWIND 17 \MVLIST 12 \LFDirectoryNamePA0001) (7 SI::MONITOR-UNWIND) () \LFTruncateFile :D8 (L (2 OFFSET 1 PAGE# 0 STREAM) P 0 \INTERRUPTABLE) @ A3 @bB3 @b@@ N@kI@n@@l AknBnknON@O @M AnBMպk[J@j Kk԰@L @A@B@ @l h(229 \PFSaveBuffers 224 \PFGetVol 219 \GETBASEFIXP 199 \LFUpdateLeaderPage 173 \SETFILEPTR 160 \BOUT 137 \SETFILEPTR 129 \LFExtendFile 94 \GETBASEFIXP 5 \UPDATEOF) (212 FileDescriptor 205 STREAM 190 STREAM 181 STREAM 85 STREAM 76 STREAM 64 STREAM 51 FDEV 44 STREAM 30 STREAM 15 STREAM) () \LFRenameFileA0001 :D8 (NAME SI::*UNWIND-PROTECT* I 0 SI::*CLEANUP-FORMS* F 4 FILESPEC F 5 dir F 6 NEW-NAME F 7 OLD-NAME) `hg Wg 1HHTU T c JocHTUJ HIHU HJHVH[lKlnV Hl H (177 \LFWriteLeaderPage 171 \PUTBASEFIXP 166 DAYTIME 150 \PFReplaceString 145 \LFFileName 140 \LFUnpackName 97 \LFRemoveDirEntry 81 \LFMakeDirEntry 58 \LFFullFileName 49 \LFFindDirHole 27 \LFGetStreamForFile 15 OBTAIN.MONITORLOCK) (157 STREAM 121 STREAM 112 STREAM 103 STREAM 87 STREAM 36 STREAM 22 OLD 10 WITH.MONITOR 4 \LFtopMonitor) ( 67 "FILE SYSTEM RESOURCES EXCEEDED") \LFRenameFile :D8 (L (2 NEW-DEVICE 0 OLD-DEVICE) P 5 SI::*RESETFORMS* P 4 SI::*LOCKED-MONITOR* P 3 FILESPEC P 2 dir I 3 NEW-NAME I 1 OLD-NAME) @dBABC AA@Ag@lIh@lHrAg Al A  Cg JC  2 g $AoCl hC@ABC (187 \GENERIC.RENAMEFILE 174 \LISPERROR 153 SI::MONITOR-UNWIND 148 \MVLIST 143 \LFRenameFileA0001 127 \LFFindDirectory 120 \LFParseFileName 110 \LFFileSpec 99 \LFFindDirectory 92 \LFParseFileName 85 \LISPERROR 73 \LFFileSpec 12 \GENERIC.RENAMEFILE) (138 SI::MONITOR-UNWIND 105 NEW 68 OLD 48 OLD 39 FDEV 29 STREAM 18 FDEV) ( 164 "FILE SYSTEM RESOURCES EXCEEDED") \LFFindDirectory :D8 (L (0 VOL)) @ dd (14 \LFDirectoryP 5 \LFFindDirectoryVol) NIL () \LFFindDirectoryVol :D8 (L (0 VOL)) @2HZShd[_h@dn/@d3 b @d3 @ b@ @ @IJJH J\ LiK(126 \LFDirectoryP 113 \APPEND2 97 \LFDirectoryP 87 SHOULDNT 79 \PFGetLVPage 72 STRINGP 55 \PFGetVol 12 \PFCurrentVol 7 \PFGetVols) (33 VMEMPAGEP) () \LFParseFileName :D8 (L (0 FULLNAME)) `@ ]hNhdg9dgMX*dgMYdgMZgM[MioH \gHdkLdk L HLk LoIoJh1 NO jK &h)_OOh__N^O&_K h(222 MKATOM 177 NCHARS 170 CONCATLIST 134 SUBSTRING 122 SUBSTRING 102 STRPOS 8 UNPACKFILENAME.STRING) (108 PARSEDFILENAME 76 VERSION 63 EXTENSION 48 NAME 33 DIRECTORY 24 HOST) ( 148 "." 142 ">" 96 ">") \LFMakeVolumeDirectory :D8 (L (1 DONTOPEN 0 vol) P 4 \INTERRUPTABLE P 0 \INTERRUPTABLE) @@ `dJ@ dlI dn'@dlj @K`dj dlj dll2 ihl @ Kgggk h @n'@J Ah@ (170 \LFDirectoryP 159 \PFInsertDirectoryID 148 \LFMakeLeaderPage 142 PACKFILENAME.STRING 119 \PFSaveBuffers 112 \LISPERROR 99 \PFNewPages 93 \PUTSWAPPEDFIXP 81 \PUTSWAPPEDFIXP 70 \PUTSWAPPEDFIXP 53 \PUTBASEFIXP 36 \PUTBASEFIXP 26 \PFVolumeNumber 8 \LFGenFileID) (136 VERSION 131 DIRECTORY 126 NAME 62 |PageGroupTYPE#| 14 |FileDescriptorTYPE#|) () \LFDirectoryP :D8 (L (0 vol)) @@ YI@ @ @n'@ `@n'@ dJ@ dlK dn'@gggk h Xd3l%Hg Hn4H @H (194 \LFPutDirectory 187 \OPENFILE 170 \SETACCESS 141 \LFOpenOldFile 135 PACKFILENAME 106 \PUTBASEFIXP 96 \PFVolumeNumber 84 \PFFindDirectoryID 63 \PFFindDirectoryID 48 \PFPilotVolumeP 36 \LFGetDirectory 8 \LFGetDirectory) (176 STREAM 165 BOTH 150 STREAM 129 VERSION 124 DIRECTORY 119 NAME 74 |FileDescriptorTYPE#| 29 FileDescriptor 22 STREAM 14 STREAM) () \LFPurgeDirectory :D8 (L (0 vol)) a@ @n'@ !HL@n'@ `dH@ dlJ dn'@YlI @Ij h(93 \PFTrimHelper 84 \PUTBASEFIXP 79 \PFFindFileSize 57 \PUTBASEFIXP 47 \PFVolumeNumber 29 \PFRemoveDirectoryID 14 \PFFindDirectoryID 5 \LFCloseDirectory) (71 FileDescriptor 35 |FileDescriptorTYPE#|) () \LFCloseDirectory :D8 (L (0 vol)) @ @ @h (25 \LFPutDirectory 18 FORGETPAGES 13 \LFGetDirectory 5 \LFGetDirectory) NIL () \LFMakeDirEntry :D8 (L (3 POS 2 DirStream 1 UNAME 0 stream) P 5 \INTERRUPTABLE) A AHl YBC B jB B B IB B@ BAZK JKl BH AdBL BCk Bk @CB h(167 FORCEOUTPUT 151 \BOUT 143 \SETFILEPTR 129 \BOUT 113 \BOUT 105 \BOUT 94 \BOUT 78 \LFDWOUT 53 \LFDirectoryScrambled 40 \LFDirectoryScrambled 29 \LFCheckBang 23 \SETFILEPTR 8 LENGTH) (158 STREAM 71 FileDescriptor 64 STREAM) () \LFRemoveDirEntry :D8 (L (1 dirStream 0 stream) P 0 \INTERRUPTABLE) A@ A Aj @A A@J A  LlW<YIW<ZJ[jKk LW>l k W>l W@ O6O4j l O6O6W>:'O6l]MW>: O6O6jiol W<O4lO6O6W<^N_dOO W<lO6dO6jj1 jO6W<_OO6O6 W<lO6l_OW<_O_dOO lj__OOO4OO6OhOk_i O"lO4O4k j _$O$W>:O4jd O4lW<_&O& O4dO4O8:O4j O4O4O6l_(O(:lO4O4O6l_*O*:SO4W<_,O,jj4W<_.O.W<_0O0W<_2O2j h(831 \VFMInsert 698 \VFMDelete 675 \PUTSWAPPEDFIXP 648 \VFMInsert 619 \VFMGet 612 \PUTSWAPPEDFIXP 590 \PUTSWAPPEDFIXP 573 \ALLOCBLOCK 561 \FZEROP 533 \VFMDelete 524 \FZEROP 431 \PUTSWAPPEDFIXP 375 \PUTSWAPPEDFIXP 328 \FZEROP 295 \PUTSWAPPEDFIXP 290 \PUTSWAPPEDFIXP 238 \LISPERROR 161 \VFMGet 151 \VFMContextSet 141 \GETBASEFIXP 127 \ALLOCBLOCK 103 \PUTSWAPPEDFIXP 47 \PUTSWAPPEDFIXP 31 \ALLOCBLOCK 15 OBTAIN.MONITORLOCK) (814 PageGroup 798 PageGroup 782 PageGroup 760 PageGroup 661 PageGroup 635 FileDescriptor 583 FileDescriptor 483 PageGroup 406 PageGroup 382 PageGroup 350 PageGroup 302 PageGroup 267 PageGroup 246 PageGroup 204 FileDescriptor 180 FileDescriptor 134 FileDescriptor 112 FileDescriptor 73 PageGroup 59 PageGroup 40 FileDescriptor 10 WITH.MONITOR 4 \VFMmonitor) ( 231 "Page group not found") \VFMDeletePageGroup :D8 (P 1 SI::*RESETFORMS* P 0 SI::*LOCKED-MONITOR* I 2 groupPtr I 1 filePtr I 0 vol)  g $(22 SI::MONITOR-UNWIND 17 \MVLIST 12 \VFMDeletePageGroupA0001) (7 SI::MONITOR-UNWIND) () \VFMGetPageGroupA0001 :D8 (NAME SI::*UNWIND-PROTECT* P 0 \INTERRUPTABLE I 0 SI::*CLEANUP-FORMS* F 9 filePtr F 10 filePage F 11 vol) `hg lk YdW IlW IWl k W KJj l KKW:_`KKdL KKdlM Kl^NW:KlЀK_O_dlO (211 \PUTSWAPPEDFIXP 159 \PUTSWAPPEDFIXP 140 \PUTSWAPPEDFIXP 97 \VFMGet 89 \VFMContextSet 80 \ALLOCBLOCK 56 \PUTSWAPPEDFIXP 44 \PUTSWAPPEDFIXP 28 \ALLOCBLOCK 15 OBTAIN.MONITORLOCK) (178 FileDescriptor 124 |PageGroupTYPE#| 114 FileDescriptor 65 FileDescriptor 37 FileDescriptor 10 WITH.MONITOR 4 \VFMmonitor) () \VFMGetPageGroup :D8 (P 1 SI::*RESETFORMS* P 0 SI::*LOCKED-MONITOR* I 2 filePage I 1 filePtr I 0 vol)  g $(22 SI::MONITOR-UNWIND 17 \MVLIST 12 \VFMGetPageGroupA0001) (7 SI::MONITOR-UNWIND) () \VFMInsertPageGroupA0001 :D8 (NAME SI::*UNWIND-PROTECT* P 0 \INTERRUPTABLE I 0 SI::*CLEANUP-FORMS* F 18 groupPtr F 19 filePtr F 20 vol) `hg 0lk ZdW& JlW$YI JW&l k W( LKj l ljNMLNKNhNk^iKj LKj l ĿKKLLW$_OLL:KKLL:&KW$_Oj LKj l ĿKlW$_O lj__OOLOKOhOk_i-W$_OW$_O:Kjd lj__OOLOKOhOk_i:Kj _ O LLLl_"O"LL: Kj h(472 \VFMDelete 424 \VFMGet 373 \VFMInsert 288 \PUTSWAPPEDFIXP 259 \VFMGet 250 \VFMInsert 164 \VFMGet 155 \VFMDelete 112 \VFMGet 104 \VFMContextSet 95 \ALLOCBLOCK 71 \PUTSWAPPEDFIXP 47 \PUTSWAPPEDFIXP 31 \ALLOCBLOCK 15 OBTAIN.MONITORLOCK) (354 PageGroup 338 PageGroup 274 PageGroup 235 PageGroup 190 PageGroup 80 FileDescriptor 59 PageGroup 40 FileDescriptor 10 WITH.MONITOR 4 \VFMmonitor) () \VFMInsertPageGroup :D8 (P 1 SI::*RESETFORMS* P 0 SI::*LOCKED-MONITOR* I 2 groupPtr I 1 filePtr I 0 vol)  g $(22 SI::MONITOR-UNWIND 17 \MVLIST 12 \VFMInsertPageGroupA0001) (7 SI::MONITOR-UNWIND) () \VFMContextSet :D8 (L (0 vol)) @NIL (5 \VFMvolumeHandle) () \VFMCreateVPage :D8 (P 3 \INTERRUPTABLE) i`dj dlj dlk `` `IH iol HZJ(88 \LISPERROR 70 \VAMAllocPageGroup 55 ELT 50 \PFVolumeNumber 34 \PUTSWAPPEDFIXP 23 \PUTSWAPPEDFIXP 12 \PUTSWAPPEDFIXP) (95 PageGroup 63 \VFMvolumeHandle 45 \VFMvolumeHandle 40 \PFFileMapFileD 4 |PageGroupTYPE#|) ( 81 "File map Btree split failed.") \VFMDelete :D8 (P 3 volumePage P 2 lastFlag P 1 firstFlag P 0 nextKey I 1 deleteLevel I 0 deleteKey) Ilk 1@Ag I @Ak JK HKAk @Ag h(69 \VFMFind 56 \VFMInsert 45 \VFMFreeVPage 36 \VFMDelete 24 \VFMFind 9 \ALLOCBLOCK) (64 \VFMDelete2 19 \VFMDelete1) () \VFMDelete1 :D8 (F 2 firstFlag F 3 lastFlag F 4 volumePage F 5 nextKey) w`j c`` c``cU`lR:S6`d``d`HII ` h(114 \VFMMarkBufferDirty 104 \VFMSmartBLT 29 EQP 10 EQP) (109 \VFMbuffer 88 \VFMhighPtr 80 \VFMbuffer 74 \VFMhighPtr 68 \VFMbuffer 54 \VFMhigh 43 \VFMinterval 36 \VFMinterval 22 \VFMbuffer 17 \VFMhighPtr 4 \VFMlowPtr) () \VFMDelete2 :D8 (F 0 nextKey F 1 deleteLevel) `Pl`l`` ``l```l```` `d`Q ````` (160 \VFMMarkBufferDirty 124 \VFMPutNext 102 \VFMSmartBLT 36 \PUTSWAPPEDFIXP) (155 \VFMbuffer 147 \VFMhighPtr 139 \VFMbuffer 134 \VFMlowPtr 129 \VFMbuffer 115 \VFMhigh 107 \VFMhigh 96 \VFMhighPtr 89 \VFMbuffer 83 \VFMhighPtr 78 \VFMbuffer 69 \VFMlowPtr 64 \VFMbuffer 59 \VFMlowPtr 54 \VFMoldPtr 46 \VFMold 41 \VFMlow 28 \VFMlow 21 \VFMlow 13 \VFMhigh 4 \VFMhigh) () \VFMFind :D8 (L (2 proc 1 level 0 key)) `@Ak l `` ``Hl`lj ```llj@` B `lT8ljIH`I`IhIkYi`A h(200 \VFMMerge 135 APPLY 127 \VFMLower 115 \VFMReadNext 73 \PUTSWAPPEDFIXP 36 \VFMGetBufferFor 13 \VFMGet) (194 \VFMold 172 \VFMmaxKey 163 \VFMinterval 140 \VFMbuffer 122 \VFMhigh 110 \VFMoldPtr 105 \VFMlowPtr 100 \VFMhighPtr 88 \VFMhigh 83 \VFMlow 78 \VFMold 64 \VFMhigh 54 \VFMhigh 46 \VFMinterval 41 \VFMbuffer 28 \VFMinterval 21 \VFMinterval 4 \VFMinterval) () \VFMFreeVPage :D8 (L (0 volumePage)) X`d@ dl@ @kHdlI `` `IH @ (85 \VFMKillBuffer 78 \VAMFreePageGroup 63 ELT 58 \PFVolumeNumber 41 \PUTSWAPPEDFIXP 23 \PUTSWAPPEDFIXP 12 \PUTSWAPPEDFIXP) (71 \VFMvolumeHandle 53 \VFMvolumeHandle 48 \PFFileMapFileD 4 |PageGroupTYPE#|) () \VFMGet :D8 (P 0 \INTERRUPTABLE I 1 getLevel I 0 getKey) Adliol AlAl k Yd`lĿIl`\`[ Il`lĿ`A l @` @`l @Ag A (163 ELT 157 \VFMGetInterval 151 \VFMFind 138 \VFMLower 123 \VFMLower 109 ELT 103 \VFMGetInterval 78 \PUTSWAPPEDFIXP 43 \ALLOCBLOCK 23 \LISPERROR) (146 \VFMGet1 130 \VFMinterval 118 \VFMinterval 98 \VFMinterval 88 \VFMmaxKey 70 \VFMvolumeHandle 63 \VFMvolumeHandle 50 \VFMnullKey) ( 16 "Can't find BTree entry") \VFMGet1 :D8 (F 3 getLevel) GS !H6`HIlĿHl`` `HlJlh(52 \PUTSWAPPEDFIXP 10 ELT 4 \VFMGetInterval) (58 \VFMhigh 44 \VFMhigh 37 \VFMhigh 21 \VFMlow) () \VFMInsert :D8 (P 0 splitFlag I 2 insertLevel I 1 insertVolumePage I 0 insertKey) )@Bg H@B @Bg h(37 \VFMFind 24 \VFMSplit 14 \VFMFind) (32 \VFMInsert1 9 \VFMInsert1) () \VFMInsert1 :D8 (F 0 insertLevel F 1 splitFlag F 2 insertKey F 3 insertVolumePage) `lch``I``ll```` R``P -``l```` `SP ````` h(193 \VFMMarkBufferDirty 157 \VFMPutNext 144 \VFMSmartBLT 99 \VFMPutNext 76 \VFMSmartBLT) (188 \VFMbuffer 180 \VFMhighPtr 172 \VFMbuffer 167 \VFMlowPtr 162 \VFMbuffer 150 \VFMhigh 138 \VFMhighPtr 131 \VFMbuffer 125 \VFMhighPtr 120 \VFMbuffer 111 \VFMlowPtr 106 \VFMbuffer 90 \VFMhigh 83 \VFMhigh 70 \VFMhighPtr 63 \VFMbuffer 57 \VFMhighPtr 52 \VFMbuffer 40 \VFMlowPtr 35 \VFMbuffer 24 \VFMbuffer 19 \VFMlowPtr 4 \VFMbuffer) () \VFMLower :D8 (L (1 B 0 A)) e@@AA@@AA$jdHIiIHIhHI/HI:*KJ%ljMLAM`MhMk]iNIL (83 \VFMmaxKey) () \VFMMerge :D8 (P 2 mergeFlag P 1 rightInterval P 0 leftInterval I 1 mergeLevel I 0 mergeKey) al k l k H@Ak l HlAg HlAk JII IdIAk h(93 \VFMInsert 76 \VFMFreeVPage 62 \VFMDelete 50 \VFMFind 32 \VFMGet 19 \ALLOCBLOCK 9 \ALLOCBLOCK) (45 \VFMMerge1) () \VFMMerge1 :D8 (F 2 rightInterval F 3 leftInterval F 4 mergeLevel F 5 mergeFlag)  R`l SS dXTl:`jl``c 2`H`d `d````l`H`` `d``` `d``d``RIlĿ` ` h(263 \VFMMarkBufferDirty 253 \VFMMarkBufferDirty 196 \VFMSmartBLT 165 \VFMSmartBLT 115 \VFMReadNext 88 \VFMSmartBLT 23 \VFMGetBufferFor) (269 \VFMxtraBuffer 258 \VFMxtraBuffer 248 \VFMbuffer 236 \VFMlow 227 \VFMlowPtr 219 \VFMbuffer 210 \VFMlowPtr 202 \VFMxtraBuffer 190 \VFMlowPtr 183 \VFMbuffer 177 \VFMlowPtr 171 \VFMbuffer 160 \VFMlowPtr 155 \VFMbuffer 148 \VFMxtraBuffer 133 \VFMxtraBuffer 126 \VFMbuffer 121 \VFMlowPtr 102 \VFMbuffer 94 \VFMxtraBuffer 80 \VFMbuffer 73 \VFMxtraBuffer 60 \VFMxtraBuffer 53 \VFMbuffer 42 \VFMxtraBuffer 28 \VFMxtraBuffer 8 \VFMinterval) () \VFMPutNext :D8 (L (2 level 1 volumePage 0 key)) ``l``@l`lA ```l`lB``l k ZdHlĿJl`` JlIlĿ ` (163 \VFMMarkBufferDirty 153 SETA 137 \PUTSWAPPEDFIXP 106 \ALLOCBLOCK 82 \VFMGetInterval 45 \PUTSWAPPEDFIXP) (158 \VFMbuffer 129 \VFMlow 122 \VFMlow 93 \VFMlow 88 \VFMold 77 \VFMlowPtr 69 \VFMoldPtr 61 \VFMlow 55 \VFMlowPtr 50 \VFMbuffer 36 \VFMlow 27 \VFMlow 22 \VFMoldPtr 17 \VFMlowPtr 9 \VFMlow 4 \VFMold) () \VFMReadNext :D8 (P 0 \INTERRUPTABLE) ``iol ``l```l`d`#```l`l``l`lj (149 \PUTSWAPPEDFIXP 30 \LISPERROR) (140 \VFMhigh 132 \VFMmaxKey 127 \VFMhigh 121 \VFMhighPtr 113 \VFMhighPtr 104 \VFMhighPtr 99 \VFMbuffer 94 \VFMhigh 83 \VFMbuffer 77 \VFMlowPtr 72 \VFMhighPtr 64 \VFMhigh 59 \VFMlow 54 \VFMoldPtr 49 \VFMlowPtr 41 \VFMlow 36 \VFMold 9 \VFMbuffer 4 \VFMhighPtr) ( 23 "Read too far in ReadNext") \VFMSplit :D8 (P 1 page P 0 keyStone I 1 splitLevel I 0 splitKey) +lk @Ag HIAk h(39 \VFMInsert 29 \VFMFind 14 \VFMCreateVPage 9 \ALLOCBLOCK) (24 \VFMSplit1) () \VFMSplit1 :D8 (F 2 page F 3 keyStone) R j``Hl`lj ``l``````HII``S`l` ` h(158 \VFMMarkBufferDirty 148 \VFMMarkBufferDirty 53 \VFMReadNext 48 \PUTSWAPPEDFIXP 5 \VFMGetBufferFor) (164 \VFMxtraBuffer 153 \VFMxtraBuffer 143 \VFMbuffer 135 \VFMlow 127 \VFMlowPtr 122 \VFMbuffer 105 \VFMlowPtr 98 \VFMbuffer 93 \VFMxtraBuffer 87 \VFMlowPtr 82 \VFMbuffer 77 \VFMxtraBuffer 64 \VFMbuffer 59 \VFMhighPtr 39 \VFMhigh 29 \VFMhigh 21 \VFMinterval 16 \VFMhighPtr 10 \VFMxtraBuffer) () \VFMGetBufferFor :D8 (L (0 VOLPAGENUM)) @ 1Hs`d`dl@ l dKdjX``@H `` YZIhiJ H`(114 \VFMSaveBuffer 99 FNTH 83 \PFGetFileMapPage 35 \PUTBASEFIXP 5 \VFMKillBuffer) (135 \VFMbufferPool 129 \VFMbufferPool 121 \BTREEBUF 94 \VFMbufferSize 89 \VFMbufferPool 76 \BTREEBUF 69 \VFMvolumeHandle 63 \VFMbufferPool 57 \VFMbufferPool 23 \VFMvolumeHandle 16 |\BTREEBUFTYPE#|) () \VFMSaveBuffer :D8 (L (2 evenIfNotDirty 1 whichBuffers 0 notAll)) `@`bAHdHhHHIdjBIIl I Ij(80 \PFPutFileMapPage 67 \GETBASEFIXP) (87 \BTREEBUF 73 \BTREEBUF 60 \BTREEBUF 52 \BTREEBUF 36 \BTREEBUF 6 \VFMbufferPool) () \VFMClearBuffers :D8 NIL hNIL (5 \VFMbufferPool) () \VFMKillBuffer :D8 (L (0 VOLPAGENUM)) O`d#@ ```!HYhZI@ JIJ(67 \VFMCorrectBufferP 15 \VFMCorrectBufferP) (41 \VFMbufferPool 34 \VFMbufferPool 28 \VFMbufferPool 22 \VFMbufferPool 4 \VFMbufferPool) () \VFMCorrectBufferP :D8 (L (1 VOLPAGENUM 0 BUFFER)) !@`:@l A:(28 \GETBASEFIXP) (21 \BTREEBUF 12 \VFMvolumeHandle 5 \BTREEBUF) () \VFMMarkBufferDirty :D8 (L (0 BUFFERPAGE)) 8`Hhkkjhh@I:IiHXNIL (39 \BTREEBUF 18 \BTREEBUF 4 \VFMbufferPool) () \VFMCreateIntervals :D8 NIL Xg ;`/` Hj HH ` l l hdj h(78 ARRAY 64 ARRAYSIZE 52 \FZEROP 33 ARRAYORIG 9 BOUNDP) (83 \VFMintervals 59 \VFMintervals 28 \VFMintervals 21 ARRAYP 16 \VFMintervals 4 \VFMintervals) () \VFMClearIntervals :D8 NIL l jIHh`Ih IkY(23 SETA) (16 \VFMintervals) () \VFMGetInterval :D8 NIL ` 1`H 2`Hjllhdj `\`[LMN O NM`l k Zd`lĿJl`` JlIlĿ [K_MmԽ(155 SETA 140 \PUTSWAPPEDFIXP 105 \ALLOCBLOCK 81 \VFMGetBufferFor 73 SETA 44 ARRAY 23 ELT 9 \PFVolumeNumber) (132 \VFMbuffer 125 \VFMbuffer 112 \VFMnullKey 94 \VFMbuffer 86 \VFMbuffer 56 \VFMvolumeHandle 49 \VFMvolumeHandle 30 \VFMintervals 17 \VFMintervals 4 \VFMvolumeHandle) () \VFMBlankInterval :D8 NIL T` 1`H "`Hlhdj ljJIK KJl k JkZ(75 SETA 70 \ALLOCBLOCK 57 SETA 41 ARRAY 23 ELT 9 \PFVolumeNumber) (30 \VFMintervals 17 \VFMintervals 4 \VFMvolumeHandle) () \VFMSmartBLT :D8 (L (2 NWORDS 1 SBASE 0 DBASE)) UA@A@DA@=@BHAHAHA!BkjIH@IAIIkY@@ABNIL NIL () \VFMAtLoad :D8 NIL mlk Xd` Hlo lk hl k lk lk lk jddg (167 CREATE.MONITORLOCK 157 \VFMCreateIntervals 129 \ALLOCBLOCK 114 \ALLOCBLOCK 99 \ALLOCBLOCK 84 \ALLOCBLOCK 63 \ALLOCBLOCK 46 \PUTSWAPPEDFIXP 31 \PUTSWAPPEDFIXP 19 \ALLOCBLOCK) (172 \VFMmonitor 162 \VFMmonitor 152 \VFMhighPtr 146 \VFMlowPtr 140 \VFMoldPtr 134 \VFMhigh 119 \VFMlow 104 \VFMold 89 \VFMinterval 74 \VFMvolumeHandle 68 \VFMnullKey 53 \VFMmaxKey 26 \VFMmaxID 6 \VFMmaxID) ( 41 8388606) (PRETTYCOMPRINT LOCALFILECOMS) (RPAQQ LOCALFILECOMS ((* ;;; "This is the Dandelion/Dove local hard disk file system.") (DECLARE%: EVAL@COMPILE DONTCOPY (FILES (SOURCE) DISKVMEMDECLS) (FILES MESATYPES) (LOCALVARS . T)) (* ;;; "Declare low-level data types on which all file system modules depend.") (FNS \PFFetchString \PFReplaceString) (DECLARE%: EVAL@COMPILE DONTCOPY (COMS * PILOTFILECOMPILECOMS)) (INITRECORDS PageGroup FileDescriptor) (* ;;; "Define the various modules of the file system.") (COMS * LFCOMS) ( COMS * LFDIRECTORYCOMS) (COMS * SCAVENGEDSKDIRECTORYCOMS) (COMS * LFPILOTFILECOMS) (COMS * LFALLOCATIONMAPCOMS) (COMS * LFFILEMAPCOMS) (PROP MAKEFILE-ENVIRONMENT LOCALFILE))) (/DECLAREDATATYPE (QUOTE PageGroup) (QUOTE (SWAPPEDFIXP SWAPPEDFIXP SWAPPEDFIXP)) (QUOTE ((PageGroup 0 SWAPPEDFIXP) (PageGroup 2 SWAPPEDFIXP) (PageGroup 4 SWAPPEDFIXP))) (QUOTE 6)) (/DECLAREDATATYPE (QUOTE FileDescriptor) (QUOTE (POINTER FIXP WORD FIXP POINTER)) (QUOTE (( FileDescriptor 0 POINTER) (FileDescriptor 2 FIXP) (FileDescriptor 4 (BITS . 15)) (FileDescriptor 5 FIXP) (FileDescriptor 8 POINTER))) (QUOTE 10)) (RPAQQ LFCOMS ((* ;;; "This module handles the interface to the device-independent part of the file system: it provides a vector of standard device-specific file system operations. This used to be the sole contents of the file LOCALFILE." ) (DECLARE%: EVAL@COMPILE DONTCOPY (* ;; "File system datatypes") (CONSTANTS (lispFileVersion 2) ( leaderPageSeal 54321)) (RECORDS LFDEV DLIONSTREAM LeaderPage) (* ;; "Error mechanism") (MACROS DiskError)) (* ;; "Public entry") (FNS CREATEDSKDIRECTORY PURGEDSKDIRECTORY LISPDIRECTORYP VOLUMES VOLUMESIZE) (FNS \DFSCurrentVolume \DFSFreeDiskPages) (FNS \LFEntryPoint \LFNormalizeVolumeName) (* ;; "Device management") (FNS \LFCreateDevice \LFOpenDevice \LFCloseDevice) (GLOBALVARS \LFdevice \LFtopMonitor \LFrunSize) (P (\LFCreateDevice)) (INITVARS (\LFtopMonitor (CREATE.MONITORLOCK (QUOTE topMonitor))) (\LFrunSize 20)) (* ;; "Device methods") (FNS \LFOpenFile \LFGetStreamForFile \LFOpenOldFile \LFGenFileID \LFCreateFile \LFMakeLeaderPage \LFUpdateLeaderPage \LFWriteLeaderPage) ( FNS \LFCloseFile) (FNS \LFDeleteFile) (FNS \LFReadPages) (FNS \LFWritePages \LFExtendFileIfNecessary \LFExtendFile) (FNS \LFGetFileInfo \LFSetFileInfo) (FNS \LFGetFileName) (FNS \LFEventFn) (FNS \LFDirectoryNameP) (FNS \LFTruncateFile) (FNS \LFRenameFile))) (\LFCreateDevice) (RPAQ? \LFtopMonitor (CREATE.MONITORLOCK (QUOTE topMonitor))) (RPAQ? \LFrunSize 20) (RPAQQ LFDIRECTORYCOMS ((* ;;; "This module handles the Lisp directory part of the file system. The Lisp directory maps literal file names onto Pilot file ID numbers (which can then be looked up in the volume file map). This module used to be in the file LFDIRECTORY." ) (* ;; "Known problem: the directory is currently stored as a list rather than a tree, so searches in a large directory take quite some time." ) (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (directorySize 50)) (RECORDS GenerateFileState GeneratedFile DIRSEARCHSTATE PARSEDFILENAME ExpandedName DFSFileSpec) (MACROS CONDCONCAT) (MACROS PRINTDIRECTORY)) (* ;; "Format of a directory entry is : ") (* ;; "bang (check ; should always contain !) ") (* ;; "type (0 = hole, 1 = file) ") (* ;; "entryLength ") (* ;; "fileID (4 bytes) ") (* ;; "version# (2 bytes) ") (* ;; "filenameLength ") (* ;; "filename (filenameLength bytes)") (* ;; "Routines for mapping file names onto volumes and directories") (FNS \LFFindDirectory \LFFindDirectoryVol \LFParseFileName) (* ;; "Creating and opening directories") (FNS \LFMakeVolumeDirectory \LFDirectoryP \LFPurgeDirectory \LFCloseDirectory) (* ;; "Functions for making, deleting, and finding entries in a directory.") (FNS \LFMakeDirEntry \LFRemoveDirEntry \LFReadFileID \LFFindDirHole \LFMakeDirHole \LFCheckBang) (FNS \LFDirectorySearch \LFVersions) (FNS \LFFileSpec \LFUnpackName \LFFullFileName \LFFileName) (FNS \LFDirectoryScrambled) ( FNS \LFDWIN \LFDWOUT) (* ;; "Directory enumeration") (FNS \LFGenerateFiles \LFFindNextFile \LFSortFiles \LFHighestVersions \LFFindInfo \LFReturnNextFile \LFReturnInfo) (GLOBALVARS \LFtopMonitor ) (* ;; "Holding onto directory streams") (FNS \LFGetDirectory \LFPutDirectory \LFCreateDirectories) ( GLOBALVARS \LFdirectories) (P (\LFCreateDirectories)) (* ;; "Case array manipulation") (FNS \LFINITCASEARRAY \LFCASEARRAYFETCH) (GLOBALVARS \LFCASEARRAY \DISKNAMECASEARRAY) (INITVARS ( \LFCASEARRAY (\LFINITCASEARRAY))))) (\LFCreateDirectories) (RPAQ? \LFCASEARRAY (\LFINITCASEARRAY)) (RPAQQ SCAVENGEDSKDIRECTORYCOMS ((* ;;; "This module contains routines for scavenging the Lisp directory in the event that it should become smashed. It used to be in the file SCAVENGEDSKDIRECTORY." ) (* ;; "Directory (LFDIRECTORY) level stuff") (FNS FILENAMEFROMID SCAVENGEDSKDIRECTORY SCAVENGEVOLUME \LFScavFileName \LFScavVersion) (GLOBALVARS \LFtopMonitor) (* ;; "Volume file map (LFFILEMAP) level stuff") (FNS \VFMGenerateFileIDs))) (RPAQQ LFPILOTFILECOMS ((* ;;; "This module (together with its two sub-modules, FILEMAP and ALLOCATIONMAP) define the necessary subset of the Pilot file system. This used to be contained in the file LFPILOTFILE." ) (* ;; "These functions transfer pages to and from the disk") (FNS \PFGetPhysicalVolumePage) (FNS \PFGetLogicalVolumePage \PFPutLogicalVolumePage) (FNS \PFGetMarkerPage \PFPutMarkerPage) (FNS \PFGetFreePage \PFCreateFreePage) (FNS \PFGetAllocationMapPage \PFPutAllocationMapPage) (FNS \PFGetFileMapPage \PFPutFileMapPage) (FNS \PFGetPage \PFPutPage \PFCreatePage) (FNS \PFTransferFilePage) (FNS \PFTransferPage) (DECLARE%: DONTEVAL@LOAD (P (\LOCKFN (QUOTE \PFTransferPage )))) (RESOURCES label) (* ;; "File Descriptor pool for system files") (FNS \PFCreateFileDescriptors \PFInitFileDescriptors) (GLOBALVARS \PFLogicalVolumeFileD \PFMarkerFileD \PFFreeFileD \PFAllocationMapFileD \PFFileMapFileD) (P (\PFCreateFileDescriptors)) (* ;; "Physical volume interface") (FNS \PFCreatePhysicalVolume) (GLOBALVARS \PhysVolumePage) (P ( \PFCreatePhysicalVolume)) (* ;; "Interface to logical volumes,") (FNS \PFCreateVols \PFInitializeVols \PFGetVols \PFGetVol \PFVolumeNumber) (GLOBALVARS \DFSLogicalVolumes \DFSLogicalVolumeHash) (P ( \PFCreateVols)) (FNS \PFGetLVPage) (* ;; "Pilot integrity") (FNS \PFVersionOK \PFPilotVolumeP) (* ;; "Pilot initialization") (FNS \PFEnsureInitialized) (GLOBALVARS \PFInitialized) (INITVARS ( \PFInitialized NIL) \PFDebugFlag) (P (ADDTOVAR \SYSTEMCACHEVARS \PFInitialized)) (P ( \PFEnsureInitialized)) (* ;; "Root directory management") (FNS \PFFindDirectoryID \PFInsertDirectoryID \PFRemoveDirectoryID) (FNS \PFFindRootDirEntry \PFAddRootDirEntry \PFRemoveRootDirEntry \PFFindRootDirEntryNum \PFPatchRootDirEntries) (FNS \PFGetRootDirectory \PFPutRootDirectory \PFCreateRootDirectory \PFPurgeRootDirectory) (FNS \GetRootDirectoryType \PFPutRootDirectoryType) (* ;; "Pilot file management") (FNS \PFNewPages \PFTrimHelper \PFFindPageAddr \PFFindFileSize \PFFreeDiskPages \PFRoomForFile \PFSaveBuffers) (* ;; "Lisp vmem") (FNS \PFCurrentVol) (* ;; "Display stub; real volume display stuff is implemented on a library package called VOLUMEDISPLAY.") (FNS \PFDsplyVolumes))) (\LOCKFN (QUOTE \PFTransferPage)) (PUTDEF (QUOTE label) (QUOTE RESOURCES) (QUOTE (NEW (create Label) GET (CL:LOCALLY (DECLARE ( GLOBALVARS \label.GLOBALRESOURCE)) (if \label.GLOBALRESOURCE then (PROG1 \label.GLOBALRESOURCE ( \CLEARWORDS \label.GLOBALRESOURCE (MESASIZE Label)) (SETQ \label.GLOBALRESOURCE NIL)) else ( NEWRESOURCE label)))))) (\PFCreateFileDescriptors) (\PFCreatePhysicalVolume) (\PFCreateVols) (RPAQ? \PFInitialized NIL) (RPAQ? \PFDebugFlag NIL) (ADDTOVAR \SYSTEMCACHEVARS \PFInitialized) (\PFEnsureInitialized) (RPAQQ LFALLOCATIONMAPCOMS ((* ;;; "Implements the 1108 file system volume file map. Very roughly translates the Pilot file VolAllocMapImpl.mesa. Used to be contained in the separate file LFALLOCATIONMAP. Must be loaded after the PILOTFILE module." ) (* ;; "Needed improvement : Restructure interface with FILEIO so that a page can be allocated and written in one fell swoop. MFile/Pilot have a special interface for this." ) (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (BITSPERPAGE 4096))) (* ;; "Public routines") (FNS \VAMAllocPageGroup \VAMFreePageGroup \VAMInit \VAMRecomputeFreePageCount) (* ;; "Private routines:") ( FNS \VAMFilePageNumber \VAMEnoughSpace \VAMFindFreePages \VAMCheckEndOfVol \VAMUpdateVAM \VAMAdjustGroup) (RESOURCES \DFSVAMpage \DFSVAMjunkPage) (GLOBALVARS \VAMmonitor) (INITVARS ( \VAMmonitor (CREATE.MONITORLOCK (QUOTE VAMmonitor)))) (* ;; "buffer management") (FNS \VAMGetVAMPageFor \VAMBufferInit \VAMBufferSave \VAMMarkBufferDirty) (GLOBALVARS \VAMbuffer \VAMbufferVolume \VAMbufferVolumePage \VAMbufferDirty) (* ;; "Initialize VAM") (P (\VAMInit)))) (PUTDEF (QUOTE \DFSVAMpage) (QUOTE RESOURCES) (QUOTE (NEW (create Page)))) (PUTDEF (QUOTE \DFSVAMjunkPage) (QUOTE RESOURCES) (QUOTE (NEW (create Page)))) (RPAQ? \VAMmonitor (CREATE.MONITORLOCK (QUOTE VAMmonitor))) (\VAMInit) (RPAQQ LFFILEMAPCOMS ((* ;;; "Implements the volume file map, which maps Pilot file ID numbers onto runs of disk pages. Roughly equivalent to the Pilot file VolFileMapImpl.mesa. Must be loaded after the PILOTFILE module. Used to be contained in a separate file called LFFILEMAP." ) (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS Key Interval Index BufferArray Buffer) (RECORDS \BTREEBUF) (CONSTANTS (maxReadPtr (DIFFERENCE (MESASIZE Buffer) (MESASIZE Index))) (treeDepth 5)) (FNS ShowIntervals)) (INITRECORDS \BTREEBUF) (* ;; "Initialization routines") (FNS \VFMInit) (* ;; "The following are public entry points to the volume file map module") (FNS \VFMDeletePageGroup \VFMGetPageGroup \VFMInsertPageGroup) (* ;; "The following are routines internal to the volume file map module.") (FNS \VFMContextSet \VFMCreateVPage \VFMDelete \VFMDelete1 \VFMDelete2 \VFMFind \VFMFreeVPage \VFMGet \VFMGet1 \VFMInsert \VFMInsert1 \VFMLower \VFMMerge \VFMMerge1 \VFMPutNext \VFMReadNext \VFMSplit \VFMSplit1) (GLOBALVARS \VFMmaxID \VFMmaxKey \VFMnullKey \VFMvolumeHandle \VFMinterval \VFMold \VFMlow \VFMhigh \VFMoldPtr \VFMlowPtr \VFMhighPtr \VFMmonitor) (* ;; "Buffer management") (FNS \VFMGetBufferFor \VFMSaveBuffer \VFMClearBuffers \VFMKillBuffer \VFMCorrectBufferP \VFMMarkBufferDirty) (GLOBALVARS \VFMbufferPool \VFMbufferSize \VFMbuffer \VFMxtraBuffer) (INITVARS (\VFMbufferSize 10)) (* ;; "Interval cache interface") (FNS \VFMCreateIntervals \VFMClearIntervals \VFMGetInterval \VFMBlankInterval) (GLOBALVARS \VFMintervals) (* ;; "BLT routine that doesn't stomp on itself for overlapping intervals") (FNS \VFMSmartBLT) (* ;; "Loading initialization") (FNS \VFMAtLoad) (P (\VFMAtLoad)))) (/DECLAREDATATYPE (QUOTE \BTREEBUF) (QUOTE (POINTER FIXP POINTER FLAG)) (QUOTE ((\BTREEBUF 0 POINTER) (\BTREEBUF 2 FIXP) (\BTREEBUF 4 POINTER) (\BTREEBUF 4 (FLAGBITS . 0)))) (QUOTE 6)) (RPAQ? \VFMbufferSize 10) (\VFMAtLoad) (PUTPROPS LOCALFILE MAKEFILE-ENVIRONMENT (:READTABLE "INTERLISP" :PACKAGE "INTERLISP")) NIL