Curiosidad acerca de CHARS

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Responder
Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Curiosidad acerca de CHARS

Mensaje por Hark0 » Jue Ene 30, 2014 10:14 am

Buenas...

Como sabeis la variable del sistema CHARS (23606) es la que controla en qué posición de memoria está alojado el set de carácteres... inicialmente apunta a la dirección 15360

Si POKEamos en las direcciones 23606 y 23607 podemos cambiar el set de carácteres por uno definido por nosotros...

Ahora bien... el set aparece desplazado... que no es poblema pokeando donde toca pero me pregunto

¿esto es debido a los carácteres de control?
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
Alxinho
Freddy Hardest
Mensajes: 896
Registrado: Mar Jun 19, 2007 11:20 am
Ubicación: Barcelona
Contactar:

Re: Curiosidad acerca de CHARS

Mensaje por Alxinho » Jue Ene 30, 2014 11:20 am

Piensa que el 32 es el Espacio y para atrás cosicas de control del Spectrum.

En Mojonia tienes tutorial :arrow: http://tcyr.wordpress.com/2012/02/23/tu ... -charsets/

Yo en ZX Basic hago POKE UINTEGER 23606, @fuente(0)-256 habiendo guardado en un array las fuentes y yatá.

Saludos y espero que te sirva!
Retrobytes Productions --> http://retrobytesproductions.blogspot.com.es

Soy un tío feliz, más que nada ... porque me sale más a cuenta.

Avatar de Usuario
mcleod_ideafix
Johnny Jones
Mensajes: 3985
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera
Contactar:

Re: Curiosidad acerca de CHARS

Mensaje por mcleod_ideafix » Jue Ene 30, 2014 7:30 pm

Está desplazado para que apunte a la dirección del hipotético caracter cuyo código ASCII es el 0.
De esa forma, cuando quieres averiguar la dirección del comienzo de la definición de un carácter imprimible, sólo has de hacer:

Código: Seleccionar todo

;A = código ASCII del carácter a imprimir
ld h,0
ld l,a
ld de,(chars)
add hl,hl
add hl,hl
add hl,hl
add hl,de  ;HL = primer scan de la definición del carácter


O sea: DIRECCION = CHARS + ASCII * 8

En lugar de: DIRECCION = CHARS + (ASCII-32) * 8

(que de todas formas, añadiría sólamente una instrucción SUB al código anterior, pero la cosa es que si se puede hacer sin añadir esa instrucción y no complica ninguna otra parte del código, ¿para qué añadirla? )
Web: ZX Projects | Twitter: @zxprojects

Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: Curiosidad acerca de CHARS

Mensaje por Hark0 » Jue Ene 30, 2014 11:06 pm

Gracias por los replys, suponia que era algo de eso... sobre la dirección exacta, lo tengo controlado... si quiero pintar un "!" y me sale una "A", es que la dirección no es correcta... pokeo un poco más allá y listos...

Cada dia me encanta más el Spectrum... :-)

Gracias por los post!
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Responder

¿Quién está conectado?

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