Newsgroup: it.comp.aiuto
Titolo: dos

devo eseguire un programma dal dos, ma mi viene segnalato che non ho
abbastanza memoria per eseguirlo (sono necessari 530 kb mentre il dos ne
vede solo 525). io ho una ram di 32 mega. come mai il dos non "legge" la mia
reale memoria? come posso fare per variare eventualmente i parametri di
riferimento del dos?
tutti i programmi sotto windows 95 girano regolarmente.
Grazie mimmo

...

Beh, devi sapere che per il dos la memoria è divisa in varie parti: la
convenzionale, che sono 640k, la superiore, che sono 384k, e l'estesa, che è
tutto il resto.
Convenzionale+superiore fanno il primo mega di memoria.
I programmi dos usano tutti quanti la memoria convenzionale, almeno per
partire; poi i più avanzati (ad esempio i giochi) usano anche la memoria
estesa, se serve.
Generalmente nella convenzionale vengono caricati anche tutti i drivers per
dos e le parti più 'basse' del sistema operativo (win95 gira sotto dos, in
realtà); ora il problema è liberare un po' di memoria convenzionale per
renderla disponibile a questo programma che dici tu.
Per fare ciò dobbiamo 'spostare' tutta la roba nella memoria superiore.
Nella root del tuo disco (c:\) ci sono, tra gli altri, i due file di
configurazione del dos: config.sys e autoexec.bat.
Dovresti modificare il CONFIG.SYS inserendo, **all'inizio e in
quest'ordine**, questa roba:
device=c:\windows\himem.sys /testmem:off /v
device=c:\windows\emm386.exe noems i=b000-b7ff verbose
dos=high,umb
stackshigh=0,0
fcbshigh=1,0
fileshigh=40
buffershigh=30,0
lastdrivehigh=f
Inoltre dovresti modificare qualunque altra riga 'device=...' in
'devicehigh=...'
Ad esempio,
'device=c:\windows\command\display.sys con=(ega,,1)'
dovrà diventare
'devicehigh=c:\windows\command\display.sys con=(ega,,1)'.
Infine dovresti controllare che l'AUTOEXEC.BAT non contenga altri drivers
tsr (cioè residenti in memoria), come possono essere ad esempio 'mouse' o
'mscdex'.
Se ne trovi, mettici davanti LH. Ad esempio, una riga simile a
'c:\windows\command\mscdex.exe /d:mscd001'
dovrebbe diventare
'lh c:\windows\command\mscdex.exe /d:mscd001'.
Attenzione: MODE non è, come sembrerebbe a prima vista, un driver tsr.
Così avrai ottimizzato l'uso della memoria in dos, e quel programma partirà
sicuramente. Dovresti infatti arrivare ad almeno 580k di memoria libera, nel
caso più sfortunato (in W95B, infatti, c'è un bug che fa occupare ad Himem
40k di memoria invece di 1; il problema si risolve facilmente, ma a te
bastano e avanzano 580k liberi.

 Convenzionale+superiore fanno il primo mega di memoria.
[Snip]
 Mi inserisco in q thread ... col comando Dos Mem/c io vedo i seg tipi di
memoria ..
CONVENZIONALE .... (che dovrebbero essere i primi 640K giusto..?? )
SUPERIORE   ..con circa155k usati (avrei parecchio spazio libero se puo'
essere di 384k come dice Pardo)
RISERVATA  di circa 394k tutti usati  (che vorrei sapere cos'e') 
ESTESA che dovrebbe essere tutto il resto ....  ed infatti e' di circa 32Mb
mi sapete dire cos'e' e a cosa serve la Memoria Riservata.... che
sembrerebbe coincidere con la Memoria Superiore come quantita' se fosse
occupata tutta invece dei 155k che sono utilizzati adesso almeno se non ho
capito male quello che diceva Pardo 


Boh... questa è la spiegazione dell'help del Dos:
"Riservata" è la memoria convenzionale disponibile per un programma. "Blocco
di memoria superiore libero più grande" è l'area di memoria superiore
disponibile per un programma.
Un po' strano... allora la 'convenzionale disponibile' cosa sarebbe?
Da me comunque la 'riservata' è zero.