summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--screenshots/foolos.pngbin31655 -> 168836 bytes
-rw-r--r--userspace/brainfuck.c20
-rw-r--r--userspace/syscalls.c11
3 files changed, 19 insertions, 12 deletions
diff --git a/screenshots/foolos.png b/screenshots/foolos.png
index c5f3ae2..1f42a5d 100644
--- a/screenshots/foolos.png
+++ b/screenshots/foolos.png
Binary files differ
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;