Last active
November 23, 2020 18:57
-
-
Save mistificator/92cbd9c45b342f7980c24b0d16025c97 to your computer and use it in GitHub Desktop.
ZX Spectrum - 4 colors at one char position demo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
basic48_cls equ 0x0D6B | |
org 25000 | |
ld a, 00000111b ; PAPER 0, INK 7 | |
ld (iy + 83), a ; ATTR-P | |
xor a ; BORDER 0 | |
out (0xFE), a | |
ld (iy + 14), a ; BORDCR | |
call basic48_cls | |
im2_prepare: | |
ld a, 0xBD | |
ld i, a | |
ld h, a | |
ld l, 0 | |
ld d, h | |
ld e, 1 | |
ld bc, 256 | |
ld a, 0xBE | |
ld (hl), a | |
ldir | |
im2_copy_jump: | |
ld hl, im2_jump | |
ld e, a | |
ld d, a ; 0xBEBE | |
ld bc, 3 | |
ldir | |
im2_start: | |
im 2 | |
forever_loop: | |
ei | |
jr forever_loop | |
im2_jump: | |
jp im2_handler | |
im2_handler: | |
di | |
ld a, (counter) | |
push af | |
inc a | |
ld (counter), a | |
pop af | |
bit 0, a | |
call z, set_pattern1 | |
call nz, set_pattern2 | |
ld b, 30 | |
put_char: | |
push hl | |
push bc | |
apply_pattern: | |
ld a, (hl) | |
ld de, (attr_ptr) | |
ld (de), a | |
inc hl | |
ld de, (pixel_ptr) | |
ld b, 8 | |
apply_pattern_loop: | |
ld a, (hl) | |
ld (de), a | |
inc hl | |
inc d | |
djnz apply_pattern_loop | |
ld hl, (attr_ptr) | |
inc hl | |
ld (attr_ptr), hl | |
ld hl, (pixel_ptr) | |
inc hl | |
ld (pixel_ptr), hl | |
pop bc | |
pop hl | |
djnz put_char | |
ld hl, 0x5901 | |
ld (attr_ptr), hl | |
ld hl, 0x4801 | |
ld (pixel_ptr), hl | |
ret | |
set_pattern1: | |
ld hl, color1 | |
ret | |
set_pattern2: | |
ld hl, color2 | |
ret | |
counter db 0 | |
attr_ptr dw 0x5901 | |
pixel_ptr dw 0x4801 | |
IF 1 | |
color1 db 01110011b | |
pattern1: | |
db 00011000b | |
db 01100110b | |
db 01100110b | |
db 10011001b | |
db 10011001b | |
db 01100110b | |
db 01100110b | |
db 00011000b | |
color2 db 01100111b | |
pattern2: | |
db 00011000b | |
db 01111110b | |
db 01111110b | |
db 11100111b | |
db 11100111b | |
db 01111110b | |
db 01111110b | |
db 00011000b | |
ENDIF |
Author
mistificator
commented
Nov 23, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment