Une recette BASIC sous DOS pur (jusqu'à 6.22, sous Win3.11, ça marche encore, après ça doit être interdit par le système pour des raisons d'architecture soft et de sécurité) issue d'une revue intéressante : Computers in Physics, vol 8, n°1, Jan/Feb 1994 p45 à 51. Computers in Chemistry est pas mal non plus
.
def seg = &H0040
y% = 256 * peek(&H09) + peek(&H08)
dport% = y%
sport% = y% +1
cport% = y% +2
dport% est l'adresse du Data port
sport% l'adresse où on peut lire le status
cport% le control port.
Par out dport%, n%, on envoie l'octet n% sur le port DATA (les 8 fils du port Centronics, s'il est "bidirectionnel" ).
Par a% = inp(dport%), on lit les 8 fils d'un coup et le résultat est dans a%.
NB :
Control port : y a fil (Centronics/DB25) 1 /1: STROBE, 14/14 : AutoFeed, 31/16 : Initiate, 36/37 SLCT_IN
Status Port : 10/10 : ACK, 11/11 : Busy, 12/12 : Paper End, 13/13 : Select, 32/15 : Error.