PC-01 Lviv

It is currently 28 Mar 2024, 17:54

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 215 posts ]  Go to page Previous 19 10 11 12 1315 Next
Author Message
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 04 Aug 2012, 15:13 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
Что-то и мне тоже так кажется :)
Я, например, так уж исторически сложилось, не пользуюсь Дельфями. И ставить их, без особой нужды, вряд-ли буду. Поэтому помочь могу, в данном случае, только теоретически.
Спасибо и на том !


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 04 Aug 2012, 15:16 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Вообще-то модуль можно и к Си прикручивать... или нельзя!?.. но этого тоже никто не пробовал либо не захотел пробовать.... и мне никто ничего не сказал...

Вообщем, захотите...
http://sas.forumbb.ru/viewtopic.php?id=290#p2104


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 04 Aug 2012, 19:46 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
Вообще-то модуль можно и к Си прикручивать... или нельзя!?..
конечно можно, там fastcall. всё стандартное, вопросы, если возникнут, то только с совместным использованием системных API (tls, heap и т.п.).
Quote:
но этого тоже никто не пробовал либо не захотел пробовать....
в своё время все уже "напробовались" (по крайней мере я так точно), проблемы подключить чужой код даже с нестандартным ABI (или форматами представления) у меня никогда не было. (hint: гуглить "user mode loader")


p.s. у меня винт рабочий пошабашил....

а вообще, тебе b2m всё верно расписал, так оно и есть. Если хочешь - сгенерирую текстовую трассу (на форум я достаточно выложил, чтобы "собрать требуемое"). Да, и ещё, есть тесты процессора, прогонял ? (я один тут выкладывал скомпилированным в lvt). Тесты на твоём модуле проходят без ошибок ?

p.p.s. Вот тебе "сухой прогон" ПЗУ
Attachment:
dry_run.zip [8.5 KiB]
Downloaded 692 times
Точки останова на всей памяти, после срабатывания снимаются. (т.е. на каждой команде точка останова срабатывает только 1 раз). добейся совпадения листинга у себя, на своём модуле.

p.3.s. я удивлён, что всей загрузки машины всего 790 команд..... мнда.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 04 Aug 2012, 21:01 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
sadfsdfsdaf,
С файлом Test.zip я вообще не понял чего делать?!!?...
А вот dry_run.zip, пожалуй возникла идея...
Спасибо!


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 04 Aug 2012, 21:36 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
С файлом Test.zip я вообще не понял чего делать?!!?...
1) запустить на выполнение test.lvt
2) пройти руками "по шагам"
3) варианта только 2, CPUER или CPUOK

листинг с адресами там есть (test.lst), ты ещё спрашивал - зачем он нужен и какого формата, вот - иди по нему и сверяйся.
8597 - всё плохо, 85A9 - тест ошибок не обнаружил.
в какой точке произошёл переход на 8597 - там и неверная эмуляция - в комментарии всё расписано.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 05 Aug 2012, 06:02 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
Quote:
С файлом Test.zip я вообще не понял чего делать?!!?...
1) запустить на выполнение test.lvt
2) .................
Подожди... не газуй!.. :-)
Открывать чем?... "Башкирией"?...
открываю я "Башкирией" test.lvt он его грузит и появлется окно "Открыть" словно ждет другую часть программы.....
Что дальше?... Или у тебя оно по другому?..
Image


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 05 Aug 2012, 16:18 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
Подожди... не газуй!.. :-)
Открывать чем?... "Башкирией"?
а зачем? у Башкирии всё и так хорошо :-) открывать твоим дельфийским модулем.
файл test.lvt получился короче, чем в описателе. мой эмулятор его открывал (игнорировав отсутствие данных), а остальные проверяли на строгое соответствие заявленному размеру.

Причина в следующем - вот эти байты (после строки 817), ассемблер их не включил в готовый образ.
Code:
   817 85B2             TEMPP:  DW      TEMP0   ;POINTER USED TO TEST "LHLD","SHLD",
            B485
                                                ; AND "LDAX" INSTRUCTIONS
                        ;
   820 85B4             TEMP0:  DS      1       ;TEMPORARY STORAGE FOR CPU TEST MEMORY LOCATIONS
   821 85B5             TEMP1:  DS      1       ;TEMPORARY STORAGE FOR CPU TEST MEMORY LOCATIONS
   822 85B6             TEMP2   DS      1       ;TEMPORARY STORAGE FOR CPU TEST MEMORY LOCATIONS
   823 85B7             TEMP3:  DS      1       ;TEMPORARY STORAGE FOR CPU TEST MEMORY LOCATIONS
   824 85B8             TEMP4:  DS      1       ;TEMPORARY STORAGE FOR CPU TEST MEMORY LOCATIONS
   825 85B9             SAVSTK: DS      2       ;TEMPORARY STACK-POINTER STORAGE LOCATION
                        ;
                        ;
                        ;
            86 B2       STACK   EQU     TEMPP+256       ;DE-BUG STACK POINTER STORAGE AREA
                        ;
                        END:
Откорректируй размер заголовка.
Code:
Сравнение файлов TEST.OLD и TEST.LVT
00000012: BB B3
Впрочем, я честно не понимаю проблемы, особенно если грузить код руками в отладочном режиме, игнорируя заголовок.

Да, есть ещё один нюанс (тоже не относящийся к делу), Emulators3000 игнорирует команду HLT (поэтому на втором скриншоте ?SN ERROR).

P.S. Процитируем классиков марксизма-ленинизма:
Но если уж говорить о лени как о пороке, то, пожалуй, самая страшная ее разновидность - это леность ума.


Attachments:
test.png
test.png [ 34.77 KiB | Viewed 7447 times ]
Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 24 Aug 2012, 14:19 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Тут неоднократно поднималась тема про эмуляцию флагов процессора, и как раз сегодня я обнаружил материал на эту тему [Расчет флагов].

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 24 Aug 2012, 15:20 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
как раз сегодня я обнаружил материал на эту тему
Спасибо ! Рассмотрю! но позже ! Я пока с проектом DprToLvt - тайм-аут где-то до 15 сентября...


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 06 Sep 2012, 19:59 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Уважаемый создатель эмулятора «Башкирия» (т.е. это тот который b2m :-) ) а также другие опытные пользователи эмулятора «Башкирия»: Имеется ли возможность настроить этот эмулятор так чтобы остановка (breakpoint)выполнения программы (т.е. в моем случае загрузки ПЗУ) производилась в зависимости от состояния регистров процессора? Мне это очень необходимо для сравнения работы ПЗУ моего эмулятора и других эмуляторов.
К примеру, у меня это так:
………..
if
(GetRgPSW=$066a) and
(GetrRgBC=$5a6a) and
(GetRgDE=$80cc) and
(GetRgHL=$80c0) and
(GetRgSP=$bf71) and
(GetRgPC=$814e)
then begin //SetRgPC($E9af);
RegisterView;
SetRegisterView(True);

end;
……
Проверка моего ПЗУ показала что у меня сбой идет где-то при начале объемной прорисовки «ПК-01»…

Существует ли толковая документация по реализации портов ввода-вывода?.. что куда входит и выходит и в зависимости от чего, какие цвета как устанавливаюся и т.д. ?.. В частности интересует порт $С1 ?


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 06 Sep 2012, 23:14 
Offline

Joined: 29 Mar 2012, 21:35
Posts: 115
Quote:
Имеется ли возможность настроить этот эмулятор так чтобы остановка (breakpoint)выполнения программы (т.е. в моем случае загрузки ПЗУ) производилась в зависимости от состояния регистров процессора?
Нет, такой возможности нет. Можно лишь ставить точки останова на код и на доступ к данным (в окне дампа).


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 09 Sep 2012, 12:08 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
Существует ли толковая документация по реализации портов ввода-вывода?.. что куда входит и выходит и в зависимости от чего, какие цвета как устанавливаюся и т.д. ?.. В частности интересует порт $С1 ?
каков критерий толковости?

если интересует сам чип, есть на него полная документация из первоисточника - http://www.intel-assembler.it/PORTALE/4 ... 5A_PPI.pdf
впрочем, в базовой конфигурации (без аппаратных доработок) эмулировать его в таком виде - излишество, достаточно использовать содержимое "теневых регистров", коих завести по одному на каждый элемент адресного пространства ввода/вывода.

Сама же палитра (порт С1) расписана здесь - http://lvovpc.ho.ua/forum/viewtopic.php?f=2&t=154 (NeoSpectruman постарался)


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 09 Sep 2012, 16:01 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
Сама же палитра (порт С1) расписана здесь - http://lvovpc.ho.ua/forum/viewtopic.php?f=2&t=154 (NeoSpectruman постарался)
Блин... :-) Расписана ! :( А доступным (человеческим) языком это как?... Или Паскалем ?


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 24 Nov 2012, 13:19 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
«Перипилил» свои исходники под исходники Marat_best`а. Спасибо ему за выложенные польностью исходники, которое написаны имменно на Дельфи.
Успехи у меня есть. Правда тяжеловато и заморочливо. :-) а теперь внимание вопрос! :-)

Как максимально корректно «выйти» на запуск (на адрес) программы появившейся в памяти? Какие дейстивия необходимо сделать для ее корректного запуска в среде ПК-01?

Вариант 1. Эмулирую незаметную и максимально быструю...
Перегрузка, Bload “”,R подсовываю мнимый нулевой файл с адресом старта = 6000, «ожидаю» переход на 6000 (т.е. когда r_PC=6000)... - Далее «подсовываю» свою программу (набор команд) со среды Дельфи будто она работает в памяти ПК-01, начиная с адреса 6000.

Вариант 2. Эмулирую незаметную и максимально быструю...
Перегрузка, Def usr=6000: x=usr(x) «ожидаю» переход на 6000(т.е. когда r_PC=6000)... - Далее «подсовываю» свою программу (набор команд) со среды Дельфи будто она работает в памяти ПК-01,, начиная с адреса 6000.

Вообщем какой вариант и какой мнимый адрес запуска программы более подходящий для программы появившейся в памяти ПК-01 Львов?
Может есть что-то более рациональное или подходящее?


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 29 Nov 2012, 17:02 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Возник вот такой вопрос...
А что если в моем модуле скомпилировать программу (использующую процедуры КР580) как обычно в Exe-файл.... Далее из Exeшника “вычислить» и “выцепить» только нужный код программы (отсеивая форму, инициализации разные и т.д....
Насколько реально будет преобразовать команды процессора ИНТЕЛ (!!!или как там правильно назвать систему команд нынешних процесоров) "тот" код в КР580?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 215 posts ]  Go to page Previous 19 10 11 12 1315 Next

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


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

Search for:
cron
Powered by phpBB® Forum Software © phpBB Limited