This is an old version from the tos.hyp. The new is on GitHub!

HomeXBIOSScreen functionsCrazy-Dots XBIOS extension

4.6 CENTScreen XBIOS extension

MultiMon Multisynchro mode.
SetMon Sets the monitor type.
SizeComp Vgetsize compatibility.
Vattrib Alters attribute of a video mode.
Vclose Shutdown
Vcreate Adds a video mode.
Vdelete Deletes a video mode.
Vfirst Finds the first video mode.
Vload Loads VIDEO.DAT.
Vlock Locks the virtual screen.
Vnext Next video mode.
Voffset Gets position of the virtual screen.
Vopen Wakes up the screen.
Vread Obtains the current video mode.
Vsave Saves VIDEO.DAT.
Vscroll Chooses the method of scrolling.
Vseek Sets the position of the virtual screen.
Vsize Returns the size of the screen.
Vvalid Validates a video mode.
Vwrite Changes the screen resolution.

Note:
These functions are only available under CENTScreen; they are not routines of the operating system.

4.6.1 MultiMon

Name: »MultiMon« - Multisynchro mode
Opcode: 82
Syntax: int16_t MultiMon( int16_t Cmd );
Description: You can authorise the switch between RGB and VGA.

Cmd Description
0 Forbid the switch.
>0 Authorize the switch.
-1 The current mode.
Return value: The old mode.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.1.1 Bindings for MultiMon

C:

int16_t MultiMon( int16_t Cmd );
Assembler:
move.w    #Cmd,-(sp)  ; Offset 2
move.w    #82,-(sp)   ; Offset 0
trap      #14         ; Call XBIOS
addq.l    #4,sp       ; Correct stack

4.6.2 SetMon

Name: »SetMon« - Set the monitor type.
Opcode: 81
Syntax: int16_t SetMon( int16_t MontType );
Description: Set the monitor type.

MontType New type of monitor
0 SM124 SM124 (prehistoric screen of the ST)
1 RGB (TV-like screen, ideal to make one blind...)
2 VGA (a real monitor to work with!)
3 TV (worst RGB, makes all users blind...)
Return value: The type of screen.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.2.1 Bindings for SetMon

C: #include

int16_t SetMon( int16_t MontType );
Assembler:
move.w    #MontType,-(sp) ; Offset 2
move.w    #81,-(sp)       ; Offset 0
trap      #14             ; Call XBIOS
addq.l    #4,sp           ; Correct stack

4.6.3 SizeComp

Name: »SizeComp« - Vgetsize compatibility
Opcode: 83
Syntax: int16_t SizeComp( int16_t Cmd );
Description: Vgetsize compatibility.

Cmd Description
0 Return the real size of the original screen.
  Put the height bit to 1 to return the extended
  size of the video mode.
>0 Return the extended size.
-1 The current mode.
Return value: The old mode.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.3.1 Bindings for SizeComp

C: #include

int16_t SizeComp( int16_t Cmd );
Assembler:
move.w    #Cmd,-(sp)  ; Offset 2
move.w    #83,-(sp)   ; Offset 0
trap      #14         ; Call XBIOS
addq.l    #4,sp       ; Correct stack

4.6.4 Vattrib

Name: »Vattrib« - Changes the attiributes of a video mode
Opcode: 67
Syntax: void Vattrib( VDO_PARAM *InParam, VDO_PARAM *OutParam );
Description: This function allows you to change the parmeters of original video modes. It is possible to change only the set, eco, eco2 and virt flags, the virtual screen size and the screen saver waiting period.

As the flag_set flag can be set only once for each resolution type, this function handles the previous mode deactivation. Of course, it is only useful for the former functions.
Return value: The OutParam is filled with the prameters really set.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.4.1 Bindings for Vattrib

C: #include

void Vattrib( VDO_PARAM *InParam, VDO_PARAM *OutParam );
Assembler:
move.l    #OutParam,-(sp) ; Offset 6
move.l    #InParam,-(sp)  ; Offset 2
move.w    #67,-(sp)       ; Offset 0
trap      #14             ; Call XBIOS
lea       10(sp),sp       ; Correct stack

4.6.5 Vclose

Name: »Vclose« - Shut down
Opcode: 76
Syntax: int16_t Vclose( void );
Description: Shut down
Return value:  0 : No error.
-1 : Improbable.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.5.1 Bindings for Vclose

C: #include

int16_t Vclose( void );
Assembler:
move.w    #76,-(sp)    ; Offset 0
trap      #14          ; Call XBIOS
addq.l    #2,sp        ; Correct stack

4.6.6 Vcreate

Name: »Vcreate« - Add a video mode
Opcode: 68
Syntax: void Vcreate( VDO_PARAM *InParam, VDO_PARAM *OutParam );
Description: It take directly the videl parameters and affect a new handle on it with your parameters.

It use by CENTvidel.
Return value: The OutParam is filled with the prameters really set.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.6.1 Bindings for Vcreate

C: #include

void Vcreate( VDO_PARAM *InParam, VDO_PARAM *OutParam );
Assembler:
move.l    #OutParam,-(sp) ; Offset 6
move.l    #InParam,-(sp)  ; Offset 2
move.w    #68,-(sp)       ; Offset 0
trap      #14             ; Call XBIOS
lea       10(sp),sp       ; Correct stack

4.6.7 Vdelete

Name: »Vdelete« - Delete a video mode
Opcode: 69
Syntax: int16_t Vdelete( int16_t Handle);
Description: Doesn't move the handles but compresses the internal data. The handles may change after a save-load sequence.
Return value:  0: No error
-1: Bad handle
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.7.1 Bindings for Vdelete

C: #include

int16_t Vdelete( int16_t Handle);
Assembler:
move.w    #Handle,-(sp)   ; Offset 2
move.w    #69,-(sp)       ; Offset 0
trap      #14             ; Call XBIOS
addq.l    #4,sp           ; Correct stack

4.6.8 Vfirst

Name: »Vfirst« - Search the first video mode
Opcode: 70
Syntax: int16_t Vfirst( VDO_PARAM *Mask, VDO_PARAM *Mode );
Description: Finds the first video mode.
Return value:  0: The out-array is full
-1: No mode match
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.8.1 Bindings for Vfirst

C: #include

int16_t Vfirst( VDO_PARAM *Mask, VDO_PARAM *Mode );
Assembler:
move.l    #Mode,-(sp)    ; Offset 6
move.l    #Mask,-(sp)    ; Offset 2
move.w    #70,-(sp)      ; Offset 0
trap      #14            ; Call XBIOS
lea       10(sp),sp      ; Correct stack

4.6.9 Vload

Name: »Vload« - Load VIDEO.DAT file
Opcode: 73
Syntax: int16_t Vload( void );
Description: Load the VIDEO.DAT file.
Return value:  0 : No error.
-1 : File not found.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.9.1 Bindings for Vload

C: #include

int16_t Vload( void );
Assembler:
move.w    #73,-(sp)    ; Offset 0
trap      #14          ; Call XBIOS
addq.l    #2,sp        ; Correct stack

4.6.10 Vlock

Name: »Vlock« - Lock the virtual screen
Opcode: 80
Syntax: int16_t Vlock( int16_t cmd );
Description: Locks the virtual screen.

cmd Description
0 The mouse can move the virtual screen
1 The mouse can not move the virtual screen
Return value: The old configuration.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.10.1 Bindings for Vlock

C: #include

int16_t Vlock( int16_t cmd );
Assembler:
move.w    #cmd,-(sp)   ; Offset 2
move.w    #80,-(sp)    ; Offset 0
trap      #14          ; Call XBIOS
addq.l    #4,sp        ; Correct stack

4.6.11 Vnext

Name: »Vnext« - Next video mode
Opcode: 71
Syntax: int16_t Vnext( VDO_PARAM *Mask, VDO_PARAM *Mode );
Description: Next video mode
Return value:  0: The out-array is full
-1: No mode match
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.11.1 Bindings for Vnext

C: #include

int16_t Vnext( VDO_PARAM *Mask, VDO_PARAM *Mode );
Assembler:
move.l    #Mode,-(sp)    ; Offset 6
move.l    #Mask,-(sp)    ; Offset 2
move.w    #71,-(sp)      ; Offset 0
trap      #14            ; Call XBIOS
lea       10(sp),sp      ; Correct stack

4.6.12 Voffset

Name: »Voffset« - Position of the virtual screen
Opcode: 78
Syntax: int16_t Voffset( void );
Description: Returns the position of the virtual screen in relation to the top left corner of the physical screen.
Return value: Holds the current position with x in the high word and y in the low word.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.12.1 Bindings for Voffset

C: #include

int16_t Voffset( void );
Assembler:
move.w    #78,-(sp)   ; Offset 0
trap      #14         ; Call XBIOS
addq.l    #2,sp       ; Correct stack

4.6.13 Vopen

Name: »Vopen« - Wake up the screen
Opcode: 75
Syntax: int16_t Vopen( void );
Description: Wake up the screen.
Return value:  0 : No error.
-1 : Improbable.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.13.1 Bindings for Vopen

C: #include

int16_t Vopen( void );
Assembler:
move.w    #75,-(sp)    ; Offset 0
trap      #14          ; Call XBIOS
addq.l    #2,sp        ; Correct stack

4.6.14 Vread

Name: »Vread« - Obtain the current video mode
Opcode: 65
Syntax: void Vread( VDO_PARAM *Result );
Description: With one call you can know all the information about the installed video mode.
Return value: Result is filled.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.14.1 Bindings for Vread

C: #include

void Vread( VDO_PARAM *Result );
Assembler:
move.l    #Result,-(sp) ; Offset 2
move.w    #65,-(sp)     ; Offset 0
trap      #14           ; Call XBIOS
addq.l    #4,sp         ; Correct stack

4.6.15 Vsave

Name: »Vsave« - Save a VIDEO.DAT file
Opcode: 74
Syntax: int16_t Vsave( void );
Description: Save a VIDEO.DAT file.
Return value:  0 : No error.
-1 : Save impossible.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.15.1 Bindings for Vsave

C: #include

int16_t Vsave( void );
Assembler:
move.w    #74,-(sp)    ; Offset 0
trap      #14          ; Call XBIOS
addq.l    #2,sp        ; Correct stack

4.6.16 Vscroll

Name: »Vscroll« - Choose the method of scrolling
Opcode: 77
Syntax: int16_t Vscroll( int16_t ScrollMode );
Description: Choose the method of scrolling.

ScrollMode New method to use
0 Edge scrolling (default method)
1 Proportionnal scrolling
2 Focus scrolling
Return value: The old method.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.16.1 Bindings for Vscroll

C: #include

int16_t Vscroll( int16_t ScrollMode );
Assembler:
move.w    #ScrollMode,-(sp) ; Offset 2
move.w    #77,-(sp)         ; Offset 0
trap      #14               ; Call XBIOS
addq.l    #4,sp             ; Correct stack

4.6.17 Vseek

Name: »Vseek« - Set the position of the virtual screen
Opcode: 78
Syntax: VPOS Vseek( int16_t x, int16_t y );
Description: Sets the position of the virtual screen in relation to the top left corner of the physical screen.
Return value: Holds the current position with x in the high word and y in the low word.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.17.1 Bindings for Vseek

C: #include

VPOS Vseek( int16_t x, int16_t y );
Assembler:
move.w    #78,-(sp)   ; Offset 0
trap      #14         ; Call XBIOS
addq.l    #2,sp       ; Correct stack

4.6.18 Vsize

Name: »Vsize« - Return the size of the screen
Opcode: 84
Syntax: Bindings for Vsize
Description: This function allows you to know the size of a screen with input parameters.

If you put -1 for handle, the current handle is taken by default as a reference.

The function reads only the logical parameter (not if -1) and the virtual flag (not if -1).

Parameters:
Long: in-array
Return value: D0 hold the size in bytes.
0 for error (bad parameters ?!)
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.18.1 Bindings for Vsize

C:

?????
Assembler:
move.l    #Mode,-(sp) ; Offset 2
move.w    #84,-(sp)   ; Offset 0
trap      #14         ; Call XBIOS
addq.l    #6,sp       ; Correct stack

4.6.19 Vvalid

Name: »Vvalid« - Validate a video mode
Opcode: 72
Syntax: int16_t Vvalid( int16_t Handle );
Description: Validate a video mode.
Return value:  0: If the mode exists
-1: No mode for this handle
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See also: Binding

4.6.19.1 Bindings for Vvalid

C: #include

int16_t Vvalid( int16_t Handle );
Assembler:
move.w    #Handle,-(sp)  ; Offset 2
move.w    #72,-(sp)      ; Offset 0
trap      #14            ; Call XBIOS
addq.l    #4,sp          ; Correct stack

4.6.20 Vwrite

Name: »Vwrite« - Change the screen resolution.
Opcode: 66
Syntax: int16_t Vwrite( int16_t InitVDI, VDO_PARAM *InParam, VDO_PARAM *OutParam );
Description: It is possible to use the VDI in order to use the graph functions immediately. It allows to reallocate the needed screen for the chosen video mode.

With InParam, you can send the new desired resolution:
  • handle <>-1: This is the handle of a known video mode (for instance when restoring the initial screen). It is possible to give the virtual screen size by setting a value different than -1, otherwise it will use the setting of the default video mode.

  • handle = -1: you MUST specify the resolution and you MAY specify the virtual screen size. The function looks for a video mode able to accept the requested resolution and, if needed, add an over-width (virtual screen).



Once the resolution is passed in argument to the function, the output array contains the mode actually passed (useful to validate the mode).

In case of failure (not enough memory for the VDI screen, invalid handle, or requested resolution too small), the current mode is returned for information in the output array, in addition an error message is provided.
Return value: After the call, OutParam contains the real resolution made.

If an error occurs, the actual resolution is returned with -1.
Availability: CENTScreen
Group: CENTScreen XBIOS extension
See Also: Binding

4.6.20.1 Bindings for Vwrite

C:

int16_t Vwrite( int16_t InitVDI, VDO_PARAM *InParam, VDO_PARAM *OutParam );
Assembler:
move.l   #OutParam,-(sp) ; Offset 6
move.l   #InParam,-(sp)  ; Offset 2
move.w   #66,-(sp)       ; Offset 0
trap     #14             ; Call XBIOS
lea      10(sp),sp       ; Correct stack

HomeXBIOSScreen functionsCrazy-Dots XBIOS extension