VOID Setscreen( log, phys, mode )
VOIDP log, phys;
WORD mode;
Opcode
5 (0x05)
Availability
All
TOS versions.
As of
TOS 4.00, this function has a new binding (see
VsetScreen()), which is actually an extension of this old
Setscreen() binding.
Parameters
log is the new address at which the
LogicalScreen buffer will start.
phys is the new address at which the
PhysicalScreen buffer will start.
mode defines the video mode to switch to (see
Getrez() for video mode values).
If any of these three parameters is set to
SCR_NOCHANGE (
-1) then that value will be left unchanged.
Binding
move.w mode,-(sp)
pea phys
pea log
move.w #$5,-(sp)
trap #14
lea 12(sp),sp
Caveats
Changing screen modes with this call does not reinitialize the
AES.
Under genuine
TOS system, the
VDI and
VT52? emulator are, however, correctly reinitialized, but under
NVDI? it looks like the
VDI is not. This leads to the necessity under
NVDI? to hide the mouse (see
v_rmcur()?) before switching to a new video mode, and show it again (see
v_dspcur()?) after switching back to the former mode.
The
AES should not be used after changing screen mode with this call until the former mode is restored.
Comments
TOS 1.00 to 1.04 required that their
PhysicalScreen buffer be on a 256 byte boundary. The Videl chip on
Falcon030? requires a
LONG boundary. All other Atari computers only require a
WORD boundary.
To access the unique video modes of the
Falcon030? the call
VsetScreen() (which is actually an alternate binding of this call with the same opcode) should be used in place of this call.
See Also