Mapa de la ROM

Programando el Amstrad en Ensamblador.
Reglas del Foro
Debido a que hay varios temas pidiendo ayuda para programar en ensamblador máquinas distintas al Amstrad CPC, con micro distinto al Z80 y que incluso dependen del sistema operativo, nos vemos en la necesidad de poner por escrito que estos posts son bienvenidos pero que no es el lugar adecuado ya que por estos lares nos dedicamos más al ensamblador del Z80, un microprocesador de 8 bits que tuvo su gran auge en ordenadores y consolas de los años 80.

De todas formas, esto no quita que alguien que sepa del asunto pueda postear alguna respuesta pero es más fácil encontrar foros dedicados a programar en ensamblador en Windows o MS-DOS que ayudarán más que nosotros:
http://www.lawebdelprogramador.com/news ... nsamblador
Chus
Lechoncillo
Lechoncillo
Mensajes: 17
Registrado: Jue 09 Ago , 2012 11:22 am
Ubicación: Roaes
Contactar:

Mapa de la ROM

Mensajepor Chus » Jue 13 Sep , 2012 6:56 pm

Hola. Necesitaría saber como conseguir el mapa de memoria de la ROM. Para ser preciso, necesito saber en que dirección de memoria se encuentran los caracteres.
Gracias

Avatar de Usuario
MiguelSky
Lord of Short Time
Lord of Short Time
Mensajes: 6969
Registrado: Sab 08 Oct , 2005 2:02 am
Contactar:

Re: Mapa de la ROM

Mensajepor MiguelSky » Jue 13 Sep , 2012 7:34 pm

Hola :)

En http://www.amstrad-esp.com/publicacione ... /index.php tienes algún libro con el desensamblado de la ROM, quizá ahí esté la información que necesitas... (el primero, por ejemplo)

Chus
Lechoncillo
Lechoncillo
Mensajes: 17
Registrado: Jue 09 Ago , 2012 11:22 am
Ubicación: Roaes
Contactar:

Re: Mapa de la ROM

Mensajepor Chus » Jue 13 Sep , 2012 10:09 pm

Pues mira que he pasado veces por ahí, y no di con ese libro.
Gracias

Chus
Lechoncillo
Lechoncillo
Mensajes: 17
Registrado: Jue 09 Ago , 2012 11:22 am
Ubicación: Roaes
Contactar:

Mapa memoria

Mensajepor Chus » Vie 14 Sep , 2012 10:59 pm

Alguien me podría mostrar un esquema con el mapa de memoria y las direcciones mas importantes. En concreto necesito saber donde esta localizada la tabla de caracteres.
Gracias

Avatar de Usuario
Artaburu
Trasteador
Trasteador
Mensajes: 8419
Registrado: Vie 07 Oct , 2005 6:18 pm
Ubicación: En tu pantalla

Re: Mapa memoria

Mensajepor Artaburu » Sab 15 Sep , 2012 12:17 am

No venia en el libro que te dijeron?
Aquí tienes otra opción:
http://www.cantrell.org.uk/david/tech/cpc/cpc-firmware/
Te aconsejo el PDF porque la web tiene la peor combinación de colores que una mente insana puede imaginar :D
Adjuntos
memoria.jpg
Salu2,
Arta

KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 712
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: Mapa memoria

Mensajepor KaosOverride » Sab 15 Sep , 2012 2:44 am

Pero hombre, haber continuado en el mismo hilo... :)

Tu exactamente que quieres, las posiciones de memoria que asignan a cada tecla cruda un caracter (mapa de teclado) que es lo que Artaburu te ha puesto, o en que parte de la ROM del firmware estan las definiciones graficas de los caracteres? (Las fuentes tipograficas en bitmap, vamos....)
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]

Avatar de Usuario
MiguelSky
Lord of Short Time
Lord of Short Time
Mensajes: 6969
Registrado: Sab 08 Oct , 2005 2:02 am
Contactar:

Re: Mapa memoria

Mensajepor MiguelSky » Sab 15 Sep , 2012 8:36 am

Yo entendí que quiere las definiciones gráficas de caracteres, con objeto de conseguir una ROM customizada, seguramente :)
la web tiene la peor combinación de colores que una mente insana puede imaginar :D
Si de verdad lo piensas le puedo sugerir a David un cambio de colores aunque yo ya me he acostumbrado a verla así <XX

Avatar de Usuario
6128
Moderador
Moderador
Mensajes: 7910
Registrado: Lun 12 Dic , 2005 6:08 pm

Re: Mapa memoria

Mensajepor 6128 » Sab 15 Sep , 2012 9:11 am

Pero hombre, haber continuado en el mismo hilo... :)
KaosOverride tiene razón.

He unido ambos hilos porque tratan sobre el mismo tema. Es tontería abrir un nuevo hilo cuando se puede usar el original. ¿Verdad?

KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 712
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: Mapa de la ROM

Mensajepor KaosOverride » Sab 15 Sep , 2012 12:01 pm

Para dar la segunda posible respuesta he usado un editor hexadecimal sobre el fichero ROM del firmware del 6128.

Despues del espacio (todo ceros) el siguiente caracter es el 33, la admiracion "!", que es la secuencia de matriz grafica 18 18 18 18 18 00 18 00 en hexadecimal, lo encuentro y justo veo que antes hay 8 bytes ceros. Dando por hecho que es el espacio y que los siguientes 8 bytes definen la "#" que es el caracter 34. Todo cuadra aparentemente asi pues dentro del firmware del CPC, los bitmaps empiezan en el offset &3900 del ROM del firmware.

En principio el 464 y el 664 coinciden en el mismo offset aun siendo distinto fichero el firmware.

ahora puedes extraer como bloque crudo de 8 pixeles de ancho y 2 colores y sacar la tira de caracteres, o modificar el fichero ROM para que el CPC muestre una tipografia distinta al encender en un emulador (O tostar en una ROM fisica para hacerlo en un CPC real).
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]

Chus
Lechoncillo
Lechoncillo
Mensajes: 17
Registrado: Jue 09 Ago , 2012 11:22 am
Ubicación: Roaes
Contactar:

Re: Mapa de la ROM

Mensajepor Chus » Sab 15 Sep , 2012 10:17 pm

Ok, eso es exactamente lo que estaba buscando. Es para custodiar el mapa de caracteres.
Gracias.

Chus
Lechoncillo
Lechoncillo
Mensajes: 17
Registrado: Jue 09 Ago , 2012 11:22 am
Ubicación: Roaes
Contactar:

Re: Mapa de la ROM

Mensajepor Chus » Dom 16 Sep , 2012 12:51 pm

Bueno, pues estoy probando cambiar el juego de caracteres por otro con letras un poco más gruesas, y la verdad no se que es lo que hago mal.
Aqui os dejo el codigo, a ver si me echáis una mano.

CREACAR LD HL,&B34C
LD DE,JUECAR
LD C,&A0
JUE1 LD A,(HL)
AND A
RRA
OR (HL)
LD (DE),A
INC HL
INC DE
DEC C
LD A,C
CP 0
JR NZ,JUE1
JUECAR DB &A0
RET


Gracias

Avatar de Usuario
Artaburu
Trasteador
Trasteador
Mensajes: 8419
Registrado: Vie 07 Oct , 2005 6:18 pm
Ubicación: En tu pantalla

Re: Mapa de la ROM

Mensajepor Artaburu » Lun 17 Sep , 2012 6:38 pm

Bueno, pues estoy probando cambiar el juego de caracteres por otro con letras un poco más gruesas, y la verdad no se que es lo que hago mal.
Aqui os dejo el codigo, a ver si me echáis una mano.

CREACAR LD HL,&B34C
LD DE,JUECAR
LD C,&A0
JUE1 LD A,(HL)
AND A
RRA
OR (HL)
LD (DE),A
INC HL
INC DE
DEC C
LD A,C
CP 0
JR NZ,JUE1
JUECAR DB &A0
RET


Gracias
En realidad, no se qué quieres conseguir pero tienes un problema con el final de tu código. Si pones antes del RET el JUECAR db &a0, te cargas el RET y cuando JR NZ no salte a JUE1 te explota el CPC :D
Salu2,
Arta

Chus
Lechoncillo
Lechoncillo
Mensajes: 17
Registrado: Jue 09 Ago , 2012 11:22 am
Ubicación: Roaes
Contactar:

Re: Mapa de la ROM

Mensajepor Chus » Mar 18 Sep , 2012 8:29 am

Bueno, la verdades que esta rutina están conversión de otra para spectrum. Lo que intenta hacer es coger el juego de caracteres y copiarlo en memoria con unos trazos más gruesos. En el zx funciona perfectamente pero en el cpc ya veremos.
Y eso del RET el final, pues que no me había dado ni cuenta...
Voy a probar a ver si funciona esto y ya os cuento.
Saludos

KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 712
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: Mapa de la ROM

Mensajepor KaosOverride » Mié 19 Sep , 2012 2:48 am

A ver si entiendo que quieres hacer.

Copias los caracteres del 32 (offset que te di) desde la ROM baja (la que se mapea desde &0000 hasta &3ffff) a una posicion x de RAM pero la retocas al vuelo, ok....

Aprecio que el origen de datos los cojes de RAM pero ya te dijimos que estan en la ROM baja, has de llamar a la ROM antes de leer los datos. Y al ser en ROM tampoco puedes dejarlos en el mismo sitio...

Pero despues? O bien intentas un symbol after 32, que no recuerdo si lo deja hacer tan bajo, y plantas directamente los datos ahi, o parcheas todas las rutinas del firmware para que cojan los datos de la nueva posicion. Para eso, si no me equivoco, has de reescribir el codigo con los retoquea, en RAM y luego modificar los jumpblock para que apunten a las nuevas rutinas. Tarea dura...

Sin CPCs ni emus a mano, me falta confirmarte si deja hacer un symbol after 32 y mirandote en la guia firmware la tabla de posiciones de memoria de las variables de sistema donde cae la region se caracteres definidos y plantar ahi los datos modificados que generan tus rutinas. Asi seria mas asequible y sin parchear nada...

Animo y espero te salga como esperas.

EDIT: Me he bajado el CPCdroid y funciona el symbol after 32... He podido hacer la prueba a 500km de casa xD
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]


¿Quién está conectado?

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


La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) Selección de juegos de Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic