Pad_Button_Check: PUSH AF PUSH BC LD A, $mem_button_direction LD $mem_last_button_direction, A LD A, $mem_button_action LD $mem_last_button_action, A LD A, $20 LD $reg_joypad, A LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD C, A LD A, $00 .Right: BIT 0, C JR NZ =.Left LD A, $enum_direction_right .Left: BIT 1, C JR NZ =.Up LD A, $enum_direction_left .Up: BIT 2, C JR NZ =.Down LD A, $enum_direction_up .Down: BIT 3, C JR NZ =.End LD A, $enum_direction_down .End: LD $mem_button_direction, A LD A, $10 LD $reg_joypad, A LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad LD A, $reg_joypad XOR $0f AND $0f LD $mem_button_action, A CP $0f JP Z, =Start POP BC POP AF RET