diff options
| author | user <user@clank> | 2026-07-18 00:38:38 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-07-18 00:38:38 +0200 |
| commit | ba2d7ae1d7b319645b10aaa31a7f664f9f80c25c (patch) | |
| tree | e01e6c7c710a661defe2515ff9657f08cddcb283 /c/gbos.h | |
| parent | tools: gbtype prints hub errors to stderr and exits 1 (diff) | |
| download | gbos-ba2d7ae1d7b319645b10aaa31a7f664f9f80c25c.tar.gz gbos-ba2d7ae1d7b319645b10aaa31a7f664f9f80c25c.tar.xz gbos-ba2d7ae1d7b319645b10aaa31a7f664f9f80c25c.zip | |
refactor: c/ -> usr/, compiled program blobs out of the source tree
Userland sources live in usr/ (fits the Unix theme better than 'c').
SDCC output .bin blobs land in build/usr/ with the other build artifacts
instead of littering the source dir; programs.asm INCBINs them from there.
Byte-identical ROM.
Diffstat (limited to 'c/gbos.h')
| -rw-r--r-- | c/gbos.h | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/c/gbos.h b/c/gbos.h deleted file mode 100644 index 2350665..0000000 --- a/c/gbos.h +++ /dev/null @@ -1,64 +0,0 @@ -/* gbos userland C API (thin wrappers over rst $30 syscalls; see c/libc.s) */ -#ifndef GBOS_H -#define GBOS_H -#define EOF 4 /* readc() returns this at end of input */ - -void writes(const char *buf, unsigned char len); -void putc(char c); -void puts(const char *s); /* write a NUL-terminated string */ -void nl(void); /* newline (CRLF) */ -unsigned char strlen(const char *s); -char *getargs(void); /* this program's argument string */ -char readc(void); /* one input byte, EOF at end */ -void sexit(unsigned char code); -unsigned char getpid(void); -unsigned char pipe(void); /* -> read fd; write end is read+1 */ -void ssend(unsigned char b); /* link-port: transmit one byte */ -unsigned char srecv(void); /* link-port: receive one byte (blocks) */ -int srecv_nb(void); /* link-port: receive, or -1 if none */ -unsigned char pollin(void); /* poll OSK for a typed char, or 0 */ -unsigned char pollcon(void); /* poll console ring (link-injected - input, filled by net pumps), or 0 */ -unsigned char sys_net(void *req); /* socket layer trap (see sock.h) */ -void gsleep(unsigned char units); /* delay units*(1/64)s (raw trap) */ -void msleep(unsigned int ms); /* delay ~ms milliseconds */ - -/* helpers (c/libc.c) */ -void putu(unsigned int n); /* print decimal */ -unsigned char atou(const char *s); /* parse decimal */ -unsigned char argv_parse(char **argv, unsigned char maxv); /* argc/argv */ -unsigned char hasflag(char **argv, unsigned char argc, char f); /* -x flag */ -char *optval(char **argv, unsigned char argc, char opt); /* -x VALUE */ - -/* filesystem (c/libc.s -> kernel syscalls) */ -unsigned char open(const char *name, unsigned char mode); /* 0=read 1=write */ -void close(unsigned char fd); -int fgetc(unsigned char fd); /* a byte, or -1 at EOF */ -void fputc(unsigned char fd, char ch); -unsigned char flist(unsigned char slot, char *namebuf); /* 1 if slot used */ -void fremove(const char *name); -unsigned char mkdir(const char *path); -unsigned char chdir(const char *path); -unsigned char opendir(const char *path); -void poweroff(void); /* clean emulator shutdown (saves) */ -#define O_READ 0 -#define O_WRITE 1 -#define NOFD 0xFF -#define EISDIR 0xFE /* open() failed: path is a directory */ - -/* process control (c/libc.s) */ -unsigned char fork(void); -void exec(unsigned char id); /* replace image; never returns */ -unsigned char wait(void); -void setin(unsigned char fd); /* redirect stdin ($FF=console) */ -void setout(unsigned char fd); /* redirect stdout ($FF=console) */ -unsigned char lookup(const char *name); /* command name -> program id */ -unsigned char kill(unsigned char pid); /* terminate a pid (1 is immortal)*/ -unsigned char psget(unsigned char slot, unsigned char *buf); /* {pid,state,prog}*/ -void progname(unsigned char id, char *buf); /* id -> name */ -void yield(void); -unsigned char reap(void); /* reap a finished bg job, or 0 */ -void bfill(unsigned char block, unsigned char byte); /* [debug] disk */ -unsigned char bpeek(unsigned char block); /* [debug] disk */ -unsigned char bpeek2(unsigned char block, unsigned char off); -#endif |
