Вход

Просмотр полной версии : Доработки General Sound



Northwood
13.12.2011, 19:35
Всем добрый день.

Хочу посвятить тему доработкам General Sound-а, разумеется я имею ввиду именно General Sound на рассыпухе, а не более современные разработки.

1. Разгон GS:
Самая главная проблема General Sound-а, которая и заставила меня поднять эту тему - нехватка вычислительных ресурсов процессора для одновременного воспроизведения инструментов в 4-х каналах. Увы, есть ряд MOD-мелодий, на которых эта проблема выливается в скрежет и снижение тональности.

А теперь смотрим:
Тактовая частота процессора и ОЗУ в GS - 12 МГц.
Частота прерываний процессора - 37.5 КГц. Проигрывание звука происходит по прерываниям, т.е. частота дискретизации звука = частоте прерываний.

При этом тактов за прерываний у процессора всего лишь 12000 / 37.5 = 320. И как показала практика, этого недостаточно.

Например, запустите какой-нибудь редактор MODов, загрузите любую мелодию, имеющую зацикленные инструменты. Зайдите в режим редактирования, и очистите от нот и параметров текущую позицию. Выберите какой-нибудь зацикленный инструмент, введите любую ноту этого инструмента в одном канале - GS его будет отлично воспроизводить. Перейдите во второй канал, введите ноту этого же инструмента - GS будет уже отлично воспроизводить этот инструмент в двух каналах. Тоже самое проделайте и для третьего канала - тоже будет всё ОК.
Наконец, как только вы введёте ноту этого же инструмента в 4-м канале, начнутся глюки - тональность воспроизведения упадёт сразу во всех 4 каналах, звук превратится в скрежет.

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

Причина этой ситуации понятно - когда (в 1995 г) авторы разрабатывали железо GS, тогда самое лучше, что было в наличии из Z80 - это 10-МГц вариант Z84C0010PEC, и авторы и так его разогнали его до 12 МГц. А снижать частоту прерываний ниже 37.5 КГц, тоже было уже нельзя - звук тогда был бы значительно хуже по качеству, и вся затея стала бы бессмысленной. Авторы выбрали золотую середину, доступной в те годы.

Теперь же ситуация изменилась - появились Z84C0020PEC, расчитанные минимум на 20 МГц, а так же если постараться, то можно найти и статическое ОЗУ с временем доступа 55 нс и даже быстрее.

Поэтому я предлагаю несколько вариантов доработки, одна из них наиболее простая и требует минимальных затрат. С неё и начну:

Вариант 1)
Нужно заменить кварцевый резонатор с 12 МГц на 15 МГц. Чтобы получить прежнюю частоту прерываний 37.5 КГц, нужно будет заменить микросхему двоичного счётчика 1533ИЕ19 на десятичный, если удастся найти двойной десятичный счётчик, то это будет то что доктор прописал. Коэффициент деления можно будет получить 400, что даст нам частоту прерываний 37.5 КГц и 400 тактов процессора за прерывания вместо 320.

Кварц на 15 МГц достать можно, я поищу, что можно найти из подходящих счётчиков, и займусь доработкой.

После этого хочу попробовать другие варианты, о которых напишу позже.

2. Расширение памяти GS до 2Мб при обязательном отсутствии на плате GS микросхем памяти 62256.

Суть простая:

По классической схеме расширения ОЗУ до 2 Мб, на плате GS должны стоять двумя бутербродами 4 микросхемы основного ОЗУ общим объёмом 128 Кб, и на плате расширения установлено ОЗУ объёмом 2 Мб. При этом первые 128 Кб (4 страницы) просто перекрываются микросхемами ОЗУ на плате GS, поэтому на плате расширения эти страницы просто остаются не использованными.

Моя плата расширения ОЗУ призвана устранить этот недостаток, теперь ставить на плату GS 2 бутерброда ОЗУ не надо, соответственно на 4 микросхемы 62256 уменьшаются и материальные затраты. Кроме этого, решается вопрос избавления от медленных микросхем ОЗУ 62256 с временем доступа 120-150 нс, что даёт возможность потом разогнать GS. Кроме этого, в качестве логики я решил использовать микросхемы в корпусах DIP, т.к. достать их проще, чем в SOP или SOIC корпусах.

Эта схема расширения ОЗУ требует наличие 3-х доработок на плате GS. Если у вас GS собран из новодела на новой плате, на которой уже учтено расширение памяти до 2 Мб по старой схеме, то доработки № 2 и № 3 у вас уже есть, остаётся ввести только доработку № 1.

Все обозначения сигналов я использовал по схеме GS из PDF файла, сами PDF с принципиальной и монтажной схемами GS во вложении.

Описание всех доработок платы GS:

№ 1 B5 - берётся с DD9 (ИД7) выв.14 (сигнал RAM1) - активируется в адресном пространстве #4000-#7FFF
№ 2 B6 - подаётся на DD13 (ИД7) на выв.6 вместо сигнала /K1 (блокировка ПЗУ при обращении к любой странице ОЗУ)
№ 3 B7 - берётся с DD7 (ТМ8) выв.9 (тактовый сигнал порта #00)

Принципиальная схема:

http://s018.radikal.ru/i524/1307/47/60d54761f791t.jpg (http://s018.radikal.ru/i524/1307/47/60d54761f791.gif)

Рисунок платы в масштабе 3х1:

http://i022.radikal.ru/1307/69/7114ed037956t.jpg (http://i022.radikal.ru/1307/69/7114ed037956.gif) http://s40.radikal.ru/i087/1307/d3/c6cc27239cfbt.jpg (http://s40.radikal.ru/i087/1307/d3/c6cc27239cfb.gif)

Смоделированное изображение будущей печатной платы, тоже в увеличенном масштабе:

http://s020.radikal.ru/i714/1307/9b/cf74468e2ab3t.jpg (http://s020.radikal.ru/i714/1307/9b/cf74468e2ab3.gif) http://s019.radikal.ru/i612/1307/da/638b061a0e22t.jpg (http://s019.radikal.ru/i612/1307/da/638b061a0e22.gif)

список микросхем:

DD1-DD4 - K6T4008C1B-GB55 (можно GB70)
DD5 - 1533КП11
DD6 - 1533ТМ8
DD7 - 1533ИД7
DD8 - 1533ЛИ1 (лучше 1531 или 531 в случае разгона процессора)
DD9 - 1533ЛЕ1 (лучше 1531 или 531 в случае разгона процессора)

По микросхемам памяти: Самая главная здесь микросхема ОЗУ - DD1, без неё GS работать не будет. Остальные можно ставить, можно нет, от этого будет зависеть кол-во найденных страниц памяти.

Сами микросхемы ОЗУ можно ставить и меньшего объёма, если они будут в таком же корпусе SOP-32.

Доступный объём ОЗУ для МОДов будет точно таким же, как и с классическим расширением ОЗУ:

1 микросхема DD1 емкостью 512 Кбайт - 512-16-32 = 464 Кб ("PRINT IN 179" должен выдать 14 страниц)
2 микросхемы емкостью по 512 Кбайт - 1024-16-32 = 976 Кб ("PRINT IN 179" должен выдать 30 страниц)
3 микросхемы емкостью по 512 Кбайт - 1536-16-32 = 1488 Кб ("PRINT IN 179" должен выдать 46 страниц)
4 микросхемы емкостью по 512 Кбайт - 2048-16-32 = 2000 Кб ("PRINT IN 179" должен выдать 62 страницы)

32 Кб из общего объёма памяти недоступны, т.к. 0-я страница ОЗУ перекрывается ПЗУ. Эта особенность присутствует и в классическом расширении, и в этом.

16 Кб из общего объёма используются самим GS для собственных нужд, это 1-я страница ОЗУ, и её половинка проецируется в адресное пространство #4000...#7FFF.

Фото готовых 4-х плат:

http://s019.radikal.ru/i623/1308/de/2b0f428bcdcat.jpg (http://s019.radikal.ru/i623/1308/de/2b0f428bcdca.jpg) http://s020.radikal.ru/i700/1308/08/ebc38ae961cat.jpg (http://s020.radikal.ru/i700/1308/08/ebc38ae961ca.jpg)

Фото собранной платы:

http://i020.radikal.ru/1308/7e/b2c57c876304t.jpg (http://i020.radikal.ru/1308/7e/b2c57c876304.jpg) http://i053.radikal.ru/1308/cc/00d2e51195c6t.jpg (http://i053.radikal.ru/1308/cc/00d2e51195c6.jpg)

В идеале разъём на плате должен быть 36-контактным, но такой найти не реально. Зато без проблем можно купить 40-контактный, поэтому на плате я предусмотрел лишние 4 отверстия.

Фото, как должна быть установлена плата расширения в случае применения 40-контактного разъёма:

http://s004.radikal.ru/i205/1308/78/9f5dc230cc3et.jpg (http://s004.radikal.ru/i205/1308/78/9f5dc230cc3e.jpg) http://i078.radikal.ru/1308/27/50ba5d184ed1t.jpg (http://i078.radikal.ru/1308/27/50ba5d184ed1.jpg)

Результат:

http://s017.radikal.ru/i427/1308/41/8d2c84c2cb33t.jpg (http://s017.radikal.ru/i427/1308/41/8d2c84c2cb33.jpg) http://s60.radikal.ru/i170/1308/33/f49da8556f7bt.jpg (http://s60.radikal.ru/i170/1308/33/f49da8556f7b.jpg)

osa
13.12.2011, 19:45
мазила:)

psb
13.12.2011, 20:48
Точно такой же скрежет наблюдается на ряде MOD-мелодий, которые увы, нормально не послушаешь.
современные плееры и современная прошивка позволяют нормально слушать эти моды, увеличивая длину циклов до некоторой большей величены.

Northwood
18.12.2011, 18:46
современные плееры и современная прошивка позволяют нормально слушать эти моды, увеличивая длину циклов до некоторой большей величены.

Есть пару MODов, с которыми обновление прошивки не поможет, т.к. на них GS не изредка подтормаживает, а конкретно тормозит и в хлам убивает звук.

Я сделал две аудиозаписи в MP3 на этих двух модах:

Название: 01 - Crystal Rain_GS.mp3
Размер: 3.38 Мб
http://mp3sort.ifolder.ru/27657438

Название: 02 - Morgen Stemning_GS.mp3
Размер: 2.25 Мб
http://mp3sort.ifolder.ru/27657439

Оба MODа во вложении.

Я уже сделал доработку - достаточно было допаять всего 1 микросхему 1533ЛИ1 и заменить кварц на 15 МГц, в результате я увеличил число тактов с 320 до 400. На одном из этих двух модах GS идёт уже без глюков, на втором иногда кратковременно всё равно подтормаживает, но уже не убивает звук в хлам.

Я сделаю всё-таки 440 тактов, этого должно хватать на безглючное воспроизведение любых модов, для этого понадобится кварц на 16.5 МГц или на 33 МГц и вместо 1533ЛИ1 нужно будет допаять 1533ЛИ3.

Единственный подводный камень, с которым я столкнулся при разгоне General Sound-а, это медленное ОЗУ, которое установлено на моей плате (120 нс и 150 нс), из-за него 12 МГц тактовой частоты процессора почти оказалось пределом. Так что данная доработка требует и замены всего ОЗУ, поэтому мне придётся выкинуть родное ОЗУ и заменить его на новое ОЗУ со временем доступа 55 нс (можно и 70 нс ставить смело), заодно расширив объём памяти.

psb
18.12.2011, 19:22
Есть пару MODов, с которыми обновление прошивки не поможет, т.к. на них GS не изредка подтормаживает, а конкретно тормозит и в хлам убивает звук.
вообще-то, после релупера (встроенного в прошивку 1.05а или встроенного в любой плеер) мод играет очень прилично, хотя и не идеально, согласен (изредка есть маленькие тормоза).

но, опять же, хочу вас "обрадовать". эмулятор, в котором GS работает на 20 мгц, без релупера не тормозит так явно, но ясно слышны щелчки во время этих коротких сэмплов, т.е. скорость здесь не всё решает. а вот со включенным релупером уже все хорошо и не щелкает.

vlad
18.12.2011, 19:27
Единственный подводный камень, с которым я столкнулся при разгоне General Sound-а, это медленное ОЗУ, которое установлено на моей плате (120 нс и 150 нс), из-за него 12 МГц тактовой частоты процессора почти оказалось пределом. Так что данная доработка требует и замены всего ОЗУ, поэтому мне придётся выкинуть родное ОЗУ и заменить его на новое ОЗУ со временем доступа 55 нс (можно и 70 нс ставить смело), заодно расширив объём памяти.
Т.е. дорабатывать ROM не нужно? Пока эксперименты с GS не ставил, т.к. занят более интересным звуковым девайсом. Ради интереса, все же попробую на Reverse установить другую частоту проца GS, можно до 100МГц (ограничение SRAM 10нс) :)

Northwood
18.12.2011, 19:48
Т.е. дорабатывать ROM не нужно?

Не нужно, т.к. частота прерываний остаётся 37.5 КГц. Доработка заключается в изменении коэффициента деления счётчиков, сами микросхемы счётчиков останутся родные. Делается это использованием входа "RESET" всего одного счётчика 1533ИЕ19 и новым элементом 1533ЛИ3.

Но анализ схемы расширения ОЗУ в GS у меня вызвал огромное желание переделать и эту часть, но в этом случае придётся модернизировать прошивку. Дело в том, что по оригинальной схеме, при подключении платы расширения, одна из страниц основного ОЗУ размером 32 Кбайта перекрывается дополнительным ОЗУ, т.е. при расширении до 512 Кбайт, на самом деле доступно лишь 480 Кбайт, из них под МОДы доступно 464 Кбайт. Мне это очень не нравится. Это косяк на этапе разработки архитектуры памяти, и я хочу это переделать, но придётся покопать и прошивку.

Впрочем, я пока что временно расширение ОЗУ сделаю на макетной плате, и пока этот косяк оставлю на месте, а позже переделаю. Всё-таки 512 Кбайт лучше, чем 480 Кбайт, или 1024 Кбайта лучше чем 992 Кбайт.



Пока эксперименты с GS не ставил, т.к. занят более интересным звуковым девайсом. Ради интереса, все же попробую на Reverse установить другую частоту проца GS, можно до 100МГц (ограничение SRAM 10нс) :)

---------- Post added at 17:48 ---------- Previous post was at 17:37 ----------


вообще-то, после релупера (встроенного в прошивку 1.05а или встроенного в любой плеер) мод играет очень прилично, хотя и не идеально, согласен (изредка есть маленькие тормоза).

Разгон GS + новая прошивка должны решить проблему тормозов окончательно. 16.5 МГц и 440 тактов за прерывание вместо 320, должно хватить на любые МОДы.



но, опять же, хочу вас "обрадовать". эмулятор, в котором GS работает на 20 мгц, без релупера не тормозит так явно, но ясно слышны щелчки во время этих коротких сэмплов, т.е. скорость здесь не всё решает. а вот со включенным релупером уже все хорошо и не щелкает.

Отлично, новую ПЗУ 27C256 я сегодня уже купил, и видимо не зря :)

vlad
18.12.2011, 20:08
Не нужно, т.к. частота прерываний остаётся 37.5 КГц. Доработка заключается в изменении коэффициента деления счётчиков, сами микросхемы счётчиков останутся родные. Делается это использованием входа "RESET" всего одного счётчика 1533ИЕ19 и новым элементом 1533ЛИ3.
Мне еще проще, достаточно заменить коэффициент, сейчас он 320 (12MHz / 320 = 0.0375MHz = 37.5kHz)
Длительность сигнала INT# тоже придется подкорректировать, т.к. она привязана к базовой частоте (длительность #INT = 32 такта)
Думаю, что у Вас ROM успеет, если нет, то придется делать механизм теневого ОЗУ (32К) и управления частотой...

Northwood
18.12.2011, 20:08
Мне еще проще, достаточно заменить коэффициент, сейчас он 320 (12MHz / 320 = 0.0375MHz = 37.5kHz)
Длительность сигнала INT# тоже придется подкорректировать, т.к. она привязана к базовой частоте (длительность #INT = 32 такта)
Думаю, что у Вас ROM успеет, если нет, то придется делать механизм теневого ОЗУ (32К) и управления частотой...

Если делать по простому, то достаточно уменьшить ёмкость конденсатора. Если делать более сложный приём, то лучше всего сделать защёлку ИНТа на триггере 1533ТМ2, точно такую же, как я сделал для своего Пентагона-1024 1.4, т.е. чтобы сигнал ИНТ прекращался как только процессор выставит подтверждение приёма ИНТ на выходах IORQ и M1. И ничего больше делать будет не нужно.

VNN_KCS
19.12.2011, 00:42
Попробовал на Спеке. В эмуле конечно. И ничего так звучат. Правда первая мелодия глюканула 1 раз на инструменте, звучащем как колокольчик. А вторая нормально.
Сразу оговорюсь - это заслуга не моя, а Evgeny Muchkin. Он там какой-то релупер мне прислал и я его тут применил.
з.ы. Правда индикаторы подтормаживают.
И где ты такие треки классные черпаешь?

Northwood
19.12.2011, 01:13
И где ты такие треки классные черпаешь?
Много классных треков мне подкинул в своё время Миша Борисов, это было в 98-99 годах, потом в 2001 году я нашёл в Интернете ещё. У меня много есть ещё лучших треков, чем эти два, и все они написаны компьютерным музыкантом Jogeir Liljedahl, он просто шедевры написал. Но многие из них имеют другой формат с больше чем 4 каналами, поэтому General Sound-у не по зубам.

BYTEMAN
19.12.2011, 01:51
Jogeir Liljedahl
Я только его TinyTunes слышал. Там, кстати, первый трек - это кавер Laxity - Alibi с С64. От оригинала почти не отличима.
Вот оригинал: http://hvsc.perff.dk/MUSICIANS/L/Laxity/Alibi.sid

VNN_KCS
19.12.2011, 02:55
все они написаны компьютерным музыкантом Jogeir Liljedahl
Попытаюсь поискать. Правда я только на modarchive.org треки скачиваю. Пока других не знаю.

---------- Post added at 00:55 ---------- Previous post was at 00:54 ----------


Вот оригинал: http://hvsc.perff.dk/MUSICIANS/L/Laxity/Alibi.sid
Это sid. А надо mod. SID General Sound не понимает.

psb
19.12.2011, 02:57
Это косяк на этапе разработки архитектуры памяти, и я хочу это переделать, но придётся покопать и прошивку.
прошивку можно не трогать, там и так расчет на 64 страницы озу.

Northwood
19.12.2011, 11:03
прошивку можно не трогать, там и так расчет на 64 страницы озу.

При той организации в любом случае одна страница выпадает из поля видимости. Кроме того, у меня стоит задача выкинуть основное ОЗУ, т.к. те микросхемы медленные (120 - 150 нс) и не поддаются разгону, и всё ОЗУ заменить на новые микросхемы ёмкостью 4 Мбита (512 Кбайт), для начала одну поставлю, а позже подключу и вторую.

Возьмём пример, если нужно подключить 512 Кбайт:

Для адресации к страница ОЗУ, порт #00 должен принимать значения от #01 до #10

0000 0001
...
0001 0000

У нас шина адреса ОЗУ с A0 по A14 напрямую подключена к процессору, остаются 4 разряда с A15 по A18. Но порт #00 для выбора страниц задействует 5 разрядов, только лишь потому что значение #00 выбирает ПЗУ. Т.е. для выборки страниц ОЗУ остаются не доступными даже два значения - #00 и #10, т.е. у нас потеряются даже не 32Кбайта, а уже 64 Кбайта.

Аналогично при подключении ОЗУ 1Мб - для адресации к ОЗУ нужно 5 разрядов порта, но порт будет задействовать 6 разрядов.

0000 0001
...
0010 0000

Кроме того, такая реализация неоправданно усложняет схему выборки ОЗУ, когда всё ОЗУ реализовывается на 1-й 2-х микросхемах, т.к. ОЗУ нужно отключить не по значению одного какого-то бита, а по значению целого порта #00.

Поэтому я предлагаю:

1) Т.к. подключение больше чем 512Кбайт в любом случае требует новый триггер порта, то добавить 1533ТМ8.

2) Т.к. дополнительный триггер ТМ8 уже имеется, то переключение ОЗУ-ПЗУ повесить на старший (7-й) разряд порта, причём значение "0" должно включать ПЗУ в адресное пространство #8000-#FFFF, а значение "1" должно включать в это же адресное пространство ОЗУ.
Разряды с 0 по 6 должны задавать номер страницы ОЗУ. При этом 7 бит в номере страницы ОЗУ позволит адресовать 4 Мбайта ОЗУ.

Это позволит:

1) Значительно упростить схему выборки ОЗУ-ПЗУ, когда на входы CS ПЗУ можно будет напрямую подключить к прямой выходу старшего разряда ТМ8, а CS ОЗУ - напрямую подключить к инверсному выходу старшего разряда ТМ8. Микросхему ИД7 после этого можно будет выкинуть.

2) Биты с 0 по 3 порта #00 можно будет без головной боли подавать на адресную шину ОЗУ A15-A18 (через коммутатор на КП11), а битами порта 4 по 6 можно будет управлять выбором микросхем ОЗУ, управляя сразу 4 метрами ОЗУ. Роль 1533КП11 будет заключаться во включении 0-й страницы ОЗУ, если А15 = 0, т.е. на вход SELECT КП11 надо просто подключить А15, входы А0...А3 подать на землю, а на B0...B3 подать 4 разряда порта #00.

BYTEMAN
19.12.2011, 11:45
http://modarchive.org/index.php?request=view_by_moduleid&query=106484
Музычка была в GSной версии VideoPool.

volton
19.12.2011, 13:52
http://amp.dascene.net/detail.php?view=3806
http://amp.dascene.net/detail.php?detail=modules&view=3806 воть все работы его :)

---------- Post added at 12:52 ---------- Previous post was at 12:39 ----------

да. и еще :) если бы хотя бы кто то кто занимается железом разгоном как в данном случае имели хоть какое то представление о коммандах применяемых в моде то я думаю проблемм бы было нааамного меньше :)
а то нажал одну нотку... потом перешел на другой канал нажал нотку... потом на последний и получается скрип :(
прошивку править надо !
http://amp.dascene.net/downmod.php?index=19740 потестите на гс как это будет граццо :)

psb
19.12.2011, 16:20
потом на последний и получается скрип
прошивку править надо !
прошивку надо не править, а юзать давно исправленную;)

Northwood
19.12.2011, 16:57
прошивку надо не править, а юзать давно исправленную;)

В крайнем случае можно будет опубликовать 3 версии доработки:

1) Родное ОЗУ меняется на аналогичное, но с большим быстродействием, плюс добавляется новое ОЗУ - по штатной схеме расширения, конфигурация порта #00 остаётся прежней, прошивка версии 1.05 без дополнительной правки.

Недостаток - кроме памяти расширения нужно тратить деньги и на замену основного ОЗУ объёмом 128Кбайт, объём расширенной памяти либо ограничивается 480 Кб, и это без учёта тех 16Кбайт, которые будут недоступно для МОДов, либо получаем много корпусов ОЗУ если нужно больше 480Кб.

2) Родное ОЗУ полностью выкидываем, ставим новое ОЗУ с нужным объёмом, хоть 512Кб, хоть 1024Кб, хоть 2048Кб в любых вариациях исполнения - хоть одной микросхемой, хоть несколькими микросхемами, конфигурация порта #00 остаётся прежней, прошивка версии 1.05 без дополнительной правки.

Недостаток - по сравнению с первым вариантом, будет доступно ещё на 32Кбайта меньше, т.е. например при расширении до 512Кбайт, доступно будет 448 Кбайт, а для МОДов ещё на 16 Кбайт меньше, т.е. 432 Кбайта.

3) Родное ОЗУ полностью выкидываем, ставим новое ОЗУ с нужным объёмом и в любых вариациях исполнения, изменяем конфигурацию порта #00 и под него правим прошивку версии 1.05.

Недостаток, хотя и условный - нужно править прошивку, данное исправление у меня не вызовет сложностей.
Преимущество - будет доступен весь объём ОЗУ, например при расширении до 512Кбайт - все 512Кбайт, при этом для МОДов будет доступно 496Кбайт, при расширении до 1024Кбайт - будут видны все 1024Кбайт, для МОДов будет доступно 1008 Кбайт.

volton
19.12.2011, 17:33
Northwood,метровых модулей не так и много :( максимум штук двадцать а то и менее наберется :)

Northwood
19.12.2011, 17:39
Northwood,метровых модулей не так и много :( максимум штук двадцать а то и менее наберется :)

Уже ради этого можно ставить метр памяти :) Плюс ради МОДов имеющих промежуточный объём между 440 и 1008 Кбайт.

Northwood
20.12.2011, 14:07
Вчера я закончил работу над схемой расширения ОЗУ GS, которая позволит не ставить основную память на плату GS.

Мне подкинули уже готовую схему расширения памяти до 2Мб, но она расчитана на то, что будет использоваться так же и основная память 128Кб, та что на плате GS. В результате из 2Мб ОЗУ на плате расширения, 128 Кбайт просто пропадает зря.

Я закончил разработку схемы расширения памяти, которая требует отсутствие 128 КБ ОЗУ на плате GS.
Прежде всего я это сделал для того чтобы избавиться от медленной памяти, не поддающейся разгону.
Для тех, кто будет собирать GS из новодела это означает, что вам не нужно будет к микросхемам ОЗУ для платы расширения ещё дополнительно покупать и ОЗУ 128Кбайт для платы GS, т.е. можно сэкономить деньги.

Сама же схема расширения, по сравнению с уже известной схемой расширения до 2Мб, дополняется ещё 1 микросхемой 1533КП11 и ещё 3 диодами КД521. На самой плате GS нужно будет перерезать ещё одну дорожку, идущую на разъём расширения, чтобы подать на один из контактов другой сигнал, который будет нужен для новой схемы расширения. При этом не потеряется совместимость ни с оригинальной схемой расширения до 512Кб, ни с известной ранее схемой расширения до 2Мб, на которую некоторые уже имеют готовые платы.

В итоге новая схема расширения имеет 4 микросхемы логики - 1533КП11, 1533ТМ8, 1533ИД7 и 1533ЛЕ1, а так же 7 диодов КД521. И позволяет подключить до 4Мб ОЗУ микросхемами по 512Кбайт, до 8 микросхем, сколько микросхем ОЗУ поставите, столько памяти и будет. Однако прошивка поддерживает только до 2Мбайт ОЗУ, поэтому если нужна поддержка всех 4Мбайт, нужно будет доработать прошивку. При установке до 2Мбайт, прошивку модернизировать не нужно.

Сегодня вечером планирую на макетной плате собрать схему и проверить её в работе, после чего опубликую её здесь вместе с доработкой по разгону GS.

VNN_KCS
20.12.2011, 15:50
Расширение ОЗУ до 2-метров - это только плюс. Хочется задать вопрос - а зачем? У меня лично на Пентево установлен NeoGS. Там 4 метра памяти. МР3 для дем юзать глупо по моему. Максимальный размер MOD трека для демы(или игры), по моим критериям, 200 килобайт. Имеется ввиду то, что ещё будут какие-то части демы или уровни игры.
Все прекрасно знают обьём TR-DOS диска. Я лично могу и все 4-х мегабайтовый MOD "затолкать" в GS-ку. А если на реале? И с обычным дисководом? Захотят-ли юзеры менять диски? Тут как? Или ОЗУ нужно не для прямого назначения?
p.s. Был у меня GS с расширением до 512 кило. Токо Mad Killer-у отослал. Если не ошибаюсь.

Дмитрий
20.12.2011, 16:02
И с обычным дисководом? Захотят-ли юзеры менять диски? Тут как?
У тебя в ПентЭве есть SD-карта, у других есть винты. Ладно TR-DOS не знает о дисках больше 640Кб, но есть же IS-DOS, да и может научат какой-нить плейер (мож уже и есть такой, не следил особо) читать прям с FAT-раздела.
Важно при развитии железа не равняться на слабую сторону.

VNN_KCS
20.12.2011, 16:12
Ясно, Дима. Собсно я и имел ввиду машину типа Пентагон-1024. И именно TR-DOS.
Токо ведь основная масса юзает, в основном, именно это.
Насчёт остального - согласен. Да, есть всё. Правда юзать не умею пока :-(

volton
20.12.2011, 19:54
а дайте пож ссылку убогому :) на мод размером 4 метра :)

Evgeny Muchkin
20.12.2011, 21:43
Нету!

У себя нашел самые большие три мода размерами:
1840824, 1785420, 1748466 байт соответсвенно.

К моей классической GS прикручено 2 метра ума. На мой взгляд, даже этот объем избыточен для ГС-ки; и уж точно тот, более которого делать смысла не имеет (ну разве что, при прочих равных (как в NeoGS было) финансовых и трудозатратных составляющих, что явно не вписывается в общую конву данного топика).

volton
21.12.2011, 09:21
Нету!

У себя нашел самые большие три мода размерами:
1840824, 1785420, 1748466 байт соответсвенно.

К моей классической GS прикручено 2 метра ума. На мой взгляд, даже этот объем избыточен для ГС-ки; и уж точно тот, более которого делать смысла не имеет (ну разве что, при прочих равных (как в NeoGS было) финансовых и трудозатратных составляющих, что явно не вписывается в общую конву данного топика).
во во :) я о том же :) пересчет - 31 сэмпл помноженный на размер 65535 кб сэмпл равен моду 2031585 кб... считаем далее :) так как амига имела 2 метра чипа (некоторые и один и даже 512) она даже и с двумя метрами не могла себе позволить написать ровно на два метра мод :) хоть даже и с фастом... имеется ввиду амижный про траккер :) простой пример привел Evgeny Muchkin... это максимальный никому ненужный максимум. эти модули с микшированными сэмплами те каждый сэмпл будет весить 40-50кб... да и как с такими модами как vnn сказал работать на реале без hdd и sd? те после загрузки первого диска будет - пож вставьте диск номер два вставьте диск номер три :)
оптимальный вариант для гс это 512кб! все местится на дискету,включая код игры и озвучку для оной.
а то выходит так что psb вскоре разозлится и напишет проигрыватель it формата :) ну это конечно когда гс будет разогнана до 70мгц хотя бы :) и с пофиксенной прошей :)

HardWareMan
21.12.2011, 09:33
У вас цифры скачут. Где это видано, что сэмпл 64 мегабайт и одна музыка на 2 гигабайта? :3 Ну да ладно, все поняли, что все указано в байтах.

Дмитрий
21.12.2011, 09:57
А что, ГС создан только для того чтоб моды воспроизводить? насколько я помню в память ГС вместе с модом можно класть и wav-ки, так если будет мод на 460 КБ, то под озвучку места уже не остается? Про дискеты давайте не будем вспоминать - ну право вчерашний день... Alone захотел - сделал игрушку на CD-Rom, кому приспичит - сделает ее и для SD/HDD, благо все рычаги для этого уже давно имеются.

я и имел ввиду машину типа Пентагон-1024.
именно для такого пентагона v1.4 и v2.2 была разработана карточка с SD и IDE контроллерами. И оба эти контроллера являются стандартами де факто на спектруме, так что не забываем об этом.

Northwood
21.12.2011, 10:00
volton, каждый поставит памяти в GS ровно столько, сколько считает нужным. Минимальное ограничение с новой схемой расширения 256 Кбайт, максимальное 4 Мбайт. На счёт ненужности больше 2Мбайт ты меня убедил, а на счёт остального нет. Не вижу проблем подключить винчестер и слушать музыку прямо оттуда - если такой плеер ещё не написали, значит можно написать, было бы желание.

VNN_KCS
21.12.2011, 13:06
а дайте пож ссылку убогому на мод размером 4 метра
Я имел ввиду что можно загрузить. А метр-полтора? Диски не надо менять? Ведь не у всех есть винты и флэхи.

psb
21.12.2011, 13:19
пересчет - 31 сэмпл помноженный на размер 65535 кб сэмпл равен моду 2031585 кб...
длина сэмплов в моде задается в 16-битных словах... получается, 1 сэмпл до 128к? или есть иные ограничения?

а то выходит так что psb вскоре разозлится и напишет проигрыватель it формата ну это конечно когда гс будет разогнана до 70мгц хотя бы и с пофиксенной прошей
psb не разозлится;) есть вариант написать xm плеер под ngs, с новой аппаратной прошивкой, но лично мне эта задача не интересна, поэтому вряд ли бы я ее закончил. it точно так же не интересно. а вот что-нить новаторское замутить - не исключаю такой возможности, лишь бы жизни хватило...

Дмитрий
21.12.2011, 13:19
Диски не надо менять? Ведь не у всех есть винты и флэхи.
Коль, ну что ты прямо зациклился на дисках? Не у всех есть и НГС, но последние демки от Алко делаются именно под него... что теперь, равняться на 48К, т.к. не у всех есть и 128К, да и ГС не у всех... Сейчас флешки стоят копейки, винты старые вообще можно за так достать, скажи лучше, что программистам не дано написать нормальный opensource драйвер для FAT на SD/HDD, но скорее всего лень.

Evgeny Muchkin
21.12.2011, 15:32
Во флейм ушли :)

PS: Я за диски! Они у всех есть, и это главное! :)

volton
21.12.2011, 16:33
длина сэмплов в моде задается в 16-битных словах... получается, 1 сэмпл до 128к? или есть иные ограничения?
вполне возможно что ты и прав. я был свидетелем одного уникального мода :) у которого один сэмпл был около такого объема (120k) в проигрывателях этот сэмпл играл на половину (те 60к) в про трахере на амиге играл нормально... но я еще раз повторюсь что вполне возможно этот мод был просто тупо написан в fast tracker'е на пц . хотя возможность не исключена что и на амиге может быть сделан такой мод в каком нить октамеде или в другом каком редакторе у которого нет ограничений на размер :)
ps это информация для Northwood , что бы он потом голову не ломал из за чего сэмпл не играется :)

psb
21.12.2011, 20:14
вполне возможно что ты и прав.
все никак не могу выяснить эту штуку на 100%, кучу лет мучаюсь, не зная...

Northwood
22.12.2011, 10:52
Наконец закончил паять расширение памяти на макетной плате. Если память заработает и всё это не будет глючить на тактовой частоте 16.5 МГц, то буду разводить уже нормальную плату под микросхемы в SMD корпусах. А пока что всё это выглядет так:

http://s08.radikal.ru/i181/1112/32/e3491a13ce9at.jpg (http://s08.radikal.ru/i181/1112/32/e3491a13ce9a.jpg) http://i012.radikal.ru/1112/7c/fe54907765b7t.jpg (http://i012.radikal.ru/1112/7c/fe54907765b7.jpg)

Микросхемы 1533ТМ8 не нашёл у себя и на выходных не догадался купить, пришлось заменить на 1533ТМ2.

Northwood
23.12.2011, 10:59
На данный момент результаты таковы:

Схема расширения ОЗУ заработала, но объём ОЗУ получился почему-то на 256Кбайт меньше реального объёма - при установке одной микросхемы ОЗУ ёмкостью 512Кб плеер "Titanic v3.0" показывает доступной для модов всего 272Кб, хотя я ожидал увидеть 464Кб, а при установке двух микросхем ОЗУ - 752Кб, хотя я ожидал увидеть 976Кб. После работы буду разбираться, почему так.

Не смотря на быстрый процессор (Z84C0020PEC, 20 МГц) и быстрое ОЗУ (55нс), GS всё равно отказался разгоняться, при установке кварца на 16 МГц, уже нет заветного щелчка в колонках после нажатия на RESET, вместо щелчка в колонках какой-то треск, и соответственно плеер Titanic GS не видит.
Предположил на медленное ПЗУ. Тогда я прошил Winbond W27C512-45Z (другого у меня нету), это ПЗУ со временем доступа 45нс - после RESET-а теперь есть характерный щелчек через 2 секунды, а не треск, но плеет Titanic всё равно упорно не хочет видеть GS.
Поставил назад кварц на 12МГц - всё работает.

vlad
23.12.2011, 11:42
Не смотря на быстрый процессор (Z84C0020PEC, 20 МГц) и быстрое ОЗУ (55нс), GS всё равно отказался разгоняться, при установке кварца на 16 МГц, уже нет заветного щелчка в колонках после нажатия на RESET, вместо щелчка в колонках какой-то треск, и соответственно плеер Titanic GS не видит.
Сделал небольшие изменения в конфигурации Speccy в модуле GS для Reverse. Заменил частоту клока z80 (12МГц) на GS на глобальную (84МГц), добавил небольшие изменения в схему подтверждения INTA#(одновременно активизируются сигналы M1# и IORQ#) и формирования сигнала INT# (задал соответствующий коэффициент 84MHz / 2240 = 37.5kHz). Все нормально работает уже четвертый день :).

Northwood
23.12.2011, 11:46
Сделал небольшие изменения в конфигурации Speccy в модуле GS для Reverse. Заменил частоту клока z80 (12МГц) на GS на глобальную (84МГц), добавил небольшие изменения в схему подтверждения INTA#(одновременно активизируются сигналы M1# и IORQ#) и формирования сигнала INT# (задал соответствующий коэффициент 84MHz / 2240 = 37.5kHz). Все нормально работает уже четвертый день :).

Это потому что Reverse не собран на мелкой логике серии 1533 :)

vlad
23.12.2011, 12:46
Это потому что Reverse не собран на мелкой логике серии 1533
Это понятно :) на Reverse все сделать и проверить можно быстрее чем на россыпе микросхем, но в Вашей доработке проблема скорее не в серии К1533...
#xx00 "расширенная память" - регистр доступный для записи
bit <3:0> переключают страницы по 32Kb, страница 0 - ПЗУ
bit <7:4> не используются, зависит от установленного ОЗУ
Распределение памяти:
#0000 - #3FFF - первые 16Kb ПЗУ
#4000 - #7FFF - первые 16Kb первой страницы ОЗУ
#8000 - #FFFF - листаемые страницы по 32Kb
страница 0 - ПЗУ,
страница 1 - первая страница ОЗУ
страницы 2... ОЗУ
Пересмотрев пару раз тему, схему Вашей доработки и схемы GS для которой она делалась так и не нашел, поэтому трудно судить в чем основная проблема... т.к. все зависит от правильности логики схемы в общем, и быстродействия и времянок основных блоков в целом...
При разработке модуля для Reverse я использовал материал отсюда (http://zx.pk.ru/showthread.php?t=6007), про неточности в схеме здесь (http://zx.pk.ru/showpost.php?p=430650&postcount=105).

Northwood
23.12.2011, 12:53
Это понятно :) на Reverse все сделать и проверить можно быстрее чем на россыпе микросхем, но в Вашей доработке проблема скорее не в серии К1533...
#xx00 "расширенная память" - регистр доступный для записи
bit <3:0> переключают страницы по 32Kb, страница 0 - ПЗУ
bit <7:4> не используются, зависит от установленного ОЗУ
Распределение памяти:
#0000 - #3FFF - первые 16Kb ПЗУ
#4000 - #7FFF - первые 16Kb первой страницы ОЗУ
#8000 - #FFFF - листаемые страницы по 32Kb
страница 0 - ПЗУ,
страница 1 - первая страница ОЗУ
страницы 2... ОЗУ
Пересмотрев пару раз тему, схему Вашей доработки и схемы GS для которой она делалась так и не нашел, поэтому трудно судить в чем основная проблема... т.к. все зависит от правильности логики схемы в общем, и быстродействия и времянок основных блоков в целом...
При разработке модуля для Reverse я использовал материал отсюда (http://zx.pk.ru/showthread.php?t=6007), про неточности в схеме здесь (http://zx.pk.ru/showpost.php?p=430650&postcount=105).

Я свою схему ещё не публиковал, поэтому ты и не мог её ещё видеть. Я вечером буду разбираться, почему доступный объём ОЗУ получился намного меньше чем должно, но схему я и задумывал так, чтобы она соответствовала твоему описанию архитектуры. Возможно что где-то что-то недосмотрел. Когда полученный результат станет полностью соответствовать ожидаемому, я опубликую схему.

Но тем не менее, я вчера полностью выпаял с платы GS 4 микросхемы ОЗУ 43256. Это был ещё тот геморой, но обошлось без повреждения дорожек, и моя схема расширения ОЗУ работает самостоятельно без старого ОЗУ.

Но пока что это не главная проблема, которая меня волнует, меня больше всего волнует разгон. Судя по щелчку в колонках через 2 сек. после сброса, а так же при запуске плеера, который инициализирует GS, могу судить, что процессорная часть GS на разогнанной частоте работает, и программа в прошивке работает. Но тем не менее плеер Титаник отказывается видеть GS. Со старым ПЗУ на частоте 16 МГц не было и щелчка в колонках.

vlad
23.12.2011, 13:26
Когда полученный результат станет полностью соответствовать ожидаемому, я опубликую схему.
Понятно...

Но пока что это не главная проблема, которая меня волнует, меня больше всего волнует разгон. Судя по щелчку в колонках через 2 сек. после сброса, а так же при запуске плеера, который инициализирует GS, могу судить, что процессорная часть GS на разогнанной частоте работает, и программа в прошивке работает. Но тем не менее плеер Титаник отказывается видеть GS.
Кажется была и у меня похожая проблема, возможно из-за кратности частот, или прерывания, было так, что в "Sea Dragon" GS играл какую-то зацикленную ерунду. При установке другой частоты и вовсе не детектился. Сейчас уже точно не помню, скорее всего после доработки INTA# все стало на свои места. Но Reverse это другая система с другими особенностями работы...

Northwood
23.12.2011, 13:33
Придётся написать какое-нибудь простенькое тест-пзу для GS, который бы при тестировании ОЗУ тональными последовательностями сообщал номера протестированных страниц ОЗУ.

---------- Post added at 11:33 ---------- Previous post was at 11:30 ----------



Кажется была и у меня похожая проблема, возможно из-за кратности частот, или прерывания, было так, что в "Sea Dragon" GS играл какую-то зацикленную ерунду. При установке другой частоты и вовсе не детектился. Сейчас уже точно не помню, скорее всего после доработки INTA# все стало на свои места.

После доработки INT-а в самом GS ? Потому что в самом компьютере у меня INT доработан до использования сигналов IORQ+M1. И кстати, проблем с GS у меня не было при включении на компьютере турбо-режимов 7 МГц и 14 МГц.

vlad
23.12.2011, 13:40
Придётся написать какое-нибудь простенькое тест-пзу для GS, который бы при тестировании ОЗУ тональными последовательностями сообщал номера протестированных страниц ОЗУ.
Не помешал бы еще тест внутреннего прерывания и портов ввода/вывода Speccy <=> GS. Возможность чтения/записи в/из GS с проверкой с двух сторон. Но нужно не забыть глянуть как все работает и в стандартной прошивке GS.

Да, после доработки в самом GS.

psb
23.12.2011, 14:28
вы бы вместо гадания на кофейной гуще (титаники), протестировали всё командами, вручную, через порты. увидели бы хотя бы, крутится прошивка или нет, если да, то можно вытащить список увиденных GSом страниц, они лежат по адресу #4000, 64 байта.
памяти может быть меньше из-за того, что она не проходит тест, например.


#xx00 "расширенная память" - регистр доступный для записи
bit <3:0> переключают страницы по 32Kb, страница 0 - ПЗУ
bit <7:4> не используются, зависит от установленного ОЗУ

Распределение памяти:
#0000 - #3FFF - первые 16Kb ПЗУ
#4000 - #7FFF - первые 16Kb первой страницы ОЗУ
#8000 - #FFFF - листаемые страницы по 32Kb
страница 0 - ПЗУ,
страница 1 - первая страница ОЗУ
страницы 2... ОЗУ
что-то меня здесь смущает. прошивка точно поддерживает больше страниц, чем 15, как могут не использоваться биты <7:4>? они будут использоваться, не нужно такое разграничение делать по битам. я не помню точно, но что будет если включить 16ю страницу? не помню, чтобы там подключалось ПЗУ в этом случае.
далее,
#4000 - #7FFF - вторые 16Kb первой страницы ОЗУ, а первые 16к спрятаны под пзу. они будут доступны с #8000 по #bfff, если включить 1ю страницу.

Northwood
23.12.2011, 14:40
я не помню точно, но что будет если включить 16ю страницу? не помню, чтобы там подключалось ПЗУ в этом случае.


Судя по оригинальной принципиальной схеме GS и оригинальной схеме платы расширения ОЗУ до 512Кб, задействованы только 4 бита порта #00, на плате GS триггер 1533ТМ8, у которого всего 4 бита, и 1533ИД7 выбирает ПЗУ и номера страниц ОЗУ, проверяя 4 бита порта, поэтому если попытаться включить 16-ю страницу, то на младших 4-х разрядах будет 0000, что приведёт к включению 0-й страницы ПЗУ.
Поэтому при расширении памяти выше 512Кб, дорабатывается сама плата GS - режется дорожка на 6-ю ногу 1533ИД7 и туда вместо +5в подаётся разрешение выбора ПЗУ при 0 на остальных битах порта #00, которые задействованы на плате расширения дополнительным триггером 1533ТМ8 (в моём случае 1533ТМ2).

P.s. Заодно я понял, почему памяти у меня вышло меньше почти на 256Кб, только что понял, в чем ошибка в моей схеме расширения.

Evgeny Muchkin
23.12.2011, 15:49
Кстати, Титаник 3.0 !неправильно! показывает количество памяти и думает долго.

Юзай Z-Player v3.3, там все нормуль, но чтоб заветные цифры увидеть надо мод загрузить.

John North
23.12.2011, 17:48
Evgeny Muchkin, Z-Player моды вроде тока с дискеты грузит?

Northwood
23.12.2011, 17:56
Кстати, Титаник 3.0 !неправильно! показывает количество памяти и думает долго.


Может Титаник и ошибается где-то в пределах 32Кбайт, но ошибка в схеме всё-же имеется, сегодня вечером доработаю её, и должен увидеть намного больше памяти даже в Титанике.
Да и мод размером 309 Кбайт подтвердил наличие ошибки в схеме - когда я вставил только одну ОЗУ 512Кбайт и Титаник показал 272 Кбайта, то когда я загрузил мод размером 309 Кбайт, он начал звучать не правильно из-за того что некоторые инструменты не влезли в память. Вставил вторую микросхему памяти - этот мод стал звучать правильно.

Evgeny Muchkin
23.12.2011, 19:04
Evgeny Muchkin, Z-Player моды вроде тока с дискеты грузит?
Ага.

А вообще, можно с плеерами и не заморачиваться. Дождаться когда GS пукнет после включения и прочитать 179 порт, получите количество страниц памяти. У меня их 62 высвечивается :)

Northwood
25.12.2011, 03:01
Ура! Всё получилось, и с расширением ОЗУ, и с разгоном General Sound-а до 16.5 МГц. Ошибок в логике работы схемы не было, подвела диодная логика "И", не всегда она хорошо работает, в данном случае диоды ещё и препятствовали разгону, пришлось добавить 5-ю микросхему - 1531ЛИ1. Завтра (вернее уже сегодня) нарисую схемы и выложу здесь. А так же приведу код, который вытягивает из General Sound-а любой участок памяти любого размера.

Ещё я пытался для экспериментов заслать в ОЗУ GS свой небольшой код программки для выполнения (просто воспроизводит писк) и запустить его, но с запуском вышло туго - GS то начинал выполнение кода, то отказывался его выполнять.

В первом варианте схемы с двумя микросхемами по 512Кбайт получилось всего лишь 23 страницы, 8 из них в 1-й микросхеме и 15 страниц во 2-й:

08, 09, 0A, 0B, 0C, 0D, 0E, 0F
11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F

Затем я просто заменил микросхему 1533ЛЕ1 на 1531ЛЕ1, и добавились ещё 3 страницы ОЗУ, и их стало 26 - 11 страниц в 1-й и 15 во 2-й:

05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F
11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F

А после того как я на плате расширения выкинул все диоды и поставил вместо них 1531ЛИ1, появились все остальные недостающие страницы ОЗУ, и их стало 30 - 14 страниц в 1-й и 16 во второй.

02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F
10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F

0-я страница ОЗУ затеняется ПЗУ, а 1-я, вернее первые 16Кб от неё, используется в нижних адресах с #4000 по #7FFF, поэтому GS не выдаёт её в списке.

SoftFelix
25.12.2011, 11:20
подвела диодная логика "И", не всегда она хорошо работает, в данном случае диоды ещё и препятствовали разгону, пришлось добавить 5-ю микросхему - 1531ЛИ1.
Я уже это когда-то писал, когда велась разработка КАЙ-1024 SL4 (лето 2010). И очень хорошо, что вместо ДРЛ поставили нормальные МС. Даже применение диодов Шоттки, вместо обычных КД522, вряд ли спасло ситуацию.

Northwood
26.12.2011, 04:58
Итак, обещанные схемы - расширение памяти General Sound-а, которое требует отсутствия микросхем ОЗУ на самой плате GS, и разгон GS:

Начну со схемы расширения памяти, т.к. без этого разгон GS не возможен.

http://s017.radikal.ru/i401/1112/35/4bd203903c39t.jpg (http://s017.radikal.ru/i401/1112/35/4bd203903c39.gif)

Эта схема требует отсутствие на плате GS микросхем ОЗУ, т.к. полностью его заменяет. Если вы владельцы General Sound-а с данными микросхемами памяти на 128Кбайт, вам придётся его выпаять. Сразу предупрежу, что это очень геморойное занятие, но тем не менее, мне удалось их выпаять без повреждения дорожек.

Мне пришлось уменьшить максимальный доступный объём ОЗУ до 2 Мбайт, иначе на плату пришлось бы ставить ещё одну микросхему - 1533ЛИ3, т.е. я сделал это с целью уменьшения кол-ва корпусов на плате расширения.

Но если кому-то всё-таки нужно получить 4 Мбайта ОЗУ, я нарисую схему с полностью реализованными 4 Мбайтами ОЗУ, но придётся так же модернизировать и прошивку, в то время как вряд ли найдёте мод больше чем на 2 Мбайта. Поэтому ещё раз подумайте, а нужно ли вам 4 Мбайта ?


Хотя на триггер порта #00 на микросхеме 1533ТМ8 я развёл 4 бита - с D4 по D7, реально для 2Мбайт из них используются только 2 бита - D4 и D5. Биты D6 и D7 я развёл на будущее, например D6 можно использовать для расширения памяти до 4Мб, а D7 для того чтобы возложить на него функцию переключения ПЗУ/ОЗУ.

Для работы этой схемы расширения, на разъёме расширения по оригинальной схеме не хватает 3-х сигналов - P0, PAGE0 и ROM0. Названия этих трёх сигналов не стандартные, названия остальных сигналов я взял с оригинальной схемы из архива GSPAK_1.4zip. Все ссылки на микросхемы General Sound-а взяты так же с этой версии схемы GS.

Сигнал P0 нужен для работы второй половины порта #00, находящейся на плате расширения памяти, и берётся с микросхемы D16 (1533ТМ8) с выв.9. Для этого надо от разъёма расширения отрезать сигнал RAM7 с микросхемы D15 (1533ИД7) с выв.7, и вместо него подать сигнал P0.

Сигнал PAGE0 нужен для того чтобы 1-я страница ОЗУ, верней первые её 16Кб, проецировались в адресное пространство с #4000 по #7FFF, берётся с микросхемы D14 (1533ИД7) с выв.14. Для этого нужно от разъёма расширения отрезать сигнал RAM5 с микросхемы D15 (1533ИД7) с выв.10, и вместо него подать сигнал с микросхемы D14 (1533ИД7) с выв.14.

Сигнал ROM0 нужен для того, чтобы не допустить включение ПЗУ при обращении к верхним страницам ОЗУ, и подаётся с платы расширения памяти на микросхему D15 (1533ИД7) на выв.6 вместо сигнала /3/P0.

Разгон General Sound-а:

Прежде всего надо избавиться от медленной памяти GS. Для этого надо выпаять с платы все 4 микросхемы ОЗУ и собрать расширение памяти по выше приведённой схеме. Разумеется, сами микросхемы ОЗУ надо поставить с временем доступа не более 70 нс. Я поставил себе на 55нс.

Во-вторых, нужно медленное УФ-ПЗУ заменить на электрически стираемое ПЗУ Winbond с временем доступа не более 70 нс. Я поставил себе ПЗУ на 45нс.

Ну и в третьих, нужно розыскать кварцевый резонатор на нужную частоту, в данном случае на 16.5 МГц, и провести доработку в соответствии со схемой. Чёрным обозначены старые микросхемы и соединения, красным - соединения, которые надо разорвать, и зелёным новые микросхема и соединения.

http://s09.radikal.ru/i182/1112/3a/dd6b68b05331t.jpg (http://s09.radikal.ru/i182/1112/3a/dd6b68b05331.gif)

По оригинальной схеме обозначенная микросхема счётчика 1533ИЕ19, это D5. Сигнал GEN_-5V, это вход преобразователя напряжения питания "-5в", его нужно отрезать от выв.10 D5 и подать на выв.9 D5. Конденсатор ёмкостью 10нф в схеме формирователя INT-а надо отсоединить от выв.11 D5 и соединить с выв.10 D5.

Данная доработка обеспечивает суммарный коэффициент деления счётчиков равным 440 (16500 КГц / 440 = 37.5 КГц).

Если не удалось найти дефицитный кварц на 16.5 МГц, можно поставить кварц на 15 МГц, но в этом случае коэффициент деления счётчиков нужно уменьшить до 400, для этого надо отсоединить один из входов элемента "3И" от выв.3 счётчика 1533ИЕ19 и соединить на +5в. Но в этом случае вы получите меньшее быстродействие General Sound-а, хотя разгон до 15 МГц всё равно даёт эффект по сравнению с 12МГц.

Если будут вопросы, спрашивайте.

Для сравнения, я записал работу General Sound-а на двух критичных модах до доработки:

http://soundcloud.com/northwood_dnepr/01-crystal-rain-gs
http://soundcloud.com/northwood_dnepr/02-morgen-stemning-gs

И после разгона до 16.5 МГц:

http://soundcloud.com/northwood_dnepr/01-crystal-rain-gs-fix16-5
http://soundcloud.com/northwood_dnepr/02-morgen-stemning-gs-fix16-5

Всё это тестировалось без релупов с плеером Титаник-3.0, завтра попробую звучание с включенными релупами.

Кстати, Титаник всё-таки абсолютно правильно показывает объём ОЗУ General Sound-а доступный для модов, т.к. берёт общее кол-во страниц, которое выдаёт GS, умножает их на 32 и прибавляет 16Кб.

И обещанный код, который позволяет получить содержимое памяти General Sound-а. Не важно, что это - ПЗУ или ОЗУ.



DI
LD HL, адрес_куда_надо_скопироват данные
LD DE, адрес_памяти_GS_откуда_надо_ копировать_данные
LD BC, количество_байт_которые_на о_скопировать

LD A,C
OUT (#B3),A
LD A,#15
OUT (#BB),A
label1 IN A,(#BB)
RLCA
JR C, label1
LD A,B
OUT (#B3),A
label2 IN A,(#BB)
RLCA
JR C, label2
LD A,E
OUT (#B3),A
label3 IN A,(#BB)
RLCA
JR C, label3
LD A,D
OUT (#B3),A
label4 IN A,(#BB)
RLCA
JR NC, label4
label5 IN A,(#BB)
RLCA
JR NC, label5

IN A,(#B3)
LD (HL),A
INC HL
DEC BC
LD A,B
OR C
JR NZ, label5

Northwood
26.12.2011, 16:30
P.s. Хочу попробовать ещё поднять тактовую частоту процессора - до 18 МГц. По сравнению с разгоном до 16.5 МГц, никаких усложнений в схеме не будет, нужно будет просто 2 входа 1533ЛИ3 переключить на выводы 5 и 6 микросхемы 1533ИЕ19, 3-й вход ЛИ3 подключить на +5в (или заменить на 1533ЛИ1). Да и кварц на 18 МГц достать намного проще, чем на 16.5 МГц. Производительность при разгоне до 16.5 МГц получается 440 тактов за прерывание, а при 18 МГц - 480 тактов.

Если разгон на 18 МГц пройдёт успешно и GS не будет глючить, то перерисую схему.

palsw
26.12.2011, 16:50
Northwood, давай уже на 20 мгц делай.задействуй всю мощь 20мгц процессора

Northwood
26.12.2011, 17:03
Northwood, давай уже на 20 мгц делай.задействуй всю мощь 20мгц процессора

Да я вот смотрю, что в Радиомаге вообще нет в списке кварцев на 18 МГц, То ли мне показалось, что я видел их на радиорынке.
Но если разгонять на 20 МГц, то будет не возможно получить точную частоту прерываний 37.5 КГц, т.е. проигрывание станет либо немного быстрее, либо немного медленней, т.к. суммарный коэффициент деления счётчиков должен быть 533, и имея в распоряжении 3 счётчика - с максимальным делением на 10, на 16 и на 8, никак не получается коэффициент деления 533 разделить на 3 счётчика таким образом, чтобы везде получилось целое число.

palsw
26.12.2011, 17:10
Northwood, значит смотри ближайший кварц в сторону увеличения (надеюсь проц потянет разгон )

Northwood
26.12.2011, 18:11
Northwood, значит смотри ближайший кварц в сторону увеличения (надеюсь проц потянет разгон )

Для того чтобы в конечном итоге получать точную частоту прерываний 37.5 КГц и при этом делать минимум телодвижений со схемой, шаг изменения частоты кварца должен быть ровно 1,5 МГц.

Если делать расчёт на увеличение числа разрезанных дорожек вокруг счётчиков, но расчитывать на получение точной частоты прерываний 37.5 КГц, то шаг изменения частоты кварца должен быть 37.5 КГц.

При ином шаге изменения частоты кварца, точную частоту прерываний 37.5 КГц получить будет не возможно, что не есть хорошо. Но вначале конечно было бы не плохо проверить, какую вообще максимальную тактовую частоту процессора потянет General Sound.

Northwood
27.12.2011, 01:27
завтра попробую звучание с включенными релупами

Прошивка версии 1.0.5, скачал последнюю версию ZPlayer-а 3.3, вот что получается, если к разгону до 16.5 МГц добавить релупы. На мой взгляд, результат достойный:

http://soundcloud.com/northwood_dnepr/01-crystal-rain-gs-fix16_5_reloop
http://soundcloud.com/northwood_dnepr/02-morgen-stemning-gs-fix16_5_reloop

И для сравнения 2 вчерашние ссылки без релупов:

http://soundcloud.com/northwood_dnepr/01-crystal-rain-gs-fix16-5
http://soundcloud.com/northwood_dnepr/02-morgen-stemning-gs-fix16-5

Evgeny Muchkin, на этих двух модах так должно звучать или можно добиться ещё лучшего результата ? Большинство щелчков ушли, но кое-где ещё остались.

А вообще плеер классный, мне очень понравился - и дизайн, и звучание с релупами. спасибо :) Но очень не хватает возможности остановки, паузы и перемотки...

BYTEMAN
27.12.2011, 04:30
Evgeny Muchkin, на этих двух модах так должно звучать или можно добиться ещё лучшего результата ? Большинство щелчков ушли, но кое-где ещё остались.

Northwood, эталон звучания - ModPlug Player.

Northwood
27.12.2011, 09:57
Northwood, эталон звучания - ModPlug Player.

Знаю, на ПЦ на нём и слушаю. Но меня интересует, можно ли на GS можно ли добиться ещё лучшего результата или на этом остановиться. Тем более что я не до конца уверен в исправности ЦАПов на моём GS - после того как лет 10 назад у меня полетел импульсный блок питания и он выдал +7.5V вместо +5V, у меня явным образом в GS накрылся один из каналов регулировки громкости - 1533ТМ9 и 572ПА1 и сдох процессор Z84C0010PEC, пришлось всё это заменить. Поэтому я не уверен в полной исправности ЦАПов каналов, и если например будут неисправны младшие биты ЦАПа, то на слух это будет не сильно заметно, но качество звука будет подпорчено. Поэтому я и хочу узнать, так ли должно звучать на GS или нужно что-то делать.

Evgeny Muchkin
27.12.2011, 10:27
на этих двух модах так должно звучать или можно добиться ещё лучшего результата ? Большинство щелчков ушли, но кое-где ещё остались.
Теоретически может стать лучше, если при проигрывании не будет опрашиваться ГС, т.е. нужно выйти из плеера (или в файловое меню ZP).


не хватает возможности остановки, паузы и перемотки
P, Q, A

Northwood
19.07.2013, 09:32
После длительного перерыва, я всё-таки развёл печатную плату под мою схему расширения памяти GS. Хотя правильней сказать не "расширение памяти", а "подключение памяти", т.к. в данной схеме основная память на плате самого GS должна отсутствовать, а вся основная память теперь должна находиться только на плате расширения.

Все подробности в 1-м сообщении этой темы.

Дмитрий
19.07.2013, 10:14
Смоделированное изображение будущей печатной платы, тоже в увеличенном масштабе:
DD9:6 дорожку можно оптимизировать по длине, пораздвигав другие, а то уж очень длинная выходит

Northwood
19.07.2013, 11:24
DD9:6 дорожку можно оптимизировать по длине, пораздвигав другие, а то уж очень длинная выходит

Учту, посмотрю, как можно будет её оптимизировать. Ещё общаюсь с человеком, который занимается изготовлением плат, он высказал пару своих замечаний, так что скоро будет окончательный вариант платы.

Тут ещё назрел вопрос: Какие керамические конденсаторы ставить, обычные с гибкими ножками или смд ?

SoftFelix
19.07.2013, 11:32
Тут ещё назрел вопрос: Какие керамические конденсаторы ставить, обычные с гибкими ножками или смд ?
Имхо, предусмотреть выводные посадочные места с расстоянием между выводами 5 мм. Туда можно будет и выводной конденсатор поставить, и SMD сверху напаять.

http://photo.qip.ru/photo/softfelix/3868246/large/104049819.jpg (http://photo.qip.ru/users/softfelix/3868246/104049819/)

Northwood
19.07.2013, 13:04
Имхо, предусмотреть выводные посадочные места с расстоянием между выводами 5 мм. Туда можно будет и выводной конденсатор поставить, и SMD сверху напаять.

http://photo.qip.ru/photo/softfelix/3868246/large/104049819.jpg (http://photo.qip.ru/users/softfelix/3868246/104049819/)

На счёт 5 мм ты не перепутал ? Может 2.5 мм ? На твоём фото как раз 2.5 мм (равно 1 расстоянию между двумя ножками корпуса DIP).

SoftFelix
19.07.2013, 13:06
На счёт 5 мм ты не перепутал ? Может 2.5 мм ?
Блин, точно. Думал об одном, писал про другое.

Northwood
19.07.2013, 14:52
Немного оптимизировал плату, добавил блокировочных конденсаторов. Рисунки платы заменил на новые. Возможность оптимизации трассы от DD9:6 не нашел.

Дмитрий
19.07.2013, 15:06
Northwood, дорожку DD5:10-DD9:5 в районе DD8 поднимаем (пропускаем между ногами 5-6/9-10, за счет смещения поворота дорожки DD6:6-DD8:5 чуть левее, плотность участка позволяет). А DD9:6-DD5:13 пропускаем между ног DD8 6-7/8-9.

---------- Post added at 14:06 ---------- Previous post was at 14:05 ----------

Плюс ко всему вопрос - под какой класс затачивается плата? переходные отверстия не малы? а то из-за них ценник на производство поднимется сильно.

Northwood
19.07.2013, 15:09
Плюс ко всему вопрос - под какой класс затачивается плата? переходные отверстия не малы? а то из-за них ценник на производство поднимется сильно.

Если их сделать больше, тогда не получится разместить ряд таких отверстий возле микросхем памяти - на них буду закорачиваться дорожки проходящие между ними.

Дмитрий
19.07.2013, 15:21
тогда не получится разместить ряд таких отверстий возле микросхем памяти
их можно разместить в шахматном порядке, дорожки чуть "погнуть". Но на стоимости выиграешь порядочно. Я смук3 переделал сразу, как только мне оценили его производство - понизил класс точности и ценник снизился в полтора раза.

SoftFelix
19.07.2013, 15:24
Я смук3 переделал сразу
Ой... А что это такое?

Дмитрий
19.07.2013, 15:28
Ой... А что это такое?
это то, что зачалось два года назад, но так до сих пор и не родилось. Жду Миковскую платку, мож на ней продолжу, а то на работе спек не поставишь ибо большой, а на дома нет времени спеком заниматься в принципе.

Northwood
19.07.2013, 17:19
Northwood, дорожку DD5:10-DD9:5 в районе DD8 поднимаем (пропускаем между ногами 5-6/9-10, за счет смещения поворота дорожки DD6:6-DD8:5 чуть левее, плотность участка позволяет). А DD9:6-DD5:13 пропускаем между ног DD8 6-7/8-9.

Плюс ко всему вопрос - под какой класс затачивается плата? переходные отверстия не малы? а то из-за них ценник на производство поднимется сильно.


их можно разместить в шахматном порядке, дорожки чуть "погнуть". Но на стоимости выиграешь порядочно. Я смук3 переделал сразу, как только мне оценили его производство - понизил класс точности и ценник снизился в полтора раза.

Сделал. Правда, переходные отверстия всё равно меньше, чем под корпуса DIP, но больше чем были. Ещё больше увеличить их уже не смогу.

Рисунки платы обновил.

Northwood
19.07.2013, 22:56
Больше никаких пожеланий не будет ? Если нет, я отправляю материалы изготовителю плат.

Дмитрий
19.07.2013, 23:28
Больше никаких пожеланий не будет ?
Ну если сходу, то:
1. убрал бы переходное отверстие около DD5:10 (сама ножка микрухи - уже переходное отверстие)
2. если внимательно посмотреть на дорогу идущую к DD7:12, то там можно тоже от переходного отверстия избавиться.
3. непонятное, видимо лишнее п/о около С6 по шине питания.
Прога случаем не DipTrace? а то дизайн похож.

Northwood
19.07.2013, 23:54
Ну если сходу, то:
1. убрал бы переходное отверстие около DD5:10 (сама ножка микрухи - уже переходное отверстие)
2. если внимательно посмотреть на дорогу идущую к DD7:12, то там можно тоже от переходного отверстия избавиться.
3. непонятное, видимо лишнее п/о около С6 по шине питания.

Сделал. Вроде больше ничего уже улучшить нельзя, я отправляю файл изготовителю.



Прога случаем не DipTrace? а то дизайн похож.
Да, она.

Northwood
09.08.2013, 20:34
Ура! Приехали платки памяти GS :) Сделал 4 шт, без шелкографии, т.к. для такой маленькой партии она бы обошлась необоснованно дорого. Но с зелёной маской.

http://s019.radikal.ru/i623/1308/de/2b0f428bcdcat.jpg (http://s019.radikal.ru/i623/1308/de/2b0f428bcdca.jpg) http://s020.radikal.ru/i700/1308/08/ebc38ae961cat.jpg (http://s020.radikal.ru/i700/1308/08/ebc38ae961ca.jpg)

Одну из плат уже полностью прозвонил мультиметром, проблемы не обнаружены. На выходных одну из плат спаяю и проверю её в работе. Если плата заработает и будут желающие, можно будет организовать производство её для большего числа желающих.

Дмитрий
09.08.2013, 22:04
будут желающие
будут, я бы пару взял для своих саундов.

Northwood
13.08.2013, 00:48
Плату ОЗУ GS спаял, всё заработало, по команде PRINT IN 179 выдало 62 страницы, GS играет.

Все материалы по этой плате расширения ОЗУ я перенёс в 1-е сообщение этой темы. Там же и фото собранной платы.

Northwood
13.08.2013, 11:46
будут, я бы пару взял для своих саундов.

Дмитрий, 2 платки как раз остались: http://zx.pk.ru/market/viewtopic.php?f=7&t=1152&sid=0013707f66cff338e8b9aa6a1a1a6101

Цена 63 грн получилась, т.к. я оплачивал старт производства, и партия была всего 4 шт.

Evgeny Muchkin
13.08.2013, 15:20
А че в них так дырок много? ;)

Evgeny Muchkin
14.08.2013, 15:53
А понял :) Отстал от темы малость :)

palsw
14.09.2013, 17:46
Спасибо Northwood за платку - все отлично заработало и определяет 2мб озу :)

http://i.piccy_.info/i7/969254fc156737dd05f35dd57bd3dbed/4-77-124/54576433/IMG_0040_500.jpg (http://piccy_.info/view3/5130612/7bfdbb1966a9cfd98c6ffa819906e29c/)http://i.piccy_.info/a3/2013-09-14-13-45/i7-5130612/472x354-r/i.gif (http://i.piccy_.info/a3c/2013-09-14-13-45/i7-5130612/472x354-r)http://i.piccy_.info/i7/f0e140fbaf327f485a759dbd7726c1a9/4-77-124/57184022/IMG_0035_500.jpg (http://piccy_.info/view3/5130618/64db6e227ccf8c1271410589e5e5b834/)http://i.piccy_.info/a3/2013-09-14-13-46/i7-5130618/472x354-r/i.gif (http://i.piccy_.info/a3c/2013-09-14-13-46/i7-5130618/472x354-r)

Northwood
14.09.2013, 21:15
Спасибо Northwood за платку - все отлично заработало и определяет 2мб озу :)


Что же ты не сказал, что у тебя не было 40-контактного разъёма ? Я бы тебе прислал вместе с платкой.

palsw
14.09.2013, 21:39
Northwood, я не хотел ставить 40 пин вместо 36 пин ,что бы не париться потом .Было как раз 2 шт по 20 пин - все отлично получилось.

Northwood
14.09.2013, 21:43
Northwood, я не хотел ставить 40 пин вместо 36 пин ,что бы не париться потом .Было как раз 2 шт по 20 пин - все отлично получилось.

Ну так ты всё равно один из них распиливал. Ты бы мог 40-контактный распилить, и получил бы 1 цельный 36-контактный разъём вместо 2-х.

Максагор
16.09.2013, 01:44
Вопрос ламера:

У меня GS-512, купленный еще в 2000 году в Скорпионе. Ежели я эту платку поставлю, то заработает без доработок все? А если нет, то что и где дорабатывать?

Northwood
16.09.2013, 07:53
Вопрос ламера:

У меня GS-512, купленный еще в 2000 году в Скорпионе. Ежели я эту платку поставлю, то заработает без доработок все? А если нет, то что и где дорабатывать?

Без доработок не заработает. Причём нужно будет делать все 3 доработки, описанные в первом сообщении этой темы. И без этих же доработок, вернее без двух из них, не заработает и расширение ОЗУ до 2 Мб применявшееся ранее.

Evgeny Muchkin
17.09.2013, 21:41
Максагор, http://zx.pk.ru/showthread.php?t=15170
Всё просто :)