nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 14 Aug 2020 16:52



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

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Ну и планирую я его ассемблерный текст привести к виду, который бы компилировался в побитную копию.
А это не так просто, Монитор перемещаемый - почти всё на относительных смещениях...

Получился первый удобоваримый ассемблерный вариант, который собирается в точную побитную
копию оригинала Монитора.
Attachment:
MON1986.ASM [24.66 KiB]
Downloaded 501 times

При сборке со смещением о1000 все относительные смещения вычисляются правильно,
и далее полученный бинарный код перемещаем.
Собирал код вот этим КроссАссемблером, он добавляет в начале 4 байта для эмулятора БК-0010.
Сверял сборку побитно програмой fc (file compare) с опцией /b - бинарное сравнение.
Сравнивал с оригинальным кодом Монитора, который тоже на всякий случай прилагаю:
Attachment:
MONITOR_LH.zip [1.64 KiB]
Downloaded 138 times


На всякий случай - пометки в исходнике: '%%%' - посмотреть, что за число; '???' - это не совсем понятно.
Нашел все таблицы переходов (вычисляются сейчас при сборке правильно), нашел таблицы и значения
в тексте для 7-сегментных кодов.
Не нашел 7-сегментных кодов для комбинации 'HA':
Attachment:
dispHA.gif
dispHA.gif [ 8.05 KiB | Viewed 4083 times ]

Возможно, их делают не так прямолинейно, как остальные... :wink:

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

_________________
iLavr


10 Feb 2018 06:00
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
А у нас на форуме или еще где-либо есть удобочитаемая схема БК-шки?
Хотел глянуть кое-что, но везде только скан из её мануала на двух листах.

Погуглил сам, коли у нас на форуме, похоже, что нет их...
Но, видимо, их в более хорошем качестве и в принципе нет.

Скачал вот здесь, но опять то же самое - "скан из мануала на двух листах":
http://r-games.net/31517-shemy-bk-0010-01.html
http://r-games.net/31518-shemy-bk-0011m.html

В данный момент меня, собственно, интересует, как в схемах на микропроцессорах 1801ВМ1,2
был организован арбитраж обращения к Видео-ОЗУ.
Как это делается в схемах на К580ВМ80А я знаю, а вот со схемами на 1801ВМ1,2 надо разобраться.

И очень приятным бонусом вдруг обнаружилась схема "Электроники МС 0511 УКНЦ" на 1801ВМ2 ! :kruto:
http://forum.tslabs.info/viewtopic.php?f=34&t=778
Схема и сопутствующая документация очень хорошего качества, жаль только в "шинном" варианте...

И если кому интересно - фотографии "МС 0511 УКНЦ" с её описанием:
https://is000.livejournal.com/25799.html

_________________
iLavr


10 Feb 2018 08:33
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18779
Location: Silicon Valley
Reply with quote
А чо там 2 проца ВМ2 чтоли? :o

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


10 Feb 2018 14:07
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Да, процев КМ1801ВМ2 - там два:
Quote:
Центральный процессор выполняет задачи, определённые программами пользователя, а периферийный процессор выполняет логические функции контроллеров устройств ввода-вывода (клавиатуры, дисплея и др.), но его можно использовать и для запуска пользовательских задач.

Прямо как в твоей "Электронике-85"...

_________________
iLavr


10 Feb 2018 15:01
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18779
Location: Silicon Valley
Reply with quote
Lavr wrote:
Да, процев КМ1801ВМ2 - там два:
Quote:
Центральный процессор выполняет задачи, определённые программами пользователя, а периферийный процессор выполняет логические функции контроллеров устройств ввода-вывода (клавиатуры, дисплея и др.), но его можно использовать и для запуска пользовательских задач.

Прямо как в твоей "Электронике-85"...

Круто :mrgreen:

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


10 Feb 2018 16:26
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Lavr wrote:
А у нас на форуме или еще где-либо есть удобочитаемая схема БК-шки?
Но, видимо, их в более хорошем качестве и в принципе нет.

Нашел-таки хорошо отрисованную с оригинала схему БК-шки здесь:
Ремонт БК-0010 БК 0011 БК 0011М. [перерисовка СD-INC] :kruto:

Или прямая ссылка: Схема принципиальная "Электроника БК 0010 - 01"

_________________
iLavr


13 Feb 2018 10:56
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18779
Location: Silicon Valley
Reply with quote
Вот тут по-моему более читабельные схемы:

http://bk-files.perestoroniny.ru/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0%20%D0%91%D0%9A-0010%5B.01%5D,%20%D0%91%D0%9A-0011%5B%D0%9C%5D/%5B%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%20%D1%81%D1%85%D0%B5%D0%BC%D1%8B.%20%D0%9C%D0%BE%D0%BD%D1%82%D0%B0%D0%B6%D0%BD%D1%8B%D0%B5%20%D1%81%D1%85%D0%B5%D0%BC%D1%8B%5D/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%20%D1%81%D1%85%D0%B5%D0%BC%D1%8B%20%D0%91%D0%9A-0010/

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


14 Feb 2018 00:03
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Возможно, более крупные картинки, а так - те же самые:
Lavr wrote:
везде только скан из её мануала на двух листах.

А по этой ссылке: "Схема принципиальная "Электроника БК 0010 - 01"
схема отрисована заново, что я, собственно, и искал...

_________________
iLavr


18 Feb 2018 11:43
Profile
Doomed
User avatar

Joined: 05 Apr 2011 13:45
Posts: 490
Location: Великий Новгород
Reply with quote
Насчет устройства клавишного,

Кнопка П, не замыкает линию К4 на землю, Это отдельная кнопка в этом устройстве, у нее свой контакт и эту отдельную линию она замыкает на землю, Собственно это и есть сброс.
Вот в плохом качестве оригинал. Эти файлы у меня были с самого начала, просто никто не спрашивал, И не думал что кому то надо.
Image

Image

Все же надо добить эту схему в железе,
я так понял что монитор полностью рабочим оказался? и его можно заливать в РФ-ки?

_________________
танцуй пока живешь под каплями огненного дождя...


05 Dec 2019 15:18
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Случайность wrote:
я так понял что монитор полностью рабочим оказался? и его можно заливать в РФ-ки?
Я думаю, что Монитор полностью соответствует своей прошивке и он - рабочий.
Хотя нюансы неожиданные всегда могут быть, всё ж артефакт из 1986 года! :wink:

Я давно уже собирался выложить здесь этот пропатченный вариант эмулятора БК-0010
с .dll-эмуляцией индикатора с клавиатурой, которые обслуживают этот самый Монитор.
Attachment:
MonitorBK.gif
MonitorBK.gif [ 15.56 KiB | Viewed 1394 times ]

Но вся загвоздка была в том, что писал и тестировал я всё это под Windows 98
через функции Win-API, а это не всегда работает в Windows старших версий...

Сегодня решил проверить работу этой связки под Windows 7 и был просто очень озадачен! :roll:
Дело в том, что для отрисовки 7-сегментного индикатора я использовал специальный шрифт
LED.TTF, и попытка установить его в Windows 7 вызвала сообщение:
что этот файл «Не является правильным шрифтом Windows 7» :o
(возможно, не дословно, но как-то так...)
Attachment:
LED.zip [13.48 KiB]
Downloaded 53 times

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

Ну я попробовал, включил их (хотя, может, они и были включены), но положительного
результата это не принесло... :osad:
В общем, в полном недоумении я по поводу случившегося. :-?

_________________
iLavr


13 Jan 2020 17:37
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
для отрисовки 7-сегментного индикатора я использовал специальный шрифт
LED.TTF, и попытка установить его в Windows 7 вызвала сообщение:
что этот файл «Не является правильным шрифтом Windows 7» :o

Обидно, что именно этот самый LED.TTF, как у меня, раздают в Интернете просто-таки
на всех углах... к примеру, вот:
https://www.fontup.ru/fonts/9125/led.html
и никто не жалуется... :-?

Я его и сразу-то выбрал за бесплатность и широкую распространенность - есть откуда
скачать в случае чего.

_________________
iLavr


13 Jan 2020 20:01
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
для отрисовки 7-сегментного индикатора я использовал специальный шрифт
LED.TTF, и попытка установить его в Windows 7 вызвала сообщение:
что этот файл «Не является правильным шрифтом Windows 7» :o
Прочитал я килотонны "этих наших Интернетов", как пишут люди - "коллективного разума" и ничего полезного не нашел...
Особенно задолбал на всех углах совет "включить брендмауэр Windows", который относят аж к самой M$ ! :o
Забавно, что и вправду непонятно в Windows 7 когда включен брендмауэр Windows, а когда выключен. :-?
Когда его начинаешь "включать/выключать" (а у меня это одна опция), он пишет про какие-то настройки
и сети... :osad: Ну какие нафиг сети, когда ноутбук с Windows 7 у меня ни в какие сети не включен! :evil:

Решение оказалось простым, хоть я пол-дня и угробил... :-?
Если Windows 98 шрифт этот понимает и на него не жалуется:
Attachment:
LED98.gif
LED98.gif [ 13.3 KiB | Viewed 1373 times ]

Значит Windows 7 просто не нравится что-то в его оформлении, поэтому я решил прогнать
его через какой-либо конвертор. Их полно в онлайн варианте сейчас, но у меня успешно сработал
вот этот: https://www.font-converter.net/en

Честно говоря, первоначально я хотел конвертнуть .ttf в .otf, поскольку обратил внимание, что в Windows 7
большинство шрифтов именно такие. Но потом по предложению конвертора решил конвертнуть в несколько форматов,
в том числе и в сам .ttf. :wink:

Результат превзошел все ожидания! :kruto:
Attachment:
Led_7.gif
Led_7.gif [ 42.65 KiB | Viewed 1373 times ]

Кстати, Windows 7 безобразно тупа... :osad: Ну какие нафиг "французские булки", если в шрифте
нет кириллицы! :-?

Шрифт во всех современных форматах выкладываю:
Attachment:
LEDc.zip [40.74 KiB]
Downloaded 56 times

Он хороший, и он - БЕСПЛАТНЫЙ! А сейчас, как я начитался, и с авторскими правами на шрифты бывают проблемы! :mrgreen:

_________________
iLavr


14 Jan 2020 04:00
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Ну а дальше, собственно, случилось то, чего я и боялся, почему и не выкладывал код сразу,
как закончил этот проект... :osad:
Attachment:
error0xc0000005.gif
error0xc0000005.gif [ 13.8 KiB | Viewed 1348 times ]

Очень мне не хотелось, чтобы кто-то нарвался на это раньше меня... :-?

Ошибка 0xc0000005 - это "код выполняется в области данных", что, честно говоря, так и есть.
ЕХЕ-файл эмулятора был пропатчен кодом для взаимодействия с DLL.
И хотя я знал про это и старался не влезть в область данных, где-то всё же влез.

Windows 98 ещё прощает такие трюки, но старшие Винды к этому относятся строго.
Там этот механизм задействован на уровне ядра системы и самого процессора.

Пробовал под Windows 7 отключить предотвращение выполнение данных (DEP) для
этой программы - не спасло. :osad:
Это не единственный механизм в Windows 7, который отслеживает такую ситуацию.

Что ж... осталось попробовать под Windows ХР и Windows 10 - помотрю, как они
среагируют на некорректный хак. :-?

_________________
iLavr


14 Jan 2020 18:50
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
В общем, я подумал и решил поступить следующим образом: выложить всё "как есть",
потому как удивить всех панелью Монитора не было моей самоцелью, а хотел я
пригласить всех заинтересованных лиц на форуме попрактиковаться в программировании
на ассемблере микропроцессоров семейства 1801.
Attachment:
BK Emulator.rar [1.81 MiB]
Downloaded 57 times

На основе большого числа различных эмуляторов, которые я насобирал, я пришел
к выводу, что этот - наиболее подходящий.

Ну и мне хотелось, чтобы процесс был привычен и удобен всем, кто начинал с
этих наших "Специалистов" и "Микрош", с их директивми D, L, T и т.п.
К сожалению, встроенный монитор БК - упрощенный и не так удобен.
А вот Монитор с панелью управления по идеологии к этому очень близок.

Ну и сама по себе панель управления - наглядное устройство ввода-вывода,
а я очень люблю на ассемблере зажигать светодиоды и читать кнопки. :wink:

Ситуация усложняется тем, что на компьютерах с Windows XP, 7, 10 у меня нет
никаких средств разработки и отладки, и я не уверен, что изменю что-то в
ближайшее время, так что:
BK_M.EXE - эмулятор с панелью под Монитор, а если не заработает, то
BK.EXE - эмулятор оригинальный, он точно под Windows 7 работает! :kruto:

Также в архиве:
Injected.dll - эмулятор панели Монитора;
InjDLL.cpp - его исходный код;
InjHOW.cpp - как делается инжекция в чужой файл .ЕХЕ;
LED.ttf - 7-сегментный шрифт;

MON1986.ASM - исходный код Монитора с панелью управления;
MON1986.BIN - оригинал Монитора, который мы тут набирали;
MPSS_86_2.doc - статья из "МПСС", с которой всё и началось.

ASM.COM - простой ассемблер для микропроцессоров 1801;
ASM... - всё что нужно для него.

Писать программы лучше в привычной среде под Windows, компилировать этим ассемблером,
переносить в папку Bin и запускать в среде эмулятора БК.
Как это сделать по-быстрому: "Руководство по запуску.txt"
Отладчик в эмуляторе БК - свой собственный, хороший, "с блэкджэком и прочими ништяками". :lol:
Эмулятор БК 0010 new.rtf - справочный материал, по эмулятору БК.

В папке Bin - Mirage66000.bin - один из лучших отладчиков для БК, для тех,
кто любит эти наши директивы D, L, T... и хелп к нему - там же. :ewink:

В папке Docs - полезные материалы по БК, процессору 1801ВМ1 и программированию на его
ассемблере и Васике (иногда из-под него удобно что-либо проверить).

Отдельное спасибо автору этого замечательного эмулятора, за то, что он корректно работает
в Windows 98 (и не только), четко слушается моей виртуальной клавиатуры, и оказался весьма
удобным для сторонней инжекции в собственный код! :kruto:
Attachment:
DispBK.gif
DispBK.gif [ 24.3 KiB | Viewed 1340 times ]

_________________
iLavr


14 Jan 2020 23:31
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
.. а хотел я пригласить всех заинтересованных лиц на форуме попрактиковаться в программировании на ассемблере микропроцессоров семейства 1801.

В общем, есть некоторая прелесть в ассемблере этих процессоров! :kruto:

Вот, к примеру, заполнение области экрана словом:
Code:
    .=1000
;----------------------
    MOV #177777,R0       ;слово заполнения 0FFFFH
    MOV #40000,R1        ;начало экрана
    MOV #20000,R2        ;длина блока 37777 байт или 17777 слов
CYC:
    MOV R0,(R1)+       ; по адресу экрана сохраняем слово заполнения
                       ; сдвигаем указатель в экране на 2:  (R1)+
    SOB R2,CYC         ; уменьшаем счетчик слов, цикл пока не = 0
;----------------------

Я еще и задуматься толком не успел... а оно уже в две строчки получилось! :kruto:

_________________
iLavr


29 Jan 2020 04:33
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 270 posts ]  Go to page Previous  1 ... 14, 15, 16, 17, 18

Who is online

Users browsing this forum: No registered users and 2 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:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.