 |
nedoPC.orgElectronics hobbyists community established in 2002 |
 |
Author |
Message |
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Скачал и попробовал. В целом, дело резко ускорилось. Но есть и вопросы. 1. Каким образом ты проходишь путь от *.asm до *.rom? Под Виндой я навскидку нашёл такой путь: блокнот - online assembler на твоём сайте - редактор кодов в Total commander (тут коды набираю вручную). В Линухе я бы просто накропал микроскопический сценарий, а как romы сделать в Винде? 2. В online-ассемблере на твоём сайте неплохо было бы иметь кнопочку "Save as..." для сохранения бинарника. 3. Если программным образом формируются временные интервалы, насколько будут они "эмулированные" соответствовать "железным"? 4. Не понял, как в дебагере начать программу с начальной точки. 5. Окошко эмулятора не закрывается по нажатию Alt+F4. Так и должно быть? Может, где-то есть какое-нибудь руководство по эмулятору, чтобы я не задавал тут ненужных вопросов? Кроме ФАКа, я ничего не нашёл.
Пишу маленькую тестовую программку, отлаживаю в эмуляторе и потом перенесу в "железо". Тогда уж и озвучу результат.
Last edited by VituZz on 16 Mar 2012 09:07, edited 1 time in total.
|
15 Mar 2012 01:11 |
|
 |
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Программку, которая позволяет проверить индикацию, уже отладил. Можно браться за кнопки... 
|
15 Mar 2012 04:07 |
|
 |
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 834
|
1. использую досовский кросс-ассемблер, который есть у меня на сайте
2. могу доделать нумерацию строк (0000: 0010: ...), тогда этот текст можно будет прямо в окне дампа вставлять. Можешь попробовать добавить вручную адреса - это работает.
3. если тактовая частота та же, то будут
4. установить регистр PC
5. да, мне уже и самому не нравится, что Alt и его комбинации можно использовать как клавиши эмулируемого компьютера. Хотя, для Alt+F4 можно сделать исключение.
Руководства нет, больная тема - программисты не любят писать документацию. 
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
15 Mar 2012 04:59 |
|
 |
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 834
|
Кстати, по поводу кросс-ассемблера: можно использовать FASM, прецеденты уже были - http://shoorick.ho.ua/spec. Там в конце странички есть ссылка на пакет программирования (для Специалиста), который сделал shoorick. В него входят FASM, редактор WinAsm, и урезанная версия моего эмулятора. Редактор настоен так, что из него можно компилировать исходник и запускать его в эмуляторе.
Самое интересное, что FASM - это ассемблер x86, но у него очень удобный макро-процессор, так что включив в исходник заголовочный файл с мнемониками i8080, можно ассемблировать и для этого процессора. Есть версии FASM для всех широкораспространённых ОС.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
15 Mar 2012 23:32 |
|
 |
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Тестовая программка, отлаженная в эмуляторе, успешно заработала и в "железе". И позволила вычислить неисправную К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 |
|
 |
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 834
|
А что за программка? Поделишься?
И насколько точно эмулируется ВВ79?
Я подправил online-ассемблер, теперь дамп оттуда можно прямо в окно отладчика вставлять.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
16 Mar 2012 05:46 |
|
 |
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Пока что отличий эмулятора от железки я не вижу, за исключением несущественного - при включении питания в ОЗУ индикации хранится хаотическая информация, светится произвольный набор сегментов. Причём он довольно постоянен (на 80% примерно) для одной и той же ВВ79 в каждом включении. Для другого экземпляра ВВ79 он другой. Твой же эмулятор при включении показывает все сегменты погашенными.
Тестовая программка примитивная, как в тестах АОНов. Сразу всё тушится, потом всё зажигается, потом поочерёдно зажигаются сегменты a, b, c - и так по кругу. Нужно добавить, наверное, ещё перебор знакомест. Ну, кто 15 лет назад делал или ремонтировал АОНы, тот помнит, о чём речь  . Программка, разумеется, не секрет, только кому нужна эта бабочка-однодневка?
Есть ещё задумки по тесту, заодно и попробую твой "обновлённый" ассемблер с отладчиком. Работа должна ещё больше упроститься.
|
16 Mar 2012 05:59 |
|
 |
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 834
|
Я тоже один раз писал тест ОЗУ для Башкирии-2М без использования ОЗУ. Оказалось, регистр стека SP не такой уж и бесполезный! Я использовал его как указатель на программу, похожую на шитый код форта. Т.е. примерно так: Таким образом можно писать достаточно сложные программы, при этом вложенность п/п будет не более одной. Жаль только регистров мало  Например, если делаешь в программе цикл, то переменная цикла (регистр) больше нигде не должна меняться. Приходилось изобретать некие соглашения по написанию подпрограмм.
Кнопки есть. Раскладка в calc.kbd (enter, цифры и несколько букв).
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
16 Mar 2012 07:44 |
|
 |
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Попробовал эмулятор в Линухе под Wine. Окошко открывается, но остаётся чёрным, циферки не появляются. Хотя, к примеру, и РК-86, и "Орион", и "Спектрум" нормально выводят свои экраны. Так что до понедельника не смогу ничего поэмулировать ни в железе, ни программно - и железка на работе, и Винда только там.
Может, нужно добавлять в Wine какие-то библиотеки?
У меня была похожая идея, но она не успела ещё сформироваться  . Так что возьму твой опыт на вооружение.
На фотке ранее немного не такая раскладка:
Верхний ряд кнопок соответствует нулевому выходу дешифратора строк, далее выходы 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 |
|
 |
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 834
|
Ты хочешь сказать, что эмулятор работает под Wine??! Вот это новость! А мне люди говорили, что не работает. А какая у тебя версия Wine? В отличие от других видео-формирователей, тут используется загрузка битмапов из файлов. Возможно .gif не грузится. Можно попробовать сконвертить его в .bmp и заменить имя файла в конфиге.
Ну вот примерно так и напиши в .kbd
Но в моём варианте раскладки кнопки-цифры (в том числе и 16-ричные) имеют свои родные коды, а тебе придётся перекодировку делать.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
16 Mar 2012 10:58 |
|
 |
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
1.0.1  Дебагер тоже работает нормально. Имеется в виду, что цифре 0 соответствует код 00h, 1 - 01h и т.д.? Да, так вроде бы удобнее, но всё же удобство расположения клавиш и удобство их распайки для меня перевешивают  . Тем более, что процедура перекодировки здесь не займёт много времени и байтов, и в общем случае также нужна, если будут требоваться ASCII-коды.
Я почему-то решил, что они будут присутствовать на картинке...
В файлике .kbd написаны клавиши, которые нужно нажимать, чтобы имитировать нажатие соответствующей кнопки на железке?
Last edited by VituZz on 26 Nov 2013 05:52, edited 1 time in total.
|
16 Mar 2012 11:13 |
|
 |
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 834
|
Ну почти. Для каждой клавиши есть определённое имя, для букв и цифр они совпадают. Знаки тоже односимвольные, но я постоянно путаюсь, какой знак какой клавише соответствует  Вроде изначально брал английскую раскладку (при нажатии без шифта), но всё равно интуитивностью не пахнет. А переделывать теперь лень - это-ж для каждого компьютера раскладку править!  Вобщем, смотришь, какие имена встречаются в .kbd файлах, и используешь аналогично. Обычно ряды задаются битовой маской, колонки читаются как нажатые клавиши (младший бит слева). Но есть возможность, когда вместо маски используется номер строки (это когда в конфиге данные считываются через idata, как в твоём случае).
Ну дык возьми, да дорисуй, я копирайта на битмапы не ставил  Главное, чтобы битмапы маски и картинки переднего плана и заднего фона имели одинаковый размер.
Кстати, в твоём конфиге картинка переднего плана (background[1]) совпадает с маской.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
17 Mar 2012 08:12 |
|
 |
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
С трудом разобрался, как работает этот механизм. Однако, такой нифига не программист, как я, точно никогда бы такого не придумал! Беру на вооружение... 
|
18 Mar 2012 04:32 |
|
 |
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Сколько ни извращался, ничего не получается. Да и с чего бы это gifу не грузиться? Наверное, не в этом проблема. А нельзя ли видеовывод сделать по образу и подобию того, как это сделано для "Ориона"?
|
08 Apr 2012 09:09 |
|
 |
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 834
|
Может попробуешь wine 1.2.2 или 1.3.0? Говорят, в этих версиях работает без проблем. Правда, всё ли...
Сделать можно всё, вопрос времени и желания. Битмапами можно любую индикацию сделать, а специальную индикацию каждый раз делать - накладно. Хотя, можно сделать конвертилку в какой-нибудь внутренний формат, а там уже - по образу и подобию Ориона сделать вывод... Я подумаю.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
08 Apr 2012 14:36 |
|
|
Who is online |
Users browsing this forum: No registered users and 1 guest |
|
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
|
|