Real-Modus von windows


So erstellen Sie Real-Modus-low-Memory-Zeigern.
Autor: LEOPOLDO SALDANHA

{Hier ist der Code, den ich habe Ihnen versprochen. Es funktioniert schön. Sie können lesen
Jeder Teil der Real-Modus-Speichermangel damit.}
Funktion AllocRealModePointer (Var P: Zeiger; Größe: LongInt): boolean;
var
Selektor,
Basis: Wort;
LinearBase: Longint;
beginnen
Ergebnis: = False;
LinearBase: = MakeLong(0,hiword(longint(p)) Shr 12) +
HIWORD(longint(P)) Shl 4 + loword(longint(P));
{20-Bit-Adresse in eine 32-Bit konvertiert}
{d.h. $ffff: 0006 in $000ffff6}
Selektor: = AllocSelector(DSeg); {DSeg Selector Eigenschaften kopiert}
Basis: = SetSelectorBase (Selector, LinearBase);
SetSelectorLimit (Selector, Größe);

Wenn (Selector <> 0) und (Basis <> 0) dann beginnen
P: = Ptr (Selector, 0);
Ergebnis: = True;
Ende;
Ende;
Funktion FreeRealModePointer (Var p: Zeiger): boolean;
var
Fr: Word;
beginnen
Fr: = FreeSelector(hiword(longint(p)));
{Seletor ist am hiword(p)}
Wenn (fr = 0) {ok} dann beginnen
p: = Nil;
Ergebnis: = True;
anderes Ende beginnen {fehlgeschlagen}
Ergebnis: = False;
Ende;
Ende;
{code-Test: das Rom-Bios Datum ist immer am $ffff: 0005 (Real-Modus)}
var
P: pChar;
beginnen
P: = Ptr ($FFFF, $0005); {FFFF5-Daten da Rom-Bios >}
Wenn AllocRealModePointer(Pointer(p), 8) dann {8 Chars, RomBios Datum}
beginnen
{Verwenden Sie p, um ROM-Bios Datum hier lesen}
FreeRealModePointer(Pointer(p)); {entsorgen p}
Ende;
Ende.









Real-Modus von windows


Real-Modus von windows : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


So erstellen Sie Real-Modus-low-Memory-Zeigern.
Autor: LEOPOLDO SALDANHA

{Hier ist der Code, den ich habe Ihnen versprochen. Es funktioniert schön. Sie können lesen
Jeder Teil der Real-Modus-Speichermangel damit.}
Funktion AllocRealModePointer (Var P: Zeiger; Größe: LongInt): boolean;
var
Selektor,
Basis: Wort;
LinearBase: Longint;
beginnen
Ergebnis: = False;
LinearBase: = MakeLong(0,hiword(longint(p)) Shr 12) +
HIWORD(longint(P)) Shl 4 + loword(longint(P));
{20-Bit-Adresse in eine 32-Bit konvertiert}
{d.h. $ffff: 0006 in $000ffff6}
Selektor: = AllocSelector(DSeg); {DSeg Selector Eigenschaften kopiert}
Basis: = SetSelectorBase (Selector, LinearBase);
SetSelectorLimit (Selector, Größe);

Wenn (Selector <> 0) und (Basis <> 0) dann beginnen
P: = Ptr (Selector, 0);
Ergebnis: = True;
Ende;
Ende;
Funktion FreeRealModePointer (Var p: Zeiger): boolean;
var
Fr: Word;
beginnen
Fr: = FreeSelector(hiword(longint(p)));
{Seletor ist am hiword(p)}
Wenn (fr = 0) {ok} dann beginnen
p: = Nil;
Ergebnis: = True;
anderes Ende beginnen {fehlgeschlagen}
Ergebnis: = False;
Ende;
Ende;
{code-Test: das Rom-Bios Datum ist immer am $ffff: 0005 (Real-Modus)}
var
P: pChar;
beginnen
P: = Ptr ($FFFF, $0005); {FFFF5-Daten da Rom-Bios >}
Wenn AllocRealModePointer(Pointer(p), 8) dann {8 Chars, RomBios Datum}
beginnen
{Verwenden Sie p, um ROM-Bios Datum hier lesen}
FreeRealModePointer(Pointer(p)); {entsorgen p}
Ende;
Ende.


Real-Modus von windows

Real-Modus von windows : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Real-Modus von windows
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung