### WHDLoadCD32

WHDLoadCD32 is een speciale versie te gebruiken op de CD³². Het is geoptimaliseerd voor deze hardware en zal daarom alleen draaien onder een gewone, niet uitgebreide CD³². Het zal niet draaien onder een SX-32 of andere machine.

Dit zijn de verschillen met de normale WHDLoad:

- Het vereist of gebruikt geen WHDLoad keyfile, daarom kunnen CD'S met WHDLoadCD32 vrij gedistribueerd worden
- Alleen de 68020 CPU is ondersteund, dit betekend daarom geen MMU ondersteuning
- Fast (snel) geheugen is niet ondersteund
- Er is absoluut geen ondersteuning voor schrijven, savegames, highscores of coredumps (een CD is meestal read-only)
- Veel opties zijn verwijderd die niet bruikbaar zijn op een CD ³² Om zo de executable smaller te houden en geheugen te besparen, kijk op Gebruik en Opties om te zien welke opties zijn beinvloed.
- De volgende resload functies zijn niet geïmplementeerd, en ze te gebruiken zal WHDLoad beëindigen met een terugkeerwaarde TDREASON_ILLEGALARGS:
  - resload_DiskLoadDev
  - resload_ProtectRead
  - resload_ProtectReadWrite
  - resload_ProtectWrite
  - resload_ProtectRemove
  - resload_ProtectSMC
- De volgende resload functies zijn dummies, deze doen niks anders dan het terugbrengen van success:
  - resload_SaveFile
  - resload_SaveFileOffset
  - resload_DeleteFile
- Er is geen freezer/monitor support ingebouwd
- Er is geen interne check voor voldoende stackspace zoals in de normale WHDLoad, in tests gedaan door mij, zou de standaard van 4096 bytes genoeg moeten zijn voor WHDLoadCD32

### Tips voor het gebruik van WHDLoad op een CD³²

Het voornaamste probleem op de CD ³² is de beperkte main (hoofd) geheugen. Er is maar 2 MB chip geheugen. Daarom moet het doel zijn om zoveel mogelijk vrij geheugen te krijgen voor WHDLoad en vooral voor de Preload operatie. Wees er zeker van dat geen andere programma's draaien wanneer er een geïnstalleerd programma gestart word met WHDLoadCD32.

- Wanneer een install de keuze geeft tussen diskimages en bestanden gebruik dan bestanden. Omdat meer kleine bestanden beter gecached kunnen worden dan een paar grote bestanden.
- Gebruik wanneer een install de keuze geeft om bestanden te comprimeren met ProPack/FTmp en comprimeer alle bestanden (RNC1 geeft de beste compressie ratio). Gecomprimeerde bestanden hebben minder geheugen nodig voor PreLoad en het geeft bijna geen vertraging in laad snelheid.
- Gebruik AllocMemReverse voor het starten van WHDLoadCD32 (of een geschikte vervanging). AllocMemReverse is een klein programma inbegrepen in de dev-package van WHDLoad. Het patcht de exc functie AllocMem om altijd het attribuut MEM_REVERSE te gebruiken voor toewijzingen. Dit zorgt ervoor dat geheugen is toegewezen vanuit de bovenkant van het vrije geheugen naar de onderkant en niet van de onderkant naar de bovenkant wat gebruikelijk is. En dit zorgt ervoor dat de lagere geheugenregionen vrij blijven. De achtergrond hiervan is, dat WHDLoad geheugen nodig heeft dat begint op adres 0, het begin van het chipgeheugen. Alle geheugen wat gebruikt word in deze lagere geheugen regionen moet omgeruild worden. Omdat hiervoor extra geheugen nodig is om het weggeschreven ram geheugen te bewaren. Hoe meer geheugen gebruikt is in de lagere geheugen regionen, hoe minder beschikbaar is voor het geïnstalleerde programma en voor het voorladen van data bestanden.
- Gebruik altijd de Data optie. PreLoad weet niet welke bestanden geladen word door het geïnstalleerde programma, daarom laad het alle bestanden die het vind. Om te verkomen dat onnodige bestanden geladen word, maakt u een directory aan welke alleen de benodigde bestanden bevat. Verwijder alle overbodige dingen zoals #?.info,#?.Slave, ReadMe, Manual, .... Roep dan WHDLoad met Slave en Data directory aan als argument bijv `WHDLoadCD32 :Slaves/XYZ.Slave Data=:Data/XYZ PreLoad`. Er is geen reden om de huidige directory te veranderen naar wat dan ook.
- Gebruik geen XPK gecomprimeerde data bestanden. XPK decompressie gebruikt veel geheugen doordat XPK libraries in het geheugen aanwezig moeten zijn, de decompressie zelf heeft geheugen nodig en zal geheugen fragmentatie veroorzaken.