Использование реальных дискет ZX Spectrum. Часть 2: установка ОС с прямым доступом к дисководу


Ещё в конце 90-х, когда у меня появился первый ПК на процессоре Пентиум, я использовал его в качестве ZX Spectrum с помощью эмуляторов (потому что у моего Спектрума стала «отваливаться» клавиатура). И эти эмуляторы в MS-DOS могли работать с реальными дисководами и дискетами TR-DOS (Beta Disk). Тогда-то я и превратил в образы дискет большую часть своей коллекции, кроме тех, которые были с защитой от копирования (с ними эмуляторы отказывались работать напрочь, даже есть снять полный образ специальными утилитами).

То есть необходимо было только подключить дисководы к ПК, установить MS-DOS, засовывать дискеты в щель дисковода и наслаждаться трелями перемещения его головки во время чтения/записи. Но на самом деле задача оказалась (как и всегда) немного сложнее и со множеством всяких проблем. Поэтому — по очереди. Дисководы я уже подобрал, теперь надо установить операционку на подходящее железо (тем кому про устаревшие операционные системы неинтересно — пропускайте эту часть). В качестве подходящего, как я уже упоминал, пошёл мини-ПК, собранный в 2020 году из всяких остатков. Там оказался нужный для дисководов разъём FDD, который уже давно «выпилили» с современных материнских плат.

Microsoft DOS

Установить MS-DOS оказалось не сложно, сложно оказалось заставить его нормально работать. Всё-таки прошедшие годы изрядно сказались на его совместимости с разным «железом». Начал я с канонической уже версии 6.22, поскольку интерес для меня представлял не только Спектрум, но и классические DOS-овские версии игр, в которые играл в детстве, а эта версия MS-DOS наиболее заточена под их запуск. Про саму установку и MS-DOS я предлагаю вам почитать вот тут, оттуда же я скачал и образы дискет установочного набора MS-DOS 6.22, развернул их на реальные дискеты 3,5″ и приступил к установке на жёсткий диск.

Скриншоты я снимал на виртуальной машине и тут всё было нормально: система выделила себе основной раздел в 2 Гб и даже разметить дополнительный раздел тремя разделами по 5 Гб (хоть и не отформатировала). Зато на реальном железе начались первые трудности. Я в курсе, что есть определённые требования к разделу, на который устанавливается MS-DOS 6-й версии — это, во-первых, FAT, во-вторых, раздел должен быть первичным (основным) и не может быть больше 2 Гб. Но FDISK в MS-DOS 6.22 отказался работать с моими «большими» винчестерами (SATA 160 Гб и IDE 20 Гб). А когда я в Linux создал этот раздел размером в 2 Гб, то MS-DOS его либо полностью игнорил, либо писал про какие-то ошибки, из-за которых установку продолжать нельзя. Тут я уж перебрал все варианты — отключал расширенную поддержку SATA в BIOS, полностью отключал SATA и пробовал IDE-винчестер (ну нет у меня винчестера размером в пару гигабайт!), создавал разделы с разными размерами (от 100 Мб до 2 Гб) — ничего не помогало. А если дать волю самому MS-DOS и оставить винчестер пустым — то он нормально всё размечал и устанавливался… но почему-то на раздел размером в 48 Мб. И вроде бы и ничего, если бы он видел другие разделы, но он даже раздел в 500 Мб видел только с какими-то «крякозябрами»… Ну и ясно, что на 48 Мб никак не разгуляешься — ни одна нормальная игра не влезет. Почему на виртуалке MS-DOS нормально работал с 20 Гб диском, а на реальном железе по всякому отказывался — тайна сия осталась скрытой. То ли чипсет неподходящий, толи гранаты диски не той системы…

Тут я просто плюнул и сделал сразу две вещи: MS-DOS я установил по этому рецепту на USB-флешку (при этом эта ОС на ПК видела все 2 Гб на флешке!), а на SATA-винчестер установил FreeDOS.

Но MS-DOS на флешке ещё раз показал свою противную натуру, когда эмулятор Real Spectrum напрочь отказался в нём работать даже с рекомендованным для него «расширителем» памяти cwsdpmi (см. DPMI). Как я не пытался подобрать его параметры — бестолку, видимо большое количество оперативной памяти сводило его с ума. Пришлось искать альтернативу, и я её нашёл в виде HX DOS Extender. Загруженный в виде резидента в autoexec.bat, она позволила запустить нужный эмулятор.

FreeDOS

FreeDOS, в отличие от MS-DOS, гораздо лучше заточен под современное железо и ставится без особых проблем. Но это если знать, что при его запуске надо прерывать загрузочный скрипт кнопкой F5, потом снова запускать autoexec.bat и только после этого setup.exe, иначе происходит какая-то ерунда и остановить её уже нельзя:

Сама установка же проходит штатно:

Правда, хотя я и выбрал полную инсталляцию, но отнюдь не все пакеты с установочного носителя были установлены. Те же игры, например. Можно их, безусловно, просто распаковать в любое удобное место, но хорошо, что в состав FreeDOS входит своеобразный менеджер пакетов, позволяющий устанавливать, обновлять и удалять приложения, входящие в его дистрибутив. Для этого надо использовать программу fdnpkg: например, с ключом install для установки конкретного файла с расширением zip из установочного пакета:

Прям как в Linux’е

Второй нюанс, который сразу бросился в глаза, как только я запустил DOS Navigator — это отсутствие русского языка, хотя при установке я его выбирал. Оказалось, что в конфигурационные файлы никаких изменений внесено не было и система стартует с параметрами по умолчанию. Но тут можно взять любой из русификаторов (тот же rk.com) или придётся править fdconfig.sys и autoexec.bat, чтобы заставить работать встроенный.

В fdconfig.sys надо изменить строку:

!COUNTRY=007,866,C:\FDOS\BIN\COUNTRY.SYS

А в autoexec.bat поправить строки:

SET LANG=RU
NLSFUNC %dosdir%\BIN\COUNTRY.SYS
DISPLAY CON=(EGA,,1)
MODE CON CP PREP=((866) %dosdir%\CPI\EGA3.CPX)
KEYB RU,866,%dosdir%\bin\keybrd2.sys
CHCP 866

После этого русские буквы отображаются, а переключение раскладок осуществляется с помощью сочетаний Left Alt / Left Shift (EN) и Left Alt / Right Shift (RU).

Работает FreeDOS на первый взгляд более-менее нормально, но у меня случилось несколько зависаний на ровном месте, а один раз, при копировании данных, что-то случилось с каталогом на USB-флешке и пришлось восстанавливать целостность файлов. Так что, товарищи, аккуратнее, система до сих пор сыровата.

Хорош же FreeDOS тем, что включает в себя поддержку USB-флешек (не работает с «горячей» заменой, надо перезагружать ПК), есть современные менеджеры памяти, которые позволяют нормально работать с большими её объёмами и тем, что, в принципе, большинство DOS’овских игр на нём всё-таки запускаются и работают. Но были и проблемы с запуском игр и их работоспособностью, к сожалению.

Изображение и видеокарты

Видеокарта ASUS GeForce 210 в слоте PCI Express работала, что в MS-DOS, что во FreeDOS, но с ней я наблюдал местами странные артефакты. Сначала я заметил их на своей игре, разработанной ещё в далёком 98-м году на Pascal‘е (пришлось её перекомпилировать патченным Turbo Pascal‘ем, поскольку она не работала на слишком быстром ПК). Вся EGA-графика и шрифты в ней была «покорёжены»:

А вот на виртуалке всё выглядело нормально:

И точно такие же проблемы были и с другими программами, например, с Windows 3.11, из-за чего было не всегда понятно, что написано на экране:

При этом, если перейти на встроенное в материнку видеоядро, то подобные артефакты пропадали. Так что не всё то хорошо для DOS, что от Nvidia… Современное железо таки сказывается и мне уже начало казаться, что и DOSBox не так уж и плох. Но вот на той же виртуальной машине VirtualBox я в своей игре ловил конкретные подтормаживания (и это на 6-ти ядерном процессоре!), которые сводили на нет весь смысл виртуализации MS-DOS.

Зато эмулятор Real Spectrum (пожалуй, лучший эмулятор ZX Spectrum для DOS) сразу запустился и отлично работал. А меня вообще-то интересовала как раз эмуляция ZX Spectrum, поэтому всем остальным решено было пренебречь.

Звук и аудиокарты

С изображением дело обстояло не так уж плохо, а вот со звуком ситуация была плачевной. Звука в DOS с аудиокартой ASUS Xonar DS, установленной в моём мини-ПК, конечно же не было. И начать тут, пожалуй, можно с того, что «как всем известно» с поддержкой разных карт расширений в DOS всё очень неоднозначно. Точнее даже так — хорошо поддерживаются устройства с прямым доступом к ним, а это увы — только карты с разъёмом (и шиной) ISA. Но в 21 веке материнские платы с таким разъёмом если и выпускаются, то в качестве каких-то промышленных, да и сами карты расширения довольно трудно раздобыть.

На смену ему пришла шина PCI (которая на текущий момент тоже уже почти вытеснена PCI Express), более прогрессивная с точки зрения архитектуры, зато возникла проблема с поддержкой подобных устройств в чистом DOS, потому что в отличии от карт формата ISA, которым не нужен был никакой драйвер-посредник, для PCI-карт такая программа была нужна. И если под Windows написана уже куча драйверов, то под DOS ситуация гораздо печальнее — остаётся надеяться только на давным-давно написанные программы-резиденты для самых популярных тогдашних аудиокарт.

Ну и соответственно, нужна такая звуковая карта. Начал я с поиска подходящих вариантов и вот, например, статья про пошаговую настройку Sound Blaster Live 5.1. У меня даже была где-то раньше такая же, но тут-то мне нужна была низкопрофильная карта в мой узкий корпус и я стал рыть дальше и наткнулся на статью про аудиокарты всё на том же ms-dos.biz, в которой для нормальной работы в MS-DOS опять же рекомендовались PCI-карты от компании Creative и даже был приведён перечень, на который стоило опираться. В итоге я рискнул заказать с Aliexpress одну из карт (б/у) приведённых в этом списке: Sound Blaster Live! 24-bit (SB0410). Карта удачно и быстро приехала и оказалась даже рабочей, но под DOS не заработала ни с одним из имеющихся драйверов. Поэтому мой вывод такой: если надо Sound Blaster — берите только на DPS EMU10K1. Всё остальные чипы толком не поддерживаются.

Пришлось копать ещё глубже и я докопал до таблички совместимости PCI-аудиокарт и чипсетов, из которой в итоге выяснил, что нормальных низкопрофильных аудиокарт особо и не выпускалось. Но тут я зацепился взглядом за знакомое название C-Media CMI8738… и вспомнил, что подобное не так давно я где-то видел. И действительно, память меня не подвела — оказывается на этих чипах до сих пор выпускают PCI-аудиокарты и есть даже с интерфейсом PCI Express. Это, если честно, лютый трэш — на платах, складывается такое впечатление, распаян только чип, да ещё и левой ногой с бодуна. Про качество звука тут даже нечего рассуждать, а первая купленная карта вообще толком не работала (дикие шумы и наводки). Но зато этот чип имеет аппаратную эмуляцию Sound Blaster и есть драйвера, которые эту эмуляцию включают. Для этого в autoexec.bat прописываются параметры Sound Blaster и запускается программа-резидент setaudio:

Есть даже программа-микшер для управления громкостью и входами/выходами (C3DMIX.COM). И сама карта реально работает и в MS-DOS и FreeDOS! Хотя, как и обещали, не во всех играх: в Settlers 2, например, звук есть, но при работе возникают бегающие горизонтальные полосы по экрану, а бывает что игра и падает:

Но всё равно, удивителен сам факт — в 2021 году можно купить в магазине аудиокарту, которая работает в DOS’е! Удивительное долголетие чипсета от C-Media.

Некоторые эмуляторы Спектрума тоже нормально запускаются со звуком (тот же UKV), но как только я начал радовался — оказалось, что именно тот эмулятор, на который я уже положил глаз (Real Spectrum) — вылетает: какой-то конфликт резидента аудиокарты и библиотеки Allegro, используемой эмулятором. Победить не удалось и пришлось перейти к следующему Хитрому Плану — установке Windows XP.

Microsoft Windows XP

Не хотел я устанавливать тяжелые операционные системы и особенно Windows, но выхода не было: мои девайсы, как оказалось, под DOS не совсем корректно работают. А под Windows есть шанс это всё заставить функционировать как надо, по крайней мере, с драйверами проблем особо не должно быть. И хотя стандартный драйвер дисководов в Windows XP не обеспечивается прямой доступ к ним, но зато есть замечательный драйвер от Симона Оуэна: fdrawcmd.sys, который обеспечивает доступ к дисководу не хуже чем под DOS. Сам драйвер работает на любой Windows старше 2000, но лучше выбрать XP, чтобы не столкнуться с проблемами из-за драйверов, а более старшие версии не поддерживаются нужным мне эмулятором Спектрума.

Описывать установку я не буду, поскольку Windows XP ставится нормально практически на любое работоспособное железо и сюрпризы маловероятны (и ожидания оправдались). Всё железо подцепилось, драйвера были установлены, заработал и свисток Wi-Fi, и даже современная плата USB 3.0 от Orico (правда драйвер пришлось поискать, на официальном сайте версия старая и не ставилась под XP).

Стали доступны разные утилиты для работы со Спектрумовскими дискетами, которые были написаны для Microsoft Windows: тот же SAMdisk (от разработчика драйвера дисковода), WinTRD, WinISD, ZX Disk Studio, AMD Copier, mktrd, TRRead, ZX-Spectrum Floppy Disk Image Manager и даже плагины для Far.

Ну и эмулятор Real Spectrum тоже прекрасно заработал. Правда не версия под DOS, а его перекомпилированный вариант под Windows (с названием RS32). Только для работы с дискетами надо установить последнюю версию (0.97.36), которая лежит отдельно, в разделе альфа-версий.

На первый взгляд ничем не отличается от большинства эмуляторов Спектрума…

Но про эмуляторы и утилиты, пожалуй, в следующей части…

Использование реальных дискет ZX Spectrum. Часть 2: установка ОС с прямым доступом к дисководу: 3 комментария

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s