Микро-ЭВМ на КМ1801ВМ2

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

Moderator: Shaos

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

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Lavr »

Shaos wrote:начну потихоньку собирать на паябельной макетке тестовый стенд КМ1801ВМ2...
А ты, кстати, разбирался, вот в этом твоём проекте:
Shaos wrote:Т36ВМ1-2 (КА1013ВМ1) это программируемая матрица в одном корпусе с ядром 1806ВМ2,
которое является CMOS-аналогом КМ1801ВМ2 (которого есть у меня ; ).
используется режим "пультового отладчика", или режим HALT 1801ВМ2 ?

А то я заканчиваю разбор программы-Монитора под 1801ВМ1, и что-то терзают меня смутные
сомнения, что для 1801ВМ2 в связи с наличием режима HALT придется внести в него некие правки,
а вот какие - мне пока не совсем ясно... :-?
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Режим HALT в MK85 активно используется - например оно туда попадает при нажатии на кнопку клавиатуры STOP :)

P.S. Вот что про него пишет Пётр:
The HALT mode can be entered in following ways:
  • execution of the HALT instruction
  • external interrupt signal (key STOP in the MK-85)
  • double bus error (failed execution of a trap due to memory error while saving PSW and PC)
  • execution of a FIS instruction - upon encountering such instruction the processor tests the bit 7 of the SEL register. If the bit is set, an illegal instruction trap is taken (vector at address $0008). Otherwise the processor enters the HALT mode through a vector at address consisting of the most significant byte of the SEL register and $08 in the least significant byte.
  • return from an interrupt to address greater than or equal $E000
When entering the HALT mode, the processor saves the previous PC and the PSW in special internal registers CPC and CPS (accessible in the HALT mode with instructions RCPC/RCPS and WCPC/WCPS), then the control passes to the HALT service routine through a vector in the ROM. The least significant byte of the vector address has fixed value of $78, while the most significant byte is determined by the SEL register.
http://pisi.com.pl/piotr433/mk85hwe.htm#modes
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Lavr »

Shaos wrote:Режим HALT в MK85 активно используется...
А что с сигналами в этом режиме? Вроде где-то читал, что Din, Dout в режим HALT перестают работать?
И вроде как прерывания вываливают 1801ВМ2 в режим HALT?...
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Да всё тоже самое вроде как - разве что SEL ещё в нуль устанавливается при выдаче адреса - т.е. его можно использовать как дополнительный адресный бит, чтобы разделить адресные пространства USER и HALT

P.S. Ну и чуть больше команд доступно в HALT:

Code: Select all

GO	$000A	PC <- CPC
PSW <- CPS	return to the USER mode
STEP	$000E	PC <- CPC
PSW <- CPS	function equivalent to GO, except that it disables the HALT mode interrupt for a single instruction cycle, used to single-step the program
RSEL	$0010	R0 <- SEL	read the SEL register, returns $0000 in the MK-85
MFUS	$0011	R0 <- (R5)+	pop from the stack location pointed to by the Frame Pointer
RCPC	$0012	R0 <- CPC	read the CPC register
RCPS	$0014	R0 <- CPS	read the CPS register
MTUS	$0019	-(R5) <- R0	push to the stack location pointed to by the Frame Pointer
WCPC	$001A	CPC <- R0	write the CPC register
WCPS	$001C	CPS <- R0	write the CPS register
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Lavr »

Shaos wrote:Да всё тоже самое вроде как...
Ну а я вот читаю - и вижу некоторые отличия:
NoAddr.gif
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Безадресное чтение само по себе существует - независимо от режима HALT - например при старте таким образом читается SEL чтобы понять куда идти - при входе в HALT из SEL берётся часть вектора куда перескакивать - если там нули, то перескочит по адресу взятому из памяти по адресу #0078 (как в МК85)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Lavr »

А как аппаратно из режима HALT CPU может залезть в память режима USER?
Особенностью данного микропроцессора является возможность работы в двух режимах: USER и HALT, каждому из которых соответствует своё адресное пространство. Режим USER предназначен для работы программ пользователя. Режим HALT предназначен для реализации программ начального пуска системы, пультового отладчика, эмуляции команд FIS и обработки фатальных ситуаций. Так как адресное пространство HALT может не пересекаться с адресным пространством USER, то это даёт возможность реализовать выше перечисленные программы не на микропрограммном уровне, а на программном, в результате чего достигается большая гибкость. Из режима работы HALT можно получить доступ к адресному пространству USER, а в режиме работы USER получить доступ к адресному пространству HALT средствами микропроцессора невозможно.
Я вот думаю, что Монитор, видимо, надо разместить в адресном пространстве HALT CPU 1801ВМ2,
но Монитор написан под 1801ВМ1, сможет ли он манипулировать памятью режима USER, или придется код править?
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

А кстати как оно получает доступ к USER пространству то?

P.S. Всё - нашёл как:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

В тех командах, что я скопипастил ранее, это:

MFUS $0011 R0 <- (R5)+ pop from the stack location pointed to by the Frame Pointer
MTUS $0019 -(R5) <- R0 push to the stack location pointed to by the Frame Pointer

Соответственно код монитора придётся править, т.к. чтобы вылезти за пределы своего адресного пространства, оно использует трюк с косвенным обращением через спец.инструкции (видимо на шину адреса без SEL оно выдаётся при обработке этих команд)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Lavr »

Shaos wrote:... Соответственно код монитора придётся править, ...
Я вот думаю, как бы код Монитора НЕ править, а использовать с 1801ВМ2 так, как он работает
с 1801ВМ1, тем более, что Монитор оказался действительно перемещаемый.
Но задумался я вот о чем: а не вывалится ли 1801ВМ2 по случаю в этот самый режим HALT -
а там ничего (никакого ПО) нет?
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Ну не подключай SEL как 16-й адресный сигнал - только и всего. Тогда адресные пространства USER и HALT будут совпадать...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re:минимальный контроллер на 1801ВМ2

Post by Lavr »

vt wrote:Мой минимальный контроллер двадцатилетней давности на 1801ВМ2 для коллекции )
Image
Кстати, мы как-то все не обратили внимания на эту схему с микропроцессором КМ1801ВМ2
(я лично из-за плохого качества графики схемы). :osad:
Но схему можно увеличить, и тогда становится видно, что в ней весьма оригинальное схемотехническое решение есть.
С 16-разрядным микропроцессором используется 8-битное ПЗУ с двумя защелками байт данных:
prostor1617.gif
Еще бы автор прошивочку 556РТ4 выложил, если есть такая возможность. А то что-то не очень
понятно по схеме чем она управляет: надписи на входе в шину утрачены... :-?
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Shaos »

Хм, интересный момент :)

Кстати надписей там и нет - оно насквозь похоже проходит к резисторам :)
И ответвления видно куда идут:
D0 на сигнал RPLY
D1 на вход OE этих двух регистров, защёлкнувших 2 байта с ПЗУ
D2 на вход OE регистров, читающих с IN0...IN15
D3 на вход C регистров, выводящих OUT0...OUT15 и на триггер, который формирует OE для тех же регистров
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mixa64
Doomed
Posts: 478
Joined: 25 Aug 2009 07:02
Location: Москва

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Mixa64 »

Да, там в принципе из схемы все видно, прошивка не требуется. Стробируемый дешифратор, формирует RPLY, те самые стробы данных из буфера ПЗУ, из буфера IN и стробирует запись в буфер OUT. Упрощено до предела, дошло даже до того, что смешаны DIN и DOUT, т.е. все эти стробы возникают при активном одном из них. И задумка автора, похоже, была такая, что нет адресов, кроме ОЗУ, по которым возможно как чтение, так и запись. Из ПЗУ только чтение, из IN только чтение, в OUT только запись. Если не нарушать эти условия, то работать будет. Если записывать в IN или в ПЗУ, то будет конфликт на шине. Если прочитать из OUT, то туда что-то запишется, содержимое порушится.
Для спец применений еще как бы с натяжечкой проходит такой финт, но в целом не очень-то.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Микро-ЭВМ на КМ1801ВМ2

Post by Lavr »

Mixa64 wrote:Да, там в принципе из схемы все видно, прошивка не требуется. Стробируемый дешифратор, формирует RPLY...
Вобще-то RPLY вылезает на ЦПУ как раз из ПЗУ-ушки, и собственно, мне и интересно, как он там
сформирован.

Так что если Вам "прошивка не требуется", то я бы её с интересом посмотрел, как раз на повод
формирования в ней RPLY...


P.S. Гадать на кофейной гуще мы все умеем, и делать реверсы не привыкать, но иногда интересно
посмотреть и оригинал, если есть на то возможность.
:wink:

P.P.S. Кстати, красивый финт, нигде такой не видел. Даже интересно - с 8086 такой трюк проскочит? 8)
С 16-разрядным микропроцессором используется 8-битное ПЗУ с двумя защелками байт данных:
iLavr