git-svn-id: https://spexeah.com:8443/svn/Asuro@642 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
parent
8b7a8182b8
commit
6d8717a7fc
BIN
bin/kernel.bin
BIN
bin/kernel.bin
Binary file not shown.
Binary file not shown.
BIN
lib/asuro.ppu
BIN
lib/asuro.ppu
Binary file not shown.
BIN
lib/console.o
BIN
lib/console.o
Binary file not shown.
BIN
lib/console.ppu
BIN
lib/console.ppu
Binary file not shown.
BIN
lib/kernel.ppu
BIN
lib/kernel.ppu
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lib/libpsystem.a
BIN
lib/libpsystem.a
Binary file not shown.
BIN
lib/shell.ppu
BIN
lib/shell.ppu
Binary file not shown.
BIN
lib/terminal.ppu
BIN
lib/terminal.ppu
Binary file not shown.
147
src/console.pas
147
src/console.pas
@ -368,9 +368,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if idx <> MAX_WINDOWS then begin
|
if idx <> MAX_WINDOWS then begin
|
||||||
for i:=idx to MAX_WINDOWS-1 do begin
|
for i:=idx to MAX_WINDOWS-2 do begin
|
||||||
WindowManager.Z_Order[i]:= WindowManager.Z_Order[i+1];
|
WindowManager.Z_Order[i]:= WindowManager.Z_Order[i+1];
|
||||||
end;
|
end;
|
||||||
|
WindowManager.Z_Order[MAX_WINDOWS-1]:= MAX_WINDOWS;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -580,9 +581,9 @@ var
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
if WindowManager.Windows[WND] <> nil then begin
|
if WindowManager.Windows[WND] <> nil then begin
|
||||||
|
RemoveFromZOrder(WND);
|
||||||
WNDCopy:= WindowManager.Windows[WND];
|
WNDCopy:= WindowManager.Windows[WND];
|
||||||
WindowManager.Windows[WND]:= nil;
|
WindowManager.Windows[WND]:= nil;
|
||||||
RemoveFromZOrder(WND);
|
|
||||||
if WNDCopy^.Hooks.OnClose <> nil then WNDCopy^.Hooks.OnClose();
|
if WNDCopy^.Hooks.OnClose <> nil then WNDCopy^.Hooks.OnClose();
|
||||||
kfree(void(WNDCopy^.WND_NAME));
|
kfree(void(WNDCopy^.WND_NAME));
|
||||||
kfree(void(WNDCopy));
|
kfree(void(WNDCopy));
|
||||||
@ -694,60 +695,14 @@ var
|
|||||||
SelectedWindow : uint32;
|
SelectedWindow : uint32;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
{ Clear the Console_Matrix }
|
||||||
for y:=0 to 63 do begin
|
for y:=0 to 63 do begin
|
||||||
for x:=0 to 159 do begin
|
for x:=0 to 159 do begin
|
||||||
Console_Matrix[y][x]:= Default_Char;
|
Console_Matrix[y][x]:= Default_Char;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if MouseDown then begin
|
|
||||||
if MovingWindow = 0 then begin
|
{ Redraw all of the Windows to the Matrix taking into account Z_Order and borders }
|
||||||
MovingWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
|
|
||||||
if MovingWindow <> 0 then begin
|
|
||||||
WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X);
|
|
||||||
WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y);
|
|
||||||
end else begin
|
|
||||||
MovingWindow:= MAX_WINDOWS;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
if MovingWindow <> MAX_WINDOWS then begin
|
|
||||||
if WindowManager.Windows[MovingWindow] <> nil then begin
|
|
||||||
deltax:= WindowMovePos.x - MouseXToTile(WindowManager.MousePrev.X);
|
|
||||||
deltay:= WindowMovePos.y - MouseYToTile(WindowManager.MousePrev.Y);
|
|
||||||
WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X);
|
|
||||||
WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y);
|
|
||||||
setWindowPosition(MovingWindow, WindowManager.Windows[MovingWindow]^.WND_X - deltax, WindowManager.Windows[MovingWindow]^.WND_Y - deltay);
|
|
||||||
FocusZOrder(MovingWindow);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end else begin
|
|
||||||
MovingWindow:= 0;
|
|
||||||
end;
|
|
||||||
if UnhandledClick then begin
|
|
||||||
if UnhandledClickLeft then begin
|
|
||||||
SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
|
|
||||||
if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) and (WindowManager.Z_Order[0] = SelectedWindow) then begin
|
|
||||||
//OnClickHandler(Left)
|
|
||||||
end else begin
|
|
||||||
if SelectedWindow = 0 then SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
|
|
||||||
if SelectedWindow <> 0 then begin
|
|
||||||
if WindowManager.Windows[SelectedWindow] <> nil then begin
|
|
||||||
if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
SelectedWindow:= ExitMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
|
|
||||||
if SelectedWindow <> 0 then begin
|
|
||||||
closeWindow(SelectedWindow);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
if not UnhandledClickLeft then begin
|
|
||||||
SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
|
|
||||||
if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) and (WindowManager.Z_Order[0] = SelectedWindow) then begin
|
|
||||||
//OnClickHandler(Right)
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
UnhandledClick:= false;
|
|
||||||
end;
|
|
||||||
for w:=MAX_WINDOWS-1 downto 0 do begin
|
for w:=MAX_WINDOWS-1 downto 0 do begin
|
||||||
if WindowManager.Z_Order[w] = MAX_WINDOWS then continue;
|
if WindowManager.Z_Order[w] = MAX_WINDOWS then continue;
|
||||||
if WindowManager.Windows[WindowManager.Z_Order[w]] <> nil then begin
|
if WindowManager.Windows[WindowManager.Z_Order[w]] <> nil then begin
|
||||||
@ -798,10 +753,88 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if WindowManager.Windows[WindowManager.Z_Order[w]]^.Closed then _closeWindow(WindowManager.Z_Order[w]);
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ Handle any Clicks that have happened since last redraw }
|
||||||
|
if UnhandledClick then begin
|
||||||
|
if UnhandledClickLeft then begin
|
||||||
|
SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
|
||||||
|
if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin
|
||||||
|
//OnClickHandler(Left)
|
||||||
|
if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin
|
||||||
|
if WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick <> nil then begin
|
||||||
|
deltax:= MouseXToTile(WindowManager.MousePrev.X) - WindowManager.Windows[SelectedWindow]^.WND_X;
|
||||||
|
deltay:= MouseYToTile(WindowManager.MousePrev.Y) - WindowManager.Windows[SelectedWindow]^.WND_Y;
|
||||||
|
WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick(deltax, deltay, true);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if (WindowManager.Z_Order[0] <> SelectedWindow) and (WindowManager.Windows[SelectedWindow]^.ShellWND) then begin
|
||||||
|
FocusZOrder(SelectedWindow);
|
||||||
|
end;
|
||||||
|
end else begin
|
||||||
|
if SelectedWindow = 0 then SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
|
||||||
|
if SelectedWindow <> 0 then begin
|
||||||
|
if WindowManager.Windows[SelectedWindow] <> nil then begin
|
||||||
|
if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
SelectedWindow:= ExitMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
|
||||||
|
if SelectedWindow <> 0 then begin
|
||||||
|
closeWindow(SelectedWindow);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if not UnhandledClickLeft then begin
|
||||||
|
SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
|
||||||
|
if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin
|
||||||
|
//OnClickHandler(Right)
|
||||||
|
if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin
|
||||||
|
if WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick <> nil then begin
|
||||||
|
deltax:= MouseXToTile(WindowManager.MousePrev.X) - WindowManager.Windows[SelectedWindow]^.WND_X;
|
||||||
|
deltay:= MouseYToTile(WindowManager.MousePrev.Y) - WindowManager.Windows[SelectedWindow]^.WND_Y;
|
||||||
|
WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick(deltax, deltay, false);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
UnhandledClick:= false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ Handle Moving Windows using MouseDown and Delta positions }
|
||||||
|
if MouseDown then begin
|
||||||
|
if MovingWindow = 0 then begin
|
||||||
|
MovingWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)];
|
||||||
|
if MovingWindow <> 0 then begin
|
||||||
|
WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X);
|
||||||
|
WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y);
|
||||||
|
end else begin
|
||||||
|
MovingWindow:= MAX_WINDOWS;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if MovingWindow <> MAX_WINDOWS then begin
|
||||||
|
if WindowManager.Windows[MovingWindow] <> nil then begin
|
||||||
|
deltax:= WindowMovePos.x - MouseXToTile(WindowManager.MousePrev.X);
|
||||||
|
deltay:= WindowMovePos.y - MouseYToTile(WindowManager.MousePrev.Y);
|
||||||
|
WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X);
|
||||||
|
WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y);
|
||||||
|
setWindowPosition(MovingWindow, WindowManager.Windows[MovingWindow]^.WND_X - deltax, WindowManager.Windows[MovingWindow]^.WND_Y - deltay);
|
||||||
|
FocusZOrder(MovingWindow);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end else begin
|
||||||
|
MovingWindow:= 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ Console_Matrix -> Actual Screen Buffer }
|
||||||
redrawMatrix;
|
redrawMatrix;
|
||||||
|
|
||||||
|
{ Handle any closed Windows ready for next redraw }
|
||||||
|
for w:=0 to MAX_WINDOWS-1 do begin
|
||||||
|
if WindowManager.Windows[w] <> nil then begin
|
||||||
|
if WindowManager.Windows[w]^.Closed then _closeWindow(w);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure initWindows;
|
procedure initWindows;
|
||||||
@ -996,6 +1029,15 @@ begin
|
|||||||
outb($3D5, $20);
|
outb($3D5, $20);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure keyhook(key_info : TKeyInfo);
|
||||||
|
begin
|
||||||
|
if WindowManager.Z_Order[0] <> MAX_WINDOWS then begin
|
||||||
|
if WindowManager.Windows[WindowManager.Z_Order[0]] <> nil then begin
|
||||||
|
if WindowManager.Windows[WindowManager.Z_Order[0]]^.Hooks.OnKeyPressed <> nil then WindowManager.Windows[WindowManager.Z_Order[0]]^.Hooks.OnKeyPressed(key_info);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure init(); [public, alias: 'console_init'];
|
procedure init(); [public, alias: 'console_init'];
|
||||||
var
|
var
|
||||||
fb: puint32;
|
fb: puint32;
|
||||||
@ -1003,6 +1045,7 @@ var
|
|||||||
Begin
|
Begin
|
||||||
fb:= puint32(uint32(multibootinfo^.framebuffer_addr));
|
fb:= puint32(uint32(multibootinfo^.framebuffer_addr));
|
||||||
kpalloc(uint32(fb));
|
kpalloc(uint32(fb));
|
||||||
|
keyboard.hook(@keyhook);
|
||||||
initWindows;
|
initWindows;
|
||||||
Console_Properties.Default_Attribute:= console.combinecolors($FFFF, $0000);
|
Console_Properties.Default_Attribute:= console.combinecolors($FFFF, $0000);
|
||||||
console.clear();
|
console.clear();
|
||||||
|
@ -3,11 +3,11 @@ unit asuro;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
const
|
const
|
||||||
VERSION = '1.0.0-632a';
|
VERSION = '1.0.0-634a';
|
||||||
VERSION_MAJOR = '1';
|
VERSION_MAJOR = '1';
|
||||||
VERSION_MINOR = '0';
|
VERSION_MINOR = '0';
|
||||||
VERSION_SUB = '0';
|
VERSION_SUB = '0';
|
||||||
REVISION = '632';
|
REVISION = '634';
|
||||||
RELEASE = 'a';
|
RELEASE = 'a';
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
@ -208,19 +208,18 @@ begin
|
|||||||
console.setdefaultattribute(console.combinecolors($17E0, $0000));
|
console.setdefaultattribute(console.combinecolors($17E0, $0000));
|
||||||
console.writestringln('Asuro Booted Correctly!');
|
console.writestringln('Asuro Booted Correctly!');
|
||||||
console.setdefaultattribute(console.combinecolors($FFFF, $0000));
|
console.setdefaultattribute(console.combinecolors($FFFF, $0000));
|
||||||
console.writestringln('');
|
//console.writestringln('');
|
||||||
console.writestringln('Press any key to boot in to Asuro Terminal...');
|
//console.writestringln('Press any key to boot in to Asuro Terminal...');
|
||||||
tracer.pop_trace;
|
//tracer.pop_trace;
|
||||||
|
|
||||||
{ Init Progs }
|
{ Init Progs }
|
||||||
shell.init();
|
shell.init();
|
||||||
memview.init();
|
memview.init();
|
||||||
|
|
||||||
console.writehexln(uint32(multibootinfo^.framebuffer_addr));
|
//console.writehexln(uint32(multibootinfo^.framebuffer_addr));
|
||||||
|
//tracer.push_trace('kmain.KEYHOOK');
|
||||||
tracer.push_trace('kmain.KEYHOOK');
|
//keyboard.hook(@temphook);
|
||||||
keyboard.hook(@temphook);
|
//tracer.pop_trace;
|
||||||
tracer.pop_trace;
|
|
||||||
|
|
||||||
tracer.push_trace('kmain.END');
|
tracer.push_trace('kmain.END');
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ unit shell;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Console, RTC;
|
Console, RTC, terminal;
|
||||||
|
|
||||||
procedure init();
|
procedure init();
|
||||||
|
|
||||||
@ -49,6 +49,17 @@ begin
|
|||||||
writeIntExWND(DateTime.Seconds, Colors, Handle);
|
writeIntExWND(DateTime.Seconds, Colors, Handle);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure OnMouseClick(x : uint32; y : uint32; left : boolean);
|
||||||
|
begin
|
||||||
|
//WriteIntLn(x);
|
||||||
|
//WriteIntLn(y);
|
||||||
|
if left then begin
|
||||||
|
if (y = 0) and (x < 10) then begin
|
||||||
|
terminal.run;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure init();
|
procedure init();
|
||||||
begin
|
begin
|
||||||
colors:= console.combinecolors($0000, $FFFF);
|
colors:= console.combinecolors($0000, $FFFF);
|
||||||
@ -58,6 +69,7 @@ begin
|
|||||||
//console.clearWNDEx(Handle, colors);
|
//console.clearWNDEx(Handle, colors);
|
||||||
console.setShellWindow(Handle, false);
|
console.setShellWindow(Handle, false);
|
||||||
console.registerEventHandler(Handle, EVENT_DRAW, void(@Draw));
|
console.registerEventHandler(Handle, EVENT_DRAW, void(@Draw));
|
||||||
|
console.registerEventHandler(Handle, EVENT_MOUSE_CLICK, void(@OnMouseClick));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
@ -65,7 +65,7 @@ uses
|
|||||||
RTC;
|
RTC;
|
||||||
|
|
||||||
var
|
var
|
||||||
TERMINAL_HWND : HWND = 1;
|
TERMINAL_HWND : HWND = 0;
|
||||||
|
|
||||||
function getTerminalHWND : uint32;
|
function getTerminalHWND : uint32;
|
||||||
begin
|
begin
|
||||||
@ -340,23 +340,25 @@ end;
|
|||||||
|
|
||||||
procedure key_event(info : TKeyInfo);
|
procedure key_event(info : TKeyInfo);
|
||||||
begin
|
begin
|
||||||
if (info.key_code >= 32) and (info.key_code <= 126) then begin
|
if TERMINAL_HWND <> 0 then begin
|
||||||
if bIndex < 1024 then begin
|
if (info.key_code >= 32) and (info.key_code <= 126) then begin
|
||||||
buffer[bIndex]:= info.key_code;
|
if bIndex < 1024 then begin
|
||||||
inc(bIndex);
|
buffer[bIndex]:= info.key_code;
|
||||||
console.writecharWND(char(info.key_code), TERMINAL_HWND);
|
inc(bIndex);
|
||||||
|
console.writecharWND(char(info.key_code), TERMINAL_HWND);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if info.key_code = 8 then begin //backspace
|
||||||
|
if bIndex > 0 then begin
|
||||||
|
console.backspaceWND(TERMINAL_HWND);
|
||||||
|
dec(bIndex);
|
||||||
|
buffer[bIndex]:= 0;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
if info.key_code = 13 then begin //return
|
||||||
if info.key_code = 8 then begin //backspace
|
process_command;
|
||||||
if bIndex > 0 then begin
|
|
||||||
console.backspaceWND(TERMINAL_HWND);
|
|
||||||
dec(bIndex);
|
|
||||||
buffer[bIndex]:= 0;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if info.key_code = 13 then begin //return
|
|
||||||
process_command;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure change_dir(Params : PParamList);
|
procedure change_dir(Params : PParamList);
|
||||||
@ -366,11 +368,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure ToggleWND1(Params : PParamList);
|
|
||||||
begin
|
|
||||||
console.toggleWNDVisible(1);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure SendSerial(Params : PParamList);
|
procedure SendSerial(Params : PParamList);
|
||||||
var
|
var
|
||||||
success : boolean;
|
success : boolean;
|
||||||
@ -409,22 +406,27 @@ begin
|
|||||||
registerCommand('TEST', @test, 'Command for testing.');
|
registerCommand('TEST', @test, 'Command for testing.');
|
||||||
registerCommand('CD', @change_dir, 'Change Directory test.');
|
registerCommand('CD', @change_dir, 'Change Directory test.');
|
||||||
registerCommand('PATTERN', @cockwomble, 'Print an animated pattern to the screen.');
|
registerCommand('PATTERN', @cockwomble, 'Print an animated pattern to the screen.');
|
||||||
registerCommand('TOGGLEWND1', @ToggleWND1, 'Toggle WND 1 Visibility.');
|
|
||||||
registerCommand('TIME', @printTime, 'Print the current time.');
|
registerCommand('TIME', @printTime, 'Print the current time.');
|
||||||
registerCommand('SERIAL', @SendSerial, 'Send ''helloworld'' through COM1.');
|
registerCommand('SERIAL', @SendSerial, 'Send ''helloworld'' through COM1.');
|
||||||
console.writestringln('TERMINAL: INIT END.');
|
console.writestringln('TERMINAL: INIT END.');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure OnClose();
|
||||||
|
begin
|
||||||
|
TERMINAL_HWND:= 0;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure run;
|
procedure run;
|
||||||
begin
|
begin
|
||||||
TERMINAL_HWND:= newWindow(20, 10, 90, 20, 'ASURO TERMINAL');
|
if TERMINAL_HWND = 0 then begin
|
||||||
//newWindow(10, 10, 32, 32, 'MEMVIEW');
|
TERMINAL_HWND:= newWindow(20, 10, 90, 20, 'ASURO TERMINAL');
|
||||||
keyboard.hook(@key_event);
|
console.registerEventHandler(TERMINAL_HWND, EVENT_KEY_PRESSED, void(@key_event));
|
||||||
console.clearWND(TERMINAL_HWND);
|
console.registerEventHandler(TERMINAL_HWND, EVENT_CLOSE, void(@OnClose));
|
||||||
console.writestringWND('Asuro#', TERMINAL_HWND);
|
console.clearWND(TERMINAL_HWND);
|
||||||
console.writestringWND(Working_Directory, TERMINAL_HWND);
|
console.writestringWND('Asuro#', TERMINAL_HWND);
|
||||||
console.writestringWND('> ', TERMINAL_HWND);
|
console.writestringWND(Working_Directory, TERMINAL_HWND);
|
||||||
console.setWNDVisible(TERMINAL_HWND, true);
|
console.writestringWND('> ', TERMINAL_HWND);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
Loading…
x
Reference in New Issue
Block a user