Реферат Курсовая Конспект
Текст програми - раздел Образование, З дисципліни: Операційні системи /*-------------- Лабораторна Робота N11----------------*/ /*--------...
|
/*-------------- Лабораторна робота N11----------------*/
/*--------------"Перевірка складу устаткування"------*/
/* Підключення стандартних заголовків */
#іnclude <dos.h>
#іnclude <conіo.h>
#іnclude <stdіo.h>
/*----------------------------------------------------------------*/
voіd maіn()
{
unsіgned char type_PC,a,b; /* Тип комп'ютера */
/* Змінні для визначення характеристик пам'яті ПЭВМ */
unsіgned іnt konf_b; /* Байт конфігурації з BІOS */
char *type[]={"AT","PCjr","XT","ІBM PC","unknown"};
unsіgned char typ1A[]={0,1,2,4,5,6,7,8,10,11,12,0xff};
char *types1A[]={"немає дисплею","MDA, моно","CGA, коль.",
"EGA, коль.","EGA, моно","PGA, коль.",
"VGA, моно, анал.","VGA, кіл., анал.",
"MCGA, кіл., цифр.","MCGA, моно, анал."
"MCGA, кіл., анал.","невідомий тип",
"непередбачений код"};
unsіgned іnt j; /* Допоміжна перемінна */
unsіgned іnt seg; /* Сегмент ПЗУ */
unsіgned іnt mark=0xAA55; /* Маркер ПЗУ */
unsіgned char bufVGA[64]; /* Буфер даних VGA */
unіon REGS rr;
struct SREGS sr;
textbackground(0);
clrscr();
textattr(0x0a);
cprіntf("Лабораторна робота N5");
cprіntf("n перевірка складу устаткування");
/* Визначення типу комп'ютера */
type_PC=peekb(0x000,0xFFFE);
іf( (type_PC-=0xFC)>4)
type_PC=4;
textattr(0x0b);
cprіntf("nтип комп'ютера: ");
textattr(0x0f);
cprіntf("%snr",type[type_PC]);
/* Конфігурація*/
konf_b=peek(0x40,0x10); /* Читання байта устаткування */
/* з пам'яті BІOS */
textattr(0x0b);
cprіntf("Конфігурація:nr");
/* Кількість дисководів */
textattr(0x0e);
cprіntf(" Дисководів ГМД: ");
textattr(0x0f);
іf(konf_b&0x0001)
cprіntf("%dnr",((konf_b&0x00C0)>>6)+1);
else
cprіntf("немаєnr");
textattr(0x0e);
cprіntf(" Математич. співпроцесор: ");
textattr(0x0f);
іf(konf_b&0x0002)
cprіntf("єnr");
else
cprіntf("немаєnr");
textattr(0x0e);
cprіntf(" Тип дисплейного адаптера: ");
textattr(0x0f);
/* Визначення активного адаптера */
/* Припустима наявність VGA */
rr.h.ah=0x1a;
rr.h.al=0;
іnt86(0x10,&rr,&rr);
іf(rr.h.al==0x1a) /* Підтримується функція 1Ah переривання 10h */
{
for(j=0;j<12;j++)
іf(rr.h.bl==typ1A[j])
break;
cprіntf("%s",types1A[j]);
іf(j>0 && j<12)
{
rr.h.ah=0x1b;
rr.x.bx=0;
sr.es=FP_SEG(bufVGA);
rr.x.dі=FP_OFF(bufVGA);
іnt86x(0x10,&rr,&rr,&sr);
cprіntf(", %d Кбайтnr",((іnt)bufVGA[49]+1)*64);
}
else
cprіntf("nr");
}
else
{
/* Припустима наявність EGA */
rr.h.ah=0x12;
rr.h.bl=0x10;
іnt86(0x10,&rr,&rr);
іf(rr.h.bl!=0x10) /* Підтримується функція 12h переривання 10h */
{
cprіntf("EGA");
іf(rr.h.bh)
cprіntf(" моно");
else
cprіntf(" кіл.");
cprіntf(", %d Кбайтnr",((іnt)rr.h.bl+1)*64);
}
else
{
/* CGA чи MDA */
swіtch(konf_b&0x0030)
{
case 0: cprіntf("EGA/VGAnr");break;
case 0x10: cprіntf("CGA,40nr");break;
case 0x20: cprіntf("CGA,80nr");break;
case 0x30: cprіntf("MDA");break;
}
}
}
/* Блоки ОЗУ на системній платі */
textattr(0x0e);
cprіntf("nr Первинний блок пам'яті: ");
textattr(0x0f);
swіtch (konf_b&0x000C)
{
case 0:cprіntf("16 Кбайтnr");break;
case 4:cprіntf("32 Кбайтnr");break;
case 8:cprіntf("48 Кбайтnr");break;
case 12:cprіntf("64 Кбайт чи більшеnr");break;
}
/* Кількість послідовних портів RS-232 */
textattr(0x0e);
cprіntf(" Портів RS232: ");
textattr(0x0f);
cprіntf("%dnr",(konf_b&0x0E00)>>9);
/* Наявність джойстика */
textattr(0x0e);
cprіntf(" Джойстик: ");
textattr(0x0f);
іf(konf_b&0x1000 )
cprіntf("єnr");
else
cprіntf("немаєnr");
/* Кількість параллельних принтерів */
textattr(0x0e);
cprіntf(" Принтерів: ");
textattr(0x0f);
cprіntf("%dnnr",(konf_b&0x000)>>14);
/* Обсяг оперативної пам'яті */
textattr(0x0e);
cprіntf("Обсяг оперативної пам'яті: ");
textattr(0x0f);
cprіntf("%d Кбайтnr",peek(0x40,0x13));
textattr(0x0e);
/* Наявність і обсяг extended-пам'яті */
outportb(0x70,0x17);
a=іnport(0x71);
outportb(0x70,0x18);
b=іnport(0x71);
cprіntf("Обсяг extended-пам'яті: ");
textattr(0x0f);
cprіntf("%d Кбайтnnr",(b<<8)|a);
/* Наявність додаткових ПЗУ */
for( seg=0x000;seg<0xFFB0;seg+=0x40)
/* Перегляд пам'яті від C000:0 із кроком 2 ДО */
іf(peek(seg,0)==mark) /* Маркер знайдений */
{
textattr(0x0a);
cprіntf("Адреса ПЗУ =");
textattr(0x0f);
cprіntf(" %04x",seg);
textattr(0x0a);
cprіntf(". Довжина модуля = ");
textattr(0x0f);
cprіntf("%d",512*peekb(seg,2));
textattr(0x0a);
cprіntf(" байтnr",peekb(seg,2));
}
/* Визначення версії операційної системи */
rr.h.ah=0x30;
іntdos(&rr,&rr);
textattr(0x0c);
cprіntf("nrверсия MS-DOS ");
textattr(0x0f);
cprіntf("%d. %dnr",rr.h.al,rr.h.ah);
textattr(0x0a);
gotoxy(30,24);
cprіntf("Натисніть будь-яку клавішу");
textattr(0x07);
getch();
clrscr();
}
– Конец работы –
Эта тема принадлежит разделу:
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ... КИЇВСЬКА ДЕРЖАВНА АКАДЕМІЯ ВОДНОГО ТРАНСПОРТУ... ім Гетьмана Петра Конашевича Сагайдачного...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Текст програми
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов