home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / demos / 57 / pascal / vdi.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1986-09-18  |  9.9 KB  |  303 lines

  1. PROGRAM name ;
  2.  
  3.   CONST
  4.     {$I GEMCONST.PAS}
  5.     (* ... your CONSTants ... *)
  6.  
  7.   TYPE
  8.     {$I gemtype.pas}    { note that case doesn't matter }
  9.     (* ... your TYPEs ... *)
  10.  
  11.   VAR
  12.     Test : char;
  13.     (* ... your VARiables ... *)
  14.  
  15.   {$I gemsubs}          { and that ".PAS" is default }
  16.   (* ... your PROCEDUREs, FUNCTIONs, etc. ... *)
  17.  
  18.  PROCEDURE Text_Height( height : integer ) ;
  19.  
  20.     TYPE
  21.       Ctrl_Parms      = ARRAY [ 0..11 ] OF integer ;
  22.       Int_In_Parms    = ARRAY [ 0..15 ] OF integer ;
  23.       Int_Out_Parms   = ARRAY [ 0..45 ] OF integer ;
  24.       Pts_In_Parms    = ARRAY [ 0..11 ] OF integer ;
  25.       Pts_Out_Parms   = ARRAY [ 0..11 ] OF integer ;
  26.  
  27.     VAR
  28.       control : Ctrl_Parms ;
  29.       int_in  : Int_In_Parms ;
  30.       int_out : Int_Out_Parms ;
  31.       pts_in  : Pts_In_Parms ;
  32.       pts_out : Pts_Out_Parms ;
  33.  
  34.     PROCEDURE VDI_Call( cmd, sub_cmd : integer ; nints, npts : integer ;
  35.                 VAR ctrl : Ctrl_Parms ;
  36.                 VAR int_in : Int_In_Parms ; VAR int_out : Int_Out_Parms ;
  37.                 VAR pts_in : Pts_In_Parms ; VAR pts_out : Pts_Out_Parms ;
  38.                 translate : boolean ) ;
  39.       EXTERNAL ;
  40.  
  41.     BEGIN
  42.       pts_in[0] := 0 ;
  43.       pts_in[1] := height ;
  44.       VDI_Call(12, 0, 0, 2, control, int_in, int_out, pts_in, pts_out, false);
  45.     END ;
  46.  
  47.  PROCEDURE Polymarker_Height( height : integer ) ;
  48.  
  49.     TYPE
  50.       Ctrl_Parms      = ARRAY [ 0..11 ] OF integer ;
  51.       Int_In_Parms    = ARRAY [ 0..15 ] OF integer ;
  52.       Int_Out_Parms   = ARRAY [ 0..45 ] OF integer ;
  53.       Pts_In_Parms    = ARRAY [ 0..11 ] OF integer ;
  54.       Pts_Out_Parms   = ARRAY [ 0..11 ] OF integer ;
  55.  
  56.     VAR
  57.       control : Ctrl_Parms ;
  58.       int_in  : Int_In_Parms ;
  59.       int_out : Int_Out_Parms ;
  60.       pts_in  : Pts_In_Parms ;
  61.       pts_out : Pts_Out_Parms ;
  62.  
  63.     PROCEDURE VDI_Call( cmd, sub_cmd : integer ; nints, npts : integer ;
  64.                 VAR ctrl : Ctrl_Parms ;
  65.                 VAR int_in : Int_In_Parms ; VAR int_out : Int_Out_Parms ;
  66.                 VAR pts_in : Pts_In_Parms ; VAR pts_out : Pts_Out_Parms ;
  67.                 translate : boolean ) ;
  68.       EXTERNAL ;
  69.  
  70.     BEGIN
  71.       pts_in[0] := height ;
  72.       VDI_Call(19, 0, 0, 1, control, int_in, int_out, pts_in, pts_out, false);
  73.     END ;
  74.  
  75.  PROCEDURE Marker( x,y : integer ) ;
  76.  
  77.     TYPE
  78.       Ctrl_Parms      = ARRAY [ 0..11 ] OF integer ;
  79.       Int_In_Parms    = ARRAY [ 0..15 ] OF integer ;
  80.       Int_Out_Parms   = ARRAY [ 0..45 ] OF integer ;
  81.       Pts_In_Parms    = ARRAY [ 0..11 ] OF integer ;
  82.       Pts_Out_Parms   = ARRAY [ 0..11 ] OF integer ;
  83.  
  84.     VAR
  85.       control : Ctrl_Parms ;
  86.       int_in  : Int_In_Parms ;
  87.       int_out : Int_Out_Parms ;
  88.       pts_in  : Pts_In_Parms ;
  89.       pts_out : Pts_Out_Parms ;
  90.  
  91.     PROCEDURE VDI_Call( cmd, sub_cmd : integer ; nints, npts : integer ;
  92.                 VAR ctrl : Ctrl_Parms ;
  93.                 VAR int_in : Int_In_Parms ; VAR int_out : Int_Out_Parms ;
  94.                 VAR pts_in : Pts_In_Parms ; VAR pts_out : Pts_Out_Parms ;
  95.                 translate : boolean ) ;
  96.       EXTERNAL ;
  97.  
  98.     BEGIN
  99.       pts_in[0] := x ;
  100.       pts_in[1] := y ;
  101.  VDI_Call(7, 0, 0, 2, control, int_in, int_out, pts_in, pts_out, false);
  102.     END ;
  103.  
  104. PROCEDURE Color_Marker( color : integer ) ;
  105.  
  106.     TYPE
  107.       Ctrl_Parms      = ARRAY [ 0..11 ] OF integer ;
  108.       Int_In_Parms    = ARRAY [ 0..15 ] OF integer ;
  109.       Int_Out_Parms   = ARRAY [ 0..45 ] OF integer ;
  110.       Pts_In_Parms    = ARRAY [ 0..11 ] OF integer ;
  111.       Pts_Out_Parms   = ARRAY [ 0..11 ] OF integer ;
  112.  
  113.     VAR
  114.       control : Ctrl_Parms ;
  115.       int_in  : Int_In_Parms ;
  116.       int_out : Int_Out_Parms ;
  117.       pts_in  : Pts_In_Parms ;
  118.       pts_out : Pts_Out_Parms ;
  119.  
  120.     PROCEDURE VDI_Call( cmd, sub_cmd : integer ; nints, npts : integer ;
  121.                 VAR ctrl : Ctrl_Parms ;
  122.                 VAR int_in : Int_In_Parms ; VAR int_out : Int_Out_Parms ;
  123.                 VAR pts_in : Pts_In_Parms ; VAR pts_out : Pts_Out_Parms ;
  124.                 translate : boolean ) ;
  125.       EXTERNAL ;
  126.  
  127.     BEGIN
  128.       int_in[0] := color;
  129.       VDI_Call(20, 0, 0, 1, control, int_in, int_out, pts_in, pts_out, false);
  130.     END ;
  131.  
  132.  PROCEDURE Type_Marker( style : integer ) ;
  133.  
  134.     TYPE
  135.       Ctrl_Parms      = ARRAY [ 0..11 ] OF integer ;
  136.       Int_In_Parms    = ARRAY [ 0..15 ] OF integer ;
  137.       Int_Out_Parms   = ARRAY [ 0..45 ] OF integer ;
  138.       Pts_In_Parms    = ARRAY [ 0..11 ] OF integer ;
  139.       Pts_Out_Parms   = ARRAY [ 0..11 ] OF integer ;
  140.  
  141.     VAR
  142.       control : Ctrl_Parms ;
  143.       int_in  : Int_In_Parms ;
  144.       int_out : Int_Out_Parms ;
  145.       pts_in  : Pts_In_Parms ;
  146.       pts_out : Pts_Out_Parms ;
  147.  
  148.     PROCEDURE VDI_Call( cmd, sub_cmd : integer ; nints, npts : integer ;
  149.                 VAR ctrl : Ctrl_Parms ;
  150.                 VAR int_in : Int_In_Parms ; VAR int_out : Int_Out_Parms ;
  151.                 VAR pts_in : Pts_In_Parms ; VAR pts_out : Pts_Out_Parms ;
  152.                 translate : boolean ) ;
  153.       EXTERNAL ;
  154.  
  155.     BEGIN
  156.       int_in[0] := style;
  157.       VDI_Call(18, 0, 0, 1, control, int_in, int_out, pts_in, pts_out, false);
  158.     END ;
  159.  PROCEDURE Char_Angle( angle : integer ) ;
  160.  
  161.     TYPE
  162.       Ctrl_Parms      = ARRAY [ 0..11 ] OF integer ;
  163.       Int_In_Parms    = ARRAY [ 0..15 ] OF integer ;
  164.       Int_Out_Parms   = ARRAY [ 0..45 ] OF integer ;
  165.       Pts_In_Parms    = ARRAY [ 0..11 ] OF integer ;
  166.       Pts_Out_Parms   = ARRAY [ 0..11 ] OF integer ;
  167.  
  168.     VAR
  169.       control : Ctrl_Parms ;
  170.       int_in  : Int_In_Parms ;
  171.       int_out : Int_Out_Parms ;
  172.       pts_in  : Pts_In_Parms ;
  173.       pts_out : Pts_Out_Parms ;
  174.  
  175.     PROCEDURE VDI_Call( cmd, sub_cmd : integer ; nints, npts : integer ;
  176.                 VAR ctrl : Ctrl_Parms ;
  177.                 VAR int_in : Int_In_Parms ; VAR int_out : Int_Out_Parms ;
  178.                 VAR pts_in : Pts_In_Parms ; VAR pts_out : Pts_Out_Parms ;
  179.                 translate : boolean ) ;
  180.       EXTERNAL ;
  181.  
  182.     BEGIN
  183.       int_in[0] := angle; (*0-3600*)
  184.       VDI_Call(13, 0, 0, 1, control, int_in, int_out, pts_in, pts_out, false);
  185.     END ;
  186.  
  187.  PROCEDURE Fill( index,x,y : integer ) ;
  188.  
  189.     TYPE
  190.       Ctrl_Parms      = ARRAY [ 0..11 ] OF integer ;
  191.       Int_In_Parms    = ARRAY [ 0..15 ] OF integer ;
  192.       Int_Out_Parms   = ARRAY [ 0..45 ] OF integer ;
  193.       Pts_In_Parms    = ARRAY [ 0..11 ] OF integer ;
  194.       Pts_Out_Parms   = ARRAY [ 0..11 ] OF integer ;
  195.  
  196.     VAR
  197.       control : Ctrl_Parms ;
  198.       int_in  : Int_In_Parms ;
  199.       int_out : Int_Out_Parms ;
  200.       pts_in  : Pts_In_Parms ;
  201.       pts_out : Pts_Out_Parms ;
  202.  
  203.     PROCEDURE VDI_Call( cmd, sub_cmd : integer ; nints, npts : integer ;
  204.                 VAR ctrl : Ctrl_Parms ;
  205.                 VAR int_in : Int_In_Parms ; VAR int_out : Int_Out_Parms ;
  206.                 VAR pts_in : Pts_In_Parms ; VAR pts_out : Pts_Out_Parms ;
  207.                 translate : boolean ) ;
  208.       EXTERNAL ;
  209.  
  210.     BEGIN
  211.       int_in[0] := index;
  212.       pts_in[0] := x;
  213.       pts_in[1] := y;
  214.       VDI_Call(103, 0, 0, 1, control, int_in, int_out, pts_in, pts_out, false);
  215.     END ;
  216.  
  217.  PROCEDURE Line_Width( width : integer ) ;
  218.  
  219.     TYPE
  220.       Ctrl_Parms      = ARRAY [ 0..11 ] OF integer ;
  221.       Int_In_Parms    = ARRAY [ 0..15 ] OF integer ;
  222.       Int_Out_Parms   = ARRAY [ 0..45 ] OF integer ;
  223.       Pts_In_Parms    = ARRAY [ 0..11 ] OF integer ;
  224.       Pts_Out_Parms   = ARRAY [ 0..11 ] OF integer ;
  225.  
  226.     VAR
  227.       control : Ctrl_Parms ;
  228.       int_in  : Int_In_Parms ;
  229.       int_out : Int_Out_Parms ;
  230.       pts_in  : Pts_In_Parms ;
  231.       pts_out : Pts_Out_Parms ;
  232.  
  233.     PROCEDURE VDI_Call( cmd, sub_cmd : integer ; nints, npts : integer ;
  234.                 VAR ctrl : Ctrl_Parms ;
  235.                 VAR int_in : Int_In_Parms ; VAR int_out : Int_Out_Parms ;
  236.                 VAR pts_in : Pts_In_Parms ; VAR pts_out : Pts_Out_Parms ;
  237.                 translate : boolean ) ;
  238.       EXTERNAL ;
  239.  
  240.     BEGIN
  241.       pts_in[0] := width ;
  242.       pts_in[1] := 0 ;
  243.       VDI_Call(16, 0, 0, 1, control, int_in, int_out, pts_in, pts_out, false);
  244.     END;
  245.  
  246.  
  247.  PROCEDURE End_Style( Line_Start,Line_End : integer ) ;
  248.  
  249.     TYPE
  250.       Ctrl_Parms      = ARRAY [ 0..11 ] OF integer ;
  251.       Int_In_Parms    = ARRAY [ 0..15 ] OF integer ;
  252.       Int_Out_Parms   = ARRAY [ 0..45 ] OF integer ;
  253.       Pts_In_Parms    = ARRAY [ 0..11 ] OF integer ;
  254.       Pts_Out_Parms   = ARRAY [ 0..11 ] OF integer ;
  255.  
  256.     VAR
  257.       control : Ctrl_Parms ;
  258.       int_in  : Int_In_Parms ;
  259.       int_out : Int_Out_Parms ;
  260.       pts_in  : Pts_In_Parms ;
  261.       pts_out : Pts_Out_Parms ;
  262.  
  263.     PROCEDURE VDI_Call( cmd, sub_cmd : integer ; nints, npts : integer ;
  264.                 VAR ctrl : Ctrl_Parms ;
  265.                 VAR int_in : Int_In_Parms ; VAR int_out : Int_Out_Parms ;
  266.                 VAR pts_in : Pts_In_Parms ; VAR pts_out : Pts_Out_Parms ;
  267.                 translate : boolean ) ;
  268.       EXTERNAL ;
  269.  
  270.     BEGIN
  271.       int_in[0] := Line_Start;
  272.       int_in[1] := Line_End;
  273.       VDI_Call(108, 0, 0, 1, control, int_in, int_out, pts_in, pts_out, false);
  274.     END;
  275.  
  276.   FUNCTION Get_Height : integer ;
  277.  
  278.     TYPE
  279.       Ctrl_Parms      = ARRAY [ 0..11 ] OF integer ;
  280.       Int_In_Parms    = ARRAY [ 0..15 ] OF integer ;
  281.       Int_Out_Parms   = ARRAY [ 0..45 ] OF integer ;
  282.       Pts_In_Parms    = ARRAY [ 0..11 ] OF integer ;
  283.       Pts_Out_Parms   = ARRAY [ 0..11 ] OF integer ;
  284.  
  285.     VAR
  286.       control : Ctrl_Parms ;
  287.       int_in  : Int_In_Parms ;
  288.       int_out : Int_Out_Parms ;
  289.       pts_in  : Pts_In_Parms ;
  290.       pts_out : Pts_Out_Parms ;
  291.  
  292.     PROCEDURE VDI_Call( cmd, sub_cmd : integer ; nints, npts : integer ;
  293.                 VAR ctrl : Ctrl_Parms ;
  294.                 VAR int_in : Int_In_Parms ; VAR int_out : Int_Out_Parms ;
  295.                 VAR pts_in : Pts_In_Parms ; VAR pts_out : Pts_Out_Parms ;
  296.                 translate : boolean ) ;
  297.       EXTERNAL ;
  298.  
  299.     BEGIN
  300.       VDI_Call(131, 0, 0, 0, control, int_in, int_out, pts_in, pts_out, false);
  301.       Get_Height := pts_out[9] ;
  302.     END ;
  303.