-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconsts.go
289 lines (249 loc) · 8.02 KB
/
consts.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
package minigo
const ParityBitPosition = 7
const (
ResolutionSimple = iota
ResolutionDouble
)
const (
ColonnesSimple = 40
LignesSimple = 25
ColonnesDouble = ColonnesSimple / 2
LignesDouble = LignesSimple / 2
)
// 1 Mode Vidéotex
//
// 1.2.3 Codage des caractères visualisables
// Jeu G0 => alphanumérique (voir p.100)
// Jeu G1 => semi-graphique (voir p.101 et 102)
// Jeu G2 => complément à G0 (voir p.103)
// Les caractères du jeu G2 sont obtenus si précédés du code SS2 (0x19).
// On peut les afficher directement en utilisant printSpecialChar(byte b) :
const (
Livre = 0x23
Dollar = 0x24
Diese = 0x26
Paragraphe = 0x27
FlecheGauche = 0x2C
FlecheHaut = 0x2D
FlecheDroite = 0x2E
FlecheBas = 0x2F
Degre = 0x30
PlusOuMoins = 0x31
Division = 0x38
UnQuart = 0x3C
UnDemi = 0x3D
TroisQuart = 0x3E
OeMajuscule = 0x6A
OeMinuscule = 0x7A
Beta = 0x7B
)
// Les diacritiques ne peuvent pas être affichés seuls.
// printSpecialChar(byte b) n'aura donc aucun effet ici.
const (
AccentGrave = 0x41
AccentAigu = 0x42
AccentCirconflexe = 0x43
Trema = 0x48
Cedille = 0x4B
)
// 1.2.4 Codage des attributs de visualisation (voir p.91)
// Ces fonctions sont obtenues si précédées du code ESC (0x1B).
// Nous avons alors accès à la grille C1. On peut y accéder directement
// en utilisant attributs(byte attribut).
// Couleur de caractère
const (
CaractereNoir = 0x40
CaractereRouge = 0x41
CaractereVert = 0x42
CaractereJaune = 0x43
CaractereBleu = 0x44
CaractereMagenta = 0x45
CaractereCyan = 0x46
CaractereBlanc = 0x47
)
// Couleur de fond
// En mode texte, l'espace (0x20) est l'élément déclencheur du changement de couleur de fond (voir p.93). Ce changement est valide jusqu'à la fin d'une rangée.
const (
FondNoir = 0x50 // Pour éviter d'avoir cet espace à l'écran, une autre solution (dans ce cas le caractère sera noir), est de mettre en oeuvre le fond inversé.
FondRouge = 0x51 // Par exemple :
FondVert = 0x52 // minitel.attributs(CARACTERE_VERT);
FondJaune = 0x53 // minitel.attributs(INVERSION_FOND);
FondBleu = 0x54 // minitel.print("J'ECRIS ICI MON TEXTE");
FondMagenta = 0x55 // minitel.attributs(FOND_NORMAL);
FondCyan = 0x56
FondBlanc = 0x57
)
// Taille
const (
GrandeurNormale = 0x4C // Non utilisable en mode graphique
DoubleHauteur = 0x4D // Non utilisable en mode graphique
DoubleLargeur = 0x4E // Non utilisable en mode graphique
DoubleGrandeur = 0x4F // Non utilisable en mode graphique
)
// Clignotement ou fixité
const (
Clignotement = 0x48
Fixe = 0x49
)
// Début et fin de masquage
const (
Masquage = 0x58
Demasquage = 0x5F
)
// Début ou fin de lignage
const (
FinLignage = 0x59
DebutLignage = 0x5A // En mode texte, l'espace (0x20) marque le début d'une zone de lignage. C'est l'élément déclencheur (voir p.93).
)
// Fond inversé ou normal
const (
FondNormal = 0x5C // Non utilisable en mode graphique
InversionFond = 0x5D // Non utilisable en mode graphique
)
// Echappement vers la norme ISO 6429
const Csi = 0x1B5B
// 1.2.5 Fonctions de mise en page (voir p.94)
const (
Bs = 0x08 // BackSpace : Déplacement du curseur d'un emplacement de caractère à gauche.
Ht = 0x09 // Horizontal Tab : Déplacement du curseur d'un emplacement de caractère à droite.
Lf = 0x0A // Line Feed : Déplacement du curseur d'un emplacement de caractère vers le bas.
Vt = 0x0B // Vertical Tab : Déplacement du curseur d'un emplacement de caractère vers le haut.
Cr = 0x0D // Carriage Return : Retour du curseur au début de la rangée courante.
)
// Les fonctions de type CSI sont développées à l'intérieur de la classe Minitel (plus bas).
const (
Rs = 0x1E // Record Separator : Retour du curseur en première position de la rangée 01. Ce code est un séparateur explicite d'article.
Ff = 0x0C // Form Feed : Retour du curseur en première position de la rangée 01 avec effacement complet de l'écran.
Us = 0x1F // Unit Separator : Séparateur de sous-article.
Can = 0x18 // Cancel : Remplissage à partir de la position courante du curseur et jusqu'à la fin de la rangée par des espaces du jeu courant ayant l'état courant des attributs. La position courante du curseur n'est pas déplacée.
)
// 1.2.6 Autres fonctions (voir p.98)
// 1.2.6.1 Fonctions diverses :
const (
Rep = 0x12 // Repetition : Permet de répéter le dernier caractère visualisé avec les attributs courants de la position active d'écriture.
Nul = 0x00 // Null :
Sp = 0x20 // Space : Séparateur de zone possédant les mêmes attributs
Del = 0x7F // Delete :
Bel = 0x07 // Bell : Provoque l'émission d'un signal sonore
)
// 1.2.6.3 Fonctions d'extension de code
const (
So = 0x0E // Shift Out : Accès au jeu G1. => Mode semi-graphique
Si = 0x0F // Shift In : Accès au jeu G0. => Mode alphanumérique
Ss2 = 0x19 // Single Shift 2 : Appel d'un caractère unique du jeu G2.
Esc = 0x1B // Escape : Echappement et accès à la grille C1.
)
// 1.2.6.4 Visualisation du curseur
const (
CursorOn = 0x11 // Visualisation de la position active du curseur (curseur actif).
CursorOff = 0x14 // Arrêt de la visualisation de la position active (curseur inactif).
)
// Chapitre 3 : Le clavier
// 6 Séquences émises par les touches de fonction en mode Vidéotex ou Mixte (voir p.123)
const (
Special = 0x13
Envoi = 0x1341
Retour = 0x1342
Repetition = 0x1343
Guide = 0x1344
Annulation = 0x1345
Sommaire = 0x1346
Correction = 0x1347
Suite = 0x1348
ConnexionFin = 0x1349
)
// 7 Codes et séquences émis par les touches de gestion du curseur et d'édition en mode Vidéotex ou Mixte (voir p.124)
const (
ToucheFlecheHaut = 0x1B5B41
SuppressionLigne = 0x1B5B4D
ToucheFlecheBas = 0x1B5B42
InsertionLigne = 0x1B5B4C
ToucheFlecheDroite = 0x1B5B43
DebutInsertionCaractere = 0x1B5B3468
FinInsertionCaractere = 0x1B5B346C
ToucheFlecheGauche = 0x1B5B44
SupressionCaractere = 0x1B5B50
)
// Chapitre 6 : Le Protocole (voir p.134)
// 1 Généralités (voir p.134)
const (
CodeEmissionEcran = 0x50
CodeEmissionClavier = 0x51
CodeEmissionModem = 0x52
CodeEmissionPrise = 0x53
CodeReceptionEcran = 0x58
CodeReceptionClavier = 0x59
CodeReceptionModem = 0x5A
CodeReceptionPrise = 0x5B
)
// 3 Commandes d'aiguillages et de blocage des modules
// 3.2 Format des commandes (voir p.135)
const (
AiguillageOff = 0x60
AiguillageOn = 0x61
)
// 3.4 Demande de statut d'aiguillages des modules
const (
To = 0x62
From = 0x63
)
// 8 Commandes relatives à la prise (voir p.141)
const (
Prog = 0x6B
StatusVitesse = 0x74
)
// 9 Commandes relatives au clavier (voir p.141)
const Eten = 0x41 // Clavier en mode étendu
// 10 Commandes relatives à l'écran (voir p.142)
const Rouleau = 0x43 // Ecran en mode rouleau
// Procédure de correction d'erreur
const (
PCE = 0x44
Nack = 0x15
Syn = 0x16
)
// Renvoyé par le Minitel pour informer d'erreurs de parité
const Sub = 0x1A
// 11 Commandes relatives à plusieurs modules (voir p.143)
const (
Start = 0x69
Stop = 0x6A
Minuscules = 0x45 // Mode minuscules / majuscules du clavier
)
// 12 Commandes Protocole relatives au changement de standard (voir p.144)
const (
Mixte1 = 0x327D
Mixte2 = 0x327E
Telinfo = 0x317D
)
// 13 L'état initial du minitel
// 13.2 Sur réception d'une commande de reset
const Reset = 0x7F
// Constantes pour h_line et v_line
type LineType byte
const (
Bottom LineType = 0x5F
HCenter LineType = 0x60
Left LineType = 0x7B
VCenter LineType = 0x7C
Right LineType = 0x7D
Top LineType = 0x7E
)
// A ranger
const (
Pro1 = 0x39
Pro2 = 0x3A
Pro3 = 0x3B
)
const (
Terminal = 0x71
Fonctionnement = 0x73
Vitesse = 0x75
Protocole = 0x77
)
const (
StatusClavier = 0x72
RepStatusClavier = 0x73
)
// Correspondance ASCII / Videotex
const CharTable = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_xabcdefghijklmnopqrstuvwxyz"