PC-01 Lviv
http://pc01.lviv.ua/forum/

Хочу написать свой эмулятор ПК-01 Львов на Delphi
http://pc01.lviv.ua/forum/viewtopic.php?f=12&t=193
Page 12 of 15

Author:  Zelya [ 26 Sep 2013, 11:33 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

По предложению Олега переделал скрипт на JSON. Теперь он выдает
Name - короткое уникальное названия латынскими буквами (так же называется папка и корень файла/ов)
FullName - полное название игры из игротеки
Description - описание
Mark - оценка, помноженная на два (т.е. 7 - это три с половиной звездочек).
Подойдет?

Author:  ivagor [ 26 Sep 2013, 11:36 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
и вопрос всем на засыпку, как прогнать тесть Exerciser на эмуляторе ?
Exercizer вызывает только 2 функции CP/M:
2 - Console Output
9 - Print String
Достаточно сделать их отработку и можно запускать оригинальный com файл (по окончанию переходит по адресу 0000). Речь ведь не о запуске на реале, а только в эмуляторе, можно не на экране печатать, а, например, сбрасывать в текстовой файл.

Author:  Zelya [ 26 Sep 2013, 12:40 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

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

Author:  MARAT_BEST [ 26 Sep 2013, 13:48 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
Скачал через эмуль игры с сайта, первая же Аэрокобра не работает - резетует комп, если ее запускать из меню "игры". Вторая, Аидс, пашет.
чет я накосячил, завтра посмотрю :roll: пока в настройках нужно поставить галочку Быстрый запуск и сброс

Author:  b2m [ 26 Sep 2013, 16:57 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
и поэтому к уважаемому b2m вопрос, что делает ваш эмулятор после загрузки бейсик файла ?
Эмулятор, как бы, вообще только компьютер эмулирует, и после того, как бейсик загрузит свой файл, он дальше и работает :)
У меня перехватывается обращение к п/п чтения байта с магнитофона, и вместо выполнения этой п/п в регистр просто подсовывается следующий байт из файла.

В вашем случае, адрес следующей строки можно самому устанавливать: байт 00 не может встречаться посреди бейсиковской строки, он означает конец строки.
Либо, как альтернатива, проверять корректность файла перед загрузкой.

Author:  MARAT_BEST [ 01 Oct 2013, 09:01 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
Скачал через эмуль игры с сайта, первая же Аэрокобра не работает - резетует комп, если ее запускать из меню "игры". Вторая, Аидс, пашет.
вроде поправил. добавил рейтинг (mark)
Quote:
В вашем случае, адрес следующей строки можно самому устанавливать: байт 00 не может встречаться посреди бейсиковской строки, он означает конец строки.
Либо, как альтернатива, проверять корректность файла перед загрузкой.
сделал пока вызов процедурки по адресу 1054

Новая версия, если есть возможность , пожалуйста протестируйте во всех режимах, на наличие всевозможных багов :roll:

Author:  liberation [ 02 Oct 2013, 21:31 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
Новая версия, если есть возможность , пожалуйста протестируйте во всех режимах, на наличие всевозможных багов :roll:
Не в струю, но напишу еще про одну багу под wine. Если открыть окно ассемблера и запустить на выполнение тестовый пример, то поначалу все будет работать отлично. До тех пор, пока не попробуешь перезапустить эмулятор. Дальше все становится интересно. Эмулятор перезапускается, окно ассемблера остается открытым, мы снова запускаем на выполнение тестовый пример - и все намертво виснет. Кулер гудит - ого-го! В принципе, причина явления ясна: не очищается директория Assembler, почему-то наличие временных файлов от прошлой компиляции валит все в штопор. Под ВинХП такой баг не воспроизводится. Лечение нахожу одно - вручную чистить директорию перед каждой компиляцией. Но это утомляет.

Кстати, а почему временные файлы не отправляются в папку temp? Вроде бы так логично было.

UPD.
Внесу уточнение по причине. Директория Assembler очищается от временных файлов, кроме файлов temp.lst и temp.lvt. И вся проблема в последнем. Его нужно удалять вручную перед каждой компиляцией. Иначе ассемблер зависает намертво. С temp.lst никаких проблем.

Author:  MARAT_BEST [ 04 Oct 2013, 02:26 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
Quote:
Новая версия, если есть возможность , пожалуйста протестируйте во всех режимах, на наличие всевозможных багов :roll:
Не в струю, но напишу еще про одну багу под wine. Если открыть окно ассемблера и запустить на выполнение тестовый пример, то поначалу все будет работать отлично. До тех пор, пока не попробуешь перезапустить эмулятор. Дальше все становится интересно. Эмулятор перезапускается, окно ассемблера остается открытым, мы снова запускаем на выполнение тестовый пример - и все намертво виснет. Кулер гудит - ого-го! В принципе, причина явления ясна: не очищается директория Assembler, почему-то наличие временных файлов от прошлой компиляции валит все в штопор. Под ВинХП такой баг не воспроизводится. Лечение нахожу одно - вручную чистить директорию перед каждой компиляцией. Но это утомляет.

Кстати, а почему временные файлы не отправляются в папку temp? Вроде бы так логично было.

UPD.
Внесу уточнение по причине. Директория Assembler очищается от временных файлов, кроме файлов temp.lst и temp.lvt. И вся проблема в последнем. Его нужно удалять вручную перед каждой компиляцией. Иначе ассемблер зависает намертво. С temp.lst никаких проблем.
попробуйте сейчас вроде поправил ..... :roll:

на данный момент пытаюсь , подправить по максимуму все режимы ....

нужно ли добавлять поддержку расширенного бейсика ?
сеть делать ? (для игр с двумя игроками)

вроде перевел все надписи, для англоязычных компутеров :wink:

зы. как думаете стоит выкладывать еще и на сайте http://zx.pk.ru/ ... не "славы" ради , а тестирования большим количеством людей?
сам понимаю, что тот же эмулятор EMU.exe круче.
мой возможно нафиг никому не нужен (про звук я вообще молчу)


Attachments:
LVOVulator_0_98_4.rar [599.03 KiB]
Downloaded 729 times

Author:  liberation [ 04 Oct 2013, 07:30 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
попробуйте сейчас вроде поправил ..... :roll:
Вау, заработало! Здорово! Спасибо большое. Тесная интеграция с приличным ассемблером - киллер-фича Вашего эмулятора!

Но есть тонкости. Для начала приведу скриншот, который о многом расскажет сам:

Image

Для теста я набрал простенькую процедуру:
Code:
BEGIN	EQU	8000h
	ORG	BEGIN-016h

	DB	"LVOV/2.0/"
	DB	0D0h
	DB	"PROBA1"
	DW	BEGIN
	DW	BEGIN+END-START
	DW	BEGIN

START:  MVI A, 00h
        OUT 0C2h
        LXI H, 4000h
        MVI B, 0FFh
        MVI A, 01h
LOOP2:  MVI C, 40h
LOOP1:  MOV M, A
        INX H
        DCR C
        JNZ LOOP1
        RLC
        DCR B
        JNZ LOOP2
        MVI A, 02h
        OUT 0C2h
        RET
END
С ее компиляцией и запуском проблем не возникло, но после окончания ее работы почему-то выпала ошибка "?SN ERROR", хотя казалось бы причем тут Лужко Бэйсик...

Еще я заметил неудобство: для ассемблера не работает табуляция, вместо этого происходит перенос фокуса между элементами формы. Это неприятно. Но я подозреваю, что это не эмулятора дефект, верно?

Радуют подсказки по командам ассемблера, но они неполны. Можно ли добавить описание влияния каждой команды на регистр флагов и продолжительность ее исполнения?

Еще одно предложение. Можно ли добавить выбор папки, куда следует сохранять готовые .lvt и .lst файлы?

Так, по ассемблеру вроде бы все. Теперь по дебаггеру, который step-by-step. Он удобен, но можно ли добавить подробное отображение регистра флагов (место на форме вроде бы достаточно)? Сейчас выводится просто hex-число, что не так уж и удобно для беглого просмотра.

Еще один момент. Дебаггер step-by-step не всегда запускается с первого нажатия на соответствующую кнопку. Возможно, это особенность работы под wine. И не всегда, кстати, прорисовывается окно дебаггера, вместо этого отображается чёрное окошко. Возможно, это опять проделки wine.

Теперь по эмулятору. Не переведен один пункт меню, который в секции "Advanced" следует сразу за "Assembler Editor". Как я понял, он отвечает за вставку из буфера обмена.

Кстати, а можно ли сделать кнопку "Assembler Editor" на приборной доске?
Quote:
нужно ли добавлять поддержку расширенного бейсика ?
сеть делать ? (для игр с двумя игроками)
Это как? Моего воображения не хватает, чтобы сообразить о чем идет речь. Особенно про сеть...
Quote:
зы. как думаете стоит выкладывать еще и на сайте http://zx.pk.ru/ ... не "славы" ради , а тестирования большим количеством людей?
сам понимаю, что тот же эмулятор EMU.exe круче.
мой возможно нафиг никому не нужен (про звук я вообще молчу)
Стоит. Тем более что эмулятор нашего дорогого Александра Станиславовича выпили оттуда напрочь плохие дядьки-бородачи. А природа, как известно, не терпит пустоты. :D

Если серьезно - стоит. Повторюсь, но интеграция с ассемблером (особенно с нынешним его компилятором) - это натуральная киллер-фича. Но все это следует хорошо описать и подать. Эмулятор хорош, но в нем еще есть огромный нереализованный потенциал. :wink:

p.s.
А хорошую, кстати, нагрузку дает эмуль на процессор даже в холостом режиме (~35% по htop). Это не ботнет какой злокозненный, случаем? :wink:

Author:  Zelya [ 04 Oct 2013, 10:28 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
Стоит. Тем более что эмулятор нашего дорогого Александра Станиславовича выпили оттуда напрочь плохие дядьки-бородачи. А природа, как известно, не терпит пустоты. :D
+100500
MARAT_BEST, на zx.pk довольно нетривиальная регистрация/авторизация. Если Вы еще не зареганы и возникнут пробелмы - дайте знать.

Author:  MARAT_BEST [ 05 Oct 2013, 03:58 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
Quote:
попробуйте сейчас вроде поправил ..... :roll:
Вау, заработало! Здорово! Спасибо большое. Тесная интеграция с приличным ассемблером - киллер-фича Вашего эмулятора!

Но есть тонкости. Для начала приведу скриншот, который о многом расскажет сам:
большое спасибо за тестирование !!!!
буду исправлять ...
Quote:
А хорошую, кстати, нагрузку дает эмуль на процессор даже в холостом режиме (~35% по htop). Это не ботнет какой злокозненный, случаем? :wink:
нет конечно :) .... в планах движок полностью переписать

Author:  MARAT_BEST [ 05 Oct 2013, 04:00 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
Quote:
Стоит. Тем более что эмулятор нашего дорогого Александра Станиславовича выпили оттуда напрочь плохие дядьки-бородачи. А природа, как известно, не терпит пустоты. :D
+100500
MARAT_BEST, на zx.pk довольно нетривиальная регистрация/авторизация. Если Вы еще не зареганы и возникнут пробелмы - дайте знать.
написал туда письмо на админов, жду ответа , если проигнорят .... дам знать :roll:

Author:  liberation [ 07 Oct 2013, 07:14 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Натолкнулся на программульку GNUSim8085 - ассемблер для 8085 процессора. Предлагаю посмотреть на ее интерфейс, все достаточно интересно организовано. На вид - удобно. Особенно понравилась возможность назначать клавиатурные сокращения отдельным командам ассемблера (KeyPad). Кстати, оригинальные ассемблеры для ПК-01 (Assembler-90 и Assembler-91 Текотева) поддерживали ввод только через шорткаты.

p.s.
Еще понравилась идея нумеровать строки листинга.

Author:  MARAT_BEST [ 09 Oct 2013, 09:00 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
Для теста я набрал простенькую процедуру:
Code:
BEGIN	EQU	8000h
	ORG	BEGIN-016h

	DB	"LVOV/2.0/"
	DB	0D0h
	DB	"PROBA1"
	DW	BEGIN
	DW	BEGIN+END-START
	DW	BEGIN

START:  MVI A, 00h
        OUT 0C2h
        LXI H, 4000h
        MVI B, 0FFh
        MVI A, 01h
LOOP2:  MVI C, 40h
LOOP1:  MOV M, A
        INX H
        DCR C
        JNZ LOOP1
        RLC
        DCR B
        JNZ LOOP2
        MVI A, 02h
        OUT 0C2h
        RET
END
С ее компиляцией и запуском проблем не возникло, но после окончания ее работы почему-то выпала ошибка "?SN ERROR"
тут все просто , программа пытается вернуться куда то , куда не знает :)
Quote:
Еще я заметил неудобство: для ассемблера не работает табуляция, вместо этого происходит перенос фокуса между элементами формы. Это неприятно. Но я подозреваю, что это не эмулятора дефект, верно?
поправил и номера строк сделал
Quote:
Радуют подсказки по командам ассемблера, но они неполны. Можно ли добавить описание влияния каждой команды на регистр флагов и продолжительность ее исполнения?

Еще одно предложение. Можно ли добавить выбор папки, куда следует сохранять готовые .lvt и .lst файлы?
в папке assembler сделал два файла help_ru.txt и help_en.txt, там можно поменять и дополнить

пока вообще времени мало ... извиняюсь :(
Quote:
Теперь по дебаггеру, который step-by-step. Он удобен, но можно ли добавить подробное отображение регистра флагов (место на форме вроде бы достаточно)? Сейчас выводится просто hex-число, что не так уж и удобно для беглого просмотра.
Еще один момент. Дебаггер step-by-step не всегда запускается с первого нажатия на соответствующую кнопку. Возможно, это особенность работы под wine. И не всегда, кстати, прорисовывается окно дебаггера, вместо этого отображается чёрное окошко. Возможно, это опять проделки wine.
добавлю чуть позже
у меня в винде вроде нормально :roll:
Quote:
Теперь по эмулятору. Не переведен один пункт меню, который в секции "Advanced" следует сразу за "Assembler Editor". Как я понял, он отвечает за вставку из буфера обмена.

Кстати, а можно ли сделать кнопку "Assembler Editor" на приборной доске?
исправил ...
Quote:
Quote:
нужно ли добавлять поддержку расширенного бейсика ?
сеть делать ? (для игр с двумя игроками)
Это как? Моего воображения не хватает, чтобы сообразить о чем идет речь. Особенно про сеть...
бейсик который с расширенными командами
сеть добавил(только начал вернее ), протестируйте коннеекты , я на виртуальнике тестировал
смысл такой чтобы передавать нужные ячейки памяти по сети, для игр которые для двоих
Quote:
А хорошую, кстати, нагрузку дает эмуль на процессор даже в холостом режиме (~35% по htop). Это не ботнет какой злокозненный, случаем? :wink:
он все время работает, так как GDI в принципе и грузит. Не делал что при простое (потере фокуса) эмулятор на паузу становился ...
Quote:
на zx.pk довольно нетривиальная регистрация/авторизация. Если Вы еще не зареганы и возникнут пробелмы - дайте знать.
прислали письмо, я выслал свои данные , пока ответа нет.....

ps. меняю направление своей работы (там где на еду зарабатываю :mrgreen: ), по этому времени катастрофически не хватает ....
но надеюсь , уже скоро перейду на opengl, directx3d ...
избавлюсь от тормозного таймера

Attachments:
LVOVulator_0_98_4_1.rar [615.61 KiB]
Downloaded 678 times

Author:  liberation [ 11 Oct 2013, 06:02 ]
Post subject:  Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Quote:
LVOVulator_0_98_4_1.rar
Вот мой скромный багрепорт. Я обнаружил, что из-за масштабирования(?) окна эмулятора наблюдаются некоторые артефакты. К сожалению, я бездарно затер исходник своего изощренного теста (но он был в целом аналогичен предыдущему), зато сохранил один скриншот, который многое прояснит своим видом:

Image

Суть проблемы: некоторые линии отображаются утолщенными. Если изменить размер экрана на родные 256*256, то спецэффект исчезает. Подозреваю, что проблема в нарушении кратности размера окна. Если верить скрину, то после запуска окно эмулятора имеет ширину 535 пкс.

Page 12 of 15 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/