Retour sur ACME

&B7D4-&B7F5 (CPC 664/6128) / &B1D9-&B1FA (CPC 464) : Décodage des encres

Auteur: Fredisland (Admin)
5.00
5 sur 2 votes

&B7D4-&B7F5 (CPC 664/6128) / &B1D9-&B1FA (CPC 464) : Décodage des encres

Pouvoir lister les numéros des encres en cours peut s'avérer utile, entre autres pour reconstituer la palette d'une image. Ce petit programme récupère les codes d'encres hardware pour les restituer dans leur équivalent BASIC (INK numéro d'encre, encre 1, encre 2).

Le programme

10 'VALEUR DES ENCRES
20 DIM enc(16),cod(32)
30 FOR i=0 TO 31:READ a$:cod(VAL("&"+a$))=i:NEXT
40 DATA 14,04,15,1C,18,1D,0C,05,0D,16,06,17,1E,00,1E,0E
50 DATA 07,0F,12,02,13,1A,19,1B,0A,03,0B,01,08,09,10,11
60 MODE 1:PRINT"DECODAGE DES ENCRES SUR CE CPC ";
70 IF PEEK(6)=145 THEN a=&B7D5:PRINT"6128"
80 IF PEEK(6)=123 THEN a=&B7D5:PRINT"664"
90 IF PEEK(6)=128 THEN a=&B1DA:PRINT"464"
100 FOR numeroEncre=1 to 0 step -1
110 PRINT:PRINT "==== ENCRE NUMERO";2-numeroEncre;"===="
120 PRINT:FOR i=0 TO 15:enc(i)=cod(PEEK(a+17*numeroEncre+i)):PRINT"INK";i;"=";enc(i),:NEXT
130 PRINT "BORDER =";cod(PEEK(a+17*numeroEncre-1))
140 NEXT numeroEncre

Résultat :

Quelques explications

Pour le CPC 464 :

  • le numéro hardware d'encre 1 est stocké après le numéro d'encre 2, soit de &B1EA à &B1FA
  • le numéro hardware d'encre 2 est stocké avant le numéro d'encre 1, soit de &B1D9 à &B1E9

Pour le CPC 664/6128 :

  • le numéro hardware d'encre 1 est stocké après le numéro d'encre 2, soit de &B7E5 à &B7F5
  • le numéro hardware d'encre 2 est stocké avant le numéro d'encre 1, soit de &B7D4 à &B7E4

L'encre de BORDER est codée en premier, puis suivent les 16 encres INK 0 à INK 15.

Le tableau ci-dessus récapitule pour chaque emplacement mémoire le code de l'encre concernée (hw=hardware, sw=software) :

6128  | 464   | Size |
========================================================================
&B7D4 | &B1D9 | 1+16 | Border and Pens' First Inks (as hardware numbers)
&B7D4 | &B1D9 | 1 | hw &04 = sw 1 (blue) border
&B7D5 | &B1DA | 1 | hw &04 = sw 1 (blue) pen 0
&B7D6 | &B1DB | 1 | hw &0A = sw 24 (bright yellow) pen 1
&B7D7 | &B1DC | 1 | hw &13 = sw 20 (bright cyan) pen 2
&B7D8 | &B1DD | 1 | hw &0C = sw 6 (bright red) pen 3
&B7D9 | &B1DE | 1 | hw &0B = sw 26 (bright white) pen 4
&B7DA | &B1DF | 1 | hw &14 = sw 0 (black) pen 5
&B7DB | &B1E0 | 1 | hw &15 = sw 2 (bright blue) pen 6
&B7DC | &B1E1 | 1 | hw &0D = sw 8 (bright magenta) pen 7
&B7DD | &B1E2 | 1 | hw &06 = sw 10 (cyan) pen 8
&B7DE | &B1E3 | 1 | hw &1E = sw 12 (yellow) pen 9
&B7DF | &B1E4 | 1 | hw &1F = sw 14 (pale blue) pen 10
&B7E0 | &B1E5 | 1 | hw &07 = sw 16 (pink) pen 11
&B7E1 | &B1E6 | 1 | hw &12 = sw 18 (bright green) pen 12
&B7E2 | &B1E7 | 1 | hw &19 = sw 22 (pale green) pen 13
&B7E3 | &B1E8 | 1 | hw &04 = sw 1 (blue) pen 14
&B7E4 | &B1E9 | 1 | hw &17 = sw 11 (sky blue) pen 15
========================================================================
&B7E5 | &B1EA | 1+16 | Border and Pens' Second Inks (as hardware numbers)
&B7E5 | &B1EA | 1 | hw &04 = sw 1 (blue) border
&B7E6 | &B1EB | 1 | hw &04 = sw 1 (blue) pen 0
&B7E7 | &B1EC | 1 | hw &0A = sw 24 (bright yellow) pen 1
&B7E8 | &B1ED | 1 | hw &13 = sw 20 (bright cyan) pen 2
&B7E9 | &B1EE | 1 | hw &0C = sw 6 (bright red) pen 3
&B7EA | &B1FF | 1 | hw &0B = sw 26 (bright white) pen 4
&B7EB | &B1F0 | 1 | hw &14 = sw 0 (black) pen 5
&B7EC | &B1F1 | 1 | hw &15 = sw 2 (bright blue) pen 6
&B7ED | &B1F2 | 1 | hw &0D = sw 8 (bright magenta) pen 7
&B7EE | &B1F3 | 1 | hw &06 = sw 10 (cyan) pen 8
&B7EF | &B1F4 | 1 | hw &1E = sw 12 (yellow) pen 9
&B7F0 | &B1F5 | 1 | hw &1F = sw 14 (pale blue) pen 10
&B7F1 | &B1F6 | 1 | hw &07 = sw 16 (pink) pen 11
&B7F2 | &B1F7 | 1 | hw &12 = sw 18 (bright green) pen 12
&B7F3 | &B1F8 | 1 | hw &19 = sw 22 (pale green) pen 13
&B7F4 | &B1F9 | 1 | hw &04 = sw 1 (bright yellow) pen 14
&B7F5 | &B1FA | 1 | hw &17 = sw 11 (pink) pen 15

(Source : The AMSTRAD CPC Firmware Guide (Bob TAYLOR, Thomas_DEFOE)

&B7D4-&B7F5 (CPC 664/6128) / &B1D9-&B1FA (CPC 464) : Décodage des encres

&B7D4-&B7F5 (CPC 664/6128) / &B1D9-&B1FA (CPC 464) : Décodage des encres

Pouvoir lister les numéros des encres en cours peut s'avérer utile, entre autres pour reconstituer la palette d'une image. Ce petit programme récupère les codes d'encres hardware pour les restituer dans leur équivalent BASIC (INK numéro d'encre, encre 1, encre 2).

Le programme

10 'VALEUR DES ENCRES
20 DIM enc(16),cod(32)
30 FOR i=0 TO 31:READ a$:cod(VAL("&"+a$))=i:NEXT
40 DATA 14,04,15,1C,18,1D,0C,05,0D,16,06,17,1E,00,1E,0E
50 DATA 07,0F,12,02,13,1A,19,1B,0A,03,0B,01,08,09,10,11
60 MODE 1:PRINT"DECODAGE DES ENCRES SUR CE CPC ";
70 IF PEEK(6)=145 THEN a=&B7D5:PRINT"6128"
80 IF PEEK(6)=123 THEN a=&B7D5:PRINT"664"
90 IF PEEK(6)=128 THEN a=&B1DA:PRINT"464"
100 FOR numeroEncre=1 to 0 step -1
110 PRINT:PRINT "==== ENCRE NUMERO";2-numeroEncre;"===="
120 PRINT:FOR i=0 TO 15:enc(i)=cod(PEEK(a+17*numeroEncre+i)):PRINT"INK";i;"=";enc(i),:NEXT
130 PRINT "BORDER =";cod(PEEK(a+17*numeroEncre-1))
140 NEXT numeroEncre

Résultat :

Quelques explications

Pour le CPC 464 :

  • le numéro hardware d'encre 1 est stocké après le numéro d'encre 2, soit de &B1EA à &B1FA
  • le numéro hardware d'encre 2 est stocké avant le numéro d'encre 1, soit de &B1D9 à &B1E9

Pour le CPC 664/6128 :

  • le numéro hardware d'encre 1 est stocké après le numéro d'encre 2, soit de &B7E5 à &B7F5
  • le numéro hardware d'encre 2 est stocké avant le numéro d'encre 1, soit de &B7D4 à &B7E4

L'encre de BORDER est codée en premier, puis suivent les 16 encres INK 0 à INK 15.

Le tableau ci-dessus récapitule pour chaque emplacement mémoire le code de l'encre concernée (hw=hardware, sw=software) :

6128  | 464   | Size |
========================================================================
&B7D4 | &B1D9 | 1+16 | Border and Pens' First Inks (as hardware numbers)
&B7D4 | &B1D9 | 1 | hw &04 = sw 1 (blue) border
&B7D5 | &B1DA | 1 | hw &04 = sw 1 (blue) pen 0
&B7D6 | &B1DB | 1 | hw &0A = sw 24 (bright yellow) pen 1
&B7D7 | &B1DC | 1 | hw &13 = sw 20 (bright cyan) pen 2
&B7D8 | &B1DD | 1 | hw &0C = sw 6 (bright red) pen 3
&B7D9 | &B1DE | 1 | hw &0B = sw 26 (bright white) pen 4
&B7DA | &B1DF | 1 | hw &14 = sw 0 (black) pen 5
&B7DB | &B1E0 | 1 | hw &15 = sw 2 (bright blue) pen 6
&B7DC | &B1E1 | 1 | hw &0D = sw 8 (bright magenta) pen 7
&B7DD | &B1E2 | 1 | hw &06 = sw 10 (cyan) pen 8
&B7DE | &B1E3 | 1 | hw &1E = sw 12 (yellow) pen 9
&B7DF | &B1E4 | 1 | hw &1F = sw 14 (pale blue) pen 10
&B7E0 | &B1E5 | 1 | hw &07 = sw 16 (pink) pen 11
&B7E1 | &B1E6 | 1 | hw &12 = sw 18 (bright green) pen 12
&B7E2 | &B1E7 | 1 | hw &19 = sw 22 (pale green) pen 13
&B7E3 | &B1E8 | 1 | hw &04 = sw 1 (blue) pen 14
&B7E4 | &B1E9 | 1 | hw &17 = sw 11 (sky blue) pen 15
========================================================================
&B7E5 | &B1EA | 1+16 | Border and Pens' Second Inks (as hardware numbers)
&B7E5 | &B1EA | 1 | hw &04 = sw 1 (blue) border
&B7E6 | &B1EB | 1 | hw &04 = sw 1 (blue) pen 0
&B7E7 | &B1EC | 1 | hw &0A = sw 24 (bright yellow) pen 1
&B7E8 | &B1ED | 1 | hw &13 = sw 20 (bright cyan) pen 2
&B7E9 | &B1EE | 1 | hw &0C = sw 6 (bright red) pen 3
&B7EA | &B1FF | 1 | hw &0B = sw 26 (bright white) pen 4
&B7EB | &B1F0 | 1 | hw &14 = sw 0 (black) pen 5
&B7EC | &B1F1 | 1 | hw &15 = sw 2 (bright blue) pen 6
&B7ED | &B1F2 | 1 | hw &0D = sw 8 (bright magenta) pen 7
&B7EE | &B1F3 | 1 | hw &06 = sw 10 (cyan) pen 8
&B7EF | &B1F4 | 1 | hw &1E = sw 12 (yellow) pen 9
&B7F0 | &B1F5 | 1 | hw &1F = sw 14 (pale blue) pen 10
&B7F1 | &B1F6 | 1 | hw &07 = sw 16 (pink) pen 11
&B7F2 | &B1F7 | 1 | hw &12 = sw 18 (bright green) pen 12
&B7F3 | &B1F8 | 1 | hw &19 = sw 22 (pale green) pen 13
&B7F4 | &B1F9 | 1 | hw &04 = sw 1 (bright yellow) pen 14
&B7F5 | &B1FA | 1 | hw &17 = sw 11 (pink) pen 15

(Source : The AMSTRAD CPC Firmware Guide (Bob TAYLOR, Thomas_DEFOE)