Topic : The GFA-Basic Compendium Author : GFA Systemtechnik GmbH Version : GFABasic.HYP v2.98 (12/31/2023) Subject : Documentation/Programming Nodes : 899 Index Size : 28056 HCP-Version : 3 Compiled on : Atari @charset : atarist @lang : @default : Document not found @help : Help @options : +g -i -s +z @width : 75 @hostname : STRNGSRV @hostname : CAB @hostname : HIGHWIRE @hostname : THING View Ref-FileCONTRL, CONTRL() INTIN, INTIN() INTOUT ,INTOUT() PTSIN, PTSIN() PTSOUT, PTSOUT() VDISYS VDIBASE WORK_OUT() The VDI functions are divided into seven categories: Control functions Output functions Attribute functions Raster functions Input functions Inquire functions Escape functions Three kinds of parameters are distinguished: Input, Output, and those used for both input and output. These parameters belong in five arrays: CONTRL Control INTIN Integer input PTSIN Point coordinate input INTOUT Integer output PTSOUT Point coordinate output The input parameters are stored in: CONTRL(0) Function opcode CONTRL(1) Number of points in the PTSIN array CONTRL(3) Length of the INTIN array CONTRL(5) Sub-opcode INTIN() Integer value input array PTSIN() Point coordinate input array The output parameters are: CONTRL(2) Number of points in the PTSOUT array CONTRL(4) Length of the INTOUT array INTOUT() Output array of integer values PTSOUT() Output array of point coordinates Input and output parameters are: CONTRL(6) Workstation handle CONTRL(7-n) Opcode dependent information The array elements meaning depends on which VDI function is being called. Memo: Programs which use the VDI to do all graphics output will work on machines equiped with video graphics cards. The compiler only initializes the VDI if some module is linked that actually calls the VDI. The editor on the other hand always does this. If you suspect the VDI is not initialized it can be forced with a call to any VDI function. I suggest using some inquire function like ~POINT(0,0). When GFA starts up, it opens a workstation and copies the handle to CONTRL(6). This is why you don't need set CONTRL(6) when writing custom bindings. This scheme relies on the fact that the VDI won't alter CONTRL(6). In some rare cases, depending on the VDI call made, the contents of CONTRL(6) could be destroyed. If you discover this has happened you can restore CONTRL(6) by issuing the command V~H=-1. VDI+, VDI Functions by Opcode+