home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1991
/
07_08
/
tricks
/
swapdemo.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-02-25
|
1KB
|
53 lines
(* ------------------------------------------------------ *)
(* SWAPDEMO.PAS *)
(* Kleine Demo zur Unit MEMOSWAP *)
(* ------------------------------------------------------ *)
PROGRAM SwapDemo;
USES Crt, MemoSwap;
CONST
ESC_Key = #27;
VAR
VideoMode : BYTE ABSOLUTE $40:$49;
ActiveScreen : POINTER;
SavedScreen : ARRAY [1..4000] OF BYTE;
s : STRING;
c : CHAR;
Restore : BOOLEAN;
FUNCTION ReverseString(s : String) : String;
VAR
i : Byte;
BEGIN
FOR i := 1 TO Length(s) DIV 2 DO
SwapByte(s[i], s[Length(s)+1-i]);
{ Gleichwertig : SwapMem(@s[i],@s[Length(s)+1-i],1) }
ReverseString := s;
END;
BEGIN
IF VideoMode = 7 THEN
ActiveScreen := Ptr($B000, 0)
ELSE
ActiveScreen := Ptr($B800,0);
s := 'Dieser Text meint nur sich selbst.';
WriteLn(s);
WriteLn(ReverseString(s));
Move(Ptr(CSeg,0)^, SavedScreen, 4000);
Restore := False;
c := ReadKey;
WHILE c <> ESC_Key DO BEGIN
SwapMem(@SavedScreen, ActiveScreen, 4000);
Restore := NOT Restore;
IF c = #0 THEN c := ReadKey;
c := ReadKey
END;
IF Restore THEN
SwapMem(@SavedScreen, ActiveScreen, 4000);
END.
(* ------------------------------------------------------ *)
(* Ende von SWAPDEMO.PAS *)