Использование эмулятора
Если вы хотите загрузить ваш код в эмулятор, просто щелкните кнопку "
Emulate"
.
Но вы можете также использовать эмулятор для загрузки исполняемого файла
даже если вы не имеете его исходного кода. Выберите "
Show Emulator" из
меню "
Emulator".
Попытайтесь загрузить файлы из папки "
MyBuild" folder. Если в этой папке
нет файлов, вернитесь в редактор исходного кода, выберите пункт
Samples
из меню
File, загрузите какой-либо пример, откомпилируйте его и
затем загрузите в эмулятор:
Кнопка [
Single Step - пошаговое выполнение] выполняет команды одну за одной, останавливая
программу после выполнения каждой команды.
Кнопка [
Run - Выполнить] выполняет команды одну за одной с задержкой между командами,
установленной при помощи
step delay.
Двойной щелчок по регистру открывает "
Extended Viewer - расширенный просмотрщик"
со значением этого регистра, преобразованным во все возможные формы. Вы
можете изменить значение регистра непосредственно в этом окне.
Двойной щелчок по строке в окне памяти открывает "
Extended Viewer"
со значением (значение имеет размер СЛОВА), загруженным из окна памяти
из выбранного местоположения. Меньший значащий байт находится в младшем
адресе: МЛАДШИЙ БАЙТ загружен из выбранной позиции, а СТАРШИЙ БАЙТ
загружен из следующего адреса памяти. Вы можете изменять значение памяти
непосредственно в окне "
Extended Viewer".
Вы можете изменять значения регистров во время выполнения программы,
печатая новые значения вместо существующих.
Кнопка [
Flags - Флаги] позволяет вам просматривать и изменять
значения флагов во время выполнения.
Виртуальные устройства
Эмулятор поддерживает до 4-х виртуальных дисководов. По умолчанию
имеется файл
FLOPPY_0, которяй является образом реальной дискеты
(размер этого файла равен точно 1474560 байтов).
Чтобы добавить дисковод, выберите пункт
[Create new floppy drive - создать новый дисковод]
из меню
[Virtual Drive - Виртуальный Привод].
Каждый раз, когда вы добавляете дисковод, эмулятор создает файлы
FLOPPY_1,
FLOPPY_2 и
FLOPPY_3.
Созданные дискеты являются образами пустой IBM/MS-DOS-форматированной дискеты.
Только
4 дисковода будут поддерживаться (0..3)!
Чтобы
удалить дисковод, вы должны закрыть эмулятор, удалить
соответствующий файл вручную и перезапустить эмулятор.
Вы можете определить количество имеющихся дисководов, используя
прерывание
INT 11h. Эта функция возвращает в регистр
AX
список оборудования BIOS. Биты 7 и 6 определяют количество дисководов (минус 1):
Биты 7-6 в AX:
00 один дисковод.
01 два дисковода.
10 три дисковода.
11 четыре дисковода.
Эмулятор начинает подсчет имеющихся дисководов с первого, в том случае,
если файл
FLOPPY_1 не существует, он останавливает проверку и
игнорирует файлы
FLOPPY_2 и
FLOPPY_3.
Чтобы читать и записывать данные с дисковода, вы можете использовать
функцию
INT 13h, см.
список поддерживаемых прерываний.
Что требуется для записи вашей собственной операционной системы?
Вы можете записать загрузочный сектор виртуальной дискеты
через меню эмулятора:
[Virtual Drive] -> [Write 512 bytes at 7C00 to Boot Sector]
Сначала вы должны откомпилировать ".boot-файл" и загрузить
его в эмулятор (см. "micro-os_loader.asm" и "micro-os_kernel.asm"
в "Samples").
Затем выберите [Virtual Drive] -> [Boot from Floppy] для загрузки
эмулятора с виртуального дисковода.
Затем, если вам интересно, вы можете записать виртуальную дискету на
реальную дискету и загрузить с нее ваш компьютер. Я рекомендую
использовать "RawWrite for Windows" из:
http://uranus.it.swin.edu.au/~jn/linux/rawwrite.htm
(учтите, что "micro-os_loader.asm" не использует
совместимый с MS-DOS загрузочный сектор, поэтому лучше использовать
чистую дискету, отформатированную по стандарту IBM (MS-DOS)).
Директива компилятора
ORG 7C00h должна быть добавлена перед кодом, если компьютер
начинает загружать первую дорожку дискеты по адресу 0000:7C00.
Размер .BOOT-файла должен быть менее 512 байтов
(ограничен размером сектора дискеты).