E format discs

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.

*Verify

*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.

RAMFS

The module RAMFS provides a filing system RAM: which appears to the user much the same as ADFS.

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
On Entry:
  • R0 bits to change
  • R1 new bits

On 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

On Entry:
  • R0 -> disc specifier string
  • R1 -> 64 byte block to fill in as disc record
On Exit: The disc record is 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

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

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.

AltStyle によって変換されたページ (->オリジナル) /