Arduino Nano - эмулятор компьютера под управлением ОС CP/M

Публичный форум для http://www.nedopc.org/nedopc

Moderator: Shaos

VGrad
Maniac
Posts: 208
Joined: 18 Nov 2013 15:15
Location: все оттуда ;)

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by VGrad »

Чем штатная утилита неугодила ?

- MOVCPM

Название MOVCPM является сокращением от английского "Move СР/М" (переместить СР/М). Команду MOVCPM применяют для модификации операционной системы СР/М с тем, чтобы она либо использовала всю доступную память ЭВМ, либо оставляла часть памяти под специальные системно-независимые программы пользователей.
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by FoxyLab »

Я нашел и исправил ошибку в эмуляции команд INR N/DCR M. :ebiggrin:
Теперь команда TYPE работает правильно!!! :exclaim:
Эмулятор почти готов к применению, я напишу для интересующихся инструкцию, как "приготовить" SD-карточку.

P.S.
VGrad wrote:Чем штатная утилита неугодила ?
Для того, чтобы ее запустить, нужно иметь уже работающую систему.
Затем эту утилиту нужно записать на диск.
Затем нужно записать (если не записан) на диск отладчик DDT.
После этого в отладчике исправить код проверки серийного номера (если серийный номер в утилите не совпадает с серийником запущенной системы, то фэйл).
Затем запустить утилиту.
Затем запустить команду SAVE.
Затем извлечь с карточки (эмулирующей диск) сектора с записанным кодом.
Вот всем этим и не угодила. :ebiggrin: Как говорил т. Сухов "лучше конечно помучаться", но настроение на это бывает не всегда :ebiggrin: Так что я все эти операции заменил одной командой, делающей то же самое - getcpm 32 010203040506 (например).
Last edited by FoxyLab on 02 Jan 2020 12:29, edited 1 time in total.
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by FoxyLab »

Добавил LRC-контрольную сумму для данных памяти при записи/чтении на карточку. Пока сбоев не было :ebiggrin:
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by FoxyLab »

Сделал ввод с консоли более универсальным - через прерывания - с прицелом на подключение в дальнейшем PS/2-клавиатуры + добавил команду R монитора для сброса ардуинки.
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by FoxyLab »

Сделал 200 прогонов теста памяти (добавил команду в монитор) - сбоев не обнаружено:
cpm_memtests.png
You do not have the required permissions to view the files attached to this post.
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by FoxyLab »

С помощью эмуляции шин адреса и данных, а также внутренних регистров (W, Z, ACT, TMP), сделал эмуляцию микроопераций как можно ближе к "железному" процессору + с помощью #define сделал код эмуляции намного более наглядным. Новый код уже выложен на GitHub.
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by FoxyLab »

По результатам тестов время случайного доступа к эмулируемой картой оперативной памяти составило около 7 миллисекунд.
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by VituZz »

Любопытно! Всегда проходил мимо всех этих Ардуин, а тут тоже заинтересовался. Жду, когда приедет купленная платка. CP/M меня не очень интересует, но хочу посмотреть на предмет эмуляции ORDOS...
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by FoxyLab »

VituZz wrote:Любопытно! Всегда проходил мимо всех этих Ардуин, а тут тоже заинтересовался. Жду, когда приедет купленная платка. CP/M меня не очень интересует, но хочу посмотреть на предмет эмуляции ORDOS...
Если Вас интересует быстродействие, то тогда конечно стоит подключить SPI RAM или FRAM. Но я пока играюсь с эмуляцией памяти карточкой (микросхема ОЗУ терпеливо в коробочке ждет своей очереди :ebiggrin: ).
Вот новые результаты:
из-за применения кэширования среднее время доступа при последовательном доступе к памяти составляет около 80 микросекунд.
Я использовал тест на Бейсике (в интерпретаторе TINYBASIC) для оценки влияния кэша на быстродействие в реальной задаче:
cpm_basic_test.png
(размер линии кэша составляет 64 байта)
кол-во линий кэша время выполнения теста (секунды)
2 ................................... 345
4 ................................... 155
6 ................................... 80
8 ................................... 60
You do not have the required permissions to view the files attached to this post.
User avatar
VituZz
God
Posts: 1343
Joined: 13 Nov 2010 04:06

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by VituZz »

А почему с карточкой? Разве с ОЗУ не проще?
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by FoxyLab »

VituZz wrote:А почему с карточкой? Разве с ОЗУ не проще?
Проще, но мне с карточкой интереснее...
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by FoxyLab »

Я запустил на моей Ардуинке компилятор языка Ada!!!
Компиляция программы TOWERS.ADA решения задачи о "Ханойской башне":
towers_ada_comp.png

Запуск скомпилированной программы TOWERS.COM:
towers_ada_3.png
You do not have the required permissions to view the files attached to this post.
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by FoxyLab »

Изменил подход к эмуляции НГМД — выделил на карточке область для хранения содержимого 100 дискет и командой монитора Z «вставляю» дискету в один из дисководов A, B, C или D
(например, команда ZB02 монтирует дискету с номером 02 в дисковод B)
cpm_floppy.png
Номера «вставленных» дискет запоминаются в EEPROM Arduino и восстанавливаются при повторном запуске эмулятора.
You do not have the required permissions to view the files attached to this post.
IgorR76
Senior
Posts: 102
Joined: 27 Jul 2015 15:20

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by IgorR76 »

:) Дисководы вверх ногами!..
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

Post by FoxyLab »

IgorR76 wrote::) Дисководы вверх ногами!..
Это да :ebiggrin: Не обратил внимания.
P.S. Поправил.
Last edited by FoxyLab on 02 Jan 2020 12:32, edited 1 time in total.