CP/M

Um CP/M auf dem AC1 nutzen zu können, muss der AC1 die Möglichkeit haben, den Monitor-Bereich und den Bildwiederholspeicher auszublenden und stattdessen durchgehend RAM ab Adresse 0 bereitzustellen. Zur Ausgabe auf Bildschirm muss dann softwaremäßig der Bildwiederholspeicher ein- und ausgeblendet werden.

https://github.com/hcddr/ac1/tree/master/cpm

Im Funkamateur 04/1989 wurde erstmalig ein kleines CP/M vorgestellt, dass mit Kassette und 64K RAM arbeitet: CP/M fuer AC-1 (RAM-Disk-Version)

Mit der auf der Muster-Kassette enthaltenen Software (Betriebssystem CP/M und einigen Programmen) und den auf der Juli- bzw. Septemberveranstaltungen des ACC-Berlin gezeigten minimalen Hardwareaenderung am 64k-AC-1 (zusaetzlich 4 Dioden und ein halber DL Ø74) ist ein erstes Kennenlernen und Nutzen des Betriebssystems CP/M auf dem AC-1 moeglich.

Speicheraufteilung des AC-1 mit Umschaltung auf CP/M:

RAM BIOS BDOS CCP RAM- DISK TPA S-RAM S-RAM BWS BWS ROM ROM Page Ø FFFF FFFF F6ØØ E8ØØ EØØØ 2ØØØ 17FF 1ØØØ 1ØØ Ø OUT (1EH),1 OUT (1EH),Ø AC-1 normal AC-1 mit CP/M-Betriebssystem

Was geht damit nun schon ?

Alles was mit grossen Dateien und vielen Overlays arbeitet natuerlich nicht, leider auch nicht 'Wordstar'. Aber dieses Textprogramm hat einen kleinen Bruder 'Wordmaster', der ca. 12k lang ist, nur ein Helpmenue hat und trotzdem schon eine Menge kann. Ausprobiert wurden schon Turbo-Pascal, MBasic, POWER, NSWEEP, WORDMASTER und einige Spiele. So bietet Turbo- Pascal bei 16k RAM-Disk immernoch 488Ø freie Bytes an. Zum Lernen reicht das vorerst aus. Bei MBasic sind es mehr als das Doppelte an frei verfuegbarem Speicher. Die Spiele brauchen fast alle 8Ø Zeichen pro Zeile, aber sie lohnen meist nicht der Muehe sie anzupassen.

Alle bisher probierten Programme liefen ohne jede Aenderung ! Weitergehende Informationen sind vorerst den Vortraegen beim ACC bzw. der Literatur zu entnehmen.

Die Musterkassette enthaelt folgende Programme:

Vorwort    - Nutzungshinweise
CLIST'^'@' - Kassetten - Listprogramm
CP/M AC-1  - CCP/BDOS/BIOS fuer AC-1
POWER.COM  - Dienstprogramm
TURBO.MSG
TURBO.COM  - Turbo-Pascal
TURBO.OVR
WM.HLP
WM.COM     - Textverarbeitung
MBASIC.COM - Basic-Interpreter
BRUN.COM   - Laufzeitmodul fuer kompilierte Basic-Programme
PIP.COM    - Dienstprogramm
ED.COM     - Zeileneditor
IRR.COM    - 3D-Labyrint (Spiel)

Meine analyse und Reassemblierung hat folgendes ergeben:

Das CP/M V1.5 besteht aus 3 Teilen

  • E000-E7FF CCP
  • E800-F5FF BDOS
  • F600-FFFF BIOS

# c E000 FCBF CRC (SDLC) = 2D03

Vor dem CCP liegt die RAM-Floppy nach Kramer, davor eine Kopie des BIOS-Sprungverteilers und davor noch ein BDOS-Einsprung. Der effektiv nutzbare TPA-Speicher unter CP/M wird dadurch eingeschränkt.

BDOS unverändert

Das CCP ist ein frühes CP/A-CCP und im Prinzip ein originales DR-CCP, was reassembliert und um 3 Zusatzbefehle (GO, LOAD, EXIT) erweitert wurde. Außerdem wurden an einigen Stellen absolute Sprünge durch relative ersetzt (JP → JR). Die beiden Zusatzbefehle LOAD und EXIT springen ins BIOS an Adressen hinter dem Sprungverteiler (s. Listings).

LOAD: Einlesen eines Files von Kassette ab Adresse 100H
GO: Start ab Adresse 100H (TPA-Anfang)
EXIT: Rücksprung zum "AC1"-Monitor

Das BDOS ist vom CP/A und ist ein BDOS mit Datum 24.08.86, also eine frühere Version.

Das BIOS wurde nach Manfred Kramer: „Praktische Mikrocomputertechnik“, Militärverlag der DDR, 1987 entwickelt Kramer-MC. Im BIOS sind ein Bildschirmtreiber mit SCP-kompatiblen Steuerzeichen enthalten, und der Code für die beiden residenten Kommandos LOAD und EXIT. Als einziges Laufwerk A: wird eine bis zu 24K große RAM-Disk nach Kramer genutzt.

RAM-Disk Speicherbereich (für S-Kommando des Monitors)

1	-  4 K S D000 DFFF F600 name
2	-  8 K S C000 DFFF F600 name
3	- 12 K S B000 DFFF F600 name
4	- 16 K S A000 DFFF F600 name
5	- 20 K S 9000 DFFF F600 name
6	- 24 K S 8000 DFFF F600 name
7	- 28 K S 7000 DFFF F600 name
CR	- 16 K S A000 DFFF F600 name

Die Version V1.6 ist minimal gegenüber der Funkamateurversion V1.5 modifiziert:

  • Zur Umschaltung auf den CP/M-Modus wird nur Bit 0 von Port 1Eh gesetzt (V1.5: alle Bits)
  • Als Cursor-Symbol wird das Zeichen 0Fh genutzt (V1.5: 7Fh)
  • der Sprungverteiler enthält auch für nicht implementierte Funktionen Sprünge (V1.5: RET direkt im Sprungverteiler)

Die Version V2.2 ist die im Funkamateur 10/89 abgedruckte Version und hat gegenüber der Version 1.5 folgende Änderungen:

  • die kleine RAM-Disk direkt im Hauptspeicher ist entfallen, dafür wird jetzt eine richtige RAM-Disk unterstützt
  • Unterstützung 1 Laufwerk MP-RAM-Floppy 256K
  • 2KByte pro Spur, 128 Spuren → 256K
  • für die RAM-Disk werden noch CRC-Werte pro Sektor gespeichert, um eine Datensicherheit zu gewährleisten.
  • Es ist ein Druckertreiber enthalten, vermutlich parallel, PIO, Centronics.

andere Namen: CP/M320K, CPM252CRC

Lit: FA 9/89 + FA 10/89, AC1 mit 320-KByte-Speicher (1 u. 2), U. ZELLNER; W.-R. JÜRGENS; F. HEYDER-Y21SO

  • homecomputer/ac1/cpm.txt
  • Zuletzt geändert: 2024/12/05 13:13
  • von volkerp