HRCPM12

Von Ralph Hänsel gibt es umfangreiche Software für den AC1-2010. Neben seinem 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 ZSDOS kompatibles CP/M 2.2 Betriebssystem für den AC1. Es basiert auf dem KC85/x-CP/M-System MLDOS.

HRCPM 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. CCP und BDOS sind bis auf Seriennummer und Datumskennung identisch mit der beim 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)

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)

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

AC1-2010 / FA-Mode

  • Monitor V8 oder 1088
  • 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 256K-DOM-Modul
  • keine GIDE-RTC-Nutzung

SCCH

  • Monitor V8 oder 1088
  • 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 256K-DOM-Modul
  • GIDE-RTC-Nutzung bei ZSDOS

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 !

; 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

Diese Anleitung ist noch nicht ganz fertig !

Viel Spaß damit wünscht
Ralph Hänsel

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

Anpassung von Turbo Pascal - Programmen an HRCPM12 (s.a. TINST.COM)

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
  • homecomputer/ac1/hrcpm.txt
  • Zuletzt geändert: 2024/03/27 20:38
  • von frieder