home *** CD-ROM | disk | FTP | other *** search
- TYPE
- Seite = ARRAY [1..25,1..80] OF INTEGER;
- RegRec= RECORD CASE INTEGER OF
- 1:(AX,BX,CX,DX,BP,DI,SI,DS,ES,FL:INTEGER);
- 2:(AL,AH,BL,CL,CH,DL,DH:BYTE)
- END;
- VAR
- Screen : Seite ABSOLUTE $B800:$0000;
- CharType,WhereX,WhereY : INTEGER;
- Register : RegRec;
-
- FUNCTION ConIn : CHAR;
- BEGIN
- WITH Register DO
- BEGIN
- (* Hier wird noch das alte GotoXY *)
- (* benutzt, weil der Compiler das *)
- (* das neue noch nicht kennt *)
- GotoXY(WhereX,WhereY);
- IF Screen[WhereY,WhereX] = 0 THEN
- Screen [WhereX,WhereY] := $0F20;
- AX := $0700;
- MSDOS(Register);
- ConIn := Chr(AL)
- END;
- END;
-
- PROCEDURE ClrEol;
- BEGIN
- FillChar(Screen[WhereY,WhereX],
- (81-WhereX) SHL 1,0);
- END;
-
- PROCEDURE InsLine;
- BEGIN
- IF WhereY < 25 THEN
- Move(Screen[WhereY],Screen[Succ(WhereY)],
- (25-WhereY)*160);
- FillChar(Screen[25],160,0)
- END;
-
-
- PROCEDURE DelLine;
- BEGIN
- IF WhereY < 25 THEN
- Move(Screen[Succ(WhereY)],
- Screen[WhereY],(25-WhereY)*160);
- FillChar(Screen[25],160,0)
- END;
-
- PROCEDURE ClrScr;
- BEGIN
- FillChar(Screen,4000,0);
- WhereY := 1; WhereX := 1;
- END;
-
- PROCEDURE GotoXY (X,Y : INTEGER); (* das neue *)
- BEGIN
- WhereX := X; WhereY := Y
- END;
-
- PROCEDURE ConOut (CH : CHAR);
- BEGIN
- IF CH < ' ' THEN
- CASE CH OF
- ^M : WhereX := 1;
- ^J : WhereY := Succ(WhereY);
- ^G : BEGIN
- Sound(440); Delay(100); NoSound
- END;
- ^H:BEGIN
- WhereX := Pred(WhereX);
- IF WhereX < 1 THEN
- IF WhereY = 1 THEN WhereX := 1
- ELSE
- BEGIN
- WhereX := 80;
- WhereY := Pred(WhereY)
- END
- END
- END
- ELSE
- BEGIN
- Screen[WhereY,WhereX] := Ord(CH) OR CharType;
- WhereX := Succ(WhereX);
- END;
- IF WhereX > 80 THEN
- BEGIN
- WhereY := Succ(WhereY); WhereX := 1
- END;
- IF WhereY > 25 THEN
- BEGIN
- WhereY := 1; DelLine; WhereY := 25;
- END
- END;
-
- PROCEDURE LowVideo;
- BEGIN
- CharType := $0A00
- END;
-
- PROCEDURE NormVideo;
- BEGIN
- CharType := $0F00
- END;
-
- PROCEDURE InitContOut;
- BEGIN
- ConOutPtr := Ofs(ConOut);
- ConInPtr := Ofs(ConIn);
- NormVideo
- END;
-