Может мне съездить домой и подключить НМЛ к контроллеру?
Может мне съездить домой и подключить НМЛ к контроллеру?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Пока и так есть над чем подумать :)
...
Вот какую интересную "самодеятельность" показал контроллер:
1. После RESET регистр 176730 имеет значение 054 ( установлены BIT_5, BIT_3, BIT_2 csr ), а регистр 176732 - случайное значение в диапазоне 0..0377.Код:@176730/000054 @176730/000054 @176732/000376 ^ 176730/000044 @176732/000376 0^ 176730/000040 1 @176730/000054 @176732/000200 0^ 176730/000040 1 @176732/000200 ^ 176730/000044 @176732/000200 0^ 176730/000040 1 @176730/000054 1 @176730/000004 24 @176730/000004 @176732/000200 1^ 176730/000004 24 @176730/000044 @176732/000200 ^ 176730/000044 @176732/000200 0^ 176730/000040 1 @176730/000054 @176732/000200 1^ 176730/000040 1 @176730/000004 24 @176730/000044 @176732/000200 ^ 176730/000044 @176732/000200 0^ 176730/000040 1 @176730/000054
2. Запись в регистр 176730 после RESET изменяет его значение только в том случае, если в записываемом значении установлен BIT_0 - тогда сбрасываются BIT_5 и BIT_3 ( получается 176730/000004 ) и контроллер начинает ожидать записи в регистр 176732. Затем, если в регистр 176732 записан 0 - значение регистра 176732 изменяется со случайного на число 0200, а в регистре 176730 устанавливается BIT_5 ( получается 176730/000044 ).
3. После любого чтения регистра 176732 - сбрасывается BIT_3 регистра 176730 ( если сделать это сразу после RESET, то получается 176730/000044 ).
4. После любой записи в регистр 176732, когда контроллер не ожидает записи туда - сбрасывается BIT_2 регистра 176730 ( если сделать это сразу после RESET, то получается 176730/000040 ). Если записать в регистр 176732 значение 0 и после этого записать 1 ( т.е. BIT_0 ) в регистр 176730 - то в этом регистре установятся BIT_5, BIT_3 и BIT_2 ( получается 176730/000054 ).
Весьма похоже, что строчка
в драйвере - это запись кода команды в регистр 176732.Код:055276 Mov (SP)+, @20.(R3)
интересно, получается код команды находится в одном из регистров?
и после вываливания программы ПЗУ в монитор, можно попробовать поискать
команды в регистрах?
Нет, там по чтению и записи - разные регистры.
Но я уже добавил симуляцию регистров в эмулятор, поэтому можно определить какая инструкция ПЗУ что пишет в эмулируемый контроллер, потом вручную записать то же самое в настоящий контроллер, узнать ответ - симитировать этот ответ в эмуляторе и так до первого прерывания ( их в регистре не увидишь ).
Вот первые результаты:
1. После RESET контроллер имеет 054 в регистре 176730
2. При выполнении команды DIR/IST:TP
Код:055250 / BiT #40, @16(R3) - читает 054 по адресу 176730 055276 / Mov (SP)+, @24(R3) - пишет 033407 по адресу 176732 055302 / Mov #1, @16(R3) - пишет 01 по адресу 176730 053376 / BiT #40, @16(R3) - читает 054 по адресу 176730 053406 / BiT #10, @16(R3) - читает 054 по адресу 176730 053416 / MovB @20(R3),-(SP) - читает 00 по адресу 176732 затем анализирует полученный результат и выводит на экран: sboj TP0 ~tenie sostoqnie 32400 ? [I,S,C,R]
Последний раз редактировалось Patron; 18.03.2011 в 17:26.
Всем добрый вечер!
Сейчас подключу НМЛ к ДВК.....
Если для продолжения нажать R :
Код:sboj TP0 ~tenie sostoqnie 32400 ? [I,S,C,R] R 053464 / Mov #2, @24(R3) - пишет 02 по адресу 176732 053472 / Mov #1, @16(R3) - пишет 01 по адресу 176730 053500 / BiT @16(R3), #60 - читает 044 по адресу 176730 055250 / BiT #40, @16(R3) - читает 044 по адресу 176730 055276 / Mov (SP)+, @24(R3) - пишет 033411 по адресу 176732 055302 / Mov #1, @16(R3) - пишет 01 по адресу 176730 053376 / BiT #40, @16(R3) - читает 054 по адресу 176730 053406 / BiT #10, @16(R3) - читает 054 по адресу 176730 053416 / MovB @20(R3),-(SP) - читает 00 по адресу 176732 затем анализирует полученный результат и выводит на экран: DIR-/DIC ukz. blk. = sboj TP0 upraw. sostoqnie 32400 ? [I,S,C,R]
Подключил НМЛ....
Проверил, с программой из ПЗУ он работает...
Можно играться..
Подключатся терминалом на сервер n5083.no-ip.org порт 2311
---------- Post added at 21:42 ---------- Previous post was at 21:27 ----------
Похоже лента сдвинулась с места..
---------- Post added at 21:56 ---------- Previous post was at 21:42 ----------
Когда лента сдвинулась, она перестала стоять на маркере, и сейчас
кнопка "Загрузка" не горит..
Может вернуть ленту на начало?
Вот что удалось определить:
1. Перед подачей команды нужно убедиться, что в регистре 176730 установлен BIT_5 ( т.е. 040 ).
2. Для подачи команды - сначала её код нужно записать в регистр 176732, а затем записать 1 в регистр 176730 для начала выполнения команды.
3. Если контроллер понял команду и выполняет её - он устанавливает BIT_3 ( 010 ) в регистре 176730.
4. Когда команда завершена и контроллер готов принять следующую - он устанавливает BIT_5 ( 040 ) в регистре 176730.
Код:Коды команд: DIR/IST:TP 033407 REW/IST:TP 033403 FSR/IST:TP 033413 BSR/IST:TP 033412 FSF/IST:TP 033411 BSF/IST:TP 033410
Последний раз редактировалось Patron; 18.03.2011 в 19:38.
Получается:
DIR/IST:TP 033407 - Вывод меток маршрутов
REW/IST:TP 033403 - Перемотка на начало ленты
FSR/IST:TP 033413 - Шаг на блок вперед
BSR/IST:TP 033412 - Шаг на блок назад
FSF/IST:TP 033411 - Шаг на файл вперед
BSF/IST:TP 033410 - Шаг на файл назад
А как читать/писать данные?
---------- Post added at 22:46 ---------- Previous post was at 22:43 ----------
А как добиться чтоб в регистре 176730 был установлен BIT_5 ( т.е. 040 ) ?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)