RISC OS Open
A fast and easily customised operating system for ARM devices
ROOL
Home | News | Software | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

Service_IdentifyDisc

Programmer's Reference Manuals
» Part 16 – Service Calls
» Service_IdentifyDisc

Service_IdentifyDisc

(Service &69)
Entry
R1 105 (&69)
R2 Pointer to buffer for format name
R3 Buffer length
R5 Pointer to disc record
R6 Sector cache handle
R7 Pointer to FileCore instance private word

Format not recognised

Exit
R1 Preserved
R2 Preserved
R3 Preserved
R5 Preserved
R6 New sector cache handle
R8 Preserved

Format recognised

Exit
R1 0 to claim
R2 Filetype number for given disc
R3 Preserved ?
R5 Pointer to modified disc record
R6 New sector cache handle
R8 Preserved

Use

This service is issued to identify a disc format. FileCore claims it for formats it recognises.

Notes

  1. (Unless any of the 4 values are zero) check the disc record's sector size, sectors per track, density and lowest sector ID number.
    Pass on the service if the sector scheme is unrecognised
  2. Update the values in the disc record for disc size, sequence sizes, double step and heads.
  3. Read the sector contents and check them – if it does not recognise these then pass on the service with R6 updated
  4. Update the values in the disc record for disc cycle id and disc name
  5. Fill the buffer in R2 with text suitable for the current format menu entry
  6. Claim the service call

If any of sector size, sectors per track, density and lowest sector ID number are 0 then these were not supplied by FileCore_MiscOp 0 – this should only happen for hard discs.

The heads field of the disc record should be updated in line with the sequence sides bit – if this bit becomes cleared add one to the heads, if this bit becomes set subtract one (but do not reduce heads below 0).

The sector contents should be read with FileCore_DiscOp 9 with
R1 = flags 01×0 binary (1 second timeout, ignore escape, no alternative defect list)
pointer to the alternative disc record supplied
R2 = the disc address given by the root directory address on the disc record supplied

See also

  • Disc Cycle ID
  • File Types
  • FileCore
  • FileCore Disc Descriptor
  • FileCore_DiscOp 9
  • FileCore_MiscOp 0
  • Service Calls
Created on December 12, 2009 18:18:23 by Alan Robertson (52)? (127.0.0.1)
Edit | Views: Print | Source | Linked from: Service Calls

Search the Wiki

Commercial use

For commercial enquiries, please contact the owners of RISC OS, Castle Technology Ltd.

ROOL Store

The official C/C++ Development kit and more here.

Donate! Why?

Help ROOL make things happen – please consider donating!

Navigation

  • Home Page
  • All Pages
  • Recently Revised
  • Authors
  • Feeds
Site design © RISC OS Open Limited 2011 except where indicated
The RISC OS Open Instiki theme is based on Insitki's default layout

Valid XHTML 1.0  |  Valid CSS

Instiki 0.19.1(MML+)
This site runs on Rails

Hosted by Arachsys