vak: (Знайка)
[personal profile] vak
На симуляторе PC i86 успешно запускаются все версии PC DOS, все DR-DOS и почти все MS-DOS. Кроме последней неофициальной версии MS-DOS 7.1: потому что она требует процессора i386. А именно она и интересна полной поддержкой FAT32 и длинных имён файлов.

Так что я решил проапгредить процессор в симуляторе. Благо, для i386 тоже есть хороший набор тестов: SingleStepTests/80386. И тут же на первом тесте обнаруживаем странность, в регистре EFLAGS.

Интеловская документация утверждает, что неиспользуемые старшие 14 бит регистра EFLAGS всегда нули. Но из реального хардвера вычитываются единицы.
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

Date: 2026-02-26 23:22 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Это относится только к Protected Mode
в Real Mode старшие 16 бит Undefined

Date: 2026-02-27 03:05 (UTC)
b0p0h0k: (OSDispak)
From: [personal profile] b0p0h0k
По крайней мере, та глава, на которую ты ссылаешься, такого не утверждает.

Date: 2026-02-27 03:38 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
FreeDOS вроде поддерживает FAT32.
И основная часть вроде должна работать на 8086 (есть образ такого флопика):
https://freedos.org/download/