Bonjour,
J'ai fait des recherches sur mes disquettes.
Sous QBASIC on indiquait à l'époque l'adresse d'entrée du port ou les données étaient lues ou envoyées.
sur le port LPT1 (centronic DB25).
H3BC PORT d'entrée du LPT1
220H corespondait au port d'entrée de la carte sound sous DOS
Exemple d'un prog en qbasic pour vérifier une EPROM programmer par rapport d'un fichier source
1 REM----------------VEROM--------------
10 CLS
20 PRINT "NOM DU FICHIER DE REFERENCE ?"
30 INPUT F$
40 OPEN "i", #1, F$ + ".rom" OUVRIR LE FICHIER.ROM DE REFERENCE
50 PRINT "ATTENTION LE +5v DOIT ETRE COUPE"
60 OUT &H3BC, 64 tu peux voir l'instruction d'adressage du port LPT
70 PRINT "CONNECTER L'EPROM A LIRE, PUIS PRESSER ENTRER"
80 INPUT Z$
90 PRINT "APPLIQUER LE +5v ,PUIS PRESSER ENTER"
100 INPUT Z$
110 PRINT "-------------COMPARAISON EN COURS------------"
120 G = 0
130 d = 0
140 FOR F = 0 TO 7
150 OUT &H3BC, F
160 B = INP(&H3BD)
170 IF (B AND 64) = 64 THEN d = d + (2 ^ F)
180 NEXT F
190 OUT &H3BC, 32
200 INPUT #1, C
210 IF EOF(1) THEN 250
220 IF C <> d THEN PRINT G, d, "au lieu de", C.....................ERREUR DE LECTURE
230 G = G + 1
240 GOTO 130
250 PRINT "--------------- COUPER LE +5V -----------"
260 BEEP: END
Mode VB
propriété RThreshold du composant MSComm
En VB il faut que le composant MSComm sur VB soit coher
Voila plus simple pour un port série avec une vitesse de transfert de 9600 B
Bon ce prog n'est pas de moi mais il pourra t'aider
/debut code
Private Sub Form_Load()
Form1.Caption = "Mode auto"
With MSComm1
.CommPort = 1
.Handshaking = 0
.RThreshold = 1
.RTSEnable = True
.Settings = "9600,n,8,1"
.SThreshold = 1
.PortOpen = True
End With
Text1.Text = ""
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False 'on ferme le port quand l'appli quitte
End Sub
Private Sub MSComm1_OnComm()
Dim InBuff As String
Select Case MSComm1.CommEvent
' On effectue la gestion des erreurs (cf. le modèle ci-dessus)
' Ici, on gère en fait pas grand-chose, mais c'est pour illustrer la démarche ;)
'liste des erreurs possibles
Case comEventBreak 'On a reçu un signal d'interruption (Break)
Case comEventCDTO ' Timeout de la porteuse
Case comEventCTSTO ' Timeout du signal CTS (Clear To Send)
Case comEventDSRTO ' Timeout du signal de réception
Case comEventFrame ' Erreur de trame
Case comEventOverrun ' Des données ont été perdues
Case comEventRxOver ' Tampon de réception saturé
Case comEventRxParity ' Erreur de parité
Case comEventTxFull ' Tampon d'envoi saturé
Case comEventDCB ' Erreur de réception DCB (jamais vu)
'liste des événements possibles qui sont, eux, normaux
Case comEvCD 'Changement dans la broche CD (porteuse)
Case comEvCTS 'Changement dans broche CTS
Case comEvDSR 'Changement dans broche DSR (réception)
Case comEvRing 'Changement dans broche RING (sonnerie)
'Chouette! on a reçu des données :)
Case comEvReceive
Dim tampon() As Byte
tampon = MSComm1.Input
Call Traitement(tampon) 'traitement données
Case comEvSend ' il y a des caractères à envoyer
Case comEvEOF 'on a reçu le caractère EOF
End Select
End Sub
Sub Traitement(tampon As String)
'cette procédure sert à traiter l'information reçue dans le tampon
Badge.SelStart = Len(Badge.Text)
Badge.SelText = tampon 'ici, on affiche le résultat dans un champ de texte
End Sub
/fin code