X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=ld45_start_nothing;a=blobdiff_plain;f=src%2Fmain.asm;h=c3ab902519ee6440675a9b4e3d1eb2e380e06a99;hp=4b2a11a4f506a42d4930f07e685108bdb9d5b3ae;hb=3ec4a3e6d73d15500e48c87f31f2193603e94d56;hpb=2cef53ae69622dc995fa0f4ac7a6d793684b4403 diff --git a/src/main.asm b/src/main.asm index 4b2a11a..c3ab902 100644 --- a/src/main.asm +++ b/src/main.asm @@ -1,24 +1,62 @@ ; vi:filetype=nasm ts=8 sts=8 sw=8: bits 32 - section .text +%include "gfx.inc" +%include "keyb.inc" +%include "intr.inc" +%include "dbglog.inc" - extern init_gfx - extern clear - extern slow_sprite - extern wait_vsync - extern swap_buffers + ; 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 + section .startup + jmp main + ; 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 word 100 - push word 160 - push word 0 - call slow_sprite - add esp, 6 + push dword 0 + 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