Conversion de langage

Signaler
Messages postés
17
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
8 septembre 2010
-
Messages postés
17
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
8 septembre 2010
-
Bonjour,

Je possède une carte d'acquisition 6 voies sur port centronic (imprimante).
La dernière fois que j'ai utilisé cette carte (ça date !) elle fonctionnait très bien, mais avec du code en GWBasic ou QBasic (je ne sais plus).
Maintenant, j'aimerais transposer ce code en VB6, mais je n'y arrive pas.
Si quelqu'un pouvait m'aider....

Merci

Christian.

10 CLS:GOSUB 1090
20 POKE 40000!,7:POKE 40001!,15
30 CALL VOLTMETRE
40 TEMPS7=PEEK(40000!)+PEEK(40001!)*256
50 POKE 40000!,0:POKE 40001!,8
60 CALL VOLTMETRE
70 TEMPS0=PEEK(40000!)+PEEK(40001!)*256
80 LOCATE 1,1,0
90 PRINT TEMPS0,TEMPS7:FOR I=1 TO 6
100 POKE 40000!,I:POKE 40001!,(I+8)
110 CALL VOLTMETRE
120 PRINT PEEK(40000!)+PEEK(40001!)*256,:PRINT USING "#.##";(2.85*((PEEK(40000!)+PEEK(40001!)*256)-TEMPS0))/(TEMPS7-TEMPS0)
130 NEXT
140 GOTO 80
1090 RESTORE 1150:FOR I=&H9C42 to &H9C75
1100 READ A$
1110 POKE I,VAL("&h"+A$)
1120 NEXT I
1130 VOLTMETRE=&H9C42
1140 RETURN
1150 DATA FA,53,51,50,52,BB,40,9C,8A,07,BA,78,03,EE,89,00,10,49,75,FD
1160 DATA BB,41,9C,8A,07,EE,8A,79,03,BB,00,00,43,EC,24,80,74,FA,89,1E
1170 DATA 40,9C,5A,58,59,5B,FB,CB,0,0,0,0,0,0,0,0,0,0,0

4 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
Il est inutile de poster deux fois la même question à quelques minutes d'interval.

Il te faut simplement attendre.
Pour ce qui est de ton problème, savoir si c'est  GW Basic ou QBasic pourrait (peu être) nous aider.
J'ai regardé un peu sur le net mais pour l'instant rien de bien défini.

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
17
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
8 septembre 2010

Pardon pour les deux messages, mais je ne voyais pas apparaitre mon premier message dans la liste des nouveaux sujets, donc j'ai recommencé, et je me suis rendu compte de l'erreur ensuite.

Je pnche plutot pour du GW, mais sans certitude. Il faut dire que ça date !

En attendant, merci pour te pncher sur mon problème. 9a fait un moment que je cherche, sans trouver d'équivalence VB6 pour les commandes Peek, Poke et Data.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
"...savoir si c'est  GW Basic ou QBasic pourrait (peu être) nous aider...."

Ca ne t'aiderais pas de manière significative, Julien

Christian >
Ton code n'est pas directement transposable en VB6, il faut que tu revoie entièrement la structure et que tu repense complètement ton programme.
Pour commencer Peek et Poke permettait respectivement de lire et d'écrire directement dans la fenètre mémoire du processeur (mémoire ou périphériques).
Ceci est impossible et strictement interdit sous Windows. Il faut passer par des drivers pour pouvoir le faire.
Habituellement, pour dialoguer avec le port LPT, on utilise souvent, la dll InpOut32.dll que tu pourras trouver sur ce site --> http://logix4u.net/Legacy_Ports/Parallel_Port/A_tutorial_on_Parallel_port_Interfacing.html

De plus il semble que ton programme utilise une configuration non standard, si c'est bien un port LPT qu'il pilote, il le pilote en 40000 soit &h9C40 en hexa. Hors le port imprimante est normalement en &h370 (parfois &h270 sur de vieilles machines dos)

En gros tu as beaucoup de boulot, car il ne s'agit pas de traduire ce programme, mais bien d'en créer un nouveau en comprennant ce que celui-là faisait.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
17
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
8 septembre 2010

Tout à fait d'accord avec toi, Casy, mais ce qui m'ennuie, se sont les lignes de data, qui, comme j'ai compris, est une routine en langage machine, et là....
J'ai cherché sur la toile les caractéristiques du composant principal de la carte, et rien.... alors encore moins d'exemple de code.

Dur dur pour moi !