📄 pci.cpp
字号:
#include<stdio.h>
#include<dos.h>
#include<process.h>
#include<conio.h>
#define addc 0cf8h
int key;//vary
void point()//show PGUP and esc
{
gotoxy(1,22);
cprintf("enter PGUP key to go!");
gotoxy(1,23);
cprintf("enter ESC exit");
}
void scanvalue() //scan machine's device
{
unsigned long addr1,addr2,busno,devno,funno;
unsigned long data1,data2,data3,data4;
int i,x,j;
int key;
int totalNo=0;
for(busno=0;busno<256;busno++)
for(devno=0;devno<32;devno++)
{
for(funno=0;funno<8;funno++)
{
addr1=0x80000000+65536*busno+2048*devno+256*funno;
window(1,1,80,25);
gotoxy(4,5);
x=5;
for(j=0;j<64;j++)
{
addr2=addr1+j*4;
asm mov eax,addr2
asm mov dx,addc
asm out dx,eax
if(j%4==0)gotoxy(4,x++);
textcolor(YELLOW);
data1=inportb(0x0cfc);
data2=inportb(0x0cfd);
data3=inportb(0x0cfe);
data4=inportb(0x0cff);
if((data1==0xff)&(data2==0xff)) break;
cprintf("%4.2X",data1);
cprintf("%4.2X",data2);
cprintf("%4.2X",data3);
cprintf("%4.2X",data4);
}
loop: key=inport(0x60);
asm{mov ax,key
and ax,0xff
mov key,ax}
switch(key)
{ case 0x0001: exit(0);
case 0x0049: break;
default: goto loop;
}
if((data1==0xff)&(data2)==0xff)
continue;
gotoxy(1,3);
cprintf("busno:");
cprintf("%.2X",busno);
cprintf(" devno:");
cprintf("%.2X",devno);
cprintf(" funno:");
cprintf("%.2X",funno);
cprintf(" totaL:");
totalNo=totalNo+1;
textcolor(WHITE);
cprintf("%d",totalNo);
delay(200);
point();
} }}
void title()//show structure
{
int i;
clrscr();
textcolor(YELLOW);
textbackground(BLACK);
cprintf(" PCI red make by jackexu ");
printf("\n") ;
textcolor(RED);
textbackground(WHITE);
cprintf("byte");
printf("\n");
textcolor(GREEN);
textbackground(BLACK);
cprintf("busno:00");
gotoxy(12,3);
cprintf("devno:00");
gotoxy(23,3);
cprintf("funno:00");
printf("\n");
textbackground(BLACK);
textcolor(YELLOW);
printf(" ");
for(i=0;i<16;i++)
{ textcolor(WHITE);
cprintf("%4.2X",i);
}
printf("\n");
for(i=0;i<16;i++)
{ textcolor(WHITE);
cprintf("%X0",i);
printf("\n");
}
point();
}
main()
{
title();
scanvalue();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -