Оглавление:
- Шаг 1. Установите поддержку ESP32 для Arduino (необязательно)
- Шаг 2. Добавление библиотеки FabGL в среду IDE
- Шаг 3. Добавление дополнительной библиотеки SD-карты, используемой RunCPM
- Шаг 4. Загрузите измененный проект RunCPM
- Шаг 5. Откройте и просмотрите программу RunCPM и скомпилируйте
- Шаг 6. Создайте SD-карту, готовую для загрузки с RunCPM
- Шаг 7. Подключите монитор VGA и клавиатуру
- Шаг 8: Проблема с SD-картой на модуле VGA32
Видео: Автономный эмулятор Retro CP / M: 8 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
В этом проекте используется модуль VGA32 ESP v1.4 для запуска комбинации или RunCPM и FabGL для создания автономного компьютера, на котором запущена система, эквивалентная CP / M 2.2. Популярная в 1980-х годах как операционная система для небольших компьютеров. Вы можете вернуться в прошлое и вернуться к старым программам, таким как Wordstar, Supercalc, Adventure и Zork.
Это отдельная любезность проекта FabGL, который предоставил программное обеспечение для запуска стандартного монитора VGA и клавиатуры PS / 2.
Основная ОС - это модифицированная версия RunCPM, она была создана на основе оригинальной работы над Github, и я добавил библиотеку FabGL, чтобы ее можно было использовать на экране, а не на последовательной консоли.
Я просто хочу сказать большое спасибо обоим проектам. Продолжайте хорошую работу!
Программное обеспечение протестировано как минимум на двух версиях оборудования. Один VGA32 ESP v1.4 (продается в готовом виде). Вторую свою старую версию я построил из модуля Wroom ESP32 и утилизировал старые компьютеры.
На сайте Github ниже содержится важная информация об этих настройках, а также о модифицированном готовом к установке программном обеспечении.
Этот проект касается установки программного обеспечения, а не оборудования.
Запасы:
Модуль VGA32 ESP V1.4 (протестирован). Найдено на eBay / aliexpress / amazon и т. Д.
Arduino IDE, установленная на компьютере, я полагаю, если вы читаете это, у вас уже есть это.
Установите пакет поддержки ESP32 для Arduino IDE. https://github.com/espressif/arduino-esp32 См. шаг 1
Библиотека FabGL https://www.fabglib.org/, вам не нужно ничего загружать, IDE arduino может сделать это за нас, см. Шаг 2.
Загрузите копию измененного RunCPM с
Шаг 1. Установите поддержку ESP32 для Arduino (необязательно)
Возможно, вы уже это сделали, если да, то можете пропустить этот шаг.
посетите https://github.com/espressif/arduino-esp32 и следуйте инструкциям по установке с помощью менеджера досок, например:
Инструкции по установке с использованием Arduino IDE Boards Manager =========================================== ===============
Ссылка на стабильную версию:
Установите текущую исходную среду разработки Arduino на уровне 1.8 или новее. Текущая версия находится на сайте Arduino.
Запустите Arduino и откройте окно настроек.
Введите одну из приведенных выше ссылок на выпуск в поле Дополнительные URL-адреса Board Manager. Вы можете добавить несколько URL-адресов, разделяя их запятыми.
Откройте Boards Manager из меню Tools> Board и установите платформу esp32 (и не забудьте выбрать свою плату ESP32 в меню Tools> Board после установки).
Шаг 2. Добавление библиотеки FabGL в среду IDE
Используя пустой эскиз в среде Arduino IDE, убедитесь, что вы выбрали плату ESP в меню «Инструменты», «Платы». (На момент написания статьи VGA32 ESP не было в списке, я выбрал стандартную плату Dev Kit).
В меню «Эскиз» выберите «Включить библиотеку», затем выберите «Диспетчер библиотек».
В диалоговом окне поиска введите FabGL и дождитесь, пока он появится в списке ниже, а затем нажмите кнопку «Установить».
законченный
Шаг 3. Добавление дополнительной библиотеки SD-карты, используемой RunCPM
Это почти то же самое, что и предыдущий шаг, но вместо поиска FabGL для SDFat
В меню «Эскиз» выберите «Включить библиотеку», затем выберите «Диспетчер библиотек». В диалоговом окне поиска введите SDFat и подождите, пока он появится в списке ниже, вам, вероятно, придется прокрутить список вниз.
Вы можете выбрать одну из двух версий:
1, SdFat Билла Греймана
2, SdFat - Вилка Adafruit
Я пробовал оба, они оба работают нормально. Но проект RunCPM рекомендовал второй вариант «Adafruit Fork», однако в последних заметках он теперь говорит:
Все платы теперь используют библиотеку SdFat, отсюда:
Итак, теперь я выбираю первый вариант для этого проекта.
законченный
Шаг 4. Загрузите измененный проект RunCPM
Посетите сайт Github, Нажмите кнопку КОД и загрузите в виде ZIP-файла
Сохраните этот файл где-нибудь (обычно в каталоге под названием Arduino.
Разархивируйте файл в то же место, он создаст папку с именем RunCPM-master.
законченный
Шаг 5. Откройте и просмотрите программу RunCPM и скомпилируйте
Теперь вы можете использовать файл IDE Arduino, меню Открыть. Перейдите в папку, которую вы использовали с помощью uzip выше.
Внутри этой папки есть еще одна под названием RunCPM. Откройте папку.
Внутри этой папки находится файл.ino с именем RunCPM.ino. Это главный файл проекта - откройте его.
Теперь вы можете просмотреть проект, прочитать комментарии и т. Д. Внесите изменения, если вам нужно соответствовать вашей версии VGA32 -ESP. Он должен быть предварительно настроен для V1.4 платы.
Теперь вы можете нажать «Скомпилировать и загрузить», если у вас подключен VGA32 ESP, он загрузит эмулятор на ваше устройство.
ВАЖНО: VGA32 может иметь проблемы с SD-картой на этом этапе, поэтому не подключайте ее, чтобы знать. См. Последний шаг ниже для получения дополнительной информации.
Шаг 6. Создайте SD-карту, готовую для загрузки с RunCPM
Это, пожалуй, самая уловка. Я предлагаю вам прочитать README.md на сайте Github о том, как это сделать. Вот мой список того, что нужно делать:
Я предполагаю, что у вас есть пустая SD-карта или вы не заинтересованы в хранении каких-либо файлов на той, которая у вас есть, это сотрет ее.
1, отформатируйте SD-карту как FAT-32
2, Создайте несколько папок с именами A, B, C D и т. Д. (До P это будут дисководы при запуске CP / M). Обратите внимание, что это заглавные буквы.
3. В каждой создаваемой папке создайте еще одну папку с именем 0 (это ноль) и, возможно, 1, 2, 3 и т. Д. (До 15). Затем папки являются пользовательскими областями в эмуляции CP / M. Для начала вам нужна только папка 0.
4. В папке загруженного проекта в каталоге arduino найдите папку с именем CCP. Он содержит различные версии процессора командной консоли CP / M. Скопируйте тот, который называется CCP-DR.60K, в корень вашей SD-карты.
5. Теперь найдите в каталоге проекта папку с именем DISK. Она содержит файл A. ZIP. Вам необходимо распаковать этот файл в каталог с именем A / 0 / на вашей SD-карте. (также см. файл 1streadme для получения дополнительной информации). К сожалению, у него нет «0» в списке папок, поэтому вам нужно сначала разархивировать во временную папку, а затем скопировать содержимое папки A в A / 0 / на SD-карте.
6. Когда вы выполните вышеуказанные шаги, у вас будет SD-карта с такой структурой:
F: CCP-DR.60K
/ A / 0
/1STREAD. ME
/ASM. COM
/…. так далее
/ B / 0
/ C / 0
так далее
Если при загрузке с SD-карты вы получаете сообщение о невозможности загрузки CCP и т. Д., Проверьте еще раз, что у вас все работает в правильном темпе!
Пытаясь упростить этот этап, я загрузил готовую версию вышеуказанного с добавлением программного обеспечения cp / m, а также загрузил его отсюда https://github.com/coopzone-dc/RunCPM/blob / master /… и просто разархивируйте его в корень отформатированной SD-карты. Это должно помочь вам начать работу, а потом вы сможете создать свою собственную.
Я также рекомендую вам прочитать руководство по установке в репозитории Github, в нем есть описание необходимых вам папок.
Шаг 7. Подключите монитор VGA и клавиатуру
Отключите питание карты VGA32 ESP.
Подключите монитор VGA
Подключите клавиатуру PS / 2. Повторно подключите питание к карте VGA32 ESP, вы должны увидеть, как мигают индикаторы клавиатуры, и примерно через 10 секунд на экране появится изображение с подсказкой CP / M!
Важно: VGA32 имеет проблему при использовании SD-карты и программного сброса, поэтому важно ВЫКЛЮЧИТЬ ПИТАНИЕ в качестве первого шага выше, см. Последний шаг для получения дополнительной информации.
Вы уходите…
Шаг 8: Проблема с SD-картой на модуле VGA32
На фотографии выше показана моя вторая карта ESP32 (самодельная), она отлично работает и не имеет проблемы, указанной ниже. Я знаю, что это не проблема программного обеспечения, пожалуйста, прочтите ниже о версии VGA32.
В моем модуле VG32 ESP (v1.4) SD-карта использует GPIO12, это не рекомендуется Espressif Systems, поскольку этот вывод используется при включении питания для определения рабочего напряжения для внутренней памяти. Я действительно хотел бы, чтобы кто-нибудь сказал об этом парню, который делает эту карту VGA32! Возможно, он отличается от вашего, поэтому, надеюсь, у вас не будет этой проблемы.
Проблемы следующие:
1. Невозможно загрузить эскиз, когда карта подключена.
2, после нажатия кнопки сброса он блокируется до тех пор, пока SD-карта не будет удалена. Затем загружается экран с сообщением об отсутствии SD-карты! Вы можете вставить карту и снова сбросить, и она будет работать во второй раз.
Эта проблема исправима (но есть риск) см. README.md на
или вы всегда можете резко выключить / включить питание, чтобы запустить плату. По некоторым причинам это работает нормально. Также, если вам нужно повторно загрузить программное обеспечение RunCPM, вы должны сначала удалить SD-карту.
Это отрывок из README. MD, объясняющий проблему. Я использовал исправление, и оно работает нормально, НО из-за его природы риск лежит на вас, читайте дальше …
Однако настройки VGA32 ESP, похоже, конфликтуют с настройками GPIO для SD-карты.
Он действительно работает, но для загрузки вам необходимо удалить SD-карту, а после мягкого сброса вы должны удалить SD-карту, а затем заменить ее, а затем выполнить еще один сброс. Он работает нормально после включения или аппаратного сброса. Если вы можете помочь исправить это, дайте мне знать. ОБНОВЛЕНИЕ 11 октября 2020: VGA32 ESP v1.4 использует GPIO12 (MTDI, чтение при включении / сбросе). Этот вывод определяет напряжение для ОЗУ, напряжение внутреннего LDO (VDD_SDIO). Когда SD-карта присутствует, она подтягивает этот контакт к высокому уровню, и ESP32 считает, что напряжение RAM должно быть 1,8 В, без SD-карты этот контакт имеет внутреннее вытягивание, чтобы установить напряжение RAM на 3,3 В. Это фактически упоминается в примечаниях к примерам, приведенным в проекте FABGL, чтобы процитировать: примечания о GPIO 2 и 12 - GPIO2: может вызвать проблемы при программировании. GPIO2 также должен быть либо оставлен неподключенным / плавающим, либо переведен в низкий уровень, чтобы войти в последовательный загрузчик. В нормальном режиме загрузки (высокий уровень GPIO0) GPIO2 игнорируется. - GPIO12: следует избегать. Он выбирает напряжение вспышки. Чтобы использовать его, отключите настройки обнаружения GPIO12 с помощью: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! Подходит для ESP32 с напряжением 3,3 В (ESP-WROOM-32). Это КРИПИЧЕСКИ ваш ESP32, если флэш-память не 3,3 В ПРИМЕЧАНИЕ1: замените "/dev/cu. SLAB_USBtoUART" на свой последовательный порт. ПРИМЕЧАНИЕ2: espefuse.py можно загрузить с
Здесь также отмечается, что следует избегать использования GPIO12, к сожалению, никто не сказал производителю карты VGA32 ESP!
ИСПРАВЛЕНО: я попробовал установить напряжение вспышки, чтобы не использовать GPIO12, и могу подтвердить на моем vga32 ESP, это работает! Проблема устранена, больше нет проблем с SD-картой. Я призываю вас проверить, дважды проверить и хорошенько подумать о создании КИРПИЧА, если вы решите попробовать его. Я не рекомендую это как действие, но для меня это сработало.
Рекомендуемые:
Виниловый эмулятор Sonos Spotify: 26 шагов
Sonos Spotify Vinyl Emulator: обратите внимание, что это не последний набор инструкций для этого проекта: пожалуйста, посетите https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d для получения последнего набора Инструкции и поддержка Слушать музыку на виниле - это здорово. Его
KIM Uno - эмулятор микропроцессора Dev Kit за 5 евро: 13 шагов (с изображениями)
KIM Uno - эмулятор набора для разработки микропроцессоров за 5 евро: KIM Uno - это портативный программно-определяемый набор для разработки (ретро) микропроцессоров. Но позвольте мне представить идею этого, вернувшись в прошлое: еще в конце 2018 года мне пришло в голову, что я хотел создать небольшой портативный микропроцессорный комплект для разработки, просто как
Raspberry Pi 3: Эмулятор ретро-аркады: 7 шагов
Raspberry Pi 3: Retro Arcade Emulator: Моя мотивация для этого - отсутствие технической грамотности в сегодняшнем мире. Даже при изобилии компьютеров и небольших устройств люди по-прежнему очень не осведомлены об основных функциях вещей, которые они используют каждый день. Я думаю, что это будет
Эмулятор компьютерной мыши с использованием Arduino Uno и датчиков: 8 шагов
Эмулятор мыши ПК с использованием Arduino Uno и датчиков. В этом руководстве мы собираемся создать прототип эмулятора мыши. Эмулятор мыши - это устройство, которое можно использовать, когда мышь не работает должным образом. Датчики используются для управления мышью. движений. Проект состоит из одной ул
Как запустить игровой эмулятор: 7 шагов
Как запустить игровой эмулятор: согласно Википедии, эмулятор в компьютерных науках дублирует (обеспечивает имитацию) функции одной системы с использованием другой системы, так что вторая система ведет себя как (и кажется) первой системой. Сосредоточьтесь на точном воспроизведении