summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/interrupts.h2
-rw-r--r--kernel/kernel.c16
-rw-r--r--kernel/shell.c7
3 files changed, 24 insertions, 1 deletions
diff --git a/kernel/interrupts.h b/kernel/interrupts.h
index 7c3e119..5542801 100644
--- a/kernel/interrupts.h
+++ b/kernel/interrupts.h
@@ -5,6 +5,6 @@
#define INT_MAX 255 // size of our interrupts table
-int int_unhandled=0; // counting unhandled interrupts
+int int_unhandled; // counting unhandled interrupts
#endif
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 7118706..a25ba83 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -36,6 +36,22 @@ void kernel_main()
timer_init();
scr_put_string_nl("Configured PIT Channel 0 : Mode 2 : 1/25 s.");
+ //probe memory
+ scr_put_string_nl("Probing core memory...");
+ char *prober=0xf000;
+
+ for(;prober<0xfffffff;prober+=0xf00)
+ {
+ *prober='x';
+ if(*prober!='x')break;
+
+ }
+
+ //0xA5000
+ scr_put_hex((uint32_t)prober>>16);
+ scr_put_hex((uint32_t)prober&0xffff);
+ scr_put_string_nl(" finished!");
+
// init and interrupt decriptor table
int_init(0x08);
diff --git a/kernel/shell.c b/kernel/shell.c
index 837a4c3..4507931 100644
--- a/kernel/shell.c
+++ b/kernel/shell.c
@@ -1,4 +1,5 @@
#include "kernel.h"
+#include "interrupts.h"
#define COMMAND_LENGTH 255
@@ -66,6 +67,12 @@ void shell_execute()
scr_put_hex(timer16);
scr_put_string_nl(" seconds passed since system start.");
}
+ else if(1==strcmp(command,"INT"))
+ {
+ scr_put_string_nl(" getting count of unhandeled interrupts");
+ scr_put_string(" ");
+ scr_put_hex(int_unhandled);
+ }
else
{
scr_put_string_nl(" unsupported command, sorry!");