Съдържание:

Ретро CP/M самостоятелен емулатор: 8 стъпки
Ретро CP/M самостоятелен емулатор: 8 стъпки

Видео: Ретро CP/M самостоятелен емулатор: 8 стъпки

Видео: Ретро CP/M самостоятелен емулатор: 8 стъпки
Видео: Sound Skulptor TS500 Tape Simulator — пример звука с DM Kahn 2024, Юли
Anonim
Ретро CP/M самостоятелен емулатор
Ретро CP/M самостоятелен емулатор

Този проект използва VGA32 ESP v1.4 модул за изпълнение на комбинация или RunCPM и FabGL за предоставяне на самостоятелен компютър, работещ с еквивалентна система на CP/M 2.2. Популярен през 80 -те години като операционна система за малки компютри. Можете да се върнете назад във времето и да посетите стария софтуер като 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 IDE на ниво 1.8 или по -нова. Текущата версия е на уебсайта на Arduino.

Стартирайте Arduino и отворете прозореца Предпочитания.

Въведете една от връзките за издаване по -горе в полето Допълнителни URL адреси на мениджъра на борда. Можете да добавите няколко URL адреса, като ги разделите със запетаи.

Отворете Boards Manager от Tools> Board menu и инсталирайте esp32 платформата (и не забравяйте да изберете вашата ESP32 board от Tools> Board menu след инсталацията).

Стъпка 2: Добавяне на библиотеката FabGL към IDE

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

Използвайки празна скица в Arduino IDE, уверете се, че сте избрали ESP Board от менюто Tools, Boards. (По време на писането 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, отворено меню. Придвижете се до папката, която сте използвали по -горе.

Вътре в тази папка има друга, наречена 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 Command Console Processor. Копирайте този, наречен 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

/С/0

и т.н.

Ако получите грешки за това, че не можете да заредите CCP и т.н., когато се опитвате да стартирате от SD-картата, проверете отново дали всичко е в правилното темпо!

В опит да направя този етап малко по-лесен, качих готова версия по-горе, с добавен cp/m софтуер върху нея, както и я изтеглете от тук https://github.com/coopzone-dc/RunCPM/blob /master/… и просто го разархивирайте в корена на форматирана SD-карта. Трябва да започнете, след което можете да създадете свой собствен по -късно.

Препоръчвам също да прочетете ръководството за настройка на Github Repo, в него има описание на папките, от които се нуждаете.

Стъпка 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, четене при включване/нулиране). Този щифт определя напрежението за RAM, напрежение на вътрешния LDO (VDD_SDIO). Когато SD картата е налична, тя дърпа този щифт високо и ESP32 смята, че напрежението на RAM трябва да бъде 1,8 V, без SD картата този щифт има вътрешно изтегляне, за да настрои напрежението на RAM на 3,3 V. Това всъщност е споменато в бележките от примери, предоставени по проекта FABGL, да цитираме: бележки за GPIO 2 и 12 - GPIO2: може да причини проблеми при програмирането. GPIO2 също трябва да бъде оставен без връзка/плаващ, или да се задейства Low, за да влезе в серийния буутлоудър. В нормален режим на зареждане (висок GPIO0), GPIO2 се игнорира. - GPIO12: трябва да се избягва. Той избира напрежението на светкавицата. За да го използвате, деактивирайте настройката за откриване на GPIO12 efuses с: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V ПРЕДУПРЕЖДЕНИЕ !! Подходящ за ESP32 с 3.3V напрежение (ESP-WROOM-32). Това ще ЗАСТРИШЕ вашия ESP32, ако светкавицата не е 3.3V ЗАБЕЛЕЖКА1: заменете „/dev/cu. SLAB_USBtoUART“с вашия сериен порт ЗАБЕЛЕЖКА2: espefuse.py може да се изтегли от

Това допълнително отбелязва, че GPIO12 трябва да се избягва, никой не каза на производителя на VGA32 ESP картата!

ФИКСИРАНО: Опитах опцията за настройка на напрежението на светкавицата над използването на GPIO12 и мога да потвърдя на моя vga32 ESP, работи! Проблемът е отстранен, няма повече проблеми със SD картата. Призовавам ви да проверите, да проверите отново и да помислите внимателно за създаването на ТУГЛИНА, ако решите да опитате и нея. Не го препоръчвам като действие, но при мен се получи.

Препоръчано: