Difference between revisions of "OSBYTE &80"
m (moved OSBYTE 80 to OSBYTE &80) |
m (.) |
||
(5 intermediate revisions by 2 users not shown) | |||
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 |
+ | |- | ||
+ | |127 (128-1) || low level read from buffer -1 - ie 16-bit GET (cZ80Tube, Brandy and others) | ||
|- | |- | ||
|&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 68: | Line 74: | ||
mouse buttons are more usually read with INKEY-10, INKEY-11 and INKEY-12. | 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 | 8-bit systems rarely implement a mouse buffer. 32-bit systems usually use | ||
− | a sound system that does not use | + | a sound system that does not use these sound output buffers. |
[[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) |
Latest revision as of 17:42, 8 July 2020
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 |
127 (128-1) | low level read from buffer -1 - ie 16-bit GET (cZ80Tube, Brandy and others) |
&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 these sound output buffers.
Jgharston 18:59, 11 September 2007 (BST) Jgharston (talk) 06:54, 21 December 2018 (CET)