Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
cpm:altairesp32 [2023/01/17 09:40] – [Altair8800 mit ESP32] volkerpcpm:altairesp32 [2023/07/02 10:17] (aktuell) – [Software] volkerp
Zeile 14: Zeile 14:
  
 Leider finde ich nur wenig Infos über das Board selbst, z.B. einen Stromlaufplan oder Dokumentation zum Anschluss eines Lithium-Akkus :( Leider finde ich nur wenig Infos über das Board selbst, z.B. einen Stromlaufplan oder Dokumentation zum Anschluss eines Lithium-Akkus :(
 +
 +Charging current 500mA, Battery 3.7V lithium battery 
 +
 +
 +http://www.lilygo.cn/prod_view.aspx?TypeId=50033&Id=1083 (VGA32 Version 1.4)
  
 -> https://github.com/LilyGO/FabGL/blob/master/Schematic/vga32_v1.4.pdf -> https://github.com/LilyGO/FabGL/blob/master/Schematic/vga32_v1.4.pdf
Zeile 40: Zeile 45:
   * languages (BBC Basic, Nevada Basic, forth, lisp...) https://www.youtube.com/watch?v=y_Y5Z7Ks5yA   * languages (BBC Basic, Nevada Basic, forth, lisp...) https://www.youtube.com/watch?v=y_Y5Z7Ks5yA
   * Altair Basic https://www.youtube.com/watch?v=7ZEusFKKmTg   * Altair Basic https://www.youtube.com/watch?v=7ZEusFKKmTg
- 
  
 https://blog.adafruit.com/2019/04/19/fabgl-a-esp32-vga-controller-ps-2-graphics-library-game-engine-ansi-terminal-cameron_coward-hacksterio/ https://blog.adafruit.com/2019/04/19/fabgl-a-esp32-vga-controller-ps-2-graphics-library-game-engine-ansi-terminal-cameron_coward-hacksterio/
Zeile 52: Zeile 56:
 https://www.forum64.de/index.php?thread/93291-vc20-emulator-auf-vga-esp32/ https://www.forum64.de/index.php?thread/93291-vc20-emulator-auf-vga-esp32/
  
 +Änderung auf serielle Ein- und Ausgabe statt VGA+Keyboard:\\
 +https://hackaday.com/2020/08/20/esp32-altair-emulator-gets-split-personality/
  
 +Transfer von disketten/Programmen: (Richard Deane doppelklicken/expandieren):\\
 +https://groups.google.com/g/comp.os.cpm/c/RV9U9msAd68
 +
 +und: https://macgui.com/usenet/?group=93&id=15220
 +
 +ein weiteres Projekt:\\
 +https://github.com/GmEsoft/Z80-MBC2_VGA32
 ===== Installation ===== ===== Installation =====
  
Zeile 66: Zeile 79:
   - Beispiele/FabGL/Altair8800 auswählen und übertragen   - Beispiele/FabGL/Altair8800 auswählen und übertragen
   - Fertig!   - Fertig!
 +
 +===== Benutzung =====
 +
 +Beim Starten sucht die Software, ob eine SD-Karte vorhanden ist, und kopiert die Disketten A..D auf diese, sofern noch keine Dateien diskA.dsk..diskD.dsk auf dieser vorhandsind. Ob SD-Karte oder der interne Flash-Speicher (SPIFFS) genutzt wird, erkenn man am einfachsten beim Start in der "file system-Zeile: ist der Speicher klein (eta 665 KiB used, 621 KiB free), wird der Flash-Speicher genutzt, bei Zahlen im MB..GB-Bereich die CD-Karte.
 +
 +Die Software erkennt automatisch, ob die SD-Karte auf dem ESP32-VGA32-Board genutzt wird (Pins 2+12), man muss nichts im Code ändern.
 +
 +Als SD-Karte kommt eine FAT/FAT32-formatierte Karte zum Einsatz. Eine alte 2GB-Karte wurde nicht erkannt, eine 8GB-SDHC-Karte funktioniert problemlos.
 +
 +Nach dem erstmaligen Starten muss man die Arbeits-Disketten C und D formatieren. Das erfolgt mit
 +
 +<code>
 +A>FORMAT
 +*** DISKETTE INITIALIZER ***
 +DISK DRIVE (A-P)? C
 +SECTORS PER TRACK: 32
 +SECTORS PER BLOCK: 16
 +BLOCKS PER DISK:   149
 +RESERVED TRACKS:   2
 +TRACKS PER DISK:   77
 +COMMAND: FULL
 +WARNING: THIS COMMAND DESTROYS ALL DATA ON THE DISK
 +TYPE C TO CONTINUE, A TO ABORT WITHOUT LOSS.
 +PROCESSING TRACK# 76
 +INIT DONE - NOW VERIFYING DISKETTE
 +PROCESSING TRACK# 76
 +NO ERRORS FOUND ON THIS DISKETTE
 +COMMAND: STOP
 +A>
 +</code>
 +
 +Achtung: Alle Eingaben müssen im Programm FORMAT in Großbuchstaben erfolgen!
 +
 +
 +Mit F12 oder PAUSE gelangt man in das Konfigurationsmenü. Für eine deutsche Tastaturbelegung muss man mehrfach Taste K drücken.
 +
 +Zum Übertragen von Images und einzelnen Dateien siehe:
 +
 +**Anmerkungen zu FabGL – Altair 8080 CP/M (von Richard Deane)**
 +
 +Die ESP32 VGA FabGL Altair 8080 CP/M-Emulation ist ein funktionsfähiger CP/M-Computer mit dem Äquivalent von 4 Diskettenlaufwerken (unter Verwendung von Altair 338-KB-dsk-Images), kompatibel mit Images vom Altairclone.com- Site.
 +
 +Die Konsole ist standardmäßig dem physischen VGA-Monitor und der Tastatur zugewiesen, die an den TTGO ESP32 VGA angeschlossen sind, kann aber über den cp/m-Befehl STAT CON:=UC1: auf den USB-Port (seriell) umgeleitet werden.
 +
 +Standardmäßig ist das System mit zwei vorab gefüllten Disk-Images auf A: und B: konfiguriert, die schreibgeschützt sind (ich gehe davon aus, dass dies an Einschränkungen durch den für die Speicherung verwendeten Speicher liegt – ich werde dies weiter untersuchen).
 +
 +Beim Durchsuchen des Codes der altair8800-Skizze dachte ich, dass die Laufwerke C und D standardmäßig bestückt wären, aber das ist mir noch nicht gelungen. Diese Laufwerke verfügen über Lese-/Schreibzugriff und sind im SPIFFS-Speicher innerhalb von ESP32 vorhanden.
 +
 +Ich habe zwei Möglichkeiten zum Bestücken von C- und D-Laufwerken identifiziert:
 +
 +1. Verwenden Sie die von FabGL bereitgestellten Tools – das Python-„Transdisk“-Tool und die Menüoption auf dem cp/m-Emulator unter ESP32-VGA (aufgerufen durch Pause-Taste, dann S oder). R) zum Übertragen von 338 KB Altair-Disk-Images. Ich hatte Probleme, Python Serial unter Mac OSX und Windows zum Laufen zu bringen, aber unter Raspberry Pi 4 funktionierte es einwandfrei. Damit können Festplatten in beide Richtungen übertragen werden.
 +
 +2. Verwenden Sie das Plug-in-Tool ESP32FS ( https://github.com/me-no-dev/arduino-esp32fs-plugin/releases), die eine Tools-Option in die Arduino IDE einfügt (ESP32 Sketch Data Upload). Platzieren Sie die erforderlichen Festplatten-(dsk)-Images in einem „Data“-Ordner unter dem Altair880-Ordner von FabGL-master und stellen Sie sicher, dass die Namen mit denen in der Altair880-Skizze (diskC.dsk und diskD.dsk) übereinstimmen. Dadurch werden die Dateien in den Emulator übertragen, ein Export zurück zum Host-PC ist jedoch nicht möglich.
 +
 +Das mitgelieferte cpm22-System (Laufwerk A) unterstützt kein generisches Kermit, daher gehe ich davon aus, dass IOBYTE nicht implementiert ist. Ich konnte dies ersetzen, indem ich ein gleichnamiges Image cpm22_dsk.h erstellte, das jedoch von kermit.dsk von Altairclone.com abgeleitet war (Konvertierung vom dsk- in das h-Format mithilfe des Linux- oder OS X-Befehls xxd mit der Option -I und anschließendes Bearbeiten des Datentyps). , siehe Details unten. Der Befehl xxd with -i kann nicht vom h- in das Festplattenformat zurückkonvertieren und ist nach der Bereitstellung als Laufwerk A schreibgeschützt. Um eine Festplatte zu erstellen, müssen Sie sie daher möglicherweise mit Lese-/Schreibzugriff auf C oder D erstellen vor dem Export als DSK, der Konvertierung nach H und dem Neuaufbau über Arduino IDE als Laufwerk A.
 +
 +Bisher habe ich nur CP/M 2.2 verwendet und CP/M 3 noch nicht ausprobiert.
 +
 +**Das Folgende basiert auf Informationen des Autors Fabrizio Di Vittorio.**
 +
 +Die Implementierung von Altair 8080 ist lediglich eine Demo der FabGL-Nutzung und kein Endprodukt.
 +
 +Übertragen von Dateien:
 +
 +USB-Link ist an SIO2 angeschlossen. Sie können eine Datei mit dem Befehl PCGET.COM auf der CP/M-Seite übertragen. Führen Sie einfach Folgendes aus:
 +
 +  PCGET-Dateiname B
 +
 +„B“ zeigt an, dass SIO2 verwendet werden soll. Ersetzen Sie „Dateiname“ durch den Namen der Datei, die Sie erhalten. PCGET verwendet das XMODEM-Protokoll, sodass Sie jedes Tool verwenden können, das dieses Protokoll auf der PC-Seite unterstützt. Stellen Sie einfach sicher, dass die Geschwindigkeit 115200 beträgt.
 +Der Autor hat ein Python-Tool (im Ordner „tools“) mit dem Namen „TRANSFILE.py“ erstellt.
 +Starten Sie einfach:
 +  PCGET MBASIC.COM B ....auf der Altair-Seite und...
 +  python transfile.py MBASIC.COM nach /dev/cu.SLAB_USBtoUART ...auf der PC-Seite....
 +(Ersetzen Sie die Parameter „ MBASIC.COM “ und „/dev/cu.SLAB_USBtoUART“ durch die Ihrer Konfiguration). Stellen Sie sicher, dass Sie PCGET.COM
 +auf einem beschreibbaren Datenträger (C oder D) ausführen .
 +
 +Sie können auch Disk-Images übertragen, verwenden Sie dazu „transdisk.py“. Drücken Sie auf der Altair-Seite die „Pause“-Taste und aktivieren Sie die Option „Get Disk from Serial“.
 +
 +Erstellen von Festplatten:
 +
 +Sie können ein „.h“-Disk-Image aus dem „dsk“-Format erstellen. Das DSK-Format muss 77 Spuren mal 32 Sektoren (8-Zoll-Standard) oder eine Minidisk mit 35 Spuren mal 16 Sektoren sein. Dies ist das gebräuchlichste Format, das Sie im Internet finden können.
 +
 +Um einen DSK in einen Header zu konvertieren, können Sie den Linux-Befehl „xxd“ (oder MacOS und jetzt sogar mit der letzten Version von Windows 10) verwenden:
 +   xxd -i myimage.dsk >myimage.h
 +Es wird myimage.h erstellt. Öffnen Sie es nun und ändern Sie die erste Zeile von...
 +  unsigned char myimage[] = {
 +  ...to...
 +  const uint8_t myimage[] = {
 +Diese Änderung ist erforderlich, um den Header in Flash (nicht in SPIFFS) statt im RAM zu speichern.
 +
 +In Altair8800.ino müssen Sie die gerade erstellte Datei einfügen und Folgendes hinzufügen:
 +  #include "disks/....whereyouplacedthedisk.../myimage.h"
 +..und schließlich können Sie sie A oder B zuweisen mit (Zeile 106):
 +  #define DRIVE_A myimage // A: read only
 +Eigentlich kann man jedem Laufwerk jedes Image zuweisen. Von Zeile 342 bis 349 werden tatsächlich Treiber mit Disk-Images verknüpft.
 +Mit...
 +  diskDrive.attachReadOnlyBuffer(0, DRIVE_A);
 +...Sie geben eine Header-Datei an (einen im Code gespeicherten Konstantenpuffer). Natürlich können Sie DRIVE_A direkt durch „myimage“ ersetzen, das Sie gerade erstellt haben.
 +Mit...
 +  diskDrive.attachFile(2, DRIVE_C);
 +...wobei DRIVE_C nur ein Dateiname in SPIFFS ist, geben Sie ein Festplatten-Image mit Lese-/Schreibzugriff an. Es muss vor der Verwendung in CP/M formatiert werden.
 +
 +
  
 ===== Unterlagen ===== ===== Unterlagen =====
Zeile 72: Zeile 188:
  
 https://altairclone.com/downloads/support_package/ https://altairclone.com/downloads/support_package/
 +
 +===== VGA32 V1.4 =====
 +
 +2022: Die aktuelle Version der kleinen Platine bringt unter anderem gleich einen Mini-SD-Kartenslot mit.
 +Die Software von fabgl unterstützt diese und speichert die Diskettenimages auf SD, wenn beim Start eine SD-Karte gefunden wird!
 +
 +mit SD-Card und Audio
 +
 +Update information: Add audio output interface 3.5mm interface, and speaker output JST 2.0 PH 2-Pin interface |
 +|  |
 +| Hardware  | Specifications |
 +| Chipset | TTGO Micro32 |
 +| FLASH | QSPI flash 4MB / PSRAM 8MB |
 +| SRAM  | 520 kB SRAM |
 +| Button | Reset, IO36 |
 +| Extended function | VGA, PS/2 |
 +| USB to TTL | CH9102F |
 +| Modular interface | UART, SPI, SDIO, I2C, LED PWM, TV PWM, I2S, IRGPIO, capacitor touch sensor, ADC, DACLNA  pre-amplifier |
 +| On-board clock | 40MHz crystal oscillator  |
 +| Working voltage | 2.7V-3.6V |
 +| Working current | about 30mA |
 +| Sleep current | 230uA |
 +| Working temperature range | -40? ~ +85? |
 +| Size & Weight | without VGA: 60.99mm*32.06mm*16.79mm, with VGA: 66.70mm*32.06mm*16.79mm21.25g |
 +| Power Supply  | Specifications |
 +| Power Supply | USB 5V/1A |
 +| Charging current | 500mA |
 +| Battery | 3.7V lithium battery |
 +| Wi-Fi | Description |
 +| Standard | FCC/CE-RED/IC/TELEC/KCC/SRRC/NCC |
 +| Protocol | 802.11 b/g/n(802.11n, speed up to150Mbps)A-MPDU and A-MSDU polymerization, support 0.4µS Protection interval |
  
  • cpm/altairesp32.1673948402.txt.gz
  • Zuletzt geändert: 2023/01/17 09:40
  • von volkerp