スクリーンセーバーとして機能するプログラムを作成しました。つまり、キーボード ボタンが押されていない場合、10 秒後にすべてのコマンド プロンプト画面がクリアされます。要するに、タイマーとキーボードの割り込みをフックしました。しかし、プログラムに点滅する画面を表示させたい、つまり、コマンドプロンプトと空白の画面のすべてのテキストを交互に表示したい。しかし、私の現在の状況では、ボタンが押されていない場合、10 秒後に空白の画面が表示され続けます。クリアした画面だけでなく、クリアした画面とテキストデータを交互に点滅する画面を表示するようにプログラムを変更するにはどうすればよいですか。これが私のプログラムです:
#include <dos.h>
#include <conio.h>
void interrupt (*oldTimer)();
void interrupt (*oldKey)();
void interrupt newTimer();
void interrupt newKey();
char far *scr = (char far*) 0xB8000000;
int i, t=0, m=0;
char charscr[4000];
void main()
{
oldTimer=getvect(8);
oldKey=getvect(9);
setvect(8,newTimer);
setvect(9,newKey);
getch();
keep (0,1000);
}
void interrupt newTimer()
{
t++;
if((t>=182)&&(m==0))
{
for (i=0;i<4000;i++)
charscr [i]=*(scr+i);
for (i=0;i<=4000;i+=2)
{
*(scr+i)=0x20;
*(scr+i+1)=0x07;
}
t=0; m=1;
}
(*oldTimer)();
}
void interrupt newKey()
{
int w;
if(m==1)
{
for (w=0; w<4000;w++)
*(scr+w)=charscr[w];
m=0;
}
(*oldKey)();
}
私のインデントが悪くてすみません。このサイトでコードをインデントするのは非常に難しいと思います。