|
|
|
;; ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
|
|
|
;; ██░▄▄░█░██░█░▄▄█░▄▄█░▄▄█░███░█▀▄▄▀█░▄▄▀█░█▀██
|
|
|
|
;; ██░█▀▀█░██░█░▄▄█▄▄▀█▄▄▀█▄▀░▀▄█░██░█░▀▀▄█░▄▀██
|
|
|
|
;; ██░▀▀▄██▄▄▄█▄▄▄█▄▄▄█▄▄▄██▄█▄███▄▄██▄█▄▄█▄█▄██
|
|
|
|
;; ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
|
|
|
;; Manages and displays the guessing attempts
|
|
|
|
|
|
|
|
|
|
|
|
; Updates the objects of the entered characters
|
|
|
|
; -> [guesses]
|
|
|
|
; <- [obj_guess_letters]
|
|
|
|
update_guess_objects:
|
|
|
|
ld hl, obj_guess_letters
|
|
|
|
ld de, guesses
|
|
|
|
|
|
|
|
ld a, $14
|
|
|
|
call update_guess_row
|
|
|
|
ld a, $24
|
|
|
|
call update_guess_row
|
|
|
|
ld a, $34
|
|
|
|
call update_guess_row
|
|
|
|
ld a, $44
|
|
|
|
call update_guess_row
|
|
|
|
ld a, $54
|
|
|
|
call update_guess_row
|
|
|
|
ld a, $64
|
|
|
|
call update_guess_row
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Updates one line of entered characters
|
|
|
|
; -> hl: address of where to write obj data
|
|
|
|
; -> de: address of the current guess
|
|
|
|
; -> a: vertical screen position
|
|
|
|
; <- [obj_guess_letters]
|
|
|
|
update_guess_row:
|
|
|
|
push hl
|
|
|
|
push hl
|
|
|
|
push hl
|
|
|
|
|
|
|
|
; distance between objects
|
|
|
|
ld bc, 4
|
|
|
|
|
|
|
|
; write all five vertical positions
|
|
|
|
ld [hl], a
|
|
|
|
REPT 4
|
|
|
|
add hl, bc
|
|
|
|
ld [hl], a
|
|
|
|
ENDR
|
|
|
|
|
|
|
|
; write all five horizontal positions
|
|
|
|
pop hl
|
|
|
|
inc hl
|
|
|
|
ld a, $30
|
|
|
|
ld [hl], a
|
|
|
|
REPT 4
|
|
|
|
add hl, bc
|
|
|
|
add a, $10
|
|
|
|
ld [hl], a
|
|
|
|
ENDR
|
|
|
|
|
|
|
|
; write all five tile indices
|
|
|
|
pop hl
|
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld a, [de]
|
|
|
|
ld [hl], a
|
|
|
|
REPT 4
|
|
|
|
add hl, bc
|
|
|
|
inc de
|
|
|
|
ld a, [de]
|
|
|
|
ld [hl], a
|
|
|
|
ENDR
|
|
|
|
|
|
|
|
; write all five palette info
|
|
|
|
pop hl
|
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
inc hl
|
|
|
|
ld a, OBJ_ATTR_PALETTE1
|
|
|
|
ld [hl], a
|
|
|
|
REPT 4
|
|
|
|
add hl, bc
|
|
|
|
ld [hl], a
|
|
|
|
ENDR
|
|
|
|
|
|
|
|
inc hl
|
|
|
|
inc de
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Calculates the address of the current guess attempt, using the number of the attempt
|
|
|
|
; -> [current_guess]: number of the current attempt
|
|
|
|
; <- hl
|
|
|
|
get_guess_offset:
|
|
|
|
ld a, [current_guess]
|
|
|
|
ld b, 5
|
|
|
|
call multiply_ab
|
|
|
|
ld b, 0
|
|
|
|
ld c, a
|
|
|
|
ld hl, guesses
|
|
|
|
add hl, bc
|
|
|
|
ret
|
|
|
|
|