#include <machine/regdef.h>

#define BIN_ADDRESS 0x09fc0000
	
	.text
	.set	noreorder
	.set	mips2

	/* Get address of the "start" label in ra */
	bal	start
	li	a1, 1
start:
	/* Open bin file */
	move	a0, ra		/* a0 = start */
	addiu	a0, a0, path - start
	li	a2, 0777
 	syscall	0x208f		/* sceIoOpen(path, PSP_O_RDONLY, 0777) */
		
	/* Read up to 64k into memory */
	move	a0, v0
	lui	a1, %hi(BIN_ADDRESS | 0x40000000)
	addiu	a1, a1, %lo(BIN_ADDRESS)
	li	a2, 0xffff
	syscall	0x2091		/* sceIoRead(fd, BIN_ADDRESS, 65535) */

	/* Jump to our loaded binary */
	j	BIN_ADDRESS
	nop
			
path:
	.ascii "ms0:/hw.bin"