4.2 C
София

Аудиото на Apple II и звуковата карта Mockingboard

Оригиналът е на Nicole Express

Най-четени

Даниел Десподовhttps://www.kaldata.com/
Ежедневен автор на новини. Увличам се от съвременни технологии, оръжие, информационна безопасност, спорт, наука и концепцията Internet of Things.

За едно от най-слабите места на Apple ][+ се счита неговото аудио. Нека да разгледаме по-подробно какво са AY-3 и Mockingboard, и да се задълбочим в аудиото на Apple ][, за което информацията не е много.

Стига сте клеветили Apple ][

Защо съм толкова критичен? Все пак Apple ][ предлага най-добрия вграден звук от излезлите през 1977 година персонални компютри. Всъщност с това искам да кажа, че по принцип той има възможност да възпроизвежда звук, докато неговите преки конкуренти PET 2001 и TRS-80 Model 1 изобщо нямат аудио,

Разбира се, когато специалистите на Commodore добавиха в своя PET аналогичен най-обикновен говорител, а потребителите на Tandy разбраха, че могат да използват микрофонния вход за аудио, то преимуществото на Apple ][ бързо бе нивелирано. Малко по-късно, през 1979 година 8-битовите компютри Atari зарадваха домашните потребители със звуковата карта POKEY. Но все пак ние говорим за 1977 година!

Каква е поддръжката на звука по това време? В Apple ][ има само един най-обикновен говорител, без каквото и да е друга поддръжка за извеждането на аудио. Говорителят се управлява чрез софтуерен превключвател, който е една клетка от адресното пространство, но не е част от паметта на компютъра. Процесорът 6502 може да адресира само памет и затова входно-изходното пространство е представено във вид на адреси на паметта. В този конкретен случай говорителят се управлява чрез адреса $C030 или 49200 в десетичната бройна система. Подобна реализация на входно-изходното пространство чрез паметта може да изглежда малко странно, но всъщност се използва и днес.

 

Говорителят е просто една хартиена диафрагма, която се управлява от електромагнит. Записът на информация в клетката $C030 активира този електромагнит, а премахването на информацията оттам го деактивира. Това е работа на съвсем ниско ниво. Така например, за генерирането на звук с честота 1000 Hz, която се чува при зареждането на Apple ][, е необходимо на този адрес да бъде осъществяван запис със скорост 2000 пъти в секунда. Да не забравяме, че този малък компютър няма таймери и няма прекъсвания. Единственият начин за реализацията на подобно нещо е да се пресметнат процесорните цикли и да се знае каква е честотата на тактовия генератор.

Нека да видим как е в реалността. Едва ли ще имате подръка Apple II, но можете да използвате емулатор, да влезете в Applesoft и да въведете X=PEEK(49200), където Х може да е всякаква променлива. Ако изобщо чуете нещо, то това ще бъде едва доловимо пукане. Нека сега въведем следното:

10 X=PEEK(49200)
20 GOTO 10

Ще се чуе нисък тон, който записах с помощта на моята уеб камера:

Ако промените програмата, както е показано по-долу, то ще можете да чуете как честотата на този звук намалява и след това се заменя с поредица пукания. Само една команда на BASIC прави всичко много по-бавно:

10 X=PEEK(49200)
20 PRINT "NYA"
30 GOTO 10

Този нисък тон всъщност е най-високият, който може да бъде получен в BASIC. Разбира се, с помощта на асемблера за процесора 6502 може да бъде постигнато много повече. И още, постоянната памет на Apple ][ включва подпрограма за генериране на звуков сигнал, която може да бъде извикана чрез CALL -16336.

Джеръми Париш в своята поредица NES Works в YouTube отбелязва, че малката конзола Famicom/NES е разработвана за играта Donkey Kong. При това компютърът Apple ][ също се е разработвал за една точно определена игра – Breakout. След като е реализирал на асемблер за Atari (въпреки че този проект не е използван), небезизвестният Стив Возняк, който по това време е обикновен компютърен ентусиаст, решил да създаде персонален компютър, който би могъл да стартира тази игра на BASIC. Успял.

Забележка: скрийншотът е направен с помощта на Framemeister и от него са тези неприятни оттенъци във вид на дъга.

 
В Breakout са реализирани няколко звукови сигнала, но симфония няма как да се получи

За Apple ][ има програми, които правят невероятни неща с неговия говорител. Но ако на някой му е интересно защо при повечето игри за Apple ][ при реализирането на бързи движения няма фонова музика, то проблемът е в това, че възпроизвеждането на подобна музика отнема целия процесорен ресурс. А по принцип реализацията на точните тайминги в Apple ][ е истинско главоболие.

В тези далечни времена Стив Возняк намерил изход. Все пак ненапразно Apple ][ надживя всичките свои съперници, като основната роля за това изиграха разширителните слотове. Много потребители биха искали Apple ][ да има повече от тези слотове, но така или иначе това е едно великолепно решение за домашните компютри от това време.

Появата на звуковата карта

За разлика от човека, Apple ][ няма как самостоятелно да се научи да пее, но за сметка на това в него могат да бъдат добавени допълнителни модули, което е един много добър компромис.

Внимание, това е Mockingboard:

 

Това е звуковата карта Mockingboard, в която съм направил някой промени. Оригиналната Mockingboard излезе през 1983 година и сега може да се намери само в някои специализирани интернет магазини. Виждаме, че на платката е оставено място за чиповете за синтез на човешка реч, но самите чипове ги няма. Така че днес компютърът няма да може да говори с мен.

Можем да се запитаме защо Apple не са разработили собствена звукова карта? Те представиха култовите Super Serial Card и Disk ][, които се превърнаха в стандарт. Най-вероятно синтезирането на музика не се е разглеждало от компанията като необходима функция за малкия бизнес, домашните ентусиасти и училищата.

 Поставянето на тази звукова карта в Apple ][ е съвсем лесно. Аз използвах четвърти слот, понеже бе свободен. Не изключих говорителя, понеже исках да чувам познатия сигнал при включването на компютъра.

Звукът, генериран от този аудио карта, е доста интересен. Mockingboard се базира на чипа General Instrument AY-3-8910. Същият чип се използва и в компютъра MSX, както и в 16-битовия Intellivision, във Vectrex, Amstrad CPC и още редица други машини.

Чипът AY-3-8910 много често се нарича просто AY-3 и в контекста за аудио при компютрите това е достатъчно, за да стане ясно за какво се говори. Но при General Instrument същото обозначение се използва за голям брой чипове, включително и за AY-3-8500, който се използва при създаването на редица игри.

Нека да си припомним какъв е звукът на Pitfall II от MSX:

 

Интересното тук е, че играта Pitfall II има версия и за Apple ][, която демонстрира някои от интересните графични особености на този домашен компютър. Виждате ли черните петънца в долната част на небето? Те се дължат на факта, че при Apple ][ зеленият и синият цвят не могат да бъдат съседни. Това е и причината в по-голямата част от игрите за този компютър да се използва палитра от син и оранжев цвят, като по този начин се избягва появата на подобни артефакти.

Да се върнем към звука. В тази игра той е реализиран именно с помощта на Mockingboard. Звукът в тази игра се е получил доста удачен, като разликата в сравнение със MSX е учудваща:

Бих допълнил само, че тази игра използва около една четвърт от възможностите на звуковата карта Mockingboard. Ето още един пример от демонстрационната дискета към тази звукова карта – Pop Goes the Weasel със стерео звук, като интересното е, че тук се използва звукова карта с два AY-3 чипа – по един за всеки канал. Панорамният звук е доста особен:

Как е реализирано всичко това?

Устройството на Mockingboard изобщо не е сложно. Тази звукова карта има два стандартни VIA адаптера тип MOS 6522. На платката са поставени компоненти на Rockwell, но WDC, които създадоха процесорите 65C02 и 65C816 и до днес продават своята собствена версия 6522.

Всеки VIA чип има два порта за обмен на данни, които за процесора 6502 са адреси на паметта, но на практика това са входно-изходни линии. Mockingboard обединява тези два комплекта линии с контролен порт и информационни изводи. Използването на два VIA контролера се налага заради наличието на двата AY-3-8910 чипа за генериране на човешка реч, които по-лесно взаимодействат с шината данни.

Какъв е кодът?

В началото на статията видяхме какви са възможностите за генериране на звук с помощта на BASIC и аз реших да проверя всички регистри на AY-3-8910 и да пробвам да запиша в тях и да чета от тях информация с помощта на командите POKE и PEEK. Оказа се, че възникват сложности и това не е лесно, така че се наложи да се откажа от BASIC. Но във въпросната дискета към Mockingboard за удобство на потребителите е включено следното:

 

Както и при другите звукови карти от подобен род, подбраният звук продължава да се възпроизвежда, независимо какво върши процесора. Това продължава докато процесорът не подаде команда за промяна или спиране на този звук. По принцип затова се използват и звукови карти – вместо всеки път да се задейства мембраната на говорителя чрез запис на информация в определена клетка на паметта, тук трябва да се подава сигнал, само когато се налага промяната на силата на звука или промяната на нотата. По този начин натоварването на процесора силно намалява и той може паралелно да изпълнява други алгоритми. Но липсата на таймери в Apple ][ си остава, което не е много  приятно.

Apple IIgs и след това

Може да си помислите, че за Apple IIgs звуковата карта Mockingboard не е особено ценна, понеже в тази компютърната система се използва чипа Ensoniq, който многократно превъзхожда възможностите на Mockingboard. Въпреки това, тук не е реализирана обратна съвместимост и ако пожелаете да стартирате на Apple IIgs 8-битови програми, дори и да са от рода на по-новата Nox Anarchist, пак ще ви е нужна платката Mockingboard. Подходящите слотове са налични, но има един нюанс.

 

За да могат да бъдат настроени слотовете за работа с 8-битовия софтуер, необходимо е в настройките да се зададе, че използвания слот ще бъде от типа My Card. А ако решите да използвате Slot 4, то ще се наложи да изключите порта за мишката. Това е общо взето единственият проблем и ако се справите с него, всичко работи перфектно.

Наличието на звуковата карта Mockingboard за притежателите на Apple ][ направо си беше задължително. Днес дори се учудвам, защо се забавих толкова много и твърде късно си взех тази звукова карта. Въпреки че в наши дни разполагаме с невероятни звукови процесори и сложни чипове, не бива да забравяме откъде започна всичко.

 

Предишна новинаAdvanced Codecs 15.3.3
Следваща новинаHardware Inspector 8.5.2
Абонирай се
Извести ме за
guest
5 Коментара
стари
нови
Отзиви
Всички коментари

Нови ревюта

Подобни новини