adding base shell implementation(but its busted atm)
This commit is contained in:
parent
adfb460a5e
commit
f4cfc6f64b
37
shell.c
Normal file
37
shell.c
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#include "shell.h"
|
||||||
|
#include "stlio.h"
|
||||||
|
#include "mem.h"
|
||||||
|
#include "pit.h"
|
||||||
|
|
||||||
|
char line[LINE_LENGTH];
|
||||||
|
void jmain(void) {
|
||||||
|
memset((u8*)line, 0x00, LINE_LENGTH);
|
||||||
|
while(1) {
|
||||||
|
printf("jos % ");
|
||||||
|
read(line, LINE_LENGTH);
|
||||||
|
printf("\n");
|
||||||
|
//asm("xchg bx, bx");
|
||||||
|
if(!strcmp("break", line)) {
|
||||||
|
printf("breaking out");
|
||||||
|
memset((u8*)line, 0x00, LINE_LENGTH);
|
||||||
|
}
|
||||||
|
else if(!strcmp("timer", line)) {
|
||||||
|
printf("Time tick: ");
|
||||||
|
printhex(pit_timer_ticks);
|
||||||
|
memset((u8*)line, 0x00, LINE_LENGTH);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("Attempting a second read: ");
|
||||||
|
read(line, LINE_LENGTH);
|
||||||
|
printf(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void strip_newline(char* line) {
|
||||||
|
for(u32 i = 0;i <strlen(line); i++) {
|
||||||
|
if(line[i] == '\n') {
|
||||||
|
line[i] = '\0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user