summaryrefslogtreecommitdiff
path: root/userspace
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-10-24 16:02:06 +0200
committerMichal Idziorek <m.i@gmx.at>2014-10-24 16:02:06 +0200
commit610cfb4cee7ca3f35f642eeb06de2c710ab67754 (patch)
tree1f910c8bc6112879f4649429f8746007d3b69c52 /userspace
parent270b064f1da0ec8a7dbfd0624576ae752e86e5fa (diff)
updated userspace with new adapted brainfuck
Diffstat (limited to 'userspace')
-rw-r--r--userspace/Makefile10
-rw-r--r--userspace/brainfuck.c9
2 files changed, 15 insertions, 4 deletions
diff --git a/userspace/Makefile b/userspace/Makefile
index ceba7d0..1663d1d 100644
--- a/userspace/Makefile
+++ b/userspace/Makefile
@@ -8,8 +8,8 @@ LDFLAGS=-L/home/miguel/temp/fool-os-stuff/newlib-build-clean/i686-elf/newlib/ \
-L/home/miguel/temp/fool-os-stuff/newlib-build-clean/i686-elf/libgloss/libnosys/ \
-lnosys
-ext2.img: shell simple
- dd if=/dev/zero of=ext2.img bs=512 count=200
+ext2.img: shell simple brainfuck
+ dd if=/dev/zero of=ext2.img bs=512 count=500
sudo mkfs.ext2 -O none ext2.img -F
mkdir mnt
sudo mount ext2.img mnt
@@ -19,10 +19,14 @@ ext2.img: shell simple
echo "hello two" > mnt/test2.txt
cp shell mnt
cp simple mnt
+ cp brainfuck mnt
sync
sudo umount mnt
rm mnt -rf
+brainfuck: brainfuck.o crt0.o
+ ${CC} -T linker.ld ${LDFLAGS} $< -Wl,--oformat,binary -o brainfuck
+
shell: foolshell.o crt0.o
${CC} -T linker.ld ${LDFLAGS} $< -Wl,--oformat,binary -o shell
@@ -30,7 +34,7 @@ simple: simple.o crt0.o
${CC} -T linker.ld ${LDFLAGS} $< -Wl,--oformat,binary -o simple
clean:
- -rm *.o *.out shell simple ext2.img
+ -rm *.o *.out shell simple ext2.img brainfuck
umount:
sudo umount mnt
diff --git a/userspace/brainfuck.c b/userspace/brainfuck.c
index 76a18cc..a54e4e5 100644
--- a/userspace/brainfuck.c
+++ b/userspace/brainfuck.c
@@ -86,7 +86,7 @@ int main(int argc, char **argv)
// printf("brainfuck: dataptr2: 0x%08X\n",buf);
rewind(input);
fgets(buf,255,input);
- printf("\nbrainfuck: loaded programm: %s\n\n",buf);
+// printf("\nbrainfuck: loaded programm: %s\n\n",buf);
fseek(input, 0, SEEK_SET);
@@ -106,6 +106,8 @@ int main(int argc, char **argv)
if (datapos < DATA_SIZE - 1) datapos++;
else {
puts("brainfuck error: pointer overflow");
+ // replace with foolshell.
+ execve(15,0,0);
return EXIT_FAILURE;
}
break;
@@ -113,6 +115,8 @@ int main(int argc, char **argv)
if (datapos > 0) datapos--;
else {
puts("brainfuck error: pointer underflow");
+ // replace with foolshell.
+ execve(15,0,0);
return EXIT_FAILURE;
}
break;
@@ -151,5 +155,8 @@ int main(int argc, char **argv)
break;
}
}
+ // replace with foolshell.
+ execve(15,0,0);
return EXIT_SUCCESS;
+
}