[Overview][Constants][Types][Procedures and functions][Variables][Index] Reference for unit 'go32' (#rtl)

dosmemfillchar

Fill a region of DOS memory with a specific byte-sized value

Declaration

Source position: go32.pp line 182

const dosmemfillchar: procedure( = ;

  seg: Word;

  ofs: Word;

  count: LongInt;

  c: Char

)

Description

Sets a region of dos memory to a specific byte value.

Parameters:

seg
real mode segment.
ofs
real mode offset.
count
number of bytes to set.
c
value to set memory to.

Notes: No range check is performed.

Errors

None.

See also

dosmemput

  

Copy data from the heap to DOS real mode memory

dosmemget

  

Copy data from DOS memory to the heap.

dosmemmove

  

Move data between 2 DOS real mode memory locations

dosmemfillword

  

Fill a region of DOS memory with a specific word-sized value

seg_move

  

Move data between 2 locations

seg_fillchar

  

Fill segment with byte value

seg_fillword

  

Fill segment with word value

Example

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.
The latest version of this document can be found at lazarus-ccr.sourceforge.net.