diff options
| -rw-r--r-- | screenshots/foolos.png | bin | 31655 -> 168836 bytes | |||
| -rw-r--r-- | userspace/brainfuck.c | 20 | ||||
| -rw-r--r-- | userspace/syscalls.c | 11 |
3 files changed, 19 insertions, 12 deletions
diff --git a/screenshots/foolos.png b/screenshots/foolos.png Binary files differindex c5f3ae2..1f42a5d 100644 --- a/screenshots/foolos.png +++ b/screenshots/foolos.png diff --git a/userspace/brainfuck.c b/userspace/brainfuck.c index c363693..76a18cc 100644 --- a/userspace/brainfuck.c +++ b/userspace/brainfuck.c @@ -24,7 +24,8 @@ #include <string.h> // by brainfuck standards (doesn't that sound funny?), the data pointer has -// 30,000 bytes at its disposal, but I hate hard-coding such stuff. +// 3,000 bytes at its disposal, but I hate hard-coding such stuff. +// FOOLOS: decreased to 3000 (from 30.000) #define DATA_SIZE 3000 void usage() { @@ -77,9 +78,18 @@ int main(int argc, char **argv) // added by FOOLOS input=fopen(1,"r"); - puts("Welcome to the BRAINFUCK by Felix Oghina"); - puts("Compiled for FoolOS"); - printf("dataptr: 0x%08X\n",dataptr); + char *buf=malloc(256); + puts("\n\nbrainfuck: Welcome to the BRAINFUCK INTERPRETER by Felix Oghina"); + puts("brainfuck: Licensed under the (brain)fuck licenses!"); + puts("brainfuck: Adapted & Compiled for FoolOS"); +// printf("brainfuck: dataptr: 0x%08X\n",dataptr); +// printf("brainfuck: dataptr2: 0x%08X\n",buf); + rewind(input); + fgets(buf,255,input); + printf("\nbrainfuck: loaded programm: %s\n\n",buf); + fseek(input, 0, SEEK_SET); + + // zero the data pointer for (i=0; i < DATA_SIZE; i++) { @@ -87,7 +97,6 @@ int main(int argc, char **argv) } // start interpreting - rewind(input); while (!feof(input)) { r = (unsigned char) fgetc(input); @@ -142,6 +151,5 @@ int main(int argc, char **argv) break; } } - puts("brainfuck: finishing!"); return EXIT_SUCCESS; } diff --git a/userspace/syscalls.c b/userspace/syscalls.c index d8a463d..7b0f563 100644 --- a/userspace/syscalls.c +++ b/userspace/syscalls.c @@ -16,7 +16,7 @@ void syscalls_init() int close(int file) { - easywrite("syscall: close\n"); +// easywrite("syscall: close\n"); return -1; } @@ -29,7 +29,7 @@ int fstat(int file, struct stat *st) int isatty(int file) { - easywrite("syscall: isatty\n"); +// easywrite("syscall: isatty\n"); return 1; } @@ -51,8 +51,7 @@ int read(int file, char *ptr, int len) char buf[]="++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++."; if(preread>=strlen(buf)){ - easywrite("syscall: read = EOF\n"); - while(1); +// easywrite("syscall: read = EOF\n"); return 0; //EOF } @@ -67,7 +66,7 @@ int read(int file, char *ptr, int len) int open(const char *name, int flags, int mode) { - easywrite("syscall: open\n"); +// easywrite("syscall: open\n"); return 99; return -1; } @@ -102,7 +101,7 @@ int write(int file, char *ptr, int len) caddr_t sbrk(int incr) { - easywrite("syscall: sbrk!!\n"); +// easywrite("syscall: sbrk!!\n"); int oldalloc=alloc; alloc+=incr; return oldalloc; |
