Daftar Isi:

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

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

Video: Retro CP/M Stand Alone Emulator: 8 Langkah
Video: Z80 Retro #24 - CP/M Introduction 2024, November
Anonim
Retro CP/M Emulator Berdiri Sendiri
Retro CP/M Emulator Berdiri Sendiri

Proyek 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. Populer selama tahun 1980-an sebagai sistem operasi untuk komputer kecil. Anda dapat kembali ke masa lalu dan mengunjungi kembali perangkat lunak lama seperti Wordstar, Supercalc, Adventure, dan Zork.

Ini adalah milik proyek FabGL yang menyediakan perangkat lunak untuk menjalankan monitor VGA standar dan Keyboard PS/2.

OS utama adalah Versi RunCPM yang dimodifikasi, telah di-fork dari karya asli di Github dan saya telah menambahkan pustaka FabGL untuk memungkinkannya digunakan di layar alih-alih di konsol serial.

Saya hanya ingin mengucapkan terima kasih yang sebesar-besarnya untuk kedua proyek tersebut. Pertahankan kerja bagus!

Perangkat lunak telah diuji pada setidaknya dua versi perangkat keras. Salah satunya VGA32 ESP v1.4 (seperti yang dijual siap pakai). Kedua versi lama saya, saya membangun dari Modul ESP32 Wroom dan potongan-potongan potongan dari komputer lama.

Situs Github di bawah ini berisi info penting tentang pengaturan ini serta perangkat lunak siap-instal yang dimodifikasi.

Proyek ini adalah tentang menginstal perangkat lunak, bukan tentang perangkat keras.

Perlengkapan:

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

Arduino IDE terinstal di komputer, saya berasumsi jika Anda membaca ini, Anda sudah memilikinya.

Instal paket dukungan ESP32 untuk Arduino IDE. https://github.com/espressif/arduino-esp32 Lihat langkah 1

Pustaka FabGL https://www.fabglib.org/ Anda tidak perlu mengunduh apa pun, arduino IDE dapat melakukannya untuk kami, lihat langkah 2.

Unduh salinan RunCPM yang dimodifikasi dari

Langkah 1: Instal Dukungan ESP32 untuk Arduino (opsional)

Instal Dukungan ESP32 untuk Arduino (opsional)
Instal Dukungan ESP32 untuk Arduino (opsional)

Anda mungkin sudah melakukan ini, jika sudah, Anda dapat melewati langkah ini.

kunjungi https://github.com/espressif/arduino-esp32 dan ikuti petunjuk pemasangan menggunakan pengelola papan, seperti ini:

Petunjuk instalasi menggunakan Arduino IDE Boards Manager============================================ =================

Tautan rilis stabil:

Instal IDE Arduino upstream saat ini pada level 1,8 atau lebih baru. Versi saat ini ada di situs web Arduino.

Mulai Arduino dan buka jendela Preferensi.

Masukkan salah satu tautan rilis di atas ke bidang URL Manajer Dewan Tambahan. Anda dapat menambahkan beberapa URL, memisahkannya dengan koma.

Buka Boards Manager dari menu Tools > Board dan instal platform esp32 (dan jangan lupa untuk memilih board ESP32 Anda dari menu Tools > Board setelah instalasi).

Langkah 2: Menambahkan Perpustakaan FabGL ke IDE

Menambahkan Perpustakaan FabGL ke IDE
Menambahkan Perpustakaan FabGL ke IDE
Menambahkan Perpustakaan FabGL ke IDE
Menambahkan Perpustakaan FabGL ke IDE

Menggunakan sketsa kosong di Arduino IDE, pastikan Anda telah memilih Papan ESP Anda dari menu Alat, Papan. (Pada saat penulisan, VGA32 ESP tidak terdaftar, saya memilih papan Dev Kit generik).

Dari menu Sketsa, pilih Sertakan Perpustakaan, lalu pilih Manajer perpustakaan.

Pada dialog pencarian ketik FabGL dan tunggu sampai muncul daftar di bawah, sekarang klik tombol Install.

selesai

Langkah 3: Menambahkan Pustaka Kartu SD Tambahan yang Digunakan oleh RunCPM

Menambahkan Pustaka Kartu SD Tambahan yang Digunakan oleh RunCPM
Menambahkan Pustaka Kartu SD Tambahan yang Digunakan oleh RunCPM

Ini hampir sama dengan langkah sebelumnya tetapi bukan pencarian FabGL untuk SDFat

Dari menu Sketsa, pilih Sertakan Perpustakaan, lalu pilih Manajer perpustakaan. Dalam dialog pencarian ketik SDFat dan tunggu sampai muncul di daftar di bawah, Anda mungkin harus menggulir daftar ke bawah.

Anda mendapatkan pilihan dua versi:

1, SdFat oleh Bill Greiman

2, SdFat - Adafruit Garpu

Saya sudah mencoba keduanya, keduanya tampaknya berfungsi dengan baik. Tetapi proyek RunCPM memang merekomendasikan opsi Kedua "Adafruit Fork", namun pada catatan terbaru sekarang dikatakan:

Semua papan sekarang menggunakan perpustakaan SdFat, dari sini:

Jadi sekarang saya memilih opsi pertama untuk proyek ini.

selesai

Langkah 4: Unduh Proyek RunCPM yang Dimodifikasi

Unduh Proyek RunCPM yang Dimodifikasi
Unduh Proyek RunCPM yang Dimodifikasi
Unduh Proyek RunCPM yang Dimodifikasi
Unduh Proyek RunCPM yang Dimodifikasi

Kunjungi Situs Github, Klik tombol KODE dan unduh sebagai file ZIP

Simpan file ini di suatu tempat (biasanya di direktori bernama Arduino.

Buka zip file ke lokasi yang sama, itu akan menghasilkan folder bernama RunCPM-master

selesai

Langkah 5: Buka dan Tinjau Program RunCPM dan Kompilasi

Buka dan Tinjau Program RunCPM dan Kompilasi
Buka dan Tinjau Program RunCPM dan Kompilasi

Anda sekarang dapat menggunakan File Arduino IDE, Buka menu. Arahkan ke folder yang Anda uzip di atas.

Di dalam folder ini ada lagi yang disebut RunCPM. Buka foldernya.

Di dalam folder itu ada file.ino bernama RunCPM.ino. Ini adalah file proyek utama - buka.

Anda sekarang dapat melihat proyek, membaca komentar, dll. Buat perubahan jika Anda perlu mencocokkan versi VGA32 -ESP Anda. Ini harus dikonfigurasikan sebelumnya untuk papan V1.4.

Anda sekarang dapat mengklik kompilasi dan unggah, dengan asumsi Anda telah menghubungkan VGA32 ESP, itu akan mengunggah emulator ke perangkat Anda.

PENTING: VGA32 memiliki masalah dengan kartu SD pada saat ini, jadi jangan mencolokkannya untuk mengetahuinya. Lihat langkah terakhir di bawah untuk informasi lebih lanjut.

Langkah 6: Buat kartu SD yang Siap untuk Mem-boot RunCPM Anda Dari

Ini mungkin trik langkah yang paling banyak. Saya sarankan Anda membaca README.md dari situs Github tentang cara melakukan ini. Inilah daftar saya tentang apa yang harus dilakukan:

Saya berasumsi Anda memiliki kartu SD kosong atau tidak tertarik untuk menyimpan file apa pun di kartu yang Anda miliki, ini akan menghapusnya.

1, format kartu SD sebagai FAT-32

2, Buat beberapa folder bernama A, B, C D dll (hingga P ini akan menjadi disk drive saat menjalankan CP/M). Perhatikan bahwa mereka adalah ibu kota.

3, Di setiap folder yang Anda buat Buat folder lain bernama 0 (itu nol) dan opsional 1, 2, 3 dll (hingga 15) Kemudian folder adalah Area Pengguna di emulasi CP/M. Anda hanya perlu folder 0 untuk memulai.

4, Dari folder proyek yang Anda unduh di direktori arduino, temukan folder bernama CCP. Ini berisi berbagai versi CP/M Command Console Proccessor. Salin yang disebut CCP-DR.60K ke root SD Card Anda.

5, Sekarang temukan folder di direktori proyek bernama DISK, Ini berisi file A. ZIP, Anda perlu meng-unzip file ini ke direktori bernama A/0/ pada kartu SD Anda. (lihat juga file 1streadme untuk info lebih lanjut). Sayangnya tidak ada "0" dalam daftar folder sehingga Anda perlu membuka zip ke folder sementara terlebih dahulu, lalu salin konten folder A ke A/0/ di kartu SD.

6, Setelah Anda melakukan langkah-langkah di atas, Anda akan memiliki SD-Card dengan struktur seperti ini:

F: CCP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. dll

/B/0

/C/0

dll

Jika Anda mendapatkan kesalahan tentang tidak dapat memuat CCP dll ketika Anda mencoba untuk boot dari SD-Card, periksa kembali Anda memiliki semuanya dalam kecepatan yang benar!

Dalam upaya untuk membuat tahap ini sedikit lebih mudah, saya telah mengunggah versi yang sudah jadi di atas, dengan tambahan perangkat lunak cp/m di dalamnya serta mengunduhnya dari sini https://github.com/coopzone-dc/RunCPM/blob /master/… dan cukup unzip ke root SD-Card yang diformat. Ini harus membantu Anda memulai kemudian Anda dapat membuatnya sendiri nanti.

Saya juga menyarankan Anda membaca panduan pengaturan di Github Repo, ini memiliki deskripsi folder yang Anda butuhkan.

Langkah 7: Hubungkan Monitor VGA dan Keyboard

Hubungkan Monitor VGA dan Keyboard
Hubungkan Monitor VGA dan Keyboard

Putuskan sambungan daya ke kartu VGA32 ESP.

Hubungkan Monitor VGA Anda

Hubungkan Keyboard PS/2 Sambungkan kembali daya ke kartu VGA32 ESP, Anda akan melihat lampu keyboard berkedip dan sekitar 10 detik kemudian sebuah gambar akan muncul di layar dengan prompt CP/M!

Penting: VGA32 bermasalah saat menggunakan SD-card dan soft reset, oleh karena itu penting untuk MATIKAN POWER seperti langkah pertama di atas, Lihat langkah terakhir untuk info lebih lanjut.

Jauh kamu pergi…

Langkah 8: Masalah Dengan SD-Card pada Modul VGA32

Masalah Dengan Kartu SD pada Modul VGA32
Masalah Dengan Kartu SD pada Modul VGA32
Masalah Dengan Kartu SD pada Modul VGA32
Masalah Dengan Kartu SD pada Modul VGA32

Foto di atas menunjukkan kartu ESP32 kedua saya (buatan sendiri), ini berfungsi dengan baik dan tidak memiliki masalah di bawah. Jadi saya tahu ini bukan masalah perangkat lunak, silakan baca di bawah tentang versi VGA32.

Pada modul VG32 ESP saya (v1.4) SD-card menggunakan GPIO12, Ini tidak direkomendasikan oleh Sistem Espressif karena pin ini digunakan pada power up untuk mendeteksi tegangan kerja untuk memori internal. Saya berharap seseorang memberi tahu orang yang membuat kartu VGA32 ini! Mungkin berbeda dengan Anda, jadi semoga Anda tidak mengalami masalah ini.

Masalah-masalah tersebut adalah:

1, Tidak dapat mengunggah sketsa saat kartu dicolokkan.

2, Setelah menekan tombol reset, itu terkunci sampai kartu SD dilepas. Kemudian boot ke layar kesalahan mengatakan tidak ada SD-Card! Anda dapat memasukkan kartu dan mengatur ulang lagi dan itu akan berfungsi untuk kedua kalinya.

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

atau Anda selalu dapat mematikan/menyalakan daya keras untuk memulai papan. Untuk beberapa alasan ini tampaknya berfungsi dengan baik. Juga jika Anda perlu mengunggah ulang perangkat lunak RunCPM, Anda harus melepas kartu SD terlebih dahulu.

Ini adalah ekstrak dari README. MD yang menjelaskan masalah ini. Saya telah menggunakan perbaikan dan berfungsi dengan baik, TAPI karena sifatnya risiko ada di tangan Anda, baca terus…

Namun, pengaturan untuk VGA32 ESP tampaknya memiliki konflik pada pengaturan GPIO untuk kartu SD.

Itu berfungsi tetapi untuk mengunggah Anda harus mengeluarkan kartu SD dan setelah soft reset Anda harus mengeluarkan kartu SD dan kemudian menggantinya diikuti dengan reset lain. Ini bekerja ok dari power on atau hard reset. Jika Anda dapat membantu memperbaikinya, beri tahu saya. PEMBARUAN 11Okt2020: VGA32 ESP v1.4 menggunakan GPIO12 (MTDI, baca saat powerup/reset). Pin ini menentukan tegangan untuk RAM, Voltage of Internal LDO (VDD_SDIO). Ketika kartu SD hadir, pin ini menarik tinggi dan ESP32 berpikir bahwa tegangan RAM harus 1.8V, tanpa kartu SD, pin ini memiliki pull-down internal untuk mengatur tegangan RAM ke 3.3V. Ini sebenarnya disebutkan dalam catatan dari contoh yang diberikan pada proyek FABGL, mengutip: catatan tentang GPIO 2 dan 12 - GPIO2: dapat menyebabkan masalah pada pemrograman. GPIO2 juga harus dibiarkan tidak terhubung/mengambang, atau didorong Rendah, untuk masuk ke bootloader serial. Dalam mode boot normal (GPIO0 tinggi), GPIO2 diabaikan. - GPIO12: harus dihindari. Ini memilih tegangan flash. Untuk menggunakannya, nonaktifkan pengaturan deteksi GPIO12 dengan: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN!! Baik untuk ESP32 dengan tegangan 3.3V (ESP-WROOM-32). Ini akan BATA ESP32 Anda jika flash bukan 3.3V CATATAN1: ganti "/ dev/cu. SLAB_USBtoUART" dengan port serial Anda CATATAN2: espefuse.py dapat diunduh dari

Ini lebih lanjut mencatat bahwa GPIO12 harus dihindari, sayang sekali tidak ada yang memberi tahu pembuat kartu VGA32 ESP!

TETAP: Saya telah mencoba opsi pengaturan tegangan flash untuk mengesampingkan penggunaan GPIO12 dan dapat mengonfirmasi pada vga32 ESP saya, Berhasil! Masalah diperbaiki tidak ada lagi masalah dengan Kartu SD. Saya mendorong Anda untuk memeriksa, memeriksa ulang dan berpikir dengan hati-hati tentang membuat BATA jika Anda memutuskan untuk mencobanya juga. Saya tidak merekomendasikannya sebagai tindakan, tetapi bagi saya itu berhasil.

Direkomendasikan: