diff --git a/.gitattributes b/.gitattributes index cbd46bd4b0..2a495911e6 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3371,7 +3371,8 @@ rtl/freebsd/unxsysc.inc svneol=native#text/plain rtl/freebsd/x86_64/bsyscall.inc svneol=native#text/plain rtl/freebsd/x86_64/prt0.as -text rtl/gba/Makefile.fpc svneol=native#text/plain -rtl/gba/prt0.as -text +rtl/gba/fpc4gba.txt svneol=native#text/plain +rtl/gba/prt0.as svneol=native#text/plain rtl/gba/sysgba.pp svneol=native#text/plain rtl/gba/system.pp svneol=native#text/plain rtl/gba/unix.pp svneol=native#text/plain diff --git a/rtl/gba/prt0.as b/rtl/gba/prt0.as index 066517e60a..1be331fd37 100644 --- a/rtl/gba/prt0.as +++ b/rtl/gba/prt0.as @@ -1,101 +1,101 @@ -@******************************************************************** -@* crt0.s * -@ This file is a hack. It is not meant for serious work. * -@******************************************************************** - .TEXT - - .GLOBAL _start -_start: - .ALIGN - .CODE 32 - @ Start Vector -rom_header: b rom_header_end - - @ Nintendo Logo Character Data (8000004h) - .byte 0x24,0xff,0xae,0x51,0x69,0x9a,0xa2,0x21 - .byte 0x3d,0x84,0x82,0x0a,0x84,0xe4,0x09,0xad - .byte 0x11,0x24,0x8b,0x98,0xc0,0x81,0x7f,0x21 - .byte 0xa3,0x52,0xbe,0x19,0x93,0x09,0xce,0x20 - .byte 0x10,0x46,0x4a,0x4a,0xf8,0x27,0x31,0xec - .byte 0x58,0xc7,0xe8,0x33,0x82,0xe3,0xce,0xbf - .byte 0x85,0xf4,0xdf,0x94,0xce,0x4b,0x09,0xc1 - .byte 0x94,0x56,0x8a,0xc0,0x13,0x72,0xa7,0xfc - .byte 0x9f,0x84,0x4d,0x73,0xa3,0xca,0x9a,0x61 - .byte 0x58,0x97,0xa3,0x27,0xfc,0x03,0x98,0x76 - .byte 0x23,0x1d,0xc7,0x61,0x03,0x04,0xae,0x56 - .byte 0xbf,0x38,0x84,0x00,0x40,0xa7,0x0e,0xfd - .byte 0xff,0x52,0xfe,0x03,0x6f,0x95,0x30,0xf1 - .byte 0x97,0xfb,0xc0,0x85,0x60,0xd6,0x80,0x25 - .byte 0xa9,0x63,0xbe,0x03,0x01,0x4e,0x38,0xe2 - .byte 0xf9,0xa2,0x34,0xff,0xbb,0x3e,0x03,0x44 - .byte 0x78,0x00,0x90,0xcb,0x88,0x11,0x3a,0x94 - .byte 0x65,0xc0,0x7c,0x63,0x87,0xf0,0x3c,0xaf - .byte 0xd6,0x25,0xe4,0x8b,0x38,0x0a,0xac,0x72 - .byte 0x21,0xd4,0xf8,0x07 - - @ Software Titles (80000A0h) - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 - .byte 0x00,0x00,0x00,0x00 - - @ Initial Code (80000ACh) - .byte 0x00,0x00,0x00,0x00 - - @ Maker Code (80000B0h) - .byte 0x30,0x31 - - @ Fixed Value (80000B2h) - .byte 0x96 - - @ Main Unit Code (80000B3h) - .byte 0x00 - - @ Device Type (80000B4h) - .byte 0x00 - - @ Unused Data (7Byte) (80000B5h) - .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00 - - @ Software Version No (80000BCh) - .byte 0x00 - - @ Complement Check (80000BDh) - .byte 0xf0 - - @ Check Sum (80000BEh) - .byte 0x00,0x00 - -rom_header_end: - -@-------------------------------------------------------------------- -@- Reset - -@-------------------------------------------------------------------- - .EXTERN PASCALMAIN - .GLOBAL start_vector - .CODE 32 - .ALIGN -start_vector: - mov r0, #0x12 @ Switch to IRQ Mode - msr cpsr, r0 - - ldr sp, sp_irq @ Set SP_irq - - mov r0, #0x1f @ Switch to System Mode - msr cpsr, r0 - - ldr sp, sp_usr @ Set SP_usr - str r0, [r1] - - ldr r1, =PASCALMAIN @ Start & Switch to 16bit Code - mov lr, pc - bx r1 - - b start_vector @ Reset - - .ALIGN -sp_usr: .word 0x3008000 - 0x100 -sp_irq: .word 0x3008000 - 0x60 - - .ALIGN - .CODE 32 - - .END +@******************************************************************** +@* crt0.s * +@ This file is a hack. It is not meant for serious work. * +@******************************************************************** + .TEXT + + .GLOBAL _start +_start: + .ALIGN + .CODE 32 + @ Start Vector +rom_header: b rom_header_end + + @ Nintendo Logo Character Data (8000004h) + .byte 0x24,0xff,0xae,0x51,0x69,0x9a,0xa2,0x21 + .byte 0x3d,0x84,0x82,0x0a,0x84,0xe4,0x09,0xad + .byte 0x11,0x24,0x8b,0x98,0xc0,0x81,0x7f,0x21 + .byte 0xa3,0x52,0xbe,0x19,0x93,0x09,0xce,0x20 + .byte 0x10,0x46,0x4a,0x4a,0xf8,0x27,0x31,0xec + .byte 0x58,0xc7,0xe8,0x33,0x82,0xe3,0xce,0xbf + .byte 0x85,0xf4,0xdf,0x94,0xce,0x4b,0x09,0xc1 + .byte 0x94,0x56,0x8a,0xc0,0x13,0x72,0xa7,0xfc + .byte 0x9f,0x84,0x4d,0x73,0xa3,0xca,0x9a,0x61 + .byte 0x58,0x97,0xa3,0x27,0xfc,0x03,0x98,0x76 + .byte 0x23,0x1d,0xc7,0x61,0x03,0x04,0xae,0x56 + .byte 0xbf,0x38,0x84,0x00,0x40,0xa7,0x0e,0xfd + .byte 0xff,0x52,0xfe,0x03,0x6f,0x95,0x30,0xf1 + .byte 0x97,0xfb,0xc0,0x85,0x60,0xd6,0x80,0x25 + .byte 0xa9,0x63,0xbe,0x03,0x01,0x4e,0x38,0xe2 + .byte 0xf9,0xa2,0x34,0xff,0xbb,0x3e,0x03,0x44 + .byte 0x78,0x00,0x90,0xcb,0x88,0x11,0x3a,0x94 + .byte 0x65,0xc0,0x7c,0x63,0x87,0xf0,0x3c,0xaf + .byte 0xd6,0x25,0xe4,0x8b,0x38,0x0a,0xac,0x72 + .byte 0x21,0xd4,0xf8,0x07 + + @ Software Titles (80000A0h) + .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + .byte 0x00,0x00,0x00,0x00 + + @ Initial Code (80000ACh) + .byte 0x00,0x00,0x00,0x00 + + @ Maker Code (80000B0h) + .byte 0x30,0x31 + + @ Fixed Value (80000B2h) + .byte 0x96 + + @ Main Unit Code (80000B3h) + .byte 0x00 + + @ Device Type (80000B4h) + .byte 0x00 + + @ Unused Data (7Byte) (80000B5h) + .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00 + + @ Software Version No (80000BCh) + .byte 0x00 + + @ Complement Check (80000BDh) + .byte 0xf0 + + @ Check Sum (80000BEh) + .byte 0x00,0x00 + +rom_header_end: + +@-------------------------------------------------------------------- +@- Reset - +@-------------------------------------------------------------------- + .EXTERN PASCALMAIN + .GLOBAL start_vector + .CODE 32 + .ALIGN +start_vector: + mov r0, #0x12 @ Switch to IRQ Mode + msr cpsr, r0 + + ldr sp, sp_irq @ Set SP_irq + + mov r0, #0x1f @ Switch to System Mode + msr cpsr, r0 + + ldr sp, sp_usr @ Set SP_usr + str r0, [r1] + + ldr r1, =PASCALMAIN @ Start & Switch to 16bit Code + mov lr, pc + bx r1 + + b start_vector @ Reset + + .ALIGN +sp_usr: .word 0x3008000 - 0x100 +sp_irq: .word 0x3008000 - 0x60 + + .ALIGN + .CODE 32 + + .END