Newsgroup: it.comp.programmare.win32
Titolo: Indirizzamento memoria

In un OS come Win95 che utilizza la gestione della memoria a pagine, come
posso fare a indirizzare a segmenti?
Ho necessità di accedere direttamente all'hardware ma non posso lavorare con
i puntatori. Come faccio? Esiste qualche funzione tipo peek, poke (lavoro
con il VC++6.0)? Qualsiasi risposta è gradita.
Grazie per l'interessamento

 i puntatori. Come faccio?
in teoria devi usare i device drivers di windows
e se il tuo hardware non ne è provvisto, te ne devi costruire uno :-(((
TobiX




Spiegati meglio per puntatori e hardware.
Devi accedere a IO o a MEM?
Devi usare gli interrupt?
Esistono le funzioni peek e poke, anche io mi sono fatto le mie, ma in ogni
caso
e' necessario vedere la memoria....

TobiX
Sarei anche disposto a farlo, ma non so dove prelevare il DDK della
Microsoft (nel Visual Studio versione Professional non era compreso).
Tu mi sapresti indicare qualche sito?
Grazie e ciao, Giuseppe


Devo accedere alla memoria segmentata per poter comandare i periferici a
basso livello. Esempi:
1) Scrivere sulla memoria VGA
2) Leggere le informazioni tecniche fornite dal BIOS
3) ecc
No, non voglio utilizzare gli interrupt (per quello non ci sono problemi
:-) )
Ciao, Giuseppe


In modalita' protetta le memoria che puoi leggere nel tuo spazoi di
indirizzamento e' virtualizzata, e non ha corrispondenza (in linea di
 principio), con la collocazione fisica.
La memoria video, assumendo che tu possa accedere alla memoria fisica,
si trova sotto il primo mega solo se sei in VGA oppure in una modalita'
VESA che funzioni col bank-switching. Se intendi scrivere sulla memoria video,
allora devi capire dove il sistema ha mappato le memoria video nello spazio
deli indirizzi fisici (devi interrogare e/o configurare il tuo controllore
del bus PCI).
Diciamo che un programma DOS e' molto piu' adatto allo scopo di un programma
Win32. Con il DOS puoi fare tutto, in Win9x ti e' consentito l'accesso alle
porte, ma non alla memoria video, dato che il sistema operativo la gestisce
per tuo conto. Scrivere il driver e' l'unica alternativa
possibile.
BTW Nel primo messaggio chiedevi dell'accesso ai segmenti. Ebbene si puo'
accedere ai segmenti anche in modalita' protetta (attualmente la catena dei
gestori di eccezione sotto NT usa il registro di segmento FS:00000000 per
questo scopo). La gestione della memoria in modo segmentato non e' implica
essere in modalita' reale e/o non implica avere o meno accesso alla memoria
fisica. I segmenti poi cambiano di significato da una modalita' all'altra. In
modalita' protetta un segmento e' un indice nella GDT o LDT. L'indice di
descrittore fornisce una struttura dati di 8 byte che il processore utilizza
per andare a finire nella memoria fisica. I dettagli nei manuali Intel.
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    

per andare a finire nella memoria fisica. I dettagli nei manuali Intel.
Il tuo discorso non fa una grinza
Ciao, Giuseppe

Ciao, Giuseppe
Saluti
    Mardy
--
Per rispondere, togliere NVN dal mio indirizzo.
Per scrivere questo messaggio non e' stato abbattuto nessun albero!

Temi qualche crash di sistema? :-)
Gli interrupt sono troppo lenti (il Bios effettua una marea di controlli
prima di effettuare l'operazione richiesta)
Ciao, Giuseppe


Saluti
    Mardy
--
6 GIUGNO '99: TUTTA L'EUROPA CONTRO LA TUT
Partecipa anche tu all'European Telecom Boycott!
Tutte le info su 
www.notut.org


    Mardy
Non ci metterei la mano sul fuoco (sono sicuro solo al 99%), ma le CPU Intel
quando passano in modalità protetta non possono tornare in modalità reale se
non resettandosi....
Grazie e ciao, Giuseppe

 Grazie e ciao, Giuseppe
Il fatto che nel primo 286 venduto da Intel il ritorno in modalita'
reale venisse fatto cosi' (con l'aiuto del controllore di tastiera)
non implica che questo non sia stato corretto.
Basta cancellare un bit in CR0 ed il 386 torna in modalita' reale.


> non resettandosi....
Questo fino ai 286...
Poi, sotto Windows 9x non si passa mai in modalita' reale, semplicemente 
a volte il controllo e' in mano ad un processo funzionante in modalita' 
V86 (e per processo intendo anche codice funzionante a CPL0)
-- 
 [darXstar@Eleanor]$Phantom_Menace_
        * 
darXstar.tin.it
        * FidoNET 2:335/241.5
        * ICQ 11151997
 
http://darxstar.cjb.net

di tempo durante l'avvio il windows funziona in modalità reale
Questo sarebbe normale, il passaggio alla modalita` protetta non si fa
in 4 cicli di clock.
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------