X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=ld45_start_nothing;a=blobdiff_plain;f=src%2Fmain.asm;h=c3ab902519ee6440675a9b4e3d1eb2e380e06a99;hp=c0af0ad44526b0682e9a65ac622d71788538ee88;hb=3ec4a3e6d73d15500e48c87f31f2193603e94d56;hpb=6a16a1c526937ee551f968901cb949d55e35ecda diff --git a/src/main.asm b/src/main.asm index c0af0ad..c3ab902 100644 --- a/src/main.asm +++ b/src/main.asm @@ -1,21 +1,62 @@ ; vi:filetype=nasm ts=8 sts=8 sw=8: - bits 16 - org 7e00h ; that's where our boot loader puts us (see src/boot/boot.asm) + 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 word 100 - push word 160 - push word 0 - call slow_sprite + 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 -%include "gfx.asm" +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 -%include "data/sprsheet.inc" + section .data + align 4 +ship_x: dd 160 << 8 +ship_y: dd 100 << 8