Форум программистов, компьютерный форум CyberForum.ru

Проверьте программу! - C++

Восстановить пароль Регистрация
 
Tw1X
0 / 0 / 0
Регистрация: 24.05.2011
Сообщений: 16
30.03.2013, 16:57     Проверьте программу! #1
Нагел программу в сети... я в Си полный 0. Прошу её переделать на С++.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/*-------------------Управление клавиатурой---------------*/
/* Подключение стандартных заголовков */
#include <dos.h>
 
void interrupt (*old9)(); /* Старый обработчик прерывания 9h */
void interrupt new9();    /* Новый обработчик прерывания 9h  */
void *readvect (int in);  /* Чтение вектора                  */
void writevect (int in,void *h); /* Запись вектора           */
 
unsigned char F3_code=61; /* scan-code "F3"                  */
unsigned char key3_code=4;/* scan-code "3"                   */
char f=0;                 /* Флаг                            */
union REGS rr;
struct SREGS sr;
 
/*--------------------------------------------------------*/
void main()
{
  char string[80]; /* Буфер для ввода текста */
 
  textbackground(0);
  clrscr();
  textattr(0x0a);
  cprintf("---------------");
  cprintf("              Лабораторная работа N5              ");
  cprintf("---------------");
  cprintf("---------------");
  cprintf("              Управление клавиатурой              ");
  cprintf("---------------");
 
  old9=readvect(9);
  writevect(9,new9);
  textattr(0x0c);
  cprintf("\n\n\r\"горячая\" комбинация: ");
  textattr(0x0a);
  cprintf("Left Shift, Right Ctrl, F3\n\r");
  textattr(0x0b);
  cprintf("Клавиша, которая блокируется: ");
  textattr(0x0f);
  cprintf("3");
  textattr(0x07);
  cprintf("\r\nВводите строку символов>");
  scanf("%s",string);
  writevect(9,old9);
}
/*--------------------------------------------------------*/
/* Чтение вектора */
void *readvect(int in)
{
  rr.h.ah=0x35;
  rr.h.al=in;
  intdosx(&rr,&rr,&sr);
  return(MK_FP(sr.es,rr.x.bx));
}
/*--------------------------------------------------------*/
/* Запись вектора */
void writevect(int in,void *h)
{
  rr.h.ah=0x25;
  rr.h.al=in;
  sr.ds=FP_SEG(h);
  rr.x.dx=FP_OFF(h);
  intdosx(&rr,&rr,&sr);
}
/*--------------------------------------------------------*/
/* Новый обработчик 9-го прерыванмя */
void interrupt new9()
{
  unsigned char c,x,y;
  unsigned char byte17,byte18;
  unsigned char mask=0x02;
  unsigned char mask17=0x04;
  unsigned char mask18=0x01;
 
  byte17=peekb(0x40,0x17);
  byte18=peekb(0x40,0x18);
  if((inportb(0x60)==F3_code)&&(byte17&mask)&&
                        (byte17&mask17)&&(!(byte18&mask18)))
  {
   cputs("\7");
   x=wherex();
   y=wherey();
   gotoxy(55,3);
   textattr(0x1e);
   if(f==0)
   {
    f=1;
    cprintf("Клавиша \"3\" заблокирована ");
   }
   else
   {
    f=0;
    cprintf("Клавиша \"3\" разблокирована");
   }
   gotoxy(x,y);
   textattr(0x07);
   (*old9)();
  }
  if( (f==1) && (inportb(0x60)==key3_code) )
  {
   c=inportb(0x61);
   outportb(0x61,c|0x80);
   outportb(0x61,c);
   outportb(0x20,0x20);
  }
  else
   (*old9)();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 16:57     Проверьте программу!
Посмотрите здесь:

проверьте программу C++
проверьте, пожалуйста, программу C++
C++ Проверьте пожалуйста программу
Проверьте программу C++
C++ Проверьте кто-то программу!
Проверьте программу C++
Проверьте программу C++
C++ Проверьте программу

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru