Reliez vos montages électroniques à votre ordinateur
Auteur : Electroremy
Zine : Rafale #5

Introduction :

L'omniprésence et la démocratisation des composants programmable font
qu'aujourd'hui l'informatique est devenue indissociable de l'électronique.
Les exemples sont innombrables : création de divx-box, étude et l'utilisation
des cartes à puces, des télécommandes IR, la transmission de données sans fils,
la domotique, la robotique...
Mais paradoxalement, contrairement au bon vieux DOS 6.22, les OS actuels 
mettent bien des bâtons dans les roues aux électroniciens qui souhaite ne 
serais-ce que piloter un simple montage à l'aide du port parallèle. 
J'ai moi-même été confronté à ce problème, et après de nombreux jours passés à
parcourir les forums, à rechercher et lire des datasheets, à télécharger et 
tester divers logiciels, je vais vous présenter mon " best of ".
Certes mon article ne concerne pas une création personnelle, mais il vous fera
gagner du temps car vous saurez dans quelle direction aller en fonction de ce 
que vous souhaitez faire. 

1. Comment continuer à utiliser vos anciens logiciels

Si vous avez déjà écrit ou téléchargé des logiciels permettant de piloter des 
montages électroniques fonctionnant sous DOS ou Windows 95, vous avez 
certainement constaté qu'avec les versions NT, 2000 et XP de Windows, votre 
logiciel ne fonctionnait plus. La plupart des électroniciens sont convaincu que
ce problème ne peut être résolut, alors qu'une solution existe !

Rendez-vous sur http://www.beyondlogic.org et téléchargez l'utilitaire 
porttalk.

Vous devez d'abord l'installer, pour ce faire décompressez l'archive et 
effectuez les opérations suivantes :
"	Ouvrez une session Administrateur
"	Copiez le fichier PORTTALK.SYS dans C:\WINDOWS\SYSTEM32\DRIVERS\
"	Double-cliquez sur PORTTALK.REG et répondez OUI à la question
"	Copiez le fichier ALLOWIO.EXE dans C:\WINDOWS\
"	Redémarrez Windows

Son utilisation est extrêmement simple, lancez une invite de commande et 
tapez :
allowio prog.exe adresse1 adresse2 ...
prog.exe est le chemin d'accès à l'exécutable du logiciel qui doit accéder aux
ports de la machine, il doit être suivit par les adresses des ports auxquels 
vous souhaitez donner accès.
Par exemple :
allowio prog.exe 0x378
permettra à prog.exe d'accéder au port parallèle.
Vous pouvez également taper :
allowio prog.exe /a
pour donner accès à tous les ports de la machine à prog.exe. Ceci est toutefois 
déconseillé pour des raisons évidentes de stabilité du système.

Il est plus pratique de créer un raccourci de lancement pour votre programme. 
Voici comment faire :
Créez un raccourci MSDOS vers C:\WINDOWS\AllowIo.exe
Cliquez sur le raccourci avec le bouton droit et choisissez propriétés
Modifiez la cible en :
C:\WINDOWS\AllowIo.exe C:\mon_logiciel\mon_logiciel.exe 0x378

L'utilisation de porttalk peut vous sembler un peu rustique mais elle offre de 
nombreux avantages :
-	vous conservez vos anciens logiciels
-	si vous devez développer un nouveau logiciel, le même logiciel 
conviendra pour tous les OS du DOS ou WIN95 jusque WIN XP, vous ne perdrez pas 
de temps à concevoir deux versions différentes

2. Comment concevoir une vraie application pour les dernières versions de 
   Windows

Si vous en avez marre de la bidouille et que vous ne supportez plus de 
programmer des logiciels en 16bit pour MS-DOS et que souhaitez faire une 
application vraiment conçue pour les dernières versions de Windows, et bien 
sachez que c'est beaucoup plus facile qu'il n'y parait !

Allez faire un tour sur http://www.logix4u.net et téléchargez les nouvelles 
versions de inpout32.dll et inpout64.dll

Vous connaissez certainement inpout32.dll comme la DLL permettant d'accéder aux
ports de la machine à partir de Visual Basic ou Visual C++. Malheureusement 
cette DLL ne fonctionnait plus elle aussi sous les versions NT, 2000 et XP.
Les nouvelles moutures de logix 4 U fonctionnent correctement quelque soit la 
version de Windows, et, cerise sur le gâteau, elles sont compatibles avec la 
version " historique ", donc vous pouvez vous en servir pour mettre à jours vos
logiciels existants, sans toucher à votre code, et sans utiliser porttalk !
Logix 4 U vous donne en plus les codes sources et des explications sur le 
fonctionnement de leurs DLL, ce qui ravira les plus passionnés d'entre nous.

Il n'est pas fréquent de faire de la publicité pour Microsoft, mais vous devez 
aussi savoir que les dernières versions de Visual Basic et Visual C++ sont 
téléchargeables gratuitement en version " express ".

Maintenant je vais aborder un autre sujet et vous parler d'assembleur. Allez 
visiter http://win32assembly.online.fr et téléchargez MASM32.

Aussi incroyable que cela paraisse, il est possible de développer des 
applications WIN32 - de vraies applications WIN32, avec des fenêtres - en 
assembleur. Et c'est d'autant plus incroyable que c'est à peine plus 
compliqué que de faire la même chose en C ! Ne soyez pas incrédule et essayez 
quelques-uns des dizaines d'exemples livrés avec MASM32 et regardez ensuite le
code source.

Quel est l'intérêt de développer en assembleur ?
-	L'assembleur est rapide
-	L'assembleur est par excellence le langage à utiliser pour accéder aux 
ports de la machine
-	Un électronicien qui n'a programmé que composants programmables (PIC, 
ATMELS) est familier avec l'assembleur et retrouvera plus rapidement ses petits 
que s'il doit se mettre à Visual Basic ou au C++

MASM32 vous permettra de créer des programmes petits et performants pour 
piloter vos montages électroniques, avec l'aide de porttalk ou de inpoutXX.dll.

J'ai gardé le meilleur pour la fin : Développer son propre driver est possible !

La tâche reste complexe, mais avec MASM32 et le tutoriel disponible sur 
http://neitsabes.free.fr/ASM/KMD/KMDindex.htm
vous avez en main toutes les cartes nécessaires. Les plus passionnés d'entre 
vous qui arriveront au bout de cette aventure pourront exploiter à fond les 
possibilités offertes par l'utilisation conjointe de l'informatique et de 
l'électronique, et apprendront énormément de choses sur le fonctionnement des 
entrailles de Windows. 

Conclusion

En guise de conclusion, force est de constater que le monde du logiciel libre
et des passionnés d'électronique a brillamment démontré qu'à force de volonté 
rien n'est impossible. L'ordinateur reste donc le meilleur compagnon de 
l'électronicien !
Je remercie chaleureusement toutes les personnes qui ont contribué aux sites que
j'ai cité, ces personnes méritent qu'on leur fasse de la publicité.