nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 20 Aug 2018 14:35



Reply to topic  [ 263 posts ]  Go to page Previous  1 ... 12, 13, 14, 15, 16, 17, 18  Next
Отладочный модуль на К1801ВМ1 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16843
Location: Colorado
Reply with quote
просто архитектура PDP-11 позволяет писать половинки слова (байты) независимо друг от друга - тогда учитывается нулевой сигнал адреса A0 (запись байта сигнализируется через WTBT)

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

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

а читается всегда словами (т.е. A0 игнорируется)

_________________
:eugeek: https://twitter.com/Shaos1973


19 Jan 2018 09:37
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
причём вот тут люди пишут,...

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


P.S. Хотя даже если очень лениться, находится с пол-пинка. :wink:
Shaos wrote:
...в документации на PDP-11 вычитал, что чтение всегда целым словом, а вот запись может быть как целым словом, так и отдельным байтом - в зависимости от состояния A0 пишется либо старший байт слова (при A0=0) либо младший (при A0=1), причём сразу в свою половинку.

_________________
iLavr


19 Jan 2018 12:37
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16843
Location: Colorado
Reply with quote
но я не знал (и это нигде небыло описано), что один и тот же байт подается на обе половинки ОДНОВРЕМЕННО :)
а люди экспериментально поглядели и описали ;)

_________________
:eugeek: https://twitter.com/Shaos1973


19 Jan 2018 19:18
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
один и тот же байт подается на обе половинки ОДНОВРЕМЕННО

Вот именно у 1801ВМх ? Или у ретроспективно-мифической PDP-11?

_________________
iLavr


19 Jan 2018 21:11
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16843
Location: Colorado
Reply with quote
Да чото почитал внимательно тот топик - люди путаются в показаниях :)
На каких-то процах у них нолики идут на неправильный байт (на шине единички)

_________________
:eugeek: https://twitter.com/Shaos1973


19 Jan 2018 22:25
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Да чото почитал внимательно тот топик - люди путаются в показаниях :)

Надо будет самим попробовать. 1801ВМ2 - он же статический, надо будет его пощупать
на макетке в пошаговом режиме.
Что я и хочу попробовать, а то - стыдоба! - не знаю ни один кондово-русский процессор... 8)

_________________
iLavr


19 Jan 2018 22:47
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Хотя в общем-то шибко радоваться еще рано, просто DLL корректно вошла в адресное
пространство ЕХЕ-файла, и он импортировал её функцию.
Посмотрим, как это всё дальше взаимодействовать будет, не упало бы в процессе... :-?

Ну вот и всё! Самый "грязный хак" во всей этой затее выполнен очень чисто! :lol:
Связка ЕХЕ-файла с внедренной в код DLL-библиотекой заработала чётко! :kruto:
Attachment:
dgidisp2.gif
dgidisp2.gif [ 10.15 KiB | Viewed 1079 times ]

Честно говоря, я сначала написал на С++ отдельный ЕХЕ-файл, который по всем
правилам вызвает эту DLL-библиотеку, посмотрел, как это выглядит в ассемблере,
а потом вписал это в код BK.EXE.

Но места мне там никто не готовил, поэтому 3 строчки исходного кода
Code:
 .00405D99: 668B542440                   mov       dx,[esp][00040] //--- src Word
 .00405D9E: 66895658                     mov       [esi][00058],dx //--- в COVOX
 .00405DA2: E936FFFFFF                   jmp      .000405CDD       //--- выход switch

пришлось растянуть на NOP-хвосты других функций, благо компилятор ровняет всё
на параграфы...
Code:
 .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:
      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:
А то мне "инжекция в код" все мозги выела! :-?

_________________
iLavr


19 Jan 2018 22:59
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Кто б помог графику 7-сегментного индикатора написать? :wink:
А то мне "инжекция в код" все мозги выела! :-?

Что-то интересная идея пришла мне в голову - не рисовать всё это, а просто печатать на форме
7-сегментным шрифтом, а то очень лениво грузить картинки в ресурсы, затевать все эти графические
контексты... битблиты и т.п. :-?

А 7-сегментные шрифты для Венды, оказывается, реально существуют! :o
https://ru.fonts2u.com/led.шрифт
Attachment:
led_font.gif
led_font.gif [ 1.79 KiB | Viewed 1070 times ]

_________________
iLavr


20 Jan 2018 04:09
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16843
Location: Colorado
Reply with quote
и как же они отображают W или M? ;)

_________________
:eugeek: https://twitter.com/Shaos1973


20 Jan 2018 11:38
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
и как же они отображают W или M? ;)

А что, по ссылке совсем было лень посмотреть?
Вот так:
Attachment:
digital_ds_specimen.jpg
digital_ds_specimen.jpg [ 35.48 KiB | Viewed 1057 times ]

_________________
iLavr


20 Jan 2018 13:07
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Вот я посмеялся, дженльмены! :lol:
Начал я обдумывать, как обрабатывать коды клавиш этого отладочного модуля,
читаю, в тексте написано:
Quote:
...индикационно–клавишное устройство «Электроника С5-2107»

Ну, думаю, надо загуглить, что это такое, чтобы увидеть хотя бы...

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


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

Пошарил там... прошивки у них нет... пригляделся внимательно...
А это они мной оцифрованный вариант статьи
выложили и в HTML и в DOC !
:mrgreen:

_________________
iLavr


20 Jan 2018 15:02
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16843
Location: Colorado
Reply with quote
фейковый шрифт - нифига не 7-сегментный :mrgreen:

_________________
:eugeek: https://twitter.com/Shaos1973


20 Jan 2018 15:07
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
фейковый шрифт - нифига не 7-сегментный :mrgreen:

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

Я уже в Ворде попробовал - мне очень понравилось! :kruto:
Скачал еще парочку похожих шрифтов.

_________________
iLavr


20 Jan 2018 15:16
Profile
Writer

Joined: 03 Jun 2013 12:22
Posts: 15
Location: Минск
Reply with quote
(на сайте шрифт с названием "бледная поганка"" - сделайте стандарт-яркий ...


20 Jan 2018 16:09
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
bk-m wrote:
(на сайте шрифт с названием "бледная поганка"" - сделайте стандарт-яркий ...
Не нравится - не ешь... :lol:

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

А это, оказывается, вот что такое: любопытный девайс С5-2107 - пульт отладочный. (с) Sergei Frolov
Attachment:
c5-2107-1.gif
c5-2107-1.gif [ 64.8 KiB | Viewed 1043 times ]
Attachment:
c5-2107-2.gif
c5-2107-2.gif [ 90.64 KiB | Viewed 1043 times ]

Знакомест на индикаторе акурат 13 - как и в обсуждаемой статье.
То есть, авторы статьи пульта не делали, а заюзали уже готовый...

Хотя в статье они изобразили пульт вот так:
Attachment:
46c78b1f.png
46c78b1f.png [ 29.67 KiB | Viewed 1042 times ]

_________________
iLavr


20 Jan 2018 16:19
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 263 posts ]  Go to page Previous  1 ... 12, 13, 14, 15, 16, 17, 18  Next

Who is online

Users browsing this forum: No registered users and 0 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.