Nigel
13e9beea79
Folders now are alll lower case Started working on the implementation of the Virtual memory manager. Implemented allocate and free page funtionality for as far as I can atm. Implemented the
72 lines
2.3 KiB
C++
72 lines
2.3 KiB
C++
#include "superVisorTerminal.h"
|
|
|
|
void startSuperVisorTerminal(){
|
|
while (true){
|
|
|
|
printf("SUPERVISOR:>$ " );
|
|
int characterCount = 0;
|
|
char command[10] = "";
|
|
|
|
// NOTE: lets just show a kernel prompt
|
|
uint8_t ScanCode = getKey();
|
|
while( ScanCode != 0x1C )
|
|
{
|
|
char character = getASCIIKey();
|
|
kterm_put(character );
|
|
// wHAT THE HELL
|
|
|
|
if( characterCount < 10 ){
|
|
command[characterCount] = character;
|
|
characterCount++;
|
|
}
|
|
|
|
ScanCode = getKey();
|
|
}
|
|
printf("\n");
|
|
KeyHandled();
|
|
|
|
|
|
if ( strncmp("DATE", command , characterCount ) == 0 )
|
|
{
|
|
read_rtc();
|
|
printf("======= Time & Date ==========\n");
|
|
printf(" - Date: %02d-%02d-%02d\n",day, month, year);
|
|
printf(" - Time: %02d:%02d:%02d\n" , hour, minute, second);
|
|
printf(" - Ticks: %09d\n", pit_tick);
|
|
}
|
|
else if( strncmp ("MEMORY" , command , characterCount) == 0 )
|
|
{
|
|
// Show memory layout
|
|
printf("========= Memory ==========\n");
|
|
printf("Not Available!\n");
|
|
printf("Kernel MemoryMap:\n");
|
|
printf("Frames used: -- \n");
|
|
printf("Available Memory:-- \n");
|
|
printf("Reserved Memory: -- bytes\n");
|
|
}
|
|
else if(strncmp("TEST", command, characterCount) == 0)
|
|
{
|
|
// TEST #DE exception
|
|
asm volatile ("MOV $4, %AX ; MOV $0, %BX ; DIV %BX"); // IRS 0
|
|
}
|
|
else if (strncmp("VERSION", command , characterCount) == 0)
|
|
{
|
|
// Show version information
|
|
printf("========= Version ========\n");
|
|
printf("Kernel v%d\n", 0);
|
|
|
|
}
|
|
else if(strncmp("CLEAR", command, characterCount) == 0)
|
|
{
|
|
kterm_init();
|
|
printf("|=== BarinkOS ===|\n");
|
|
}
|
|
else
|
|
{
|
|
printf("Unknown command\n");
|
|
}
|
|
|
|
|
|
delay(1000);
|
|
}
|
|
} |