CP/M-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Memberlist || Home || Statistik || Kalender || Staff Willkommen Gast!
[ Unofficial CP/M Website ] [ Z80 Family Support Page ] [ Forum-Regeln ] [ Impressum/Kontakt ] [ Datenschutzerklärung ]

CP/M-Forum » CP/M <-> DOS » 22Disk1.xx Anleitung unverständlich (für mich...) » Threadansicht

Autor Thread - Seiten: -1-
000
28.11.2007, 11:08 Uhr
Stefan Both

Avatar von Stefan Both

Moin Mitstreiter,

ich tüftle hier mit dem Programm "22Disk" rum, und versuche,
eine Config für die ITT 3030 Disketten zu schreiben.
Die letzte Einstellung, die mir noch völlig schleierhaft ist,
bezieht sich auf die u.a. "Schalter" AL0 und AL1.

Hier ein Auszug der Beschreibung, welche dem Programm
als DOC File beiliegt...

AL0 and AL1 form a bit mask, beginning with the most significant bit in byte AL0
and ending with the least significant bit in AL1. These two bytes map the first 16
allocation blocks of the disk.
A 1 bit in a position indicates that an allocation block is reserved, usually for
the directory (see DRM, above).


4. Examine the first directory entry. The second 16 bytes
(the second line of the entry) gives a list of alloca-
tion unit numbers belonging to the file. The first one
of these will tell how many allocation units have been
reserved to hold the directory. Thus, if the first al-
location byte is 04, four allocation units have been al-
located to the directory. Another thing to note is
whether the allocation unit number appears to be an
8 bit or 16 bit quantity. For example, if an entry has
the following form:
00 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 10 .PIP COM....
04 00 05 00 06 00 00 00 00 00 00 00 00 00 00 00 ................
the allocation unit designators are 4, 5 and 6 and are
16-bit quantities. On the other hand, the following item:

00 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 10 .PIP COM....
04 05 06 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
shows the same allocation units, but as 8-bit quantities.
If 16-bit quantities are involved, more than 255allocation
units are defined for the diskette, if an 8-bit quantity,
less than 256 units. This serves as a check for later com-
putations. In any case, the first allocation number of the
first directory entry gives the number of bits to be set in
AL0 and AL1. Thus, for an allocation number of 04:

AL0 11110000B Al1 0 ????HÄ????

Was muss ich denn angeben, wenn meine Bytes so aussehen:

02 00 04 00 06 00 00 ....

Was hat (im Beispiel) 04 denn mit 11110000 zu tun?
(das "B" steht für Binär)

Hat jemand einen Tip???


Stefan
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
001
28.11.2007, 16:35 Uhr
proof80



Hallo Stefan!


Zitat:
Was muss ich denn angeben, wenn meine Bytes so aussehen: 02 00 04 00 06 00 00 ....

Ich nehme mal an, dass das die zweite Zeile aus Deinem DIR-Eintrag ist.
Dann kann man daran sehen, dass der allererste Block für eine Datei bei Dir die Nummer "02" trägt. Daher sind die Zuornungseinheiten "00" und "01" für andere Zwecke (wie z.B. System und Inhaltsverzeichnis) belegt und können daher nicht mit Daten belegt werden.
Eine 1 im AL0/AL1 markiert eine belegte Zuordnungseinheit. Also nehme ich an, dass Deine Vektoren 11000000 und 00000000 sein sollten, damit die ersten beiden Blöcke wie beabsichtigt maskiert werden.

Ausserdem verwendet Dein Diskettenformat mehr als 255 Zuordnungseinheiten, weil in Deinem DIR-Eintrag 16bit-Werte verwendet werden.

Passt das mit den übrigen Werten zusammen?

Viel Erfolg und Gruß, Wolfram
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
002
28.11.2007, 18:14 Uhr
Stefan Both

Avatar von Stefan Both


Zitat:
Ich nehme mal an, dass das die zweite Zeile aus Deinem DIR-Eintrag ist.
Dann kann man daran sehen, dass der allererste Block für eine Datei bei Dir die Nummer "02" trägt. Daher sind die Zuornungseinheiten "00" und "01" für andere Zwecke (wie z.B. System und Inhaltsverzeichnis) belegt und können daher nicht mit Daten belegt werden.
Eine 1 im AL0/AL1 markiert eine belegte Zuordnungseinheit. Also nehme ich an, dass Deine Vektoren 11000000 und 00000000 sein sollten, damit die ersten beiden Blöcke wie beabsichtigt maskiert werden.

Ausserdem verwendet Dein Diskettenformat mehr als 255 Zuordnungseinheiten, weil in Deinem DIR-Eintrag 16bit-Werte verwendet werden.

Passt das mit den übrigen Werten zusammen?

Lieber Wolfram,
erst mal vielen Dank für die Antwort!
Ich werde es "die Nacht" ausprobieren. Eigentlich müsste sonst alles stimmen...
Ich werde mich in jedem Fall noch mal melden. Wenn´s geklappt hat,
damit andere die Config auch benutzen können -
wenn´s nicht klappt - weil ich weitere Hilfe in Anspruch nehmen muss ;-)

Ich glaube Dir, daß die Zahl die richtige ist - verstehe aber nach wie vor nicht,
warum die Binärzahl 11110000 eine 04, und die 11000000 eine 02 sein soll.
Die "22Disk Anleitung" ist hierbei doch eher verwirrend, zumal die restlichen
Beispiele (auch die Mitgelieferten Def´s) in Hex geschrieben sind.

Bis die Nacht!

Lg
Stefan
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
003
28.11.2007, 18:39 Uhr
proof80




Zitat:
Ich glaube Dir, daß die Zahl die richtige ist - verstehe aber nach wie vor nicht,
warum die Binärzahl 11110000 eine 04, und die 11000000 eine 02 sein soll.

Hallo Stefan,
Dein Irrtum besteht darin, dass die 11110000B=F0H nicht die Zahl 4 darstellen soll, sondern als "Maske" in der binären Darstellung von links beginnend exakt soviele fortlaufende Einsen tragen soll, wie in der ersten Zuordnungsnummer des DIR angegeben.

Warum jetzt dies? Die Zuordnungseinheiten werden ja von 0 an gezählt. Belegt das DIR mit einer 04H also die erste Zuordnungseinheit mit der Nummer 4 für die erste Datei, so sind genausoviele (hier also die ersten vier mit den Nummern 0, 1, 2 und 3) vorher freizuhalten (s.o.). Das macht man im Diskettenformat mit AL0 und AL1. Jedes Bit in diesen zwei Byte steht dabei für eine Zuordnungseinheit, wodurch man also maximal 16 Einheiten vorweg freihalten kann. Das Betriebssystem berechnet aus dieser Maske z.B. den max. nutzbaren Speicherplatz auf der Diskette und weiß dann auch, ab wo die Schreiberei für Dateien losgehen kann.
Die Beschreibung von 22Disk erklärt nur, wie man das herausfinden kann. Das lässt sich natürlich auch berechnen, wenn man weiß, wie groß eine Zuordnungseinheit (Block, etwa 128b, 256b, 512b 1024b) ist und wieviele Systemspuren das Format frei hält. Dann kommt noch das Inhaltsverzeichnis selbst dazu und danach erst die Dateien. Die AL0 und AL1 sind quasi Abbilder vom Anfang der Diskette, in Blocks gezählt.

Gruß, Wolfram

Dieser Post wurde am 28.11.2007 um 18:40 Uhr von proof80 editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
004
29.11.2007, 15:41 Uhr
Stefan Both

Avatar von Stefan Both

Moin Wolfram!

Hm... ich habe jetzt Zugriff auf die Diskette.
Directory wird angezeigt, Ich kann Formatieren,
Daten von CP/M->Dos kopieren und zurück.

NUR... Der ITT "sieht" (DIR) von den 4 Testdateien, die ich
abgespeichert habe nur eine.
Umgekehrt kann ich eine ITT bespielte Diskette
ohne Probleme anzeigen lassen, und einzelne Daten
nach Dos kopieren.
Manchmal jedoch sagt mir 22DISK, daß ein Block
doppelt belegt ist.

Ich werde heute Abend mal die Anadisk-Werte
etc. Posten - sowie die Definition, wie ich sie jetzt
angelegt habe. (bin z.Zt. auf Arbeitsstelle)
Man(n)... ich bin froh, daß es dieses Forum gibt!
Je spezieller ein Problem ist, je dünner wird die Luft
mit denen, die sich da noch auskennen!
(is ja mehr Geschichtsforschung ;-) )

Lg

Stefan
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
005
29.11.2007, 16:45 Uhr
proof80



Hallo Stefan,

ich hatte während meiner Beschäftigung mit einem PROF-Diskettenformat die englische Beschreibung zu 22DISK ins Deutsche übersetzt.
Du findest sie unter http://www.prof80.de/22DISK.TXT (Sollte man abspeichern, da im Browser nicht einwandfrei lesbar.)

Außerdem sehe ich gerade, dass in der CPM-TYPE.LST die folgenden beide Formate aufgeführt sind:

ITT 3030 - DSDD 48 tpi 5.25"
ITT 3030 - DSDD 96 tpi 5.25"

Ich habe allerdings noch nicht die dazu passenden Definitionen gefunden.

Gruß, Wolfram

Dieser Post wurde am 29.11.2007 um 16:47 Uhr von proof80 editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
006
29.11.2007, 19:37 Uhr
Stefan Both

Avatar von Stefan Both

Guten Abend!
Erst mal Danke für die Anleitung! Sahne!

Ja, in der Liste sind die beiden ITT Laufwerke aufgeführt.
Nein, in der Share-Ware Version sind die aber nicht enthalten.

Das Programm DIDI.com sagt mir:
70 Cylinder, 16Sectoren, 256bytes, 2Seiten.
Anadisk sagt:

Cyl.0: Side0, Sec1
3e 82 01 00 e7 11 00 19 cd 00 05 d2 71 ff c3 00

Cyl.4, Side0, Sec1 (erster Prg. Eintrag)
00 57 37 4e 34 20 20 20 20 43 4f 4d 00 00 00 32
02 00 03 00 04 00 37 00 00 00 00 00 00 00 00 00

Ich kann nur einen Cylinder (16Sec)mit dem
Inhaltsverzeichnis finden. (Rest aufgefüllt mit "Leer")
Pro Sektor sind es aber nur 8 Datei-Informationen
(nicht wie im Beispiel 22Disk -> 16 Stk.)


Ich habe daraus gemacht:

BEGIN ITT2 3030 CP/M - DSQD 5"
DENSITY MFM ,LOW
CYLINDERS 70
SIDES 2
SECTORS 16,256
SKEW 1
SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
ORDER CYLINDERS
BSH 4 BLM 15 EXM 1 DSM 272 DRM 127 AL0 11000000B AL1 00000000B OFS 4
END

Sind spontan Fehler zu erkennen?

Lg
Stefan
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
007
29.11.2007, 19:40 Uhr
gabyde
Administrator
Avatar von gabyde

Die Definitionen für ITT 3030 habe ich...


BEGIN ITT1 ITT 3030 - DSDD 48 tpi 5.25"
DENSITY MFM ,LOW
CYLINDERS 35 SIDES 2 SECTORS 16,256
SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
ORDER CYLINDERS
BSH 3 BLM 7 EXM 0 DSM 247 DRM 63 AL0 0C0H AL1 0 OFS 4
END

BEGIN ITT2 ITT 3030 - DSDD 96 tpi 5.25"
DENSITY MFM ,LOW
CYLINDERS 70 SIDES 2 SECTORS 16,256
SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
ORDER CYLINDERS
BSH 4 BLM 15 EXM 0 DSM 270 DRM 127 AL0 0C0H AL1 0 OFS 4
END

Ciao, Gaby
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
008
29.11.2007, 21:40 Uhr
Stefan Both

Avatar von Stefan Both

@Gaby:
Knutsch !!!

(*lag ich ja gar nicht SOOO falsch ) Großes Danke!!!
-> Meine Frau wird sich freuen... -> Dich hab ich doch
schon mal gesehen? -> nach 4 Nächten tüfteln und ausprobieren

@proof80: Nochmal danke für die Übersetzung!
Mit deren Hilfe werde ich mich jetzt mal an das backward engineering machen.
So schön wie es ist, eine Lösung zu haben, richtig glücklich bin ich ja erst,
wenn ich den Weg dahin auch verstanden habe.

Vielen Dank!

Stefan
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
009
30.11.2007, 08:19 Uhr
proof80



Das FORUM sei mit Dir - Da werden Sie geholfen


Wenn doch nur alles so schnell zu lösen wäre ...

Viel Erfolg und Gruß, Wolfram
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
010
01.12.2007, 00:04 Uhr
Stefan Both

Avatar von Stefan Both

Lift off !
All engines running

Es hat geklappt! Mächtigen Dank!

Stefan
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
011
01.12.2007, 11:21 Uhr
proof80




Zitat:
Es hat geklappt!

Hallo Stefan,

dann gib doch Deine neuen Erkenntnisse hier noch preis


Gruß, Wolfram

Dieser Post wurde am 01.12.2007 um 11:21 Uhr von proof80 editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
012
01.12.2007, 12:01 Uhr
Stefan Both

Avatar von Stefan Both

Nun, die Werte sind die, welche Gaby (<-Danke!)
übermittelt hat.

BEGIN ITT1 ITT 3030 - DSDD 48 tpi 5.25"
DENSITY MFM ,LOW
CYLINDERS 35 SIDES 2 SECTORS 16,256
SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
ORDER CYLINDERS
BSH 3 BLM 7 EXM 0 DSM 247 DRM 63 AL0 0C0H AL1 0 OFS 4
END
****************************************
BEGIN ITT2 ITT 3030 - DSDD 96 tpi 5.25" *
DENSITY MFM ,LOW
CYLINDERS 70 SIDES 2 SECTORS 16,256
SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 (MEINE LAUFWERKE)
SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
ORDER CYLINDERS
BSH 4 BLM 15 EXM 0 DSM 270 DRM 127 AL0 0C0H AL1 0 OFS 4
END
************************************************

Jetzt kann ich damit beginnen die 7mb Festplatte in Betrieb zu nehmen!
(Diese hat nämlich die ein oder andere Macke, sodaß versch. Sektoren
ausgeblendet werden müssen.)
Ist halt ein altes Schätzchen!

Über die Weihnachtsfeiertage hab ich wahrscheinlich genügend Zeit, eine
Anleitung in PDF Format zu machen.
So mit Screenshoots und so weiter.
Kann man die, nachdem jemand Korrektur gelesen hat, unter
http://www.gaby.de/cconvert.htm zum Download bereitstellen?

Lg
Stefan
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
013
01.12.2007, 14:16 Uhr
gabyde
Administrator
Avatar von gabyde


Zitat:
Stefan Both postete
Über die Weihnachtsfeiertage hab ich wahrscheinlich genügend Zeit, eine
Anleitung in PDF Format zu machen.
So mit Screenshoots und so weiter.
Kann man die, nachdem jemand Korrektur gelesen hat, unter
http://www.gaby.de/cconvert.htm zum Download bereitstellen?

Ja, gerne
Schick sie mir einfach als zip-Päckchen per Mail - und ich lese dann schon Korrektur

Ciao, Gaby
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
014
31.01.2008, 12:34 Uhr
Stefan Both

Avatar von Stefan Both

Bin noch dabei!

Lg
Stefan
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: -1-     [ CP/M <-> DOS ]  



gaby.de

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek