2024-10-21 08:30:19 +00:00
|
|
|
org 51000
|
|
|
|
|
2024-10-21 16:23:30 +00:00
|
|
|
counter EQU inc_counter + 1
|
2024-10-22 11:56:45 +00:00
|
|
|
attrs EQU #5800
|
2024-10-21 18:49:02 +00:00
|
|
|
xylo EQU attrs + 40
|
2024-10-21 16:23:30 +00:00
|
|
|
|
2024-10-21 08:30:19 +00:00
|
|
|
zero_counter:
|
|
|
|
xor a
|
|
|
|
|
|
|
|
set_counter:
|
|
|
|
ld (counter), a
|
|
|
|
|
|
|
|
read_keyboard:
|
2024-10-22 11:56:45 +00:00
|
|
|
ld a, #f7
|
|
|
|
in a, (#fe)
|
2024-10-21 14:51:52 +00:00
|
|
|
rra
|
2024-10-21 08:30:19 +00:00
|
|
|
jr nc, key_1
|
2024-10-21 14:51:52 +00:00
|
|
|
rra
|
2024-10-21 08:30:19 +00:00
|
|
|
jr nc, key_2
|
2024-10-21 14:51:52 +00:00
|
|
|
rra
|
2024-10-21 08:30:19 +00:00
|
|
|
jr nc, key_3
|
2024-10-21 14:51:52 +00:00
|
|
|
rra
|
2024-10-21 08:30:19 +00:00
|
|
|
jr nc, key_4
|
2024-10-21 14:51:52 +00:00
|
|
|
rra
|
2024-10-22 11:08:09 +00:00
|
|
|
jr c, read_keyboard
|
2024-10-21 08:30:19 +00:00
|
|
|
|
2024-10-22 11:08:09 +00:00
|
|
|
key_5:
|
2024-10-22 11:56:45 +00:00
|
|
|
ld de, #040C
|
2024-10-21 22:18:21 +00:00
|
|
|
jr invoke
|
2024-10-21 08:30:19 +00:00
|
|
|
|
|
|
|
key_2:
|
2024-10-22 11:56:45 +00:00
|
|
|
ld de, #0103
|
2024-10-21 22:18:21 +00:00
|
|
|
jr invoke
|
2024-10-21 08:30:19 +00:00
|
|
|
|
|
|
|
key_3:
|
2024-10-22 11:56:45 +00:00
|
|
|
ld de, #0206
|
2024-10-21 22:18:21 +00:00
|
|
|
jr invoke
|
2024-10-21 08:30:19 +00:00
|
|
|
|
|
|
|
key_4:
|
2024-10-22 11:56:45 +00:00
|
|
|
ld de, #0309
|
2024-10-21 22:18:21 +00:00
|
|
|
jr invoke
|
2024-10-21 08:30:19 +00:00
|
|
|
|
2024-10-22 11:08:09 +00:00
|
|
|
key_1:
|
2024-10-22 11:56:45 +00:00
|
|
|
ld de, #0000
|
2024-10-21 22:18:21 +00:00
|
|
|
invoke:
|
|
|
|
push de
|
2024-10-21 18:49:02 +00:00
|
|
|
call highlight_key
|
2024-10-21 08:30:19 +00:00
|
|
|
ld a, (counter)
|
2024-10-21 22:18:21 +00:00
|
|
|
add a, d
|
2024-10-21 08:30:19 +00:00
|
|
|
call play
|
2024-10-21 22:18:21 +00:00
|
|
|
pop de
|
2024-10-21 18:49:02 +00:00
|
|
|
call highlight_key
|
2024-10-21 08:30:19 +00:00
|
|
|
|
|
|
|
inc_counter:
|
2024-10-21 16:23:30 +00:00
|
|
|
ld a, 0 ;This value will be modified by the running code
|
2024-10-21 08:30:19 +00:00
|
|
|
add a, 5
|
|
|
|
cp 25
|
|
|
|
jr nz, set_counter
|
2024-10-21 21:53:06 +00:00
|
|
|
jr zero_counter
|
2024-10-21 18:49:02 +00:00
|
|
|
|
|
|
|
highlight_key:
|
|
|
|
ld hl, xylo
|
2024-10-21 22:18:21 +00:00
|
|
|
push de
|
2024-10-21 21:53:06 +00:00
|
|
|
ld d, 0
|
|
|
|
add hl, de
|
2024-10-21 22:18:21 +00:00
|
|
|
ld e, 30
|
2024-10-21 18:49:02 +00:00
|
|
|
ld a, (hl)
|
|
|
|
xor %01000000
|
2024-10-22 11:56:45 +00:00
|
|
|
ld b, 15
|
|
|
|
highlight_block:
|
2024-10-21 18:49:02 +00:00
|
|
|
ld (hl), a
|
|
|
|
inc hl
|
2024-10-21 22:18:21 +00:00
|
|
|
ld (hl), a
|
|
|
|
inc hl
|
|
|
|
ld (hl), a
|
2024-10-21 21:53:06 +00:00
|
|
|
add hl, de
|
2024-10-21 22:18:21 +00:00
|
|
|
djnz highlight_block
|
|
|
|
pop de
|
2024-10-21 18:49:02 +00:00
|
|
|
ret
|
2024-10-21 08:30:19 +00:00
|
|
|
|
|
|
|
INCLUDE "sample.asm"
|