home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / grafik / grpower / manual.doc next >
Encoding:
Text File  |  1990-09-23  |  11.2 KB  |  417 lines

  1. GRAPHIC-POWER 2.1
  2.  
  3. Copyright (c) 8/1990 bei Sven Rösner,
  4.                          Carl-Orff-Str.22,
  5.                          8221 Traunwalchen
  6.  
  7. 01.08.90 :  GRAPHIC POWER 1.0 ist eine TURBO-PASCAL-UNIT, die es
  8.             ermöglicht, im MCGA-Modus (320x200 mit 256 Farben)
  9.             einer VGA-Karte direkt zu programmieren.
  10.  
  11. 23.08.90 :  GRAPHIC POWER 2.0 stellt zusätzlich auch Routinen zur
  12.             Verfügung, mit denen es möglich ist, auf jeder
  13.             VGA-Karte in einer Auflösung von 320x400 mit 256
  14.             Farben zu programmieren.
  15.  
  16. 23.09.90 :  GRAPHIC POWER 2.11 stellt neue Routinen zur Verfügung:
  17.  
  18.             - FillBox_Hi
  19.             - Box_3d
  20.             - Box_3d_Hi
  21.  
  22.             Außerdem wurde die Anleitung leicht verändert.
  23.  
  24. Hardwarevoraussetzung: VGA-Karte oder MCGA-Karte
  25. Softwarevoraussetzung: GRAPHIC-POWER wurde unter Turbo Pascal 5.5
  26.                        entwickelt, da es aber kein OOPS verwendet
  27.                        läuft es auch mit Turbo Pascal 5.0,
  28.                        wahrscheinlich auch mit Turbo Pascal 4.0
  29.  
  30.  
  31. GRAPHIC POWER ist ein SHAREWARE-Produkt. Das bedeutet, daß Sie
  32. GRAPHIC POWER zu Testzwecken kopieren und anwenden dürfen.
  33. Falls Sie GRAPHICS POWER regelmäßig benutzen wollen, müssen Sie
  34. sich registrieren lassen.
  35. Als registrierter User dürfen Sie GRAPHIC POWER auch verändern.
  36. Eine Weitergabe einer veränderten Version von GRAPHIC POWER ist
  37. jedoch verboten.
  38. Die einmalige Registriergebühr für  GRAPHIC-POWER 2.1 beträgt
  39. 29 DM inkl. MwSt. und Porto.
  40.  
  41. Registrierte User erhalten eine Original-Version von GRAPHIC
  42. POWER mit deutscher Anleitung und den Source-Code des VGA-DEMOS
  43. und der Unit GRAPHIC POWER 2.1.
  44. Außerdem erhalten registrierte User schriftliche Unterstützung
  45. bei Problemen und Fragen bezüglich der Unit.
  46.  
  47.  
  48.  
  49. Kurzes Beispiel-Programm:
  50.  
  51. program TEST;
  52.  
  53. uses power,crt;
  54.  
  55. var c:char;
  56.  
  57. BEGIN
  58.  
  59.   init;                     {Schaltet in den MCGA-MODUS}
  60.   line(20,20,300,180,1,1);  {Zeichnet bunte Linie quer über den Bildschirm}
  61.   c := readkey;             {Wartet auf Tasten-Druck}
  62.   exit;                     {Schaltet zurück in den Text-Modus}
  63.  
  64. END.
  65.  
  66.  
  67.  
  68. Folgende Prozeduren stellt GRAPHIC POWER 2.0 zur Verfügung:
  69.  
  70.  
  71. Alle Prozeduren, die mit "_Hi" enden, sind für den Spezial-Modus
  72. mit der Auflösung von 320x400 mit 256 Farben.
  73. Alle anderen Prozeduren funktionieren nur im "normalen" VGA-Modus
  74. mit der Auflösung von 320x200 mit 256 Farben.
  75. Ausnahme hierfür sind alle Befehle, die die Palette betreffen:
  76.  
  77.      SetColor,
  78.      ReadColor,
  79.      SetPalette,
  80.      ReadPalette,
  81.      Animate
  82.  
  83. und außerdem der Befehl:
  84.  
  85.      Exit
  86.  
  87. Diese Befehle funktionieren in beiden Modi.
  88.  
  89. Kurz-Übersicht nach Funktionen geordnet:
  90.  
  91.  
  92. Prozeduren:
  93.  
  94. Init;            Schaltet in den MCGA-MODUS 320x200 mit 256 Farben
  95. Init_Hi;         Schaltet in den MCGA-MODUS 320x400 mit 256 Farben
  96.                  nur für den 320x400x256-Modus
  97. Exit;            Verläßt den MCGA-Modus mit 256 Farben
  98.  
  99. Box_3d           Erzeugt räumlichen Quader
  100. Box_3d_Hi        Erzeugt Quader im 320x400x256-Modus
  101. ColorBox         Erzeugt mehrfarbiges Rechteck
  102. ColorBox_Hi      Erzeugt mehrfarbiges Rechteck im 320x400x256-Modus
  103. DrawBox          Zeichenet ein Rechteck
  104. DrawBox_Hi       Zeichenet ein Rechteck im 320x400x256-Modus
  105. FillBox          Erzeugt einfarbiges Rechteck
  106. FillBox_Hi       Erzeugt einfarbiges Rechteck im 320x400x256-Modus
  107.  
  108. Locate           Setzt Cursor an Stelle x,y
  109. Line             Zeichnet eine Linie
  110. Line_Hi          Zeichnet eine Linie im 320x400x256-Modus
  111. Plot             Zeichnet einen Punkt
  112. Plot_Hi          Zeichnet einen Punkt im 320x400x256-Modus
  113. Circle           Erzeugt Kreis
  114. Circle_Hi        Erzeugt Kreis im 320x400x256-Modus
  115.  
  116. Print            Schreibt Text auf Grafik-Bildschirm
  117. Cls              Löscht Bildschirm, Füllt Birldschirm mit einer Farbe
  118. Cls_Hi           Löscht Bildschirm, Füllt Birldschirm mit einer Farbe
  119.  
  120. CopyBox          Kopiert Bildschirminhalte
  121. MoveBox          Verschiebt Bildschirminhalte
  122. LoadScreen       Liest Bildschirminhalt von Diskette
  123. SaveScreen       Speichert Bildschirminhalt auf Diskette ab
  124.  
  125. ReadColor        Liest Farbwerte eine Farbe
  126. ReadPalette      Speichert die ganze Palette in einer Puffervariablen
  127. SetColor         Setzt Farbwerte einer Farbe
  128. SetPalette       Setzt neue Palette
  129. Animate          Erzeugt Farbverläufe / Animationen
  130.  
  131. Funktionen:
  132.  
  133. Check            Liefert TRUE, wenn VGA-Karte installiert
  134.                  Liefert FALSE, wenn keine VGA-Karte installiert ist
  135. CursorX          Liefert X-Koordinate des Cursors
  136. CursorY          Liefert Y-Koordinate des Cursors
  137. Getcolor         Liefert Farbewert an X,Y
  138.  
  139.  
  140.  
  141. PROCEDURE Animate (start, ende);
  142.  
  143.      START: Erstes Farb-Register
  144.      ENDE : Letztes Farb-Register
  145.  
  146.      Die Inhalte der Farbregister zwischen START und ENDE werden
  147.      jeweils um 1 verschoben, so daß alle Farben durchwechseln.
  148.      Dadurch kommt es zu einer fließenden Bewegung. Der Vorgang
  149.      wird dann abgebrochen, wenn eine Taste gedrückt wurde.
  150.  
  151. PROCEDURE Bar_3d (x1,y1,x2,y1,col,flag : word);
  152.  
  153.      Zeichnet einen dreidimensionalen Quader.
  154.  
  155.      X1,Y1   : Linke, obere  Ecke
  156.      X2,Y2   : Rechte, untere Ecke
  157.      COL     : Farbe
  158.      FLAG      = 0 : Quader ist einförmig;
  159.                = 1 : Quader mehrfarbig mit senkrechten Linien
  160.                = 2 : Quader mehrfarbig mit waagrechten Linien
  161.  
  162. PROCEDURE Bar_3d_Hi (x1,y1,x2,y1,col,flag : word);
  163.  
  164.      Siehe Bar_3d_Hi, für den hochauflösenden Modus 320x400
  165.  
  166.  
  167. PROCEDURE Circle(x,y,rx,ry,col,flag : word);
  168.  
  169.      Zeichnet einen Kreis.
  170.  
  171.      X,Y     : Kreismittelpunkt
  172.      RX      : Radius in X-Richtung
  173.      RY      : Radius in Y-Rechtung
  174.      FLAG = 0: Der Kreis wird einfarbig in der Farbe COL
  175.                gezeichnet.
  176.      FLAG = 1: Der Kreis wird mehrfarbig. Es wird mit der Farbe
  177.                COL begonnen. Die Farbe wird dann immer um 1
  178.                erhöht.
  179.  
  180.  
  181. PROCEDURE Circle_Hi(x,y,rx,ry,col,flag : word);
  182.  
  183.     Siehe Circle, für den hochauflösenden Modus 320x400
  184.  
  185.  
  186. PROCEDURE Cls (col : byte);
  187.  
  188.      Füllt den Bildschirm mit der angegebenen Farb-Nummer.
  189.  
  190.  
  191. PROCEDURE Cls_Hi (col : byte);
  192.  
  193.      Siehe CLS, für den hochauflösenden Modus 320x400
  194.  
  195.  
  196. PROCEDURE ColorBox(x1,y1,x2,y2,col,sw : word);
  197.  
  198.      Zeichnet ein Rechteck und füllt dieses mehrfarbig. Es wird
  199.      mit der Farbe COL begonnen. Dann wird der Farbwert immer um
  200.      1 erhöht.
  201.  
  202.      SW = 0: senkrechte Linien
  203.      SW = 1: waagrechte Linien
  204.      X1,Y1 : linke, obere Ecke
  205.      X2,Y2 : rechte, untere Ecke
  206.      COL   : erster Farbwert
  207.  
  208.  
  209. PROCEDURE ColorBox_Hi(x1,y1,x2,y2,col,sw : word);
  210.  
  211.     Siehe ColorBox, für den hochauflösenden Modus 320x400
  212.  
  213.  
  214. PROCEDURE CopyBox (sx,sy,b,h,dx,dy : word);
  215.  
  216.      Kopiert einen rechteckigen Bildschirmausschnitt.
  217.  
  218.      SX,SY : X,Y-Koordinate des Bildschirmausschnittes
  219.      B,H   : Breite und Höhe des Bildschirmausschnittes
  220.      DX,DY : Zielkoordinaten
  221.  
  222.  
  223. PROCEDURE DrawBox (x1,y1,x2,y2,col,flag : word);
  224.  
  225.      Zeichnet ein Rechteck.
  226.  
  227.      X1,Y1 : linke, obere Ecke
  228.      X2,Y2 : rechte, untere Ecke
  229.      COL   : Farbe
  230.      FLAG  : Wie bei der PROZEDURE Line.
  231.  
  232.  
  233. PROCEDURE DrawBox_Hi (x1,y1,x2,y2,col,flag : word);
  234.  
  235.      Siehe Line, für den hochauflösenden Modus 320x400
  236.  
  237.  
  238. PROCEDURE Exit;
  239.  
  240.      Schaltet zurück in den Text-Modus.
  241.  
  242.  
  243. PROCEDURE FillBox (x1,y1,x2,y2,col  : word);
  244.  
  245.      Zeichnet ein Rechteck und füllt dieses mit der Farbe COL
  246.      aus.
  247.  
  248.      X1,Y1 : linke, obere Ecke
  249.      X2,Y2 : rechte, untere Ecke
  250.      COL   : Farbe
  251.  
  252. PROCEDURE FillBox_Hi (x1,y1,x2,y2,col : word);
  253.  
  254.      Siehe FILLBOX_HI, für den hochauflösenden Modus 320x400
  255.  
  256.  
  257. PROCEDURE Init;
  258.  
  259.      Schaltet in den MCGA-Modus (320x200x256);
  260.  
  261.      In der Share-Version erscheint hier immer ein Titel-Screen.
  262.      Dieser Titel-Screen ist bei der Voll-Version nicht mehr
  263.      vorhanden.
  264.  
  265. PROCEDURE Init_Hi;
  266.  
  267.      Schaltet in den Spezial MCGA-Modus (320x400x256);
  268.  
  269.      In der Share-Version erscheint hier immer ein Titel-Screen.
  270.      Dieser Titel-Screen ist bei der Voll-Version nicht mehr
  271.      vorhanden.
  272.  
  273.  
  274. PROCEDURE Line (x1,y1,x2,y2,col,flag : word);
  275.  
  276.      Zeichnet eine Linie von X1,Y1 nach X2,Y2.
  277.  
  278.      X1,Y2: Anfangskoodrdinaten
  279.      X2,Y2: Endkoordinaten
  280.      COL  : Farbe
  281.      FLAG : Wird hier 0 angegeben, so wird die ganze Linie in der
  282.             Farbe COL gezeichnet.
  283.             Wird hier 1 angegeben, so wird die Linie bunt. Die
  284.             Linie wird mit der Farbe COL begonnen. Dann wird bei
  285.             jedem gezeichnetem Einzelpunkt der Linie die Farbe um
  286.             1 erhöht.
  287.  
  288.  
  289. PROCEDURE Line_Hi (x1,y2,x2,y2,col,flag : byte);
  290.  
  291.      Siehe Line, für den hochauflösenden Modus 320x400
  292.  
  293.  
  294. PROCEDURE LoadScreen (Name : string);
  295.  
  296.      NAME: Name der Datei
  297.  
  298.      Lädt den abgespeicherten Bildschirm-Inhalt von Diskette.
  299.  
  300.  
  301. PROCEDURE Locate (X,Y : byte);
  302.  
  303.      Setzt den Cursor an die Bildschirmposition x,y.
  304.  
  305.      X: 0-79
  306.      Y: 0-24
  307.  
  308.  
  309. PROCEDURE MoveBox (sx,sy,b,h,dx,dy : word);
  310.  
  311.      Wie COPYBOX, nur hier wird der ursprüngliche
  312.      Bildschirmausschnitt gelöscht.
  313.  
  314.  
  315. PROCEDURE Plot (x,y : word; col : byte);
  316.  
  317.      Setzt an der Position X,Y einen Punkt in der Farbe COL.
  318.  
  319.      x   : 0 - 319
  320.      y   : 0 - 199
  321.      col : 0 - 255
  322.  
  323.  
  324. PROCEDURE Plot_Hi (x,y : word; col : byte);
  325.  
  326.      Siehe Plot, für den hochauflösenden Modus 320x400
  327.  
  328.  
  329. PROCEDURE Print (text : string; col,flag : byte);
  330.  
  331.      Druckt den String TEXT auf dem Bildschirm aus. Wird FLAG auf
  332.      0 gesetzt, wird der ganze Text in der Farbe COL ausgegeben.
  333.      Wird FLAG auf 1 gesetzt, wird nach jedem Buchstaben der
  334.      Farbewert um 1 erhöht.
  335.  
  336.  
  337. PROCEDURE ReadColor (nr : word; var red,green,blue : word);
  338.  
  339.      Liest Farbwerte eine Farbe.
  340.  
  341.      NR  : Nummer der Farbe, die gelesen werden soll.
  342.      RED,GREEN und BLUE enthalten nach dem Aufruf dann die
  343.      Farbwerte der Farbe.
  344.  
  345.  
  346. PROCEDURE ReadPalette (startnr : integer;
  347.                        var buf : colorregister;
  348.                             nr : integer);
  349.  
  350.      Liest aktuelle Palette und speichert sie in der Variablen
  351.      BUF.
  352.  
  353.      STARTNR : Start-Nummer.
  354.      NR      : Anzahl der Farben.
  355.  
  356.  
  357. PROCEDURE SaveScreen (Name : string);
  358.  
  359.      NAME: Name der Datei
  360.  
  361.      Speichert den Bildschirm-Inhalt auf Diskette ab.
  362.  
  363.  
  364. PROCEDURE SetColor (nr,red,green,blue : word);
  365.  
  366.      Setzt Farbwerte einer Farbe neu.
  367.  
  368.      NR   : Nummer der Farbe, die geändert werden soll.
  369.      RED  : Rot--Anteil der Farbe (0 - 63)
  370.      GREEN: Grün-Anteil          (0 - 63)
  371.      BLUE : Blau-Anteil          (0 - 63)
  372.  
  373.  
  374. PROCEDURE SetPalette  (startnr : integer;
  375.                            buf : colorregister;
  376.                             nr : integer);
  377.  
  378.      Setzt die in BUF gespeicherte Palette.
  379.  
  380.      STARTNR : Start-Nummer.
  381.      NR      : Anzahl der Farben.
  382.  
  383.  
  384.  
  385.  
  386. Folgende Funktionen stellt GRAPHIC POWER 2.0 zur Verfügung:
  387.  
  388. FUNCTION  Ceck : byte;
  389.  
  390.      Liefert TRUE, wenn eine VGA-Karte im Computer installiert
  391.      ist.
  392.      Liefert FALSE, wenn keine VGA-Karte vorhanden ist.
  393.  
  394.  
  395. FUNCTION  CursorX : byte;
  396.  
  397.      Liefert X-Koordinate des Cursors.
  398.  
  399.  
  400. FUNCTION  CursorY : byte;
  401.  
  402.      Liefert Y-Koordinate des Cursors.
  403.  
  404.  
  405. FUNCTION  Getcolor (x,y : integer) : integer;
  406.  
  407.      Liefert Farbwert des Punktes mit den Koordinaten X,Y. 
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.