Difference between revisions of "OSBYTE &80"

From BeebWiki
Jump to: navigation, search
m (1 revision)
m (Added ADVAL16.)
Line 29: Line 29:
 
|        8    ||  Mouse Y position
 
|        8    ||  Mouse Y position
 
|-
 
|-
|        9    ||  Mouse button state, b0=Left, b1=Middle, b2=Right|
+
|        9    ||  Mouse button state, b0=Left, b1=Middle, b2=Right
 +
|-
 +
|      16    ||  16-bit GET (cZ80Tube)
 
|-
 
|-
 
|&FFFF (-1)  ||  Keyboard buffer
 
|&FFFF (-1)  ||  Keyboard buffer
Line 62: Line 64:
 
If an unknown device or buffer is examined, then the call is passed to
 
If an unknown device or buffer is examined, then the call is passed to
 
sideways ROMs as an Unknown OSBYTE service call. {check: some exceptions}
 
sideways ROMs as an Unknown OSBYTE service call. {check: some exceptions}
 +
 +
Most implementations only actually check bit 7 of the parameter (ie, bit 7
 +
of X) to chose between reading devices and reading buffers, so for instance
 +
ADVAL(255) is the same as ADVAL(-1).
  
 
==Mouse==
 
==Mouse==
Line 71: Line 77:
  
 
[[User:Jgharston|Jgharston]] 18:59, 11 September 2007 (BST)
 
[[User:Jgharston|Jgharston]] 18:59, 11 September 2007 (BST)
 +
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 06:54, 21 December 2018 (CET)

Revision as of 06:54, 21 December 2018


OSBYTE &80 (128) - Read I/O device or buffer status

On entry, If XY<0, read buffer status
          If XY>=0, read I/O device

On exit XY=returned value
XY on entry XY on exit
0 b0-b7=buttons, b8-b15=last ADC channel converted
1 Analogue Channel 1
2 Analogue Channel 2
3 Analogue Channel 3
4 Analogue Channel 4
5 Mouse X boundary
6 Mouse Y boundary
7 Mouse X position
8 Mouse Y position
9 Mouse button state, b0=Left, b1=Middle, b2=Right
16 16-bit GET (cZ80Tube)
&FFFF (-1) Keyboard buffer
&FFFE (-2) Serial input buffer
&FFFD (-3) Serial output buffer
&FFFC (-4) Printer output buffer
&FFFB (-5) Sound output buffer 0
&FFFA (-6) Sound output buffer 1
&FFF9 (-7) Sound output buffer 2
&FFF8 (-8) Sound output buffer 3
&FFF7 (-9) Speech output buffer
&FFF6 (-10) Mouse input buffer
&FFF5 (-11) MIDI input buffer {check}
&FFF4 (-12) MIDI output buffer {check}

Calling from BBC BASIC

=ADVAL() calls OSBYTE &80

Implementations

If an unknown device or buffer is examined, then the call is passed to sideways ROMs as an Unknown OSBYTE service call. {check: some exceptions}

Most implementations only actually check bit 7 of the parameter (ie, bit 7 of X) to chose between reading devices and reading buffers, so for instance ADVAL(255) is the same as ADVAL(-1).

Mouse

Most mouse drivers do not implement calls 5, 6 and 9. The VFS Videodisk Filing System ROM used with the Domesday System implements 5, 6 and 9. The mouse buttons are more usually read with INKEY-10, INKEY-11 and INKEY-12. 8-bit systems rarely implement a mouse buffer. 32-bit systems usually use a sound system that does not use the sound output buffers.

Jgharston 18:59, 11 September 2007 (BST) Jgharston (talk) 06:54, 21 December 2018 (CET)