Sommario:

Retro CP/M Stand Alone Emulator: 8 passaggi
Retro CP/M Stand Alone Emulator: 8 passaggi

Video: Retro CP/M Stand Alone Emulator: 8 passaggi

Video: Retro CP/M Stand Alone Emulator: 8 passaggi
Video: uRTC-8 PCW CP/M Plus Demonstration 2024, Novembre
Anonim
Emulatore stand alone retrò CP/M
Emulatore stand alone retrò CP/M

Questo progetto utilizza il modulo VGA32 ESP v1.4 per eseguire una combinazione o RunCPM e FabGL per fornire un computer autonomo che esegue un sistema equivalente a CP/M 2.2. Popolare negli anni '80 come sistema operativo per piccoli computer. Puoi tornare indietro nel tempo e rivisitare vecchi software come Wordstar, Supercalc, Adventure e Zork.

È indipendente dal progetto FabGL che ha fornito il software per eseguire un monitor VGA standard e una tastiera PS/2.

Il sistema operativo principale è una versione modificata di RunCPM, è stata biforcuta dal lavoro originale su Github e ho aggiunto la libreria FabGL per consentirne l'utilizzo su uno schermo anziché su una console seriale.

Vorrei solo dire un grande ringraziamento a entrambi i progetti. Continua così!

Il software è stato testato su almeno due versioni di hardware. Uno il VGA32 ESP v1.4 (come venduto già pronto). Secondo la mia vecchia versione, ho costruito da un modulo Wroom ESP32 e rottami bit da vecchi computer.

Il sito Github di seguito contiene informazioni importanti su queste configurazioni e sul software modificato pronto per l'installazione.

Questo progetto riguarda l'installazione del software, non l'hardware.

Forniture:

Un modulo ESP VGA32 V1.4 (testato). Trovato su eBay/aliexpress/amazon ecc

L'IDE Arduino installato su un computer, presumo che se stai leggendo questo lo hai già.

Installa il pacchetto di supporto ESP32 per Arduino IDE. https://github.com/espressif/arduino-esp32 Vedi il passaggio 1

La libreria FabGL https://www.fabglib.org/ non è necessario scaricare nulla, l'IDE arduino può farlo per noi, vedere il passaggio 2.

Scarica una copia del RunCPM modificato da

Passaggio 1: installa il supporto ESP32 per Arduino (opzionale)

Installa il supporto ESP32 per Arduino (opzionale)
Installa il supporto ESP32 per Arduino (opzionale)

Potresti averlo già fatto, se lo hai puoi saltare questo passaggio.

visita https://github.com/espressif/arduino-esp32 e segui le istruzioni sull'installazione utilizzando il gestore di schede, in questo modo:

Istruzioni di installazione utilizzando Arduino IDE Boards Manager=========================================== ===============

Link di rilascio stabile:

Installa l'IDE Arduino upstream corrente al livello 1.8 o successivo. La versione attuale è sul sito web di Arduino.

Avvia Arduino e apri la finestra Preferenze.

Inserisci uno dei link di rilascio sopra nel campo URL aggiuntivi di Board Manager. Puoi aggiungere più URL, separandoli con virgole.

Apri Boards Manager dal menu Strumenti> Scheda e installa la piattaforma esp32 (e non dimenticare di selezionare la tua scheda ESP32 dal menu Strumenti> Scheda dopo l'installazione).

Passaggio 2: aggiunta della libreria FabGL all'IDE

Aggiunta della libreria FabGL all'IDE
Aggiunta della libreria FabGL all'IDE
Aggiunta della libreria FabGL all'IDE
Aggiunta della libreria FabGL all'IDE

Utilizzando uno schizzo vuoto nell'IDE Arduino, assicurati di aver selezionato la tua scheda ESP dal menu Strumenti, Schede. (Al momento in cui scrivo l'ESP VGA32 non era elencato, scelgo una scheda Dev Kit generica).

Dal menu Schizzo, scegli Includi libreria, quindi scegli Gestore libreria.

Nella finestra di dialogo di ricerca digita FabGL e attendi che appaia nell'elenco sottostante, ora fai clic sul pulsante Installa.

finito

Passaggio 3: aggiunta di una libreria di schede SD aggiuntiva utilizzata da RunCPM

Aggiunta di una libreria di schede SD aggiuntiva utilizzata da RunCPM
Aggiunta di una libreria di schede SD aggiuntiva utilizzata da RunCPM

Questo è quasi lo stesso del passaggio precedente ma invece di FabGL cerca SDFat

Dal menu Schizzo, scegli Includi libreria, quindi scegli Gestore libreria. Nella finestra di dialogo di ricerca digita SDFat e attendi che appaia nell'elenco sottostante, probabilmente dovrai scorrere verso il basso l'elenco.

Hai la possibilità di scegliere tra due versioni:

1, SdFat di Bill Greiman

2, SdFat - Adafruit Fork

Ho provato entrambi, sembrano funzionare entrambi bene. Ma il progetto RunCPM ha raccomandato la seconda opzione "Adafruit Fork", tuttavia nelle ultime note ora dice:

Tutte le schede ora utilizzano la libreria SdFat, da qui:

Quindi ora scelgo la prima opzione per questo progetto.

finito

Passaggio 4: scaricare il progetto RunCPM modificato

Scarica il progetto RunCPM modificato
Scarica il progetto RunCPM modificato
Scarica il progetto RunCPM modificato
Scarica il progetto RunCPM modificato

Visita il sito Github, Fare clic sul pulsante CODICE e scaricare come file ZIP

Salva questo file da qualche parte (normalmente in una directory chiamata Arduino.

Decomprimi il file nella stessa posizione, produrrà una cartella chiamata RunCPM-master

finito

Passaggio 5: aprire e rivedere il programma RunCPM e compilare

Apri e rivedi il programma RunCPM e compila
Apri e rivedi il programma RunCPM e compila

Ora puoi usare il file IDE di Arduino, menu Apri. Passa alla cartella che hai visualizzato sopra.

All'interno di questa cartella ce n'è un'altra chiamata RunCPM. Apri la cartella.

All'interno di quella cartella c'è un file.ino chiamato RunCPM.ino. Questo è il file di progetto principale: aprilo.

Ora puoi visualizzare il progetto, leggere i commenti, ecc. Apportare modifiche se è necessario abbinare la versione di VGA32 -ESP. Dovrebbe essere preconfigurato per la V1.4 della scheda.

Ora puoi fare clic su Compila e carica, supponendo che tu abbia VGA32 ESP connesso, caricherà l'emulatore sul tuo dispositivo.

IMPORTANTE: a questo punto il VGA32 può avere un problema con la scheda SD, quindi non collegarlo per saperlo. Vedere l'ultimo passaggio qui sotto per ulteriori informazioni.

Passaggio 6: crea una scheda SD pronta per avviare il tuo RunCPM da

Questo è forse il più trucco dei passaggi. Ti suggerisco di leggere il README.md del sito Github su come farlo. Ecco la mia lista di cosa fare:

Presumo che tu abbia una scheda SD vuota o non sei interessato a conservare alcun file su quella che hai, questo la cancellerà.

1, formatta la scheda SD come FAT-32

2, creare alcune cartelle chiamate A, B, C D ecc (fino a P queste saranno le unità disco durante l'esecuzione di CP/M). Nota che sono maiuscole.

3, In ogni cartella che crei Crea un'altra cartella denominata 0 (questo è uno zero) e facoltativamente 1, 2, 3 ecc (fino a 15) Quindi le cartelle sono aree utente nell'emulazione CP/M. Hai solo bisogno della cartella 0 per iniziare.

4, dalla cartella del progetto scaricato nella directory arduino, trova la cartella denominata CCP. Contiene varie versioni del processore della console di comando CP/M. Copia quello chiamato CCP-DR.60K nella radice della tua scheda SD.

5, ora trova la cartella nella directory del progetto chiamata DISK, contiene un file A. ZIP, devi decomprimere questo file nella directory chiamata A/0/ sulla tua scheda SD. (vedi anche il file 1sreadme per maggiori informazioni). Sfortunatamente non ha lo "0" nell'elenco delle cartelle, quindi devi prima decomprimere in una cartella temporanea, quindi copiare il contenuto della cartella A su A/0/ sulla scheda SD.

6, Dopo aver eseguito i passaggi precedenti, avrai una scheda SD con una struttura come questa:

F: CCP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. eccetera

/B/0

/C/0

eccetera

Se ricevi errori relativi all'impossibilità di caricare CCP ecc. quando provi ad avviare dalla scheda SD, ricontrolla di avere tutto nel giusto ritmo!

Nel tentativo di rendere questa fase un po' più semplice, ho caricato una versione già pronta di cui sopra, con l'aggiunta del software cp/m e scaricala da qui https://github.com/coopzone-dc/RunCPM/blob /master/… e decomprimilo nella radice di una scheda SD formattata. Dovrebbe iniziare, quindi puoi crearne uno tuo in seguito.

Ti consiglio anche di leggere la guida di installazione sul Github Repo, ha una descrizione delle cartelle di cui hai bisogno.

Passaggio 7: collegare un monitor e una tastiera VGA

Collega un monitor VGA e una tastiera
Collega un monitor VGA e una tastiera

Scollegare l'alimentazione dalla scheda ESP VGA32.

Collega il tuo monitor VGA

Collega una tastiera PS/2 Ricollega l'alimentazione alla scheda VGA32 ESP, dovresti vedere le luci della tastiera lampeggiare e circa 10 secondi dopo apparirà un'immagine sullo schermo con un prompt CP/M!

Importante: VGA32 ha un problema quando si utilizza la scheda SD e il soft reset, ecco perché è importante SPEGNERE L'ALIMENTAZIONE come primo passaggio sopra, vedere l'ultimo passaggio per ulteriori informazioni.

Via vai…

Passaggio 8: problema con la scheda SD sul modulo VGA32

Problema con la scheda SD sul modulo VGA32
Problema con la scheda SD sul modulo VGA32
Problema con la scheda SD sul modulo VGA32
Problema con la scheda SD sul modulo VGA32

La foto sopra mostra la mia seconda scheda ESP32 (fatta in casa), funziona bene e non ha il problema qui sotto. Quindi so che non è un problema di software, per favore leggi sotto sulla versione VGA32.

Sul mio modulo ESP VG32 (v1.4) la scheda SD utilizza GPIO12, questo non è raccomandato da Espressif Systems poiché questo pin viene utilizzato all'accensione per rilevare la tensione di lavoro per la memoria interna. Vorrei che qualcuno l'avesse detto al ragazzo che produce questa scheda VGA32! Forse è diverso dal tuo, quindi spero che tu non abbia questo problema.

I problemi sono:

1, impossibile caricare uno schizzo quando la scheda è collegata.

2, dopo aver premuto il pulsante di ripristino, si blocca fino a quando la scheda SD non viene rimossa. Quindi si avvia su una schermata di errore che dice no SD-Card! Puoi inserire la scheda e ripristinare di nuovo e funzionerà la seconda volta.

Questo problema è risolvibile (ma ha un rischio) vedere il README.md su

oppure puoi sempre spegnere e riaccendere la scheda per avviare la scheda. Per qualche ragione questo sembra funzionare bene. Inoltre, se è necessario ricaricare il software RunCPM, è necessario rimuovere prima la scheda SD.

Questo è un estratto dal README. MD che spiega il problema. Ho usato la correzione e funziona bene, MA a causa della sua natura il rischio è tuo, continua a leggere …

Tuttavia, le impostazioni per VGA32 ESP sembrano avere un conflitto sulle impostazioni GPIO per la scheda SD.

Funziona ma per caricare devi rimuovere la scheda SD e dopo un ripristino software devi rimuovere la scheda SD e quindi sostituirla seguita da un altro ripristino. Funziona bene dall'accensione o dall'hard reset. Se puoi aiutare a risolvere questo problema, per favore fammi sapere. AGGIORNAMENTO 11 ottobre 2020: VGA32 ESP v1.4 utilizza GPIO12 (MTDI, lettura all'accensione/reset). Questo pin determina la tensione per la RAM, la tensione dell'LDO interno (VDD_SDIO). Quando la scheda SD è presente, alza questo pin e l'ESP32 pensa che la tensione della RAM dovrebbe essere di 1,8 V, senza la scheda SD questo pin ha un pull-down interno per impostare la tensione della RAM su 3,3 V. Questo è effettivamente menzionato nelle note degli esempi forniti sul progetto FABGL, per citare: note su GPIO 2 e 12 - GPIO2: può causare problemi di programmazione. GPIO2 deve anche essere lasciato scollegato/flottante, o guidato Low, per entrare nel bootloader seriale. In modalità di avvio normale (GPIO0 alto), GPIO2 viene ignorato. - GPIO12: da evitare. Seleziona la tensione del flash. Per usarlo disabilita l'impostazione di rilevamento GPIO12 efuses con: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN!! Buono per ESP32 con tensione di 3,3 V (ESP-WROOM-32). Questo farà BRICK il tuo ESP32 se il flash non è 3.3V NOTA1: sostituisci "/dev/cu. SLAB_USBtoUART" con la tua porta seriale NOTA2: espefuse.py è scaricabile da

Questo indica inoltre che GPIO12 dovrebbe essere evitato, un peccato che nessuno l'abbia detto al produttore della scheda ESP VGA32!

FISSO: ho provato l'opzione di impostare la tensione del flash per ignorare l'uso di GPIO12 e posso confermare sul mio ESP vga32, funziona! Il problema non ha più risolto problemi con la scheda SD. Ti esorto a controllare, ricontrollare e pensare attentamente alla creazione di un BRICK se decidi di provarlo anche tu. Non lo consiglio come azione, ma per me ha funzionato.

Consigliato: