Die KRÖNUNG

Booten von einer 720kB Diskette

 

 

Die Idee

Hinter diesem Titel verbirgt sich ein Utility, auf das sicher schon so mancher JOYCE-User gewartet hat: Zwei vollwertige externe 720 kByte-Diskettenlaufwerke. Nach einem Artikel in der PCI (Amstrad PC International 1990, Heft 3 & 4) war es bis jetzt zwar möglich, von einer 720 kByte-Diskette zu booten und diese dann im A-Laufwerk zu lesen. Ein großer Nachteil war jedoch der relativ schwierige Herstellungsprozeß einer Startdiskette und nicht zuletzt auch die Möglichkeit, nicht auf eine 720 kByte-Diskette im A-Laufwerk schreiben zu können oder auf eine 173 kByte-Diskette im internen A-Laufwerk umschalten zu können. Insgesamt gesehen war dies zwar besser als garnichts, jedoch als komfortabel und befriedigend konnte man dies nicht bezeichnen. Dies ist nun vorbei ! Auf einer Idee des CCP (ClubChef-Programmierers) Reiner Seitz basierend ist es mir gelungen, eine Software zu entwickeln, die eine auf 706 kByte formatierte Diskette bootfähig macht und dafür sorgt, daß man später auch auf diese schreiben und beliebig zwischen 173 kByte und 720 kByte umschalten kann. Als Nebeneffekt ist es nun außerdem möglich, in dem internen B-Laufwerk auf 173 kByte-Disketten zu schreiben.

 

Die Hardwarevoraussetzungen

Wenn man als A-Laufwerk ein 720 kByte-Laufwerk benutzen will, muß man sich natürlich ein externes zulegen. Das Format (5,25" oder 3,5") spielt dabei keine Rolle, ich persönlich bevorzuge jedoch das 3,5"-Format. Ein B-Laufwerk ist nicht nötig, wenn man sich aber erstmal eines zugelegt hat, wird man es nicht mehr missen wollen. Insgesamt stünden dann mit zwei 720 kByte-Laufwerken 1.44 MByte Speicherraum zur Verfügung, der dann etwaige Platzprobleme auch ohne Festpiatte lösen dürfte.

 

Die Softwarevoraussetzungen

Das Problem bestand darin, dem PCW beizubringen, von einer großen Diskette (720 kByte) zu booten. Zum einen muß die Diskette einen Bootsektor besitzen und zum anderen muß der Bootsektor zum Diskettenformat passen, d.h. wenn die Diskette im CF2DD-Format formatiert ist, muß der Bootsektor auf dieses Format abgestimmt sein. Der Bootsektor des CF2-Formates ist aus diesem Grund völlig ungeeignet. Grundgedanke war nun, den Bootsektor eines PCW 9512 zu nehmen. Die ersten Versuche endeten jedoch wenig erfolgreich. Erst nach einiger Zeit kam ich auf die Idee, die Checksumme des Bootsektors zu überprüfen und, siehe da, sie stimmte nicht mit den Forderungen des PCW 8xxx überein. Eine Korrektur derselben hatte nun den Erfolg, daß sich der PCW zwar nicht mehr über die Diskette mit einem Piepsen beschwerte, dafür versank er jedoch in die ewigen Computerabgründe. Daraus ließ sich folgen, daß dieses Checksummbyte gleichzeitig Programmcode war und deshalb nicht geändert werden durfte. Eine Änderung an anderer Stelle führte dann zum ersten Teilerfolg: der PCW 8xxx begann von einer CF2DD-Diskette zu booten (das Betriebssystem J14GCPM3.EMS war selbstverständlich auf die Diskette kopiert). Das war es dann aber auch schon. Nach dem Booten tat sich nichts, der Rechner stürzte ab. Als Grund dafür entpuppte sich der Startvorgang des CP/M's, nachdem es in den Speicher geladen war. Die Bootroutine des PCW 9512 startet das CP/M anders als die des PCW 8xxx. Und dann kam der ersehnte Erfolg; nach der erneuten entsprechenden Änderung des Bootsektors wurde einwandfrei von einer CF2DD-Diskette gebootet und auch das Betriebssystem gestartet. Der nächste Schritt war nun, dem CP/M beizubringen, sich nicht über das CF2DD-Format im A-Laufwerk zu beschweren. Und da gab der besagte CCP den entscheidenden Hinweis: es mußten ganze 2 Bytes (!) im Betriebssystem geändert werden, und die Sache funktionierte. Das 1. Byte änderte die LOGIN-Routine, die für die Erkennung des Diskettenformates zuständig ist. Denn sie entscheidet über: „Das Format ist OK“ oder „falsche Diskette“. Das geänderte Byte führte nun dazu, daß das LOGIN immer „Das Format ist OK“ als Ergebnis liefert. Der nächste Schritt war nun die Änderung des 2. Bytes: es befindet sich in der WRITE-Routine des CP/M-XBIOS! Es entschied darüber, ob auf die Diskette geschrieben werden konnte oder nicht (z.B. CF2-Diskette im B-Laufwerk oder CF2DD-Diskette im A-Laufwerk). Dieses entsprechend geändert führt dazu, daß auf jede Diskette geschrieben wird und zwar in jedem Laufwerk, also u.a. CF2 in B: und CF2DD in A:. Dieses geändert und die Sache funktionierte.

Für LocoScript waren diese Änderungen des Systemen erstaunlicherweise nicht erforderlich. Wenn man LocoScript (bei mir Version 2.28) von einer CF2DD-Diskette bootet, stellt es seine Funktionen auf das CF2DD-Format um, sogar in der Diskettenverwaltung wird nun angeboten, eine CF2DD-Diskette in A: zu formatieren. Selbstverständlich kann man daher beliebig mit den CF2DD-Disketten herumwirbeln, LocoScript spielt gnadenlos mit... Ein kleiner Nachteil ergab sich jedoch nun mit dem Handling der CF2-Disketten: sie können nur noch im B-Laufwerk gelesen werden. Warum und wieso entzog sich leider meinen Kenntnissen, da ich keinerlei Unterlagen / Systeminformationen über LocoScript besitze. Ohne diese kann ich dem Fehler leider nicht auf die Spur kommen, aber dies ist auch nicht unbedingt notwendig, kann man sich die Disketten doch unter CP/M beliebig zurechtkopieren und dann unter LocoScript benutzen. Wenn man schon die Möglichkeit hat, mit zwei CF2DD-Laufwerken zu arbeiten, wird man diese mit Sicherheit auch ausgiebig nutzen und gerne auf das CF2-Format verzichten.

Alle diese Softwarevoraussetzungen habe ich in ein Programm namens MAKEBOOT.COM integriert, welches unter Turbo-Pascal entwickelt wurde. Es bietet die Möglichkeiten, auf einer formatierten CF2DD-Diskette den Bootsektor und das Betriebssystem zu installieren, wobei jegliche Änderungen selbstverständlich automatisch ausgeführt werden. Wahlweise wird CP/M oder LocoScript (v2.28) auf die Diskette kopiert, wobei als Bonus die Steprate eingestellt werden kann, mit der die Floppies als Grundtakt arbeiten sollen. Dies bringt bei der späteren Arbeit zum Teil erhebliche Geschwindigkeitsvorteile, besonders bei intensivem Gebrauch der Floppies. Die 3"- Floppies verkraften maximal eine Steprate von 10ms, die 3.5" oder 5.25"-Fioppies meistens sogar bis zu 3ms (z.B. die TEAC- und MITSUMI-Floppies) ! Beim Installieren von CP/M kann man sogar noch entscheiden, ob bei einem Systemstart (z.B. ausgelöst durch den RESET-Taster) die RAM-Disk erhalten bleiben soll.

Für diejenigen, die nur die Möglichkeit nutzen wollen, auf eine CF2-Diskette im B-Laufwerk zu schreiben, habe ich das BASIC-Programm LOGA720.BAS geschrieben, das ein COM-File namens LOGA720.COM erzeugt und nach Aufruf nur die 2 Bytes von CP/M ändert:


10   OPEN "0",#1,"L0GA720.COM"
20   FOR i=1 TO 35
30   READ a
40   PRINT #1,CHR$(a);
5O   NEXT
60   CLOSE
70   DATA &H01,&H14,&H00,&H11,&H00,&HF0,&H21
75   DATA &H0F,&H01,&HED,&HB0,&HCD,&H00,&HF0
80   DATA &HC7,&H01,&H09,&HF0,&HCD,&HSA,&HFC
85   DATA &HE9,&H00,&HC9,&H21,&H97,&H0D,&H36
90   DATA &HC9,&H21,&H10,&H0D,&H36,&H37,&HC9


 
  KLICK = download        MAKEBOOT.com  &  LOGA720.BAS

Bernhard Graßhoff - Kiel - Auszug aus der Klubzeitung 14