Не всякий загрузочный DVD одинаково полезен
Mar. 5th, 2026 10:10 pmЕсли у вас есть установочный DVD для Linux Mint... выкиньте его сразу, не мучайтесь. 😀 Загрузка системы с DVD занимает больше 30 минут. Не стоит оно того. Лучше USB флешку запишите.

$ tiltti msdos3.31-1.44m.img -r -o a.logТеперь запускаем глюкавую версию, получаем второй файл трассировки.
$ tiltti --386 msdos3.31-1.44m.img -r -o b.logСравниваем файлы трассировки умной тулзой. В левой части экрана работает процессор i8086. В правой части - процессор i386. Выполняют один и тот же код, а именно MS-DOS 3.31. Результаты должны совпадать, за исключением того, что слева регистры 16-битные, а справа 32-битные. И они совпадают... до момента ошибки.

$ tiltti --386 msdos3.31-1.44m.img

; quadratic.s70 - Calculate x^2 + 2x + 1 where x = 5
LIT 5 ; x = 5
DUP ; x x
MUL ; x^2 = 25
LIT 5 ; x
LIT 2 ; 2
MUL ; 2x = 10
ADD ; 25 + 10 = 35
LIT 1 ; 1
ADD ; 35 + 1 = 36
OUT ; Output: 36
HALT
Figure 2-8. EFLAGS Register
16-BIT FLAGS REGISTER
A
+-------------------+---------------+
31 23 15 7 0
+-------------------+---------------+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |V|R| |N| IO|O|D|I|T|S|Z| |A| |P| |C|
| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | | |0| | | | | | | | |0| |0| |1| |
| |M|F| |T| PL|F|F|F|F|F|F| |F| |F| |F|
+-------------------+---------------+++++-+++-+-+++++++++++++-+++-+++-+++
| | | | | | | | | | | | |
VIRTUAL 8086 MODE---X----------+ | | | | | | | | | | | |
RESUME FLAG---X------------+ | | | | | | | | | | |
NESTED TASK FLAG---X----------------+ | | | | | | | | | |
I/O PRIVILEGE LEVEL---X-------------------+ | | | | | | | | |
OVERFLOW---S----------------------+ | | | | | | | |
DIRECTION FLAG---C------------------------+ | | | | | | |
INTERRUPT ENABLE---X--------------------------+ | | | | | |
TRAP FLAG---S----------------------------+ | | | | |
SIGN FLAG---S------------------------------+ | | | |
ZERO FLAG---S--------------------------------+ | | |
AUXILIARY CARRY---S------------------------------------+ | |
PARITY FLAG---S----------------------------------------+ |
CARRY FLAG---S--------------------------------------------+
S = STATUS FLAG, C = CONTROL FLAG, X = SYSTEM FLAG
NOTE: 0 OR 1 INDICATES INTEL RESERVED. DO NOT DEFINE

INT 10h VideoВ регистре DL следует вернуть 24 - количество строк на экране минус один. А возвращалось 16, как бы высота символа в шрифте. После правки всё заработало как положено. Симулятор начинает обретать законченные очертания.
...
AH=11h Character generator (EGA/MCGA/VGA)
...
AL=30h Return font info (EGA/MCGA/VGA)
Entry: BH=00h return INT 1Fh pointer
01h return INT 43h pointer
02h return ROM 8x14 font pointer
03h return ROM 8x8 double-dot font pointer (0-127)
04h return ROM 8x8 double-dot font pointer (128-255)
05h return ROM 9x14 alternate text pointer (EGA/VGA)
06h return ROM 8x16 font pointer (MCGA/VGA)
07h return ROM 9x16 alternate text pointer (VGA)
Exit: ES:BP=requested pointer
CX=scan lines per character
DL=rows (EGA) or rows-1 (MCGA/VGA)


Готово! В файле floppy.img находится бутабельный флопик.wget https://download.lenovo.com/servers/mig/systems/support/system_x/ibm_sw_sgtk_1_3_07_anyos_anycpu.zip
unzip ibm_sw_sgtk_1_3_07_anyos_anycpu.zip
cp sgdeploy/sgtk/ads/images/tk_scrub.vfd floppy.img
mdel -i floppy.img ::*.bat
mdel -i floppy.img ::*.sys
mdel -i floppy.img ::dos/*.*
mcopy -i floppy.img sgdeploy/sgtk/DOS/*.* ::dos/
mcopy -i floppy.img sgdeploy/sgtk/DOS/cfgfiles/*.* ::dos/
Вот так оно смотрится под QEMU.wget https://vc.vvv.kyiv.ua/download/vc405sw.zip
unzip vc405sw.zip -d vc
mmd -i floppy.img ::vc
mcopy -i floppy.img vc/*.* ::vc/
