summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/int_syscall_handler.asm10
-rw-r--r--kernel/syscalls.c5
-rw-r--r--packages/ncurses-5.9/README9
-rw-r--r--packages/ncurses-5.9/README_examples1
-rw-r--r--packages/ncurses-5.9/foolterm.ti1
-rw-r--r--packages/ncurses-5.9/ncurses-5.9-foolos.patch35
-rw-r--r--terminal/terminal.c3
-rw-r--r--userspace/Makefile5
-rw-r--r--userspace/init.c2
-rw-r--r--userspace/sys/sys.c12
10 files changed, 63 insertions, 20 deletions
diff --git a/asm/int_syscall_handler.asm b/asm/int_syscall_handler.asm
index 619ef84..b50eaf7 100644
--- a/asm/int_syscall_handler.asm
+++ b/asm/int_syscall_handler.asm
@@ -20,6 +20,7 @@ global int_syscall_handler
[extern syscall_fork]
[extern syscall_has_data_waiting]
[extern syscall_tune]
+[extern syscall_gettimeofday]
[extern syscall_unhandled]
[bits 32]
@@ -28,6 +29,7 @@ pid: dd 0x0
int_syscall_handler:
+
cmp eax, 72
je call_fork
@@ -43,7 +45,6 @@ je call_wait
push ecx
push edx
-
cmp eax, 61
je call_write
@@ -74,6 +75,9 @@ je call_wait
cmp eax, 70
je call_sbrk
+ cmp eax, 71
+ je call_timeofday
+
cmp eax, 74
je call_stat
@@ -175,6 +179,10 @@ call_fork:
iretd ;Interrupt-Return
;;;;
+call_timeofday:
+ call syscall_gettimeofday
+ jmp done
+
call_stat:
call syscall_stat
jmp done
diff --git a/kernel/syscalls.c b/kernel/syscalls.c
index 3a898fc..38cac63 100644
--- a/kernel/syscalls.c
+++ b/kernel/syscalls.c
@@ -15,6 +15,11 @@ int syscall_unhandled(int nr)
panic(FOOLOS_MODULE_NAME,"unhandled syscall (generic handler)");
}
+int syscall_gettimeofday(void *timeval, void *tz)
+{
+ return -1;
+}
+
int syscall_lseek(int file,int ptr,int dir)
{
#ifdef LOG_SYSCALLS
diff --git a/packages/ncurses-5.9/README b/packages/ncurses-5.9/README
index 5f22dfa..78b9cd4 100644
--- a/packages/ncurses-5.9/README
+++ b/packages/ncurses-5.9/README
@@ -1,9 +1,12 @@
1. extract ncurses-5.9.tar.gz
2. apply patch inside direcotry with : patch -p1 < ../ncurses-5.9-foolos.patch
+.. tic foolterm.ti (to install locally)
3. build in seperate directory
-5. ../ncurses-xxx/configure --host=i686-foolos --without-tests --with-fallbacks=linux
-(or $ ../ncurses-xxx/configure --host=i686-foolos --without-tests --with-fallbacks=linux --with-debug CFLAGS="-gstabs -O0" CXXFLAGS="-gstabs -O0")
+
+$ ../ncurses-xxx/configure --host=i686-foolos --without-tests --with-fallbacks=fool-term --with-debug CFLAGS="-gstabs -O0" CXXFLAGS="-gstabs -O0" --prefix=/home/miguel/opt/foolos/usr/ --with-termlib CC=i686-foolos-gcc
+
+symlink /usr/include/curses.h to ./ncurses/curses.h
??? FOR SOME REASON WE NEED TO PASS : CC=i686-foolos-gcc
-6. make
+6. make && make install
diff --git a/packages/ncurses-5.9/README_examples b/packages/ncurses-5.9/README_examples
new file mode 100644
index 0000000..18fe3cb
--- /dev/null
+++ b/packages/ncurses-5.9/README_examples
@@ -0,0 +1 @@
+../ncurses-examples-20110404/configure --host=i686-foolos --prefix=/home/miguel/opt/foolos/usr/ CC=i686-foolos-gcc --with-ncurses
diff --git a/packages/ncurses-5.9/foolterm.ti b/packages/ncurses-5.9/foolterm.ti
index 1c76eda..ea60e0e 100644
--- a/packages/ncurses-5.9/foolterm.ti
+++ b/packages/ncurses-5.9/foolterm.ti
@@ -73,4 +73,5 @@ fool-term|FoolOS built-in terminal emulator,
#colors
setab=\E[4%p1%dm,
setaf=\E[3%p1%dm,
+ oc=\E[37;40m,
diff --git a/packages/ncurses-5.9/ncurses-5.9-foolos.patch b/packages/ncurses-5.9/ncurses-5.9-foolos.patch
index 3bd30ac..6296f0b 100644
--- a/packages/ncurses-5.9/ncurses-5.9-foolos.patch
+++ b/packages/ncurses-5.9/ncurses-5.9-foolos.patch
@@ -1,6 +1,6 @@
-diff -rc ncurses-5.9-original/config.sub ncurses-5.9-foolos/config.sub
+diff -r -c ncurses-5.9-original/config.sub ncurses-5.9/config.sub
*** ncurses-5.9-original/config.sub 2010-09-11 00:25:58.000000000 +0200
---- ncurses-5.9-foolos/config.sub 2015-05-24 11:32:41.269431181 +0200
+--- ncurses-5.9/config.sub 2015-05-25 13:45:32.747903941 +0200
***************
*** 1303,1309 ****
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
@@ -18,9 +18,22 @@ diff -rc ncurses-5.9-original/config.sub ncurses-5.9-foolos/config.sub
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-diff -rc ncurses-5.9-original/ncurses/tinfo/lib_baudrate.c ncurses-5.9-foolos/ncurses/tinfo/lib_baudrate.c
+diff -r -c ncurses-5.9-original/include/curses.tail ncurses-5.9/include/curses.tail
+*** ncurses-5.9-original/include/curses.tail 2010-03-28 21:10:55.000000000 +0200
+--- ncurses-5.9/include/curses.tail 2015-05-25 20:52:55.711977799 +0200
+***************
+*** 111,117 ****
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mouseinterval) (SCREEN*, int);
+ #endif
+
+- #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
+
+ /* other non-XSI functions */
+
+--- 111,116 ----
+diff -r -c ncurses-5.9-original/ncurses/tinfo/lib_baudrate.c ncurses-5.9/ncurses/tinfo/lib_baudrate.c
*** ncurses-5.9-original/ncurses/tinfo/lib_baudrate.c 2010-12-19 02:50:50.000000000 +0100
---- ncurses-5.9-foolos/ncurses/tinfo/lib_baudrate.c 2015-05-24 12:02:40.096469069 +0200
+--- ncurses-5.9/ncurses/tinfo/lib_baudrate.c 2015-05-25 13:45:32.787900948 +0200
***************
*** 39,44 ****
--- 39,48 ----
@@ -34,9 +47,10 @@ diff -rc ncurses-5.9-original/ncurses/tinfo/lib_baudrate.c ncurses-5.9-foolos/nc
#if defined(__FreeBSD__)
#include <sys/param.h>
#endif
-diff -rc ncurses-5.9-original/ncurses/tty/lib_twait.c ncurses-5.9-foolos/ncurses/tty/lib_twait.c
+Only in ncurses-5.9/ncurses/tinfo: .lib_setup.c.swp
+diff -r -c ncurses-5.9-original/ncurses/tty/lib_twait.c ncurses-5.9/ncurses/tty/lib_twait.c
*** ncurses-5.9-original/ncurses/tty/lib_twait.c 2010-12-26 00:43:58.000000000 +0100
---- ncurses-5.9-foolos/ncurses/tty/lib_twait.c 2015-05-24 12:15:03.770339113 +0200
+--- ncurses-5.9/ncurses/tty/lib_twait.c 2015-05-25 13:45:32.787900948 +0200
***************
*** 53,58 ****
--- 53,60 ----
@@ -48,9 +62,10 @@ diff -rc ncurses-5.9-original/ncurses/tty/lib_twait.c ncurses-5.9-foolos/ncurses
#if USE_FUNC_POLL
# if HAVE_SYS_TIME_H
# include <sys/time.h>
-diff -rc ncurses-5.9-original/progs/toe.c ncurses-5.9-foolos/progs/toe.c
+Only in ncurses-5.9/progs: .clear.c.swp
+diff -r -c ncurses-5.9-original/progs/toe.c ncurses-5.9/progs/toe.c
*** ncurses-5.9-original/progs/toe.c 2010-05-02 00:04:08.000000000 +0200
---- ncurses-5.9-foolos/progs/toe.c 2015-05-24 12:38:52.000570377 +0200
+--- ncurses-5.9/progs/toe.c 2015-05-25 13:45:32.787900948 +0200
***************
*** 36,41 ****
--- 36,43 ----
@@ -62,9 +77,9 @@ diff -rc ncurses-5.9-original/progs/toe.c ncurses-5.9-foolos/progs/toe.c
#include <progs.priv.h>
#include <sys/stat.h>
-diff -rc ncurses-5.9-original/progs/tset.c ncurses-5.9-foolos/progs/tset.c
+diff -r -c ncurses-5.9-original/progs/tset.c ncurses-5.9/progs/tset.c
*** ncurses-5.9-original/progs/tset.c 2010-05-01 23:42:46.000000000 +0200
---- ncurses-5.9-foolos/progs/tset.c 2015-05-24 12:34:33.000328018 +0200
+--- ncurses-5.9/progs/tset.c 2015-05-25 13:45:32.787900948 +0200
***************
*** 85,90 ****
--- 85,91 ----
diff --git a/terminal/terminal.c b/terminal/terminal.c
index 05e89d9..3dbe5c8 100644
--- a/terminal/terminal.c
+++ b/terminal/terminal.c
@@ -398,8 +398,7 @@ bool terminal_put(terminal_tty *tty, uint8_t c)
///
- if(c=='c'){reset(tty);
- } // RESET
+ if(c=='c'){reset(tty);} // RESET
if(c=='D'){tty->y++;} // LINEFEED
if(c=='E'){tty->y++;tty->x=0;} //NEWLINE
diff --git a/userspace/Makefile b/userspace/Makefile
index 5590a42..dfe9ec3 100644
--- a/userspace/Makefile
+++ b/userspace/Makefile
@@ -29,7 +29,10 @@ ext2.img: $(PROGS) ../mp/mp.bin
echo "++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++." > mnt/home/miguel/hello.brain
# cp ~/temp/fool-os-stuff/binutils-build-host-foolos/binutils/readelf mnt/bin
# cp ../font/binfont.bin mnt/
- cp ~/temp/fool-os-stuff/ncurses/ncurses-5.9-build/progs/* mnt/bin/
+# cp ~/temp/fool-os-stuff/ncurses/ncurses-5.9-build/progs/* mnt/bin/
+ cp ~/opt/foolos/usr/bin/worm mnt/bin/
+ cp ~/opt/foolos/usr/bin/dots mnt/bin/
+ cp ~/opt/foolos/usr/bin/background mnt/bin/
cp ../mp/mp.bin mnt/boot/
mkdir -p mnt/etc
echo "127.0.0.1 localhost" > mnt/etc/hosts
diff --git a/userspace/init.c b/userspace/init.c
index d3ab751..31f14e3 100644
--- a/userspace/init.c
+++ b/userspace/init.c
@@ -13,7 +13,7 @@ int main(int argc, char **argv)
if(pid==0)
{
char *argv[]={"/bin/foolshell",0};
- char *env[]={"PS1=\033[34m$\033[37m","PWD=/home/miguel","PATH=/bin","TERM=linux",0};
+ char *env[]={"PS1=\033[34m$\033[37m","PWD=/home/miguel","PATH=/bin","TERM=fool-term",0};
execve("/bin/foolshell",argv,env); // replace process with our foolshell :)
//execve("/bin/clear",argv,env); // replace process with our foolshell :)
puts("FATAL ERROR: Something terrible happened. Unable to Execute SHELL!");
diff --git a/userspace/sys/sys.c b/userspace/sys/sys.c
index 7639307..5cd4396 100644
--- a/userspace/sys/sys.c
+++ b/userspace/sys/sys.c
@@ -169,13 +169,21 @@ char *getlogin(void)
return NULL;
}
-int gtty()
+int ioctl(int fd, unsigned long request, ...)
{
+ printf("UNIMPL: ioctl\n");
return -1;
}
-int stty()
+int gtty(int fd, void *buf)
{
+ // printf("UNIMPL: gettty\n");
+ return -1;
+}
+
+int stty(int fd, void *buf)
+{
+ // printf("UNIMPL: settty\n");
return -1;
}