📄 keyboard.cc.svn-base
字号:
/*****************************************************************************//* Betriebssysteme I, Uni-Magdeburg, SS 98, OO-Stubs *//*---------------------------------------------------------------------------*//* *//* K E Y B O A R D *//* *//*---------------------------------------------------------------------------*//* Tastaturtreiber. *//*****************************************************************************/#include "device/keyboard.h"#include "device/cgastr.h"#include "machine/plugbox.h"#include "machine/pic.h"#include "machine/keyctrl.h"#include "guard/guard.h"extern Plugbox plugbox;extern CGA_Stream kout;extern PIC pic;extern Guard guard;Keyboard::Keyboard() : key(){}Keyboard::Keyboard(Keyboard &keyboard){}Keyboard::~Keyboard(){}void Keyboard::plugin(){ plugbox.assign(Plugbox::device_number::keyboard, *this); pic.allow(PIC::int_device::keyboard);}/* ///// wird f黵 aufgabe 3 nicht mehr ben鰐igt ////////////////void Keyboard::trigger(){ Key key = key_hit(); if(!key.valid()) return; kout << key.ascii(); kout.flush();}*/bool Keyboard::prologue(){ Key key_local = key_hit(); if(key_local.valid()) key = key_local; return key.valid();}/////////////////////////////////////////////////////////////777#include "machine/keyctrl.h"#include "machine/plugbox.h"#include "machine/pic.h"#include "machine/cpu.h"#include "guard/guard.h"#include "device/panic.h"#include "device/keyboard.h"#include "device/cgastr.h"#include "device/watch.h"#include "syscall/guarded_organizer.h"#include "meeting/bellringer.h"#include "syscall/guarded_semaphore.h"extern CGA_Stream kout;extern Plugbox plugbox;extern PIC pic;extern CPU cpu;extern Guard guard;extern Keyboard kb;extern Panic panic;extern Watch watch;extern Guarded_Organizer scheduler;extern Bellringer bellringer;extern Guarded_Semaphore sem;/////////////////////////////////////////////////////////////777void Keyboard::epilogue(){ kout.flush(); if(!key.valid()) return; // kout << key; // kout.flush(); int type_x, type_y; kout.getpos(type_x, type_y); kout.setpos(0, 9); kout << endl << "debug info: " << " sem:" << sem._z << " watch:" << watch.interval() ; //int size;/* size = bellringer.size(); if(size!=0) kout << " bell:" << static_cast<Bell*>(bellringer.first())->wait(); size = scheduler.tasks.size(); kout << size+1 << " active tasks: "; kout << static_cast<Chain*>(static_cast<Entrant*>(scheduler.active())) << "; "; for(int i=0; i<size; i++) { Chain* item = scheduler.tasks.dequeue(); kout << item << "; "; scheduler.tasks.enqueue(item); } kout << endl; size = scheduler._blocked.size(); kout << size << " blocked tasks: "; for(int i=0; i<size; i++) { Chain* item = scheduler._blocked.dequeue(); kout << item << "; "; scheduler._blocked.enqueue(item); } kout << endl; size = bellringer.size(); kout << size << " blocked tasks: "; for(int i=0; i<size; i++) { Chain* item = bellringer.dequeue(); kout << item << "@" << (static_cast<Bell*>(item))->wait() << "; "; bellringer.enqueue(item); } kout << endl;*/ kout << " " << endl; kout.flush(); kout.setpos(type_x, type_y);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -