Topic : TOS - The Operating System Author : Version : tos.hyp (December 19, 2008) Subject : Programmieren/Atari Nodes : 3010 Index Size : 93790 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Title @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File7.6.73 vq_extnd TOS Name: »Extended inquire function« - Obtain additional information about a workstation. Opcode: 102 Syntax: void vq_extnd ( int16_t handle, int16_t owflag, int16_t *work_out ); Description: The call vq_extnd obtains additional information about the capabilities of a workstation. The following apply: Parameter Meaning handle Workstation identifier owflag Type of information: 0 = Return v_opnwk/v_opnvwk values 1 = Return additional information work_out[0] Type of screen: 0 = No screen 1 = Separate alpha and graphic controllers and separate video memory 2 = Separate alpha and graphic controllers with shared video memory 3 = Common video and graphic controller with separate video memory 4 = Common alpha and graphic controller with shared video memory (Note: All know devices return either 0 or 4) work_out[1] Number of colour levels (refers to the CLUT) work_out[2] Supported text effects (same bitmask as with vst_effects) work_out[3] Raster scaling flag: 0 = Scaling impossible 1 = Scaling possible work_out[4] Number of planes work_out[5] CLUT flag (0 = no CLUT, 1 = CLUT or pseudo-CLUT (TrueColor) exists) work_out[6] Performance factor (number of 16*16 raster operations per second) work_out[7] Contour fill capability (v_contourfill) 0 = Not supported 1 = Contour fill supported work_out[8] Text rotation ability: 0 = None 1 = In steps of 90 degrees only 2 = In steps of 1/10 degree work_out[9] Number of writing modes available work_out[10] Highest available input levels: 0 = None 1 = Request 2 = Request and sample work_out[11] Text alignment capability flag: 0 = Not available 1 = Available work_out[12] Inking capability flag: 0 = Device cannot ink 1 = Device can ink work_out[13] Rubberbanding capability flag: 0 = No rubberbanding 1 = Capable of rubberband lines 2 = Capable of rubberband lines and rectangles work_out[14] Maximum number of input vertices for v_pline, v_pmarker, v_fillarea, or -1 (unlimited) work_out[15] Maximum number of intin arguments, or -1 (no limit) work_out[16] Number of mouse buttons work_out[17] Line types for wide lines: 0 = No 1 = Yes work_out[18] Writing modes available for wide lines 0 = No 1 = Yes work_out[19] Clipping flag: 0 = Clipping off 1 = Clipping on Only PC-GEM as of version 2.0 and NVDI. work_out[20] 0 = No extended precision pixel size information is available 1 = Pixel size is in 1/10 microns 2 = Pixel size is in 1/100 microns 3 = Pixel size is in 1/1000 microns work_out[21] Pixel width in 1/10, 1/100 or 1/1000 microns, like work_out[20] work_out[22] Pixel height in 1/10, 1/100 or 1/1000 microns, like work_out[20] work_out[23] Horizontal resolution in dpi work_out[24] Vertical resolution in dpi work_out[25] Flag to indicate whether bit-image files on printers can be rotated by the driver (as of PC-GEM/3): 0 = No 1 = Rotation in 0,90,180,270 degrees possible work_out[26] + work_out[27] Address of the screen buffer (1/4 of the screen area) that is used with AES functions (only as of PC-GEM/3) work_out[28] Bezier flag: Bit-1 = Driver has no Bezier capability (0), or driver has Bezier capability (1) This information is available as of PC- GEM/3 as well as under NVDI work_out[30] Raster flag: Bit-0 = 1 vrt/vro_cpyfm is capable of scaling bitmaps Bit-1 = 1 New raster function present, as of NVDI 5.00 Bit-2 = 1 New vr_clip_rects_xxx clipping function present, as of NVDI 5.02 work_out[32] Bit-0 = 1 Bit 0 = 1 New style colour routines (NVDI 5.xx) work_out[40] Non-printable left margin in pixels (printers/plotters) work_out[41] Non-printable top margin in pixels (printers/plotters) work_out[42] Non-printable right margin in pixels (printers/plotters) work_out[43] Non-printable bottom margin in pixels (printers/plotters) work_out[44] Page size (printers etc.): 0 = Use default setting 1 = DIN A3 2 = DIN A4 3 = DIN A5 4 = DIN B5 16 = Letter Size 17 = Half Size 18 = Legal Size 19 = Double Size 20 = Broadsheet size work_out[45] Top left X-coordinate, and work_out[46] Top left Y-coordinate of the clipping rectangle work_out[47] Bottom left X-coordinate, and work_out[48] Bottom left Y-coordinate of the clipping rectangle work_out[49] : : work_out[56] Reserved, contain zero Notes: The stated assignments of the work_out arrays apply for the case that the extended information (owflag = 1) is to be obtained. If work_out[20] holds a non-zero value, work_out[21..24] and work_out[40..43] will contain extended information about pixel size and non-printable margins. The non-printable margins are normally returned only by printer drivers. They permit an application to centre documents, or to provide the user with a true likeness of the printed page in which the marginal borders in the document are depicted. (The region returned by v_opnwk in work_out[0/1] is the printable area.) If a driver returns more precise pixel sizes, this information should be used to calculate the position of graphic objects for printing. In worst case using the values from v_opnwk in work_out[3/4] can result in a positioning inaccuracy of 2 or 3 mm (for output on a DIN A4 page). Atari originaly misdocumented the workout[5] (CLUT) element, reversing the values. The Falcon 030 and some third-party TrueColor boards return the correct values, but some older boards may not. Return value: DThe function returns no direct function result. Availability: Supported by all drivers. Group: Inquire functions See Also: Binding v_contourfill vswr_mode v_pline v_pmarker v_fillarea v_opnwk