İçindekiler:

Retro CP/M Stand Alone Emülatörü: 8 Adım
Retro CP/M Stand Alone Emülatörü: 8 Adım

Video: Retro CP/M Stand Alone Emülatörü: 8 Adım

Video: Retro CP/M Stand Alone Emülatörü: 8 Adım
Video: Building a Standalone Z80 CP/M Computer (part 1) 2024, Kasım
Anonim
Retro CP/M Tek Başına Emülatör
Retro CP/M Tek Başına Emülatör

Bu proje, bir kombinasyonu çalıştırmak için VGA32 ESP v1.4 modülünü veya CP/M 2.2'ye eşdeğer bir sistem çalıştıran bağımsız bir bilgisayar sağlamak için RunCPM ve FabGL'yi kullanır. 1980'lerde küçük bilgisayarlar için bir işletim sistemi olarak popülerdi. Zamanda geriye gidebilir ve Wordstar, Supercalc, Adventure ve Zork gibi eski yazılımları tekrar ziyaret edebilirsiniz.

Yazılımın standart bir VGA monitör ve PS/2 Klavye çalıştırmasını sağlayan FabGL projesinin bağımsız bir nezaketidir.

Ana işletim sistemi RunCPM'nin değiştirilmiş bir Sürümüdür, Github'daki orijinal çalışmadan çatallanmıştır ve seri konsol yerine ekranda kullanılmasını sağlamak için FabGL kitaplığını ekledim.

Her iki projeye de çok teşekkür etmek istiyorum. İyi çalışmaya devam edin!

Yazılım, donanımın en az iki sürümü üzerinde test edilmiştir. Bir adet VGA32 ESP v1.4 (hazır olarak satıldığı gibi). İkinci eski versiyonum, bir Wroom ESP32 Modülünden inşa ettim ve eski bilgisayarlardan hurda parçaları yaptım.

Aşağıdaki Github sitesi, değiştirilmiş kuruluma hazır yazılımın yanı sıra bu kurulumlar hakkında önemli bilgiler içerir.

Bu proje, donanımla ilgili değil, yazılımın kurulmasıyla ilgilidir.

Gereçler:

Bir VGA32 ESP modülü V1.4 (test edildi). eBay / aliexpress / amazon vb. Bulundu

Bir bilgisayara kurulu Arduino IDE, bunu okuyorsanız zaten buna sahip olduğunuzu varsayıyorum.

Arduino IDE için ESP32 destek paketini kurun. https://github.com/espressif/arduino-esp32 1. adıma bakın

FabGL kütüphanesi https://www.fabglib.org/ hiçbir şey indirmenize gerek yok, arduino IDE bunu bizim için yapabilir, 2. adıma bakın.

Değiştirilmiş RunCPM'nin bir kopyasını https://github.com/coopzone-dc/RunCPM adresinden indirin

Adım 1: Arduino için ESP32 Desteğini kurun (isteğe bağlı)

Arduino için ESP32 Desteğini Kurun (isteğe bağlı)
Arduino için ESP32 Desteğini Kurun (isteğe bağlı)

Bunu zaten yapmış olabilirsiniz, varsa bu adımı atlayabilirsiniz.

github.com/espressif/arduino-esp32 adresini ziyaret edin ve aşağıdaki gibi pano yöneticisini kullanarak yükleme talimatlarını izleyin:

Arduino IDE Boards Manager kullanarak kurulum talimatları========================================= ===============

Kararlı sürüm bağlantısı:

Mevcut yukarı akış Arduino IDE'yi 1.8 seviyesinde veya daha sonra kurun. Mevcut sürüm Arduino web sitesinde.

Arduino'yu başlatın ve Tercihler penceresini açın.

Ek Pano Yöneticisi URL'leri alanına yukarıdaki sürüm bağlantılarından birini girin. Virgülle ayırarak birden çok URL ekleyebilirsiniz.

Araçlar > Pano menüsünden Boards Manager'ı açın ve esp32 platformunu kurun (ve kurulumdan sonra Araçlar > Pano menüsünden ESP32 kartınızı seçmeyi unutmayın).

Adım 2: FabGL Kitaplığını IDE'ye Ekleme

FabGL Kitaplığını IDE'ye Ekleme
FabGL Kitaplığını IDE'ye Ekleme
FabGL Kitaplığını IDE'ye Ekleme
FabGL Kitaplığını IDE'ye Ekleme

Arduino IDE'de boş bir çizim kullanarak, Araçlar menüsü, Panolar'dan ESP Panonuzu seçtiğinizden emin olun. (VGA32 ESP'yi yazarken listede yoktu, genel bir Dev Kit kartı seçiyorum).

Çizim menüsünden Kitaplığı Dahil Et'i ve ardından Kitaplık yöneticisi'ni seçin.

Arama iletişim kutusuna FabGL yazın ve aşağıdaki listede görünmesini bekleyin, şimdi Yükle düğmesine tıklayın.

bitmiş

3. Adım: RunCPM Tarafından Kullanılan Ek SD kart Kitaplığı Ekleme

RunCPM Tarafından Kullanılan Ek SD kart Kitaplığı Ekleme
RunCPM Tarafından Kullanılan Ek SD kart Kitaplığı Ekleme

Bu, önceki adımla hemen hemen aynıdır, ancak FabGL araması yerine SDFat

Çizim menüsünden Kitaplığı Dahil Et'i ve ardından Kitaplık yöneticisi'ni seçin. Arama iletişim kutusuna SDFat yazın ve aşağıdaki listede görünmesini bekleyin, muhtemelen listeyi aşağı kaydırmanız gerekecektir.

İki versiyon arasından seçim yapabilirsiniz:

1, SdFat, Bill Greiman

2, SdFat - Adafruit Çatal

İkisini de denedim, ikisi de iyi çalışıyor gibi görünüyor. Ancak RunCPM projesi İkinci seçenek "Adafruit Çatal"ı önerdi, ancak en son notlarda şimdi şöyle diyor:

Tüm panolar artık buradan SdFat kitaplığını kullanıyor:

Şimdi bu proje için ilk seçeneği seçiyorum.

bitmiş

Adım 4: Değiştirilmiş RunCPM Projesini İndirin

Değiştirilmiş RunCPM Projesini İndirin
Değiştirilmiş RunCPM Projesini İndirin
Değiştirilmiş RunCPM Projesini İndirin
Değiştirilmiş RunCPM Projesini İndirin

Github Sitesini ziyaret edin, KOD düğmesine tıklayın ve ZIP dosyası olarak indirin

Bu dosyayı bir yere kaydedin (normalde Arduino.

Dosyayı aynı konuma açın, RunCPM-master adlı bir klasör üretecektir.

bitmiş

Adım 5: RunCPM Programını Açın ve İnceleyin ve Derleyin

RunCPM Programını Açın ve İnceleyin ve Derleyin
RunCPM Programını Açın ve İnceleyin ve Derleyin

Artık Arduino IDE Dosyası Aç menüsünü kullanabilirsiniz. Yukarıda birleştirdiğiniz klasöre gidin.

Bu klasörün içinde RunCPM adlı başka bir klasör var. Klasörü açın.

Bu klasörün içinde RunCPM.ino adlı bir.ino dosyası bulunur. Bu ana proje dosyasıdır - açın.

Artık projeyi görüntüleyebilir, yorumları okuyabilir vb. VGA32 -ESP sürümünüze uymanız gerekiyorsa değişiklik yapabilirsiniz. Kartın V1.4'ü için önceden yapılandırılmış olmalıdır.

Şimdi, VGA32 ESP'ye bağlı olduğunuzu varsayarak, derlemeyi ve yüklemeyi tıklayabilirsiniz, öykünücüyü cihazınıza yükleyecektir.

ÖNEMLİ: VGA32'nin bu noktada SD kartıyla ilgili bir sorunu olabilir, bu yüzden bilmek için takmayın. Daha fazla bilgi için aşağıdaki son adıma bakın.

6. Adım: RunCPM'nizi Başlatmaya Hazır bir SD kart oluşturun

Bu belki de adımların en hilesidir. Bunun nasıl yapılacağı konusunda Github sitesinin README.md dosyasını okumanızı öneririm. İşte yapılacaklar listem:

Boş bir SD kartınız olduğunu veya sahip olduğunuzda herhangi bir dosya tutmakla ilgilenmediğinizi varsayıyorum, bu onu silecektir.

1, SD kartı FAT-32 olarak biçimlendirin

2, A, B, C D vb. adlı bazı klasörler oluşturun (P'ye kadar bunlar, CP/M çalıştırıldığında disk sürücüleri olacaktır). Bunların başkent olduğuna dikkat edin.

3, Oluşturduğunuz her klasörde 0 (sıfır) ve isteğe bağlı olarak 1, 2, 3 vb (15'e kadar) adında başka bir klasör oluşturun. Daha sonra klasörler CP/M emülasyonunda Kullanıcı Alanlarıdır. Başlamak için sadece 0 klasörüne ihtiyacınız var.

4, arduino dizininde indirdiğiniz proje klasörünüzden CCP adlı klasörü bulun. Bu, CP/M Komut Konsolu İşlemcisinin çeşitli sürümlerini içerir. CCP-DR.60K adlı dosyayı SD Kartınızın kök dizinine kopyalayın.

5, Şimdi proje dizinindeki DISK adlı klasörü bulun, İçinde bir A. ZIP dosyası var, bu dosyayı SD kartınızdaki A/0/ adlı dizine açmanız gerekiyor. (ayrıca daha fazla bilgi için 1streadme dosyasına bakın). Maalesef klasör listesinde "0" yok, bu yüzden önce geçici bir klasöre sıkıştırmanız, ardından A klasörünün içeriğini SD karttaki A/0/ klasörüne kopyalamanız gerekiyor.

6, Yukarıdaki adımları tamamladığınızda aşağıdaki gibi bir yapıya sahip bir SD-Kartınız olacaktır:

F: ÇKP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. vesaire

/B/0

/C/0

vesaire

SD-Karttan başlatmaya çalıştığınızda CCP yüklenemiyor vb. hatalar alırsanız, her şeyin doğru hızda olup olmadığını iki kez kontrol edin!

Bu aşamayı biraz daha kolaylaştırmak için, yukarıda cp/m yazılımının eklendiği hazır bir sürümünü yükledim ve buradan indirin https://github.com/coopzone-dc/RunCPM/blob /master/… ve formatlanmış bir SD-Kartın kök dizinine çıkartın. Başlamanız gerekir, daha sonra kendinizinkini oluşturabilirsiniz.

Ayrıca Github Repo'daki kurulum kılavuzunu okumanızı tavsiye ederim, ihtiyacınız olan klasörlerin açıklaması var.

7. Adım: Bir VGA Monitörü ve Klavyeyi Bağlayın

Bir VGA Monitörü ve Klavyeyi Bağlayın
Bir VGA Monitörü ve Klavyeyi Bağlayın

VGA32 ESP kartına giden gücü kesin.

VGA Monitörünüzü bağlayın

Bir PS/2 Klavye Bağlayın Gücü VGA32 ESP kartına yeniden bağlayın, klavye ışıklarının yanıp söndüğünü görmelisiniz ve yaklaşık 10 saniye sonra ekranda CP/M istemiyle bir resim belirecektir!

Önemli: VGA32'de SD kart ve yazılım sıfırlaması kullanılırken bir sorun oluşur, bu nedenle yukarıdaki ilk adım olarak GÜCÜ KAPATMAK önemlidir, Daha fazla bilgi için son adıma bakın.

Sen git…

Adım 8: VGA32 Modülünde SD Kartla İlgili Sorun

VGA32 Modülünde SD Kartla İlgili Sorun
VGA32 Modülünde SD Kartla İlgili Sorun
VGA32 Modülünde SD Kartla İlgili Sorun
VGA32 Modülünde SD Kartla İlgili Sorun

Yukarıdaki fotoğraf ikinci ESP32 kartımı (ev yapımı) gösteriyor, bu gayet iyi çalışıyor ve aşağıdaki sorun yok. Bu yüzden bir yazılım sorunu olmadığını biliyorum, lütfen VGA32 sürümü hakkında aşağıdakileri okuyun.

VG32 ESP modülümde (v1.4) SD kart GPIO12 kullanır, Bu pin, dahili bellek için çalışma voltajını algılamak için bu pin güç açıldığında kullanıldığından Espressif Systems tarafından önerilmez. Keşke birisi bu VGA32 kartını yapan adama söyleseydi! Sizinki farklı olabilir, umarım bu sorunu yaşamazsınız.

Sorunlar:

1, Kart takılıyken çizim yüklenemiyor.

2, Sıfırlama düğmesine bastıktan sonra, SD kart çıkarılıncaya kadar kilitlenir. Ardından, SD-Kart yok diyen bir hata ekranına açılıyor! Kartı takıp tekrar sıfırlayabilirsiniz ve ikinci kez çalışacaktır.

Bu sorun düzeltilebilir (Ancak bir riski vardır) https://github.com/coopzone-dc/RunCPM/blob/master/… adresinde README.md'ye bakın.

veya kartı başlatmak için her zaman sert bir kapatma/açma yapabilirsiniz. Nedense bu iyi çalışıyor gibi görünüyor. Ayrıca RunCPM yazılımını yeniden yüklemeniz gerekirse, önce SD kartı çıkarmalısınız.

Bu, sorunu açıklayan README. MD'den bir alıntıdır. Düzeltmeyi kullandım ve iyi çalışıyor, AMA doğası gereği risk size ait, okumaya devam edin…

Ancak, VGA32 ESP'nin ayarları, SD kartın GPIO ayarlarıyla çakışıyor gibi görünüyor.

Çalışıyor ama yüklemek için SD kartı çıkarmanız gerekiyor ve yazılım sıfırlamasından sonra SD kartı çıkarmanız ve ardından başka bir sıfırlama ile değiştirmeniz gerekiyor. Bir güç açıkken veya donanımdan sıfırlamadan tamam çalışır. Bunu düzeltmeye yardımcı olabilirseniz lütfen bana bildirin. GÜNCELLEME 11Ekim2020: VGA32 ESP v1.4, GPIO12 (MTDI, açılışta/sıfırlamada okuma) kullanır. Bu pin RAM voltajını, Dahili LDO Voltajını (VDD_SDIO) belirler. SD kart varken bu pini yukarı çeker ve ESP32 RAM voltajının 1.8V olması gerektiğini düşünür, SD kart olmadan bu pin RAM voltajını 3.3V'a ayarlamak için dahili pull-down özelliğine sahiptir. Bu aslında FABGL projesinde verilen örneklerden notlarda, alıntı yapmak için belirtilmiştir: GPIO 2 ve 12 - GPIO2 ile ilgili notlar: programlamada soruna neden olabilir. Seri önyükleyiciye girmek için GPIO2'nin de bağlantısız/yüzer durumda bırakılması veya Düşük olarak çalıştırılması gerekir. Normal önyükleme modunda (GPIO0 yüksek), GPIO2 yoksayılır. - GPIO12: kaçınılmalıdır. Flaş voltajını seçer. Bunu kullanmak için GPIO12 algılama ayarını devre dışı bırakın: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V UYARI!! 3.3V voltajlı (ESP-WROOM-32) ESP32 için uygundur. Flaş 3.3V değilse bu, ESP32'nizi BRİCK yapacaktır NOT1: "/dev/cu. SLAB_USBtoUART" öğesini seri bağlantı noktanızla değiştirin NOT2: espefuse.py, https://github.com/espressif/esptool adresinden indirilebilir

Bu ayrıca, GPIO12'den kaçınılması gerektiğini not eder, kimsenin VGA32 ESP kartının üreticisine söylemediği bir üzücü!

DÜZELTİLDİ: GPIO12 kullanımını geçersiz kılmak için flaş voltajını ayarlama seçeneğini denedim ve vga32 ESP'mde onaylayabiliyorum, Çalışıyor! Sorun, SD Kartla ilgili daha fazla sorunu çözmedi. Siz de denemeye karar verirseniz, bir TUĞLA oluşturmayı kontrol etmenizi, iki kez kontrol etmenizi ve dikkatlice düşünmenizi tavsiye ederim. Bunu bir eylem olarak önermiyorum, ama benim için işe yaradı.

Önerilen: