main: setting register from C with inline asm
[swan-dev] / src / init.s
index 065942e..3a36e09 100644 (file)
@@ -2,6 +2,7 @@
 %include "WonderSwan.inc"
 
 extern _main
+extern __end
 
 MYSEGMENT      equ     0xF000
 
@@ -38,10 +39,12 @@ sprtable    equ     bgmap-SPR_TABLE_SIZE
        mov     sp,WS_STACK
 
        in      al,IO_HARDWARE_TYPE     ; Check Wonderswan Mono/Color
-       test    al,WS_COLOR
+       test    al,WS_COLOR 
 .mono: jz      .mono           ; We loop forever if Mono
 
        mov     sp,WSC_STACK    ; New stack
+       
+       call    _main
 
        xor     ax,ax           ; Clear Ram
        mov     di,0x100
@@ -182,7 +185,7 @@ TileGfxE:
 
 ;******************************************
 
-       ROM_HEADER      ..start, MYSEGMENT, 0x42, RH_WS_COLOR, RH_ROM_8MBITS, RH_NO_SRAM, RH_HORIZONTAL
+       ;ROM_HEADER     __end, MYSEGMENT, 0x42, RH_WS_COLOR, RH_ROM_8MBITS, RH_NO_SRAM, RH_HORIZONTAL
 
 ;******************************************