From 3ec4a3e6d73d15500e48c87f31f2193603e94d56 Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Sun, 13 Oct 2019 18:10:06 +0300 Subject: [PATCH] input sortof-works --- src/keyb.inc | 15 +++++++++++++++ src/main.asm | 25 +++++++++++++++++++++---- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/keyb.inc b/src/keyb.inc index c022e43..6ecb5d9 100644 --- a/src/keyb.inc +++ b/src/keyb.inc @@ -2,3 +2,18 @@ extern kb_init extern keystate + +SC_ESC equ 1 +SC_W equ 17 +SC_ENTER equ 28 +SC_A equ 30 +SC_S equ 31 +SC_D equ 32 +SC_SPACE equ 57 + + ; carry set if key is pressed +%macro check_key 1 + mov ebx, keystate + %1 + mov al, [ebx] + add al, 0xff +%endmacro diff --git a/src/main.asm b/src/main.asm index ce5e5ad..c3ab902 100644 --- a/src/main.asm +++ b/src/main.asm @@ -26,8 +26,12 @@ main_loop: call clear push dword 0 - push dword [ship_y] - push dword [ship_x] + mov eax, [ship_y] + shr eax, 8 + push eax + mov eax, [ship_x] + shr eax, 8 + push eax push dword FRAMEBUF_ADDR call sprsheet add esp, 16 @@ -37,9 +41,22 @@ main_loop: jmp main_loop update: + check_key SC_W + jnc .not_w + dec dword [ship_y] +.not_w: check_key SC_S + jnc .not_s + inc dword [ship_y] +.not_s: check_key SC_A + jnc .not_a + dec dword [ship_x] +.not_a: check_key SC_D + jnc .not_d + inc dword [ship_x] +.not_d: ret section .data align 4 -ship_x: dd 160 -ship_y: dd 100 +ship_x: dd 160 << 8 +ship_y: dd 100 << 8 -- 1.7.10.4