ReAmiga 4091 project

Zájem o využití SCSI řadičů na amigách oživil příchod redukcí od Acardu, SCSI2SD či ZuluSCSI. Rychlé SCSI na Amize existuje na turbo kartách, pomalejší pro Zorro II sloty a pro Zorro III? V podstatě dvě karty, FastlaneZ3, která navíc umí i rozšířit paměť, a pak - Commodore A4091. A když se dva firmwaroví inženýři setkají v garáži v Silicon Valley a začnou společně vytvářet hardware, vznikne z toho co? ReA4091!

Číst dále...

Amiblaster Deluxe

Amiblaster Deluxe je 16-bitová zvuková karta určená pro Zorro sloty. Je to evoluční následovník zvukové karty Prelude od A.C.T (Albrecht Computer Technik), přesněji repliky Prelude (první repliky). Právě replika Prelude a její možná omezení vedla Alexandera Engelhardta (Alf24de) k vytvoření Amiblasteru. Na práci na kartě se dále podíleli Matthias Hampel (Mattymuc) a Thomas Wenzel (TomSoniq).

Číst dále...

Access (Refit)

Access je dílem firmy Index Information Ltd., konkrétně Steva Rencontra a Micka Tinkera. V době svého vzniku (1997) se jednalo o unikátní zařízení. Tato unikátnost vycházela nejen z jeho stavby, ale také z použité technologie FPGA. Celé zařízení je totiž základní deska, kterou lze díky svým rozměrům umístit do standardní 5,25" pozice libovolné skříně/toweru, přesněji řečeno - pokud se tam vleze.

Číst dále...

Memory Management Unit (MMU) a jeho obsluha

Napsal Prober on .

Tento rozsáhlý článek bude zasvěcen jednotce správy paměti. Lidé kteří o této tematice vědí více určitě vědí, co je MMU, ale existuje také hodně osob, které se dodnes zamýšlí, co jsou ty tři magické písmenka zač?

Úvod

MMU je zkratka slov Memory Management Unit, což lze volně přeložit jako "jednotka správy paměti". Procesory obsahující tuto speciální jednotku, jsou často nazývány plnohodnotnými procesory. MMU je velmi užitečná věc a zároveň vydatná část našeho procesoru, která může být chápána jako překladač mezi procesorem, který provádí veškeré výpočty a veškerým ostatním hardwarem, jako je např. paměť, nebo všechny možné zařízení a vstupně výstupní obvody. Každý přístup do procesoru, odehrávající se uvnitř, musí projít přes "síto" MMU. MMU mezitím ověřuje, jestli oblast paměti, do které se snaží zařízení přistoupit je volná, zabezpečená před zápisem, zda může být uchovávána pomocí vnitřní vyrovnávací paměti procesoru a jiné. MMU může obdržet příkaz "přeložení" adres viděných procesorem, na jiné adresy viděné jiným zařízením, stejně tak může být přinucené k "přemapování" fragmentů paměti bez poškození její aktuální struktury (což je někdy velmi užitečné).

Každý bajt, čili buňka paměti, vlastní svou adresu. Tato adresa je něco jako jeho název, charakteristický jen pro něj, známý a čitelný jen systémem. Samotná adresa není nic jiného než obyčejné číslo, něco jako číslo domu na jedné velmi dlouhé ulici. Rozlišujeme dva druhy adres: adresy fyzické a logické. Fyzické adresy jsou ty, které jsou dostupné přes celou hromadu křemíku, který se schovává v našem počítači. Dělí se na dvě části. Jednou z nich je adresová sběrnice, která předává adresy z mikroprocesoru, který jak je známo provádí všechny výpočty, do okolních systémů odpovědných za grafiku, zvuk, mechaniky atd. Druhým je datová sběrnice, která přenáší aktuální obsah buněk paměti, které mají být přečteny nebo zapsány. Jak je vidět, datová a adresová sběrnice se vzájemně doplňují: datová sběrnice říká co se má přenést a adresová sběrnice, kde a odkud.

Nicméně, fyzické adresy nejsou viditelné pomocí programů v našem počítači. Spuštění programu, interpretace jeho kódu jsou prováděny pomocí mikroprocesoru. Programy samozřejmě rovněž používají adresy, ale trošičku jinými, nazývanými logickými adresami. Tyto adresy musí projít právě přes MMU, než se dostanou ven.

Jaká je tedy funkce MMU? MMU odebírá logické adresy, požadované programem, a překládá je na adresy fyzické. Tímto způsobem pro celý "vnější svět" jsou dostupné jen fyzické adresy. Takže vstupně - výstupní systémy nemusí ztrácet čas změnou logických adres na fyzické, nebo se odvolávat na jiné programy, které by to udělaly za ně.

MMU je většinou integrováno v tom stejném obvodu jako hlavní procesorová jednotka, kromě procesoru 68020, který obsahuje samostatný, vnější čip - 68851. Od samého počátku existence Amigy, MMU neexistovalo. Situace se změnila v době nástupu procesoru 68020, ale aby zůstal kompatibilní se staršími systémy, MMU bylo odděleno nebo využíváno jen několika málo speciálními programy.

Funkce MMU

Mnoho programů využívá vlastností jaké sebou nese MMU. Nejvíce je však zapotřebí pro samotný operační systém.

  1. Za prvé, MMU informuje procesor, aby neukládal ve vyrovnávací CHIP RAM, což milují dělat různé amigácké obvody.
  2. Druhá vážná věc je ta, že pomocí MMU je možné přehození celé ROM do 32-bitové FAST RAM. MMU mezitím překládá, a možná raději přeměňuje adresy ROM (které vidí procesor), na adresy paměti RAM, která bude přechovávat kopii ROM.
  3. Třetí užitečná funkce MMU je používána různými programy "debuggery", například Enforcer. MMU mezitím pomáhá upřesnit, jaké adresy fyzické paměti jsou nedostupné.
  4. Čtvrtá, dost podstatná věc je fakt, že MMU může vytvářet obrazy skoro neomezeného počtu paměti v libovolném místě, a to zároveň v paměti, tak i na pevném disku. Je to tzv. systém virtuální paměti, zajišťovaný pomocí swap souboru nebo dočasných souborů.
  5. Pátou funkcí je široké použití MMU v oboru různého typu emulace jiných systémů, a také v případě využívání různých ovladačů.

Nápad

Bohužel k naší smůle, systém Amigy nevlastní žádný program pro obsluhu MMU! Všechno se děje na úrovni systémových hacků a záplat, které jak je známo zmenšují stabilitu systému a navíc, každý z těchto programů to dělá svým způsobem, což se projevuje zamrzáním programů obsluhujících MMU.

Od čeho jsou ale schopní programátoři. Jeden z nich, Thomas Richter, nalezl způsob jakým zajistit, aby přístup k MMU byl průhledný, jednoduchý, a co je nejdůležitější - kompatibilní. Právě kvůli tomu vytvořil knihovnu "mmu.library", na kterou by se měl odvolávat každý program využívající MMU. Bohužel, starší programy nevyužívají možností této knihovny a aby se to stalo, musí být od začátku přepsány. To by samozřejmě přineslo spoustu problémů. Ale i na toto se našel způsob. Thomas Richter vytvořil sadu nástrojů, které přebírají roli starších programů v momentě, kdy se odvolávají bezprostředně na hardware. Byly nazvány MuTools. Podstata jejich fungování je řízení hardware nezávisle, bez žádných specifických elementů procesoru. MMU se mezitím stará o všechno, čímž je procesor zatížen, hlavně pokud jde o věci přepisování paměti, nebo přístupu k ní. To se následně váže s výrazným zrychlením takovýchto programů.

Problémy

MMU knihovna a nástroje které jí obsluhují, byly napsány opatrným a důmyslným způsobem, aby zajistily maximální kompatibilitu. Ale existují jisté ohraničení a chyby, hlavně spojené s jednotlivými procesory. A tak procesory 68000 a 68010 nezpůsobují žádné problémy s MMU knihovnou a to kvůli tomu, že neobsahují MMU obvody. Knihovna a její programy může být nainstalována na systémech postavených na těchto procesorech, ale nepřinese to žádné výsledky (nanejvýše GURU). V případě procesoru 68020 máme dvě možnosti. Buď je naše Motorola vybavena MMU jednotkou, nebo ne. Pokud ne - tak je situace stejná jako v případě 68000 a 68010, pokud ano, tak obvod 68020/68551 se chová podobně jako 68030 s tím, že jednotka MMU musí použít více času na přístup a přeložení než standardní 68030.

V případě procesoru 68030 máme rovněž jeho dvě varianty: takzvanou opravdovou 68030 a ekonomickou 68EC030. 68EC030 je levnější verze 68030, nevybavená obvodem MMU. Instalace knihovny a souboru rovněž nepřinese žádné pozitivní výsledky. Co se týče opravdové 68030, tak MMU bude nejvíce pozitivně všimnuto, ale nevyhneme se jistých negativ způsobených DMA řadiči (tento efekt se ukazuje i u procesorů 68040 a 68060). Krátce řečeno, DMA je mechanismus, který nahrazuje procesor při všech vstupních a výstupních operacích. Tady se vše začíná trochu kousat, když v podstatě MMU dělá to samé s tím, že rychleji a lépe. Aby bylo možné se aspoň na chvíli od DMA oddělit, je doporučeno nepoužívat programy a příkazy typu "CPU FastRom", "SetCPU FastROM", nebo taky "Enforcer", a místo nich použít náhradní programy z balíku MuTools.

Situace u procesoru 68040 je podobná. Rozlišovány jsou také dva typy procesorů, s tím, že zásadně jak  68040 tak i 68EC040 by měly být vybaveny MMU. Stávají se ale případy procesorů bez tohoto obvodu. Pokud ale máme štěstí a vlastníme tento obvod (bez rozdílu jestli to je 040, nebo EC040) tak zde mmu.library může opět pracovat různě: buď bude využita, nebo bude využita a ještě dostaneme bonus, ve formě opravené knihovny 68040.library (v40), která dělá, že proces fungování MMU není tak náročný na velikost paměti. Způsob zjištění, jak naše 040 využívá MMU je velmi jednoduchý. Pokud systém fungoval bez potíží se starou knihovnou 68040.library (v37.30), nebude mít problémy ani s verzí novou. Pokud ale tak nebylo, a 68040.library (v37.30) nechtěla fungovat, tak 68040.library (v40) začne, ale bude nutné vytvořit (upravit) odpovídající konfigurační soubor. Stejně jako v případě 68030, je doporučováno používání odpovídajících náhradních programů.

Případ posledního procesoru série 68k, čili 68060 vypadá podobně jako 68040. Pro tento procesor rovněž existuje speciální, výkonnější knihovna 68060.library. Ale na to, jestli náš systém rozpozná novou knihovnu neexistuje záruka. Můžeme to zjistit jen metodou pokusů a omylů. Výhody nové knihovny jsou jednak větší.Za prvé je méně náročná na paměť, a využívá ze 100% celou virtuální paměť. Pokud ale nová knihovna nefunguje tak jak má, tak podobně jako u 68040 budeme muset upravit konfigurační skript.

A jak to vypadá u PPC? Rovněž všelijak. Sám procesor PPC nečiní žádné problémy se spoluprací s MMU, ale programy pro tento procesor mohou. Je to z jednoduchého důvodu: existují dva druhy řadičů ovládajících PPC: PowerUp + ppc.library a WarpUp + WarpOs. MMU knihovna funguje jen v prostředí WarpUp. Ale není čeho litovat, neb již existuje speciální dodatek emulující ppc.library pod WarpOsem.

Software

Když už víme, co je to MMU a jestli se nám může k něčemu hodit a zda náš procesor bude spolupracovat s danou knihovnou, nezbývá nám již nic jiného než instalace software, který tuto knihovnu využívá. Software je dostatek a za chvíli se pokusím každý z nich popsat. Než k tomu ale dojdu, nastavme si samotný balík MMU, čili kořen, bez kterého nám náš nový software bude k ničemu.

Konfigurace MMU není v podstatě nic zvláštního. Je to obyčejný ASCII soubor umístěný ve složce ENV: pod názvem MMU-Configuration. V podstatě v něm není třeba nic měnit, ale pokud chceme aby náš systém fungoval lépe a rychleji a aby plně využíval možnosti MMU, tak se lze zabavit jeho nastavením. Tady ale jedno malé upozornění: v tomto souboru měňte cokoliv, jen pokud víte co děláte! Pro všechny případy si udělejte záložní kopii a co je nejdůležitější - moc nekombinujte!

Konfigurační soubor, jak jsem již psal, je čisté ASCII. Vypadá stejně jako všechny ostatní skripty, čili všechno jsou příkazy prováděné knihovnou, kromě znaků, které jsou napsány za středníkem. MMU knihovna obsahuje šest integrovaných příkazů. Celý zbytek v konfiguračním souboru použitých rozkazů a dodatečných příkazů se musí nacházet ve speciální podsložce "mmu" vytvořené v adresáři LIBS:

S ohledem na to, že popis příkazů je dost dobře popsán v dokumentaci, dovolím si ho tady pominout. Je to téma určené pro osoby, které se opravdu tímto tématem zabývají. Teď nejspíš přejdeme k popisu jednotlivých programů obsluhujících a vyžívajících MMU knihovnu.

MuForce

MuForce je náhradní program pro slavný Enforcer. Jeho úkol spočívá ve sledování nedostupných oblastí paměti a informování o tom všechny různé zařízení a obvody. Informování jsme zároveň i my. Obdržíme tehdy speciální hlášení týkající se pokusu přístupu nějaké procedury nebo příkazu do nepřístupné oblasti. V praxi se to používá k tomu, že při spuštěném programu se vyhneme jistých nevysvětlitelných "zamrznutí" systému.

MuForce může být spuštěn stejně z Shellu, tak i přímo z Workbenche (z ikony). Nejlepší výsledky má ale jeho umístění ihned za příkazem SetPatch v souboru Startup-Sequence. Zároveň bychom měli mít vypnuty všechny programy typu Enforcer, nebo CyberGuard. MuForce k správné funkci potřebuje připsání odpovídajících parametrů, které mohou být vepsány z Shellu nebo ve formě tooltypů v ikoně. Parametry slouží hlavně k nastavení druhů hlášení jaké nás program bude informovat při eventuálních "překvapeních". Jsou tam jednak parametry více pokročilé obsahující mnoho funkcí tzv. Alert() a volby přesně označující na jaké druhy "zamrznutí" MuForce má být hlavně zaměřen a co má v takovém případě udělat (dost užitečné při použití jiných "patchů", jejichž proměnné procedury jsou viděny programem MuForce jako nedovolené operace (i když ne vždy)). Program lze v jakékoliv chvíli vypnout tak, že ho znovu spustíme s parametrem OFF.

Pozor! Pokud se bavíte emulací Macintoshe, musí být program MuForce spuštěn s parametrem VALIDZERO, jinak Shapeshifter ani Fusion nemusí správně fungovat.

Mezi důležité parametry patří:

  • QUIET - program si prostě dělá své, o ničem nás neinformuje.
  • TINY - naše hlášení se skládá jen z jednoho řádku, z kterého (je třeba to říct) nelze nic vyčíst.
  • SMALL - hlášení se bude skládat z nejdůležitějších pozic, které mohou uživatele zajímat (čili název programu, který se zhroutil, v jaké oblasti paměti atd.).
  • STACKCHECK - program nás bude informovat o každém pokusu o překročení zásobníku. Pro vyzkoušení této funkce doporučuji zapnout DoomAttack bez předchozího použití zásobníku o velikosti 200000. MuForce nás hezky a elegantně informuje o tomto faktu.
  • DATESTAMP - dost užitečná volba. Do jednorázového hlášení bude připojeno datum a čas, kdy se to stalo. Na obrazovkách můžete vidět MuForce pracující bez této volby.
  • DEADLY - MuForce se stane citlivý prakticky na jakékoliv rušení (jeden program jich může zobrazit i několik najednou).
  • FSPACE - pro osoby, jejichž karty umožňují adresovat oblasti paměti $00F00000.
  • VALIDZERO - o této funkci jsem se již zmiňoval. MuForce ke správnému chodu nevyžaduje použití tohoto parametru (a dokonce není jeho použití doporučeno). Při zapnutém parametru program nekontroluje oblast nulové hodnoty paměti. Právě v této oblasti se jednak nejčastěji stávají zamrzání programů. Tak na co je tato funkce? Byla vytvořena s ohledem na uživatele emulátorů Macintoshe, jelikož MacOS zde přechovává obecné data.
  • LED=x - za pomoci tohoto parametru nastavujeme jak dlouho má trvat zobrazení obrazovky ve chvíli "události". Hodnota x je standardně nastavena na 1. Pokud nechceme, yba se informační okno objevovalo, lze zadat hodnotu 0.
  • FILE=x - tato volba slouží k upřesnění, kde mají být ukládány hlášení. Aby se hlášení objevilo v okně MuForce, stačí v místě x zadat znak * (hvězdička z numerické klávesnice nebo SHIFT+8). Pokud chceme, aby se hlášení objevilo v novém okně, musíme zadat jeho parametry, např. CON:0/0/640/100/HIT/AUTO/WAIT. Hodnotu x můžeme rovněž nahradit cestou k souboru na pevném disku, nebo disketě, ale s ohledem, že se může stát něco nepředvídatelného, není doporučeno jí používat.
  • ON - volba spouštějící program.
  • OFF - volba vypínající program.
  • WINDOW=x - parametr udávající rozměr okna, které se otevře hned po startu programu. Jako x lze vepsat např. CON:0/0/640/100/MuForce/AUTO/CLOSE/WAIT. Tato volba se nachází u každého dále popisovaného programu, s tím, že místo MuForce zadáme název programu.

Detailnější popis parametrů lze najít v dokumentaci programu. Lze tam také najít důkladný popis hlášení jaký nám MuForce předkládá.

MuGuardianAngel

Druhý program využívající MMU. Je to ale svým způsobem rozšíření pro MuForce a měl by být spouštěn ihned po něm. Mezitím co MuForce zjišťuje jen přístup do nedostupných oblastí paměti, MuGuardianAngel zároveň chrání paměť, která je momentálně nevyužita (volná) před nepotřebným zaplňováním nebo vůbec proti jakémukoliv přístupu. V takové situaci nás o tom MuGuardianAngel informuje speciálním hlášením.

MuGuardianAngel se výrazně liší od MuForce tím, že MuForce jen zachycuje jen eventuální zakázané přístupy, zatímco MuGuardianAngel blokuje jejich další eventuální počínání. Je to náhradní program pro až čtyři jiné: Guardian Angel, MungWall, MungList a MemSniff. Takže, pokud používáme jakýkoliv z těchto programů, doporučuje se co nejrychleji vyměnit za dvojici MuForce + MuGuardianAngel. Program obsahuje také mnoho systémových funkcí.

Podobně jako MuForce, MuGuardianAngel může být spuštěný zároveň ze Shellu, tak i z ikony. Obsahuje rovněž mnoho parametrů pomáhajících v jeho používání. Parametry, stejně jako u MuForce, lze zadat z Shellu, tak i je lze přečíst z tooltypů ikony. Všechny dostupné parametry, tak i způsoby hlášení prováděných programem, jsou důkladně popsány v dokumentaci.

Dvojice těchto dvou programů, alespoň pro mě, je velmi užitečná. S jeho pomocí se mi podařilo zjistit proč můj Hippoplayer se divně hroutí ve chvíli spouštění modulu ve formátu MMD0, jelikož předtím byl spuštěn modul ve formátu MMD1. Mimoto jsem se vyhl několika nepříjemným "zamrznutím" při zkoušení spuštění starších dem (a zvláště inter 64kB a 4kB) přímo ze systému. Mimo usilovných snah, se mi nepodařilo zamrznout oba dva programy. Fungují stabilně a nezpůsobují zamrzání s ostatními programy, které používám. Mimo se dalo všimnout, že se systém stal více stabilní. Ale to za cenu snížení rychlosti, která spadla o cca. 5-10%, a po eventuálním zamrznutí dokonce o 30% (zvláště poznatelné při obnovování obrazovky a načítání ikon, ale značná část tohoto chování zaviňuje MuGuardianAngel, který stále monitoruje paměť). Ale nezpozoroval jsem během několikahodinového testu žádné Debug Window informující mě, že nějaká aplikace způsobila zamrznutí systému. Místo toho jsem obdržel zprávu v okně MuForce, a systém pracoval dál bez problémů. Navíc stav paměti nevykazoval větší změny. V mém případě je to velká úleva, když asi nemusím říkat, jak velmi je denervující uvidění inter a po skoro každém návratu do systému zobrazení rámečku s "Suspend" a "Reboot" nebo stisknutí nevyhnutelného LAmiga+RAmiga+Ctrl, když ukazatel myši zůstal bezchybně stát nebo kdy je nemožné spustit cokoliv, protože naposled spuštěný program nevrátila použitou paměť...

Takže na závěr: MuForce + MuGuardianAngel jsou programy, v kterých jsem doposud nenašel chyby. Velmi doporučuji, zvláště v situacích, kdy spouštíte nestabilní (pro systém) program nebo se bavíte prohlížením scénové produkce na slabším procesoru.

Pozor! Vypnutím programů, nejdříve vypněte MuGuardianAngel, a teprve potom MuForce. V opačném případě uvidíte GURU...

MuSetCacheMode

Je to malinkatý prográmek sloužící k nastavení jak by měl procesor využívat své vnitřní zásobníky, aby vše bylo kompatibilní s MMU knihovnou. Obyčejně není zapotřebí upravovat jakékoliv nastavení, jak programu tak i MMU knihovny, aby program fungoval. Ale jistý typ hardware, nebo software může takovou modifikaci vyžadovat. Program nahrazuje funkce příkazu SetCacheMode, která má podobnou funkci, ale není plně kompatibilní s MMU knihovnou.

Zde bychom si měli připomenout co to je "cache" a proč je taková důležitá. Všechny procesory série 68k, od 68020 výše obsahují jeden nebo dva vnitřní datové zásobníky, nazývané "cache". Cache přechovává nejčastěji "navštěvované" adresy paměti. To pomáhá předcházet nepotřebnému čtení a zápisu adres paměti ke kterým se nedávno přistupovalo, a to ve výsledku zvětšuje rychlost operací vykonávaných procesorem. Jednak celá operace "cache" musí probíhat s nejvyšší opatrností, jelikož tady máme do činění se základní částí našeho procesoru. Cache může pracovat v několika módech,které si můžeme aktivovat jako parametr MuSetCacheMode.

Parametry:

  • ADDRESS=x - hodnota x označuje od jakého místa má být vytvořena cache. Měla by být zadána v hexadecimálním čísle začínající znakem $ (SHIFT+4) nebo od řetězce 0x, např. $00f80000 je to samé jako 0x00f80000. Musíte si pamatovat, aby hodnota x byla vydělena rozměrem strany paměti nastavené pomocí mmu.library. Rozměr strany dělá obyčejně $0400 (1K) na procesorech 68020/68030 a $1000 (4K) na procesorech 68040 a 68060. Tato volba je nezbytná ke správné funkci programu!
  • SIZE=x - upřesňuje velikost bloku paměti pro který bude přizpůsoben mód cache. Stejně jako v předešlém případě, x je číslo v hexidecimální formě začínající znakem $ nebo řetězce 0x. Hodnota x musí být rovněž vydělena rozměrem strany paměti.
  • COPYBACK - nastavuje cache do módu COPYBACK. Tato volba je dostupná je na procesorech 68040 a 68060. Její funkce spočívá v tom, že zápis do paměti není okamžité, ale bude přechováván v cache tak dlouho, dokud nebude cache potřebná pro jiné data.
  • WRITETHROUGH - nastavuje cache do módu WRITETHROUGH. Funkce spočívá na tom, že data projdou přes cache, kde zůstanou přidány k již tam uchovaným datům (provede se prostě jen aktualizace cache) a hned potom putují do paměti. Čtení bude ale probíhat přímo z cache.
  • CACHEINHIBIT - nastavuje cache do módu CACHEINHIBIT. Strana paměti nebude přechovávána v cache, ale hned poputuje do paměti.
  • NONSERIAL - nastavuje cache do módu NONSERIAL. Ten je dostupný jen pro procesory 68040. Stránka paměti není přechovávána v cache, ale procesor může provést jisté "přeskupení" paměti, aby oblast do kterého šla, měla nejvyšší prioritu.
  • IMPRECISE - nastavuje cache do módu IMPRECISE. Dostupný je jen pro procesory 68060. Stránka nebude přechovávána v cache, ale procesor může urychlit přístup k paměti, kde byla alokována stránka použitím speciálního mechanismu přístupu, nazvaného "sloppy", který neumožňuje používání opravování chyb adresové oblasti.
  • ROM - zabezpečuje oblast paměti před zápisem.
  • NOROM - ruší zabezpečení proti zápisu.
  • WRITEPROTECTED - zabezpečuje oblast paměti před zápisem, s tím, že každý pokus zápisu bude považována za chybu, což např. MuForce zobrazí informací o eventuálním zamrznutí.
  • NOWRITEPROTECTED - ruší zabezpečení.
  • VALID - povoluje přístup do oblasti paměti, který byl předtím zabezpečen (uznán jako Invalid) nebo prázdný (blank).
  • INVALID - zabezpečuje oblast paměti před jakýmkoliv zápisem nebo čtením. Pozor! Tato funce by se měla používat jen tehdy, kdy MuForce byl předtím spuštěn.
  • BLANK - označuje oblast paměti jako prázdnou.

MuMove4K

Tento další malý program slouží k připravení odpovídající oblasti paměti pro program MuFastZero. Měl by být spuštěn co nejdříve, nejlépe hned po příkazu Setpatch. Je přímo nezbytný v situaci, kdy chceme přesunout systémovou knihovnu exec.library a expansion.library z CHIP RAM do FAST RAM. Samotný proces přesunutí probíhá pomocí programu MuFastZero, ale MuMove4K musí být spuštěn jako první, aby zjistil jestli je taková alokace vůbec možná.

MuMove4K provádí skoro tu samou funkci jako PrepareEmul, program požadovaný pro spuštění ShapeShifteru. Programy však spolu nejsou kompatibilní (nelze je používat současně), ale MuMove4K ve spojení s MuFastZero nám umožňuje to samé, a dokonce i více, jelikož získáme dodatečné urychlení emulace MacOs. MuMove4K, podobně jako PrepareEmul, musí resetovat náš systém!

Parametry:

  • PREPAREEMUL - MuMove4K přebírá roli výše uvedeného programu.
  • PREPAREEMUL A1200 - v situaci, kdy první parametr nefunguje (situace vypadá stejně i u příkazu PrepareEmul - nikdy není známo, které nastavení bude fungovat na našem počítači).
  • OFF - MuMove4K resetuje systém a odstraní se z paměti.
  • IGNOREVERIFY - MuMove4K obsahuje inteligentní způsob na reset systému: zjistí, zda žádné z vnitřních zařízení vůbec nepracuje. Pokud ano, tak se prostě nespustí. Volba IGNOREVERIFY má za následek, že program neověřuje co právě provádí naše pevné disky,

MuFastZero

MuFastZero je program, který umožňuje přemístění vektorových přerušení z CHIP RAM do FAST RAM. Obecně není tento program příliš nezbytný, jelikož takové přemísťování je možné i bez použití MMU. Jednak to více sedí systému, pokud ve FAST RAM, právě MMU vytvoří jejich kopie. Tento prográmek lze rovněž využít k přemístění nejdůležitějších systémových knihoven (exec.library a expansion.library) do Fastu, což rovněž urychluje systém. Ale vyžaduje to použití dodatečného programu MuMove4K, který nám pomůže alokovat odpovídající oblast paměti.

Parametry:

  • ON - aktivuje program.
  • OFF - uvolňuje oblast paměti, v které byl vytvořen obraz přerušení a systémové knihovny.
  • FASTEXEC - MuFastZero zkouší přemístit výše uvedené knihovny do paměti Fast.
  • FORCENATIVE - program, nás ihned po startu informuje, zda je tento parametr vyžadován. Jeho funkce spočívá na tom, že kontroluje, zda nějaký jiný program spuštěný dříve, nevykonal tu samou činnost, jako MuFastZero.
  • MOVEVBR=FASTVBR - přemístí "exception vector base" do paměti Fast.
  • CLEARVBR - odvolává předchozí příkaz (to se hodí u mnoha her, které odmítají spolupracovat s procesory 68040/68060).

MuLink

MuLink je další odbočka ve směru programátorů. Tento program aktivuje ochranu paměti před zápisem do vybraných exekutivních. K správné funkci vyžaduje program MuOVLYMGR.

MuOVLYMGR

Ten program nefunguje samostatně. Jedná se o binární soubor, který obsahuje kód ochrany paměti používaný programem MuLink.

MuFastROM

Je to program sloužící k vytvoření zrcadlové kopie ROM ve FAST RAM. Má za úkol značné zrychlení celého systému. Přemístěný do paměti ROM je zabezpečen před jakýmkoliv zápisem. MuFastROM je náhradním programem pro programy typu "CPU FastROM" a "SetCPU FastROM". Program se aktivuje pomocí jeho aktivace z Shellu s odpovídajícím parametrem nebo z ikony, s vepsanými tooltypy.

Parametry:

  • ON nebo FASTROM - zapnutí přemísťování ROM do FAST RAM.
  • OFF nebo NOFASTROM - paměť s obrazem ROM přestává fungovat jako ROM a je znovu dostupná systému.
  • HEAD - MuFastRom alokuje najednou náš ROM v paměti o nejnižší hodnotě. "Továrně" je program nastaven tak, aby alokoval ROM v nejvyšších oblastech paměti, což má zabraňovat fragmentaci.

Závěrem, MuFastROM, v pozadí konkurence v podobě MCP, nebo BlizKicku vypadá nejlépe. Volby MCP týkající se přemístění ROM souboru, jsou velmi pomalé (rychlost procesoru se snižuje skoro o 50% (test proveden na SysSpeedu 2.6)), a BlizKick dokáže časem "zamrznout" s jinými programy.

MuFastChip

Tento program urychluje přístup do CHIP RAM na procesorech 68040 a 68060. Děje se tak ale jen v situaci, kdy nemohou být použity nové knihovny 68040.library a 68060.library. V jiné situaci roli MuFastChip přebírá samotné MMU a nevyžaduje to žádné speciální činnosti ze strany uživatele. Funkce programu závisí na nastavení módu cache jako IMPRECISE a NONSERIAL. Program by měl být umístěn do složky WBStartup.

MuLockLib

Program, který nedělá prakticky nic jiného, než že spouštějí knihovnu mmu.library a umísťují jí v paměti, kde zůstane "zakotvena". Nové spuštění programu jí uvolňuje.

MuScan

Cílem funkce tohoto programu je zobrazení tabulky MMU. Program lze využít za účelem zkontrolování funkcí mnoha jiných programů, např. MuFastROM, nebo MuFastZero. MuScan se spouští s parametrem, který je cestou k souboru, kde se takové informace mohou nalézat. Jako výstupní kanál (output) lze využít rovněž i zadané okno Shellu.

MuOmniScsiPatch

Tato záplata provádí, že vnitřní zařízení, správně rozpoznají tabulku MMU a správně provádějí operaci změny logických adres na adresy fyzické. Instalace této záplaty není vyžadována, ale je doporučována.

MuEVD

Toto není program, ale vnitřní grafický ovladač pro ShapeShifter. Využívá všechny výhody MMU. Umožňuje práci v módu ECS, AGA a P96/Cgfx na obrazovkách 1-, 2-, 4-, 8-, 15- a 24-bitových (ten poslední ne na AGA ani na ECS, samozřejmě). Rovněž umožňuje emulaci módu HAM8 a vykreslení obrazovky 15-bit HiColor na AGA.

Závěr

Přišel čas na shrnutí. Práce s programy využívající obvod MMU a využívající knihovnu mmu.library v mém případě byla velmi užitečná. Balík MuTools nezpůsobuje problémy, zároveň v oblasti instalace a konfigurace, tak i v oblasti používání. Pomineme-li, že to jsou záplaty na systém, jsou stabilní, "nezamrzají" s ostatními programy, což má za následek, že prakticky zapomínáme, že jsou to záplaty. Jejich největší výhodou je to, že se odvolávají na konkrétní pod obvod naší Amigy, který doposud ležel nevyužitý. Nedělají nic v letu, ale využívají z možností hardware. Jsou prostě vyrobeny hlavou. Thomas Richter přišel na dokonalý nápad, aby všechno postavit na jedné konkrétní tabulce MMU. Z vlastní zkušenosti můžu říct, že programy MuTools ani jednou nezklamaly a jsem opravdu spokojen z faktu, že je používám. Rychlost mojí 030/50 Mhz po nainstalování těchto malých prográmků se něco snížila, ale stabilita systému značně vzrostla. Celý balík MuTools a knihovna mmu.library obsahuje status freeware a lze je stáhnout z Aminetu (util/boot).

Mnohokrát v tomto článku, po velmi podrobné informace, jsem se odvolával na dokumentaci, stejně tak samotné MMU knihovny, tak i programů které jí využívají.

P.S. V podstatě instalace výše popsaných programů trochu zpomaluje systém. Tady je nejjednodušší trik jak tomu předejít.

Proveďte malou úpravu souboru MMU-Configuration. Stačí v libovolném místě dospat CLEARTTX. Teď je třeba resetovat systém. Pokud před sebou vidíte plochu Workbenche, tak to znamená, že vše je v pořádku. Pokud ale obdržíte jakékoliv GURU nebo nějaký jiný divný chyby, co nejdříve tento řádek zase smažte. Vinu tady má tvoje základní deska nebo turbokarta (přesněji slot, kterým jsou tyto dvě věci spojené) a nic to nedokáže změnit.

Přidat komentář

Rozšíření Amig podle typu

Chart

  • 01 Running
  • 02 Strength Training
  • 03 Cycling
  • 04 Skating
  • 05 Swimming