Difference between revisions of "OSWORD &FE"
m (.) |
(Added some Z80 disk access details.) |
||
Line 3: | Line 3: | ||
On entry: | On entry: | ||
− | XY?0 | + | XY?0 = &10 (send block length) |
− | XY?1 | + | XY?1 = &03 (receive block length) |
− | XY! | + | The rest of the block is a SCSI command block as per OSWORD &72 |
+ | XY?2 = returned result, 0=ok | ||
+ | XY!3 = data address | ||
+ | XY?7 = command | ||
+ | XY?8 = drive number in b5-b7, sector b16-b20 in b0-b4 | ||
+ | XY?9 = sector number b8-b15 | ||
+ | XY?10 = sector number b0-b7 | ||
+ | XY?11 = number of sectors or 0 | ||
+ | XY?12 = 0 | ||
+ | XY!13 = data length if X%?9=0 | ||
− | This is loaded by the Z80 Tube v2 client code from $.CPM.X or $.CPM.Y | + | This is loaded by the Z80 Tube v2 client code from $.CPM.X (for BBC B/B+) or $.CPM.Y |
− | on the host filing system. The code is currently being disassembled. | + | (for Master) on the host filing system. The only commands supported are &08 (Read), |
+ | &0A (Write) and &0B (Seek/Park). | ||
+ | |||
+ | * The disk layout accessed is 10 sectors per track. | ||
+ | * There are some tests of the byte passed at XY?12. | ||
+ | * The default code fails if called from the I/O processor with the control block at &xxFE or &xxFF due to incrementing X without carrying the overflow into Y. | ||
+ | |||
+ | The code is currently being disassembled. | ||
==OSWORD &FE (254) - DOS Text output (80x86 DOS, unimplemented)== | ==OSWORD &FE (254) - DOS Text output (80x86 DOS, unimplemented)== |
Revision as of 12:09, 9 December 2024
OSWORD &FE (254) - Z80 MFM disk access (Z80 Tube OS)
On entry: XY?0 = &10 (send block length) XY?1 = &03 (receive block length) The rest of the block is a SCSI command block as per OSWORD &72 XY?2 = returned result, 0=ok XY!3 = data address XY?7 = command XY?8 = drive number in b5-b7, sector b16-b20 in b0-b4 XY?9 = sector number b8-b15 XY?10 = sector number b0-b7 XY?11 = number of sectors or 0 XY?12 = 0 XY!13 = data length if X%?9=0
This is loaded by the Z80 Tube v2 client code from $.CPM.X (for BBC B/B+) or $.CPM.Y (for Master) on the host filing system. The only commands supported are &08 (Read), &0A (Write) and &0B (Seek/Park).
- The disk layout accessed is 10 sectors per track.
- There are some tests of the byte passed at XY?12.
- The default code fails if called from the I/O processor with the control block at &xxFE or &xxFF due to incrementing X without carrying the overflow into Y.
The code is currently being disassembled.
OSWORD &FE (254) - DOS Text output (80x86 DOS, unimplemented)
The 6502 host support code in 6502.SYS installed by the 80x86 DOS just returns from OSWORD &FE.
See Also
Jgharston 14:29, 26 May 2009 (UTC) Jgharston (talk) 03:29, 20 July 2020 (CEST)