ASM 8086 с использованием RTC - PullRequest
0 голосов
/ 18 мая 2018

Я не очень опытен в asm x8086 для DOSBox, и я программирую игру connect4.Я сделал весь код, и он работает.Я хочу реализовать «таймер», чтобы у каждого игрока было 20 секунд, чтобы решить свой ход. Если это время произойдет, то этот шаг выполняется программой случайным образом.

Я знаю, что должен использовать RTC, но я непонятия не имею, как это запрограммировать.Как я могу это сделать?

Спасибо за совет: мне это нужно как можно скорее, как и для моего университета.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Еще пара опций вместо перехвата таймера:

1) Счетчик тиков BIOS является DWORD в BDA при 40: 6c.Вы можете прочитать его прямо из цикла ожидания и подождать, пока он увеличится на 364.

2) Int 1Ah реализует несколько служб таймера, которые могут оказаться полезными.

0 голосов
/ 18 мая 2018

BIOS устанавливает прерывание 18,18 Гц.Я не знаю, настраивает ли это DOSBox таким образом, но это кажется вероятным.Вы можете перехватить это, изменив вектор прерывания для прерывания 1Ch, чтобы оно указывало на ваш обработчик.Перед изменением вектора сохраните предыдущий вектор и затем перейдите к нему в конце вашего обработчика.После того, как вы сосчитали до 364, прошли нужные 20 секунд.

...