Added exercises 01 and 02 of the first module

This commit is contained in:
ronaldo 2016-07-27 00:12:18 +02:00
parent 42b01fb019
commit 77eefbbc01
2 changed files with 182 additions and 0 deletions

View File

@ -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
;;
;;===================================================================================

View File

@ -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
;;
;;===================================================================================