nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 04:31



Reply to topic  [ 121 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 9  Next
Arduino Nano - эмулятор компьютера под управлением ОС CP/M 
Author Message
Maniac

Joined: 18 Nov 2013 15:15
Posts: 209
Location: все оттуда ;)
Reply with quote
Чем штатная утилита неугодила ?

- MOVCPM

Название MOVCPM является сокращением от английского "Move СР/М" (переместить СР/М). Команду MOVCPM применяют для модификации операционной системы СР/М с тем, чтобы она либо использовала всю доступную память ЭВМ, либо оставляла часть памяти под специальные системно-независимые программы пользователей.


31 Mar 2017 12:05
Profile
Retired

Joined: 21 Mar 2017 06:37
Posts: 73
Reply with quote
Я нашел и исправил ошибку в эмуляции команд 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.



01 Apr 2017 02:09
Profile
Retired

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


01 Apr 2017 23:40
Profile
Retired

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


03 Apr 2017 10:15
Profile
Retired

Joined: 21 Mar 2017 06:37
Posts: 73
Reply with quote
Сделал 200 прогонов теста памяти (добавил команду в монитор) - сбоев не обнаружено:

Attachment:
cpm_memtests.png
cpm_memtests.png [ 1.94 KiB | Viewed 4981 times ]


04 Apr 2017 15:03
Profile
Retired

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


09 Apr 2017 11:03
Profile
Retired

Joined: 21 Mar 2017 06:37
Posts: 73
Reply with quote
По результатам тестов время случайного доступа к эмулируемой картой оперативной памяти составило около 7 миллисекунд.


11 Apr 2017 16:03
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Любопытно! Всегда проходил мимо всех этих Ардуин, а тут тоже заинтересовался. Жду, когда приедет купленная платка. CP/M меня не очень интересует, но хочу посмотреть на предмет эмуляции ORDOS...


15 Apr 2017 08:41
Profile
Retired

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

Если Вас интересует быстродействие, то тогда конечно стоит подключить SPI RAM или FRAM. Но я пока играюсь с эмуляцией памяти карточкой (микросхема ОЗУ терпеливо в коробочке ждет своей очереди :ebiggrin: ).
Вот новые результаты:
из-за применения кэширования среднее время доступа при последовательном доступе к памяти составляет около 80 микросекунд.
Я использовал тест на Бейсике (в интерпретаторе TINYBASIC) для оценки влияния кэша на быстродействие в реальной задаче:

Attachment:
cpm_basic_test.png
cpm_basic_test.png [ 1.8 KiB | Viewed 4981 times ]


(размер линии кэша составляет 64 байта)
кол-во линий кэша время выполнения теста (секунды)
2 ................................... 345
4 ................................... 155
6 ................................... 80
8 ................................... 60


15 Apr 2017 10:52
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
А почему с карточкой? Разве с ОЗУ не проще?


15 Apr 2017 11:39
Profile
Retired

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

Проще, но мне с карточкой интереснее...


15 Apr 2017 13:03
Profile
Retired

Joined: 21 Mar 2017 06:37
Posts: 73
Reply with quote
Я запустил на моей Ардуинке компилятор языка Ada!!!
Компиляция программы TOWERS.ADA решения задачи о "Ханойской башне":

Attachment:
towers_ada_comp.png
towers_ada_comp.png [ 6.62 KiB | Viewed 4981 times ]


Запуск скомпилированной программы TOWERS.COM:

Attachment:
towers_ada_3.png
towers_ada_3.png [ 9.33 KiB | Viewed 4981 times ]


19 Apr 2017 12:35
Profile
Retired

Joined: 21 Mar 2017 06:37
Posts: 73
Reply with quote
Изменил подход к эмуляции НГМД — выделил на карточке область для хранения содержимого 100 дискет и командой монитора Z «вставляю» дискету в один из дисководов A, B, C или D
(например, команда ZB02 монтирует дискету с номером 02 в дисковод B)

Attachment:
cpm_floppy.png
cpm_floppy.png [ 9.22 KiB | Viewed 4981 times ]


Номера «вставленных» дискет запоминаются в EEPROM Arduino и восстанавливаются при повторном запуске эмулятора.


24 Apr 2017 00:48
Profile
Senior

Joined: 27 Jul 2015 15:20
Posts: 101
Reply with quote
:) Дисководы вверх ногами!..


24 Apr 2017 11:20
Profile
Retired

Joined: 21 Mar 2017 06:37
Posts: 73
Reply with quote
IgorR76 wrote:
:) Дисководы вверх ногами!..

Это да :ebiggrin: Не обратил внимания.
P.S. Поправил.


Last edited by FoxyLab on 02 Jan 2020 12:32, edited 1 time in total.



24 Apr 2017 12:04
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 121 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 9  Next

Who is online

Users browsing this forum: No registered users and 23 guests


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:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.