OSWORD &FA
OSWORD &FA (250) Data transfer over Tube
This OSWORD call is installed by the 80x86 Tube client.
On entry: XY?0 =&0D or &0E (send block length) XY?1 =&10 (receive block length) XY!2 =I/O processor address XY+6..7 =80x86 offset address XY+8..9 =80x86 segment address XY+10..11=data length, &0000=nothing to transfer XY?12 =function XY?13 =memory access control if XY?0=&0E.
The functions are the same as the Tube values:
- 0 - write to I/O as single bytes
- 1 - read from I/O as single bytes
- 2 - write to I/O as byte pairs
- 3 - read from I/O as byte pairs
- 6 - write to I/O as groups of 256 bytes
- 7 - read from I/O as groups of 256 bytes
If the memory access control byte is not used the I/O address at XY!2 accesses the main I/O memory and whichever ROM happens to be paged in when the call is made - usually the current language. If the memory access control byte is used, its format is:
- b0-b3=ROM number
- b4 =0 use specified ROM, b4=1 use current ROM
- b5 =0 use main memory, b5=1 use screen memory
- b6 =1 ignore b5 and use shadow memory
- b7 unused.
See also
- OSWORD &05
- OSWORD &06
- OSWORD &FB
- OSWORD &FC
- OSWORD &FD
- OSWORD &FE
- OSWORD &FF
- OSWORD &FA source code
- OSWORDs list at mdfs.net
Jgharston 14:26, 26 May 2009 (UTC) Jgharston 00:05, 31 January 2016 (UTC) Jgharston (talk) 10:53, 17 December 2024 (CET)