diff --git a/Asuro.iso b/Asuro.iso index 7907b103..9918aec2 100644 Binary files a/Asuro.iso and b/Asuro.iso differ diff --git a/bin/kernel.bin b/bin/kernel.bin index 39bc7199..e66d47af 100755 Binary files a/bin/kernel.bin and b/bin/kernel.bin differ diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 39bc7199..e66d47af 100755 Binary files a/iso/boot/asuro.bin and b/iso/boot/asuro.bin differ diff --git a/lib/ACE.ppu b/lib/ACE.ppu index 81135507..2369f60f 100644 Binary files a/lib/ACE.ppu and b/lib/ACE.ppu differ diff --git a/lib/BPE.ppu b/lib/BPE.ppu index 592193f2..0754bac7 100644 Binary files a/lib/BPE.ppu and b/lib/BPE.ppu differ diff --git a/lib/BTSSE.ppu b/lib/BTSSE.ppu index 8416f0da..6ca19222 100644 Binary files a/lib/BTSSE.ppu and b/lib/BTSSE.ppu differ diff --git a/lib/CFE.ppu b/lib/CFE.ppu index 5a9b81a5..20f3f7f6 100644 Binary files a/lib/CFE.ppu and b/lib/CFE.ppu differ diff --git a/lib/CSOE.ppu b/lib/CSOE.ppu index 63779a20..524b8934 100644 Binary files a/lib/CSOE.ppu and b/lib/CSOE.ppu differ diff --git a/lib/DBGE.ppu b/lib/DBGE.ppu index 26f97aba..f0806abe 100644 Binary files a/lib/DBGE.ppu and b/lib/DBGE.ppu differ diff --git a/lib/DBZ.ppu b/lib/DBZ.ppu index d56f6eb3..07bec4f2 100644 Binary files a/lib/DBZ.ppu and b/lib/DBZ.ppu differ diff --git a/lib/DFE.ppu b/lib/DFE.ppu index 3fd4d328..0818d9cf 100644 Binary files a/lib/DFE.ppu and b/lib/DFE.ppu differ diff --git a/lib/E1000.ppu b/lib/E1000.ppu index 0f0676fd..2a91febb 100644 Binary files a/lib/E1000.ppu and b/lib/E1000.ppu differ diff --git a/lib/GPF.ppu b/lib/GPF.ppu index 29b111d0..220918f4 100644 Binary files a/lib/GPF.ppu and b/lib/GPF.ppu differ diff --git a/lib/IDE.ppu b/lib/IDE.ppu index 6f410602..a9b37328 100644 Binary files a/lib/IDE.ppu and b/lib/IDE.ppu differ diff --git a/lib/IDOE.ppu b/lib/IDOE.ppu index cd80a821..c761f627 100644 Binary files a/lib/IDOE.ppu and b/lib/IDOE.ppu differ diff --git a/lib/IOPE.ppu b/lib/IOPE.ppu index e5c62268..f11fcd4d 100644 Binary files a/lib/IOPE.ppu and b/lib/IOPE.ppu differ diff --git a/lib/MCE.ppu b/lib/MCE.ppu index c3d7ee16..273a73b0 100644 Binary files a/lib/MCE.ppu and b/lib/MCE.ppu differ diff --git a/lib/NCE.ppu b/lib/NCE.ppu index c5a50487..3bc6141b 100644 Binary files a/lib/NCE.ppu and b/lib/NCE.ppu differ diff --git a/lib/NMIE.ppu b/lib/NMIE.ppu index 4b1ff842..0d5a0e4e 100644 Binary files a/lib/NMIE.ppu and b/lib/NMIE.ppu differ diff --git a/lib/OOBE.ppu b/lib/OOBE.ppu index 99c6448c..c497d151 100644 Binary files a/lib/OOBE.ppu and b/lib/OOBE.ppu differ diff --git a/lib/PCI.ppu b/lib/PCI.ppu index 9b9f215d..4f974d09 100644 Binary files a/lib/PCI.ppu and b/lib/PCI.ppu differ diff --git a/lib/PF.ppu b/lib/PF.ppu index 53670837..14a5dbfa 100644 Binary files a/lib/PF.ppu and b/lib/PF.ppu differ diff --git a/lib/PS2_KEYBOARD_ISR.ppu b/lib/PS2_KEYBOARD_ISR.ppu index 98572635..56bd29cd 100644 Binary files a/lib/PS2_KEYBOARD_ISR.ppu and b/lib/PS2_KEYBOARD_ISR.ppu differ diff --git a/lib/RTC.ppu b/lib/RTC.ppu index 9262021b..4348fdcb 100644 Binary files a/lib/RTC.ppu and b/lib/RTC.ppu differ diff --git a/lib/SFE.ppu b/lib/SFE.ppu index 8fb5dc46..e085c659 100644 Binary files a/lib/SFE.ppu and b/lib/SFE.ppu differ diff --git a/lib/SNPE.ppu b/lib/SNPE.ppu index 59caca6c..335c8d3a 100644 Binary files a/lib/SNPE.ppu and b/lib/SNPE.ppu differ diff --git a/lib/TMR_0_ISR.ppu b/lib/TMR_0_ISR.ppu index 6c10c2dd..9225a3f3 100644 Binary files a/lib/TMR_0_ISR.ppu and b/lib/TMR_0_ISR.ppu differ diff --git a/lib/UIE.ppu b/lib/UIE.ppu index ebde8379..d3115009 100644 Binary files a/lib/UIE.ppu and b/lib/UIE.ppu differ diff --git a/lib/USB.ppu b/lib/USB.ppu index a0076e48..b8232c7b 100644 Binary files a/lib/USB.ppu and b/lib/USB.ppu differ diff --git a/lib/arp.ppu b/lib/arp.ppu index 13424fa7..ee3ee508 100644 Binary files a/lib/arp.ppu and b/lib/arp.ppu differ diff --git a/lib/asuro.ppu b/lib/asuro.ppu index 58096312..7c37dae2 100644 Binary files a/lib/asuro.ppu and b/lib/asuro.ppu differ diff --git a/lib/bios_data_area.ppu b/lib/bios_data_area.ppu index 436c2c7f..22aeba9c 100644 Binary files a/lib/bios_data_area.ppu and b/lib/bios_data_area.ppu differ diff --git a/lib/console.o b/lib/console.o index ac64bd78..7d2636da 100644 Binary files a/lib/console.o and b/lib/console.o differ diff --git a/lib/console.ppu b/lib/console.ppu index 39177de1..d5f10803 100644 Binary files a/lib/console.ppu and b/lib/console.ppu differ diff --git a/lib/drivermanagement.ppu b/lib/drivermanagement.ppu index f9ac5169..e867a483 100644 Binary files a/lib/drivermanagement.ppu and b/lib/drivermanagement.ppu differ diff --git a/lib/drivertypes.ppu b/lib/drivertypes.ppu index 1ee6aad9..6602a398 100644 Binary files a/lib/drivertypes.ppu and b/lib/drivertypes.ppu differ diff --git a/lib/eth2.ppu b/lib/eth2.ppu index 15edd2d2..56b70155 100644 Binary files a/lib/eth2.ppu and b/lib/eth2.ppu differ diff --git a/lib/fat32.ppu b/lib/fat32.ppu index a9c818e5..c86ea37f 100644 Binary files a/lib/fat32.ppu and b/lib/fat32.ppu differ diff --git a/lib/faults.ppu b/lib/faults.ppu index b63430f5..04319893 100644 Binary files a/lib/faults.ppu and b/lib/faults.ppu differ diff --git a/lib/fonts.ppu b/lib/fonts.ppu index 7907135f..69696d5c 100644 Binary files a/lib/fonts.ppu and b/lib/fonts.ppu differ diff --git a/lib/gdt.ppu b/lib/gdt.ppu index 871a554a..a781b340 100644 Binary files a/lib/gdt.ppu and b/lib/gdt.ppu differ diff --git a/lib/idt.ppu b/lib/idt.ppu index c6110091..c29ee080 100644 Binary files a/lib/idt.ppu and b/lib/idt.ppu differ diff --git a/lib/ipv4.ppu b/lib/ipv4.ppu index 763dd5d0..5eefa893 100644 Binary files a/lib/ipv4.ppu and b/lib/ipv4.ppu differ diff --git a/lib/irq.ppu b/lib/irq.ppu index 3dec6c60..b4219b4b 100644 Binary files a/lib/irq.ppu and b/lib/irq.ppu differ diff --git a/lib/isr.ppu b/lib/isr.ppu index de05b81e..e179f7a1 100644 Binary files a/lib/isr.ppu and b/lib/isr.ppu differ diff --git a/lib/isr_types.ppu b/lib/isr_types.ppu index 6b021c3d..4ec96bb1 100644 Binary files a/lib/isr_types.ppu and b/lib/isr_types.ppu differ diff --git a/lib/isrmanager.ppu b/lib/isrmanager.ppu index b0554949..1cff6618 100644 Binary files a/lib/isrmanager.ppu and b/lib/isrmanager.ppu differ diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 2095cf57..05730584 100644 Binary files a/lib/kernel.ppu and b/lib/kernel.ppu differ diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index 515185a8..3b22d1ea 100644 Binary files a/lib/keyboard.ppu and b/lib/keyboard.ppu differ diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 34e53910..f5152bee 100644 Binary files a/lib/libpconsole.a and b/lib/libpconsole.a differ diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 9bfc9332..80a25d09 100644 Binary files a/lib/libpmultiboot.a and b/lib/libpmultiboot.a differ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index a4c56d56..f25275e8 100644 Binary files a/lib/libpsystem.a and b/lib/libpsystem.a differ diff --git a/lib/lists.ppu b/lib/lists.ppu index 8aa062c2..f7d42172 100644 Binary files a/lib/lists.ppu and b/lib/lists.ppu differ diff --git a/lib/lmemorymanager.ppu b/lib/lmemorymanager.ppu index b06e189f..187766ea 100644 Binary files a/lib/lmemorymanager.ppu and b/lib/lmemorymanager.ppu differ diff --git a/lib/memview.ppu b/lib/memview.ppu index e53d5f3e..28337b23 100644 Binary files a/lib/memview.ppu and b/lib/memview.ppu differ diff --git a/lib/mouse.ppu b/lib/mouse.ppu index f07eef74..856ed6c8 100644 Binary files a/lib/mouse.ppu and b/lib/mouse.ppu differ diff --git a/lib/multiboot.ppu b/lib/multiboot.ppu index 835ec52a..6f9b3b86 100644 Binary files a/lib/multiboot.ppu and b/lib/multiboot.ppu differ diff --git a/lib/net.ppu b/lib/net.ppu index d7e02020..4c71da82 100644 Binary files a/lib/net.ppu and b/lib/net.ppu differ diff --git a/lib/nettypes.ppu b/lib/nettypes.ppu index 5f68b15a..2a3723b5 100644 Binary files a/lib/nettypes.ppu and b/lib/nettypes.ppu differ diff --git a/lib/netutils.ppu b/lib/netutils.ppu index fb045b4c..a3d65dad 100644 Binary files a/lib/netutils.ppu and b/lib/netutils.ppu differ diff --git a/lib/pmemorymanager.ppu b/lib/pmemorymanager.ppu index 75b7d7fa..612ed13e 100644 Binary files a/lib/pmemorymanager.ppu and b/lib/pmemorymanager.ppu differ diff --git a/lib/scheduler.ppu b/lib/scheduler.ppu index 48ae4529..67ab9966 100644 Binary files a/lib/scheduler.ppu and b/lib/scheduler.ppu differ diff --git a/lib/serial.ppu b/lib/serial.ppu index 4da41fac..f8a77825 100644 Binary files a/lib/serial.ppu and b/lib/serial.ppu differ diff --git a/lib/storagemanagement.ppu b/lib/storagemanagement.ppu index b2538137..9290f405 100644 Binary files a/lib/storagemanagement.ppu and b/lib/storagemanagement.ppu differ diff --git a/lib/strings.ppu b/lib/strings.ppu index cd56618b..432cde3c 100644 Binary files a/lib/strings.ppu and b/lib/strings.ppu differ diff --git a/lib/system.o b/lib/system.o index f2e2b777..16260189 100644 Binary files a/lib/system.o and b/lib/system.o differ diff --git a/lib/system.ppu b/lib/system.ppu index 489f60a3..f5aff557 100644 Binary files a/lib/system.ppu and b/lib/system.ppu differ diff --git a/lib/terminal.ppu b/lib/terminal.ppu index 0d5c8c36..2055164e 100644 Binary files a/lib/terminal.ppu and b/lib/terminal.ppu differ diff --git a/lib/testdriver.ppu b/lib/testdriver.ppu index 42cd76f5..9c2988dd 100644 Binary files a/lib/testdriver.ppu and b/lib/testdriver.ppu differ diff --git a/lib/tracer.ppu b/lib/tracer.ppu index 7686bbb8..c97b730c 100644 Binary files a/lib/tracer.ppu and b/lib/tracer.ppu differ diff --git a/lib/tss.ppu b/lib/tss.ppu index 7afdd9c2..680502d8 100644 Binary files a/lib/tss.ppu and b/lib/tss.ppu differ diff --git a/lib/util.ppu b/lib/util.ppu index cbaf5948..c5da4134 100644 Binary files a/lib/util.ppu and b/lib/util.ppu differ diff --git a/lib/vmemorymanager.ppu b/lib/vmemorymanager.ppu index ccace499..eec4c76c 100644 Binary files a/lib/vmemorymanager.ppu and b/lib/vmemorymanager.ppu differ diff --git a/src/console.pas b/src/console.pas index 499d1e45..5bd77289 100644 --- a/src/console.pas +++ b/src/console.pas @@ -108,6 +108,7 @@ procedure _newline(); { WND Specific } procedure clearWND(WND : uint32); +procedure clearWNDEx(WND : uint32; attributes : uint32); procedure writecharWND(character : char; WND : uint32); procedure writecharlnWND(character : char; WND : uint32); @@ -154,6 +155,7 @@ procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); procedure backspaceWND(WND : uint32); +procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND); procedure _increment_x_WND(WND : uint32); procedure _increment_y_WND(WND : uint32); @@ -185,6 +187,13 @@ function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Tit function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean; procedure forceQuitAll; procedure closeWindow(WND : HWND); +procedure bordersEnabled(WND : HWND; enabled : boolean); +procedure SetShellWindow(WND : HWND; b : boolean); +function getWindowName(WND : HWND) : pchar; + +procedure _MouseDown(); +procedure _MouseUp(); +procedure _MouseClick(left : boolean); implementation @@ -258,6 +267,7 @@ type Hooks : THooks; Closed : boolean; Border : boolean; + ShellWND : boolean; end; PWindow = ^TWindow; @@ -286,6 +296,110 @@ var Window_Border : TCharacter; Default_Char : TCharacter; WindowTitleMask : TMask; + WindowMask : TMask; + MouseDown : Boolean; + WindowMovePos : TMouseCoord; + MovingWindow : uint32; + + +procedure _MouseDown(); +begin + MouseDown:= true; +end; + +procedure _MouseUp(); +begin + MouseDown:= false; +end; + +procedure _MouseClick(left : boolean); +begin + +end; + +function getWindowName(WND : HWND) : pchar; +var + Window : PWindow; + +begin + getWindowName:= nil; + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + if Window^.ShellWND then begin + getWindowName:= Window^.WND_NAME; + end; + end; +end; + +procedure SetShellWindow(WND : HWND; b : boolean); +var + Window : PWindow; + +begin + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + Window^.ShellWND:= b; + end; +end; + +procedure bordersEnabled(WND : HWND; enabled : boolean); +var + Window : PWindow; + +begin + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + Window^.Border:= enabled; + end; +end; + +procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND); +var + Window : PWindow; + +begin + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + while x > 159 do dec(x); + while y > 63 do dec(y); + Window^.Cursor.x:= x; + Window^.Cursor.y:= y; + end; +end; + +procedure setWindowPosition(WND : HWND; x, y : sint32); +var + Window : PWindow; + nx, ny : sint32; + +begin + Window:= WindowManager.Windows[WND]; + If Window <> nil then begin + nx:= x; + ny:= y; + if Window^.Border then begin + if nx < 2 then nx:= 2; + if ny < 1 then ny:= 1; + while (nx + Window^.WND_W + 2) > 159 do begin + dec(nx); + end; + while (ny + Window^.WND_H + 1) > 63 do begin + dec(ny); + end; + end else begin + if nx < 0 then nx:= 0; + if ny < 0 then ny:= 0; + while (nx + Window^.WND_W) > 159 do begin + dec(nx); + end; + while (ny + Window^.WND_H) > 63 do begin + dec(ny); + end; + end; + Window^.WND_X:= nx; + Window^.WND_Y:= ny; + end; +end; function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean; begin @@ -332,6 +446,7 @@ begin WND^.visible:= true; WND^.Closed:= false; WND^.Border:= true; + WND^.ShellWND:= true; WND^.Hooks.OnDraw := nil; WND^.Hooks.OnMouseClick := nil; WND^.Hooks.OnMouseMove := nil; @@ -476,6 +591,7 @@ var WXR, WYR : sint32; STRC : uint32; MIDP, STARTP : uint32; + deltax, deltay : sint32; begin for y:=0 to 63 do begin @@ -483,6 +599,28 @@ begin Console_Matrix[y][x]:= Default_Char; end; end; + 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; + end; + if MovingWindow <> 0 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); + //WindowManager.Windows[MovingWindow]^.WND_X:= WindowManager.Windows[MovingWindow]^.WND_X - deltax; + //WindowManager.Windows[MovingWindow]^.WND_Y:= WindowManager.Windows[MovingWindow]^.WND_Y - deltay; + end; + end; + end else begin + MovingWindow:= 0; + end; for w:=0 to MAX_WINDOWS-1 do begin if WindowManager.Windows[w] <> nil then begin if w <> 0 then begin @@ -528,14 +666,11 @@ begin if x > 159 then break; Console_Matrix[y][x]:= WindowManager.Windows[w]^.buffer[y - WindowManager.Windows[w]^.WND_Y][x - WindowManager.Windows[w]^.WND_X]; WindowTitleMask[y][x]:= 0; + WindowMask[y][x]:= w; end; end; end; if WindowManager.Windows[w]^.Closed then _closeWindow(w); - if WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)] <> 0 then begin - writestring('Mouse Window: '); - writeintln(WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]); - end; end; end; redrawMatrix; @@ -570,6 +705,7 @@ begin WND^.visible:= true; WND^.Closed:= false; WND^.Border:= false; + WND^.ShellWND:= false; WindowManager.Windows[0]:= WND; end; @@ -1256,6 +1392,24 @@ begin //Console_Cursor.Y:= 0; end; +procedure clearWNDEx(WND : uint32; attributes : uint32); +var + x,y: Byte; + +begin + if WindowManager.Windows[WND] <> nil then begin + for y:=0 to 63 do begin + for x:=0 to 159 do begin + WindowManager.Windows[WND]^.Buffer[y][x].Character:= ' '; + WindowManager.Windows[WND]^.Buffer[y][x].Attributes:= attributes; + WindowManager.Windows[WND]^.row_dirty[y]:= true; + end; + end; + WindowManager.Windows[WND]^.Cursor.X:= 0; + WindowManager.Windows[WND]^.Cursor.Y:= 0; + end; +end; + procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); var Mask : PMask; diff --git a/src/driver/hid/mouse.pas b/src/driver/hid/mouse.pas index 4124c7c6..4b84b0d1 100644 --- a/src/driver/hid/mouse.pas +++ b/src/driver/hid/mouse.pas @@ -53,6 +53,10 @@ var Packet : uint32; Registered : Boolean = false; NeedsRedraw : Boolean = false; + RMouseDownPos : TMousePos; + LMouseDownPos : TMousePos; + LMouseDown : Boolean; + RMouseDown : Boolean; procedure DrawCursor; var @@ -142,6 +146,9 @@ begin f:= Mouse_Byte[0]; Packet.x_sign:= (f AND %00010000) = %00010000; Packet.y_sign:= (f AND %00100000) = %00100000; + Packet.MMB_Down:= (f AND %00000100) = %00000100; + Packet.RMB_Down:= (f AND %00000010) = %00000010; + Packet.LMB_Down:= (f AND %00000001) = %00000001; Packet.x_overflow:= (f AND $40) = $40; Packet.y_overflow:= (f AND $80) = $80; Packet.x_movement:= Mouse_Byte[1] - ((f SHL 4) AND $100); @@ -155,6 +162,42 @@ begin if Current.y > 1015 then Current.y:= 1015; end; Cycle:= 0; + if Packet.LMB_Down then begin + if not LMouseDown then begin + LMouseDown:= true; + LMouseDownPos.x:= Current.x; + LMouseDownPos.y:= Current.y; + //MouseDownEvent + console._mouseDown(); + end; + end; + if not Packet.LMB_Down then begin + if LMouseDown then begin + If (Current.x = LMouseDownPos.x) and (Current.y = LMouseDownPos.y) then begin + Console._MouseClick(true); + end; + //MouseUpEvent + Console._MouseUp(); + LMouseDown:= false; + end; + end; + if Packet.RMB_Down then begin + if not RMouseDown then begin + RMouseDown:= true; + RMouseDownPos.x:= Current.x; + RMouseDownPos.y:= Current.y; + end; + end; + + if not Packet.RMB_Down then begin + if RMouseDown then begin + if (Current.x = RMouseDownPos.x) and (Current.y = RMouseDownPos.y) then begin + Console._MouseClick(false); + end; + end; + RMouseDown:= false; + end; + console.setMousePosition(Current.x, Current.y); end; end; diff --git a/src/include/asuro.pas b/src/include/asuro.pas index 3bef6ad1..ca34b69d 100644 --- a/src/include/asuro.pas +++ b/src/include/asuro.pas @@ -3,11 +3,11 @@ unit asuro; interface const - VERSION = '1.0.0-610a'; + VERSION = '1.0.0-613a'; VERSION_MAJOR = '1'; VERSION_MINOR = '0'; VERSION_SUB = '0'; - REVISION = '610'; + REVISION = '613'; RELEASE = 'a'; implementation diff --git a/src/kernel.pas b/src/kernel.pas index 4801ee8d..8b08d285 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -46,6 +46,7 @@ uses fonts, RTC, serial, + shell, memview; procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; @@ -212,8 +213,11 @@ begin tracer.pop_trace; { Init Progs } + shell.init(); memview.init(); + console.writehexln(uint32(multibootinfo^.framebuffer_addr)); + tracer.push_trace('kmain.KEYHOOK'); keyboard.hook(@temphook); tracer.pop_trace;