Всё правильно помните. На МС1201.02 программа в ПЗУ на начальном старте считывает по команде RSEL(код 000020) безадресный регистр, младшие биты которого выставляются джамперами. По этим джамперам и осуществляется дальнейший старт.
Вид для печати
У меня появился новый вопрос.
Почему при старте процессор 1806 после выдачи сигнала SEL сразу обращается к адресам 000170, а затем 172, будто у меня прерывание по сигналу HALT? Сама ножка HALT притянута через резистор к питанию. Внешний безадресный регистр =000000. Это из за бита 8=лог.1 в PSW?
Прерывание SEL170 это не только прерывание по входу HALT, но и исполнение команды HALT, её код равен 000000.
- - - Добавлено - - -
Когда процессор на ходится в режиме HALT (бит 8 в PSW установлен в 1), то он не реагирует на состояние ноги HALT.
Выложу. Но у меня сперва вопрос про микросхемы памяти 573РФ5 и им подобные.
Я правильно понимаю, что входа-выхода у них работают так?
Вход адреса:
0 вольт - лог.0
5 вольт - лог.1
Выход данных (открытый коллектор через с подтяжкой):
коллектор открыт - 0 вольт с резистора - лог.0
коллектор закрыт - 5 вольт с резистора - лог.1
То есть перед записью микросхемы мне надо сделать инверсию в таблице и на адрес, и на данные?
У 573РФ5 выход 3 состояния. Но состояние +5в. с малой нагрузочной способностью.
У очищенной РФ5 вроде как FF состояние выхода, что в понятиях ф. Интел +5в.
Адрес начала массива у РФ5 - 0в. на всех адресных выводах.
Текст программы инверсии адреса и данных, от маркера ( адрес 004674, длина 14 слов ( дес. ) ) :
https://pic.maxiol.com/thumbs2/16479...997899101..jpg
Адрес начала массива - 020000, длина массива - 020000 ( 8 Кбайт ).
- - - Добавлено - - -
Вообще, что бы не иметь проблем с контентом ППЗУ, целесообразно шину памяти пропустить через АП9.
Появился новый вопрос:
Почему у ПЗУ в схеме на выходе данных такой дребезг?
https://i.ibb.co/fnhQ8LP/image.png
Вот причина: на ноге AD14 процессор в момент логической "1" выдаёт вот что:
Почему такое может происходить?
https://i.ibb.co/gvRD9Nt/CHj-Zc60i-AHc.jpg
- - - Добавлено - - -
Разобрался. Помехи шли с входной ноги 556РТ4. Она у меня отвечает за выбор RAM или ROM в зависимости от адреса.
Только непонятно, почему помеха идет от входной ноги (A2)? Подтяжка резисторами есть
- - - Добавлено - - -
Кажется, нашел проблему. У меня регистр адреса был подключен неправильно. Не в режиме триггера-защелки, а в режиме "пропустить насквозь/Z" по сигналу SYNC. Вечером проверю работу на ЛИ. Дребезг по шине пропал. Логические уровни улучшились
Итак мне удалось запустить схему. Выражаю огромную благодарность всем тем, кто мне помогал. Но ожидаемо возник еще ряд вопросов:
Безадресный регистр у меня на плате имеет значение 000000 (джамперы выкл.). Соответственно, следующим шагом должно начаться чтение с адреса 000000. С этого адреса у меня начинается область ПЗУ. Заполняю память 573РФ4 для младших байтов, а для старших оставляю пустую ПЗУ с нулями. С двух микросхем на шине получаю:
000000: 000001
000002: 000340
000004-000377: 000000
000400-...: 244 (команды NOP)
Прошивка для "для младшей" половину ПЗУ:
https://i.ibb.co/ZJFw8CX/Dump.jpg
Собственно, проблема: если в адресе 000000 ПЗУ я прописываю значение 000001, то чтение моей основной программы начинается не с адреса 000001, как мне казалось должно было быть (это тест, я знаю, что там должно быть 000340). Процессор берет значение из ячейки ПЗУ 000000 и записывает его в счетчик команд не все 16 бит подряд, а только его младший байт да еще и на место старшего байта PC. В итоге получаем в счетчике не 000001, а 000400 (0000 0001 0000 0000 вместо 0000 0000 0000 0001).
(на рисунке я подписал значения на шине адреса и на шине данных в момент измерения)
https://i.ibb.co/XVpXCW7/1.jpg
Получается, я физически не могу стартовать программу с адреса, меньшего чем 000400. Но в документации про этот момент написано совсем иначе:
https://i.ibb.co/ZLTbgM7/70.jpg
Согласно ТО, R7:= (АВП). То есть 16-ти битный PC должен загружаться 16-ти битным значением из ячейки 000000 параллельным переносом, а не одной его половиной и со сменой мест.
Помогите пожалуйста прояснить этот момент