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

📄 debug.cpp

📁 用C++控制喷泉程序
💻 CPP
字号:
#include "alloc.h"
#include "graphics.h"
#include "dos.h"
#include "stdio.h"
#include "struct.h"
#include "grap.h"
#include "constdec.h"
#include "vardec.h"
#include "function.h"
#include "mouse.h"
#include "interrup.h"
void DebugSubFun(BUTTON *subbutton,int buttonnum,int windownonum);
void DebugFun(void)
{
 BUTTON DebugTitleButton[DebugTitleButtonNum];
 BUTTON DebugButton2[DebugButton2Num+1];
 BUTTON DebugButton3[DebugButton3Num+1];
 int i,j;
 int rownum;
 int colnum;
 int k;

 ClearPort();
 for(i=0;i<DebugTitleButtonNum;i++)
 {
	 DebugTitleButton[i].x=(640-100*(DebugTitleButtonNum-1))/2+i*100;
	 DebugTitleButton[i].y=330;
	 DebugTitleButton[i].height=TitleButtonHeight;
	 DebugTitleButton[i].lengh=TitleButtonLengh;
	 DebugTitleButton[i].PressFlag=0;
	 DebugTitleButton[i].EnableFlag=1;
	 DebugTitleButton[i].DrawFlag=1;
	 DebugTitleButton[i].text=DebugTitleButtonText[i];
 }

 rownum=(640-DebugButton2EdgeSpace*2)/(DebugButton2Lengh+DebugButton2HoriSpace);
 colnum=DebugButton2Num/rownum;
 if(DebugButton2Num%rownum!=0)
 {
	colnum++;
 }
 for(i=0;i<colnum;i++)
 {
	 for(j=0;j<rownum;j++)
	 {
		 int ii=i,jj=j;
		 k=i*rownum+j;
		 if(k>=10)
		 {
			ii=(k+22)/rownum;
			jj=(k+22)%rownum;
		 }
		 if(k>=18)
		 {
			ii=(k+38)/rownum;
			jj=(k+38)%rownum;
		 }
		 if(k>=20)
		 {
			ii=(k+60)/rownum;
			jj=(k+60)%rownum;
		 }
		 if(k>=21)
		 {
			ii=(k+66)/rownum;
			jj=(k+66)%rownum;
		 }

		 DebugButton2[k].x=319-(rownum/2.0-jj-0.5)*(DebugButton2Lengh+DebugButton2HoriSpace);
		 DebugButton2[k].y=DebugButton2TopSpace+ii*(DebugButton2Height+DebugButton2VertSpace);
		 DebugButton2[k].height=DebugButton2Height;
		 DebugButton2[k].lengh=DebugButton2Lengh;
		 DebugButton2[k].PressFlag=0;
		 DebugButton2[k].EnableFlag=1;
		 DebugButton2[k].DrawFlag=1;
		 DebugButton2[k].PortData=&DebugButton2PortData[k];
		 DebugButton2[k].text=DebugButton2Text[k];
		 if(k>=DebugButton2Num-1)
			 {
				i=100;
				break;
			 }
	 }
 }
 DebugButton2[DebugButton2Num].x=625;
 DebugButton2[DebugButton2Num].y=12;
 DebugButton2[DebugButton2Num].height=20;
 DebugButton2[DebugButton2Num].lengh=20;
 DebugButton2[DebugButton2Num].PressFlag=0;
 DebugButton2[DebugButton2Num].EnableFlag=1;
 DebugButton2[DebugButton2Num].text="x";

 for(i=0;i<2;i++)
 {
	for(j=0;j<2;j++)
	{
	 DebugButton3[i*2+j].x=(DebugWindow[1].window[i].left+DebugWindow[1].window[i].right)/2;
	 DebugButton3[i*2+j].y=DebugButton3TopSpace+DebugWindow[1].window[i].top+(j+2)*(DebugButton3Height+DebugButton3VertSpace);
	 DebugButton3[i*2+j].height=DebugButton3Height;
	 DebugButton3[i*2+j].lengh=DebugButton3Lengh;
	 DebugButton3[i*2+j].PressFlag=0;
	 DebugButton3[i*2+j].EnableFlag=1;
	 DebugButton3[i*2+j].DrawFlag=1;
	 DebugButton3[i*2+j].text=DebugButton3Text[i*2+j];
	 if(j==0)
	 {
		DebugButton3[i*2+j].PortData=NULL;
	 }
	 if(i*2+j>=DebugButton3Num-3)
	 {
		i=100;
		break;
	 }
	}
 }
 for(i=0;i<2;i++)
 {
	DebugButton3[FREQNUM*2+i].x=319-(1-i-0.5)*200;
	DebugButton3[FREQNUM*2+i].y=(DebugWindow[1].window[14].top+DebugWindow[1].window[14].bottom)/2;
	DebugButton3[FREQNUM*2+i].height=DebugButton3Height*1.2;
	DebugButton3[FREQNUM*2+i].lengh=DebugButton3Lengh*1.2;
	DebugButton3[FREQNUM*2+i].PressFlag=0;
	DebugButton3[FREQNUM*2+i].EnableFlag=1;
	DebugButton3[FREQNUM*2+i].DrawFlag=1;
	DebugButton3[FREQNUM*2+i].PortData=&DebugButton3PortData[i];
	DebugButton3[FREQNUM*2+i].text=DebugButton3Text[i+4];
 }
 DebugButton3[DebugButton3Num].x=625;
 DebugButton3[DebugButton3Num].y=12;
 DebugButton3[DebugButton3Num].height=20;
 DebugButton3[DebugButton3Num].lengh=20;
 DebugButton3[DebugButton3Num].PressFlag=0;
 DebugButton3[DebugButton3Num].EnableFlag=1;
 DebugButton3[DebugButton3Num].text="x";

 for(;;)
 {
	struct viewporttype vp;
	int height,width;
	setviewport(0,0,getmaxx(),getmaxy(),0);
	getviewsettings(&vp);
	width=vp.right-vp.left;
	height=vp.bottom-vp.top;
	setfillstyle(SOLID_FILL,BLUE);
	HideMouse();
	bar(0,0,width,height);
	rectangle(0,0,width,height);
	ShowMouse();

	BmpDisplay("subtitle.bmp",90,120,YELLOW);
	for(int i=0;i<DebugTitleButtonNum;i++)
	{
		DebugTitleButton[i].DrawFlag=1;
	}
	ShowButton(DebugTitleButton,DebugTitleButtonNum);

	for(;;)
	{
	 ReadMouse();
	 i=ReturnButton(DebugTitleButton,DebugTitleButtonNum);
	 if(i>=0&&i<DebugTitleButtonNum)
	 {
		break;
	 }

	FreqFoun();
	ComOut();
	}
	switch (i)
	{
	 case 0:
					ReShowButton(DebugTitleButton[i]);
					delay(100);
					ReShowButton(DebugTitleButton[i]);
					DebugSubFun(DebugButton2,DebugButton2Num+1,i);
					break;
	 case 1:
					ReShowButton(DebugTitleButton[i]);
					delay(100);
					ReShowButton(DebugTitleButton[i]);
					DebugSubFun(DebugButton3,DebugButton3Num+1,i);
					break;
	 case 2:
					ReShowButton(DebugTitleButton[i]);
					delay(100);
					ReShowButton(DebugTitleButton[i]);
					break;
	}
	if(i==DebugTitleButtonNum-1)
	{
	 break;
	}
 }
 ClearPort();
}
void DebugSubFun(BUTTON *subbutton,int buttonnum,int windownonum)
{
 int i;
 struct viewporttype vp;
 int height,width;
 char s[20];
 int oldFreqOutVal[FREQNUM];
 int DebugFreqNum=0;
 int oldDebugFreqNum=0;
 int add=1,add_i=0;
 unsigned int pressbutton;
 unsigned long time=0;
 setviewport(0,0,getmaxx(),getmaxy(),0);
 getviewsettings(&vp);
 width=vp.right-vp.left;
 height=vp.bottom-vp.top;
 setfillstyle(SOLID_FILL,BLUE);
 HideMouse();
 bar(0,0,width,height);
 setcolor(WHITE);
 rectangle(0,0,width,height);
 setviewport(0,0,639,24,0);
 getviewsettings(&vp);
 width=vp.right-vp.left;
 height=vp.bottom-vp.top;
 setcolor(WHITE);
 rectangle(0,0,width,height);
 ShowMouse();
 BmpDisplay("1.bmp",175,0,YELLOW);
 for(i=0;i<DebugWindow[windownonum].num;i++)
 {
	 MakeWindow((DebugWindow[windownonum].window)[i]);
 }
 setcolor(RED);
 setviewport( 0, 0, 639, 479, 0 );
 if(windownonum==1)
 {
	for(i=0;i<FREQNUM;i++)
	{
	 Show3dRect(FreqRect[i]);
	 sprintf(s,"%d",FreqOutVal[i]/327);
	 RectPrint(FreqRect[i],0,BLACK,s);
	 oldFreqOutVal[i]=FreqOutVal[i];
	}
	for(i=0;i<FREQNUM;i++)
	{
	 if(subbutton[i*2].PressFlag==1)
	 {
		DebugFreqNum=FreqOutVal[i]/327;
		oldDebugFreqNum=DebugFreqNum;
	 }
	}
 }
 setcolor(WHITE);
 settextjustify(CENTER_TEXT, BOTTOM_TEXT);
 setviewport( 0, 0, 639, 479, 0 );
 for(i=0;i<buttonnum;i++)
 {
	subbutton[i].DrawFlag=1;
 }
 ShowButton(subbutton,buttonnum);

 for(i=-1;i!=buttonnum-1;)
 {
	pressbutton=ReadMouse();
	i=ReturnButton(subbutton,buttonnum);
	if(i>=0&&i<buttonnum-1)
	{
	 switch(windownonum)
	 {
		case 0:
		{
			{
			 ReShowButton(subbutton[i]);
			 OutPortMem[subbutton[i].PortData->index].data=OutPortMem[(subbutton[i].PortData)->index].data^(subbutton[i].PortData)->PortData;
			 outportb(*(OutPortMem[subbutton[i].PortData->index].add),~OutPortMem[subbutton[i].PortData->index].data);
			}
		}
		break;
		case 1:
		{
		 if((i%2==0)&&i<FREQNUM*2)
		 {
			ReShowButton(subbutton[i]);
			if(subbutton[i].PressFlag==1)
			{
			 DebugFreqNum=FreqOutVal[i/2]/327;
			}
		 }
		 else
		 {
			if(i<FREQNUM*2)
			{
			 if(FreqOutVal[i/2]==0)
			 {
				if(subbutton[i%2==1?i+1:i-1].PressFlag==0)
				{
				 if(OutPortMem[subbutton[i].PortData->index].data&subbutton[i].PortData->PortData)
				 {
				 }
				 else
				 {
					ReShowButton(subbutton[i]);

					if(subbutton[1].PressFlag==1)
					OutPortMem[3].data|=0x18;
					else
					OutPortMem[3].data&=0x67;

					if(subbutton[3].PressFlag==1)
					OutPortMem[3].data|=0x60;
					else
					OutPortMem[3].data&=0x1f;

					outportb(0x283,~OutPortMem[3].data);

				 }
				}
			 }
			}
		 }
		}
		break;
	 }
	}
	if(windownonum==1)
	{
	 if(subbutton[buttonnum-1-1].PressFlag==1)
	 {
		i=buttonnum-1-1;
	 }
	 if(subbutton[buttonnum-1-2].PressFlag==1)
	 {
		i=buttonnum-1-2;
	 }
	 if(i==buttonnum-1-1||i==buttonnum-1-2)
	 {
		if(pressbutton!=0x0001)
		{
		 ReShowButton(subbutton[i]);
		 if(subbutton[i].PressFlag==0)
		 {
			add_i=0;
			add=1;
		 }
		}
		else
		{
		 if((DebugFreqNum!=50&&subbutton[buttonnum-1-2].PressFlag==1)
				 ||(DebugFreqNum!=0&&subbutton[buttonnum-1-1].PressFlag==1))
		 {
			if(GetTime()-time>ADDTIME)
			{
			 if(subbutton[buttonnum-1-1].PressFlag==1)
			 {
				DebugFreqNum-=add;
			 }
			 else
			 {
				DebugFreqNum+=add;
			 }
			 add_i+=add;
			 if(add_i/add==10&&add!=10)
			 {
				add=add_i;
			 }
			 if(subbutton[buttonnum-1-1].PressFlag==1)
			 {
				if(DebugFreqNum<=0)
				{
				 DebugFreqNum=0;
				}
			 }
			 else
			 {
				if(DebugFreqNum>50)
				{
				 DebugFreqNum=50;
				}
			 }
			 time=GetTime();
			}
		 }
		}
	 }
	 if(oldDebugFreqNum!=DebugFreqNum)
	 {
		oldDebugFreqNum=DebugFreqNum;
		for(int j=0;j<FREQNUM;j++)
		{
		 if(subbutton[j*3].PressFlag==1)
		 {
			FreqOutVal[j]=DebugFreqNum*327;
		 }
		}
	 }
	 for(int j=0;j<FREQNUM;j++)
	 {
		if(oldFreqOutVal[j]!=FreqOutVal[j])
		{
		 sprintf(s,"%d",FreqOutVal[j]/327);
		 RectPrint(FreqRect[j],0,BLACK,s);
		 oldFreqOutVal[j]=FreqOutVal[j];
		}
	 }
 }
	if(i==buttonnum-1)
	{
	 ReShowButton(subbutton[i]);
	 delay(100);
	 ReShowButton(subbutton[i]);
	}
	FreqFoun();
	ComOut();
 }
}

⌨️ 快捷键说明

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