0.35 01/02/1992 \ - I accidently lost this part of this file. 0.36 08/03/1992 / In general, *FORM debugged, various things tidied up.
0.37 15/03/1992 OSWORD 90 now uses the general purpose multiple sector disk access routine used by load and save. This means it correctly steps over track boundaries, and so can access more than 10 sectors at once. It also does better re-tries on errors. Tidied up and re-written load routine. Now a bit faster, and I will be able to use it to speed up OSGBPB reads. Stopped corrupting location &10FF (chn25 alloc high byte) when reading disk name. 0.37a 06/04/1992 *RENAME now written and works. Can rename files and directories. CAUTION: Circular rename not yet checked for! This means you can hide whole chunks of disk by doing something like *RENAME FRED FRED.JIM. 0.38 10/04/1992 Circular rename checking fully implemented in *RENAME. Also, can do *RENAME FRED Fred changing the case of an entry. All OSARGS entries re-written, and OSBPUT written so that output files will work. Haven't completed the close routine for output files yet, so OPENOUT and OPENUP are disabled. 0.39 20/04/1992 OPENOUT and OPENUP written! Delete won't delete open files, and directory checking is tidier. *RUN of FFB-filetyped files bootstraps BASIC. 0.40 26/04/1992 All random access routines work properly. Extend to following free space works. Drive numbers extended to 0-9, A-V. Pathname searching tidied up, and checking for changed disks, especially when saving, etc. OSFILE 5 on "JIM.FRED" where JIM doesn't exists returns A=0 instead of 'Not found'. BASIC bootstrap only allowed with null name. Disk access routines tidied up considerably, preserving registers so the calling routines don't have to preserve them. 'Drive not ready' error never returned - it just retries. 'Drive not present' error changed. *OPT5 temporarily disabled. 0.41 01/05/1992 Fixed two bugs that appeared in v0.40 - Master forgot to reselect on Break, and loading last sector to second processor was ignored. 0.42 01/06/1992 Tidying up - routine that finds a free slot for a filename. OPENIN used to fail if file was at EOF. *RENAME checks full path of new filename. Can write to disks with Master MOS 3.50. 0.43 12/07/1992 *OPT5 now works again. Tidied up *OPT routines, and removed bug from CMOS routine that inverted *OPT6 setting. Temporary selection of HADFS now works, HADFS works fully in the Master temporary filing system handler. 0.44 02/08/1992 *INSTALL routine rewritten and tidied up. Accepts more varieties of size parameter, including size in K and number of tracks. No longer need to do *INSTALL twice to install new ROM image, and removed 16-character disk-name problem. General hex/dec number reading routine replaces separate hex and decimal routines. *INFO $ displays size in K if between 128K and 959K. Split disk displayed as number of tracks, eg as 40/2. *FORM uses new routines. 0.45 27/09/1992 *TIME and *CLOSE commands added. *STATUS displays current time if set. *SETDATE with no parameters disables HADFS RTC clock function. *MOUNT can take a drive parameter, selecting that drive. *CAT routines tidied up - no longer checks disk twice. Started writing RISC OS HADFS Reader application. 0.46 15/11/1992 EXT not set to zero when overflows at &7FFFF. User number displayed as three digits. *FORM formats better and skews sectors. Completed RISC OS HADFS Reader application. 0.47 06/12/1992 Time routine (OSWORD 14) returns time. This can be set using TIME=((hours*60)+minutes)*60*100. OSWORD 14/2 supported (convert BCD time to text string). Compact displays 'No date' if no date. *FX90,6,2 and *FX90,6,3 select HADFS with *FX143,18,16. 0.47a 12/11/1993 Tidied up Serv7 and system !Boot files; !Boot on Compact doesn't clear memory. Osbyte 90,6,64 to 90,6,127 ignored, to be claimed by other ROMs. 0.48 25/11/1993 Tidied up disk errors. All errors report sector as d:ssss, instead of d:tt/s. TIME remembered over Ctrl-Break. Usernumber extended to 12 bits. CSDNUM/LIBNUM replaced by OWNER, PRIV extended to PRIV and OPTNUM. FindLib routine checks for external libraries. *I AM routine tidied up. *INSTALL <cr> sometimes replaces disk title. *FORMnn sometimes sets incorrect disk size. OSGBPB correctly returns CS on EOF. TreeCopy correctly allows disk swapping in same drive. *COPY command supplied on disk. *SETUSER only sets 8 bits. 0.48a 20/12/1993 *INSTALL correctly puts year>1997 and *INFO $ reports it, all dates after 1999 correctly handled, HADFS is fully Y2K compliant! *FORMnn disk size not corrupted by date. *RUN and */ with no name gives 'Bad filename'. Occasional problem with joining last two entries in FSM. VisCompact checks for sector allocation clashes. TreeCopy rewritten to be fully error trapped and to read as much as possible before writing. 0.49 07/01/1994 *MOUNT, *I AM and context checking rewritten. If *MOUNT with no drive given, context checking checks OSBYTE 90,6,64..65 for default drive. The word 'Version' removed from version string. 0.4A 17/01/1994 OSGBPB completely rewritten to speed up using direct sector access. OSGBPB 8 will return more than one entry. OSGBPB 9, 10 and 11 return directory information. Cannot currently do OPENIN("$") yet, though. *INFO $ displays a split disk as 40*2, *INSTALL accepts *2 as well as /2. /2 and old =<nn> removed from *INSTALL ? help text, =<nn> not recognised, &<nn> should be used. *INSTALL ? help text temporarily removed to save a bit of space. 0.4B 02/08/1994 File running completely re-written; much tidied up. HADFS as a libfs now implemented. *INSTALL ? help text restored. OSGBPB correctly reads zero bytes if at EOF; extending past EXT correctly decrements by 256; *SRSAVE in MOS/DFS works. OSGBPB 5 works. Version byte in ROM header now holds 10*version number (ie 4). Default language code removed; ROM now service-only. Language entry points to service 3 boot routine. *FORM remembers drive number (important!). 0.4C 12/01/1995 Unused boot options 4 to 7 removed. *TITLE command added, alias for *INSTALL. Disk name on *CAT correct. Oddity: *FORM leaves *ENABLE set on. *INSTALL no longer accepts /2, must be *2. 0.4D 25/05/1995 *HADFS # option and error message removed. OSGBPB 9,0 returns command line parameters. <drv> added to *TITLE help text. HADFS selection checks for OS 3.50 again. 0.4E 10/08/1996 Sector addresses tidied up. 'Sector error' is now 'Sector not found'. *SETUSER renamed to *ACCOUNT. *ACCOUNT sets full 12-bit account number, and will accept and ignore auxilary account as (nnn). Ctrl-Caps-H-Break turns off HADFS. 0.4F 09/09/1996 OSFILE massively tidied up. Access to root directory corrected, so OPENIN("$") fully implemented. Extended directories reduced when removing entries. Screen selection routines tidied up. Control block can be in screen memory while accessing shadow memory. Cataloguing extended directories no longer displays a blank line between chunks. Directories auto-extend. *RENAME no longer loses temporary information when dealing with moving entries in extended directories. OSFILE &FD returns user number. *SHUT reselects old FS if called while HADFS not current. *\name implemented, matches to FS commands via FSCV3 only, without passing it to disk files. Slight problem with *MAP and *FREE occurs if FSM terminator not followed by another terminator. 0.4Fa 09/01/1997 Unbalanced stack bug in *RUN and *FORM fixed. 0.4Fb 04/06/1997 Calls to &FFE4 corrected to be OSNEWL at &FFE7, *INFO $ displays system disk version correctly. *COPY in ROM on Master series by using *MOVE, BBC runs from disk. Loading last sector to second processor corrected. Full date in version string (try using */ROMS V to see). 'Drive x not present' error incorrectly returned as 'Not an HADFS disk'. Commands don't need to be terminated with a space if followed by a non-letter, previously all characters from 'A' onwards were treated as letters. This allows, for example, *DIR^. 0.50 01/09/1997 FSM loading correctly clears channel 26 buffer flag so BGETs correctly restore from disk. 'Drive x not present' correctly given instead of 'Not an HADFS disk'. Extending an output file updates correct directory entry by looking for non-zero length, and length correctly set to alloc size. 'X' error no longer caused by trying to access sectors>=&A00. If no clock on Compact, reads date as 00/00/00. CLOSE checks for disk changed, if error happens on close, channel abandoned. Drive not present returned instead of DFS OSWORD &7F not available. *FREE output altered slightly. 0.51 01/02/1998 Displays 'E' attribute correctly, EXT#c=n stack imbalance corrected. Reading RTC on Master corrected and stored correctly on B and Compact. Extending directories no longer wrongly sets FIRST in first chunk; reducing directories now works correctly. Disk CRC error messages changed slightly. OSGBPB 9/10/11 correctly returns count=0 if no filename returned; OSGBPB 10/11 can scan current directory if XY+0=0. Still problems with: *RENAMEing on disk separate to CSD; Using BPUT to extend zero-length file; saving after reading date from fileserver; *COPY -net-file -hadfs-file sets 'E' incorrectly. 5.20 01/06/1998 Version numbers displayed as binary version / 10 (ie, 5.20) instead of / 100 (ie 0.52). Drive1 flag stored in startup byte instead of being copied internally. Command word termination with a non-letter works again, allowing, for example, *DIR^. 5.21 01/07/1998 Reading RTC corrects year overflow in date. OSGBPB 9/10/11 routines temporarily removed to save space. Drive 1 status checked directly in OSBYTE 255 instead of double-copying it. 5.22 01/08/1998 Patched to prevent memory corruption when reading RTC from NetFS on Compact. MOS350 flag cleared. 24/02/1999 Fixed bug in GetEnv in ProgLib that didn't skip enough spaces on Arc. 5.23 31/03/1999 Ensures absent keyboard checked for even if HADFS is disabled. 5.24 01/05/1999 Source code reformatted as text. RTC patch preserves more workspace so OPENOUT(nf) doesn't lose handle. 5.25 5.26 / / *INSTALL uses same boot code for data and system disks, *INSTALL and *FORM routines rewritten with full source comments. All code can cope with 4G disk sizes. OSGBPB9/10/11 will fit in again. 5.27 / / Floppy access code considerably tidied and speeded up. Access to external drives cleaner. *OPT7 used to select external drivers. *OPT40 and *OPT80 allowed, but do nothing. 5.28 5.29 / / Integrated GoMMC driver for drive M. 5.30 16/09/2004 Integrated IDE driver for drives 4 to 7, commas used in *FREE output, checks disk flags for default drives. IDE driver doesn't work across Tube. Relinquishes workspace if another filing system takes over as DFS 2.xx doesn't pass service call &0A on. 5.31 03/09/2005 Transitional version, only works on Masters. Workspace rearranged to create space for 24-bit random access. All core routines pass and return 24-bit sector addresses. Channel information still holds 16-bit information. 5.32 06/09/2005 24-bit channel information laid out. 5.33 08/09/2005 Workspace rearranged to accommodate DFS. *CAT blank lines on BBC fixed. *OPT2/3 is offset to myfs/auxfs. GrabAbs does ClearDIR, SetDate tidied. IDE drivers work with Tube and uses 24-bit access (4G drives), OSGBPB 5/6/7 does CheckNames on CSD drive. HEdit displays 24-bit sectors. !Boot program updated. IDE result codes need translating to 8271 codes, *FORM removed to save space. 5.40 12/09/2005 IDE error codes translated, accessing MMC doesn't blank out VFLG. *BACKUP can use fs: prefix. *CAT doesn't emit extra blank line if a directory holds 4n+2 entries. HUtils has option to set drive boot options. 5.41 15/10/2005 Workspace moved to &E00 to avoid being corrupted by DFS on BBC B+. 5.42 12/05/2007 Tidied up source code. Optimised soft RTC time manipulation code. 5.50 15/05/2007 Full 'Acorn Era' 7-bit year range storable, extending date range from 1981-2012 to 1981-2108, though dates after 2099 not displayed correctly. 5.51 17/05/2007 OSARGS context read/write uses standard handles. 5.52 05/07/2007 Started implementing BigDisk and BigDir internal code. Auxilary accounts implemented, OSFILE &FD reads BigDir creation date. Filenames starting '%' allowed. 5.53 07/07/2007 BigDir layout finalised as 24 x 32-byte entries. 5.60 31/12/2011 All filing system access updated to use 24-bit disk access, increasing maximum disk size from 16M to 4G. *RENAME not yet updated to rename BigDir entries. FSM not updated correctly on delete, deleting extended directories fails. 5.61 12/01/2012 *RENAME implemented for BigDirs. FSM updated correctly on delete, deleting extended directories works. *INSTALL <num>M accepted. Extending open file past 512K works. 5.62 17/02/2012 Modification time and creation dates on BigDisks. *TreeCopy updated to copy all date metadata. Fixed one-byte typo in *RENAME in BigDirs. 5.63 10/03/2012 Moved channel buffers into high workspace on Master. Compacted and tidied workspace. 5.64 17/03/2012 Rewrote code to access video memory. 5.65 18/03/2012 Rewrote code to scan directories. 5.66 20/03/2012 Removed optional source code for NotHazel, OldVRAM, IDE16, WS=&1000. ReadInfo, CDIR, Rename, Install all use offset DIR. 5.67 22/03/2012 Directory buffer relocates. 5.68 23/03/2012 Consistant 4-byte sector addresses in directories, CMOS byte holds DRVINT. 5.69 24/03/2012 Tidied up disk access, 8x4G IDE drives accessible, *OPT 4,8+n, bugfix reading PRIV in GBPB. 5.70 24/03/2012 DoIOwn checks aux account, *Account sets aux account, System !Boot selects Electron SRAM, but filing system doesn't work properly on Electron. 5.71 04/04/2012 *HADFS checks for Master 3.50 DFS presence, DrvFloppy enables Master 3.50 DFS when calling OSWORD &7F. Optimised some disk access code, tweeked IDE error translation, System !Boot works on Electron. 5.72 08/04/2012 H-Break clears keypress, removed Ctrl-Caps-H-Break. Shadow screen election works on BBC again. Optimised DiskMain, CheckAddr, ShadowOn/Off. 6.00 01/04/2012 Release as Version 6.