terminal stuff

git-svn-id: https://spexeah.com:8443/svn/Asuro@217 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
kieron
2017-10-23 08:31:25 +00:00
parent e51e15956a
commit 86ec6074a2
8 changed files with 23 additions and 3 deletions

View File

@ -4,27 +4,46 @@ interface
uses
console,
keyboard;
keyboard,
util;
var
buffer : array[0..1024] of byte;
buffer : array[0..1023] of byte;
bIndex : uint32 = 0;
procedure run;
implementation
function isCommand(command : pchar) : boolean;
var
i : uint32;
begin
isCommand:= true;
for i:=0 to bIndex do begin
if char(buffer[i]) = ' ' then exit;
if char(buffer[i]) <> char(command[i]) then begin
isCommand:= false;
exit;
end;
end;
end;
procedure process_command;
begin
console.writecharln(' ');
//Process Here
if isCommand('version') then console.writestringln('Asuro v1.0');
console.writestring('Asuro#> ');
bIndex:= 0;
memset(uint32(@buffer[0]), 0, 1024);
end;
procedure key_event(info : TKeyInfo);
begin
if (info.key_code >= 32) and (info.key_code <= 126) then begin
if bIndex <= 1024 then begin
if bIndex < 1024 then begin
buffer[bIndex]:= info.key_code;
inc(bIndex);
console.writechar(char(info.key_code));
@ -44,6 +63,7 @@ end;
procedure run;
begin
memset(uint32(@buffer[0]), 0, 1024);
keyboard.hook(@key_event);
console.clear();
console.writestring('Asuro#> ');