RISC OS Open
Safeguarding the past, present and future of RISC OS for everyone
ROOL
Home | News | Downloads | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

Service_IdentifyDisc

Programmer's Reference Manuals
» 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 Record Large
  • FileCore_DiscOp 9
  • FileCore_MiscOp 0
  • Service Calls
Revised on March 6, 2017 06:22:54 by Alan Robertson (52) (58.110.6.113)
Edit | Back in time (2 revisions) | See changes | History | Views: Print | Source | Linked from: Service Calls

Search the Wiki

Social

Follow us on and

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

RISC OS IPR

RISC OS is an Open Source operating system owned by RISC OS Developments Ltd and licensed primarily under the Apache 2.0 license.

Navigation

  • Home Page
  • All Pages
  • Recently Revised
  • Authors
  • Feeds
Site design © RISC OS Open Limited 2018 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