Samuele70
27-09-2004, 15:46
Ciao a tutti
Ciao
Questo è il mio primo post su questo forum.
Circa tre mesi fa creai un programmino (con il Borland C++ Builder 3)
per inviare dei file di testo tramite la porta seriale del pc.
Il prog (dopo un certo periodo di sviluppo) funzionava correttamente,
poi a seguito all'aquisto di un nuovo pc, sono passato da win98se a winXP pro.
E qui mi sono accorto che il mio prog non andava più, o meglio una parte
di esso e cioè quella che restava in "ascolto" dello stato della porta seriale
appunto.
La funzione che avevo creato, tramite una routine in assembly, leggeva
direttamente i bit in memoria.
Eccone una versione semplificata :
WORD Ind = 0x03FE; // CommStatusAddress comm1
BYTE stato;
do {
// Interrogazione InputStatusRegister
asm {
mov dx, Ind
In ax, dx
Mov stato, al
}
// Pronto Per La ricezione ???
} while( ! (stato & 0x10) && ! Stop_Trasmissione);
Altro non fa che leggere il bit n4 cioè lo stato del "clear to send" (CTS)
di COM1.
Dunque, mentre questa routine funzionava correttamente in Win98se :)
la stessa non piace affatto a WinXP pro :mad: (e ti pareva ...)
Qualcuno può, per favore, aiutarmi a renderla digeribile a win XP ?
Grazie per l'attenzione. :)
Ciao
Questo è il mio primo post su questo forum.
Circa tre mesi fa creai un programmino (con il Borland C++ Builder 3)
per inviare dei file di testo tramite la porta seriale del pc.
Il prog (dopo un certo periodo di sviluppo) funzionava correttamente,
poi a seguito all'aquisto di un nuovo pc, sono passato da win98se a winXP pro.
E qui mi sono accorto che il mio prog non andava più, o meglio una parte
di esso e cioè quella che restava in "ascolto" dello stato della porta seriale
appunto.
La funzione che avevo creato, tramite una routine in assembly, leggeva
direttamente i bit in memoria.
Eccone una versione semplificata :
WORD Ind = 0x03FE; // CommStatusAddress comm1
BYTE stato;
do {
// Interrogazione InputStatusRegister
asm {
mov dx, Ind
In ax, dx
Mov stato, al
}
// Pronto Per La ricezione ???
} while( ! (stato & 0x10) && ! Stop_Trasmissione);
Altro non fa che leggere il bit n4 cioè lo stato del "clear to send" (CTS)
di COM1.
Dunque, mentre questa routine funzionava correttamente in Win98se :)
la stessa non piace affatto a WinXP pro :mad: (e ti pareva ...)
Qualcuno può, per favore, aiutarmi a renderla digeribile a win XP ?
Grazie per l'attenzione. :)