Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
cursos:ensamblador:gfx1_vram [19-01-2024 12:26] – [La videomemoria del Spectrum] sromero | cursos:ensamblador:gfx1_vram [21-01-2024 18:43] (actual) – [Efectos sobre la imagen y los atributos] sromero | ||
---|---|---|---|
Línea 914: | Línea 914: | ||
; | ; | ||
SetBorder: | SetBorder: | ||
- | out (254), a | + | out ($fe), a |
ret | ret | ||
Línea 934: | Línea 934: | ||
; | ; | ||
SetBorder: | SetBorder: | ||
- | out (254), a ; Cambiamos el color del borde | + | out ($fe), a ; Cambiamos el color del borde |
rlca | rlca | ||
rlca | rlca | ||
Línea 941: | Línea 941: | ||
jr nz, SetBorder_fin | jr nz, SetBorder_fin | ||
; Si es bright | ; Si es bright | ||
- | xor 7 | + | xor %00000111 |
SetBorder_fin: | SetBorder_fin: | ||
Línea 1194: | Línea 1194: | ||
fadescreen_loop2: | fadescreen_loop2: | ||
ld a, (hl) ; Cogemos el atributo | ld a, (hl) ; Cogemos el atributo | ||
- | and 127 | + | and %01111111 |
ld c, a | ld c, a | ||
- | and 7 | + | and %00000111 |
jr z, fadescreen_ink_zero | jr z, fadescreen_ink_zero | ||
Línea 1210: | Línea 1210: | ||
sra a ; con 3 instrucciones de desplazamiento >> | sra a ; con 3 instrucciones de desplazamiento >> | ||
- | and 7 | + | and %00000111 |
jr z, fadescreen_paper_zero | jr z, fadescreen_paper_zero | ||
Línea 1246: | Línea 1246: | ||
| | ||
+ | |||
+ | Del mismo modo, el libro **//40 Best Machine code Routines for the ZX Spectrum// | ||
+ | |||
+ | \\ | ||
+ | * Scrollear atributos a izquierda, derecha, arriba o abajo. | ||
+ | * Scroll de pantalla de un carácter (8 pixels) a izquierda, derecha, arriba o abajo. | ||
+ | * Scroll de pantalla de un pixel a izquierda, derecha, arriba o abajo. | ||
+ | * Mezclar dos imágenes con '' | ||
+ | * Inversión de la pantalla (píxeles a 0 se ponen a 1, y píxeles a 1 se ponen a 0). | ||
+ | * Invertir carácter vertical y horizontalmente. | ||
+ | * Rotar carácter 90º en sentido horario. | ||
+ | * Alterar todos los atributos de la pantalla (los bits deseados). | ||
+ | * Cambiar todos los atributos de la pantalla de un determinado valor por otro valor. | ||
+ | * Rellenado de regiones cerradas (poniendo a 1 los píxeles dentro de esas regiones). | ||
+ | * Impresión de figuras. | ||
+ | * Copia de una zona de la pantalla en otra, ampliándola por una cantidad entera (por ejemplo, x2 o x3). | ||
+ | |||
\\ | \\ |