Added a test for MUIA_Listview_SelectChange.
[AROS.git] / rom / filesys / pfs3 / fs / versionhistory.doc
blob7656f98f66078dbd9a6f9b82e195da2db85849c6
1 /* $Revision Header built automatically *************** (do not edit) ************
2 **
3 ** © Copyright by Michiel Pelt
4 **
5 ** File             : ProfFileSystem
6 ** Created on       : Wednesday, 01-May-93 23:53:02
7 ** Created by       : Michiel Pelt
8 ** Current revision : V18.4
9 **
11 ** Purpose
12 ** -------
13 **     A filesystem for the C= Amiga.
16 ** Revision V19.0
17 ** --------------
18 ** Added support for larger files and volumes
20 ** Revision V18.6
21 ** --------------
22 ** The first open source release based on 18.4 sources and updated by
23 ** the open source development team
24 **   - updated to 18.5 specs
25 **   - compiles on gcc
26 **   - bugfix for large disks
27 **   - MorphOs compatibility
28 **   - various bugfixes 
30 ** Revision V18.5
31 ** --------------
32 ** The last commercial release, PFS V5.3
34 ** Revision V18.4 bugfix
35 ** --------------
36 ** created on Saturday, 11.09.99 18:02:53  by  Michiel Pelt.   LogMessage :
37 **   - fixed deldir bugs 152, 153 and 154
38 **     (deldir datestamps and block locking)
40 ** Revision V18.3 release
41 ** --------------
42 ** created on Sunday, 13.06.99 17:48:37  by  Michiel Pelt.   LogMessage :
43 **   - Fixed bug related to rblkcluster sanity check
45 ** Revision V18.2 beta
46 ** --------------
47 ** created on Wednesday, 19.05.99 12:49:03  by  Michiel Pelt.   LogMessage :
48 **   - Fixed bugs found during test procedure
50 ** Revision V18.1 beta
51 ** --------------
52 ** created on Thursday, 13.05.99 17:12:06  by  Michiel Pelt.   LogMessage :
53 **   - Support for long filenames
55 ** Revision V17.14 beta
56 ** --------------
57 ** created on Monday, 26.04.99 17:19:25  by  Michiel Pelt.   LogMessage :
58 **   - beta warning 1 bug (142) fixed 
59 **   - device name in error messages
60 **   - 30 buffers reset to 150
61 **   - grotere reserved area schijven
63 ** Revision V17.13 beta
64 ** --------------
65 ** created on Monday, 29.03.99 10:11:37  by  Michiel Pelt.   LogMessage :
66 **   - Autoupgrade bug fixed
68 ** Revision V17.12 beta
69 ** --------------
70 ** created on Thursday, 11.03.99 12:25:03  by  Michiel Pelt.   LogMessage :
71 **   - fixed superdeldir bugs and enhanced setdeldir
72 **   - releasenumbers with mu and ds indication in format requester
74 ** Revision V17.11 beta
75 ** --------------
76 ** created on Tuesday, 09.03.99 11:46:01  by  Michiel Pelt.   LogMessage :
77 **   - fixed bug 00137
78 **   - releasenumbers in versionhistory.doc
80 ** Revision V17.10 beta
81 ** --------------
82 ** created on Saturday, 06.03.99 21:45:40  by  Michiel Pelt.   LogMessage :
83 **   - Fixed bug 00136: KB blocks didn't work
84 **   - MODE_EXTROVING: bitrovingpointer voor reserved area (00114)
86 ** Revision V17.9 beta
87 ** --------------
88 ** created on Tuesday, 23.02.99 07:44:39  by  Michiel Pelt.   LogMessage :
89 **   - Larger delete directory: zie source/doc/deldir2.doc
90 **   - Bugfix 00132, 00134, 00135
92 ** Revision V17.8
93 ** --------------
94 ** created on Saturday, 27.09.98 12:25:13  by  Michiel Pelt.   LogMessage :
95 **   - Writeprotection softprotect can be disabled by c:Lock
96 **   - Copyprotection fail results in readonly disk
97 **       - ErrorMsg from macro to function -> save > 1K
99 ** Revision V17.7 not released
100 ** --------------
101 ** created on Friday, 25.09.98 23:17:48  by  Michiel Pelt.   LogMessage :
102 **   - Release version 4.4
104 ** Revision V17.6 beta
105 ** --------------
106 ** created on Sunday, 20.09.98 18:17:39  by  Michiel Pelt.   LogMessage :
107 **   - Fixed superindex mode problems
109 ** Revision V17.5 beta
110 ** --------------
111 ** created on Monday, 14.09.98 20:12:55  by  Michiel Pelt.   LogMessage :
112 **   - Test version for Phase 5 bug
114 ** Revision V17.4 beta
115 ** --------------
116 ** created on Tuesday, 01.09.98 07:13:41  by  Michiel Pelt.   LogMessage :
117 **   - Support for TD64
118 **   - New blocktype: anode superindex, plus more bitmapindexblocks
119 **       - Error if disk > 4G en geen DS of TD64
120 **   - Fixed issues 118, 121, 123
122 ** Revision V17.3 release 4.1
123 ** --------------
124 ** created on Tuesday, 16.06.98 12:40:38  by  Michiel Pelt.   LogMessage :
125 **   - Fixed issues 116, 117: problems with formatting 4G disks.
127 ** Revision V17.2
128 ** --------------
129 ** created on Thursday, 30.05.98 17:26:23  by  Michiel Pelt.   LogMessage :
130 **   - fixed bugs 106-109 plus part of 105
131 **   - max buffers to 600
132 **       - added ACTION_IS_PFS2
134 ** Revision V17.1 beta
135 ** --------------
136 ** created on Wednesday, 27.05.98 22:02:27  by Mark Harden.   LogMessage :
137 **   - Added second DMAMask failover to include MEMF_LOCAL
139 ** Revision V17.0 beta
140 ** --------------
141 ** created on Friday, 22.05.98 23:09:01  by  Michiel Pelt.   LogMessage :
142 **   - Added datestamps, OPTION_DATESTAMP (Issue 00103)
143 **   - Updated custom packets for PFS2
144 **   - Compiled with SAS/C 6.58
145 **   - Built version for 060 (040 is the same as 020)
147 ** Revision V16.23 release
148 ** --------------
149 ** created on Wednesday, 22.04.98 20:37:38  by  Michiel Pelt.   LogMessage :
150 **   - Copyright transferred from FLD to GREED
151 **   - Changed name from AFS to PFS-II
152 **   - fixed filecorruption bug in Allocation.c
154 ** Revision V16.22 beta
155 ** --------------
156 ** created on Sunday, 19.04.98 02:33:20  by  Michiel Pelt.   LogMessage :
157 **   - fixed munglist problem reported by ATL
159 ** Revision V16.21 release
160 ** --------------
161 ** created on Wednesday, 19.02.97 21:50:39  by  Michiel Pelt.   LogMessage :
162 **   - Update procedure is aborted when error occurs (saver)
163 **   - Less requesters
165 ** Revision V16.20
166 ** --------------
167 ** created on Sunday, 18.08.96 11:36:22  by  Michiel Pelt.   LogMessage :
168 **   - Empty directoryblocks written by AllocLRU() now detectable
169 **     by ignoring dirtystate in update:RemoveEmptyDBlocks()
170 **   - Global dirty flag set on each write (better for idle signal)
172 ** Revision V16.19
173 ** --------------
174 ** created on Monday, 29.07.96 21:17:38  by  Michiel Pelt.   LogMessage :
175 **   - ACTION_ADD_IDLE_SIGNAL added
176 **   - Maskfail -> MEMF_24BITDMA
178 ** Revision V16.18
179 ** --------------
180 ** created on Sunday, 23.06.96 17:05:10  by  Michiel Pelt.   LogMessage :
181 **   - BUGFIX: When entering sleepmode flushed references were 
182 **     ignored, causing enforcer hits and crashes when awaking
184 ** Revision V16.17
185 ** --------------
186 ** created on Saturday, 08.06.96 16:15:36  by  Michiel Pelt.   LogMessage :
187 **   - Overwriting a file caused hardlinks to that file to become
188 **     corrupt (caused by NewFile())
189 **   - SetDate op deldirfile gaf 'Please Insert Volume' requester
191 ** Revision V16.16
192 ** --------------
193 ** created on Monday, 01.04.96 11:03:24  by  Michiel Pelt.   LogMessage :
194 **   - ACTION_DIE problems fixed (see dd_Quit)
196 ** Revision V16.15
197 ** --------------
198 ** created on Thursday, 14.03.96 23:20:46  by  Michiel Pelt.   LogMessage :
199 **   - bugfix: SetFileSize didn't work if #blocks remained constant
200 **   - big directory performance improvement
201 **   - fixed bug in diskchange code (FreeVec(rootblock) instead of FreeBufmem())
203 ** Revision V16.14
204 ** --------------
205 ** created on Thursday, 07.03.96 10:15:11  by  Michiel Pelt.   LogMessage :
206 **       - FreeBlocksAC: updatedisk, but no tobefreed_index update
207 **   > Fixes from 17 (Working) tree
208 **   - enforcer hit in checkupdate fixed
209 **   - format fixed
210 **   - rename muAF access fixed
211 **   - realloc anodebitmap bug fixed
212 **       - number of reserved blocks calculation
214 ** Revision V16.13
215 ** --------------
216 ** created on Monday, 19.02.96 10:12:07  by  Michiel Pelt.   LogMessage :
217 **   - Fixed DICE MakeIndex bug: CD file, Lock file/"". Fix in dd_Lock
218 **     routine (bug in this fix fixed in 16.14)
220 ** Revision V16.12      -- working tree overlap --
221 ** --------------
222 ** created on Monday, 29.01.96 23:21:31  by  Michiel Pelt.   LogMessage :
223 **   - Anodebitmap implemented
224 **     |-> less cache need and much faster file-create on large disks
226 ** Revision V16.11      -- working tree overlap --
227 ** --------------
228 ** created on Wednesday, 24.01.96 13:47:59  by  Michiel Pelt.   LogMessage :
229 **   - Notification problems fixed
230 **     Softlink problem fixed
231 **     Rootblock not updated after reinsertion of known disk
233 ** Revision V16.10
234 ** --------------
235 ** created on Friday, 29.12.95 12:05:49  by  Michiel Pelt.   LogMessage :
236 **   - ACTION_SET_ROLLOVER added
237 **   - overwriting rollover files doesn't cause them to become 
238 **     ordinary files
240 ** Revision V16.9
241 ** --------------
242 ** created on Thursday, 21.12.95 13:06:33  by  Michiel Pelt.   LogMessage :
243 **   - Several significant bugfixes
245 ** Revision V16.8
246 ** --------------
247 ** created on Monday, 11.12.95 18:35:14  by  Michiel Pelt.   LogMessage :
248 **   - Direct SCSI support
250 ** Revision V16.7
251 ** --------------
252 ** created on Saturday, 09.12.95 17:15:44  by  Michiel Pelt.   LogMessage :
253 **   - bugfix: virtualsize of rollover files was limited to 64K
254 **   - bugfix: enforcer hit when reading from .deldir
256 ** Revision V16.6
257 ** --------------
258 ** created on Monday, 04.12.95 13:24:34  by  Michiel Pelt.   LogMessage :
259 **   - Rollover files implemented
260 **   - Reserved area roving pointer stored in rootblockextension
261 **   - bugfix: format deldir creation
262 **   - bugfix: makedirentry error handling
263 **   - bugfix: crossvolume hardlinks
264 **   - various other bugfixes
266 ** Revision V16.5
267 ** --------------
268 ** created on Wednesday, 22.11.95 16:38:12  by  Michiel Pelt.   LogMessage :
269 **   - bugfix: Sleepmode was unintentionally disabled
270 **   - bugfix: ACTION_UPDATE_ANODE sent wrong result on error
271 **   - bugfix: Reserved block allocation sometimes compromised atomic commit
272 **   - afsversion field in rootblock extension used now
273 **   - bugfix: rootblock wasn't reloaded after SLEEP_MODE was left
275 ** Revision V16.4
276 ** --------------
277 ** created on Wednesday, 15.11.95 17:02:01  by  Michiel Pelt.   LogMessage :
278 **   - Rootblock extension implemented
279 **   - Postponed operations implemented
280 **   - bugfix: IsTail() could cause crash after diskchange (or uninhibit)
281 **   - bugfix: 16.3 had a bug in ChangeFileSize online dir. update
283 ** Revision V16.3
284 ** --------------
285 ** created on Tuesday, 07.11.95 14:52:17  by  Michiel Pelt.   LogMessage :
286 **   - True Atomic Update
287 **     -> only 'postponed' delete is still missing
288 **   - No volume datestamp update (ever)
290 ** Revision V16.2
291 ** --------------
292 ** created on Thursday, 12.10.95 00:23:44  by  Michiel Pelt.   LogMessage :
293 **   - new data caching algortihm, improving random write access
295 ** Revision V16.1
296 ** --------------
297 ** created on Wednesday, 04.10.95 15:02:01  by  Michiel Pelt.   LogMessage :
298 **   - preallocation for extended files implemented
299 **   - Checking allocated buffer memory against memorymask
300 **   - 2.0 now profits from memorypools too
302 ** Revision V16.0
303 ** --------------
304 ** created on Tuesday, 03.10.95 15:07:59  by  Michiel Pelt.   LogMessage :
305 **   - Merged develop tree: anodecache included
307 ** Revision V15.11
308 ** --------------
309 ** created on Thursday, 28.09.95 13:15:21  by  Michiel Pelt.   LogMessage :
310 **   - DeleteDir didn't free oldblocknr of dirty dirblocks.
312 ** Revision V15.10
313 ** --------------
314 ** created on Sunday, 17.09.95 17:28:46  by  Michiel Pelt.   LogMessage :
315 **   - deldir creation bug fixed
316 **   - CreateLink and CreateSoftLink didn't check namelength
318 ** Revision V15.9
319 ** --------------
320 ** created on Wednesday, 30.08.95 16:38:21  by  Michiel Pelt.   LogMessage :
321 **   - dd_Open now opens file dp_Arg2 argument if filename empty
322 **     (GuruBook:599)
323 **   - dd_Open returned ERROR_OBJECT_WRONG_TYPE instead of ERROR_SOFT_LINK
324 **     when opening soft linked object
325 **   - Error requester changed: only one button ('OK')
326 **   - Retry possible when Read/Write error occurs, including check if
327 **     the same disk is still present (by CheckCurrentVolumeBack())
329 ** Revision V15.8
330 ** --------------
331 ** created on Friday, 25.08.95 09:38:00  by  Michiel Pelt.   LogMessage :
332 **   - bugfix: rename .deldir
333 **   - diskchange check in RawRead & RawWrite
334 **   - rootblock not touched by Touch(), but by UpdateDisk(). Needed
335 **     because otherwise the disk won't be recognized after removal and
336 **     reinsertion.
338 ** Revision V15.7
339 ** --------------
340 ** created on Sunday, 13.08.95 11:12:07  by  Michiel Pelt.   LogMessage :
341 **       - fixed deldir related bug in delete
342 **   - fixed bug in hardlink remapping
343 **   - Improved dostohandlerinterface (performance increase)
345 ** Revision V15.6
346 ** --------------
347 ** created on Saturday, 05.08.95 16:00:21  by  Michiel Pelt.   LogMessage :
348 **   - writetofile did not free blocks when memory alloc fails
349 **   - bugfix in new startup code
350 **   - deldir automatically created if it isn't there
352 ** Revision V15.5
353 ** --------------
354 ** created on Friday, 04.08.95 16:48:03  by  Michiel Pelt.   LogMessage :
355 **   - Better memory check
356 **   - bugfix: rename should fail on volumes
357 **       - bugfix: now limiting filenamesize in rename too
358 **       - ACTION_KILL_EMPTY: delete directory with empty name if found
360 ** Revision V15.4
361 ** --------------
362 ** created on Thursday, 03.08.95 13:34:21  by  Michiel Pelt.   LogMessage :
363 **       - CUTDOWN: limit reserved area size
364 **   - Multiuser deldir
365 **   - SetOwner and SetProtection (limited) possible on deldir
366 **     (not on deldirentries)
368 ** Revision V15.3
369 ** --------------
370 ** created on Friday, 28.07.95 13:00:49  by  Michiel Pelt.   LogMessage :
371 **       - Empty dir and filenames (namelenght 0) not accepted anymore
372 **   - Implemented deldirentry validity check
373 **   - Fixed deldir related UpdateLE problem
374 **   - Filenamesize truncate in SearchInDir and SearchInDeldir
375 **       - Disksize check (rootblock->disksize field etc.)
377 ** Revision V15.2
378 ** --------------
379 ** created on Thursday, 27.07.95 10:19:20  by  Michiel Pelt.   LogMessage :
380 **   - Updated ACTION_DIE. Works now; except for the WB problem (not
381 **     solvable)
383 ** Revision V15.1
384 ** --------------
385 ** created on Monday, 24.07.95 09:19:36  by  Michiel Pelt.   LogMessage :
386 **   - Limited filename size to 31 characters 
387 **   - 'CD file' problem solved by clearing dp_Res2 field
389 ** Revision V15.0
390 ** --------------
391 ** created on Wednesday, 19.07.95 17:17:47  by  Michiel Pelt.   LogMessage :
392 **   - Deldir finished, but not entirely complete
393 **              (validity-check and diskspace freeing not yet implemented)
394 **       - bugfix: Newdir checks for disk writeprotection
395 **   - bugfix: Root-dir datestamp was not updated
396 **       - DiskInfo of an AFS disk now shows ID_INTER_FFS_DISK (was ID_DOS_DISK) 
397 **   - bugfix: double recording of size in AllocBufmemR
398 **       - bugfix: crashed if MaxTransfer wasn't a multiple of the BLOCKSIZE
399 **       - bugfix: freeing exactly one anode worth of blocks from a file could
400 **              cause an anode problem (FreeBlocks())
402 ** Revision V14.3
403 ** --------------
404 ** created on Tuesday, 13.07.95 22:32:49  by  Michiel Pelt.   LogMessage :
405 **   - Made localisable (at linktime) by using different message files
406 **   - No directorycheck in multiuser (for muFS compat.)
407 **   - ReadWrite lock now is shared
408 **   - Changed Lite (User) version
410 ** Revision V14.2
411 ** --------------
412 ** created on Friday, 07.07.95 12:14:15  by  Michiel Pelt.   LogMessage :
413 **   - Fixed syquest diskchange problem (CheckVolume & dd_Close)
414 **       - Made a V36 stackswap..
416 ** Revision V14.1
417 ** --------------
418 ** created on Thursday, 06.07.95 16:54:56  by  Michiel Pelt.   LogMessage :
419 **   - muFS protection problem fixed: Lock now accepts 'Property access'
421 ** Revision V14.0
422 ** --------------
423 ** created on Friday, 23.06.95 22:21:25  by  Michiel Pelt.   LogMessage :
424 **   - Multiuser support
426 ** Revision V13.14
427 ** --------------
428 ** created on Friday, 23.06.95 19:30:43  by  Michiel Pelt.   LogMessage :
429 **   - Added minimum (50) and maximum (300) to number of buffers
430 **       - Protection extrafields only when needed
432 ** Revision V13.13
433 ** --------------
434 ** created on Wednesday, 21.06.95 13:14:40  by  Michiel Pelt.   LogMessage :
435 **   - fixed bug in checkvolume: should be called before UpdateLE
436 **   - dd_SetProperty
438 ** Revision V13.12
439 ** --------------
440 ** created on Tuesday, 20.06.95 19:29:55  by  Michiel Pelt.   LogMessage :
441 **   - Info() and Examine() now show read only if softprotected
442 **   - FreeAnodeBlocks bug fixed
443 **   - DoNotify called before fail check (dd_CreateDir) fixed
445 ** Revision V13.11
446 ** --------------
447 ** created on Friday, 16.06.95 16:13:03  by  Michiel Pelt.   LogMessage :
448 **   - softprotect disk after error occurs
449 **     (implemented by changing ErrorMsg macro and RawWrite)
451 ** Revision V13.10
452 ** --------------
453 ** created on Friday, 16.06.95 15:28:41  by  Michiel Pelt.   LogMessage :
454 **   - fixed an UpdateLE bug in Rename
456 ** Revision V13.9
457 ** --------------
458 ** created on Friday, 16.06.95 11:52:15  by  Michiel Pelt.   LogMessage :
459 **   - added bufferPool for WriteToDisk
460 **   - removed Touch() from WriteToDisk
462 ** Revision V13.8
463 ** --------------
464 ** created on Thursday, 15.06.95 22:37:43  by  Michiel Pelt.   LogMessage :
465 **   - Uses exec memory pools now
467 ** Revision V13.7
468 ** --------------
469 ** created on Thursday, 08.06.95 19:13:42  by  Michiel Pelt.   LogMessage :
470 **   - check-if-parent-is-dir bug fix (GetFullPath)
472 ** Revision V13.6
473 ** --------------
474 ** created on Thursday, 04.06.95 07:43:54  by  Michiel Pelt.   LogMessage :
475 **   - Implemented longword protection
477 ** Revision V13.5
478 ** --------------
479 ** created on Thursday, 04.05.95 00:12:04  by  Michiel Pelt.   LogMessage :
480 **   - Link bug fixed: forgot UpdateLE
482 ** Revision V13.4
483 ** --------------
484 ** created on Friday, 14.04.95 13:54:47  by  Michiel Pelt.   LogMessage :
485 **   - Cache inconsistency bug solved
487 ** Revision V13.3
488 ** --------------
489 ** created on Wednesday, 29.03.95 23:45:56  by  Michiel Pelt.   LogMessage :
490 **   - ACTION_MORE_CACHE implemented
491 **   - Notification support implemented
493 ** Revision V13.2
494 ** --------------
495 ** created on Friday, 24.03.95 21:39:52  by  Michiel Pelt.   LogMessage :
496 **   - Softlinks implemented
497 **   - Bugs in hardlinks handling fixed
498 **   - Bug in diskchange interrupt fixed
500 ** Revision V13.1
501 ** --------------
502 ** created on Tuesday, 28.02.95 23:38:15  by  Michiel Pelt.   LogMessage :
503 **   - '12.6' bugfix (12.5.1): Solves out of buffers problem
504 **   - Links & handling implemented
506 ** Revision V13.0
507 ** --------------
508 ** created on Thursday, 23.02.95 11:59:31  by  Michiel Pelt.   LogMessage :
509 **   - Directory extension
510 **   - SetOwner implemented
512 ** Revision V12.6
513 ** --------------
514 ** created on Saturday, 18.02.95 11:30:37  by  Michiel Pelt.   LogMessage :
515 **   - Added g->blocks_dirty field + usage
516 **     Updated AllocReservedBlockSave + call it
517 **     AllocReservedBlock(Save) can fail!
519 ** Revision V12.5
520 ** --------------
521 ** created on Tuesday, 14.02.95 18:16:52  by  Michiel Pelt.   LogMessage :
522 **   - Changed anodeblocks: 16 byte header, 84 anodes
524 ** Revision V12.4
525 ** --------------
526 ** created on Monday, 13.02.95 10:26:10  by  Michiel Pelt.   LogMessage :
527 **   - bugfix: Disksize as shown by dd_info was 1 too big
529 ** Revision V12.3
530 ** --------------
531 ** created on Monday, 13.02.95 09:57:15  by  Michiel Pelt.   LogMessage :
532 **   - ULONG anode fields in directory block & entry
534 ** Revision V12.2
535 ** --------------
536 ** created on Thursday, 09.02.95 09:59:44  by  Michiel Pelt.   LogMessage :
537 **   - MakeBlockDirty LOCKed blocks. PFS could run out of buffers.
539 ** Revision V12.1
540 ** --------------
541 ** created on Tuesday, 07.02.95 23:36:18  by  Michiel Pelt.   LogMessage :
542 **   - Enforcer hit fixed
543 **   - OpenFromLock access right bug fixed (ObjectArchive works now)
545 ** Revision V12.0
546 ** --------------
547 ** created on Sunday, 29.01.95 11:18:51  by  Michiel Pelt.   LogMessage :
548 **   - Rewritten most disk.c routines for better performance
549 **   - Full de_Mask and de_BufMemType support
550 **   - Implemented hash table for cache
551 **   - Some bugs fixed
552 **   - LOCKing changed; no longer in read routines
553 **       - Reserved blocks are now RawRead/RawWrite
555 ** Revision V11.0
556 ** --------------
557 ** created on Wednesday, 18.01.95  by  Michiel Pelt.   LogMessage :
558 **   - Completely new block allocation algorithm and routines
559 **   - New freeblock management (use bitmap now)
560 **   - New blocktypes: Bitmap, BitmapIndex, Index
561 **   - 1024 byte reserved blocks
562 **   - 1024 byte block support
563 **   - New Update algorithm
564 **   - Integrated Format
565 **   - PFS 9.5 compatibility dropped
567 ** ---------------
569 ** V10.6 (05.10.94): Bugs fixed: FlushBlock didn't Remove blockchain (did only
570 **                                       lruchain), GetAnode now MakeLRUs indexblock.
571 ** V10.5 (01.10.94): UpdateLE, UpdateLE_exa, LOCK, UNLOCKALL,
572 **                   ISLOCKED, DirectUpdate(). PLUS usage.
573 ** V10.4 (23.09.94): ChangeDirEntry check on ETF_VOLUME removed
574 **                                       Extended listentry_t and moved from struct * to *_t
575 **                                       Added LRU:FlushBlock, killed LRU:BlockUsed (nu macro)
576 ** V10.3 (21.09.94): Removed all references to block->usecount (11 places)
578 ** Revision V10.1
579 ** --------------
580 ** created on Monday, 12.09.94 21:22:41  by  Michiel Pelt.   LogMessage :
581 **   LRU Cache:
582 **   - MakeVolumeData: allocate blockpool (using de_NumBuffers & 
583 **     de_BufMemType) --> CAN FAIL NOW (return 0)
584 **   - CountUseCount --> BlockInUse
586 ** Revision V10.0ß
587 ** --------------
588 ** created on Monday, 12.09.94 19:22:26  by  Michiel Pelt.   LogMessage :
589 **   - Added indexblocks with acc. functions
590 **   - Longword anodes with MODE_SMALL, MODE_BIG
591 **   - Modules new_anodes.c new_format.c tobedef.h
593 ** Revision V9.5.3: taken over from V9.5 parallel version
594 ** ---------------
595 **   - RawRead and RawWrite now use CMD_ commands i.p.v. ETD_ comm.
596 **   - A nasty bug created in 9.5.1 fixed: the trackbuffer was flushed
597 **     by UpdateDisk->RequestCurrVolBack. Moved RCVB from TD to DiskRemove
598 **     Sequence and made it local to Volume.c
600 ** Revision V9.5.2: last common version
601 ** --------------
602 ** created on Wednesday, 24.08.94 21:40:54  by  Michiel Pelt.   LogMessage :
603 **  -*-  changed on Tuesday, 06.09.94 19:01:49  by  Michiel Pelt.   LogMessage :
604 **   - Upgraded to 9.5.3 from floppy version
605 **  -*-  created on Wednesday, 24.08.94 21:40:54  by  Michiel Pelt.   LogMessage :
606 **   - SetFileSize() now returns new length instead of BOOL (ADOS manual bug)
607 **   - Added Touch() to SetFileSize()
609 ** Revision V9.5.1
610 ** ---------------
611 ** created on Thursday, 18.08.94 10:22:54  by  Michiel Pelt.   LogMessage :
612 **   - I now do a CMD_CLEAR in GetCurrentRoot. If this is not present
613 **     diskspare gets in trouble after interleaving with FFS
614 **   - Added a diskcache invalidate to NewVolume()
615 **   - Restricted TD_FORMAT to inhibited mode. Removed NewVolume() from
616 **     Format() (not allowed during inhibit)
618 ** Revision V9.5
619 ** -------------
620 ** created on Sunday, 15.08.94 by Michiel Pelt
621 **   - All 'name relative to path' packets now ignore name upto
622 **     first colon (CreateDir, DeleteObject, Rename, Protect, SetComment,
623 **     SetFileDate). Cut out assign/colon related parts in Directory.c and
624 **     Volume.c: GetFullPath (edited), GetVolume (killed), GetVolumeN with
625 **     locals ScanAssignlist etc (killed).
626 **     -> All assign related problems (multiassign, PROGDIR:..) solved
627 **   - Serialize disk now also updates DosList.
628 **     -> SD problem fixed. Diskcopy should work
629 **   - VolumeRequest now uses ErrorReport
630 **       - VolumeRequest, PleaseInsertVolume killed
631 **   - Serialize disk still didn't work: called within tick after diskcopy
632 **     and is called from Inhibited state.
634 ** Revision V9.4
635 ** --------------
636 ** created on Thursday, 02.06.94 15:45:39  by  Michiel Pelt.   LogMessage :
637 **  -*- 9.4.4: Friday, 05.08.94 17:44:26
638 **   - The trackdisk buffer is now cleared after diskremove and 
639 **     uninhibit
640 **  -*- 9.4.3: Tuesday, 02.08.94 16:01:55
641 **   - PFS respects MaxTransfer now
642 **  -*- 9.4.2: Monday, 01.08.94 09:11:06  
643 **   - bugfix DiskRead: UpdateCache if last block tbr in cache
644 **     DiskSpare compatibility fix: CMD_UPDATE after FlushCache.
645 **  -*- 9.4.1: Wednesday, 20.07.94 09:12:24
646 **   - Accept diskspare as a trackdisk device
647 **   - DiskInfo NumBlocks now does not include the reserved blocks
648 **  -*- 9.4:  Friday, 10.06.94 17:14:05
649 **   - Added TD_Format and TD_WriteToCache to improve floppy write 
650 **     performace. Can now copy c: (782K) to PFS: in 44 seconds.
651 **   - rewritten WriteToFile, ReadFromFile, DiskRead and DiskWrite 
652 **     to solve SAS C write/seek bug
653 **   - Diskspare.device supported by changing ETD_MOTOR to TD_MOTOR
654 **   - Check DOSFALSE i.p.v. DOSTRUE with INHIBIT (Holger Kruse)
656 ** Revision V9.3
657 ** --------------
658 ** created on Monday, 30.05.94 21:32:50  by  Michiel Pelt.   LogMessage :
659 **   - Now creates inputevents on diskchange
660 **   - PFS now adds FS to FileSysResource list (Nicola3005)
661 **   - Added disktypes for ACTION_DISK_INFO: NDOS, BUSY (Nicola3005)
662 **   - trackdisk.device flag added (H Kruse) i.v.m. TD_GETGEOMETRY
664 ** Revision V9.2
665 ** --------------
666 ** created on Saturday, 28.05.94 10:52:14  by  Michiel Pelt.   LogMessage :
667 **   - international mode casecompare implemented. BOOTABLE NOW (Holger Kruse)
668 **   - bugfix: empty files  (was caused by 8.1->8.3 conv) (Rougier)
670 ** Revision V9.1
671 ** --------------
672 ** created on Friday, 20.05.94 13:11:02  by  Michiel Pelt.   LogMessage :
673 **  -*-  changed on Wednesday, 25.05.94
674 **   - bugfix: Rename 'yourself' (e.g 'hello' to 'Hello')
675 **   - Exec lijsten (dubbel gelinkt) voor alles
677 ** Revision V9.0
678 ** --------------
679 ** created on Thursday, 12.05.94 22:59:52  by  Michiel Pelt.   LogMessage :
680 **   - RDB installable version (using HDToolBox!), added StackSwap()
681 **     in Boot.c (Rougier: StackSwap)
683 ** Revision V8.4
684 ** --------------
685 ** created on Monday, 09.05.94 22:00:35  by  Michiel Pelt.   LogMessage :
686 **  -*-  changed on Thursday, 12.05.94
687 **   - Removable if <=2 heads and LowCyl == 0: for diskspare.device
688 **   - bugfix: NewFile didn't check disk condition (like write-prot)
689 **   - Bugfix: parameter-inversion of ctrl->matchfunc
690 **   - Format dynamicly chooses reserved area-size now
692 ** Revision V8.3
693 ** -------------
694 ** created on Friday, 06.05.94 13:33:10 by Michiel Pelt.   LogMessage :
695 **   - Optimized DiskRead & DiskWrite (added cache); added RawRead, RawWrite,
696 **     ReadFromCache, FillCache, FlushCache, WriteToCache
697 **   · structures.h: struct diskcache en g->diskcache added
698 **   · UpdateDisk: cache FlushCache()ed and RawWrite() used
699 **   · Format: FlushCache()
700 **   · Initialize: g->diskcache allocated
702 ** Revision V8.2
703 ** -------------
704 ** created on Wednesday, 04.05.94 12:22:47  by  Michiel Pelt.   LogMessage :
705 **   - Optimized ReadFromFile en WriteToFile (minimized diskaccesses)
707 ** Revision V8.1
708 ** --------------
709 ** created on Friday, 29.04.94 15:14:37  by  Michiel Pelt.   LogMessage :
710 **   - Slightly optimized WriteToFile (extended flag)
712 ** Revision V8.0
713 ** --------------
714 ** created on Friday, 29.04.94 10:23:35  by  Michiel Pelt.   LogMessage :
715 **   - First version that accepts harddisks (upto 32MB)
716 **     -> volume numblocks,numblocksused,numblocksfree nu LONG ipv WORD
717 **                + usage (in MakeVolumeData)
718 **     -> TestRemovability: default removable
720 ** Revision V7.5 (release 3)
721 ** --------------
722 ** created on Wednesday, 20.04.94 14:15:55  by  Michiel Pelt.   LogMessage :
723 **   - Nasty usecount bug 'fixed' (replaced by usecountcounter)
724 **     zie blz 103 schrift
725 **   - RemEmptyDBlk, -ABlk & DeleteDir: FreeVec added
727 ** Revision V7.4
728 ** --------------
729 ** created on Monday, 18.04.94 23:53:02  by  Michiel Pelt.   LogMessage :
730 **   - ACTION_SERIALIZE_DISK implemented
731 **   - ACTION_CURRENT_VOLUME fixed (zie DevKit3.1 tutorials)
732 **   - ACTION_WRITEPROTECT implemented
734 ** Revision V7.3
735 ** --------------
736 ** created on Monday, 18.04.94 22:09:18  by  Michiel Pelt.   LogMessage :
737 **   - A few CMD_UPDATES added:
738 **     'DiskRelabel' en 'Timer-end unchanged'
739 **   - Examineall type-check added (BrowserII works now)
741 ** Revision V7.2
742 ** --------------
743 ** created on Monday, 18.04.94 11:50:30  by  Michiel Pelt.   LogMessage :
744 **   - Writeprotection & volumecheck bugfixes:
745 **     ChangeFileSize, dd_Rename, SetDate, ProtectFile, AddComment
746 **   - Diskchangeinterrupt-name now is mountname-specific (pfs_interrupt)
748 ** Revision V7.1 (not released)
749 ** --------------
750 ** created on Wednesday, 13.04.94 12:44:50  by  Michiel Pelt.   LogMessage :
751 **   - SetDate bug fixed: the arguments as specified in DOS manual
752 **     were incorrect (bug reported by Pierre Carrette)
754 ** Revision V7.0 (not released)
755 ** --------------
756 ** created on Wednesday, 13.04.94 12:24:17  by  Michiel Pelt.   LogMessage :
757 **   - Reentrant version:
758 **     all functions use a globaldata parameter g
759 **     timeout variable (DosToHandlerInterface) moved to globaldata
760 **     ! library-handling not yet fixed
762 ** Revision V6.14 (not released)
763 ** --------------
764 ** created on Wednesday, 13.04.94 12:23:27  by  Michiel Pelt.   LogMessage :
765 **   - added Removable flag to globaldata
766 **   - added Firstblock & lastblock entry to globaldata
767 **   - added TD_CHANGESTATE failure check to GetCurrentRoot
768 **   - now writes the two bootblocks in one access (format)
769 **   - constructed GetDriveGeometry() functie. Now gets geometry and 
770 **     adapts (to) DosEnvec table (FillDosEnvec function killed)
772 ** Revision V6.13 (not released)
773 ** --------------
774 ** created on Sunday, 10.04.94 15:42:29  by  Michiel Pelt.   LogMessage :
775 **   - More specific DiskWrite() and DiskRead() error-messages
776 **   - Replaced LDF_WRITE with LDF_READ to prevent DeadLock
777 **     --> multiple treaded filesystem would be better (DOS is!)
779 ** Revision V6.12 (release 2)
780 ** --------------
781 ** created on Saturday, 26.03.94 08:28:14  by  Michiel Pelt.   LogMessage :
782 **   - 6.12: Devicenames of length 4 allowed now (init bug)
783 **   - 6.11: 'Ask for volume' 2.0 adaption; errormsgs revised (release 1)
784 **   - 6.10: reordered source; SetFileSize implemented
785 **   - 6.9: Blocksorted update; Disksize dependent reservedarea
786 **   - 6.8: time in ½ sec slices; FreeUnusedResources
787 **   - 6.7: Variable timeout, bugfixes
788 **   - 6.6: Beta release version
789 **   - 6.5: MotorOff() only after timeout; Added read-timeouts
790 **       - 6.4: ACTION_SAME_LOCK added
791 **   - 6.3: ExNext changed; dirlockentry added
792 **   - 6.2: Save saves, ook voor dir & anode blokken
793 **   - 6.1: Debuground (tstprg) of 6.0
794 **   - 6.0: Allocationroutines fully rewritten
796 ** Revision V5 - Timer and diskchangehandler
797 ** --------------
798 ** created on Wednesday, 06.10.93 23:26:15  by  Michiel Pelt.   LogMessage :
799 **   - 5.1: Added DiskChangeHandler
800 **   - 5.0: Added timer & ACTION_DIE
802 ** Revision V4 - All basic actions implemented
803 ** --------------
804 ** created on Sunday, 03.10.93 20:27:16  by  Michiel Pelt.   LogMessage :
805 **       - 4.7: IsChildOf(), upgraded easyrequest, listentry_ptr gone
806 **   - 4.6: Direntry-references restored after dirblockchange
807 **   - 4.5: Format, ACTION_INHIBIT, relabel
808 **   - 4.4: Full diskstate-handling (disktype en diskstate added)
809 **   - 4.3: Assigns supported; Uses GetDriveGeometry; ACTION_FLUSH implemented
810 **   - 4.2: Newvolume en diskchange aangepakt 
811 **   - 4.1: New GetFullPath en FindObject
812 **   - 4.0: This will be the first version that actually does something.
814 ** Revision V3 - Compilefailurefree
815 ** --------------
816 ** created on Tuesday, 31.08.93 19:00:08  by  Michiel Pelt.   LogMessage :
817 **   - 3.1: Compiled & completed volumechecks and requests
818 **   - 3.0: New debugging step; diskchange; becoming real FileSystem
820 ** Revision V2
821 ** --------------
822 ** changed on Thursday, 02.06.93 12:19:47  by  Michiel Pelt.   LogMessage :
823 **     2.4: Merged all levels in one file for easy debugging. Moved all
824 **              sources to main filesystem directory. V2.05: NextBlock ()++
825 **     2.3:     New function: GetFullPath. Changed prototype for FindObject
826 **              and a few others.
827 **         2.2: Take account of rootblock case
828 **         2.1: Some errors removed
829 **     2.0: Compilation ready. All functions implemented. Go for test
830 **              program which uses functions defined here.
832 ** Revision V1
833 ** --------------
834 **     1.3: Second compilation phase: use the generated protos. Only a
835 **              few NYI functions left. .o size stackcheck:11940; opti 5:9672
836 **     1.2: First compilation phase: Prototype generation
837 **     1.1: First walkthrough. Still a few functions to be implemented
838 **         1.0: Initial release
840 *********************************************************************************/
841 #define REVISION "19.0"
842 #define AUTHOR   "Michiel Pelt"
843 #define VERNUM   19
844 #define REVNUM   0
846 #define RELNUM  "5.5"
848 #if MULTIUSER
849 #define E1 "mu"
850 #else
851 #define E1 ""
852 #endif
853 #if SCSIDIRECT
854 #define E2 "ds"
855 #else
856 #define E2 ""
857 #endif
858 #ifdef BETAVERSION
859 #define E3 " BETA"
860 #else
861 #define E3 ""
862 #endif
863 #define RELEASE RELNUM E1 E2 E3