Пришлось повоевать с загрузчиком. Первоначально я собирался сделать его на основе того самого приема из МПСиС с MOV -(R7),R0 - MOV -(R7),(R0)+, но всё было неотлаженным и в таком варианте было сложно понять что не так и где ошибка или недоработка, так я переиграл это дело на три ячейки регистров контроллера - поначалу, для подстраховки, с адреса 177734 выдавался код 777 (BR .), потом 775 (BR .-2), при этом с адреса 177730 в первый раз после перехода выдавался код 012700, а с адреса 177732 код 10000 - адрес расположения загрузчика в памяти (т.е MOV #10000,R0), а далее - с 177730 код 012720 и, с 177732 - код очередного слова загрузчика (MOV #<код>,(R0)+ и в конце, после передачи всего загрузчика - коды 137 и 10000 (JMP @#10000). С адреса 177734 при этом все время передавался код 775 - переход на 177730.
Все великолепно работало. На 1201.02, т.е. на ВМ2. По идее, оно должно точно так же работать на ВМ1 и на Э-60. Потом я таки вставил 1201.04 и попробовал на ней. Как говорит молодежь, "Ага, щаззз!" Во-первых, отказалась работать 2764, на которой у меня был дешифратор адресов контроллера. В общем-то, неудивительно. Удивительно, как она работала на ВМ2, ведь у нее заявлено время выборки 180 нс, тогда, как адресная часть цикла МПИ - 100 нс. Я уже было опустил руки, но тут, наконец-то, из Китая долетели Галки, конкретно - GAL16V8D и я, все забросив, сделал плату новой заглушки - на Галках, некоторое время воевал с ее подключением, добил. Заработало все, кроме загрузчика. Вставляю ВМ2 - загрузчик работает, вставляю ВМ3, загрузчик валится.
Я уже собрался просить помощи клуба, но решил сначала, все-таки попробовать тот прием из МПСиС, благо, аппарат для написания таких программ был наработан на загрузчике с ВМ2. И - о чудо! Загрузчик заработал. По всей видимости, это что-то, связанное с предвыборкой и конвейером, которые сбрасываются при прямых манипуляциях с R7 (PC) и не сбрасываются при последовательном исполнении программы.
В общем, все. Макс уже рисует плату, я тут еще сделаю мелкую доработку железа, пойдет - хорошо, не пойдет - тоже не страшно. Теоретически, пойти должно, надеюсь, что пойдет...
- - - Добавлено - - -
Нам ее пока некуда сунуть. А у тебя, вроде-бы, и переходники были? Если есть, затолкаем ее в Q-Bus через передохник.





Ответить с цитированием