PC-01 Lviv

It is currently 19 Mar 2024, 06:02

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 8 posts ] 
Author Message
PostPosted: 04 Oct 2012, 15:37 
Offline
User avatar

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

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 05 Oct 2012, 16:34 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Вчерашняя тема получила великолепное продолжение. Александр зарелизил новую версию своего эмулятора "Радио-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 вычисляется как положено по документации. Но в командах декремента и вычитания этот флаг имеет инвертированное значение!

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 05 Oct 2012, 17:56 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Непонятно, как эмулятор одновременно может проходить варианты exercizer и для 8080 и для 8085. Или в этом эмуляторе можно выбрать тип процессора?


Top
   
PostPosted: 07 Oct 2012, 06:59 
Offline
User avatar

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

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 07 Oct 2012, 12:18 
Offline

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

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


Top
   
PostPosted: 08 Oct 2012, 00:00 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 08 Oct 2012, 13:26 
Offline

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


Top
   
PostPosted: 09 Jan 2015, 17:03 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Краткое послесловие. Этот эмулятор оказался годным, работает отлично, хотя js версия содержит несколько огрех, все они, если не ошибаюсь, связаны с областью видимости переменных, поэтому на качестве эмуляции не сказываются.

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 8 posts ] 

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


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:
cron
Powered by phpBB® Forum Software © phpBB Limited