DOS-extender для компилятора Borland C++
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: бесплатные тесты бесплатно, реферат принципы
| Добавил(а) на сайт: Шаломенцев.
Предыдущая страница реферата | 16 17 18 19 20 21 22 23 24 25 26 | Следующая страница реферата
asm sti
if (delay_cnt1 > 150000l)
{
asm cli
StepLabel(&Label1, &Label2, Buf);
if (flipflop1)
{
vi_print(5, 16, Buf, 0x1f);
sem_clear(1);
}
else
{
vi_print(5, 16, Buf, 0x1f);
sem_set(1);
}
flipflop1 ^= 1;
delay_cnt1 = 0l;
asm sti
}
delay_cnt1++;
}
}
word flipflop = 0;
long delay_cnt = 0l;
// Эта задача также периодически выводит на экран
// с меньшим периодом. Кроме того, эта задача
// работает только тогда, когда установлен
// семафор номер 1.
void flipflop_task(void)
{
char Buf[B_SIZE + 1]; // Буфер вывода задачи 2
static TLabel Label1;
static TLabel Label2;
memset(Buf, ' ', B_SIZE);
Buf[B_SIZE] = 0;
Label1.Pos = 0;
Label1.Dir = 1;
Buf[Label1.Pos] = '/';
Label2.Pos = B_SIZE;
Label2.Dir = 0;
Buf[Label2.Pos] = '';
vi_print(30, 12, "Работает задача 0:", 0x7f);
while(1)
{
asm sti
if (delay_cnt > 20000l )
{
sem_wait(1); // ожидаем установки семафора
asm cli
StepLabel(&Label1, &Label2, Buf);
vi_print(5, 13, Buf, 0x1f);
flipflop ^= 1;
delay_cnt = 0l;
asm sti
}
delay_cnt++;
}
}
word keyb_code;
extern word keyb_status;
// Эта задача вводит символы с клавиатуры
// и отображает скан-коды нажатых клавиш
// и состояние переключающих клавиш на экране.
// Если нажимается клавиша ESC, задача
// устанавливает семафор номер 0.
// Работающая параллельно главная задача
// ожидает установку этого семафора. Как только
// семафор 0 окажется установлен, главная задача
// завершает свою работу и программа возвращает
// процессор в реальный режим, затем передаёт
// управление MS-DOS.
void keyb_task(void)
{
vi_print(32, 20, " Key code: .... ", 0x20);
vi_print(32, 21, " Key status: .... ", 0x20);
while(1)
{
keyb_code = kb_getch();
vi_put_word(45, 20, keyb_code, 0x4f);
vi_put_word(45, 21, keyb_status, 0x4f);
if ((keyb_code & 0x00ff) == 1)
sem_set(0);
}
}
4.5 Файл SEMAPHOR.C. Содержит процедуры для работы с семафорами.
#include <stdio.h>
Рекомендуем скачать другие рефераты по теме: реферат основные, диплом купить.
Категории:
Предыдущая страница реферата | 16 17 18 19 20 21 22 23 24 25 26 | Следующая страница реферата