summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2015-05-17 19:43:59 +0200
committerMichal Idziorek <m.i@gmx.at>2015-05-17 19:43:59 +0200
commitd98828d08eb1f6c1394f38a1df69c73fef0cfefa (patch)
tree31df37430733c906b235b88c2cfa14d835af4bec /kernel
parent29ea3208b004f15dafa48ae29a75ba7f0c093a74 (diff)
working on vt52 and some cleanup
Diffstat (limited to 'kernel')
-rw-r--r--kernel/config.h2
-rw-r--r--kernel/console.c60
-rw-r--r--kernel/console.h19
-rw-r--r--kernel/interrupts.c1
-rw-r--r--kernel/kernel.c23
-rw-r--r--kernel/keyboard.c1
-rw-r--r--kernel/syscalls.c5
-rw-r--r--kernel/task.c1
8 files changed, 19 insertions, 93 deletions
diff --git a/kernel/config.h b/kernel/config.h
index 74304d8..0a6fd3c 100644
--- a/kernel/config.h
+++ b/kernel/config.h
@@ -8,7 +8,7 @@
#define FOOLOS_CONFIG_H
#define FOOLOS_CONSOLE_AUTOBREAK // add newline automatically at end of line
-#define FOOLOS_LOG_OFF // do not log anything
+#define FOOLOS_LOG_OFF // do not log anything
#define FOOLOS_CONSOLE // otherwise VESA will be used!
#define FOOLSOS_SHOW_VESAMODES
#define MEM_PRINT_MEMORYMAP
diff --git a/kernel/console.c b/kernel/console.c
deleted file mode 100644
index 593801a..0000000
--- a/kernel/console.c
+++ /dev/null
@@ -1,60 +0,0 @@
-// http://invisible-island.net/xterm/ctlseqs/ctlseqs.html
-// http://invisible-island.net/vttest/
-// http://www.xfree86.org/4.7.0/ctlseqs.html
-
-
-#include "kernel/config.h"
-#include "lib/logger/log.h"
-#include "fs/ext2.h"
-
-
-#define FOOLOS_MODULE_NAME "console"
-
-#ifdef FOOLOS_CONSOLE
-
-#include "video/console.h"
-
-uint32_t console_init(){
- scr_clear();
- return 0;
-}
-
-void console_del_char(){scr_backspace();}
-void console_put_char_gray(char c){scr_put_char(c,SCR_GRAY2);}
-void console_put_char_white(char c){scr_put_char(c,SCR_WHITE);}
-void console_put_char_green(char c){scr_put_char(c,SCR_GREEN);}
-void console_put_char_red(char c){scr_put_char(c,SCR_RED);}
-
-void console_put_str_gray(char *s){scr_put_string(s,SCR_GRAY2);}
-void console_put_str_white(char *s){scr_put_string(s,SCR_WHITE);}
-void console_put_str_green(char *s){scr_put_string(s,SCR_GREEN);}
-void console_put_str_red(char *s){scr_put_string(s,SCR_RED);}
-
-#else
-
-#include "video/vesa.h"
-
-uint32_t console_init(uint32_t mode, uint32_t control){
-
- int inode_nr=ext2_filename_to_inode(EXT2_RAM_ADDRESS,"/binfont.bin");
- ext2_inode_content(EXT2_RAM_ADDRESS,inode_nr,0x700000,0xffff); // load font;
- //uint32_t vesa_physbase=vesa_init(0xb000,0xc000,0x700000);
- uint32_t vesa_physbase=vesa_init(mode,control,0x700000);
- return vesa_physbase;
-}
-
-void console_del_char(char c){PutConsoleChar('*',0xffffff);}
-void console_put_char(char c){PutConsoleChar(c,0xffffff);}
-void console_put_char_gray(char c){PutConsoleChar(c,0xffffff);}
-void console_put_char_white(char c){PutConsoleChar(c,0xffffff);}
-void console_put_char_green(char c){PutConsoleChar(c,0xffffff);}
-void console_put_char_red(char c){PutConsoleChar(c,0xffffff);}
-void console_put_str(char *s){PutConsole(s,0xffffff);}
-void console_put_str_gray(char *s){PutConsole(s,0xffffff);}
-void console_put_str_white(char *s){PutConsole(s,0xffffff);}
-void console_put_str_green(char *s){PutConsole(s,0xffffff);}
-void console_put_str_red(char *s){PutConsole(s,0xffffff);}
-
-#endif
-
-
diff --git a/kernel/console.h b/kernel/console.h
deleted file mode 100644
index 4c56a5a..0000000
--- a/kernel/console.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef CONSOLE_H
-#define CONSOLE_H
-
-#include <stdint.h>
-
-uint32_t console_init();
-void console_put_char(uint8_t c,uint8_t color, uint32_t x, uint32_t y);
-void console_put_char_white(char);
-void console_put_char_red(char);
-void console_put_char_green(char);
-void console_put_char_gray(char);
-void console_put_str_white(char *);
-void console_put_str_red(char *);
-void console_put_str_green(char *);
-void console_put_str_gray(char *);
-void console_del_char();
-
-
-#endif
diff --git a/kernel/interrupts.c b/kernel/interrupts.c
index d75ec4d..a7eae81 100644
--- a/kernel/interrupts.c
+++ b/kernel/interrupts.c
@@ -4,7 +4,6 @@
#include "asm/asm.h"
#include "interrupts.h"
-#include "console.h"
#include "x86.h"
void errlog(uint32_t error_code)
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 0a4b863..de435c5 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -18,19 +18,17 @@
#include "interrupts.h"
#include "multiboot.h"
-#include "console.h"
#include <stddef.h>
// for built-in shell
#include "lib/buffer/ringbuffer.h"
#include "task.h"
-#include "video/vesa.h"
+#include "video/console.h"
#include "multiboot.h"
#include "terminal/vt52.h"
-
//
// The Foolish structure of Fool OS!
//
@@ -45,15 +43,26 @@ fool_os *get_fool()
void kernel_main(uint32_t eax,uint32_t ebx)
{
-
//
- // Setup main tty
+ // Setup terminal output
//
- scr_clear();
- term_screen screen;
+ term_out screen;
screen.put_char=console_put_char;
+ screen.update_cursor=update_cursor;
+ vt52_tty tty=vt52_init(&screen);
+ get_fool()->tty1=&tty;
+
+ //
+ // Setup terminal input
+ //
+ /*
+ term_in keyboard;
+ kb.get_char=console_put_char;
+ screen.update_cursor=update_cursor;
vt52_tty tty=vt52_init(&screen);
get_fool()->tty1=&tty;
+ */
+
//
diff --git a/kernel/keyboard.c b/kernel/keyboard.c
index 0274748..b586d0f 100644
--- a/kernel/keyboard.c
+++ b/kernel/keyboard.c
@@ -1,7 +1,6 @@
#define FOOLOS_MODULE_NAME "keyboard"
#include "x86.h"
-#include "console.h"
#include "lib/buffer/ringbuffer.h"
#include "lib/logger/log.h" // logger facilities
diff --git a/kernel/syscalls.c b/kernel/syscalls.c
index 6bd51d1..1d63ba4 100644
--- a/kernel/syscalls.c
+++ b/kernel/syscalls.c
@@ -4,7 +4,6 @@
#include "lib/logger/log.h"
#include "fs/fs.h"
#include "fs/ext2.h"
-#include "kernel/console.h"
#include "kernel/kernel.h"
#include "kernel/config.h"
#include "terminal/vt52.h"
@@ -84,7 +83,7 @@ int syscall_read(int file, char *buf, int len)
{
if(l>0)
{
- console_del_char();
+ //console_del_char();
buf--;
l--;
}
@@ -94,7 +93,7 @@ int syscall_read(int file, char *buf, int len)
*buf=c;
buf++;
l++;
- if(c!=0x04)console_put_char_white(c);
+ //if(c!=0x04)console_put_char_white(c);
if(c=='\n')return l;
if(c==0x04)
{
diff --git a/kernel/task.c b/kernel/task.c
index 495817c..36ccafe 100644
--- a/kernel/task.c
+++ b/kernel/task.c
@@ -6,7 +6,6 @@
#include "lib/buffer/ringbuffer.h"
#include "mem.h"
#include "timer.h"
-#include "console.h"
#include "x86.h"
#include "vmem.h"