PC-01 Lviv http://pc01.lviv.ua/forum/ |
|
DprToLvt (PasToLvt) http://pc01.lviv.ua/forum/viewtopic.php?f=20&t=153 |
Page 11 of 15 |
Author: | sas9568635 [ 04 Aug 2012, 15:13 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
Quote: Что-то и мне тоже так кажется
Спасибо и на том !
Я, например, так уж исторически сложилось, не пользуюсь Дельфями. И ставить их, без особой нужды, вряд-ли буду. Поэтому помочь могу, в данном случае, только теоретически. |
Author: | sas9568635 [ 04 Aug 2012, 15:16 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
Вообще-то модуль можно и к Си прикручивать... или нельзя!?.. но этого тоже никто не пробовал либо не захотел пробовать.... и мне никто ничего не сказал... Вообщем, захотите... http://sas.forumbb.ru/viewtopic.php?id=290#p2104 |
Author: | sadfsdfsdaf [ 04 Aug 2012, 19:46 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
Quote: Вообще-то модуль можно и к Си прикручивать... или нельзя!?..
конечно можно, там fastcall. всё стандартное, вопросы, если возникнут, то только с совместным использованием системных API (tls, heap и т.п.).Quote: но этого тоже никто не пробовал либо не захотел пробовать....
в своё время все уже "напробовались" (по крайней мере я так точно), проблемы подключить чужой код даже с нестандартным ABI (или форматами представления) у меня никогда не было. (hint: гуглить "user mode loader")p.s. у меня винт рабочий пошабашил.... а вообще, тебе b2m всё верно расписал, так оно и есть. Если хочешь - сгенерирую текстовую трассу (на форум я достаточно выложил, чтобы "собрать требуемое"). Да, и ещё, есть тесты процессора, прогонял ? (я один тут выкладывал скомпилированным в lvt). Тесты на твоём модуле проходят без ошибок ? p.p.s. Вот тебе "сухой прогон" ПЗУ Attachment:
Точки останова на всей памяти, после срабатывания снимаются. (т.е. на каждой команде точка останова срабатывает только 1 раз). добейся совпадения листинга у себя, на своём модуле.p.3.s. я удивлён, что всей загрузки машины всего 790 команд..... мнда. |
Author: | sas9568635 [ 04 Aug 2012, 21:01 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
sadfsdfsdaf, С файлом Test.zip я вообще не понял чего делать?!!?... А вот dry_run.zip, пожалуй возникла идея... Спасибо! |
Author: | sadfsdfsdaf [ 04 Aug 2012, 21:36 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
Quote: С файлом Test.zip я вообще не понял чего делать?!!?...
1) запустить на выполнение test.lvt2) пройти руками "по шагам" 3) варианта только 2, CPUER или CPUOK листинг с адресами там есть (test.lst), ты ещё спрашивал - зачем он нужен и какого формата, вот - иди по нему и сверяйся. 8597 - всё плохо, 85A9 - тест ошибок не обнаружил. в какой точке произошёл переход на 8597 - там и неверная эмуляция - в комментарии всё расписано. |
Author: | sadfsdfsdaf [ 05 Aug 2012, 16:18 ] | ||
Post subject: | Re: DprToLvt (PasToLvt) | ||
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. Процитируем классиков марксизма-ленинизма: Но если уж говорить о лени как о пороке, то, пожалуй, самая страшная ее разновидность - это леность ума.
|
Author: | liberation [ 24 Aug 2012, 14:19 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
Тут неоднократно поднималась тема про эмуляцию флагов процессора, и как раз сегодня я обнаружил материал на эту тему [Расчет флагов]. |
Author: | sas9568635 [ 24 Aug 2012, 15:20 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
Quote: как раз сегодня я обнаружил материал на эту тему
Спасибо ! Рассмотрю! но позже ! Я пока с проектом DprToLvt - тайм-аут где-то до 15 сентября...
|
Author: | sas9568635 [ 06 Sep 2012, 19:59 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
Уважаемый создатель эмулятора «Башкирия» (т.е. это тот который 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 ? |
Author: | b2m [ 06 Sep 2012, 23:14 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
Quote: Имеется ли возможность настроить этот эмулятор так чтобы остановка (breakpoint)выполнения программы (т.е. в моем случае загрузки ПЗУ) производилась в зависимости от состояния регистров процессора?
Нет, такой возможности нет. Можно лишь ставить точки останова на код и на доступ к данным (в окне дампа).
|
Author: | sadfsdfsdaf [ 09 Sep 2012, 12:08 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
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 постарался) |
Author: | sas9568635 [ 09 Sep 2012, 16:01 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
Quote: Сама же палитра (порт С1) расписана здесь - http://lvovpc.ho.ua/forum/viewtopic.php?f=2&t=154 (NeoSpectruman постарался)
Блин... Расписана ! А доступным (человеческим) языком это как?... Или Паскалем ?
|
Author: | sas9568635 [ 24 Nov 2012, 13:19 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
«Перипилил» свои исходники под исходники 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 Львов? Может есть что-то более рациональное или подходящее? |
Author: | sas9568635 [ 29 Nov 2012, 17:02 ] |
Post subject: | Re: DprToLvt (PasToLvt) |
Возник вот такой вопрос... А что если в моем модуле скомпилировать программу (использующую процедуры КР580) как обычно в Exe-файл.... Далее из Exeшника “вычислить» и “выцепить» только нужный код программы (отсеивая форму, инициализации разные и т.д.... Насколько реально будет преобразовать команды процессора ИНТЕЛ (!!!или как там правильно назвать систему команд нынешних процесоров) "тот" код в КР580? |
Page 11 of 15 | All times are UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |