
Сообщение от
MiX
Если сравнить с книгой то адреса сдвинуты на единицу.
Просто в книге так написали - попытались отобразить работу конвейера. Пока какой-то адрес считывается на шине микроинструкций выполняется предыдущая микрокоманда, считанная циклом ранее. Вот в книжке при старте по адресу 0x001 было прочитано 0x0033B, но выполнятся эта инструкция будет в момент когда читается адрес 0x002.

Сообщение от
MiX
Откуда команды? Если после 173000 какая то программа то это 2й режим старта, но там нет вектора 24.
Выбран режим старта 3 - чтение вектора 24 и переход по нему. Там находится моделируемое ОЗУ и программа записана:
Код:
54 000024 vect 24, entry ; вектор начального пуска
000024 001576 .word entry ;
000026 000340 .word 340 ;
...
258 ;_____________________________________________________________________________
259 ;
260 001576 012737 037406 177714 entry: mov #037406, @#177714 ;
261 001604 012737 003177 177715 mov #003177, @#177715 ;
262 001612 012706 000710 mov #$stack, SP ;
263 ;
264 001616 012767 001122 177274 mov #$rxbuf, $rxend ;
265 001624 012767 001122 177264 mov #$rxbuf, $rxbeg ;
266 001632 012767 000716 177054 mov #$txbuf, $txend ;
267 001640 012767 000716 177044 mov #$txbuf, $txbeg ;
268 ;
269 001646 012737 000100 177560 mov #100, @#RXCSR ;
270 001654 012737 000000 177564 mov #000, @#TXCSR ;
271 001662 005000 clr R0 ;
272 001664 106400 mtps R0 ;

Сообщение от
MiX
Может DCLO?
По DCLO формируется сразу сброс. Происходит ожидание ACLO, пока питание станет нормальным. Это вот тот самый фронт nACLO запускающий работу, в приведенном фрагменте микрокода этот цикл ожидания явно прописан:
Код:
1$: ltr rpswl,rpswl,,0x1C ; 342: 00eeaa <1C> TR = 104210 (emt 210), REF
jsr rfdin ; 343: 01014d
tl PFAIL,rirl ; 344: 005088
jzbf 1$ ; 345: 001042
- выполнили регенерацию если есть запрос
- прочитали флажки операцией Fast DIN (или Внутрениий Ввод по терминологии документации M2)
- PFAIL это когнстанта, заданная как PFAIL = 8
- это бит 3 регистра FDIN, отображает состояние ACLO и прерывания по нему
- если бит не равен 0 - новый цикл с регенерацией и проверкой
- - - Добавлено - - -
- нашел еще одну ошибку в стробе регистра трансляции
- CLR R0 сделан как swf - вычитание регистра из самого себя. При симуляции я начально не задавал никакие значения регистров, чтобы посмотреть как по схеме будет распространятся Undefined, так вот оно swf пережило, не смогло вычесть Undefined из Undefined и дать 0 на выходе, пришлось в начале симуляции регистры принудительно установить в определенные значения. Для реальной схемы или FPGA это значения не имеет, потому что вычитание любого числа из самого себя дает 0.
- добежало до прерываний от консольного терминала, помирает уже при попытке обработать прерывание