Physical Screen
On Atari 16/32 bits computers, the
PhysicalScreen is a memory area in RAM where the video system reads the data that is to be rendered on the video monitor (as opposed to the
LogicalScreen, that is where the
VDI draws).
PhysicalScreen and
LogicalScreen are normally the same but they are addressed individually to enable screen flipping.
The address of this buffer can be obtained with a call to the
XBIOS function
Physbase(). In a
VirtualScreen situation, the
PhysicalScreen address is the upper-left corner of the whole virtual field (of which a part is currently displayed) and not the upper-left corner of the displayed frame.
Screen buffer size
PhysicalScreen and
LogicalScreen are meant to have the same X-Y dimensions, and thus the same buffer size. When the
_VDO cookie has a value from
0x00000000 to
0x00020000, the size of this buffer has to be guessed with a call to
Getrez() as detailed below:
Getres()? returns |
screen buffer size |
0 |
32000 bytes |
1 |
32000 bytes |
2 |
32000 bytes |
4 |
153600 bytes |
6 |
153600 bytes |
7 |
153600 bytes |
When the
_VDO cookie has a value of
0x00030000 or greater, the
XBIOS function
Vgetsize() returns the buffers size the screen (valid for both
PhysicalScreen and
LogicalScreen). In a
VirtualScreen situation, the buffer size returned by
Vgetsize() is the one of the whole virtual field.
See Also