Difference between revisions of "OSBYTE &A0"
m (1 revision) |
m |
||
Line 2: | Line 2: | ||
OSBYTE &A0 (160) - Read VDU Variable, called by '''=VDU(n)''' from BASIC | OSBYTE &A0 (160) - Read VDU Variable, called by '''=VDU(n)''' from BASIC | ||
− | This call returns variable number X in registers X and Y The VDU variables | + | This call returns variable number X in registers X and Y. The VDU variables |
are stored in a machine-dependant location (&0300 in most 8-bit OSs), so | 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) | + | 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 | As the VDU variables number 0 to 127, some platforms translate VDU variable | ||
Line 37: | Line 37: | ||
&4A/B Text cursor address for 6845 | &4A/B Text cursor address for 6845 | ||
&4C/D Text window width in bytes | &4C/D Text window width in bytes | ||
− | &4E High byte of bottom of screen memory | + | &4E High byte of bottom of screen memory |
− | |||
&4F Bytes per character for current mode | &4F Bytes per character for current mode | ||
&50/&51 Screen display start address for 6845 | &50/&51 Screen display start address for 6845 | ||
&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 (=MODE) | &55 Current screen mode (=MODE) | ||
&56 Memory map type | &56 Memory map type | ||
Line 51: | Line 49: | ||
3 - 8K mode | 3 - 8K mode | ||
4 - 1K mode | 4 - 1K mode | ||
− | &57 Foreground text colour | + | &57 Foreground text colour mask |
− | &58 Background text colour | + | &58 Background text colour mask |
− | &59 Foreground graphics colour | + | &59 Foreground graphics colour mask (BBC/Electron) |
− | &5A Background graphics colour | + | &5A Background graphics colour mask (BBC/Electron) |
− | &5B Foreground | + | &5B Foreground GCOL mode |
− | &5C Background | + | &5C Background GCOL mode |
&5D/&5E General VDU jump vector | &5D/&5E General VDU jump vector | ||
&5F Cursor start register previous setting | &5F Cursor start register previous setting | ||
Line 83: | Line 81: | ||
&6F-&7E Palette for colours 0 to 15 | &6F-&7E Palette for colours 0 to 15 | ||
− | &7F Unused | + | &7F Unused (used by some shadow RAM systems) |
==See Also== | ==See Also== | ||
Line 90: | Line 88: | ||
[[User:Jgharston|Jgharston]] 22:15, 26 May 2009 (UTC) | [[User:Jgharston|Jgharston]] 22:15, 26 May 2009 (UTC) | ||
+ | [[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 20:05, 25 October 2015 (UTC) |
Revision as of 21:05, 25 October 2015
OSBYTE &A0 (160) - Read VDU Variable, called by =VDU(n) from BASIC
This call returns variable number X in registers X and Y. 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 text X position (=POS) &19 Current text Y position (=VPOS) &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 135 &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 (=MODE) &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 X position &65 Text input 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)