aboutsummaryrefslogtreecommitdiffstats
path: root/c/gbos.h
diff options
context:
space:
mode:
authoruser <user@clank>2026-07-18 00:38:38 +0200
committeruser <user@clank>2026-07-18 00:38:38 +0200
commitba2d7ae1d7b319645b10aaa31a7f664f9f80c25c (patch)
treee01e6c7c710a661defe2515ff9657f08cddcb283 /c/gbos.h
parenttools: gbtype prints hub errors to stderr and exits 1 (diff)
downloadgbos-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.h64
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