C 64
Hardware

Aufgebohrt

Hier wird beschrieben wie man die 1541 zu einem IEEE-Bus-Laufwerk umrüstet und dreifache Geschwindigkeit bei allen Floppy-Befehlen erreicht.

Die 1541-Floppy ist ein abgemagertes 2031/4031-Laufwerk. Was steht also näher, sie wieder in den Originalzustand zu versetzen. Mit dieser Erweiterung sind zwar keine Übertragungsgeschwindigkeiten wie etwa bei ProLogic-DOS zu erreichen, aber immerhin werden alle Zugriffe auf die Diskette dreimal schneller. Die Geschwindigkeitssteigerung wird durch den parallelen IEC-Bus erreicht. Das 4040-Doppellaufwerk ist bekanntlich bis zu 6mal schneller, hier sind dafür aber zwei Prozessoren beschäftigt, der eine zum Lesen, der andere zum Übertragen der Daten. Mit dem einen Prozessor der 1541 lassen sich trotzdem ganz vernünftige Werte erzielen. Für den Anschluß am C 64 benötigen Sie ein IEC-Bus-Interface, wie wir es in Ausgabe 7/85, Seite 44 beschrieben ist. Ihre 1541 versteht nach Umbau die »Sprache« der großen CBM-Geräte. Sie können sie also auch direkt an einen CBM 3032/8032-Rechner anschließen und erhalten dadurch eine preisgünstige Alternative zum Doppellaufwerk.

Die Hardware

Um den parallelen Bus zu realisieren wird einer der beiden Portbausteine VIA 6522 benötigt. Dieser VIA-Baustein CVersatile Interface Adapter) ist teilweise nicht beschältet. Üm der IEC-Norm entsprechen zu können, sind acht Datenleitungen, sowie fünf Handshake-Leitungen zum Verbindungsaufbau erforderlich. Über die Handshake-Leitung teilt der Computer dem Laufwerk mit, daß er Daten senden, beziehungsweise empfangen möchte (ATN), daß die Daten gültig sind (DAV), daß keine Daten empfangen werden können (NRFD), daß die Daten noch nicht verarbeitet wurden (NDAC), oder daß die Übertragung beendet wurde (EOI). Wenn der Computer eine solche Übertragungssequenz beginnt, wird zuerst festgestellt, ob das Peripheriegerät überhaupt vorhanden beziehungsweise eingeschaltet ist (DEVICE NOT PRESENT). Hierfür sind die Leitungen »NRFD« und »NDAC« zuständig. Wird »ATN« gesetzt, so müssen beide Leitungen sofort nach Masse gezogen werden. Diese Funktion übernimmt das TTL-Gatter (EX-OR 74LS136) in der Schaltung. Die IEC-Norm schreibt weiterhin »Open-Collector«-Ausgänge vor, um mehrere Geräte anschließen zu können, das heißt die Leitungen sind im aktiven Zustand auf Masse-Potential (Low). Die 6522-VIA (Portbelegung siehe Bild 1) hat aber TTL-Pegel. Die notwendige Anpassung übernehmen die beiden IEC-Treiber 75160/161.

Bild 1. Portbelegung des 6522

Wenn die Platine mit allen Bauteilen bestückt ist, wird die Leiterplatte anstelle der VIA in die Floppy gesteckt und die VIA von oben aufgesetzt. Das serielle Kabel hat in diesem Fall keine Funktion mehr, da alle Übertragungen nur noch parallel stattfinden.

Die Software

Das Floppy-DOS ist in zwei ROMs untergebracht, das $C000-ROM und das $E000-ROM. Um die Hardware bedienen zu können, müssen die seriellen Routinen durch parallele ersetzt werden. Bei den Laufwerken 2031 und 4031 ist davon der gesamte Bereich betroffen; alle Adressen sind um zirka 40 Byte verschoben. Das hat zur Folge, daß bei der 2031/ 4031 einige Programme mit Direkteinsprüngen im DOS nicht das vorfinden, was sie erwarten. Außerdem müßten beide ROMs gewechselt werden.

Bei unserem IEC-DOS bleibt der $C000-Bereich unangetastet. Die entsprechenden Routinen sind am Originalplatz eingebunden ($E853), sind aber etwas umfangreicher und belegen zusätzlich noch einige Bytes bei $E780 und $FF10. Bei dieser Gelegenheit wurde die Kopfbewegung verbessert und einige kleine Fehler im DOS beseitigt. Die Formatierungsroutine wurde im Originalzustand belassen.

Das Listing

Das Generatorprogramm im Listing erwartet ein 1541-Laufwerk. Nach dem Starten wird das OriginalDOS ausgelesen und ab $5000 im C 64 abgelegt. Die Veränderungen werden anschließend mittels POKE-Schleife vorgenommen. Zum Schluß wird die aktuelle Prüfsumme berechnet und eingetragen.

Das Programm fragt, ob das veränderte DOS abgespeichert werden soll. Wird diese Frage mit »J« beantwortet, so erzeugt es ein File mit dem Namen: 1541.IEEE-DOS.

Sie können jetzt den Bereich von $5000 bis $6FFF in ein 2764-EPROM brennen und es mittels Kernel-Adapter (64'er, Ausgabe 4/85) anstelle des 1541-ROMs in den Steckplatz UB4 einsetzen. In manchen Laufwerken befindet sich in UB4 bereits ein EPROM mit dazugehörigem Adapter.

Der Zusammenbau

Den Schaltplan, den Bestückungsplan sowie das Platinenlayout im Maßstab 1:1 finden Sie in Bild 2 bis 4. Bitte beachten Sie, daß die Bestückungsseite die Platine von oben, und die Lötseite die Platine von unten zeigt. Aus Bild 5 entnehmen Sie bitte die Bauteileliste. Die Platine wurde einseitig ausgeführt. Es empfiehlt sich, alle Bausteine zu Sockeln, um sie bei eventuellen Beschädigungen leicht auswechseln zu können, in jedem Fall muß aber der 6422 gesockelt sein. Die Position der Bauteile entnehmen Sie dem Bestückungsplan. Zuerst werden die Widerstände R1 + R2 und die Drahtbrücke eingelötet. Bei den Dioden Dl, D2 und D3 muß auf die Einbaurichtung geachtet werden. Der Pfeil zeigt auf die Anode, was zumeist durch einen Ring gekennzeichnet wird. Anschließend werden die Sockel verlötet. Um die Schaltung in den VIA-Sockel UC3 einsetzen zu können, müssen zwei 20polige Pinleisten von der Lötseite auf die Platine gelötet werden. Dieser Vorgang erfordert besondere Sorgfalt damit keine unerwünschten Lötbrücken entstehen. Zuletzt ist nur noch das IEEE-Anschlußkabel einzulöten und die Bausteine können eingesetzt werden. Um den Kabelanschluß zu vereinfachen kann ein Einpreßstecker mit Flachbandkabel verwendet werden. Die Anschlußbohrungen sind bereits nach IEEE-Norm angeordnet (siehe Bild 6).

Bild 2. Der Schaltplan des lEEE-Interfaces
Bild 3. Der Bestückungsplan (Bestückungsseite)
Bild 4. Das Platinenlayout (Lötseite)
Bild 5. Stückliste zum IEEE-Interface
Bild 6. Die Beschaltung des lEEE-Kabels

Die beiden Brücken auf der Leiterbahnseite sind für die Geräteadresse zuständig. Ihre Funktion ist analog zu den Brücken des 1541-Laufwerks, um Adresse 8 einzustellen, sind beide geschlossen.

Bei älteren Laufwerken sind die Bausteine UC3 und UB4 nicht immer an derselben Stelle, auch die Bezeichnung variiert.

Es empfiehlt sich also vor dem Einbau einen Fachmann zu Rate zu ziehen, vor allem, wenn man sich bei seiner Laufwerksversion nicht ganz sicher ist. Auf keinem Fall sollte man das Prinzip von Versuch und Irrtum anwenden wollen, sonst kann eine Beschädigung der Laufwerkslogik nicht ausgeschlossen werden.

Der komplette Bausatz wird ab der nächsten Ausgabe über den Hardware-Service erhältlich sein, beachten Sie dazu die Hinweise auf den Service-Seiten.

(Michael Lamm/og/aw)
10 poke45,0:poke46,113:clr
20 print"{clr}ieee-rom generator
30 print"{down}c1986 by mike lamm
40 print"{down}bitte warten......
50 print
60 f$="1541.ieee-dos
70 open15,8,15,"i"
80 input#15,ds,ds$,t,s,m:ifdsthenprint"disk-error:"ds;ds$,t,s:goto320
90 c=5*4096
100 fori=14*4096to16*4096-1step128
110 print#15,"m-r"chr$(i-int(i/256)*256);chr$(int(i/256));chr$(128)
120 forj=0to127:get#15,a$:pokec,asc(a$+chr$(0)):c=c+1:nextj
130 print"*";
140 nexti:print:print
150 reada:readb
160 fori=atoa+b-1:readd:pokei,d:nexti
170 poke28678,44:poke28704,142:poke28705,64:poke28706,3:sys7*4096
180 ifpeek(832)<>224thenprint"?uebertragungsfehler":goto320
190 print"overlay gestartet"
200 restore
210 forl=1to10
220 reada:readb
230 fori=atoa+b-1:readd:pokei,d:nexti,l
240 poke23746,8:poke25253,5:poke25257,2:poke25261,20
250 sys7*4096
260 print:input"abspeichern";a$
270 ifa$<>"j"then320
280 poke193,0:poke194,80:poke174,0:poke175,112
290 l=len(f$):fori=1tol:pokei+831,asc(mid$(f$,i,1)):next
300 poke183,l:poke187,64:poke188,3
310 sys 62954
320 close1:close15:end
330 rem pruefsummen-routine
340 data 28672,36
350 data162,112,134,35,169,31,141,230,110,169,0,133,34,168,162,32,24,198,35
360 data113,34,200,208,251,202,208,246,105,0,170,73,255,141,230,110,96
370 rem $e5b7
380 data 21943,4
390 data201,69,67,45
400 rem $e5c4
410 data 21956,3
420 data50,48,51
430 rem $e780
440 data 22400,28
450 data96,142,1,24,142,3,24,169,206,141,0,24,169,49,141,2,24,169,104,141,0
460 data28,169,111,141,2,28,96
470 rem $e860
480 data 22624,526
490 data162,69,154,169,76,13,0,24,41,237,141,0,24,169,0,141,3,24,169,23,141
500 data2,24,169,255,141,1,24,173,0,24,41,251,9,3,141,0,24,44,0,24,80,4,48
510 data249,16,125,169,253,45,0,24,141,0,24,41,8,133,248,173,1,24,73,255,133
520 data150,169,4,13,0,24,141,0,24,160,0,165,150,41,96,201,64,240,41,201,32
530 data240,6,201,96,240,47,208,70,165,150,197,119,240,11,201,63,208,2,132
540 data121,132,123,76,4,233,133,121,132,122,169,32,133,131,133,132,133,123
550 data208,39,132,122,165,150,197,120,208,229,133,122,132,121,240,232,165
560 data123,240,21,165,150,133,132,72,41,15,133,131,104,41,240,201,224,208
570 data5,88,32,192,218,120,44,0,24,80,251,76,124,232,165,121,240,14,169,252
580 data45,0,24,141,0,24,32,50,233,76,231,235,169,250,45,0,24,9,4,141,0,24
590 data165,122,240,3,32,220,233,76,231,235,120,169,2,13,0,24,141,0,24,44,0
600 data24,48,42,112,249,32,7,209,176,5,181,242,106,176,83,165,132,41,240,201
610 data240,240,75,165,131,201,1,240,19,44,0,24,48,11,80,249,169,251,45,0,24
620 data141,0,24,96,76,91,232,120,169,253,45,0,24,141,0,24,169,4,13,0,24,141
630 data0,24,44,0,24,48,231,80,249,173,0,24,41,251,141,0,24,169,2,13,0,24,141
640 data0,24,44,0,24,48,208,80,249,76,109,233,169,253,45,0,24,141,0,24,41,8
650 data133,248,173,1,24,73,255,133,133,120,169,4,13,0,24,141,0,24,44,0,24
660 data48,170,80,249,169,251,45,0,24,141,0,24,88,32,183,207,76,50,233,169
670 data72,13,0,24,141,0,24,76,231,235,120,32,235,208,176,6,166,130,181,242
680 data48,1,96,169,89,141,2,24,169,255,141,3,24,173,0,24,9,16,141,0,24,169
690 data2,44,0,24,48,73,240,249,189,62,2,73,255,141,1,24,181,242,9,183,45,0
700 data24,141,0,24,173,0,24,48,48,41,6,201,6,240,176,41,2,208,241,88,32,170
710 data211,120,169,4,44,0,24,48,26,240,249,169,255,141,1,24,169,72,13,0,24
720 data141,0,24,169,4,44,0,24,48,4,208,249,240,151,76,91,232,173,0,24,9,64
730 data141,0,24,96,169,2,13,0,24,41,254,141,0,24,96,170,170,170,170,170,170
740 data170,170,170,170,170,170
750 rem $eaa4
760 data 23204,3
770 data32,129,231
780 rem $eb3d
790 data 23357,14
800 data9,16,141,0,24,32,16,255,234,234,234,234,234,234
810 rem $ebda
820 data 23514,22
830 data234,234,234,234,234,234,234,234,234,234,32,128,231,88,234,234,234,234
840 data234,234,234,234
850 rem $f384
860 data 25476,8
870 data3,133,74,165,34,32,72,255
880 rem $ff10
890 data 28432,72
900 data173,12,24,9,12,41,253,141,12,24,173,2,24,41,254,141,2,24,173,0,24,41
910 data3,9,72,133,120,73,96,133,119,173,12,24,9,2,141,12,24,173,0,24,41,238
920 data141,0,24,173,2,24,9,1,141,2,24,96,208,2,169,44,41,126,73,254,10,5,74
930 data233,4,133,74,96
Das Generatorprogramm; es erzeugt das IEEE-DOS. Bitte mit dem Checksummer eingeben.
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →