home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Archive Magazine 1997
/
ARCHIVE_97.iso
/
discs
/
mag_discs
/
volume_08
/
issue_06
/
risc_os
/
adfs
/
newADFS
< prev
next >
Wrap
Text File
|
1988-10-03
|
5KB
|
147 lines
1. E format discs
a) don't need compacting
b) don't get map full errors
c) floppies can now also do defect skipping (was only winnies with old map)
as *format will map out any defects it finds
d) defects can mapped out without reformatting (both floppies and winnies)
using the command *defect <disc spec.> <disc add.>
2. New configuration commands
*configure ADFSDirCache <size> [K]
This reserves some space for ADFS to keep a cache of recently used
directories in a compressed form.
*configure ADFSbuffers <buffers>
This is used to reserve a number of 1K buffers which ADFS can use to speed
up BGET, BPUT and GBPB. They are used for write behind, read ahead and
caching of most recently used file buffers. If underused some of this space
can get temporarily transferred to the directory cache. It does not have an
optional K in the syntax since each buffer has a small overhead and hence
the space reserved is not an exact number of Kbytes.
3. *Verify will now do up to 5 retries, and report where it retried.
Typical output
Verifying ...
0009A800 ?? Managed to verify sector after 2 retries
Disc error 08 at :0.000C5400 Failed to verify sector after 5 retries
Verify failed
Final message is one of
Verified ok
Verified with retries
Verify failed
Some discussion of soft and hard errors needed. This ties in with defects.
4. RAMFS
The module RAMFS provides a filing system RAM: which appears to the user
much the same as ADFS.
5. new adfs SWIs
ADFS_Retries &40244
This can be used to read/write the retry word, the 4 bytes of which have the
following meaning.
byte meaning
0 number of retries for hard disc read/write sector
1 number of retries for floppy disc read/write sector
2 number of retries in floppy disc mount for each copy of map
3 number of retries for verify after *format before called a defect
entry
R0 bits to change
R1 new bits
exit
R0 preserved
R1 masked by R0 = R1 AND R0
R2 old value of retry word
R3 new value of retry word = (old value BIC R0) EOR (R1 AND R0)
ADFS_DescribeDisc &40245
entry
R0 -> disc specifier string
R1 -> 64 byte block to fill in as disc record
exit
disc record filled in as follows
0 - log to base 2 of sector size
1 - sectors per track
2 - heads (1 for L format disc)
3 - density 1/2/4
* 4 - width of id field in bits
* 5 - log to base 2 of bytes for each map bit or 0 for old map
* 6 - track to track skew for random access files
7 - boot option
8 - reserved
* 9 - number of zones in the map
* 10-11 - non map bits in zone
12-15 - system internal number of root directory
16-19 - disc size in bytes
20-21 - 2 byte disc id
22-31 - disc name
32-63 - reserved
entries marked * refer to details of new map format
6. Attribute extension
New directory discs (ie all except L format) have extended attributes.
Bits 4-7 no longer repeat bits 0-3, but the only use ADFS makes of them
is to display bits 4 and 5 in *FileInfo
bit meaning
0 owner read access
1 owner write access
2 always zero
3 locked bit
4 public read access
5 public write access
6 reserved
7 reserved
7. extension of up call protocol
UpCall_MediaNotPresent (1) and UpCall_MediaNotKnown (2) have had their
parameters extended as below to allow the Wimp to detect insertion of a
disc if a drive supports disc changed.
R1 - filing system number
R2 -> media name string or -1 if irrelevant
R3 - device number or -1 if irrelevant
R4 - iteration count 0,1,2,.. for repeated issuing of call
R5 - minimum polling period in centiseconds for claiming upcall,
-1 if not to poll
R6 -> media string eg. 'disc'
An up call handler for UpCall_MediaNotPresent and UpCall_MediaNotKnown can
still work in the simple way. That is on receipt of the upcall to interact
with the user to determine if he is able to insert the media. If he can then
the handler should claim the upcall, otherwise it should pass it on. The
up call will be repeatedly issued until the media is found or the up call not
claimed.
In order to spot automatically when the required media has been inserted. The
upcall handler should regularly claim the up call at intervals specifed by R5
allowing the filing system to search for the media. In order to allow the
up call handler to tidy up if a media is found in this way a new up call,
UpCall_MediaSearchEnd (4), has been added. This is issued whenever a media
search is ended, either because the media was found or the up call was not
claimed.
This up call handler must not issue calls that may cause the filing system to
be re-entered. Also programs designed to run under the desktop should not
handle these up_calls.
8. Creating a new filing system with FileCore.
see separate document
9. Details of E format file structure
see separate document