С для профессиональных программистов



         

Прикладная часть TSR-программы. - часть 2


make_window(1, " Colculator ", 8, 20, 12, 60, BORDER);

/* использовать window() для активации созданного окна */

switch(which)

case 60:

notepad();

break;

case 61:

calc();

break;

Вы можете сразу вводить в ЭВМ представленную здесь программу. После того, как вы ее запустите, клавишей F2 будет выбираться программа "записная книжка", а клавишей F3 - "калькулятор".

/* Программа, остающаяся резидентной после завершения и

использующая прерывание 9 от клавиатуры.

*/

#include "dos.h "

#include "stdlib.h "

#include "ctype.h "

#define BORDER 1

#define ESC 27

#define MAX_FRAME 2

#define REV_VID 0x70

#define NORM_VID 7

#define BKSP 8

void interrupt tsr_ap();

void save_video(), restore_video();

void write_string(), write_char();

void display_header(), draw_border();

void window_gets();

void window_cleol(), window();

void notepad(), calc();

char far *vid_mem;

char wp[4000]; /* буфер для хранения текущего

содержимого экрана */

struct window_trame

int startx, endx, starty, endy;

int curx, cury; /* текущее положение курсора в окне */

unsigned char *p; /* указатель в буфере */

char *header; /* сообщение заголовка */

int border; /* включение/отключение бордюра */

int active; /* выводить/не выводить на экран */

 frame [MAX_FRAME];

char in[80], out[80];

/* busy установлена в 1,когда программа активна, иначе - в 0 */

char busy = 0;

main()

struct adaress

char far *p;

temp;

/* указатель на вектор прерывания 9 */

struct address far *addr = (struct address far *) 36;

/* указатель на вектор прерывания 60 */

struct address far *int9 = (struct address far *) 240;

/* Поместить адрес программы обработки прерывания от клавиатуры

по адресу прерывания 60. Если вектора прерываний 60 и 61

содержат одинаковые адреса, то TSR-программа не была запущена. */

if (int9->p == (int9+1)->p)

int9->p = addr->p;

addr->p = (char far *) tsr_ap;

printf ("tsr installed - F2 for note pad, F3 for calculator");




Содержание  Назад  Вперед