Procedure dosmemfillchar (seg, ofs : Word; count : Longint; c : char) ;
Sets a region of DOS memory to a specific byte value
Parameters:
Return values: none
Notes: No range check is performed.
none
dosmemput, dosmemget, dosmemmovedosmemmove, dosmemfillword, seg_move, seg_fillchar, seg_fillword
Program textmess;
uses crt, go32;
const columns = 80;
rows = 25;
screensize = rows*columns*2;
text = '! Hello world !';
var textofs : Longint;
save_screen : array[0..screensize-1] of byte;
curx, cury : Integer;
begin
randomize;
dosmemget($B800, 0, save_screen, screensize);
curx := wherex; cury := wherey;
gotoxy(1, 1); Write(text);
textofs := screensize + length(text)*2;
dosmemmove($B800, 0, $B800, textofs, length(text)*2);
dosmemfillchar($B800, 0, screensize, #0);
while (not keypressed) do
begin
dosmemfillchar($B800,
textofs + random(length(text))*2 + 1,
1, char(random(255)));
dosmemmove($B800, textofs, $B800,
random(columns)*2+random(rows)*columns*2,
length(text)*2);
delay(1);
end;
readkey;
readkey;
dosmemput($B800, 0, save_screen, screensize);
gotoxy(curx, cury);
end.