51

Re: Разбор архитектуры софта ЯЗС

Составил список команд, которые понимает MIDIGED. Аж 48 штук. Многие из них ждут параметры и проверяют диапазоны значений, поэтому методом тыка так просто с ними не разберешься.

Пока выяснял назначение команд, нашел несколько сюрпризов. Первый - с форматом файла. Я был уверен, что это стандартный формат, уже описанный в этой теме раньше. Оказалось - не совсем. Во-первых, в нем 16 каналов, а не 7. Поэтому, при загрузке 7-канальных файлов редактор начинает глючить и виснет. Во-вторых, часть команд была изменена. Вместо команды расстройки (коды $E0 - $EF) были добавлены:
- команда "выбор MIDI канала" с кодом $E0 и параметром - кодом MIDI сообщения NOTE_ON с номером канала.
- команда "установка Velocity" с кодом $E1 и параметром - значением Velocity.

Кроме того, оба редактора (MIDIGED и MUSAGED) могут добавлять команду с кодом $C4, которую ни одна версия плеера не понимает. Но судя по уголку, который эта команда рисует на экране - это знак отмены повышения или понижения октавы. Похоже, что разработчики редактора хотели сделать обычную нотную запись, когда начало и конец области, где ноты играются выше или ниже чем записаны, отмечаются специальными знаками. А разработчики плеера увидели, что отмену повышения на октаву можно сделать командой понижения на октаву (и наоборот) и делать "лишнюю" команду не стали.

Интересно, что хотя редактор переделан под MIDI, в нем остались команды, привязанные к ЯЗС, например задание длительности атаки. Впрочем, с этим понятно - поскольку время MIDI сообщений не хранится, моменты включения и выключения нот определяются по нотному тексту, а длительность атаки как раз влияет на время выключения ноты.

Редактор вообще впечатляет своими возможностями (16 каналов, графический режим, печать). Но, несмотря на это мне кажется, что пользоваться им было не очень удобно. Вот, например, нужно музыканту записать аккорд до-мажор. Для этого надо записать три ноты одну над другой: "до", "ми" и "соль". Программы для работы с MIDI хотя бы из середины 90-х именно так и позволяют это записать. Но в MIDIGED в одном канале одновременно может звучать только одна нота. Поэтому надо записать "до", переключиться на второй канал, найти там тот же момент времени, записать там "ми", переключиться на третий и записать там "соль". То есть, нет наглядности. Музыкантов учат распознавать аккорды просто по внешнему виду, а тут надо щелкать по каналам и собирать аккорд по отдельным нотам. Ну и разбивки по тактам нет, что тоже не помогает ориентироваться в тексте. В общем, возможностей для улучшения оставлено много :)

Post's attachments

Attachment icon midiged_commands.txt 2.75 kb, 363 downloads since 2018-02-10 

52

Re: Разбор архитектуры софта ЯЗС

Посмотрел тут снова на код PLAYNB из папки pl1.fm2.4070 и понял, что неправильно его понял :)

        STA    DATA_C200
        LDA    #$27
        STA    IRQVECTORLO
        LDA    #$3A
        STA    IRQVECTORHI
        STA    DATA_C220

Я-то сначала думал, что это под девятку, и не мог понять, что за обращения к адресам $C200 и $C220, а тут до меня дошло, что это просто управление семерочным ПсевдоПЗУ.

Так что в этой папке версия плеера под семерку. К сожалению, пользы от этого знания никакого, потому что ранняя ЯЗС (или точнее МЗС - модуль звукового синтеза) использовала другие порты и с имеющейся картой этот код все равно работать не будет. Но хотя бы можно уверенно считать, что под семерку софт для ЯЗС был.

А в файле PLAYERB кода оказалось всего две команды, а остальное место занимает вот такой экран.

Post's attachments

playerb4070.png, 16.04 kb, 512 x 512
playerb4070.png 16.04 kb, 255 downloads since 2019-08-17 

53

Re: Разбор архитектуры софта ЯЗС

Вот оно что

54 Отредактировано AlexBel (28-04-2021 08:28)

Re: Разбор архитектуры софта ЯЗС

avivanov76 пишет:

Составил список команд, которые понимает MIDIGED.

Правильно ли я понял - этот список применим для работы с MUSAGED?

Будет ли MUSAGED (или MIDIGED) работать без установленной платы принтерного интерфейса, если не давать команду печати?

55

Re: Разбор архитектуры софта ЯЗС

Нет, у MUSAGED есть отличия.
Плата принтера используется только в момент печати, больше к ней обращений я не заметил.

Post's attachments

Attachment icon musaged_commands.txt 2.5 kb, 190 downloads since 2021-04-28 

56

Re: Разбор архитектуры софта ЯЗС

Спасибо!

57 Отредактировано AlexBel (02-05-2021 11:28)

Re: Разбор архитектуры софта ЯЗС

avivanov76 пишет:

Программы "символ-клавиша" и "название-клавиша" предполагают наличие музыкальной клавиатуры. Пройти их без нее нельзя, только выйти. Наличие клавиатуры никак не проверяется - программа просто читает порт $C094, разные версии клавиатуры тоже не предполагаются. Определение правильности взятой ноты - захардкожено.

Это об обучающей программе "Семь гномов". Попробовал эти обучающие программы, реакции на нажатие.
Программа "Символ-клавиша" запускается. Если я правильно понял, при показе на нотном стане ноты нужно нажать соответствующую ей клавишу на музыкальной клавиатуре. Реакции на нажатие клавиш никакой, ни с соответствующей клавишей, ни с какой другой. При этом опрос порта происходит, данные программа получает, так как постоянно включается цикл опроса клавиш.
Программа "Название-клавиша" не запустилась вообще, после выбора "Старт" какое-то время идёт обращение к диску и происходит возврат в меню.
Если результат теста клавиатурного порта http://forum.agatcomp.ru//viewtopic.php?pid=4972#p4972 говорит о том, что клавиатура работает корректно, значит, проблема в программе.

58

Re: Разбор архитектуры софта ЯЗС

Да, в "Гномах" какой-то странный опрос клавиатуры:

CODE_3074
        LDA    DATA_C090
        AND    #$10
        BEQ    CODE_306B
        LDA    DATA_C094

То есть, проверяется разряд D4. То ли разработчики так опечатались, то ли использовалась другая версия ЯЗС.

59 Отредактировано AlexBel (03-05-2021 09:11)

Re: Разбор архитектуры софта ЯЗС

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

60 Отредактировано avivanov76 (03-05-2021 18:41)

Re: Разбор архитектуры софта ЯЗС

Скорее всего, была другая версия ЯЗС, потому что в гномах и инициализация регистра управления прерываниями отличается:

        LDA    #$11
        STA    DATA_C09F
        SEI

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

Скорее всего, у разработчиков была более ранняя версия платы, потому что в более поздних программах (например, в сложном контрапункте) при опросе клавиатуры проверяется 5-й разряд (AND #$20).

61 Отредактировано AlexBel (04-05-2021 09:28)

Re: Разбор архитектуры софта ЯЗС

Кстати, о программе "CЛOЖHЫЙ KOHTPAПУHKT". В его описании указывается необходимость синтезатора CA51. Значит ли это, что программа не работает с ЯЗС, как с синтезатором и не работает с её клавиатурой?

62

Re: Разбор архитектуры софта ЯЗС

Вроде CA51 это и есть ЯЗС 5.1

63

Re: Разбор архитектуры софта ЯЗС

Практическим путём только что это установил :)

64 Отредактировано garnizon (09-05-2021 19:23)

Re: Разбор архитектуры софта ЯЗС

А в процессе разбора софта, в теле программ попадались какие-то персоналии? Фамилии авторов или что-то еще такое?
Хочу еще раз попробовать дернуться с поиском причастных людей. HELP

65 Отредактировано garnizon (09-05-2021 19:28)

Re: Разбор архитектуры софта ЯЗС

avivanov76 пишет:

Скорее всего, была другая версия ЯЗС, потому что в гномах и инициализация регистра управления прерываниями

отличается:

        LDA    #$11
        STA    DATA_C09F
        SEI

В текущей версии ни нулевой, ни четвертый разряд не используются. Маловероятно, что разработчики так согласованно опечатались в двух разных местах.
Скорее всего, у разработчиков была более ранняя версия платы, потому что в более поздних программах (например, в сложном контрапункте) при опросе клавиатуры проверяется 5-й разряд (AND #$20).

avivanov76 пишет:
LeoN пишет:

И по схеме ("D8:1-1,2 и D8:2-4,5 (информационные и управляющие входа, похоже, что перепутаны) - явный косяк, вероятно поменять местами 1 на 2 и 4 на 5")

Ну, это косяк разработчиков. Я, кстати, перепрозванивал плату - все так, как на схеме. Мне тоже это место жутко не нравится. Например, если все прерывания разрешены, но ни одного запроса не поступило, то на внутреннюю шину светят "1". И если попытаться читать внешний порт, то эти единицы будут смешиваться с выходами АП3. Но я не знаю, кто должен принять решение - исправляем мы железячные косяки или сохраняем все как есть.

Смотрите что получается. Сама ЯЗС с клавиатурой получена нами из Новокузнецкого муз училища, от Полозова С.П. Как и часть программ, включая CONTRAP.

А другая часть программ, получена нами из музыкальной школы г.Тында. К сожалению своей ЯЗС у них не сохранилось.

Дальше, на плате ЯЗС вытравлено "СА5", А Полозов в описании своего CONTRAP явно указывает что для синтезатора "СА51".
Думается что ЯЗС5.2 = СА5, а вот единичка в конце это номер версии.

Кстати, на ЯАВМИ вытравлено "MAIMI2" - предположим что версия 2, и может быть, посмотрите на качество платы.

Т.е. вполне можем предположить, что в Новосибе вносили изменения уже после того как по стране начали посылать ЯЗС.

Но странно другое, Полозов утверждает что "7 гномов" работают на его ЯЗС, может у нас есть несколько версия этих гномов?

66

Re: Разбор архитектуры софта ЯЗС

garnizon пишет:

А в процессе разбора софта, в теле программ попадались какие-то персоналии? Фамилии авторов или что-то еще такое?
Хочу еще раз попробовать дернуться с поиском причастных людей. HELP

Нет, мне кроме экрана с фамилиями Ментюкова, Устинова и Чельдиева ничего не попалось.

У них, кстати, книга есть: Музыка, электроника, интонирование / Ментюков Александр Павлович, Устинов Алексей Александрович, Чельдиев Сергей Александрович. Новосибирск : Новосибирская гос. консерватория им. М. И. Глинки, 1993. - 314 с. - ISBN 5-7196-0477-4
Возможно там что-то могло быть написано про ЯЗС.

Еще есть статья: Первин Ю.А., Первина Н.А., Чельдиев С.А. Опыт применения персональных ЭВМ как средств компьютеризации учебного процесса в музыкальной школе. – В кн.: Проблемы развития и освоения интеллектуальных систем, Новосибирск, 1986.

По времени немножко рано, но возможно там могло быть что-то насчет планов создания ЯЗС.

Еще есть статья Л.П. Робустовой, там есть вот такой кусок про создание софта (на ошибки типа "Агат-2" и "IBM PS" не обращаем внимания, это искусствовед писал):

В те далекие теперь уже годы компьютер действительно был диковинкой даже на бытовом уровне, а понятие «персональный компьютер» вообще не существовало. Однако, правильно понимая тенденции времени, видя перспективы дальнейшего развития технического средства и связанные с ним новые возможности, консерватория организовала кафедру компьютеризации музыкального образования (позже – компьютеризации музыкальной деятельности), работа которой была прицельно направлена на данную область научных и практических знаний. Это было стратегически и тактически верно принятое решение, благодаря которому универсальное техническое средство стало адаптироваться областью сугубо эмпирических возможностей. Поэтому поисково-творческая деятельность заинтересованных данной проблематикой людей, работающих на разных кафедрах консерватории, стала основой взаимовыгодных научно-творческих контактов с кафедрой компьютеризации, благодаря чему были найдены рациональные «точки соприкосновения», казалось бы, полярных областей.

Участие в общевузовском процессе компьютеризации автора данной статьи – представителя кафедры музыкального образования и просвещения, многие годы целенаправленно занимающегося вопросами методики и практики преподавания музыкальных дисциплин, началось в 1986 году. Она была связана с созданием обучающих компьютерных программ по сольфеджио и музыкальной грамоте. Тогда сложился своеобразный «триумвират» экспериментаторов-разработчиков в лице зав. кафедрой компьютеризации музыкальной деятельности В. М. Цеханского как генератора идей и специалиста в области музыкальной психологии, меня как педагога-методиста и постановщика учебно-практических задач и студента-энтузиаста теоретико-композиторского факультета С. П. Полозова в качестве программиста. Он владел языком программирования «Рапира», на котором создавались первые в Новосибирской консерватории обучающие программы для отечественных ПЭВМ «Агат-2».

В течение полутора лет в свободное от работы время мы разработали три обучающих компьютерных программы – «Ритм», «Ноты» и «Звуки». Они предназначались для детей подготовительного – первого классов 5–7-летнего возраста и учитывали многие особенности современных методов обучения – использование деятельностно-практического, игрового и проблемного подходов, наглядности, самостоятельности и поэтапности в решении обучающих задач. И все это на музыкальном материале с использованием аудиовизуального ряда и анимации.

В данных программах мне как преподавателю курсов методики удалось реализовать и апробировать концептуально значимые идеи, связанные с организацией самостоятельной поисково-творческой деятельности детей в процессе применения технических средств обучения. Активное использование разработанных программ в процессе занятий студентов ТКФ с учащимися педагогической практики позволило утвердиться в правильности не только поставленных задач, но и путей и методов их решений. Изначально заданная «система координат» не только определяла названные выше компьютерные программы, но и все дальнейшие, разработка которых уже осуществлялась под моим руководством.

После отъезда В. М. Цеханского на кафедре компьютеризации появилась ПЭВМ «Агат-9». Мне руководством вуза было поручено делать новые программы. Вместе с техническим сотрудником кафедры и одновременно программистом И. Грушевым мы создали обучающую программу «Акцент»». Она продолжали идеи, заложенные ранее и реализованные в предыдущих экспериментальных образцах. Однако визуально-графическое воплощение в данной программе было менее интересным, чем ранее. Прежде всего, это было связано с отсутствием цветного монитора, что резко ограничивало обучающие возможности технического средства. Серо-бело-черные картинки создавали унылый эмоциональный настрой и никак не привлекали детей, несмотря на элементы анимации и возможности собственного деятельностно-практического участия в работе с ПЭВМ. Качество звука у обеих «Агатов» было одинаково не привлекательным и фактически антимузыкальным. Однако в то время это было не так важно. Главное, что можно было программировать высотную и ритмическую организацию звучания, и уже это было техническим достижением.

Данная разработка была более совершенной с точки зрения технических возможностей и объема памяти, а языком программирования была не школьная «Рапира», а уже более совершенный язык «Бейсик». Однако с точки зрения ребенка, обучающегося теоретико-практическим основам музыкального искусства, эти достижения новой техники не имели практического значения, ибо интерес общения с самим ПЭВМ был значительно снижен. Поэтому программа не была апробирована студентами ТКФ в практике преподавания музыкально-теоретических дисциплин с учащимися сектора педагогической практики, а по факту ее создания можно сказать, что неудачный опыт – это тоже опыт.

В учебном процессе по-прежнему были задействованы только самые первые программы. Они вызывали неизменный интерес звуком, цветом, элементами хотя и примитивной, но анимации. Получился своего рода эксперимент, который показал колоссальную роль для восприятия детей визуально-графических, цветовых и анимационных образов. Да и не только детей. Первые три программы были интересны и взрослым, поскольку в те годы использование ПЭВМ в учебных целях, да еще и в музыкальном образовании, расценивалось как диковинка. Подтверждением тому явились следующие факты.

Прежде всего – презентации педагогам ДМШ данных программ. Следует сказать, что они вызывали как повышенный интерес и восхищение, так и необоснованную эмоциональную реакцию отторжения и возмущения. И та, и другая психологически были обусловлены кардинальным изменением привычных форм и методов обучения, что с трудом укладывалось в сознании преподавателей. В соответствии с этим возникали полярные реакции приятия или неприятия новых возможностей, которые могут существенно ускорить процесс приобретения знаний, умений, навыков, а также стимулировать познавательные возможности учащихся.

Другой фактор, который в настоящее время никого не смущает, – это неизбежное при общении с компьютером воздействие облучения, дозированная работа с которым снимает эту проблему. Именно это в наибольшей степени беспокоило родителей, приводивших детей на занятия. Однако, как и в любой деятельности, везде необходима мера, о чем и сейчас стоит помнить.

Следует сказать, что детям наши программы очень нравились; их буквально невозможно было «оторвать» от монитора. Несмотря на возраст пользователей (5-6 лет), один час занятий за компьютером проходил незаметно, и родителям надо было приложить большие усилия, чтобы забрать детей домой.

Экспериментально было также проверено, что любовь детей к урокам музыки с использованием компьютера стабильно сохранялась в течение одного-полутора месяцев при условии двухразовых занятий в неделю. Затем наступало состояние «уравновешенного спокойствия». Лишь в единичном случае нами был зафиксирован эффект отторжения, обусловленный предварительным чрезмерным увлечением работой с компьютерными обучающими программами. Однако недели через три нежелание работать за компьютером исчезало, а интерес к нему восстановился. В этом мы со студентами убедились со всей очевидностью и пришли к выводу, что целиком и полностью посвящать урок занятиям с помощью ПЭВМ нельзя, поскольку первоначальный чрезмерно позитивный эффект перегружает психику ребенка и может смениться равнодушием, неприятием, а это уже влечет другие проблемы, в том числе и медицинские.

Успехом в начальный период внедрения ПЭВМ в учебный процесс можно считать профессиональную поддержку и признание, выразившуюся в интересе к данным разработкам со стороны Института информатики СО РАН СССР, где мне приходилось бывать с демонстрациями программ. Данными разработками заинтересовались и киножурналисты. Про наши программы и музыкальные занятия с детьми с использованием ПЭВМ в 1987 году сняли сюжет для киножурнала «Сибирь на экране», который, в традициях того времени, демонстрировался перед художественными фильмами во многих уголка страны.

Следующий этап создания обучающих компьютерных программ был связан не только с новым технических средством IBM PS и новыми языками программирования, коими были «Паскаль» и «Турбо Паскаль», но и выход за узкие рамки внутривузовской работы по созданию программного продукта. Это выразилось в том, что Новосибирская консерватория начала сотрудничество с Научно-исследовательского института высшего образования (НИИ ВО, г. Москва). Названное учреждение явилось заказчиком, а Новосибирская консерватория в моем лице руководителем и разработчиком обучающих компьютерных программ по музыкальной грамоте. Коллектив участников проекта был невелик, а мне пришлось не только выполнять административные функции, но и быть постановщиком задач, автором сценария и методистом, осуществлявшим апробацию. В состав творческой группы входили два инженера-программиста из ВЦ СО РАН – А. Л. Семенов и А. Г. Жарков.

Нами были созданы две модульные компьютерные программы «Музыкальный образ» и «Музыкальная азбука», которые суммарно включают пять обучающих программ – «Звуки», «Темп», «Настроение», «Ноты», «Альтерация». Работа с каждой из них проходила на нескольких уровнях – в режиме предъявления материала и его проверки. В отличие от предшествующих программ в драматургии их развития отсутствовал линейный принцип последовательности учебных тем, в результате которого нельзя было работать с новым материалом, не «прокрутив» предварительно уже пройденный. Каждая из трех первых программ строилась в «жесткой» последовательности сначала предъявления, а затем проверки усвоенного материала, и только после этого появлялась другая тема. Ученику было сложно вернуться к пройденному материалу еще раз и программу приходилось запускать заново.

Модульный принцип строения программ предполагал как в содержательном, так и в процедурном отношениях наличие определенных смысловых блоков, которые, с одной стороны, были связаны друг с другом, с другой – существовали вполне автономно. Данный принцип позволял гибко осуществлять процесс обучения, как на уроке, так и дома. Последовательная цепочка содержательно-смысловых действий выстраивалась учеником самостоятельно либо с минимальным участием учителя. Их учебно-познавательный алгоритм формировался вполне самостоятельно в зависимости от индивидуальных возможностей ученика. Безусловно, в сравнении с предыдущими программами это был значительный шаг вперед.

67

Re: Разбор архитектуры софта ЯЗС

garnizon пишет:

Смотрите что получается. Сама ЯЗС с клавиатурой получена нами из Новокузнецкого муз училища, от Полозова С.П. Как и часть программ, включая CONTRAP.

А другая часть программ, получена нами из музыкальной школы г.Тында. К сожалению своей ЯЗС у них не сохранилось.

Дальше, на плате ЯЗС вытравлено "СА5", А Полозов в описании своего CONTRAP явно указывает что для синтезатора "СА51".
Думается что ЯЗС5.2 = СА5, а вот единичка в конце это номер версии.

Кстати, на ЯАВМИ вытравлено "MAIMI2" - предположим что версия 2, и может быть, посмотрите на качество платы.

Т.е. вполне можем предположить, что в Новосибе вносили изменения уже после того как по стране начали посылать ЯЗС.

Но странно другое, Полозов утверждает что "7 гномов" работают на его ЯЗС, может у нас есть несколько версия этих гномов?

Ну, "гномы" ведь не полностью нерабочие, там проблемы только с частями "Название-клавиша" и "Символ-клавиша".
То, что у AlexBel не запустилась "Название-клавиша" - это оказался мой косяк, я пропустил один файл с картинкой.

А вот опрос клавиатуры в обеих частях неправильный, я проверял все версии файлов. Больше того, у меня впечатление, что эти подгружаемые части вообще не были до конца написаны. Например, там есть обработчик прерывания, который инкрементит ячейку памяти, но больше эта ячейка нигде в программе не используется. А в другой версии этого же файла прерывания вообще запрещены, а обработчик прерывания хоть и есть, но состоит из одной команды RTI.

68

Re: Разбор архитектуры софта ЯЗС

Если проблема работы с клавиатурой только в неправильном бите, то возможно ли её исправить патчем программы?

69

Re: Разбор архитектуры софта ЯЗС

... а языком программирования была не школьная «Рапира», а уже более совершенный язык «Бейсик».

Это просто искусствовед или были какие-то причины так думать?

70

Re: Разбор архитектуры софта ЯЗС

AlexBel пишет:

Если проблема работы с клавиатурой только в неправильном бите, то возможно ли её исправить патчем программы?

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

Prol пишет:

Это просто искусствовед или были какие-то причины так думать?

Ну она же пишет, что она "педагог-методист и постановщик учебно-практических задач". То есть, непосредственно с программированием она вряд ли соприкасалась. Программировали студенты. А она, скорее всего, составила свое мнение по высказываниям этих студентов.
Тут с автора требовать технической точности трудно, потому что основная тема статьи - не программирование.

71

Re: Разбор архитектуры софта ЯЗС

Музыка, электроника, интонирование / Ментюков Александр Павлович, Устинов Алексей Александрович, Чельдиев Сергей Александрович. Новосибирск : Новосибирская гос. консерватория им. М. И. Глинки, 1993. - 314 с. - ISBN 5-7196-0477-4

В электронном виде такой нигде нет. А вот бумажный экземпляр можно кстати купить.

72 Отредактировано sintech (14-05-2021 01:20)

Re: Разбор архитектуры софта ЯЗС

Вот тут еще есть несколько имен http://www.media-nsglinka.ru/index.php? … &id=88

garnizon пишет:

Музыка, электроника, интонирование / Ментюков Александр Павлович, Устинов Алексей Александрович, Чельдиев Сергей Александрович. Новосибирск : Новосибирская гос. консерватория им. М. И. Глинки, 1993. - 314 с. - ISBN 5-7196-0477-4

В электронном виде такой нигде нет. А вот бумажный экземпляр можно кстати купить.

Может написать в библиотеку консерватории? http://www.nsglinka.ru/biblioteka/

73

Re: Разбор архитектуры софта ЯЗС

Боюсь, книжку в 300 страниц они забесплатно не захотят сканировать. А бумажный экземпляр я бы купил.

74 Отредактировано avivanov76 (16-05-2021 01:49)

Re: Разбор архитектуры софта ЯЗС

garnizon пишет:

Но странно другое, Полозов утверждает что "7 гномов" работают на его ЯЗС, может у нас есть несколько версия этих гномов?

Он прав, я сегодня проверил - "гномы" действительно нормально работают с клавиатурой.
На самом деле то место в коде, которое мне не понравилось, вполне рабочее.

CODE_3074
        LDA    DATA_C090
        AND    #$10
        BEQ    CODE_306B
        LDA    DATA_C094
        BPL    CODE_3083
        JMP    CODE_306B

CODE_3083
        STY    DATA_3184
        STA    ZP_FF
        CMP    #$15
        BNE    CODE_3098

Тут делается чтение из DATA_C090. Дальше проверяется неправильный разряд, в нем всегда единица.
То есть, код всегда считает, что прерывание было и условный переход на метку CODE_306B никогда не выполняется.
Затем идет чтение внешнего порта DATA_C094.
Это ничему не противоречит. У клавиатуры на выходах данных всегда присутствует номер текущей сканируемой клавиши и ее состояние.
Если клавиша не нажата, то разряд D7=1, что соответствует отрицательному числу.
Но проверка стоит на положительное. Положительное там будет только в одном случае - если была отпущена какая-то клавиша и клавиатура стоит в ожидании !DREQ. И на метку CODE_3083 управление передается только в этом случае.
А на метке CODE_3083 идет сравнение кода клавиши.

То есть, пропатчить можно, чтобы порт C094 лишний раз не дергать, но и без этого все должно работать.

75

Re: Разбор архитектуры софта ЯЗС

Я запутался. Если программа "Гномы" нормально работает с штатной музыкальной клавиатурой, а у меня с её эмулятором не работает, значит, ошибки у меня. Но, в то же время, мой эмулятор нормально работает с "Контрапунктом". Где я что пропустил?