Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
homecomputer:ac1:hrcpm [2024/03/05 14:11] – angelegt volkerp | homecomputer:ac1:hrcpm [2024/03/27 20:38] (aktuell) – [Turbo Pascal] frieder | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
Von Ralph Hänsel gibt es umfangreiche Software für den AC1-2010. | Von Ralph Hänsel gibt es umfangreiche Software für den AC1-2010. | ||
- | Neben seinem [[homecomputer: | + | Neben seinem [[homecomputer: |
Es gibt vier unterschiedliche Varianten der Version 1.2: | Es gibt vier unterschiedliche Varianten der Version 1.2: | ||
Zeile 12: | Zeile 12: | ||
HRDOS ist ein [[http:// | HRDOS ist ein [[http:// | ||
- | HRCPM ist ebenfalls ein ZSDOS kompatibles CP/M 2.2 Betriebssystem für den AC1, welches aber auf dem [[cpm: | + | HRCPM ist ebenfalls ein ZSDOS kompatibles CP/M 2.2 Betriebssystem für den AC1, welches aber auf dem [[cpm: |
Die obigen Versionen unterscheiden sich in ihrer unterstützten Hardware (AC1-2010 vs. SCCH) und in ihren residenten Kommandos (CPA vs. MLDOS) | Die obigen Versionen unterscheiden sich in ihrer unterstützten Hardware (AC1-2010 vs. SCCH) und in ihren residenten Kommandos (CPA vs. MLDOS) | ||
+ | |||
+ | ===== Downloads ===== | ||
+ | |||
+ | Ich habe 2023-2024 die Software reassembliert und basierend auf den genutzten Original-Quellen für MLDOS, CPA etc. Quellen für HRDOS/HRCPM rückentwickelt. Vorteil ist die leichte Konfigurierbarkeit mit Diskettenformaten/ | ||
+ | |||
+ | * BIN's, orig. Doku, Quellcodes | ||
+ | * ZSDOS http:// | ||
+ | * deutsche Beschreibung ZSDOS RedNil 1994 | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * MLDOS v.1.5 Quelldateien | ||
+ | * http:// | ||
+ | |||
+ | ===== Programme ===== | ||
+ | |||
+ | Check+CPM-Umgebung_2000_25FF.BIN Testprogramm, | ||
+ | |||
+ | ZSHELP.COM | ||
+ | |||
+ | FORMATAC.COM CP/ | ||
+ | |||
+ | |||
===== Hardware ===== | ===== Hardware ===== | ||
Zeile 20: | Zeile 42: | ||
AC1-2010 / FA-Mode | AC1-2010 / FA-Mode | ||
- | * Monitor V8 | + | * Monitor V8 oder 1088 |
* RAM-Floppy nach präcitronic mit 1024 KByte | * RAM-Floppy nach präcitronic mit 1024 KByte | ||
* Floppy-Platine nach FA, FDC-Controller Port 40h, /WAIT Monoflop Port 43h, Latch 74LS175 Port 45h | * Floppy-Platine nach FA, FDC-Controller Port 40h, /WAIT Monoflop Port 43h, Latch 74LS175 Port 45h | ||
- | * Abschaltung Monitor via Port 14h, Bit 2 (Modul1-Port) | + | * Abschaltung Monitor via Port 1Eh, Bit 0 |
* Farb-BWS, der einfache BWS funktioniert natürlich auch | * Farb-BWS, der einfache BWS funktioniert natürlich auch | ||
* GIDE mit 256K-DOM-Modul | * GIDE mit 256K-DOM-Modul | ||
Zeile 30: | Zeile 52: | ||
SCCH | SCCH | ||
- | * Monitor V8 | + | * Monitor V8 oder 1088 |
* RAM-Floppy nach präcitronic mit 1024 KByte | * RAM-Floppy nach präcitronic mit 1024 KByte | ||
* Floppy-Platine nach SCCH, FDC-Controller Port 40h, /WAIT Monoflop Port 50h, Latch 74LS175 Port 48h | * Floppy-Platine nach SCCH, FDC-Controller Port 40h, /WAIT Monoflop Port 50h, Latch 74LS175 Port 48h | ||
- | * Abschaltung Monitor via Port 19h, Bit 0 | + | * Abschaltung Monitor via Port 14h, Bit 2 |
* Farb-BWS, der einfache BWS funktioniert natürlich auch | * Farb-BWS, der einfache BWS funktioniert natürlich auch | ||
* GIDE mit 256K-DOM-Modul | * GIDE mit 256K-DOM-Modul | ||
Zeile 73: | Zeile 95: | ||
* Unterstützung HD's am GIDE, sowohl MASTER als auch SLAVE, | * Unterstützung HD's am GIDE, sowohl MASTER als auch SLAVE, | ||
* mit Adapter am GIDE funktionieren auch Flash-Speichermedien, | * mit Adapter am GIDE funktionieren auch Flash-Speichermedien, | ||
- | * Unterstützung 3,5" | + | * Unterstützung 3,5 & 5¼ Zoll Laufwerke mit 40/80 Spuren, |
* am FDC sind alle 4 Laufwerke !! (LW-Nr. 00..03) unterstützt, | * am FDC sind alle 4 Laufwerke !! (LW-Nr. 00..03) unterstützt, | ||
* Unterstützung vieler Diskettenformate, | * Unterstützung vieler Diskettenformate, | ||
Zeile 79: | Zeile 101: | ||
* Interruptgesteuerter Tastaturtreiber, | * Interruptgesteuerter Tastaturtreiber, | ||
* Unterstützung COLOR-BWS durch CONOUT Routine mit FARBE, | * Unterstützung COLOR-BWS durch CONOUT Routine mit FARBE, | ||
- | * Unterstützung RAM-Floppytreiber | + | * Unterstützung RAM-Disk bis 4 MB, |
* Unterstützung Echtzeituhr im GIDE, | * Unterstützung Echtzeituhr im GIDE, | ||
* HRDOS und HRCPM starten und funktionieren auch ohne installiertes GIDE und/oder FDC-Controller!!, | * HRDOS und HRCPM starten und funktionieren auch ohne installiertes GIDE und/oder FDC-Controller!!, | ||
Zeile 111: | Zeile 133: | ||
In der gleichen Zeile wie die RAM Floppy Größe erfolgt beim Start die Frage, Format A: (J)? , also ob | In der gleichen Zeile wie die RAM Floppy Größe erfolgt beim Start die Frage, Format A: (J)? , also ob | ||
- | die RAM Floppy formatiert werden soll. **Das ist beim 1.Start zwingend**, andernfalls | + | die RAM Floppy formatiert werden soll. **Das ist beim 1. Start zwingend**, andernfalls |
- | Start fehl und CP/M muss neu geladen werden, weil der CCP/BDOS Code zerstört ist !! | + | beim ersten WBOOT ab, weil der CCP/BDOS Code nicht aus den Systemspuren der RamDisk geladen werden kann !! |
Nach erfolgreichem Init..OK sollte sich dann der CP/M Prompt mit A:> melden und der Cursor | Nach erfolgreichem Init..OK sollte sich dann der CP/M Prompt mit A:> melden und der Cursor | ||
Zeile 124: | Zeile 146: | ||
| D | DIR | DIR=Inhalt vom aktuellen Laufwerk anzeigen | | | D | DIR | DIR=Inhalt vom aktuellen Laufwerk anzeigen | | ||
| E | ERA Filname | | E | ERA Filname | ||
- | | nicht unterst. | REN | REN=umbenennen, | + | | nicht unterst. | REN | REN=umbenennen, |
| L | LOAD | File mit Turbo in RAM laden | | | L | LOAD | File mit Turbo in RAM laden | | ||
| C | nicht unterstützt | | C | nicht unterstützt | ||
Zeile 134: | Zeile 156: | ||
| 4 | nicht unterstützt | | 4 | nicht unterstützt | ||
- | Files laden und speichern: | + | __Files |
A:>LOAD CR lädt ein File im TurboMode zunächst nach Adresse 2000H und kopiert es nach dem | A:>LOAD CR lädt ein File im TurboMode zunächst nach Adresse 2000H und kopiert es nach dem | ||
Zeile 148: | Zeile 170: | ||
Ein File von Disk wird durch Eingabe des Namens geladen und anschließend auch sofort gestartet. | Ein File von Disk wird durch Eingabe des Namens geladen und anschließend auch sofort gestartet. | ||
- | Zeitanzeige | + | |
- | A:>t CR zeigt die aktuelle Uhrzeit und das Datum an, sofern GIDE mit RTC | + | __Zeitanzeige |
+ | |||
+ | A:>t CR zeigt die aktuelle Uhrzeit und das Datum an, sofern GIDE mit RTC\\ | ||
A:>t s CR setzt das Datum und Uhrzeit in der RTC | A:>t s CR setzt das Datum und Uhrzeit in der RTC | ||
- | EMU Spezialkommando | + | |
- | A:>C CR kopiert den RAM von 2000H..CFFH nach 0100H..BEFFH. Dieses Kommando eignet | + | __Spezialkommando |
+ | |||
+ | A:>C CR kopiert den RAM von 2000H..CFFFH nach 0100H..BEFFH. Dieses Kommando eignet | ||
sich hervorragend für die Arbeit am EMU, um ein Programm direkt an 2000H zu laden | sich hervorragend für die Arbeit am EMU, um ein Programm direkt an 2000H zu laden | ||
und dann sofort mit C nach 0100H zu kopieren. | und dann sofort mit C nach 0100H zu kopieren. | ||
- | Spezialkommando | + | |
+ | __Spezialkommando | ||
A:>4 CR schaltet den CPU-Takt wechselseitig zwischen 2/4Mhz Takt um, | A:>4 CR schaltet den CPU-Takt wechselseitig zwischen 2/4Mhz Takt um, | ||
(IO-Adr. F0H Bit 0=0/1), Umschaltung ist im COLOR-BWS enthalten | (IO-Adr. F0H Bit 0=0/1), Umschaltung ist im COLOR-BWS enthalten | ||
- | Spezialkommando | + | |
+ | __Spezialkommando | ||
A:>Z CR schaltet den ZG wechselseitig um (PIO1 Port B3) | A:>Z CR schaltet den ZG wechselseitig um (PIO1 Port B3) | ||
+ | |||
Der CCP ist für das Auswerten der eingegebenen Kommandos zuständig. Findet er kein internes | Der CCP ist für das Auswerten der eingegebenen Kommandos zuständig. Findet er kein internes | ||
Kommando, so interpretiert der CCP Kommando als Filename.COM und versucht das File vom | Kommando, so interpretiert der CCP Kommando als Filename.COM und versucht das File vom | ||
aktuellen Laufwerk zu laden. Findet er das File wird es an Adresse 100H geladen und gestartet. | aktuellen Laufwerk zu laden. Findet er das File wird es an Adresse 100H geladen und gestartet. | ||
- | A:>POWER startet POWER aus A: | + | |
- | A:> | + | A:>POWER startet POWER aus A:\\ |
- | A:> | + | A:> |
+ | A:> | ||
Das Programm POWER.COM ist für das komfortable Kopieren und Bearbeiten von Files im CP/M | Das Programm POWER.COM ist für das komfortable Kopieren und Bearbeiten von Files im CP/M | ||
- | zuständig. | + | zuständig. HRDOS und HRCPM selbst bieten KEINE Kopierfunktion an. |
Auf eine normale Eigenheit des HRDOS möchte ich hinweisen. Beim Laden von COM-Files darf die | Auf eine normale Eigenheit des HRDOS möchte ich hinweisen. Beim Laden von COM-Files darf die | ||
Dateiendung COM nicht angegeben werden, weil sonst die Datei nicht gefunden wird. | Dateiendung COM nicht angegeben werden, weil sonst die Datei nicht gefunden wird. | ||
A:> | A:> | ||
- | Einige | + | |
- | In CP/M sind ausschliesslich | + | __Einige |
- | diese ggf. aber um ! | + | |
- | Damit CP/M funktioniert, | + | * In CP/M sind ausschließlich |
- | Beim Schreiben auf die RAM Floppy findet automatisch ein Vergleichslesen statt. Das macht | + | |
- | zwar den Zugriff etwas langsamer, ist aber für die Stabilität von CP/M, grad beim AC1 2010 | + | |
- | notwendig. | + | |
- | Die NMI Taste ist im CP/M tabu !! und führt zwingend zum Absturz ! Leider liegt der wichtige | + | |
- | FCB1 genau auf der NMI Startadresse. Das kann leider auch nicht verändert werden. | + | |
- | Sollte CP/M abstürzen, springt es meist in die Registeranzeige, | + | |
- | über die Absturzursache ziehen. | + | |
- | Wenn CP/M mal hängen sollte, bitte mit RESET raus und Disk NICHT rausnehmen, sondern | + | |
- | SOFORT CP/M wieder starten. So könnte ein ggf. noch nicht geschriebenes File doch noch | + | __Weitere Hinweise: |
- | gespeichert werden, weil das BIOS einen ungeschriebenen Puffer erkennt und schreibt ! | + | |
- | Ein CSAV Kommando ist zur Zeit nicht vorgesehen, weil keine Notwendigkeit mehr besteht. | + | 1. Bei sämtlichen CPM-Bios' |
- | Zum Speichern existieren genügend Alternativen. | + | bereits mit drin, aber so gestaltet, das erst beim realen Zugriff |
- | Die Zahl im Dateinamen HRDOS12 bzw. HRCPM12 stellt die Versionsnummer dar. | + | auf die Routinen wirklich zugegriffen wird. |
+ | |||
+ | Solange nur mit A: gearbeitet wird, wird es keine Fehlermeldung | ||
+ | geben, wenn KEIN FDC oder GIDE gesteckt ist. | ||
+ | |||
+ | Beim FDC sind dabei prinziell alle 4 Laufwerks-ID ansprechbar. | ||
+ | Das ist auch in der Startausschrift zu erkennen, welche ID genutzt wird. | ||
+ | |||
+ | Beim GIDE sind 3 Laufwerke eingestellt, | ||
+ | ab Spur 10 (dez.) beginnen. Ich nutze die Spur 1 im Monitor (V10/88) | ||
+ | und die Spuren Spuren 4..9 für DiskVerHD und zum Booten versch. BootLader. | ||
+ | |||
+ | Konkret sind die Laufwerke wie folgt im Bios fest verdrahtet ! | ||
+ | |||
+ | < | ||
+ | ; DeLock SSD 256MB je Track 256KB, 984 Tracks | ||
+ | ; 1.Partition beginnt ab Spur 10, damit stehen die Spuren 0..9 | ||
+ | ; zusätzliche als Bootspuren | ||
+ | |||
+ | PART C, 10, 64,2048 ; C: mit 64 Spuren ab Spur 10 (16 MB) HR | ||
+ | PART D,150, 64,4096 ; D: mit 64 Spuren ab Spur 150 (16 MB) HR | ||
+ | PART E,300, 64,4096 ; E: mit 64 Spuren ab Spur 300 (16 MB) HR | ||
+ | ; | ||
+ | |||
+ | Als Festplatte nutze ich eine Delock 256MB SSD | ||
+ | ; Master = DELOCK SSD (256 MByte) | ||
+ | CYLS0 EQU 984 ; | ||
+ | HEAD0 EQU 16 ; | ||
+ | SECS0 EQU 32 ; | ||
+ | </ | ||
Diese Anleitung ist noch nicht ganz fertig ! | Diese Anleitung ist noch nicht ganz fertig ! | ||
+ | Viel Spaß damit wünscht\\ | ||
+ | Ralph Hänsel | ||
+ | |||
+ | ===== Details ===== | ||
+ | |||
+ | **CONSOLE** die Bildschirm-Steuerzeichen sind SCP-kompatibel | ||
+ | |||
+ | ^ Code ^ Gültig ^ Taste ^ Beschreibung ^ | ||
+ | | 00h | | | NOP (keine Wirkung) | | ||
+ | | 01h | | %%^%%A | Cursor links oben (home) | | ||
+ | | 07h | | %%^%%G | akustisches Zeichen an Tastatur | | ||
+ | | 08h | | %%^%%H | Cursor links | | ||
+ | | 0ah | | %%^%%J | Linefeed (neue Zeile) | | ||
+ | | 0ch | | %%^%%L | Bildschirm | ||
+ | | 0dh | | %%^%%M | Carriage Return (an Zeilenanfang) | | ||
+ | | 14h | | %%^%%T | Rest des Bildschirms loeschen | | ||
+ | | 15h | | %%^%%U | Cursor nach rechts | | ||
+ | | 16h | | %%^%%V | Rest der Zeile loeschen | | ||
+ | | 18h | | %%^%%X | Zeile loeschen, Cursor an Zeilenanfang | | ||
+ | | 1ah | | %%^%%Z | Cursor eine Zeile hoch | | ||
+ | | 1bh yyh xxh | nur cpm320 | ESC Spalte Zeile | Cursorpositionierung, | ||
+ | | 7fh | nur cpm320 | | Delete (streichen Zeichen links vom Kursor) | | ||
+ | | 1bh 5Dh xxh | | ESC 5Dh farbbyte | Setzen Farbe (bei Color-BWS | | ||
+ | | 1bh 5Fh xxh | nur hrdos | ESC 5Fh Zeichen | direkte Zeichenausgabe (Grafik >= 80h und < 20h) | | ||
+ | | 1bh yyh+80h xxh | nur hrdos | ESC Spalte+80h Zeile+80h | Cursorpositionierung, | ||
+ | | 02h | nur hrdos | | Kursor ein | | ||
+ | | 03h | nur hrdos | | Kursor aus | | ||
+ | | 82h | nur hrdos | | Kursor ein | | ||
+ | | 83h | nur hrdos | | Kursor aus | | ||
+ | | 84h | nur hrdos | | normale Darstellung | | ||
+ | | 85h | nur hrdos | | invers | | ||
+ | | 86h | nur hrdos | | intensiv (HighLight) | | ||
+ | | 87h | nur hrdos | | intensiv + invers | | ||
+ | |||
+ | ===== Turbo Pascal - Patch ===== | ||
+ | Anpassung von Turbo Pascal - Programmen an HRCPM12 (s.a. [[cpm: | ||
+ | < | ||
+ | 125 | ||
+ | 0153 TermTypStr: | ||
+ | 0168 Width: | ||
+ | 0169 Height: | ||
+ | 016A ???: 0 | ||
+ | 016B InitialStr: | ||
+ | 017B ResetStr: | ||
+ | 018B CursorStr: | ||
+ | 019B BinaryAddr: | ||
+ | 019C ColumnOff: | ||
+ | 019D LineOff: | ||
+ | 019E XPosition: | ||
+ | 019F YPosition: | ||
+ | 01A0 DelayCursor: | ||
+ | 01A2 ClearScrStr: | ||
+ | 01A8 HomeStr: | ||
+ | 01AE InsLineStr: | ||
+ | 01B4 DelLineStr: | ||
+ | 01BA DelayLine: | ||
+ | 01BC EraToEolStr: | ||
+ | 01C2 HLStartStr: | ||
+ | 01C8 HLEndStr: | ||
+ | 01CE DelayHL: | ||
+ | </ | ||