•  Back 
  •  Main 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help 
  •  Show info about hypertext 
  •  View a new file 
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+