КР1801ВМ1

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

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: КР1801ВМ1

Post by Lavr »

bk-m wrote:1) если тестирование идёт не всего адресного пространства (а в виде "минус 8К") то до SEL1 и SEL2 попросту не дойдёт (тогда к ним подключены лишние элементы) - а это неправильно,
Когда я рисовал этот узел, опирался на следующие сведения о процессоре 1801ВМ1:
В микропроцессоре имется спецефический режим обращения с внешними устройствами расширения ввода-вывода, задаваемый сигналами SEL1, SEL2. Сигналу SEL1 соответсвует адрес 177716, а сигналу SEL2 — адрес 177714. Обмен с этими регистрами осуществляется обычным образом по сигналам DIN и DOUT, однако выдачи от регистров ответного сигнала RPLY не требуется. По длительности сигналы SEL1 и SEL2 совпадают с сигналами BSY.
Сигнал RPLY схемой на триггере как раз блокируется если активны сигналы SEL1 или SEL2 в силу приоритета асинхронных входов над синхронными.
Так что отключать SEL1 в той схеме, что я нарисовал, я не считаю нужным - на мой взгляд узел этот функционирует именно как задуманно.
iLavr
bk-m
Writer
Posts: 19
Joined: 03 Jun 2013 11:22
Location: Минск

Re: КР1801ВМ1

Post by bk-m »

(... Если будут какие-либо замечания по существу ...)
-
Мои замечания и есть по существу с пояснениями почему некоторые добавленные элементы лишние.
Также блокировать RPLY незачем.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: КР1801ВМ1

Post by Lavr »

bk-m wrote:(... Если будут какие-либо замечания по существу ...)
Мои замечания и есть по существу с пояснениями почему некоторые добавленные элементы лишние.
Они совсем не лишние, лишнее, на мой взгляд, вот это:
bk-m wrote:2) SEL2 через инвертор D3.3 подкл. к выв.2 D5.4, SEL1 не нужно никуда подключать
Ваши замечания по существу - как сделать схему по вашему мнению, а не что не будет работать в нарисованной выше схеме.
bk-m wrote:Также блокировать RPLY незачем.
Ну а я смотрел на схемах, что выложены на форуме, что в ряде случаев именно так и сделано.

И потом:
bk-m wrote:Итог этих изменений - циклический тест до адреса 177716.
А как же рудиментарный программируемый таймер (177706-177712) и регистры межпроцессорной связи (177700-177704)?
Я не хотел обращаться по этим адресам, поскольку неизвестно, какая будет реакция, вы же предлагаете
циклически "ехать" по ним до адреса 177716.
iLavr
bk-m
Writer
Posts: 19
Joined: 03 Jun 2013 11:22
Location: Минск

Re: КР1801ВМ1

Post by bk-m »

K1801BM1ch4.GIF
Изменения в схеме взятой из темы ВМ2 это тоже ваше личное мнение.
-
Схема для простейшего тестирования работоспособности процессора - тестируется запуск по вкл. питания (RESET) и перебор адресов на линиях AD в режиме чтения.
Внутренний таймер (рабочесть-нерабочесть) на работу процессора никак не влияет - у него нет выходов на прерывания или ещё куда-то.
Регистры межпроцессорной связи чем могут помешать?
RPLY от SEL1 и от SEL2 незачем блокировать - в схеме после триггера D4.2 уже есть развязка D5.1 в виде инвертора с ОК.
You do not have the required permissions to view the files attached to this post.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: КР1801ВМ1

Post by Lavr »

bk-m wrote:RPLY от SEL1 и от SEL2 незачем блокировать - в схеме после триггера D4.2 уже есть развязка D5.1 в виде инвертора с ОК.
Если так подходить к делу, то и триггер D4.2 вполне можно выкинуть - зачем вы его оставили? :wink:
Вот же человек пишет:
Xrust wrote:RPLY сначала формировал тоже как на схеме, затем выкинул триггер и запустил сигнал просто через повторитель.
А вот это хороший вопрос:
bk-m wrote:Регистры межпроцессорной связи чем могут помешать?
Я читал, что помешать они вполне могут. Именно поэтому и принял решение не обращаться к адресам портов.
Суть затеи в том, что мы искусственно формируем КОП NOP, но где гарантия, что из регистров, существующих
физически, считается именно КОП NOP, как и из регистров таймера?

И насчет таймера ещё:
Дамир "Адамыч" Насыров:
Есть системный таймер, но он без прерывания. Просто инкрементится число.
Причём говорят, что на разных БК может работать по разному. И ещё были какие-то военные БК. У них было прерывание на этом таймере. Но может это байка.
Alexander Lyovin:
по таймеру не байка
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: КР1801ВМ1

Post by Shaos »

Люди же сделали полный реверс ВМ1 - реверс показал, что полноценное прерывание от таймера есть в ВМ1Г (тот который с аппаратным умножением)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: КР1801ВМ1

Post by Lavr »

Гораздо интересней, как bk-m собирается пройтись чтением по регистрам таймера и регистрам
межпроцессорной связи, которые физически существуют, и считать из них всех код операции NOP,
который в микропроцессоре 1801ВМ1 даже не 00H, а 00A0H... :wink:
iLavr
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: КР1801ВМ1

Post by Shaos »

Крутые БК-демосценеры нашли багу в ВМ1 :)

https://habr.com/ru/post/471020/

P.S. Дамир "Адамыч" Насыров там тоже поучаствовал ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: КР1801ВМ1

Post by Lavr »

Shaos wrote:Крутые БК-демосценеры нашли багу в ВМ1 :)
Интересно, а в ВМ2 она не перекочевала? 8)

Хотя забавно... так вот начнёшь учиться кодить на древнем проце, а там ошибка, что моцк сломаешь... :roll:
Но я бы поступил иначе: если процессор почему-то не выполняет код так, как я его написал,
то я бы переписал код чуть иначе, чтобы обойти странную фичу.
В конце-концов, процессор "железный", его не исправишь, а софт - он "мягкий"... :lol:

А вот это просто-таки умилило:

Code: Select all

 регистры r0-r5 переименованы!):

; renamed registers
a   =   %0
b   =   %1
c   =   %2
d   =   %3
e   =   %4
h   =   %5
Помню, когда я начал изучать ассемблер КР1816ВЕ35, меня так бесили безликие r0-rХ супротив
AF, HL, DE, BC, что я эти также переименовал в ассемблере. И дело вдруг пошло!... :o
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: КР1801ВМ1

Post by Lavr »

Попался мне на просторах сети один документ по микропроцессору КР1801ВМ1, мне кажется, что
на нашем форуме этого материала не было.
proj_bk_1801vm1_vak.pdf
You do not have the required permissions to view the files attached to this post.
iLavr
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Re: КР1801ВМ1

Post by b2m »

Я даже знаю, откуда его изначально скачивают: http://vak.ru/doku.php/?idx=proj:bk
Там реально много полезной информации.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: КР1801ВМ1

Post by Shaos »

Вроде материалы от Сергея Вакуленко у нас тут приводились неоднократно
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: КР1801ВМ1

Post by Lavr »

Shaos wrote:Вроде материалы от Сергея Вакуленко у нас тут приводились неоднократно
Да, и причём весьма давно...
Ваку.PNG
Просто кто-то собрал материал по 1801ВМ1 в отдельную доку, что удобно, поэтому я её у нас и выложил.
Ну и коллега вон выше подтвердил, что известный здесь на форуме адресок он тоже помнит... :wink:
You do not have the required permissions to view the files attached to this post.
iLavr
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Re: КР1801ВМ1

Post by b2m »

Вот если бы этот кто-то все страницы с того сайта в виде архива PDF-ок оформил, вот это было бы дело. Чтобы одним файлом всё скачать.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: КР1801ВМ1

Post by Shaos »

Короче тут в телеге выяснился инетресный момент про поведение RPLY на ВМ1 - вот цитата с сайта Вакуленко:
Сигнал RPLY вырабатывается внешним устройством в ответ на сигнал DIN или DOUT и обозначает в первом случае, что данные установлены на магистрали, а втором случае — что данные приняты с магистрали.

Если сигнал RPLY от внешего устройства не поступил в течение 64 тактов, то микропроцессор переходит к обслуживанию внутреннего прерывания по ошибке обращения к системной магистрали. После поступления сиганла RPLY от внешего устройства микропроцессор считывает данные с магистрали и сбрасывает сигнал DIN. Если выполняется цикл “Запись”, то сигнал DOUT снимается через 300 нс и через 100 нс считываются данные с магистрали.

Внешнее устройство после сброса сигнала DIN или DOUT снимает сиганал RPLY, после чего микропроцессор снимает сигналы BSY и SYNC и может выполнять следующий цикл обращения к каналу.
Оказывается трап через 64 такта будет только если RPLY совсем не пришёл, а если пришёл, но не снялся - всё будет висеть вечно т.е. через RPLY можно по идее сделать пошаговую отладку!
Я тут за главного - если что шлите мыло на me собака shaos точка net