Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| homecomputer:ac1:software:hrcpm [2026/09/11 06:29] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | homecomputer:ac1:software:hrcpm [2026/09/11 06:29] (aktuell) – ↷ Seite von homecomputer:ac1:hrcpm nach homecomputer:ac1:software:hrcpm verschoben volkerp | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== HRCPM12 ====== | ||
| + | |||
| + | Von Ralph Hänsel gibt es umfangreiche Software für den AC1-2010. | ||
| + | Neben seinem [[homecomputer: | ||
| + | |||
| + | Es gibt vier unterschiedliche Varianten der Version 1.2: | ||
| + | * HRCPM12-AC2010_D000_FEFF_E600.BIN | ||
| + | * HRCPM12-SCCH_D000_FEFF_E600.BIN | ||
| + | * HRDOS12-AC2010_D000_FEFF_E600.BIN | ||
| + | * HRDOS12-SCCH_D000_FEFF_E600.BIN | ||
| + | |||
| + | HRDOS ist ein [[http:// | ||
| + | |||
| + | 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) | ||
| + | |||
| + | ===== 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, Tools {{ : | ||
| + | * 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 | ||
| + | : CP/ | ||
| + | ? FORMATAC.COM | ||
| + | : CP/ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Hardware ===== | ||
| + | |||
| + | AC1-2010 / FA-Mode | ||
| + | |||
| + | * Monitor V8 oder 10/88 | ||
| + | * RAM-Floppy nach präcitronic mit 1024 KByte | ||
| + | * Floppy-Platine nach FA, FDC-Controller Port 40h, /WAIT Monoflop Port 43h, Latch 74LS175 Port 45h | ||
| + | * Abschaltung Monitor via Port 1Eh, Bit 0 | ||
| + | * Farb-BWS, der einfache BWS funktioniert natürlich auch | ||
| + | * GIDE mit DOM-Modul 128/256/512 MByte | ||
| + | * keine GIDE-RTC-Nutzung | ||
| + | |||
| + | SCCH | ||
| + | |||
| + | * Monitor V8 oder 10/88 | ||
| + | * RAM-Floppy nach präcitronic mit 1024 KByte | ||
| + | * Floppy-Platine nach SCCH, FDC-Controller Port 40h, /WAIT Monoflop Port 50h, Latch 74LS175 Port 48h | ||
| + | * Abschaltung Monitor via Port 14h, Bit 2 | ||
| + | * Farb-BWS, der einfache BWS funktioniert natürlich auch | ||
| + | * GIDE mit GIDE mit DOM-Modul 128/256/512 MByte | ||
| + | * GIDE-RTC-Nutzung bei ZSDOS | ||
| + | |||
| + | ===== Dokumentation ===== | ||
| + | |||
| + | HRDOS12 / HRCPM12\\ | ||
| + | Vers. 1.2 Stand 03.12.2011 | ||
| + | |||
| + | **HRDOS12** ist ein ZSDOS kompatibles CP/M 2.2 Betriebssystem für den AC1. Es basiert auf einem | ||
| + | KC 85x ähnlichen CCP, dem ZSDOS BDOS und dem AC1 Bios.\\ | ||
| + | **HRCPM12** ist ebenfalls ein ZSDOS kompatibles CP/M 2.2 Betriebssystem für den AC1 welches aber | ||
| + | auf dem CPA CCP/BDOS vom 24.08.86 basiert und damit im Befehlssatz kompatibel ist. | ||
| + | |||
| + | HRDOS / HRCPM wurde von R.Hänsel auf der Basis von Mario Leubners MLDOS für den AC1 komplett neu | ||
| + | entwickelt und stellt für den AC1 User, die aktuell fortschrittlichste Basis zur Arbeit mit dem Betriebssystem | ||
| + | CP/M 2.2 dar. | ||
| + | |||
| + | Wie jedes CP/M, setzen sich sowohl HRDOS als auch HRCPM aus 3 prinzipiell beliebig | ||
| + | austauschbaren Bestandteilen zusammen: | ||
| + | |||
| + | CCP D000H-D7FFH CommandControlProzessor = Kommandointerpreter | ||
| + | BDOS D800H-E5FFH BasicDiskOperationSystem | ||
| + | BIOS E600H..FCFFH Bios | ||
| + | |||
| + | Der CCP steuert die Kommunikation des BDOS mit der realen AC1 Peripherie, die im BIOS an die | ||
| + | CCP/BDOS Schnittstellen angepasst werden. Im BIOS wird auch entschieden, | ||
| + | CP/M nutzen kann. Im HRDOS/HRCPM sind das unter anderem HD und Diskette, aber auch die Uhr | ||
| + | und versch. RAM-Floppy s sowie Tastaturtreiber. | ||
| + | |||
| + | HRDOS und HRCPM sind im BIOS fast identisch und unterscheiden sich nach außen nur im | ||
| + | Befehlssatz des CCP und Einsprungadressen. Die wesentlichen Routinen sind identisch. | ||
| + | Die Einzelheiten zur Programmierung und Nutzung von CP/M sollen hier nicht erläutert werden, | ||
| + | sondern vielmehr die spezifischen BIOS Eckdaten und Eigenheiten. | ||
| + | |||
| + | Eckdaten zum BIOS: | ||
| + | |||
| + | * Unterstützung HD's am GIDE, sowohl MASTER als auch SLAVE, | ||
| + | * mit Adapter am GIDE funktionieren auch Flash-Speichermedien, | ||
| + | * Unterstützung 3,5 & 5¼ Zoll Laufwerke mit 40/80 Spuren, | ||
| + | * am FDC sind alle 4 Laufwerke !! (LW-Nr. 00..03) unterstützt, | ||
| + | * Unterstützung vieler Diskettenformate, | ||
| + | * Diskette in Laufwerk B: 100% KC kompatibles Dateiformat!, | ||
| + | * Interruptgesteuerter Tastaturtreiber, | ||
| + | * Unterstützung COLOR-BWS durch CONOUT Routine mit FARBE, | ||
| + | * Unterstützung RAM-Disk bis 4 MB, | ||
| + | * Unterstützung Echtzeituhr im GIDE, | ||
| + | * HRDOS und HRCPM starten und funktionieren auch ohne installiertes GIDE und/oder FDC-Controller!!, | ||
| + | * KEINE automatische Formaterkennung! | ||
| + | |||
| + | Voraussetzungen für HRDOS/ | ||
| + | |||
| + | * CP/M tauglicher AC1, | ||
| + | * RAMFloppy nach Präcitronic / Modul 3 mit mind. 256k, | ||
| + | * für Diskette: FDC Controller (FDC Port 40/41) nach SCCH oder ACC (AC1 2010), | ||
| + | * für HD: GIDE Modul an Port 80H, | ||
| + | * für Farbe: COLOR-BWS, der einfache BWS funktioniert natürlich auch !, | ||
| + | * AC1 SCCH Monitor ab V8.x aufwärts, | ||
| + | |||
| + | Gestartet werden HRDOS und HRCPM mit einem Sprung auf Adresse E600H, also | ||
| + | J E600H CR | ||
| + | direkt aus dem Monitor. | ||
| + | |||
| + | Nach dem Programmstart löscht das BIOS den Bildschirm und schreibt in der oberen Statuszeile, | ||
| + | seine Versionsnummer, | ||
| + | Tastaturtreibers (ConIn INT oder ConIn V3) und den Stand der letzten Änderung.\\ | ||
| + | In den nächsten Zeilen folgen die installierten Parameter von GIDE und den HD s mit den | ||
| + | festgelegten Laufwerksbuchstaben, | ||
| + | Diskettenlaufwerke, | ||
| + | Hierbei bedeuten die Zahlen nach den Laufwerksbuchstaben bei Diskette NUR die PHYSISCHE | ||
| + | Laufwerksnummer. AC1 2010 User nutzen meist nur LW 0, also B0, F0, G0\\ | ||
| + | Wieder eine Zeile tiefer steht die installierte RAM Floppy und deren Größe. | ||
| + | |||
| + | Achtung !! Um den Programmcode klein zu halten, sind das alles statische Anzeigen, die bei | ||
| + | Änderungen ggf. nicht stimmen müssen ! | ||
| + | |||
| + | 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 stürzt CP/M | ||
| + | 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 | ||
| + | blinken. Nun kann's schon mit der Arbeit losgehen. | ||
| + | |||
| + | Die verfügbaren CCP Kommandos, immer mit CR = Enter abgeschlossen: | ||
| + | |||
| + | ^ HRDOS ^ HRCPM ^ Bedeutung ^ | ||
| + | | 0 | EXIT | CP/M verlassen und zum Monitor zurück | | ||
| + | | 1 | CLS | Bildschirm löschen und Kursor an Bildanfang | | ||
| + | | D | DIR | DIR=Inhalt vom aktuellen Laufwerk anzeigen | | ||
| + | | E | ERA Filname | ||
| + | | nicht unterst. | REN | REN=umbenennen, | ||
| + | | L | LOAD | File mit Turbo in RAM laden | | ||
| + | | C | nicht unterstützt | ||
| + | | G | GO | GO Programm ab 0100H starten | | ||
| + | | H | nicht unterstützt | ||
| + | | T | nicht unterstützt | ||
| + | | S xx FileNam | SAVE xx FileName | Speichert xx CPM Seite als Datei ab | | ||
| + | | Z | nicht unterstützt | ||
| + | | 4 | nicht unterstützt | ||
| + | |||
| + | __Files laden und speichern: | ||
| + | |||
| + | A:>LOAD CR lädt ein File im TurboMode zunächst nach Adresse 2000H und kopiert es nach dem | ||
| + | erfolgreichen Laden an Adresse 0100H.\\ | ||
| + | Hier kann es gleich mit dem Befehl A:>GO CR gestartet werden. Besser ist es jedoch, das File | ||
| + | sofort auf Disk zu speichern. | ||
| + | |||
| + | A:>SAVE xx Filename CR kann genau das tun. Hier kommt nun auch die nach dem Laden | ||
| + | angezeigte Anzahl der 100H Blöcke: ins Spiel, denn sie sind die Anzahl der CP/M Blöcke die beim | ||
| + | Speichern (als xx) eingegeben werden müssen. Das SAVE Kommando speichert immer xx 100H | ||
| + | Blöcke beginnend ab 0100H als Filename auf der Disk ab, und zwar unabhängig davon was grad im | ||
| + | Speicher steht. | ||
| + | |||
| + | Ein File von Disk wird durch Eingabe des Namens geladen und anschließend auch sofort gestartet. | ||
| + | |||
| + | __Zeitanzeige und RTC Uhr stellen:__ | ||
| + | |||
| + | 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 | ||
| + | |||
| + | __Spezialkommando C (HRDOS)__ | ||
| + | |||
| + | 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 | ||
| + | und dann sofort mit C nach 0100H zu kopieren. | ||
| + | |||
| + | __Spezialkommando 4 (HRDOS)__ | ||
| + | |||
| + | 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 | ||
| + | |||
| + | __Spezialkommando Z (HRDOS)__ | ||
| + | |||
| + | 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 | ||
| + | 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. | ||
| + | |||
| + | A:>POWER startet POWER aus A:\\ | ||
| + | A:> | ||
| + | A:> | ||
| + | |||
| + | Das Programm POWER.COM ist für das komfortable Kopieren und Bearbeiten von Files im CP/M | ||
| + | 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 | ||
| + | Dateiendung COM nicht angegeben werden, weil sonst die Datei nicht gefunden wird. | ||
| + | A:> | ||
| + | |||
| + | __Einige wichtige Hinweise und Besonderheiten: | ||
| + | |||
| + | * In CP/M sind ausschließlich GROSSBUCHSTABEN in Filenamen erlaubt. Das BIOS wandelt diese ggf. aber um ! | ||
| + | * Damit CP/M funktioniert, | ||
| + | * Beim Schreiben auf die RAM Floppy findet automatisch ein Vergleichslesen statt. Das macht zwar den Zugriff etwas langsamer, ist aber beim Einsatz von dRAM für die RamDisk 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 (Monitor 10/88), daraus kann man Rückschlüsse ü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 gespeichert werden, weil das BIOS einen ungeschriebenen Puffer erkennt und schreibt ! | ||
| + | * Ein CSAVE Kommando ist zur Zeit nicht vorgesehen, weil keine Notwendigkeit mehr besteht. Zum Speichern existieren genügend Alternativen. | ||
| + | * Die Zahl im Dateinamen HRDOS12 bzw. HRCPM12 stellt die Versionsnummer dar. | ||
| + | |||
| + | __Weitere Hinweise:__ | ||
| + | |||
| + | 1. Bei sämtlichen CPM-Bios' | ||
| + | bereits mit drin, aber so gestaltet, das erst beim realen Zugriff | ||
| + | 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 ! | ||
| + | |||
| + | 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: | ||
| + | </ | ||