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 ); 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 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-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.