Newsgroup: it.comp.programmare.win32
Titolo: Gestione seriale

 etc..
Il tutto viene mediato dal kernel sempre e comunque...le istruzioni IN, OUT,
ecc... sono "sensibili" e generano un'eccezione. Il kernel gestisce
l'eccezione ed evita conflitti con gli altri programmi DOS (le finestre DOS
possono anche essere 10) e Win32.
Kiuhnm

 virtuale x86 ?
Sì, l'Intel lo chiama V86. E' 80x86, ma consente a un monitor scritto in
Ring 0 di emularne le funzionalità principali.
L'IDT (Interrupt Descriptor Table) in 0:0 è quella del DOS, ma in realtà la
tavola IDT contenente gli int in PMODE (Ring 0) ha la precedenza.
Insomma non sarà mai veloce quanto il buon vecchio Real Mode sotto DOS
autentico :-)
Per accedere direttamente alle porte bisogna usare codice in Ring 0 e cioè
creare un Vxd, un Sys, ecc...
Kiuhnm

 macchina virtuale x86 ?
V86. Si chiama V86
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.19. C, C++ and ASM developers
                              and beta testers are welcome!

 pulsantiera collegata alla seriale.
scusa, allora scrivi un driver di HID, no? così poi lo puoi usare da 
DirectInput


 vari 9x/NT/XP e futuri.
tu conosci la tua creatura meglio di me. Scegli tu quel che è meglio


 disassemblarla per vedere come fa ? :)
Adesso non ho tempo cmq controlla che non sia a 16 bit (hanno meno
restrizioni per questioni di compatibilità).
Potrebbe anche chiamare funzioni non documentate del kernel (tipo la VxdCall
[Kernel32!ORD_0001]).
Kiuhnm

 COM2, etc... le USB come sono viste ?
nein, no, nope, nyet, nada. USB è per connettere periferiche, *NON* per 
lo scambio di dati. Ad una porta USB si possono connettere fino a 255 
(mi pare) periferiche - se leggi direttamente dalla porta cosa ottieni? 
Non esistono i cross-cable per USB, e ora sai perchè (un altro motivo è 
che nella porta USB passa anche la corrente di alimentazione :-). No, 
le porte di scambio diretto di dati del futuro non sono le USB , sono 
le Firewire (standard IEEE 1394). Nello scenario USB avresti bisogno 
necessariamente di un driver
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.20. C, C++ and ASM developers


 per lo scambio di dati. Ad una porta USB si possono connettere fino a
O mio Dio.....ho il modem telepatico!!!
Kiuhnm




Dai un'occhiata a questo siterello: 
http://www.nondot.org/sabre/os/articles
Kiuhnm

  Mmm... e cioè ? Esattamente che fa quella chiamata ?
E' una chiamata non documentata e viene ormai chiamata VxdCall.
Per maggiori info leggiti "Undocumented Win32...." che ho postato su questo
stessso ng.
Kiuhnm

 seriale. Resta da vedere come interagire con esso.
Vedi sopra. Ripeto che ti sfugge qualcosa 


 tradurre un Vxd in un Sys.
da Windows 98/2000 in poi, l'API è pure la stessa


 dice che lo fa anche Win9x (o almeno 98).
Direi che il secondo tipo di documentazione sia sbagliato. O meglio,
ricordo abbastanza chiaramente che svariati anni fa pilotavo i segnali
"ausiliari" della seriale mediante scritture I/O dirette. Si puo`
disquisire sul fatto che il driver intercetti o meno queste scritture e
le "realizzi" per te, ma in ogni caso l'importante e` il risultato. :)
--
Lorenzo

 da Windows 98/2000 in poi, l'API è pure la stessa
Win 98 supporta l'API del 95 (VXD) e del 98+ (SYS). Queste sono
probabilmente diverse.
Kiuhnm

Kiuhnm ha scritto:

parlo di WDM (Windows Driver Model). Garantisce solo la compatibilità 
di sorgente (in altre parole, continua ad usare LE su Windows 98 e PE 
su Windows 2000)


 propria COM4 virtuale sulla USB.
se rileggi bene, è quello che sto dicendo io :-P per le "periferiche" 
su seriale basta un solo driver, e un file di configurazione con le 
impostazioni del terminale per una particolare periferica (su Unix, un 
file di termcap, generalmente). Con le USB serve un driver per ogni 
periferica, perchè la porta, di suo, fa solo da multiplexer per tutte 
le periferiche che ci sono attaccate
