Difference between revisions of "OSWORD &FF"

From BeebWiki
Jump to: navigation, search
m (1 revision)
m
Line 1: Line 1:
 
[[Category:OSWORD]]
 
[[Category:OSWORD]]
OSWORD &FF (255) - DOS fast screen control 80x86 DOS
+
==OSWORD &FF (255) - DOS fast screen control 80x86 DOS==
  
 
  The control block is ignored, so for speed, set XY?0=0 and XY?1=0.
 
  The control block is ignored, so for speed, set XY?0=0 and XY?1=0.
Line 9: Line 9:
 
  the command loop is entered. The command is sent through register
 
  the command loop is entered. The command is sent through register
 
  2:
 
  2:
 
+
 
  &FF - single byte read through register 1 fills the following eight
 
  &FF - single byte read through register 1 fills the following eight
 
     bytes of screen memory.
 
     bytes of screen memory.
Line 17: Line 17:
  
  
OSWORD &FF (255) - Z80 Data transfer over Tube Z80 Tube OS
+
==OSWORD &FF (255) - Z80 Data transfer over Tube Z80 Tube OS==
  
 
  On entry:
 
  On entry:

Revision as of 22:10, 8 March 2015

OSWORD &FF (255) - DOS fast screen control 80x86 DOS

The control block is ignored, so for speed, set XY?0=0 and XY?1=0.
Commands are sent from the 80x86 via Tube register 2, first, the
address is sent, high byte then low byte. This address is updated
for the data sent and wraps round from &7FFF to &4000. If the high
byte is &00, no low byte is sent, and the routine finishes. Then
the command loop is entered. The command is sent through register
2:

&FF - single byte read through register 1 fills the following eight
    bytes of screen memory.
&00 - eight bytes read though register 1 fill following eight bytes
    of screen memory.
Other - loop back to wait for address or termination.


OSWORD &FF (255) - Z80 Data transfer over Tube Z80 Tube OS

On entry:
 XY?0     =&0D (send block length)
 XY?1     =&01 (receive block length)
 XY!2     =I/O address
 XY!6     =Z80 address
 XY+10..11=data length
 XY?12    =command, 0=read from I/O, 1=write to I/O.

See Also

Jgharston 14:30, 26 May 2009 (UTC)