vak: (Аристипп)
[personal profile] vak
Доделал я в симуляторе i86 некоторое количество биосных вызовов, и вот результат. PC-DOS загружается с образа флопика.
$ tiltti pcdos330.img 
Current date is Wed 2-11-2026
Enter new date (mm-dd-yy):
Current time is 7:44:18.32
Enter new time:


The IBM Personal Computer DOS
Version 3.30 (C)Copyright International Business Machines Corp 1981, 1987
(C)Copyright Microsoft Corp 1981, 1986

A>dir/w

Volume in drive A has no label
Directory of A:\

COMMAND COM ANSI SYS APPEND EXE ASSIGN COM ATTRIB EXE
BACKUP COM BASIC COM BASICA COM CHKDSK COM COMP COM
COUNTRY SYS DEBUG COM DISKCOMP COM DISKCOPY COM DISPLAY SYS
DRIVER SYS EDLIN COM FASTOPEN EXE FDISK COM FIND EXE
FORMAT COM GRAFTABL COM GRAPHICS COM JOIN EXE KEYB COM
KEYBOARD SYS LABEL COM MODE COM MORE COM NLSFUNC EXE
PRINT COM PRINTER SYS RECOVER COM REPLACE EXE RESTORE COM
SELECT COM SHARE EXE SORT EXE SUBST EXE SYS COM
TREE COM VDISK SYS XCOPY EXE EGA CPI LCD CPI
4201 CPI 5202 CPI BASIC PIF BASICA PIF MORTGAGE BAS
50 File(s) 128512 bytes free

A>chkdsk

724480 bytes total disk space
52736 bytes in 3 hidden files
543232 bytes in 50 user files
128512 bytes available on disk

655360 bytes total memory
600896 bytes free

A>_
Отсюда понятно, что идея перехватывать INT вызовы имеет право на жизнь. Нет необходимости выполнять бинарник биоса из ROM.

Date: 2026-02-12 07:52 (UTC)
lxe: (Default)
From: [personal profile] lxe
Я так понимаю, в более общем виде DOSBox так работает. Но как поступать с custom BIOS?

Date: 2026-02-12 07:58 (UTC)
1master: (Default)
From: [personal profile] 1master
Ха! Перехват прерываний в свое время был способом ломать защиты софта, который боролся с дебаггером. Боролся, боролся, а потом раз и прерывание. Ну и все, там внутри брекпоинт и поехали.

Date: 2026-02-12 08:22 (UTC)
lxe: (Default)
From: [personal profile] lxe
Эмуляцией кастомного железа.
Но разве не было софта, передающего управление в BIOS непосредственно? Что, никто вообще не баловался?

Date: 2026-02-12 12:28 (UTC)
From: [personal profile] litwr
Получается эмулятор DOS совместимого компьютера, типа японского PC98?
Попробовал загрузиться - не пошло - Error: Unimplemented: Set cursor position - возможно потому что ANSI.SYS в CONFIG.sys :( Наверное базовые видео функции Биоса были бы иногда полезны.

Date: 2026-02-12 17:27 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Насколько помнится, куча пользовательского софта пользуется кучей IN и OUT, поэтому биос-небиос, а порты всё равно придётся эмулировать. Подозреваю, до такой степени, что и оригинальный биос заработает.

Date: 2026-02-12 20:03 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
А чтобы драйверы русских букв? :)

Date: 2026-02-12 20:14 (UTC)
1master: (Default)
From: [personal profile] 1master
Я в курсе, тем не менее оно называлось interrupt (см. Брауна с его Interrupt List) и в результате на русском тоже прижилось как прерывание.

Date: 2026-02-12 20:21 (UTC)
From: [personal profile] ymz5
Одразу пригадалася давня публікація на habr з заголовком "IBM PC своімі рукамі" :-)

Date: 2026-02-12 21:19 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Для них можно обойтись без загрузки образа DOS
Эмулировать файловые DOS API INT 21h
и текстовую видеопамять.

Я добирался до запуска TurboC.
А на графических играх застрял, так как не хватало скорости работы с битмапами на тогдашнем .NET
Сейчас его в разы ускорили

Date: 2026-02-13 02:22 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Я скорее про клавиатурную часть. Там, помнится, мудрили кто во что горазд.

К чему, собственно, я это всё? К "Печать - Начать - Качество высокое, плотность равномерная", ЕТПОЧЯ.
Интересно, сохранилось ли оно.
Edited Date: 2026-02-13 02:25 (UTC)