彩色显示器点距的识别
一是用纸片剪出一个10×10mm的正方形孔,用透明胶带粘在屏幕中心,方孔的边要沿水平和垂直方向对齐。利用DOS中的ansi.com文件,将屏幕设置成黄色背景(红色、蓝色也可以),或利用其它软件中的红、黄、蓝中的任一色块。用放大镜在方孔内,沿垂直方向数出宽为10mm距离内一列色点的个数。利用公式:点距=10/色点的个数,就可求得彩显的点距。
二是用Turbo Pascal6.0或Turbo C++语言编写一个简单可执行的MONITOR.EXE程序。要求在黑底屏幕上水平画出5×30个黄色象素的线段,用放大镜数出这个线段内垂直的黄色点阵的列数。0.28、0.31、0.39彩显在这条线中表现出的黄色点阵的列数分别为34,43,47。那么对号入座,就可求得彩显的点距。
上述方法中,第一种方法简便。而第二种方法准确,在编程时加上一些文字、图形说明和声音效果,就成为一个很实用的小程序。笔者曾通过这两种方法,成功地识别多台彩色显示器的点距。附:Turbo Pascal程序,把它编译成MONITOR.EXE文件后,还必须把Turbo Pascal原程序中的EGAVGA.BGI和TRIP.CHR两文件与MONITOR.EXE放在同一目录中方可使用。
program Monitor;
uses crt,Graph;
var driver,mode:integer;
begin
driver:=Detect;
Mode:=0;
InitGraph(driver,mode,' ');
ClearDevice;
SetBKColor(1);
SetColor(15);
Line(0,0,639,0);
Line(0,0,0,479);
Line(0,479,639,479);
Line(639,0,639,479);
SetColor(14);
SetLineStyle(0,3,2);
OutTextXY(20,35,'HELLO');
SetColor(15);
SetTextStyle(0,0,7);
OutTextXY(30,80,'TEST COLOR');
OutTextXY(30,150,'MONITOR');
SetColor(12);
SetTextStyle(1,0,1);
OutTextXY(480,180,'Rersion 1.0');
SetColor(14);
SetFillStyle(2,9);
Bar(5,5,635,25);
Bar(5,420,635,470);
SetTextStyle(1,0,4);
OutTextXY(80,425,'WELCOME USE THIS PROGRAM !');
SetColor(14);
SetTextStyle(0,0,0);
OutTextXY(380,10,'Liu Yung by WuHu 1995.5.30');
SetBKColor(1);
SetColor(14);
SetFillStyle(1,10);
Bar(204,245,204,250);
Bar(200,285,208,290);
Bar(195,325,215,330);
Bar(190,365,219,370);
SetTextStyle(2,0,5);
OutTextXY(235,215,' .39 .31 .28 ');
SetColor(12);
OutTextXY(230,240,' 2 3 3 ');
OutTextXY(230,280,' 11 14 15 ');
OutTextXY(230,320,' 24 30 33 ');
OutTextXY(230,360,' 34 43 47 ');
Repeat
Delay(1000);
Sound(800);
Delay(200);
NoSound;
Until Keypressed;
CloseGraph
end.