; 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 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 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