#include "/sys/src/libc/9syscall/sys.h"
/*
* we pass in the argument of the exec parameters as 0(FP)
*/
TEXT main(SB),$8
MOVW $setR30(SB), R30
MOVW $boot(SB), R1
ADD $12, R29, R2 /* get a pointer to 0(FP) */
MOVW R1, 4(R29)
MOVW R2, 8(R29)
JAL exec(SB)
MOVW $(1<<4), R1
MOVW R1, 4(R29)
MOVW $RFORK, R1
SYSCALL
MOVW $RFORK, R1
SYSCALL
MOVW $RFORK, R1
SYSCALL
again:
ADDU $1, R2
MOVW $0, R1 /* print r1 */
SYSCALL
MOVW $5000000, R3
foo:
SUBU $1, R3
BNE R3, foo
JMP again
TEXT exec(SB), $0
MOVW $EXEC, R1
SYSCALL
RET
DATA boot+0(SB)/5,$"/boot"
DATA boot+5(SB)/5,$"/boot"
DATA bootv+0(SB)/4,$boot+6(SB)
GLOBL boot+0(SB),$11
GLOBL bootv+0(SB),$8
|