Difference between revisions of "OSBYTE &80"

From BeebWiki
Jump to: navigation, search
m (1 revision)
m (1 revision)
(No difference)

Revision as of 20:12, 8 March 2015

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
&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


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 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)