Isi kandungan:

Retro CP / M Berdiri Sendiri Emulator: 8 Langkah
Retro CP / M Berdiri Sendiri Emulator: 8 Langkah

Video: Retro CP / M Berdiri Sendiri Emulator: 8 Langkah

Video: Retro CP / M Berdiri Sendiri Emulator: 8 Langkah
Video: BOT ML VS HUMAN || MLBB 2024, November
Anonim
Emulator Berdiri Sendiri Retro CP / M
Emulator Berdiri Sendiri Retro CP / M

Projek ini menggunakan modul VGA32 ESP v1.4 untuk menjalankan kombinasi atau RunCPM dan FabGL untuk menyediakan komputer yang berdiri sendiri yang menjalankan sistem yang setara dengan CP / M 2.2. Popular pada tahun 1980-an sebagai sistem operasi untuk komputer kecil. Anda boleh kembali ke masa lalu dan melawat semula perisian lama seperti Wordstar, Supercalc, Adventure dan Zork.

Ini adalah penghormatan tersendiri dari projek FabGL yang menyediakan perisian untuk menjalankan monitor VGA standard dan Papan Kekunci PS / 2.

OS utama adalah Versi RunCPM yang diubahsuai, ia telah dicabut dari karya asal di Github dan saya telah menambahkan perpustakaan FabGL untuk membolehkannya digunakan pada skrin dan bukannya pada konsol bersiri.

Saya ingin mengucapkan terima kasih yang besar kepada kedua-dua projek ini. Teruskan kerja yang bagus!

Perisian ini telah diuji pada sekurang-kurangnya dua versi perkakasan. Satu VGA32 ESP v1.4 (seperti dijual siap pakai). Kedua versi lama saya, saya membina dari Modul ESP32 Wroom dan sekerap dari komputer lama.

Laman Github di bawah ini mengandungi maklumat penting mengenai persediaan ini dan juga perisian siap dipasang yang diubah suai.

Projek ini adalah mengenai pemasangan perisian, bukan mengenai perkakasan.

Bekalan:

Modul VGA32 ESP V1.4 (diuji). Terdapat di eBay / aliexpress / amazon dll

Arduino IDE dipasang pada komputer, saya menganggap jika anda membaca ini anda sudah mempunyai ini.

Pasang pek sokongan ESP32 untuk Arduino IDE. https://github.com/espressif/arduino-esp32 Lihat langkah 1

Perpustakaan FabGL https://www.fabglib.org/ anda tidak perlu memuat turun apa-apa, IDE arduino dapat melakukan ini untuk kami, lihat langkah 2.

Muat turun salinan RunCPM yang diubah suai dari

Langkah 1: Pasang Sokongan ESP32 untuk Arduino (pilihan)

Pasang Sokongan ESP32 untuk Arduino (pilihan)
Pasang Sokongan ESP32 untuk Arduino (pilihan)

Anda mungkin sudah melakukan ini, jika anda boleh melangkau langkah ini.

lawati https://github.com/espressif/arduino-esp32 dan ikuti arahan pemasangan menggunakan pengurus papan, seperti ini:

Arahan pemasangan menggunakan Arduino IDE Boards Manager =========================================== ===============

Pautan pelepasan stabil:

Pasang Arduino IDE hulu semasa pada tahap 1.8 atau lebih baru. Versi semasa ada di laman web Arduino.

Mulakan Arduino dan buka tetingkap Preferences.

Masukkan salah satu pautan pelepasan di atas ke medan URL Pengurus Papan Tambahan. Anda boleh menambahkan beberapa URL, memisahkannya dengan koma.

Buka Pengurus Papan dari Alat> menu Papan dan pasang platform esp32 (dan jangan lupa untuk memilih papan ESP32 anda dari Alat> menu Papan selepas pemasangan).

Langkah 2: Menambah Perpustakaan FabGL ke IDE

Menambah Perpustakaan FabGL ke IDE
Menambah Perpustakaan FabGL ke IDE
Menambah Perpustakaan FabGL ke IDE
Menambah Perpustakaan FabGL ke IDE

Dengan menggunakan lakaran kosong di Arduino IDE, pastikan anda telah memilih Papan ESP anda dari menu Alat, Papan. (Pada masa penulisan VGA32 ESP tidak disenaraikan, saya memilih papan Dev Kit generik).

Dari menu Lakaran, pilih Sertakan Perpustakaan, kemudian pilih Pengurus Perpustakaan.

Dalam dialog carian, ketik FabGL dan tunggu sehingga muncul dalam senarai di bawah, sekarang klik butang Pasang.

selesai

Langkah 3: Menambah Perpustakaan Kad SD Tambahan yang Digunakan oleh RunCPM

Menambah Perpustakaan Kad SD Tambahan yang Digunakan oleh RunCPM
Menambah Perpustakaan Kad SD Tambahan yang Digunakan oleh RunCPM

Ini hampir sama dengan langkah sebelumnya tetapi bukannya mencari FabGL untuk SDFat

Dari menu Lakaran, pilih Sertakan Perpustakaan, kemudian pilih Pengurus Perpustakaan. Dalam dialog dialog jenis SDFat dan tunggu sehingga ia muncul dalam senarai di bawah, anda mungkin perlu menatal ke bawah senarai.

Anda mendapat pilihan dua versi:

1, SdFat oleh Bill Greiman

2, SdFat - Adafruit Fork

Saya telah mencuba kedua-duanya, kedua-duanya kelihatan baik. Tetapi projek RunCPM memang mengesyorkan pilihan Kedua "Adafruit Fork", namun pada nota terbaru sekarang ia mengatakan:

Semua papan kini menggunakan perpustakaan SdFat, dari sini:

Jadi sekarang saya memilih pilihan pertama untuk projek ini.

selesai

Langkah 4: Muat turun Projek RunCPM yang Diubah

Muat turun Projek RunCPM yang Diubah
Muat turun Projek RunCPM yang Diubah
Muat turun Projek RunCPM yang Diubahsuai
Muat turun Projek RunCPM yang Diubahsuai

Lawati Laman Github, Klik butang KOD dan muat turun sebagai fail ZIP

Simpan fail ini di suatu tempat (biasanya dalam direktori bernama Arduino.

Buka zip fail ke lokasi yang sama, ia akan menghasilkan folder bernama RunCPM-master

selesai

Langkah 5: Buka dan Semak Program RunCPM dan Kompilasi

Buka dan Semak Program RunCPM dan Kompilasi
Buka dan Semak Program RunCPM dan Kompilasi

Anda kini boleh menggunakan menu Arduino IDE File, Open. Navigasi ke folder yang anda gunakan di atas.

Di dalam folder ini terdapat satu lagi yang disebut RunCPM. Buka folder.

Di dalam folder itu terdapat fail.ino yang disebut RunCPM.ino. Ini adalah fail projek utama - buka.

Anda kini dapat melihat projek, membaca komen dan lain-lain. Buat perubahan jika anda perlu menyamai versi VGA32 -ESP anda. Ia mesti dikonfigurasikan terlebih dahulu untuk V1.4 papan.

Anda kini boleh mengklik kompilasi dan memuat naik, dengan andaian anda mempunyai VGA32 ESP yang tersambung, ia akan memuat naik emulator ke peranti anda.

PENTING: VGA32 mempunyai masalah dengan kad SD pada ketika ini, jadi jangan pasangkannya untuk mengetahui. Lihat langkah terakhir di bawah untuk maklumat lebih lanjut.

Langkah 6: Buat kad SD yang Sedia untuk Memulakan RunCPM Anda Dari

Ini mungkin langkah paling tipu. Saya cadangkan anda membaca README.md dari laman Github mengenai cara melakukannya. Inilah senarai perkara yang perlu saya buat:

Saya menganggap anda mempunyai kad SD kosong atau tidak berminat menyimpan fail pada fail yang anda ada, ini akan menghapusnya.

1, format kad SD sebagai FAT-32

2, Buat beberapa folder bernama A, B, C D dll (hingga P ini akan menjadi pemacu cakera ketika menjalankan CP / M). Perhatikan bahawa mereka adalah ibu kota.

3, Dalam setiap folder anda membuat Buat folder lain bernama 0 (itu nol) dan pilihan 1, 2, 3 dll (hingga 15) Kemudian folder adalah Kawasan Pengguna dalam emulasi CP / M. Anda hanya memerlukan folder 0 untuk memulakan.

4, Dari folder projek yang anda muat turun di direktori arduino, cari folder yang dipanggil CCP. Ini mengandungi pelbagai versi Pemproses Konsol Perintah CP / M. Salin yang disebut CCP-DR.60K ke akar Kad SD anda.

5, Sekarang cari folder di direktori projek yang disebut DISK, Ini berisi fail A. ZIP, anda perlu membuka zip fail ini ke direktori yang disebut A / 0 / pada kad SD anda. (lihat juga fail 1streadme untuk maklumat lebih lanjut). Malangnya ia tidak mempunyai "0" dalam senarai folder jadi anda perlu membuka zip ke folder sementara terlebih dahulu, kemudian salin kandungan untuk folder A ke A / 0 / pada kad SD.

6, Apabila anda telah melakukan langkah-langkah di atas, anda akan mempunyai SD-Card dengan struktur seperti ini:

F: CCP-DR.60K

/ A / 0

/1STREAD. ME

/ASM. COM

/…. dan lain-lain

/ B / 0

/ C / 0

dan lain-lain

Sekiranya anda mendapat kesilapan tentang tidak dapat memuat CCP dll semasa anda cuba boot dari SD-Card, periksa semula bahawa anda mempunyai segalanya dengan kadar yang betul!

Dalam usaha untuk membuat tahap ini sedikit lebih mudah, saya telah memuat naik versi siap pakai di atas, dengan tambahan perisian cp / m di atasnya dan juga memuat turunnya dari sini https://github.com/coopzone-dc/RunCPM/blob / master /… dan hanya unzipnya ke akar SD-Card yang diformat. Ini mesti memulakan anda kemudian anda boleh membuat sendiri kemudian.

Saya juga mengesyorkan anda membaca panduan persediaan di Github Repo, ia mempunyai keterangan mengenai folder yang anda perlukan.

Langkah 7: Sambungkan Monitor dan Papan Kekunci VGA

Sambungkan Monitor dan Papan Kekunci VGA
Sambungkan Monitor dan Papan Kekunci VGA

Putuskan kuasa ke kad VGA32 ESP.

Sambungkan Monitor VGA anda

Sambungkan Papan Kekunci PS / 2 Sambungkan semula kuasa ke kad ESP VGA32, anda akan melihat lampu papan kekunci menyala dan kira-kira 10 saat kemudian gambar akan muncul di skrin dengan arahan CP / M!

Penting: VGA32 menghadapi masalah semasa menggunakan kad SD dan tetapan semula lembut, oleh sebab itu penting untuk MENGHIDUPKAN POWER MATI seperti langkah pertama di atas, Lihat langkah terakhir untuk maklumat lebih lanjut.

Anda pergi …

Langkah 8: Masalah Dengan Kad SD pada Modul VGA32

Masalah Dengan Kad SD pada Modul VGA32
Masalah Dengan Kad SD pada Modul VGA32
Masalah Dengan Kad SD pada Modul VGA32
Masalah Dengan Kad SD pada Modul VGA32

Foto di atas menunjukkan kad ESP32 kedua saya (buatan rumah), ini berfungsi dengan baik dan tidak ada masalah di bawah ini. Jadi saya tahu bukan masalah perisian, sila baca di bawah mengenai versi VGA32.

Pada modul ESP VG32 saya (v1.4) kad SD menggunakan GPIO12, ini tidak digalakkan oleh Espressif Systems kerana pin ini digunakan semasa daya untuk mengesan voltan kerja untuk memori dalaman. Saya berharap ada yang memberitahu lelaki yang membuat kad VGA32 ini! Mungkin berbeza dengan anda, jadi semoga anda tidak menghadapi masalah ini.

Masalahnya adalah:

1, Tidak dapat memuat naik lakaran semasa kad dipasang.

2, Setelah menekan butang reset, ia terkunci sehingga kad SD dikeluarkan. Kemudian boot ke skrin kesalahan yang mengatakan tidak ada SD-Card! Anda boleh memasukkan kad dan menetapkan semula sekali lagi dan ia akan berfungsi untuk kali kedua.

Masalah ini dapat diperbaiki (Tetapi mempunyai risiko) lihat README.md di

atau anda sentiasa boleh mematikan / mematikan tenaga untuk memulakan papan. Atas sebab-sebab tertentu ini nampaknya berfungsi dengan baik. Sekiranya anda perlu memuat naik semula perisian RunCPM, anda mesti mengeluarkan kad SD terlebih dahulu.

Ini adalah petikan dari README. MD yang menerangkan masalahnya. Saya telah menggunakan kaedah pembaikan dan ia berfungsi dengan baik, TAPI kerana sifatnya risikonya adalah milik anda, baca terus…

Walau bagaimanapun, tetapan untuk VGA32 ESP nampaknya bertentangan pada tetapan GPIO untuk kad SD.

Ia berfungsi tetapi untuk memuat naik, anda mesti mengeluarkan kad SD dan setelah melakukan soft reset, anda mesti mengeluarkan kad SD dan kemudian menggantinya diikuti dengan tetapan semula yang lain. Ia berfungsi dengan baik dari power on atau hard reset. Sekiranya anda dapat membetulkannya, sila beritahu saya. KEMASKINI 11Okt2020: VGA32 ESP v1.4 menggunakan GPIO12 (MTDI, baca pada powerup / reset). Pin ini menentukan voltan untuk RAM, Voltan Dalaman LDO (VDD_SDIO). Semasa kad SD hadir, pin ini menarik pin tinggi dan ESP32 berpendapat voltan RAM harus 1.8V, tanpa kad SD pin ini mempunyai pull-down dalaman untuk menetapkan voltan RAM ke 3.3V. Ini sebenarnya disebut dalam catatan dari contoh yang diberikan pada projek FABGL, untuk memetik: nota mengenai GPIO 2 dan 12 - GPIO2: boleh menyebabkan masalah pada pengaturcaraan. GPIO2 juga mesti dibiarkan tidak terhubung / terapung, atau dipacu Rendah, untuk memasuki pemuat boot bersiri. Dalam mod boot biasa (tinggi GPIO0), GPIO2 tidak diendahkan. - GPIO12: harus dielakkan. Ia memilih voltan kilat. Untuk menggunakannya lumpuhkan efusi tetapan pengesanan GPIO12 dengan: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! Baik untuk ESP32 dengan voltan 3.3V (ESP-WROOM-32). Ini akan MENJANA ESP32 anda jika denyar tidak 3.3V CATATAN1: ganti "/dev/cu. SLAB_USBtoUART" dengan port bersiri anda CATATAN 2: espefuse.py boleh dimuat turun dari

Ini selanjutnya menyatakan bahawa GPIO12 harus dielakkan, sedikit pun tidak ada yang memberitahu pembuat kad ESP VGA32!

TETAP: Saya telah mencuba pilihan untuk menetapkan voltan kilat untuk mengatasi penggunaan GPIO12 dan dapat mengesahkan pada ESP vga32 saya, Ia Berfungsi! Masalah tidak dapat diselesaikan lagi dengan Kad SD. Saya menggesa anda untuk memeriksa, memeriksa semula dan berfikir dengan teliti tentang membuat BRICK jika anda memutuskan untuk mencubanya juga. Saya tidak mengesyorkannya sebagai tindakan, tetapi bagi saya ia berjaya.

Disyorkan: