Хочу написать свой эмулятор ПК-01 Львов на Delphi

Все об эмуляции ПК-01 "Львов" на современных платформах
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

liberation wrote:
MARAT_BEST wrote:LVOVulator_0_98_4_1.rar
Вот мой скромный багрепорт. Я обнаружил, что из-за масштабирования(?) окна эмулятора наблюдаются некоторые артефакты. К сожалению, я бездарно затер исходник своего изощренного теста (но он был в целом аналогичен предыдущему), зато сохранил один скриншот, который многое прояснит своим видом:
Суть проблемы: некоторые линии отображаются утолщенными. Если изменить размер экрана на родные 256*256, то спецэффект исчезает. Подозреваю, что проблема в нарушении кратности размера окна. Если верить скрину, то после запуска окно эмулятора имеет ширину 535 пкс.
все дело в функции GDI которая выводит увеличенную картинку, исправить такое можно только изменением размера окна, или переключением на стандартные режимы (скоро сделаю OpenGL версию, надеюсь там такого глюка не будет)
добавил в ассемблер автоматичекую вставку словей (ctrl+space) и изменение пути для созданных LVT...

ps пишу изменения в эмуле маленькими частями , так как не хватает времени .....
Attachments
LVOVulator_0_98_4_2.rar
(651.86 KiB) Downloaded 1256 times
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

еще в догонку
допишу чтобы сохранялся последний размер формы (чтобы все время не подгонять под себя)
при выходе из асс-ра спрашивал "что были изменения" и их нужно записать или нет

в конце ассемблероной программы можно ставить
JMP D7D9 :)
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by liberation »

MARAT_BEST wrote:ps пишу изменения в эмуле маленькими частями , так как не хватает времени .....
И у Вас здорово получается! Не успеваю просматривать свежие релизы. :D

У меня есть вопрос-пожелание, несколько наивный, возможно, просьба сильно не фукать.

Но сначала предыстория. Посколько я не знал как скоро будет исправлена "фича" с табуляцией в редакторе ассемблера (как потом оказалось - почти молниеносно), то решил произвести ряд смелых экспериментов. Собрал из исходников asm8080 (без каких-либо проблем), после чего решил погуглить какой редактор умеет подсвечивать синтаксис ассемблера i8080. Толком ничего не нашел, но попутно узнал, что обновился кроссплатформенный редактор для програмёров jEdit. Поставил, стал крутить-вертеть, как ВДРУГ обнаружилось, что он прекрасно раскрашивает синтаксис i8080! Я стал дальше копаться в настройках-плагинах, быренько сообразил небольшой скриптик, посредством которого прикрутил поддержку asm8080 к jEdit, скомпилил парочку примеров - фурычит, однако! Но тут выяснилось одно обстоятельство...

Дело в том, что LVOVulator поддерживает запуск из командной строки, но при каждом запуске стартует отдельный экземпляр приложения. И в этом некоторое неудобство. Не знаю, как это правильно сформулировать, но возможно ли реализовать one instance mode, когда при повторном запуске эмулятора он бы не открывал еще один экземпляр, а перезапускал бы существующий, но с новыми параметрами (можно в командную строку добавить ключ --restart, к примеру)?

UPD.
В нынешней версии поломалась компиляция в редакторе ассемблера. Все наглухо зависает...
Carthago delenda est, Carthaginem delendam esse
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

Новая версия,с поддержкой Open GL (для смены режима пока только перезапуск эмулятора, после изменения в настройках)
liberation wrote:В нынешней версии поломалась компиляция в редакторе ассемблера. Все наглухо зависает...
В ассемблере теперь все на английском, может поможет найти ошибку ...
liberation wrote:Дело в том, что LVOVulator поддерживает запуск из командной строки, но при каждом запуске стартует отдельный экземпляр приложения. И в этом некоторое неудобство. Не знаю, как это правильно сформулировать, но возможно ли реализовать one instance mode, когда при повторном запуске эмулятора он бы не открывал еще один экземпляр, а перезапускал бы существующий, но с новыми параметрами (можно в командную строку добавить ключ --restart, к примеру)?
исправил , добавил в настройках

ps
теперь буду выкладывать и на http://zx.pk.ru
Attachments
LVOVulator_0_98_5.rar
(646.43 KiB) Downloaded 1220 times
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by liberation »

MARAT_BEST wrote:В ассемблере теперь все на английском, может поможет найти ошибку ...
Поздравляю со значимым релизом! Изменения действительно радуют, хотя еще не все толком протестил. Но одна ошибка все-таки живее всех живых. Не работает ассемблер. Попытка скомпилить тестовый пример приводит к зависанию намертво. Никаких сообщений не появляется. У меня сложилось впечатление, что корень проблемы в том, что почему-то перестал создаваться файл temp.lvt. По крайней мере в директории Assembler я его не нахожу, вот ее содержимое после запуска компиляции (файлы ксоникса и пр. не перечисляю):

Code: Select all

asm.cmd
asm.exe
temp.asm
temp.bin
temp.hex
temp.lst
Это единственная бага, что я пока обнаружил. Но я буду стараться! :D
MARAT_BEST wrote:теперь буду выкладывать и на http://zx.pk.ru
Отлично! Надо было бы кинуть ссылку именно на эту тему, а не на сайт вообще, но это уже мелочи.
Carthago delenda est, Carthaginem delendam esse
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

liberation wrote:
MARAT_BEST wrote:В ассемблере теперь все на английском, может поможет найти ошибку ...
Поздравляю со значимым релизом! Изменения действительно радуют, хотя еще не все толком протестил. Но одна ошибка все-таки живее всех живых. Не работает ассемблер. Попытка скомпилить тестовый пример приводит к зависанию намертво. Никаких сообщений не появляется. У меня сложилось впечатление, что корень проблемы в том, что почему-то перестал создаваться файл temp.lvt. По крайней мере в директории Assembler я его не нахожу, вот ее содержимое после запуска компиляции (файлы ксоникса и пр. не перечисляю):

Code: Select all

asm.cmd
asm.exe
temp.asm
temp.bin
temp.hex
temp.lst
Это единственная бага, что я пока обнаружил. Но я буду стараться! :D
Что пишет внизу в окошечке ?
liberation wrote:
MARAT_BEST wrote:теперь буду выкладывать и на http://zx.pk.ru
Отлично! Надо было бы кинуть ссылку именно на эту тему, а не на сайт вообще, но это уже мелочи.
http://zx.pk.ru/showthread.php?t=22002

в этой версии что пишет ?

сделал смену видео режимов без перезагрузки :)
Attachments
Новая папка (2).part2.rar
(61.35 KiB) Downloaded 1177 times
Новая папка (2).part1.rar
(585.94 KiB) Downloaded 1205 times
Снимок.JPG
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by liberation »

MARAT_BEST wrote:Что пишет внизу в окошечке ?
С удовольствием процитирую себя же:
liberation wrote:Никаких сообщений не появляется.
:D

p.s.
Ссылку на эту тему надо было указывать на zx.pk.ru. :wink:

UPD.
Вот содержимое файлы asm.cmd от версии, когда все работало, оно несколько отличается от нынешнего:

Code: Select all

@echo off
cd E:\apps\LVOV~KUN\1\ASSE~TTK\
asm.exe -ltemp.lst E:\apps\LVOV~KUN\1\ASSE~TTK\temp.asm
move temp.bin temp.lvt
del temp.asm
del temp.hex
del asm.exe
del asm.cmd
exit
А вот нынешний .cmd:

Code: Select all

@echo off
cd E:\apps\LVOV~KUN\ASSE~TTK\
asm.exe -ltemp.lst E:\apps\LVOV~KUN\ASSE~TTK\temp.asm
move temp.lst E:\apps\LVOV~KUN\ASSE~TTK\temp.lst
move temp.bin E:\apps\LVOV~KUN\ASSE~TTK\temp.lvt
del temp.asm
del temp.hex
del asm.exe
del asm.cmd
exit
Так сказать, батник здорового человека и батник курильщика. :D
Carthago delenda est, Carthaginem delendam esse
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

liberation
Большое спасибо за тестирование !!!

Тогда у меня куча вопросов :roll:
1)я так понял это под wine ?

2)
liberation wrote:Что пишет внизу в окошечке ?

С удовольствием процитирую себя же:
liberation писал(а):
Никаких сообщений не появляется.
а в последней версии что пишет (которую я двумя архивами выложил)?

3)если не сложно пред , компиляцией попробуйте удалить все файлы из папочек
путь эмулятора\assembler\*.*
и тот который в настройках установлен для компиляции
после нажатия компиляции что в них появиться ?

4)какую кнопку нажимаете Compile или Compile and Run ( подсказка на кнопке) ?
liberation wrote:Вот содержимое файлы asm.cmd от версии, когда все работало, оно несколько отличается от нынешнего:
Код:
@echo off
cd E:\apps\LVOV~KUN\1\ASSE~TTK\
asm.exe -ltemp.lst E:\apps\LVOV~KUN\1\ASSE~TTK\temp.asm
move temp.bin temp.lvt
del temp.asm
del temp.hex
del asm.exe
del asm.cmd
exit


А вот нынешний .cmd:
Код:
@echo off
cd E:\apps\LVOV~KUN\ASSE~TTK\
asm.exe -ltemp.lst E:\apps\LVOV~KUN\ASSE~TTK\temp.asm
move temp.lst E:\apps\LVOV~KUN\ASSE~TTK\temp.lst
move temp.bin E:\apps\LVOV~KUN\ASSE~TTK\temp.lvt
del temp.asm
del temp.hex
del asm.exe
del asm.cmd
exit


Так сказать, батник здорового человека и батник курильщика.
отличие в том что сделал настраиваемую папку в меню :(
liberation wrote: MARAT_BEST писал(а):
теперь буду выкладывать и на http://zx.pk.ru

Отлично! Надо было бы кинуть ссылку именно на эту тему, а не на сайт вообще, но это уже мелочи.
не так понял :roll:

UPD
новая версия ехе, что в лог будет писать интересно?
должно быть:
Build.. или Build and run... в любом случае

а дальше в зависимости от кнопки либо:
Build..
Delete files begin .....
Del file Assembler\temp.lst
Del file Assembler\temp.lvt
Del done .....
Save in file ASM
Prepare compiler...
Compilation...
Good... C:\Assembler\temp.lvt
или
Build and run...
Delete files begin .....
Del file Assembler\temp.lst
Del file Assembler\temp.lvt
Del done .....
Save in file ASM
Prepare compiler...
Compilation...
Try to link the emulator...
Good... C:\Assembler\temp.lvt
Attachments
LVOVulator.rar
(626.71 KiB) Downloaded 1232 times
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

Пока тут нету Liberation , я решил у себя поэксперементировать
поставил Linux Mint
Wine (1.4)
Эмулятор запустился , все режимы работают, кроме дебагерра и ассемблера
при их открытии , виснет намертво ....
также не работает всплытие окна на передний план

Все таки это WINE глючит.
:(

up
еще глюк WINE ... при переходе на Opengl, затирается панель с кнопочками
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by liberation »

MARAT_BEST wrote:Пока тут нету Liberation , я решил у себя поэксперементировать
К сожалению, по техническим причинам вынужден выбыть из числа тестировщиков под Линуксом.
MARAT_BEST wrote:поставил Linux Mint
Так держать! :wink:
Carthago delenda est, Carthaginem delendam esse
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by liberation »

MARAT_BEST wrote:Wine (1.4)
Эмулятор запустился , все режимы работают, кроме дебагерра и ассемблера
при их открытии , виснет намертво ....
также не работает всплытие окна на передний план
еще глюк WINE ... при переходе на Opengl, затирается панель с кнопочками
Поставил себе вчера через PlayOnLinux свежий Wine 1.7.5. Да, перечисленные проблемы по-прежнему присутствуют, но вот дебаггер не виснет, этого нет. Ассемблер - увы. Но удалось единожды получить вразумительное сообщение об ошибке. К сожалению, текст дословно восстановить не могу, но приблизительно было так "... cannot create lvt file". Повторно получить сообщение не удалось. Что еще заметил... После принудительного закрытия ассемблера в процессах продолжает висеть asm.cmd.
Carthago delenda est, Carthaginem delendam esse
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by liberation »

У меня смелое предложение по улучшению функционала редактора ассемблера. А что, если сделать метки гиперссылками? К примеру, у нас есть переход JMP label1. Мы щелкаем на имени метки, после чего листинг прокручивается к точке объявления этой метки.

И только что пришла еще одна мысля. А можно ли прикрутить поиск к редактору?
Carthago delenda est, Carthaginem delendam esse
User avatar
MARAT_BEST
Posts: 341
Joined: 13 Feb 2012, 15:32
Location: Россия

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by MARAT_BEST »

liberation wrote:У меня смелое предложение по улучшению функционала редактора ассемблера. А что, если сделать метки гиперссылками? К примеру, у нас есть переход JMP label1. Мы щелкаем на имени метки, после чего листинг прокручивается к точке объявления этой метки.

И только что пришла еще одна мысля. А можно ли прикрутить поиск к редактору?
дельные рац предложения .... но пока вообще нет свободного времени для творчества :(
User avatar
liberation
Posts: 1405
Joined: 11 Aug 2008, 17:05
Location: Украина
Contact:

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by liberation »

Удалось кое-что новенькое накопать по багу с ассемблером под wine. Во-первых, проблему можно решить, просто сменив в настройках SetupAssembler параметр Path for save LVT and LST file. Нужно выбрать какую-нибудь иную директорию вместо дефолтной Assembler. К примеру, можно создать директорию Assembler1 и назначить ее целевой. Все заработает. Самое забавное, что если в качестве целевой создать и назначить директорию с именем "assembler", то все опять безнадежно поломается.

Заметил еще один тонкий момент. Если удалить исходную директорию Assembler, то редактор будет падать с ошибкой в модальном окошке "Cannot create file "%path%\temp.asm. Path not found.". Хотя целевая директория выбрана иная.

С правами на директории все в порядке.

Магию слова "assembler" пока никак объяснить не могу.

p.s.
Наш друг Zelya передает этот замечательный скриншот из MacOS. Эмулятор работает под wine 1.6, но имеет те же проблемы с ассемблером.
Image
Carthago delenda est, Carthaginem delendam esse
orest
Posts: 127
Joined: 27 Feb 2013, 19:57
Location: Львівщина

Re: Хочу написать свой эмулятор ПК-01 Львов на Delphi

Post by orest »

Основньіе фичи овулятора испьітаньі на прочность под линуксом (slackware). Весьма симпатичньій продукт, смею заметить, как-то сразу понравился. Но название все же стоить сменить на менее гинекологическое, имхо :)

Загрузка програм из репозитория - вообще киллер-фича. Мегаубойная вещь.

НО! Продукт требует некоторой доработки напильником, єто верно. Нижеследует нижеследующий список соображений:

1) Запуск редактора ассемблера: без папочки Assembler в рабочей директории запускаться отказьівается. Надо бьі автоматизировать.
2) Файл bios.dat все таки должен бьіть встроен в программу, с возможностью горячей заменьі из меню. Иначе при запуске вьіскакивает пренеприятнейшее окошко "Файло нот фаунд". Что єто за файл и где его искать - никто не говорит. Так ведь можна всех неизощренньих пользователей распугать :)
3) Редактор кода зависает наглухо при попьітке оттранслировать и запустить тестовую программу. Но ето какие-то кроссплатформенньіе непонятки. скорее всего.
Может можна редактор кода отдельной утилитой оформить, во избежание, тсзать?
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests