Не утруждайся.
Статья из 1 zx:
Музыкальный сопроцессор.
О том, как произошло его знакомство с музыкальным сопроцессором, рассказывает Евгений Крюков из г. Дзержинска Нижегородской обл.
КОРР: У меня был компьютер "Москва-128", без сопроцессора. И в этом состоянии он действительно был ничем не лучше обычного ZX-SPECTRUM-48K". Но и это меня вполне удовлетворяло. Но вот однажды, у меня появились две игры - Dizzy-3 и Dizzy-4. Они мне безумно понравились (я к этому еще вернусь в конце письма). Только после полного прохождения этих двух игр, я позволил себе заглянуть в описание (500 игр для "Спектрума", изд. "VA PRINT"). И каково же было мое удивление, когда в описании игры Dizzy-3 я увидел, что эта игра имеет "...хорошую точечную графику и замечательную музыку..."! Вот это да! Насчет графики я не могу не согласиться, она там действительно классная, но музыка? Т.к. не доверять составителям сборника оснований не было, то некоторое время я находился в замешательстве. Только потом, когда один мой друг, владеющий компьютером "PENTAGON-128+" со встроенным музыкальным сопроцессором, сказал мне, что музыка это - для 128К, я понял, в чем дело. А когда я пришел к нему и услышал ее, я навсегда полюбил ее и понял, что не смогу спать спокойно, пока у меня тоже не будет такой же музыки. Тогда в компьютерном магазинчике как раз продавалась плата с сопроцессором. Плата изготовлялась фирмой "SIMETRON LTD" и снабжалась инструкцией, которая гласила, что эта плата подходит к музыкальным сопроцессорам AY-3-8910 или AY-3-8912. Вместе с этой платой я купил (не буду говорить сколько я копил на это дело) и музыкальный сопроцессор. Правда, это был не AY-3-8910, a YM-2149F.
Никакого упоминания о нем я нигде не нашел, но впоследствии оказалось, что они идентичны.
А что же было дальше? А вот что. Я подключил эту плату к своему компьютеру, и с этого момента моя "Москва-128" стала действительно полноценным компьютером 128К. Как здорово было слушать музыку из Dizzy-4 и других игр. Да, насчет Dizzy-4. Я наконец-то понял тогда, почему не брался последний файл на ленте "diz4.M" в
Dizzy-4. Оказалось, он содержал в себе музыку и предназначался только для 128К-режима. А вот Dizzy-3 так и не заработала как следует. Тут дело вот в чем: эта игра (в моей версии) содержит пять файлов, включая загрузчик и заставку. И последний из них, "DIZZY-4" не загружался, как и "diz4.M" в Dizzy-4.
Я не без оснований полагал, что он должен загрузиться в 128К-режиме с подключенным сопроцессором. Но не тут-то было. Этот последний файл не брался даже тогда с завидным упорством. Тогда я вскрыл загрузчик и посмотрел в чем там дело. Там я увидел условный переход на загрузку этого файла, но я так и не понял, какие же условия должны были быть выполнены, чтобы этот файл загрузился. Поэтому мой первый крик о помощи:
ПОМОГИТЕ! Помогите разобраться в этой задачке.
(К другу я не могу обратиться, т.к. у него дисковая версия этой игры). Листинг загрузчика Dizzy-3 у меня такой:
10 REM LOADER FOR DIZZY-3
2 0 BORDER NOT PI: CLEAR VAL "24317": POKE VAL "2 37 3 9",CODE "o": RANDOMIZE USR VAL
"4e4": LOAD "DIZZY.2"CODE: LOAD "DIZZY.3"CODE: POKE VAL "23627",NOT PI 30 POKE VAL "23760",PEEK VAL " 49152": OUT VAL "32765",VAL "16": POKE VAL "49152",VAL
"30": OUT VAL "32765",VAL "19" 40 IF PEEK VAL "49152"=VAL "30 " THEN POKE VAL "49152",PEEK VAL "23760": RANDOMIZE USR VAL "24832"
50 LOAD "DIZZY.4" CODE: OUT VAL "32765",VAL "16": POKE VAL "49152",PEEK VAL "23760": POKE VAL "23627",VAL "255": RANDOMIZE USR VAL "24832"
Да, кстати, еще насчет сериала "Dizzy". Сейчас я собрал уже все шесть этих игр аркадно-адвентюрного жанра (как Вы его называете, я называю его короче - KBECT (от английского QUEST - "поиски предмета" или "вопрос"). И еще есть у меня игра "Dizzy Downs The Rapids" аркадного жанра. Но это так, к слову. Я вот к чему веду. У меня версия Dizzy-5 вскрыта и обесмерчена Дупановым Алексеем 7 июня 1992 года. Так написано в загрузчике. Там же есть запись: DIZZY V FOR 48K". У меня появилась навязчивая мысль - а что, если есть версия этой фантастически интересной и трудной игры для 128К? Если Вы что-нибудь знаете, то ответьте мне.
Тоже самое и с Dizzy 6, Prince Yolkfolk. Моя версия вскрыта FANATIC STAS и тоже предназначается для 48К-памяти. А ведь игра сама дает понять, что в ней присутствует музыка-128, особенно в конце, когда игра на несколько секунд застывает, а потом возвращается в начальное меню. По-моему в это время там играет музыка 128К. К сожалению, в нашем городе распространены версии для 48К. Поэтому второй крик о помощи: ПОМОГИТЕ!
Моё железо
Скрытый текст
ZX_Evolution rev.b + NEO_GS + TSFM
Ленинград-128/256kb + AY + TR_Dos
Delta_micro /repair status/
Москва_48кb /repair status/[свернуть]
Продолжение
ИФК: На "крик о помощи" Евгения Крюкова по поводу DIZZY (РЕВЮ № 3, стр. 58) откликнулся Владимир Дулепов из Новосибирска, студент 2 курса ФФ НГУ. Вот что он пишет.
КОРР: Сначала несколько вступительных слов. Я уже давно являюсь поклонником сериала игр о Диззи и, благодаря моему другу из Красноярска Дмитрию Романенко, имею все семь игр сериала (на самом деле игр, конечно же, семь, ведь кроме игр под номерами 1-6, есть еще и 3.5).
Как известно, игра DIZZY-3 была первой из серии, имеющей дозагрузку для 128К. Нельзя сказать, что это у фирмы CODEMASTERS получилось удачно. Во-первых, обрадовавшись наличию музыкального сопроцессора, фирма начисто отказалась от обычных звуков. Это, конечно же, неправильно. К чести фирмы, впоследствии она реабилитировалась: уже в DIZZY-3.5 и DIZZY-4 обычные звуки присутствуют. Во-вторых, работа с режимом 128К идет вполне корректно, а вот с 48К - есть проблемы. Во-первых, некоторые, наверное, замечали, что после спасения DAISY после гибели игра "повисает", а в некоторых местах портится графика (например, в экране, левее вулкана, да и на экране с вулканом тоже). Во-вторых, при попытке убрать из загрузчика всякие, казалось бы, лишние РОКЕ, после гибели игра "виснет". Все это, в конце концов, меня возмутило, и я решил разобраться, в чем же дело. К этому времени у меня появился SP-128 и, к тому же, появилась необходимость переписать игру на диск. И в обоих случаях у меня возникали проблемы.
С адаптацией к диску проблема была одна: нехватка памяти из-за TR-DOS, что я обошел, разбив, загрузчик на две части по рекомендации Н.Родионова ("Адаптация программ к системе TR-DOS"), а вот с загрузкой дополнительного блока для 128К были проблемы. Опишу все по порядку.
Во-первых, загрузчик. Он схож с тем, что приведен в РЕВЮ № 3, но в нем есть несколько грубейших ошибок. И, самое главное, в нём совершенно некорректно происходит переключение страниц памяти. Чтобы понять подробнее, советую, для начала, заглянуть в РЕВЮ-91 № 1 и № 2. В последнем из них, на стр. 26 сказано, что порт 32765 (#7FFD), переключающий страницы ОЗУ и ПЗУ, является портом записи, но не чтения. И, чтобы восполнить этот недостаток, его копия заносится в системную переменную BANK_M по адресу 23388 (#5В5С). А вот дальше есть слова: "Вы должны ... сначала загрузить нужный байт в BANK_M, а только потом выдавать его на порт #7FFD, но не наоборот". Это - ключевой момент.
Во-вторых (и это, пожалуй, главное), если Вы попробуете загрузить DIZZY-3 опцией "ТАРЕ LOADER" главного меню SP-128, то ничего из этого не выйдет. У меня после этого игра зависает. Я уже потерял всякую надежду послушать музыку в DIZZY-3, но однажды у меня это случайно получилось - я вышел в TR-DOS не через RESET, a набрав RANDOMIZE USR 15616. Каково же было мое удивление, когда, набрав RUN "DIZZY 3", я вдруг после загрузки услышал музыку! Игра требует, чтобы в момент её запуска было активно не ПЗУ-0 ("новое" ПЗУ), а ПЗУ-1, хотя и в режиме 128К! Такого "наворота" я даже не предполагал.
Теперь перейду к главному вопросу, - каким же должен быть загрузчик, чтобы игра нормально стартовала? Кстати, чтобы не было неоднозначности, привожу данные всех необходимых кодовых файлов: "dizzy3$" CODE 40000,5098 "dizzy31"CODE 24576,40959 "dizzy32"CODE 49152,16383
В разных версиях заставка может быть компрессирована или нет, но два главных файла обязательно должны быть. Последний - это и есть догружаемый файл с музыкой. Теперь приведу текст загрузчика для 128К:
0 REM DIZZY-3 128K LOADER BY VLADSOFT (С) 1994
1 BORDER NOT PI: PAPER NOT PI : CLEAR VAL "24575": LOAD "dizzy 3$"CODE 4E4
2 RANDOMIZE USR VAL "4E4": LO AD "dizzy31"CODE: REM для магнитофонной версии перед
LOAD неплохо вставить POKE VAL "23739", CODE "о"
3 POKE VAL "23388",VAL "19": OUT VAL "32765", VAL "19": LOAD "dizzy32"CODE
4 POKE VAL "23388", VAL "16": OUT VAL "32765",VAL "16": RANDOM IZE USR VAL "24832"
Вот и всё. Загрузчик устроен так, что переделка его под диск не вызовет проблем. Если все-таки игра "не пойдет", попробуйте в последнюю строку перед RANDOMIZE USR вставить POKE VAL "23627", VAL "255" (о смысле этого - чуть ниже).
Для написания универсального загрузчика есть три проблемы. Первая заключается в том, что нужно корректно проверить наличие дополнительной памяти. В исходном загрузчике это делается, но из-за вышеупомянутой проблемы с BANK_M и ПЗУ-0 не проходит. К тому же на Бейсике это выглядит весьма громоздко. Приведу свой вариант на ассемблере:
:порт #7FFD проверяемая ячейка включение ПЗУ-0 и страницы ОЗУ-0 тестовый байт 1 включение ОЗУ-3, но можно и другое тестовый байт 2 восстановл. исходного режима памяти занес, результата в систем, переменную NOT_USED и возврат
Работает эта проверка очень просто. На SP-48 порта 32765 нет, поэтому команда LD (HL),0 затрёт единицу по адресу 49152 и, в результате, в 23681 (можете использовать любой другой адрес) занесется 0. В SP-128 в странице ОЗУ-0 как была 1, так и останется и, в результате, в 23681 будет занесена 1. Кстати, сделано это для того, чтобы можно было провести проверку ещё до загрузки программы, иначе она будет испорчена командами LD (HL),1 и LD (HL),0. Можно, конечно, сохранять ещё где-нибудь содержимое этих ячеек до проверки, а затем восстанавливать, но при этом процедура увеличится в два с лишним раза. Я предлагаю (и это с успехом использовал у себя) полученную процедуру занести в Бейсик-загрузчик в 0 строку после REM - по-моему, это удобно. Таким образом, проверка режима осуществляется так:
0 REM коды
1 RANDOMIZE USR (PEEK 2 3 635+2 5 6*РЕЕК 23636+5)
2 ... REM загрузка заставки и основного кодового блока
LD
ВС,32765
LD
HL,4 9152
LD
А,16
OUT
( С), А
LD
(HL), 1
LD
А,19
OUT
( С), А
LD
(HL),0
LD
А,16
OUT
( С), А
LD
A, (HL)
LD
(23681) ,А
RET
5 IF PEEK 23681 THEN LOAD "dizzy32"CODE
6 ... REM запуск игры.
Если в 23681 находится 1 (то есть если у Вас 128К), то загрузится дополнительный блок, иначе - нет. Вторая проблема заключается в том, что сама игра требует, чтобы в адресе 23627 находился ноль, если игра запускается из режима 48 К, и 255 - если 128К. Насчет второго - могу сказать, что, по-видимому, в игре проверяется только режим 48К, а 128К устанавливается по умолчанию. Поэтому (см. вариант загрузчика для 128К) можете ничего не заносить в ячейку 23627 и, если только игра не запустится, занесите 255, хотя у меня такой необходимости не возникло.
Но и это ещё не конец. Третья проблема заключается с так называемой "вечной жизнью". Так вот, после выполнения POKE 63001,0 в режиме 48К все хорошо, но вот в режиме 128К игра начисто отказывается с ним запускаться. В чем тут дело, я не разобрался, так что это еще открытый вопрос. Более того, есть ещё один РОКЕ 42481,N - где N - число жизней. Так вот, эффект тот же. Может быть, кто-нибудь прояснит этот вопрос? И, в заключение, приведу загрузчик в полном виде:
0 REM коды проверки 48/128"
1 REM Universal LOADER 48/128 FOR DIZZY-3 (С) 1994 VLADSOFT
2 BORDER NOT PI: PAPER NOT PI :CLEAR VAL"24575": RANDOMIZE USR VAL "2376
: LOAD "dizzy31"CODE OUT VAL "32765",VAL
"19": LOAD
LOAD
KE VAL "23739", CODE "o" KE VAL "23388",VAL "19":
OUT VAL "32765",VAL "16": IF NOT PEEK VAL "23681" THEH
POKE VAL "63001",NOT PI: POKE VAL "23 627" ,NOT PI 6 RANDOMIZE USR VAL "24832"
Моё железо
Скрытый текст
ZX_Evolution rev.b + NEO_GS + TSFM
Ленинград-128/256kb + AY + TR_Dos
Delta_micro /repair status/
Москва_48кb /repair status/[свернуть]
В общем я протупил.
Понял Диззи под 48кб это биппер,а 128 это AY.
Последний раз редактировалось Enigmatic; 11.03.2011 в 21:16.
Моё железо
Скрытый текст
ZX_Evolution rev.b + NEO_GS + TSFM
Ленинград-128/256kb + AY + TR_Dos
Delta_micro /repair status/
Москва_48кb /repair status/[свернуть]
Да игры работают со звуком бипера. Получилось запустить несколько дем со звуком АУ.
Enigmatic, один пост сотри, он продублировался. Ну и по теме.
Ну всё правильно написано. Как я уже говорил в пятом посту, шиш вы услышите музыку для AY на 48-й машине. Только звуки.
Ну и ради эксперимента загружаю фирменные Dizzy в tzx и tap через режим 48к (LOAD "").
1 - Бипперная музыка и звуки.
2 - Бипперная музыка и звуки. Кстати, для 128-й версии есть и AY-музыка. Я про неё что-то забыл...
3 - Ни музыки, ни звуков вообще нет.
4 - Только бипперные звуки.
5 - Только бипперные звуки.
6 - Только бипперные звуки.
7 - Ни музыки, ни звуков вообще нет.
Вот и всё. Если кто-то что-то слышал, то давайте сюда игру. А расклад на 48к вот, прямо перед вами.
Может, мы обидели кого-то зря,
Сбросив пару лишних мегатонн,
И горит зелёным пламенем земля,
Там, где был когда-то Пентагон!..
Profi-576 v3.2/AY-3-8912A GI/FDD-5.25'
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Rindex, Но демо играет!!! Могу видео снять с самого начала загрузки. со звуком.
а чего ему на демках то не играть а для игр не хватает памяти.
Демо и будут играть. Они не всё с AY-музыкой заточены только для 128к. В основном старые польские так и писались: 48к + AY. Тут никаких вопросов. Просто ты спросил про Диззи для 48к с AY, да плюс ещё русифицированные. Я ответил - таких в природе нет. Вот и думайте, для чего эта хрень 48-я нужна. Стандарт Советского Союза - 128к + AY и точка. Это пусть буржуи на резиновые клавиши нажимают и пыхтят над этим недоразумением с пиликалкой. Про 16к вообще молчу.
---------- Post added at 21:50 ---------- Previous post was at 21:35 ----------
Кстати про демо. Вот выбирай, но только для 48к. Шикарная вещь, что ещё работает на этой машине - это Lyra II Megademo. Это, наверное, лучшая из демок для 48к.
Может, мы обидели кого-то зря,
Сбросив пару лишних мегатонн,
И горит зелёным пламенем земля,
Там, где был когда-то Пентагон!..
Profi-576 v3.2/AY-3-8912A GI/FDD-5.25'
Моё железо
Скрытый текст
ZX_Evolution rev.b + NEO_GS + TSFM
Ленинград-128/256kb + AY + TR_Dos
Delta_micro /repair status/
Москва_48кb /repair status/[свернуть]
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)