Заставить CS4281 работать в Dos

Описания, советы, ремонт, эксплуатация старых IBM PC-совместимых ПК
Ответить
MAZter
Advanced Member
Сообщения: 324
Зарегистрирован: 15.12.2019,02:48
Откуда: Москва

Заставить CS4281 работать в Dos

Сообщение MAZter » 26.11.2020,01:55

Подскажите кто знает, есть звуковая карта с чипом CS4281, в 98 винде работает нормально, но в чистом Dos работать отказывается. Например при запуске setblast.exe из фразы "Testing one two free", успевает произнести лишь "Test" и затем выскакивает ошибка, проверьте DMA, IRQ и т.д., как обычно бывает например в случае конфликтов.

Нашел мануал для программирования? для этой карты.
cs4281tm.pdf
(1.28 МБ) 19 скачиваний
Непонятно, а чем ее собственно программировать, какими утилитами?

Пытаюсь использовать утилиту PCISET:

http://www.uwe-sieber.de/files/pciset.zip

Но там написано, что программа работает только с 8 битами данных, тогда как в мануале используется 32, если я не ошибаюсь. А кроме того при попытке обращения к адресам? более 99h, выдает ошибку 201. Например в некоторых местах мануала встречаются адреса 608h и подобные, как с ними работать с помощью этой утилиты?

Иными словами мой вопрос - могу ли я управлять настройками аудиокарты с помощью этой утилиты? И с какими командами есть смысл поиграться, чтобы достичь желаемого?

Команды которые пробую успешно работают (меняют регистры, в какой-то момент замена регистров делает карту невидимой для драйвера), вроде:

PCISET.EXE 6005 1013 0F0 00000001 00000000

До этого инициализирую карту драйвером cwrdos.exe (пробывал разные версии), никаких ошибок не выдает:

Изображение

Кроме того раньше удавалось использовать какие-то команды, которые проводили продвинутую инициализацию карты, но я их потерял, остался только лог.

Изображение

Наибольший интерес представляет 147 страница мануала, возможно отсюда начинать копать?
Untitled.jpg
Последний раз редактировалось MAZter 26.11.2020,02:05, всего редактировалось 2 раза.

Bobo
Advanced Member
Сообщения: 6485
Зарегистрирован: 16.08.2007,11:42
Откуда: СПб

Вклад в сообщество

Заставить CS4281 работать в Dos

Сообщение Bobo » 26.11.2020,02:03

статья про нее была
http://sannata.org/konkurs/2017/kt1708.shtml
Xeon E5-2670v2/32 Gb, Amiga А4000Т

MAZter
Advanced Member
Сообщения: 324
Зарегистрирован: 15.12.2019,02:48
Откуда: Москва

Заставить CS4281 работать в Dos

Сообщение MAZter » 26.11.2020,02:05

Bobo писал(а):
26.11.2020,02:03
статья про нее была
http://sannata.org/konkurs/2017/kt1708.shtml
Спасибо, но эту статью еще пол года назад видел, она не помогает в данном случае.

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5066
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Заставить CS4281 работать в Dos

Сообщение uav1606 » 26.11.2020,11:32

MAZter, у меня, кажется, такой карты нет, что несколько усложняет дело, но какую-то утилиту для её программирования я могу попробовать состряпать.

По поводу записи в регистры - здесь PCISET не очень-то подходит, она пишет только в регистры PCI какого-то определённого устройства, а тут скорее проще воспользоваться обычным Debug. По поводу адресов - берём Base Address Register 0 (BA0) и прибавляем к нему значение из таблицы регистров. Посмотреть BA0 можно, к примеру, в "Диспетчере устройств", хотя в DOS и Windows они могут отличаться. Этот самый BA0 будет разным на разных машинах. Скажем, если BA0 = 6000h, тогда адрес Sound System Control Register будет 6000h+74Ch=674Ch.
Тут ещё проблема в том, что в этом draft-мануале не указан бит включения эмуляции SB (стр. 169). Вот тут вроде бы что-то есть:
https://www.spinics.net/lists/mm-commits/msg05831.html
Вероятно, этот бит - третий, т.е. номер 2, если считать с нуля.
Соответственно, чтобы туда что-то записать, можно воспользоваться Debug, дав команду:
o674c 4
(Но это если у Вас базовый адрес 6000h - это просто для примера.)
Ну а дальше следовать инструкциям со страницы 161 того draft, т.е. установить DMA, IRQ и т.п. Там довольно много этапов, проще, наверное, попытаться разобраться, почему не работает cwrdos.exe - он, по идее, должен всё это сам сделать. На Vogons писали, что у кого-то работало:
https://www.vogons.org/viewtopic.php?t=74549
У Вас после запуска cwrdos.exe нет ни PCM, ни FM? На других машинах пробовали?

MAZter
Advanced Member
Сообщения: 324
Зарегистрирован: 15.12.2019,02:48
Откуда: Москва

Заставить CS4281 работать в Dos

Сообщение MAZter » 26.11.2020,19:33

uav1606 писал(а):
26.11.2020,11:32
У Вас после запуска cwrdos.exe нет ни PCM, ни FM?
Не уверен. Только что попробывал, звук работает в:

Indycar, GTA,

Не работает:

второй Indycar, Duke3D (работает только midi), Doom (только midi), MK, Network Q RAC Rally, Prince of Persia, Screamer 2

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5066
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Заставить CS4281 работать в Dos

Сообщение uav1606 » 26.11.2020,22:23

А что за материнка у Вас? Вообще, на PCI-ных звуковых всё время те или иные проблемы с эмуляцией SB в DOS, и про эту карту такое пишут тоже.

MAZter
Advanced Member
Сообщения: 324
Зарегистрирован: 15.12.2019,02:48
Откуда: Москва

Заставить CS4281 работать в Dos

Сообщение MAZter » 26.11.2020,22:32

uav1606 писал(а):
26.11.2020,22:23
А что за материнка у Вас?
Материнка в составе лэптопа ThinkPad i1124 2609-51J (240x)

serenitatis
Newbie
Сообщения: 52
Зарегистрирован: 23.10.2020,16:33
Откуда: Москва

Заставить CS4281 работать в Dos

Сообщение serenitatis » 27.11.2020,10:11

Вот с этим драйвером у меня получилось кое-как завести звук на аналогичном чипе. Но все равно CS 4281 с точки зрения совместимости с ДОСом очень плохой вариант и на что-то такое рассчитывать смысла нет. FM у меня с этим драйвером эмулируется очень странно. Где-то он есть, а где-то его нет. Например, в Prince of Persia у меня весь звук идет через FM, а в Duke Nukem 3D FM не виден, но PCM есть. Это если говорить про сеанс DOS в Windows 98. Если перезагрузиться в просто DOS, то там вообще полный трэш. Но указанный драйвер самый лучший, я перепробовал несколько и с этим удалось хоть что-то получить в чистом DOS.

Выложу еще WDM драйвер, но там на что-то можно расчитывать только в сеансе DOS запущенном в Windows 98. В чистом DOS c ним вообще ничего работать не будет. Но в Дюке, например, у меня была с ним и музыка, и PCM.

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5066
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Заставить CS4281 работать в Dos

Сообщение uav1606 » 27.11.2020,10:29

Материнка в составе лэптопа ThinkPad i1124 2609-51J (240x)
На ноутбуках обычно ещё больше проблем со звуком PCI, так что вряд ли тут получится что-то существенно улучшить...
В стационарнике хотя бы можно плату по слотам попереставлять, меняя таким образом IRQ, ну и т.п.

Ответить