Precedente :: Successivo |
Autore |
Messaggio |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 30 Dic 2008 16:00 Oggetto: |
|
|
Il DOS non definisce interfacce COM virtuali (cioè che non esistono) ma è solo in grado di mappare le interfacce reali, quindi se hai solo una seriale sul tuo PC questa sarà (probabilmente) COM1.
Per sapere quante/quali interfacce hai installato sul tuo PC devi leggere la memoria in determinate locazioni: se è 0 allora l'interfaccia non c'è, se è invece un valore diverso da zero, allora questo è l'indirizzo della porta (in senso della 'porta CPU') nella quale devi scrivere / leggere per accedere all'interfaccia seriale (la porta COMx)
(spero tu sappia cosa è una porta per la CPU, per non confondere con l'interfaccia COMx... io non riesco ad essere più chiaro di così)
Ecco una tabella delle locazioni di memoria dove è memorizzato il valore delle porte per le interfacce, ed i valori 'standard' (che però devi ignorare se vuoi fare una cosa che funzioni...) |
|
Top |
|
 |
johnbrown Cavallo di Troia *


Registrato: 19/07/07 08:12 Messaggi: 56
|
Inviato: 30 Dic 2008 18:31 Oggetto: |
|
|
grazie sverx per i tuoi consigli...
Verificherò se riesco a fare il programma giusto per accedere al tanto desiderato modem...
farò sapere presto se ci sono riuscito
grazie ancora..
John Brown |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 31 Dic 2008 01:05 Oggetto: |
|
|
johnbrown ha scritto: | vorrei rispondere a chemicalbit.
Forse mi sono spiegato male, oppure mi hai frainteso, ma devo farti presente che il dos 7.0, anche se ho detto di windows 95/98 , è stand-alone, nel senso che anche senza "l'interfaccia GUI" di windows funziona perfettamente. | Vabbe', però da Windows 95 in poi non sichiama più DOS ma Winsows 95, appunto.
(E' una scelta del produttore, non ci cambia la vita, ma è giusto per capirci).
Anche perché se parlassimo veramente di DOS (fino al DOS 6) allora saprei dirti per certo che di driver perusare le porte seriali (come la COM3) non ne hai bisogno, è supportato direttamente dal DOS.
(al limite puoi avere bisogno di librerie per il tuo linguaggio di programmazione, visto che siamo nel forum di programmazione)
Da Windows 95 in poi, purtroppo me ne intendo molto meno. (E so che sono stati aggiunti driver per praticamente qualunque cosa, pure per la scheda madre, lo schermo ... ancor aun po' anche per il led d'accensione )
johnbrown ha scritto: | Centra con la programmazione perkè senza questo driver non posso sviluppare alcun programma che nel DOS utilizzi la rete. | Ma al di là di questo tuo programma che vuoi realizzare,
con altri programmi riesci ad utilizzare quel modem in quel computer?
Un conto è se tu hai il problema di installare / configurare un modem (e hai eventualmente bisogno del driver richiesto da Windows).
Un conto è se tu devi creare un programma che giri su un generico computer, utilizzando il suo modem, che si presume e richiede sia installato corerttamente per il sistema operativo che usa. |
|
Top |
|
 |
johnbrown Cavallo di Troia *


Registrato: 19/07/07 08:12 Messaggi: 56
|
Inviato: 31 Dic 2008 10:27 Oggetto: |
|
|
salve chemicalbit, io dovrei scrivere un programma il più generico possibile per usare un generico modem interno di un generico computer tramite un programma per DOS....
Ora so inviare comandi al modem tramite la COM3... mi resta da inizializzarla nel DOS...
Questo è il mio attuale problema... |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 31 Dic 2008 12:17 Oggetto: |
|
|
johnbrown ha scritto: | so inviare comandi al modem tramite la COM3... mi resta da inizializzarla nel DOS... |
Credo che qualunque linguaggio di programmazione tu stia usando ti permette di 'aprire' un canale di comunicazione su una specifica seriale... quale linguaggio usi? |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 31 Dic 2008 12:46 Oggetto: |
|
|
johnbrown ha scritto: | mi resta da inizializzarla nel DOS... | Ma appunto quello è un problema di chi installa il modem su quel certo computer X con sistema operativo Y.
Se il sistema opertativo è Windows 95, sarà premura di chi installa il modem lì, d'installare i relativi driver (che immagino in Windows 95 siano richiesti. )
(Con il DOS e Windows 3.1 non c'erano driver -né per modem esterni attaccati alle porte seriali COM1 e COM2 fisiche, che per i modem interni che creavano porte seriali COM3 o COM4 virtuali. Bisognava al limite configurarle, ma di solito andavano bene le configuraizoni di default. Ah, e non si poteva usare la COM1 e COM3 in contemporanea, né la COM2 e COM4, andavano in conflitto.
Il sistema oeprativo faceva sì che si potesse accedere -in lettura e scrittura- ad alto livello alla porta come se fosse un file -ovviamente la cosa è diversa se vuoi fare un accesso a basso livello- ).
Su altri computer, con eventualmente modem diversi e sistemi operativi diversi, sarà cura di chi installa il modem fare in modo che funzioni.
Per questo non ho capito se il tuo problema sia creare il programma, comunicando con la COM (quindi la tua domanda è "con il linguaggio di programmazione che uso -quale?- come parlo con la porta COM?"
Ma ad alto livello, cioè sfruttando i servizi del sistema operativo,
o a basso livello, cioè scavalcandoli e accedendo direttamente?)
o sapere se sarà poi possibile per un generico utente di un computer con Windows 95 installare il modem (e quindi poi usare il tuo programma?)
(Ovviamente bisogna innanzitutto vedere se per lo specifico modello di modem esista un driver per quello specifico sistema operativo).
Se ci dici che il problema è quest'ultimo spostiamo la discussione nel forum adatto.
(a proprosito, ma il modem è interno o esterno?) |
|
Top |
|
 |
johnbrown Cavallo di Troia *


Registrato: 19/07/07 08:12 Messaggi: 56
|
Inviato: 31 Dic 2008 17:24 Oggetto: |
|
|
il mio scopo è quello di poter comunicare con il modem fisico tramite software, scavalcando il sistema operativo.
Per me è indifferente se mi serva un driver generico oppure le "porte CPU" sono standard e accedo direttamente, ma il mio scopo, ripeto, è poter comunicare tra un programma e il modem fisico INTERNO;
Sistema operativo scavalcato;
accesso diretto al modem;
uso il Pascal (e non vorrei cambiarlo);
So che i comandi AT dei modem (almeno i comandi base) sono standard, quindi il modello del modem non influisce nel mio scopo.
Sono stato abbastanza chiaro? |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 31 Dic 2008 17:34 Oggetto: |
|
|
Se vi accedi (in scrittura e lettura) tramite il sistema operativo,
dovresti "vederlo" come un normale file.
Ma visto che vuoi scalcare il sistema operativo, devi usare delle apposite funzioni del PAscal (che non conosco: non consoco il Pascal).
A questo punto però, saltando il sistema operativo, non salti anche il driver?
In pratica è il tuo programma che deve farsi carico di tutta la gestione della porta seriale (compreso controllare che nessun altro la stia già usando tramite il sitema operativo, o anche lui direttamente, e impedire accesso se succesivamente qualcun altro tentasse di accedervi). |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 02 Gen 2009 11:13 Oggetto: |
|
|
johnbrown ha scritto: | uso il Pascal (e non vorrei cambiarlo); |
In Turbo Pascal c'era l'array Port[] per scrivere/leggere dalle porte della CPU. Nel Pascal che usi tu non so, vedi la documentazione.
In questo caso stai 'scavalcando' qualunque software, Sistema Operativo e BIOS, e stai accedendo direttamente all'hardware. |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 02 Gen 2009 12:17 Oggetto: |
|
|
SverX ha scritto: | n questo caso stai 'scavalcando' qualunque software, Sistema Operativo e BIOS, e stai accedendo direttamente all'hardware. | Scavalcando anche il BIOS?
(Io pensavo si scavalcasse il sistema operativo e si chiedesse il servizio di lettura / scrittura direttamente al BIOS -Basic Input-Output System- )
Quanto allo scavalcare il sistema operativo,
so che in DOS lo si faceva tranquillamente,
ma un sistema operativo, come Windows 95 e seguenti, che dovrebbe essere protetto e gestire la concorenza (non economica ) tra i vari programmi si lascia scavalcare così?  |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11806 Residenza: Tokelau
|
Inviato: 02 Gen 2009 18:46 Oggetto: |
|
|
chemicalbit ha scritto: | Scavalcando anche il BIOS? |
Il bios è software, in parte memorizzato dentro alcune ROM del PC e in parte dentro ad alcuni file che vengono caricati al boot (ricordi il famoso IO.SYS ? ). Se hai accesso alle risorse hardware (ovvero se non stai girando su un sistema operativo che ti limita) puoi comunicare con qualunque hardware a bordo del PC semplicemente scrivendo i valori giusti nel posto (memoria/porte) giuste. Ad esempio per "accendere" un pixel sullo schermo basta(va) scrivere il valore nella posizione giusta nella memoria grafica (segmento $a000, sulla VGA)
chemicalbit ha scritto: | (Io pensavo si scavalcasse il sistema operativo e si chiedesse il servizio di lettura / scrittura direttamente al BIOS -Basic Input-Output System- ) |
non conosco i servizi BIOS di I/O delle porte seriali... effettivamente può essere che ci siano (leggi un carattere/scrivi un carattere...) ... |
|
Top |
|
 |
|