nedoPC.org

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



Reply to topic  [ 70 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Эмуляция КР580ВВ79 
Author Message
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
b2m wrote:
VituZz, я сделал таки ВВ79, качай новую версию эмулятора. Для примера добавил конфигурацию Calc.cfg, должна примерно соответствовать твоей железяке. Разве что, я ещё прерывания добавил, для проверки их формирования.

Скачал и попробовал. В целом, дело резко ускорилось. Но есть и вопросы.
1. Каким образом ты проходишь путь от *.asm до *.rom? Под Виндой я навскидку нашёл такой путь: блокнот - online assembler на твоём сайте - редактор кодов в Total commander (тут коды набираю вручную). В Линухе я бы просто накропал микроскопический сценарий, а как romы сделать в Винде?
2. В online-ассемблере на твоём сайте неплохо было бы иметь кнопочку "Save as..." для сохранения бинарника.
3. Если программным образом формируются временные интервалы, насколько будут они "эмулированные" соответствовать "железным"?
4. Не понял, как в дебагере начать программу с начальной точки.
5. Окошко эмулятора не закрывается по нажатию Alt+F4. Так и должно быть?
Может, где-то есть какое-нибудь руководство по эмулятору, чтобы я не задавал тут ненужных вопросов? Кроме ФАКа, я ничего не нашёл.
b2m wrote:
Точность эмуляции ВВ79 пока под вопросом. Но тут я надеюсь на твой feedback.

Пишу маленькую тестовую программку, отлаживаю в эмуляторе и потом перенесу в "железо". Тогда уж и озвучу результат.


Last edited by VituZz on 16 Mar 2012 09:07, edited 1 time in total.



15 Mar 2012 01:11
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Программку, которая позволяет проверить индикацию, уже отладил. Можно браться за кнопки... ;-)


15 Mar 2012 04:07
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
1. использую досовский кросс-ассемблер, который есть у меня на сайте
2. могу доделать нумерацию строк (0000: 0010: ...), тогда этот текст можно будет прямо в окне дампа вставлять. Можешь попробовать добавить вручную адреса - это работает.
3. если тактовая частота та же, то будут
4. установить регистр PC
5. да, мне уже и самому не нравится, что Alt и его комбинации можно использовать как клавиши эмулируемого компьютера. Хотя, для Alt+F4 можно сделать исключение.

Руководства нет, больная тема - программисты не любят писать документацию. :)

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


15 Mar 2012 04:59
Profile WWW
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
Кстати, по поводу кросс-ассемблера: можно использовать FASM, прецеденты уже были - http://shoorick.ho.ua/spec. Там в конце странички есть ссылка на пакет программирования (для Специалиста), который сделал shoorick. В него входят FASM, редактор WinAsm, и урезанная версия моего эмулятора. Редактор настоен так, что из него можно компилировать исходник и запускать его в эмуляторе.

Самое интересное, что FASM - это ассемблер x86, но у него очень удобный макро-процессор, так что включив в исходник заголовочный файл с мнемониками i8080, можно ассемблировать и для этого процессора. Есть версии FASM для всех широкораспространённых ОС.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


15 Mar 2012 23:32
Profile WWW
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Тестовая программка, отлаженная в эмуляторе, успешно заработала и в "железе". И позволила вычислить неисправную К555ИД7, из-за которой не светился крайний правый индикатор. Заодно вылез один интересный дефект КР580ГФ24 - после включения питания процессор стартовал не с нулевого адреса. Если же нажимать сброс после включения, то проц нормально стартует. Цепь сброса по входу ГФ - в норме. Замена ГФ нормализовала ситуацию. А две ГФ одного завода, года и месяца выпуска ведут себя вот так ненормально. Так что похоже дело в бракованной партии микросхем.
Ещё поиграюсь с тестовой программкой. Написание проги без подпрограмм (ОЗУ-то для стека ещё нет!) показалось мне занятным :).
b2m, спасибо за эмулятор. Если будет возможность и желание, приделай пожалуйста и кнопки.


Last edited by VituZz on 16 Mar 2012 05:48, edited 1 time in total.



16 Mar 2012 05:40
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
VituZz wrote:
Тестовая программка, отлаженная в эмуляторе, успешно заработала и в "железе".

А что за программка? Поделишься? :)
И насколько точно эмулируется ВВ79?

Я подправил online-ассемблер, теперь дамп оттуда можно прямо в окно отладчика вставлять.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


16 Mar 2012 05:46
Profile WWW
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Пока что отличий эмулятора от железки я не вижу, за исключением несущественного - при включении питания в ОЗУ индикации хранится хаотическая информация, светится произвольный набор сегментов. Причём он довольно постоянен (на 80% примерно) для одной и той же ВВ79 в каждом включении. Для другого экземпляра ВВ79 он другой. Твой же эмулятор при включении показывает все сегменты погашенными.

Тестовая программка примитивная, как в тестах АОНов. Сразу всё тушится, потом всё зажигается, потом поочерёдно зажигаются сегменты a, b, c - и так по кругу. Нужно добавить, наверное, ещё перебор знакомест. Ну, кто 15 лет назад делал или ремонтировал АОНы, тот помнит, о чём речь :). Программка, разумеется, не секрет, только кому нужна эта бабочка-однодневка?

Есть ещё задумки по тесту, заодно и попробую твой "обновлённый" ассемблер с отладчиком. Работа должна ещё больше упроститься.


16 Mar 2012 05:59
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
VituZz wrote:
Написание проги без подпрограмм (ОЗУ-то для стека ещё нет!) показалось мне занятным :).

Я тоже один раз писал тест ОЗУ для Башкирии-2М без использования ОЗУ. Оказалось, регистр стека SP не такой уж и бесполезный! Я использовал его как указатель на программу, похожую на шитый код форта. Т.е. примерно так:
Code:
  LXI SP, myProg
  RET

myProg:
  DW proc1
  DW proc2, param1, param2
  DW procJmp, myProg

proc1:
...
  RET

proc2:
  POP H ; первый параметр
  POP D ; второй параметр
...
  RET

procJmp:
  POP H
  SPHL
  RET

Таким образом можно писать достаточно сложные программы, при этом вложенность п/п будет не более одной. Жаль только регистров мало :) Например, если делаешь в программе цикл, то переменная цикла (регистр) больше нигде не должна меняться. Приходилось изобретать некие соглашения по написанию подпрограмм.

VituZz wrote:
Если будет возможность и желание, приделай пожалуйста и кнопки.

Кнопки есть. Раскладка в calc.kbd (enter, цифры и несколько букв).

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


16 Mar 2012 07:44
Profile WWW
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Попробовал эмулятор в Линухе под Wine. Окошко открывается, но остаётся чёрным, циферки не появляются. Хотя, к примеру, и РК-86, и "Орион", и "Спектрум" нормально выводят свои экраны. Так что до понедельника не смогу ничего поэмулировать ни в железе, ни программно - и железка на работе, и Винда только там.
Может, нужно добавлять в Wine какие-то библиотеки?
b2m wrote:
Оказалось, регистр стека SP не такой уж и бесполезный! Я использовал его как указатель на программу, похожую на шитый код форта.

У меня была похожая идея, но она не успела ещё сформироваться :). Так что возьму твой опыт на вооружение.
b2m wrote:
Кнопки есть. Раскладка в calc.kbd (enter, цифры и несколько букв).

На фотке ранее немного не такая раскладка:
Code:
0    3    6    9    C    F   .    ..
1    4    7    A    D Home  Up Enter
2    5    8    B    E Left Dwn Right

Верхний ряд кнопок соответствует нулевому выходу дешифратора строк, далее выходы 1 и 2. Первый столбец соответствует 0-му опросному входу (вывод 38).
Мне такая раскладка показалась более удобной по расположению кнопок курсора. Кнопки с точками - это я ещё не решил, что они будут делать. Может, типа F1 и F2 :).


Last edited by VituZz on 08 Apr 2012 04:43, edited 1 time in total.



16 Mar 2012 09:24
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
VituZz wrote:
Попробовал эмулятор в Линухе под Wine. Окошко открывается, но остаётся чёрным, циферки не появляются. Хотя, к примеру, и РК-86, и "Орион", и "Спектрум" нормально выводят свои экраны.

Ты хочешь сказать, что эмулятор работает под Wine??! Вот это новость! А мне люди говорили, что не работает. А какая у тебя версия Wine?

В отличие от других видео-формирователей, тут используется загрузка битмапов из файлов. Возможно .gif не грузится. Можно попробовать сконвертить его в .bmp и заменить имя файла в конфиге.

VituZz wrote:
На фотке ранее немного не такая раскладка

Ну вот примерно так и напиши в .kbd :)

Но в моём варианте раскладки кнопки-цифры (в том числе и 16-ричные) имеют свои родные коды, а тебе придётся перекодировку делать.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


16 Mar 2012 10:58
Profile WWW
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
b2m wrote:
А какая у тебя версия Wine?

1.0.1
Image
Дебагер тоже работает нормально.
b2m wrote:
Но в моём варианте раскладки кнопки-цифры (в том числе и 16-ричные) имеют свои родные коды, а тебе придётся перекодировку делать.

Имеется в виду, что цифре 0 соответствует код 00h, 1 - 01h и т.д.? Да, так вроде бы удобнее, но всё же удобство расположения клавиш и удобство их распайки для меня перевешивают :). Тем более, что процедура перекодировки здесь не займёт много времени и байтов, и в общем случае также нужна, если будут требоваться ASCII-коды.
b2m wrote:
Кнопки есть

Я почему-то решил, что они будут присутствовать на картинке... :)
В файлике .kbd написаны клавиши, которые нужно нажимать, чтобы имитировать нажатие соответствующей кнопки на железке?


Last edited by VituZz on 26 Nov 2013 05:52, edited 1 time in total.



16 Mar 2012 11:13
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
VituZz wrote:
В файлике .kbd написаны клавиши, которые нужно нажимать, чтобы имитировать нажатие соответствующей кнопки на железке?

Ну почти. Для каждой клавиши есть определённое имя, для букв и цифр они совпадают. Знаки тоже односимвольные, но я постоянно путаюсь, какой знак какой клавише соответствует :) Вроде изначально брал английскую раскладку (при нажатии без шифта), но всё равно интуитивностью не пахнет. А переделывать теперь лень - это-ж для каждого компьютера раскладку править! :) Вобщем, смотришь, какие имена встречаются в .kbd файлах, и используешь аналогично.

Обычно ряды задаются битовой маской, колонки читаются как нажатые клавиши (младший бит слева). Но есть возможность, когда вместо маски используется номер строки (это когда в конфиге данные считываются через idata, как в твоём случае).

VituZz wrote:
Я почему-то решил, что они будут присутствовать на картинке... :)

Ну дык возьми, да дорисуй, я копирайта на битмапы не ставил :) Главное, чтобы битмапы маски и картинки переднего плана и заднего фона имели одинаковый размер.

Кстати, в твоём конфиге картинка переднего плана (background[1]) совпадает с маской.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


17 Mar 2012 08:12
Profile WWW
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
b2m wrote:
Я тоже один раз писал тест ОЗУ для Башкирии-2М без использования ОЗУ. Оказалось, регистр стека SP не такой уж и бесполезный! Я использовал его как указатель на программу, похожую на шитый код форта. Т.е. примерно так:

С трудом разобрался, как работает этот механизм. Однако, такой нифига не программист, как я, точно никогда бы такого не придумал! Беру на вооружение... :)


18 Mar 2012 04:32
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
b2m wrote:
В отличие от других видео-формирователей, тут используется загрузка битмапов из файлов. Возможно .gif не грузится. Можно попробовать сконвертить его в .bmp и заменить имя файла в конфиге.

Сколько ни извращался, ничего не получается. Да и с чего бы это gifу не грузиться? Наверное, не в этом проблема. А нельзя ли видеовывод сделать по образу и подобию того, как это сделано для "Ориона"?


08 Apr 2012 09:09
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
Может попробуешь wine 1.2.2 или 1.3.0? Говорят, в этих версиях работает без проблем. Правда, всё ли...

Сделать можно всё, вопрос времени и желания. Битмапами можно любую индикацию сделать, а специальную индикацию каждый раз делать - накладно. Хотя, можно сделать конвертилку в какой-нибудь внутренний формат, а там уже - по образу и подобию Ориона сделать вывод... Я подумаю.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


08 Apr 2012 14:36
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 70 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

Who is online

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