input sortof-works
[ld45_start_nothing] / src / main.asm
index 1cf9d6a..c3ab902 100644 (file)
@@ -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
        ; 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