продолжение
Что меня не устроило в Унипроге Ковлева, лишь то, что это был черный ящик, механизма работы которого я не знал. Сниферить обмен между программатором и компом я почел за Сизифов труд, и поэтому решил делать свой программатор. О как!

Не скажу, что моя затея оригинальна: основную идею я увидел на сайте все тех же любителей спектрумов. Некто товарищ Skyther просто взял атмегу 8515 в дип корпусе и присобачил к кроватке под микросхему памяти, ну естественно еще написал ко всему этому софт. Меня в таком решении смутило два момента, питание подавалось просто с ножки порта, у которого ток не велик, также мне показалось что ножки подсоединенные в перемешку, с разных регистров и на адреса и на данные и на управление, при программировании микроконтроллера вызовут лично у меня взрыв мозга

Дополнительно пришлось сделать программатор для программатора AVR910

) (вверху) и переходник усб-уарт (внизу), ибо на ноуте отсутствует ком порт, но это была обезьянья работа и много времени она не заняла.

там в начале стояла еще max323 но я её убрал

Решил сделать так: микроконтроллер атмега 8515 интерфейс уарт (с усб связываться пока не хватает скилла) порты А младший адрес, Б старший, С данные, Д управление (ну и аппаратный уарт атмель туда сунула), Е "суперстарший"

адрес , на питание полевичек. Сказано- сделано. Вечер за layout-ом (раньше была бы неделя за Экселем) и плата готова. Не стал заморачиваться с двухсторонней, припаял проводки. Нашел в сети простеньний пример работы уарта (спасибо товариу Pashgan), залил. Запускаю гипертерминал, нажимаю одну кнопочку на клаве - горит один светодиод, нажимаю другую- горит другой светодиод. Радости было как у дикаря, который сменял дурацкий золотой песок у незадачливого купца, на реальные стеклянные бусы
По началу, вообще решил засылать байты через гипертерминал, но потом понял, что нет символа 00h и 01h тоже нет, как и многих других. С клавы их не набьёшь. Значит надо писать софт. Уже оглядываясь назад могу смело сказать, что на изучение азов С++ ушло не менее 95% и сил и времени от всего дела. Во времена далекой античности

меня старались обучить, абассаца какому продвинутому и мощному языку Фортран (хотя из научно популярной литературы я знал, что буржуи о нем позабыли уже лет 20 как назад), по этому сам взялся за Паскаль, на котором даже написал диплом, так сказать вопреки

Естественно, с тех пор практически все забылось, и вот мне пришлось вникать в язык, у которого даже в самой дурацкой программе "Хелло ворлд!" первой строчкой идет какая то лабуда # include stdio.h , с весьма туманными объяснениями ее необходимости

В течение 3 недель, с "лицом олигофрэна" я всматривался в листинги программ на форумах по Си и ни фига в них не понимал. Но я не отчаивался

и вот по прошествии 4-х недель, в надцатый раз просматривая файл с реализацией записи-считывания данных в бинарный файл, как в фантазийных книжках , я увидел проступившие буквы "истинного алфавита" поверх малозначащей лабуды. Всё! Катарсис! Тушите свет, опускайте занавес! Я понял: я въехал. Нет, не изучил и даже не понял основную суть, просто поймал нить. Не знаю как это бывает у других, у меня было так. И процесс пошел
Си билдер, в качестве ИДЕ я выбрал потому что, о нем у меня осталось хорошее впечатление, точнее сказать впечатление от этикетки на диске который я выдел лет 10 назад. Да, этикетка мне понравилась (не находите аналогию с бусами)

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

Как она работает: надо сначала выбрать ком порт, либо тот который встроен в плату, либо усб адаптерный который можно посмотреть в диспетчере устройств. Если что то пойдет не так, будет выведено сообщение, и соединения проги к порту не будет. Потом можно закачать в буфер программы файл, он закачивается как бинарник. Прога отображает сколько байт загрузилось. Можно вместо это скачать данные из микросхемы , надо выбрать с какого адреса начать скачивание и размер дампа, по закачке программа тоже оттобразит сколько закачалось. Вот на чем заострю внимание при нажатии "считать с" программа посылает в порт символ R потом трех байтное число адреса, потом трех байтное число дампа, потом символ В в качестве ответа уже ждёт 0 байт и уже до последнего байта, после отправки каждого символа программа ждет его возврата. Тоесть прием-передача реализована побайтно. Кнопку "загрузить с" нажимать бесполезно если в буфере программы ничего не загружено. То есть сначала надо загрузить в буфер из файла или с микросхемы. Тогда программа узнает сколько байт нужно будет залить в микросхему. При нажатии кнопки "загрузить с" сначала передается символ L потом 3 байта начального адреса, потом 3 байта величины загружаемого дампа, и после этого побайтно весь дамп. При нажатии кнопок "стереть" и "получить", если ни чего не выбрано, высветися сообщение и ни чего не произойдет. Надо сначала в соеднем справа комбобоксе нечто выбрать типа "локбит" или "1 сектор" или "сигнатуру". Если все выбрано то принажатии "стереть" сначала отправляется символ Е потом один из символов от 0 до 5 (номера секторов надо смотреть в даташите), если нажата "получить", то отправляется символ S он же возвращается, потом символ от 0 до 2, а вот ответный на этот символ переводится в цифровой код и отображается рядом в окошечке. По нему можно судить какой у микросхемы ID или залочена она на стирание бут сектора или нет. Если прога зависла- значит произошла ошибка приема передачи. Надо ее аварийно закрыть и запустить по новой. Вот такой незамысловатый протокол связи. При написании исходников старался максимально коментить код, вспоминая какую муру я писан для диплома, через 20 строк забывая что представляет из себя та или иная переменная или непонятно откуда взявшееся "магическое" число.
Программа для микроконтроллера написана в кодвижнАВР, также снабжена комментариями, и заточена исключительно под микросхему at49f002nt, выбор на нее пал потому что у меня их 3 шт (если бы заколбасил одну было бы не жалко) и то что ей для програмирования не надо других напряжений кроме 5 вольт. В принципе программатор, если правильно подсоединить ноги, будет читать любую паралельную микросхему на 5 вольт, а вот програмировать только свою.
AT49F002NT на самодельной кроватке в спектруме рядом с отечественным Z80

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