музыкальные возможности "орион-128/z" ------------------------------------- если вы сделали z80-card к "ориону", то вам естественно захочется использовать игры от "синклера", которые "скворчат" как оркестр. но для этого вам придется еще немного раскошелиться, а именно берите большой кошелек (с 5$ usa),идите в фирменный мага- зин и купите "msx-sound chip": ay-3-8912 (можно и ax). можно купить и 8910, он будет подешевле (так как его 2 идиотских порта никому не нужны, хватает и одного). вы считаете, что "chip" стоит дорого. это не так. скажите спасибо, что в "синклер" не поставили 6581 (он в 3 раза дороже и применяется в comodore-64/128). итак включайте свой любимый паяльник и за дело! 8912 легко разместить на плате контроллера дисковода или на месте одного из лишних пор- тов на основной плате "ориона-128". так как некоторые будут все-же покупать эту бис за рубли, то у них скорее всего не будет "фирменного паспорта", поэтому приведу "разводку ног": 8912: 1 - выход а, 2 - свободен, 3 - питание "+5в", 4 - выход b, 5 - выход c, 6 - земля, 7 - pa7 (порт а, b-только в 8910) 8 - pa6, 9 - pa5, 10 - pa4, 11 - pa3, 12 - pa2, 13 pa1, 14 - pa0, 15 - такт, 16 - /reset (инверсный), 17 - addr 8 (cs), 18 - bdir, 19 - bc2, 20 - bc1, 21 - d7 (шина данных), 22 - d6, 23 - d5, 24 - d4, 25 - d3, 26 - d2, 27 - d1, 28 - d0. (вот ведь "японцы"... даже не знают, что питание надо делать на 28 и 14 ноги, как принято). подключать так: bc2 - "1", на такт - 2 мгц, данные на шину данных, addr 8 - cs f760 (неинверсный), bc1 - a0 (адрес с процессора), bdir - /rd, учтите: сброс инверсный (берите с вг93). выходы каналов a,b,c через ре- зисторы 3к на вход эмиттерного повторителя звука (куда идет звук out ff). 8910: 1 - земля, 2,5,26,39 - свободны, 3 - выход b, 4 - выход а, 6 - pb7, 7 - pb6, 8 - pb5, 9 - pb4, 10 - pb3, 11 - pb2, 12 - pb1, 13 - pb0, 14 - pa7, 15 - pa6, 16 - pa5, 17 - pa4, 18 - pa3, 19 - pa2, 20 - pa1, 21 - pa0, 22 - такт, 23 - /reset, 24 - /addr 9 (доп /cs), 25 - addr 8 (доп. cs), 27 - bdir, 28 - bc2, 29 - bc1, 30 - d7, 31 - d6, 32 - d5, 33 - d4, 34 - d3, 35 - d2, 36 - d1, 37 - d0, 38 - выход c, 40 - питание "+5в" в 8910 /cs f760 (инверсный) можно подключать к /аddr 9, а addr 8 пусть болтается в воздухе (есть внутренняя привязка на 1) или подайте туда 1. если вы хотите то используя addr 8, вы можете подключить сразу две 8910 (используя для выборки адрес а1 от процессора). при этом для бис получаются адреса: f760 - адрес регистра данных, f761 - адрес выбора рабочего регистра несмотря на то, что 40-ногая 8910 стоит вдвое дешевле, чем 28-ногая 8912 и даже имеет два порта ввода/вывода вместо одного (как 8912), я советую вам покупать именно 28-ногую 8912, а не 40-ногую 8910. чем меньше ног, тем приятнее, да и если появятся новые платы "ориона" с установленным на них "sound chip", то это будет очевидно 8912 (т.к надо экономить площадь печ.платы). все бытовые компьютеры в т.ч и импортные, используют именно 8912, а не 40-ногую 8910. это "atm-turbo", "sinclair-profi", "scorpion", "правец-8д", а7150. именно поэтому (т.к цена определяется спросом) 8912 стоит вдвое дороже, чем 40-ногая 8910 (которая вообще никому не нужна). однако, если вы предельно бедны, то вам выгоднее купить именно 8910 и сэкономить свои денежные средства для семьи. к сожалению пока нет ни одной программы, поддерживающей ay8912, поэто- му для вас открываются широкие возможности проявить себя и заставить наконец программы "ориона" - "скворчать, как целый оркестр". чтобы об- легчить вам программирование этой бис, я приведу для вас немного инфор- мации, как программировать эту бис (неиспользуемые порты, используйте как хотите, например для "мыши" или джойстика). r0 - канал а, low (8 бит) r1 - канал а, hi (4 бита младшие, старшие 4 бита не влияют) r2 - канал b, low r3 - канал b, hi r4 - канал c, low r5 - канал c, hi r6 - управление частотой шума, биты 0-4, частота = такт/(16*5 бит.r6) r7 - управление смесителем (шумов, тонов), биты 6 и 7 в 8910 упр-ют направлением передачи портов "a" и "b" (0-на ввод) включение тонов по каналам: бит0 бит1 бит2 активны каналы 0 0 0 a b c 1 0 0 - b c и так далее (0 - канал активен, т.е дает тон, 1 - отключен) управление проходом на выход шумов аналогично, но упр-ся битами 3,4,5 (бит3 отвечает за канал а, 4 за b, 5-c). r8 - управление амплитудой канала a r9 - --"-- b r10 - --"-- c все 3 регистра работают аналогично: если бит4=1, то остальные биты не важны громкостью управляет генератор огибающей. если бит4=0, то громкость канала упр-ся битами 0-3 (мл.ниббл), при этом чем больше число тем громче (0-f) r11 - частота огибающей, low r12 - --"--, hi частота огиб.=такт/(256*16бит из r12,r11) r13 - управление формой огибающей (биты 0-3) вся огибающая делится на 16 участков (периодов частоты огибающей) бит0 - hold, если=1 то 2-16 участки не изменная амплитуда бит1 - alternative, если=1, то след.участок меняет напр-е наклона (/\/\/) бит2 - attack, если=1, то в каждом периоде увел-е звука ( т.е: /) бит3 - если=1, то влияет бит0 (hold), если=0 то есть только 1-й период r14 - регистр данных порта a r15 - регистр данных порта b (только для 40-ногой "уродины" 8910) процесс инициализации заключается в записи данных для всех звуковых регистров (это лучше сделать в цикле с помощью таблицы данных) максимальная тактовая частота - 2 мгц. как видите коэф-т деления всего 12 разрядный и такт общий на все 3 канала (тут уж выигрывает даже ви53, у которой коэф-т деления 16 разр. и у каждого канала свой такт). однако есть "некоторые" бис (японские!) у которых коэф-т 16 разрядный (так,что испытайте свою бис, может быть она умеет "точнее" давать ноты). программирование предельно просто: по адресу выбора рабочего регистра записываете номер регистра, а затем по адресу данных, то что хотите записать (или считать с r14/15) в этот регистр. как видите предельно просто. в области внешних устройств "тратится" всего 2 адреса. (идиоты, лучше бы выкинув порт освободили бы "ноги" микросхемы и сдела- ли 4 адреса выборки, это бы упростило работу, но к сожалению эту бис делали безграмоные "япошки" для своего компьютера "msx" и до этого не смогли додуматься). кого заинтересуют мои простые примеры программирования, а также версия монитора-3 с инициализацией 8912, пишите мне по адресу: 192238 санкт-петербург а/я 175 чистяков владимир, sp-computer club, май 1992 комментарий к этому тексту (год спустя): ---------------------------------------- к сожалению адрес f760 для 8912 был выбран почти 2 года назад, когда не было речи о "адаптации игр zx". сегодня совершенно очевидно, что так ставить 8912 просто глупо и бессмыссленно, т.к теперь уже очевидно, что "поддержать" такой звук в программах никто не сможет. к счастью в связи с отсутсвинм по никто, кроме меня не поставил 8912, так, что никто не пострадал от этого текста. ставить 8912 надо разумеется совместимо с "синклером", чтобы при переделке игр музыку на 8912 не требовалось трогать. сегодня я считаю, что право давать советы на аппаратные доработки, имеет только тот, кто тут-же предлагает программную поддержку, в противном случае это аморально, поэтому, так как не имею средств сделать хоть одну программу под 8912 не даю советов. этот текст был написан всего год назад, но уже устарел. к сожалению этот файл был отправлен в нескольких бандеролях в ино-города и главное попал в москву (самый пиратский город снг), т.е широко распространился (об этом мне известно из тлф.разговоров и писем). поэтому, к сожалению, я не могу теперь отказаться от авторства этого текста. однако в свете последних собы- тий я бы хотел обьяснить откуда взялся адрес f760. как вы видите из даты этот текст я писал весной 1992 г. когда было адаптировано всего несколько первых программ от "синклера". кроме того такой адрес для установки 8912 вообще определялся еще весной 1991 г. когда была сделана партия плат кнгмд содержащая прямо на плате дешифратор 155ид4 (специалистовские платы кнгмд - "ленинград-90"). собственно наличие этих уже готовых плат и определило в марте-июле 1991 года всю адресацию внешних устройств, которую затем мы предлагали стандартизовать (ведь стандартов на подключение авторы не обья- вили и не сообщили). вначале, с февраля по май 1991 использовалась первая версия cp/m, работающая еще в 0-й банке озу и имеющая fdc вг93 по адресу f700-f703, а регистр управления по следующему адресу f704 (аналогично тому как было в специалисте и корвете). собственно cp/m для "ориона" была полной копией версии cp/m "специалиста" 1990 года, лишь перетранслированная под другие адреса. эта cp/m имела размер tpa всего 48к, а при этом не работали многие мощные cp/m программы. при появлении плат, имеющих дешифратор, раз- бивающий все пространство адресации контроллера на 8 участков мне показалось целесообразным использовать этот дешифратор так, чтобы можно было подключить кроме контроллера нгмд и другие доп.внешние устройства и при этом не возни- кало конфликтов. кроме того я расчитывал, что многие захотят поставить тай- мер 580ви53 прямо на плате кнгмд, использовав имеющийся дешифратор ид4. та- ким образом и появилось деление области дополнительных внешних устройств "ориона" участками по 20h, т.е f700, f720, f740... . именно поэтому с мая 1991 года в ленинграде мы распространяли cp/m, работающую в дополнительной странице озу с адресами кнгмд f700/f720. таймер ви53 ставился по f740, a для муз.сопроцессора ay8912 предполагался адрес f760. тогда еще не предпо- лагалось устанавливать z80 и адаптировать игры "синклера". мне казалось, что программисты-любители смогут решить и без этого "проблему игр". в июле 1991 в ленинград на 3 дня приезжал автор в.сугоняко. он сообщил, что планирует вскоре разработать новую расширенную версию "ориона", где по адресу f700 предполагается установить новый системный регистр для чтения (в отличие от регистров f8,f9,fa, работающих на вывод). поэтому он определил адреса нгмд f710-f714. к сожалению он не сделал этого в феврале 1991 года, когда получил от нас первую версию cp/m и схему контроллера. так как с весны cp/m по адре- сам f700/f720 продавалась и в москве и в ленинграде (только в лениграде было уже несколько десятков владельцев нгмд) и такое изменение потребовало бы вводить доработки в уже готовые платы, а также исходя из того, что для cp/m программ совершенно не важно по какому адресу стоит вг93 (ибо все программы работают через bios) но главное по причине нежелания автора прислушаться и к нашему мнению было решено оставить пока все как есть, до выхода публикации в журнале "радио". главной же причиной того, что теперь на "орионе" сущест- вует два стандарта кнгмд, я считаю характер владислава сугоняко, т.е его пол- ное нежелание сотрудничать и даже выслушать мнение других. при наличии жела- ния с его стороны, достигнуть согласия по адресу кнгмд вообще не представля- ло труда, т.к все определял я (в.чистяков), а я по гороскопу "весы", что оз- начает, что всегда стремлюсь к согласию и компромиссу. практически изменить адрес нгмд было бы не трудно и естественно я понимал, что всего одной статьи в журнале "радио" достаточно, чтобы наша адресация воспринималась всеми, как "бред" и разумеется собирался придерживаться "стандартов".к сожалению, автор считал себя вправе смотреть на "групку ленинградских радиолюбителей", как на пустое место и сказал, что ему на нас практически наплевать, что мы можем делать себе любой адрес нгмд, а он "стандартизует" f710. я надеюсь, что все понимают, что в.сугоняко не составило бы труда убедить нас перейти на свои адреса, ведь мы все надеялись, что его кооператив будет покупать у нас для тиражирования игры и cp/m-программы и к тому-же весьма уважали авторов. ра- зумеется, то, что не удалось найти взаимопонимания большая глупость и естес- твенно здесь во многом виноват я сам. к сожалению в 1991 еще не издали книги дэйла карнеги и я их еще не читал... как бы там ни было я оцениваю, то что не изменил адреса кнгмд "под авторов" летом 1991 г. как личную ошибку, ко- торая повредила развитию "ориона", ибо чьи-то "мозги" работали впустую... т.е некоторые программы оказались сделанными под "не тот стандарт" и другие программисты тратили время на адаптацию, некоторые программы многие вообще не видели, т.к они у них не работают. я думаю, что то, какой "стан- дарт" включения нгмд сейчас более распространен, т.е где больше программ, вы решите сами. как пишет автор в.сугоняко в одном из последних текстов фирмы "орионсофт", популярности адреса f700 для регистра управления нгмд, как называет автор - "московского варианта стандарта" весьма способствовал мп "орион-сервис" из лыткарино. здесь я могу вполне согласиться, ибо моих контроллеров кнгмд было всего около 500, контроллеров же нгмд разных версий "орион-сервиса" было продано по-видимому тысячи... и уж больше, чем плат фирмы "орионсофт". мне удалось распространить cp/m всего в двух десятках го- родов, а дискет "орион-сервис" продано значительно больше, так что с заслу- гами мп "орион-сервис" в популяризации адресoв f700/20 нельзя не согласиться. однако с названием "стандарта" адреса f700/20, как "московский" я не согла- сен. отчего это он стал московским, если появился в ленинграде, а версии "орион-сервис" сделаны из ленинградских исходных текстов. естественно к маю 1992 г. м.бриджиди доработал bios, но до версии 2.61, отличия от исходного текста, названного а.кузнецовым 2.0 невелики и кроме того содержат ошибки (причем "орион-сервис" утверждал, что это ошибки из ленинграской cp/m, но пусть покажут хоть одну дохлую ленинградскую cp/m, а их всего две, 90/92). cp/m "орион-сервис" пусть называется "московской", но стандарт f700/20 - это стандарт из ленинграда. в сентябре 1991 г. г.рогов приехал в ленинград и сообщил о намерении создать малое предприятие, для поддержки "ориона", для чего им была сделана реклама в журнале "радиолюбитель". так, как г.рогов собирался сотрудничать с программистами в ленинграде, понимая, что в.сугоня- ко, имея свой кооператив не заинтересован в конкурентах и не будет сотрудни- чать с "орион-сервисом", мне не составило большого труда убедить их исполь- зовать адрес нгмд f700/20, хотя они предпочитали f700/04. таким образом в.сугоняко почти прав утверждая, что такой стандарт является моим "продуктом творения" (цитата из текстов орионсофт). почти, потому, что в наличие двух стандартов для кнгмд он сам "приложил руку". кроме того, осенью-зимой 91/92 мы еще были готовы "перейти на авторский стандарт", каким бы он ни был, но его попросту никто не знал. о том, что в.сугоняко действительно использовал адрес f710 стало известно только в мае 1991, когда кооп "поиск" наконец на- чал продажу cp/m, на 5 месяцев позднее "орион-сервиса", хотя все материалы получил много месяцев раньше, чем "орион-сервис". следует отметить еще одно. существенным разногласием с в.сугоняко явилось то, что он требовал, чтобы cp/m работала в основной странице (т.е 48к), ибо он исходил из того, что ordos - система времен и народов, а cp/m - устаревшая "туфта". в.сугоняко собирался cp/m пристроить к ordos и еще летом 1991 г. описал всю идеологию работы системы "bru". я же исходил из того, что ordos - туфта и надо просто всем переходить в cp/m, выбросив ordos. в данном вопросе меня поддержал "орион-сервис", поэтому они также ориентировались на cp/m-60k. на самом де- ле здесь тоже истина посередине. а именно, как и в "синклере-атм-турбо" удобно иметь 2 варианта cp/m: пользовательский (48к) и системный (60к). из cp/m-48k удобно использовать ordos, запускать игры, часто удобнее отлаживать программы имея доступ из cp/m к отладчику в основной странице и главное без всяких проблем иметь cp/m эл.диск 60/120к и цвет в пользовательских програм- мах. cp/m-60к нужна в основном тем, кто использует большие по обьему фирмен- ные программы, не работающие в cp/m-48k, это в основном программисты-любите- ли. "чайникам", т.е непрограммирующим дилетантам, которым из всех системных программ нужна только "красивая запускалка игр", cp/m-60k не нужна вовсе и только лишает их цвета. так как в своем "оскорбительном но малограмотном" тексте от имени фирмы "орионсофт" в.сугоняко анонсирует cp/m, работающую в доп.банке озу, я тоже буду распространять желающим cp/m (bios 90г), работаю- щую в основной банке, чего не делал с весны 1991. к сожалению большинство программ работающих в основной странице (т.е игр) уже снабжены загрузчиками перекидывающими программу при запуске из доп.страницы в основную и зависают при старте в cp/m-48k. тут целесообразно применять программу reader.com, которая снабжает магнитофонные файлы загрузчиком стартующим из любой банки (такой загрузчик сначала сам определяет в какой странице он сам располагает- ся путем поиска кодов игры во всех 4-х банках). именно для работы в cp/m-48k я думаю стоит писать basic, с графикой, цветом и работающий в среде cp/m, естественно за основу надо брать microsoft basic, как сделали на "корвете" (посмотрите какой там шикарный basic - работают почти все basic программы от ibm pc). к сожалению никто до сих пор не взялся за такую работу. я имею уже дизассемблированный модуль microsoft basic (16k), осталось "самая малость" встроить графику и цвет. к сожалению я не смогу больше "заниматься орионом" поэтому охотно предоставил бы такую работу кому-нибудь, кто может сделать такой basic. чистяков владимир, 25 апреля 1993