Transfert d'un progr écrit en Basic...en VB6

maramice
Messages postés
9
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
3 octobre 2006
- 22 sept. 2006 à 18:47
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Derniè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.

Merci à tous.

 

maramice[8D]

25 réponses

PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
13 oct. 2006 à 21:03
umm, je ne pige pas....

des sub récursives sans sortie?
il manque des next (boucle for), et des end sub aussi.

OUT et INP c'est quoi?

tu peux appeler lop avec D en paramètre par exemple, avec une boucle While D <> ton critère de sortie

là je n'arrive pas à me représenter le résultat (surtout avec les variables sans déclaration, et sans trace)

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
lcv1212
Messages postés
18
Date d'inscription
mercredi 6 septembre 2006
Statut
Membre
Dernière intervention
16 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.

Peut tu m'aider a traduire mon programme

lcv1212
[Insert_Emoticon%28%27/imgs2/smile_dissapprove.gif%27%29; ]
0
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
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

<small>Coloration
syntaxique automatique [AFCK] </small>
       

<hr size ="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
lcv1212
Messages postés
18
Date d'inscription
mercredi 6 septembre 2006
Statut
Membre
Dernière intervention
16 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

lcv1212
[Insert_Emoticon%28%27/imgs2/smile_dissapprove.gif%27%29; ]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
3 février 2018
49
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
0