News / Live Journal / Information / Soft / Music / Forum / Links / About project




Powered by Google
Информация

 Железо
 Сжатие звука
 Трекеры
 Мьюзиком
 Renoise
 Энциклопедия стилей
 Мастер-класс
 Словарик
 Мысли

Добавить в избранное

Железо

Эмуляторы звуковых карт для платформ DOS и Windows

Первые программные эмуляторы звуковых карт появились, скорее всего, когда в DOS-е стандартом de-facto стали семейства карт SoundBlaster (SB) и Adlib. После этого почти все аудиокарты выпускались аппаратно совместимые с SB разных версий (обычно до SB Pro 2.0) и Adlib. Иногда совместимость такой карты оказывалась неполной. Например, серии The Media Vision's Pro Audio Spectrum Plus и The Media Vision's Pro Audio Spectrum 16 (PAS+ and PAS-16). Несмотря на уверения фирмы MediaVision, что PAS+ и PAS-16 полностью совместимы со стандартом SB, это было не совсем так. Многие люди получали неожиданные результаты, если пытались использовать ее как SB.

Самым дешевым решением добавления в компьютер звука стал Covox — "SoundBlaster для бедных". Стоимость его гораздо ниже самой дешевой звуковой карты. К слову, самостоятельное изготовление Covox-а сейчас обойдется всего рублей в 50. За эти деньги можно стать счастливым обладателем самого простого устройства, выводящего 8-ми битовый, до 44,1 kHz монозвук. К сожалению, Covox не был поддержан основными производителями программного обеспечения, составляя столь невыгодную конкуренцию для производителей звуковых карт. Тем не менее, самостоятельно написать драйвер для него и заменить им драйвер любой 8-ми битовой звуковой карты, которая работает в DAC-режиме (аналогично Covox), или немного изменить код программы, перенаправив вывод 8-ми битовой оцифровки на Covox для программиста тех лет не было большим трудом. Но поскольку даже Covox был не всегда возможен, а играть хотелось "на всю катушку и прямо щас", то самым простым решением стало использование встроенного звукового устройства в каждом компьютере — PC Speaker появились различные утилиты и драйверы, эмулирующие звук в играх для SB и Covox на встроенном спикере. Они работают или только с определенными программами (чаше всего играми) или универсальны, но с разными ограничениями рабочей среды. Самые известные из них:

  • VIRTUAL SOUND BLASTER (SB эмулятор для Covox и PC-Speaker) от FRIENDS software. Последняя версия — 2.02, встреченная мной, датируется сентябрем 1995 года. По описанию — очень крутая утилита, но не работает с программами, требующих "агрессивной" среды (DOS extended memory mode и подобное). При наличии менеджера памяти QEMM и соблюдении документации эмуляция есть, но не во многих играх.
  • Продукция легендарной московской команды UGi (деятельность которой сыграла немалую роль в формирование рынка нелегальных копий на территории СССР и, позднее, пост-СССР). В данном случае это самодельные наборы драйверов для Covox и бипера ко многим Sierra-вским играм. Очень приятное трехголосое звучание звука и музыки (особенно в сравнении с оригинальными драйверами для пищалки). Также универсальный резидент-драйвер для ряда игр — только для Covox-а.

Кроме таких программ-самоделок фирменная программная эмуляция SB и Adlib была реализована в уже не выпускаемых картах семейства Gravis Ultra Sound (GUS). Частичная совместимость их могла быть достигнута с помощью специальных драйверов SBOS (Sound Board Operating System), поставляемых вместе с картой. Однако, на практике, удовлетворительная работа SBOS было скорее дело случая. Кроме того, SBOS значительно замедлял работу процессора, что делало GUS малопригодным для работы приложений, написанных только для SB. Исключительные звуковые качества GUS все же привели к тому, что он стал второй по значимости, после SB, картой в DOS-е. Счастливые же обладатели SB до поры до времени оставались в стороне, если программа требовала для звука только GUS или Covox. Первой ласточкой в эмуляторах для SB стала поделка PC Hawk-а, эмулирующая моно и стерео Covox на SB.

В данный момент времени один из более-менее удачных универсальных эмуляторов аудиокарт для DOS-а принадлежит авторству Roman Dolejsi. Его утилита Remus (версия 0.04g от января 1997) поддерживает и эмулирует AWE-32, Adlib, D/A Converter, GUS, PC Speaker, Sound Blaster и Stereo-on-1 (Covox). Эмуляция PC Speaker и Covox на SB получается более чем удовлетворительная, а вот запустить программы для GUS и AWE-32 мне не удалось. Возможно, мой Tropez Plus для этих целей не очень подходит, да мало ли что еще. Программа в любом случае многообещающая, судя по документации.

Прошло несколько лет. Звуковые карты стали выпускаться исключительно на шине PCI. Расплатой за это новшество стала утрата аппаратной совместимости с Adlib и SB у большинства карт. Например, популярные дешевые карты типа SB PCI64 не являются SB совместимыми — большинство функций эмулируется драйвером Windows, в том числе и FM. В результате получаемый звук совершенно не похож на то, как должен звучать FM на оригинальном чипе OPL2 или OPL3 — программная эмуляция дает совершенно недостоверное, искаженное звучание. Кроме проблем с FM, у многих PCI аудиокарт есть аппаратная несовместимость со старыми стандартами при работе с DMA. Для работы такой карты в чистом DOS-е почти всегда используются драйверы-резиденты, занимающие в памяти порядка 10-30КБ. На дешевых картах программная эмуляция есть только в режимах Adlib и SB 2.0 (никаких WSS или SB PRO 2.0). Звук в этом случае оставляет желать лучшего. Драйвер у SBLive! дает программную эмуляцию вплоть до SB 16.

Кроме этого сейчас многие испытывают ограничения Windows NT/2000/XP, поскольку в режиме эмуляции DOS доступ к устройствам компьютера, в обход операционной системы, запрещен. Очень удачной разработкой эмулятора звуковой карты в DOS и win16 приложениях является программа SoundFX 2000 компании Software Systems Consultants. К сожалению, она не бесплатная и ограничена по времени использования — всего 3 минуты, после чего окно с программой автоматически закрывается. Для ее работы требуется любая звуковая карта, работающая под управлением Windows XP/2000 или NT4.0 (как минимум SP3). Если необходима программная эмуляция FM синтеза (в случае использования PCI карты, например SBLive!) — это требует наличие PII 350 для удовлетворительного звука. Взамен вы получаете хорошую поддержку во многих программах написанных для Adlib, SB 1.5, SB 2.0, SB Pro, SB Pro 2.0, SB 16 и SB AWE 32/64. В будущем планируется добавление полной поддержки WaveIn для программ использующих входы mic и line-in и эмуляция Pro Audio Spectrum 16. Impulse Tracker v2.14 у меня нашел SB 16 MMX, a Fast Tracker v2.09 зависал после определения карты. Про более удачную (для нас с вами) разработку эмулятора для систем на базе Windows NT/2000/XP вы прочтете чуть ниже, а пока вернемся к упомянутому уже мной семейству аудиокарт GUS.

Главное отличие этих карт от SB (в то время SB 2.0/Pro/16) заключалось в использование собственной памяти для сэмплов и аппаратного wavetable синтеза. Все это дополнялось хорошим качеством звука и доступной ценой при таких возможностях. Карта была очень популярна на демосцене. Во-первых, из-за своих возможностей и низкой нагрузки на CPU при ее работе, а во-вторых — действиям фирмы по отношению к демосцене (спонсирование Assembly demo party и бесплатные звуковые карточки). В результате многие программы для демосцены и сами demo ориентировались, в первую очередь, на GUS, а некоторые даже просто не запускаются, если карта не установлена. С появлением программы GUSemu32 — the Gravis Ultrasound emulator for Win32 стало возможно запускать их под Windows 9x/ME/2000/XP. Программа бесплатная, действительно работает, хотя и не всегда, обладает функцией сохранения/загрузки "памяти" GUS. Минимальные требования — Pentium, Windows 9x/ME/2000/XP, DirectX 5, звуковая карта с поддержкой DirectSound. Список работающих demo внушительный (смотрите на домашней странице программы). Мне самому на Celeron 333 (up 515)/64Mb/ATI 3D Rage II+ Pro Turbo — 4Mb/Tropez Plus под Windows 9x удалось удачно запустить следующие программы:

  • 0XYGEN PRESENTS: CYANiDE DEMO
  • Extreme's Tracker v0.5 beta
  • CapaMod v1.20 4,6,8-Chn MOD-player for GUS
  • UltraTracker v1.6 — замедленное звучание; обработка вывода звука не в "real-time"происходила
  • DSM 4.0 — 16-ти битовая версия очень медленно работала, 32-ух битовая немного быстрее
  • UNIS669 V1.10 — замедленное звучание
  • Clone intro — несколько медленно
  • Cartoon 64k intro
  • UltraSound Initialization v2.16 — тест-эталон утилита — если она работает, то все в порядке

Как говорит автор — нормальная работа эмулятора будет только в случае грамотного написания запускаемой программы и ее корректного обращения c GUS. С чем сложно не согласится — большая часть программ для GUS написана не профессионалами. Особенно программы демосцены. Некоторые из них требуют "поиграть" настройками эмулятора. Почти все, из удачно запущенных у меня програм, работали при установках port=240, irq=5 и dma=1. Кроме этого необходимо прописать в файл autoexec.bat следующие строчки "SET ULTRASND=240,1,1,5,5" и "SET BLASTER=A240 I5 D1 H5 T6" (1,1 и 5,5 — в GUS реализовано двойное использование irq и dma). Более подробно вы прочитаете в документации к программе.

После написания первого варианта этого материала я получил n-ое количество писем с просьбой помочь заставить Impulse Tracker (FT, RT, DT и тд) работать под Windows 2000 и выше. В тот момент я знал только один вариант — демо-версия SoundFX 2000 от Software Systems Consultants, работающая всего три минуты. Чуть позднее выяснилось, что Windows XP сама умеет эмулировать всю серию карт SB для приложений MS DOS. К сожалению, радость оказалась преждевременной: эмуляция неработоспособна. Воспроизведение из любой MS DOS программы прерывалось ежесекундно, как если бы я запустил Winamp на AMD 486 DX2. Уж лучше никакая эмуляция, чем такая. Пришлось исправить строчку SET BLASTER на SET BLASTER=A0 в файле настройки MS DOS приложений с:\windows\system32\autoexec.nt.

Но вот появилась система эмуляции VDMSound. Это системный довесок к Windows NT4(SP3)/2000/XP, позволяющий эмулировать семейство SB в режиме MS DOS. Используя VDMS, можно использовать в MS DOS программах CD, MPU-401, Adlib, полную поддержку SB в режимах от SB до SB16, стандартный порт для джойстика, частичную поддержку VESA режимов. По официальному списку совместимых программ эмуляция невозможна для Scream Tracker 3.21; Impluse Tracker может требовать дополнительной настройки. Успешно работают многие игры от Sierra (качество :) и других известных игрушечных компаний. Ряд программ, для их работоспособности (например, Ultima VIII и Doom II), требует дополнительных вмешательств. Проверка работы системы проводилась мной на выше названной системе, с установками VDMS по умолчанию:

  • Joystick: порт 201
  • SoundBlaster: порт 220, IRQ 7 и DMA 1 (5)
  • MPU-401/MIDI: порт 330

Успешно запущены были Impulse Tracker 2.14 (SB 16 MMX + MIDI out), Adlib Tracker 2 (проблема с видео была), RDOS Player 0.21 (OPL3) и Cubic Player 2.6.0p14 (SB16). Не удалось запустить Fast Tracker 2.09, Real Tracker 2.21, Digital Tracker 3.2, Scream Tracker 3.21. Последний вообще не работает с любым из эмуляторов — будь то SoundFX 2000 или драйвер от SB Live! Из старых демок, трекеров, плееров практически ни одна программа не пошла со звуком (если вообще запускалась). Все это навеивало на мысль автора GUSEMU32: на лицо кривость работы программистов-любителей или их вынужденное нарушение каких-то стандартов; грамотно написанные программы должны работать в любой системе — аппаратная она или виртуальная. Поскольку звуковая карта SB это не только программы демосцены, то вот результаты запуска некоторых игр:

  • Lode Runner The Legend Returns — GM и SB;
  • Mortal Combat I — GM и SB;
  • Quake I — не запустилась;
  • Sam & Max Hit the Road — GM и SB;
  • Aladdin — SB;
  • Cannon Fodder I — GM/Adlib успешно, SB не найден;
  • Cannon Fodder II — SB;
  • F29 — RETAL — Adlib;
  • Wolfestein 3-D & Spear — SB;
  • Supaplex — ROLAND и SB;
  • Spot — Adlib/GM;
  • PC Dizzy — SB;
  • Krypton Egg — без звука;
  • Lemmings 94, FORMULA 1, EPIC PINBALL и Eob of Beholder I — без проблем.

Минусом программы является иногда ощутимая разница в звучании аппаратного SB/Adlib и программного эмулятора. Особенно это очевидно в режимах FM OPL2/OPL3.

После установки VDMS необходимо перезапустить Windows, после чего можно вызывать эмуляцию из каталога с MS DOS программой вызовом в командной строке "vdmsrun имя-файла".

При работе программы крайне не рекомендуется использовать программы типа Motherboard Monitor, иначе, как обещают авторы программы, не удивляйтесь глюкам и неработоспособности системы. Для изменения скорости работы приложения MS DOS рекомендуется использовать утилиты PITSET и MOSLO, которые можно найти в интернете.

Для упрощения работы с IT2 можно сделать следующее:

  1. после установки VDMSound (и перезапуска компьютера) в папке, куда вы ее поставили (по умолчанию C:\Program Files\VDMSound) нужно отредактировать файл VDMSRun.bat, заменив "CALL %1" на "CALL %1 %2 %3 %4 %5 %6 %7 %8 %9";
  2. создать ссылку для файла IT.EXE;
  3. изменить параметр запуска программы с *что-то-тама\it.exe* на *"%VDMSPath%\VDMSRun.bat" что-то-тама\IT.EXE*, кавычки необходимы, если их нет;
  4. отметить необходимости работы в полноэкранном режиме, закладка экран/screen;
  5. все остальные настройки — с памятью EMS/XMS/DPMI и остальные — это вы сами решайте, но лучше настроить выделение 16Mb EMS;
  6. если при работе в IT ощущается задержка при вводе с клавиатуры, попробуйте выключить на клавиатуре режим Num lock, это может помочь, если он включен;
  7. если звучание звука некорректное — попробуйте изменить в файле C:\Program Files\VDMSound\VDSM.INI (каталог иной, если вы установили программу в другой каталог) параметры буферизации. К примеру, установка задержки равной 75ms на Athlon 1200 может полностью решить эту проблему. Вам же, для прекращения искажения звучания, возможно придется поэкспериментировать с этим параметром, используя более высокое значение (настройки minDMAPeriod и maxDMAPeriod, меньшие значения ускоряют реакцию звуковой карты, в случае большого количества коротких звуковых событий; большие — дают выигрыш при сплошном звуковом потоке);
  8. если вам ничего не помогло — возможно вам стоит подумать если не о смене компьютера, или хотя бы "прокладки между монитором и стулом", (с) Gene JB, то хотя об возможности запуска IT из под чистого DOS, с дискетки или иначе.

Аналогично можно поступить с любой MS DOS программой, создав подобные настройки или, вызывая в Explorer-e (Проводнике), нажав на иконку исполняемой программы правой кнопкой мыши, меню, в котором нужно выбрать пункт "run with VDMS". Для облегчения настроек всего этого еще можно использовать VDMSound LaunchPad Shell Extension, разработанный для упрощения работы с приложениями и их удобной настройке. Это дополнение вы найдете на сайте VDMS. Как оно работает, вам придется разбираться самостоятельно.

При запуске ряда программ, как было сказано уже выше, необходимо дополнительные вмешательства для настройки звука в DOS-приложении, поскольку оно виснет сразу при запуске. Это необходимо для игр Duke3D, Doom и некоторых других. Проблема в том, что NTVDM-подсистема неадекватно реагирует на попытку выполнить CLI или STI инструкцию. При этом при выполнении STI не происходит ровным счетом ничего, а вот при CLI виртуальная машина «замирает». Для устранения этого нужно в файле программы сделать подмену инструкций CLI на NOP (точнее pushfd, pop eax, cli меняется на pushfd, pop eax, nop, а pushfd, cli на pushfd, nop). Это можно сделать вручную, или используя утилитку CLI2NOP из комлекта SoundFX 2000. Отдельно взять ее вы можете отсюда, 20кб или из пакета SoundFX 2000. Файлы patch.exe и cli2nop.bat копируются в каталог с игрой и, в случае с Duke3D выполняется команда "cli2nop duke3d.exe duke3dnt.exe". Запускаем duke3dnt.exe и проблем больше не должно быть.

На этом, пожалуй, и все, если бы не следующая разработка. Такого рода программу-эмулятор для Windows не на базе NT я вижу первый раз.

Система DosBox написана для эмуляции PC под управлением DOS в среде Windows. Скачав ее с сайта программы вы получите бесплатную виртуальную машину 286/386 процессора для старых DOS-программ и игр. Поддерживаются:

  • режимы памяти EMS, XMS;
  • менеджеры памяти защищенного режима типа DOS4GW;
  • вывод звука через DirectSound c возможностью записи;
  • эмуляция PC Speaker (PC и Tandy), Adlib, SB Pro 2.0, CMS/GameBlaster, Disney Sound System;
  • Roland-MT32 (альтернативная версия программы);
  • сериальный порт и виртуальный tcp/ip модем, клавиатура, мышь, CD-ROM и аудио-CD;
  • видеорежимы CGA, EGA, VGA (эмуляция S3 Trio 64 с 2МБ памяти);
  • некоторые режимы Vesa 2.0;
  • оконный и полноэкранный режимы работы эмулятора;
  • встроенная ОС, совместимая с MS-DOS 5.0;
  • базовая поддержка ansi.sys;
  • эмуляция жесткого диска в выбранном каталоге.

    Для эмуляции XT/286 системы необходима система на базе Pentium II-400 и выше. Теоретически можно запустить любую программу, которая должна работать на 386DX в защищенном режиме памяти, но для этого ваша система должна быть очень быстрой. Для эмуляции только 25-ти МГц 386 процессора необходим PIV-1,7ГГц. Эмуляция же защищенного режима работы требует гораздо большего и по зубам только самым быстрым процессорам.

    Для управления программой написана полнофункциональная оболочка. Система удовлетворительно работает под управлением Windows на базе 9x/ME и 2000/XP, пригодна для запуска любых старых программ.

    Ссылки:

    0) win16 драйверы Covox/Speaker (15кб); dos-драйверы SB для Covox/Speaker (23кб).
    1) Домашняя страница GUSemu
    2) Домашняя страница REMUS
    3) Домашняя страница SoundFX 2000
    4) http://ntvdm.cjb.net/ — сайт поддержки VDMSound
    5) https://sourceforge.net/projects/vdmsound/ — домашняя страница VDMSound
    6) http://dosbox.sourceforge.net/ — домашняя страничка DosBox

    Игорь Чистик
    http://journal.saminfo.ru/
    Москва, 31 марта 2002 года

    Эмуляция SB для карт серий
    SB Live!/SB Audigy в MS-DOS

    Многие используемые по сей день программы, имеющиеся в продаже, были созданы для MS-DOS, поэтому для их запуска необходимы драйверы MS-DOS. К сожалению, драйверы MS-DOS почти всегда не устанавливаются вместе с другими устройствами и программами звуковых плат Live!/Audigy. Стоит заметить, что даже правильная настройка этих драйверов не срабатывает для включения звука в некоторых программах или эмуляция выполняется очень плохо. Некоторые экземпляры карт семейств Live!/Audigy вообще не способны работать с собственными драйверами эмуляции MS-DOS, к счастью — эта ошибка встречается не так часто.

    Чтобы установить драйверы MS-DOS, выполните следующие действия:

    1. Вставьте установочный компакт-диск Live!/Audigy в дисковод компакт-дисков.
    2. Нажмите кнопку Пуск и выберите команду Выполнить.
    3. В диалоговом окне Запуск программы введите D:\DOSDRV\LANGUAGE\SETUP.EXE (где D буква дисковода для компакт-дисков, a Language язык, но котором создан файл).
    4. Для завершения установки следуйте инструкциям на экране.
    Существуют два способа запуска программ под управлением MS-DOS.

    Из окна сеанса MS-DOS в Windows 9x (рекомендуемый способ)

    Нажмите кнопку Пуск, выберите команду Программы, затем — Сеанс MS-DOS.

    В режиме MS-DOS

    В некоторых случаях запуск программ в окне сеанса MS-DOS нежелателен или невозможен. Устаревшая программа может оказаться несовместимой с Windows 9x или для запуска из Windows 9x может оказаться недостаточно системных ресурсов. В таких случаях необходимо использовать режим MS-DOS.

    Чтобы перезагрузить компьютер в режиме эмуляции MS-DOS, если система Windows 9x уже запущена, выполните следующие действия:

    1. Нажмите кнопку Пуск и выберите команду Завершение работы.
    2. Выберите вариант перезагрузить компьютер в режиме MS-DOS и нажмите кнопку ОК.

    Чтобы запустить режим эмуляции MS-DOS при включении системы, выполните следующие действия.

    1. При начале загрузки Windows 9x удерживайте нажатой клавишу F8.
    2. В меню загрузки выберите режим Command Prompt Only и нажмите клавишу .

    При установке драйверов MS-DOS изменяются системные файлы C:\AUTOEXEC.BAT и C:\CONFIG.SYS.

    В ходе установки в файл AUTOEXEC.BAT добавляются следующие команды:

    SET CTSYN=C:\WINDOWS
    SET BLASTER=A220 15 Dl H5 РЗЗО Т6
    C:\PROGRA~1\CREATIVE\DOSDRV\SBEINIT.COM

    Первые две команды определяют переменные окружения звуковой платы. Третья команда запускает программу SBEINIT.COM — драйвер плат Live!/Audigy для MS-DOS. Это необходимо для правильной работы плат в режиме MS-DOS.

    Для работы программы SBEINIT.COM необходимо, чтобы были загружены файлы HIMEM.SYS и EMM386.EXE. При необходимости программа установки добавляет команды загрузки файлов HIMEM.SYS и EMM386.EXE в файл CONFIG.SYS и создает этот файл, если он отсутствует. В тех редких случаях, когда какая-либо программа не работает с расширенной памятью, добавьте параметр NOEMS в строку вызова программы управления памятью, только если это необходимо.

    Например: DEVICE=C:\WINDOWS\EMM386.EXE NOEMS

    Драйвер SBEINIT.COM можно загрузить в область верхних адресов памяти, записав команду в файл AUTOEXEC.BAT, хотя по умолчанию это не делается.

    Например: LOADHIGH=C:\PROGRA~1\CREATIVE\DOSDRV\SBEINIT.СОM

    Не следует удалять строки запуска программы управления памятью. Не пытайтесь загрузить драйвер SBEINIT.COM в область верхних регистров памяти при наличии параметра NOEMS, если программа SBEINIT.COM не может запустить файлы SBELOAD.EXE или SBECFG.EXE. Если программа MS-DOS несовместима с программой управления памятью, то эмуляция SB 16 не возможна. Платы Live!/Audigy с такими программами не работают.

    Программа установки добавляет следующую команду в файл CONFIG.SYS:
    DEVICE=C:\WINDOWS\HIMEM.SYS DEVICE-C:\WINDOWS\EMM386.EXE

    Для работы платы в программах MS-DOS используются следующие программные ресурсы эмуляции SB платы, не являющиеся аппаратными ресурсами: адреса ввода/вывода (I/O), сигналы запроса прерывания (IRQ), каналы прямого доступа к памяти (DMA). Если возникает конфликт платы с другим устройством, имеется возможность изменить настройку ее ресурсов.

    При изменении распределения ресурсов необходимо соответствующим образом изменить переменные окружения. Просмотреть параметры системного окружения можно с помощью команды SET командной строки DOS. Адреса ввода/вывода используются центральным процессором при связи с периферийными устройствами системы для распределения передаваемых и принимаемых данных.

    Возможные диапазоны адресов ввода/вывода по умолчанию

    Интерфейс SB: 220H-22FH, 240Н — 24FH, 260Н — 26FH, 280Н-28FH
    Интерфейс MPU-401 UART MIDI: З00Н-301Н, 310Н-311Н, 320Н-321Н, 330H-331H
    Музыкальный синтезатор: 388Н-38ВН

    Сигнал запроса прерывания используется устройством для уведомления процессора о необходимости передачи или приема данных для обработки. Сигнал IRQ по умолчанию: 5, 7, 9, 10.

    Канал DMA используется устройством для обмена данными непосредственно с системной памятью. Первый канал DMA: 0, 1, 3. Второй канал DMA: 5, 6, 7.

    Переменные окружения используются для передачи информации о конфигурации оборудования системному программному обеспечению. Для MS-DOS звуковая карта использует переменные окружения CTSYN и BLASTER.

    Переменная окружения CTSYN указывает местонахождение файла CTSYN.INI, который обычно находится в каталоге Windows. Переменная имеет следующий формат: CTSYN=путь, где "путь" означает расположение файла CTSYN.INI.

    Переменная BLASTER определяет базовый адрес ввода-вывода, сигнал IRQ и каналы DMA интерфейса SB. Формат команды BLASTER=A220 I5 D1 Н5 РЗЗО Т6. Команда имеет следующие параметры:

    Аxxx — базовый адрес ввода-вывода интерфейса SB (220).
    Ix — сигнал IRQ, используемый звуковым интерфейсом (5).
    Dx — первый канал DMA, используемый звуковым интерфейсом для работы с 8-ми битным звуком (1).
    Hx — второй канат DMA, для работы с 16-ти битным звуком (5)
    Pxxx — базовый адрес ввода/выводи интерфейса MPU-401 UART (330).
    Tx — тип платы, должен иметь значение 6.

    Чтобы найти текущие ресурсы эмуляции Live!/Audigy SB16 в Windows 9x, выполните следующие действия.

    1. Нажмите кнопку Пуск, выберите команду Настройка, затем — Панель управления.
    2. В окне Панель управления дважды щелкните значок Система.
    3. В диалоговом окне Свойства: Система откройте вкладку Устройства.
    4. Дважды щелкните Звуковые, видео и игровые устройства, а затем — Creative EMUlOKx SB16 Emulation (может называться SB16 Emulation и быть в закладке Creative; зависит от версии драйверов и используемой Windows 9x, если устройство отсутствует — эмуляция может работать в режиме SB Pro, но это не обязательно).
    5. Откройте вкладку Ресурсы.

    Сведения в списке ресурсов помогут настроить конфигурацию программ MS-DOS для работы с платой SB Live!/Audigy.

    Список ресурсов может содержать три записи "Диапазон ввода/вывода" и две записи "Канал DMA". Если количество записей не совпадает, то главными идентификаторами устройства являются адрес ввода/вывода и номер канала DMA.

    Чтобы узнать текущее настройки ресурсов эмуляции SB16 в режиме MS-DOS, выполните следующие действия:

    1. Откройте каталог DOS-драйвера платы Live!/Audigy, то есть:
    С:\PROGRA~1\CREATIVE\DOSDRV
    2. Введите команду SBECFG и нажмите клавишу . Некоторые старые программы могут испытывать трудности при обнаружении платы и при определенном распределении ресурсов. Обычно такие программы ожидают, что плата использует строго определенный набор ресурсов и не загружаются, если эти ресурсы не обнаружены. Если программа работает неправильно, попробуйте изменить конфигурацию эмуляции SB16. Руководствуйтесь следующими принципами.

    Проблема. Не распознается эмуляция Sound Blaster.
    Решение. Попробуйте переключить сигнал IRQ эмуляции SB между 5 и 7, использовать канал DMA 1, порт 220 интерфейса SB.

    Проблема. Не распознается эмуляция MPU-401.
    Решение. Попробуйте использовать адрес порта 330.

    Большинство программ MS-DOS предоставляют некоторые возможности для настройки звука. Обычно предоставляется возможность выбора из списка наиболее распространенных звуковых плат и звуковых устройств.

    В разных программах доступ к звуковым параметрам предоставляется по-разному. Некоторые могут предоставлять на выбор несколько конкретных устройств, например Sound Blaster 16, Roland Sound Canvas и т. д. Другие позволяют настроить параметры музыки и цифрового звука отдельно; например, параметры музыки General MIDI и цифрового звука Sound Blaster. В таких случаях обычно имеется два меню настройки.

    Некоторые программы позволяют настроить адрес порта MIDI и номер сигнала IRQ для музыки и звука. Убедитесь, что эти параметры совпадают с отображаемыми программой SBECFG.EXE или на вкладке Ресурсы диалогового окна

    Некоторые программы дополнительно предлагают выбрать MPU-401/Roland (General MIDI или МТ-32/LAPC-1). Часто такие программы позволяют настроить адрес порта MIDI. Он должен соответствовать используемому адресу порта MIDI в списке ресурсов на вкладке Ресурсы. Те же значения можно найти в поле "MPU-401 (General MIDI, Roland MT-32/LAPC-1) Emulation", отображаемом программой SBECFG.EXE в режиме MS-DOS. Не забудьте включить пакет команд МТ-32 MIDI в программе SBEMIXER, если для воспроизведения музыки выбрано устройство Roland МТ-32 или LAPC-1.

    Большинство программ MS-DOS предлагают меню для выбора звуковых параметров при запуске. Если имеется возможность выбора между General MIDI и МТ-32, следует выбрать General MIDI, поскольку это значение обеспечивает более высокое качество звука. Если необходимо использовать значение МТ-32, то сначала следует переключиться с набора инструментов General MIDI (по умолчанию) на набор инструментов МТ-32 с помощью программы SBEMIXER. По окончании использования набора инструментов МТ-32 не забудьте вернуться к набору инструментов General MIDI.

    Платы Live!/Audigy поддерживает эмуляцию цифрового звука SB, SB Pro, SB 16 и Adlib. Если приложение предлагает на выбор несколько из этих значений, руководствуйтесь при выборе следующим порядком:

    1. Sound Blaster 16
    2. Sound Blaster Pro
    3. Sound Blaster
    4. Adlib

    Используйте служебную программу SBECFG.EXE для получения сведений об аппаратных установках и состоянии платы Sound Blaster Audigy.

    Ввод команды SBECFG.EXE в командной строке позволяет отобразить следующие аппаратные установки:
    - Настройка оборудования PCI: порт, IRQ
    - Эмуляция Sound Blaster: порт, IRQ, DMA
    - Эмуляция MPU-401 (GM, Roland MT-32/LAPC-1): порт
    - Эмуляция Adlib: порт

    Параметры эмуляции отображаются только в том случае, если они включены.

    Используйте программу SBEMIXER.EXE для изменения уровня громкости в наборе инструментов MPU-401, используемом платой Live!/Audigy.

    Можно запускать программу SBEMIXER.EXE с указанием параметров в командной строке, что особенно удобно для опытных пользователей, желающих настроить управляющие файлы с определенными уровнями громкости, или использовать окно программы SBEMIXER. Значения в программе SBEMIXER.EXE не зависят от настройки программы Creative Mixer в Windows 9x.

    Чтобы установить значения программы SBEMIXER из командной строки, выполните следующие действия.

    В командной строке DOS введите одной строкой команду SBEMIXER. Формат команды:

    SBEMIXER [/S:x] [/W:x] [/С:х] [/M:x] [/?]

    где квадратные скобки [ ] обозначают необязательные параметры

    /S:x — громкость синтезатора, может иметь значение от 0 до 127.
    /W:x — громкость сигнала, может иметь значение от 0 до 127.
    /C:x — громкость звука компакт-диска, х может иметь значение от 0 до 127.
    /M:x — режим синтезатора MT-32/LAPC-1 (х=0, эмуляция выключена, 1 -включена).
    /? — просмотр кратких описании параметров.

    Пример команды SBEMIXER
    SBEMIXER /S:64 /W:120 /С:50 /М:0

    Что означает установить громкость синтезатора 64, громкость сигнала 120, громкость звука компакт-диска — 50 и отключить режим синтезатора MT-32/LAPC-1. Если, находясь в окне MS-DOS, настроить громкость сигнала Wave/Master, то изменится громкость эмуляции.

    Чтобы установить значения SBEMIXER в окне Mixer, в командной строке DOS введите SBEMIXER. Режим редактирования позволяет изменять значения с помощью мыши, клавиш , , или клавиш со стрелками.
    Используйте кнопку Save (Сохранить) для сохранения значений до следующего сеанса.

    Программа SBESET.EXE служит для настройки ресурсов SB вручную и отключения эмуляции SB. По умолчанию параметры эмуляции SB в DOS повторяют параметры, заданные в Windows. Например, если в Windows эмуляция SB была отключена, то при загрузке DOS эмуляция SB в DOS будет также отключена. В некоторых случаях может возникнуть необходимость вручную изменить конфигурацию эмуляции SB в DOS, например, при возникновении конфликта в DOS до начала загрузки Windows. Программа SBESET.EXE запускается из командной строки.

    Чтобы установить значения программы SBESET из командной строки, в командной строке DOS введите одной строкой команду SBESET. Формат команды:

    SBESET [-Аххх] [-Iх] [-Dx] [-Нх] [-Рххх] [-dx] [-wx]
    где квадратные скобки [ ] обозначают необязательные параметры

    -Аxxx — базовый адрес ввода/вывода интерфейса SB.
    -Ix — сигнал IRQ, используемый звуковым интерфейсом.
    -Dx — первый канал DMA, используемый звуковым интерфейсом.
    -Hx — второй канал DMA, используемый звуковым интерфейсом.
    -Рxxx — базовый адрес ввода/вывода интерфейса MPU-401 UART.
    -dx — режим эмуляции SB. Если d=0, эмуляция выключена, если 1 — включена.
    -wx — установите х=1, чтобы использовать конфигурацию, заданную Windows, x=0 — использовать конфигурацию, заданную пользователем.

    Пример команды SBESET: SBESET -A240 -I5 -D3 -w0, что означает "задать значения: базового адреса интерфейса ввода/вывода SB — 240, номер IRQ для звукового интерфейса — 5, первого канала DMA для звукового интерфейса — 3, не использовать конфигурацию ресурсов, заданную в Windows".

    Используйте эту программу, чтобы убедиться, что эмуляция SB 16 настроена правильно и работает.

    Если в качестве операционной системы используется Windows Me, то при работе с программами MS-DOS могут быть специфические проблемы.

    Особенности загрузки ядра Windows Me

    Одно из основных изменений в Windows Me — это исключение любого варианта загрузки чистого MS-DOS без графической оболочки. Это привело к опциональной поддержке файлов конфигурации AUTOEXEC.BAT, CONFIG.SYS и невозможности выполнения ряда MS-DOS приложений по причине разной несовместимости с Windows Me. Стандартная загрузка WINDOWS ME выполняется по следующей схеме:

    - инициализация BIOS;
    - обработка MBR и загрузочного сектора;
    - загрузка IO.SYS (в процессе его работы происходит запуск менеджера памяти XMS и активация кэширования жесткого диска);
    - вызов поддержки языковой страницы для программ MS-DOS.

    В остальном загрузка Windows ME мало отличается от ранних версий Windows 9x. Файл WIN.COM как и многие другие системные драйвера, несет декоративную функцию. Вместо WIN.COM происходит запуск C:\WINDOWS\SYSTEM\VMM32.VXD, который продолжает дальнейшую загрузку графической оболочки.

    Причины неработоспособности программ MS-DOS в среде Windows Me

    Если под WINDOWS ME выполнить команду "MEM /C /P", то можно увидеть примерно следующие строчки:

    Modules using memory below 1 MB

    Name Total Conventional Upper Memory
    MSDOS 67 120 (66K) 67 120 (66K) 0 (0K)
    VMM32 2 512 (2K) 2 512 (2K) 0 (0K)
    Free 585 728 (572K) 585 728 (572K) 0 (0K)

    Видно, что любая MS-DOS программа под Windows Me может получить не более 572Кб базовой памяти, за вычетом 7Кб, необходимых для инициализации командного интерпретатора COMMAND.COM. А 572 Кб базовой памяти не всегда достаточно для запуска игр. Увеличить размер базовой памяти можно с помощью "пошаговой" загрузки системы либо физически удалив файлы поддержки языковой страницы для MS-DOS. Это даст прирост нижней базовой памяти на 20Кб. Можно отключить кэширование жесткого диска во время загрузки системы, что ощутимо замедлит процесс загрузки и работы операционной системы. Указанные операции могут дать 614 128 (600Кб) свободной базовой памяти. Upper memory в WINDOWS ME вообще не используется для загрузки ядра MS-DOS и необходимых драйверов. Поэтому, для ряда MS-DOS программ (особенно игр), эта система не пригодна.

    AUTOEXEC.BAT и CONFIG.SYS в Windows Me

    Windows ME не поддерживает напрямую файлы autoexec.bat и config.sys, они содержатся в реестре. Каждый раз при загрузке ОС системные файлы обновляются из реестра:

    REGEDIT4

    [HKEY_LOCAL_MACHINE\System\CurrerltControlSet\Control\SessionManager\Environment]
    "EnvAction"=dword:00000000
    "COMSPEC''=C:\\WINDOW\\COMMAND.COM''
    "windir''="C:\\WINDOW"
    "winbootdir="C:\\WINDOW"
    "PROMPT"="$p$g"
    "TEMP"= ="C:\\WINDOW\\TEMP"
    "TMP"="C:\\WINDOWS\\TEMP"
    "PATH"=="C:\\WINDOW;C:\\NC;C:\\;"
    "RegEnvSize"=dword:00000097
    "RegEnvCRC"=dword:41ab417C
    "ConfigEnvMod"=dword:28fd7b20
    "ConfigEnvSize"=dword:00000000
    "ConfigEnvCRC "=dword: 00000000
    "AuioexecEnvMod"=dword:28fd7b21
    "AutoexecEnvSize"=dword:000000c8
    "AutoexecEnvCRC"=dword:09a9e46a

    При этом config.sys отсутствует, a autoexec.bat имеет вид:

    SET COMSPEC=C:\WINDOWS\COMMAND.COM
    SET windir=C:\WINDOWS
    SET winbootdir=C:\WINDOWS
    SET PROMPT=$p$g
    SET TEMP:=C:\WINDOWS\TEMP
    SET TMP=C:\WINDOWS\\TEMP
    SET PATH=C:\WlNDOWS;C:\NC;C:\;

    В стандартном наборе Windows Me есть стандартная утилита, одной из функций которой является конфигурирования элементов AUTOEXEC.BAT и CONFIG.SYS. Найти ее можно как c:\windows\system\msconfig.exe

    Запуск MS-DOS программ не работающих под Windows Me

    Для запуска MS-DOS в Windows Me необходимо временно перезаписать загрузочные файлы Windows Me в корне диска C: IO.SYS, MSDOS.SYS, COMMAND.COM, AUTOEXEC.BAT, CONFIG.SYS одноименными, от нужной версии WINDOWS 9X. Для запуска WINDOWS ME необходимо обратно перезаписать оригинальные файлы. Таким способом можно организовать работу в системе Windows Me с возможностью запуска программ в MS-DOS 7.1 от Windows 95/98.

    Как это выглядит практически

    В корневом каталоге диска C расположены файлы загрузки IO.SYS, MSDOS.SYS, COMMAND.COM, AUTOEXEC.BAT, CONFIG.SYS от WINDOWS 98, с расширением .98, и одноименные файлы WINDOW ME, с расширением FILENAME.ME.

    MS-DOS 7 от WINDOWS 98 расположен в каталоге C:\DOS, WINDOWS ME установлен в каталог C:\WINDOWS. Загрузочная системой является WINDOWS 98, а подменяемой WINDOWS ME.

    Содержимое файла MSDOS.98

    [Options]
    BootDelay=0
    BootMulti=0
    BootGUI=0
    Logo=0

    Больше никакие параметры не нужны, если от WINDOWS 98 используется только MS-DOS 7.

    Содержимое файла CONFIG.98

    [menu]
    menuitem=Cd, CD-ROM
    menuitem=Clear, Clear boot
    menuitem=Winme, Windows ME

    [Cd]
    dos=high,umb,auto
    device=c:\dos\himem.sys /testmem:off
    device=c:\dos\emm386.exe ram
    device=c:\drivers\cd-rom\asuscd.sys /d:mscd001 /udma2
    country=007,866,c:\dos\country.sys
    shell=c:\dos\command.com c:\dos /e:256 /p

    [Clear]
    dos=high,umb,auto
    device=c:\dos\himem.sys /testmem:off
    shell=c:\dos\command.com c:\dos /e:256 /p
    country=007,866,c:\dos\country.sys

    [Winme]
    dos=high,umb,auto
    device=c:\dos\himem.sys /testmem:off
    shell=c:\dos\command.com c:\dos /e:256 /p
    country=007,866,c:\dos\country.sys

    Содержимое файла AUTOEXEC.98

    @echo off
    path=c:\dos;c:\arc;c:\soft
    set temp=c:\tmp
    set tmp=c:\tmp
    set prompt=$p$g
    if exist c:\windows\win386.swp c:\dos\deltree /y c:\windows\win386.swp>nul
    goto "%config%"

    :Cd
    set blaster=a220 i5 d1 h5 p330 t6
    set ctsyn=c:\drivers\sblive
    c:\drivers\sblive\sbeinit.com
    set sound=c:\drivers\sblive
    set midi=synth:1 map:e
    lh c:\drivers\ati\custom.com q
    lh c:\dos\mscdex.exe /s /d:mscd001 /m:10 /e
    lh c:\dos\smartdrv.exe c d
    lh c:\drivers\keyrus\keyrus.com
    lh c:\drivers\pmouse.com
    goto End

    :Clear
    goto End

    :Winme
    c:\dos\deltree /y c:\command.com>nul
    c:\dos\deltree /y c:\io.sys>nul
    c:\dos\deltree /y c:\autoexec.bat>nul
    c:\dos\deltree /y c:\config.sys>nul
    c:\dos\deltree /y c:\msdos.sys>nul
    copy c:\command.me c:\command.com>nul
    copy c:\io.me c:\io.sys>nul
    copy c:\autoexec.me c:\autoexec.bat>nul
    copy c:\config.me c:\config.sys>nul
    copy c:\msdos.me c:\msdos.sys>nul
    c:\soft\int19h.com
    goto End

    :End

    Предварительно нужно убедится в корректной работе выполняемых команд подмены файлов загрузки. Файл INT19H.COM — маленькая утилита, состоящая всего из двух символов с кодами в 16-тиричном режиме "CD 19". Она вызывает экспресс-перезагрузку вызовом 19 прерывания, минуя процесс инициализации BIOS. В ряде случаев после ее выполнения не происходит даже полной очистки экрана. При загрузке WINDOWS ME можно сделать вызов файла DOS98.BAT, инициализирующего подмену загрузочных файлов WINDOWS ME на аналогичные от WINDOWS 98, создав на него ярлык в Стартовой папке. Если MS-DOS 7 используется иногда, то вызов DOS98.BAT лучше делать самостоятельно.

    Содержимое файла DOS98.BAT

    @echo off
    deltree /y c:\command.com
    deltree /y c:\io.sys
    deltree /y c:\autoexec.bat
    deltree /y c:\config.sys
    deltree /y c:\msdos.sys
    copy c:\command.98 c:\command.com
    copy c:\io.98 c:\io.sys
    copy c:\autoexec.98 c:\autoexec.bat
    copy c:\config.98 c:\config.sys
    copy c:\msdos.98 c:\msdos.sys

    При следующей перезагрузке системой опять будет WINDOWS 98.

    Учтите — я не отвечаю за последствия, если вы сами сделаете что-то не так или полностью соблюдете все выше написанное! :-)

    Игорь Чистик
    Москва, 7 ноября 2002 года

    Вернуться в раздел

  • Dreams...
    Отправить письмо дизайнеру
    к началу страницы
    copyright © 1997-2024 t.r.a.c.k.e.r.s
    All Rights Reserved