Пишем программу начальной загрузки компьютера

Заглянем за первый сектор

С новыми силами садимся в вагон и едем дальше.
Написанная нами программа просмотра объема памяти была втиснута в 512 байт только с ущемлением ее функциональности. Теперь попробуем преодолеть это ограничение. Что для этого требуется?
 
  • модернизировать программу записи файла на дискету так, чтобы записывать более длинные файлы. Ограничимся для простоты файлами, длина которых не превышает размера одной дорожки дискеты (512 х 18 = 9 Кбайт)
     
  • построить нашу программу так, чтобы первый сектор распознавался BIOS как загрузочный и содержал код, способный загрузить остальную часть программы.
Место для памятника
загрузочной дискете
Модернизированную программу записи файла на дискету и её исходные тексты с подробными комментариями берем здесь.

Теперь мы не ограничены длиной программы 512 байт. Поэтому переделаем нашу "полезную программку" определения объема памяти так, чтобы с помощью прерывания Int 15h (E820) можно было посмотреть конфигурацию блоков памяти. Программа теперь имеет длину более 1500 байт и будет занимать на дискете 4 сектора.
Текст программы берём здесь, ну а для ленивых, как обычно, готовый для записи на дискету файл лежит в архиве bins.zip

Замечание для тех, кто пользуется программой debug:  записанную программу теперь не удастся командой L загрузить с дискеты .

[Назад] [↑] [Вперёд]
Hosted by uCoz