Отладочный модуль на К1801ВМ1
Moderator: Shaos
-
- Banned
- Posts: 102
- Joined: 02 Feb 2014 08:29
- Location: Павловский Посад
Re: Отладочный модуль на К1801ВМ1
Очень интересная платка !
А никак нельзя фотку залить на :
http://itmages.ru/
А то Радикал для сотовых модемов платный - 20 руб в сутки...
А никак нельзя фотку залить на :
http://itmages.ru/
А то Радикал для сотовых модемов платный - 20 руб в сутки...
Коллекционирование радиодеталей : http://collectingrd.kxk.ru/
-
- Senior
- Posts: 157
- Joined: 07 Dec 2010 02:51
- Location: РФ г.КЕМЕРОВО
Re: Отладочный модуль на К1801ВМ1
В байте 8 бит,а в каждом четвёртом 9 ! ! ! Потомушта он высокосный ! ! !
-
- Senior
- Posts: 157
- Joined: 07 Dec 2010 02:51
- Location: РФ г.КЕМЕРОВО
Re: Отладочный модуль на К1801ВМ1
Вот дампы с платы на ВМ1
ПЗУ с надписью 00100-http://rghost.ru/7hfqMVmlx,
ПЗУ с надписью 00101-http://rghost.ru/894SZqcf5.
Может кто сможет их объединить и просмотреть?
ПЗУ с надписью 00100-http://rghost.ru/7hfqMVmlx,
ПЗУ с надписью 00101-http://rghost.ru/894SZqcf5.
Может кто сможет их объединить и просмотреть?
В байте 8 бит,а в каждом четвёртом 9 ! ! ! Потомушта он высокосный ! ! !
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Отладочный модуль на К1801ВМ1
Коллега SAA косвенным образом подтолкнул вспомнить, что мы тут пытались сконструировать...
Я полистал топики, посвященные 1801ВМхх, и обнаружил, что многие схемы по внешним ссылкам завяли.
Здесь были сообщения, что в исходной схеме есть ошибки/опечатки, в частности в шине отсутствует
вывод 18. Я не знаю, насколько критично его отсутствие, но я тут позанимался исходной схемой и
нашел, как мне кажется, ошибку/опечатку более серьёзную: Регистры вывода D15, D16 сбрасываются сигналом SEL2 (19), но этот же сигнал SEL2 участвует
в формировании фронта записи в эти регистры.
Поскольку SEL2 задает адрес обращения к регистрам ВВ, то они всегда будут сброшены в 0.
Мне кажется, на вход сброса этих регистров надо подать сигнал INIT (17) - сбросить их в 0 один раз
при старте процессора. Тем более, что вывод INIT уходит в шину под номером (17), и больше нигде
не выходит, либо я не нашел.
Также прикинул я карту памяти этого устройства со всей его неполной дешифрацией: Ну и для этого пришлось подробно прочитать как работает ИС К588ВГ2, кто не читал, - весьма-таки интересно!
В общем лично у меня план следующий: адаптировать данную схему аппаратно к 1801ВМ2, но программный
Монитор использовать из этого журнала (MPSS_86_2_с.37).
Меня привлекает, что он разработан как раз для исследования ЦПУ 1801ВМхх, и не привязан ни к каким
конкретным компьютерам, типа БК, ДВК, УКНЦ и т.п.
Тем более, как я прочитал, Монитор написан авторами, как перемещаемая программа, т.е. его можно
запускать с любых адресов в пространстве памяти ЦПУ, практически не правя код.
Я полистал топики, посвященные 1801ВМхх, и обнаружил, что многие схемы по внешним ссылкам завяли.

Здесь были сообщения, что в исходной схеме есть ошибки/опечатки, в частности в шине отсутствует
вывод 18. Я не знаю, насколько критично его отсутствие, но я тут позанимался исходной схемой и
нашел, как мне кажется, ошибку/опечатку более серьёзную: Регистры вывода D15, D16 сбрасываются сигналом SEL2 (19), но этот же сигнал SEL2 участвует
в формировании фронта записи в эти регистры.
Поскольку SEL2 задает адрес обращения к регистрам ВВ, то они всегда будут сброшены в 0.
Мне кажется, на вход сброса этих регистров надо подать сигнал INIT (17) - сбросить их в 0 один раз
при старте процессора. Тем более, что вывод INIT уходит в шину под номером (17), и больше нигде
не выходит, либо я не нашел.
Также прикинул я карту памяти этого устройства со всей его неполной дешифрацией: Ну и для этого пришлось подробно прочитать как работает ИС К588ВГ2, кто не читал, - весьма-таки интересно!

В общем лично у меня план следующий: адаптировать данную схему аппаратно к 1801ВМ2, но программный
Монитор использовать из этого журнала (MPSS_86_2_с.37).
Меня привлекает, что он разработан как раз для исследования ЦПУ 1801ВМхх, и не привязан ни к каким
конкретным компьютерам, типа БК, ДВК, УКНЦ и т.п.
Тем более, как я прочитал, Монитор написан авторами, как перемещаемая программа, т.е. его можно
запускать с любых адресов в пространстве памяти ЦПУ, практически не правя код.
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Senior
- Posts: 136
- Joined: 12 Jul 2016 21:30
Re: Отладочный модуль на К1801ВМ1
У меня похожие планы, Lavr, вот только доведу до завершения макет с Вашим Z84C0020Lavr wrote:Коллега SAA косвенным образом подтолкнул вспомнить, что мы тут пытались сконструировать...
В общем лично у меня план следующий: адаптировать данную схему аппаратно к 1801ВМ2, но программный
Монитор использовать из этого журнала (MPSS_86_2_с.37).

Намедни вместе с одним человеком прикидывал узлы выработки RPLY и записи байт-слово. У 1806 только один вывод SEL!
В дешифраторе делал 32Кслов но это не принципиально можно защелкивать на JK-триггере отдельно и тогда будет 64Кслов.
А этот узелок, подсмотрел в Вашей схеме, в принципе лаконичней некуда.
Насчет AR надо подумать.
You do not have the required permissions to view the files attached to this post.
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Отладочный модуль на К1801ВМ1
Я сейчас как раз планирую погонять этот Монитор под отладчиком в эмуляторе БК-0010.Lavr wrote:...но программный Монитор использовать из этого журнала (MPSS_86_2_с.37).
Поэтому и озадачился документацией на БК-шку...
Судя по карте памяти БК-0010, это должно получиться, коли Монитор перемещаемый.
Всё же оцифровывали код Монитор-а мы с очень грязных сканов, и хотя проверяли тут втроем,
ошибки вполне могут быть.

Ну и заодно поучусь ассемблеру 1801ВМх...

iLavr
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
1801BMx MONITOR_L-H
Да, порядок нужен Low-High (если кто знал, не кидайтесь камнями: все промолчали, а я - не знал...Lavr wrote:..выкладываю бинарники, чтобы было чего "диз..."![]()
Монитор - старший-младший: MONITOR_H-L.BIN
Монитор - младший-старший: MONITOR_L-H.BIN
(мне кажется, этот порядок нужен для эмулятора)

Проверил на эмуляторе БК-0010: Загружаемая программа в WINHEX (первые 4 байта - адреса посадки, кстати &o1000 = 200h = 00 02)
Далее - Дамп памяти из эмулятора БК-0010 и первые 3 слова программы - в конвертере.
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Отладочный модуль на К1801ВМ1
Декомпилировал заново программу-Монитор дизассемблером от эмулятора БК-0010.
С предыдущим вариантом, когда я использовал декомпилятор от УКНЦ, построчно совпало.
Но теперь у меня есть реальные адреса, чего ранее не было.
По всем переходам и вызовам Монитор управления не теряет - все адреса в теле программы.
Это уже радует...
А вот что не радует, пишет Монитор в ряде мест в области памяти, которые не соответствуют
этой карте памяти:

Хотя с исходной таблицей кодов вроде как четко совпадает...
Я пометил такие места в программе, как ; %%% .
Может быть, я не совсем точно определил неполную дешифрацию, и там больше "зеркал" ОЗУ.
А может это просто "грязные трючки" под 1801ВМ1, чтобы затруднить декомпиляцию...
Также не нашел массивов текстовых сообщений в 7-сегментном коде.
С предыдущим вариантом, когда я использовал декомпилятор от УКНЦ, построчно совпало.
Но теперь у меня есть реальные адреса, чего ранее не было.
По всем переходам и вызовам Монитор управления не теряет - все адреса в теле программы.
Это уже радует...
А вот что не радует, пишет Монитор в ряде мест в области памяти, которые не соответствуют
этой карте памяти:
Хотя с исходной таблицей кодов вроде как четко совпадает...

Я пометил такие места в программе, как ; %%% .
Может быть, я не совсем точно определил неполную дешифрацию, и там больше "зеркал" ОЗУ.
А может это просто "грязные трючки" под 1801ВМ1, чтобы затруднить декомпиляцию...
Также не нашел массивов текстовых сообщений в 7-сегментном коде.
iLavr
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Отладочный модуль на К1801ВМ1
Нашел я упомнание о выводе 18.Lavr wrote:Здесь были сообщения, что в исходной схеме есть ошибки/опечатки, в частности в шине отсутствует
вывод 18. Я не знаю, насколько критично его отсутствие...
Мне кажется, это некритично. Я лично криминала в этом вроде как не увидел...Случайность wrote:позавчера сверял схему окончательную, с журнальной и заметил что провод 18 в шине отсутствует, Резистор к нему есть , ноги п роцессоре пронумерованы в шине как 16- 17- -19 так что должно быть номером 18?
P.S. Сканы и прочие "бумажные" материалы здесь, ссылки рабочие.
iLavr
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Отладочный модуль на К1801ВМ1
Внимательно почитал эти сомнительные места. В большинстве случаев, как мне показалось, этоLavr wrote:что не радует, пишет Монитор в ряде мест в области памяти, которые не соответствуют
карте памяти: ...
не адреса, а различные константы, просто в силу 16-разрядности процессора они напоминают
характерные адреса пространства памяти БК.
Решился на грязный трюк: посадить Монитор на адрес о30000 (он вобще - с о80000, но пишут, что переносимый).
В ячейку о33772 (по смещению о3772 от адреса загрузки) указал адрес доступного ОЗУ = о10000,
чтобы не портить служебное ОЗУ БК.
Порт ввода-вывода у Монитора единственный: o177714, дешифруется через SEL2. У БК - это 16-битный
параллельный порт, в эмуляторе считается что на o177714 подключен COVOX.
Проверил COVOX в эмуляторе БК:
Code: Select all
10 POKE &O177714,255
20 POKE &O177714,0
30 GOTO 10

Значит по идее, Монитор по порту o177714 сканирует 7-сегментный индикатор, и если все хорошо,
то должен зажужукать ковоксом.
Плохо, что Монитор и читает через порт o177714 матрицу клавиатуры, не знаю, как к этому относится
эмулятор БК-0010.

В общем - запустил Монитор как есть с адреса о30000, результат вот такой: Либо эмулятору что-то не понравилось, либо в коде еще остались баги...
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Отладочный модуль на К1801ВМ1
Чтобы отмести неполадки из-за эмуляции COVOXa, решил эксперимент немного изменить:
вместо порта o177714 обращаться из Монитора в ячейку экранного ОЗУ - должно быть видно,
как Монитор перебирает позиции индикатора, или хотя бы что-то пишет в ОЗУ.
Ну а то что он будет читать эту ячейку, как матрицу клавиатуры - так ведь ОЗУ: что записал,
то сам и прочитает!
Видео-ОЗУ у БК-0010 находится по адресам о40000 – о77777 (4000...7FFFh).
Для определенности решил использовать ячейку о40000.
Проверил, как оно... будет ли видно?
Оно вполне себе хорошо в нижнем углу экрана видно!
А вот с запуском Монитора, пропатченного для вывода на экран, результат такой-же,
как в предыдущем посте...
Видимо, всё же баги в коде... хотя странно, что такие жесткие!
По идее - ну потерял Монитор управление, вывалился в БК, код о0000 = HALT, в памяти его полно!
Но почему-то эмулятор БК вешается жестко!
Придется, видимо, дебужить код отладчиком... 
вместо порта o177714 обращаться из Монитора в ячейку экранного ОЗУ - должно быть видно,
как Монитор перебирает позиции индикатора, или хотя бы что-то пишет в ОЗУ.
Ну а то что он будет читать эту ячейку, как матрицу клавиатуры - так ведь ОЗУ: что записал,
то сам и прочитает!

Видео-ОЗУ у БК-0010 находится по адресам о40000 – о77777 (4000...7FFFh).
Для определенности решил использовать ячейку о40000.
Проверил, как оно... будет ли видно?
Code: Select all
10 POKE &O40000,170 ' ---0AAH
20 POKE &O40000,85 ' --- 55H
30 GOTO 10
А вот с запуском Монитора, пропатченного для вывода на экран, результат такой-же,
как в предыдущем посте...

Видимо, всё же баги в коде... хотя странно, что такие жесткие!

По идее - ну потерял Монитор управление, вывалился в БК, код о0000 = HALT, в памяти его полно!
Но почему-то эмулятор БК вешается жестко!


iLavr
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Отладочный модуль на К1801ВМ1
Ааааааа!Lavr wrote:Решился на грязный трюк: посадить Монитор на адрес о30000 (он вобще - с о80000, но пишут, что переносимый).
В ячейку о33772 (по смещению о3772 от адреса загрузки) указал адрес доступного ОЗУ = о10000,
чтобы не портить служебное ОЗУ БК.
Порт ввода-вывода у Монитора единственный: o177714, дешифруется через SEL2. У БК - это 16-битный
параллельный порт, в эмуляторе считается что на o177714 подключен COVOX.
Значит по идее, Монитор по порту o177714 сканирует 7-сегментный индикатор, и если все хорошо,
то должен зажужукать ковоксом.


Проблема была с загрузкой файла в эмулятор. Почему-то недогружались примерно 4 слова.
А здесь это как раз ячейки, где хранятся адреса порта и ОЗУ.
Первые же 2 шага в отладке показали, что что-то в конце файла не так, сделал его длинее
на 4 байта и всё пошло!

Выкладываю файл Монитора, под эмулятор БК-0010: Первые 4 байта - начальный адрес и длина файла.
Если необходимо сделать файл для ПЗУ, то надо отрезать 4 байта вначале файла и обрезать
по длине до 800Н (2048).
Для адаптации Монитора к другим конструкцям:
По смещению о3770 (7F8Н) записан адрес порта ввода-вывода;
По смещению о3772 (7FАН) записан адрес используемого ОЗУ;
Для работы монитора необходимо ОЗУ объемом 128 байт, причем предусмотрена
возможность работы монитора с ОЗУ, расположенным в любой области адресного
пространства.
Адрес выбранной для ОЗУ Mонитора области памяти (AM) записывается в ячейку
с адресом (АЗ + 3772o [7FAH or 2042]), при этом в мониторе используется зона
памяти от (AM + 40o [20H or 32]) до (AM + 140o [60H or 96]).
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Отладочный модуль на К1801ВМ1
А мы где-то уже обсуждали почему БК-шники оперируют восьмиричными значениями? Ведь чертовски неудобно 

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Отладочный модуль на К1801ВМ1
Правда, неудобно.Shaos wrote:А мы где-то уже обсуждали почему БК-шники оперируют восьмиричными значениями? Ведь чертовски неудобно

просто мучаюсь...


Очень вовремя я написал Total Converter, хотя он и был для других задач.
Восьмиричными значениями в PDP-XX и совместимыx оперируют потому как у них
всё разбито на тройки битов. Я с этим еще в EDUC-8 столкнулся...

Поэтому команды очень легко запоминаются или просто конструируются в голове.
При некотором навыке можно писать в кодах без ассемблера (очень давно я сам это
делал с помощью справочника Шахнова).
Ну и апологеты PDP-XX и восьмеричной системы считают, что она короче, проще,
в ней нет чуждых ABCDEF, а значит и клавиатура пульта проще. И мы где-то смотрели
на форуме такие пульты ввода и для отладочных плат с i8080, но не прижилось.
Кстати, некоторые кратные числа очень неплохо коррелируют:
о10000 = 1000Н,
о20000 = 2000Н,
о30000 = 3000Н
... и т.д.
You do not have the required permissions to view the files attached to this post.
iLavr
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Отладочный модуль на К1801ВМ1
Если бы как-то перехватить обработку эмулятором БК-0010 обращения к адресу o177714,Lavr wrote:Ааааааа!Lavr wrote:Значит по идее, Монитор по порту o177714 сканирует 7-сегментный индикатор, и если все хорошо,
то должен зажужукать ковоксом.И он зажужукал ковоксом!!!
то можно было бы эмулировать 7-сегментный индикатор и клавиатуру.
Но, к сожалению, у меня эмулятор БК-0010 версии 2.6, а исходники для этого эмулятора
Юрий Калмыков выложил только начиная с версии 3.0.
Посмотрел код - нашел места, где обрабатывают адрес FFCC, кстати не так, как я ожидал.
Я ожидал сравнения на число FFCC, а в коде делается так:
Code: Select all
004120C5: 8B8ED0000000 mov ecx,[esi][0000000D0]
004120CB: 68CCFF0000 push 00000FFCC ;" _¦"
004120D0: E82B23FFFF call .000404400 -------- (3)
Code: Select all
.00412116: 50 push eax
.00412117: 68CCFF0000 push 00000FFCC ;" _¦"
.0041211C: E80F23FFFF call .000404430 -------- (4)
Code: Select all
.00412189: 8B8ED0000000 mov ecx,[esi][0000000D0]
.0041218F: 68CCFF0000 push 00000FFCC ;" _¦"
.00412194: E86722FFFF call .000404400 -------- (2)
Пожалуй, прицепиться извне к такому коду под Windows проблематично...

iLavr