B447: Enter a name for the high-score table
| name_entry_pos |
B447 |
DEFB $0D |
| enter_highscore_name |
B448 |
POP HL |
|
B449 |
POP DE |
|
B44A |
POP BC |
|
B44B |
PUSH HL |
|
B44C |
LD A,B |
|
B44D |
CP $01 |
|
B44F |
JR Z,highscore_draw |
|
B451 |
DEC B |
|
B452 |
LD DE,$0016 |
|
B455 |
LD HL,$0000 |
| highscore_scroll |
B458 |
ADD HL,DE |
|
B459 |
DJNZ highscore_scroll |
|
B45B |
LD C,L |
|
B45C |
LD B,H |
|
B45D |
LD HL,highscore_entries+$C5 |
|
B460 |
LD DE,highscore_entries+$DB |
|
B463 |
LDDR |
| highscore_draw |
B465 |
LD A,$0C |
|
B467 |
LD (name_entry_pos),A |
|
B46A |
XOR A |
|
B46B |
LD (name_entry_cursor),A |
|
B46E |
LD HL,highscore_heading |
|
B471 |
LD DE,msg_congrats |
|
B474 |
LD C,$4E |
|
B476 |
CALL print_string_2x |
|
B479 |
LD HL,SCREEN_BASE+$A5 |
|
B47C |
LD DE,msg_input_name |
|
B47F |
LD C,$45 |
|
B481 |
CALL print_string_2x |
|
B484 |
LD HL,SCREEN_BASE+$801 |
|
B487 |
LD DE,name_entry_strip |
|
B48A |
LD C,$47 |
|
B48C |
CALL print_string |
|
B48F |
LD HL,score_display |
|
B492 |
LD DE,highscore_entry_buffer |
|
B495 |
LD BC,$0008 |
|
B498 |
LDIR |
|
B49A |
EX DE,HL |
|
B49B |
LD (HL),$20 |
|
B49D |
INC HL |
|
B49E |
LD (HL),$2D |
|
B4A0 |
INC HL |
|
B4A1 |
LD (HL),$2D |
|
B4A3 |
INC HL |
|
B4A4 |
LD (HL),$20 |
|
B4A6 |
INC HL |
|
B4A7 |
LD B,$0A |
| highscore_holder_loop |
B4A9 |
LD (HL),$24 |
|
B4AB |
INC HL |
|
B4AC |
DJNZ highscore_holder_loop |
|
B4AE |
DEC HL |
|
B4AF |
SET 7,(HL) |
| highscore_print_name |
B4B1 |
LD HL,SCREEN_BASE+$8A5 |
|
B4B4 |
LD DE,highscore_entry_buffer |
|
B4B7 |
LD C,$47 |
|
B4B9 |
CALL print_string_2x |
| highscore_cursor_pos |
B4BC |
LD A,(name_entry_cursor) |
|
B4BF |
LD E,A |
|
B4C0 |
LD D,$00 |
|
B4C2 |
LD HL,ATTR_BASE+$101 |
|
B4C5 |
ADD HL,DE |
|
B4C6 |
DEC HL |
|
B4C7 |
LD (HL),$47 |
|
B4C9 |
INC HL |
|
B4CA |
LD (HL),$78 |
|
B4CC |
INC HL |
|
B4CD |
LD (HL),$47 |
|
B4CF |
CALL read_ctrl |
|
B4D2 |
LD HL,controls |
|
B4D5 |
BIT 4,(HL) |
|
B4D7 |
JR NZ,highscore_confirm_char |
|
B4D9 |
BIT 2,(HL) |
|
B4DB |
CALL NZ,name_cursor_left |
|
B4DE |
BIT 3,(HL) |
|
B4E0 |
CALL NZ,name_cursor_right |
|
B4E3 |
CALL highscore_input_delay |
|
B4E6 |
JR highscore_cursor_pos |
| highscore_confirm_char |
B4E8 |
CALL read_ctrl |
|
B4EB |
LD HL,controls |
|
B4EE |
BIT 4,(HL) |
|
B4F0 |
JR NZ,highscore_confirm_char |
|
B4F2 |
LD A,(name_entry_cursor) |
|
B4F5 |
LD E,A |
|
B4F6 |
LD D,$00 |
|
B4F8 |
LD HL,name_entry_strip |
|
B4FB |
ADD HL,DE |
|
B4FC |
LD A,(HL) |
|
B4FD |
CP $A9 |
|
B4FF |
JR NZ,highscore_check_delete |
|
B501 |
LD HL,highscore_new_name |
|
B504 |
LD B,$0A |
| highscore_finalize_loop |
B506 |
LD A,(HL) |
|
B507 |
CP $24 |
|
B509 |
JR Z,highscore_clear_holder |
|
B50B |
CP $A4 |
|
B50D |
JR Z,highscore_clear_holder |
|
B50F |
INC HL |
|
B510 |
DJNZ highscore_finalize_loop |
|
B512 |
JR highscore_store_name |
| highscore_clear_holder |
B514 |
LD (HL),$20 |
|
B516 |
INC HL |
|
B517 |
DJNZ highscore_clear_holder |
|
B519 |
DEC HL |
|
B51A |
SET 7,(HL) |
| highscore_store_name |
B51C |
POP DE |
|
B51D |
LD HL,highscore_entry_buffer |
|
B520 |
LD BC,$0016 |
|
B523 |
LDIR |
|
B525 |
JP draw_highscore_table |
| highscore_check_delete |
B528 |
CP $28 |
|
B52A |
JR NZ,highscore_letter_check |
|
B52C |
LD A,(name_entry_pos) |
|
B52F |
CP $0D |
|
B531 |
JP C,highscore_print_name |
|
B534 |
CP $15 |
|
B536 |
JR NZ,highscore_delete_apply |
|
B538 |
LD E,A |
|
B539 |
LD D,$00 |
|
B53B |
LD HL,highscore_entry_buffer |
|
B53E |
ADD HL,DE |
|
B53F |
LD A,(HL) |
|
B540 |
CP $A4 |
|
B542 |
JR Z,highscore_delete_pos |
|
B544 |
LD (HL),$A4 |
|
B546 |
JR highscore_delete_done |
| highscore_delete_pos |
B548 |
LD A,E |
| highscore_delete_apply |
B549 |
DEC A |
|
B54A |
LD (name_entry_pos),A |
|
B54D |
LD E,A |
|
B54E |
LD D,$00 |
|
B550 |
LD HL,highscore_entry_buffer |
|
B553 |
ADD HL,DE |
|
B554 |
LD (HL),$24 |
| highscore_delete_done |
B556 |
CALL sfx_key_blip |
|
B559 |
CALL wait_no_key |
|
B55C |
JP highscore_print_name |
| highscore_letter_check |
B55F |
LD HL,highscore_entry_buffer |
|
B562 |
EX AF,AF' |
|
B563 |
LD A,(name_entry_pos) |
|
B566 |
LD E,A |
|
B567 |
LD D,$00 |
|
B569 |
ADD HL,DE |
|
B56A |
EX AF,AF' |
|
B56B |
LD (HL),A |
|
B56C |
LD HL,name_entry_pos |
|
B56F |
LD A,(HL) |
|
B570 |
CP $15 |
|
B572 |
JR NZ,highscore_advance_pos |
|
B574 |
LD HL,highscore_new_name_last |
|
B577 |
SET 7,(HL) |
|
B579 |
JR highscore_wait_release |
| highscore_advance_pos |
B57B |
INC (HL) |
| highscore_wait_release |
B57C |
CALL wait_no_key |
|
B57F |
CALL sfx_key_blip |
|
B582 |
JP highscore_print_name |
Fork me on GitHub