Arduino Nano - эмулятор компьютера под управлением ОС CP/M
Moderator: Shaos
-
- Maniac
- Posts: 208
- Joined: 18 Nov 2013 15:15
- Location: все оттуда ;)
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Чем штатная утилита неугодила ?
- MOVCPM
Название MOVCPM является сокращением от английского "Move СР/М" (переместить СР/М). Команду MOVCPM применяют для модификации операционной системы СР/М с тем, чтобы она либо использовала всю доступную память ЭВМ, либо оставляла часть памяти под специальные системно-независимые программы пользователей.
- MOVCPM
Название MOVCPM является сокращением от английского "Move СР/М" (переместить СР/М). Команду MOVCPM применяют для модификации операционной системы СР/М с тем, чтобы она либо использовала всю доступную память ЭВМ, либо оставляла часть памяти под специальные системно-независимые программы пользователей.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Я нашел и исправил ошибку в эмуляции команд INR N/DCR M.
Теперь команда TYPE работает правильно!!!
Эмулятор почти готов к применению, я напишу для интересующихся инструкцию, как "приготовить" SD-карточку.
P.S.
Затем эту утилиту нужно записать на диск.
Затем нужно записать (если не записан) на диск отладчик DDT.
После этого в отладчике исправить код проверки серийного номера (если серийный номер в утилите не совпадает с серийником запущенной системы, то фэйл).
Затем запустить утилиту.
Затем запустить команду SAVE.
Затем извлечь с карточки (эмулирующей диск) сектора с записанным кодом.
Вот всем этим и не угодила.
Как говорил т. Сухов "лучше конечно помучаться", но настроение на это бывает не всегда
Так что я все эти операции заменил одной командой, делающей то же самое - getcpm 32 010203040506 (например).

Теперь команда TYPE работает правильно!!!

Эмулятор почти готов к применению, я напишу для интересующихся инструкцию, как "приготовить" SD-карточку.
P.S.
Для того, чтобы ее запустить, нужно иметь уже работающую систему.VGrad wrote:Чем штатная утилита неугодила ?
Затем эту утилиту нужно записать на диск.
Затем нужно записать (если не записан) на диск отладчик DDT.
После этого в отладчике исправить код проверки серийного номера (если серийный номер в утилите не совпадает с серийником запущенной системы, то фэйл).
Затем запустить утилиту.
Затем запустить команду SAVE.
Затем извлечь с карточки (эмулирующей диск) сектора с записанным кодом.
Вот всем этим и не угодила.


Last edited by FoxyLab on 02 Jan 2020 12:29, edited 1 time in total.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Добавил LRC-контрольную сумму для данных памяти при записи/чтении на карточку. Пока сбоев не было 

-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Сделал ввод с консоли более универсальным - через прерывания - с прицелом на подключение в дальнейшем PS/2-клавиатуры + добавил команду R монитора для сброса ардуинки.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Сделал 200 прогонов теста памяти (добавил команду в монитор) - сбоев не обнаружено:
You do not have the required permissions to view the files attached to this post.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
С помощью эмуляции шин адреса и данных, а также внутренних регистров (W, Z, ACT, TMP), сделал эмуляцию микроопераций как можно ближе к "железному" процессору + с помощью #define сделал код эмуляции намного более наглядным. Новый код уже выложен на GitHub.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
По результатам тестов время случайного доступа к эмулируемой картой оперативной памяти составило около 7 миллисекунд.
-
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Любопытно! Всегда проходил мимо всех этих Ардуин, а тут тоже заинтересовался. Жду, когда приедет купленная платка. CP/M меня не очень интересует, но хочу посмотреть на предмет эмуляции ORDOS...
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Если Вас интересует быстродействие, то тогда конечно стоит подключить SPI RAM или FRAM. Но я пока играюсь с эмуляцией памяти карточкой (микросхема ОЗУ терпеливо в коробочке ждет своей очередиVituZz wrote:Любопытно! Всегда проходил мимо всех этих Ардуин, а тут тоже заинтересовался. Жду, когда приедет купленная платка. CP/M меня не очень интересует, но хочу посмотреть на предмет эмуляции ORDOS...

Вот новые результаты:
из-за применения кэширования среднее время доступа при последовательном доступе к памяти составляет около 80 микросекунд.
Я использовал тест на Бейсике (в интерпретаторе TINYBASIC) для оценки влияния кэша на быстродействие в реальной задаче:
(размер линии кэша составляет 64 байта)
кол-во линий кэша время выполнения теста (секунды)
2 ................................... 345
4 ................................... 155
6 ................................... 80
8 ................................... 60
You do not have the required permissions to view the files attached to this post.
-
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
А почему с карточкой? Разве с ОЗУ не проще?
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Проще, но мне с карточкой интереснее...VituZz wrote:А почему с карточкой? Разве с ОЗУ не проще?
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Я запустил на моей Ардуинке компилятор языка Ada!!!
Компиляция программы TOWERS.ADA решения задачи о "Ханойской башне":
Запуск скомпилированной программы TOWERS.COM:
Компиляция программы TOWERS.ADA решения задачи о "Ханойской башне":
Запуск скомпилированной программы TOWERS.COM:
You do not have the required permissions to view the files attached to this post.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Изменил подход к эмуляции НГМД — выделил на карточке область для хранения содержимого 100 дискет и командой монитора Z «вставляю» дискету в один из дисководов A, B, C или D
(например, команда ZB02 монтирует дискету с номером 02 в дисковод B)
Номера «вставленных» дискет запоминаются в EEPROM Arduino и восстанавливаются при повторном запуске эмулятора.
(например, команда ZB02 монтирует дискету с номером 02 в дисковод B)
Номера «вставленных» дискет запоминаются в EEPROM Arduino и восстанавливаются при повторном запуске эмулятора.
You do not have the required permissions to view the files attached to this post.
-
- Senior
- Posts: 102
- Joined: 27 Jul 2015 15:20
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP

-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Это даIgorR76 wrote:Дисководы вверх ногами!..

P.S. Поправил.
Last edited by FoxyLab on 02 Jan 2020 12:32, edited 1 time in total.