home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* ERGUNIT.PAS *)
- (* (c) 1989 Achim Bergmeister & TOOLBOX *)
- (* ------------------------------------------------------ *)
- UNIT ErgUnit;
-
- INTERFACE
-
- USES Crt, Dos;
-
- TYPE
- s80 = STRING[80];
-
- PROCEDURE Invers;
- PROCEDURE Hell;
- PROCEDURE Normal;
- PROCEDURE Beep;
- PROCEDURE c_off;
- PROCEDURE c_on;
- PROCEDURE Wrtxy(x, y : BYTE; s : s80);
- PROCEDURE Rahmen(x1, y1, x2, y2, art : INTEGER;
- titel : s80);
-
- IMPLEMENTATION
-
- TYPE
- bildschirm = ARRAY [1..25, 1..80] OF
- RECORD
- ch : CHAR; attr : BYTE;
- END;
- VAR
- screen : ^bildschirm;
- Regs : Registers;
-
- PROCEDURE Invers; BEGIN textattr := 112; END;
- PROCEDURE Hell; BEGIN textattr := 15; END;
- PROCEDURE Normal; BEGIN textattr := 7; END;
-
- PROCEDURE Beep;
- BEGIN Sound(1000); Delay(50); NoSound; END;
-
- PROCEDURE c_off; (* Cursor aus *)
- BEGIN
- Regs.ax := 1 SHL 8;
- Regs.cx := 48 SHL 8;
- Intr($10, Regs);
- END;
-
- PROCEDURE c_on; (* Cursor ein *)
- BEGIN
- Regs.ax := 1 SHL 8;
- Regs.cx := 12 SHL 8 + 13;
- Intr($10, Regs);
- END;
-
- PROCEDURE Wrtxy(x, y : BYTE; s : s80);
- VAR
- i : BYTE;
- BEGIN
- Dec(x);
- FOR i := 1 TO Length(s) DO BEGIN
- screen^[y,x+i].ch := s[i];
- screen^[y,x+i].attr := textattr;
- END;
- END;
-
- PROCEDURE Rahmen(x1, y1, x2, y2, art : INTEGER;
- titel : s80);
- VAR
- i : BYTE; k : STRING[6];
- BEGIN
- CASE art of
- 1: k := '┌┐└┘─│';
- 2: k := '╔╗╚╝═║';
- END;
- Wrtxy(x1, y1, k[1]);
- FOR i := x1 + 1 TO x2 - 1 DO Wrtxy(i, y1, k[5]);
- Wrtxy(x2, y1, k[2]); Wrtxy(x1, y2, k[3]);
- FOR i := x1 + 1 TO x2 - 1 DO Wrtxy(i, y2, k[5]);
- Wrtxy(x2, y2, k[4]);
- FOR i := y1 + 1 TO y2 - 1 DO BEGIN
- Wrtxy(x1, i, k[6]); Wrtxy(x2, i, k[6]);
- END;
- IF (titel <> '') AND (Length(titel) < x2 -x1) THEN BEGIN
- Invers;
- Wrtxy(x1 + ((x2-x1-Length(titel)) DIV 2)+1,y1,titel);
- Normal;
- END;
- END;
-
- BEGIN
- IF Mem[$40:$49] = 7 THEN Screen := Ptr($B000, 0)
- ELSE Screen := Ptr($B800, 0);
- END.
- (* ------------------------------------------------------ *)
- (* Ende von ERGUNIT.PAS *)