From ecf09646ec1f5bebea15d915b8f593bb8ea15e05 Mon Sep 17 00:00:00 2001
From: kieron <kieron@6dbc8c32-bb84-406f-8558-d1cf31a0ab0c>
Date: Tue, 1 May 2018 01:35:45 +0000
Subject: [PATCH] git-svn-id: https://spexeah.com:8443/svn/Asuro@625
 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c

---
 lib/shell.ppu      | Bin 0 -> 1356 bytes
 src/prog/shell.pas |  63 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 63 insertions(+)
 create mode 100644 lib/shell.ppu
 create mode 100644 src/prog/shell.pas

diff --git a/lib/shell.ppu b/lib/shell.ppu
new file mode 100644
index 0000000000000000000000000000000000000000..4a4294b617dbefdffbe4b0636a59fe1672c84894
GIT binary patch
literal 1356
zcma)6&ubG=5Pq}SA5D{{jcuw3QqXuR2)2sgLC`eNYAYd0Db+(v?Lq_FZ0Hth1uyDV
zL@(mWi`0YvgLv122k~6+(1RczW240R=4Cf)=^+E}?YwWknKwH#yQR|d#o5c|6H*EF
zv2<4DEv3G^IQe?&*VlbVDK)|iV)G)hf(_U6Oz6u%Gti8rpch*8;N6FVJ6C`u>|i(8
zb~g_SH(%DS?wtnNx$idv-*by^-k<;W=;se$iE_2D|NWEqcJJXUoYTC>a&$o7;L{io
zJLNUjS{kk6dI%vuMMJVDWgnJ(UG|jh<xzgnI3n4V)k?LvgeyM-%#tECM4SYl5~M7U
zObaJA^i2~XCmBcCp-&0Dt>eI?grqRaOyBK)RcJ;$LjPuVre0#l#F^!nK+=DtGk2kj
z)&{-`%QUdKND&>>PU;so#r1C2zyzR(iY}#iI7Az+%oi6IYYVp*st9C6R~l{2VC=V8
z4x@8NJO!mg1RCc>XMpOl;>MF)Fd+uy-kYMxk`oL1<P`KU@oZS)logY-k{ir$M&MI`
zb4bN(G#lGIF8U=%Ar^!>xQR~agD&!4I8gLf)W(%9VACL9;}yycC<YgCOhzz-k3M@9
zLk`_8-D2|+D3nG#h>=1y^EIh#j6HaLb)%7KMI!2L1&@ImeUFK2U{m&Jqvy)kR|Zc+
zV#FFfg_t?CBbC>Kqg#>I?IyLsrgI=o;x}W@*PH8}t7t@bmhmRTnCTtfH4)#wUGP1B
zD^Qe)h`ZpiJm!U&r%8-=rud-6Ot%&~j7APm*$jEcOV0}0XwGfbccMCwdJYN;b>w#x
Kudg=1*8K-77>UpT

literal 0
HcmV?d00001

diff --git a/src/prog/shell.pas b/src/prog/shell.pas
new file mode 100644
index 00000000..de2d0578
--- /dev/null
+++ b/src/prog/shell.pas
@@ -0,0 +1,63 @@
+unit shell;
+
+interface
+
+uses
+    Console, RTC;
+
+procedure init();
+
+implementation
+
+var
+    Handle : HWND = 0;
+    Colors : uint32;
+    Explore_Colors : uint32;
+
+procedure Draw();
+var
+    DateTime : TDateTime;
+    i : uint32;
+    s : pchar;
+
+begin
+     DateTime:= getDateTime;
+
+     console.clearWNDEx(Handle, colors);
+
+     console.setCursorPosWND(0, 0, Handle);
+     console.writeStringExWND(' TERMINAL ', Explore_Colors, Handle);
+     console.writeCharExWND(#6, Colors, Handle);
+
+     for i:=0 to 9 do begin
+        s:= getWindowName(i);
+        if s <> nil then begin
+            console.writeStringExWND(s, Colors, Handle);
+            console.writeCharExWND(' ', Colors, Handle);
+            console.writeCharExWND(#6, Colors, Handle);
+        end;
+     end;
+
+     console.setCursorPosWND(150, 0, Handle);
+     if DateTime.Hours < 10 then writeIntExWND(0, Colors, Handle);
+     writeIntExWND(DateTime.Hours, Colors, Handle);
+     writeStringExWND(':', Colors, Handle);
+     if DateTime.Minutes < 10 then writeIntExWND(0, Colors, Handle);
+     writeIntExWND(DateTime.Minutes, Colors, Handle);
+     writeStringExWND(':', Colors, Handle);
+     if DateTime.Seconds < 10 then writeIntExWND(0, Colors, Handle);
+     writeIntExWND(DateTime.Seconds, Colors, Handle);
+end;
+
+procedure init();
+begin
+    colors:= console.combinecolors($0000, $FFFF);
+    Explore_Colors:= console.combinecolors($01C3, $07EE);
+    Handle:= Console.newWindow(0, 63, 159, 1, 'SHELL');
+    console.bordersEnabled(Handle, false);
+    //console.clearWNDEx(Handle, colors);
+    console.setShellWindow(Handle, false);
+    console.registerEventHandler(Handle, EVENT_DRAW, void(@Draw));
+end;
+
+end.
\ No newline at end of file