FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups nedoPC.org  
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 RegisterRegister 
 
Тест точности эмуляции 8080
Goto page 1, 2  Next
 
Post new topic   Reply to topic    nedoPC.org Forum Index -> Emu80

Shaos Reply with quote
Admin


Joined: 09 Jan 2003
Posts: 5543
Location: New York, USA

PostPosted: 20 May 2007 11:28    Post subject: Тест точности эмуляции 8080
 
Кто-то может поделиться программой (ассемблерный код или программа для РК,Ориона,Специалиста и т.д.) для проверки точности эмуляции процессора КР580ВМ80А (8080)? У меня есть собственный код эмуляции, но на нём не все программы корректно работают, хотелось бы отыскать проблему, которая судя по всему находится в реализации ядра процессора.
_________________
Shaos / nedoPC team
Back to top
View user's profile Send private message Send e-mail Visit poster's website

HardWareMan Reply with quote
God


Joined: 20 Mar 2005
Posts: 1012
Location: РК, Павлодар

PostPosted: 20 May 2007 13:53    Post subject:
 
Неточности обычно с флагами. А какого рода проги глючат? Как проявляется глюк?
Back to top
View user's profile Send private message

b2m Reply with quote
Senior


Joined: 26 May 2003
Posts: 125

PostPosted: 20 May 2007 14:20    Post subject:
 
У меня в эмуляторе есть возможность записать ход исполнения (только регистр PC) или полный лог исполнения, со всеми регистрами и флагами. Потом можно сравнить. Если интересует, могу рассказать, как можно это сделать (в двух словах не получится).
Back to top
View user's profile Send private message Visit poster's website

Shaos Reply with quote
Admin


Joined: 09 Jan 2003
Posts: 5543
Location: New York, USA

PostPosted: 20 May 2007 16:30    Post subject:
 
b2m wrote:
У меня в эмуляторе есть возможность записать ход исполнения (только регистр PC) или полный лог исполнения, со всеми регистрами и флагами. Потом можно сравнить. Если интересует, могу рассказать, как можно это сделать (в двух словах не получится).


Ну у меня тоже можно записать - вот только с чем потом сравнивать?
_________________
Shaos / nedoPC team
Back to top
View user's profile Send private message Send e-mail Visit poster's website

b2m Reply with quote
Senior


Joined: 26 May 2003
Posts: 125

PostPosted: 21 May 2007 07:45    Post subject:
 
Я имел ввиду записать в одинаковом формате, а потом сравнить твой и мой, хоть diff-ом, хоть fc /b. Там, откуда начнётся разница, и копать. Для начала можно ограничиться одним PC.
Какая прога не работает? Кидай мне или скажи где взять. Может у меня тоже не заработает.
Back to top
View user's profile Send private message Visit poster's website

Shaos Reply with quote
Admin


Joined: 09 Jan 2003
Posts: 5543
Location: New York, USA

PostPosted: 21 May 2007 08:10    Post subject:
 
b2m wrote:
Я имел ввиду записать в одинаковом формате, а потом сравнить твой и мой, хоть diff-ом, хоть fc /b. Там, откуда начнётся разница, и копать. Для начала можно ограничиться одним PC.
Какая прога не работает? Кидай мне или скажи где взять. Может у меня тоже не заработает.


CP/M на моём эмуле толком не работает, потом некоторые орионовские программы не идут нормально
_________________
Shaos / nedoPC team
Back to top
View user's profile Send private message Send e-mail Visit poster's website

b2m Reply with quote
Senior


Joined: 26 May 2003
Posts: 125

PostPosted: 21 May 2007 09:39    Post subject:
 
Shaos wrote:
CP/M на моём эмуле толком не работает

У меня тоже очень давно, когда я только начинал делать эмуль, был глюк с CP/M. Причина была - неправильная установка флагов в командах INR DCR (устанавливаются все, кроме переноса). Из последних исправленных глюков - команда DAA и неизменяемые биты в регистре флагов - никак не влияли на работу CP/M. Неизменяемые биты странным образом влияли на программу ADSKOK на Специалисте (в стек там кладётся psw, а вынимается регистровая пара, и наоборот, причём флаги как-то используются). Команды сдвига, которые тоже используются в CP/M при всяких там рассчётах, я думаю, ты без ошибок реализовал, но всё равно проверь. Флаг паритета тоже частенько неправильно реализуют или не везде, где надо, устанавливают (INR DCR и все ALU). Остальное, вроде, очевидно.
Back to top
View user's profile Send private message Visit poster's website

HardWareMan Reply with quote
God


Joined: 20 Mar 2005
Posts: 1012
Location: РК, Павлодар

PostPosted: 21 May 2007 10:38    Post subject:
 
Интересно, прогнать бы это все на моем эмуле.... Где взять прожки и саму CP/M для i8080?
Back to top
View user's profile Send private message

b2m Reply with quote
Senior


Joined: 26 May 2003
Posts: 125

PostPosted: 21 May 2007 10:46    Post subject:
 
HardWareMan wrote:
Интересно, прогнать бы это все на моем эмуле.... Где взять прожки и саму CP/M для i8080?

На моём сайте bashkiria-2m.narod.ru есть образы дисков для Башкирии-2М,Kорвета,Ориона-128,Партнёра,Специалиста-МХ. И везде, естесственно, CP/M.
Back to top
View user's profile Send private message Visit poster's website

Shaos Reply with quote
Admin


Joined: 09 Jan 2003
Posts: 5543
Location: New York, USA

PostPosted: 21 May 2007 18:55    Post subject:
 
b2m wrote:
Shaos wrote:
CP/M на моём эмуле толком не работает

У меня тоже очень давно, когда я только начинал делать эмуль, был глюк с CP/M. Причина была - неправильная установка флагов в командах INR DCR (устанавливаются все, кроме переноса). Из последних исправленных глюков - команда DAA и неизменяемые биты в регистре флагов - никак не влияли на работу CP/M. Неизменяемые биты странным образом влияли на программу ADSKOK на Специалисте (в стек там кладётся psw, а вынимается регистровая пара, и наоборот, причём флаги как-то используются). Команды сдвига, которые тоже используются в CP/M при всяких там рассчётах, я думаю, ты без ошибок реализовал, но всё равно проверь. Флаг паритета тоже частенько неправильно реализуют или не везде, где надо, устанавливают (INR DCR и все ALU). Остальное, вроде, очевидно.


Ok, спасибо, погляжу повнимательнее на свою реализацию
_________________
Shaos / nedoPC team
Back to top
View user's profile Send private message Send e-mail Visit poster's website

Shaos Reply with quote
Admin


Joined: 09 Jan 2003
Posts: 5543
Location: New York, USA

PostPosted: 16 Nov 2007 01:13    Post subject:
 
Поглядел пристально на свою реализацию - ничего криминального не нашёл, но когда стал внимательно читать старую добрую американскую книгу про 8080/8085, обнаружил массу вещей о которых я раньше не знал - например странное поведение флага AC (полуперенос) в логических операциях (причём это поведение разное для 8080 и 8085 в случае операции И)...
_________________
Shaos / nedoPC team
Back to top
View user's profile Send private message Send e-mail Visit poster's website

HardWareMan Reply with quote
God


Joined: 20 Mar 2005
Posts: 1012
Location: РК, Павлодар

PostPosted: 16 Nov 2007 05:16    Post subject:
 
Shaos wrote:
Поглядел пристально на свою реализацию - ничего криминального не нашёл, но когда стал внимательно читать старую добрую американскую книгу про 8080/8085, обнаружил массу вещей о которых я раньше не знал - например странное поведение флага AC (полуперенос) в логических операциях (причём это поведение разное для 8080 и 8085 в случае операции И)...

Наблюдения и выводы в студию!
Back to top
View user's profile Send private message

Shaos Reply with quote
Admin


Joined: 09 Jan 2003
Posts: 5543
Location: New York, USA

PostPosted: 16 Nov 2007 10:30    Post subject:
 
HardWareMan wrote:
Shaos wrote:
Поглядел пристально на свою реализацию - ничего криминального не нашёл, но когда стал внимательно читать старую добрую американскую книгу про 8080/8085, обнаружил массу вещей о которых я раньше не знал - например странное поведение флага AC (полуперенос) в логических операциях (причём это поведение разное для 8080 и 8085 в случае операции И)...

Наблюдения и выводы в студию!


ANA/ANI : C=0, AC=1 (8085) or AC=A3|B3 (8080)
ORA/ORI : C=0 AC=0
XRA/XRI : C=0 AC=0
_________________
Shaos / nedoPC team
Back to top
View user's profile Send private message Send e-mail Visit poster's website

b2m Reply with quote
Senior


Joined: 26 May 2003
Posts: 125

PostPosted: 16 Nov 2007 14:38    Post subject:
 
У меня во всех логических операциях и даже в CMP стоит AC=0, и ничего, по крайней мере CP/M вроде без глюков работает. Так что ищи в другом месте.

В Z80 действительно, почему-то, для AND должно быть AC=1 ...
Back to top
View user's profile Send private message Visit poster's website

Shaos Reply with quote
Admin


Joined: 09 Jan 2003
Posts: 5543
Location: New York, USA

PostPosted: 16 Nov 2007 21:35    Post subject:
 
b2m wrote:
У меня во всех логических операциях и даже в CMP стоит AC=0, и ничего, по крайней мере CP/M вроде без глюков работает. Так что ищи в другом месте.


А у меня C и AC нигде не трогались в неарифметических и несдвиговых местах...
Кстати CMP должна функционировать как вычитание - у меня к примеру C и AC при сравнении соответственно меняют свои значения

b2m wrote:
В Z80 действительно, почему-то, для AND должно быть AC=1 ...


И в 8085 тоже
Но не в 8080 - в нём в AC кладётся ИЛИ третьих битов операндов ...
_________________
Shaos / nedoPC team
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Post new topic   Reply to topic    nedoPC.org Forum Index -> Emu80
Goto page 1, 2  Next
Page 1 of 2

Choose Display Order
Display posts from previous:   
User Permissions
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 vote in polls in this forum

 
Jump to:  


Skin Created by Sigma12 and modified by Shaos
Powered by phpBB © 2001-2005 phpBB Group