From faf9179c10e1619845912d746de85ff082a58c72 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 4 Apr 2022 19:17:37 -0400 Subject: [PATCH] lemm: keep pointer on screen would crash spectacularly when we'd go off the edge --- games/lemm/draw_pointer.s | 2 +- games/lemm/hgr_partial_restore.s | 3 ++- games/lemm/keyboard.s | 32 ++++++++++++-------------------- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/games/lemm/draw_pointer.s b/games/lemm/draw_pointer.s index 69756edd..e7b0c15f 100644 --- a/games/lemm/draw_pointer.s +++ b/games/lemm/draw_pointer.s @@ -88,7 +88,7 @@ erase_pointer: lda CURSOR_Y sta SAVED_Y1 clc - adc #16 + adc #14 sta SAVED_Y2 lda CURSOR_X diff --git a/games/lemm/hgr_partial_restore.s b/games/lemm/hgr_partial_restore.s index 0d5cda71..acdfce50 100644 --- a/games/lemm/hgr_partial_restore.s +++ b/games/lemm/hgr_partial_restore.s @@ -14,7 +14,8 @@ hgr_partial_restore: ldx SAVED_Y2 ; handle wrap around cpx #192 bcc partial_restore_yloop ; assume > 192 off screen negative - ldx #0 + + ldx #0 ; X is end y-co-ord? partial_restore_yloop: diff --git a/games/lemm/keyboard.s b/games/lemm/keyboard.s index c6066330..cf4dce7a 100644 --- a/games/lemm/keyboard.s +++ b/games/lemm/keyboard.s @@ -120,11 +120,8 @@ check_left: cmp #8 ; left key bne check_right left_pressed: - lda CURSOR_X ; if 41=38 don't increment + cmp #38 + bcs done_right_pressed do_inc_cursor_x: inc CURSOR_X done_right_pressed: @@ -152,11 +147,8 @@ check_up: cmp #$0B ; up key bne check_down up_pressed: - lda CURSOR_Y ; if 191=176 then don't inc? + cmp #176 ; cursor is 14 in size +; bcc do_inc_cursor_y +; cmp #$EE + bcs done_down_pressed do_inc_cursor_y: inc CURSOR_Y inc CURSOR_Y