! VWSSYSDEF.INC
! Include file for Vaxstation Graphics
! Hacked over from DALET::SYS$LIBRARY:VWSSYSDEF.FOR
! Look out for dummy record fields called DUMMY1 and DUMMY2
! Revision History
! 06-MAY-1987 ANY Created
 
{*** MODULE  dopdef IDENT V3-32 *** }
%const %integer dop m delete bitmap = 16_00000001
%const %integer dop m system dop = 16_00000002
%const %integer dop m no return = 16_00000004
%const %integer dop c compare start = 16_0000001C
%const %integer dop c draw lines = 16_00000001
%const %integer dop c draw points = 16_00000002
%const %integer dop c fill polygon = 16_00000003
%const %integer dop c fill point = 16_00000004
%const %integer dop c fill lines = 16_00000005
%const %integer dop c draw fixed text = 16_00000006
%const %integer dop c draw var text = 16_00000007
%const %integer dop c draw complex line = 16_00000008
%const %integer dop c expan1 = 16_00000009
%const %integer dop c expan2 = 16_0000000A
%const %integer dop c expan3 = 16_0000000B
%const %integer dop c expan4 = 16_0000000C
%const %integer dop c expan5 = 16_0000000D
%const %integer dop c expan6 = 16_0000000E
%const %integer dop c expan7 = 16_0000000F
%const %integer dop c expan8 = 16_00000010
%const %integer dop c expan9 = 16_00000011
%const %integer dop c move rotate area = 16_00000012
%const %integer dop c move area = 16_00000013
%const %integer dop c scroll area = 16_00000014
%const %integer dop c stop = 16_00000015
%const %integer dop c start = 16_00000016
%const %integer dop c delete bitmap = 16_00000017
%const %integer dop c suspend = 16_00000018
%const %integer dop c resume = 16_00000019
%const %integer dop c max item type = 16_0000001A
%const %integer dop c plot compare start = 16_00000030
%const %integer dop c vtext compare end = 16_00000046
%const %integer dop c text compare end = 16_00000048
%const %integer dop c text length = 16_0000004C
%const %integer dop c poly compare end = 16_00000048
%const %integer dop c plot compare end = 16_0000004C
%const %integer dop c plot length = 16_0000004E
%const %integer dop c move compare end = 16_00000044
%const %integer dop c length = 16_0000004E
%const %integer dop S delete bitmap = 1
%const %integer dop V delete bitmap = 0
%const %integer dop S system dop = 1
%const %integer dop V system dop = 1
%const %integer dop S no return = 1
%const %integer dop V no return = 2
%record %format dop structure ( -
    %integer  dop a flink,
    %integer  dop a blink,
    %short    dop w size,
    %byte     dop b type,
    %byte     dop b sub type,
    %integer  dop l dec reserved,
    %integer  dop l dec reserved2,
    %integer  dop l user reserved,
    %short    dop w flags,
    %short    dop w op count,
    %short    dop w item type,
    %short    dop w mode,
  ((%integer %array dop q mask and index (1:2)) %or
   (%integer  dop L MASK,
    %integer  dop l source index)),
  ((%integer %array dop q colors (1:2)) %or
   (%integer  dop l fcolor,
    %integer  dop l bcolor)),
  ((%integer %array dop q bitmap info (1:2)) %or
   (%integer  dop l bitmap id,
    %integer  dop l bitmap glyphs)),
  ((%integer %array dop q max and delta (1:2)) %or
   (%short    dop w vp max x,
    %short    dop w vp max y,
    %short    dop w delta x,
    %short    dop w delta y)),
    %short    dop w vp min x,
    %short    dop w vp min y,
{unique block starts here}
  ((%short    dop w text height,
    %short    dop w text width,
    %short    dop w text starting x,
    %short    dop w text starting y) %or
   (%short    dop w plot fill width,
    %short    dop w plot fill height,
    %short    dop w plot fill pattern X,
    %short    dop w plot fill pattern Y,
    %short    dop w plot line width) %or
   (%integer  dop l move smooth) %or
   (%integer  dop l driver vp id)) -
);   { dop structure }
%const %integer DOP POINT c length = 16_00000004
%record %format dop point array ( -
    %short    DOP POINT w x,
    %short    DOP POINT w y -
);   { dop point array }
%const %integer DOP LINE c length = 16_00000008
%record %format dop line array ( -
    %short    DOP LINE w x1,
    %short    DOP LINE w y1,
    %short    DOP LINE w x2,
    %short    DOP LINE w y2 -
);   { dop line array }
%const %integer DOP FTEXT c length = 16_00000004
%record %format dop ftext array ( -
    %short    DOP FTEXT w offset x,
    %short    DOP FTEXT w offset y -
);   { dop ftext array }
%const %integer DOP VTEXT c length = 16_00000006
%record %format dop vtext array ( -
    %short    DOP VTEXT w offset x,
    %short    DOP VTEXT w offset y,
    %short    DOP VTEXT w width -
);   { dop vtext array }
%const %integer DOP POLY c length = 16_00000010
%record %format dop poly array ( -
    %short    DOP POLY W LEFT X1,
    %short    DOP POLY W LEFT Y1,
    %short    DOP POLY W LEFT X2,
    %short    DOP POLY W LEFT Y2,
    %short    DOP POLY W RIGHT X1,
    %short    DOP POLY W RIGHT Y1,
    %short    DOP POLY W RIGHT X2,
    %short    DOP POLY W RIGHT Y2 -
);   { dop poly array }
%const %integer dop move c length = 16_0000000E
%record %format dop move array ( -
    %short    dop move w filler,
    %short    dop move w x source,
    %short    dop move w y source,
    %short    dop move w width,
    %short    dop move w height,
    %short    dop move w x target,
    %short    dop move w y target -
);   { dop move array }
%const %integer dop move r c length = 16_0000001A
%record %format dop move r array ( -
    %short    dop move r w filler,
    %short    dop move r w x source,
    %short    dop move r w y source,
    %short    dop move r w width,
    %short    dop move r w height,
    %short    dop move r w x target,
    %short    dop move r w y target,
    %short    dop move r w x target vec1,
    %short    dop move r w y target vec1,
    %short    dop move r w l target vec1,
    %short    dop move r w x target vec2,
    %short    dop move r w y target vec2,
    %short    dop move r w l target vec2 -
);   { dop move r array }
%const %integer dop mvr c length = 16_0000001A
%record %format dop mvr array ( -
    %short    dop mvr w filler,
    %short    dop mvr w x source,
    %short    dop mvr w y source,
    %short    dop mvr w width,
    %short    dop mvr w height,
    %short    dop mvr w x target,
    %short    dop mvr w y target,
    %short    dop mvr w x target vec1,
    %short    dop mvr w y target vec1,
    %short    dop mvr w l target vec1,
    %short    dop mvr w x target vec2,
    %short    dop mvr w y target vec2,
    %short    dop mvr w l target vec2 -
);   { dop mvr array }
 
{*** MODULE  fntdef IDENT V3-8 *** }
%const %integer fnt k major version = 16_00000003
%const %integer fnt k minor version = 16_00000007
%const %integer fnt c gut per inch = 16_00001C20
%const %integer fnt m fixed = 16_00000001
%const %integer fnt m celleqrast = 16_00000002
%const %integer fnt m nokerning = 16_00000004
%const %integer fnt m wysiwyg = 16_00000008
%const %integer fnt m qvss = 16_00000010
%const %integer fnt m qdss = 16_00000020
%const %integer fnt m user font = 16_00000040
%const %integer fnt k check1 = 16_6C6C6942
%const %integer fnt k check2 = 16_79646F4A
%const %integer fnt c length = 16_000000EC
%const %integer fnt S fixed = 1
%const %integer fnt V fixed = 0
%const %integer fnt S celleqrast = 1
%const %integer fnt V celleqrast = 1
%const %integer fnt S nokerning = 1
%const %integer fnt V nokerning = 2
%const %integer fnt S wysiwyg = 1
%const %integer fnt V wysiwyg = 3
%const %integer fnt S qvss = 1
%const %integer fnt V qvss = 4
%const %integer fnt S qdss = 1
%const %integer fnt V qdss = 5
%const %integer fnt S user font = 1
%const %integer fnt V user font = 6
%record %format fnt structure ( -
    %integer  fnt a flink,
    %integer  fnt a blink,
    %short    fnt w size,
    %byte     fnt b type,
    %byte     fnt b subtype,
    %integer  fnt a qd pos,
    %integer  fnt a qd font ids,
    %short    fnt w flags,
    %short    fnt w font id length,
    %byte %array fnt t font id (1:56) ,
    %integer  fnt a widths,
    %integer  fnt a cwidths,
    %integer  fnt l array,
    %integer  fnt l font size,
    %integer  fnt l gutperpix x,
    %integer  fnt l gutperpix y,
    %short    fnt w fc,
    %short    fnt w lc,
    %integer  fnt l cell height,
    %integer  fnt l baseline,
    %integer  fnt l cell width,
    %integer  fnt l und x,
    %integer  fnt l und xo,
    %integer  fnt l und y,
    %integer  fnt l und yo,
    %integer  fnt l str x,
    %integer  fnt l str xo,
    %integer  fnt l str y,
    %integer  fnt l str yo,
    %integer  fnt l sub xo,
    %integer  fnt l sub yo,
    %integer  fnt l super xo,
    %integer  fnt l super yo,
    %short    fnt w vws fvers major,
    %short    fnt w vws fvers minor,
    %short    fnt w cfff fvers major,
    %short    fnt w cfff fvers minor,
    %integer  fnt l check1,
    %integer  fnt l check2,
    %short    fnt w max cell width,
    %short    fnt w widest glyph,
    %short    fnt w average width gut,
    %short    fnt w wys baseline err,
    %short    fnt w wys cheight err,
    %short    fnt w wys max cell err,
    %integer  fnt a wys err gut,
    %integer  fnt a qdfnt base,
    %integer  fnt a qdfnt 0,
    %integer  fnt a qdfnt 1,
    %integer  fnt a qdfnt 2,
    %integer  fnt a qdfnt 3,
    %integer  fnt a qdfnt 4,
    %integer  fnt a qdfnt 5,
    %integer  fnt a qdfnt 6,
    %integer  fnt a qdfnt 7 -
);   { fnt structure }
%const %integer gly c length = 16_0000000C
%record %format gly structure ( -
    %integer  gly l cell width,
    %short    gly w align x,
    %short    gly w align y,
    %short    gly w raster width,
    %short    gly w raster height,
    %byte %array gly g bitmap (1:1) -
);   { gly structure }
%const %integer qgbd c length = 16_00000010
%record %format qgbd structure ( -
    %integer  qgbd l fid,
    %integer  qgbd a gblock,
    %integer  qgbd l height,
    %integer  qgbd l gb size -
);   { qgbd structure }
%const %integer fntid c length = 16_0000001E
%record %format fntid structure ( -
    %byte %array fntid t owner (1:2),
    %byte %array fntid t name (1:6),
    %byte %array fntid t modifiers (1:6),
    %byte %array fntid t pitch (1:1),
    %byte %array fntid t point size (1:2),
    %byte %array fntid t char set (1:2),
    %byte %array fntid t indiv char (1:2),
    %byte %array fntid t rotation (1:3),
    %byte %array fntid t formatting (1:1),
    %byte %array fntid t resolution (1:1),
    %byte %array fntid t filler1 (1:2),
    %byte %array fntid t filler2 (1:2) -
);   { fntid structure }
 
{*** MODULE  ftdef IDENT X0.6 *** }
{  THIS IS THE SAME AS FNTDEF2.SDL, EXCEPT THAT ALL REFERENCES TO "FNT" }
{  ARE REPLACED WITH "FT", TO AVOID CONFLICTS WITH FNTDEF.SDL }
{  }
{   Copyright (c) 1984 by }
{       DIGITAL EQUIPMENT CORPORATION, Maynard, Mass. }
{  }
{ This software is furnished under a license and may be used and  copied }
{ only  in  accordance  with  the  terms  of  such  license and with the }
{ inclusion of the above copyright notice.  This software or  any  other }
{ copies  thereof may not be provided or otherwise made available to any }
{ other person.  No title to and ownership of  the  software  is  hereby }
{ transferred. }
{  }
{ The information in this software is subject to change  without  notice }
{ and  should  not  be  construed  as  a commitment by DIGITAL EQUIPMENT }
{ CORPORATION. }
{  }
{ DIGITAL assumes no responsibility for the use or  reliability  of  its }
{ software on equipment which is not supplied by DIGITAL. }
{  }
{ ++ }
{ FACILITY: DEC Standard Font File Format }
{  }
{ ABSTRACT: Data structures for accessing the DEC Standard Font File Format }
{  }
{  }
{ ENVIRONMENT: Transportable }
{  }
{ AUTHOR: Bill Laurune (BL) CREATION DATE: 29 June 1984 }
{  }
{ MODIFIED BY: }
{  }
{ 12-JULY-1984X0.1RWFAdd copyright notice }
{ 23-JULY-1984X0.2BLUpdate to 20-July-1984 spec, }
{ remove bitfield FILL so as to generate }
{ proper C code, shorten some variable names }
{ 07-AUG-1984X0.3RWFRemove forward slant and no space }
{ 07-SEP-1984   X0.4    RWFDefinitive version }
{ 10-SEP-1984   X0.5RWFChange seg  to sub  }
{ 10-SEP-1984X0.6BLRemove  pointer, add %const %integer size constants, }
{ change vertical size to UNSIGNED, rename }
{ char param size constant, add fnt c trailer size, }
{ ascender & descender made signed values }
{ -- }
%const %integer ft c gut per inch = 16_00001C20
%const %integer ft c current format version = 16_00000001
%const %integer ft c trailer size = 16_00000008
%const %integer ft m directory only = 16_00000001
%const %integer ft m self contained = 16_00000002
%const %integer ft m dimensions only = 16_00000004
%const %integer ft m expanded rasters = 16_00000008
%const %integer ft m compressed rasters = 16_00000010
%const %integer ft m ident orient = 16_00000020
%const %integer ft m wysiwyg = 16_00000040
%const %integer ft m large values = 16_00000080
%const %integer ft m generic = 16_00000001
%const %integer ft m roman = 16_00000002
%const %integer ft m gothic = 16_00000004
%const %integer ft m italic = 16_00000008
%const %integer ft m slant = 16_00000010
%const %integer ft m monospaced = 16_00000020
%const %integer ft m shadow = 16_00000040
%const %integer ft m outline = 16_00000080
%const %integer ft m inline = 16_00000100
%const %integer ft m contour = 16_00000200
%const %integer ft m connecting script = 16_00000400
%const %integer ft m nonconnecting script = 16_00000800
%const %integer ft m reverse = 16_00001000
%const %integer ft m serif = 16_00002000
%const %integer ft m underlined font = 16_00004000
%const %integer ft m overlined font = 16_00008000
%const %integer ft m struck through = 16_00010000
%const %integer ft c ultra light = 16_00000004
%const %integer ft c extra light = 16_00000007
%const %integer ft c thin = 16_0000000A
%const %integer ft c semi light = 16_0000000D
%const %integer ft c regular weight = 16_00000010
%const %integer ft c medium weight = 16_00000013
%const %integer ft c semi bold = 16_00000016
%const %integer ft c bold = 16_00000019
%const %integer ft c extra bold = 16_0000001C
%const %integer ft c heavy = 16_0000001C
%const %integer ft c black = 16_0000001F
%const %integer ft c ultra bold = 16_0000001F
%const %integer ft c ultra heavy = 16_0000001F
%const %integer ft c ultra expanded = 16_00000004
%const %integer ft c extra expanded = 16_00000007
%const %integer ft c expanded = 16_0000000A
%const %integer ft c semi expanded = 16_0000000D
%const %integer ft c regular prop = 16_00000010
%const %integer ft c medium prop = 16_00000013
%const %integer ft c semi condensed = 16_00000016
%const %integer ft c condensed = 16_00000019
%const %integer ft c extra condensed = 16_0000001C
%const %integer ft c ultra condensed = 16_0000001F
%const %integer ft c generic device = 16_00000000
%const %integer ft c xp12 toning = 16_00000001
%const %integer ft c xp24 toning = 16_00000001
%const %integer ft c ln03 toning = 16_00000002
%const %integer ft m inside box = 16_00000001
%const %integer ft m celleqrast = 16_00000002
%const %integer ft c header length = 16_000001E0
%const %integer ft S directory only = 1
%const %integer ft V directory only = 0
%const %integer ft S self contained = 1
%const %integer ft V self contained = 1
%const %integer ft S dimensions only = 1
%const %integer ft V dimensions only = 2
%const %integer ft S expanded rasters = 1
%const %integer ft V expanded rasters = 3
%const %integer ft S compressed rasters = 1
%const %integer ft V compressed rasters = 4
%const %integer ft S ident orient = 1
%const %integer ft V ident orient = 5
%const %integer ft S wysiwyg = 1
%const %integer ft V wysiwyg = 6
%const %integer ft S large values = 1
%const %integer ft V large values = 7
%const %integer ft S unused org flags = 24
%const %integer ft V unused org flags = 8
%const %integer ft S generic = 1
%const %integer ft V generic = 0
%const %integer ft S roman = 1
%const %integer ft V roman = 1
%const %integer ft S gothic = 1
%const %integer ft V gothic = 2
%const %integer ft S italic = 1
%const %integer ft V italic = 3
%const %integer ft S slant = 1
%const %integer ft V slant = 4
%const %integer ft S monospaced = 1
%const %integer ft V monospaced = 5
%const %integer ft S shadow = 1
%const %integer ft V shadow = 6
%const %integer ft S outline = 1
%const %integer ft V outline = 7
%const %integer ft S inline = 1
%const %integer ft V inline = 8
%const %integer ft S contour = 1
%const %integer ft V contour = 9
%const %integer ft S connecting script = 1
%const %integer ft V connecting script = 10
%const %integer ft S nonconnecting script = 1
%const %integer ft V nonconnecting script = 11
%const %integer ft S reverse = 1
%const %integer ft V reverse = 12
%const %integer ft S serif = 1
%const %integer ft V serif = 13
%const %integer ft S underlined font = 1
%const %integer ft V underlined font = 14
%const %integer ft S overlined font = 1
%const %integer ft V overlined font = 15
%const %integer ft S struck through = 1
%const %integer ft V struck through = 16
%const %integer ft S unused fontid flags = 15
%const %integer ft V unused fontid flags = 17
%const %integer ft S inside box = 1
%const %integer ft V inside box = 0
%const %integer ft S celleqrast = 1
%const %integer ft V celleqrast = 1
%const %integer ft S unused param flags = 30
%const %integer ft V unused param flags = 2
%record %format ft structure ( -
    %integer  ft l byte count,
    %byte %array ft t font align string (1:4),
    %short    ft w major version,
    %short    ft w variant,
    %short    ft w font file id length,
    %short    ft w font file id reserved,
    %integer  ft a font file id,
    %byte %array ft t font file id (1:64),
    %integer  ft l revision number,
    %short    ft w year,
    %short    ft w month,
    %short    ft w day,
    %short    ft w hour,
    %short    ft w minute,
    %short    ft w second,
    %integer  ft l font attrib length,
    %integer  ft a font attrib,
    %integer  ft l font parameters length,
    %integer  ft a font parameters,
    %integer  ft l char directory length,
    %integer  ft a char directory,
    %integer  ft l subset tables length,
    %integer  ft a subset tables,
    %integer  ft l future info length,
    %integer  ft a future info,
    %integer  ft l string pool length,
    %integer  ft a string pool,
    %integer  ft l kerning info length,
    %integer  ft a kerning info,
    %integer  ft l char definitions length,
    %integer  ft a char definitions,
    %integer  ft l first character,
    %integer  ft l last character,
    %integer  ft l less than locator,
    %integer  ft l greater than locator,
    %integer  ft l error locator,
    %integer  ft l extension count,
    %integer  ft l extension use,
    %integer  ft l space encoding,
    %integer  ft l parameters size,
    %integer  ft l infile locators,
    %integer  ft l null locators,
    %integer  ft l character definitions,
    %integer  ft l alternate blocks,
    %integer  ft l raster count,
    %integer  ft l compressed raster count,
    %integer  ft l portrait byte count,
    %integer  ft l landscape byte count,
    %integer  ft l mixed byte count,
    %integer  ft l portrait compressed,
    %integer  ft l landscape compressed,
    %integer  ft l mixed compressed,
    %integer DUMMY1,
    %short    ft w char set length,
    %short    ft w char set reserved,
    %integer  ft a char set,
    %short    ft w family id length,
    %short    ft w family id reserved,
    %integer  ft a family id,
    %short    ft w family name length,
    %short    ft w family name reserved,
    %integer  ft a family name,
    %short    ft w font id length,
    %short    ft w font id reserved,
    %integer  ft a font id,
    %short    ft w category length,
    %short    ft w category reserved,
    %integer  ft a category,
    %short    ft w description length,
    %short    ft w description reserved,
    %integer  ft a description,
    %short    ft w type size whole,
    %short    ft w type size fraction,
    %integer  ft l character width,
    %integer  ft l resolution,
    %integer  ft l font weight,
    %integer  ft l horizontal proportion,
    %short    ft w width fract num,
    %short    ft w width fract denom,
    %short    ft w aspect ratio x,
    %short    ft w aspect ratio y,
    %short    ft w up vector opposite,
    %short    ft w up vector adjacent,
    %integer  ft l device,
    %short    ft w foundry length,
    %short    ft w foundry reserved,
    %integer  ft a foundry,
    %short    ft w designer length,
    %short    ft w designer reserved,
    %integer  ft a designer,
    %integer  DUMMY2,
    %integer  ft l underline offset,
    %integer  ft l underline thickness,
    %integer  ft l strikethru offset,
    %integer  ft l strikethru thickness,
    %integer  ft l overline offset,
    %integer  ft l overline thickness,
    %short    ft w slant opposite,
    %short    ft w slant adjacent,
    %short    ft w shadow offset opposite,
    %short    ft w shadow offset adjacent,
    %integer  ft l superscript vertical,
    %integer  ft l superscript horizontal,
    %integer  ft l subscript vertical,
    %integer  ft l subscript horizontal,
    %integer  ft l center line,
    %integer  ft l minimum space,
    %integer  ft l maximum space,
    %integer  ft l space width,
    %integer  ft l em space,
    %integer  ft l en space,
    %integer  ft l thin space,
    %integer  ft l digit space,
    %integer  ft l top line,
    %integer  ft l floating accent line,
    %integer  ft l half line,
    %integer  ft l vertical size,
    %integer  ft l ascender,
    %integer  ft l descender,
    %integer  ft l cap h height,
    %integer  ft l small x height,
    %integer  ft l top leading,
    %integer  ft l bottom leading -
);   { ft structure }
%record %format subset tables ( -
    %integer  sub l font subset count,
    %integer  sub l font subset dscs -
);   { subset tables }
%record %format future information ( -
    %integer  ftr l data length,
    %integer  ftr l data type -
);   { future information }
%const %integer krn c sectored kerning = 16_00000000
%record %format kerning structure ( -
    %integer  krn l total size,
    %integer  krn l kerning format,
    %short    krn w number of sets,
    %short    krn w number of sectors,
    %short    krn w kerning values -
);   { kerning structure }
%const %integer gly m no raster = 16_00000100
%const %integer gly m right align = 16_00000200
%const %integer gly m left align = 16_00000400
%const %integer gly m no underline = 16_00000800
%const %integer gly m no overline = 16_00001000
%const %integer gly m no thruline = 16_00002000
%const %integer gly m punctuation = 16_00004000
%const %integer gly m inside box = 16_00008000
%const %integer gly m complete = 16_00010000
%const %integer gly m alternate = 16_10000000
%const %integer gly m extension index = 16_20000000
%const %integer gly m alternate exists = 16_40000000
%const %integer gly m flag = 16_80000000
%const %integer gly c parameters size = 16_00000010
%const %integer gly bS kerning index = 8
%const %integer gly bV kerning index = 0
%const %integer gly S no raster = 1
%const %integer gly V no raster = 8
%const %integer gly S right align = 1
%const %integer gly V right align = 9
%const %integer gly S left align = 1
%const %integer gly V left align = 10
%const %integer gly S no underline = 1
%const %integer gly V no underline = 11
%const %integer gly S no overline = 1
%const %integer gly V no overline = 12
%const %integer gly S no thruline = 1
%const %integer gly V no thruline = 13
%const %integer gly S punctuation = 1
%const %integer gly V punctuation = 14
%const %integer gly S inside box = 1
%const %integer gly V inside box = 15
%const %integer gly S complete = 1
%const %integer gly V complete = 16
%const %integer gly S unused glyph flags = 11
%const %integer gly V unused glyph flags = 17
%const %integer gly S alternate = 1
%const %integer gly V alternate = 28
%const %integer gly S extension index = 1
%const %integer gly V extension index = 29
%const %integer gly S alternate exists = 1
%const %integer gly V alternate exists = 30
%const %integer gly S flag = 1
%const %integer gly V flag = 31
%record %format glyph structure ( -
    %integer  DUMMY1,
    %integer  gly l width,
    %integer  gly l left bearing,
    %integer  gly l baseline -
);   { glyph structure }
%const %integer cras c parameters size = 16_0000000C
%record %format compressed raster ( -
    %byte     cras b orientation,
    %byte     cras b type1,
    %byte     cras b type2,
    %byte     cras b unused,
    %short    cras w rows,
    %short    cras w columns,
    %short    cras w rows pointer,
    %short    cras w counts,
    %byte     cras b counts vector -
);   { compressed raster }
%const %integer ras c parameters size = 16_00000008
%const %integer ras c p = 16_00000000
%const %integer ras c lm = 16_00000001
%const %integer ras c pm = 16_00000002
%const %integer ras c li = 16_00000003
%const %integer ras c pmi = 16_00000004
%const %integer ras c pi = 16_00000006
%const %integer ras c l = 16_00000005
%const %integer ras c lmi = 16_00000007
%const %integer ras c expanded = 16_00000081
%const %integer ras c compress = 16_00000000
%const %integer ras c nibbles = 16_00000000
%const %integer ras c bytes = 16_00000001
%record %format expanded raster ( -
    %byte     ras b orientation,
    %byte     ras b type1,
    %byte     ras b type2,
    %byte     ras b unused,
    %short    ras w rows,
    %short    ras w columns,
    %byte     ras b raster -
);   { expanded raster }
 
{*** MODULE  qvbdef *** }
{  }
{  QVSS driver SETMODE function modifier codes }
{  }
%const %integer io c qv enakb = 16_00000002{  Enable/disable keyboard ASTs }
%const %integer io c qv enabutton = 16_00000003 {  Enable/disable mouse button ASTs }
%const %integer io c qv mousemov = 16_00000004 {  Enable/disable mouse movement ASTs }
%const %integer io c qv setcursor = 16_00000005 {  Set hardware cursor pattern }
%const %integer io c qv enauser = 16_00000006{  Add entry to user's list }
%const %integer io c qv enafnkey = 16_00000007 {  Enable function key }
%const %integer io c qv sound = 16_00000008{  Enable BELL or KEYCLICK }
%const %integer io c qv initialize = 16_00000009 {  Initialize QVSS screen (remove operator) }
%const %integer io c qv modifykb = 16_0000000A {  Modify keyboard characteristics }
%const %integer io c qv modifysys = 16_0000000B {  Modify system wide characteristics }
%const %integer io c qv altappl = 16_0000000C{  Set up for alternate window application. }
%const %integer io c qv simulate = 16_0000000D {  Simulate an event }
%const %integer io c qv push = 16_0000000E{  Push an entry on a list }
%const %integer io c qv pop = 16_0000000F{  Pop an entry on a list }
%const %integer io c qv load key table = 16_00000010 {  Load a keyboard table }
%const %integer io c qv use default table = 16_00000011 {  Use a system default table }
%const %integer io c qv load compose table = 16_00000012 {  Load a compose sequence table }
%const %integer io c qv enable digitizing = 16_00000013 {  digitize region }
%const %integer io c qv load compose lock table = 16_00000014 {  Reserved to Digital }
{  }
{  QDSS Driver SETMODE Function codes }
{  }
%const %integer io c QD STOP = 16_00000200{  Stop one viewport }
%const %integer io c QD START = 16_00000201{  Start one viewport }
%const %integer io c QD SET VIEWPORT REGIONS = 16_00000202 {  Setup a new set of regions for this viewport }
%const %integer io c QD EXECUTE DEFERRED = 16_00000203 {  start the drawing operations that are on the deferred }
%const %integer io c QD DELETE DEFERRED = 16_00000204 {  remove any remaining entries from the deferred list }
%const %integer io c QD LOAD BITMAP = 16_00000205 {  Load a source bitmap }
%const %integer io c QD SET COLOR = 16_00000206 {  set a color map entry }
%const %integer io c QD COLOR CHAR = 16_00000207 {  set COLOR characteristics }
%const %integer io c QD RESUME VP = 16_00000208 {  Resume a suspended viewport }
%const %integer io c QD SUSPEND VP = 16_00000209 {  Suspend a viewport }
%const %integer io c QD HOLD = 16_0000020A{  HOLD SCREEN THE SYSTEM }
%const %integer io c QD NO HOLD = 16_0000020B{  RESUME THE SCREEN ACTIVITY }
%const %integer io c QD LOAD FONT = 16_00000205
{  }
{  QVSS Driver Sensemode function codes }
{  }
%const %integer IO c qv getsys = 16_00000001{  Get QVB address }
%const %integer IO c qv getkb info = 16_00000002 {  Get Keyboard characteristics }
%const %integer IO c qv get entries = 16_00000003 {  Get number of entries on a list }
{  }
{  QVSS Driver Sensemode function codes }
{  }
%const %integer IO c qd get viewport id = 16_00000200 {  Get new viewport id }
%const %integer IO c QD GET FREE DOPS = 16_00000201 {  Wait for free dop's }
%const %integer IO c QD DEFERRED HOLD = 16_00000202 {  COMPLETES WHEN DEFERRED QUEUE HOLDS }
{  DOP PROCESSING }
%const %integer IO c QD GET COLOR = 16_00000203 {  READ THE COLORMAP INTO A BUFFER }
%const %integer IO c QD OCCLUDED SUSPEND = 16_00000204 {  COMPLETES WHEN A DOP THAT IS MARKED NO OCCLUSION }
{  IS EXECUTED AND THERE IS OCCLUSION. }
{  }
{  QVSS submodifier codes }
{  }
%const %integer io m qv last = 16_00010000
%const %integer io m qv delete = 16_00020000
%const %integer io m qv purg tah = 16_00040000
%const %integer io m qv cycle = 16_00080000
%const %integer io m qv active = 16_00100000
%const %integer io m qv load default = 16_00200000
%const %integer io m qv use default = 16_00400000
%const %integer io m qv two plane cursor = 16_00800000
%const %integer io m qv bind = 16_01000000
%const %integer io S fill 1 = 16
%const %integer io V fill 1 = 0{  Skip major function code (16 bits) }
%const %integer io S qv last = 1
%const %integer io V qv last = 16{  * Put AST entry at bottom of list }
%const %integer io S qv delete = 1
%const %integer io V qv delete = 17{  * Delete entry in list }
%const %integer io S qv purg tah = 1
%const %integer io V qv purg tah = 18{  * Purge typeahead buffer }
%const %integer io S qv cycle = 1
%const %integer io V qv cycle = 19{  * Cycle list }
%const %integer io S qv active = 1
%const %integer io V qv active = 20{  * Make current entry active }
%const %integer io S qv load default = 1
%const %integer io V qv load default = 21{  * Load system default }
%const %integer io S qv use default = 1
%const %integer io V qv use default = 22{  * Use system default }
%const %integer io S qv two plane cursor = 1
%const %integer io V qv two plane cursor = 23{  * INDICATE THAT THIS IS A TWO PLANE CURSOR }
%const %integer io S qv bind = 1
%const %integer io V qv bind = 24{  * Bind cursor to region }
%record %format qv submodifiers1 (%integer DUMMY1)
%const %integer io m qv keys = 16_00010000
%const %integer io m qv compose2 = 16_00020000
%const %integer io m qv compose3 = 16_00040000
%const %integer io S fill 2 = 16
%const %integer io V fill 2 = 0{  Skip major function code (16 bits) }
%const %integer io S qv keys = 1
%const %integer io V qv keys = 16{  * Load keyboard table }
%const %integer io S qv compose2 = 1
%const %integer io V qv compose2 = 17{  * Load two-stroke compose table }
%const %integer io S qv compose3 = 1
%const %integer io V qv compose3 = 18{  * Load three-stroke compose table }
%record %format qv submodifiers2 (%byte %array DUMMY1 (1:3))
{  }
{  READ AND WRITE FUNCTION CODES }
{  }
%const %integer IO  qdread = 16_0000003A
%const %integer IO  qdwrite = 16_0000003B
%const %integer IO  qdinsert dop = 16_0000003C
{  }
{  QDSS readpblk subodifiers }
{  }
%record %format qd readpblkmod (%byte DUMMY1)
%const %integer io S fill 3 = 6
%const %integer io V fill 3 = 0{  Skip major function code (irp v fmod bits) }
{  }
{  QDSS writepblk subodifiers }
{  }
%const %integer io m qd Insert dop = 16_00000040
%const %integer io m qd now = 16_00000080
%const %integer io S fill 4 = 6
%const %integer io V fill 4 = 0{  Skip major function code (irp v fmod bits) }
%const %integer io S qd Insert dop = 1
%const %integer io V qd Insert dop = 6{  This QIO is an insert onto the request queue }
%const %integer io S qd now = 1
%const %integer io V qd now = 7
%record %format qd writepblkmod (%byte DUMMY1)  {  Execute this DOP now in non-viewport cordinates }
{  }
{  QDSS SETMODE SUBMODIFIERS }
{  }
%const %integer io m qd intensity = 16_00010000
%const %integer io m qd reserved colors = 16_00020000
%record %format qd set color mod (%byte %array DUMMY1 (1:3))
%const %integer io S fill 5 = 16
%const %integer io V fill 5 = 0{  skip function code }
%const %integer io S qd intensity = 1
%const %integer io V qd intensity = 16{  set color specifies intensity values }
%const %integer io S qd reserved colors = 1
%const %integer io V qd reserved colors = 17{  set reserved colors }
{  }
{  QDSS LOAD BITMAP SUBMODIFIERS }
{  }
%const %integer io m qd system wide = 16_00010000
%record %format qd load bitmap mod (%byte %array DUMMY1 (1:3))
%const %integer io S fill 6 = 16
%const %integer io V fill 6 = 0{  skip function code }
%const %integer io S qd system wide = 1
%const %integer io V qd system wide = 16{  indicate that this is a system wide bitmap }
{  and should remain for the life of the system }
{  }
{  reserved color definitions }
{  }
%const %integer IO C QD TWO COLOR CURSOR = 16_00000001 {  Setup a two color cursor }
{  }
{  keyboard characteristics definitions }
{  }
%const %integer qv m key autorpt = 16_00000001
%const %integer qv m key keyclick = 16_00000002
%const %integer qv m key udf6 = 16_00000004
%const %integer qv m key udf11 = 16_00000008
%const %integer qv m key udf17 = 16_00000010
%const %integer qv m key udhelpdo = 16_00000020
%const %integer qv m key ude1 = 16_00000040
%const %integer qv m key udarrow = 16_00000080
%const %integer qv m key udnumkey = 16_00000100
%const %integer qv m key scrsav = 16_00000200
%const %integer qv m key compose lock = 16_00000400
%record %format kbd definitions (%short DUMMY1)
%const %integer qv S key autorpt = 1
%const %integer qv V key autorpt = 0{  Keyboard autorepeat }
%const %integer qv S key keyclick = 1
%const %integer qv V key keyclick = 1{  Keyclick }
%const %integer qv S key udf6 = 1
%const %integer qv V key udf6 = 2{  keys F6-F10 generate up/down transitions }
%const %integer qv S key udf11 = 1
%const %integer qv V key udf11 = 3{  keys F11-F14 generate up/down transitions }
%const %integer qv S key udf17 = 1
%const %integer qv V key udf17 = 4{  keys F17-F20 generate up/down transitions }
%const %integer qv S key udhelpdo = 1
%const %integer qv V key udhelpdo = 5{  keys HELP and DO generate up/down transitions }
%const %integer qv S key ude1 = 1
%const %integer qv V key ude1 = 6{  keys E1-E6 generate up/down transitions }
%const %integer qv S key udarrow = 1
%const %integer qv V key udarrow = 7{  Arrow keys generate up/down transitions }
%const %integer qv S key udnumkey = 1
%const %integer qv V key udnumkey = 8{  Numeric keypad keys generate up/down transitions }
%const %integer qv S key scrsav = 1
%const %integer qv V key scrsav = 9{  Place holder, *** DO NOT USE *** }
%const %integer qv S key compose lock = 1
%const %integer qv V key compose lock = 10{  Compose key LOCKs alternate table }
{  }
{  System characteristics definitions }
{  }
%const %integer qv m sys autorpt = 16_00000001
%const %integer qv m sys keyclick = 16_00000002
%const %integer qv m sys udf6 = 16_00000004
%const %integer qv m sys udf11 = 16_00000008
%const %integer qv m sys udf17 = 16_00000010
%const %integer qv m sys udhelpdo = 16_00000020
%const %integer qv m sys ude1 = 16_00000040
%const %integer qv m sys udarrow = 16_00000080
%const %integer qv m sys udnumkey = 16_00000100
%const %integer qv m sys scrsav = 16_00000200
%const %integer qv m sys compose lock = 16_00000400
%record %format sys definitions (%short DUMMY1)
%const %integer qv S sys autorpt = 1
%const %integer qv V sys autorpt = 0{  Keyboard autorepeat }
%const %integer qv S sys keyclick = 1
%const %integer qv V sys keyclick = 1{  Keyclick }
%const %integer qv S sys udf6 = 1
%const %integer qv V sys udf6 = 2{  keys F6-F10 generate up/down transitions }
%const %integer qv S sys udf11 = 1
%const %integer qv V sys udf11 = 3{  keys F11-F14 generate up/down transitions }
%const %integer qv S sys udf17 = 1
%const %integer qv V sys udf17 = 4{  keys F17-F20 generate up/down transitions }
%const %integer qv S sys udhelpdo = 1
%const %integer qv V sys udhelpdo = 5{  keys HELP and DO generate up/down transitions }
%const %integer qv S sys ude1 = 1
%const %integer qv V sys ude1 = 6{  keys E1-E6 generate up/down transitions }
%const %integer qv S sys udarrow = 1
%const %integer qv V sys udarrow = 7{  Arrow keys generate up/down transitions }
%const %integer qv S sys udnumkey = 1
%const %integer qv V sys udnumkey = 8{  Numeric keypad keys generate up/down transitions }
%const %integer qv S sys scrsav = 1
%const %integer qv V sys scrsav = 9{  Disable video output if no input activity }
%const %integer qv S sys compose lock = 1
%const %integer qv V sys compose lock = 10{  Compose key LOCKs alternate table }
{  }
{  Function key definitions and misc. }
{  }
%const %integer qv m key f1 = 16_00000001
%const %integer qv m key f2 = 16_00000002
%const %integer qv m key f3 = 16_00000004
%const %integer qv m key f4 = 16_00000008
%const %integer qv m key f5 = 16_00000010
%const %integer qv m sound bell = 16_00000020
%const %integer qv m sound click = 16_00000040
%const %integer qv m but uptodown = 16_00000080
%const %integer qv m but position = 16_00000100
%record %format qv definitions (%short DUMMY1)
%const %integer qv S key f1 = 1
%const %integer qv V key f1 = 0{  Function key 1 specified }
%const %integer qv S key f2 = 1
%const %integer qv V key f2 = 1{  Function key 2 specified }
%const %integer qv S key f3 = 1
%const %integer qv V key f3 = 2{  Function key 3 specified }
%const %integer qv S key f4 = 1
%const %integer qv V key f4 = 3{  Function key 4 specified }
%const %integer qv S key f5 = 1
%const %integer qv V key f5 = 4{  Function key 5 specified }
%const %integer qv S sound bell = 1
%const %integer qv V sound bell = 5{  Sound bell }
%const %integer qv S sound click = 1
%const %integer qv V sound click = 6{  Keyclick }
%const %integer qv S but uptodown = 1
%const %integer qv V but uptodown = 7{  button characteristic }
%const %integer qv S but position = 1
%const %integer qv V but position = 8{  deliver button position }
{  }
{  Pointer characteristics definitions }
{  }
%const %integer qv m ptr left hand = 16_00000001
%const %integer qv m ptr invert stylus = 16_00000002
%record %format pointer definitions (%byte DUMMY1)
%const %integer qv S ptr left hand = 1
%const %integer qv V ptr left hand = 0{  Treat puck or mouse as left handed. }
%const %integer qv S ptr invert stylus = 1
%const %integer qv V ptr invert stylus = 1{  Switch buttons on stylus. }
{  }
{  Mouse button key definitions and F1 - F5 definitions. }
{  }
%const %integer qv m button 1 = 16_00000001
%const %integer qv m button 2 = 16_00000002
%const %integer qv m button 3 = 16_00000004
%record %format button definitions (%byte DUMMY1)
%const %integer qv S button 1 = 1
%const %integer qv V button 1 = 0{  Mouse button 1 specifiec }
%const %integer qv S button 2 = 1
%const %integer qv V button 2 = 1{  Mouse button 2 specified }
%const %integer qv S button 3 = 1
%const %integer qv V button 3 = 2{  Mouse button 3 specified }
%const %integer key c select = 16_00000190
%const %integer key c button 1 = 16_00000190
%const %integer key c button 2 = 16_00000191
%const %integer key c button 3 = 16_00000192
%const %integer key c f1 = 16_00000119
%const %integer key c f2 = 16_0000011A
%const %integer key c f3 = 16_0000011B
%const %integer key c f4 = 16_0000011C
%const %integer key c f5 = 16_0000011D
{  }
{  QVSS common driver status block }
{  }
%const %integer qvb m vps busy = 16_00000001
%const %integer qvb m vaxmate = 16_00000002
%const %integer qvb m tablet = 16_00000004
%const %integer qvb m stylus = 16_00000008
%const %integer qvb c length = 16_00000100{  Length of structure }
%const %integer qvb S vps busy = 1
%const %integer qvb V vps busy = 0{  VPS currently modify scan map }
%const %integer qvb S vaxmate = 1
%const %integer qvb V vaxmate = 1{  QVSS style No scan line present }
%const %integer qvb S tablet = 1
%const %integer qvb V tablet = 2{  Tablet is present (0=mouse) }
%const %integer qvb S stylus = 1
%const %integer qvb V stylus = 3{  Stylus is present (0=puck) }
%record %format qvb common structure ( -
    %integer  qvb l videosize,{ size in bytes of video memory (QVSS specific)}
    %integer  qvb l videoaddr,{ system address of video memory (QVSS specific)}
    %integer  qvb l mapsize,{ size in entries of physical map (QVSS specific) }
    %integer  qvb l mapaddr,{  address of video map (QVSS specific) }
    %integer  qvb l context,{  QBE pointer (QVSS specific) }
    %integer  qvb l csr,{ CSR }
    %short    qvb w mous xpix,{ mouse, x position }
    %short    qvb w mous ypix,{ mouse, y position }
    %short    qvb w width,{ maximum size of screen, horizontal }
    %short    qvb w height,{ maximum size of screen, vertical }
    %short    qvb w x resol,{ bits per inch, horizontal }
    %short    qvb w y resol,{ bits per inch, vertical }
    %integer  qvb l mous xabs,{ Mouse position on infinite coordinate space (signed) }
    %integer  qvb l mous yabs,{ (used to get relative motion when H/W cursor not used) }
    %integer  qvb l main videosize,{  size in bytes of video memory allocated to windowing system (QVSS specific) }
    %integer  qvb l main videoaddr,{  system addr of video memory allocated to windowing system (QVSS specific) }
    %integer  qvb l main mapsize,{  size in entries of windowing system map (QVSS specific) }
    %integer  qvb l main mapaddr,{  system address of windowing system scan map table (QVSS specific) }
    %short    qvb w main mapmin,{  Entry number of lowest map cell last updated (QVSS specific) }
    %short    qvb w main mapmax,{  entry number of highest map cell last updated (QVSS specific) }
    %integer  qvb l characteristics,{  Current system wide windowing characteristics. }
    %short    qvb w scrsav timout,{  Current screen saver timout value. }
    %short    qvb w buttons,{  *** This field no longer supported. }
    %short    qvb w keyclick volume,{  Default keyclick volume }
    %short    qvb w tablet xpix,{  tablet, x position }
    %short    qvb w tablet ypix,{  tablet, y position }
    %short    qvb w tablet width,{  maximum size of tablet, horizontal }
    %short    qvb w tablet height,{  maximum size of tablet, vertical }
    %short    qvb w but status,{  Status of buttons }
    %byte     qvb b bits per pixel,{  Number of bits per pixel }
    %byte     qvb b device type,
    %short    qvb w flags,{  Internal flags }
    %byte     qvb B Cursor planes,{  The number of planes in the h/w cursor }
    %byte     qvb b spare b 1,
    %short    qvb w spare w 1 ,
    %short    qvb w tablet xsize,{ Width of tablet in centimeters }
    %short    qvb w tablet ysize,{ Height of tablet in centimeters }
    %real     qvb f tablet xratio,{ X ratio of screen to tablet (floating) }
    %real     qvb f tablet yratio,{ Y ratio of screen to tablet }
    %integer  qvb l unit number,{  unit number of this device }
    %integer  qvb l pointer setup{Pointer characteristics});{qvb common structure }
{ 256 bytes common  } 
{ 256 bytes qdss = 512 total qvb } 

%const %integer qvb c qvss = 16_00000000
%const %integer qvb c qdss = 16_00000001
{  }
{  QDSS specific driver status }
{  }
%const %integer QDB c length = 16_00000164{  Length of structure }
%record %format QVB QDSS STRUCTURE ( -
    %byte %array    QVBDEF   QD COMMON FILL(1:256),
    %integer  QDB L SYSVP,{  system wide viewport id }
    %short    QDB W ON SCREEN X,{  ON SCREEN X POSITION }
    %short    QDB W ON SCREEN Y,{  }
    %short    QDB W ON SCREEN WIDTH,{  WIDTH AND HEIGHT OF ON SCREEN PORTION }
    %short    QDB W ON SCREEN HEIGHT,{  }
    %short    QDB W SCROLL X,{  SCROLL AREA X,Y,WIDTH AND HEIGHT }
    %short    QDB W SCROLL Y,
    %short    QDB W SCROLL WIDTH,
    %short    QDB W SCROLL HEIGHT,
    %short    QDB W FREE 1 X,{  LARGEST FREE BLOCK }
    %short    QDB W FREE 1 Y,
    %short    QDB W FREE 1 WIDTH,
    %short    QDB W FREE 1 HEIGHT,
    %short    QDB W FREE 2 X,{  SECOND LARGEST FREE BLOCK }
    %short    QDB W FREE 2 Y,
    %short    QDB W FREE 2 WIDTH,
    %short    QDB W FREE 2 HEIGHT,
    %short    QDB W FREE 3 X,{  SMALLEST FREE BLOCK }
    %short    QDB W FREE 3 Y,
    %short    QDB W FREE 3 WIDTH,
    %short    QDB W FREE 3 HEIGHT,
    %short    QDB W FONT X,{  FONT STORAGE BLOCK }
    %short    QDB W FONT Y,
    %short    QDB W FONT WIDTH,
    %short    QDB W FONT HEIGHT,
    %short    QDB W CLIP SAVE X,{  CLIPPING SAVE AREA }
    %short    QDB W CLIP SAVE Y,
    %short    QDB W CLIP SAVE WIDTH,
    %short    QDB W CLIP SAVE HEIGHT,
    %integer  QDB L COLOR INDICES,{ COLOR MAP SIZE }
    %integer  QDB L COLOR COLORS,{ MAXIMUM POSSIBLE COLORS }
    %integer  QDB L COLOR RBITS,{ NUMBER OF BITS OF PRECESION FOR RED }
    %integer  QDB L COLOR GBITS,{ NUMBER OF BITS OF PRECESION FOR GREEN }
    %integer  QDB L COLOR BBITS,{ NUMBER OF BITS OF PRECESION FOR BLUE }
    %integer  QDB L COLOR IBITS,{ NUMBER OF BITS OF INTENSITY PRESESION }
    %integer  QDB L COLOR RES INDICES,{ NUMBER OF RESERVED ENTRIES }
    %integer  QDB L COLOR REGEN,{ COLOR REGENERATION CHARACTERISTICS }
    %integer  QDB L COLOR MAPS,{  ALWAYS 1 FOR QDSS }
    %integer  QDB L COLOR INTENSITY FLAG -{  1= SYSTEM SETUP FOR INTENSITY VALUES }
{  0= RGB EXPECTED }            );   { QVB QDSS STRUCTURE }
 
{*** MODULE  REQDEF *** }
{  }
{  QDSS REQUEST QUEUE DEFINITIONS }
{  }
%const %integer REQ K RETURN OFFSET = 16_00000008 {  RETURN QUEUE OFFSET }
{  }
%const %integer REQ K length = 16_00000020{  Length of structure }
%record %format REQ structure ( -
    %integer  REQ L REQUEST FLINK,{  PENDING DRAWING OPERATION QUEUE HEADER }
    %integer  REQ L REQUEST BLINK,
{  The following fields must match the RET %record %format exactly! }
{  }
    %integer  REQ L RETURN FLINK,{  ENTRIES RETURNED TO THE PROCESS }
    %integer  REQ L RETURN BLINK,
    %integer  REQ L RETURN LARGE FLINK,{ RETURN THE LARGE PACKETS TO THIS QUEUE }
    %integer  REQ L RETURN LARGE BLINK,{  RETURN THE LARGE PACKETS TO THIS QUEUE, }
    %short    REQ W SMALL DOP SIZE,{  MAXIMUM SIZE OF A SMALL DOP, }
    %short    REQ W LARGE DOP SIZE,{  MAXIMUM SIZE OF A LARGE DOP, }
    %integer  REQ L APPLICATION RESERVED -{  APPLICATION SPECIFIC FIELD }
);   { REQ structure }
 
{*** MODULE  RETDEF *** }
{  }
{  QDSS RETURN QUEUE DEFINITIONS }
{  }
%const %integer RET K length = 16_00000018{  Length of structure }
%record %format RET structure ( -
    %integer  RET L SMALL FLINK,{  ENTRIES RETURNED TO THE PROCESS }
    %integer  RET L SMALL BLINK,
    %integer  RET L LARGE FLINK,{  RETURN THE LARGE PACKETS TO THIS QUEUE, }
    %integer  RET L LARGE BLINK,{  RETURN THE LARGE PACKETS TO THIS QUEUE, }
    %short    RET W SMALL DOP SIZE,{  MAXIMUM SIZE OF A SMALL DOP, }
    %short    RET W LARGE DOP SIZE,{  MAXIMUM SIZE OF A LARGE DOP, }
    %integer  RET L APPLICATION RESERVED -{  APPLICATION SPECIFIC FIELD }
);   { RET structure }
 
{*** MODULE  URDDEF *** }
{  }
{  REGION DESCRIPTOR }
{  }
%const %integer URD C length = 16_0000000C{  Length of structure }
%record %format URD structure ( -
    %short    URD W X MIN,{  MINIMUM VIEWPORT RELATIVE X VALUE FOR THIS REGION }
    %short    URD W Y MIN,{  MINIMUM VIEWPORT RELATIVE Y VALUE FOR THIS REGION }
    %short    URD W X MAX,{  MAXIMUM VIEWPORT RELATIVE X VALUE FOR THIS REGION }
    %short    URD W Y MAX,{  MAXIMUM VIEWPORT RELATIVE Y VALUE FOR THIS REGION }
    %short    URD W X BASE,{  BASE X IN DEVICE RELATIVE CORDINATES }
    %short    URD W Y BASE -{  BASE Y IN DEVICE RELATIVE CORDINATES }
);   { URD structure }
 
{*** MODULE  WRITDEF *** }
{  }
{  WRITING MODE DEFINITONS }
{  }
%const %integer WRIT M COMP MASK 1 = 16_00000010
%const %integer WRIT M COMP MASK 2 = 16_00000020
%const %integer WRIT M NO SRC COMP = 16_00000040
%const %integer WRIT M RES DIS = 16_00000080
%const %integer WRIT M USE MASK 1 2 = 16_00000100
%const %integer WRIT M USE MASK 2 = 16_00000200
%const %integer WRIT C ZEROES = 16_00000000{  All resulting bits are set to 0. }
%const %integer WRIT C DSON = 16_00000001{  The destination is OR'd with source index, then the result is negated. }
%const %integer WRIT C DNSA = 16_00000002{  The destination is negated, then AND'd with the source index. }
%const %integer WRIT C DN = 16_00000003{  The destination is negated. }
%const %integer WRIT C DSNA = 16_00000004{  The source index is negated, then AND'd with the destination. }
%const %integer WRIT C SN = 16_00000005{  The source index is negated. }
%const %integer WRIT C DSX = 16_00000006{  The destination is XOR'd with the source index. }
%const %integer WRIT C DSAN = 16_00000007{  The destination is AND'd with the source index then the  }
{  result is negated. }
%const %integer WRIT C DSA = 16_00000008{  The destination is AND'd with the source index. }
%const %integer WRIT C DSXN = 16_00000009{  The destination is XOR'd with the source index then the  }
{  result is negated. }
%const %integer WRIT C S = 16_0000000A{  The result is equal to the source index. }
%const %integer WRIT C DNSO = 16_0000000B{  The destination is negated, then AND'd with the source index. }
%const %integer WRIT C D = 16_0000000C{  The result is equal to the destination. }
%const %integer WRIT C DSNO = 16_0000000D{  The source index is negated, then OR'd with the destination. }
%const %integer WRIT C DSO = 16_0000000E{  The destination is OR'd with the source index. }
%const %integer WRIT C ONES = 16_0000000F{  All resulting bits are set to 1. }
%record %format WRIT STRUCTURE (%short DUMMY1)
%const %integer WRIT S LOGIC = 4
%const %integer WRIT V LOGIC = 0{  4 BITS OF LOGIC FUNCTION }
%const %integer WRIT S COMP MASK 1 = 1
%const %integer WRIT V COMP MASK 1 = 4{  USE MASK 1 }
%const %integer WRIT S COMP MASK 2 = 1
%const %integer WRIT V COMP MASK 2 = 5{  USE MASK 2 }
%const %integer WRIT S NO SRC COMP = 1
%const %integer WRIT V NO SRC COMP = 6{  DO NOT COMPLIMENT THE SOURCE REGISTER }
%const %integer WRIT S RES DIS = 1
%const %integer WRIT V RES DIS = 7{  DISABLE RESOLUTION MODE LOGIC }
%const %integer WRIT S USE MASK 1 2 = 1
%const %integer WRIT V USE MASK 1 2 = 8{  PLACE THE DATA FROM THE SOURCE CYCLE INTO }
{  MASK 1 & 2 }
%const %integer WRIT S USE MASK 2 = 1
%const %integer WRIT V USE MASK 2 = 9{  PLACE THE DATA FROM THE SOURCE CYCLE INTO }
{  MASK 2 }
{*** MODULE  tpbdef IDENT V01-000 *** }
%const %integer tpb c unknown = 16_00000000
%const %integer tpb c bitmap xfr = 16_00000001
%const %integer tpb c source only = 16_00000002
%const %integer tpb c bitmap xfr rotate = 16_00000003
%const %integer tpb c source length = 16_0000000A
%const %integer tpb c bitmap xfr length = 16_0000000E
%const %integer tpb c length = 16_0000001A
%record %format tpb structure ( -
    %byte     tpb b type,
    %byte     tpb b size,
    %short    tpb w x source,
    %short    tpb w y source,
    %short    tpb w width,
    %short    tpb w height,
    %short    tpb w x target,
    %short    tpb w y target,
    %short    tpb w x target vec1,
    %short    tpb w y target vec1,
    %short    tpb w l target vec1,
    %short    tpb w x target vec2,
    %short    tpb w y target vec2,
    %short    tpb w l target vec2 -
)   { tpb structure }
%end %of %file
