PC-01 Lviv
http://pc01.lviv.ua/forum/

Программная модель Intel 8080/КР580ВМ80А
http://pc01.lviv.ua/forum/viewtopic.php?f=12&t=195
Page 1 of 1

Author:  liberation [ 04 Oct 2012, 15:37 ]
Post subject:  Программная модель Intel 8080/КР580ВМ80А

На гитхабе стал доступен репозитарий с исходниками эмулятора процессора i8080 на Си. Это разработка Александра Дёмина, автора эмулятора Радио-86РК на js, послужившего источником вдохновения для одной "отечественной разработки". Все подробности можно прочесть в одноименной теме на форуме nedoPC. По результатам тестирования автор обещает отличную совместимость с оригиналом. Кстати, было бы интересно прогнать через тест "8080/8085 CPU Exerciser" реализации ЦП в эмуляторах ПК-01. :wink:

p.s.
Александр ведет отличный блог, где время от времени пишет про ретроПК и прочие любопытные древности. Так, недавно он написал интригующую заметку "Реализация простого ядра Forth", что перекликается с одной нашей темой.

Author:  liberation [ 05 Oct 2012, 16:34 ]
Post subject:  Re: Программная модель Intel 8080/КР580ВМ80А

Вчерашняя тема получила великолепное продолжение. Александр зарелизил новую версию своего эмулятора "Радио-86РК". Особенно следует отметить такой момент:
Quote:
Я попробовал править существующую реализацию, но в процессе переписал код эмулятора 8080 практически заново, благо голова была свежа после работы над i8080-core. За пару дней я реализовал все команды и прикрутил тесты. По ним я выловил все глюки, и теперь i8080-js проходит все тесты, включая 8080-8085 CPU Exerciser, тем самым являясь реально точной репликой КР580ВМ80А.
Источник: "Снова эмулятор Радио-86РК на JavaScript"
Quote:
Ядро i8080-js теперь проходит все те же тесты, что и i8080-core. Тестирование можно делать либо прямо в браузере, либо в командной строке, если есть под рукой интерпретаторы JavaScript'а V8 или SpiderMonkey. Эмулятор Intel 8080 сделан независимым от конкретной аппаратуры и может быть легко использован для эмуляции других машин, основанных на Intel 8080 (или КР580ВМ80А).
Источник: "Эмулятор Радио-86РК на JavaScript / Перезагрузка"

Напоследок дам ссылку непосредственно на репозитарий - Intel 8080 (KR580VM80A) microprocessor in JavaScript.

UPD.
Фрагмент прекрасного из "Снова эмулятор Радио-86РК на JavaScript".
Quote:
Например, есть основные логические операции: OR, AND, XOR. Так как это неарифметические операции, то флаг половинчатого переноса AC (из младшей тетрады в старшую) просто обнуляется. Так написано в документации. Но в реальности команда AND особенная. В ней флаг AC устанавливается (внимание!) равным третьему биту операции OR между аргументами команды, а не просто в ноль. Данное поведение, все таки было задокументировано, но в более поздней документации по 8085.

Или, например, в командах инкремента и сложения, тот же флаг AC вычисляется как положено по документации. Но в командах декремента и вычитания этот флаг имеет инвертированное значение!

Author:  ivagor [ 05 Oct 2012, 17:56 ]
Post subject:  Re: Программная модель Intel 8080/КР580ВМ80А

Непонятно, как эмулятор одновременно может проходить варианты exercizer и для 8080 и для 8085. Или в этом эмуляторе можно выбрать тип процессора?

Author:  liberation [ 07 Oct 2012, 06:59 ]
Post subject:  Re: Программная модель Intel 8080/КР580ВМ80А

Quote:
Непонятно, как эмулятор одновременно может проходить варианты exercizer и для 8080 и для 8085. Или в этом эмуляторе можно выбрать тип процессора?
Подозреваю, что все проще. Суть теста состоит в том, что на нем гоняют "до посинения" несколько софтин, чтобы после сверить полученные контрольные суммы с эталоном. Так что задача распознание типа процессора лежит не на эмуляторе, а на софте, который на нем запускается.

p.s.
Бегло посмотрел код эмуля в репе, - да, это не совсем pure js, скорее взгляд программиста-сишника на джаваскрипт.

Author:  ivagor [ 07 Oct 2012, 12:18 ]
Post subject:  Re: Программная модель Intel 8080/КР580ВМ80А

Quote:
гоняют "до посинения" несколько софтин, чтобы после сверить полученные контрольные суммы с эталоном.
Так контрольные суммы для 8080 и 8085 в exercizerах разные.

P.S. Посмотрел, судя по ANA автор эмулятора реализовал 8080. К чему упоминания 8085 я не понял.

Author:  liberation [ 08 Oct 2012, 00:00 ]
Post subject:  Re: Программная модель Intel 8080/КР580ВМ80А

Quote:
P.S. Посмотрел, судя по ANA автор эмулятора реализовал 8080. К чему упоминания 8085 я не понял.
Я ситуацию понимаю так. Автор написал эмуль процессора i8080, который протестировал в парижской палате мер и весов при помощи нескольких тестов, рассчитанных для i8080/8085. Вот что мы видим на гите:
Quote:
Intel 8080/JS test
*********************************
File "TEST.COM" loaded, size 1793
OUTPUT: MICROCOSM ASSOCIATES 8080/8085 CPU DIAGNOSTIC VERSION 1.0 (C) 1980
OUTPUT:
OUTPUT: CPU IS OPERATIONAL
Jump to 0000 from 14f
*********************************
File "CPUTEST.COM" loaded, size 19200
OUTPUT:
OUTPUT: DIAGNOSTICS II V1.2 - CPU TEST
OUTPUT: COPYRIGHT (C) 1981 - SUPERSOFT ASSOCIATES
OUTPUT: ABCDEFGHIJKLMNOPQRSTUVWXYZ
OUTPUT: CPU IS 8080/8085
OUTPUT: BEGIN TIMING TEST
OUTPUT: END TIMING TEST
OUTPUT: CPU TESTS OK
OUTPUT:
Jump to 0000 from 3b25
*********************************
File "8080PRE.COM" loaded, size 1024
OUTPUT: 8080 Preliminary tests complete
Jump to 0000 from 32f
Кстати, там есть и раздельные тесты для этих процессов. И Tim0xA там упоминается. :D

Author:  ivagor [ 08 Oct 2012, 13:26 ]
Post subject:  Re: Программная модель Intel 8080/КР580ВМ80А

На зх.пк автор ответил, что запускается только exercizer для 8080. Теперь все понятно, кроме причины написания фрагмента "теперь i8080-js проходит все тесты, включая 8080-8085 CPU Exerciser".

Author:  liberation [ 09 Jan 2015, 17:03 ]
Post subject:  Re: Программная модель Intel 8080/КР580ВМ80А

Краткое послесловие. Этот эмулятор оказался годным, работает отлично, хотя js версия содержит несколько огрех, все они, если не ошибаюсь, связаны с областью видимости переменных, поэтому на качестве эмуляции не сказываются.

Page 1 of 1 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/