Twardziel Amiga plus PC

Jak wiadomo, rynek zapchany jest klonami. Pecetów peîno jest wszëdzie, nie jest wiëê dziwne, ûe majâ je takûe nasi znajomi. Przydaîby sië jakiô wygodny ôrodek wymiany danych miëdzy nami a nimi. Jak sië okazuje, moûe nim byê ten sam twardy dysk, jakiego uûywamy na codzieï przy Amisi...

Poniûszy artykuî opisuje, jak stworzyê twardy dysk widoczny zarówno przez Amigë, jak i peceta (z tym, ûe pecet widzi tylko wîasnâ partycjë, natomiast Amiga i wîasne, i peceta). Moûesz bootowaê oba komputery z jednego dysku twardego! (chociaû ciâgle z innych partycji :) Nie jest on dokîadnym opisem ,,krok po kroku'', ale wskazówkami dla przeciëtnie inteligentnego amigowca umiejâcego posîugiwaê sië HDToolBoxem, FDiskiem i wiedzâcego, co sië stanie, gdy sië pomyli... A wîaônie: nie biorë ÛADNEJ odpowiedzialnoôci za szkody wynikîe z zastosowania sië do wskazówek z tego artykuîu (czy to z powodu bîëdu Twojego, czy mojego).

Nie jestem 'guru', jeôli chodzi o twarde dyski, systemy zapisu, RDB etc. itd... Zastanów sië, co robisz i zbytnio mi nie ufaj...

Ta 'sztuczka' w rzeczy samej nie jest sztuczkâ. Wykorzystuje po prostu fakt, ûe dane Amigi dotyczâce rozkîadu partycji na twardym dysku, istniejâcych systemów zapisu etc. (RigidDiskBlocks) nie muszâ zaczynaê na bloku 0, ale na jednym z 16 pierwszych bloków.. Dziëki temu zostaje tam trochë miejsca na dane peceta.

Potrzebne bëdâ nastëpujâce programy: RDPrep v3.91 (by Microbotics) oraz Mountdos v1.0 (by K.P. van Beem), obydwa dostëpne na Aminecie w katalogu disk/misc, odpowiednio jako rdp391.lha oraz MountDos100.lha. Przydatny bëdzie takûe ReadRDB v0.5 (by Gerard Cornu) z tego samego katalogu na Aminecie (ReadRDB.lha). No i jeôli nie masz drugiego dysku twardego, wszystko to (plus HDToolBox) naleûy umieôciê na jakiejô bootowalnej dyskietce :)

Zaczynamy w punkcie posiadania ,,czystego'' twardego dysku. Aby taki uzyskaê, musiaîem przerzuciê wszystkie dane do kumpla (za co mu w tej chwili dziëkujë - dziëki Krzysiek :), ewentualnie moûna skorzystaê z usîug jakiegoô programu robiâcego backup twardego dysku.

Pierwszâ rzeczâ, którâ naleûy zrobiê, jest stworzenie pecetowskiej partycji. Czyli idziemy do kumpla z pecetem, podîâczamy naszego twardziela, i uruchamiamy program FDisk (wchodzâcy w skîad MS-DOS). Mój twardy dysk to Caviar 850 MB, na partycje pc postanowiîem przeznaczyê 40 MB pod sam koniec twardego dysku. Naleûaîo wiëc najpierw stworzyê duûâ partycjë (tutaj daîem Extended Partition) tak, aby pozostaîo dokîadnie 40 MB, nastëpnie stworzyê të wîaôciwâ (tu daîem Primary DOS Partition), aby w koïcu usunâê të duûâ partycjë (dziëki czemu dla peceta nic tam nie ma, i nic nam tam nie wpisze). Zostaîa mi wiëc Primary DOS Partition.

Jeûeli bëdziesz chciaî bootowaê peceta z tej partycji, powinieneô równieû uczyniê të partycjë aktywnâ. Poniewaû aktywne mogâ byê tylko partycje na dysku pierwszem peceta (master), konieczne moûe okazaê sië stworzenie dyskietki bootujâcej i nagranie na niâ FDiska, wypiëcie twardziela kumpla (albo skonfigurowanie go jako slave), zabootowanie z dyskietki, uruchomienie FDiska i ustawienie Set active partition.

Potem pozostaje wyjôê z FDiska i sformatowaê partycjë spod DOSu (ewentualnie ,,z systemem'', tzn. abyômy mogli z niej bootowaê peceta). Teraz moûemy wróciê do domciu i podîâczyê twardziela do Amisi.

W tak zwanym miëdzyczasie moûna dla pewnoôci zabezpieczaê sobie to, co mamy na poczâtku twardziela (na wypadek, gdybyômy np. zapisali RDB bez offsetu), wykonujâc:

ReadRDB device=scsi.device unit=0 file=PCDisk FORCE

Juû po zakoïczeniu wszystkich operacji proponujë takûe zrobiê sobie 'backup' RDB (np. file=Union) i trzymaê na bootowalnej dyskietce razem z wyûej wymienionymi programami. Mnie kiedyô tego brakîo...

Niestety, ReadRDB przyjmuje, ûe RigidDiskBlocks zaczynajâ sië od zerowego bloku i wyôwietla 'nieco' nieadekwatne dane, podobnie jak prawdopodobnie zabezpiecza niekompletne RDB (nie do koïca). Postaram sië wymóc na autorze jak najszybsze poprawienie programu (moûe juû w 0.6? :)

Teraz pora przystâpiê do tworzenia partycji amigowskich. Do nagrania RigidDiskBlocks z offsetem potrzebny jest RDPrep, ale samo partycjonowanie wolë wykonywaê HDToolBoxem (troszkë niûej jest napisane, dlaczego). Naleûy wiëc najpierw uruchomiê RDPrepa - uwaga: w ikonie RDPrepa naleûy jako ToolType podaê nazwë urzâdzenia obsîugujâcego nasz twardy dysk, np.

DEVICE=scsi.device

a jeôli uruchamiamy program z Shella, naleûy podaê to jako parametr:

Run RDPrep -d scsi.device

Jeszcze jedna uwaga: RDPrep (graficzny front-end) potrzebuje programiku RDPrepX (którego takûe moûna uûywaê osobno) - oczywiôcie znajduje sië on w archiwum.

Nastëpnie w RDPrepie naleûy zapisaê RDB poprzez wybranie Write RDB i potwierdzenie zapisu. Za nagrywanie z offsetem odpowiedzialna jest opcja RDBLow (moûna jâ zobaczyê po przyciôniëciu Go To Complex Mode). Jest to blok, na którym ma zaczynaê sië RDB. Domyôlnâ wartoôciâ jest 3 - wiëc po wybraniu Write RDB po prostu zapiszemy domyôlne RDB (jedna duûa partycja) z domyôlnym offsetem. Offset 3 bloków daje nam 1.5 kB na 'obce' dane. Dla MS-DOSu wystarczyîoby nawet (w wiëkszoôci przypadków - do czterech partycji, bez uûywania Extended Partitions) 512 bajtów, ale w dokumentacji wspomniana zostaîa moûliwoôê wykorzystania tego dla danych Maca (moûe wiëc Mac potrzebuje ,,aû'' 1.5 kB :).

Powyûsza operacja spowodowana jest tym, ûe HDToolBox nie ma moûliwoôci nagrania RDB z wybranym przez nas offsetem i jeûeli RDB nie istniejâ, to nagrywa je zaczynajâc od bloku zerowego. Jeûeli jednakûe modyfikujemy istniejâce RDB (w tym wypadku wskazujâce na jednâ partycjë obejmujâcâ caîy dysk), zapisuje je tam, gdzie juû sâ.

I tutaj o tym, dlaczego partycjonowaê wolë jednak HDToolBoxem. Po prostu jest on programem nowszym od RDPrepa (1994 vs 1992). Dla mojego dysku wartoôci przyjëte przez RDPrepa nieco sië róûniâ od rzeczywistych, poprawnie odczytanych przez HDToolBoxa (opcja Read Configuration). RDPrep odczytaî dwa razy mniejszâ wartoôê BlocksPerCylinder (CylinderBlocks) a co za tym idzie dwa razy wiëcej cylindrów, za to dwa razy mniejszych. Nie przeszkadzaîoby to poprawnej pracy twardego dysku, ale jest niezgodne z rzeczywistoôciâ, mogîoby powodowaê nieporozumienia (patrz niûej), poza tym zmniejsza dwukrotnie przestrzeï przeznaczonâ dla RDB - RigidDiskBlocks sâ standardowo zapisywane na zerowym cylindrze. W kaûdym razie w/g dokumentacji RDPrepa. Poniewaû jednak HDToolBox ustawia MinCyl (pierwszy cylinder dostëpny dla partycji) równe 2 (a nie 1), RDPrep przyjmuje za maksymalny blok dostëpny dla RDB ostatni blok pierwszego cylindra (a na moim twardzielu daje to ponad megabajt dla RDB :). Ciâgle jednak podwojenie liczby cylindrów zmniejsza obszar przeznaczony na RDB...

Po wyjôciu z RDPrepa (nie resetuje komputera) i uruchamiamy HDToolBoxa (najlepiej z WB lub przez Run) i wybieramy Change Drive Type, potem Read Configuration, potwierdzamy (co spowoduje 'zgubienie' poprzedniego rozkîadu partycji, ale w naszym wypadku nie jest to istotne) i przechodzimy do Partition Drive. Ustawiamy sobie, co chcemy i jak chcemy, pamiëtajâc jedynie o ,,trafieniu'' jednâ z partycji w partycjë pecetowskâ. Pomóc nam w tym moûe MountDos (dlatego to Run):

MountDos device=scsi.device unit=0 LIST

Z danych tych naleûy odczytaê poczâtek i koniec partycji (przeliczajâc odpowiednio podany Start Sector i Number of Sectors, to drugie nie jest konieczne w przypadku partycji na koïcu dysku :) a nastëpnie wprowadziê te wartoôci do HDToolBoxa. Oto wzór:

Cylinder = Sector/Heads/BlocksPerTrack

Tutaj uwaga - podany zostanie rzeczywisty cylinder na twardym dysku (hmm, o ile BIOS dobrze odczytaî parametry Twojego twardziela :) i przy opisanej wyûej niezgodnoôci RDPrepa z realiami mojego twardego dysku, wpisanie tego cylindra przy partycjonowaniu RDPrepem nie byîoby zgodne z rzeczywistym poczâtkiem partycji. W tym wypadku zaowocowaîoby to zmniejszeniem pozostaîego wolnego miejsca, ale gdyby partycja PC znajdowaîa sië na poczâtku dysku (i obliczaîbyô jej koniec), jedna z partycji amigowskich nachodziîaby na rzeczywistâ partycjë PC (to znaczy zapisujâc coô np. na DH0 niszczyîbyô dane pecetowskie).

Po wpisaniu odpowiednich wartoôci naleûy wyîâczyê CheckMark przy Automount this partition (w tym momencie ta partycja tylko rezerwuje miejsce i nie ma znaczenia podany FileSystem, toteû moûna nie kîopotaê sië pozostawionym tam FastFileSystemem).

Zamiast opcji LIST moûemy podaê Mountdosowi GENERATE i skierowaê wyjôcie do pliku - w ten sposób uzyskamy MountListë, przydatnâ jeûeli bëdziemy chcieli zamontowaê partycje PC bez Mountdosa.

No i dajemy Save Changes To Drive, Exit...

W tym momencie (pod warunkiem poprawnoôci powyûszych operacji) posiadamy dysk, który moûemy podîâczyê zarówno do peceta, jak i do Amigi. Oba komputery beda rozpoznawaê wîasne partycje, z tâ przewagâ, ûe dziëki MountDosowi nie bëdziemy mieli problemu z przeczytaniem partycji pecetowskiej pod AmigaOS.

Jeûeli chcesz, moûesz dodaê CrossDOSFileSystem do listy systemów zapisu (HDToolBoxem), zmieniê dla tej partycji File System na MSD\00 i zaznaczyê Automount this partition - partycja bëdzie mountowana przy inicjalizacji. Sprawdziîem, dziaîa - nie trzeba uûywaê MountDosa lub mountlisty. Moûna powiedzieê, ûe partycja jest traktowana 'jak wîasna' (z wyjâtkiem, hmm, sierocych ograniczeï MS-DOS typu 8.3 :))

No i moûesz bootowaê oba komputery z tego samego twardego dysku. Ba, moûesz nawet bootowaê Amigë z partycji pecetowskiej (w wypadku, gdy CrossDOSFileSystem znajduje sië w obszarze RDB i partycjë oznaczysz jako Bootable), ale nie ma to wielkiego sensu, bo spróbuj tam stworzyê plik 'Startup-Sequence' :))) Pozostaje Boot With No Startup, chociaû tak dla satysfakcji - oczywiôcie ja musiaîem to zrobiê, choêby ten jeden raz...

Stworzenie wiëcej niû jednej partycji pecetowskiej nie powinno byê problemem, aczkolwiek ja nie próbowaîem. Pozostawione bloki powinny wystarczyê na dwie partycje Extended. Wedîug Patricka van Beema (autora MountDosa) moûna stworzyê wiëcej niû jedna partycjë Primary (,,normally you would use the first 3 slots for the 3 primairy partitions, and use the 4th slot to point to the extended partition'') a wiëc tworzenie Extended Partitions mijaîoby sië (w wiëkszoôci przypadków) z celem, ale ja nie wiem, jak to uzyskaê (w kaûdym razie FDiskiem - ,,Primary DOS Partition already exists'' :). Ale zawsze moûesz 'przesunâê' RDB o wiëkszâ niû 3 liczbë bloków (ostatnio zauwaûyîem, ûe pececiarze wracajâ do wykorzystania moûliwoôci posiadania wiëcej niû jednej partycji.. Na poczâtku byîo to spowodowane ograniczeniami MS-DOSa a teraz? Zmâdrzeli? Nieee...)

Przed pójôciem do kumpla z pecetem warto sprawdziê, czy dane peceta wciâû tam sâ:

MountDos device=scsi.device unit=0 LIST

Zdarzyîo mi sië raz (po jakichô operacjach HDToolBoxem), ûe RDB 'wróciîy' na blok zerowy. Wtedy wykorzystujemy 'backup':

ReadRDB device=scsi.device unit=0 file=Union FORCE WRITE

Jeôli nie chcemy straciê tego, co w miëdzyczasie ustawiliômy, moûemy uruchomiê najpierw RDPrepa. daê ReadRDB, nastëpnie w tle wykonaê powyûszâ komendë a potem ustawiê RDBLow na 3 i daê Write RDB. Bëdzie to przy okazji nieco bezpieczniejsze (biorâc pod uwagë to, ûe ReadRDB nie nagrywa caîych RDB - skorzystamy tylko z zapisanych ustawieï peceta).

A jako Disk.info partycji pecetowskiej polecam ikonkë X-Trasha z Aminetu (util/wb). Prezentuje sië nieúle, przy okazji trafiajâc w sedno sprawy :))))))

Tadek Knapik (TxF on #AmigaPL)
tadek@student.uci.agh.edu.pl

Sprawdzone na:

Ja, wyûej podpisany, osiâgnâîem powyûsze wyniki dnia 30.01.1997 roku, aczkolwiek w trochë inny (bardziej skomplikowany) sposób. Dnia 1.02.1997 skasowaîem istniejâce na twardzielu Amigowskie RDB, nagraîem same dane PC a nastëpnie przeprowadziîem wszystko tak, jak jest opisane w tym artykule, bootujâc system z dyskietki z wyûej wymienionymi programami (nie tracâc danych z twardziela dziëki wczeôniejszemu zapisaniu rozkîadu partycji). Everything went OK. Nastëpnie dnia 02.02.1997 poszedîem do kumpla, podîâczyîem mojego twardziela zamiast jego, zabootowaîem peceta z dyskietki i ustawiîem partycjë pecetowskâ jako aktywnâ. Pecet zabootowaî sië z mojej partycji 40 MB. Wróciîem do domu, Amiga bootowaîa sië jak zwykle (bo i czemu by nie :). Pomimo stwierdzenia pewnej osoby na kanale (#AmigaPL), ûe sië ,,nie da''.

Jeôli masz jakieô uwagi, dotyczâce mojego nieprofesjonalizmu (niezaprzeczalnego :), niemoûnoôci uzyskania powyûszych wyników (zaprzeczalnej :), lub po prostu jakieô komentarze, uzupeînienia etc., przeôlij je na mój adres internetowy (waûny do koïca sesji, potem nie wiadomo :).

Jeszcze raz zaznaczam, ûe informacje tu podane wykorzystujesz na wîasne ryzyko. Czym sië róûni cylinder od bloku dowiedziaîem sië dopiero z instrukcji RDPrepa, jak wiëc widzisz nie jest starym wyjadaczem sposobów zapisu danych :)) Po prostu bardzo chciaîem bezproblemowo (no cóû, ciâgle jeszcze trzeba nosiê ten dysk, ale..) wymieniaê dane pomiëdzy Amiga a PC, udaîo mi sië dowiedzieê, jak to zrobiê i chciaîbym, aby inni teû mogli z tego skorzystaê. A na Plukwie widziaîem, ûe byî to problem nie tylko dla mnie, ale i dla wielu ludzi na liôcie dyskusyjnej (a na listë zapisze sië po sesji :))) Przepraszam, ale zapomniaîem, jak sië nazywa pecetowska odmiana RDB (na liôcie byîo..). I przepraszam, jeôli artykuî jest nieco chaotyczny, ale to z radoôci (nareszcie sië udaîo :))

I jeszcze jedna bardzo waûna rada: Zapiszcie sobie cylindry waszych partycji na jakimô niecyfrowym medium :))

;------ Zaîâcznik pierwszy ------------------------------------------

11.Work:> mountdos unit=0 list
   Start:         End:             Start  Number of
 boot Head Cyl. Sect Head Cyl. Sect   Sector Sectors     MB System
1 no     0    0    0    0    0    0        0         0    0 Empty
2 yes    0  785    1   31  825   63  1582560     82656   40 DOS 16-bit >=32M
3 no     0    0    0    0    0    0        0         0    0 Empty
4 no     0    0    0    0    0    0        0         0    0 Empty

;------ Koniec zaîâcznika pierwszego i ostatniego -------------------


;- Zaîâcznikiem drugim mógîby byê wydruk RDBInformera, ale to 13 kB :))
Chciaîbym podziëkowaê nastëpujâcym osobom:

- Gerardowi Cornu, autorowi programu ReadRDB - za program (którym wczeôniej podmieniaîem cyklicznie pierwsze bloki twardziela, aby przenosiê dane) i za poinformowaniu mnie o istnieniu RDPrepa.

- K.P. van Beemowi, autorowi MountDosa - takûe za program i za informacjë o iloôci danych zapisywanych przez MS-DOS na poczâtku twardziela zaleûnie od iloôci i rodzaju partycji.

- Autorom ôwietnego RDPrepa (Joanne Dow, Bob Burns), który ma tyle moûliwoôci grzebania w RDB, ûe sië chyba jeszcze nim pobawië :))

- UncleMatowi za mobilizacjë :))

- oraz Kamilowi Iskrze, bo dziëki jego stwierdzeniu ,,coô mi sië o oczy obiîo'' uwierzyîem, ûe jest to moûliwe :)

Teraz pozostaje czekaê na emulator, który îaskawie obsîuûy nam pecetowskâ partycjë na naszym twardzielu (a w zasadzie pecetowskiego twardziela, bo jako taki nasz moûe byê formalnie traktowany).


If you like mottos, here's mine:

,,Be yourself, no matter what they say'' - Sting