main: attribute naked not working, use .s instead
[swan-dev] / src / entry.S
index e5fae8b..3ae396c 100644 (file)
 .extern _etext
 .extern _sdata
 .extern _edata
+.extern scroll_video
+
 .global _start
+.global dummyS_isr
 
 _start:
        # reset flags and registers
@@ -22,6 +25,12 @@ _start:
        mov %ax,%bx
        mov %ax,%bp
        mov %ax,%ss
+       
+       # set correct segment (use at
+       # position 0x2000 + 0 + IP
+       mov $0x2000, %bx
+       mov %bx, %cs
+       xor %bx, %bx
 
        # set stack pointer for wonderswan
        # color
@@ -46,9 +55,20 @@ copy_to_ram:
        xor %ax, %ax
        mov %ax, %ds
 
+
        # jump to C
        call main
 
+dummyS_isr:
+       push %ax
+       call scroll_video
+       ;xor %ax, %ax
+       ;in $0x12, %al
+       ;inc %al
+       ;out %al, $0x12
+       pop %ax
+       iret
+
        # should not be here
 loop:  nop
        jmp loop