Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
cpm:altairesp32 [2019/11/06 12:14] – angelegt volkerp | cpm:altairesp32 [2023/07/02 10:17] (aktuell) – [Software] volkerp | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
Alternative Software für VT100-Terminal, | Alternative Software für VT100-Terminal, | ||
+ | |||
+ | {{: | ||
+ | |||
Man muss nicht mal selbst eine Platine zusammenlöten; | Man muss nicht mal selbst eine Platine zusammenlöten; | ||
- | http:// | + | " |
{{: | {{: | ||
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:// | ||
+ | |||
+ | -> https:// | ||
+ | |||
+ | -> https:// | ||
+ | |||
+ | als Tastatur nutze ich ein [[https:// | ||
+ | |||
===== Software ===== | ===== Software ===== | ||
Zeile 19: | Zeile 34: | ||
{{: | {{: | ||
+ | |||
+ | Videos of Fabrizio Di Vittorio in action: | ||
+ | |||
+ | * FabGL Tutorial - Installation https:// | ||
+ | * Formatting C and D - MBASIC test https:// | ||
+ | * Setup Wordstar 4 https:// | ||
+ | * Text Games https:// | ||
+ | * Turbo Pascal 3 https:// | ||
+ | * Compiling C programs - https:// | ||
+ | * languages (BBC Basic, Nevada Basic, forth, lisp...) https:// | ||
+ | * Altair Basic https:// | ||
https:// | https:// | ||
Zeile 26: | Zeile 52: | ||
http:// | http:// | ||
- | https://esp32.com/viewtopic.php? | + | https://github.com/fdivitto/ |
https:// | https:// | ||
+ | Änderung auf serielle Ein- und Ausgabe statt VGA+Keyboard: | ||
+ | https:// | ||
+ | |||
+ | Transfer von disketten/ | ||
+ | https:// | ||
+ | |||
+ | und: https:// | ||
+ | |||
+ | ein weiteres Projekt:\\ | ||
+ | https:// | ||
===== Installation ===== | ===== Installation ===== | ||
Zeile 44: | Zeile 80: | ||
- 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: | ||
+ | |||
+ | Die Software erkennt automatisch, | ||
+ | |||
+ | Als SD-Karte kommt eine FAT/ | ||
+ | |||
+ | Nach dem erstmaligen Starten muss man die Arbeits-Disketten C und D formatieren. Das erfolgt mit | ||
+ | |||
+ | < | ||
+ | A>FORMAT | ||
+ | *** DISKETTE INITIALIZER *** | ||
+ | DISK DRIVE (A-P)? C | ||
+ | SECTORS PER TRACK: 32 | ||
+ | SECTORS PER BLOCK: 16 | ||
+ | BLOCKS PER DISK: 149 | ||
+ | RESERVED TRACKS: | ||
+ | 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> | ||
+ | </ | ||
+ | |||
+ | 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/ | ||
+ | |||
+ | 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, | ||
+ | |||
+ | 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-/ | ||
+ | |||
+ | 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/ | ||
+ | |||
+ | 2. Verwenden Sie das Plug-in-Tool ESP32FS ( https:// | ||
+ | |||
+ | 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-/ | ||
+ | |||
+ | 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, | ||
+ | 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 / | ||
+ | (Ersetzen Sie die Parameter „ MBASIC.COM “ und „/ | ||
+ | auf einem beschreibbaren Datenträger (C oder D) ausführen . | ||
+ | |||
+ | Sie können auch Disk-Images übertragen, | ||
+ | |||
+ | 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, | ||
+ | xxd -i myimage.dsk > | ||
+ | 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, | ||
+ | |||
+ | In Altair8800.ino müssen Sie die gerade erstellte Datei einfügen und Folgendes hinzufügen: | ||
+ | #include " | ||
+ | ..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, | ||
+ | ...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, | ||
+ | ...wobei DRIVE_C nur ein Dateiname in SPIFFS ist, geben Sie ein Festplatten-Image mit Lese-/ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Unterlagen ===== | ||
+ | |||
+ | https:// | ||
+ | |||
+ | https:// | ||
+ | |||
+ | ===== 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: | ||
+ | | | | ||
+ | | Hardware | ||
+ | | 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 | ||
+ | | 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, | ||
+ | | Power Supply | ||
+ | | Power Supply | USB 5V/1A | | ||
+ | | Charging current | 500mA | | ||
+ | | Battery | 3.7V lithium battery | | ||
+ | | Wi-Fi | Description | | ||
+ | | Standard | FCC/ | ||
+ | | Protocol | 802.11 b/ | ||