From 2b9e97b8635c20c5a2b87789b1014489863d1994 Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Fri, 13 Nov 2009 18:05:27 +0100 Subject: Added a game of life simulator demo --- Source/Library/Userland/Binding/VirtualTerminal.class.h | 17 +++++++++++++++++ Source/Library/Userland/Start.cpp | 4 ---- 2 files changed, 17 insertions(+), 4 deletions(-) (limited to 'Source/Library/Userland') diff --git a/Source/Library/Userland/Binding/VirtualTerminal.class.h b/Source/Library/Userland/Binding/VirtualTerminal.class.h index 5fd9733..c8a4123 100644 --- a/Source/Library/Userland/Binding/VirtualTerminal.class.h +++ b/Source/Library/Userland/Binding/VirtualTerminal.class.h @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -29,6 +30,10 @@ class VirtualTerminal : public RessourceCaller { void write(String s) { doCall(VTIF_WRITE, (u32int)&s); } + keypress_t getKeypress(bool show = true, bool block = true) { + keypress_t* ptr = (keypress_t*)doCall(VTIF_GETKEYPRESS, (show ? 1 : 0) | (block ? 2 : 0)); + return *ptr; + } String readLine(bool show = true) { return String::unserialize(doCall(VTIF_READLINE, (show ? 1 : 0))); } @@ -44,9 +49,21 @@ class VirtualTerminal : public RessourceCaller { bool isBoxed() { return doCall(VTIF_ISBOXED) != 0; } + u8int height() { + return doCall(VTIF_GETHEIGHT); + } + u8int width() { + return doCall(VTIF_GETWIDTH); + } void put(WChar c) { doCall(VTIF_PUT, c); } + void moveCursor(u8int line, u8int col) { + doCall(VTIF_LOCATE, line, col); + } + void put(u8int line, u8int col, WChar c) { + moveCursor(line, col); put(c); + } inline VirtualTerminal& operator<<(const String& s) { write(s); return *this; } inline VirtualTerminal& operator<<(s32int i) { writeDec(i); return *this; } diff --git a/Source/Library/Userland/Start.cpp b/Source/Library/Userland/Start.cpp index 032450d..0c25491 100644 --- a/Source/Library/Userland/Start.cpp +++ b/Source/Library/Userland/Start.cpp @@ -4,10 +4,6 @@ #include -extern "C" void __cxa_pure_virtual() {} //Required when using abstract classes -void *__dso_handle; //Required when using global objects -extern "C" int __cxa_atexit(void (*f)(void*), void *p, void *d) { return 0; } - extern u32int start_ctors, end_ctors, start_dtors, end_dtors; Heap heap; -- cgit v1.2.3