h6. [[ADFS]] h6(. » [[ADFS SWI Calls|SWI Calls]] h6((. » ADFS_IDEUserOp h2. ADFS_IDEUserOp h5. (SWI &4024B) |_<^{width:4em}. Entry | | |<^. R0 |<^. "Flag bits":#flagbits | |<^. R2 |<^. Pointer to "Parameter block":#parameterblock for command and results | |<^. R3 |<^. Pointer to buffer | |<^. R4 |<^. Length to transfer | |<^. R5 |<^. Timeout in centiseconds (if 0 is passed then use the default value) | |<^. R12 |<^. Pointer to static workspace | |_<^{width:4em}. Exit | | |<^. R0 |<^. Command status (0 or a disc error number) | |<^. R2 |<^. Preserved | |<^. R3 |<^. Preserved | |<^. R4 |<^. Updated | |<^. R5 |<^. Corrupted | h4(#flagbits). Flag bits |/2<^{width:4em}. 0 |<^. 0 = process command | |<^. 1 = reset controller | |/4<^. 3 |<^. 1 = parameter block pointed to by R2 is 11 bytes long (new in ADFS 3.34 / RISC OS 5.02) | |/2<^{width:4em}. 12 - 15 |<^. device ID (since ADFS 4.00) | |/2<^{width:4em}. 16 - 23 |<^. controller/port ID (since ADFS 3.34 / RISC OS 5.02) | |/4<^{width:4em}. 24 - 25 |<^. 00 = no transfer | |<^. 01 = read (bit 24 set) | |<^. 10 = write (bit 25 set) | |<^. 11 = reserved | |/4<^{width:4em}. 26 |<^. 1 = data transfer uses multiword DMA or UDMA from device's perspective (note that the host controller may actually use bus mastering even for PIO transfers) (since ADFS 3.34 / RISC OS 5.02) | h4(#parameterblock). Parameter block CHS/28-bit LBA form (R0 bit 3 clear): |<^{width:4em}. +0 | Features/Error | |<^. +1 | Sector Count | |<^. +2 | LBA bits 0-7/Sector No | |<^. +3 | LBA bits 8-15/Cylinder Low | |<^. +4 | LBA bits 16-23/Cylinder High | |<^. +5 | Device: | |<^. | bits 0-3 - LBA bits 24-27/Head | |<^. | bit 4 - 0=master, 1=slave | |<^. | bit 6 - 0=CHS mode, 1=LBA mode | |<^. +6 | Command/Status | 48-bit LBA form (R0 bit 3 set, since ADFS 3.34 / RISC OS 5.02): |<^{width:4em}. +0 | Features/Error | |<^. +1 | 16-bit Sector Count | |<^. +3 | 48-bit LBA | |<^. +9 | Device: | |<^. | bit 4 - 0=master, 1=slave | |<^. | bit 6 - 0=CHS mode, 1=LBA mode | |<^. +10 | Command/Status | Since ADFS 4.00, the use of bit 4 of the Device byte of the parameter block to select between devices on the same controller/port is deprecated (even for PATA controllers; PATADriver will substitute the device number into the Device byte prior to transmission for you). Use bits 12-15 of R0 instead. Also since ADFS 4.00, the parameter block is no longer updated if R0 bit 0 was set on entry. h4. Use The purpose of this call is to access low-level IDE commands. h4. Notes This call must not be called in the background. h4. See also * [[ADFS]] * [[FileCore]]