Файлик отсюда ?
Да, оттуда. Спасибо хорошему человеку с хорошим дизассемблером.
Там правда нет сопоставления символьных имен с цифровыми константами,что не очень удобно так как VMLAB показывает
именно цифрами. Я попробовал подсунуть файл io.h от avr-gcc скормить этому компилятору,точнее ассемблеру от него.
Увы - значения констант не совпадают. Зато заставил вышеупомянутый дизассемблер сгенерировать правильные .equ
в начале еще одного листинга. Хотя при этом пропали смещения и опкоды в шестнадцатиричном виде.
И смещений от начала кода в этом листинке тоже нет так что это тоже несколько замедляет поиск нужной функции в VMLAB,ну
или наоборот - переход из VMLAB в этот листинг. Впрочем - в листинге от другого дизассемблера который я выше выкладывал смещения
хотя и есть но считаются не так как VMLAB. В одном случае байтами,в другом - двухбайтными словами.
Но всё это не принципиальные мелкие неудобства. Можно будет из нескольких файлов попробовать скомпоновать один,которые
еще и компилироваться может быть будет. Если еще и заработает в железе то разбирательство совсем быстро пойдет.
Главное - оказалось что собственно кода там всего-то два с хвостиком килобайта,остальное - данные. Так что есть шанс со временем
разобраться. Чем формируется сигнал clock я уже нашел. Как минимум один. Теперь буду пытаться понять как передается информация
какой диод на экране зажигать и каким цветом.
Заодно понял что к точности тактового сигнала экран похоже не особенно критичен потому что формируется он просто чередованием
команд установки/сброса бита в порту,причем не особенно равномерным. - между этими командами бывает разное число других.
А это наводит на мысль что экран умеет работать статически - то есть записал в него что зажечь,оно загорелось и остается таковым.
Если это действительно так то можно сделать пульт с переключателями как на СМ и ЕС ЭВМ было,и неспешно экспериментировать.
Или более продвинутый вариант - учитывая наличие разведенного UART на плате, дописать функцию приема команд на запись в экран
заданных ими значений.
Вобщем - интересную игрушку себе нашел. Будет чем заняться долгими осенними вечерами. Зато и цветомузыка классная получится если повезет и всё заработает :-)
Добавлено after 2 hours 58 minutes 20 seconds:
Прочитал EEPROM из Атмеги - а там тоже что-то есть. Хотя VMLAB не показывает обращений туда.
И еще вылез интересный глюк. При включении экрана рисуется один повторяющийся узор в виде двух квадратов разного цвета. А вот если
при включенном экране нажать reset то начинают рисоваться последовательно несколько разных узоров. У меня возникло предположение,что
при включении питания не случается правильный сброс и что-то где-то не инициализируется правильно. Не просто так VMLAB ругался на использование неинициализированных значений трех регистров. Вот программа и падает,и перезапускается с начала.
А после того как программа поработала и был нажат ресет кнопкой - по всей видимости что-то где-то уже инициализировано и программа отрабатывает цикл рисования узоров полностью.
Добавлено after 5 minutes 13 seconds:
Сделал "отладочный стенд" - плату управления вытащил на проводах наружу,подключил к программатору. Попробовал читать и записывать прошивку - всё читается и пишется правильно. Всё же буду пробовать пересобрать прошивку из дизассемблера,заставить запуститься,а потом
начну модифицировать.
Интересно - а что нужно для "железной" отладки чтобы прошивку пошагово исполнять прямо в контроллере? Вроде читал что Атмега128 обладает такими возможностями но никогда не возникало надобности пользоваться пока свои исходники на Си были - всегда отлаживал
их в VMLAB.