website logo
Auteur
avatar
thellier

Forum » » OS4 sur AmigaOne X5000 » » A la recherche de RAM disparue


Posté : 29-08-2019 15:55 icone du post

Et encore si on enlève les tests de bon fonctionnement et autres de l'exemple du WIKI on a que ça qui fait le boulot:

// init du programme: on crée un gros bloc mémoire de la taille blocksize64 au delà des 2 Go
iextmem = AllocSysObjectTags(ASOT_EXTMEM, ASOEXTMEM_Size, &blocksize64, ASOEXTMEM_AllocationPolicy, EXTMEMPOLICY_IMMEDIATE, TAG_END);

// adresse de la fenêtre sur le gros bloc commençant à l'offset windowoffset64 et de la taille windowsize32
data = iextmem->Map(0,windowsize32, windowoffset64, 0);

// là on modifie les données du bloc en lecture ou écriture comme on veut

x=data[100];

y=data[101];

data[10]=100;

data[12]=2 00;

etc...

// on relâche la mémoire
iextmem->Unmap(data, windowsize32);

// on a fini le programme on libère le gros bloc mémoire
FreeSysObject(ASOT_EXTMEM,iextmem);

Il semblerait que NetSurf les utilise aussi

Utiliser ce procédé permet aussi de pas utiliser la mémoire sous les 2 Go et donc d'en laisser plus aux autres applis moins malines

SketchBlock et NetSurf l'utilisent de la même manière : avec des blocs pouvant tenir dans une seule fenêtre (cad windowsize32=blocksize64 )


Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig

Message édité par : thellier / 29-08-2019 16:02
Message édité par : thellier / 29-08-2019 16:02

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=2609&forum=21