X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=ld45_start_nothing;a=blobdiff_plain;f=src%2Fmain.asm;h=c3ab902519ee6440675a9b4e3d1eb2e380e06a99;hp=1cf9d6ad412943ecdb7091be27b233d80e5b60ef;hb=3ec4a3e6d73d15500e48c87f31f2193603e94d56;hpb=8a43487117b23806e478603f3c8ab72e37cd1882 diff --git a/src/main.asm b/src/main.asm index 1cf9d6a..c3ab902 100644 --- a/src/main.asm +++ b/src/main.asm @@ -1,6 +1,9 @@ ; vi:filetype=nasm ts=8 sts=8 sw=8: bits 32 %include "gfx.inc" +%include "keyb.inc" +%include "intr.inc" +%include "dbglog.inc" ; this is placed at the beginning of our binary at 1mb (see game.ld) ; and it's what gets executed directly by the boot loader @@ -10,14 +13,25 @@ ; start of main section .text main: + call init_intr + call kb_init call init_gfx + dbglog `hello\n` + + sti main_loop: + call update + call clear push dword 0 - push dword 100 - push dword 160 + 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 @@ -25,3 +39,24 @@ main_loop: call wait_vsync call swap_buffers 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 << 8 +ship_y: dd 100 << 8