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

📄 menus.c

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
		if(id32.kernel_maxextmem>0x7FFFFFFF) Print_At(15,40,"     All");
		else if(id32.kernel_maxextmem==0) Print_At(15,40,"    None");
		else Print_At(15,38," %8Xh",id32.kernel_maxextmem);

		if(id32.kernel_pagetables>64) SetColor(YELLOW);
		if(id32.kernel_pagetables==0 && !(id32.kernel_misc&0x04)) { SetColor(LIGHTRED); SetBlink(1); }
		Print_At(11,61,"%7Xh",id32.kernel_pagetables);
		SetColor(LIGHTWHITE); SetBlink(0);

		Print_At(12,61,"%7Xh",id32.kernel_phystables);

		if(id32.kernel_rmstacklen<0x10) SetColor(YELLOW);
		if(id32.kernel_rmstacklen==0) { SetColor(LIGHTRED); SetBlink(1); }
		Print_At(13,61,"%7Xh",id32.kernel_rmstacklen);
		SetColor(LIGHTWHITE); SetBlink(0);

		if(id32.kernel_pmstacklen<0x10) SetColor(YELLOW);
		if(id32.kernel_pmstacklen==0) { SetColor(LIGHTRED); SetBlink(1); }
		Print_At(14,61,"%7Xh",id32.kernel_pmstacklen);
		SetColor(LIGHTWHITE); SetBlink(0);
	}
	SetColor(LIGHTBLUE);
	if((id32.kernel_misc&0x01)!=(id32_old.kernel_misc&0x01)) Print_At(3,69,"*");else Print_At(3,69," ");
	if((id32.kernel_misc&0x02)!=(id32_old.kernel_misc&0x02)) Print_At(4,69,"*");else Print_At(4,69," ");
	if((id32.kernel_misc&0x04)!=(id32_old.kernel_misc&0x04)) Print_At(5,69,"*");else Print_At(5,69," ");
	if((id32.kernel_misc&0x08)!=(id32_old.kernel_misc&0x08)) Print_At(6,69,"*");else Print_At(6,69," ");
	if((id32.kernel_misc&0x10)!=(id32_old.kernel_misc&0x10)) Print_At(7,69,"*");else Print_At(7,69," ");
	if((id32.kernel_misc&0x20)!=(id32_old.kernel_misc&0x20)) Print_At(8,69,"*");else Print_At(8,69," ");
	if((id32.kernel_misc&0x80)!=(id32_old.kernel_misc&0x80)) Print_At(9,69,"*");else Print_At(9,69," ");
	if((id32.kernel_selectors)!=(id32_old.kernel_selectors)) Print_At(11,35,"*");else Print_At(11,35," ");
	if((id32.kernel_callbacks)!=(id32_old.kernel_callbacks)) Print_At(12,35,"*");else Print_At(12,35," ");
	if((id32.kernel_rmstacks)!=(id32_old.kernel_rmstacks)) Print_At(13,35,"*");else Print_At(13,35," ");
	if((id32.kernel_pmstacks)!=(id32_old.kernel_pmstacks)) Print_At(14,35,"*");else Print_At(14,35," ");
	if((id32.kernel_pagetables)!=(id32_old.kernel_pagetables)) Print_At(11,69,"*");else Print_At(11,69," ");
	if((id32.kernel_phystables)!=(id32_old.kernel_phystables)) Print_At(12,69,"*");else Print_At(12,69," ");
	if((id32.kernel_rmstacklen)!=(id32_old.kernel_rmstacklen)) Print_At(13,69,"*");else Print_At(13,69," ");
	if((id32.kernel_pmstacklen)!=(id32_old.kernel_pmstacklen)) Print_At(14,69,"*");else Print_At(14,69," ");
	if((id32.kernel_maxextmem)!=(id32_old.kernel_maxextmem)) Print_At(15,48,"*");else Print_At(15,48," ");
	SetColor(LIGHTWHITE);
}


/*--------------------------------------------------------------------------*/
void SelectKernelMenu()
{
	do {
		ShowModified();
		ShowHelp(1,kernelmenu_sel);
		ShowKernelConfig();
		ShowCursor(	kernelmenu_ypos[kernelmenu_sel],
				kernelmenu_xpos[kernelmenu_sel],
				kernelmenu_xlen[kernelmenu_sel]);
		GetKey();
		ShowCursor(	kernelmenu_ypos[kernelmenu_sel],
				kernelmenu_xpos[kernelmenu_sel],
				kernelmenu_xlen[kernelmenu_sel]);
//		CloseWindow();

		if(keychar>'0' && keychar<'8') kernelmenu_sel=keychar-'1';
		if(keycode==F3) CreateConfig();
		if(keycode==F4) RestoreConfig();
		if(keycode==F5)	{ id32=id32_old; ClearConfigName(); }
		if(keycode==F6) { RestoreDefaults(); ClearConfigName(); }
		if(keycode==F8) ShowMemReq();
		if(keycode==UP) kernelmenu_sel--;
		if(keycode==DOWN) kernelmenu_sel++;
		if(keycode==HOME) kernelmenu_sel=0;
		if(keycode==END) kernelmenu_sel=16;
		if(keycode==PAGEUP)
			if(kernelmenu_sel>11) kernelmenu_sel=11;
			else if(kernelmenu_sel>7) kernelmenu_sel=7;
			else if(kernelmenu_sel>0) kernelmenu_sel=0;
		if(keycode==PAGEDOWN)
			if(kernelmenu_sel<7) kernelmenu_sel=7;
			else if(kernelmenu_sel<11) kernelmenu_sel=11;
			else if(kernelmenu_sel<15) kernelmenu_sel=15;

		if(keycode==LEFT) if(kernelmenu_sel>10 && kernelmenu_sel<15) kernelmenu_sel-=4;
		if(keycode==RIGHT) if(kernelmenu_sel>6 && kernelmenu_sel<11) kernelmenu_sel+=4;

		if(keycode==TAB) hexmode^=1;
		if(kernelmenu_sel<0) kernelmenu_sel=0;
		if(kernelmenu_sel>15) kernelmenu_sel=15;
	} while(keycode!=ESC && keycode!=F1 && keycode!=F2 && keycode!=ENTER && keycode!=SPACE);
}





/****************************************************************************/
void ShowExtenderMenu()
{
	int n;
	SetColor(LIGHTWHITE);
	SetBackColor(BLUE);
	OpenWindow(2,8,15,64);
	SetColor(YELLOW);
	Print_At(2,11," DOS Extender Configuration ");
	SetColor(LIGHTWHITE);

	Print_At( 3,10," 1)  Report Warnings ...................................");
	Print_At( 4,10," 2)  Sound Alert on Run-Time Errors ....................");
	Print_At( 5,10," 3)  Restore Real Mode INTs on Exit ....................");
	Print_At( 6,10," 4)  Report Modified Real Mode INTs ....................");
	Print_At( 7,10," 5)  Object Loading Scheme .............................");
	Print_At( 8,10," 6)  Object Alignment when Loaded High ...............");
	Print_At( 9,10," 7)  Clear Screen on Run-Time Errors ...................");
	Print_At(10,10," 8)  Start Full-Screen under Windows ...................");
	Print_At(11,10," 9)  Install Null-Pointer Protection ...................");

	ShowBannerStatus();

	Print_At(13,10,"11)  Configure Using Environment .......................");
	Print_At(14,10,"12)  Start Extender in Verbose Mode ....................");
	Print_At(15,19,"DOS Transfer Buffer Size:         (Bytes)");

	do {
		SelectExtenderMenu();
		if(keycode!=ESC && keycode!=F1 && keycode!=F2) switch(extendermenu_sel) {
			case 0:		id32.dos32a_misc^=0x01; break;
			case 1:		id32.dos32a_misc^=0x02; break;
			case 2:		id32.dos32a_misc^=0x04; break;
			case 3:		id32.dos32a_misc^=0x08; break;
			case 4:		{ n=(id32.dos32a_misc&0x30)>>4;	n=(n+1)&0x03;
					id32.dos32a_misc=((id32.dos32a_misc&0xCF)|(n<<4)); } break;
			case 5:		id32.dos32a_misc2^=0x04; break;
			case 6:		id32.dos32a_misc^=0x40; break;
			case 7:		id32.dos32a_misc2^=0x02; break;
			case 8:		id32.dos32a_misc^=0x80; break;
			case 9:		if((id32.dos32a_misc2&0x80)==0) id32.dos32a_misc2^=0x08; break;
			case 10:	id32.dos32a_misc2^=0x01; break;
			case 11:	id32.dos32a_misc2^=0x10; break;
			case 12:	id32.dos32a_lowbufsize=
					Input(15,46,6,id32.dos32a_lowbufsize<<4)>>4;
					if(id32.dos32a_lowbufsize>0x0FFF) id32.dos32a_lowbufsize=0x0FFF;
					break;
		}
	} while(keycode!=ESC && keycode!=F1 && keycode!=F2);
	CloseWindow();
}



/*--------------------------------------------------------------------------*/
void ShowExtenderConfig()
{
	int n;
	SetColor(LIGHTWHITE);
	SetBackColor(BLUE);
	if(id32.dos32a_misc&0x01) Print_At(3,65,". ON");else Print_At(3,65," OFF");
	if(id32.dos32a_misc&0x02) Print_At(4,65,". ON");else Print_At(4,65," OFF");
	if(id32.dos32a_misc&0x04) Print_At(5,65,". ON");else Print_At(5,65," OFF");
	if(id32.dos32a_misc&0x08) Print_At(6,65,". ON");else Print_At(6,65," OFF");
	Print_At(7,65,". #%d",((id32.dos32a_misc&0x30)>>4)+1);
	if(id32.dos32a_misc2&0x04) Print_At(8,64," PAGE");else Print_At(8,64," PARA");
	if(id32.dos32a_misc&0x40) Print_At(9,65,". ON");else Print_At(9,65," OFF");
	if(id32.dos32a_misc2&0x02) Print_At(10,65,". ON");else Print_At(10,65," OFF");
	if(id32.dos32a_misc&0x80) Print_At(11,65,". ON");else Print_At(11,65," OFF");
	if((id32.dos32a_misc2&0x80)==0)
	{
		if(id32.dos32a_misc2&0x08) Print_At(12,65,". ON");else Print_At(12,65," OFF");
	}
	else
	{
		SetColor(WHITE);
		if(id32.dos32a_misc2&0x08) Print_At(12,65,". ON");else Print_At(12,65," OFF");
		SetColor(LIGHTWHITE);
	}
	if(id32.dos32a_misc2&0x01) Print_At(13,65,". ON");else Print_At(13,65," OFF");
	if(id32.dos32a_misc2&0x10) Print_At(14,65,". ON");else Print_At(14,65," OFF");

	if(((id32.dos32a_lowbufsize<<4)&0xFFFF)<4096) SetColor(YELLOW);
	if(((id32.dos32a_lowbufsize<<4)&0xFFFF)<1024) { SetColor(LIGHTRED); SetBlink(1); }
	if(hexmode==0)	Print_At(15,44,"%8d",(id32.dos32a_lowbufsize<<4)&0xFFFF);
	else 		Print_At(15,44,"%7Xh",(id32.dos32a_lowbufsize<<4)&0xFFFF);
	SetBlink(0);

	SetColor(LIGHTBLUE);
	if((id32.dos32a_misc&0x01)!=(id32_old.dos32a_misc&0x01)) Print_At(3,69,"*");else Print_At(3,69," ");
	if((id32.dos32a_misc&0x02)!=(id32_old.dos32a_misc&0x02)) Print_At(4,69,"*");else Print_At(4,69," ");
	if((id32.dos32a_misc&0x04)!=(id32_old.dos32a_misc&0x04)) Print_At(5,69,"*");else Print_At(5,69," ");
	if((id32.dos32a_misc&0x08)!=(id32_old.dos32a_misc&0x08)) Print_At(6,69,"*");else Print_At(6,69," ");
	if((id32.dos32a_misc&0x30)!=(id32_old.dos32a_misc&0x30)) Print_At(7,69,"*");else Print_At(7,69," ");
	if((id32.dos32a_misc2&0x04)!=(id32_old.dos32a_misc2&0x04)) Print_At(8,69,"*");else Print_At(8,69," ");
	if((id32.dos32a_misc&0x40)!=(id32_old.dos32a_misc&0x40)) Print_At(9,69,"*");else Print_At(9,69," ");
	if((id32.dos32a_misc2&0x02)!=(id32_old.dos32a_misc2&0x02)) Print_At(10,69,"*");else Print_At(10,69," ");
	if((id32.dos32a_misc&0x80)!=(id32_old.dos32a_misc&0x80)) Print_At(11,69,"*");else Print_At(11,69," ");
	if((id32.dos32a_misc2&0x08)!=(id32_old.dos32a_misc2&0x08)) Print_At(12,69,"*");else Print_At(12,69," ");
	if((id32.dos32a_misc2&0x01)!=(id32_old.dos32a_misc2&0x01)) Print_At(13,69,"*");else Print_At(13,69," ");
	if((id32.dos32a_misc2&0x10)!=(id32_old.dos32a_misc2&0x10)) Print_At(14,69,"*");else Print_At(14,69," ");
	if((id32.dos32a_lowbufsize)!=(id32_old.dos32a_lowbufsize)) Print_At(15,52,"*");else Print_At(15,52," ");
	SetColor(LIGHTWHITE);
}



/*--------------------------------------------------------------------------*/
void SelectExtenderMenu()
{
	int n;

	do {
		ShowModified();
		ShowHelp(2,extendermenu_sel);
		ShowExtenderConfig();
		ShowCursor(	extendermenu_ypos[extendermenu_sel],
				extendermenu_xpos[extendermenu_sel],
				extendermenu_xlen[extendermenu_sel]);
		GetKey();
		ShowCursor(	extendermenu_ypos[extendermenu_sel],
				extendermenu_xpos[extendermenu_sel],
				extendermenu_xlen[extendermenu_sel]);
//		CloseWindow();

		if(keychar>'0' && keychar<='9') extendermenu_sel=keychar-'1';
		if(keychar=='0' || keychar=='a' || keychar=='A') extendermenu_sel=9;
		if(keychar=='b' || keychar=='B') extendermenu_sel=10;
		if(keychar=='c' || keychar=='C') extendermenu_sel=11;
		if(keycode==F3) CreateConfig();
		if(keycode==F4) RestoreConfig();
		if(keycode==F5)	{ id32=id32_old; ClearConfigName(); ShowBannerStatus(); }
		if(keycode==F6) { RestoreDefaults(); ClearConfigName(); }
		if(keycode==F8) ShowMemReq();
		if(keycode==UP) extendermenu_sel--;
		if(keycode==DOWN) extendermenu_sel++;
		if(keycode==HOME) extendermenu_sel=0;
		if(keycode==END) extendermenu_sel=12;
		if(keycode==PAGEUP)
			if(extendermenu_sel>11) extendermenu_sel=11;
			else if(extendermenu_sel>6) extendermenu_sel=6;
			else extendermenu_sel=0;
		if(keycode==PAGEDOWN)
			if(extendermenu_sel<6) extendermenu_sel=6;
			else if(extendermenu_sel<11) extendermenu_sel=11;
			else extendermenu_sel=12;
		if(keycode==TAB) hexmode^=1;
		if(extendermenu_sel<0) extendermenu_sel=0;
		if(extendermenu_sel>12) extendermenu_sel=12;
	} while(keycode!=ESC && keycode!=F1 && keycode!=F2 && keycode!=ENTER && keycode!=SPACE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -