Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Dossier : Séquences d'échappement de l'imprimante (AmigaDOS 1.0)
(Article écrit par Robert Pariseau et extrait de BIX - décembre 1985)
|
|
AmigaDOS fournit trois gestionnaires ("handlers") qui peuvent être utilisés pour effectuer des entrées/sorties
vers une imprimante. Il s'agit de PAR:, SER: et PRT:, se référant respectivement à parallèle, série et
imprimante. Si vous voulez envoyer des données à l'imprimante en utilisant les routines du système de
fichiers, vous ouvrirez (avec Open()) l'un de ces fichiers et ferez des appels avec Write() vers celui-ci.
Les commandes CLI prévoient également que vous utilisiez ces chaînes comme paramètres de fichier. Par exemple,
vous pouvez envoyer un fichier au gestionnaire d'imprimante avec la commande "copy myfile to prt:".
De même, vous utilisez ces noms de gestionnaire lorsque vous essayez d'écrire sur l'imprimante à partir
de langages comme ABasiC (pour des raisons de compatibilité, l'Amiga BASIC de Microsoft définit également
LPT1 comme étant identique à PRT:).
Un gestionnaire AmigaDOS est simplement un morceau de code d'interface qui traduit les appels au système
de fichiers indépendants du périphérique, comme Write(), en trafic de messages appropriés vers les
"périphériques" implémentés dans Exec, le noyau multitâche de l'Amiga. Le gestionnaire PAR: utilise
le périphérique logique "parallel.device", qui est le code Exec qui gère le connecteur du port parallèle
à l'arrière de votre Amiga. Le gestionnaire SER: utilise le périphérique logique "serial.device",
qui gère le connecteur du port série.
En d'autres termes, lorsque vous effectuez une sortie vers PAR: ou SER:, vous parlez directement au
matériel sans aucun niveau d'interprétation intermédiaire. Si vous avez une imprimante Okimate 20
connectée à votre port parallèle, les séquences d'échappement envoyées à PAR: l'atteindront directement
et auront l'effet tel qu'il a été définies par Okidata.
L'impression vers PAR: ou SER: est assez simple. Gardez à l'esprit qu'un fichier texte AmigaDOS standard
utilise LF comme séparateur de ligne (et non CR ou CR-LF), et qu'un fichier peut ou non avoir un LF à
la fin. Vous pouvez ajouter un caractère de retour à la ligne à la fin de vos lignes (dans un programme
simple que vous créez), ou, si votre imprimante offre cette option, activez le commutateur qui vous
donne automatiquement un CR lorsque l'imprimante reçoit un LF
(les entrées de PAR: et SER: sont un peu plus complexes, car elles font des entrées/sorties avec tampon -
mais je m'égare).
Si vous écrivez un programme, vous pouvez éviter tous ces gestionnaires en effectuant un OpenDevice()
directement sur le périphérique Exec auquel vous souhaitez parler. Vous passez ensuite les blocs de
demande d'entrées/sorties au périphérique en utilisant les appels d'entrées/sorties fournis par Exec
(DolO() et ses amis). L'avantage de parler directement au périphérique est que vous bénéficiez de beaucoup
plus de flexibilité, par exemple des choses comme les entrées/sorties asynchrones et la possibilité de
définir les paramètres du périphérique tels que la vitesse de transmission en série. Pour plus d'informations
sur la façon d'appeler la bibliothèque système et les routines du périphérique et sur les fonctions disponibles,
veuillez consulter le "ROM Kernel Manual" de l'Amiga (qui sera bientôt disponible dans les magasins !).
Notez que les paramètres d'imprimante de l'outil Preferences n'ont aucun effet sur le fonctionnement des
gestionnaires PAR: et SER: ! (Preferences est toutefois utilisé pour définir la vitesse de transmission
par défaut utilisée par SER:). Toute fonction spéciale que vous voulez que votre imprimante exécute dépend
de vous lorsque vous utilisez PAR: ou SER:. Vous devez choisir les séquences d'échappement correctes à
envoyer pour effectuer même les fonctions de style initialisation, comme le réglage des marges. Évidemment,
cela vous oblige à savoir quel style d'imprimante est connecté à votre Amiga et si elle est connectée au
port série ou au port parallèle.
Ce qui nous amène à PRT:. Le gestionnaire PRT: utilise le périphérique logique Exec "printer.device". Le périphérique
d'impression utilise les informations qu'il trouve dans les paramètres de Preferences pour comprendre le
type d'imprimante que vous avez connecté et comment vous voulez qu'elle soit utilisée. Sur la base du paramètre
de port d'imprimante que vous avez défini dans Preferences, le périphérique d'impression communique avec le
périphérique série ou parallèle pour atteindre l'imprimante.
Le périphérique d'impression ne comprend que ses propres séquences d'échappement, indépendantes de l'imprimante.
Il convertit ces séquences d'échappement en séquences d'échappement spécifiques à l'imprimante, appropriées
à l'imprimante actuellement sélectionnée dans Preferences. En outre, la fonction "Initialize" (qui est invoquée
lorsque vous ouvrez le périphérique d'impression ou lorsque vous lui envoyez la séquence d'échappement Initialize)
permet d'envoyer les séquences d'échappement appropriées à votre imprimante pour la configurer en fonction
des options que vous avez sélectionnées dans Preferences. C'est ainsi, par exemple, que vos paramètres de
marge sont envoyés à l'imprimante.
Si vous utilisez le périphérique d'impression (ou PRT:), vous pouvez écrire du code qui est largement
indépendant du type d'imprimante que vos clients ont sur leur Amiga.
Notez que lorsque vous utilisez le périphérique d'impression (ou PRT:), vous devez désactiver toute option
de votre imprimante permettant de générer automatiquement un CR, LF ou CR-LF lorsque l'imprimante reçoit
un LF. Le périphérique d'impression fournira des CR-LF de fin de ligne si nécessaire. Notez également qu'en
plus de l'impression alphanumérique décrite ici, l'imprimante permet d'imprimer en noir et blanc, en niveaux
de gris et en couleurs, sous forme de graphismes tramés. Cette fonction n'est disponible que lorsque l'on
parle directement au périphérique d'impression (pas à partir de PRT:).
Bogues connus
- Le périphérique série en version 1.0 (et donc, SER:) ne lit pas de manière fiable à des vitesses de
transmission plus élevées. Les écritures fonctionnent très bien. Le périphérique série utilise le contrôle
de flux Ctrl-S/Ctrl-Q (XON/XOFF) uniquement pour la V1.0.
- Le périphérique d'impression en version 1.0 n'interprète pas correctement "length=-1", qui est censé
indiquer que vous avez donné à l'imprimante une chaîne à terminaison nulle. PRT: n'est pas affecté par
cela, puisque le code du gestionnaire alimente toujours le périphérique d'impression avec la longueur correcte.
|