Оглавление:

Автономный эмулятор Retro CP / M: 8 шагов
Автономный эмулятор Retro CP / M: 8 шагов

Видео: Автономный эмулятор Retro CP / M: 8 шагов

Видео: Автономный эмулятор Retro CP / M: 8 шагов
Видео: Turbo Pascal 2024, Ноябрь
Anonim
Автономный эмулятор Retro CP / M
Автономный эмулятор Retro CP / M

В этом проекте используется модуль 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 (необязательно)

Установите поддержку ESP32 для Arduino (необязательно)
Установите поддержку 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

Добавление библиотеки FabGL в IDE
Добавление библиотеки FabGL в IDE
Добавление библиотеки FabGL в IDE
Добавление библиотеки FabGL в IDE

Используя пустой эскиз в среде Arduino IDE, убедитесь, что вы выбрали плату ESP в меню «Инструменты», «Платы». (На момент написания статьи VGA32 ESP не было в списке, я выбрал стандартную плату Dev Kit).

В меню «Эскиз» выберите «Включить библиотеку», затем выберите «Диспетчер библиотек».

В диалоговом окне поиска введите FabGL и дождитесь, пока он появится в списке ниже, а затем нажмите кнопку «Установить».

законченный

Шаг 3. Добавление дополнительной библиотеки SD-карты, используемой RunCPM

Добавление дополнительной библиотеки SD-карты, используемой RunCPM
Добавление дополнительной библиотеки SD-карты, используемой RunCPM

Это почти то же самое, что и предыдущий шаг, но вместо поиска FabGL для SDFat

В меню «Эскиз» выберите «Включить библиотеку», затем выберите «Диспетчер библиотек». В диалоговом окне поиска введите SDFat и подождите, пока он появится в списке ниже, вам, вероятно, придется прокрутить список вниз.

Вы можете выбрать одну из двух версий:

1, SdFat Билла Греймана

2, SdFat - Вилка Adafruit

Я пробовал оба, они оба работают нормально. Но проект RunCPM рекомендовал второй вариант «Adafruit Fork», однако в последних заметках он теперь говорит:

Все платы теперь используют библиотеку SdFat, отсюда:

Итак, теперь я выбираю первый вариант для этого проекта.

законченный

Шаг 4. Загрузите измененный проект RunCPM

Загрузите измененный проект RunCPM
Загрузите измененный проект RunCPM
Загрузите измененный проект RunCPM
Загрузите измененный проект RunCPM

Посетите сайт Github, Нажмите кнопку КОД и загрузите в виде ZIP-файла

Сохраните этот файл где-нибудь (обычно в каталоге под названием Arduino.

Разархивируйте файл в то же место, он создаст папку с именем RunCPM-master.

законченный

Шаг 5. Откройте и просмотрите программу RunCPM и скомпилируйте

Откройте и просмотрите программу RunCPM и скомпилируйте
Откройте и просмотрите программу 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 и клавиатуру

Подключите монитор VGA и клавиатуру
Подключите монитор VGA и клавиатуру

Отключите питание карты VGA32 ESP.

Подключите монитор VGA

Подключите клавиатуру PS / 2. Повторно подключите питание к карте VGA32 ESP, вы должны увидеть, как мигают индикаторы клавиатуры, и примерно через 10 секунд на экране появится изображение с подсказкой CP / M!

Важно: VGA32 имеет проблему при использовании SD-карты и программного сброса, поэтому важно ВЫКЛЮЧИТЬ ПИТАНИЕ в качестве первого шага выше, см. Последний шаг для получения дополнительной информации.

Вы уходите…

Шаг 8: Проблема с SD-картой на модуле VGA32

Проблема с SD-картой на модуле VGA32
Проблема с SD-картой на модуле VGA32
Проблема с SD-картой на модуле VGA32
Проблема с 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-картой. Я призываю вас проверить, дважды проверить и хорошенько подумать о создании КИРПИЧА, если вы решите попробовать его. Я не рекомендую это как действие, но для меня это сработало.

Рекомендуемые: