Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
cpm:fcb [2015/11/24 14:28] volkerpcpm:fcb [2017/05/30 08:10] (aktuell) – [DIR-Eintrag] volkerp
Zeile 1: Zeile 1:
 ====== DIR-Eintrag ====== ====== DIR-Eintrag ======
  
-Der DIR-Eintrag lokalisiert nur Blöcke, keine konkreten Sektoren und Spuren und auch keine logischen Records! +Die Information, welche Daten bzw. welche Files auf einer Diskette aufgezeichnet sind, ist am Anfang der Diskette im Inhaltsverzeichnis (engl. Directory) enthalten. In der Directory stehen alle wichtigen Daten, die das BDOS zur Bearbeitung der Diskette benötigt. für jedes File sind dies:  
-Die Dateigröße wird über RC*128 bestimmt.+ 
 +    * Der Filenamen und Filetyp  
 +    * Die Länge des Files  
 +    * Die vom File belegten Bereiche auf der Diskette.  
 + 
 +Fordert ein Programm bestimmte Daten unter Angabe eines Filenamens an, so kann das BDOS aus den Directory-Informationen den exakten Sektor auf der Diskette berechnen.  
 + 
 +Für jede Datei gibt es einen oder mehrere DIR-Einträge. Ein DIR-Eintrag ist 32 Byte lang. 
 + 
 +s. [[cpm:systemdoku#aufbau_eines_directory-eintrags|]] 
 + 
 + 
 +Ein DIR-Eintrag lokalisiert nur Blöcke, keine konkreten Sektoren und Spuren und auch keine logischen Records! 
 +Die Dateigröße wird über RC*128 (s.u.) bestimmt.
  
 Das CP/M 2.2 fasst jeweils 32 Extends zu einer Extendgruppe (engl. Extend Group) zusammen. Das CP/M 2.2 fasst jeweils 32 Extends zu einer Extendgruppe (engl. Extend Group) zusammen.
-Ein File kann aus bis zu 16 Extendgruppen aufgebaut sein, was die maximale Länge eines Files auf 65536 Records (8 Megabyte) begrenzt. +Ein File kann aus bis zu 16 Extendgruppen aufgebaut sein, was die maximale Länge eines Files auf 65536 Records (8 Megabyte, s.u.) begrenzt. 
 Die laufende Recordnummer eines Files wird BDOS-intern immer in den drei Teilen Extendgruppe, Extend und Record verwaltet. Die laufende Recordnummer eines Files wird BDOS-intern immer in den drei Teilen Extendgruppe, Extend und Record verwaltet.
  
Zeile 20: Zeile 33:
  
  
-max. Dateigröße: EG=15, EX=31, CR=127 -> 15*32*128+31*128+127 = 65535 Records = 65535*128 Byte = 8 MByte.+max. Dateigröße: max.EG=15, max.EX=31, max.RC=127 -> 15*32*128+31*128+127 = 65535 Records = 65535*128 Byte = 8 MByte.
  
 Auch daraus folgt wieder, dass maximal 65535 Records pro Datei adressiert werden können. Auch daraus folgt wieder, dass maximal 65535 Records pro Datei adressiert werden können.
 +
 +===== Beispiel =====
 +
 +Auszug aus einer Diskette für den Z9001.
 +Es sind 3 Programme enthalten: L80.COM, LIB.COM, M80.COM. Letztere belegt 2 Directory-Einträge.
  
 <code> <code>
Zeile 32: Zeile 50:
  
  
-       /0 /1 /2 /3 /4 /5 /6 /7 /8 /9/ A /B /C /D /E /F /0 /1 /2 /3 /4 /5 /6 /7 /8 /9/ A /B /C /D /E /F     0123456789ABCDEF0123456789ABCDEF+       /0 /1 /2 /3 /4 /5 /6 /7 /8 /9/ A /B /C /D /E /F
                                                                                                                                                                                                                        
-       UN N1 N2 N3 N4 N5 N6 N7 N8 T1 T2 T3 EX S1 EG RC B0  .  .  .  .  .  .  .  .  .  .  .  .  .  . Bn     UNNNNNNNNTTTESERBBBBBBBBBBBBBBBB +       UN N1 N2 N3 N4 N5 N6 N7 N8 T1 T2 T3 EX S1 EG RC     UNNNNNNNNTTTESER 
-0520 : 00 4C 38 30 20 20 20 20 20 C3 4F 4D 00 00 00 54 52 00 53 00 54 00 55 00 56 00 57 00 00 00 00 00     .L80     .OM...TR.S.T.U.V.W..... +       B0  .  .  .  .  .  .  .  .  .  .  .  .  .  . Bn     BBBBBBBBBBBBBBBB 
-0540 : 00 4C 49 42 20 20 20 20 20 C3 4F 4D 00 00 00 25 58 00 59 00 5A 00 00 00 00 00 00 00 00 00 00 00     .LIB     .OM...%X.Y.Z........... + 
-0560 : 00 4D 38 30 20 20 20 20 20 C3 4F 4D 00 00 00 80 5E 00 5F 00 60 00 61 00 62 00 63 00 64 00 65 00     .M80     .OM....^._.`.a.b.c.d.e. +0520 : 00 4C 38 30 20 20 20 20 20 C3 4F 4D 00 00 00 54     .L80     .OM...T 
-0580 : 00 4D 38 30 20 20 20 20 20 C3 4F 4D 01 00 00 1D 66 00 67 00 00 00 00 00 00 00 00 00 00 00 00 00     .M80     .OM....f.g.............+0528 : 52 00 53 00 54 00 55 00 56 00 57 00 00 00 00 00     R.S.T.U.V.W..... 
 +0540 : 00 4C 49 42 20 20 20 20 20 C3 4F 4D 00 00 00 25     .LIB     .OM...% 
 +0548 : 58 00 59 00 5A 00 00 00 00 00 00 00 00 00 00 00     X.Y.Z........... 
 +0560 : 00 4D 38 30 20 20 20 20 20 C3 4F 4D 00 00 00 80     .M80     .OM.... 
 +0568 : 5E 00 5F 00 60 00 61 00 62 00 63 00 64 00 65 00     ^._.`.a.b.c.d.e. 
 +0580 : 00 4D 38 30 20 20 20 20 20 C3 4F 4D 01 00 00 1D     .M80     .OM.... 
 +0588 : 66 00 67 00 00 00 00 00 00 00 00 00 00 00 00 00     f.g.............
  
 16 Bit-Blocknummern 16 Bit-Blocknummern
  
-L80.COM belegt die Blöcke 52..57, insg. RC = 54h Records 54h*128 = 2A00h = 10,5 KByte Dateilänge, insg. 6 Blöcke +</code> 
-LIB.COM belegt die Blöcke 58..5A, insg. RC = 25h Records 25h*128 = 1280h = 4,6 KByte Dateilänge , insg. 3 Blöcke + 
-M80.COM belegt die Blöcke 5E..67, insg. RC = 80h+1Dh Records 91h*128 = 4880h  = 18,1 KByte Dateilänge, insg. 10 Blöcke+**L80.COM** belegt die Blöcke 52..57, insg. RC = 54h Records -> 54h*128 = 2A00h = 10,5 KByte Dateilänge, insg. 6 Blöcke 
 + 
 +**LIB.COM** belegt die Blöcke 58..5A, insg. RC = 25h Records -> 25h*128 = 1280h = 4,6 KByte Dateilänge , insg. 3 Blöcke 
 + 
 +**M80.COM** belegt die Blöcke 5E..67, insg. RC = 80h+1Dh Records -> 91h*128 = 4880h  = 18,1 KByte Dateilänge, insg. 10 Blöcke
 in letzter Zeile EX=1, d.h. 1. zusätzlicher DIR-Eintrag zu dieser Datei in letzter Zeile EX=1, d.h. 1. zusätzlicher DIR-Eintrag zu dieser Datei
 +
 alle drei Dateien sind schreibgeschützt (Bit 7 der Position T1 ist 1) alle drei Dateien sind schreibgeschützt (Bit 7 der Position T1 ist 1)
  
-(damit ergibt sich eine Blockgröße von 2 KByte) +:!: Man "sieht" an den Blocknummern, dass diese 16 Bit groß sind. Und aus der Dateilänge ergibt sich eine Blockgröße von 2 KByte: 10 Blöcke bei 18,1K Dateilänge. 
-</code>+
  • cpm/fcb.1448375298.txt.gz
  • Zuletzt geändert: 2015/11/24 14:28
  • von volkerp