Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

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.1homecomputer: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:ac1:monitor#usb-komfort-monitor_v110|]] stammt aus seiner Feder auch eine Gruppe von CP/M-Systemen.
 +
 +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://www.gaby.de/ftp/pub/cpm/znode51/specials/zsdossrc/zsdos.htm|ZSDOS]] kompatibles CP/M 2.2 Betriebssystem für den AC1. Es basiert auf dem KC85/x-CP/M-System [[http://www.mpm-kc85.de/html/MLDOS.htm|MLDOS]].
 +
 +HRCPM ist ebenfalls ein ZSDOS kompatibles CP/M 2.2 Betriebssystem für den AC1, welches aber auf dem [[cpm:cpa|CPA CCP/BDOS]] vom 24.08.86 basiert und damit im Befehlssatz kompatibel ist. CCP und BDOS sind bis auf Seriennummer und Datumskennung identisch mit der beim [[homecomputer:ac1:cpm|FA-CP/M]] genutzten CP/A-Version (incl. Zusatzkommandos LOAD und EXIT).
 +
 +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/verschiedenen Festplatten u.a. (OPTIONEN.INC, Ports etc. in HRBIOS12.ASM)
 + 
 +  * BIN's, orig. Doku, Quellcodes, Tools {{ :homecomputer:ac1:hr-cpm-src.zip |}}
 +  * ZSDOS http://www.gaby.de/ftp/pub/cpm/znode51/specials/zsdossrc/zsdos.htm
 +  * deutsche Beschreibung ZSDOS RedNil 1994
 +    * http://www.kc85.info/index.php/download-topmenu/viewdownload/18-cp-m/155-zsdos-1-1-handbuch-fuer-den-programmierer.html
 +    * http://www.kc85.info/index.php/download-topmenu/viewdownload/18-cp-m/156-zsdos-1-0-handbuch-fuer-den-anwender.html
 +  * MLDOS v.1.5 Quelldateien
 +    * http://www.kc85.info/index.php/download-topmenu/viewdownload/21-ml-dos/82-mldos.html
 +
 +===== Programme =====
 +
 +  ? Check+CPM-Umgebung_2000_25FF.BIN
 +  : Testprogramm, ob der AC1 eine korrekt funktionierende Speicherumschaltung besitzt. Start des Testprogramms mit "t".
 +  ? ZSHELP.COM
 +  : CP/M-Programm zur Anzeige einer kleinen Hilfe
 +  ? FORMATAC.COM
 +  : CP/M-Programm zum Formatieren von Disketten und Festplatten
 +
 +
 +
 +===== 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, welche Hardware das
 +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, Standard 800K und 640k,
 +  * 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/HRCPM:
 +
 +  * 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, die Art des installierten BDOS (ZSDOS oder CPA), die Art des
 +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, sowie eine Zeile tiefer die FDC-Controllerparameter nebst
 +Diskettenlaufwerke, die installiert sind.\\
 +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  | ERA=löschen, Datei löschen | 
 +| nicht unterst. | REN | REN=umbenennen, Datei umbenennen | 
 +| L | LOAD  | File mit Turbo in RAM laden | 
 +| C | nicht unterstützt  | TPA von 2000H nach 0100H umladen | 
 +| G | GO  | GO Programm ab 0100H starten | 
 +| H | nicht unterstützt  | Help zeigt Liste der CCP Befehle | 
 +| T | nicht unterstützt  | Anzeige und Uhrzeit stellen | 
 +| S xx FileNam | SAVE xx FileName | Speichert xx CPM Seite als Datei ab | 
 +| Z | nicht unterstützt  | schaltet den Zeichengeneratur um (PIO B3 Port) | 
 +| 4 | nicht unterstützt  | schaltet AC1 zwischen 2/4Mhz Takt um (IO Port F0H Bit0=1) | 
 +
 +__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:>C:POWER startet POWER aus Laufwerk C:\\
 +A:>C:POWER Test startet POWER aus Laufwerk C: und startet den Test auf 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:>POWER.COM würde im HRDOS eine Fehlermeldung erzeugen, im jedoch HRCPM nicht !
 +
 +__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, muss die RAM Floppy zwingend zuverlässig funktionieren !
 +  * 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'n ist jeweils der FDC und das GIDE 
 +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, die auf der HD physikalisch
 +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 !
 +
 +<code>
 +; 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
 +;PART E,300,128,4096 ; E: mit 128 Spuren ab Spur 300 (32 MB) HR
 +
 +Als Festplatte nutze ich eine Delock 256MB SSD
 +; Master = DELOCK SSD (256 MByte)
 +CYLS0 EQU 984 ; Anzahl Zylinder
 +HEAD0 EQU 16 ; Anzahl Koepfe
 +SECS0 EQU 32 ; Anzahl Sektoren
 +</code>
 +
 +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  loeschen, Cursor links oben |
 +| 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, Spalte/Zeile +00h oder +80h möglich |
 +| 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, Spalte+80h! Zeile kann +80h |
 +| 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:turbo_pascal:tinst|]])
 +
 +<code>
 +125
 +0153  TermTypStr:  16,AC1-2010 (64x32)
 +0168  Width:       64
 +0169  Height:      32
 +016A  ???:         0
 +016B  InitialStr:  01,82
 +017B  ResetStr:    00
 +018B  CursorStr:   03,1B,00,00
 +019B  BinaryAddr:  1
 +019C  ColumnOff:   128
 +019D  LineOff:     128
 +019E  XPosition:   3
 +019F  YPosition:   2
 +01A0  DelayCursor: 0
 +01A2  ClearScrStr: 01,0C
 +01A8  HomeStr:     00
 +01AE  InsLineStr:  00
 +01B4  DelLineStr:  00
 +01BA  DelayLine:   0
 +01BC  EraToEolStr: 01,16
 +01C2  HLStartStr:  01,86
 +01C8  HLEndStr:    01,84
 +01CE  DelayHL:     0
 +</code>