Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Реплика Innovation SSI 2001
RSS

Реплика Innovation SSI 2001

Воссоздание участниками форума этой ISA8 карты.

<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 * 8 9
Печать
 
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
scg написал:
[q]
Так и не разобрался как выделить память размером с сегмент или немного больше.
[/q]
А с чем конкретно возникли проблемы?
Используются вот эти функции:
http://www.datadoctor.biz/data...age23.html
Единственный нюанс, который я помню, это что по умолчанию DOS запускаемой программе (особенно это касается COM-файла) выделяет всю доступную память, и, соответственно, выделить её функцией 48h не получится. Помнится, я её сначала освобождал, а потом заново выделял. :-) Как-то так:


  mov ah,4ah
  mov bx, 1000h
  int 21h
  
  mov ah, 48h
  mov bx, 100
  int 21h
  
  mov Buf1Addr, ax


Первая функция (4ah) уменьшает уже выделенную память, вторая её выделяет. Естественно, число 1000h подходило для моей маленькой программы, у Вас оно будет другое.
scg
Newbie


Всего сообщений: 108
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2017
uav1606 написал:
[q]
Единственный нюанс, который я помню, это что по умолчанию DOS запускаемой программе (особенно это касается COM-файла) выделяет всю доступную память, и, соответственно, выделить её функцией 48h не получится. Помнится, я её сначала освобождал, а потом заново выделял. :-)
[/q]
Этого я не знал. С другой стороны, во-первых, не понятно, сколько нужно оставить памяти, тем более, что программа использует димамическое выделение объектов. А во-вторых, я правильно понимаю, что по умолчанию вся доступная память доступна для аллокатора c++? Однако, у меня не получается выделить 2 блока по 64К: по выходу из программы появляется о шибка о проблемах с памятью и невозможностью запустить command.com. На самом деле памяти нужно не очень много: 64K - RAM, 64K - ROM и IO, еще 64K временно на загрузку файла, плюс немного на динамические структуры и объекты. 640К действительно должно хватить, но не хвататет. Сейчас смотрю в сторону EMS.
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
А в C++ Вы потом память освобождаете через free? В конце программы?
scg
Newbie


Всего сообщений: 108
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2017
uav1606
Разумеется. Только не через free(), а через delete.
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
Может, тогда попробуете через malloc и free? А то насчёт delete я вообще не уверен, под DOS'ом не пользовался. Если что, я сейчас про Turbo С++.
scg
Newbie


Всего сообщений: 108
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2017
uav1606 написал:
[q]
Может, тогда попробуете через malloc и free?
[/q]
Как это ни странно, помог farmalloc() и только с huge указателем. Причем, превод компилятора в huge режим эффекта не давал. Пришлось менять типы указателей по всему коду. Удалось выделить два буфера для эмулятора процессора и загрузить файл SID. Посмотрим, что будет дальше.
scg
Newbie


Всего сообщений: 108
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2017
Готов релиз для DOS версии: https://stdio.ru/download/ssi-2001/osp2001-0.1.zip
Поскольку исходники Open Cubic Player распространялись под лицензией GPL2, то я тоже обязан их опубликовать.
Исходный код и последние релизы можно найти здесь: https://stdio.ru/download/ssi-2001/

Было бы неплохо, если бы кто-нибудь проверил минимальную конфигурацию машины, на которой DOS проигрывателя cохранит работоспособность.
По поим ощущениям 20-30МГц должно хватить. Запас производительности можно прикинуть нажатием кнопки 'F' (Fast Forward). В этом случае симуляция не синхронизируется с таймером и идет с максимально возможной скоростью. Также, если запустить программу с ключом /V (verbose), то в строке времени отобразится поле TE (Timer Error). Его значение увеличивается каждый раз, когда прерывание от таймера приходит раньше чем завершится обработка предыдущего - то есть тормозит симуляция.
Fagear
Advanced Member


Откуда: Москва, САО
Всего сообщений: 1228
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 янв. 2010
scg написал:
[q]
Было бы неплохо, если бы кто-нибудь проверил минимальную конфигурацию машины, на которой DOS проигрывателя cохранит работоспособность.
[/q]
Не сочтите за рекламу, но именно этим я сейчас займусь онлайн, вот тут.
Fagear
Advanced Member


Откуда: Москва, САО
Всего сообщений: 1228
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 янв. 2010
scg написал:
[q]
Было бы неплохо, если бы кто-нибудь проверил минимальную конфигурацию машины, на которой DOS проигрывателя cохранит работоспособность.
По поим ощущениям 20-30МГц должно хватить.
[/q]
В общем, получил некоторые результаты.
Версию под win9x проверял вплоть до Pentium (на Socket 5) на частоте 60x1.5=90 МГц. Тянет без проблем, запас ещё большой по скорости.
Версия под DOS дала такие результаты: 386DX-33 хватает с минимальным запасом, 386SX-40 тоже вроде хватает, но запаса практически нет. 286-20 уже явно не хватает, воспроизведение заторможенное.

Сюрпризом же стало то, что оно завелось даже на TurboXT машине! Единственное, была выведена только одна строка (название композиции), а имя автора, копирайт и время не вывелось. Однако воспроизведение пошло! Пусть и ооооочень медленно, но тем не менее.

Однако, при ближайшем сравнении я обнаружил, что этот плеер звучит немного иначе, чем старый вариант под win9x под кодовым именем "ssidpl9x" (он же "ssid_w9x").
Вот один пример.
Кусок на ssid_w9x
Кусок на osp2001-win

На мой слух osp2001 съедает часть звуков, комбинированные звуки "рассыпаются" по времени, в целом звучит немного странно. Возможно, слишком редко отправляет данные в SID?
scg
Newbie


Всего сообщений: 108
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2017
Fagear написал:
[q]
В общем, получил некоторые результаты.
[/q]
Спасибо, посмотрел запись вашего стрима. Я хоть и знал, что на 286-м он не пойдет, но надеялся до последнего. :)


Fagear написал:
[q]
На мой слух osp2001 съедает часть звуков, комбинированные звуки "рассыпаются" по времени, в целом звучит немного странно. Возможно, слишком редко отправляет данные в SID?
[/q]
По правде говоря, скорость обновления задается в заголовке файла, либо выставляется настройкой Коммодоровского таймера CIA1. И то и другое я учитываю. Тут нужно брать конкретный SID и разбираться.
С другой стороны, есть SID файлы, в которых передача данных на SID идет постоянно, поэтому требуется точная потактовая симуляция процессора 6510. Такие файлы называются RSID (Real SID) и у них специально изменен Magic Dword в заголовке, чтобы отличать их от обычных SID. Кроме Magic'ов эти два вида файлов никак не отличаются. Так вот, ssidpl9x умеет играть такие файлы, а osp2001 - нет (там симуляция процессора более грубая). Человек, который грабил этот SID вполне мог по ошибке указать неверный тип.
Тут, повторюсь, мне нужно где-то взять этот файл и поразбираться - возможно что и у меня баг.
<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 * 8 9
Печать
Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Реплика Innovation SSI 2001
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS