OSWORD &FE

From BeebWiki
Revision as of 12:09, 9 December 2024 by Jgharston (talk | contribs) (Added some Z80 disk access details.)
Jump to: navigation, search

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)