Mundarija:

Retro CP/M yolg'iz emulyatori: 8 qadam
Retro CP/M yolg'iz emulyatori: 8 qadam

Video: Retro CP/M yolg'iz emulyatori: 8 qadam

Video: Retro CP/M yolg'iz emulyatori: 8 qadam
Video: Охунжон Мадалиев - Ёлгиз аёл | Ohunjon Madaliyev - Yolg`iz ayol 2024, Iyul
Anonim
Retro CP/M yolg'iz emulyatori
Retro CP/M yolg'iz emulyatori

Ushbu loyiha kombinatsiyani ishga tushirish uchun VGA32 ESP v1.4 modulidan foydalanadi yoki CP/M 2.2 ga teng tizimli mustaqil kompyuterni ishga tushirish uchun RunCPM va FabGL -ni ishlatadi. 1980 -yillarda kichik kompyuterlar uchun operatsion tizim sifatida mashhur bo'lgan. Siz vaqtni ortga qaytarib, Wordstar, Supercalc, Sarguzasht va Zork kabi eski dasturlarga qaytishingiz mumkin.

Bu dasturiy ta'minotni standart VGA monitorini va PS/2 klaviaturasini ishga tushirishni ta'minlagan FabGL loyihasining mustaqil izni.

Asosiy OS - bu o'zgartirilgan RunCPM versiyasi, u Github -dagi asl ishdan ajratilgan va men uni seriyali konsolda emas, balki ekranda ishlatish uchun FabGL kutubxonasini qo'shganman.

Men ikkala loyihaga ham katta rahmat aytmoqchiman. Yaxshi ishlashda davom eting!

Dasturiy ta'minotning kamida ikkita versiyasida sinovdan o'tgan. VGA32 ESP v1.4 (tayyor holda sotiladi). Ikkinchidan, mening eski versiyam, men Wroom ESP32 modulidan va eski kompyuterlarning parchalarini qurdim.

Quyidagi Github sayti ushbu sozlamalar va o'zgartirishga tayyor dasturiy ta'minot haqida muhim ma'lumotlarni o'z ichiga oladi.

Bu loyiha apparat haqida emas, balki dasturiy ta'minotni o'rnatish haqida.

Ta'minot:

VGA32 ESP V1.4 moduli (sinovdan o'tgan). EBay / aliexpress / amazon va boshqalarda topilgan

Kompyuterda o'rnatilgan Arduino IDE, menimcha, agar siz buni o'qiyotgan bo'lsangiz, sizda bu bor.

Arduino IDE uchun ESP32 qo'llab -quvvatlash paketini o'rnating. https://github.com/espressif/arduino-esp32 1-qadamga qarang

FabGL kutubxonasi https://www.fabglib.org/ sizga hech narsa yuklab olishning hojati yo'q, arduino IDE buni biz uchun qila oladi, 2 -bosqichga qarang.

O'zgartirilgan RunCPM nusxasini https://github.com/coopzone-dc/RunCPM dan yuklab oling

1 -qadam: Arduino uchun ESP32 qo'llab -quvvatlashini o'rnating (ixtiyoriy)

Arduino uchun ESP32 qo'llab -quvvatlashini o'rnating (ixtiyoriy)
Arduino uchun ESP32 qo'llab -quvvatlashini o'rnating (ixtiyoriy)

Siz buni allaqachon qilgan bo'lardingiz, agar mavjud bo'lsa, bu bosqichni o'tkazib yuborishingiz mumkin.

github.com/espressif/arduino-esp32 saytiga tashrif buyuring va taxtalar menejeri yordamida o'rnatish ko'rsatmalariga amal qiling:

Arduino IDE Boards Manager yordamida o'rnatish ko'rsatmalari ======================================= ================

Barqaror chiqarish havolasi:

Hozirgi yuqori oqimdagi Arduino IDE -ni 1,8 yoki undan yuqori darajaga o'rnating. Hozirgi versiya Arduino veb -saytida.

Arduino -ni ishga tushiring va sozlamalar oynasini oching.

Qo'shimcha boshqaruv menejeri URL -lari maydoniga yuqoridagi chiqarish havolalaridan birini kiriting. Siz bir nechta URL manzillarini vergul bilan ajratib qo'shishingiz mumkin.

"Asboblar"> "Kengash" menyusidan "Boards Manager" ni oching va esp32 platformasini o'rnating (va o'rnatgandan so'ng "Tools> Board menyusidan ESP32 platasini tanlashni unutmang).

2 -qadam: FabGL kutubxonasini IDE -ga qo'shish

FabGL kutubxonasini IDE -ga qo'shish
FabGL kutubxonasini IDE -ga qo'shish
FabGL kutubxonasini IDE -ga qo'shish
FabGL kutubxonasini IDE -ga qo'shish

Arduino IDE -dagi bo'sh eskizdan foydalanib, asboblar menyusi, boshqaruv panelidan ESP kartangizni tanlaganingizga ishonch hosil qiling. (Yozish paytida VGA32 ESP ro'yxatga olinmagan, men umumiy Dev Kit kartasini tanlayman).

Eskiz menyusidan Kutubxonani qo'shish -ni, so'ng Kutubxona menejerini tanlang.

Qidiruv dialogiga FabGL kiriting va uning quyidagi ro'yxatda paydo bo'lishini kuting, endi O'rnatish tugmasini bosing.

tugadi

3-qadam: RunCPM tomonidan ishlatiladigan qo'shimcha SD-kartali kutubxonani qo'shish

RunCPM tomonidan ishlatiladigan qo'shimcha SD-kartali kutubxonani qo'shish
RunCPM tomonidan ishlatiladigan qo'shimcha SD-kartali kutubxonani qo'shish

Bu deyarli oldingi qadam bilan bir xil, lekin FabGL o'rniga SDFat qidiruvi

Eskiz menyusidan Kutubxonani qo'shish -ni, so'ng Kutubxona menejerini tanlang. Qidiruv muloqot oynasida SDFat -ni kiriting va uning quyidagi ro'yxatda paydo bo'lishini kuting, ehtimol siz ro'yxatni pastga aylantirishingiz kerak bo'ladi.

Siz ikkita versiyani tanlashingiz mumkin:

1, Bill Greiman tomonidan SdFat

2, SdFat - Adafruit vilkasi

Men ikkalasini ham sinab ko'rdim, ikkalasi ham yaxshi ishlaydi. Ammo RunCPM loyihasi "Adafruit Fork" ikkinchi variantini tavsiya qildi, ammo oxirgi yozuvlarda hozir shunday deyilgan:

Endi barcha taxtalar SdFat kutubxonasidan foydalanadi, bu erdan:

Endi men ushbu loyihaning birinchi variantini tanlayman.

tugadi

4 -qadam: O'zgartirilgan RunCPM loyihasini yuklab oling

O'zgartirilgan RunCPM loyihasini yuklab oling
O'zgartirilgan RunCPM loyihasini yuklab oling
O'zgartirilgan RunCPM loyihasini yuklab oling
O'zgartirilgan RunCPM loyihasini yuklab oling

Github saytiga tashrif buyuring, CODE tugmasini bosing va ZIP fayli sifatida yuklab oling

Bu faylni biror joyga saqlang (odatda Arduino deb nomlangan katalogda.

Faylni o'sha joyga oching, u RunCPM-master nomli papkani chiqaradi

tugadi

5 -qadam: RunCPM dasturini oching va ko'rib chiqing va kompilyatsiya qiling

RunCPM dasturini oching va ko'rib chiqing va kompilyatsiya qiling
RunCPM dasturini oching va ko'rib chiqing va kompilyatsiya qiling

Endi siz Arduino IDE faylini ochish menyusidan foydalanishingiz mumkin. Yuqorida ochilgan papkaga o'ting.

Bu papkaning ichida RunCPM deb nomlangan boshqasi bor. Jildni oching.

Bu papkaning ichida RunCPM.ino deb nomlangan.ino fayli bor. Bu asosiy loyiha fayli - uni oching.

Siz hozir loyihani ko'rishingiz, sharhlarni o'qishingiz va hokazolarni o'zgartirishingiz mumkin, agar VGA32 -ESP versiyangizga mos kelsa. Kengashning V1.4 uchun oldindan tuzilgan bo'lishi kerak.

Siz hozir VGA32 ESP ulangan deb hisoblasangiz, kompilyatsiya va yuklashni bosishingiz mumkin, u emulyatorni qurilmangizga yuklaydi.

MUHIM: VGA32 hozirda SD-kartada muammoga duch kelishi mumkin, shuning uchun uni rozetkaga ulamang. Qo'shimcha ma'lumot olish uchun quyidagi oxirgi qadamni ko'ring.

6-qadam: RunCPM-ni ishga tushirishga tayyor bo'lgan SD-kartani yarating

Bu, ehtimol, qadamlarning eng hiylasi. Buni qanday qilish haqida Github saytining README.md -ni o'qishni taklif qilaman. Mana nima qilishim kerakligi ro'yxati:

O'ylaymanki, sizda bo'sh SD-karta bor yoki sizda mavjud bo'lgan fayllarni saqlamoqchi emas, bu uni o'chirib yuboradi.

1, SD-kartani FAT-32 sifatida formatlang

2, A, B, C D va boshqalar nomli papkalarni yarating (Pgacha bu CP/M ishlayotganda disklar bo'ladi). E'tibor bering, ular poytaxt.

3, Siz yaratgan har bir papkada 0 nomli boshqa papkani yarating (bu nolga teng) va ixtiyoriy ravishda 1, 2, 3 va boshqalar (15 tagacha) Keyin papkalar CP/M emulyatsiyasidagi Foydalanuvchi maydonlari. Ishni boshlash uchun sizga faqat 0 papka kerak.

4, arduino katalogidagi yuklangan loyiha papkasidan CCP deb nomlangan papkani toping. Bu CP/M buyrug'i konsoli davomchisi turli versiyalarini o'z ichiga oladi. SD-kartaning ildiziga CCP-DR.60K nomli nusxasini ko'chiring.

5, Endi DISK deb nomlangan loyiha katalogidan papkani toping, u A. ZIP faylini o'z ichiga oladi, siz ushbu faylni SD-kartangizdagi A/ 0/ katalogiga ochishingiz kerak. (qo'shimcha ma'lumot olish uchun 1streadme faylini ko'ring). Afsuski, u papkalar ro'yxatida "0" raqamiga ega emas, shuning uchun siz avval vaqtinchalik papkani ochishingiz kerak, so'ngra A jildining tarkibini SD -kartadagi A/ 0/ ga nusxalashingiz kerak.

6, yuqoridagi amallarni bajarganingizda, sizda shunday tuzilishga ega bo'lgan SD-karta bo'ladi:

F: CCP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. va boshqalar

/B/0

/C/0

va boshqalar

Agar siz SD-kartadan yuklamoqchi bo'lsangiz, CCP-ni yuklay olmaysiz va hokazo haqida xatolik yuz bersa, hamma narsa to'g'ri tezlikda ekanligini tekshiring!

Bu bosqichni biroz yengillashtirish maqsadida men yuqoridagi tayyor versiyani yukladim, unga cp/m dasturiy ta'minoti qo'shildi va uni bu erdan yuklab oling https://github.com/coopzone-dc/RunCPM/blob /master/… va uni formatlangan SD-kartaning ildiziga oching. Bu sizni boshlashi kerak, keyinroq o'zingiz yaratishingiz mumkin.

Shuningdek, men sizga Github Repo -dagi sozlash qo'llanmasini o'qishni maslahat beraman, u sizga kerakli papkalarni tavsifiga ega.

7 -qadam: VGA monitor va klaviaturani ulang

VGA monitor va klaviaturani ulang
VGA monitor va klaviaturani ulang

VGA32 ESP karta quvvatini uzing.

VGA monitorini ulang

PS/2 klaviaturasini ulang Quvvatni VGA32 ESP kartasiga qayta ulang, siz klaviatura chiroqlarining miltillashini ko'rasiz va taxminan 10 soniyadan so'ng ekranda CP/M ko'rsatmasi bilan rasm paydo bo'ladi!

Muhim: VGA32-da SD-kartani ishlatishda va yumshoq qayta o'rnatishda muammo bor, shuning uchun yuqoridagi birinchi qadam sifatida QUVATNI O'CHIRISH muhim, Qo'shimcha ma'lumot olish uchun oxirgi bosqichga qarang.

Ket, sen …

8-qadam: VGA32 modulida SD-karta bilan bog'liq muammo

VGA32 modulida SD-karta bilan bog'liq muammo
VGA32 modulida SD-karta bilan bog'liq muammo
VGA32 modulida SD-karta bilan bog'liq muammo
VGA32 modulida SD-karta bilan bog'liq muammo

Yuqoridagi fotosuratda mening ikkinchi ESP32 kartam ko'rsatilgan (uy qurilishi), bu yaxshi ishlaydi va quyidagi muammo yo'q. Men bilaman, bu dasturiy ta'minot muammosi emas, VGA32 versiyasi haqida quyida o'qing.

Mening VG32 ESP modulida (v1.4) SD-karta GPIO12-ni ishlatadi, bu Espressif tizimlari tomonidan tavsiya etilmaydi, chunki bu pin ichki xotira uchun ishlaydigan kuchlanishni aniqlash uchun quvvat manbai sifatida ishlatiladi. Bu VGA32 kartasini ishlab chiqargan odamga kimdir aytganini xohlardim! Bu siznikidan farq qilishi mumkin, shuning uchun umid qilamanki, sizda bu muammo bo'lmaydi.

Muammolar quyidagilar:

1, karta ulanganda eskizni yuklab bo'lmadi.

2, Qayta tiklash tugmachasini bosgandan so'ng, SD-karta olinmaguncha qulflanadi. Keyin xato ekranida "SD-karta yo'q" deb yoziladi. Siz kartani qo'yib, qayta o'rnatishingiz mumkin va u ikkinchi marta ishlaydi.

Bu muammoni hal qilish mumkin (lekin xavfi bor) README.md ga qarang:

yoki taxtani ishga tushirish uchun har doim qattiq quvvatni o'chirish/yoqish mumkin. Negadir bu yaxshi ishlayotganga o'xshaydi. Agar siz RunCPM dasturini qayta yuklashingiz kerak bo'lsa, avval SD-kartani olib tashlashingiz kerak.

Bu muammoni tushuntirib beradigan README. MD -dan ko'chirma. Men tuzatishdan foydalandim va u yaxshi ishlaydi, lekin tabiatan xavf sizniki, o'qing …

Biroq, VGA32 ESP sozlamalari SD -kartaning GPIO sozlamalarida ziddiyatli ko'rinadi.

Bu ishlaydi, lekin yuklash uchun siz SD -kartani olib tashlashingiz kerak va yumshoq qayta tiklashdan so'ng siz SD -kartani olib tashlashingiz kerak va keyin uni qayta tiklashingiz kerak. Quvvat yoqilganda yoki qattiq qayta o'rnatilganda yaxshi ishlaydi. Agar siz buni tuzatishga yordam bersangiz, menga xabar bering. Yangilanish 11Okt2020: VGA32 ESP v1.4 GPIO12 dan foydalanadi (MTDI, yoqish/qayta o'qish). Ushbu pin RAM uchun kuchlanishni, ichki LDO kuchlanishini (VDD_SDIO) aniqlaydi. SD-karta mavjud bo'lganda, u bu pinni yuqoriga tortadi va ESP32 operativ xotira voltaji 1,8 V bo'lishi kerak deb o'ylaydi, SD-kartasiz bu pin ichki tortish moslamasi bilan RAM kuchlanishini 3,3 V ga o'rnatadi. Bu, aslida, FABGL loyihasida keltirilgan misollardan olingan eslatmalarda keltirilgan: GPIO 2 va 12 - GPIO2 haqidagi eslatmalar: dasturlashda muammo tug'dirishi mumkin. Bundan tashqari, ketma -ket yuklovchiga kirish uchun GPIO2 ham ulanmagan/suzuvchi, ham past bo'lishi kerak. Oddiy yuklash rejimida (GPIO0 yuqori) GPIO2 e'tiborga olinmaydi. - GPIO12: oldini olish kerak. U chirog'ning kuchlanishini tanlaydi. Uni ishlatish uchun GPIO12 aniqlash sozlamalarini o'chirib qo'ying: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V OGOHLANTIRISH !! 3.3V kuchlanishli ESP32 uchun yaxshi (ESP-WROOM-32). Agar fleshka 3.3V NOTE1 bo'lmasa: "/dev/cu. SLAB_USBtoUART" ni NOTE2 ketma -ket portiga almashtiring.

Bu shuni anglatadiki, GPIO12 -dan qochish kerak, hech kim VGA32 ESP kartasini ishlab chiqaruvchiga aytmagan!

TUZATILDI: Men GPIO12 -ni ishlatmaslik uchun chirog'ning kuchlanishini sozlash variantini sinab ko'rdim va vga32 ESP -da tasdiqlay olaman, u ishlaydi! Muammo SD -karta bilan bog'liq muammolarni hal qilmadi. Men sizni tekshirishga, ikki marta tekshirishga va BRICKni yaratish haqida yaxshilab o'ylashga chaqiraman, agar siz ham sinab ko'rishga qaror qilsangiz. Men buni harakat sifatida tavsiya qilmayman, lekin men uchun u ishladi.

Tavsiya: