# General Sound

## Профессиональная музыкальная карта для Вашего ZX Spectrum

Музыкальный бластер General Sound предназначен для совместной работы с любым ZX Spectrum совместимым компьютером 
и обеспечивает качественное проигрывание оцифрованных музыкальных файлов в формате mod, а так же проигрывание отдельных оцифрованных сэмплов. 

За основу General Sound была взята схема музыкальной платы от компьютера Amiga 500+, в связи с чем качество музыки практически ни в чем не уступает знаменитому качеству музыки компьютера Amiga. 

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

Программирование сводится к передаче байт за байтом модуля и/или сэмплов, а затем требуется только подавать команды типа: 
запустить модуль, установить глобальную громкость проигрывания модуля, запустить сэмпл #09 в канале #02 и т.д.

<img src="photos/RareGS.jpg" width="600" /><br>

Конструктивно General Sound выполнен в виде слота для компьютеров с системной шиной в стандарте ZXBUS.

Основные технические характеристики:
- Процессор - Z80, работающий на частоте 12 МГц
- ОЗУ - 128 Кб (расширяется до 2048 Кб)
- ПЗУ - 32 Кб
- Частота прерываний - 37500 Гц
- Количество каналов - четыре восьмиразрядных канала с независимой регулировкой громкости (еще 6 бит на каждый канал)

## Историческая справка

Музыкальная карты впервые была анонсирована 30 ноября 1995 на страницах журнала ZX Format #02 в рубрике "Железо - Переферия: презентация звуковой карты General Sound". Статья на zxpress: https://zxpress.ru/article.php?id=285

```
Студия X-TRADE и HACKER STINGER объявляют о своей совместной разработке. Нами предпринята попытка (весьма успешная) создания принципиально
новой музыкальной приставки для ZX-SPECTRUM.  

В последнее время тема альтернативной музыки для SPECCY глубоко засела в умах хаккеров и программистов, о чем свидетельствует появившееся в последнее время большое количество программ, воспроизводящих оцифрованную музыку, таких, как INSTRUMENT, DIGITAL PLAYER и др. Предпринимались попытки присоединения к ZX-SPECTRUM приставок типа COVOX в надежде получить удовлетворительное качество звука.

К сожалению, эти попытки нельзя назвать успешными - достаточно сравнить звучание COVOXa на SPECCY и IBM PC (почувствуйте разницу!). Все это объясняется низкой производительностью Z80 по сравнению с более современными процессорами. К тому же проигрывание оцифрованной музыки отнимает у Z80 почти 100% его машинного времени, поэтому ни о каких других процессах параллельно с музыкой и речи быть не может. Тем более об оцифрованных спецэффектах в играх.

Поэтому мы решили не тратиться попусту и сразу сделать классную вещь! Наша музыкальная карта "ZX GENERAL SOUND", как мы ее назвали, преставляет собой самостоятельную микропроцессорную систему на четыре независимых канала по 8 бит, со своим внутренним BIOS-ом и памятью, отведенной специально под музыку.

Чем это здорово?

1. "ZX GENERAL SOUND" практически не отнимает времени у главного процессора, что позволяет использовать музыку в любой момент работы компьютера, не обращая внимания на загруженность главного процессора.
2. На музыку не тратится память компьютера.
3. Возможность использования суперспецэффектов в играх, а также голосовых сообщений.
4. Возможность проигрывания музыки с компьютеров AMIGA и IBM PC.
5. Несложное подключение к SPECTRUM, причем в самом компьютере не нужно делать никаких доработок.
6. Не очень высокая стоимость, примерно равная стоимости отечественного дисковода.
7. И, что самое главное, несравнимо лучшее качество стереозвука по сравнению с AY8910/12 и COVOX - подобными прибамбасами.

Ко всему вышесказанному надо добавить, что многие ведущие программисты Питера в курсе нашей разработки и согласились создавать под нее SOFT.

Работа над "ZX GENERAL SOUND" ведется уже давно, и на данный момент существует опытный образец, требующий небольшой доводки (т.к. все время приходят новые гениальные идеи), а также ведется тяжелая борьба за снижение его себестоимости.

Но, несмотря на все трудности, мы планируем к весне обрадовать пользователей SPECCY.

X-TRADE software
DANGEROUS (back to SPECCY from AMIGA)
HACKER STINGER (back to SPECCY from IBM PC)
```

Когда стали производиться карты серийно доподлинно неизвестно, считается что это наступило в 1997 году, согласно надписи на наклейках ПЗУ.


## Открытие проекта в свободный доступ

До 2007 года General Sound оставался коммерческим продуктом и свободное воспроизведение и распространение было запрещено. Однако авторы решили открыть проект, чем несказанно обрадовали общественность. Тема на форуме zx-pk: https://zx-pk.ru/threads/6007-general-sound-(skhema).html


## Исходные коды прошивки

В каталоге [firmware/src](firmware/src/) представлены две ключевые версии:

- авторская версия 1.04
- версия 1.05a и 1.05b с исправлениями уже после открытия проекта

Версия 1.10, написанная для карты neoGS от NedoPC, находится в репозитории NedoPC и прекрасно работает с классической платой.


## Схема и печатная плата

Всего известно пять версий классического General Sound:

## v1.0

Схема и монтажка появились еще во времена FIDO и были выполнены в текстовом файле псевдографикой. Считалось это нелицензионным и распространялось как варез.
Плата первой версии несколько отличалась от последующих. На самой плате имелся краевой разъем для подключения специального кабеля с отдельной небольшой платкой, которая через буферы уже подключалась к разъему ZXBUS. На данный момент (февраль 2025 года) живых экземпляров такой платы не обнаружено.

<img src="photos/GSOldVerTop.jpg" width="300" />&nbsp;&nbsp;<img src="photos/GSOldVerBottom.jpg" width="300" /><br>

## v1.1

Файл с исходником платы в формате p-cad 2001 был опубликован Евгением Мучкиным 20.08.2007 на форуме zx-pk, своим постом сообщив об открытии проекта. Тема на форуме zx-pk: https://zx-pk.ru/threads/6007-general-sound-(skhema).html

## v1.2

Файл с исходником платы в формате p-cad 2006 был опубликован palsw 28.12.2011 на странице форума zx-pk: https://zx-pk.ru/threads/17696-general-sound-sborka-i-nastrojka-varianta-2011-rasshirenie-ram-2mb.html

Доработки платы делал zorel:
- Разводка платы не соответствует 100% схеме, иначе бы не было смысла переразводилась. Доработки будут описаны в мануале, который готовится. 
Но доработки не влияют глобально на работоспособность-неработоспособность карты - введены цепи управления ОЗУ свыше 512К, разблокирована цепь NMI, проведены косметические изменения на печатной плате.
- R1A и R2A это резисторы появившиеся в результате доработки платы до совместимости с модулями расширения памяти выше 512 Кб. 
Оригинальная плата GS без "доработки скальпелем" не имела возможности адресовать, через разъем расширения, более 512 Кб. 
Эта версия платы уже позволяет оперировать объемами вплоть до 8 Мб. Чтобы все работало необходимо запаять оба резистора R1A и R2A.

## v1.3

Версия сделана Олегом Стариченко (solegstar) в 2020 году, в которой были наконец исправлены накопившиеся ошибки предыдущих версий, которые каждый раз приходилось исправлять при помощи МГТФ. Теперь собранная плата не нуждается в исправлениях и работает сразу после сборки.

## v1.4

Версия сделана Романом Крупниным (RomanRom2) в 2023 году. До этой версии не существовало схемы в каком либо CAD, были только в формате картинок. 
Поскольку это не позволяет синхронизировать схему с платой - это и приводило к вечным ошибкам, то в схеме, то в плате. 
Существует множество версий, выполненными разными людьми, где утверждается о каких-нибудь исправлениях и не факт, что не внесены новые ошибки :)

<img src="photos/gs_assembled.jpg" width="600" /><br>

В этой версии были выполнены следующие доработки:

- отрисована схема в p-cad 2006 по плате v1.3, исправлены ошибки с точки зрения CAD. Так, например, цепи GND и AGND имели "короткое замыкание". Понятно что линия аналоговой земли в этом устройстве есть то же самое что и "обычная" земля, но с точки зрения CAD это ошибка.
- оптимизированы проводники, приведены к "единому стандарту", в предыдущих версиях многие из них (сигнальных) имели разную ширину
- переставлены некоторые резисторы и конденсаторы, что бы облегчить их монтаж
- немного подвинуты микросхемы памяти, что бы было чуть удобнее паять сигналы CS тех, что устанавливаются вторым этажом
- нарисован CAD элемент для ламели (краевого разъема) по стандарту ISA
- сделан "ключ" для правильной установки в слот
- нанесено немного дополнительных обозначений на слое шелка
- сделана заливка полигона GND с обоих сторон

Отныне схема и плата полностью выполнены в CAD и полностью синхронизированы. Схема не имеет ошибок на этот раз (инфа 146%) :) т.к. слинкованная с ней плата работает. Эта версия полностью совместима со всеми предыдущими версиями, распиновка всех разъемов осталась прежней, разные расширители памяти так же все работают.

Проект по традиции выполнен в p-cad 2006 sp2


# Доработки 

Классический General Sound, как это всегда происходит в ZX сообществе, так же имеет множество доработок и модификаций в схеме и плате:
- Несколько доработок BlackCat
- Несколько доработок Northwood
- Другой ЦАП
- Замена 27512 на FLASH
- Замена ИЕ2 на ИЕ5
- Исправление диодного дешифратора
- Разгон 14.4 МГц
- Расширение памяти без установки 62256

Некоторые доработки могут дублироваться, они предложены разными авторами, но сделаны немного по разному.
Использование доработок оставляется на усмотрение пользователей, они собраны в каталоге [docs](docs/).


# Другие проекты, совместимые с General Sound

## neoGS

<img src="photos/neogs_c_front.jpg" width="600" /><br>
Это первый продукт группы NedoPC, разработчики: Вадим Акимов (LVD), Чунин Роман (CHRV), Вячеслав Савенков (Savelij), Жабин Алексей (KOE), Василий Климов (JTN). Карта делалась и тестировалась в 2007-2008 годах. 18 октября 2008 в серию была выпущена NeoGS версии rev.B

Подробнее на странице проекта: http://nedopc.com/gs/ngs.php


## ZXM-GeneralSound

Разработка 2014 года.\
Просто захотелось в конце 2013 года сделать что то менее мощное чем звукая карта neoGS от группы NedoPC.


<img src="photos/zxm_generalsound1t.jpg" width="600" /><br>
В отличии от оригинала практически вся мелкая логика спрятана в микросхему программируемой логики EPM7128STC100, что позволило существенно уменьшить общие габариты платы. Кроме того, вся память ОЗУ теперь находится также на основной плате и общий объем составляет 2 Мб. Объем ПЗУ тоже увеличен до 128 Кб. 
И в дополнении к этому в качестве микросхем ЦАП применены микросхемы TLC7528, которые также позволили сократить габариты платы. 

Программное обеспечение данной платы полностью совместимо с программой оригинала. Стоит конечно отметить, что имеется в виду базовая прошивка, т.е. младшие 32 Кб ПЗУ.

Подробнее на странице проекта: http://micklab.ru/My%20Soundcard/ZXMGeneralSound.htm


## v.smd

Проект выполнен Павлов Рябцовым (chipkin) в 2018 году. Это попытка внести все актуальные доработки, взяв за основу классическую версию 1.2 от zorel. 
Что из этого вышло можно почитать в теме форума zxpk: https://zx-pk.ru/threads/28713-sborka-i-nastrojka-platy-gs-2017g-(-pavla-ryabtsova)

<img src="v.smd/photos/render.jpg" width="600" /><br>

**Спойлер:** плата имеет множество ошибок. По сообщениям пользователей, собравщих эту плату - нужно делать порезы на плате ДО монтажа, иначе потом это будет очень трудно сделать.

В авторском архиве (на 8 странице темы) так же есть версия, выполненная на smd элементах, что является более интересным направлением в данном проекте. Отсюда и его название.

<img src="photos/v.smd.jpg" width="600" /><br>

Проект выполнен в DipTrace, разводка платы не сделана.


## ZX Multisound

Проект Евгения Лозового (UzixLS), разработка 2022 года.

<img src="photos/zxms-revA.jpg" width="600" /><br>

Карта-комбайн, среди ее музыкальных возможностей не только General Sound, но и многое другое.\
Репозиторий проекта на гитхабе: https://github.com/UzixLS/zx-multisound

