PC-01 Lviv

It is currently 27 Apr 2024, 17:31

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 18 9 10 11 1215 Next
Author Message
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 02 Aug 2012, 14:36 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Code:
Код Delphi

Procedure NOP;
begin
DelayBfC;// старт отсета длительности подобное включению секундомера
izmRgPC(+1);
RegisterWiewOfCommand;
DelayEfC(4);end;// проверить прошло ли время со старта равное 4 цикла или еще задержать
Это уже слишком :shock:


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 02 Aug 2012, 20:56 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
Тема предсказуемо заглохла,
Не получал нужных мне ответов ! Вот поэтому здесь она заглохла!
Quote:
но работы тем не менее продолжаются. Специально обученный спам-робот принес нам относительно .... свежую сводку с фронтов борьбы за урожай:
1. А вот там я получаю нужные мне ответы!
2. А ты поисчи... - еще найдешь!... и не одном форуме!... А это что... кого-то задевает что-ль..?
Quote:
Об эмуляторе.
Просто написать эмулятор старого процессора (старого компьютера) не представляет никакого интереса, так как их немало написано в т.ч. для ПК-01 Львов и никого этим не удивишь, и себя любимого тоже. А вот сделать так, как я хочу, т.е. использовать Дельфи для написания программ и компиляции под ПК-01 Львов (это словно в ПК-01 установлена Дельфи и пишешь проги для нее же) вот это интересно! Вот такого еще никто не реализовывал насколько я знаю.
Почему именно ПК-01 Львов?.. – А Это мой первый компьютер. А первый компьютер ,как первая любовь, не забывается…. :-)
Странное отношение к моему модулю и моей теме (и ко мне)! Убеждают меня, что модуль никому не нужен, да еще и написанный на дельфи... тем не менее настраивают "Специально обученный спам-робот" на поиски сообщений связанных с этим модулем!... а также делают цитаты из других форумов моих же сообщений СЮДА!!!?!?!?!?
То ли лыжи не едут... то ли я чего-то недопонимаю!???!!....


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 03 Aug 2012, 07:50 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
Это уже слишком :shock:
А что именно "слишком"?...
Для команды НОП такую задержку делать?... Что-ль?
Или само устройство задержки?...


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 03 Aug 2012, 10:04 
Offline

Joined: 29 Mar 2012, 21:35
Posts: 115
Quote:
старт отсета длительности подобное включению секундомера
Это лишнее. Слишком накладно инициализировать таймер каждую команду.
Quote:
izmRgPC(+1);
Не совсем понятна необходимость отслеживать РС, ведь программа выполняется кодом, скомпилированным Дельфи. Всё равно по адресу РС реальной программы/данных нет.
Quote:
RegisterWiewOfCommand;
Это я не понял, но "вид" в переводе на английский - View.
Quote:
проверить прошло ли время со старта равное 4 цикла или еще задержать
И ещё раз: realtime-задержки под виндой - это фикция. Твой процесс не будет выполняться эксклюзивно. Поэтому во всех эмуляторах работа в течение какого-то количества тактов идёт на максимальной скорости, а по достижении некоторого количества тактов сравнивается реальное время и эмулируемое, после чего делается задержка на разницу этих времён. Большее количество тактов приводит к рывкам в эмуляции, но т.к. задержка более длинная, больше вероятность того, что винда более точно выполнит эту задержку. И наоборот, если задержка короткая, то винда не гарантирует её точность, и как следствие - также появляются рывки в эмуляции. Максимальная точность таймера в винде (а это Multimedia Timer) 1 миллисекунда, что при частоте 2МГц соответствует 2000 тактов. Т.е. меньше, чем 2000 тактов за раз, эмулировать смысла нет.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 03 Aug 2012, 10:30 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
sas9568635
Quote:
И ещё раз: realtime-задержки под виндой - это фикция.
Именно это я и пытаюсь сказать последние несколько постов в этой теме.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 03 Aug 2012, 14:04 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
Это лишнее. Слишком накладно инициализировать таймер каждую команду.
А вы видели как реализован таймер?... Я не думаю что накладно, да и я проверял осуществляются ли задержки команд, т.е. вкладывается ли реализация команды в свое кол-во циклов. На нармальной скорости многие команды вкладываются в предоставленные им циклы. И это мне достаточно! Я не стремлюсь сделать идеал! Как в том анекдоте "Грузинская школа:Сколко будетъ дважды-два? ...правылно Гоги, гдэ-то семъ, восемъ, иногда дэвять..." :-)
Quote:
Не совсем понятна необходимость отслеживать РС, ведь программа выполняется кодом, скомпилированным Дельфи. Всё равно по адресу РС реальной программы/данных нет.
В модуль реализован (УЖЕ!) эмулятор который использует ЭТИ ЖЕ команды - ЭТО ДЛЯ НЕГО !
т.е. вот так вот:
Code:
........................
// Выбор и запуск команды
Case com_ of
{0x}
$00:NOP; $01:LXIB(w1); $02:STAXB; $03:INXB; $04:INRB;
$05:DCRB; $06:MVIB(b2); $07:RLC; $08:NOP08; $09:DADB;
$0A:LDAXB; $0B:DCXB; $0C:INRC; $0D:DCRC; $0E:MVIC(b2);
.................
Quote:
RegisterWiewOfCommand;
Quote:
Это я не понял, но "вид" в переводе на английский - View.
1.Уже исправленно. :-) Ну неумею я как-то сразу внимательно и без ошибок! :-)
2. Вызывает процедуру нужен ли вывод Регистров в форму... проверяет флаг включения вывода регистров в форму после каждой команды... выводит в форму...
ну иль не выводит... :-) просто возврат!
Quote:
И ещё раз: realtime-задержки под виндой - это фикция. Твой процесс не будет выполняться эксклюзивно. Поэтому во всех эмуляторах работа в течение какого-то количества тактов идёт на максимальной скорости, а по достижении некоторого количества тактов сравнивается реальное время и эмулируемое, после чего делается задержка на разницу этих времён. Большее количество тактов приводит к рывкам в эмуляции, но т.к. задержка более длинная, больше вероятность того, что винда более точно выполнит эту задержку. И наоборот, если задержка короткая, то винда не гарантирует её точность, и как следствие - также появляются рывки в эмуляции. Максимальная точность таймера в винде (а это Multimedia Timer) 1 миллисекунда, что при частоте 2МГц соответствует 2000 тактов. Т.е. меньше, чем 2000 тактов за раз, эмулировать смысла нет.
Честно говоря я очень слабо понял о чем речь... видимо еще "не доплыл" до этого... :-) и опять же : а ВЫ видели процедуры зажержки какие я использую?... И если они даже очень приблизительны, НО в каждой команде они, я думаю они сами будут покрывать "свои грехи" т.е.погрешности так как программы это сотни и тысячи таких команд... Вообщем у меня рывков не замечается т.е. ЭТО то что нужно!
Мой встроенный эмулятор, это для того чтобы можно было испытовать программы в "Приблизительном виде", т.е он и не должен быть проффесиональным, а для запуска и ИСПОЛЬЗОВАНИЯ можно ведь использовать и проффесиональные эмуляторы, ну например, "Башкирия" :-) :P
Вообщем все пока так! А делее видно будет! Тут главная проблема что ПЗУ не запускается! Вот где головняк! А это все мелочи.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 03 Aug 2012, 14:43 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
sas9568635
Ваш подход не верен в том, что вы ставите паузу на каждую команду. Прогармма, исполняемая в Винде не может манипулировать такими маленькими задержками. Более того, это очень напряжно по ресурсам. Дмитрий предлагает Вам классическое решение. Вы не должны эумлировать команды в риалтайме. Вам нужно собрать очередь из команд, скажем на 50 000 тактов, и проэмулировать их за период времени 20 мс.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 03 Aug 2012, 15:48 
Offline

Joined: 29 Mar 2012, 21:35
Posts: 115
Quote:
исполняемая в Винде не может манипулировать такими маленькими задержками
Вообще-то может, но тогда будет 100% загрузка процессора.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 03 Aug 2012, 16:11 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
b2m
Ну, во-первых, ось под себя будет процессорное время забирать. Так что даже если все остальное отдать одному процессу, глюки все равно будут.
А во-вторых, выполнение процедур виндовой программы (как и эмуляционных, так и таймерных) не знаю еще сколько времени займет. Тут от компилятора зависит.


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

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Zelya и b2m:
Может?!... не может?!...
У меня он грузит процессор на 50%, процессор АТОМ450… Выложу черновик посмотрите как оно у Вас будет….
В эмуляторе это сделать можно.. а вот как это сделать в командах Дельфи - ума не приложу… да и не вижу я пока в это необходимости !
А вообще, лучше бы мне помогли разобраться почему у меня ПЗУ не грузится нормально, вот чем соль?... Поможете?... Черновик на днях выложу…
Или опять на Дельфи гнать будете? :-) И чем вам всем Дельфи насолила ? :-) :P


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 03 Aug 2012, 22:37 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
А вообще, лучше бы мне помогли разобраться почему у меня ПЗУ не грузится нормально, вот чем соль?... Поможете?... Черновик на днях выложу…
Или опять на Дельфи гнать будете? :-) И чем вам всем Дельфи насолила ? :-) :P
Да нет, "сало как сало" (т.е. Дельфи как Дельфи). Я то паскаль знаю ещё со времён, когда РС не было у нас в стране и даже могу сказать, чем отличается стандартная версия от ISO, от объектного (по версии Apple), от Турбо (который Борланда и потом Дельфи (паскаль с классами)) и т.п.

А почему у тебя не грузится ПЗУ - разобраться легко, делаешь трассу своим модулем и любым из эмуляторов, в точке, где возникнут расхождения, там и ошибка. Собственно, я выкладывал ядро процессора в исходниках, его доработать на вывод автоматического листинга - от силы пара часов (это если не хочешь в отладчиках эмуляторов жать "Single step").


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 04 Aug 2012, 11:41 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
...разобраться легко....
Ну раз легко, выложу черновик, поможешь?... Иль это только на словах «легко»…
Я выкладывал черновики где можно прямо в среде дельфи испытать каждую команду, задавая регистрам и флагам значения и опрашивая их после выполнения команд, причем можно делать это в цикле программно … Но, тем не менее, ни один человек на ЭТОМ форуме не сказал, что какая-то команда неверно реализована иль еще чего нить не так.. Вот тебе и «легко»! А самому проверять своё же написанное бессмысленно. Нужно «с других глаз»…


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 04 Aug 2012, 12:15 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
sas9568635
Послушайте, Владимир и Дмитрий делятся с Вами своим богатым опытом по эмуляторостроению и дают ценные советы. А Вы предлагаете им ставить Делфи и дебагать Вашу программу. Ясно что никто и не подумает этим заниматься.


Top
   
 Post subject: Re: DprToLvt (PasToLvt)
PostPosted: 04 Aug 2012, 13:57 
Offline

Joined: 29 Mar 2012, 21:35
Posts: 115
Quote:
А Вы предлагаете им ставить Делфи и дебагать Вашу программу. Ясно что никто и не подумает этим заниматься.
Что-то и мне тоже так кажется :)
Я, например, так уж исторически сложилось, не пользуюсь Дельфями. И ставить их, без особой нужды, вряд-ли буду.
Поэтому помочь могу, в данном случае, только теоретически.

На самом деле, если проследить в отладчике эмулятора и в Дельфях ход исполнения хотя бы сотни команд ПЗУ после сброса, сравнивая при этом значения регистров и флагов после исполнения каждой команды, то наверняка можно сразу же заметить отличия. Если встречается цикл, и пара итераций идёт синхронно, можно пропустить цикл при помощи точек останова, которые в эмуляторе на Дельфи тоже нужно сделать. Точки останова уж точно не помешают, потому что после того, как обнаружено и исправлено расхождение, проще установить точку останова там, где раньше было расхождение, чтобы не трассировать всё с начала.


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

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
sas9568635
Послушайте, Владимир и Дмитрий делятся с Вами своим богатым опытом по эмуляторостроению и дают ценные советы.
Спасибо !
Quote:
А Вы предлагаете им ставить Делфи и дебагать Вашу программу. Ясно что никто и не подумает этим заниматься.
Хорошо! ....раз такой же кофточки, но с перламутровыми пугвицами нет у Вас - :-)
Будем искать! (из к/ф "Бриллиантовая рука")


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 215 posts ]  Go to page Previous 18 9 10 11 1215 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 5 guests


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