{"type":"video","version":"1.0","html":"<iframe src=\"https://www.loom.com/embed/05b1112e1a494481a2d8ea7f1966f3f9\" frameborder=\"0\" width=\"1670\" height=\"1252\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>","height":1252,"width":1670,"provider_name":"Loom","provider_url":"https://www.loom.com","thumbnail_height":1252,"thumbnail_width":1670,"thumbnail_url":"https://cdn.loom.com/sessions/thumbnails/05b1112e1a494481a2d8ea7f1966f3f9-b7136a681657c970.gif","duration":168.448,"title":"Переривання BIOS і DOS, меню та хук таймера","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."}