nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 02:20



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

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

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

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

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

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


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

Joined: 21 Oct 2009 08: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 11:37
Profile
Admin
User avatar

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

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


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

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

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

_________________
iLavr


19 Jan 2018 20:11
Profile
Admin
User avatar

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

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


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

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

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

_________________
iLavr


19 Jan 2018 21:47
Profile
Supreme God
User avatar

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

Ну вот и всё! Самый "грязный хак" во всей этой затее выполнен очень чисто! :lol:
Связка ЕХЕ-файла с внедренной в код DLL-библиотекой заработала чётко! :kruto:
Attachment:
dgidisp2.gif
dgidisp2.gif [ 10.15 KiB | Viewed 8769 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 21:59
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08: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 8760 times ]

_________________
iLavr


20 Jan 2018 03:09
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
и как же они отображают W или M? ;)

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


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

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

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

_________________
iLavr


20 Jan 2018 12:07
Profile
Supreme God
User avatar

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

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

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


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

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

_________________
iLavr


20 Jan 2018 14:02
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
фейковый шрифт - нифига не 7-сегментный :mrgreen:

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


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

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

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

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

_________________
iLavr


20 Jan 2018 14:16
Profile
Writer

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


20 Jan 2018 15:09
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08: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 8733 times ]
Attachment:
c5-2107-2.gif
c5-2107-2.gif [ 90.64 KiB | Viewed 8733 times ]

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

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

_________________
iLavr


20 Jan 2018 15:19
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 270 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 12 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.