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

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

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

просто архитектура PDP-11 позволяет писать половинки слова (байты) независимо друг от друга - тогда учитывается нулевой сигнал адреса A0 (запись байта сигнализируется через WTBT)

причём вот тут люди пишут, что байт на самом деле выдаётся на обе половинки шины данных, просто по A0 надо выбирать какую собственно писать:

http://zx-pk.ru/printthread.php?t=18184&pp=40&page=49

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

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

Post by Lavr »

Shaos wrote:причём вот тут люди пишут,...
Да это и без людей нам было известно, как действует процессор в случае работы с отдельными байтами.
Мог бы сослаться на наш форум, на эту ветку PDP - в двух местах здесь это обсуждали,
просто лень и некогда ссылки сейчас искать.


P.S. Хотя даже если очень лениться, находится с пол-пинка. :wink:
Shaos wrote:...в документации на PDP-11 вычитал, что чтение всегда целым словом, а вот запись может быть как целым словом, так и отдельным байтом - в зависимости от состояния A0 пишется либо старший байт слова (при A0=0) либо младший (при A0=1), причём сразу в свою половинку.
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

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

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

Post by Lavr »

Shaos wrote:один и тот же байт подается на обе половинки ОДНОВРЕМЕННО
Вот именно у 1801ВМх ? Или у ретроспективно-мифической PDP-11?
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

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

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

Post by Lavr »

Shaos wrote:Да чото почитал внимательно тот топик - люди путаются в показаниях :)
Надо будет самим попробовать. 1801ВМ2 - он же статический, надо будет его пощупать
на макетке в пошаговом режиме.
Что я и хочу попробовать, а то - стыдоба! - не знаю ни один кондово-русский процессор... 8)
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Lavr wrote:Хотя в общем-то шибко радоваться еще рано, просто DLL корректно вошла в адресное
пространство ЕХЕ-файла, и он импортировал её функцию.
Посмотрим, как это всё дальше взаимодействовать будет, не упало бы в процессе... :-?
Ну вот и всё! Самый "грязный хак" во всей этой затее выполнен очень чисто! :lol:
Связка ЕХЕ-файла с внедренной в код DLL-библиотекой заработала чётко! :kruto:
dgidisp2.gif
Честно говоря, я сначала написал на С++ отдельный ЕХЕ-файл, который по всем
правилам вызвает эту DLL-библиотеку, посмотрел, как это выглядит в ассемблере,
а потом вписал это в код BK.EXE.

Но места мне там никто не готовил, поэтому 3 строчки исходного кода

Code: Select all

 .00405D99: 668B542440                   mov       dx,[esp][00040] //--- src Word
 .00405D9E: 66895658                     mov       [esi][00058],dx //--- в COVOX
 .00405DA2: E936FFFFFF                   jmp      .000405CDD       //--- выход switch
пришлось растянуть на NOP-хвосты других функций, благо компилятор ровняет всё
на параграфы...

Code: Select all

 .00405D99: 668B542440                   mov       dx,[esp][00040] //--- src Word
 .00405D9E: 52                           push      edx //--- передаем функции DLL
 .00405D9F: 90                           nop
 .00405DA0: 90                           nop
 .00405DA1: 90                           nop
 .00405DA2: E9FE000000                   jmp      .000405EA5 //--- на свободное место
    ...
 .00405EA5: E81B000000                   call     .000405EC8 //--- вызов ф-ции DLL
 .00405EAA: 5A                           pop       edx       //--- чистим стек
 .00405EAB: E92DFEFFFF                   jmp      .000405CDD //--- выход switch
    ...
 .00405EC5: 90                           nop
 .00405EC6: 90                           nop
 .00405EC7: 90                           nop
 .00405EC8: FF2578E94100                 jmp       disp;//--- injected.dll
 .00405ECE: 90                           nop
 .00405ECF: C3                           retn           //--- чисто подстраховка ;-)
Основной вывод в DLL-окне идёт сейчас в Caption. В клиентскую область - только если
нажать меню "Test".
Я напрочь забыл, что надо написать между этими двумя строчками,

Code: Select all

      case WM_PAINT:
           hdc = BeginPaint(hwnd, &ps);
           // ... ?
           EndPaint(hwnd, &ps);
      break;
чтобы клиентская область вовремя обновлялась, поэтому она затирается,
т.к. не стал я делать окно "всегда верхнего уровня".

Ну и скажу честно, г-н Мыщъх Касперски был не до конца искренен в своем
опусе "как склеить два файла"...
Пришлось самому покурить докуменацию:
https://kaimi.io/2011/09/pe-format-import/ - из кеша Google.
https://habrahabr.ru/post/266831/
иначе вызов ф-ции инжектированной DLL-ки всё ронял напрочь.

Кто б помог графику 7-сегментного индикатора написать? :wink:
А то мне "инжекция в код" все мозги выела! :-?
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Lavr wrote:Кто б помог графику 7-сегментного индикатора написать? :wink:
А то мне "инжекция в код" все мозги выела! :-?
Что-то интересная идея пришла мне в голову - не рисовать всё это, а просто печатать на форме
7-сегментным шрифтом, а то очень лениво грузить картинки в ресурсы, затевать все эти графические
контексты... битблиты и т.п. :-?

А 7-сегментные шрифты для Венды, оказывается, реально существуют! :o
https://ru.fonts2u.com/led.шрифт
led_font.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ВМ1

Post by Shaos »

и как же они отображают W или M? ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Shaos wrote:и как же они отображают W или M? ;)
А что, по ссылке совсем было лень посмотреть?
Вот так:
digital_ds_specimen.jpg
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Вот я посмеялся, дженльмены! :lol:
Начал я обдумывать, как обрабатывать коды клавиш этого отладочного модуля,
читаю, в тексте написано:
...индикационно–клавишное устройство «Электроника С5-2107»
Ну, думаю, надо загуглить, что это такое, чтобы увидеть хотя бы...

Гуглю... и вдруг нахожу великолепнейший экземпляр этой статьи: :o
В. В. Куклин, Н. М. Калинин, Ю. А. Бобров Отладочный модуль на базе
однокристального микропроцессора к1801ВМ1


Я прямо даже расстроился... думаю - зря старался, оцифровывал... набивал коды...
у них, наверно и прошивка точная есть... а я тут мучаюсь с её отладкой... :-?

Пошарил там... прошивки у них нет... пригляделся внимательно...
А это они мной оцифрованный вариант статьи
выложили и в HTML и в DOC !
:mrgreen:
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

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

Post by Shaos »

фейковый шрифт - нифига не 7-сегментный :mrgreen:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

Shaos wrote:фейковый шрифт - нифига не 7-сегментный :mrgreen:
Да какая разница? На дисплее будет как 7-сегментный выглядеть...
Это ж эмуляция, а шрифт её здорово упростит и сделает быстрой.

Я уже в Ворде попробовал - мне очень понравилось! :kruto:
Скачал еще парочку похожих шрифтов.
iLavr
bk-m
Writer
Posts: 19
Joined: 03 Jun 2013 11:22
Location: Минск

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

Post by bk-m »

(на сайте шрифт с названием "бледная поганка"" - сделайте стандарт-яркий ...
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

bk-m wrote:(на сайте шрифт с названием "бледная поганка"" - сделайте стандарт-яркий ...
Не нравится - не ешь... :lol:
Lavr wrote:читаю, в тексте написано:
..индикационно–клавишное устройство «Электроника С5-2107»
Ну, думаю, надо загуглить, что это такое, чтобы увидеть хотя бы...
А это, оказывается, вот что такое: любопытный девайс С5-2107 - пульт отладочный. (с) Sergei Frolov
c5-2107-1.gif
c5-2107-2.gif
Знакомест на индикаторе акурат 13 - как и в обсуждаемой статье.
То есть, авторы статьи пульта не делали, а заюзали уже готовый...

Хотя в статье они изобразили пульт вот так:
46c78b1f.png
You do not have the required permissions to view the files attached to this post.
iLavr