Sign in Join
FPDoc Onlineexperiment

seg_fillchar procedure

In unit go32

Fill segment with byte value.

Declaration

pascal
procedure seg_fillchar(seg: Word; ofs: LongInt; count: LongInt; 
 c: AnsiChar)

Description

Sets a memory area to a specific value.

Parameters:

seg
selector to memory area.
ofs
offset to memory.
count
number of bytes to set.
c
byte data which is set.

Return values: None.

Notes: No range check is done in any way.

Errors

None.

See also

Example: vgasel

pascal
{This example demonstrates the use of the segment_to_descriptor()
function.

It switches to VGA mode 13h (320x200x256 color), creates a selector
to the memory (based at $A000:0000), clears this memory with color
15 (white) and waits until the enter key is pressed }

uses go32;

var
        vgasel : Word;
        r : trealregs;

begin
        { set VGA mode 13h }
        r.eax := $13; realintr($10, r);
        { allocate descriptor to VGA memory quickly; it could be done
        with allocate_ldt_descriptors() too, but we would have to
        initialize it by ourselves... unlike segment_to_descriptor()
        which automatically sets the limit and the base address
        correctly }
        vgasel := segment_to_descriptor($A000);
        { simply fill the screen memory with color 15 }
        seg_fillchar(vgasel, 0, 64000, #15);
        { wait for a return press }
        readln;
        { back to text mode }
        r.eax := $3; realintr($10, r);
        { don't deallocate vgasel, that can't be done }
end.

An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.