Seite 1 von 1
Speicherbereich mit Werten füllen ...
Verfasst: 08.10.2005 17:56
von PureLust
Gibt es einen PB-Befehl, um einen Speicherbereich sehr schnell mit einem bestimmten Long-Wert zu füllen?
Bisher konnte ich leider nichts in dieser Richtung finden.
Verfasst: 08.10.2005 18:12
von andi256
PokeL(*SpeicherBuffer, Nummer.l)
aus der Hilfe
Andi256
Verfasst: 08.10.2005 18:26
von PureLust
Hallo Andi256, ...
ich hab mich wohl leider etwas missverständlich ausgedrückt.
Ich meinte nicht, einen Long-Wert in einen einzelne 4Byte Speicherbereich zu schreiben, sondern einen Bereich von mehreren KBytes mit diesem Wert zu füllen.
Also sowas wie
FillMemoryLong(Startadresse, Länge, Wert.l).
(Denkbar wären natürlich auch: FillMemoryWord() und FillMemoryByte().)
Sowas wäre ja vermutlich recht simpel per Inline-Assembler zu realisieren - nur leider ist mein Assembler seit der Amigazeit sehr eingerostet.
Ganz abgesehen davon, dass das noch der gute alte 68000er ASM war.

Verfasst: 08.10.2005 18:36
von ts-soft
Wie wäre es mit FillMemory_()
The FillMemory function fills a block of memory with a specified value.
VOID FillMemory (
PVOID Destination, // pointer to block to fill
DWORD Length, // size, in bytes, of block to fill
BYTE Fill // the byte value with which to fill
);
Parameters
Destination
Points to the starting address of the block of memory to fill.
Length
Specifies the size, in bytes, of the block of memory to fill.
Fill
Specifies the byte value with which to fill the memory block.
Return Values
This function has no return value.
//Nachtrag: Ich sehe gerade, ist ja nur für Byte, du brauchst ja long

Verfasst: 08.10.2005 20:05
von Sylvia
@PureLust:
Guckst du
hier
Verfasst: 09.10.2005 01:29
von al90
Oder man guckt im CodeArchiv nach unter Memory. Da sind schon seit
graumer zeit 3 ASM-Procs (.b .w .l) vorhanden.
@ts-soft
FillMemory() scheint nicht zu funzen. Die API scheint von PB nicht
unterstützt zu werden?!
Verfasst: 09.10.2005 01:43
von ts-soft
al90 hat geschrieben:@ts-soft
FillMemory() scheint nicht zu funzen. Die API scheint von PB nicht
unterstützt zu werden?!
Code: Alles auswählen
*MEM = AllocateMemory(8)
FillMemory_(*MEM, 8, 60)
For I = 0 To 7
Debug PeekB(*MEM + I)
Next
FreeMemory(*MEM)

Verfasst: 09.10.2005 03:06
von al90
Hey hast recht, klappt tatsächlich.
Ich war etwas iritiert weil jaPBe mir keine Syntax anzeigte und mit F1
die API-Hilfe nicht aufgerufen wurde.