8bit Projects For Everyone


Czy jest   dla  

IDEDOS - dostęp do dysków twardych

Nazwa IDEDOS oznacza dodatkowe udogodnienia w systemie operacyjnym +3e, który opracował Garry Lancaster. Więcej informacji o +3 znajduje się na stronie autora pod adresem http://www.zxplus3e.plus.com/.

W ZXVGS oraz CPM22QED użyty został system partycjonowania IDEDOS (nazywany również partycją systemową IDEDOS).

Dlaczego partycje IDEDOS są najlepsze dla komputerów 8bit?

  • Sposób partycjonowania jest prosty, ale nie tak prymitywny jak w MS-DOS i mniej skomplikowany niż w Amiga OS.
  • Informacje o wszystkich partycjach są w jednym miejscu, a nie rozrzucone po całym dysku, jak w MS-DOS.
  • Można przydzielić partycje obrazom dyskietek (TR-DOS, MB-02, +D, Sam), również określając ich (wirtualną) strukturę fizyczną.
  • Każda partycja musi mieć swoją nazwę, do 16 znaków.
  • Do partycji można dołączyć dodatkowe parametry. Na przykład, partycje CP/M (również obrazy dyskietek CP/M) mogą zawierać tabelę XDPB.
  • Pliki startowe (boot) mogą być zapisane jako oddzielne partycje. Wiele różnych komputerów może być wystartowane z jednego dysku, ponieważ każdy sprzęt używa innej nazwy pliku startowego.
  • Dla wielkich plików, np. filmów zrobionych z serii obrazków (patrz BMP2SCR), mogą być zarezerwowane niepofragmentowane obszary (partycje).
  • Może być maksymalnie 65535 partycji.
  • Inne typy partycji mogą być dodane w przyszłości.
  • Adresowanie CHS jest odpowiednie dla starszych dysków.

Szczegóły techniczne

Każda definicja partycji zajmuje 64 bajty. Pierwszy wpis definiuje partycję systemową. Partycje są definiowane w pełnych ścieżkach - od cylinder/strona do cylinder/strona. LBA nie jest obsługiwane - zawsze jest używana domyślna geometria.

Dla partycji typu obraz dyskietki (typ #30..#3F), określona jest jej wirtualna geometria. Obszar zarezerwowany dla obrazu może być zaokrąglony w górę do całych ścieżek, albo ostatnia ścieżka może być dzielona z kolejnym obrazem. Jeśli partycje nakładają się na tej samej ścieżce, druga z nich musi mieć zdefiniowane przesunięcie w sektorach. Na przykład dla dysku 980/5/17, partycja 800kB zajmuje 1600 sektorów = 18 cylindrów + 4 ścieżki + 2 sektory, więc przesunięcie dla kolejnej partycji będzie 2, w przeciwnym razie ostatnie 15 sektorów będzie bezużyteczne.

Opis partycji - 64 bajty
AdresDługośćOpis
+016Nazwa partycji (wielkie litery, uzupełniona spacjami).
+1616Definicja partycji.

+161Typ partycji (0=wolna pozycja)
+172Cylinder początkowy.
+191Głowica początkowa.
+202Cylinder końcowy.
+221Głowica końcowa.
+234Numer ostatniego sektora logicznego.
+275Informacja zależna od typu.

+271Przesunięcie początku partycji względem sektora 1 (0, jeśli nie ma).
+281Wirtualny rozmiar sektora (0-128B, 1-256B, 2-512B, 3-1kB).
+291Wirtualny numer pierwszego sektora (0..240).
+301Wirtualne strony (1, 2, więcej?).
+311Wirtualne sektory (zwykle 5, 8, 9, 16, 18).
+3232Informacja zależna od typu. Na przykład XDPB, format filmu.

Typy partycji
Numer
typu
partycji
Opis
#00Partycja nieużywana/wolna pozycja.
#01Partycja systemowa. Pierwsza partycja na dysku, zaczynająca się od fizycznego sektora 1 (cylinder 0, głowica 0 albo 1), jest zawsze partycją systemową i zawiera listę partycji w postaci bloków po 64 bajty, które definiują wszystkie partycje dysku (włączając systemową). Dozwolona jest tylko jedna partycja tego typu na dysku, jest to zawsze pierwsza partycja. Jej nazwa jest zawsze "PLUSIDEDOS" (z 6 spacjami).
#02Partycja swap (pamięć tymczasowa).
#03Partycja +3DOS. Teoretycznie maksymalna wiekość partycji +3DOS jest nieco mniejsza niż 32MB. Tabela XDPB zawiera logiczną geometrię.
#04Partycja CP/M z tabelą XDPB odpowiadającą fizycznej strukturze dysku. Jeśli dysk ma 17 sektorów na ścieżkę, to parametr LSPT jest 68. Partycja używa zawsze całkowitej liczby cylindrów i zajmuje całe cylindry (od głowicy 0). Jeśli nie (od głowicy 0), musi się to przekładać na ilość zarezerwowanych ścieżek (parametr OFF w XDPB). Jest to wymagane dla sterowników niskiego poziomu - DSKHNDLR.
#05Partycja startowa (boot). Jest to tylko jeden plik, zapisany jako partycja. Używany do wystartowania sprzętu. Np. Timex FDD 3000, rozbudowane o YABUS.TF, będzie szukało w tabeli partycji IDEDOS partycji o nazwie "YABUS.TF". Jeśli znajdzie, zawartość partycji zostanie skopiowana do RAM i wykonana. Rozmiar partycji to zwykle 8k do 64kB, co się przekłada na 1..2 ścieżki (lub 1..8 ścieżek dla dysków z 17 sektorami). Ilość sektorów do wczytania jest w definicji partycji.
#0FPartycja z filmem. Sekwencja zrzutów ekranu z opcjonalną ścieżką dźwiękową.
#10Partycja MS-DOS (FAT16).
#20Partycja UZI(X).
#3xObraz dyskietki nie-CP/M, ZX Spectrum.
#30Obraz dyskietki TR-DOS. Zwykle o geometrii 80/2/16, 640kB.
#31Obraz dyskietki +D/SAMDOS (rekord B-DOS)*. Geometria 80/2/10, 800kB.
#32Obraz dyskietki MB-02. Zwykle geometria 82/2/11, 1804kB.
#33Obraz dyskietki TOS A.2. Zwykle geometria 40/1/16, 160kB lub 80/2/16, 640kB.
#4xObrazy dyskietek CP/M. Typ partycji określa komputer używający formatu CP/M do innych celów niż CP/M.
#40ZX Spectrum +3.
#41Elwro 800 Junior.
#48Amstrad CPC.
#49Amstrad PCW.
#FEObszar błędnych sektorów.
#FFWolny obszar dysku.
*Uwaga! Obraz dyskietki SAMDOS może mieć zamienione bajty L/H z uwagi na zgodność z interfejsem Atom.

Wyszukiwanie struktur IDEDOS:

  1. Wczytaj sektor 1 na cylindrze 0 i głowicy 0.
  2. Jeśli rozmiar sektora to 512B (pełne IDE), przejdź do 5.
  3. (Uproszczone IDE - rozmiar sektora to 256B.) Jeśli sygnatura PLUSIDEDOS znaleziona, przejdź do 10.
  4. Nie instaluj dysku.
  5. Jeśli znaleziona sygnatura PLUSIDEDOS, przejdź do 10.
  6. Jeśli znaleziona sygnatura P?L?U?S?I?D?E?D?O?S, przełącz na dostęp 8-bit i przejdź do 10.
  7. Odczytaj sektor 1 na cylindrze 0 i stronie head 1.
  8. Jeśli znaleziona sygnatura PLUSIDEDOS, przejdź do 10.
  9. Nie instaluj dysku. (Lub próbuj analizować partycje MS-DOS.)
  10. Przeanalizuj tabelę partycji IDEDOS.

MBR - tabela partycji MS-DOS

Zalecane jest umieszczenie partycji IDEDOS jako pierwszej na dysku. Jeśli chcesz jednocześnie mieć partycję FAT (FAT-16), umieść ją jako drugą w kolejności. Aby zabezpieczyć przed uszkodzeniem, zdefiniuj partycję IDEDOS jako CP/M (typ #DB w tabeli partycji MS-DOS).

Przykładowe dane partycji

Dysk to Seagate ST351A/X, a jego struktura to 980/5/17 (a nie jak jest podawane w opisach - 820/6/17).

Pierwsza ścieżka jest zarezerwowana na MBR oraz tabelę partycji MS-DOS w sektorze 0/0/1. W przykładzie partycje MS-DOS (oraz inne) mogą rozpoczynać się od cylindra 198, ponieważ struktury IDEDOS kończą się na cylindrze 197 włącznie. Struktura IDEDOS może również objąć cały dysk i zawierać partycję MS-DOS wewnątrz.

Struktura IDEDOS rozpoczyna się w sektorze 0/1/1, tak więc 1 * 17 * 512 = 8704 = #2200 bajty dysku są pominięte.

02200  50 4C 55 53  49 44 45 44  4F 53 20 20  20 20 20 20   PLUSIDEDOS
02210  01 00 00 01  00 00 01 10  00 00 00 00  00 00 00 00   ................ 
02220  C6 00 05 11  55 00 87 00  02 00 00 00  00 00 00 00   O...U........... 
02230  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00   ................ 
Partycja systemowa IDEDOS (typ #01 - obszar opisujący inne partycje). Rozpoczyna się od ścieżki w cylindrze 0, strona 1, i w tej samej ścieżce kończy. Partycja ma wielkość 17 sektorów (#00000010). Od #02220 zdefiniowane są parametry dysku: 198 cylinderów (#00C6, dwa bajty), 5 stron (jeden bajt), 17 sektorów na ścieżkę (#11, jeden bajt), ilość sektorów na cylinder jest wyliczona na 85 (#0055, dwa bajty). Maksymalnie może zostać założonych 136 partycji (#0087 jest ostatnim numerem = 1 * 17 * 512 / 64 - 1, dwa bajty). Obszar od cylindra 198 i dalej jest zarezerwowany dla innych systemów (np. MS-DOS) i nie jest dostępny dla partycji IDEDOS.
02240  5A 58 56 47  53 20 20 20  20 20 20 20  20 20 20 20   ZXVGS
02250  04 02 00 00  C5 00 04 13  41 00 00 00  00 00 00 00   ....L...A....... 
02260  44 00 04 0F  00 44 10 FF  03 FF FF 00  00 00 00 02   D....D.˙.˙˙..... 
02270  03 04 C4 11  01 00 02 00  00 A1 FF 00  00 00 00 00   ..A.......˙..... 
Główna partycja CP/M (typ #04). Rozpoczyna się od ścieżki w cylindrze 2, strona 0 i kończy na ścieżce w cylindrze 197 (#00C5), strona 4 włącznie. Partycja ma 16660 sektorów (#00004113). Od #02260 jest tabela XDPB (#A1 w #02279 jest kodem urządzenia fizycznego dla tej partycji w CP/M).
02280  50 4C 33 4D  45 4D 2E 53  59 53 20 20  20 20 20 20   PL3MEM.SYS
02290  05 01 00 03  01 00 04 1F  00 00 00 00  00 00 00 00   ................
022A0  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00   ................
022B0  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00   ................
Plik startowy (typ #05) przeznaczonego dla interfejsu PL3MEM. Rozpoczyna się od ścieżki w cylindrze 1, strona 3, a kończy w cylindrze 1, strona 4 włącznie. Rozmiar pliku to 32 sektory (#0000001F) - ostatnie 2 nie są używane.
022C0  46 52 45 45  20 20 20 20  20 20 20 20  20 20 20 20   FREE
022D0  FF 00 00 02  01 00 02 65  00 00 00 00  00 00 00 00   .......e........ 
022E0  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00   ................ 
022F0  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00   ................ 
Nieco wolnego miejsca (typ #FF). Rozpoczyna się od ścieżki w cylindrze 0, strona 2 i kończy na ścieżce w cylindrze 1, strona 2 włącznie. Ma 102 sektory (#00000065). Miejsce może być zużyte na kolejne pliki startowe.

Powiedz innym:

Linki do innych stron



E-mail:

Hasło:



Przypomnieć hasło?

Rejestracja?
CP/M
CPM22QED
CPC
FutureOS
ParaDOS
SymbOS
CPM22QED
MB02
SAM Coupé
Spectravideo
Timex 2068
Timex FDD
YABUS.TF(3)
Filesystem
IDEDOS
Memdisk
MGT
BDOS
Master DOS
Timex
TOS A.2
TOS A.4
ZX Spectrum
Doors
ResiDOS
ZXVGS
ZXVGS
FlashD0
MB02
PL3MEM
Pentagon
TI-of-TTL
Unipolbrit
Warajevo
ZXATASP

Jeśli widzisz błąd na tej stronie, opisz tutaj:

© 2009-12-28 21:50 Jarek Adamski, http://8bit.yarek.pl