nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 29 Mar 2024 00:49



Reply to topic  [ 312 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11, 12, 13 ... 21  Next
Микро-ЭВМ на КМ1801ВМ2 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
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


08 Feb 2018 04:34
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22418
Location: Silicon Valley
Reply with quote
Режим HALT в MK85 активно используется - например оно туда попадает при нажатии на кнопку клавиатуры STOP :)

P.S. Вот что про него пишет Пётр:
Quote:
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

_________________
:dj: https://mastodon.social/@Shaos


08 Feb 2018 07:20
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Режим HALT в MK85 активно используется...

А что с сигналами в этом режиме? Вроде где-то читал, что Din, Dout в режим HALT перестают работать?
И вроде как прерывания вываливают 1801ВМ2 в режим HALT?...

_________________
iLavr


08 Feb 2018 09:37
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22418
Location: Silicon Valley
Reply with quote
Да всё тоже самое вроде как - разве что SEL ещё в нуль устанавливается при выдаче адреса - т.е. его можно использовать как дополнительный адресный бит, чтобы разделить адресные пространства USER и HALT

P.S. Ну и чуть больше команд доступно в HALT:
Code:
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

_________________
:dj: https://mastodon.social/@Shaos


08 Feb 2018 19:44
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Да всё тоже самое вроде как...

Ну а я вот читаю - и вижу некоторые отличия:
Attachment:
NoAddr.gif
NoAddr.gif [ 5.45 KiB | Viewed 6351 times ]

_________________
iLavr


09 Feb 2018 02:26
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22418
Location: Silicon Valley
Reply with quote
Безадресное чтение само по себе существует - независимо от режима HALT - например при старте таким образом читается SEL чтобы понять куда идти - при входе в HALT из SEL берётся часть вектора куда перескакивать - если там нули, то перескочит по адресу взятому из памяти по адресу #0078 (как в МК85)

_________________
:dj: https://mastodon.social/@Shaos


09 Feb 2018 02:39
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
А как аппаратно из режима HALT CPU может залезть в память режима USER?
Quote:
Особенностью данного микропроцессора является возможность работы в двух режимах: USER и HALT, каждому из которых соответствует своё адресное пространство. Режим USER предназначен для работы программ пользователя. Режим HALT предназначен для реализации программ начального пуска системы, пультового отладчика, эмуляции команд FIS и обработки фатальных ситуаций. Так как адресное пространство HALT может не пересекаться с адресным пространством USER, то это даёт возможность реализовать выше перечисленные программы не на микропрограммном уровне, а на программном, в результате чего достигается большая гибкость. Из режима работы HALT можно получить доступ к адресному пространству USER, а в режиме работы USER получить доступ к адресному пространству HALT средствами микропроцессора невозможно.

Я вот думаю, что Монитор, видимо, надо разместить в адресном пространстве HALT CPU 1801ВМ2,
но Монитор написан под 1801ВМ1, сможет ли он манипулировать памятью режима USER, или придется код править?

_________________
iLavr


09 Feb 2018 02:59
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22418
Location: Silicon Valley
Reply with quote
А кстати как оно получает доступ к USER пространству то?

P.S. Всё - нашёл как:


Attachments:
K1801VM2-HALR-USER.jpg
K1801VM2-HALR-USER.jpg [ 108.5 KiB | Viewed 6329 times ]

_________________
:dj: https://mastodon.social/@Shaos
09 Feb 2018 18:48
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22418
Location: Silicon Valley
Reply with quote
В тех командах, что я скопипастил ранее, это:

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 оно выдаётся при обработке этих команд)

_________________
:dj: https://mastodon.social/@Shaos


09 Feb 2018 18:50
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
... Соответственно код монитора придётся править, ...

Я вот думаю, как бы код Монитора НЕ править, а использовать с 1801ВМ2 так, как он работает
с 1801ВМ1, тем более, что Монитор оказался действительно перемещаемый.
Но задумался я вот о чем: а не вывалится ли 1801ВМ2 по случаю в этот самый режим HALT -
а там ничего (никакого ПО) нет?

_________________
iLavr


10 Feb 2018 03:27
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22418
Location: Silicon Valley
Reply with quote
Ну не подключай SEL как 16-й адресный сигнал - только и всего. Тогда адресные пространства USER и HALT будут совпадать...

_________________
:dj: https://mastodon.social/@Shaos


10 Feb 2018 03:32
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
vt wrote:
Мой минимальный контроллер двадцатилетней давности на 1801ВМ2 для коллекции )
Image

Кстати, мы как-то все не обратили внимания на эту схему с микропроцессором КМ1801ВМ2
(я лично из-за плохого качества графики схемы). :osad:
Но схему можно увеличить, и тогда становится видно, что в ней весьма оригинальное схемотехническое решение есть.
С 16-разрядным микропроцессором используется 8-битное ПЗУ с двумя защелками байт данных:
Attachment:
prostor1617.gif
prostor1617.gif [ 23.93 KiB | Viewed 6289 times ]

Еще бы автор прошивочку 556РТ4 выложил, если есть такая возможность. А то что-то не очень
понятно по схеме чем она управляет: надписи на входе в шину утрачены... :-?

_________________
iLavr


10 Feb 2018 14:21
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22418
Location: Silicon Valley
Reply with quote
Хм, интересный момент :)

Кстати надписей там и нет - оно насквозь похоже проходит к резисторам :)
И ответвления видно куда идут:
D0 на сигнал RPLY
D1 на вход OE этих двух регистров, защёлкнувших 2 байта с ПЗУ
D2 на вход OE регистров, читающих с IN0...IN15
D3 на вход C регистров, выводящих OUT0...OUT15 и на триггер, который формирует OE для тех же регистров

_________________
:dj: https://mastodon.social/@Shaos


10 Feb 2018 15:34
Profile WWW
Doomed

Joined: 25 Aug 2009 07:02
Posts: 459
Location: Москва
Reply with quote
Да, там в принципе из схемы все видно, прошивка не требуется. Стробируемый дешифратор, формирует RPLY, те самые стробы данных из буфера ПЗУ, из буфера IN и стробирует запись в буфер OUT. Упрощено до предела, дошло даже до того, что смешаны DIN и DOUT, т.е. все эти стробы возникают при активном одном из них. И задумка автора, похоже, была такая, что нет адресов, кроме ОЗУ, по которым возможно как чтение, так и запись. Из ПЗУ только чтение, из IN только чтение, в OUT только запись. Если не нарушать эти условия, то работать будет. Если записывать в IN или в ПЗУ, то будет конфликт на шине. Если прочитать из OUT, то туда что-то запишется, содержимое порушится.
Для спец применений еще как бы с натяжечкой проходит такой финт, но в целом не очень-то.


11 Feb 2018 03:32
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Mixa64 wrote:
Да, там в принципе из схемы все видно, прошивка не требуется. Стробируемый дешифратор, формирует RPLY...

Вобще-то RPLY вылезает на ЦПУ как раз из ПЗУ-ушки, и собственно, мне и интересно, как он там
сформирован.

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


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

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

_________________
iLavr


11 Feb 2018 04:18
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 312 posts ]  Go to page Previous  1 ... 7, 8, 9, 10, 11, 12, 13 ... 21  Next

Who is online

Users browsing this forum: hantarex, shiny and 10 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.