nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 14 Dec 2017 02:28



Reply to topic  [ 41 posts ]  Go to page 1, 2, 3  Next
Тест точности эмуляции 8080 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15912
Location: Colorado
Reply with quote
Кто-то может поделиться программой (ассемблерный код или программа для РК,Ориона,Специалиста и т.д.) для проверки точности эмуляции процессора КР580ВМ80А (8080)? У меня есть собственный код эмуляции, но на нём не все программы корректно работают, хотелось бы отыскать проблему, которая судя по всему находится в реализации ядра процессора.

_________________
:eugeek: https://twitter.com/Shaos1973


20 May 2007 09:28
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 14:41
Posts: 2152
Location: От туда
Reply with quote
Post 
Неточности обычно с флагами. А какого рода проги глючат? Как проявляется глюк?


20 May 2007 11:53
Profile
Doomed

Joined: 26 May 2003 07:57
Posts: 599
Reply with quote
Post 
У меня в эмуляторе есть возможность записать ход исполнения (только регистр PC) или полный лог исполнения, со всеми регистрами и флагами. Потом можно сравнить. Если интересует, могу рассказать, как можно это сделать (в двух словах не получится).


20 May 2007 12:20
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15912
Location: Colorado
Reply with quote
Post 
b2m wrote:
У меня в эмуляторе есть возможность записать ход исполнения (только регистр PC) или полный лог исполнения, со всеми регистрами и флагами. Потом можно сравнить. Если интересует, могу рассказать, как можно это сделать (в двух словах не получится).


Ну у меня тоже можно записать - вот только с чем потом сравнивать? ;)

_________________
:eugeek: https://twitter.com/Shaos1973


20 May 2007 14:30
Profile WWW
Doomed

Joined: 26 May 2003 07:57
Posts: 599
Reply with quote
Post 
Я имел ввиду записать в одинаковом формате, а потом сравнить твой и мой, хоть diff-ом, хоть fc /b. Там, откуда начнётся разница, и копать. Для начала можно ограничиться одним PC.
Какая прога не работает? Кидай мне или скажи где взять. Может у меня тоже не заработает.


21 May 2007 05:45
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15912
Location: Colorado
Reply with quote
Post 
b2m wrote:
Я имел ввиду записать в одинаковом формате, а потом сравнить твой и мой, хоть diff-ом, хоть fc /b. Там, откуда начнётся разница, и копать. Для начала можно ограничиться одним PC.
Какая прога не работает? Кидай мне или скажи где взять. Может у меня тоже не заработает.


CP/M на моём эмуле толком не работает, потом некоторые орионовские программы не идут нормально

_________________
:eugeek: https://twitter.com/Shaos1973


21 May 2007 06:10
Profile WWW
Doomed

Joined: 26 May 2003 07:57
Posts: 599
Reply with quote
Post 
Shaos wrote:
CP/M на моём эмуле толком не работает

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


21 May 2007 07:39
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 14:41
Posts: 2152
Location: От туда
Reply with quote
Post 
Интересно, прогнать бы это все на моем эмуле.... Где взять прожки и саму CP/M для i8080?


21 May 2007 08:38
Profile
Doomed

Joined: 26 May 2003 07:57
Posts: 599
Reply with quote
Post 
HardWareMan wrote:
Интересно, прогнать бы это все на моем эмуле.... Где взять прожки и саму CP/M для i8080?

На моём сайте bashkiria-2m.narod.ru есть образы дисков для Башкирии-2М,Kорвета,Ориона-128,Партнёра,Специалиста-МХ. И везде, естесственно, CP/M.


21 May 2007 08:46
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15912
Location: Colorado
Reply with quote
Post 
b2m wrote:
Shaos wrote:
CP/M на моём эмуле толком не работает

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


Ok, спасибо, погляжу повнимательнее на свою реализацию

_________________
:eugeek: https://twitter.com/Shaos1973


21 May 2007 16:55
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15912
Location: Colorado
Reply with quote
Post 
Поглядел пристально на свою реализацию - ничего криминального не нашёл, но когда стал внимательно читать старую добрую американскую книгу про 8080/8085, обнаружил массу вещей о которых я раньше не знал - например странное поведение флага AC (полуперенос) в логических операциях (причём это поведение разное для 8080 и 8085 в случае операции И)...

_________________
:eugeek: https://twitter.com/Shaos1973


15 Nov 2007 23:13
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 14:41
Posts: 2152
Location: От туда
Reply with quote
Post 
Shaos wrote:
Поглядел пристально на свою реализацию - ничего криминального не нашёл, но когда стал внимательно читать старую добрую американскую книгу про 8080/8085, обнаружил массу вещей о которых я раньше не знал - например странное поведение флага AC (полуперенос) в логических операциях (причём это поведение разное для 8080 и 8085 в случае операции И)...

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


16 Nov 2007 03:16
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15912
Location: Colorado
Reply with quote
Post 
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

_________________
:eugeek: https://twitter.com/Shaos1973


16 Nov 2007 08:30
Profile WWW
Doomed

Joined: 26 May 2003 07:57
Posts: 599
Reply with quote
Post 
У меня во всех логических операциях и даже в CMP стоит AC=0, и ничего, по крайней мере CP/M вроде без глюков работает. Так что ищи в другом месте.

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


16 Nov 2007 12:38
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 15912
Location: Colorado
Reply with quote
Post 
b2m wrote:
У меня во всех логических операциях и даже в CMP стоит AC=0, и ничего, по крайней мере CP/M вроде без глюков работает. Так что ищи в другом месте.


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

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


И в 8085 тоже ;)
Но не в 8080 - в нём в AC кладётся ИЛИ третьих битов операндов ...

_________________
:eugeek: https://twitter.com/Shaos1973


16 Nov 2007 19:35
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 41 posts ]  Go to page 1, 2, 3  Next

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:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.