секунд? Как притормозить машину так надолго?
Выпендрёж конечно, но хочется загрузочный экран а толку его рисовать если он мгновенно исчезнет?….
(Пишу вне ос. Поэтому системных прерываний нет.)
таймер же есть
что ты имел ввиду под системными прерываниями?
но есть биос и весь доступ к оборудованию, так что инициализируем hpet например или pit
* системные вызовы
У биоса есть 1Ch прерывание
Только таймером. Никаких пустых циклов
Спасибо. Через int 15h использовать таймер и на его время прервать выполнение комманд? Или на уровне портов будет лучше?
Перехватываешь int 08h, он тикает каждые 55 мс, считаешь тики. Или просто в цикле греешь процессор, проверяя 0000:046c в цикле. Там такой же счётчик, но уже готовый. Никаких портов не нужно, всё уже настроено и работает.
это из рпзряда вредных советов
Из защищённого режима Биос не повызывать
Если в защищённом режиме, то есть ось, если есть ось, то можно откопать сишные библиотеки с его Delay или у самой винды что-то подобное найти
Не всё, там Биос не повызываешь, а сишные библиотеки так или иначе полагаются на системные вызовы, которые дёргают драйвера, фактически тебе надо реализовать драйвер
стандартной либы при написании загрузчика по сути НЕТ, то есть надо как-то самому отсчитывать время, проще всего через pit или hpet
Обсуждают сегодня