Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

11н Супрунов М.Ю.html

Работа добавлена на сайт samzan.net: 2016-01-17

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 22.5.2024

Министерство образования и науки, молодежи и спорта Украины

Донецкий национальный технический университет

Кафедра Компьютерной инженерии

Отчет

по курсу СПО

по лабораторной работе №6

Выполнил:

                                                                                                   ст. гр. КС-11н

Супрунов М.Ю.

Проверила:

Чередникова О. Ю.

Донецк 2013

24.  Разработать на компьютере программу, с  поддержкой  мыши

для графического режима дисплея. Программа должна обеспечить:

 - Нормальное и аварийное завершение;

 - Выдачу некоторых справочных данных

 - По запросу пользователя определять характеристику типов  Шин  Передачи  Данных  и  адреса имеющихся последовательных и параллельных портов.

2.Листинг программы

#include<dos.h>

#include<stdio.h>

#include<conio.h>

#include<process.h>

#include<graphics.h>

#define CONFADD 0x0CF8

#define CONFDATA 0x0CFC

const int w = 250;

 int h = 40;

 int x0 = 400;

 int y0 = 400;

  int x1 = 100;

  int y1 = 100;

  int x2 = 300;

  int y2 = 150;

  int x3 = 100;

 int y3 = 200;

 int xr = 300;

  int yr = 250;

  int ar = 200;

//-------------------------

typedef struct _MOUSE_STATE_ {

unsigned int bottoms;

unsigned int x;

unsigned int y;

} MOUSE_STATE;

//-------------------------

union REGS r;

//-------------------------

int buses() {

int i,j,k, vendor, device;

unsigned char class1, subclass1;

for (i=0; i<256; i++) { //bus

 for (j=0; j<32; j++) { //device

  k = j*8;

  asm {

    mov eax, 0

    mov al, 0x80

    shl eax, 8

    mov al, i

    shl eax, 8

    mov al, k

    shl eax, 8

    mov al, 0

    mov dx, CONFADD

    out dx, eax

    mov dx, CONFDATA

    in eax, dx

    mov vendor, ax

    shr eax, 16

    mov device, ax

    }

  if (vendor!=0xFFFF && device!=0xFFFF) {

   asm {

     mov eax, 0

     mov ah, 0x80

//      shl eax, 8

     mov al, i

     shl eax, 16

     mov ah, k

//      shl eax, 8

     mov al, 8

     mov dx, CONFADD

     out dx, eax

     mov dx, CONFDATA

     in  ax, dx

     mov class1, al

//      shr eax, 16

     mov subclass1, ah

     }

   // decription

 printf("\nBus: %d;",i);

   printf("\tDevice: %d;", j);

   printf("\tType: ");

   printf("0x%X (", class1);

   switch(class1) {

    case 1:printf("SCSI Mass Storage Controller"); break;

    case 2:printf("Network Card"); break;

    case 3:printf("Vga Display Adapter"); break;

    case 6: switch (subclass1) {

         case 0: printf("Host Processor Bridge"); break;

         case 1: printf("PCI to ISA Bridge"); break;

         case 4: printf("PCI to PCI Bridge"); break;

         } break;

    default: printf("unknown type");

    }

   printf(");\n");

   printf("Vendor: ");

   printf("0x%X (", vendor);

   switch(vendor) {

    case 0x1023: printf("Trident"); break;

    case 0x104C: printf("Texas Instruments"); break;

    case 0x11F6: printf("Compex"); break;

    case 0x5553: printf("S3"); break;

    case 0x8086: printf("Intel"); break;

    default: printf("unknown vendor");

    }

   printf(");");

   printf("\tName: ");

   printf("0x%X (", device);

   switch(device) {

    case 0x0194: printf("82C194 PCI to PCMCIA Controller"); break;

    case 0x0598: printf("TMS380C2X Compressor Inreface"); break;

    case 0x0112: printf("ReadyLink ENET100-VG4 Ethernet Adapter"); break;

    case 0x5631: printf("325 ViRGE GUI Accelerator"); break;

    case 0x0122: printf("82437FX Triton FX Chipset, Pentium to PCI Bridge"); break;

    default: printf("unknown name");

    }

   printf(")\n\n");

   }

  }

 }

return 0;

};

//--------------

int ports() {

printf("\n  Адреса COM портов:\n");

printf("    COM1: 0x%X \n", peek(0x0040, 0x0000));

printf("    COM2: 0x%X \n", peek(0x0040, 0x0002));

printf("    COM3: 0x%X \n", peek(0x0040, 0x0004));

printf("    COM4: 0x%X \n\n", peek(0x0040, 0x0006));

 printf("  Адреса LPT портов:\n");

 printf("    LPT1: 0x%X \n", peek(0x0040, 0x0008));

printf("    LPT2: 0x%X \n", peek(0x0040, 0x000A));

printf("    LPT3: 0x%X \n", peek(0x0040, 0x000C));

printf("    LPT4: 0x%X \n", peek(0x0040, 0x000E));

}

//---------------

int init_gr() {

int gd, gm, err;

gd = VGA;

gm = VGAHI;

initgraph(&gd, &gm, "");

err = graphresult();

if (err!=grOk) {

 printf("Graphic mode initialization error: %s", grapherrormsg(err));

 getch(); exit(1);

 }

}

//-------------------------

int button(int x, int y, int width, int height,

  char* line1, char* line2) {

setcolor(15);

setfillstyle(1,15);

bar(x, y, x+width, y+height);

setcolor(1);

outtextxy(x+15, y+5, line1);

outtextxy(x+15, y+15, line2);

return 0;

}

//---------------------------

int button1(int x, int y, int width, int height,

  char* line1, char* line2) {

setcolor(15);

setfillstyle(1,LIGHTGRAY);

bar(x, y, x+width, y+height);

setcolor(1);

outtextxy(x+16, y+6, line1);

outtextxy(x+16, y+16, line2);

return 0;

}

//---------------------------

int stat(int x, int y, int t) {

 gotoxy(70,1);  printf("X: %u \n", x);

 gotoxy(70,2);  printf("Y: %u \n", y);

 gotoxy(70,3);

 printf("B: ");

 if (t&1) printf("L"); else printf(" ");

if (t&2) printf("R"); else printf(" ");

 return 0;

}

//-------------------------

int mouse_init(int *nbottoms) {

r.x.ax = 0;

int86(0x33, &r, &r);

*nbottoms = r.x.bx;

return r.x.ax;

}

//-------------------------

int mouse_escape() {

r.x.ax = 0x0021;

int86(0x33, &r, &r);

}

//-------------------------

int mouse_show() {

r.x.ax = 1;

int86(0x33, &r, &r);

}

//-------------------------

int mouse_hide() {

r.x.ax = 2;

int86(0x33, &r, &r);

}

//-------------------------

int mouse_query(MOUSE_STATE *state, int bottom) {

r.x.ax = 0x0003;

r.x.bx = bottom;

int86(0x33, &r, &r);

state->bottoms = r.x.bx&0x0003;

state->x = r.x.cx;

state->y = r.x.dx;

return (state->bottoms);

}

//-------------------------

int mouse_setcurpos(int x, int y) {

r.x.ax = 4;

r.x.cx = x*8;

r.x.dx = y*8;

int86(0x33, &r, &r);

}

//-------------------------

int main(void) {

int botm, x, y, t, mode=2,i;

char Flag=1;

MOUSE_STATE *st;

clrscr();

 

if (!mouse_init(&botm)) {

printf("MOUSE driver not found!");

return 0;

}

mouse_escape();

mouse_setcurpos(1,1);

init_gr();

mouse_show();

for (;;) {

 t = mouse_query(st, botm);

 stat(st->x, st->y, t);

 x = st->x;

 y = st->y;

if (mode==0) { //buses

  if (Flag) {

   clrscr();

   cleardevice();

   mouse_show();

   buses();

   button(x0,y0,w,h,"Возврат в ", "   меню");

   Flag = 0;

   }

 if ((x>x0)&&(x<(x0+w))&&(y>y0)&&(y<(y0+h))&&(t&1)) {

   mouse_hide();

   mode = 2;

   Flag = 1;

  }

  }

//************************

if (mode==1) { //ports

  if (Flag) {

   clrscr();

   cleardevice();

   mouse_show();

   ports();

   button(x0,y0,w,h,"Возврат в ", "   меню");

   Flag = 0;

   }

 if ((x>x0)&&(x<(x0+w))&&(y>y0)&&(y<(y0+h))&&(t&1)) {

  mouse_hide();

  mode = 2;

  Flag = 1;

  }

  }

//********************

if (mode==2) { // menu

 if (Flag) {

 setbkcolor(8);

  cleardevice();

  mouse_show();

   setcolor(RED);

line(0,80,80,0); line(0,90,90,0); line(0,100,100,0); line(0,110,110,0); line(0,120,120,0); line(0,130,130,0); line(0,140,140,0);

line(0,150,150,0); line(0,160,160,0); line(0,160,160,0); line(0,170,170,0); line(0,180,180,0); line(0,190,190,0); line(0,200,200,0);

 setcolor(DARKGRAY);

  button(x1,y1,w,h,"    Характеристика шин", "передачи данных");

  button(x2,y2,w,h,"    Адреса COM", "и LPT портов");

  button(x3,y3,w,h,"    Выход", "");

 setcolor(0);

 setfillstyle(1,4);//                                   \                

 bar(xr, yr, xr+w, yr+h); //        | Кнопка аварийного завершения

 setcolor(0);//           |

 outtextxy(xr+15, yr+10, "Аварийное завершение");//    /

  Flag = 0;

  }

 if ((x>x1)&&(x<(x1+w))&&(y>y1)&&(y<(y1+h))&&(t&1)) {

   mouse_hide();

   mode = 0;

   Flag = 1;

 button1(x1,y1,w,h,"    Характеристика шин", "передачи данных");

 delay(250);

   }

 if ((x>x2)&&(x<(x2+w))&&(y>y2)&&(y<(y2+h))&&(t&1)) {

   mouse_hide();

   mode = 1;

   Flag = 1;

 button1(x2,y2,w,h,"    Адреса COM", "и LPT портов");

 delay(250);

   }

 if ((x>x3)&&(x<(x3+w))&&(y>y3)&&(y<(y3+h))&&(t&1))

 {button1(x3,y3,w,h,"    Выход", "");

  delay(300);

 break;}

 if ((x>xr)&&(x<(xr+w))&&(y>yr)&&(y<(yr+h))) exit(1);

 }

}

mouse_hide();

closegraph();

return 0;}




1. Тема- Мовна організація художнього тексту Мета- Поглибити й розширити знання про мову художньої літерату
2. ч блАгам благовествование благовествовать благовествую Благовещение благоволить благоволю благов
3. Культурные нормы
4. Действие происходит в городе
5. реферату- Співвідношення попиту та пропозиції і ціноутворенняРозділ- Економічна теорія Співвідношення поп
6. а Лазаренко Дмитрий Альфа~ 1 место Семин Никита ДФК ПГУПС ~ 2 место Комаров Роман ДФК ПГУПС ~ 3 место
7. БЕЛОРУССКАЯ ГОСУДАРСТВЕННАЯ СЕЛЬСКОХОЗЯЙСТВЕННАЯ АКАДЕМИЯ ТЕХНОЛОГИЯ ВОЗДЕЛ
8. Силовое электрооборудование корнеплодохранилища ёмкостью 500 тон1
9. Тема 1 Предмет структура и методы психологии
10. Реферат- Система искусств в структуре мировых религий и проблема художественно-религиозной целостности
11. Возникновение устойчивой идеи Бога или богов
12. Контрольная работа- Розробка мікроконтролерного пристрою на базі МК РІС 16С5
13. мозговой травмой и другими причинами
14. Ростелеком
15. Курсовая работа на тему- Поиск неисправностей Вариант 23 Студент- Скрипак
16. Опека и попечительство как вид социальной заботы государства
17. Кадровое планирование представляет комплексную задачу включающую большое число независимых переменных
18.  Социологический инструмент представляющий собой структурированную систему вопросов логически связанных
19. Тема 1ФИНАНСОВОХОЗЯЙСТВЕННЫЙКОНТРОЛЬ ЕГО ПРЕДМЕТ И МЕТОД [1
20. Болотоный тип почвооброзования