Хочу рассказать о моих экспериментах по моделированию в Proteus.
Все началось на новогодние каникулы, нужно было разработать одно устройство, а в моем 'рабочем кабинете'
было достаточно прохладно и макетировать там не было ни какого желания, и тут я вспомнил о такой
программке, как Proteus. Это был хороший повод ее изучить. Прочитав самоучитель, буквально за пару
дней была нарисована схема, еще за пару дней написана программка для avr, и еще пару дней ушло на комплексную
отладку, и получилось, что за неделю полностью удалось реализовать проект!(мой 'день' начинается в 11 вечера,
когда вся семья укладывается спать

После чего возникло желание смоделировать еще что-нибудь и проверить в железе совпадения модели и реальной схемы.
В процессе изучения возможностей Proteus я несколько раз наталкивался на форум, с обсуждением 'Специалиста',
а 25 лет назад это был первый собранный мною компьютер(после него было еше несколько 'Cпециалистов', а потом
пошли разные спектрумы в мелко промышленных количествах), от чего и появилось желание смоделировать именно его.
Кроме того, еще в те же годы я порывался собрать 'Специалист'а на макетной плате, и даже что-то успел на ней
распаять, но затем у меня появилась готовая печатная плата для сборки и макетка была заброшена.
Макетка была с трудом обнаружена, за прошедшие годы на ней осталось несколько ИЕ10 и ИЕ5 счетчиков, ТМ2 триггер
и ИР9 сдвиговый регистр. Отталкиваясь от этих элементов и того, что можно было найти в своих запасах и было решено макетировать.
Процессор i8080, в компонентах proteus я не обнаружил, зато был z80 и я решил использовать его... кто ж знал,
что это только УГО, а не модель процессора(я то только как пару недель изучал proteus), на что я достаточно
быстро и напоролся... Ну, а пока я об этом еще не знал, набросал схемку части синхро генератора,
посмотрел на графики, красота. Добавил z80 с обвязкой, запускаю, и ... спустился я с небес на грешную землю,
представ перед суровой реальностью.
Но мир же не без добрых людей, и вот она, рабочая модель Z80 с набором команд от К580ВМ80:
viewtopic.php?f=81&t=10110&start=360
Следующий шаг - память, я хотел использовать динамическую память, а не статику, и у меня завалялось несколько
планок 72х пиновых симов, от куда можно было позаимствовать мс памяти.
В proteus, как выяснилось, модели DRAM нет, только статика SRAM, но это легко решилось при помощи пары защелок по RAS и CAS.
Используя модель z80, и собрав цепь формирования сигнала SYNC, который есть в ВМ80 и отсутствует в z80, а используется
в 'Специалисте' и является одним из важнейших сигналов в логике работы всего компа я собрал всю схему.
К ПЗУ подключил файл прошивки монитора 'Специалиста', и на графиках шин адреса и данных проконтролировал
всю работу компа. Вроде бы все хорошо, но чего-то не хватает - дисплея. Как и Lavr из соседней темы, я захотел
увидеть результат моделирования на видео выходе и возник вопрос как это сделать? Читая форумы наткнулся
на один пост, который меня заинтересовал, тем более, что там были выложены исходники:
http://zx-pk.ru/showthread.php?t=19960. Проект у меня работать как надо не захотел, но
кое-что из него можно было почерпнуть, используя идеологию работы LCD матриц, где есть пиксельклок, строчные и
кадровые синхроимпульсы и RGB данные я, изучив инструкции по созданию моделей:
viewtopic.php?p=100323#p100323 , доработал модель 'дисплея', сделав отдельные входы
для частоты сдвига пикселей, строчных и кадровых синхроимпульсов и одного входа для яркости(изначально то компьютер ч/б)
Подключил эту модель к своему проекту, и -ура! я увидел проглашение монитора 'ПРОГРАММА ?'. Вообщем модель в proteus была готова и работоспособна, и наступил этап проверить ее в 'железе'.
Пришлось немного подготовиться, тк не все детали были в наличии, пришлось кое-что докупить, в том числе
и 10 метров МГТФа. Для ПЗУ была выпаяна из старой материнки flash, сделана платка переходник под DIP
корпус, сделан простенький программатор на LPT порт и написана для этого программатора консольная
программка. Наконец, все было готово, подключил конструкцию на вход тв тюнера, включаю, и вижу приглашение
монитора 'ПРОГРАММА ?'. ВСЕ, на этом можно было бы и закруглиться, но... как-то все уж быстро закончилось,
ни каких изменений, разве что артефакт- на белом поле были периодические вертикальные серые полосы, но
конденсатор на 150пф с ножки пиксель клока ИР9 регистра на землю решил и этот вопрос.
Возник вопрос, что бы еще такое сделать? Изучая информацию по 'Специалисту' несколько раз наталкивался
на варианты подключения в нему SD карты. Вариант на atmege мне совершенно не приглянулся, уж очень
не хотелось использовать контроллер в несколько раз мощнее ВМ80 лишь для загрузки этого ВМ80, а вот вариант
из 'Специалист МХ2', мне понравился, только, конечно же, без плисины, это как-никак ближе к 'духу' того
времени(за то, что в самой SD карте, наверняка, стоит более мощный, чем ВМ80, контроллер я умолчу

При этом несколько раз встречал фразы типа - 'существует реализация только на плис, а на рассыпухе этой
схемы нет, только медленный вариант с msx...'. Не беда, это как раз задачка по плечу proteus_у.
Прочитал, что SD интерфейс в 'Специалист МХ2' работает при старте, значит надо собрать обвязку МХ2,
а уж затем добавлять SD. Сделал модель МХ2, запускаю, а она не работает. Разбирался, разбирался, не пойму в
чем дело, вроде бы все правильно, а при чтении из ОЗУ читается мусор...решил, что в модели z80
неправильные тайминги при чтении шины данных, не сильно раздумывая подкинул просто статическое ОЗУ на
шину данных и адреса до АП6 шинника, и процессор стал правильно читать память, МХ2 запустился, увидел
приглашение 'МОНИТОР-4'. Доработал 'железную' макетку до МХ2, включил, увидел знакомое приглашение,
проводком по ВВ55 'по нажимал' кнопки(клавиатуры, пока, нет), запустил встроенные в оболочку программы,
все ок. А где же загрузка с SD карты? Стал разбираться с прошивками, в одной из них - specsvga.bin
нашел упоминание '*BIOS Loader v.5', но как ни пытался найти, как вызывается этот загрузчик, ничего
не нашел(если кто знает, подскажите). С аппаратной частью, тоже не все гладко, в разных местах указывается
разные адреса выборки SD интерфейса: http://www.spetsialist-mx.ru/index32.html на схеме с плис, ножка 41
подключается к цепи /U2, а на схемном вводе самой плисины это ножка PIN_41 обзывается U3...
Но поддерживается программно SD или нет, аппаратную реализацию сделать мне никто не мешает, по крайней
мере можно сделать простую программу, которая будет читать и писать в порт, а на входе/выходе моего SPI
контроллера на 'рассыпухе' можно будет увидеть, что творится. Сделал, проверил, все отрабатывает как
задуманно. Начал опять шерстить форумы по загрузке с SD карты, наткнулся на темку:
http://zx-pk.ru/showthread.php?t=14005&page=30, там Spetz_fifan.rar, а в нем файл BIOS.BIN
с тем самым загрузчиком '*BIOS Loader v.5'! Подключил к ПЗУ этот файл, а к модели SD карты в proteus
образ файловой системы и моя модель 'Специалист МХ2' загрузилась с карты. Прошлось, правда, 'подправить'
этот загрузчик в части отключения ROM при передаче управления на загруженный монитор. Повторил в 'железе',
все работает как часы. Опять, вроде бы все, что б еще сделать? VGA выход? надо попробовать...