.macro FUNC_START name .text .globl \name .globl _\name \name: _\name: .endm FUNC_START _sbrk mov r4, r2 // save increment lrw r3, brkval ldw r2, (r3) // get next spot movi r5, 7 addi r2, 7 // round up to 8 bytes andn r2, r5 addu r4, r2 // save updated pointer stw r4, (r3) jmp r15 // brk() could go in here too... .data .import _end brkval: .long _end FUNC_START _exit mov r1, r1 // accomodate simulator glitch... .short 0x5000 br _exit // hard loop here // 0x5001 - printf // 0x5002 - scanf FUNC_START utime .short 0x5003 jmp r15 .macro stub name value FUNC_START \name movi r1, \value .short 0x50FF jmp r15 .endm stub _close 6 stub _lseek 19 stub _open 5 stub _read 3 stub _times 43 stub _unlink 10 stub _write 4 //stub access 33 //stub creat 8 //stub link 9 //stub time 13 //stub profil 98 // movi r6, 2 //stub lprofil 98 // movi r6, 4