Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| cpm:fcb [2015/11/24 14:12] – angelegt volkerp | cpm:fcb [2017/05/30 08:10] (aktuell) – [DIR-Eintrag] volkerp | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| + | |||
| + | Die Information, | ||
| + | |||
| + | * 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: | ||
| + | |||
| + | |||
| + | 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. | ||
| + | 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, | ||
| + | |||
| + | EX enthält die Extendnummer, | ||
| + | |||
| + | RC ist die Anzahl von Records im höchsten Extend (EX) des Eintrages. RC liegt normalerweise im Bereich zwischen 0 und 127. | ||
| + | Ein Wert von 128 in RC zeigt an, das auch der letzte Extend mit 128 Records gefüllt ist. In diesem Fall folgt noch ein weiterer Eintrag (Folgeeintrag). | ||
| + | |||
| + | In der Blocktabelle stehen die vom File belegten Blocknummern. | ||
| + | Die Blocktabelle kann bei 8-Bit Blocknummern bis zu 16 Blöcke und bei 16-Bit Blocknummern bis zu 8 Blöcke umfassen. | ||
| + | |||
| + | |||
| + | Random Record Number = Extendgruppe * 32 * 128 + Extendnummer * 128 + Aktuelle_Recordnummer_im_Extend | ||
| + | |||
| + | |||
| + | max. Dateigröße: | ||
| + | |||
| + | 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. | ||
| < | < | ||
| - | /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 | + | EX Höchste Extendnummer des Eintrags (0..31) |
| + | S1 unbenutzt, immer 0 | ||
| + | EG Höchste Extendgruppe des Eintrags (0..15) (auch als S2 bezeichnet) | ||
| + | RC Anzahl der Records im Extend EX (0..127) | ||
| + | B1...Bn Nummern der belegten Blöcke (Blocktabelle) | ||
| + | |||
| + | |||
| + | /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 | + | 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 | + | |
| - | 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 | + | 0520 : 00 4C 38 30 20 20 20 20 20 C3 4F 4D 00 00 00 54 .L80 |
| - | 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 | + | 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 | ||
| + | 0548 : 58 00 59 00 5A 00 00 00 00 00 00 00 00 00 00 00 | ||
| + | 0560 : 00 4D 38 30 20 20 20 20 20 C3 4F 4D 00 00 00 80 .M80 | ||
| + | 0568 : 5E 00 5F 00 60 00 61 00 62 00 63 00 64 00 65 00 | ||
| + | 0580 : 00 4D 38 30 20 20 20 20 20 C3 4F 4D 01 00 00 1D .M80 | ||
| + | 0588 : 66 00 67 00 00 00 00 00 00 00 00 00 00 00 00 00 | ||
| 16 Bit-Blocknummern | 16 Bit-Blocknummern | ||
| - | L80.COM belegt die Blöcke 52..57, insg. 54h Records = 54h*128 = 2A00h = 10,5 KByte Dateilänge, | + | </ |
| - | LIB.COM belegt die Blöcke 58..5A, insg. 25h Records = 25h*128 = 1280h = 4,6 KByte Dateilänge , insg. 3 Blöcke | + | |
| - | M80.COM belegt die Blöcke 5E..67, insg. 80h+1Dh Records = 91h*128 = 4880h = 18,1 KByte Dateilänge, | + | |
| - | (damit ergibt sich eine Blockgröße von 2 KByte) | + | **L80.COM** belegt die Blöcke 52..57, insg. RC = 54h Records -> 54h*128 = 2A00h = 10,5 KByte Dateilänge, |
| + | |||
| + | **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, | ||
| + | in letzter Zeile EX=1, d.h. 1. zusätzlicher DIR-Eintrag zu dieser Datei | ||
| + | |||
| + | alle drei Dateien sind schreibgeschützt | ||
| + | |||
| + | :!: Man " | ||
| - | EX=1, d.h. 1. zusätzlicher DIR-Eintrag zu einer Datei (M80.COM) | ||
| - | </ | ||