Home VDIVDI EingabefunktionenEingabefunktionen FarbtabellenfunktionenFarbtabellenfunktionen

7.8 Escapefunktionen

Diese Bibliothek enthält Funktionen, um spezielle Eigenschaften eines Grafikgerätes gezielt auszunutzen. Zu diesem Zweck stehen die folgenden Funktionsgruppen zur Verfügung:

Querverweis: Workstations des VDI   Style-Guidelines

7.8.1 Grafikspezial-Funktionen

Diese Bibliothek enthält Funktionen um Informationen auf einem Drucker auszugeben, zur Steuerung der Farbkalibration uvm. Insgesamt stehen die folgenden Routinen zur Verfügung:

v_bit_image Bildinformationen auf Drucker ausgeben.
v_clear_disp_list Druckpuffer löschen.
v_copies Anzahl der Kopien festlegen.
v_dspcur Grafikcursor versetzen.
v_form_adv Seitenvorschub auf Drucker durchführen.
v_hardcopy Hardcopy auf Drucker ausgeben.
v_orient Ausgabeformat einstellen.
v_output_window Bildschirmbereich auf Drucker ausgeben.
v_page_size Seitenformat festlegen.
v_rmcur Letzten Grafikcursor löschen.
v_tray Schacht für Papiereinzug/ausgabe wählen.
v_xbit_image Bildinformationen auf Drucker ausgeben.
vq_bit_image Informationen über v_bit_image ermitteln.
vq_calibrate Farbkalibrierung testen.
vq_driver_info Informationen über einen Druckertreiber ermitteln.
vq_driver_name Gets name of a driver.
vq_image_type Typ einer Bitmap-Datei ermitteln.
vq_margins Druckerränder erfragen.
vq_page_name Name und Größe eines Seitenformats ermitteln.
vq_prn_scaling Skalierung des Druckertreibers ermitteln
vq_scan Druckerparameter ermitteln.
vq_tabstatus Verfügbarkeit eines Grafiktabletts, Maus, usw. abfragen.
vq_tray_names Namen von Papiereinzug/auswurf ermitteln.
vs_calibrate Farbkalibration setzen.
vs_crop Sets cropping rectangle on a document.
vs_document_info Dokumentangaben für Druckmonitor setzen
vs_load_disp_list Druckpuffer laden.
vs_page_info Sets document specifications for print monitor
vs_palette Auswahl der Farbpalette.
vs_save_disp_list Druckpuffer speichern.

Querverweis: Workstations des VDI   Style-Guidelines

7.8.1.1 vq_bit_image

Name: »Inquire v_bit_image info« - Informationen über v_bit_image ermitteln.
 
VDI-Nummer: 5 (Escape 2102)
 
Deklaration: int16_t vq_bit_image( int16_t handle, int16_t *ver, int16_t *maximg, int16_t *form );
 
Beschreibung: Die Funktion ermittelt die v_bit_image-Versionsnummer und unterstützte Dateiformate. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
ver Versionsnummer des v_bit_image
maximg Maximale Anzahl der Bilder pro Seite
form Unterstützte Formaten
Bit 0 & 1:
00: Monochrom IMG
01: Reserviert
10: Reserviert
11: Reserviert
Bit 2 & 3:
00: Unbekannte TGA
01: TGA, Bildtyp 2 unkomprimiert
10: Reserviert
11: Reserviert
Bit 4..15: Reserviert
Ergebnis: 0: Funktion existiert nicht
 
Verfügbar: Treiber von Thierry Rodolfo
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding v_bit_image vq_driver_info vq_image_type
 

7.8.1.2 Bindings für vq_bit_image

C: int16_t vq_bit_image( int16_t handle, int16_t *ver, int16_t *maximg, int16_t *form );
 
Umsetzung:
 
int16_t  vq_bit_image( int16_t handle, int16_t *ver,
                  int16_t *maximg, int16_t *form )
{
   intout[0] = 0;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 2102;
   contrl[6] = handle;

   vdi ();

   *ver    = intout[1];
   *maximg = intout[2];
   *form   = intout[3];

  return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 4 # Einträge in intout
contrl+10 contrl[5] 2102 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0] Return-Wert
intout+2 intout[1] ver
intout+4 intout[2] maximg
intout+6 intout[3] form

7.8.1.3 vq_calibrate

Name: »Inquire calibration« - Farbkalibration testen.
 
VDI-Nummer: 5 (Escape 77)
 
Deklaration: int16_t vq_calibrate ( int16_t handle, int16_t *flag );
 
Beschreibung: Die Funktion überprüft, ob Funktionen zur Kalibrierung vorhanden sind, und ob diese eingeschaltet ist. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
flag Kalibration
0 = ausgeschaltet
1 = eingeschaltet

Hinweis zu TC-VDI: Syntax is vq_calibrate(handle) and the function returns intout[0] instead of contrl[4] which is always set to 1.
 
Ergebnis: Die Funktion liefert den Wert 1, wenn Funktionen zur Kalibrierung vorhanden sind, anderenfalls den Wert 0.
 
Verfügbar: NVDI (depends on the driver), MATRIX TC-VDI
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   vs_calibrate
 

7.8.1.4 Bindings für vq_calibrate

C: int16_t vq_calibrate ( int16_t handle, int16_t *flag );
 
Umsetzung:
 
int16_t vq_calibrate (int16_t handle, int16_t *flag)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 77;
   contrl[6] = handle;

   vdi ();

   *flag = intout[0];
   return (  contrl[4] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] n # Einträge in intout
contrl+10 contrl[5] 77 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0] flag

Hinweis: n gibt die Anzahl der Einträge im intout-Feld an. Falls contrl[4] den Wert 0 enthält, wird eine Kalibrierung nicht unterstützt.
 

7.8.1.5 vq_driver_info

Name: »Inquire Driver Info« - ermittelt Informationen über einen Druckertreiber.
 
VDI-Nummer: 5 (Escape 2101)
 
Deklaration: int16_t vq_driver_info ( int16_t handle, int16_t *lib, int16_t *drv, int16_t *plane, int16_t *attr, int8_t *name );
 
Beschreibung: Die Funktion ermittelt Informationen über einen Druckertreiber. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
lib Versionsnummer der Bibliothek
drv Versionsnummer der Treiber
plane Anzahl der Planes
1 - Monochrom
3 - CMY
4 - CMYK
attr Attribute
Bit 0: Vierfarbdruck wird unterstützt
Bit 1: Negative wird unterstützt
Bit 2: Mirror wird unterstützt
Bit 3 & 4: Multiple copies
1 - No
2 - Hardware
3 - Software
4 - Reserviert
Bit 5: Landscape wird unterstützt
Bit 6..15: Reserviert
name Name der Treiber als maximal 27 Zeichen lange Zeichenkette (26 + NULL)

Hinweis: This function allows to determine if the new vq_margin and vq_bit_image functions (Escape >= 2100) are available.
 
Ergebnis: 0: Funktion existiert nicht.
 
Verfügbar: Treiber von Thierry Rodolfo
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   vq_margin   vq_bit_image
 

7.8.1.6 Bindings für vq_driver_info

C: int16_t vq_driver_info ( int16_t handle, int16_t *lib, int16_t *drv, int16_t *plane, int16_t *attr, int8_t *name );
 
Umsetzung:
 
int16_t vq_driver_info (int16_t handle, int16_t *lib, int16_t *drv,
                  int16_t *plane, int16_t *attr, int8_t *name)
{
   int16_t tmp;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 2101;
   contrl[6] = handle;

   vdi ();

   *lib   = intout[1];
   *drv   = intout[2];
   *plane = intout[3];
   *attr  = intout[4];
   for (tmp = 0; tmp < 26; tmp++)
     name[tmp] = intout[tmp+5];
   name[26] = 0;

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 32 # Einträge in intout
contrl+10 contrl[5] 2101 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0] Return-Wert
intout+2 intout[1] lib
intout+4 intout[2] drv
intout+6 intout[3] plane
intout+8 intout[4] attr
intout+10 intout[5..31] name[0..26]

7.8.1.7 vq_driver_name

Name: »Inquire Driver Name« - ermittelt den Namen eines Treiber.
 
VDI-Nummer: 5 (Escape 2108)
 
Deklaration: int16_t vq_driver_name ( int16_t handle, int8_t *name );
 
Beschreibung: Die Funktion ermittelt den Namen eines Treiber. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
name Name der Treiber als maximal 27 Zeichen lange Zeichenkette (26 + NULL)
Ergebnis: 0: Funktion existiert nicht.
 
Verfügbar: Treiber von Thierry Rodolfo
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   vq_driver_info
 

7.8.1.8 Bindings für vq_driver_name

C: int16_t vq_driver_name ( int16_t handle, int8_t *name );
 
Umsetzung:
 
int16_t vq_driver_name (int16_t handle, int8_t *name)
{
   int16_t tmp;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 2108;
   contrl[6] = handle;

   vdi ();

   for (tmp = 0; tmp < 26; tmp++)
     name[tmp] = intout[tmp];
   name[26] = 0;

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 27 # Einträge in intout
contrl+10 contrl[5] 2108 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0..26] name

7.8.1.9 vq_image_type

Name: »Inquire Image Type« - Typ einer Bitmap-Datei ermitteln.
 
VDI-Nummer: 5 (Escape 2105)
 
Deklaration: int16_t vq_image_type ( int16_t handle, int8_t *filename, BIT_IMAGE *image )
 
Beschreibung: The call vq_image_type obtains the image type of the file whose full pathname is specified by filename, and writes information into the structure pointed to by image if its type is supported by v_bit_image. The following apply:
 
Parameter Bedeutung
   
handle Kennung der Workstation
filename Zeiger auf Datei-Namen
image Zeiger auf BIT_IMAGE-Struktur

Note: Currently the returned type is based on the file extension.
 
Ergebnis: Die Funktion kann folgende Rückgabewerte liefern:
 
0 : Unbekannt
1 : IMG
2 : TGA
Verfügbar: Treiber von Thierry Rodolfo.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   v_bit_image   vq_bit_image   vq_driver_info
 

7.8.1.10 Bindings für vq_image_type

C: int16_t vq_image_type ( int16_t handle, int8_t *filename, BIT_IMAGE *image )
 
Umsetzung:
 
int16_t vq_image_type ( int16_t handle,
   int8_t *filename, BIT_IMAGE *image )
{
   int16_t tmp;

   ptsin[0..1] = image;

   tmp = 0;
   while (intin[tmp++] = *filename++)
      ;
   intin[tmp++] = 0;

   contrl[0] = 5;
   contrl[1] = 1;
   contrl[3] = tmp;
   contrl[5] = 2105;
   contrl[6] = handle;

   vdi ();

   return ( intout[1] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 1 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n+1 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 2105 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..n] filename with NULL-byte
ptsin ptsin[0..1] image
intout intout[0] Verfügbar
intout+2 intout[1] Return-Wert

Hinweis: Falls intout[0] den Wert 0 enthält, steht die Funktion nicht zur Verfügung.
 

7.8.1.11 vq_margins

Name: »Inquire Printer Margins« - Druckerränder erfragen.
 
VDI-Nummer: 5 (Escape 2100)
 
Deklaration: int16_t vq_margins( int16_t handle, int16_t *top_margin, int16_t *bottom_margin, int16_t *left_margin, int16_t *right_margin, int16_t *hdpi, int16_t *vdpi );
 
Beschreibung: Die Funktion ermittelt die Druckerränder. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
top_margin oberer Rand in Pixeln
bottom_margin unterer Rand in Pixeln
left_margin linker Rand in Pixeln
right_margin rechter Rand in Pixeln
hdpi horizontale dpi-Auflösung
vdpi vertikale dpi-Auflösung
Ergebnis: 0: Funktion existiert nicht
 
Verfügbar: ab NVDI 5.00
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding
 

7.8.1.12 Bindings für vq_margins

C: int16_t vq_margins( int16_t handle, int16_t *top_margin, int16_t *bottom_margin, int16_t *left_margin, int16_t *right_margin, int16_t *hdpi, int16_t *vdpi );
 
Umsetzung:
 
int16_t  vq_margins( int16_t handle, int16_t *top_margin,
                  int16_t *bottom_margin, int16_t *left_margin,
                  int16_t *right_margin, int16_t *hdpi,
                  int16_t *vdpi )
{
   intout[0] = 0;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 2100;
   contrl[6] = handle;

   vdi ();

   *top_margin    = intout[1];
   *bottom_margin = intout[2];
   *left_margin   = intout[3];
   *right_margin  = intout[4];
   *hdpi          = intout[5];
   *vdpi          = intout[6];

  return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 7 # Einträge in intout
contrl+10 contrl[5] 2100 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0] Return-Wert
intout+2 intout[1] top_margin
intout+4 intout[2] bottom_margin
intout+6 intout[3] left_margin
intout+8 intout[4] right_margin
intout+10 intout[5] hdpi
intout+12 intout[6] vdpi

7.8.1.13 vq_page_name

Name: »Inquire Page Name« - Namen und Größe eines Seitenformats ermitteln.
 
VDI-Nummer: 5 (Escape 38)
 
Deklaration: int16_t vq_page_name ( int16_t handle, int16_t page_id, int8_t *page_name, int32_t *page_width, int32_t *page_height )
 
Beschreibung: Die Funktion ermittelt den Namen und die physikalische Größes eines Seitenformates. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
page_id Papierformat
page_name Zeiger auf Papiernamen oder NULL
page_width Papierbreite in 1/1000mm
page_height Papierhöhe in 1/1000mm

Hinweis: Die Angaben der Papiergröße umfassen dabei auch die nicht bedruckbaren Ränder.
 
Ergebnis: Die Funktion liefert das aktuelle Papierformat zurück. Ein Wert von -1 bedeutet, daß das angegebene Seitenformat dem Treiber nicht bekannt ist; in diesem Fall werden keine Werte in page_width bzw. page_height zurückgeliefert.
 
Verfügbar: Die Funktion ist nur vorhanden, falls contrl[4] einen Wert ungleich 0 enthält.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   v_opnwk   vq_extnd
 

7.8.1.14 Bindings für vq_page_name

C: int16_t vq_page_name ( int16_t handle, int16_t page_id, int8_t *page_name, int32_t *page_width, int32_t *page_height )
 
Umsetzung:
 
int16_t vq_page_name ( int16_t handle, int16_t page_id,
   int8_t *page_name, int32_t *page_width,
   int32_t *page_height )
{
   intin[0] = page_id;
   intin[1..2] = page_name;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 3;
   contrl[5] = 38;
   contrl[6] = handle;

   vdi ();

   *page_width  = intout[1..2];
   *page_height = intout[3..4];

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 3 # Einträge in intin
contrl+8 contrl[4] 5 # Einträge in intout
contrl+10 contrl[5] 38 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] page_id
intin+2 intin[1..2] page_name
intout intout[0] Return-Wert
intout+2 intout[1..2] page_width
intout+6 intout[3..4] page_height

Hinweis: Falls contrl[4] den Wert 0 enthält, steht die Funktion nicht zur Verfügung.
 

7.8.1.15 vq_prn_scaling

Name: »Inquire Printer Scaling« - Skalierung des Druckertreibers ermitteln.
 
VDI-Nummer: 5 (Escape 39)
 
Deklaration: fixed vq_prn_scaling( int16_t handle );
 
Beschreibung: Diese Funktion liefert zurück, ob der Druckertreiber die in den PRN_SETTINGS übergebene Skalierung beachtet. Falls der Treiber die Funktion nicht unterstützt (also ein alter Treiber), liefert das Binding -1 für die Skalierung zurück. Falls es sich um einen neuen Treiber handelt, der die Funktion unterstützt aber nicht skaliert, so liefert dieser -1 zurück.
 
Falls der Treiber die Skalierung durchführt, wird die eingestellte Skalierung zurückgeliefert (0x10000L entspricht 100 %).
 
Parameter Bedeutung
   
handle Kennung der Workstation
Ergebnis: -1 falls alter Treiber oder es wird nicht skaliert, sonst eingestellte Skalierung (0x10000L entspricht 100%).
 
Verfügbar: ab NVDI 5.00
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding
 

7.8.1.16 Bindings für vq_prn_scaling

C: fixed vq_prn_scaling( int16_t handle );
 
Umsetzung:
 
fixed vq_prn_scaling( int16_t handle )
{
   intin[0] = -1;
   intin[1] = -1;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 3;
   contrl[5] = 39;
   contrl[6] = handle;

   vdi ();

   return ( *(fixed *) intout );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 3 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 39 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0] -1
intin+2 intin[1] -1
intout intout[0..1] Return-Wert

Hinweis: Falls contrl[4] den Wert 0 enthält, steht die Funktion nicht zur Verfügung.
 

7.8.1.17 vq_scan

Name: »Inquire Printer Scan« - Abfrage der Druckerparameter
 
VDI-Nummer: 5 (Escape 24)
 
Deklaration: void vq_scan ( int16_t handle, int16_t *g_slice, int16_t *g_page, int16_t *a_slice, int16_t *a_page, int16_t *div_fac );
 
Beschreibung: Die Funktion erlaubt die Abfrage verschiedener, druckerspezifischer Parameter. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
g_slice Anzahl der Scheiben, in die der Drucker eine Seite unterteilt
g_page Pixelhöhe einer Scheibe
a_slice Höhe einer Textzeile in Pixeln
a_page Textzeilen pro Seite
div_fac Faktor, durch den die anderen Werte ggfs. noch geteilt werden müssen
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all printer drivers.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding
 

7.8.1.18 Bindings für vq_scan

C: void vq_scan ( int16_t handle, int16_t *g_slice, int16_t *g_page, int16_t *a_slice, int16_t *a_page, int16_t *div_fac );
 
Umsetzung:
 
void vq_scan (int16_t handle, int16_t *g_slice,
              int16_t *g_page, int16_t *a_slice,
              int16_t *a_page, int16_t *div_fac)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 24;
   contrl[6] = handle;

   vdi ();

   *g_slice = intout[0];
   *g_page  = intout[1];
   *a_slice = intout[2];
   *a_page  = intout[3];
   *div_fac = intout[4];
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 5 # Einträge in intout
contrl+10 contrl[5] 24 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0] g_slice
intout+2 intout[1] g_page
intout+4 intout[2] a_slice
intout+6 intout[3] a_page
intout+8 intout[4] div_fac

7.8.1.19 vq_tabstatus

Name: »Inquire Tablet Status« - ermittelt die Verfügbarkeit einer Eingabeeinheit.
 
VDI-Nummer: 5 (Escape 16)
 
Deklaration: int16_t vq_tabstatus ( int16_t handle );
 
Beschreibung: Die Funktion überprüft auf der Workstation mit der Kennung handle die Verfügbarkeit eines Grafik-Tabletts, einer Maus, eines Joysticks oder eines ähnlichen Gerätes.
 
Ergebnis: Die Funktion liefert den Wert 1, falls ein entsprechendes Gerät verfügbar ist, bzw. den Wert 0, falls dies nicht der Fall ist.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding
 

7.8.1.20 Bindings für vq_tabstatus

C: int16_t vq_tabstatus ( int16_t handle );
 
Umsetzung:
 
int16_t vq_tabstatus (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 16;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 16 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0] Return-Wert

7.8.1.21 vq_tray_names

Name: »Inquire Tray Names« - Namen des Papiereinzugs bzw. Auswurfs ermitteln.
 
VDI-Nummer: 5 (Escape 36)
 
Deklaration: void vq_tray_names ( int16_t handle, int8_t *input_name, int8_t *output_name, int16_t *input, int16_t *output );
 
Beschreibung: Die Funktion ermittelt den Namen des aktuellen Papiereinzugs bzw. -auswurfs. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
input_name Zeiger auf den Einzugs-Namen
output_name Zeiger auf den Auswurfs-Namen
input Papiereinzug
output Papierauswurf

Hinweis: Falls es sich bei den Parametern input_name oder output_name um Null-Zeiger handelt, werden die entsprechenden Werte nicht zurückgeliefert.
 
Ergebnis: Die Funktion liefert kein direktes Ergebnis zurück.
 
Verfügbar: Die Funktion ist nur vorhanden, falls contrl[4] einen Wert ungleich 0 enthält.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   v_tray   v_copies   v_orient
 

7.8.1.22 Bindings für vq_tray_names

C: void vq_tray_names ( int16_t handle, int8_t *input_name, int8_t *output_name, int16_t *input, int16_t *output );
 
Umsetzung:
 
void vq_tray_names ( int16_t handle, int8_t *input_name,
                     int8_t *output_name, int16_t *input,
                     int16_t *output )
{
   intin[0..1] = input_name;
   intin[2..3] = output_name;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 4;
   contrl[5] = 36;
   contrl[6] = handle;

   vdi ();

   *input  = intout[0];
   *output = intout[1];
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 4 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 36 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] input_name
intin+4 intin[2..3] output_name
intout intout[0] input
intout+2 intout[1] output

Hinweis: Falls contrl[4] den Wert 0 enthält, steht die Funktion nicht zur Verfügung.
 

7.8.1.23 vs_calibrate

Name: »Set calibration« - Farbkalibration setzen
 
VDI-Nummer: 5 (Escape 76)
 
Deklaration: int16_t vs_calibrate ( int16_t handle, int16_t flag, int16_t *rgb );
 
Beschreibung: Die Funktion ermöglicht das Ein- bzw. Ausschalten der Farbkalibration oder das Übergeben einer Kalibrationstabelle. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
flag Kalibration
0 = ausschalten
1 = einschalten
rgb Zeiger auf Kalibrationstabelle oder NULL

Hinweis: Eine Kalibrationstabelle besteht aus 1001 RGB-Einträgen, die für den Wertebereich 0 bis 1000 Promille jedem Eingabewert einen korrigierten Promille-Wert zuordnet. Bevor man diese Funktion aufruft, sollte man mit vq_calibrate feststellen, ob sie überhaupt vorhanden ist.
 
Die Farbkalibration ist im gesamten System für den mit handle bezeichneten Treiber gültig. Daher sollte sie nicht von einzelnen Anwendungen, sondern nur durch ein CPX-Modul oder Accessory eingestellt werden.
 
Hinweis zu TC-VDI: Syntax is vs_calibrate(handle, rgb, flag) however intin entries are assigned to the same values in both cases.
 
Ergebnis: Die Funktion liefert den Wert 0, wenn die Kalibration ausgeschaltet bzw. den Wert 1, wenn diese eingeschaltet ist.
 
Verfügbar: NVDI (depends on the driver), MATRIX TC-VDI.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   vq_calibrate
 

7.8.1.24 Bindings für vs_calibrate

C: int16_t vs_calibrate ( int16_t handle, int16_t flag, int16_t *rgb );
 
Umsetzung:
 
int16_t vs_calibrate (int16_t handle, int16_t flag,
                      int16_t *rgb)
{
   intin[0..1] = rgb;
   intin[2] = flag;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 3;
   contrl[5] = 76;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 3 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 76 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] rgb
intin+4 intin[2] flag
intout intout[0] Return-Wert

7.8.1.25 vs_crop

Name: »Set crop marks« - Sets a cropping rectangle on a document.
 
VDI-Nummer: 5 (Escape 2104)
 
Deklaration: int16_t vs_crop ( int16_t handle, int16_t ltx1, int16_t lty1, int16_t ltx2, int16_t lty2, int16_t ltlen, int16_t ltoffset );
 
Beschreibung: The call vs_crop sets a cropping rectangle to print cutting lines on a document. The following apply:
 
Parameter Bedeutung
   
handle Kennung der Workstation
ltx1 X-coordinate, and
lty1 Y-coordinate of top left corner point
ltx2 X-coordinate, and
lty2 Y-coordinate of bottom right corner point
ltlen Length of the cutting lines
ltoffset Position of cutting lines relative to coordinates
Ergebnis: 0: Function does not exist.
 
Verfügbar: Available with new drivers from Thierry Rodolfo.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding
 

7.8.1.26 Bindings für vs_crop

C: int16_t vs_crop ( int16_t handle, int16_t ltx1, int16_t lty1, int16_t ltx2, int16_t lty2, int16_t ltlen, int16_t ltoffset );
 
Umsetzung:
 
int16_t vs_crop (int16_t handle, int16_t ltx1, int16_t lty1,
            int16_t ltx2, int16_t lty2, int16_t ltlen, int16_t ltoffset)
{
   intin[0] = ltx1;
   intin[1] = lty1;
   intin[2] = ltx2;
   intin[3] = lty2;
   intin[4] = ltlen;
   intin[5] = ltoffset;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 6;
   contrl[5] = 2104;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 6 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 2104 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] ltx1
intin+2 intin[1] lty1
intin+4 intin[2] ltx2
intin+6 intin[3] lty2
intin+8 intin[4] ltlen
intin+10 intin[5] ltoffset
intout intout[0] Return-Wert

7.8.1.27 vs_document_info

Name: »Set Document Info« - Dokumentangaben für Druckmonitor setzen.
 
VDI-Nummer: 5 (Escape 2103)
 
Deklaration: int16_t vs_document_info( int16_t handle, int16_t type, void *s, int16_t wchar );
 
Beschreibung: Mit dieser Funktion übergibt ein Programm verschiedene Angaben über ein Dokument, die der Druckmonitor beim Ausdruck anzeigt.
 
Parameter Bedeutung
   
handle Kennung der Workstation
type
0 = Name der Applikation
1 = Name des Dokuments
2 = Name des Urhebers/Bearbeiters
3 = Kommentar
4 = Dateiname des Dokuments
s Zeiger auf den String
wchar 0: 8 Bit pro Zeichen
1: 16 Bit pro Zeichen
Ergebnis: 0: Funktion nicht vorhanden
1: alles in Ordnung
 
Verfügbar: ab NVDI 5.00
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding
 

7.8.1.28 Bindings für vs_document_info

C: int16_t vs_document_info( int16_t handle, int16_t type, void *s, int16_t wchar );
 
Umsetzung:
 
int16_t  vs_document_info( int16_t handle, int16_t type,
                           void *s, int16_t wchar )
{
   intin[0] = type;
   intin[1..n-1] = s

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = n;
   contrl[5] = 2103;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 2103 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] type
intin+2 intin[1..n-1] s
intout intout[0] Return-Wert

7.8.1.29 vs_load_disp_list

Name: »Load display list« - Druckerpufferliste laden.
 
VDI-Nummer: 5 (Escape 2107)
 
Deklaration: int16_t vs_load_disp_list ( int16_t handle, int8_t *name );
 
Beschreibung: Die Funktion füllt die Druckerpufferliste mit dem Inhalt einer Datei. It can be used to load master documents for example and provides huge time savings during printing. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
name Zeiger auf den Dateinamen
Ergebnis: Der Rückgabewert der Funktion ist z.Zt. nicht bekannt.
 
Verfügbar: Die Funktion ist nur vorhanden, falls intout[0] einen Wert ungleich 0 enthült.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   v_clear_disp_list   vs_save_disp_list
 

7.8.1.30 Bindings für vs_load_disp_list

C: int16_t vs_load_disp_list ( int16_t handle, int8_t *name );
 
Umsetzung:
 
int16_t vs_load_disp_list ( int16_t handle, int8_t *name )
{
   intin[0..1] = name;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[5] = 2107;
   contrl[6] = handle;

   vdi ();

   return ( intout[1] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 2107 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] name
intout intout[0] Verfügbar
intout+2 intout[1] Return-Wert

Hinweis: Falls intout[0] den Wert 0 enthält, steht die Funktion nicht zur Verfügung.
 

7.8.1.31 vs_page_info

Name: »Set Page Info« - Dokumentangaben für Druckmonitor setzen.
 
VDI-Nummer: 5 (Escape 2103)
 
Deklaration: int16_t vs_page_info( int16_t handle, int16_t type, int8_t *s );
 
Beschreibung: Mit dieser Funktion übergibt ein Programm verschiedene Angaben über ein Dokument, die der Druckmonitor beim Ausdruck anzeigt.
 
Parameter Bedeutung
   
handle Kennung der Workstation
type
0 = Name der Applikation
1 = Name des Dokuments
2 = Name des Urhebers/Bearbeiters
3 = Kommentar
4 = Dateiname des Dokuments
s Zeiger auf den String (8 Bit pro Zeichen), die Zeichen für Zeichen in 16-Bit-Enträge von intin geschrieben wird, einschließlich des NULL-Byte.
Ergebnis: 0: Funktion nicht vorhanden
1: alles in Ordnung
 
Verfügbar: Treiber von Thierry Rodolfo
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   vs_document_info
 

7.8.1.32 Bindings für vs_page_info

C: int16_t vs_page_info( int16_t handle, int16_t type, int8_t *s );
 
Umsetzung:
 
int16_t  vs_page_info( int16_t handle, int16_t type,
                           int8_t *s )
{
   intin[0] = type;
   intin[1..n-1] = s;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = n;
   contrl[5] = 2103;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 2103 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] type
intin+2 intin[1..n-1] s
intout intout[0] Return-Wert

7.8.1.33 vs_palette

Name: »Select Palette« - wählt eine Farbpalette aus.
 
VDI-Nummer: 5 (Escape 60)
 
Deklaration: int16_t vs_palette ( int16_t handle, int16_t palette );
 
Beschreibung: Die Funktion ermöglicht die Auswahl der Farbpalette auf einer IBM-CGA-Grafikkarte in mittlerer Auflösung. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
palette Farbpalette
0 = Rot, Grün, Blau
1 = Cyan, Magenta, Weiß
Ergebnis: Die Funktion liefert die ausgewählte Palette zurück.
 
Verfügbar: This call was originally designed for use on IBM CGAbased computers. Its usefulness and availability are not guaranteed under any driver so it should thus be avoided.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding
 

7.8.1.34 Bindings für vs_palette

C: int16_t vs_palette ( int16_t handle, int16_t palette );
 
Umsetzung:
 
int16_t vs_palette (int16_t handle, int16_t palette)
{
   intin[0] = palette;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 60;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 60 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] palette
intout intout[0] Return-Wert

7.8.1.35 vs_save_disp_list

Name: »Save display list« - speichert die Druckerpufferliste.
 
VDI-Nummer: 5 (Escape 2106)
 
Deklaration: int16_t vs_save_disp_list ( int16_t handle, int8_t *name );
 
Beschreibung: Die Funktion speichert die Druckerpufferliste in einer Datei ab. It can be used to save master documents for example and provides huge time savings during printing. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
name Zeiger auf den Dateinamen
Ergebnis: Der Rückgabewert der Funktion ist z.Zt. nicht bekannt.
 
Verfügbar: Die Funktion ist nur vorhanden, falls intout[0] einen Wert ungleich 0 enthült.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   v_clear_disp_list   vs_load_disp_list
 

7.8.1.36 Bindings für vs_save_disp_list

C: int16_t vs_save_disp_list ( int16_t handle, int8_t *name );
 
Umsetzung:
 
int16_t vs_save_disp_list ( int16_t handle, int8_t *name )
{
   intin[0..1] = name;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[5] = 2106;
   contrl[6] = handle;

   vdi ();

   return ( intout[1] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 2106 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..1] name
intout intout[0] Verfügbar
intout+2 intout[1] Return-Wert

Hinweis: Falls intout[0] den Wert 0 enthält, steht die Funktion nicht zur Verfügung.
 

7.8.1.37 v_bit_image

Name: »Output Bit Image File« - gibt ein Bit-Imagefile auf dem Drucker aus.
 
VDI-Nummer: 5 (Escape 23)
 
Deklaration: void v_bit_image ( int16_t handle, CONST int8_t *filename, int16_t aspect, int16_t x_scale, int16_t y_scale, int16_t h_align, int16_t v_align, int16_t *xyarray );
 
Beschreibung: Die Funktion erlaubt die Ausgabe der in einer Bit-Image (IMG) Datei gespeicherten Bild-Information. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
filename Zeiger auf Datei-Namen
aspect Abbildungsmaßstab
0 = wird ignoriert
1 = Pixel werden berücksichtigt
x_scale Skalierung der x-Achse
y_scale Skalierung der y-Achse, dabei gilt jeweils:
0 = rational (exakter)
1 = ganzzahlig
h_align horizontale Ausrichtung
0 = linksbündig
1 = zentriert
2 = rechtsbündig
v_align vertikale Ausrichtung
0 = oben
1 = zentriert
2 = unten
xyarray[0] x-Koordinate
xyarray[1] y-Koordinate der oberen linken Ecke
xyarray[2] x-Koordinate
xyarray[3] y-Koordinate der unteren rechten Ecke des Ausgaberechteckes.

Hinweis: Wird in aspect der Abbildungsmaßstab berücksichtigt, so erscheinen Kreise als Kreise, Quadrate als Quadrate etc. Das Bild wird auf dem Ausgabegerät dann entsprechend gedehnt. Dies kann u.U. schlecht aussehen, wenn z.B. feine Punktraster gedehnt oder gestaucht werden. Wird das Verhältnis ignoriert, so können aus Kreisen auch Ellipsen werden.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all printer, metafile, and memory drivers.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   v_xbit_image   GDOS   XIMG-Format
 

7.8.1.38 Bindings für v_bit_image

C: void v_bit_image ( int16_t handle, CONST int8_t *filename, int16_t aspect, int16_t x_scale, int16_t y_scale, int16_t h_align, int16_t v_align, int16_t *xyarray );
 
Umsetzung:
 
void v_bit_image (int16_t handle, CONST int8_t *filename,
                  int16_t aspect, int16_t x_scale,
                  int16_t y_scale, int16_t h_align,
                  int16_t v_align, int16_t *xyarray)
{
   int16_t tmp;

   ptsin[0..3] = xyarray[0..3];
   intin[0] = aspect;
   intin[1] = x_scale;
   intin[2] = y_scale;
   intin[3] = h_align;
   intin[4] = v_align;

   tmp = 5;
   while (intin[tmp++] = *filename++)
      ;

   contrl[0] = 5;
   contrl[1] = 2;
   contrl[3] = --tmp;
   contrl[5] = 23;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n+5 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 23 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] aspect
intin+2 intin[1] x_scale
intin+4 intin[2] y_scale
intin+6 intin[3] h_align
intin+8 intin[4] v_align
intin+10 intin[5..n+4] filename[0..n-1]
ptsin ptsin[0..3] xyarray[0..3]

7.8.1.39 v_clear_disp_list

Name: »Clear Display List« - löscht die Druckerpufferliste.
 
VDI-Nummer: 5 (Escape 22)
 
Deklaration: void v_clear_disp_list ( int16_t handle );
 
Beschreibung: Die Funktion löscht auf der Workstation mit der Kennung handle den Druckerpuffer.
 
Hinweis: Ein Seitenvorschub wird dabei nicht durchgeführt. Die Funktion sollte z.B. dann aufgerufen werden, wenn der Benutzer die Grafikausgaben vor dem Ausdruck abbrechen möchte.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all printer, metafile, and memory drivers.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   GDOS   v_clrwk
 

7.8.1.40 Bindings für v_clear_disp_list

C: void v_clear_disp_list ( int16_t handle );
 
Umsetzung:
 
void v_clear_disp_list (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 22;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 22 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.1.41 v_copies

Name: »Set Number of Copies« - Anzahl der Kopien einer Druckseite festlegen.
 
VDI-Nummer: 5 (Escape 28)
 
Deklaration: int16_t v_copies ( int16_t handle, int16_t count );
 
Beschreibung: Die Funktion legt die Anzahl der Kopien einer zu druckenden Seite fest. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
count Anzahl der Kopien (1 = normal) bzw. -1 um die eingestellte Anzahl der Kopien zu ermitteln

Hinweis: Es werden alle Seiten bis zum Schließen des Arbeitsgerätes in der spezifizierten Anzahl ausgegeben.
 
Ergebnis: Die Funktion liefert die Anzahl der eingestellten Kopien zurück.
 
Verfügbar: GEM/3 Release 3.1 und ansonsten nur, falls contrl[4] einen Wert ungleich 0 enthält.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   v_orient   v_tray
 

7.8.1.42 Bindings für v_copies

C: int16_t v_copies ( int16_t handle, int16_t count );
 
Umsetzung:
 
int16_t v_copies ( int16_t handle, int16_t count )
{
   intin[0] = count;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 28;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 28 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] count
intout intout[0] Return-Wert

Hinweis: Falls contrl[4] den Wert 0 enthält, steht die Funktion nicht zur Verfügung.
 

7.8.1.43 v_dspcur

Name: »Place Graphic Cursor at Location« - positioniert den Grafikcursor an die angegebene Position.
 
VDI-Nummer: 5 (Escape 18)
 
Deklaration: void v_dspcur ( int16_t handle, int16_t x, int16_t y );
 
Beschreibung: Die Funktion setzt den Grafikcursor an eine bestimmte Position. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
x neue x-Koordinate
y neue y-Koordinate

Hinweis: Die Funktion ist nur auf Geräten verfügbar, die Positionseingaben zulassen, also z.B. Maus, Joystick oder Trackball.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding
 

7.8.1.44 Bindings für v_dspcur

C: void v_dspcur ( int16_t handle, int16_t x, int16_t y );
 
Umsetzung:
 
void v_dspcur (int16_t handle, int16_t x, int16_t y)
{
   ptsin[0] = x;
   ptsin[1] = y;

   contrl[0] = 5;
   contrl[1] = 1;
   contrl[3] = 0;
   contrl[5] = 18;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 1 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 18 # Escape/Sub-Oopcode
contrl+12 contrl[6] handle
ptsin ptsin[0] x
ptsin+2 ptsin[1] y

7.8.1.45 v_form_adv

Name: »Form Advance« - erzeugt einen Seitenvorschub.
 
VDI-Nummer: 5 (Escape 20)
 
Deklaration: void v_form_adv ( int16_t handle );
 
Beschreibung: Die Funktion erzeugt auf der Workstation mit der Kennung handle einen Seitenvorschub.
 
Hinweis: Der Datenpuffer wird dabei nicht gelöscht; bei einem Metafile wird ein entsprechender Eintrag vorgenommen.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all drivers.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   v_clrwk
 

7.8.1.46 Bindings für v_form_adv

C: void v_form_adv ( int16_t handle );
 
Umsetzung:
 
void v_form_adv (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 20;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 20 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.1.47 v_hardcopy

Name: »Hardcopy« - führt eine Hardcopy des Bildschirms durch.
 
VDI-Nummer: 5 (Escape 17)
 
Deklaration: void v_hardcopy ( int16_t handle );
 
Beschreibung: Die Funktion erstellt eine Hardcopy von der Workstation mit der Kennung handle auf einem Drucker, oder einem ähnlichen Gerät.
 
Hinweis: Dies ist eine Funktion des Bildschirmtreibers, der dazu auf das XBIOS zugreift.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by screen drivers running under ST compatible resolutions.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding
 

7.8.1.48 Bindings für v_hardcopy

C: void v_hardcopy ( int16_t handle );
 
Umsetzung:
 
void v_hardcopy (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 17;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 17 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.1.49 v_orient

Name: »Set Orientation for Output« - Ausgabeformat festlegen.
 
VDI-Nummer: 5 (Escape 27)
 
Deklaration: int16_t v_orient ( int16_t handle, int16_t orientation );
 
Beschreibung: Die Funktion legt das Ausgabeformat für ein Gerät fest. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
orientation Format
-1 = aktuelles Format ermitteln
0 = Hochformat (Portrait)
1 = Querformat (Landscape)

Hinweis: Die gewünschte Einstellung muss vorgenommen werden, bevor irgendwelche Ausgaben getätigt werden.
 
Falls nicht genügend Speicherplatz zur Verfügung steht um die Orientierung zu verändern, liefert die Funktion den Wert -1 zurück; in diesem Fall muß die Drucker-Workstation per v_clswk geschlossen werden.
 
Ergebnis: Die Funktion liefert das eingestellte Ausgabeformat zurück, bzw. im Fehlerfall den Wert -1.
 
Verfügbar: GEM/3 Release 3.1 und ansonsten nur, falls contrl[4] einen Wert ungleich 0 enthält.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   v_copies   v_tray
 

7.8.1.50 Bindings für v_orient

C: int16_t v_orient ( int16_t handle, int16_t orientation );
 
Umsetzung:
 
int16_t v_orient ( int16_t handle, int16_t orientation )
{
   intin[0] = orientation;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 27;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 27 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] orientation
intout intout[0] Return-Wert

Hinweis: Falls contrl[4] den Wert 0 enthält, steht die Funktion nicht zur Verfügung.
 

7.8.1.51 v_output_window

Name: »Output Window« - gibt den Fensterinhalt auf dem Drucker aus.
 
VDI-Nummer: 5 (Escape 21)
 
Deklaration: void v_output_window ( int16_t handle, int16_t *xyarray );
 
Beschreibung: Die Funktion erlaubt es, eine einzige Abbildung auf mehrere Blätter verteilt zu drucken. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
xyarray[0] x-Koordinate
xyarray[1] y-Koordinate einer Ecke des Ausgaberechteckes
xyarray[2] x-Koordinate
xyarray[3] y-Koordinate der diagonal gegenüber liegenden Ecke

Hinweis: Der Unterschied zu v_updwk besteht darin, daß ein Ausschnitt aus dem Koordinatensystem des Druckers gewählt werden kann.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all printer and metafile drivers under any type of GDOS.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   v_updwk
 

7.8.1.52 Bindings für v_output_window

C: void v_output_window ( int16_t handle, int16_t *xyarray );
 
Umsetzung:
 
void v_output_window (int16_t handle, int16_t *xyarray)
{
   ptsin[0..3] = xyarray[0..3];

   contrl[0] = 5;
   contrl[1] = 2;
   contrl[3] = 0;
   contrl[5] = 21;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 21 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
ptsin ptsin[0..3] xyarray[0..3]

7.8.1.53 v_page_size

Name: »Set Page Size« - legt das Seitenformat fest.
 
VDI-Nummer: 5 (Escape 37)
 
Deklaration: int16_t v_page_size ( int16_t handle, int16_t page_id );
 
Beschreibung: Die Funktion ermöglicht es, daß Seitenformat für ein Ausgabegerät festzulegen. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
page_id gewünschtes Papierformat
0 = Voreinstellung benutzen
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 = Broad Sheet Size

Hinweis: Falls das gewünschte Format nicht existiert wird das Standard-Format benutzt.
 
Ergebnis: Die Funktion liefert das eingestellte Papierformat zurück. Bei einem Rückgabewert von -1 muss die Workstation geschlossen werden, da nicht genügend freier Speicher vorhanden ist.
 
Verfügbar: Die Funktion ist nur vorhanden, falls contrl[4] einen Wert ungleich 0 enthält.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   v_opnwk   vq_extnd
 

7.8.1.54 Bindings für v_page_size

C: int16_t v_page_size ( int16_t handle, int16_t page_id );
 
Umsetzung:
 
int16_t v_page_size ( int16_t handle, int16_t page_id )
{
   intin[0] = page_id;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 37;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 37 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] page_id
intout intout[0] Return-Wert

Hinweis: Falls contrl[4] den Wert 0 enthält, steht die Funktion nicht zur Verfügung.
 

7.8.1.55 v_rmcur

Name: »Remove last Graphic Cursor« - entfernt den Grafikcursor.
 
VDI-Nummer: 5 (Escape 19)
 
Deklaration: void v_rmcur ( int16_t handle );
 
Beschreibung: Die Funktion entfernt auf der Workstation mit der Kennung handle den zuletzt dargestellen Grafikcursor.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding
 

7.8.1.56 Bindings für v_rmcur

C: void v_rmcur ( int16_t handle );
 
Umsetzung:
 
void v_rmcur (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 19;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 19 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.1.57 v_tray

Name: »Set Input and Output Tray« - Einzugsschacht des Druckers festlegen.
 
VDI-Nummer: 5 (Escape 29)
 
Deklaration: void v_tray ( int16_t handle, int16_t input, int16_t output, int16_t *set_input, int16_t *set_output );
 
Beschreibung: Die Funktion bestimmt den Druckerschacht für den Papiereinzug bzw. die Papierausgabe. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
input Papiereinzug
-1 = manueller Einzug
0 = Standardeinzug
1 = erster optionaler Schacht
n = n-ter optionaler Schacht
output Papierausgabe
0 = Standard-Auswurf
1 = zweiter optionaler Schacht
n = n-ter optionaler Schacht
set_input tatsächlich gesetzter Einzug
set_output tatsächlich gesetzter Auswurf

Hinweis: Sollte der angegebene Schacht nicht vorhanden sein, wird die Standardeinstellung benutzt. Die Namen der Einzüge und Papierauswürfe können per vq_tray_names ermittelt werden.
 
Ergebnis: Die Funktion liefert kein Ergebnis zurück.
 
Verfügbar: GEM/3 Release 3.1 und ansonsten nur, falls contrl[4] einen Wert ungleich 0 enthält. In NVDI wird diese Funktion v_trays genannt. In GEM/3 wird diese Funktion v_tray genannt, und hat nur 1 Parameter.
 
Gruppe: Grafikspezial-Funktionen
 
Querverweis: Binding   vq_tray_names   v_copies   v_orient
 

7.8.1.58 Bindings für v_tray

C: void v_tray ( int16_t handle, int16_t input, int16_t output, int16_t *set_input, int16_t *set_output );
 
Umsetzung:
 
void v_tray ( int16_t handle, int16_t input, int16_t output,
               int16_t *set_input, int16_t *set_output )
{
   intin[0] = input;
   intin[1] = output;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[5] = 29;
   contrl[6] = handle;

   vdi ();

   *set_input  = intout[0];
   *set_output = intout[1];
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 29 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] input
intin+2 intin[1] output
intout intout[0] set_input
intout+2 intout[1] set_output

7.8.1.59 v_xbit_image

VDI-Nummer: 5 (Escape 101)
 
Deklaration: void v_xbit_image(int16_t handle, const char *filename, int16_t aspect, int16_t x_scale, int16_t y_scale, int16_t h_align, int16_t v_align, int16_t rotation, int16_t foreground, int16_t background, int16_t xy[])
 
Beschreibung: The call v_xbit_image draws an image from a disk file onto the current device - with rotation and colouring.
 
Passed #ptsin=2, #intin=8 + length of filename.
 
INTIN holds:
 
  • 0 to ignore aspect ratio, 1 to preserve it
  • X axis scaling: 0 = fractional, 1 = integer
  • Y axis scaling: 0 = fractional, 1 = integer
  • Horizontal alignment: 0=left 1=centre 2=right
  • Vertical alignment: 0=top 1=centre 2=bottom
  • Rotation angle, 0 - 3600 in 1/10th degrees
  • Foreground colour if drawing a monochrome image on a colour device
  • Background colour
  • Filename, one character per word
Verfügbar: GEM/3 and later
 
Gruppe: Grafikspezial-Funktionen
 

7.8.2 Grafiktablett-Funktionen

Diese Bibliothek enthält Funktionen, um ein Grafiktablett optimal ansprechen zu können. Zu diesem Zweck stehen die folgenden Routinen zur Verfügung:

vq_tdimensions Ausmaße des Grafiktabletts in 1/10-Zoll.
vt_alignment Koordinatensystem des Grafiktabletts ausrichten.
vt_axis Auflösung des Grafiktabletts einstellen.
vt_origin Koordinatenursprung für Grafiktablett setzen.
vt_resolution Auflösung des Grafiktabletts einstellen.

Querverweis: Workstations des VDI   Style-Guidelines

7.8.2.1 vq_tdimensions

Name: »return tablet x and y dimensions« - Ausmaße des Grafiktabletts in 1/10-Zoll.
 
VDI-Nummer: 5 (Escape 84)
 
Deklaration: void vq_tdimensions ( int16_t handle, int16_t *xdimension, int16_t *ydimension );
 
Beschreibung: Die Funktion liefert die Ausmaße eines Grafiktabletts in 1/10 Zoll. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
xdimension Breite in 1/10 Zoll
ydimension Höhe in 1/10 Zoll
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all tablet drivers.
 
Gruppe: Grafiktablett-Funktionen
 
Querverweis: Binding   GDOS   vq_tabstatus   vt_alignment   vt_resolution   vt_axis   vt_origin
 

7.8.2.2 Bindings für vq_tdimensions

C: void vq_tdimensions ( int16_t handle, int16_t *xdimension, int16_t *ydimension );
 
Umsetzung:
 
void vq_tdimensions (int16_t handle, int16_t *xdimension,
                     int16_t *ydimension)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 84;
   contrl[6] = handle;

   vdi ();

   *xdimension = intout[0];
   *ydimension = intout[1];
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 84 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0] xdimension
intout+2 intout[1] ydimension

7.8.2.3 vt_alignment

Name: »set tablet alignment« - Koordinatensystem des Grafiktabletts ausrichten.
 
VDI-Nummer: 5 (Escape 85)
 
Deklaration: void vt_alignment ( int16_t handle, int16_t dx, int16_t dy );
 
Beschreibung: Die Funktion dient der Ausrichtung des Koordinatensystems innerhalb eines Ausschnitts des Grafiktabletts. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
dx x-Offset vom Ursprung
dy y-Offset vom Ursprung
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all tablet drivers.
 
Gruppe: Grafiktablett-Funktionen
 
Querverweis: Binding   GDOS   vq_tabstatus   vq_tdimensions   vt_resolution   vt_axis   vt_origin
 

7.8.2.4 Bindings für vt_alignment

C: void vt_alignment ( int16_t handle, int16_t dx, int16_t dy );
 
Umsetzung:
 
void vt_alignment (int16_t handle, int16_t dx, int16_t dy)
{
   intin[0] = dx;
   intin[1] = dy;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[5] = 85;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 85 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] dx
intin+2 intin[1] dy

7.8.2.5 vt_axis

Name: »set tablet axis resolution in lines« - Auflösung des Grafiktabletts einstellen in Zeilen.
 
VDI-Nummer: 5 (Escape 82)
 
Deklaration: void vt_axis ( int16_t handle, int16_t xres, int16_t yres, int16_t *xset, int16_t *yset );
 
Beschreibung: Die Funktion setzt die horizontale und vertikale Auflösung des Grafiktabletts. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
xres gewünschte Auflösung
yres in Zeilen
xset tatsächliche Auflösung
yset in Zeilen
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all tablet drivers.
 
Gruppe: Grafiktablett-Funktionen
 
Querverweis: Binding   GDOS   vq_tabstatus   vt_alignment   vt_resolution   vt_origin   vq_tdimensions
 

7.8.2.6 Bindings für vt_axis

C: void vt_axis ( int16_t handle, int16_t xres, int16_t yres, int16_t *xset, int16_t *yset );
 
Umsetzung:
 
void vt_axis (int16_t handle, int16_t xres, int16_t yres,
              int16_t *xset, int16_t *yset)
{
   intin[0] = xres;
   intin[1] = yres;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[5] = 82;
   contrl[6] = handle;

   vdi ();

   *xset = intout[0];
   *yset = intout[1];
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 82 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] xres
intin+2 intin[1] yres
intout intout[0] xset
intout+2 intout[1] yset

7.8.2.7 vt_origin

Name: »set tablet x and y origin« - Koordinatenursprung für Grafiktablett setzen.
 
VDI-Nummer: 5 (Escape 83)
 
Deklaration: void vt_origin ( int16_t handle, int16_t xorigin, int16_t yorigin );
 
Beschreibung: Die Funktion setzt den Ursprung des Koordinatensystems. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
xorigin x-Koordinate
yorigin y-Koordinate der linken, oberen Ecke
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all tablet drivers.
 
Gruppe: Grafiktablett-Funktionen
 
Querverweis: Binding   GDOS   vq_tabstatus   vt_alignment   vt_resolution   vt_axis   vq_tdimensions
 

7.8.2.8 Bindings für vt_origin

C: void vt_origin ( int16_t handle, int16_t xorigin, int16_t yorigin );
 
Umsetzung:
 
void vt_origin (int16_t handle, int16_t xorigin,
                int16_t yorigin)
{
   intin[0] = xorigin;
   intin[1] = yorigin;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[5] = 83;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 83 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] xorigin
intin+2 intin[1] yorigin

7.8.2.9 vt_resolution

Name: »set tablet axis resolution in lines/inch« - Auflösung des Grafiktabletts einstellen in Zeilen pro Inch.
 
VDI-Nummer: 5 (Escape 81)
 
Deklaration: void vt_resolution ( int16_t handle, int16_t xres, int16_t yres, int16_t *xset, int16_t *yset );
 
Beschreibung: Die Funktion setzt die horizontale und vertikale Auflösung des Grafiktabletts. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
xres Auflösung in Zeilen
yres pro Zoll (lpi)
xset tatsächlich gesetzte
yset Auflösung
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all tablet drivers.
 
Gruppe: Grafiktablett-Funktionen
 
Querverweis: Binding   GDOS   vq_tabstatus   vt_alignment   vt_axis   vt_origin   vq_tdimensions
 

7.8.2.10 Bindings für vt_resolution

C: void vt_resolution ( int16_t handle, int16_t xres, int16_t yres, int16_t *xset, int16_t *yset );
 
Umsetzung:
 
void vt_resolution (int16_t handle, int16_t xres, int16_t yres,
                    int16_t *xset, int16_t *yset)
{
   intin[0] = xres;
   intin[1] = yres;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[5] = 81;
   contrl[6] = handle;

   vdi ();

   *xset = intout[0];
   *yset = intout[1];
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 81 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] xres
intin+2 intin[1] yres
intout intout[0] xset
intout+2 intout[1] yset

7.8.3 Metafile-Funktionen

Diese Bibliothek enthält Funktionen, die beim Erzeugen eines Metafiles unentbehrlich sind. Insgesamt stehen die folgenden Routinen zur Verfügung:

v_meta_extents Dimensionen eines Metafiles berechnen.
v_write_meta Grafik-Primitive im Metafile ablegen.
vm_coords Neues Koordinatensystem für Metafile.
vm_filename Metafile umbenennen.
vm_pagesize Physikalische Seitengröße für Metafile.

Hinweis: Der Hauptzweck eines Metafiles liegt im standardisierten Datenaustausch zwischen verschiedenen GEM-Systemen.

Querverweis:
Metafile-Format   Workstations des VDI   Style-Guidelines   Grundlagen des VDI

7.8.3.1 vm_coords

Name: »VDI meta file coordinates« - Eigenes Koordinatensystem für Metafiles.
 
VDI-Nummer: 5 (Escape 99, Opcode 1)
 
Deklaration: void vm_coords ( int16_t handle, int16_t llx, int16_t lly, int16_t urx, int16_t ury );
 
Beschreibung: Die Funktion setzt das benutzte Koordinatensystem für die Seite. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
llx x-Koordinaten
lly y-Koordinaten (links unten)
urx x-Koordinaten
ury y-Koordinaten (rechts oben)

Hinweis: Bei dieser Funktion muss beachtet werden, in welchem Koordinatentyp (NDC oder RC) die Metadatei geöffnet wurde, und ggfs. müssen die y-Werte angepaßt werden.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all metafile drivers.
 
Gruppe: Metafile-Funktionen
 
Querverweis: Binding   v_write_meta   Metafile-Format   Sub-Opcodes
 

7.8.3.2 Bindings für vm_coords

C: void vm_coords ( int16_t handle, int16_t llx, int16_t lly, int16_t urx, int16_t ury );
 
Umsetzung:
 
void vm_coords (int16_t handle, int16_t llx, int16_t lly,
                int16_t urx, int16_t ury)
{
   intin[0] = 1;
   intin[1] = llx;
   intin[2] = lly;
   intin[3] = urx;
   intin[4] = ury;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 5;
   contrl[5] = 99;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 5 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 99
contrl+12 contrl[6] handle
intin intin[0] 1 # Unter-Opcode
intin+2 intin[1] llx
intin+4 intin[2] lly
intin+6 intin[3] urx
intin+8 intin[4] ury

7.8.3.3 vm_filename

Name: »Change GEM VDI File Name« - ändert den Namen eines Metafiles.
 
VDI-Nummer: 5 (Escape 100)
 
Deklaration: void vm_filename ( int16_t handle, CONST int8_t *filename );
 
Beschreibung: Die Funktion benennt ein Metafile von GEMFILE.GEM in einen anderen Namen unter Beibehaltung der Extension GEM um. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
filename neuer Name des Metafile

Hinweis: Der Parameter filename kann auch einen Pfadnamen mit Laufwerksbezeichnung beinhalten. Sollte die Funktion nicht sofort nach Aufruf von v_opnwk aufgerufen werden, so bleibt der Funktionsaufruf wirkungslos. Ein eventuell geöffnetes Metafile wird geschlossen.
 
Da ältere Metafile-Treiber (im Gegensatz zum NVDI-Treiber) das Ursprungsfile "GEMFILE.GEM", welches im aktuellen Verzeichnis angelegt wird, evtl. nicht löschen, sollte dies von der Applikation selbst übernommen werden.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all metafile drivers.
 
Gruppe: Metafile-Funktionen
 
Querverweis: Binding   GDOS   v_opnwk   Metafile-Format   Sub-Opcodes
 

7.8.3.4 Bindings für vm_filename

C: void vm_filename ( int16_t handle, CONST int8_t *filename );
 
Umsetzung:
 
void vm_filename (int16_t handle, CONST int8_t *filename)
{
   int16_t *tmp;

   tmp = intin;
   while (*tmp++ = *filename++)
      ;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = ((int16_t) (tmp-intin)-1);
   contrl[5] = 100;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 100 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..n-1] filename[0..n-1]

7.8.3.5 vm_pagesize

Name: »VDI page size« - legt die physikalische Seitengröße für Metafiles fest.
 
VDI-Nummer: 5 (Escape 99, Opcode 0)
 
Deklaration: void vm_pagesize ( int16_t handle, int16_t pgwidth, int16_t pgheight );
 
Beschreibung: Die Funktion setzt die Seitengröße in 1/10mm. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
pgwidth Breite in 1/10 mm
pgheight Höhe in 1/10 mm

Hinweis: Da Breite und Höhe einer Seite getrennt eingestellt werden, ist es auch möglich, Grafiken im Querformat zu erstellen (Breite größer als die Höhe).
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all metafile drivers.
 
Gruppe: Metafile-Funktionen
 
Querverweis: Binding   v_write_meta   Metafile-Format   Sub-Opcodes
 

7.8.3.6 Bindings für vm_pagesize

C: void vm_pagesize ( int16_t handle, int16_t pgwidth, int16_t pgheight );
 
Umsetzung:
 
void vm_pagesize (int16_t handle, int16_t pgwidth,
                  int16_t pgheight)
{
   intin[0] = 0;
   intin[1] = pgwidth;
   intin[2] = pgheight;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 3;
   contrl[5] = 99;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 3 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 99
contrl+12 contrl[6] handle
intin intin[0] 0 # Unter-Opcode
intin+2 intin[1] pgwidth
intin+4 intin[2] pgheight

7.8.3.7 v_meta_extents

Name: »Update Metafile Extents« - aktualisiert das Metafile.
 
VDI-Nummer: 5 (Escape 98)
 
Deklaration: void v_meta_extents ( int16_t handle, int16_t min_x, int16_t min_y, int16_t max_x, int16_t max_y );
 
Beschreibung: Die Funktion erneuert die Größen-Informationen im Kopf eines Metafile. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
min_x minimaler x-Wert
min_y minimaler y-Wert des kleinsten umgebenden Rechteckes (obere linke Ecke)
max_x maximaler x-Wert
max_y maximaler y-Wert des kleinsten umgebenden Rechteckes (untere rechte Ecke)

Hinweis: Die Größen-Information kann man benutzen, um schnell die minimalen oder maximalen Ausmaße aller im Metafile abgespeicherten Primitiven zu ermitteln.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all metafile drivers.
 
Gruppe: Metafile-Funktionen
 
Querverweis: Binding   GDOS   vm_filename   v_write_meta   Metafile-Format
 

7.8.3.8 Bindings für v_meta_extents

C: void v_meta_extents ( int16_t handle, int16_t min_x, int16_t min_y, int16_t max_x, int16_t max_y );
 
Umsetzung:
 
void v_meta_extents (int16_t handle, int16_t min_x,
                     int16_t min_y, int16_t max_x,
                     int16_t max_y)
{
   ptsin[0] = min_x;
   ptsin[1] = min_y;
   ptsin[2] = max_x;
   ptsin[3] = max_y;

   contrl[0] = 5;
   contrl[1] = 2;
   contrl[3] = 0;
   contrl[5] = 98;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 2 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 98 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
ptsin ptsin[0] min_x
ptsin+2 ptsin[1] min_y
ptsin+4 ptsin[2] max_x
ptsin+6 ptsin[3] max_y

7.8.3.9 v_write_meta

Name: »Write Metafile Item« - schreibt ein Objekt in ein Metafile.
 
VDI-Nummer: 5 (Escape 99)
 
Deklaration: void v_write_meta ( int16_t handle, int16_t num_intin, int16_t *a_intin, int16_t num_ptsin, int16_t *a_ptsin );
 
Beschreibung: Die Funktion erlaubt es, die in ein Metafile geschriebenen Parameter mit einem Opcode als benutzerdefinierte Gegenstände zu markieren. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
num_intin Anzahl der Werte im Intin-Array
num_ptsin Anzahl der Werte im Ptsin-Array
a_intin[0] Sub-Opcode (benutzerdefiniert)
a_intin[1]  
:  
:  
a_intin[num_intin-1] benutzerdefinierte Information
a_ptsin[0]  
:  
:  
a_ptsin[num_ptsin-1] benutzerdefinierte Information

Hinweis: Die Nummern 0 bis 100 sind reserviert, d.h. als Sub-Opcodes kommen Nummern ab 101 in Frage.
 

a_intin Bedeutung
10 Start group
11 End group
49 Set no line style
50 Set attribute shadow on
51 Set attribute shadow off
80 Start draw area type primitive
81 End draw area type primitive
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all metafile drivers.
 
Gruppe: Metafile-Funktionen
 
Querverweis: Binding   GDOS   v_meta_extents   Metafile-Format   Sub-Opcodes
 

7.8.3.10 Bindings für v_write_meta

C: void v_write_meta ( int16_t handle, int16_t num_intin, int16_t *a_intin, int16_t num_ptsin, int16_t *a_ptsin );
 
Umsetzung:
 
void v_write_meta (int16_t handle, int16_t num_intin,
                   int16_t *a_intin, int16_t num_ptsin,
                   int16_t *a_ptsin)
{
   intin[0..num_intin-1] = a_intin[0..num_intin-1];
   ptsin[0..num_ptsin-1] = a_ptsin[0..num_ptsin-1];

   contrl[0] = 5;
   contrl[1] = num_ptsin;
   contrl[3] = num_intin;
   contrl[5] = 99;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] num_ptsin # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] num_intin # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 99 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] benutzerdef. Sub-Opcode
intin+2 intin[1..n] benutzerdef. Information
ptsin ptsin[0..m] benutzerdef. Information

7.8.4 Polaroid-Funktionen

Diese Bibliothek enthält Funktionen um eine Polaroid-Kamera ansprechen zu können. Zu diesem Zweck stehen die folgenden Routinen zur Verfügung:

vqp_error Fehlercodes des Polaroid-Treibers abfragen.
vqp_filmname Namen aus einer Filmnummer ermitteln.
vqp_films Verfügbare Filmtypen ermitteln.
vqp_state Status des Polaroid-Treibers ermitteln.
vsc_expose Preview-Möglichkeit für Kamera ein-/ausschalten.
vsp_film Filmtyp und Belichtungszeit festlegen.
vsp_message Fehlermeldungen des Polaroid-Treibers unterdrücken oder zulassen.
vsp_save Einstellung des Polaroid-Treibers sichern.
vsp_state Polaroid-Treiber neu einstellen.

Hinweis: Treiber für die Polaroid-Palette sind zum jetzigen Zeitpunkt nicht existent. Die Funktionen vsp_film, vqp_filmname und vsc_expose wurden mit PC-GEM Version 2.0 eingeführt, und ersetzen die anderen 6 Routinen aus GEM 1.x.

Querverweis: Workstations des VDI   Style-Guidelines

7.8.4.1 vqp_error

Name: »Polaroid Error Inquire« - liefert die Nummer eines aufgetretenen Fehlers.
 
VDI-Nummer: 5 (Escape 96)
 
Deklaration: int16_t vqp_error ( int16_t handle );
 
Beschreibung: Die Funktion ermittelt den zuletzt aufgetretenen Fehler im Zusammenhang mit der Polaroid-Kamera für die Kennung handle.
 
Ergebnis: Die Funktion liefert:
 
Wert Bedeutung
   
0 kein Fehler
1 Verschluß offen
2 kein Port ausgewählt
3 Palette am gewählten Port nicht verfügbar
4 Verbindung unterbrochen
5 Operationssystem erlaubt keine Speicherzuteilung
6 Pufferspeicher reicht nicht aus
7 Speicher nicht frei
8 Gerätetreiber-File fehlt
9 Gerätetreiber-File hat falsches Format
10 Film zu Ende
Verfügbar: Ab PC-GEM Version 2.0 steht diese Funktion nicht mehr zur Verfügung.
 
Gruppe: Polaroid-Funktionen
 
Querverweis: Binding   GDOS
 

7.8.4.2 Bindings für vqp_error

C: int16_t vqp_error ( int16_t handle );
 
Umsetzung:
 
int16_t vqp_error ( int16_t handle );
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 96;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 96 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0] Return-Wert

7.8.4.3 vqp_filmname

Name: »Inquire camera film name« - ermittelt den Namen zu einer bestimmten Filmnummer
 
VDI-Nummer: 5 (Escape 92)
 
Deklaration: int16_t vqp_filmname ( int16_t handle, int16_t index, int8_t *name );
 
Beschreibung: Die Funktion liefert zu einer Filmnummer den entsprechenden Namen. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
index Nummer des Filmtyps
name Name des Films (null-terminiert)

Hinweis: Bei einer falschen Filmnummer erhält man einen Nullstring als Ergebnis.
 
Ergebnis: Die Funktion liefert den Wert 0, wenn eine falsche Filmnummer übergeben worden ist.
 
Verfügbar: Die Funktion steht erst ab PC-GEM Version 2.0 zur Verfügung.
 
Gruppe: Polaroid-Funktionen
 
Querverweis: Binding   GDOS
 

7.8.4.4 Bindings für vqp_filmname

C: int16_t vqp_filmname ( int16_t handle, int16_t index, int8_t *name );
 
Umsetzung:
 
int16_t vqp_filmname (int16_t handle, int16_t index,
                      int8_t *name)
{
   int16_t tmp;

   intin[0] = index;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 92;
   contrl[6] = handle;

   vdi ();

   for (tmp = 0; tmp < contrl[4]; tmp++)
      name[tmp] = intout[tmp];

   return ( contrl[4] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] status # Einträge in intout
contrl+10 contrl[5] 92 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] index
intout intout[0..24] name[0..24]

7.8.4.5 vqp_films

Name: »Inquire Polaroid Film Types« - ermittelt Informationen über einen Film.
 
VDI-Nummer: 5 (Escape 91)
 
Deklaration: void vqp_films ( int16_t handle, int8_t *film_names );
 
Beschreibung: Die Funktion ermittelt Informationen über einen Film. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
film_names Name, Hersteller und Empfindlichkeit des Films

Hinweis: Der Parameter film_names sollte auf einen 126 Bytes großen Puffer zeigen, in welchem 5 Einträge zu je 25 Zeichen abgelegt werden.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Ab PC-GEM Version 2.0 steht diese Funktion nicht mehr zur Verfügung.
 
Gruppe: Polaroid-Funktionen
 
Querverweis: GDOS
 

7.8.4.6 vqp_state

Name: »Inquire Polaroid Driver State« - ermittelt den Gerätezustand des Polaroidbildrecorders.
 
Deklaration: void vqp_state ( int16_t handle, int16_t *port, int8_t *film_name, int16_t *lightness, int16_t *interlace, int16_t *planes, int16_t *indexes );
 
Beschreibung: Die Funktion ermittelt den Zustand eines Polaroid-Bildrekorders. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
port Nummer des Ports (0 erster Port)
film_name Nummer des Filmnamen (0 bis 4)
lightness Helligkeit (-3 bis 3, wobei eine Stufe einer Drittel Blende entspricht)
interlace Bild wird mit (1) oder ohne (0) Zeilensprung abgetastet
planes Farbanzahl = 2^planes, wobei planes zwischen 1 und 4 liegt
indexes Festlegung der Farben der Farbpalette. Es wird ein Speicherplatz von 16 Bytes benötigt. Jede Farbe wird durch eine Zahl (für die Zeilen der Farbmatrix) und einen Buchstaben von A bis H (für die Spalten der Farbmatrix) gekennzeichnet.
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Ab PC-GEM Version 2.0 steht diese Funktion nicht mehr zur Verfügung.
 
Gruppe: Polaroid-Funktionen
 
Querverweis: GDOS   vsp_state   vsp_save   vsp_message   vqp_films
 

7.8.4.7 vsc_expose

Name: »Disable or Enable Film Exposure for Frame Preview« - Ein-/Ausschalten des Previews einer Kamera.
 
VDI-Nummer: 5 (Escape 93)
 
Deklaration: void vsc_expose ( int16_t handle, int16_t state );
 
Beschreibung: Die Funktion erlaubt es, die Belichtung bei Kameras mit Preview-Möglichkeit abzuschalten. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
state Belichtung
state Belichtung
0 = abschalten
<> 0 = einschalten
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Diese Funktion steht erst ab PC-GEM Version 2.0 zur Verfügung.
 
Gruppe: Polaroid-Funktionen
 
Querverweis: Binding   GDOS   vsp_save   vqp_state   vsp_state   vqp_films   vsp_message
 

7.8.4.8 Bindings für vsc_expose

C: void vsc_expose ( int16_t handle, int16_t state );
 
Umsetzung:
 
void vsc_expose (int16_t handle, int16_t state)
{
   intin[0] = state;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 93;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 93 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] state

7.8.4.9 vsp_film

Name: »set camera film type and exposure time« - Filmtyp und Belichtungszeit festlegen.
 
VDI-Nummer: 5 (Escape 91)
 
Deklaration: void vsp_film ( int16_t handle, int16_t index, int16_t lightness );
 
Beschreibung: Die Funktion legt den Filmtyp und die Belichtungszeit fest. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
index Nummer des Filmtyps
lightness Belichtungszeit
-3 = halbe
0 = normale
3 = doppelte

Hinweis: Mit steigendem Wert des Parameters lightness wird die Blendenzahl um ein Drittel erhöht. Die gültigen Indizes für index können per vqp_filmname ermittelt werden.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Die Funktion steht erst ab PC-GEM Version 2.0 zur Verfügung.
 
Gruppe: Polaroid-Funktionen
 
Querverweis: Binding   GDOS
 

7.8.4.10 Bindings für vsp_film

C: void vsp_film ( int16_t handle, int16_t index, int16_t lightness );
 
Umsetzung:
 
void vsp_film (int16_t handle, int16_t index,
               int16_t lightness)
{
   intin[0] = index;
   intin[1] = lightenss;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[5] = 91;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 91 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] index
intin+2 intin[1] lightness

7.8.4.11 vsp_message

Name: »Suppress Polaroid Message« - unterdrückt Fehlermeldungen des Polaroidbildrecorders.
 
Deklaration: void vsp_message ( int16_t handle );
 
Beschreibung: Die Funktion unterdrückt Fehlermeldungen des Polaroid-Bildrekorders mit der Kennung handle.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Die Funktion steht erst ab PC-GEM Version 2.0 zur Verfügung.
 
Gruppe: Polaroid-Funktionen
 
Querverweis: GDOS   vqp_error
 

7.8.4.12 vsp_save

Name: »Save Polaroid Driver State« - speichert den Gerätestatus des Polaroidbildrecorders.
 
Deklaration: void vsp_save ( int16_t handle );
 
Beschreibung: Die Funktion speichert den Status eines Polaroid-Bildrekorders mit der Kennung handle.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Ab PC-GEM Version 2.0 steht diese Funktion nicht mehr zur Verfügung.
 
Gruppe: Polaroid-Funktionen
 
Querverweis: GDOS   vqp_state   vsp_state   vsp_message   vqp_films   vsc_expose
 

7.8.4.13 vsp_state

Name: »Set Polaroid Driver State« - setzt den Ausgabezustand des Polaroidrecorders.
 
Deklaration: void vsp_state ( int16_t handle, int16_t port, int16_t film_num, int16_t lightness, int16_t interlace, int16_t planes, int16_t *indexes );
 
Beschreibung: Die Funktion setzt den Ausgabezustand eines Polaroid-Bildrekorders. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
port Nummer des Ports (0 erster Port)
film_num Nummer des Filmnamen (0 bis 4)
lightness Helligkeit (-3 bis 3, wobei eine Stufe einer Drittel Blende entspricht)
interlace Bild wird mit (1) oder ohne (0) Zeilensprung abgetastet
planes Farbanzahl = 2^planes, wobei planes zwischen 1 und 4 liegt
indexes Festlegung der Farben der Farbpalette. Es wird ein Speicherplatz von 16 Bytes benötigt. Jede Farbe wird durch eine Zahl (für die Zeilen der Farbmatrix) und einen Buchstaben von A bis H (für die Spalten der Farbmatrix) gekennzeichnet.
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Ab PC-GEM Version 2.0 steht diese Funktion nicht mehr zur Verfügung.
 
Gruppe: Polaroid-Funktionen
 
Querverweis: GDOS   vsc_expose   vqp_state   vsp_save   vsp_message   vqp_films
 

7.8.5 Sound-Funktionen

This library contains functions for audio playback through supported sound system; the following routines are available for this purpose:

vmid_load Loads a MIDI file
vmid_play Plays a MIDI file
vmid_unload Releases memory occupied by a MIDI file
vqspl_position_d2d Gets current position when playing through D2D
vqspl_position_dma Gets current position when playing through DMA
vqspl_status_d2d Gets current D2D status
vqspl_status_dma Gets current DMA status
vqspl_time_left_d2d Gets remaining time when playing through D2D
vspl_load_d2d Loads an audio file for playing through D2D
vspl_load_sample Loads a sample for DMA playback
vspl_make_d2d Continues D2D playback
vspl_pause_d2d Suspends D2D playback
vspl_pause_dma Suspends DMA playback
vspl_play Plays an audio file
vspl_play_d2d Starts playback of an audio file through D2D
vspl_play_dma Plays a sample through DMA
vspl_stop_d2d Stops D2D playback
vspl_stop_dma Stops DMA playback
vspl_unload_d2d Releases memory allocated for the D2D playback
vspl_unload_sample Releases memory occupied by a sample
vsspl_monitor_off Disables monitoring
vsspl_monitor_on Enables monitoring

Note: Currently the unit of time for the start position and for the returned remaining time is unknown. The purpose of monitoring is also unknown.

Querverweis: Workstations des VDI   Style-Guidelines

7.8.5.1 vmid_load

Name: »Load Midifile« - Loads a MIDI file
 
VDI-Nummer: 5 (4000)
 
Deklaration: int16_t vmid_load( int16_t handle, int8_t *fname, uint32_t position );
 
Beschreibung: The call vmid_load loads the MIDI file fname from the position position into memory.
 
Ergebnis: An error has arisen only if the value 0 is returned.
 
Verfügbar: SpeedoGDOS mit MIDI-Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vmid_play   vmid_unload
 
7.8.5.1.1 Bindings für vmid_load
C: int16_t vmid_load( int16_t handle, int8_t *fname, uint32_t position );
 
Umsetzung:
 
int16_t vmid_load(int16_t handle, int8_t *fname, uint32_t position)
{
   int16_t tmp;

   intin[0..1] = position;

   tmp = 2;
   while (intin[tmp++] = *fname++)
      ;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = --tmp;
   contrl[5] = 4000;
   contrl[6] = handle;

   vdi();

   return ( intout[0] );
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 4000 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0..1] position
intin+4 intin[2..n-1] fname
intout intout[0] Return-Wert

7.8.5.2 vmid_play

Name: »Play Midifile« - Replay a MIDI file
 
VDI-Nummer: 5 (4002)
 
Deklaration: void vmid_play( int16_t handle );
 
Beschreibung: The call vmid_play starts the playback of a MIDI file loaded previously with vmid_load.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit MIDI-Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vmid_load   vmid_unload
 
7.8.5.2.1 Bindings für vmid_play
C: void vmid_play( int16_t handle );
 
Umsetzung:
 
void vmid_play(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 4002;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 4002 # Escape/Sub-opcode
contrl+12 contrl[6] handle

7.8.5.3 vmid_unload

Name: »Unload Midifile« - Unload a MIDI file
 
VDI-Nummer: 5 (4001)
 
Deklaration: void vmid_unload( int16_t handle );
 
Beschreibung: The call vmid_unload releases the memory allocated for MIDI playback.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit MIDI-Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vmid_load   vmid_play
 
7.8.5.3.1 Bindings für vmid_unload
C: void vmid_unload( int16_t handle );
 
Umsetzung:
 
void vmid_unload(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 4001;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 4001 # Escape/Sub-opcode
contrl+12 contrl[6] handle

7.8.5.4 vqspl_position_d2d

Name: »Inquire D2D position« - Gets the current D2D playback position
 
VDI-Nummer: 5 (3017)
 
Deklaration: uint32_t vqspl_position_d2d( int16_t handle );
 
Beschreibung: The call vqspl_position_d2d returns the current position of the audio file being played through D2D.
 
Ergebnis: Die Funktion liefert die aktuelle Position.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_status_d2d   vqspl_time_left_d2d   vspl_load_d2d   vspl_make_d2d   vspl_pause_d2d   vspl_play_d2d   vspl_stop_d2d   vspl_unload_d2d
 
7.8.5.4.1 Bindings für vqspl_position_d2d
C: uint32_t vqspl_position_d2d( int16_t handle );
 
Umsetzung:
 
uint32_t vqspl_position_d2d(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3017;
   contrl[6] = handle;

   vdi();

   return intout[0..1];
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 3017 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intout intout[0..1] Return-Wert

7.8.5.5 vqspl_position_dma

Name: »Inquire DMA position« - Gets the DMA position
 
VDI-Nummer: 5 (3006)
 
Deklaration: uint32_t vqspl_position_dma( int16_t handle, int16_t id );
 
Beschreibung: The call vqspl_position_dma obtains the current sample DMA position for the sample identified by id.
 
Ergebnis: This function returns the sample DMA position.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_status_dma   vspl_load_sample   vspl_pause_dma   vspl_play_dma   vspl_stop_dma   vspl_unload_sample
 
7.8.5.5.1 Bindings für vqspl_position_dma
C: uint32_t vqspl_position_dma( int16_t handle, int16_t id );
 
Umsetzung:
 
uint32_t vqspl_position_dma(int16_t handle, int16_t id)
{
   intin[0] = id;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 3006;
   contrl[6] = handle;

   vdi();

   return ( intout[0..1] );
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 3006 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0] id
intout intout[0..1] Return-Werte

7.8.5.6 vqspl_status_d2d

Name: »Inquire D2D status« - Gets the current status of the D2D audio system
 
VDI-Nummer: 5 (3016)
 
Deklaration: int16_t vqspl_status_d2d( int16_t handle );
 
Beschreibung: The call vqspl_status_d2d returns the current status of the D2D audio system.
 
Ergebnis: Die Funktion liefert die aktuelle Status. If nonzero, the D2D audio system is ready to process the next audio data from disk through a call to vspl_make_d2d.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_d2d   vqspl_time_left_d2d   vspl_load_d2d   vspl_make_d2d   vspl_pause_d2d   vspl_play_d2d   vspl_stop_d2d   vspl_unload_d2d
 
7.8.5.6.1 Bindings für vqspl_status_d2d
C: int16_t vqspl_status_d2d( int16_t handle );
 
Umsetzung:
 
int16_t vqspl_status_d2d(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3016;
   contrl[6] = handle;

   vdi();

   return ( intout[0] );
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 3016 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intout intout[0] Return-Wert

7.8.5.7 vqspl_status_dma

Name: »Inquire DMA status« - Gets the current DMA status
 
VDI-Nummer: 5 (3005)
 
Deklaration: int16_t vqspl_status_dma( int16_t handle, int16_t id );
 
Beschreibung: The call vqspl_status_dma obtains the current sample DMA status for the sample identified by id.
 
Ergebnis: This function returns the sample DMA status (sound currently playing if bit 0 = 1).
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_dma   vspl_load_sample   vspl_pause_dma   vspl_play_dma   vspl_stop_dma   vspl_unload_sample
 
7.8.5.7.1 Bindings für vqspl_status_dma
C: int16_t vqspl_status_dma( int16_t handle, int16_t id );
 
Umsetzung:
 
int16_t vqspl_status_dma(int16_t handle, int16_t id)
{
   intin[0] = id;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 3005;
   contrl[6] = handle;

   vdi();

   return ( intout[0] );
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 3005 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0] id
intout intout[0] Return-Wert

7.8.5.8 vqspl_time_left_d2d

Name: »vqspl_time_left_d2d« - Gets the D2D remaining playing time
 
VDI-Nummer: 5 (3018)
 
Deklaration: int16_t vqspl_time_left_d2( int16_t handle );
 
Beschreibung: The call vqspl_time_left_d2d returns the remaining playing time on the D2D audio system.
 
Ergebnis: This function returns the remaining playing time.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_d2d   vqspl_status_d2d   vspl_load_d2d   vspl_make_d2d   vspl_pause_d2d   vspl_play_d2d   vspl_stop_d2d   vspl_unload_d2d
 
7.8.5.8.1 Bindings für vqspl_time_left_d2d
C: int16_t vqspl_time_left_d2d( int16_t handle );
 
Umsetzung:
 
int16_t vqspl_time_left_d2d(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3018;
   contrl[6] = handle;

   vdi();

   return ( intout[0] );
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 3018 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intout intout[0] Return-Wert

7.8.5.9 vspl_load_d2d

Name: »Prepare D2D playback« - Loads an audio file
 
VDI-Nummer: 5 (3011)
 
Deklaration: int16_t vspl_load_d2d( int16_t handle, int8_t *fname, uint32_t position );
 
Beschreibung: The call vspl_load_d2d loads the file fname from the position position into memory for D2D playback.
 
Ergebnis: An error has arisen only if the value 0 is returned.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_d2d   vqspl_status_d2d   vqspl_time_left_d2d   vspl_make_d2d   vspl_pause_d2d   vspl_play_d2d   vspl_stop_d2d   vspl_unload_d2d
 
7.8.5.9.1 Bindings für vspl_load_d2d
C: int16_t vspl_load_d2d( int16_t handle, int8_t *fname, uint32_t position );
 
Umsetzung:
 
int16_t vspl_load_d2d(int16_t handle, int8_t *fname, uint32_t position)
{
   int16_t tmp;

   intin[0..1] = position;

   tmp = 2;
   while (intin[tmp++] = *fname++)
      ;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = --tmp;
   contrl[5] = 3011;
   contrl[6] = handle;

   vdi();

   return ( intout[0] );
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 3011 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0..1] position
intin+4 intin[2..n-1] fname
intout intout[0] Return-Wert

7.8.5.10 vspl_load_sample

Name: »Load sample« - Loads an audio file
 
VDI-Nummer: 5 (3001)
 
Deklaration: int16_t vspl_load_sample( int16_t handle, int8_t *fname, uint32_t position );
 
Beschreibung: The call vspl_load_sample loads the file fname from the position position into memory. Multiple samples can be loaded into a single workstation, each sample is identified by an index.
 
Ergebnis: This function returns the corresponding sample index.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_dma   vqspl_status_dma   vspl_pause_dma   vspl_play_dma   vspl_stop_dma   vspl_unload_sample
 
7.8.5.10.1 Bindings für vspl_load_sample
C: int16_t vspl_load_sample( int16_t handle, int8_t *fname, uint32_t position );
 
Umsetzung:
 
int16_t vspl_load_sample(int16_t handle, int8_t *fname, uint32_t position)
{
   int16_t tmp;

   intin[0..1] = position;

   tmp = 2;
   while (intin[tmp++] = *fname++)
      ;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = --tmp;
   contrl[5] = 3001;
   contrl[6] = handle;

   vdi();

   return ( intout[0] );
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 1 # Einträge in intout
contrl+10 contrl[5] 3001 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0..1] position
intin+4 intin[2..n-1] fname
intout intout[0] Return-Wert

7.8.5.11 vspl_make_d2d

Name: »Make D2D playback« - Continues D2D playback
 
VDI-Nummer: 5 (3020)
 
Deklaration: void vspl_make_d2d( int16_t handle );
 
Beschreibung: The call vspl_make_d2d continues the D2D playback of the file previously started with vspl_play_d2d.
 
The D2D status should be checked regularly with vqspl_status_d2d in order to call vspl_make_d2d whenever the system is ready.
 
During this loop, buffoper(-1) has the bit 0 set to 1 throughout the playback. buffoper(-1) returns a value with bit 0 set to 0 at the end of the playback.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_d2d   vqspl_status_d2d   vqspl_time_left_d2d   vspl_load_d2d   vspl_pause_d2d   vspl_play_d2d   vspl_stop_d2d   vspl_unload_d2d
 
7.8.5.11.1 Bindings für vspl_make_d2d
C: void vspl_make_d2d( int16_t handle );
 
Umsetzung:
 
void vspl_make_d2d(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3020;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3020 # Escape/Sub-opcode
contrl+12 contrl[6] handle

7.8.5.12 vspl_pause_d2d

Name: »Pause D2D playback« - Suspends the D2D audio playback
 
VDI-Nummer: 5 (3014)
 
Deklaration: void vspl_pause_d2d( int16_t handle );
 
Beschreibung: The call vspl_pause_d2d suspends the D2D playback of the file previously loaded with vspl_load_d2d.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_d2d   vqspl_status_d2d   vqspl_time_left_d2d   vspl_load_d2d   vspl_make_d2d   vspl_play_d2d   vspl_stop_d2d   vspl_unload_d2d
 
7.8.5.12.1 Bindings für vspl_pause_d2d
C: void vspl_pause_d2d( int16_t handle );
 
Umsetzung:
 
void vspl_pause_d2d(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3014;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3014 # Escape/Sub-opcode
contrl+12 contrl[6] handle

7.8.5.13 vspl_pause_dma

Name: »Pause DMA playback« - Suspends the DMA playback of a sample
 
VDI-Nummer: 5 (3007)
 
Deklaration: void vspl_pause_dma( int16_t handle, int16_t id );
 
Beschreibung: The call vspl_pause_dma suspends the playback of the sample identified by id.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_dma   vqspl_status_dma   vspl_load_sample   vspl_play_dma   vspl_stop_dma   vspl_unload_sample
 
7.8.5.13.1 Bindings für vspl_pause_dma
C: void vspl_pause_dma( int16_t handle, int16_t id );
 
Umsetzung:
 
void vspl_pause_dma(int16_t handle, int16_t id)
{
   intin[0] = id;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 3007;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3007 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0] id

7.8.5.14 vspl_play

Name: »Play sample« - Plays an audio file
 
VDI-Nummer: 5 (3000)
 
Deklaration: void vspl_play( int16_t handle, int8_t *fname, uint32_t position );
 
Beschreibung: The call vspl_play starts the playback of the file fname from the position position.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding
 
7.8.5.14.1 Bindings für vspl_play
C: void vspl_play( int16_t handle, int8_t *fname, uint32_t position );
 
Umsetzung:
 
void vspl_play(int16_t handle, int8_t *fname, uint32_t position)
{
   int16_t tmp;

   intin[0..1] = position;

   tmp = 2;
   while (intin[tmp++] = *fname++)
      ;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = --tmp;
   contrl[5] = 3000;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3000 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0..1] position
intin+4 intin[2..n-1] fname

7.8.5.15 vspl_play_d2d

Name: »Start D2D playback« - Plays an audio file through the D2D sound system
 
VDI-Nummer: 5 (3013)
 
Deklaration: void vspl_play_d2d( int16_t handle );
 
Beschreibung: The call vspl_play_d2d starts the playback of the file previously loaded with vspl_load_d2d.
 
After calling this function, the D2D status should be checked regularly with vqspl_status_d2d in order to call vspl_make_d2d whenever the system is ready.
 
During this loop, buffoper(-1) has the bit 0 set to 1 throughout the playback. buffoper(-1) returns a value with bit 0 set to 0 at the end of the playback.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_d2d   vqspl_status_d2d   vqspl_time_left_d2d   vspl_load_d2d   vspl_make_d2d   vspl_pause_d2d   vspl_stop_d2d   vspl_unload_d2d
 
7.8.5.15.1 Bindings für vspl_play_d2d
C: void vspl_play_d2d( int16_t handle );
 
Umsetzung:
 
void vspl_play_d2d(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3013;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3013 # Escape/Sub-opcode
contrl+12 contrl[6] handle

7.8.5.16 vspl_play_dma

Name: »Start DMA playback« - Plays a sample through the DMA sound system
 
VDI-Nummer: 5 (3003)
 
Deklaration: void vspl_play_dma( int16_t handle, int16_t id );
 
Beschreibung: The call vspl_play_dma starts the playback of the sample identified by id.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_dma   vqspl_status_dma   vspl_load_sample   vspl_pause_dma   vspl_stop_dma   vspl_unload_sample
 
7.8.5.16.1 Bindings für vspl_play_dma
C: void vspl_play_dma( int16_t handle, int16_t id );
 
Umsetzung:
 
void vspl_play_dma(int16_t handle, int16_t id)
{
   intin[0] = id;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 3003;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3003 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0] id

7.8.5.17 vspl_stop_d2d

Name: »Stop D2D playback« - Stops the D2D audio playback
 
VDI-Nummer: 5 (3015)
 
Deklaration: void vspl_stop_d2d( int16_t handle );
 
Beschreibung: The call vsp_stop_d2d stops the D2D playback of the file previously loaded with vspl_load_d2d.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_d2d   vqspl_status_d2d   vqspl_time_left_d2d   vspl_load_d2d   vspl_make_d2d   vspl_pause_d2d   vspl_play_d2d   vspl_unload_d2d
 
7.8.5.17.1 Bindings für vspl_stop_d2d
C: void vspl_stop_d2d( int16_t handle );
 
Umsetzung:
 
void vspl_stop_d2d(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3015;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3015 # Escape/Sub-opcode
contrl+12 contrl[6] handle

7.8.5.18 vspl_stop_dma

Name: »Stop DMA playback« - Stops the DMA playback of a sample
 
VDI-Nummer: 5 (3004)
 
Deklaration: void vspl_stop_dma( int16_t handle, int16_t id );
 
Beschreibung: The call vspl_stop_dma stops the playback of the sample identified by id.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_dma   vqspl_status_dma   vspl_load_sample   vspl_pause_dma   vspl_play_dma   vspl_unload_sample
 
7.8.5.18.1 Bindings für vspl_stop_dma
C: void vspl_stop_dma( int16_t handle, int16_t id );
 
Umsetzung:
 
void vspl_stop_dma(int16_t handle, int16_t id)
{
   intin[0] = id;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 3004;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3004 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0] id

7.8.5.19 vspl_unload_d2d

Name: »Unload D2D sample« - Unload an audio file
 
VDI-Nummer: 5 (3012)
 
Deklaration: void vspl_unload_d2d( int16_t handle );
 
Beschreibung: The call vspl_unload_d2d releases the memory allocated with vspl_load_d2d for MIDI playback.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_d2d   vqspl_status_d2d   vqspl_time_left_d2d   vspl_load_d2d   vspl_make_d2d   vspl_pause_d2d   vspl_play_d2d   vspl_stop_d2d
 
7.8.5.19.1 Bindings für vspl_unload_d2d
C: void vspl_unload_d2d( int16_t handle );
 
Umsetzung:
 
void vspl_unload_d2d(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3012;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3012 # Escape/Sub-opcode
contrl+12 contrl[6] handle

7.8.5.20 vspl_unload_sample

Name: »Unload sample« - Unloads a sample
 
VDI-Nummer: 5 (3002)
 
Deklaration: void vspl_unload_sample( int16_t handle, int16_t id );
 
Beschreibung: The call vspl_unload_sample unloads the sample identified by id.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vqspl_position_dma   vqspl_status_dma   vspl_load_sample   vspl_pause_dma   vspl_play_dma   vspl_stop_dma
 
7.8.5.20.1 Bindings für vspl_unload_sample
C: void vspl_unload_sample( int16_t handle, int16_t id );
 
Umsetzung:
 
void vspl_unload_sample(int16_t handle, int16_t id)
{
   intin[0] = id;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 3002;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3002 # Escape/Sub-opcode
contrl+12 contrl[6] handle
intin intin[0] id

7.8.5.21 vsspl_monitor_off

Name: »Monitor off« - Disables monitoring of the sound system
 
VDI-Nummer: 5 (3031)
 
Deklaration: void vsspl_monitor_off( int16_t handle );
 
Beschreibung: The call vsspl_monitor_off disables the monitoring of the sound system.
 
Note: What the monitoring actually does is currently unknown.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vsspl_monitor_on
 
7.8.5.21.1 Bindings für vsspl_monitor_off
C: void vsspl_monitor_off( int16_t handle );
 
Umsetzung:
 
void vsspl_monitor_off(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3031;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3031 # Escape/Sub-opcode
contrl+12 contrl[6] handle

7.8.5.22 vsspl_monitor_on

Name: »Monitor on« - Enables monitoring
 
VDI-Nummer: 5 (3030)
 
Deklaration: void vsspl_monitor_on( int16_t handle );
 
Beschreibung: The call vsspl_monitor_on enables the monitoring of the sound system.
 
Note: What the monitoring actually does is currently unknown.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: SpeedoGDOS mit Sound-Treiber.
 
Gruppe: Sound-Funktionen
 
Querverweis: Binding   vsspl_monitor_off
 
7.8.5.22.1 Bindings für vsspl_monitor_on
C: void vsspl_monitor_on( int16_t handle );
 
Umsetzung:
 
void vsspl_monitor_on(int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3030;
   contrl[6] = handle;

   vdi();
}
GEM-Arrays:
 

Addresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3030 # Escape/Sub-opcode
contrl+12 contrl[6] handle

7.8.6 Spezialfunktionen

Diese Bibliothek enthält Funktionen für sehr spezielle Zwecke, die sich nicht einer der übrigen Gruppen für Escapefunktionen zuordnen lassen. Es stehen die folgenden Routinen zur Verfüggung:

v_escape2000 Spezialfunktion für ATARI-Page-Printer.
v_fontinit Eigenen Systemzeichensatz auswählen.
v_offset Abstand zum linken Bildschirmrand festlegen.
v_sound Ton generieren.
vs_mute Ein-/Ausschalten der Tonerzeugung.

Querverweis: Workstations des VDI   Style-Guidelines

7.8.6.1 v_escape2000

Name: »Escape 2000« - Spezialfunktion für ATARI-Page-Printer.
 
VDI-Nummer: 5 (Escape 2000)
 
Deklaration: void v_escape2000 ( int16_t handle, int16_t times );
 
Beschreibung: Die Funktion druckt beliebig viele Kopien der laufenden Seite. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
times Anzahl der zusätzlich zu druckenden Kopien

Hinweis: Die Funktion arbeitet nur in Zusammenhang mit den Atari-SLM-Laserdruckern; deshalb sollte besser auf die Funktion v_copies zurückgegriffen werden.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported only with some laser printer drivers (for instance the Atari laser printer driver) under some form of GDOS.
 
Gruppe: Spezialfunktionen
 
Querverweis: Binding   GDOS
 

7.8.6.2 Bindings für v_escape2000

C: void v_escape2000 ( int16_t handle, int16_t times );
 
Umsetzung:
 
void v_escape2000 (int16_t handle, int16_t times)
{
   intin[0] = times;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 2000;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 2000 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] times

7.8.6.3 v_fontinit

Name: »Init System Font« - initialisiert einen Zeichensatz.
 
VDI-Nummer: 5 (Escape 102)
 
Deklaration: void v_fontinit ( int16_t handle, int16_t fh_high, int16_t fh_low );
 
Beschreibung: Die Funktion installiert einen angegebenen Zeichensatz als Systemzeichensatz. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
fh_high Adresse des Zeichensatzkopfes (high)
fh_low Adresse des Zeichensatzkopfes (low)

Hinweis: Die Funktion ist in keiner offiziellen Dokumentation beschrieben - Benutzung auf eigene Gefahr. Eigene Versuche ergaben, daß die Zeichenbreite konstant acht Pixel und der Zeichensatz im Motorola-Format vorliegen muß.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: All TOS versions; ROM-Bildschirmtreiber
 
Gruppe: Spezialfunktionen
 
Querverweis: Binding   Header bei Bitmap GDOS-Fonts
 

7.8.6.4 Bindings für v_fontinit

C: void v_fontinit ( int16_t handle, int16_t fh_high, int16_t fh_low );
 
Umsetzung:
 
void v_fontinit (int16_t handle, int16_t fh_high,
                 int16_t fh_low)
{
   intin[0] = fh_high;
   intin[1] = fh_low;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[5] = 102;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 102 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] fh_high
intin+2 intin[1] fh_low

Hinweis: In den Feldern intin[0..1] wird dabei der Zeiger auf den Zeichensatzkopf abgelegt.
 

7.8.6.5 v_offset

Name: »Set Line Offset« - setzt den linken Rand.
 
VDI-Nummer: 5 (Escape 101)
 
Deklaration: void v_offset ( int16_t handle, int16_t offset );
 
Beschreibung: Die Funktion setzt den Offset in Rasterzeilen zum Beginn des logischen Bildschirms. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
offset Anzahl der Rasterzeilen unterhalb der oberen Bildschirmkante, von der ab der logische Bildschirm beginnen soll

Hinweis: Diese Funktion ist in keiner offiziellen Dokumentation beschrieben - Benutzung auf eigene Gefahr.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: ROM-Bildschirmtreiber
 
Gruppe: Spezialfunktionen
 
Querverweis: Binding
 

7.8.6.6 Bindings für v_offset

C: void v_offset ( int16_t handle, int16_t offset );
 
Umsetzung:
 
void v_offset (int16_t handle, int16_t offset)
{
   intin[0] = offset;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 101;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 101 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] offset

7.8.6.7 v_sound

Name: »generate specified tone« - Ton generieren.
 
VDI-Nummer: 5 (Escape 61)
 
Deklaration: void v_sound ( int16_t handle, int16_t frequency, int16_t duration );
 
Beschreibung: Die Funktion erzeugt einen Ton einer bestimmten Länge und Frequenz. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
frequency Tonhöhe in Hertz
duration Tonlänge in Timer-Ticks
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Die Funktion steht nur unter PC-GEM ab Version 2.0 zur Verfügung.
 
Gruppe: Spezialfunktionen
 
Querverweis: Binding   GDOS   vs_mute
 

7.8.6.8 Bindings für v_sound

C: void v_sound ( int16_t handle, int16_t frequency, int16_t duration );
 
Umsetzung:
 
void v_sound (int16_t handle, int16_t frequency,
              int16_t duration)
{
   intin[0] = frequency;
   intin[1] = duration;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[5] = 61;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 61 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] frequency
intin+2 intin[1] duration

7.8.6.9 vs_mute

Name: »set/clear tone muting flag« - Ein-/Ausschalten der Tonerzeugung.
 
VDI-Nummer: 5 (Escape 62)
 
Deklaration: int16_t vs_mute ( int16_t handle, int16_t action );
 
Beschreibung: Die Funktion setzt bzw. löscht das Tonflag, oder liefert dessen Status zurück. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
action gewünschte Aktion
-1 = Status abfragen
 0 = Tonerzeugung ein
 1 = Tonerzeugung aus

Hinweis:
 
Ergebnis: Die Funktion liefert den Status der Tonerzeugung.
 
Verfügbar: Die Funktion steht nur unter PC-GEM ab Version 2.0 zur Verfügung.
 
Gruppe: Spezialfunktionen
 
Querverweis: Binding   GDOS   v_sound
 

7.8.6.10 Bindings für vs_mute

C: int16_t vs_mute ( int16_t handle, int16_t action );
 
Umsetzung:
 
int16_t vs_mute (int16_t handle, int16_t action)
{
   intin[0] = action;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 1;
   contrl[5] = 62;
   contrl[6] = handle;

   vdi ();

   return ( intout[0] );
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 1 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 62 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] action
intout intout[0] Return-Wert

7.8.7 Text-Funktionen

Diese Bibliothek enthält Funktionen zur Ansteuerung des alphanumerischen Bildschirms; zu diesem Zweck stehen die folgenden Routinen zur Verfügung:

v_alpha_text Ausgabe von Text im Textmodus.
v_curdown Textcursor eine Zeile nach unten bewegen.
v_curhome Textcursor in die linke obere Ecke bewegen.
v_curleft Textcursor eine Spalte nach links bewegen.
v_curright Textcursor eine Spalte nach rechts bewegen.
v_curtext Text ab Textcursorposition ausgeben.
v_curup Textcursor eine Zeile nach oben bewegen.
v_eeol Bildschirm ab Textcursor bis Zeilenende löschen.
v_eeos Bildschirm ab Textcursor bis Bildschirmende löschen.
v_enter_cur Textmodus einschalten.
v_exit_cur Textmodus verlassen.
v_rvoff Inverse Darstellung abschalten.
v_rvon Inverse Darstellung einschalten.
vq_chcells Zeilen und Spalten des Textbildschirms ermitteln.
vq_curaddress Zeile und Spalte des Textcursors ermitteln.
vs_curaddress Textcursor in Reihe und Spalte positionieren.

Querverweis: Workstations des VDI   Style-Guidelines

7.8.7.1 vq_chcells

Name: »Inquire Addressable Alpha Character Cells« - ermittelt die Anzahl der Reihen und Spalten einer Arbeitsstation.
 
VDI-Nummer: 5 (Escape 1)
 
Deklaration: void vq_chcells ( int16_t handle, int16_t *rows, int16_t *columns );
 
Beschreibung: Die Funktion ermittelt die Anzahl der Zeilen und Spalten, die mit dem Alpha-Cursor angesprochen werden können. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
rows Anzahl der Zeilen
columns Anzahl der Spalten

Hinweis: Ein Wert von 0 in den Parametern rows bzw. columns bedeutet, daß keine Adressierung möglich ist.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen and printer drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur
 

7.8.7.2 Bindings für vq_chcells

C: void vq_chcells ( int16_t handle, int16_t *rows, int16_t *columns );
 
Umsetzung:
 
void vq_chcells (int16_t handle, int16_t *rows,
                 int16_t *columns)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 1;
   contrl[6] = handle;

   vdi ();

   *rows    = intout[0];
   *columns = intout[1];
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 1 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0] rows
intout+2 intout[1] columns

7.8.7.3 vq_curaddress

Name: »Inquire Current Alpha Cursor Address« - ermittelt die aktuelle Alphacursorposition.
 
VDI-Nummer: 5 (Escape 15)
 
Deklaration: void vq_curaddress ( int16_t handle, int16_t *row, int16_t *column );
 
Beschreibung: Die Funktion ermittelt die aktuelle Position des Alpha-Cursors. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
row aktuelle Zeile
column aktuelle Spalte
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur
 

7.8.7.4 Bindings für vq_curaddress

C: void vq_curaddress ( int16_t handle, int16_t *row, int16_t *column );
 
Umsetzung:
 
void vq_curaddress (int16_t handle, int16_t *row,
                    int16_t *column)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 15;
   contrl[6] = handle;

   vdi ();

   *row    = intout[0];
   *column = intout[1];
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 2 # Einträge in intout
contrl+10 contrl[5] 15 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intout intout[0] row
intout+2 intout[1] column

7.8.7.5 v_alpha_text

Name: »Output Alpha Text« - Ausgabe von Text im Textmodus
 
VDI-Nummer: 5 (Escape 25)
 
Deklaration: void v_alpha_text ( int16_t handle, int8_t *string );
 
Beschreibung: Die Funktion gibt einen Text an der aktuellen Position des Druckkopfes aus. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
string Adresse der Zeichenkette

Hinweis: Die Ausgabe erfolgt nicht im Grafik-Modus. Wichtige Steuerfunktionen sind für alle Druckertypen genormt:
 
Code Bedeutung
   
DC2 0 Fettschrift ein
DC2 1 Fettschrift aus
DC2 2 Kursiv ein
DC2 3 Kursiv aus
DC2 4 Unterstrichen ein
DC2 5 Unterstrichen aus
DC2 6 Superscript ein
DC2 7 Superscript aus
DC2 8 Subscript ein
DC2 9 Subscript aus
DC2 A Briefqualität-Modus ein
DC2 B Briefqualität-Modus aus
DC2 C Breitschrift ein
DC2 D Breitschrift aus
DC2 E helle Schrift ein
DC2 F helle Schrift aus
DC2 G  
:  
:  
DC2 V reserviert, wird ignoriert
DC2 W Pica-Schrift (10 cpi)
DC2 X Elite-Schrift (12 cpi)
DC2 Y komprimierter Druck
DC2 Z Proportionalschrift

Darüber hinaus wird auch ein Seitenvorschub (Formfeed) mit dem ASCII-Wert 12 unterstützt. Unter PC-GEM können auch Grafiken berücksichtigt werden; die Syntax lautet in diesem Fall:
 
(ESC)(ESC)GEM,x,y,w,h,C:\pathname\filename.img
 
Die Parameter x,y,w und h sind dabei in Zeicheneinheiten relativ zur aktuellen Cursorposition anzugeben.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all printer and metafile drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   OUT-Dateiformat
 

7.8.7.6 Bindings für v_alpha_text

C: void v_alpha_text ( int16_t handle, int8_t *string );
 
Umsetzung:
 
void v_alpha_text (int16_t handle, int8_t *string)
{
   int16_t *tmp;

   tmp = intin;
   while (*tmp++ = *string++)
      ;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = ((int16_t) (tmp-intin)-1);
   contrl[5] = 25;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 25 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..n-1] string[0..n-1]

7.8.7.7 v_curaddress

Name: »Direct Alpha Cursor Address« - setzt den Alphacursor an die angegebene Position.
 
VDI-Nummer: 5 (Escape 11)
 
Deklaration: void v_curaddress ( int16_t handle, int16_t row, int16_t column );
 
Beschreibung: Die Funktion bewegt den Alphacursor zu einer bestimmten Spalte und Zeile. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
row Zeile für Cursor (1..m)
column Spalte für Cursor (1..n)

Hinweis: Falls Adressen oberhalb der Maximalgrenze angegeben werden, nimmt die Funktion den am nächsten liegenden Wert an.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur
 

7.8.7.8 Bindings für v_curaddress

C: void v_curaddress ( int16_t handle, int16_t row, int16_t column );
void vs_curaddress ( int16_t handle, int16_t row, int16_t column );
 
Umsetzung:
 
void v_curaddress  (int16_t handle, int16_t row, int16_t column)
void vs_curaddress (int16_t handle, int16_t row, int16_t column)
{
   intin[0] = row;
   intin[1] = column;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 2;
   contrl[5] = 11;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 2 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 11 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0] row
intin+2 intin[1] column

7.8.7.9 v_curdown

Name: »Alpha Cursor down« - bewegt den Alphacursor um eine Zeile nach unten.
 
VDI-Nummer: 5 (Escape 5)
 
Deklaration: void v_curdown ( int16_t handle );
 
Beschreibung: Die Funktion bewegt den Alphacursor auf der Workstation mit der Kennung handle eine Zeile nach unten.
 
Hinweis: Befindet sich der Cursor bereits in der untersten Zeile, so hat die Funktion keine Auswirkung.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur
 

7.8.7.10 Bindings für v_curdown

C: void v_curdown ( int16_t handle );
 
Umsetzung:
 
void v_curdown (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 5;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 5 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.7.11 v_curhome

Name: »Home Alpha Cursor« - bewegt den Alphacursor in die linke obere Ecke.
 
VDI-Nummer: 5 (Escape 8)
 
Deklaration: void v_curhome ( int16_t handle );
 
Beschreibung: Die Funktion bewegt den Alphacursor auf der Workstation mit der Kennung handle in die 'Home' Stellung.
 
Hinweis: Unter der Home-Stellung versteht man normalerweise die Position oben links auf dem Bildschirm.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur
 

7.8.7.12 Bindings für v_curhome

C: void v_curhome ( int16_t handle );
 
Umsetzung:
 
void v_curhome (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 8;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 8 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.7.13 v_curleft

Name: »Alpha Cursor left« - bewegt den Alphacursor um ein Zeichen nach links.
 
VDI-Nummer: 5 (Escape 7)
 
Deklaration: void v_curleft ( int16_t handle );
 
Beschreibung: Die Funktion bewegt den Alphacursor auf der Workstation mit der Kennung handle eine Spalte nach links.
 
Hinweis: Befindet sich der Cursor bereits in der linkesten Spalte, so hat die Funktion keine Auswirkung.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur
 

7.8.7.14 Bindings für v_curleft

C: void v_curleft ( int16_t handle );
 
Umsetzung:
 
void v_curleft (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 7;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 7 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.7.15 v_curright

Name: »Alpha Cursor right« - bewegt den Alphacursor um ein Zeichen nach rechts.
 
VDI-Nummer: 5 (Escape 6)
 
Deklaration: void v_curright ( int16_t handle );
 
Beschreibung: Die Funktion bewegt den Alphacursor auf der Workstation mit der Kennung handle eine Spalte nach rechts.
 
Hinweis: Befindet sich der Cursor bereits in der rechtesten Spalte, so hat die Funktion keine Auswirkung.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur
 

7.8.7.16 Bindings für v_curright

C: void v_curright ( int16_t handle );
 
Umsetzung:
 
void v_curright (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 6;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 6 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.7.17 v_curtext

Name: »Output Cursor Addressable Alpha Text« - gibt einen Text ab dem Alphacursor aus.
 
VDI-Nummer: 5 (Escape 12)
 
Deklaration: void v_curtext ( int16_t handle, int8_t *string );
 
Beschreibung: Die Funktion gibt einen Text an der aktuellen Cursorposition aus. Es gilt:
 
Parameter Bedeutung
   
handle Kennung der Workstation
string Adresse der Zeichenkette

Der Cursor wird bei der Ausgabe für jedes Zeichen um eine Stelle weitergerückt (Alpha-Modus).
 
Hinweis: Textausgabe kann über diese Funktion schneller als über das GEMDOS erfolgen.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur   v_curup   v_curdown   v_curright   v_curleft   v_curhome   vs_curaddress
 

7.8.7.18 Bindings für v_curtext

C: void v_curtext ( int16_t handle, int8_t *string );
 
Umsetzung:
 
void v_curtext (int16_t handle, int8_t *string)
{
   int16_t *tmp;

   tmp = intin;
   while (*tmp++ = *string++)
      ;

   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = ((int16_t) (tmp-intin)-1);
   contrl[5] = 12;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] n # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 12 # Escape/Sub-Opcode
contrl+12 contrl[6] handle
intin intin[0..n-1] string[0..n-1]

7.8.7.19 v_curup

Name: »Alpha Cursor up« - bewegt den Alphacursor um eine Zeile nach oben.
 
VDI-Nummer: 5 (Escape 4)
 
Deklaration: void v_curup ( int16_t handle );
 
Beschreibung: Die Funktion bewegt den Alphacursor auf der Workstation mit der Kennung handle eine Zeile nach oben.
 
Hinweis: Befindet sich der Cursor bereits in der obersten Zeile, so hat die Funktion keine Auswirkung.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur
 

7.8.7.20 Bindings für v_curup

C: void v_curup ( int16_t handle );
 
Umsetzung:
 
void v_curup (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 4;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 4 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.7.21 v_eeol

Name: »Erase to End of Alpha Text Line« - löscht die Zeile ab dem Alphacursor.
 
VDI-Nummer: 5 (Escape 10)
 
Deklaration: void v_eeol ( int16_t handle );
 
Beschreibung: Die Funktion löscht auf der Workstation mit der Kennung handle die aktuelle Zeile ab der aktuellen Cursorposition.
 
Hinweis: Die Position des Cursors bleibt dabei unverändert.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur
 

7.8.7.22 Bindings für v_eeol

C: void v_eeol ( int16_t handle );
 
Umsetzung:
 
void v_eeol (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 10;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 10 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.7.23 v_eeos

Name: »Erase to End of Alpha Screen« - löscht den Bildschirm ab dem Alphacursor.
 
VDI-Nummer: 5 (Escape 9)
 
Deklaration: void v_eeos ( int16_t handle );
 
Beschreibung: Die Funktion löscht auf der Workstation mit der Kennnung handle den alphanumerischen Bildschirm ab der aktuellen Cursorposition.
 
Hinweis: Die Position des Cursors wird dabei nicht verändert.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur
 

7.8.7.24 Bindings für v_eeos

C: void v_eeos ( int16_t handle );
 
Umsetzung:
 
void v_eeos (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 9;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 9 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.7.25 v_enter_cur

Name: »Enter Alpha Mode« - schaltet den Textmodus ein.
 
VDI-Nummer: 5 (Escape 3)
 
Deklaration: void v_enter_cur ( int16_t handle );
 
Beschreibung: Die Funktion verläßt auf der Workstation mit der Kennung handle den Grafik-Modus, falls dieser nicht identisch mit dem Alpha-Modus ist.
 
Hinweis: Darüber hinaus wird der Alpha-Cursor in die obere linke Zeichenzelle gesetzt, und der Alpha-Bildschirm gelöscht. Bei einem Metafile wird ein entsprechender Eintrag vorgenommen.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_exit_cur
 

7.8.7.26 Bindings für v_enter_cur

C: void v_enter_cur ( int16_t handle );
 
Umsetzung:
 
void v_enter_cur (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 3;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 3 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.7.27 v_exit_cur

Name: »Exit Alpha Mode« - schaltet den Textmodus ab.
 
VDI-Nummer: 5 (Escape 2)
 
Deklaration: void v_exit_cur ( int16_t handle );
 
Beschreibung: Die Funktion schaltet auf der Workstation mit der Kennung handle den Alphamodus aus, sofern Alpha- und Grafikmodus unterschiedlich sind.
 
Der Alpha-Modus ist der normale Textmodus ohne Grafik, wie er z.B. vom Desktop für die Anzeige von Dateien benutzt wird.
 
Hinweis: Die Funktion bewirkt außerdem, daß der Grafikbildschirm gelöscht wird; bei einem Metafile wird ein entsprechender Eintrag vorgenommen.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur
 

7.8.7.28 Bindings für v_exit_cur

C: void v_exit_cur ( int16_t handle );
 
Umsetzung:
 
void v_exit_cur (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 2;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 2 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.7.29 v_rvoff

Name: »Reverse Video off« - schaltet den Invertiermodus ab.
 
VDI-Nummer: 5 (Escape 14)
 
Deklaration: void v_rvoff ( int16_t handle );
 
Beschreibung: Die Funktion schaltet auf der Workstation mit der Kennung handle die inverse Alpha-Textdarstellung aus.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur   v_rvon
 

7.8.7.30 Bindings für v_rvoff

C: void v_rvoff ( int16_t handle );
 
Umsetzung:
 
void v_rvoff (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 14;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 14 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

7.8.7.31 v_rvon

Name: »Reverse Video on« - schaltet den Invertiermodus ein.
 
VDI-Nummer: 5 (Escape 13)
 
Deklaration: void v_rvon ( int16_t handle );
 
Beschreibung: Die Funktion aktiviert auf der Workstation mit der Kennung handle die inverse Alpha-Textdarstellung.
 
Ergebnis: Die Funktion liefert kein Ergebnis.
 
Verfügbar: Supported by all screen drivers.
 
Gruppe: Text-Funktionen
 
Querverweis: Binding   v_enter_cur   v_rvoff
 

7.8.7.32 Bindings für v_rvon

C: void v_rvon ( int16_t handle );
 
Umsetzung:
 
void v_rvon (int16_t handle)
{
   contrl[0] = 5;
   contrl[1] = 0;
   contrl[3] = 0;
   contrl[5] = 13;
   contrl[6] = handle;

   vdi ();
}
GEM-Arrays:
 

Adresse Feldelement Belegung
contrl contrl[0] 5 # Opcode der Funktion
contrl+2 contrl[1] 0 # Einträge in ptsin
contrl+4 contrl[2] 0 # Einträge in ptsout
contrl+6 contrl[3] 0 # Einträge in intin
contrl+8 contrl[4] 0 # Einträge in intout
contrl+10 contrl[5] 13 # Escape/Sub-Opcode
contrl+12 contrl[6] handle

Home VDIVDI EingabefunktionenEingabefunktionen FarbtabellenfunktionenFarbtabellenfunktionen