?? debug.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 + -