Отладочный модуль на К1801ВМ1

Digital Equipment Corporation PDP-8 & PDP-11 (а также совместимые с последним советские ЭВМ на 1801ВМ1/2/3)

Moderator: Shaos

User avatar
Случайность
Doomed
Posts: 491
Joined: 05 Apr 2011 12:45
Location: Великий Новгород

Post by Случайность »

UPD

спросил у человечка который хорошо разбирается в этой архитектуре насчет R2 и DD2.1

резистор R2 токоограничивающий. Т.к процессорная нога RPLY при обращении к внутренним регистрам процессора работает как выход. И на ней будет лог. 0 на на ноге 5 DD4.1 будет в этот момент лог.1

DD2.1 формирует необходимую временную задержку при REPLY от внешней схемы. Его можно исключить, но тогда уменьшится быстродействие.


В общем все так. И предположения насчет этих элементов оказались верны сравнивая эту схему с другими
танцуй пока живешь под каплями огненного дождя...
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Случайность wrote:резистор R2 токоограничивающий. Т.к процессорная нога RPLY при обращении к внутренним регистрам процессора работает как выход. И на ней будет лог. 0 на на ноге 5 DD4.1 будет в этот момент лог.1

Странно. Во встреченной мною справочной литературе нигде такая особенность не упоминается. Везде написано - вход.
Случайность wrote:DD2.1 формирует необходимую временную задержку при REPLY от внешней схемы. Его можно исключить, но тогда уменьшится быстродействие.
В момент формирования ответа устройством низкий уровень сразу же появится на входе /RPLY процессора. Без задержки, поскольку вход /R D4.1 асинхронный. Переключится в единицу он после переключения в единицу сигнала /RPLY от устройства по следующему спаду тактового сигнала, т.е., возможно, с некоторой задержкой. Но какой смысл в такой задержке, если /RPLY устройство снимает лишь после снятия /DIN (/DOUT) процессором, т.е. в любом случае после того, как процессор ответил на /RPLY? Или я что-то неправильно понимаю в логике работы этой штуки? :)
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Меня вот INIT смущает... по таблице - он вход-выход. :(

Image

А по тексту описания - что-то я этого не заметил...
iLavr
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

В исходной статье /INIT вообще не используется. Роль входа сброса, если я правильно понимаю, отведена сигналу /DCLO. На блок-схемах ВМ2, ВМ3 /INIT обозначен как выход, хотя в таблицах тоже пишется вход/выход.

Сделать аппаратное пошаговое устройство, по образу и подобию оного для ВМ80, не получится?
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

VituZz wrote:Сделать аппаратное пошаговое устройство, по образу и подобию оного для ВМ80, не получится?
Я тоже прикидываю - должно получиться, мне кажется...
Но надо разобраться подробнее, всё же проц незнакомый.
iLavr
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Post by aav8 »

Lavr wrote:
VituZz wrote:Сделать аппаратное пошаговое устройство, по образу и подобию оного для ВМ80, не получится?
Я тоже прикидываю - должно получиться, мне кажется...
Но надо разобраться подробнее, всё же проц незнакомый.
Довольно сильно сомневаюсь, что пошаговое прерывание так просто получится
- в проце не нашел ног для поддержки онного
- если просто задержать ответ пассивного устройства (память/устройство (хотя в этой системе нет такого разделения)) проц перейдет в прерывание по 4-му адресу/вектору - ошибка обращения к памяти.
Наверное нужно просто отключать тактирование - проц скорее всего полностью статический.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

aav8 wrote:Довольно сильно сомневаюсь, что пошаговое прерывание так просто получится
- в проце не нашел ног для поддержки онного
А специальных ног у 8080 тоже нет... :wink: Там удобно используют READY - но он не "для поддержки онного"...
aav8 wrote: - если просто задержать ответ пассивного устройства (память/устройство (хотя в этой системе нет такого разделения)) проц перейдет в прерывание по 4-му адресу/вектору - ошибка обращения к памяти.
Наверное нужно просто отключать тактирование - проц скорее всего полностью статический.
Проц не статический - мы уже это смотерли в его характеристиках. Есть минимальная тактовая.
Но я думаю - надо просто посмотреть чем он удобно тормозится.
Или 1801ВМ2 поюзать - он вроде как точно тормозится.
iLavr
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Процессор выдаёт сигнал /DIN (/DOUT), устройство отвечает сигналом /RPLY. Процессор снимает /DIN (/DOUT). Если устройство будет продолжать удерживать /RPLY, не будет ли процессор простаивать, ожидая его снятия? Это можно было бы использовать для пошагового устройства, защёлкнув в регистрах предварительно адрес.
Lavr wrote:Меня вот INIT смущает... по таблице - он вход-выход.
Если в Шахнове посмотреть на рис. 11.5 (временная диаграмма цикла ПДП), то мы увидим, что входы там названы выходами, и наоборот. Возможно, вывод, обозначенный в таблице как "вход/выход", выполняет альтернативную функцию в моменты, когда процессор с этим выводом является "НЕГЛАВНЫМ", т.е. не управляет шиной, а отдал её в распоряжение другого активного устройства? SYNC тоже там назван "входом/выходом".
Last edited by VituZz on 10 Nov 2013 07:22, edited 1 time in total.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Lavr wrote:Ну тогда я попробую распознать Файнридером дамп кодов Монитора, тот, что в статье МПСС.
Потратил я сегодня квант времени и дамп кодов Монитора, тот, что в статье МПСС, - оцифровал. 8)

Исходник очень низкого качества - вот он: Mpss_1986_02_P37.djvu.

Из него я делал контрастный файл графики: Mpss_1986_02_P37.gif, который и распознавал
Файнридером, поскольку с полутонами, как в оригинале, распознается просто отвратительно.

После распознавания я фактически весь дамп перечитал и вручную проправил, там где плохо
видно, смотрел этот же дамп из другого источника: Mpss_1986_02_p37.jpg.

Вот здесь дамп монитора - с адресами, как в статье МПСС: MONITOR_1986_02_P37.doc.

Вот здесь дамп монитора - без адресов, как для бинарника: MONITOR_1986_02_P37.txt.

Весь набор я выложил, чтобы вы могли исправить что-то или уточнить, ежели я где-то ошибся.
Хотя я пару раз внимательно проверил - но исходный текст очень некачественный. :(

Я сразу хотел выложить и бинарник, но споткнулся на вот каком вопросе: числа в дампе, видимо,
16-битные (2-байтные)?

Code: Select all

DK:M.SAV/N/0:1
BLOCK NUMBER  0001
000/ 016700 003766 010005 012705 000004 010715 062725 062454
020/ 005025 010715 062725 002462 005025 010715 062725 001564
040/ 005015 012705 000034 010715 062725 001754 005015 026027
060/ 000026 123456 001411 012760 123456 000026 012760 000010
100/ 000030 012701 000032 000402 012701 000100 004767 002750
Как их упаковывать в бинарник для прошивки: младший-старший байты или старший-младший?

И если я хочу использовать 2 ПЗУ типа РФ, то бинарник надо разделить на 2 прошивки?
Одна - для младших байт, вторая - для старших?
iLavr
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Числа-то 16-битные, но каждая циферка ведь отвечает за 3 бита. Поэтому разделять для РФ нужно, пересчитывая целиком сразу 16-битное число из 8-битной системы в 16-битную, а потом старший байт писать в старшую РФку, а младший - в младшую.

0167008 -> 0.001.110.111.000.000 -> 0001.1101.1100.0000 -> 1DC0h. 1D - туды, C0 - сюды :D. Вроде так? А писать в дампе, я думаю, старший-младший.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

VituZz wrote:Числа-то 16-битные, но каждая циферка ведь отвечает за 3 бита. Поэтому ....
Это всё автоматически получится при преобразовании char в word.
А word - в 2 байта.
VituZz wrote:А писать в дампе, я думаю, старший-младший.
Так и сделаю - хотя на Intell процессоре удобнее наоборот... :wink:

Ну оцифрованный txt-дамп я сделал - в бинарник теперь можно каждому
укладывать, как ему удобно.


PS. Попробую я декомпилировать Монитор через эмулятор УК-НЦ. Посмотрим,
что получится...
Last edited by Lavr on 10 Nov 2013 08:06, edited 1 time in total.
iLavr
User avatar
Случайность
Doomed
Posts: 491
Joined: 05 Apr 2011 12:45
Location: Великий Новгород

Post by Случайность »

2 Lavr

отличная работа, я тоже занимался этим но как то лениво шло. так как в ручную набирал,

завтра попробую позвонить в одно место насчет некой доки на К1801ВМ1 и о способе ее заполучения.
танцуй пока живешь под каплями огненного дождя...
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Post by VituZz »

Lavr wrote:Весь набор я выложил, чтобы вы могли исправить что-то или уточнить, ежели я где-то ошибся.
Мне кажется, по первоисточнику так (адрес/ первоисточник оцифровано):
002/ 010006 010005
007/ 002454 062454
146/ 000402 004002
Last edited by VituZz on 10 Nov 2013 08:52, edited 1 time in total.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

VituZz wrote:Процессор выдаёт сигнал /DIN (/DOUT), устройство отвечает сигналом /RPLY. Процессор снимает /DIN (/DOUT). Если устройство будет продолжать удерживать /RPLY, не будет ли процессор простаивать, ожидая его снятия?
Если я всё правильно прочитал, то похоже, что - не будет.

Здесь aav8, видимо, прав:
aav8 wrote:- если просто задержать ответ ... проц перейдет в прерывание по 4-му
адресу/вектору - ошибка обращения к памяти.
Но я надеюсь, как-то без нас работали люди под этим процем? Значит и
пошаговая отладка как-то осуществлялась.

Это сейчас эмуляторов - пруд-пруди, а тогда с ними было куда как хуже...
Значит как-то умели отладить пошагово.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

VituZz wrote:Мне кажется, по первоисточнику так (адрес/ первоисточник оцифровано):
002/ 010006 010005
007/ 002454 062454
А поточнее?
002/
007/
- в источнике просто нет...
есть
020/
040/
.
Или у нас источники разные?

Нет - я вполне мог и не определить точно кое где, для чего и выложил все составляющие.
Last edited by Lavr on 10 Nov 2013 08:55, edited 1 time in total.
iLavr