Mostrar los tinteros (INK) que se han definido

Foro dedicado a la programación en todo tipo de sistemas clásicos.
cpc464_programmer
ZX Spectrum 16
ZX Spectrum 16
Mensajes: 13
Registrado: 21 Abr 2013, 16:22
Sistema Favorito: Amstrad CPC
primer_sistema: Amstrad CPC
consola_favorita: Sony PlayStation 2
Primera consola: Atari 2600

Mostrar los tinteros (INK) que se han definido

Mensajepor cpc464_programmer » 23 Abr 2013, 22:35

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.

Avatar de Usuario
Namek
Atari 1040 STf
Atari 1040 STf
Mensajes: 840
Registrado: 11 Jul 2011, 13:13
Gracias dadas: 18 veces
Gracias recibidas: 63 veces

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

Mensajepor Namek » 24 Abr 2013, 14:07

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:

BlackHole
Amiga 1200
Amiga 1200
Mensajes: 1489
Registrado: 07 Nov 2009, 11:38
Sistema Favorito: C64
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo SNES
Ubicación: Madrid
Gracias dadas: 14 veces
Gracias recibidas: 244 veces

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

Mensajepor BlackHole » 24 Abr 2013, 17:20

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.

cpc464_programmer
ZX Spectrum 16
ZX Spectrum 16
Mensajes: 13
Registrado: 21 Abr 2013, 16:22
Sistema Favorito: Amstrad CPC
primer_sistema: Amstrad CPC
consola_favorita: Sony PlayStation 2
Primera consola: Atari 2600

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

Mensajepor cpc464_programmer » 24 Abr 2013, 17:28

Namek, ¿podrías ponerme un ejemplo del guardado de los valores en la matriz?
BlackHole, ¿PEEK es otro comando de Amstrad?

BlackHole
Amiga 1200
Amiga 1200
Mensajes: 1489
Registrado: 07 Nov 2009, 11:38
Sistema Favorito: C64
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo SNES
Ubicación: Madrid
Gracias dadas: 14 veces
Gracias recibidas: 244 veces

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

Mensajepor BlackHole » 24 Abr 2013, 17:36

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

Avatar de Usuario
Namek
Atari 1040 STf
Atari 1040 STf
Mensajes: 840
Registrado: 11 Jul 2011, 13:13
Gracias dadas: 18 veces
Gracias recibidas: 63 veces

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

Mensajepor Namek » 25 Abr 2013, 03:55

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:


Volver a “Programación”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados