Difference between revisions of "OSBYTE &A0"
m |
m (.) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[Category:OSBYTE]] | [[Category:OSBYTE]] | ||
− | OSBYTE &A0 (160) - Read VDU Variable | + | {{PageTitle|OSBYTE &A0 (160) - Read VDU Variable}} |
+ | This call returns variable number X in registers X and Y. On some implementations | ||
+ | of BASIC it is called by the '''[[VDU|=VDU(n)]]''' function. | ||
− | + | The VDU variables are stored in a machine-dependant location (&0300 in most 8-bit | |
− | are stored in a machine-dependant location (&0300 in most 8-bit OSs), so | + | OSs), so this call should be made to read them. 16-bit values (eg &06/7) can be |
− | this call should be made to read them. 16-bit values (eg &06/7) can be read | + | read with one call by reading the low numbered location (eg &06). |
− | with one call by reading the low numbered location (eg &06). | ||
As the VDU variables number 0 to 127, some platforms translate VDU variable | As the VDU variables number 0 to 127, some platforms translate VDU variable | ||
Line 33: | Line 34: | ||
&24/5 Current graphics X position in internal coordinates | &24/5 Current graphics X position in internal coordinates | ||
&26/7 Current graphics Y position in internal coordinates | &26/7 Current graphics Y position in internal coordinates | ||
− | &28-&2F Bitmap read from screen by OSBYTE | + | &28-&2F Bitmap read from screen by [[OSBYTE &87]] |
&30-&49 Graphics workspace | &30-&49 Graphics workspace | ||
&4A/B Text cursor address for 6845 | &4A/B Text cursor address for 6845 | ||
Line 42: | Line 43: | ||
&52/&53 Bytes per screen row | &52/&53 Bytes per screen row | ||
&54 Screen memory size high byte | &54 Screen memory size high byte | ||
− | &55 Current screen mode | + | &55 Current screen mode read by [[OSBYTE &87]] |
&56 Memory map type | &56 Memory map type | ||
0 - 20K mode | 0 - 20K mode |
Latest revision as of 23:30, 3 March 2021
OSBYTE &A0 (160) - Read VDU Variable
This call returns variable number X in registers X and Y. On some implementations of BASIC it is called by the =VDU(n) function.
The VDU variables are stored in a machine-dependant location (&0300 in most 8-bit OSs), so this call should be made to read them. 16-bit values (eg &06/7) can be read with one call by reading the low numbered location (eg &06).
As the VDU variables number 0 to 127, some platforms translate VDU variable numbers 128+ to the appropriate RISC OS OS_ReadVduVariables offset.
VDU Variables ------------- &00/1 Current graphics window left column in pixels &02/3 Current graphics window bottom row in pixels &04/5 Current graphics window right column in pixels &06/7 Current graphics window top row in pixels &08 Current text window left hand column &09 Current text window bottom row &0A Current text window right hand column &0B Current text window top column &0C/D Current graphics X origin in external coordinates &0E/F Current graphics Y origin in external coordinates &10/1 Current graphics X position in external coordinates &12/3 Current graphics Y position in external coordinates &14/5 Old graphics X position in external coordinates &16/7 Old graphics Y position in external coordinates &18 Current absolute text X position (=POS+vduvar &08) &19 Current absolute text Y position (=VPOS+vduvar &0B) &1A Line within current graphics cell of graphics cursor &1B Graphics workspace/VDU queue &1F-&23 VDU queue &24/5 Current graphics X position in internal coordinates &26/7 Current graphics Y position in internal coordinates &28-&2F Bitmap read from screen by OSBYTE &87 &30-&49 Graphics workspace &4A/B Text cursor address for 6845 &4C/D Text window width in bytes &4E High byte of bottom of screen memory &4F Bytes per character for current mode &50/&51 Screen display start address for 6845 &52/&53 Bytes per screen row &54 Screen memory size high byte &55 Current screen mode read by OSBYTE &87 &56 Memory map type 0 - 20K mode 1 - 16K mode 2 - 10K mode 3 - 8K mode 4 - 1K mode &57 Foreground text colour mask &58 Background text colour mask &59 Foreground graphics colour mask (BBC/Electron) &5A Background graphics colour mask (BBC/Electron) &5B Foreground GCOL mode &5C Background GCOL mode &5D/&5E General VDU jump vector &5F Cursor start register previous setting &60 Number logical colours -1 &61 Pixels per byte -1 (zero if text only mode) &62 Leftmost pixel colour mask &63 Rightmost pixel colour mask &64 Text input absolute X position &65 Text input absolute Y position BBC, Electron: Master: &66 Teletext output cursor character VDU 23,16 setting &67 Font explosion flags, b1=224-255 VDU 23,6 dot pattern in RAM, b7=32-63 in RAM &68 Font location, characters 32-63 Current dot pattern state &69 Font location, characters 64-95 Colour plotting ECF pattern number or zero &6A Font location, characters 96-127 Graphics foreground ECF pattern number or zero &6B Font location, characters 128-159 Graphics background ECF pattern number or zero &6C Font location, characters 160-191 b7 set when cursor off righthand edge of screen &6D Font location, characters 192-223 Graphics foreground colour &6E Font location, characters 224-225 Graphics background colour &6F-&7E Palette for colours 0 to 15 &7F Unused (used by some shadow RAM systems)
See Also
Jgharston 22:15, 26 May 2009 (UTC) Jgharston (talk) 20:05, 25 October 2015 (UTC)