<?xml version="1.0" encoding="UTF-8"?><oembed><type>video</type><version>1.0</version><html>&lt;iframe src=&quot;https://www.loom.com/embed/05b1112e1a494481a2d8ea7f1966f3f9&quot; frameborder=&quot;0&quot; width=&quot;1670&quot; height=&quot;1252&quot; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;</html><height>1252</height><width>1670</width><provider_name>Loom</provider_name><provider_url>https://www.loom.com</provider_url><thumbnail_height>1252</thumbnail_height><thumbnail_width>1670</thumbnail_width><thumbnail_url>https://cdn.loom.com/sessions/thumbnails/05b1112e1a494481a2d8ea7f1966f3f9-b7136a681657c970.gif</thumbnail_url><duration>168.448</duration><title>Переривання BIOS і DOS, меню та хук таймера</title><description>Вітаю, це лабораторія №7 про переривання BIOS і DOS. Спочатку я очищаю екран через Int10H, далі виводжу меню з рядка zistack.obp.plus4 через printd і Int21H з завершенням символом $. Потім читаю клавішу блокуючо через Int16H, порівнюю AL з 1, 2, 3, Q, і для кожного кольору запускаю свій цикл, використовую LODCB для читання файла і підкладки $. Якщо не треба виходити, я викликаю int.cth кілька разів. Другий файл hook.acm перехоплює таймер Int1Ch, запускає обробник 18 разів на секунду, зберігає оригінальний вектор AVD, записує свої значення в 0070H і 0072H та завершує через IRET.</description></oembed>