X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=ld45_start_nothing;a=blobdiff_plain;f=src%2Fmain.asm;h=c3ab902519ee6440675a9b4e3d1eb2e380e06a99;hp=243ff0da6e8f4ba874059d8e4eb2349710bb0c8e;hb=3ec4a3e6d73d15500e48c87f31f2193603e94d56;hpb=78cf90d60c7cdbfcb8bc1d3e3d03a577d1b70f7b diff --git a/src/main.asm b/src/main.asm index 243ff0d..c3ab902 100644 --- a/src/main.asm +++ b/src/main.asm @@ -1,10 +1,9 @@ ; vi:filetype=nasm ts=8 sts=8 sw=8: bits 32 - extern init_gfx - extern clear - extern slow_sprite - extern wait_vsync - extern swap_buffers +%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 @@ -14,17 +13,50 @@ ; 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 100 - push dword 160 push dword 0 - call slow_sprite + 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 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