Analizamos el uso de las funciones de dibujado de cadenas (drawString) en
#CPCtelera. Entendemos que requieren el firmware bajo y, por tanto, su código debe estar fuera del rango 0000-4000h. Después, analizamos cómo funciona su código y cómo podemos modificarlas para tener fuentes te texto propias:
Contenido detallado:
- Análisis del funcionamiento de la función cpct_drawStringM0
- Funcionamiento de la memoria y las ROMS en #Amstrad
- El problema del shadowing de código: al activar la ROM, todo el código que está en RAM en la misma posición deja de poder leerse
- Uso del fichero .map en la carpeta obj/ para saber dónde está ubicado el código de la función
- Análisis del código de la función cpct_drawStringM0: vemos cómo activa y desactiva la ROM
- Idea: eliminar el código de activado y desactivado de ROM de la función cpct_drawStringM0 para que lea de RAM
- Corrección: Las posiciones donde están las definiciones de fuentes es de 0x3800 a 0x3FFF (en el vídeo pone 0x38FF, es un error)
- Entendiendo cómo posicionar de forma absoluta código usando las directivas .org y .area
- Entendiendo la importancia de ir a los manuales, libros y artículos para buscar información de primera mano
- Resolvemos una duda sobre el uso de los bytes de memoria de 0x0000 a 0x0040 (el vector de interrupciones).
- Enteniendo los modos de interrupcion del #z80
- Modo de interrupciones 1: en cada interrupción se realiza call a 0x0038. Funcionamiento de cpct_disableFirmware.
#GameDev #Amstrad #CPCtelera #z80 #Assembler #Programming
Fuentes propias de texto y código absoluto [GameDev asm Z80][7.2][2018] 6502 instruction set | |
| 21 Likes | 21 Dislikes |
| 357 views views | 2.28K followers |
| Science & Technology Creative Commons Attribution licence (reuse allowed) | Upload TimePublished on 6 Feb 2019 |
No comments:
Post a Comment