// vim: set noet ts=4 sw=4: #include "./kappl.h" #include "../../syscall/stub.h" #include "../../device/textstream.h" extern TextStream kout; #include "../../interrupt/guard.h" extern Semaphore koutsem; void KeyboardApplication::action() { // NOLINT while(1){ char msg[11]; if(read(0, msg, 10)) write(0, msg, 10); } //const unsigned line = 10 + 2; //for (unsigned column = 0;; ++column) { // Key key; // { // Guarded g = Guard::enter(); // g.vault().keys_sem.p(g.vault()); // assert(g.vault().keys.consume(key) && "No key but sem returned!"); // } // if (key.valid()) { // if (column >= CGA::COLUMNS - 1) { // column = 0; // koutsem.p(Guard::enter().vault()); // for (unsigned offset = 0; offset < 3; offset++) { // for (unsigned column = 0; column < CGA::COLUMNS; ++column) { // CGA::show(column, line + offset, ' '); // } // } // koutsem.v(Guard::enter().vault()); // } // koutsem.p(Guard::enter().vault()); // kout.setPos(column, line); // kout << static_cast(key.ascii()); // kout.flush(); // koutsem.v(Guard::enter().vault()); // } // for (unsigned offset = 0; offset < 3; offset++) { // { // Guarded g = Guard::enter(); // g.vault().bellringer.sleep(g.vault(), 10); // koutsem.p(g.vault()); // } // kout.setPos(column, line + offset); // kout << static_cast(key.ascii()); // kout.flush(); // koutsem.v(Guard::enter().vault()); // } //} }