Բովանդակություն:

Retro CP/M Stand Alone Emulator: 8 քայլ
Retro CP/M Stand Alone Emulator: 8 քայլ

Video: Retro CP/M Stand Alone Emulator: 8 քայլ

Video: Retro CP/M Stand Alone Emulator: 8 քայլ
Video: MyZ80 CP/M Emulator running on AmigaOS 4.1 under DOSBox Emulator 2024, Նոյեմբեր
Anonim
Retro CP/M Stand Alone Emulator
Retro CP/M Stand Alone Emulator

Այս նախագիծը օգտագործում է VGA32 ESP v1.4 մոդուլը ՝ համակցություն գործարկելու համար, կամ RunCPM և FabGL ՝ առանձին համակարգիչ ՝ CP/M 2.2 համարժեք համակարգով ապահովելու համար: Հանրաճանաչ 1980 -ականներին որպես փոքր համակարգիչների օպերացիոն համակարգ: Կարող եք վերադառնալ ժամանակին և նորից այցելել հին ծրագրակազմ, ինչպիսիք են Wordstar- ը, Supercalc- ը, Adventure- ը և Zork- ը:

Դա FabGL նախագծի ինքնուրույն տրամադրումն է, որը ծրագրային ապահովում էր ստանդարտ VGA մոնիտորի և PS/2 ստեղնաշարի գործարկման համար:

Հիմնական ՕՀ -ն RunCPM- ի փոփոխված տարբերակն է, այն պատճենված է Github- ի սկզբնական աշխատանքից, և ես ավելացրել եմ FabGL գրադարանը `այն սերիական վահանակի փոխարեն էկրանին օգտագործելու համար:

Ես պարզապես կցանկանայի մեծ շնորհակալություն հայտնել երկու նախագծերին: Շարունակեք ձեր աշխատանքը:

Softwareրագիրը փորձարկվել է ապարատային սարքավորման առնվազն երկու տարբերակի վրա: Մեկը 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/ ձեզ ոչինչ պետք չէ ներբեռնելու համար, arduino IDE- ն կարող է դա անել մեզ համար, տես 2 -րդ քայլը:

Ներբեռնեք փոփոխված RunCPM- ի պատճենը https://github.com/coopzone-dc/RunCPM- ից

Քայլ 1: Տեղադրեք ESP32 աջակցությունը Arduino- ի համար (ըստ ցանկության)

Տեղադրեք ESP32 աջակցություն Arduino- ի համար (ըստ ցանկության)
Տեղադրեք ESP32 աջակցություն Arduino- ի համար (ըստ ցանկության)

Դուք, հավանաբար, արդեն դա արել եք, եթե ունեք, կարող եք բաց թողնել այս քայլը:

այցելեք https://github.com/espressif/arduino-esp32 և հետևեք տախտակների կառավարիչով տեղադրելու հրահանգներին, օրինակ ՝

Տեղադրման հրահանգներ ՝ օգտագործելով Arduino IDE տախտակների կառավարիչ =========================================== ================

Կայուն թողարկման հղում ՝

Տեղադրեք ընթացիկ Arduino IDE- ն 1.8 մակարդակի կամ ավելի ուշ: Ընթացիկ տարբերակը գտնվում է Arduino կայքում:

Գործարկեք Arduino- ն և բացեք «Նախընտրանքներ» պատուհանը:

Մուտքագրեք վերը թողարկման հղումներից մեկը Board Board Manager- ի լրացուցիչ հասցեների դաշտում: Կարող եք ավելացնել բազմաթիվ հասցեներ ՝ դրանք ստորակետերով առանձնացնելով:

Բացեք Տախտակների կառավարիչը Գործիքներ> Տախտակ ընտրացանկից և տեղադրեք esp32 պլատֆորմը (և մի մոռացեք, որ տեղադրելուց հետո ընտրեք ձեր ESP32 տախտակը Գործիքներ> Տախտակի ընտրացանկից):

Քայլ 2. FabGL գրադարանի ավելացում IDE- ին

Ավելացնելով FabGL գրադարանը IDE- ին
Ավելացնելով FabGL գրադարանը IDE- ին
Ավելացնելով FabGL գրադարանը IDE- ին
Ավելացնելով FabGL գրադարանը IDE- ին

Օգտագործելով դատարկ ուրվագիծ Arduino IDE- ում, համոզվեք, որ ընտրել եք ձեր ESP խորհուրդը Գործիքների ցանկից ՝ Տախտակներ: (Գրելու պահին VGA32 ESP- ը նշված չէր, ես ընտրում եմ Dev Dev- ի ընդհանուր տախտակ):

Էսքիզների ընտրացանկից ընտրեք Ներառել գրադարանը, այնուհետև գրադարանի կառավարիչ:

Որոնման երկխոսության մեջ մուտքագրեք FabGL և սպասեք, որ այն հայտնվի ստորև նշված ցուցակում, այժմ կտտացրեք Տեղադրեք կոճակին:

ավարտված

Քայլ 3. Ավելացնել SDC քարտերի լրացուցիչ գրադարան, որն օգտագործվում է RunCPM- ի կողմից

Ավելացնելով լրացուցիչ SD- քարտերի գրադարան, որն օգտագործվում է RunCPM- ի կողմից
Ավելացնելով լրացուցիչ SD- քարտերի գրադարան, որն օգտագործվում է RunCPM- ի կողմից

Սա գրեթե նույնն է, ինչ նախորդ քայլին, բայց FabGL- ի փոխարեն փնտրեք SDFat

Էսքիզների ընտրացանկից ընտրեք Ներառել գրադարանը, այնուհետև գրադարանի կառավարիչ: Որոնման երկխոսության մեջ մուտքագրեք SDFat և սպասեք, որ այն հայտնվի ստորև նշված ցուցակում, հավանաբար ստիպված կլինեք ոլորել ցուցակը ներքև:

Դուք ստանում եք երկու տարբերակի ընտրություն.

1, SdFat by Bill Greiman

2, SdFat - Adafruit պատառաքաղ

Ես երկուսն էլ փորձել եմ, երկուսն էլ կարծես լավ են աշխատում: Բայց RunCPM նախագիծը խորհուրդ տվեց Երկրորդ տարբերակը ՝ «Adafruit Fork», սակայն վերջին գրառումների վրա այն այժմ ասում է.

Այժմ բոլոր տախտակները օգտագործում են SdFat գրադարանը ՝ այստեղից ՝

Այսպիսով, այժմ ես ընտրում եմ այս նախագծի առաջին տարբերակը:

ավարտված

Քայլ 4: Ներբեռնեք փոփոխված RunCPM նախագիծը

Ներբեռնեք Փոփոխված RunCPM նախագիծը
Ներբեռնեք Փոփոխված RunCPM նախագիծը
Ներբեռնեք Փոփոխված RunCPM նախագիծը
Ներբեռնեք Փոփոխված RunCPM նախագիծը

Այցելեք Github կայքը ՝

Կտտացրեք ԿՈԴ կոճակին և ներբեռնեք որպես ZIP ֆայլ

Պահեք այս ֆայլը ինչ -որ տեղ (սովորաբար Arduino անունով գրացուցակում:

Անջատեք ֆայլը նույն վայրում, այն կստեղծի մի թղթապանակ, որը կոչվում է RunCPM-master

ավարտված

Քայլ 5. Բացեք և վերանայեք RunCPM ծրագիրը և կազմեք

Բացեք և վերանայեք RunCPM ծրագիրը և կազմեք
Բացեք և վերանայեք RunCPM ծրագիրը և կազմեք

Այժմ կարող եք օգտագործել Arduino IDE ֆայլը, բաց ընտրացանկը: Գնացեք դեպի այն պանակը, որը վերևում օգտագործել եք:

Այս թղթապանակի ներսում կա մեկ այլ անուն, որը կոչվում է RunCPM: Բացեք թղթապանակը:

Այդ թղթապանակի ներսում կա.ino ֆայլ, որը կոչվում է RunCPM.ino: Սա ծրագրի հիմնական ֆայլն է `բացեք այն:

Այժմ կարող եք դիտել նախագիծը, կարդալ մեկնաբանությունները և այլն: Փոփոխություններ կատարեք, եթե ձեզ անհրաժեշտ է համապատասխանել ձեր VGA32 -ESP տարբերակին: Այն պետք է նախապես կազմաձևվի տախտակի V1.4 համար:

Այժմ կարող եք սեղմել հավաքել և վերբեռնել ՝ ենթադրելով, որ ունեք VGA32 ESP միացված, այն կբեռնի էմուլյատորը ձեր սարքում:

ԿԱՐԵՎՈՐ. VGA32- ն այս պահին կարող է խնդիր ունենալ SD քարտի հետ, այնպես որ մի իմացեք այն: Լրացուցիչ տեղեկությունների համար տե՛ս ստորև բերված վերջին քայլը:

Քայլ 6. Ստեղծեք SD քարտ, որը պատրաստ է գործարկելու ձեր RunCPM- ը

Սա թերևս քայլերի ամենահնարքն է: Ես առաջարկում եմ կարդալ Github կայքի README.md- ը, թե ինչպես դա անել: Ահա իմ անելիքների ցանկը.

Ենթադրում եմ, որ դուք ունեք դատարկ 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 ֆայլ, դուք պետք է այս ֆայլը բացեք ձեր SD- քարտի A/ 0/ անունով գրացուցակում: (լրացուցիչ տեղեկությունների համար տես նաև 1streadme ֆայլը): Unfortunatelyավոք, այն «0» չունի թղթապանակների ցանկում, այնպես որ դուք պետք է նախ բացեք ժամանակավոր թղթապանակը, այնուհետև պատճենեք A թղթապանակի բովանդակությունը A/ 0/ SD քարտում:

6, Երբ դուք կատարեք վերը նշված քայլերը, կունենաք SD քարտ ՝ այսպիսի կառուցվածքով.

F: CCP-DR.60K

/Ա/0

/1STREAD. ME

/ASM. COM

/…. և այլն

/Բ/0

/C/0

և այլն

Եթե սխալներ եք ստանում SD- քարտից բեռնաթափման ժամանակ CCP և այլն բեռնելիս, կրկնակի ստուգեք, որ ամեն ինչ ունեք ճիշտ տեմպով:

Այս փուլը մի փոքր ավելի դյուրին դարձնելու համար ես վերբեռնել եմ վերը նշվածի պատրաստ տարբերակը, որի վրա կա նաև 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- ի կարգավորումները, կարծես, կոնֆլիկտ ունեն SD քարտի GPIO կարգավորումների վերաբերյալ:

Այն աշխատում է, բայց վերբեռնելու համար դուք պետք է հեռացնեք SD քարտը, իսկ փափուկ վերագործարկումից հետո պետք է հեռացնեք SD քարտը, այնուհետև այն փոխարինեք, որին հաջորդում է մեկ այլ վերականգնում: Այն լավ է աշխատում միացման կամ կոշտ վերակայման միջոցով: Եթե կարող եք օգնել ուղղել այս խնդիրը, խնդրում եմ ինձ տեղյակ պահեք: ԹԱՐՄԱԵԼ 11 Հոկտեմբեր 2020. VGA32 ESP v1.4- ն օգտագործում է GPIO12 (MTDI, կարդում է սնուցման/վերակայման ժամանակ): Այս քորոցը որոշում է RAM- ի լարումը, ներքին 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.3V լարման հետ (ESP-WROOM-32): Սա կկոտրի ձեր ESP32- ը, եթե բռնկումը 3.3V չէ NOTE1. Փոխարինեք «/dev/cu. SLAB_USBtoUART» - ը ձեր սերիական պորտով NOTE2: espefuse.py- ն կարելի է ներբեռնել https://github.com/espressif/esptool- ից

Սա նաև նշում է, որ GPIO12- ից պետք է խուսափել, ինչ -որ մեկը չի կարող ասել, որ VGA32 ESP քարտի ստեղծողին:

ՍՏԱՎԱ:. Ես փորձել եմ բռնկման լարումը կարգավորելու տարբերակը `GPIO12- ի օգտագործումը գերազանցելու համար և կարող եմ հաստատել իմ vga32 ESP- ի վրա, այն աշխատում է: Խնդիրն այլևս լուծված չէ SD քարտի հետ կապված: Ես կոչ եմ անում ձեզ ստուգել, կրկնակի ստուգել և մանրակրկիտ մտածել BRICK- ի ստեղծման մասին, եթե որոշեք այն նույնպես փորձել: Ես դա խորհուրդ չեմ տալիս որպես գործողություն, բայց ինձ մոտ այն ստացվեց:

Խորհուրդ ենք տալիս: