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

# seg_fillchar

Fill segment with byte value

## Declaration

Source position: go32.pp line 125

`procedure seg_fillchar(`
`seg: Word;`
`ofs: LongInt;`
`count: LongInt;`
`c: Char`
`);`

## 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

seg_move |  | Move data between 2 locations
seg_fillword |  | Fill segment with word value
dosmemfillchar |  | Fill a region of DOS memory with a specific byte-sized value
dosmemfillword |  | Fill a region of DOS memory with a specific word-sized value
dosmemget |  | Copy data from DOS memory to the heap.
dosmemput |  | Copy data from the heap to DOS real mode memory
dosmemmove |  | Move data between 2 DOS real mode memory locations

## Example

    {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.

Documentation generated on: May 14 2021