En mode réel à partir de windows


Comment faire pour créer en mode réel faible de la mémoire de pointeurs.
Contributeur: LEOPOLDO SALDANHA

{Voici le code que j'ai promis de vous a envoyé. Il fonctionne de nice. Vous pouvez lire
toute partie du réel mode à faible mémoire.}
fonction de allocRealModePointer(var P: pointeur de Taille: longInt): boolean
var
& nbsp & nbsp Sélecteur,
& nbsp & nbsp base : word
& nbsp & nbsp LinearBase : longint
begin
& nbsp & nbsp result := false
& nbsp & nbsp LinearBase := MakeLong(0,hiword(longint(p)) shr 12)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp hiword(longint(P)) shl 4 loword(longint(P))
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp {convertit adresse de 20 bits en 32 bits}
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp {c'est à dire $ffff:0006 en $000ffff6}
& nbsp & nbsp Sélecteur := AllocSelector(DSeg) {Copies DSeg Sélecteur de propriétés }
& nbsp & nbsp base := SetSelectorBase(Sélecteur, LinearBase)
& nbsp & nbsp SetSelectorLimit(Sélecteur de Taille)

& nbsp & nbsp si (Sélecteur <> 0) et (base<>0) then begin
& ! & ! & ! & nbsp P := Ptr(Sélecteur, 0)
& ! & ! & ! & nbsp result := true
& nbsp & nbsp fin
fin
fonction de freeRealModePointer(var p: pointeur): boolean
var
& nbsp & nbsp fr : Mot
begin
& nbsp & nbsp fr := FreeSelector(hiword(longint(p)))
& nbsp & nbsp {seletor est à hiword(p)}
& nbsp & nbsp si (fr=0) then begin {ok}
& ! & ! & ! & nbsp p := nil
& ! & ! & ! & nbsp result := true
& nbsp & nbsp end else begin{fail}
& ! & ! & ! & nbsp résultat := false
& nbsp & nbsp fin
fin
{ code de Test: La Rom-Bios ' la date est toujours à $ffff:0005 (en mode réel)}
var
& nbsp & nbsp P: pChar
begin
& nbsp & nbsp P := Ptr($FFFF, $0005) {FFFF5 -> data da Rom-Bios}
& nbsp & nbsp si AllocRealModePointer(Pointeur(p), 8) alors {8 caractères pour RomBios' date}
& nbsp & nbsp commencer
& ! & ! & ! & nbsp { l'Utilisation de p lire la ROM du Bios date ici}
& ! & ! & ! & nbsp FreeRealModePointer(Pointeur(p)) {jetez p}
& nbsp & nbsp fin
à la fin.









En mode reel a partir de windows


En mode reel a partir de windows : Plusieurs milliers de conseils pour vous faciliter la vie.


Comment faire pour creer en mode reel faible de la memoire de pointeurs.
Contributeur: LEOPOLDO SALDANHA

{Voici le code que j'ai promis de vous a envoye. Il fonctionne de nice. Vous pouvez lire
toute partie du reel mode a faible memoire.}
fonction de allocRealModePointer(var P: pointeur de Taille: longInt): boolean
var
& nbsp & nbsp Selecteur,
& nbsp & nbsp base : word
& nbsp & nbsp LinearBase : longint
begin
& nbsp & nbsp result := false
& nbsp & nbsp LinearBase := MakeLong(0,hiword(longint(p)) shr 12)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp hiword(longint(P)) shl 4 loword(longint(P))
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp {convertit adresse de 20 bits en 32 bits}
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp {c'est a dire $ffff:0006 en $000ffff6}
& nbsp & nbsp Selecteur := AllocSelector(DSeg) {Copies DSeg Selecteur de proprietes }
& nbsp & nbsp base := SetSelectorBase(Selecteur, LinearBase)
& nbsp & nbsp SetSelectorLimit(Selecteur de Taille)

& nbsp & nbsp si (Selecteur <> 0) et (base<>0) then begin
& ! & ! & ! & nbsp P := Ptr(Selecteur, 0)
& ! & ! & ! & nbsp result := true
& nbsp & nbsp fin
fin
fonction de freeRealModePointer(var p: pointeur): boolean
var
& nbsp & nbsp fr : Mot
begin
& nbsp & nbsp fr := FreeSelector(hiword(longint(p)))
& nbsp & nbsp {seletor est a hiword(p)}
& nbsp & nbsp si (fr=0) then begin {ok}
& ! & ! & ! & nbsp p := nil
& ! & ! & ! & nbsp result := true
& nbsp & nbsp end else begin{fail}
& ! & ! & ! & nbsp resultat := false
& nbsp & nbsp fin
fin
{ code de Test: La Rom-Bios ' la date est toujours a $ffff:0005 (en mode reel)}
var
& nbsp & nbsp P: pChar
begin
& nbsp & nbsp P := Ptr($FFFF, $0005) {FFFF5 -> data da Rom-Bios}
& nbsp & nbsp si AllocRealModePointer(Pointeur(p), 8) alors {8 caracteres pour RomBios' date}
& nbsp & nbsp commencer
& ! & ! & ! & nbsp { l'Utilisation de p lire la ROM du Bios date ici}
& ! & ! & ! & nbsp FreeRealModePointer(Pointeur(p)) {jetez p}
& nbsp & nbsp fin
a la fin.


En mode réel à partir de windows

En mode réel à partir de windows : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation