[Main] [Docs] [Installs] [Search] [Team] [Guestbook] [Links]

Figyelés

Mi ez

A figyelés a WHDLoad olyan funkciója, ami az egyéni és a Cia regiszterek ellenőrzését és hozzáférések naplózását végzi. Ha a Snoop aktiválva van, minden hibás hozzáférés egy hozzáférési hibát fog létrehozni és az installált program be lesz fejezve. Az ilyen hozzáférések: A strobe regiszterek olvashatók vagy írhatók. Az érvényes egyéni regiszterek csoportja változik az OCS (Old ChipSet - A500, A1000, régi A2000), ECS (Enhanced ChipSet - A600, új A2000, A3000) és AGA (Advanced Graphics - A1200, A4000) gépeken. Ez hasznos lehet olyan hibák felderítéséhez, amelyeket régi programok okozhatnak az új AGA regiszterekhez való hozzáférésnél.

Hogyan működik

Ha a Snoop be van kapcsolva, a WHDLoad az egyéni és a Cia regisztereket érvénytelennek jelöli az MMU fordítási fában. Emiatt minden hozzáférés ezekhez a regiszterekhez hozzáférési hiba kivétet eredményez. A WHDLoad saját kivét kezelője fogja ezt kezelni. Először ellenőrzi, hogy a hozzáférés érvényes-e. Ha a hozzáférés érvénytelen, a program be lesz fejezve. Ha a hozzáférés érvényes és ha egy olvasási utasítás, akkor az emulálva lesz, és a program végrehajtása folytatódik. Ha ez egy írási utasítás, a WHDLoad még el is menti az értékeket egy belső tárolóba.
A kivét adminisztrációja miatt és az emuláció miatt a program végrehajtása lelassulhat. Hogy mennyire, az függ a CPU típusától, a Chip memória típusától (16/32-bit) és veremmutató állásától ha a Chip memória 32 bites (LongWord vagy nem). Továbbá függ a hozzáférés típusától (Byte/Word/LongWord, olvasás/írás). 68030-on az írás gyorsabb mint az olvasás (mivel olvasásnál a stackframe 92 byte, írásnál 32 byte), 68060-on az olvasás gyorsabb, mivel az írás emulálása eléggé összetett.

Gyors figyelési mód

A Snoop/S opció bekapcsolja a gyors figyelést. Az olvasási hozzáférés nem lesz ellenőrizve. Nem lesznek speciális ellenőrzések végrehajtva. Ez a mód hasznos lehet az egyéni regiszterek tartalmának megszerzéséhez, pl. képek kimentéséhez az SP segítségével.

Copper lista átnéző

A WHDLoad 13-as verziója óta a copperlisták is ellenőrzésre kerülnek. A figyelő akor lesz aktiválva, ha írás történik a coplc regiszterekhez, ha a copper dma engedélyezve van, vagy egy installált program aktiválja a copper dma-t a dmacon regiszter írásával. A figyelő követi a copperlistát és ellenőrzi az összes Move utasítást a Snoop opció korlátozásainak alkalmazásával (OCS/ECS/AGA). A Skip és Wait (kivéve CEND) utasítások mellőzve lesznek. ha egy érvénytelen bejegyzést talál, az installált program kilép. A figyelő a (copjmp) ágakat követi, érzékeli a hurkokat és 16 allistában ellenőriz. A Move-ok a copperlistában egy belső egyéni regiszter fájlba lesz írva, amely kiírásra kerül a WHDLoad kilépésénél. A figyelő nem aktív a gyors figyelési módban.

Blitter prioritás ellenőrzése

Amikor a ChkBltHog/S opció aktiválva van, a WHDLoad ellenőrizni fogja hogy az installált program bekapcsolja-e a BltHog bitet a dmacon regiszterbe írással. A Blitter prioritás problémákat okozhat néhány hardver konfiguráción nagy blitter műveletek alatt (összes csatorna használata esetén).

Blitter méret ellenőrzes

Amikor ChkBltSize/S opció aktiválva van, a WHDLoad ellenőrizni fogja, hogy a blitter nem fér-e hozzá bármilyen memóriához a BaseMem területen kívül. Írási hozzáféréseknél a bltsize vagy a bltsizh ellenőrzi, hogy a soros mód be van-e kapcsolva a bltcon1 regiszterben. Ha a soros mód aktiválva van, megszakítja a méretellenőrzést. Egyébként a WHDLoad kiszámolja az első és az utolsó word-öt minden egyes aktív DMA csatorna hozzáféréséhez. Ha egy cím kívül van a BaseMem területén, a program ki fog lépni egy kérdezővel. A számolás úgy van tervezve, hogy működjön minden módban (növekvő/csökkenő, pozitív/negatív modulo, páratlan modulo/mutatók).
Jegyezd meg, hogy a sor rajzolási módja nem lesz ellenőrizve és az összes blitter regiszter írható a copper által ha a copcon be van állítva.

Blitter várakozás ellenőrzés

Ha a ChkBltWait/S opció aktiválva van, a WHDLoad az utasítás nyomkövetést fogja használni annak ellenőrzésére, hogy az installált program rendesen vár-e a blitterre az új blitter művelet megkezdése előtt. Egy belső változót használ, ami a blitter állapotát jelzi. A változó akkor lesz beállitva, amikor írási hozzáférés történik a bltsize vagy a bltsizh regiszterekhez és törölve ha olvasási hozzáférés törtenik a dmaconr regiszterhez. Minden blitter regiszter írási műveleténél a belső változó értéke ellenőrzésre kerül, és ha az azt mutatja, hogy egy blitter feladat fut, akkor az installált program ki fog lépni és a WHDLoad ki fogja írni az utolsó elindított blitter művelet PC-jét az aktuális hozzáféréssel együtt.
Két fő hátulütője van ennek a lehetőségnek. Először is a blitter használata a copperen keresztül nincs ellenőrizve, másodszor a blitter megszakítások ok nélküli hibákat generálhatnak az ellenőrző rutinoknál.

A jövő

Tervbe vannak véve olyan funkciók, mint a Leállítás és Ikonizálás. Ezekhez a Figyelés alapvető fontosságú. Ezért javasolt az installálók készítőinek számára, hogy ellenőrizzék az installálóikat a Figyelés funkcióival, a jövőbeni kompatibilitás érdekében.

Követelmények

Egy MMU szükséges a Figyelés funkcióhoz. A WHDLoad-nak használnia kell az MMU-t, ezért az MMU/S opciót be kell kapcsolni minden 68030-as gépen.

Korlátozások


[Main] [Docs] [Installs] [Search] [Team] [Guestbook] [Links]