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
homecomputer:ac1:picoac1 [2024/03/31 08:31] – [Anschluss] volkerphomecomputer:ac1:picoac1 [2026/01/05 07:06] (aktuell) – [Systemdateien] volkerp
Zeile 1: Zeile 1:
- 
 ====== picoAC1 ====== ====== picoAC1 ======
    
Zeile 22: Zeile 21:
 Nach dem Anschließen der Stromversorgung sollte der picoAC1 ein Bild ähnlich wie folgt anzeigen: Nach dem Anschließen der Stromversorgung sollte der picoAC1 ein Bild ähnlich wie folgt anzeigen:
  
-TODO+{{:homecomputer:ac1:picoac1_start.jpg?600|}} 
 + 
 + 
 +Die mittig auf der Leiterplatte sitzende LED kennzeichnet den AC1-Betriebsmodus. Im CP/M-Betrieb ist sie dunkel ((nur bei BWS-Zugriffen wird sie kurz aktiviert))
  
-Die mittige LED kennzeichnet den AC1-Betriebsmodus. Im CP/M-Betrieb ist sie dunkel ((nur bei BWS-Zugriffen wird sie kurz aktiviert)) 
 ===== Bedienung ===== ===== Bedienung =====
  
Zeile 30: Zeile 31:
  
 Das Standard-System des picoAC1 ist eine Erweiterung des originalen Monitors 3.1 [[homecomputer:ac1:monitor31|]]. Statt des Minibasics gibt es zusätzliche Kommandos zur Arbeit mit der SD-Karte. Das Minibasic ist trotzdem mit dem Kommando "Z" verfügbar (s. [[#externe_funktionen|]]). Das Standard-System des picoAC1 ist eine Erweiterung des originalen Monitors 3.1 [[homecomputer:ac1:monitor31|]]. Statt des Minibasics gibt es zusätzliche Kommandos zur Arbeit mit der SD-Karte. Das Minibasic ist trotzdem mit dem Kommando "Z" verfügbar (s. [[#externe_funktionen|]]).
 +
 +{{:homecomputer:ac1:picoac1_start_monitor.jpg?600|}}\\ Verzeichnisse anzeigen, wechseln, Dateien anzeigen, Spiel laden, starten
 +
 +{{:homecomputer:ac1:picoac1_ghosttown.jpg?600|}}\\ Spiel
 +
 +
 +
 +
  
 ==== Tastatur ==== ==== Tastatur ====
Zeile 90: Zeile 99:
 ===== Beispiel ===== ===== Beispiel =====
  
-TODO+  * {{ :homecomputer:ac1:picoac1_sd.zip |}} Inhalt der SD-Karte; einfach entpacken 
 + 
 +Auf der SD-Karte ist folgende Verzeichnisstruktur angelegt: 
 + 
 +<code> 
 +E: (PICOAC1) 
 +├───.ac1bin             der "Papierkorb" 
 +├───basic8k             BASIC8K_SD + Beispiele 
 +├───cpm                 Diskettenimages + Bios + dsk.sys + os.sys 
 +│   ├───ARCHIV          leere Images 
 +│   └───EXTERN          CP/M-Programme zum Import via LDEX 
 +├───edas                picoEDAS + Beispiele  
 +├───forth               Forth83 der IG Forth  
 +├───minibas             Minibasic-Programme 
 +└───spiele              Maschinencode-Spiele 
 +</code>
  
 ==== Systemdateien ==== ==== Systemdateien ====
Zeile 104: Zeile 128:
 **.hklist**\\ Hotkey -Liste. Erläuterungen s. Keyboard **.hklist**\\ Hotkey -Liste. Erläuterungen s. Keyboard
  
-===== Monitor-Kommandos =====+==== Dateiformate ====
  
-im System "picoAC1   Monitor  V3.1 plus" stehen statt des Minibasic im EPROM zusätzliche MonitorkommandosDiese dienen vor allem der Arbeit mit der SD-Karte+https://www.robotrontechnik.de/html/forum/thwb//showtopic.php?threadid=23717
  
-Die zusätzlichen Monitorkommandos sind **Kleinbuchstaben**, die originalen Kommandos des [[homecomputer:ac1:monitor31|Monitors 3.1]] i.d.R. **Großbuchstaben**.+Mit dem picoAC1-Monitor (MO1) sind von SD-Karte nur Headersave-Dateien ladbar. Das 8kBASIC-SD kann die *.B8-Dateien direkt Laden und Speichern.
  
-Monitorkommandos bestehen aus einem Buchstaben/Zeichen und Argumenten.+*.ABC-Dateien sind tokenisierte Dateien vom BASIC6 (WeRo). BASIC6 läuft aber nur mit dem Monitor11.0 (RH) und VDIP und das auch eingeschränkt (COLOR, TIME, MODE....).
  
-Dem Kommando-Kennbuchstaben können je nach Befehl 1 bis 3 Argumente folgenDiese werden wie im AC1 üblich in 1 bis 4-stelligen Hex-Zahlen angegebenFür die Zeichen 'Abis 'Fsind Großbuchstaben zu verwenden.+Der Monitor11.0 (MO4) 'biegt' CLOAD und CSAVE im GW-BASIC3.2 auf VDIP-USB um, so dass auf USB-Stick die BASIC-Dateien als tokenisierte Dateien mit Headersave-Header gespeichert und geladen werden. Hier wird aber ab 6000h und nicht erst ab 60F7h gespeichert. 
 +GW-BASIC3.2 + Mo11.0 CSAVE "TEST1 -> 'TEST1.Z80auf USB-Stick (immer im ROOT) 
 +SLOAD "TEST1 -> 'TEST1.Z80wird geladen - evtlvorher NEW, sonst wird hinter das im Speicher stehende BASIC-PGM angehangen
  
-Einige Kommandos verlangen die Eingabe einer ZeichenketteDiese ist nach den Argumenten bzwdem Kennbuchstaben einzugebenVon einem Argument ist die Zeichenkette durch mindestens ein Leerzeichen zu trennenNach einem Kennbuchstaben ist kein Leerzeichen erforderlichBis zum Anfang der Zeichenkette sind bis zu 9 Leerzeichen zulässig.+BASIC6 + Mo11.0 od. 10/88 - SAVE "TEST1" -> 'TEST1.ABC' wird im aktuell eingestellten Directory auf USB-Stick gespeichert. 
 +- LOAD "TEST1" -> 'TEST1.ABC' wird geladen......
  
-Die Zeichenkette wird durch ein Leerzeichen abgeschlossenNachfolgende Zeichen werden ignoriertD.hZeichenketten können keine Leerzeichen beinhalten.+picoMonitor + BASIC8K_SD - DSAVE"TEST1" -> 'TEST1.B8' wird im aktuell eingestellten Directory (Statuszeile) gespeichert. 
 +DLOAD"TEST1" -> 'TEST1.B8' wird geladen.....
  
 +Reine BIN-Dateien können beim einfachen 8k-BASIC ab 60F7h oder aber von 6000h jeweils bis BASIC-PGM-Ende (steht in 60D2h und 60D3h LO/HI) gespeichert werden. Beim laden von BIN (60F7h-xxxxh) ist anschließend das PGM-Ende in den beiden genannten Speicherzellen 'händisch' einzutragen,
 +bei ab 6000h-xxxxh hat man das ja schon mit drin.
  
 +Reine .BIN-Dateien lassen sich mit dem pico-Moni leider n i c h t von der SD laden. Die sollten aber mit dem Mo11.0 und VDIP-USB unter Angabe der A-Adresse zu laden sein < U 1900 "UHR.BIN" >, -> angezeigte E-Adresse merken
 +-> umschalten auf pico-Moni -> < s aaaa eeee (ssss) UHR > speichert dann auf SD im 'pico-verdaulichen' Headersave-Format im aktuellen SD-Directory ab.
  
-==== s - save - Daten auf SD-Karte schreiben ==== 
  
-    s AAAA EEEE SSSS Dateiname/Infotext+===== Monitor-Kommandos =====
  
-  AAAA Anfangsadresse   +im System "picoAC1   Monitor  V3.1 plus" stehen statt des Minibasic im EPROM zusätzliche Monitorkommandos. Diese dienen vor allem der Arbeit mit der SD-Karte
-  EEEE Endadresse   +
-  SSSS Startadresse   +
-  Dateiname zulässige Zeichen entsprFAT32, keine Wildcards, nicht casesensitiv   +
-  Infotext (optional)  +
  
-Dem Dateinamen kann ein Infotext angefügt werden. Beide Teile werden durch '/' getrennt. In diesem Fall wird im Header nicht der Dateiname sondern die Info gespeichert, die beim Laden angezeigt wirdLeerzeichen sind in der Gesamtheit nicht möglich.+Die zusätzlichen Monitorkommandos sind **Kleinbuchstaben**, die originalen Kommandos des [[homecomputer:ac1:monitor31|Monitors 3.1]] i.d.R. **Großbuchstaben**.
  
-==== l - list/load - Daten von SD-Karte laden/aufisten ====+Monitorkommandos bestehen aus einem Buchstaben/Zeichen und Argumenten.
  
-    l Dateiname (kleines "L")+Dem Kommando-Kennbuchstaben können je nach Befehl 1 bis 3 Argumente folgen. Diese werden wie im AC1 üblich in 1 bis 4-stelligen Hex-Zahlen angegeben. Für die Zeichen 'A' bis 'F' sind Großbuchstaben zu verwenden.
  
-Die Datei wird im aktuell gewählten Verzeichnis gesucht und ab der im Header angegebenen Anfangsadresse in den RAM geladen. +Einige Kommandos verlangen die Eingabe einer Zeichenkette. Diese ist nach den Argumenten bzwdem Kennbuchstaben einzugeben. Von einem Argument ist die Zeichenkette durch mindestens ein Leerzeichen zu trennenNach einem Kennbuchstaben ist kein Leerzeichen erforderlich. Bis zum Anfang der Zeichenkette sind bis zu 9 Leerzeichen zulässig.
-Danach wird die Startadresse im Header nach ARG1 geladen, sodass das Programm mit "J:" gestartet werden kann. +
-Die restlichen Headerparameter werden nur angezeigt.+
  
-Dateiinhalt des aktuellen Verzeichnisses auflisten +Die Zeichenkette wird durch ein Leerzeichen abgeschlossenNachfolgende Zeichen werden ignoriertD.hZeichenketten können keine Leerzeichen beinhalten.
- +
-    l *       --> gesamten Inhalt anzeigenDer "*" kann entfallen. +
-    l XX*   --> alle Dateien anzeigen, die mit "XX" beginnen +
-    l *.bas --> alle Dateien anzeigen, die mit ".bas" enden +
- +
-Das "l"-Kommando bezieht sich auf das aktuell ausgewählte Verzeichnis. O.g. Kommandos geben eine alphabetisch sortierte Liste aus. +
- +
-    l + --> Sortierung nach Änderungsdatum aufsteigend +
-    l -   --> Sortierung nach Änderungsdatum absteigend +
- +
-Dateilisten sind auf 256 Einträge eines Verzeichnisses begrenzt. +
- +
-Laden von Dateien an Hand der Indexnummer +
- +
-Mit dem l-Kommando können Inhalte des aktuell gewählten Verzeichnisses angezeigt werden. Vorangestellt ist jedem Dateinamen eine lfd Nummer (Index). Anhand dieser Indexnummer keine eine Datei geladen werden. +
-Beispiel 1: +
- +
-    l 5 --> lädt die Datei mit der lfd Nummer 05. +
- +
-Beispiel 2: +
- +
-    l -   --> Anzeigen der Dateinamen, aktuellste Datei zuerst +
-    l 1  --> lädt die zuletzt gespeicherte Datei +
- +
-Die Nummerierung richtet sich immer nach der zuletzt angezeigten Liste.+
  
-Nebenwirkung: Es sollten keine Datei- und Verzeichnisnamen vergeben werden, die ausschließlich aus Numerischen Zeichen bestehen. Mindestens ein Buchstabe, Sonderzeichen oder Punkt sollte enthalten sein.+**s aaaa eeee ssss Dateiname/Infotext (save)**
  
-==== a - addr - Laden von Dateien an Absolut-Adresse im RAM ====+Hiermit kann man eine File ab der Adresse aaaa bis zur Adresse eeee mit der Startadresse ssss unter dem Namen Dateiname (Länge max 16 Zeichen) auf SD-Karte abspeichern. Dem Dateinamen kann ein Infotext angefügt werden. Beide Teile werden durch '/' getrennt. In diesem Fall wird im Header nicht der Dateiname sondern die Info gespeichert, die beim Laden angezeigt wird. Leerzeichen sind in der Gesamtheit nicht möglich.
  
 +**l Dateiname/Nr (list/load)**
  
-    a AADR Dateiname+l (kleines "L") dient zum Auflisten bzw. Laden von Daten von der SD-Karte. Wird kein Dateiname angegeben oder enthält Dateiname das Wildcardzeichen "*", so wird das aktuelle Verzeichnis aufgelistet. Angezeigt werden alle Dateien, auf die Maske passt. Vorangestellt ist jedem Dateinamen eine Nummer (Index). Anhand dieser Indexnummer kann eine Datei geladen werden. Die Sortierung kann mit + und - gesteuert werden: l + -> Sortierung nach Änderungsdatum aufsteigend, l - -> Sortierung nach Änderungsdatum absteigend.\\ 
 +Wird ein Dateiname oder eine Nummer angegeben, wird die Datei wird im aktuell gewählten Verzeichnis gesucht und ab der im Header angegebenen Anfangsadresse in den RAM geladen. Danach wird die Startadresse im Header nach ARG1 geladen, sodass das Programm mit "J:" gestartet werden kann. Die restlichen Headerparameter werden nur angezeigt. 
  
-AADR < 1000H werden zurückgewiesen. Es wird nur die Anfangsadresse geprüft. +**a AADR Dateiname (absolute)**
-Weiteres Verhalten wie beim "l"-Kommando+
  
-Beispiel:+Lädt die Datei an Absolut-Adresse AADR. AADR < 1000H werden zurückgewiesen. Weiteres Verhalten wie beim "l"-Kommando.
  
-    a C000 5+**r Dateiname (remove)**
  
-Lädt die 5.Datei der zuletzt ausgegebenen Liste nach 0C000H.+Verschiebt Datei in den Papierkorb-Systemordner ".ac1bin". Am PC können Dateien in diesem Verzeichnis "wiederbelebt" oder endgültig gelöscht werden.
  
-==== r - remove - Datei in Papierkorb verschieben ====+**d Verzeichnisname/Nr (directory)**
  
- +Ohne Parameter werden alle Verzeichnisse aufgelistetEnthält Verzeichnisname das Wildcardzeichen "*", so werden nur passende Verzeichnisse aufgelistetDie Sortierung kann mit + und gesteuert werden (vglKommanndo "l").\\ 
-    r Dateiname +Wird ein Verzeichnisname oder eine Nummer angegebenwird in das entsprechende Verzeichnis gewechselt. Mit "d /" wird ins Root-Verzeichnis gewechselt.
- +
-Der Dateiname wird um einen TimestampSuffix der aktuellen Systemzeit (.YYMMDDhhmmss) ergänzt und die Datei in den Systemordner ".ac1bin" auf der SD-Karte verschobenAm PC können Dateien in diesem Verzeichnis "wiederbelebtoder endgültig gelöscht werden+
- +
-==== d - directory - Verzeichnisse anzeigen / wechseln ==== +
- +
-    d Verzeichnisname --> Setzen des aktuellen Arbeitsverzeichnisses +
-    d* --> Auflisten aller Verzeichnissealphabetisch sortiert, '*' kann entfallen +
-    d+ --> Liste nach Dateidatum sortiert, aufsteigend +
-    d- --> Liste nach Dateidatum sortiert, absteigend +
-    d *abc* --> auflisten aller Ordner, die die Zeichenfolge "abc" im Namen enthalten. +
-    d / --> wechseln ins Root-Verzeichnis +
-    d1 --> wechseln ins Verzeichnis mit ldf Nummer(1), entsprder zuletzt ausgegebenen Liste+
  
 Es wird mit einer Verzeichnisebene unterhalb von Root gearbeitet. Weitere Unterverzeichnisse werden nicht unterstützt. Es wird mit einer Verzeichnisebene unterhalb von Root gearbeitet. Weitere Unterverzeichnisse werden nicht unterstützt.
Zeile 204: Zeile 193:
 Es ist möglich, direkt von einem in ein anderes Verzeichnis zu wechseln. Ein Umweg über das Root-Verzeichnis ist nicht erforderlich. Es ist möglich, direkt von einem in ein anderes Verzeichnis zu wechseln. Ein Umweg über das Root-Verzeichnis ist nicht erforderlich.
  
-==== m - makedir - Verzeichnis anlegen ==== +**m Verzeichnisname (makedir)**
- +
-    m Verzeichnisname +
- +
-Es wird ein neues Verzeichnis unterhalb von Root angelegt. Es ist dabei unerheblich, ob man sich aktuell im Root- oder einem Unterverzeichnis befindet. Es kann kein Verzeichnis angelegt werden, wenn bereits eine gleichnamige Datei im Wurzelverzeichnis existiert. +
-Das Löschen von Verzeichnissen kann nur am PC erfolgen. +
- +
-==== t - time - Zeitfunktionen ==== +
- +
-    t YYYY-MM-DD*hh:mm:ss +
-    t 2023-09-03*18:05:45 --> Systemzeit setzen +
-    t --> Anzeige der aktuellen Systemzeit+
  
-Falls ein RTC-Modul installiert ist, wird die Zeit beim picoIO-Start übernommen. +Es wird ein neues Verzeichnis unterhalb von Root angelegt. Es ist dabei unerheblichob man sich aktuell im Rootoder einem Unterverzeichnis befindetDas Löschen von Verzeichnissen kann nur am PC erfolgen.
-Die Systemzeit ist in UTC (MEZ-1h | MESZ-2h) zu setzen. Diese Zeitbasis wird zum Speichern auf SD-Karte benötigt. Andernfalls wird am PC ein falscher Zeitstempel angezeigt.+
  
-Beim Setzen der Systemzeit ist das Format einzuhalten. Entscheidend ist die Position der Ziffern in der Zeichenkette. Die Trennzeichen sind beliebig. +**t YYYY-MM-DD*hh:mm:ss (time)**
-Die Eingabe erfolgt als Zeichenkette und unterliegt o.g. Einschränkungen, d.h. Leerzeichen sind unzulässig.+
  
-==== c color Bildschirmfarben ====+Ohne Parameter wird die aktuelle Uhrzeit angezeigt, mit Parameter wird die Uhr gestellt. Die Systemzeit ist dabei in UTC (MEZ-1h | MESZ-2h) zu setzen. Diese Zeitbasis wird zum Speichern auf SD-Karte benötigt. Andernfalls wird am PC ein falscher Zeitstempel angezeigt!
  
-    7:0:3 -> Zeichen-, Hintergrund- und Rahmenfarbe +**v:h:r (color)**
-    c --> Farbliste ausgeben+
  
-Der dritte Parameter ist optional. Bei weglassen wird '0' = Schwarz angenommen.+Setzt die drei Bildschirmfarben für Vordergrund, Hintergrund und Rahmen. Ohne Parameter wird die Farbliste ausgeben. 
 +Der dritte Parameter ist optional. Bei weglassen wird '0' = Schwarz angenommen. Beispiel: "c 7:0:3"
  
-==== h/help - Hilfetexte ausgeben ====+**(help)** 
 +**h (help)**
  
-    H --> Bedienung "Ur-"Monitor" +Anzeige der Bedienung des Ur-Monitors 3.1 mit H, die Bedienung der Monitorerweiterungen mit "h".
-    --> Bedienung "Monitorerweiterungen"+
  
 ==== Drucken in Datei ==== ==== Drucken in Datei ====
  
-    LStrg + Alt + p+    Left-Strg + Alt + p
  
 Dabei handelt es sich um eine Hilfsfunktion, um Zeichen, die von Anwendungsprogrammen an eine Druckerschnittstelle im Monitor übergeben werden, in eine Textdatei umzulenken. Diese Dateien können **NUR** am PC betrachtet, bearbeitet oder gedruckt werden. Dabei handelt es sich um eine Hilfsfunktion, um Zeichen, die von Anwendungsprogrammen an eine Druckerschnittstelle im Monitor übergeben werden, in eine Textdatei umzulenken. Diese Dateien können **NUR** am PC betrachtet, bearbeitet oder gedruckt werden.
-Gestartet wird die Funktion mit der Tastenkombination LStrg + Alt + P. Dabei wird automatisch ein Dateiname PXXXX.txt erzeugt, wobei XXXX eine fortlaufende Nummer ist, die in der .config gespeichert wird. +Gestartet wird die Funktion mit der Tastenkombination Left-Strg + Alt + P. Dabei wird automatisch ein Dateiname PXXXX.txt erzeugt, wobei XXXX eine fortlaufende Nummer ist, die in der .config gespeichert wird. 
-Danach ist das Anwenderprogramm zum Drucken zu veranlassen und nach Abschluss des Vorgangs ist wiederholt LStrg + Alt + P zu betätigen. Erst dann wird die Datei auf der SD-Karte gespeichert.+Danach ist das Anwenderprogramm zum Drucken zu veranlassen und nach Abschluss des Vorgangs ist wiederholt Left-Strg + Alt + P zu betätigen. Erst dann wird die Datei auf der SD-Karte gespeichert.
 In der Statuszeile wird Dateiname und Fortschritt angezeigt. In der Statuszeile wird Dateiname und Fortschritt angezeigt.
  
Zeile 258: Zeile 234:
 Die Funktionsweise der Hardware ist auf https://www.bw38.de/picoac1 ausführlich beschrieben. Hier nur ein paar Bemerkungen: Die Funktionsweise der Hardware ist auf https://www.bw38.de/picoac1 ausführlich beschrieben. Hier nur ein paar Bemerkungen:
  
-^ Merkmal ^ Beschreibung ^  +^ Merkmal     ^ Beschreibung                                             
-| CPU | U880 |  +| CPU         | U880                                                     
-| ROM | 4K 0000-0FFF (Monitor) |  +| ROM         | 4K 0000-0FFF (Monitor)                                   
-| RAM | 64K 1000-FFFF (ab 0000 im CP/M-Modus) |  +| RAM         | 64K 1000-FFFF (ab 0000 im CP/M-Modus)                    
-| Takt | 1,2,4,8 MHz |  +| Takt        | 1,2,4,8 MHz                                              
-| Anzeige | 64x32 Zeichen, s/w, versch. Zeichensätze möglich |  +| Anzeige     | 64x32 Zeichen, s/w, versch. Zeichensätze möglich         
-| Tastatur | ASCII |  +| Tastatur    | ASCII                                                    
-| Peripherie | PIO, 1 CTC |+| Peripherie  PIO, 1 CTC                                             | 
 +|             | Videoprozessor (raspberry pico )                         | 
 +|             | I/O-Prozessor (USB-Keyboard, SD-Karte) (raspberry pico)  |
  
 ^ Port | Verwendung | ^ Port | Verwendung |
Zeile 276: Zeile 254:
 Auf der Platine sitzt ein 128K-SRAM. Dessen Kapazität kann allerdings nicht komplett genutzt werden. Die beiden 64K-Bänke werden parallel genutzt. Die untere Bank (A16=L) wird als Bildwiederholspeicher und Arbeitszellenspeicher genutzt (1000h-17FFh), auf andere Bereiche der Bank ist kein Zugriff möglich! Die obere Bank (A16=H) wird als normaler RAM ab 2000h, genutzt, im CP/M-Modus durchgehend ab 0000-FFFFh. Auf der Platine sitzt ein 128K-SRAM. Dessen Kapazität kann allerdings nicht komplett genutzt werden. Die beiden 64K-Bänke werden parallel genutzt. Die untere Bank (A16=L) wird als Bildwiederholspeicher und Arbeitszellenspeicher genutzt (1000h-17FFh), auf andere Bereiche der Bank ist kein Zugriff möglich! Die obere Bank (A16=H) wird als normaler RAM ab 2000h, genutzt, im CP/M-Modus durchgehend ab 0000-FFFFh.
  
-Die Umschaltung in den CP/M-Modus erfolgt durch ein Latch auf Port 1Ch(..1Fh). OUT 1Ch, 0 schaltet den AC1-Modus ein (Monitor-ROM, BWS aktiv), OUT 1Ch, 1 schaltet den CP/M-Modus ein (durchgehend RAM).+Die Umschaltung in den CP/M-Modus erfolgt durch ein Latch auf Port 1Ch(..1Fh). OUT 1Ch, Bit0=0 schaltet den AC1-Modus ein (Monitor-ROM, BWS aktiv), OUT 1Ch, Bit0=1 schaltet den CP/M-Modus ein (durchgehend RAM). 
 + 
 +<a2s> 
 +  FFFF      #-----------#     #-----------#   
 +            |                           
 +            |                           
 +            |  RAM      |      RAM      |   
 +            |                           
 +            |                           
 +  2000      #-----------#                 
 +            |  Mon-RAM  |                 
 +            |  2K                       
 +  1800      #-----------#                 
 +            |  BWS      |                 
 +            |  2K                       
 +  1000      #-----------#                 
 +            |  Monitor  |                 
 +            |  4K                       
 +  0000      #-----------#     #-----------#   
 + 
 +              OUT 1Ch,0         OUT 1Ch,1 
 +</a2s> 
 + 
 + 
 +Zeichensätze: 
 + 
 +{{:homecomputer:ac1:picoac1_zs_ac1.jpg?600|}}\\ Zeichensatz AC1 
 + 
 +{{:homecomputer:ac1:picoac1_zs_scch.jpg?600|}}\\ Zeichensatz SCCH mit Umlauten 
 + 
 + 
 +===== CP/M ===== 
 + 
 +Aktuell gibt es eine CP/M-2.2-kompatible Implementierung.  
 + 
 +Für den Betrieb von CP/M sind auf der SD-Karte diverse Dateien abzulegen, am besten in einem eigenen Verzeichnis. 
 + 
 +TODO 
 + 
 +Es gibt 6 Laufwerke A-F, die als Disketten-Image auf der SD-Karte liegen. 
 +C und D sind dabei 8 MByte große "Festplatten". Die Erstbefüllung dieser "Disketten" erfolgt mit dem internen Kommando LDEX oder am PC mit den [[cpm:cpmtools|]]. 
 + 
 +Der Bildschirmtreiber nutzt die Cursor-Positionierung nach SCP. Steuerzeichen: 
 +<code> 
 +; Bildschirm-Steuerzeichen, SCP-kompatibel 
 +; 00h            NOP (keine Wirkung) 
 +; 01h            Cursor links oben (home) 
 +; 07h            akustisches  Zeichen (keine Funktion) 
 +; 08h            Cursor zurueck 
 +; 0ah            Linefeed (neue Zeile) 
 +; 0ch            Bildschirm  löschen (verzögert zum Lesen  der 
 +;                zuletzt ausgegebenen Bildschirmzeilen), Cursor 
 +;                links oben 
 +; 0dh            Carriage Return (an Zeilenanfang) 
 +; 14h            Rest des Bildschirms löschen 
 +; 15h            Cursor nach rechts 
 +; 16h            Rest der Zeile löschen 
 +; 18h            Zeile löschen, Cursor an Zeilenanfang 
 +; 1ah            Cursor eine Zeile hoch 
 +; 1bh            Einleitung  Cursorpositionierfolge, die näch- 
 +;                sten beiden Bytes beinhalten Zeile und  Spalte 
 +;                Offset 00h oder 80h 
 +; 7fh            Delete (streichen Zeichen links vom Kursor) 
 +; 20H..7EH       ASCII-Zeichen 
 +</code> 
 + 
 +Hier die **diskdefs** für die [[cpm:cpmtools|]] (ohne Gewähr!) 
 + 
 +<code> 
 +# 800K AC1PICO-Hausformat 
 +diskdef ac1 
 +  seclen 512 
 +  tracks 10 
 +  sectrk 160 
 +  blocksize 2048 
 +  maxdir 256 
 +  skew 0 
 +  boottrk 0 
 +  os 2.2 
 +end 
 + 
 +# 8MB AC1PICO-Hausformat  
 +diskdef ac1_8mb 
 +  seclen 512 
 +  tracks 32 
 +  sectrk 512 
 +  blocksize 4096 
 +  maxdir 512 
 +  skew 0 
 +  boottrk 0 
 +  os 2.2 
 +end 
 +</code> 
 + 
 +Starten von CP/M aus dem Monitor: 
 + 
 +{{:homecomputer:ac1:picoac1_cpm1.jpg?600|}}\\ Verzeichnis wechseln, Bios laden, Bios starten
  
 +Importieren und Starten von CP/M-Programmen:
  
 +{{:homecomputer:ac1:picoac1_cpm3.jpg?600|}}\\ mit LDEX werden Programme aus dem SD-Karten-Unterverzeichnis "extern" auf die CP/M-Diskette kopiert.
  • homecomputer/ac1/picoac1.1711873885.txt.gz
  • Zuletzt geändert: 2024/03/31 08:31
  • von volkerp