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

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

Moderator: Shaos

FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

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

Post by FoxyLab »

rw6hrm wrote:уже сейчас на своей машинке выполняю практически всю работу, что делал ранее на писюке, в т.ч. набор текстов (использую SED)
Excellent
Last edited by FoxyLab on 02 Jan 2020 12:38, edited 1 time in total.
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

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

Post by FoxyLab »

Добавил подстрочный "аппаратный" курсор:
You do not have the required permissions to view the files attached to this post.
Last edited by FoxyLab on 02 Jan 2020 12:39, edited 1 time in total.
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

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

Post by FoxyLab »

Испытал на "нанокомпьютере" компилятор Бейсика:
компиляция
cpm4nano_cb80.png
линковка
cpm4nano_lk80.png
запуск программы :ewink:
cpm4nano_cbasic_hello.png
Работает компилятор весьма неспешно, особенно линкер - около 20 :rotate: минут, причем критична именнo скорость доступа к памяти, так что время работы линкера использую как тестовый показатель - поэкспериментирую с кэшированием и типами памяти.
You do not have the required permissions to view the files attached to this post.
Last edited by FoxyLab on 02 Jan 2020 12:38, edited 1 time in total.
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

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

Post by FoxyLab »

45 символов в строке (2 машинных цикла на пиксель):
cpm4nano_font_45.png
При попытке вывести около 60 символов столкнулся со странным эффектом - пиксели соседних строк оказались смещены примерно на пол-пикселя, при этом на вывод одного пикселя тратился всего один машинный цикл - вывод в порт из регистров. Мне на ум пришла странная гипотеза - задержка в выводе в порт ATmega из разных регистров разная (в пределах одного машинного цикла) :question:
You do not have the required permissions to view the files attached to this post.
Last edited by FoxyLab on 02 Jan 2020 12:39, edited 1 time in total.
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

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

Post by FoxyLab »

Huzza
Мой симулятор успешно прошел не поддававшийся до сих пор тест:
You do not have the required permissions to view the files attached to this post.
Last edited by FoxyLab on 02 Jan 2020 12:38, edited 1 time in total.
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

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

Post by FoxyLab »

Запуск в эмуляторе эпической игры (написанной в этом случае на Аде):
You do not have the required permissions to view the files attached to this post.
Last edited by FoxyLab on 02 Jan 2020 12:39, edited 1 time in total.
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

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

Post by Alekcandr »

FoxyLab wrote:Запуск в эмуляторе эпической игры (написанной в этом случае на Аде)
Любая пошаговая игра в текстовом режиме эпична :)

Других и не было в моей (нашей) юности у нас. Бо нашей заточенной промышленности на военку и нафиг был не нужен графический контроллер.

Помню перенесли мне родители распечатку на кальке (не совсем калька, вроде пергаментом звался). То была игра на бейсике. Надо было развивать королевство. Выращивать пшеницу, защищать границу от набегов, устраивать праздники, торговать и исчо чего-то. Все это проделывалось за счет валюты в игре и населения.

Удивительно что вся эта игра влезла в комп РАДИО-86РК (КР-02) с 16 кБ на борту. Ну и естественно пришлось ее слегка подрихтовать, бо исходный диалект бейсика не совсем заходил в интерпретатор МИКРОН :)
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
User avatar
barsik
Doomed
Posts: 585
Joined: 19 Feb 2017 03:46
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь

Post by barsik »

FoxyLab wrote:Мой симулятор успешно прошёл не поддававшийся до сих пор тест
С помощью CP/M программы CPUTEST.COM можно оценить скорость CP/M-компьютера.

На базовом РК86 этот тест прогоняется за 182 секунды, а на базовом ОРИОНЕ с процессором Z80 - за 96 секунд. Для того, чтобы исключить время загрузки с дискеты, я запускал этот тест из под отладчика командой G100 (иначе оценка скорости CPU неверная, т.к программный контроллер дисковода РК86 примерно в три раза более медленный, чем аппаратный контроллер на ВГ93 в DD-формате).

А за сколько секунд прогоняется этот тест у Вас?
Last edited by barsik on 27 Sep 2018 10:12, edited 3 times in total.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

FoxyLab wrote:... а здесь - приходится решать много интересных проблем.
С Днём Рождения Вас, коллега :exclaim:
FoxyLab42.gif
Надеюсь, своими оригинальными решениями интересных проблем Вы нас еще не раз порадуете!
Удачи, и творческих упехов Вам! :kruto:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

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

Post by askfind »

Классная штука. Запускал. Медленно немного. На esp8266 шустрее CP/M работает и даже умеет в интернет сеть смотреть.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

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

Post by FoxyLab »

askfind wrote:Классная штука.
Спасибо!
askfind wrote:Запускал. Медленно немного.
Версия с SDRAM, которую Вы запускали, все-таки медленнее, чем текущий вариант с FRAM (кэширование помогает при последовательном доступе, но при произвольном практически бессильно). Но скорость I2C-шины, конечно, является тормозящим фактором. Можно попробовать SPI RAM (у меня даже есть один чип, на половину памяти :ebiggrin: ), но там есть свои заморочки.
P.S. В "старом" коде осталась ошибка в эмуляции, из-за которой он не проходил некоторые тесты. Я ее исправил, но из-за изменения структуры кода я не могу сопоставить две версии напрямую, а что я исправил конкретно, я банально забыл :esurprised: Поэтому она так и останется скорее всего там навечно, такие дела :ewink:
askfind wrote:На esp8266 шустрее CP/M работает и даже умеет в интернет сеть смотреть.
Это, естественно, так. Вариантов "железных" эмуляторов много, FPGA бы вообще всех уделал, но челлендж был в том, чтобы 328-я атмега (в формате Arduino Nano) одна эмулировала 8080, работала с памятью, карточкой, принимала входной поток (от компьютера или клавиатуры через STM-преобразователь) и выводила видеосигнал (с дублированием в последовательный канал). Такое поделие, как мне кажется, только одно - cpm4nano :esmile:
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

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

Post by Lavr »

A вы не могли бы в ваших предыдущих постах на этой странице загрузить картинки сюда на форум?
А то мне их никак не видно с вашего хостинга.. :osad:
FoxPic.gif
Первый раз подумал - непонятный сбой какой-то, но сейчас вижу, что тенденция... :-?
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

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

Post by askfind »

FoxyLab wrote:"Привет, мир!" на FORTH-83
Отличный результат!
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
FoxyLab
Retired
Posts: 73
Joined: 21 Mar 2017 06:37

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

Post by FoxyLab »

Некоторые тесты быстродействия (в FAST-режиме):

Длительность прогона 32768 команд:
(при выборке из памяти было включено кэширование)

NOP
без выборки из памяти - 0,6 сек
с выборкой из памяти - 2,1 сек

MOV A,A
без выборки из памяти - 0,7 сек
с выборкой из памяти - 2,2 сек

DAA
без выборки из памяти - 0,8 сек
с выборкой из памяти - 2,3 сек

Без кэша заметно медленнее - например, прогон NOP требует больше 6 секунд.
User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

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

Post by askfind »

FoxyLab wrote:Выложил на YouTube видео работы моего проекта в реальном времени:
https://youtu.be/LHFmt3qWAuY
Это полный тормоз!

На собранном руками машине CP/M-82 в отделе института 8080A (F=2MGz) всё было шустро.

Реализация на AVR именно по этой причине и не понравилась.

Очень медленно.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)