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. 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
Кстати, там есть и раздельные тесты для этих процессов. И Tim0xA там упоминается.
********************************* 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 |
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/ |