MSX u. PC im Netzwerk - ist das möglich?
 

Nun, ist es möglich, diese zwei verschiedene Computersysteme zu einem Netzwerk zu verbinden? Ja es ist möglich! Die Tatsache, daß der MSX-Standard großteils die gleiche Disketten- bzw. Festplattenorganisation wie der PC unter MS-DOS verwendet ist hier sehr hilfreich. Schließlich stammen beide ja auch von Microsoft. Es fehlt nur mehr eine geeignete Datenleitung und dies ist der multigerätefähige SCSI-Bus.

Das Netzwerk basiert darauf, daß sich beide Systeme eine SCSI-Festplatte teilen. Der PC hat Zugriff auf die gesamte Festplatte, der MSX nur auf einen Teil. Die Platte wird so organisiert, daß der PC auf sämtliche MSX-Partitionen zugreifen kann. Selbstverständlich können beide (!) Systeme von der gleichen Platte gebootet werden.

Zu Beginn möchte ich erklären, wie eine Festplatte auf beiden Systemen organisiert ist. Der allererste Sektor (Spur 0, Kopf 0, Sektor 1) ist der sogenannte Partitionssektor, der die Partitionstabelle und das Master Boot Record enthält. Die Partitionstabelle enthält die Information, wie die Festplatte unterteilt ("partitioniert") ist. Das Master Boot Record enthält eine Maschinenroutine, welche nach einer aktiven Partition sucht, deren Bootsektor lädt und ausführt und somit den Bootvorgang eines Betriebssystemes wie MS-DOS, OS/2 oder UNIX einleitet. Gewisse besonders raffinierte Viren, wie z. B. der Tequila nisten sich im Master Boot Record ein und sind somit besonders lästig, da dieser Bereich der Festplatte beim normalen Formatieren nicht überschrieben wird.

Der MSX verwendet ebenfalls die gleiche Partitionstabelle auf dem ersten logischen Sektor; er benötigt aber das Master Boot Record nicht, da der Bootvorgang vom EPROM des SCSI-Controllers gesteuert wird. Nun zum Aufbau dieser Tabelle:

Es sind 4 Einträge möglich, und zwar beginnen diese mit Byte &H1BE, &H1CE, &H1DE u. &H1EE. (Das neuere MSX-Partitionier-Programm FDISK unterstützt zwar 6 Partitionen; die 2 zusätzlichen Partitionen beginnen dann mit Byte &H19E u. &H1AE, auf diese kann aber nur der MSX zugreifen!)

Folgende Informationen stehen in der Tabelle (Offset zu den oben genannten Adressen -  Hexzahlen):

Byte 00: Bootindikator   00hex = nicht aktiv
                                       80hex = aktive Partition (nur PC)

     01: Kopfnummer
     02: Sektornummer
     03: Zylindernummer  des ersten Sektors der Partition

         Die unteren 6 Bits des Bytes 02 geben die Sektornummer an, während
         die oberen 2 Bits mit der Zylindernummer die 10-Bit-Zylindernummer
         erzeugen (aus diesem Grund kann MS-DOS nur Festplatten mit max. 1024
         logischen Zylindern verwalten). MSX benötigt diese Information nicht,
         es werden nur 3 Null-Bytes eingetragen.

     04: Systemindikator  0 = unbenutzt
                          1 = MS-DOS bis 16 Megabytes oder
                                MSX-DOS-Partition
                          4 = MS-DOS 16 bis 32 Megabytes
                          5 = erweiterte DOS-Partition
                          6 = MS-DOS mehr als 32 Megabytes
                          7 = OS/2-HPFS oder NT-NTFS

     05: Kopfnummer
     06: Sektornummer
     07: Zylindernummer  des letzten Sektors der Partition

         Interpretation wie oben, MSX trägt hier wieder 3 Null-Bytes ein

     08-0B: Anzahl der Sektoren, die vor dieser Partition liegen, kodiert
                 im Z80-Format (Low-Bytes vor High-Bytes); wird von beiden Systemen
                 verwendet

     0C-0F: Größe der Partition (Anzahl der Sektoren); benötigen natürlich
                  beide Systeme

Beim MSX/PC-Netzwerk wird bei der ersten Partition der Systemindikator 4 verwendet; gleichzeitig wird diese aktiviert, so daß der PC booten kann. Auf  diesen Bereich hat der PC eklusiven Zugriff. Die verbleibenden 1 bis 3 Partitionen (je nach Größe) werden vom MSX genutzt und können auch vom PC erreicht werden.

Die Installation läuft folgendermaßen ab: Die Festplatte wird am MSX angeschlossen. Die Festplatte muß (!) die SCSI-ID-Nummer 0 oder 7 haben. Normalerweise befinden sich 3 Jumper für die Adresse auf der Platte. Entweder alle 3
entfernen oder alle 3 oben lassen. Der MSX wird mit der MSX-DOS2-Diskette gebootet und das Programm FDISK wird aufgerufen.

Achtung! Je nach Version von FDISK unterstützt dieses 4 oder 6 Partitionen. In der Folge bezeichne ich die Version die 4 Partitionen unterstützt als FDISK4, die andere Version als FDISK6!

Falls notwendig, muß die Platte zuerst low-level-formatiert werden; bei neuen vorformatierten oder gebrauchten Platten ist dies nicht notwendig. Dann ruft man den Punkt P ("Modify partition table") auf. Es müssen alle eventuell vorhandenen Partitionen gelöscht werden und diese Änderung muß mit S gespeichert werden.

Der PC-SCSI-Controller (oder besser ausgedrückt Hostadapter) ist normalerweise auf die SCSI-Geräte-Nummer 7 eingestellt. Diese Einstellung ist auf 6 zu ändern. Weiters ist darauf zu achten, daß sich die Terminatorwiderstände entweder auf der Festplatte oder auf dem Hostadapter befinden, je nachdem welches Gerät das letzte ist, aber nicht auf beiden. Der MSX/SCSI-Controller ist ebenfalls terminiert und drei terminierte SCSI-Geräte würden dann den Bus überlasten. Normalerweise besitzt der PC eine AT-Bus bzw. bei älteren Modellen noch eine MFM- oder RLL-Festplatte. Der SCSI-Hostadapter kann problemlos mit diesen Plattentypen zusammenarbeiten. Vorläufig muß im Setup der bei beiden Festplatten der Typ "not installed" (nicht installiert) eingetragen werden.

Die SCSI-Festplatte wird am PC-Hostadapter angeschlossen und der PC wird mit einer bootfähigen MS-DOS-Diskette gebootet. Diese muß neben den Systemdateien die Dienstprogramme FDISK u. FORMAT enthalten; ein deutscher Tastaturtreiber wäre auch nicht schlecht. Nun wird FDISK ausgeführt und eine primäre MS-DOS-Partition in der Größe von mind. 17 bis max. 31,5 Megabytes erstellt. Diese wird auch gleich als aktive Partition gewählt.

Der Vorgang soll hier kurz geschildert werden (MS-DOS Version 5.0 u. 6.0): Punkt 1 ("Erstellen einer DOS-Partition ...") wählen, dann wieder Punkt 1 ("Erstellen einer primären DOS-Partition") und die Frage "Soll der gesamte verfügbare Speicherplatz ..." mit "N" beantworten. Nun kann man die Größe in MB eingeben; wie schon erwähnt, sollten dies mind. 17 bis max. 31,5 MB sein. Nach der Meldung die ESC-Taste drücken und Punkt 2 ("Festlegen der aktiven Partition") wählen und die Partition Nummer 1 als aktive Partition wählen. Zweimal die ESC-Taste drücken und fertig. Noch nähere Auskunft hierzu gibt das Handbuch von MS-DOS.

Nun wird die Festplatte wieder an den MSX angeschlossen und die MSX-Version von FDISK aufgerufen. Ein Blick auf die Partitionstabelle zeigt, daß man erfolgreich war. Wer jetzt allerdings meint, man braucht nur die Partitionen 2 bis 4 (FDISK4) bzw. 4 bis 6 (FDISK6) für MSX partitionieren, den straft FDISK. Die MS-DOS Partition beginnt z. B. bei Sektor 41. Würde man jetzt eine weitere Partition definieren, dann wird der Beginn auf Sektor 1 verschoben und vorbei ist es. Daher muß man Punkt S ("Save partition table as a disk file") wählen und die Daten auf Diskette speichern. Wählen wir als Namen "PARTI-PC".

Nun wird die Partition 1 (FDISK4) bzw. 3 (FDISK6) gelöscht (hart aber notwendig) und statt dessen eine Reserved-Partition (reservierte Partition) definiert, die 50 Kilobytes größer ist, als die MS-DOS-Partition war. Die Partitionen 2 - 4 (FDISK4) bzw. 4 bis 6 (FDISK 6) können nun frei nach Wunsch für den MSX definiert werden, die max. Größe sollte aber 31,5 Megabyte nicht überschreiten. Die Änderungen werden mit Punkt W auf die Festplatte gespeichert. Anschließend kehrt man zum Main-Menu zurück und initialiesiert die MSX-Partitionen mit Punkt I. Dann geht man wieder zurück zum Punkt P ("Modify partition table") und speichert mit Punkt S die Tabelle unter dem Dateinamen "PARTI-MS". Dann bootet man den MSX neu und kopiert gleich die Dateien "MSXDOS2.SYS" und "COMMAND2.COM" hinauf.

Nun muß ein kleines aber feines BASIC-Programm diese beiden Dateien zu einer neuen zusammenfassen, welche den Namen "NEWPARTI" trägt.

Für FDISK4 (4 Partitionen):

10 MAXFILES=3
20 OPEN "PARTI-PC" AS #1 LEN=1
30 OPEN "PARTI-MS" AS #2 LEN=1
40 OPEN "NEWPARTI" AS #3 LEN=1
50 FIELD #1,1 AS A$
60 FIELD #2,1 AS B$
70 FIELD #3,1 AS C$
80 FOR I=1 TO 2560
90 IF I<463 THEN GET #1,I:LSET C$=A$
100 IF I>462 AND I<513 THEN GET #2,I:LSET C$=B$
110 IF I>512 AND I<1025 THEN GET #1,I:LSET C$=A$
120 IF I>1024 THEN GET #2,I:LSET C$=B$
130 PUT #3,I
140 NEXT
150 CLOSE

Für FDISK6 (6 Partitionen):

10 MAXFILES=3
20 OPEN "PARTI-PC" AS #1 LEN=1
30 OPEN "PARTI-MS" AS #2 LEN=1
40 OPEN "NEWPARTI" AS #3 LEN=1
50 FIELD #1,1 AS A$
60 FIELD #2,1 AS B$
70 FIELD #3,1 AS C$
80 FOR I=1 TO 3584
90 IF I<463 THEN GET #1,I:LSET C$=A$
100 IF I>462 AND I<513 THEN GET #2,I:LSET C$=B$
110 IF I>512 AND I<2049 THEN GET #1,I:LSET C$=A$
120 IF I>2048 THEN GET #2,I:LSET C$=B$
130 PUT #3,I
140 NEXT
150 CLOSE

(Unter GW-BASIC braucht man die Zeile 10 nicht; der OPEN-Befehl hat folgende Syntax: OPEN "R",#1,"Dateiname",1)

Nun wählt man auf dem MSX im Sub-Menu "Modify partition table" den Punkt L und gibt als Dateinamen "NEWPARTI" ein. Bei meiner 40 MB-Festplatte mit einer MS-DOS-Partition von 17 MB und 2 MSX-Partitionen von 15 bzw. 8 MB sieht die Tabelle so aus:

Bei 4 Partitionen:

Number Type      Att MBytes       Sectors   Dir  FAT Cluster kB/Cluster
--------------------------------------------------------------------------------
  1    PRI MSDOS  B  16.997     41 - 34849
  2    MSX-DOS      -  15.000  34851 - 65570  64   12    3836      4.00
  3    MSX-DOS      -    8.061  65571 - 82078  64   12    2059      4.00
  4    unused

Bei 6 Partitionen:

Number Type      Att MBytes       Sectors   Dir  FAT Cluster kB/Cluster
---------------------------------------------------------------------------------
  1    unused
  2    unused
  3    PRI MSDOS  B  16.997     41 - 34849
  4    MSX-DOS      -  15.000  34851 - 65570  64   12    3836      4.00
  5    MSX-DOS      -    8.061  65571 - 82078  64   12    2059      4.00
  6    unused

Man braucht dies nur mit Punkt W (write to [hard]disk) bestätigen und die Festplatte ist schon MSX u. PC tauglich! Ich hoffe, daß der Autor eine Version von FDISK herausbringt, welche direkt das MSX/PC-Netzwerk unterstützt und somit ein umständliches Hantieren mit Dateiabbildern der Partitionstabelle überflüssig macht.

Da man schon vorher die MSX-DOS-Systemdateien installiert hat, ist der MSX schon bootfähig. Jetzt wird die Festplatte wieder am PC-Hostadapter angeschlossen; eventuell vorhandene AT-BUS (MFM- bzw. RLL-) Festplatten sind im Setup noch immer abgemeldet. Mit der bootfähigen Diskette wird gebootet und dann die PC-Partition mit FORMAT C: /S formatiert. Anschließend kann man noch das Betriebssystem MS-DOS installieren. Man bootet den PC und gibt als Laufwerksbuchstaben D: ein. Wenn alles klappt, muß man jetzt auf die erste MSX-Partition zugreifen können und sieht die beiden Dateien MSXDOS2.SYS u. COMMAND2.COM. Mit E: u. F: kann man - falls vorhanden - auf die weiteren MSX-Partitionen zugreifen.

Nun braucht man nur mehr alle drei SCSI-Geräte zusammenhängen. Ich habe meine SCSI-Festplatte fest in den PC eingebaut und schließe bei Bedarf den MSX an. So erübrigt sich das Problem der Spannungsversorgung und des Gehäuses der Festplatte.

Hardwaremäßig gibt es keine Probleme, da jeweils nur einer der beiden Computer den SCSI-Bus beanspruchen kann und die Kontrolle selbsttätig erfolgt. Man kann sogar ein Harddiskbenchmarkprogramm vom PC aus starten. Obwohl der PC den Bus komplett zu blockieren scheint, kann der MSX noch problemlos zugreifen. Es müssen aber alle Geräte eingeschaltet sein, ist auch nur eines ausgeschaltet, dann ist der Bus tot. Wenn ich nur den PC alleine benötige, dann entferne ich einfach das SCSI-Kabel vom MSX-Controller.

Etwas Aufmerksamkeit erfordert der Bootvorgang der beiden Computer. Es dürfen nicht beide Computer gleichzeitig booten und wenn ein Computer gebootet wird, dann darf der andere nicht auf den Bus zugreifen. Daher ist es günstig, den MSX mit SET TITLE "TASTE!",1 nach dem Einschalten zu einer Zwangspause zu zwingen. Dann wird der PC eingeschaltet und man wartet solange, bis der Betriebssystemprompt erscheint. Schließlich drückt man eine Taste am MSX und nach dem MSX-DOS-2.x gebootet ist, kann man am Netzwerk arbeiten.

Wichtig ist daß man am PC in der CONFIG.SYS die Zeile BUFFERS=1 einträgt. So erreicht man, daß der MSX dem PC im Hintergrund keine Dateien ändert, während der PC die alten Daten von den Dateipuffern liest. Da der Zugriff auf die PC-Partition damit auch deutlich langsamer wird, empfiehlt sich Abhilfe durch das Festplattencache-Programm SMARTDRV.EXE. Die Parameter lauten (je nach Anzahl der Partitionen) SMARTDRV D- E- F-. So wird verhindert, daß die MSX-Partitionen gepuffert werden.

Folgende Vorsichtsmaßnahmen sind auch noch zu beachten:

- Wenn ein Computer eine Anweisung durchführt, die exklusiven Zugriff auf
  diese Partition benötigt, dann darf der andere Computer auf keinen Fall
  auf diese Partition (wohl aber auf die anderen) zugreifen. Beispiele
  sind hierfür CHKDSK u. Festplattendefragmentierprogramme.

- Beide Computer sollten nicht die gleiche Datei in derselben Partition
  gleichzeitig zum Schreiben oder Schreiben/Lesen öffnen. Auch sollten
  beide nicht gleichzeitig eine neue Datei auf der gleichen Partition an-
  legen. Jeder liest das Direktory und die FAT ein, meint dort ist noch
  Platz frei und dann schreiben beide in den gleichen freien Sektor. Der
  langsamere überschreibt dem schnelleren dann die Daten.

- Wer Windows verwendet, sollte dieses nur auf PC-Partition installieren
  und auch dort die Auslagerungsdatei unterbringen. SCSI-Controller mit
  älterem BIOS können Probleme mit Windows im Standard- oder erweiterten
  Modus bringen; hier hilft der Windows 3.0-Real-Mode (Aufruf mit WIN /R).
  Das Cache-Programm SMARTDRV.EXE kann durch eine sogenannte Doppelpufferung
  Abhilfe verschaffen; diese stört aber den Zugriff des PCs auf die MSX-
  Partitionen.

- SCSI-Cache-Controller mit Hardwarecache sind ungeeignet; wer sich diese
  allerdings leisten kann, der benötigt sicher kein MSX/PC-Netzwerk.

Für PCs mit AT-Bus- (bzw. MFM-/RLL-) Festplatten ist ein Treiber in der CONFIG.SYS notwendig, damit auf die SCSI-Festplatte zugegriffen werden kann. Nähere Auskunft gibt die Dokumentation des SCSI-Hostadapters. Bei mir ist es folgender Treiber: DEVICE=GSCSI4.SYS .

Leider - wie es die Technik so will - wenn ich meinen PC von der AT-BUS-Festplatte boote, dann kann ich zwar auf die PC-Partition zugreifen, nicht aber auf die MSX-Partitionen. (Der MSX hat natürlich weiterhin Zugang zu seinen Partitionen.) Ich helfe mir damit mit, daß ich bei Bedarf im Setup einfach die AT-Bus-Festplatte(n) abmelde ("not installed") und den PC somit von der SCSI-Festplatte booten lasse. Schon habe ich wieder mein Netzwerk. Das händische Umstellen des Setups ist etwas umständlich. Zum Glück gibt es ein kleines PD-Programm namens CMOS.EXE, das den Inhalt des CMOS-RAMs in eine Datei liest und bei Bedarf von Datei wieder ins CMOS. Ein Reset wird auch gleich automatisch ausgelöst. Manchmal kann es aber passieren, daß das Datum und die Uhrzeit nicht mehr stimmen; daher sollte man eine Datums- u. Zeitabfrage in die AUTOEXEC.BAT einbauen.

Andere SCSI-Hostadapter samt Treiber konnte ich nicht testen, möglicherweise tritt dort das gleiche Problem nicht auf.

Hier nun die Vorteile des MSX/PC-Netzwerkes:

- Man hat vom PC aus vollen Zugriff auf die MSX-Partitionen. Von allen Lauf-
  werken des PCs kann man Dateien direkt ohne Umweg über die 720 kB-Diskette
  auf den MSX übertragen (auch Dateien größer als 713 kB). Man denke an die
  Möglichkeit, Graphiken problemlos vom PC in den MSX oder umgekehrt zu be-
  fördern.

- PC-Festplattenoptimierungs- und Backup-Programme dienen zur Wartung der
  MSX-Partitionen.

- Es gibt ein PD-Programm, das das Betriebssystem CP\M 2.2 auf dem PC emu-
  liert. Auch Turbo-Pascal läuft problemlos mit diesem Emulator. Bereits
  auf einem 286er und erst recht auf einem höheren Prozessor ergibt sich
  ein enormer Zeitvorteil beim Compilieren von MSX-Programmen.

Etwas Verwirrung kann die Tatsache stiften, daß bei 2 MSX-Partitionen diese beim PC die Laufwerksbuchstaben D: u. E: erhalten, beim MSX aber A: B:. Man kann sich mit ASSIGN helfen. Beim MSX gibt in die Datei REBOOT.BAT folgende Anweisungen:

ASSIGN B: D:
ASSIGN D: B:
ASSIGN C: A:
ASSIGN A: C:

Beim PC kann man sich auch mit ASSIGN helfen; nur sollte man ASSIGN.COM vorher auf eine RAM-DISK kopieren, da es hier im Gegensatz zum MSX ein externes Kommando ist.

Die praktische Mindestgröße für das MSX/PC-Netzwerk ist eine 40 MB-Festplatte. Aber wer auch eine kleinere Platte besitzt, muß auf das Netzwerk nicht verzichten. Man definiert die erste Partition als "reserved" mit 0.5 MB (FDISK4)
bzw. die dritte Partition als "reserved" mit 0.5 MB (FDISK6). Dann definiert man die MSX-Partition(en). Der PC kann natürlich von solch einer Platte nicht gebootet werden; man muß sich hier mit einer bootfähigen Diskette helfen. So kann man aber auch bei einer größeren Platte kurz und schmerzlos testen, ob das MSX/PC-Netzwerk überhaupt mit diesem oder jenen SCSI-Hostadapter läuft.

Ich kann zwar nicht garantieren, ob das MSX/PC-Netzwerk auf allen PCs funktioniert, ich möchte aber meine Konfiguration angeben: 386er mit AMI-BIOS, Data Technology DTC 3180 SCSI-Hostadapter, HSH MSX-SCSI-Controller, MSX-DOS 2.22, Conner-Festplatte 40 MB, VG 8235 bzw. NMS 8280, MS-DOS 5.0 u. MS-DOS 6.0. Auch mit einer RODIME-66 MB-Festplatte habe ich das Netzwerk aufbauen können.

Ich hoffe, daß es zu keinem Datenstau auf dem SCSI-Bussen kommen wird!

Franz Bachler

 zurück