Nota: il tuo browser non sembra supportare adeguatamente i fogli di stile (CSS) e quindi la grafica del sito risuterà abbastanza scarna.
Comunque i contenuti del sito dovrebbero essere pienamente fruibili in quanto compatibili con qualunque browser.
Per apprezzare il sito al meglio è consigliabile usare un browser che supporti i fogli di stile come, ad esempio, Mozilla 1, Netscape Navigator 6, Internet Explorer 5 o successivi.
Documenti Software libero Scrivimi

ioportI/O Port 32

'I/O Port 32' è una DLL che ho sviluppato in C per porre rimedio alla mancanza in MS Visual Basic di strumenti per la gestione delle porte di Input/Output dei Personal Computer. Un impiego tipico di questo pacchetto è la realizzazione in MS Visual Basic di routine software per il controllo di circuiti elettronici sperimentali collegati alla porta parallela.
Questa è la versione a 32 bit dell'analoga DLL VBIOport che ho deciso di scrivere viste le numerose richieste. IOPort32 può essere utilizzata da applicazioni a 32 bit (scritte ad esempio con MS Visual Basic 5 o 6) che potranno funzionare tranquillamente con sistemi operativi a 32 bit come Windows 95, 98 ed ME.

'I/O Port 32' funziona anche sui sistemi operativi con tecnologia NT (Windows NT4 / 2000 / XP) grazie a 'UserPort', un kernel mode driver scritto da Tomas Franzon e reperibile nell'area download.
Alcune persone mi hanno segnalato problemi nell'uso di 'I/O Port 32' con il sistema operativo Windows XP nonostante l'uso di 'UserPort'. Con alcuni PC ho riscontrato anch'io dei malfunzionamenti (mi è successo in particolar modo con dei notebook) e mi sono quindi messo alla ricerca di qualche altra soluzione.
Alla fine io ho risolto tutti i problemi usando PortTalk, un'altra utility utilizzabile liberamente che consente l'accesso alle porte I/O da parte di programmi che girano in user space.
Consiglio quindi vivamente di provare 'PortTalk' a tutte quelle persone che hanno l'esigenza di interagire con le porte I/O (sia tramite la mia DLL 'I/O Port 32' sia con un qualsiasi altro programma) in ambiente NT.

IOport32 può essere scaricata dalla sezione Download seguendo questo link.

screenshot

Installazione

Scompattare il file IOport32.zip in una directory temporanea; copiare il file IOport32.dll nella directory %windir%\System\ o nella directory contenente l'eseguibile Visual Basic che dovrà far uso di 'IOPort32'.

Nel caso in cui il sistema operativo fosse Windows NT / 2000 / XP occorre installare il driver 'UserPort' di cui sopra. 'UserPort' permette ai programmi in user-mode di accedere alle porte I/O; in estrema sintesi l'installazione consiste nel copiare il file UserPort.sys nella directory %windir%\system32\drivers e nell'eseguire il programma UserPort.exe per impostare il range di indirizzi cui accedere. Occorre prestare comunque attenzione nell'uso di questo driver in quanto apre un piccolo buco nella sicurezza del sistema: è pertanto consigliabile restringere al minimo indispensabile il range di porte da "aprire".

Uso

L'uso di 'I/O Port 32' in Visual Basic è molto semplice: si debbono innanzitutto dichiarare le funzioni contenute nella DLL in un modulo .BAS come indicato di seguito:

Declare Sub OutPort Lib "ioport32.dll" (ByVal port%, ByVal data%) Declare Sub OutLine Lib "ioport32.dll" (ByVal port%, ByVal line%, ByVal data%) Declare Function InPort Lib "ioport32.dll" (ByVal port%) As Integer Declare Function InLine Lib "ioport32.dll" (ByVal port%, ByVal line%) As Integer

Se la directory nella quale è stata copiata la DLL è diversa da quella del progetto o da %windir%\System occorre indicare l'intero path nelle righe di dichiarazione.
A questo punto le funzioni possono essere usate in qualsiasi subroutine del progetto.

La Sub OutPort (port, data) scrive il valore intero data nella porta specificata, in notazione decimale, dal parametro port. Esempio:

Call OutPort (888, 123) ' Scrittura del valore 123 nella porta 888

La Sub OutLine (port, line, data) imposta il bit indicato dal parametro line nella porta specificata, in notazione decimale, dal parametro port; questa funzione lavora correttamente solo con le porte che permettono la "rilettura". Esempio:

Call OutPort (888, 5, 1) ' Il bit n. 5 della porta 888 viene settato ad 1 Call OutPort (888, 4, 0) ' Il bit n. 4 della porta 888 viene azzerato

La Function InPort (port) restituisce il valore intero letto dalla porta specificata, in notazione decimale, dal parametro port. Esempio:

data% = InPort (888) ' Lettura della porta 888

La Function InLine (port, line) restituisce lo stato logico del bit indicato dal parametro line letto dalla porta specificata, in notazione decimale, dal parametro port. Esempio:

bit3% = InPort (888, 3) ' Lettura del bit n. 3 della porta 888

Nel file IOport32.zip è incluso un progetto d'esempio scritto in Visual Basic 5.


© 2001-2002 Giuseppe Bordoni

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

© 2001-2013 Giuseppe Bordoni. Tutti i diritti riservati.
I marchi citati sono riconosciuti come appartenenti ai rispettivi proprietari.
Powered by Linux - Nessun pinguino è stato maltrattato per lo sviluppo di questo sito e vi garantiamo che non succederà mai durante il suo servizio!