home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / pascal / vdl020d.zip / VOUTOCRT.DOC < prev    next >
Text File  |  1993-04-14  |  4KB  |  346 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6. { VOutOCRT Copyright 1991,1992 Visionix ALL RIGHTS RESERVED }
  7.  
  8. Procedure OpCRTOutDriverProc( ODP : POutDriverPacket );
  9.  
  10. Type
  11.  
  12.   TCharBuff = Array[1..32768] of CHAR;
  13.   PCharBuff = ^TCharBuff;
  14.  
  15. Var
  16.  
  17.    KeyBufHead : INTEGER absolute $0000:$041A;
  18.    KeyBufTail : INTEGER absolute $0000:$041C;
  19.  
  20.    IData      : POutDriverIData;
  21.  
  22.    Z          : INTEGER;
  23.  
  24. BEGIN
  25.  
  26.   IData := ODP^.ID;
  27.  
  28.  
  29.   If ODP^.Status = 0 Then
  30.   BEGIN
  31.  
  32.     Case ODP^.Func Of
  33.  
  34.       ODF_DriverNew:
  35.       BEGIN
  36.  
  37.         IF @ODP^.OutDriverProc = @OpCRTOutDriverProc Then
  38.         BEGIN
  39.  
  40.           New( Idata );
  41.  
  42.           IData^.Name    := ODP^.Name^;
  43.           IData^.Off     := 0;
  44.  
  45.           ODP^.Status := ODS_Install+ODS_Changed;
  46.  
  47.           ODP^.ID := IData;
  48.  
  49.         END;
  50.  
  51.       END;
  52.  
  53.       {----}
  54.  
  55.       ODF_DriverOff:
  56.       BEGIN
  57.  
  58.         If ODP^.Name^ = IData^.Name Then
  59.         BEGIN
  60.  
  61.           Inc( Idata^.Off );
  62.  
  63.         END;
  64.  
  65.  
  66.       END;
  67.  
  68.       {----}
  69.  
  70.       ODF_DriverOn:
  71.       BEGIN
  72.  
  73.         If ODP^.Name^ = IData^.Name Then
  74.         BEGIN
  75.  
  76.           If Idata^.Off <> 0 Then
  77.             Dec( Idata^.Off );
  78.  
  79.         END;
  80.  
  81.       END;
  82.  
  83.       {----}
  84.  
  85.       ODF_DriverDispose:
  86.       BEGIN
  87.  
  88.         If ODP^.Name^ = IData^.Name Then
  89.         BEGIN
  90.  
  91.           {RemoveFromOutDriverStack }
  92.  
  93.           Dispose( IData );
  94.  
  95.         END;
  96.  
  97.       END;
  98.  
  99.       {----}
  100.  
  101.       ODF_WriteChar:
  102.       BEGIN
  103.  
  104.         Write( ODP^.Ch );
  105.  
  106.       END;
  107.  
  108.       {----}
  109.  
  110.       ODF_WriteBlock:
  111.       BEGIN
  112.  
  113.         For Z:=1 to ODP^.Size Do
  114.           Write( PCharBuff( ODP^.Buff )^[Z] );
  115.  
  116.       END;
  117.  
  118.       {----}
  119.  
  120.       ODF_WriteVert:
  121.       BEGIN
  122.  
  123.         For Z:=1 to ODP^.Size Do
  124.         BEGIN
  125.  
  126.           Write( PCharBuff( ODP^.Buff )^[Z] );
  127.  
  128.           If Z<>ODP^.Size Then
  129.             OpCrt.GotoXY( OpCrt.WhereX-1, OpCrt.WhereY+1 );
  130.  
  131.         END;
  132.  
  133.       END;
  134.  
  135.       {----}
  136.  
  137.       ODF_ClrEOL:
  138.       BEGIN
  139.  
  140.         OpCrt.ClrEOL;
  141.  
  142.       END;
  143.  
  144.       {----}
  145.  
  146.       ODF_ClrScr:
  147.       BEGIN
  148.  
  149.         OpCrt.ClrScr;
  150.  
  151.       END;
  152.  
  153.       {----}
  154.  
  155.       ODF_DelLine:
  156.       BEGIN
  157.  
  158.         OpCrt.DelLine;
  159.  
  160.       END;
  161.  
  162.       {----}
  163.  
  164.       ODF_InsLine:
  165.       BEGIN
  166.  
  167.         OpCrt.InsLine;
  168.  
  169.       END;
  170.  
  171.       {----}
  172.  
  173.       ODF_GotoXY:
  174.       BEGIN
  175.  
  176.         OpCrt.GotoXY( ODP^.X1, ODP^.Y1 );
  177.  
  178.       END;
  179.  
  180.       {----}
  181.  
  182.       ODF_Window:
  183.       BEGIN
  184.  
  185.         OpCrt.Window( ODP^.X1, ODP^.Y1,
  186.                       ODP^.X2, ODP^.Y2  );
  187.  
  188.       END;
  189.  
  190.       {----}
  191.  
  192.       ODF_ColorText:
  193.       BEGIN
  194.  
  195.         OpCrt.TextColor( ODP^.TheColor );
  196.  
  197.       END;
  198.  
  199.       {----}
  200.  
  201.       ODF_ColorBack:
  202.       BEGIN
  203.  
  204.         OpCrt.TextBackGround( ODP^.TheColor );
  205.  
  206.       END;
  207.  
  208.       {----}
  209.  
  210.       ODF_GetWin:
  211.       BEGIN
  212.  
  213.  
  214.         ODP^.X1 := Lo( OpCrt.WindMin );
  215.         ODP^.Y1 := Hi( OpCrt.WindMin );
  216.         ODP^.X2 := Lo( OpCrt.WindMax );
  217.         ODP^.Y2 := Lo( OpCrt.WindMax );
  218.  
  219.         ODP^.Status := ODS_Changed;
  220.  
  221.       END;
  222.  
  223.       {----}
  224.  
  225.       ODF_GetAttr:
  226.       BEGIN
  227.  
  228.         ODP^.Attr := TextAttr;
  229.  
  230.         ODP^.Status := ODS_Changed;
  231.  
  232.       END;
  233.  
  234.       {----}
  235.  
  236.       ODF_SetAttr:
  237.       BEGIN
  238.  
  239.         TextAttr := ODP^.Attr;
  240.  
  241.       END;
  242.  
  243.       {----}
  244.  
  245.       ODF_GetXY:
  246.       BEGIN
  247.  
  248.         ODP^.X1 := OpCrt.WhereX;
  249.         ODP^.Y1 := OpCrt.WhereY;
  250.  
  251.         ODP^.Status := ODS_Changed;
  252.  
  253.       END;
  254.  
  255.       {----}
  256.  
  257.       ODF_GetNumScreens:
  258.       BEGIN
  259.  
  260.         ODP^.Screens := 8;
  261.  
  262.         ODP^.Status := ODS_Changed;
  263.  
  264.       END;
  265.  
  266.       {----}
  267.  
  268.       ODF_GoScreen:
  269.       BEGIN
  270.  
  271.       END;
  272.  
  273.       {----}
  274.  
  275.       ODF_SetCursorType:
  276.       BEGIN
  277.  
  278.  
  279.       END;
  280.  
  281.       {----}
  282.  
  283.       ODF_DrawHLine:
  284.       BEGIN
  285.  
  286.  
  287.  
  288.       END;
  289.  
  290.       {----}
  291.  
  292.       ODF_DrawVLine:
  293.       BEGIN
  294.  
  295.  
  296.       END;
  297.  
  298.       {----}
  299.  
  300.       ODF_DrawHLine:
  301.       BEGIN
  302.  
  303.  
  304.  
  305.       END;
  306.  
  307.       {----}
  308.  
  309.       ODF_DrawBox:
  310.       BEGIN
  311.  
  312.  
  313.  
  314.       END;
  315.  
  316.       {----}
  317.  
  318.       ODF_ReadChar:
  319.       BEGIN
  320.  
  321.  
  322.  
  323.       END;
  324.  
  325.       {----}
  326.  
  327.       ODF_ReadAttr:
  328.       BEGIN
  329.  
  330.  
  331.  
  332.       END;
  333.  
  334.       {----}
  335.  
  336.     Else { Case Func Of }
  337.  
  338.  
  339.     END;
  340.  
  341.   END; { If ODP^.Status = 0 }
  342.  
  343. END;
  344.  
  345. {--------------------------------------------------------------------------}
  346.