Improved build system
Added new entries to .gitignore Moved away from source directory as central spot for all source code
This commit is contained in:
97
kernel/supervisorterminal/superVisorTerminal.cpp
Normal file
97
kernel/supervisorterminal/superVisorTerminal.cpp
Normal file
@ -0,0 +1,97 @@
|
||||
#include "superVisorTerminal.h"
|
||||
#include "../drivers/ata/ataDevice.h"
|
||||
#include "../partitiontable/mbr/MasterBootRecord.h"
|
||||
#include "../filesystem/FAT/BiosParameterBlock.h"
|
||||
#include "../filesystem/FAT/DirectoryEntry.h"
|
||||
bool isRunning = true;
|
||||
extern "C" void startSuperVisorTerminal()
|
||||
{
|
||||
/*
|
||||
* Show a little banner for cuteness
|
||||
*/
|
||||
printf("|=== BarinkOS ===|\n");
|
||||
|
||||
while (isRunning){
|
||||
|
||||
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);
|
||||
}
|
||||
if( strncmp ("MEMORY" , command , characterCount) == 0 )
|
||||
{
|
||||
// Show memory layout
|
||||
printf("========= Memory (very inaccurate) ==========\n");
|
||||
printf("Kernel MemoryMap:\n");
|
||||
printf("kernel: 0x%x - 0x%x\n", &kernel_begin , &kernel_end);
|
||||
printf("Frames used: %d blocks of 4 KiB\n", GetUsedBlocks());
|
||||
|
||||
}
|
||||
if(strncmp("TEST", command, characterCount) == 0)
|
||||
{
|
||||
// TEST #DE exception
|
||||
asm volatile ("MOV $4, %AX ; MOV $0, %BX ; DIV %BX"); // IRS 0
|
||||
}
|
||||
if (strncmp("VERSION", command , characterCount) == 0)
|
||||
{
|
||||
// Show version information
|
||||
printf("========= Version ========\n");
|
||||
printf("Kernel v%d\n", 0);
|
||||
|
||||
}
|
||||
if(strncmp("CLEAR", command, characterCount) == 0)
|
||||
{
|
||||
kterm_init();
|
||||
printf("|=== BarinkOS ===|\n");
|
||||
}
|
||||
if(strncmp("LIST", command, 4) == 0)
|
||||
{
|
||||
|
||||
// slice off the command part
|
||||
char args[characterCount - 4];
|
||||
for(int i = 5 ; i < characterCount; i++) {
|
||||
args[i] = command[i];
|
||||
}
|
||||
|
||||
printf("=============== DIRECTORY LISTING =================\n");
|
||||
printf("Path to show %s\n", args);
|
||||
}
|
||||
|
||||
if(strncmp("DEVICES", command, characterCount) == 0){
|
||||
printf("================ CONNECTED DEVICES ===============\n");
|
||||
|
||||
}
|
||||
|
||||
|
||||
printf("executed command: %s\n", command);
|
||||
|
||||
|
||||
delay(1000);
|
||||
}
|
||||
}
|
9
kernel/supervisorterminal/superVisorTerminal.h
Normal file
9
kernel/supervisorterminal/superVisorTerminal.h
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
#include "../terminal/kterm.h"
|
||||
#include "../time.h"
|
||||
#include "../drivers/pit/pit.h"
|
||||
#include "../drivers/ps-2/keyboard.h"
|
||||
#include "../memory/PhysicalMemoryManager.h"
|
||||
#include <CoreLib/Memory.h>
|
||||
|
||||
extern "C" void startSuperVisorTerminal();
|
Reference in New Issue
Block a user