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 2.2 » Dpb Wert » Threadansicht

Autor Thread - Seiten: -1-
000
19.06.2008, 09:29 Uhr
Ralph



Wer kann mir sagen welche Maximalwerte für die Verarbeitung von Werten im DiskParameterBlock (DPB) gelten ? Konkret brauch ich das für das "DDR" CP/A Version 1.8.1986?
Sicher gibts auch Unterschiede für die einzelnen Versionen.?? Ein Link wo ich das finde, am Besten noch auf deutsch.., wäre prima..

Danke sagt Ralph
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
001
23.06.2008, 00:58 Uhr
Peter Dassow

Avatar von Peter Dassow

Hallo Ralph,

in der "Section 6" des CP/M (2.2) Alteration Guide findest Du im Abschnitt 6.10 die Beschreibung, wie der DPB aussieht. Die Maximalwerte ergeben sich eigentlich aus der Grösse der Werte, wenn z.B. dort "16B" steht, also 16 Bit, dann wäre das 2^16-1 (65535), wobei das mit Sicherheit nicht immer wirklich passt. Vielleicht nennst Du den Wert, wo Du die Grenze brauchst, mal beim Namen?

Hier mal den relevanten Auszug:

* SPT is the total number of sectors per track.
* BSH is the data allocation block shift factor, determined by the data block allocation size.
* BLM is the data allocation block mask (2[BSH-1]).
* EXM is the extent mask, determined by the data block allocation size and the number of disk blocks.
* DSM determines the total storage capacity of the disk drive.
* DRM determines the total number of directory entries that can be stored on this drive.
* AL0, AL1 determine reserved directory blocks.
* CKS is the size of the directory check vector.
* OFF is the number of reserved tracks at the beginning of the (logical) disk.

Gruss
Peter
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
002
23.06.2008, 08:48 Uhr
Ralph



Danke für die Info..
Ich bin gerade dabei mir für meinen Eigenbau PC ein CP/M Bios selbst zu schreiben und sammle Infos dazu.
So habe ich anhand einiger Vorbilder bereits ein BIOS für einseitige DiskLW's (SS) (80*16*256) bereits erfolgreich hinbekommen.
Nun aber komme ich nicht weiter, denn ich brauche ich z.B. die Information, woher z.B. das BIOS erfährt dass es bei Doppelseitigen LW die Seite A oder die Seite B verwenden soll.. also wo erfolgt die Headumschaltung ?
Darüber hab ich noch nichts gefunden... :-(
Sicher auch weil ich mit dem englischen ein wenig Probleme habe..
Später dann soll das ganze dann um ein GIDE Modul erweitert werden.
Gruß Ralph
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
003
23.06.2008, 17:59 Uhr
proof80



Hallo Ralph,
ich nehme mal an, dass Du vorerst ein Format für den Eigengebrauch einhängen willst. Wenn es Dir um Kompatibilität mit anderen Mikros geht, musst Du da nochmal genauer hinschauen.

Ich habe mich beim PROF-80 mal vor einiger Zeit näher mit den Diskettenformaten beschäftigt, weil ich von 5.25" auf 3.5" umsteigen wollte ...

Hier die Info: Es gibt mindestens zwei Möglichkeiten auf zweiseitig zu erweitern:
1. Die Anzahl der Spuren werden in der Formattabelle doppelt so hoch angegeben als physikalisch möglich. Dann kann man entweder durch gerade/ungerade Spurnummer oder durch Spurnummern oberhalb der physikalischen Grenze im BIOS die Kopfansteuerung unterscheiden.
2. Die Anzahl der Sektoren ... (im Prinzip das gleiche in grün wie mit den Spuren)

Damit das nicht zu theoretisch bleibt, habe ich gerade das CP/M-PLUS Handbuch zum PROF-80 hochgeladen. Da wird beschrieben, wie man neue Diskformate einhängen kann

Hier die url: www.prof80.de/files/cpmplusm.zip

Wenn's weiterhilft oder neue Fragen aufwirft, melde Dich ruhig.

Gruß, Wolfram
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
004
23.06.2008, 18:42 Uhr
Ralph



@proof80.. erstmal Danke! Naja ich wollt eigentlich nicht erst ein eigenes Format erfinden, sondern gleich mit dem für mich richtigen Format der KC85/x... (also Robotron 80*5*1024)..anfangen.
Allerdings nützen mir die im Netz befindlichen BIOS Quellfetzen da eben nicht viel, weil ich noch nicht entdeckt habe, wo genau die Umschaltung realisiert wird.

Übrigens ist später dann der CCP+BDOS Ersatz ZSDOS geplant...

Gruß Ralph
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
005
23.06.2008, 19:10 Uhr
proof80



Hallo Ralph,
Quelltexte dazu findest Du auf www.prof80.de natürlich auch. Einfach mal auf der download-Seite stöbern. Die ganze Geschichte ist aber recht hardwareabhängig, so dass wohl ein Blick ins Schaltbild nötig sein wird.
Letztendlich wird am Disketteninterface die Kopfauswahl (/SIDE) mit einem logischen Pegel gesteuert. Wie das dort hinkommt ... (beim PROF-80 beispielsweise direkt vom Floppycontroller 765)

Gruß, Wolfram

Dieser Post wurde am 23.06.2008 um 19:14 Uhr von proof80 editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
006
23.06.2008, 20:26 Uhr
Ralph



..die Hardwareabhänige Seite ist mir vollkommen klar, schließlich hab ich das Ding ja auch gebaut :-)... Mir gehts vielmehr um das softwareseitige Problem, ich mein die Headumschaltung zu lösen..

Gruß Ralph
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
007
24.06.2008, 22:30 Uhr
Peter Dassow

Avatar von Peter Dassow


Zitat:
Ralph postete
..die Hardwareabhänige Seite ist mir vollkommen klar, schließlich hab ich das Ding ja auch gebaut :-)... Mir gehts vielmehr um das softwareseitige Problem, ich mein die Headumschaltung zu lösen..

Gruß Ralph

Hallo,

ich nehme mal an, dass die Head-Umschaltung nicht Sache des Betriebssystems selbst (bzw. des BDOS) ist, sondern des BIOS, da CP/M selbst den Datenträger eher als lineares Speicherabbild "sieht", also im Prinzip keine Ahnung von der physikalischen Struktur hat.
Im BIOS selbst wird dann entweder wechselseitig oder nach Erreichen der ersten 40/80 Spuren auf den zweiten Kopf umgeschaltet, d.h. auch die maximale Spurenanzahl eines Datenträgers ist erst mal ohne Rücksicht auf Head 0/Head 1 "gezählt".
Aber ich habe einfach zu lange damit nichts mehr praktisch zu tun gehabt, so dass ich mich jetzt auch irren kann ;-)

Gruss
Peter

Dieser Post wurde am 24.06.2008 um 22:31 Uhr von Peter Dassow editiert.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
008
25.06.2008, 09:05 Uhr
Ralph



Ja das es das BIOS entscheiden muss, ist klar und ja auch logisch.

Ich habe mal aus dem Robotronforum eine Antwort, die evl. ein wenig weiter hilft...


Zitat:
... das ist nicht standardisiert, es gibt also sicher Rechner und CP/Ms, die das so machen. Es gibt auch welche, bei denen erst eine gesamte Diskettenseite und dann die 2. Diskettenseite geschrieben wird.

Bei den DDR-CP/Ms werden immer erst alle Sektoren einer Spur von Kopf 0 und dann alle Sektoren derselben Spur von Kopf 1 geschrieben.
Anschließend geht's zur nächsten Spur.

Da ich den KC85/x vom Format her erzeugen will, sollte meine Frage damit beantwortet sein. Danke Euch, die sich damit auseinandergesetzt haben.

Gruß Ralph
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
009
01.07.2008, 16:44 Uhr
Ralph



Dank allen erstmal..Das hat mir schon viel genützt!

Kann mir nun jemand sagen, wie ich in einem CP/M Programm herausbekomm wo das BIOS genau anfängt ? Gibt es da eine standardisierte Routine ?

Gruß Ralph
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
010
01.07.2008, 19:08 Uhr
proof80



Kommt auf die version an. Meinst Du CP/M 2.2 oder 3.0 (plus)? Bei der gebankten ist es etwas schwieriger, bei der Version 2.2 am einfachsten, weil man sich da über die Einsprungleiste hinhangeln kann.
Demnächst mal mehr...

Gruß, Wolfram
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
011
01.07.2008, 20:10 Uhr
Ralph



mir gehts um CP/M 2.2 .. sind doch in diesem Forum dafür..??

Gruß Ralph
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
012
01.07.2008, 20:30 Uhr
HD64180CPM



Hallo Ralph,

probiere mal folgende Programme aus.

DSK-BIO7.COM und PROBE102.COM.

Diese sind in den Dateien DSK-BIO7.LBR und PROBE102.LBR drinnen.

http://www.retroarchive.org/cpm/cdrom/CPM/UTILS/SYSUTL/DSK-BIO7.LBR

http://www.retroarchive.org/cpm/cdrom/CPM/UTILS/SYSUTL/PROBE102.LBR

Gruss
Rolf
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
013
01.07.2008, 23:15 Uhr
susowa




Zitat:
Ralph postete
Kann mir nun jemand sagen, wie ich in einem CP/M Programm herausbekomm wo das BIOS genau anfängt ? Gibt es da eine standardisierte Routine ?
Gruß Ralph

CP/M 2.2:

In Adresse 0001 (L) und 0002 (H) steht die Anfangsadresse des BIOS + 3, das ist das Sprungziel vom Warmboot, welches die zweite BIOS-Funktion ist.
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
014
01.07.2008, 23:30 Uhr
Ralph



susowa.. Oh Mann..... Ralf, das war viel zu einfach... Manchmal ist man vor lauter Suche betriebsblind.. Ich danke Dir !

Gruß Ralph
Seitenanfang Seitenende
Profil || Private Message || Suche Zitatantwort || Editieren || Löschen || IP
Seiten: -1-     [ CP/M 2.2 ]  



gaby.de

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