Arduino Nano - эмулятор компьютера под управлением ОС CP/M
Moderator: Shaos
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Сделал эмуляцию устройства управления памятью (MMU) с переключением банков, что позволило иметь доступ к 512 КБайтам памяти.
Я разделил адресное пространство 0x0000...0xFFFF на 16 блоков (с номерами от 0x0 до 0xF) размером по 4 КБайта. Каждый блок может быть отображен в один из 8 банков (размер банка - 64 КБайта). Соответствие банков блокам определяется значениями (номерами банков от 0 до 7) в наборе из 16 регистров (при запуске эмулятора активен только банк 0).
Для задания номера банка для определенного блока используются две команды вывода в порт:
OUT D0, номер_блока
OUT D1, номер_банка
Также для переключения блока памяти X на банк памяти Y можно использовать команду монитора YXY.
Я разделил адресное пространство 0x0000...0xFFFF на 16 блоков (с номерами от 0x0 до 0xF) размером по 4 КБайта. Каждый блок может быть отображен в один из 8 банков (размер банка - 64 КБайта). Соответствие банков блокам определяется значениями (номерами банков от 0 до 7) в наборе из 16 регистров (при запуске эмулятора активен только банк 0).
Для задания номера банка для определенного блока используются две команды вывода в порт:
OUT D0, номер_блока
OUT D1, номер_банка
Также для переключения блока памяти X на банк памяти Y можно использовать команду монитора YXY.
Last edited by FoxyLab on 02 Jan 2020 12:32, edited 2 times in total.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Тестирование 8 банков (512 килобайт) памяти:
You do not have the required permissions to view the files attached to this post.
Last edited by FoxyLab on 02 Jan 2020 12:33, edited 1 time in total.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
cpm4nano Mk II
(использовал адаптер для подключения microSD-карточки)
(использовал адаптер для подключения microSD-карточки)
You do not have the required permissions to view the files attached to this post.
Last edited by FoxyLab on 02 Jan 2020 12:32, edited 1 time in total.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Новый рекорд - я прогнал без сбоев 7400 проходов теста памяти (ардуинка непрерывно молотила больше двух суток):
Так что опасения в быстром выходе из строя карточки немного преувеличены.
Так что опасения в быстром выходе из строя карточки немного преувеличены.
You do not have the required permissions to view the files attached to this post.
Last edited by FoxyLab on 02 Jan 2020 12:33, edited 1 time in total.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Новости проекта:
- подключил два чипа FRAM (32 КБайта каждый), причем сделал автоконфигурацию чипов (их может быть до 8 ) по банкам, так что эти два чипа закрыли нулевой банк ОЗУ
- отвязал при этом аппаратный I2C от прерываний (отказавшись заодно от использования Wire.h)
- отвязал работу с UART от прерываний
- от прерываний я отвязался не зря - таймер 1 после этих ухищрений позволил генерировать частоту строчной развертки для вывода на ТВ; я смог подобрать набор ассемблерных команд, которые позволят выводить пиксел за 7 тактов процессора (причем знаки берутся из знакогенератора - массива во флэш-памяти, а не экранного буфера в ОЗУ), а это при 56 мкс активной части строки даст 128 пикселей, т.е. Arduino Nano (одна!!!) сможет и эмулировать, и выводить на экран через композитный вход ТВ 24 символа в строке (при шрифте 5 x 8 ), хотя и утратив несколько в производительности (но все же не до такой степени, как ZX80 сэра Клайва
)
- переписал код эмуляции, сэкономив несколько килобайт флэша
Продолжение (и новая версия кода на гитхабе, а также дополненное описание на https://acdc.foxylab.com/node/76) следует
- подключил два чипа FRAM (32 КБайта каждый), причем сделал автоконфигурацию чипов (их может быть до 8 ) по банкам, так что эти два чипа закрыли нулевой банк ОЗУ
- отвязал при этом аппаратный I2C от прерываний (отказавшись заодно от использования Wire.h)
- отвязал работу с UART от прерываний
- от прерываний я отвязался не зря - таймер 1 после этих ухищрений позволил генерировать частоту строчной развертки для вывода на ТВ; я смог подобрать набор ассемблерных команд, которые позволят выводить пиксел за 7 тактов процессора (причем знаки берутся из знакогенератора - массива во флэш-памяти, а не экранного буфера в ОЗУ), а это при 56 мкс активной части строки даст 128 пикселей, т.е. Arduino Nano (одна!!!) сможет и эмулировать, и выводить на экран через композитный вход ТВ 24 символа в строке (при шрифте 5 x 8 ), хотя и утратив несколько в производительности (но все же не до такой степени, как ZX80 сэра Клайва

- переписал код эмуляции, сэкономив несколько килобайт флэша
Продолжение (и новая версия кода на гитхабе, а также дополненное описание на https://acdc.foxylab.com/node/76) следует
Last edited by FoxyLab on 02 Jan 2020 12:32, edited 1 time in total.
-
- Banned
- Posts: 412
- Joined: 29 Jun 2018 08:48
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
смочь то сможет, но что это даёт практически на фоне смешных цен на графические индикаторы любого типоразмера?FoxyLab wrote:Arduino Nano (одна!!!) сможет и эмулировать, и выводить на экран через композитный вход ТВ 24 символа в строке (при шрифте 5 x 8 )
ты сможешь носить в кармане устройство, а телевизор будет стоять дома?
-
- Banned
- Posts: 412
- Joined: 29 Jun 2018 08:48
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
https://www.acdc.foxylab.com походу, враги зобанили - перетащи всё бобро на https://pages.github.com или исправь файл реадми https://acdc.foxylab.com/
спасибо.
спасибо.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
без www ! https://acdc.foxylab.com (где я упоминал www acdc foxylab com?)Клапауций wrote:www.acdc.foxylab.com походу, враги зобанили - перетащи всё бобро на https://pages.github.com или исправь файл реадми https://acdc.foxylab.com/
спасибо.
Это же моя VPS-ка, перетаскивать с VPS на банальный файловый хостинг, извольте

Last edited by FoxyLab on 02 Jan 2020 12:32, edited 1 time in total.
-
- Banned
- Posts: 412
- Joined: 29 Jun 2018 08:48
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
https://github.com/Dreamy16101976/cpm4nano файл README.mdFoxyLab wrote: (где я упоминал www acdc foxylab com?)
-
- Banned
- Posts: 412
- Joined: 29 Jun 2018 08:48
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
я подумал, что на помойке и лежит, а ты не проплатил и всё похерилось медной п...FoxyLab wrote:Это же моя VPS-ка, перетаскивать с VPS на банальный файловый хостинг, извольте
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
old schoolКлапауций wrote:смочь то сможет, но что это даёт практически на фоне смешных цен на графические индикаторы любого типоразмера?FoxyLab wrote:Arduino Nano (одна!!!) сможет и эмулировать, и выводить на экран через композитный вход ТВ 24 символа в строке (при шрифте 5 x 8 )
ты сможешь носить в кармане устройство, а телевизор будет стоять дома?


Last edited by FoxyLab on 02 Jan 2020 12:33, edited 1 time in total.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Спасибо, исправилКлапауций wrote:https://github.com/Dreamy16101976/cpm4nano файл README.mdFoxyLab wrote: (где я упоминал www acdc foxylab com?)
Last edited by FoxyLab on 02 Jan 2020 12:33, edited 2 times in total.
-
- Retired
- Posts: 73
- Joined: 21 Mar 2017 06:37
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Клапауций wrote:я подумал, что на помойке и лежит, а ты не проплатил и всё похерилось медной п...FoxyLab wrote:Это же моя VPS-ка, перетаскивать с VPS на банальный файловый хостинг, извольте

Last edited by FoxyLab on 02 Jan 2020 12:33, edited 1 time in total.
-
- Banned
- Posts: 412
- Joined: 29 Jun 2018 08:48
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
"отвязал" - это значит "I2C и UART теперь не работает"?FoxyLab wrote: - отвязал при этом аппаратный I2C от прерываний (отказавшись заодно от использования Wire.h)
- отвязал работу с UART от прерываний
т.е. теперь доступа к балалайке по интерфейсу UART и I2C - нет?
или "есть, но как-то альтернативно"?
таймер 2 для этой цели не подходит?FoxyLab wrote: - от прерываний я отвязался не зря - таймер 1 после этих ухищрений позволил генерировать...
-
- Senior
- Posts: 102
- Joined: 27 Jul 2015 15:20
Re: Arduino Nano - эмулятор компьютера под управлением ОС CP
Совершенный offtop:
Что интересного в вертолете R66 со сквоком 7000? Обычный гражданский.
Что интересного в вертолете R66 со сквоком 7000? Обычный гражданский.