Página 1 de 1

Mostrar los tinteros (INK) que se han definido

Publicado: 23 Abr 2013, 22:35
por cpc464_programmer
Hola,

He definido unos cuantos tinteros en Amstrad CPC 464:

Código: Seleccionar todo

INK 0, 0
...
INK 1, 10
...
INK 2, 12
...
INK 3, 24


Me gustaría saber si existe algún comando para mostrar los tinteros que se han ido definiendo.

Muchas gracias.

Re: Mostrar los tinteros (INK) que se han definido

Publicado: 24 Abr 2013, 14:07
por Namek
Seguramente habrá una manera de hacerlo aunque yo la desconozco, pero lo mas facil es guardar los valores que vayas a establecer en una matriz, asi podras saber que color tienes en cada tinta. :roll:

Re: Mostrar los tinteros (INK) que se han definido

Publicado: 24 Abr 2013, 17:20
por BlackHole
Tendrás que revisar con PEEK las direcciones de memoria donde se almacenan los valores tras las ordenes INK:

Código: Seleccionar todo

6128    464     Size   Comments
=========================================================================
&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

O usar PEEK desde BASIC, o empezar a usar código máquina donde podrás hacer llamadas a funciones del Firmware, o examinar directamente el Gate Array a bajo nivel.

Re: Mostrar los tinteros (INK) que se han definido

Publicado: 24 Abr 2013, 17:28
por cpc464_programmer
Namek, ¿podrías ponerme un ejemplo del guardado de los valores en la matriz?
BlackHole, ¿PEEK es otro comando de Amstrad?

Re: Mostrar los tinteros (INK) que se han definido

Publicado: 24 Abr 2013, 17:36
por BlackHole
cpc464_programmer escribió:BlackHole, ¿PEEK es otro comando de Amstrad?

PEEK es una orden de BASIC estándar, presente en docenas de BASICs de docenas de ordenadores...

PEEK (dirección) lee el contenido de una dirección de memoria.
POKE dirección, valor es la orden inversa, que modifica el contenido de una dirección de memoria

Es algo muy básico. Quizás deberías ponerte a profundizar en libros de BASIC o darle un buen repaso al manual de BASIC del Amstrad:

http://www.amstrad-esp.com/publicacione ... /index.php
http://www.cpcwiki.eu/index.php/User_Manual

Re: Mostrar los tinteros (INK) que se han definido

Publicado: 25 Abr 2013, 03:55
por Namek
Ejemplo de matriz:

10 DIM color(16)
20 LET color(0)=0
30 LET color(1)=10
40 LET color(2)=12
50 LET color(3)=24
60 FOR a=0 TO 3
70 INK a,color(a)
80 PRINT "TINTA ";a;" COLOR ";color(a)
90 NEXT a

Ya me diras si te funciona porque yo lo he escrito aqui directamente. :carta: