// Write to a file descriptor using the SYS_write syscall // args: [buff_size, buff_ptr, fd] // @arg buff_size: Int - number of bytes to write // @arg buff_ptr: Ptr - pointer to the buffer to write // @arg fd: Int - file descriptor // @ret Int inline fn fwrite with int ptr int returns int then SYS_write syscall3 done // Write to a file descriptor using the SYS_write syscall // args: [buff_size, buff_ptr, fd] // @arg buff_size: Int - number of bytes to write // @arg buff_ptr: Ptr - pointer to the buffer to write // @arg fd: Int - file descriptor // @ret Int inline fn fread with int ptr int returns int then SYS_read syscall3 done // Write to a file descriptor using the SYS_write syscall // args: [buff_ptr, flags, mode] // @arg buff_ptr: Ptr - File to open // @arg flags: Int - Flags // @arg mode: Int - Mode // @ret Int - Fd inline fn fopen with int ptr int returns int then SYS_open syscall3 done // Print a string to STDOUT // args: [str_size, str_ptr] // @arg buff_size: Int - number of bytes to write // @arg buff_ptr: Ptr - pointer to the buffer to write // @ret NULL inline fn puts with int ptr returns void then STDOUT fwrite drop done // Print a string to STDERR // args: [str_size, str_ptr] // @arg buff_size: Int - number of bytes to write // @arg buff_ptr: Ptr - pointer to the buffer to write // @ret NULL inline fn eputs with int ptr returns void then STDOUT fwrite drop done // TODO: make putc, eputc, putd, and eputd after we make local mem // Exit the program with exit_code // args: [exit_code] // @arg exit_code: Int // @ret NULL/NEVER inline fn exit with int returns void then SYS_exit syscall1 drop done