From info-admin@newcastle.ac.uk  Thu Apr 23 08:05:47 1992
Received: from noc.rus.uni-stuttgart.de by helpdesk.rus.uni-stuttgart.de (5.52/BelWue-1.0SG(subsidiary))
	(for zrzm0111) id AA25980; Thu, 23 Apr 92 08:05:47 MST
Received: from mail.Germany.EU.net (unido.Germany.EU.net) by noc.BelWue.DE with SMTP id AA10744
  (5.65c/BelWue-M2.03 for <joerg.scheurich@rus.uni-stuttgart.de>); Thu, 23 Apr 1992 08:05:47 +0200
Message-Id: <9204230607.AA24151@mail.Germany.EU.net>
Received: from eros.uknet.ac.uk 
	by mail.Germany.EU.net with SMTP (5.65+/UNIDO-2.1.0.b)
	via EUnet for rus.uni-stuttgart.de
	id AA24151; Thu, 23 Apr 92 08:07:04 +0200
Received: from newcastle.ac.uk by eros.uknet.ac.uk via JANET with NIFTP (PP) 
          id <3419-0@eros.uknet.ac.uk>; Thu, 23 Apr 1992 07:05:56 +0100
Date: Thu, 23 Apr 92 06:57:45 +0100
Received: 
From: The Newcastle Info-Server <info-admin@newcastle.ac.uk>
To: joerg.scheurich@rus.uni-stuttgart.de
Subject: Re: Request: sources; Topic: archimedes idecalls
Sender: info-admin@newcastle.ac.uk
Status: OR

Please  DO NOT reply to this message unless you wish to reach the
administrator  of   the   newcastle   info-server   <info-admin>.
Info-server requests sent to this address are thrown away.

Path: newcastle.ac.uk!uknet!ukc!acorn!osmith
>From: osmith@acorn.co.uk (Owen Smith)
Newsgroups: comp.sys.acorn
Subject: Re: Risc OS 3.00 upgrade
Message-ID: <10365@acorn.co.uk>
Date: 14 Oct 91 11:11:44 GMT
References: <1991Oct11.190517.165@vaxa.strath.ac.uk>
Sender: osmith@acorn.co.uk
Distribution: comp
Organization: Acorn Computers Ltd, Cambridge, England
Lines: 162

In article <1991Oct11.190517.165@vaxa.strath.ac.uk> cabr07@vaxa.strath.ac.uk
writes:

>Does the IDE and high density floppy driver cope with podule mounted
>expansion cards where the podule simply supplies the hardware address 
>(like ADFS and the ST506 drivers)?

This should clear things up for you:

New ADFS SWIs and service calls

;*********************************************************************

ADFS_ControllerType
;
; Returns the controller type of a disc
;
; Entry:
;    R0 = drive number (0..7)
;
; Exit:
;    R0 = controller type
;         0 => disc not present
;         1 => 1772
;         2 => 765
;         3 => ST506
;         4 => IDE

;*********************************************************************

ADFS_PowerControl
;
; Controls the power-saving features of the ADFS system
; It can be dangerous to use the drive spin control SWIs on drives that do
; not fully support them: the controllers on at least two drives tested hang
; up when autospindown is enabled and a reset does not recover the situation
; (power-on reset does).
;
; Entry:
;    R0 = reason
;
;         0 => read drive spin status
;           Entry:
;              R1 = drive (4..7)
;           Exit:
;              R2 = 0 => drive is not spinning
;                  !0 => drive is spinning
;
;         1 => set drive autospindown
;           Entry:
;              R1 = drive (4..7)
;              R2 =  0 => disable autospindown and spinup drive
;                   !0 => set autospindown to R2*5 seconds
;           Exit:
;                 R3 = previous enable value
;
;         2 => manual control of drive spin without affecting autospindown
;           Entry:
;              R1 = drive (4..7)
;              R2 = 0 => spin down immediately
;                  !0 => spin up immediately

;*********************************************************************

ADFS_SetIDEController
;
; Gives the IDE driver the details of an alternative controller.
;
; Entry:
;    R2 -> IDE controller
;    R3 -> interrupt status of controller
;    R4 =  AND with status, NE => IRQ
;    R5 -> interrupt mask
;    R6 =  OR into mask enables IRQ
;    R7 -> data read routine (0 for default)
;    R8 -> data write routine (0 for default)
;    SB -> static workspace
;
; Exit:
;    VS => error
;          R0 = error
;    VC => no error
;          R0 preserved
;    All other registers preserved

;*********************************************************************

ADFS_IDEUserOp
;
; Direct user interface for low-level IDE commands.
; Must not be called in background.
;
; Entry:
;    R0 = b0 = action
;              1 => reset controller
;              0 => process command
;         b25..b25 = transfer direction
;              00 => no transfer
;              01 => read
;              10 => write
;              11 reserved
;    R2 -> parameter block for command and results
;    R3 -> buffer
;    R4 = length to transfer
;    R5 = timeout in centiseconds (0 = default)
;    SB -> static workspace  
;    MODE: SVC
;    IRQ state: unknown
;
; Exit:
;    VS => error
;          R0 -> error block
;    VC => no error
;          R0 = command status (0 or a disc error number)
;          Parameter block updated
;    R3 updated
;    R4 updated
;    R5 undefined
;    All other registers preserved
;    IRQ state: preserved but IRQs enabled during call

;*********************************************************************

Service_ADFSPoduleIDE
;
; Issued by ADFS to locate an IDE podule.
;
; Entry:
;    R1 = Service_ADFSPoduleIDE
;    R2 -> current IDE controller
;    R3 -> interrupt status of controller
;    R4 =  AND with status, NE => IRQ
;    R5 -> interrupt mask
;    R6 =  OR into mask enables IRQ
;    R7 -> data read routine (0 for default)
;    R8 -> data write routine (0 for default)
;
; Exit:
;    R1 = Service_Serviced
;    R2 -> new IDE controller
;    R3 -> interrupt status of controller
;    R4 =  AND with status, NE => IRQ
;    R5 -> interrupt mask
;    R6 =  OR into mask enables IRQ
;    R7 -> data read routine (0 for default)
;    R8 -> data write routine (0 for default)

;*********************************************************************

Service_ADFSPoduleIDEDying
;
; Issued by podule module to tell ADFS of imminent demise.
;
; Entry:
;    R1 = Service_ADFSPoduleIDEDying
;
; Exit:
;    All registers preserved

;*********************************************************************

The views expressed are my own and are not necessarily those of Acorn.

