maramice
Messages postés9Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention 3 octobre 2006
-
22 sept. 2006 à 18:47
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
13 oct. 2006 à 22:24
Bonjour,j'ai retrouvé un programme que j'avais écrit (il y à + de 25 ans) en Basic et qui me permettait de sauver ou de charger des banques de données Midi pour un synthé Yamaha Electone HS dont je me sert toujours.
Je dispose de VB 6 mais je n'ai jamais mordu dans cette application faute de temps.
Maintenant retraité, je voudrais transposer les instructions en VB6 .Le listing des instructions tient sur 9 pages mais je n'arrive même plus à comprendre ma propre programmation...!
Puis-je envisager d'avoir un coup de main pour transposer le listing.Je peux le scanner.
lcv1212
Messages postés18Date d'inscriptionmercredi 6 septembre 2006StatutMembreDernière intervention16 octobre 2006 13 oct. 2006 à 21:13
Bonsoir pcpt,
inp et out son des codes de la DLL input32. C'est des codes qui permet de controller les ports de sortie et d'entrees du port parallel.
Il y'a quelque annees j'ai fais une cartes d'entree(16) et sorties(16) et cette carte d'interface fonctionais avec un program en Qbasic. Maintenant j'aissaiye de faire fonctionner cette carte avec vb6 car avec la dll input 32 ca fonctionne sous XP.
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 13 oct. 2006 à 21:31
beh j'veux bien essayer, le problème est que je n'ai jamais fais de QBasic (quoi que la syntaxe semble presque identique)
voici un début de remarques, fait avant de t'envoyer le dernier post, je doute que çà puisse servir mais bon...
Sub lop()
T = 1
A = 1
B = 16
V = A
D = 1
Call CONTO
V = B
D = 2
Call CONTO
V = B
D = 2
Call CONTO
A = A * 2: If A = 256 Then A = 1
B = B * 2: If B = 256 Then B = 1
For C = 1 To 1000
DoEvents 'ici le but de ta boucle est
de faire une pause
'il n'y aura aucun
effet SANS DOEVENTS
'il faudra d'ailleurs
tester parce qu'une bouble de 1 à 1000
'très est insuffisant pour les PC actuels.
'peut-être utiliser l'API SLEEP
Next C
Call lop 'attention, procédure récursive,
_
tu ne sortiras
jamais!!
End Sub
Sub BIT16()
For A = 0 To 255
B = 255 - A: V = A: D = 1
Call CONTO
V = B: D = 2
Call CONTO
D = 3
Call CONTI
V1 = V
D = 4
Call CONTI
V2 = V
VA = (Int(V1 / 8) + (Int(V2 / 8) * 16))
LABEL1.Caption = VA
LABEL2.Caption = A
T = T + 1
For C = 1 To 500
DoEvents 'pareil que
lop
Next C
D = 5
Call CONTI
V1 = V
D = 6
Call CONTI
V2 = V
VA = (INTV1 / 8) + (Int(V1 / 8 * 16))
LABEL3.Caption = VA
LABEL4.Caption = B
T = T + 1
For C = 1 To 500
DoEvents 'pareil que
lop
Next C
Next A
Call BIT16 'pareil que lop
End Sub 'CE
END SUB éTAIT ABSENT
Sub CONTI()
OUT 958, (D + 8) 'OUT ?
c'est quoi çà?
For C = T To O Step -1 'T définie? O définie?
zéro?
OUT 958, (D)
Next C
For C = T To 0 Step -1
V = INP(957)
OUT 958, (D + 8)
Next C
For C = T To 0 Step -1 'T sera déjà égal à 0 (précédente
boucle)
DoEvents
Next C
OUT 958, (D)
For C = T To 0 Step -1
DoEvents
Next C
Call lop '<==== CA C'EST UN DES PROBLS
Call BIT16 '<==== "
" " "
End Sub
Sub CONTO()
'
pas modifié
OUT 956, (V)
For C = T To 0 Step -1
OUT 958, (D + 8)
FOR C .......
OUT 958, (D)
FOR C .......
OUT 958, (D + 8)
FOR C = T TO ........
OUT 958, (8)
For C = T To 0 Step -1: Next C
Call lop
Call BIT16
End Sub 'CE
END SUB éTAIT ABSENT
lcv1212
Messages postés18Date d'inscriptionmercredi 6 septembre 2006StatutMembreDernière intervention16 octobre 2006 13 oct. 2006 à 21:49
salut pcpt
les code out 958,(X) sert a ouvrir l'adresse 958 du port parallel et d'envoye la valeur X.
avec la dll inpout32.dll on peut ecrir ou lire sur le port parallel.
a l'adresse 956 c'est seulement des output(sorties mais il y'a seulement 8) D0 a D7
mais moi j'en veut 8 de plus alors je me sert d'un autre adresse 958 qui me permet d'avoir 8 autre sortie.
Si je reussi a faire fonctionner cette carte je donnerais les dessins de la carte et le programe
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 13 oct. 2006 à 22:24
ok pour in out (dll)
quelle est la première (voire unique) sub que ton appli appelle directement, et quelles sont les valeurs (trace) de tes variables à la première entrée, et à la dernière sortie (estimation tout au moins) ?
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp