CODINGLA BIBLE DU CPC 6128

La bible du CPC 6128 : 2.05.05 Text screen (TXT)

Ce pack est responsable de la gestion de textes, ce qui comprend également l'organisation des fenêtres.

Quelques remarques sont nécessaires en ce qui concerne la manipulation du curseur:
Les coordonnées réclamées ou fournies par les routines du curseur doivent être comprises comme des indications logiques, c'est-à-dire qu'elles se rapportent à la fenêtre actuelle. Les coordonnées 1,1 correspondent à l'angle supérieur gauche de la fenêtre. Si vous voulez par exemple positionner, avec TXT SET CURSOR, le curseur en dehors de la fenêtre, il sera automatiquement fixé sur la prochaine position possible à l'intérieur de la fenêtre, si le curseur est activé ou si un caractère doit être représenté ensuite.
La position actuelle (que vous pouvez lire avec TXT GET CURSOR) est ainsi également modifiée.

Si le curseur est désactivé, la nouvelle position souhaitée est d'abord acceptée, jusqu'à ce qu'un caractère soit représenté ou jusqu'à ce que le curseur soit activé.

1074 ************************************** TXT INITIALISE

initialisation complète du pack texte.

1074 TXT RESET
107E TXT fixer paramètres défaut
1081 Reset Params (toutes les fenêtres)

1084 ******************************************* TXT RESET

réinitialiser le pack texte.

1084 Restore TXT Indirections
1087 Move (hl+3) vers ((hl+1)), cnt=(hl)
108D db 0F 15 octets
108E dw BDCD adresse objet
1090 TXT DRAW/UNDRAW CURSOR
1093 TXT DRAW/UNDRAW CURSOR
1096 TXT WRITE CHAR
1099 TXT UNWRITE CHAR
109C TXT OUT ACTION

109F ***************************** Reset Params (toutes les
fenêtres)

10A1 début paramètres fenêtre 0
10A4 position curseur actuelle (Row, Col)
10AF (fenêtre écran actuelle)
10B3 (fenêtre écran actuelle)
10BB TXT STR SELECT
10BE TXT DRAW/UNDRAW CURSOR
10C1 TXT GET PAPER
10C4 (TXT paper actuel)
10C7 TXT GET PEN
10CA (TXT pen actuel)
10D6 TXT STR SELECT
10DA (TXT pen actuel)
10DD fixer paramètres défaut

10E4 ************************************ TXT STR SELECT

sélectionner fenêtre de texte

10E6 fenêtre écran actuelle
10F1 Adr. paramètres fenêtre vers de
10F4 ldir cnt=15
10F8 Adr. paramètres fenêtre vers de
10FC ldir cnt=15

1103 ********************************* TXT SWAP STREAMS

échanger les paramètres (couleurs, limites de fenêtre etc.) de deux fenêtres.

1103 (fenêtre écran actuelle)
1108 TXT STR SELECT
HOC (fenêtre écran actuelle)
110F Adr. paramètres fenêtre vers de
1114 Adr. paramètres fenêtre vers de
1118 ldir cnt=15
111C TXT STR SELECT

111E ******************************************** ldir cnt=15

1126 **************************** Adr paramètres fenêtre vers de

1135 position curseur actuelle (Row, Col)

1139 ********************************** fixer paramètres défaut

113C (flag curseur actuel)
1140 TXT SET PAPER
1144 TXT SET PEN
1148 TXT SET GRAPHIC
114B TXT SET BACK
1154 TXT WIN ENABLE
1157 TXT VDU ENABLE

115A *********************************** TXT SET COLUMN

fixer position horizontale du curseur.

115B fenêtre actuelle gauche
115F (position curseur actuelle (Row, Col))

1165 **************************************** TXT SET ROW

fixer position verticale du curseur.

1166 fenêtre actuelle haut
116A (position curseur actuelle (Row, Col)

1170 ************************************ TXT SET CURSOR

positionner le curseur.

1170 fenêtre actuelle haut, gauche + hl
1173 TXT DRAW/UNDRAW CURSOR
1176 (position curseur actuelle (Row, Col)
1179 TXT DRAW/UNDRAW CURSOR

117C *********************************** TXT GET CURSOR

demander la position actuelle du curseur.

117C (position curseur actuelle (Row, Col))
117F fenêtre actuelle haut, gauche - hl 1182 (act. Roll Count)

1186 ***************************** fenêtre actuelle haut, gauche + hl

1186 (fenêtre actuelle haut) 118C (fenêtre actuelle gauche)

1193 ***************************** fenêtre actuelle haut, gauche -hl

1193 (fenêtre actuelle haut) 119B (fenêtre actuelle gauche)

11A4 ****************************************** Move Cursor

11A4 TXT DRAW/UNDRAW CURSOR
11A7 (position curseur actuelle (Row, Col))
11AA hl à l'intérieur limites fenêtre?
11AD (position curseur actuelle (Row, Col))
11B2 act. Roll Count
11BA TXT GET WINDOW
11BD (TXT paper actuel)
11C1 SCRSWROLL
11C5 SCRHWROLL

11CA ************************************* TXT VALIDATE

curseur à l'intérieur de la fenêtre de texte?

11CA fenêtre actuelle haut, gauche + hl
11CD hl à l'intérieur limites fenêtre?
11D1 fenêtre actuelle haut, gauche - hl

11D6 ***************************** y à rintérieur limites fenêtre

11D6 (fenêtre actuelle droite)
11DD (fenêtre actuelle gauche)
11E2 (fenêtre actuelle gauche)
11E7 (fenêtre actuelle droite)
11EF (fenêtre actuelle haut)
11F7 (fenêtre actuelle bas)

1208 ************************************ TXT WIN ENABLE

déterminer taille de la fenêtre de texte actuelle.

1208 SCR CHAR LIMITS
1229 (fenêtre actuelle haut)
122C (fenêtre actuelle bas)
123A (flag fenêtre (0=écran activé))
1252 *********************************** TXT GET WINDOW

Quelle taille a la fenêtre de texte actuelle?

1252 (fenêtre actuelle haut)
1255 (fenêtre actuelle bas)
1259 (flag fenêtre (0=écran activé))

125F *********************** TXT DRAW/UNDRAW CURSOR

fixer/supprimer le curseur.

125F (flag curseur actuel)

1265 *********************** TXT PLACE/REMOVE CURSOR

fixer curseur sur l'écran/enlever curseur de l'écran.

126B (TXT pen actuel)
126F SCR CHAR INVERT

1276 ***************************************** TXT CUR ON

autoriser curseur (système d'exploitation).

1279 Cur Enable Cont'd

127E **************************************** TXT CUR OFF

verrouiller curseur (système d'exploitation, priorité supérieure à TXT CUR ENABLE et TXT CUR DISABLE.

1281 Cur Disable Cont'd

1286 *********************************** TXT CUR ENABLE

autoriser curseur (programme utilisateur).

1288 ************************************* Cur Enable Cont'd

1289 TXT DRAW/UNDRAW CURSOR 128E flag curseur actuel
1294 TXT DRAW/UNDRAW CURSOR

1297 *********************************** TXT CUR DISABLE

verrouiller curseur (programme utilisateur).

1299 ************************************* çur Disable Cont'd

129A TXT DRAW/UNDRAW CURSOR
129F flag curseur actuel

12A6 **************************************** TXT SET PEN

fixer couleur de premier plan.

12A6 TXT pen actuel

12AB ************************************* TXT SET PAPER

fixer couleur d'arrière-plan

12AB TXT act. Paper
12AF TXT DRAW/UNDRAW CURSOR
12B3 SCR INK ENCODE
12B7 TXT DRAW/UNDRAW CURSOR

12BA *************************************** TXT GET PEN

quelle couleur de premier plan est-elle mise?

12BA (TXT pen actuel)
12BD SCR INK DECODE

12C0 ************************************* TXT GET PAPER

quelle couleur d'arrière plan est-elle mise?

12C0 (TXT paper actuel)
12C3 SCR INK DECODE

12C6 **************************************** TXT INVERSE

échanger couleurs de premier et arrière plans actuelles.

12C6 TXT DRAW/UNDRAW CURSOR
12C9 (TXT pen actuel)
12CF (TXT pen actuel)

12D4 *********************************** TXT GET MATRIX

aller chercher adresse du modèle en points d'un caractère.

12D6 TXT GET M TABLE

12F2 ************************************ TXT SET MATRIX

aller chercher adresse du modèle points (défini par l'utilisateur) d'un caractère déterminé.

12F3 TXT GET MATRIX

12FE *********************************** TXT SET M TABLE

fixer adresse de départ et premier caractère d'un matrice de points définie par l'utilisateur.

130A TXT GET MATRIX
131E TXT GET M TABLE
1321 ( 1 er caractère User Matrix)
1326 (Adr. User Matrix)

I32B ********************************** TXT GET M TABLE

adresse de départ et premier caractère d'une matrice utilisateur?

132B (1er caractère User Matrix) 1331 (Adr. User Matrix)
1335 *************************************** TXT WR CHAR

représenter caractère.

1336 (flag curseur actuel)
133C move Cursor
1340 (position curseur actuelle (Row, Col))
1345 TXT WRITE CHAR
1348 TXT DRAW/UNDRAW CURSOR

134B *********************************** TXT WRITE CHAR

écrire un caractère sur l'écran.

134C TXT GET MATRIX
1353 SCR UNPACK
1358 SCR CHAR POSITION
1366 SCR NEXT BYTE
136F SCR NEXT LINE
1377 (act. mode fond)

137B ************************************** TXT SET BACK

mode transparent activé/désactivé.

1384 (act. mode fond)
1388 ************************************** TXT GET BACK

quel mode transparent?

1388 (act. mode fond)
1392 (TXT pen actuel)
13A0 (TXT pen actuel)
13A5 SCR PIXELS

13A8 *********************************** TXT SET GRAPHIC

activer ou désactiver la représentation de caractères de commande.

13A8 (GRA Char WR Mode (0=disable))

13AC ************************************** TXT RD CHAR

lire un caractère de l'écran.

13AF move Cursor
13B2 TXT UN WRITE CHAR
13B6 TXT DRAW/UNDRAW CURSOR

13BE ******************************** TXT UNWRITE CHAR

lire un caractère de l'écran.

13BE (TXT pen actuel)
13C6 SCR REPACK
13DE SCR REPACK
13E4 TXT GET MATRIX

13FE **************************************** TXT OUTPUT

représenter ou exécuter caractères (de commande).

Amène le caractère dans l'accumulateur sur la fenêtre écran actuelle ou bien l'exécute s'il s'agit d'un caractère de commande. Notez que cette routine utilise l'indirection TXT OUT ACTION. Si vous l'avez 'détournée' TXT OUTPUT utilisera aussi votre routine et non la routine de la ROM

1402 TXT OUT ACTION

140A *********************************** TXT OUT ACTION

Sortie d'un caractère sur l'écran ou exécution d'un code de commande.

140B (GRA Char WR Mode (0=disable)
1410 GRA WR CHAR
1413 compteur de caractères Control Buffer
1418 Control Buffer plein?
141A oui, alors sauter
141C Control Buffer vide?
141D non, alors sauter
1420 caractère de commande?
1422 non, alors TXT WR CHAR
1425 compteur+1
142C (Start Control Buffer)
1430 table de saut caractère de commande
1436 nombre requis
1439 atteint paramètres de commande
143A non, alors sauter
1446 Start Control Buffer
144A call (de)
144E (compteur de caractères Control Buffer)

1452 *********************************** TXT VDU DISABLE

inhiber représentation du caractère.

1454 Cur Disable Cont'd

1459 *********************************** TXT VDU ENABLE

On peut écrire des caractères sur l'écran.

145B Cur Enable Cont'd

1460 ******************* FLAG CURSEUR ACTUEL VERS ACCU

1460 (flag curseur actuel)

1464 ****************copier sauts caractères de commande défaut

1465 (compteur de caractères Control Buffer)
1468 sauts caractères de commande défaut
146B table de saut caractère de commande
146E nombre d'octets
1471 copier

1474 *************************** sauts caractères de commande défaut

1474 db 80
1475 dw 1513 00

1477 db 81
1478 dw 1335 01 TXT WR CHAR

147A db 80
147B dw 1297 02 TXT CUR DISABLE

147D db 80
147E dw 1286 03 TXT CUR ENABLE

1480 db 81
1481 dw 0AE9 04 SCR SET MODE

1483 db 81
1484 dw 1940 05 GRA WR CHAR

1486 db 00
1487 dw 1459 06 TXT VDU ENABLE

1489 db 80
148A dw 14E1 07 bip-bip

148C db 80
148D dw 1519 08 CRSR Left

148F dw 80
1490 dw 151E 09 CRSR Right

1492 db &0
1493 dw 1523 0A CRSR Down

1495 db 80
1496 dw 1528 0B CRSR Up

1498 db 80
1499 dw 154F 0C TXT CLEAR WINDOW

149B db 80
149C dw 153F 0D CRSR sur début de ligne

149E db 81
149F dw 12AB OE TXT SET PAPER

14A1 db 81
14A2 dw 12A6 OF TXT SET PEN

14A4 db 80
14A5 dw 155E 10 supprimer caractère dans position CRSR

14A7 db 80
14A8 dw 1599 11 supprimer ligne jusqu'à position CRSR

14AA db 80
14AB dw 158F 12 supprimer ligne à partir de position CRSR

14AD db 80
14AE dw 1578 13 supprimer fenêtre jusqu'à position CRSR

14B0 db 80
14B1 dw 1565 14 supprimer fenêtre à partir de position CRSR

14B3 db 80
14B4 dw 1452 15 TXT VDU DISABLE

14B6 db 81
14B7 dw 14EC 16 mode transparent activé/désactivé

14B9 db 81
14BA dw 0C55 17 SCR ACCESS

14BC db 80
14BD dw 12C6 18 TXT INVERSE

14BF db 89
14C0 dw 150D 19 instruction SYMBOL

14C2 db 84
14C3 dw 1501 1A définir fenêtre

14C5 db 00
14C6 dw 14EB 1B aucun effet

14C8 db 83
14C9 dw 14F1 1C instruction INK

14CB db 82
14CC dw 14FA 1D instruction BORDER

14CE db 80
14CF dw 1539 1E CRSR Home

14D1 db 82
14D2 dw 1547 IF instruction LOCATE

14D4 ******************************** TXT GET CONTROLS

aller chercher adresse de la table de saut caractères de commande.

14D4 table de saut caractère de commande
14E1 *********************************************** bip-bip

14E6 SOUND QUEUE

14EC ****************************** mode transparent

activé/désactivé

14EE TXT SET BACK

14P1 ******************************************* l'nstruction INK

14F7 SCR SET INK
14FA************************************** instruction BORDER

14FE SCR SET BORDER
1501 ************************************** définir fenêtre
150A TXT WIN ENABLE

150D ******************************* instruction SYMBOL

1510 TXT SET MATRIX
1513 Move Cursor
1516 TXT DRAW/UNDRAW CURSOR

1519 ******************************************** CRSR Left

151E ******************************************* CRSR Right

1523 ******************************************* CRSR Down

1528 ********************************************* CRSR Up

152C Move Cursor

1539 ******************************************* CRSR Home

153F ******************************** CRSR sur début de ligne

153F Move Cursor
1542 (fenêtre actuelle gauche)

1547***************************************instructionLOCATE

154C TXT SET CURSOR

154F ******************************** TXT CLEAR WINDOW

vider fenêtre de texte actuelle.

154F TXT DRAW/UNDRAW CURSOR
1552 (fenêtre actuelle haut)
1555 (position curseur actuelle (Row, Col)
1558 (fenêtre actuelle bas)

155E ************************* supprimer caractère dans position CRSR

155E Move Cursor

1565 *************************** supprimer fenêtre à partir de position CRSR

1565 12 supprimer lignes â partir de position CRSR
1568 (fenêtre actuelle haut)
156B (fenêtre actuelle bas)
156F (position curseur actuelle (Row, Col))

1578 ************************** supprimer fenêtre jusqu'à position CRSR

1578 11 supprimer lignes jusqu'à position CRSR
157B (fenêtre actuelle haut)
157E (fenêtre actuelle droite)
1582 (position curseur actuelle (Row, Col)
1589 (TXT paper actuel)
158C SCR FILL BOX

158F ***************************** supprimer ligne à partir de position CRSR

158F Move Cursor
1593 (fenêtre actuelle droite)

1599 **************************** supprimer ligne jusqu'à position CRSR

1599 Move Cursor
159E (fenêtre actuelle gauche)
15A5 TXT DRAW/UNDRAW CURSOR

★ ANNÉE: ???

Page précédente : La bible du CPC 6128 : 2.05.04 Screen pack (SCR)

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 093 millisecondes et consultée 768 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.