⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyboard.cc.svn-base

📁 德国Erlangen大学教学操作系统源码。
💻 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 + -