diff --git a/examples/1.01-pixelesbasicos.mc b/examples/1.01-pixelesbasicos.mc new file mode 100644 index 0000000..ba14994 --- /dev/null +++ b/examples/1.01-pixelesbasicos.mc @@ -0,0 +1,81 @@ +;;=================================================================================== +;; EJEMPLO +;; +;; Pintar de colores los 4 primeros píxeles de la pantalla +;; +;; +;; CÓDIGO MAQUINA +;; +;; 3E 88 32 00 C0 18 FE +;; +;; +;; +;; ### EJERCICIO 1: +;; +;; 1 - Abrir Winape +;; 2 - [F7] Abrir el depurador, analizador de memoria +;; 3 - Ampliar la zona de volcado de memoria +;; 4 - Buscar la dirección &4000 +;; 5 - Escribir código máquina en la dirección 4000 +;; 6 - Modificar el registro PC=4000 +;; 7 - Cerrar depurador y observar ejecución +;; +;; Resultado: Se pinta de rojo el primer píxel de la pantalla +;; +;; +;; +;; ### EJERCICIO 2: +;; +;; 1 - [Ctrl + F9] Reiniciar el CPC +;; 2 - Repetir los pasos del ejercicio 1, pero modificar +;; el 2º byte (88) por (11) +;; 3 - Repetir pasos 1 y 2 para los valores (44) y (22) +;; +;; * Observar que 88 es 10001000 en binario +;; * Observar que 44 es 01000100 en binario +;; * Observar que 22 es 00100010 en binario +;; * Observar que 11 es 00010001 en binario +;; +;; Resultado: Se pintan de rojo los pixeles del 2º al 4º +;; +;; +;; +;; ### EJERCICIO 3: +;; +;; 1 - Repetir los pasos del ejercicio 2 8 veces, para +;; probar las 8 combinaciones de 1 bit a 1 y los otros 7 a cero. +;; (10000000, 01000000, 00100000, 00010000,....). +;; +;; * Observar los valores binarios y hexadecimales +;; +;; Resultado: Los 4 primeros píxeles se pintan primero de color +;; cian, y luego de color amarillo. +;; +;; +;; +;; RETOS +;; +;; 1. Pinta los 4 primeros píxeles de rojo a la vez +;; 2. Ahora los 4 píxeles de color amarillo y cian +;; 3. Pinta los 4 primeros píxeles uno de cada color +;; (fondo, amarillo, cian y rojo) +;; +;; +;; +;; EXPLICACIONES EN ESTE VÍDEO +;; +;; * Abrir WinAPE, introducir código y ejecutar +;; * Depurar código paso a paso (instrucción por instrucción) +;; +;; EXPLICACIONES EN OTROS VÍDEOS +;; +;; * Entendiendo binario y hexadecimal +;; * Ciclo de ejecución del procesador +;; * Instrucciones LOAD (LD), registros y memoria +;; * La instrucción de salto relativo JR +;; * Números negativos: complemento a 2 +;; * La memoria de vídeo: Funcionamiento +;; * La memoria de vídeo: Codificación de los píxeles +;; * Direcciones de memoria: Little endian y Big Endian +;; +;;=================================================================================== \ No newline at end of file diff --git a/examples/1.02-dibujopixeles8x4.mc b/examples/1.02-dibujopixeles8x4.mc new file mode 100644 index 0000000..c3c75fe --- /dev/null +++ b/examples/1.02-dibujopixeles8x4.mc @@ -0,0 +1,101 @@ +;;=================================================================================== +;; EJEMPLO +;; +;; Hacer dibujos pintando píxeles en una matriz de 8x4 +;; +;; +;; CÓDIGO MAQUINA +;; +;; 21 F0 F0 22 00 C0 21 0F 0F 22 00 C8 21 00 00 22 +;; 00 D0 21 FF FF 22 00 D8 18 FE +;; +;; +;; +;; ### EJERCICIO 1: +;; +;; 1 - Abrir Winape +;; 2 - [F7] Abrir el depurador, analizador de memoria +;; 3 - Ampliar la zona de volcado de memoria +;; 4 - Buscar la dirección &4000 +;; 5 - Escribir código máquina en la dirección 4000 +;; 6 - Modificar el registro PC=4000 +;; 7 - Cerrar depurador y observar ejecución +;; +;; Resultado: Se pinta un mini sprite de colores amarillo, +;; cian, azul y rojo, en vertical, 8x4 píxeles. +;; +;; +;; +;; ### EJERCICIO 2: +;; +;; Trazar paso a paso el ejercicio 1 +;; +;; 1 - Repetir pasos 1 al 6 del ejercicio 1 +;; 2 - Buscar la dirección &C000 en la zona de volcado de memoria +;; 3 - Buscar la dirección &4000 en la zona de desensamblado +;; 4 - [F8] Ejecutar la primera instrucción (21 F0 F0 LD HL, F0F0) +;; 5 - Observar que el registro HL vale ahora &F0F0 +;; 6 - [F8] Ejecutar la segunda instrucción (22 00 0C LD (C000),HL) +;; 7 - Observar que los 2 bytes en C000 y C001 ahora valen F0 F0 +;; 8 - Buscar la dirección &C800 en la zona de volcado de memoria +;; 9 - Repetir pasos 4 a 6 y observar los valores +;; 10 - Buscar la dirección &D000 en la zona de volcado de memoria +;; 11 - Repetir pasos 4 a 6 y observar los valores +;; 12 - Buscar la dirección &D800 en la zona de volcado de memoria +;; 13 - Repetir pasos 4 a 6 y observar los valores +;; 14 - Observar que la ejecución de 18 FE deja la máquina parada +;; +;; +;; +;; ### EJERCICIO 3: +;; +;; 1 - Cambiar los 3 primeros bytes (21 F0 F0) por (21 FF FF) +;; 2 - Modificar el registro PC=4000 +;; 3 - Cerrar el depurador y observar el cambio +;; +;; * Observar que F0 F0 es 11110000 11110000 en binario +;; * Observar que FF FF es 11111111 11111111 en binario +;; * Recordar el funcionamiento de los colores +;; +;; Resultado: La primera fila del sprite pasa de amarilla a roja +;; +;; +;; +;; ### EJERCICIO 4: +;; +;; 1 - Modificar las 4 parejas de bytes que hay tras las +;; instrucciones 21 (F0 F0, 0F 0F, 00 00, FF FF) por +;; (FF F0, F0 FF, FF F0, F0 FF) +;; 2 - Modificar el registro PC=4000 +;; 3 - Cerrar el depurador y observar el resultado +;; +;; Resultado: Aparece un patrón rojo y amarillo parecido a un mantel +;; +;; +;; +;; RETOS +;; +;; 1. Dibuja un símbolo de = de color amarillo +;; 2. Dibuja 2 franjas verticales de colores amarillo y cian +;; 3. Dibuja una reja vertical de color rojo +;; +;; +;; RETROS CREATIVOS +;; +;; 1. Dibuja una cara y compártela +;; 2. Haz un dibujo original y compártelo +;; +;; +;; +;; EXPLICACIONES EN ESTE VÍDEO +;; +;; * Abrir WinAPE, introducir código y ejecutar +;; * Depurar código paso a paso (instrucción por instrucción) +;; * Registro HL e instruccion LD +;; +;; EXPLICACIONES EN OTROS VÍDEOS +;; +;; * La memoria de vídeo: Disposición +;; * Sprites en videojuegos +;; +;;=================================================================================== \ No newline at end of file