Bruk og innstillinger

### Bruk

WHDLoad kan startes fra kommandolinjen (CLI/Shell) eller fra Workbench. Innstillinger kan spesifiseres i en global konfigurasjonsfil og via argumenter eller Tooltypes. Slave-valget er som oftest krevet. Andre tilvalg kan være nødvendige også, avhengig av maskinvare og programmet som skal kjøres i WHDLoad. Når WHDLoad startes fra kommandolinje avsluttes det med følgende returkoder:

- 0 - korrekt kjøring
- 10 - feil, Slaven kunne ikke kjøres på grunn av tidligere problemer, feilmelding vises
- 20 - alvorlig feil, ikke nok ledig minne
- > 100 - Slaven har blitt kjørt, og returnerer med 100 + TDREASON

### Tilvalg og global konfiguration

Det finnes lokale og globale innstillinger. Lokale tilvalg spesifiseres med argumenter via kommandolinjen eller som Tooltypes når det startes fra Workbench.
Den globale konfigurasjonsfilen er "`S:WHDLoad.prefs`". Det er en vanlig ASCII fil og inneholder ett tilvalg per linje. Tomme linjer og kommentarer ignoreres. Kommentarer er linjebasert, og starter med tegnet "`;`" og går til enden av linjen.
En eksempel-konfigurasjonsfil følger med WHDLoad-pakken ("`S/WHDLoad.prefs`").

### Oversikt

#### Liste over tilgjengelige innstillinger

Navn på tilvalg | Type | Lokal | Global | Standardverdi
--- | --- | --- | --- | ---
BranchCache | bryter | x | - |
ButtonWait | bryter | x | x |
Cache | bryter | x | - |
Chk | bryter | x | - |
ChkBltHog | bryter | x | - |
ChkBltSize | bryter | x | - |
ChkBltWait | bryter | x | - |
ChkColBst | bryter | x | - |
ChkCopCon | bryter | x | - |
ChkInts | bryter | x | - |
ChipNoCache | bryter | x | x |
CoreDump | bryter | x | - |
CoreDumpPath | tekst | - | x | PROGDIR:
Custom | tekst | x | - |
Custom1 | tall | x | - |
Custom2 | tall | x | - |
Custom3 | tall | x | - |
Custom4 | tall | x | - |
Custom5 | tall | x | - |
D | bryter | x | - |
Data | tekst | x | - | -
DebugKey | tall | x | x | -
DCache | bryter | x | - |
ExecuteCleanup | tekst | - | x | -
ExecuteStartup | tekst | - | x | -
Expert | bryter | - | x |
ExpChip | bryter | x | - |
ExpLocal | bryter | x | - |
Exp24Bit | bryter | x | - |
FileLog | bryter | x | - |
FreezeKey | tall | x | x |
MMU | bryter | x | x |
NoAutoVec | bryter | x | x |
NoCache | bryter | x | - |
NoFileCache | bryter | x | - |
NoFilter | bryter | x | x |
NoFlushMem | bryter | x | x |
NoMMU | bryter | x | x |
NoReq | bryter | x | x |
NoTrapHandler | bryter | x | - |
NoVBRMove | bryter | x | - |
NoWriteCache | bryter | x | x |
NTSC | bryter | x | x |
PAL | bryter | x | x |
Preload | bryter | x | - |
QuitKey | tall | x | x | -
ReadDelay | tall | - | x | 0
RestartKey | tall | x | x | -
ShowRegs | tekst | - | x | SYS:Utilities/MultiView
Slave | tekst | x | - | WHDLoad.Slave
Snoop | bryter | x | - |
SnoopAGA | bryter | x | - |
SnoopECS | bryter | x | - |
SnoopOCS | bryter | x | - |
SplashDelay | tall | x | x | 200
StoreBuffer | bryter | x | - |
SuperScalar | bryter | x | - |
TimeOut | tall | x | - | 0
WriteDelay | tall | x | x | 150

#### Typer av tilvalg

tall: | tilvalgets verdi er et heltall, på kommandolinjen må du bruke desimaler (10-tallsystemet), i ToolType kan du bruke heksadesimaler også ved å starte tallet med "`$`"
tekst: | tilvalgets verdi er en tekst
bryter: | tilvalget slås på hvis det er spesifisert (boolsk)

#### Eksempel

Workbench: |
CLI eller Shell: | `1> WHDLoad SuperGame.Slave Preload NTSC QuitKey=69 Custom1=1`

### Beskrivelse av hvert tilvalg

#### ButtonWait/S

Dette tilvalget påvirker ikke WHDLoad selv, men kan brukes av Slaven.
Meningen med dette tilvalget er at hvis det er satt, ønsker brukeren at det installerte programmet skal vente på et tastetrykk når det viser bilder og/eller spiller musikk, og det normalt bare gjør dette en kort tid (som følge av HD/RAM-lasting sammenlignet med treg diskett-lasting)

#### BranchCache/S

Dette valget slår på 68060's grenbuffer (branch cache). På andre CPU'er har det ingen effekt.
Tilvalget har ingen effekt hvis NoCache/S også er slått på.

#### Cache/S

Dette tilvalget slår på instruksjonsbufferen og slår av data-bufferen for det installerte programmet. Hvis MMU'en brukes av WHDLoad, markeres Chip-minnet som Cacheable Writethrough (upresist).
Tilvalget har ingen effekt hvis NoCache/S også er slått på.

#### Chk/S

Dette tilvalget er en forkorting som slår på tilvalgene ChkBltSize/S, ChkBltWait/S og ChkColBst/S.

#### ChkBltHog/S

Dette tilvalget kontrollerer hele tiden at `blthog` (`bltpri`) bit'en i custom.dmacon-registeret ikke er satt. Denne funksjonen virker bare sammen med en av SnoopOCS/SnoopECS/SnoopAGA-tilvalgene.

#### ChkBltSize/S

Dette tilvalget kontrollerer at det installerte programmet bruker blitteren riktig, slik at bare gyldige minneområder blir brukt til blitter-oprasjonene. Denne funksjonen virker bare sammen med en av SnoopOCS/SnoopECS/SnoopAGA-tilvalgene.

#### ChkBltWait/S

Dette tilvalget kontrollerer at det installerte programmet venter på blitter-avslutningen riktig, før den starter en ny blitter-operasjon. Denne funksjonen virker bare sammen med en av SnoopOCS/SnoopECS/SnoopAGA-tilvalgene.

#### ChkColBst/S

Dette tilvalget kontrollerer hele tiden at `color`-bit'en i `custom.bplcon0`-registeret er satt. Denne funksjonen virker bare sammen med en av SnoopOCS/SnoopECS/SnoopAGA-tilvalgene.

#### ChkCopCon/S

Dette tilvalget kontrollerer at det installerte probgrammet ikke benytter copper-tilgang til DMA-registre gjennom bruk av `custom.copcon`. Denne funksjonen virker bare sammen med en av SnoopOCS/SnoopECS/SnoopAGA-tilvalgene.

#### ChkInts/S

Dette tilvalget kontrollerer ved hvert avbrudd (interrupt) om det er et matchende par i `intreq` og `intena` satt for dette avbruddet. Hvis ikke, vil programmet bli avsluttet med en passende feilmelding. Denne funksjonen gjør det enkelt å oppdage problemer med avbrudds-tilgang på raskere maskiner (68040/060) eller feil i maskinvare som genererer uønskede avbrudd. Siden denne situasjonen også kan oppstå om avbrudd er slått av gjennom bruk av `intena` samtidig som et avbrudd, har dette blitt implementert som et bryter-valg.

#### ChipNoCache/S

Dette tilvalget slår av brufring av Chip-minne (BaseMem). Det bør brukes på maskinvare som ikke tillater bufring av Chip-minne (f.eks BlizzardPPC-kort) for å unngå forsinkelser i kjøringen av det installerte programmet. Se også Behandling av CPU-buffer.

#### CoreDump/S

Med dette tilvalget lager WHDLoad en minne- og registerdump hver gang et installert program avsluttes. Dette kan være nyttig for å rippe en musikk-modul fra minne-dumpen eller for feilsøking.

#### CoreDumpPath

Målmappen for alle dump-filer laget av WHDLoad.

#### Custom/K, Custom1/K/N, Custom2/K/N, Custom3/K/N, Custom4/K/N, Custom5/K/N

Disse tilvalgene brukes ikke av WHDLoad selv, men kan brukes av Slaven for å kontrollere forskjellige Slave-spesifikke ting. Custom/K kan inneholde en tekstlinje og Custom1-5/K kan bare inneholde tall. Les dokumentasjonen til den spesifikke installereren for å finne ut om den støtter Custom-tilvalg.

#### D/S

Dette tilvalget er nyttig til feilsøking. Hvis det er slått på og en støttet programvare-fryser (Hrt/TK) finnes i minne, simulerer WHDLoad en NMI før den kjører den første CPU-instruksjonen i Slaven.

#### Data/K

Med dette valget kan en mappe spesifiseres som WHDLoad går inn i før den starter å laste data for det installerte programmet. Dette tilvalget overstyrer verdien ws_CurrentDir i Slaven.

#### DCache/S

Dette tilvalget slår på instruksjons- og databufring for det installerte programmet. Hvis MMU brukes av WHDLoad markeres Chip-minnet som Cacheable Writethrough (upresist).
Tilvalget har ingen effekt hvis NoCache/S også er slått på.

#### DebugKey/K/N

Definerer rawkey-koden for å avslutte programmet med feilsøkingsinfo (skriver kjernedump-filer og avslutter). Dette virker bare hvis ekspertmodus er aktiv, VBR'en er flyttet av WHDLoad (NoVBRMove/S er ikke satt og CPU er minst en 68010) eller Slaven selv støtter det.

#### ExecuteCleanup

Med dette tilvalget kan en kommando spesifiseres som vil bli utført av WHDLoad ved avslutning.

#### ExecuteStartup

Med dette tilvalget kan en kommando spesifiseres som vil bli utført av WHDLoad ved oppstart. Kan brukes til å slå av maskinvare som lager problemer i samhandling med WHDLoad, eller for å stopp TCP/IP-stakken eller lignende.

#### Expert/S

Dette tilvalget setter WHDLoad i ekspertmodus. For tiden påvirker det DebugKey/S-funksjonen og advarsler i løpet av svitsjingen mellom det installerte programmet og OS (fargesyklerende copper-skjermer). Hvis ekspertmodus ikke er aktiv, er ikke DebugKey/S tilgjengelig. I ekspertmodus kommer det også opp en annen knapp i noen av feilmeldingsvinduene til WHDLoad. Knappen, som heter Show Regs gir mulighet til å vise registre og statusinformasjon i likhet med det som skrives i registerdumper.

#### ExpChip/S, ExpLocal/S, Exp24Bit/S

Hvis det installerte programmet bruker utvidet minne (ws_ExpMem) kan dette tilvalget brukes for å tvinge WHDLoad til å allokere dette i Chip-minne, lokalminne eller 24BitDma-minne. Dette kan føre til reduksjon i ytelse pga det spesifiserte minnet kan ha tregere tilgang fra CPU, sammenligned med standardminnet (Fast memory). Man kan bruke tredjeparts verktøy (f.eks SysInfo, GvpInfo,...) for å sjekke minnekonfigurasjonen og se hvilket minne som har hvilke egenskaper.
Generelt er meningen med disse tilvalgene å fikse kompabilitetsproblemer med installerte programmer på raske maskiner ved å gjøre kjøringen tregere gjennom bruk av tregere minne.

#### FileLog/S

Dette tilvalget er kun for feilsøking. Se Dumper og Loggfiles for mer info.

#### FreezeKey/K/N

Hvis du bruker en av de støttede programvare-fryserne (HrtMon or Thrillkill) kan du bruke dette tilvalget for å definere en rawkey-kode som får WHDLoad til å gå inn i fryseren når den trykkes. For at dette skal virke, må VBR være flyttet av WHDLoad (NoVBRMove/S må ikke være satt og CPU må være minst en 68010) og fryseren må være aktiv.

#### MMU/S

Dette må brukes på 68030-maskiner for å få MMU-relaterte funksjoner til å virke (minnebeskyttelse, forbedret buffer-behandling, søking, resload_Protect#?-funksjoner). På 68040/060 har ikke dette tilvalget noen effekt fordi MMU'en vil brukes som standard. Det anbefales å putte dette tilvalget i en global konfigurasjonsfil på alle systemer med en fungerende MMU (dvs ikke på en 68ec030) fordi det øker stabiliteten og sikkerheten vesentlig. Dette vil ikke ha noen effekt hvis tilvalget NoMMU/S er satt på.

#### NoAutoVec/S

Hvis dette tilvalget er valgt vil ikke WHDLoad avslutte om en uventet autovektor-avbrudd eller NMI intreffer (vektorer #25-31 / $64-$7c). Dette bør brukes på systemer/maskinvare som lager slike avbrudd på tilfeldige tidspunkt for å hindre at WHDLoad avslutter (enda bedre vil være å fjerne den ødelagte maskinvaren!).

#### NoCache/S

Hvis valgt, vil alle minnebufre slås av.
Dette tilvalget overstyrer BranchCache/S, Cache/S, DCache/S, StoreBuffer/S og SuperScalar/S.

#### NoFileCache/S

Slår av WHDLoads filbuffer, og fremtvinger et bytte til OS for hver diskoperasjon i det installerte programmet.
Dette tilvalget slår av Preload/S.

#### NoFilter/S

Slår av lydfilteret. Merk at dette tilvalget kun påvirker initialiseringen ved oppstart. Hvis det installerte programmet selv endrer status på lydfilteret vil ikke dette tilvalget ha noen effekt.

#### NoFlushMem/S

Normalt tømmer WHDLoad minnet ved oppstart for å få så mye ledig minne som mulig for Preload/S-operasjonen. Det vil fjerne alle ubrukte ressurser som biblioteker, skrifttyper osv fra minnet. Ved bruk av dette tilvalget vil ikke WHDLoad tømme minnet. Det kan brukes på systemer med mye ledig minne for å forbedre systemytelsen.

#### NoReq/S

Dette tilvalget kan bare brukes når WHDLoad har blitt startet fra kommandolinjen (CLI/Shell). Det har ingen effekt når startet fra Workbench. Tilvalget tvinger WHDLoad til å ikke vise noen forespørsler i et nytt, eget vindu men vise beskjeder i kommandovinduet WHDLoad ble startet fra.

#### NoMMU/S

Med dette tilvalget vil ikke WHDLoad bruke MMU. Dette er et kritisk og farlig valg kun anbefalt for testing eller feilsøking og ikke ved normal bruk. Les om MMU for mere info. Dette tilvalget overstyrer MMU/S.

#### NoTrapHandler/S

Hvis dette tilvalget slås på vil WHDLoad bruke den originale vektortabellen fra OS'et som er aktiv når WHDLoad starter. Ved oppstart vil WHDLoad kopiere systemets vektortabell i stedet for å lage sin egen. Dette vil bare være nyttig ved feilsøking og bør ikke brukes ved normal bruk. Advarsel: Hvis en unntaksbehandler som kalles gjennom den originale vektortabellen prøver å kjøre OS-funksjoner eller prøver å bruke OS-datastrukturer vil maskinen kræsje (f.eks. exec.Alert).

#### NoVBRMove/S

Dette tilvalget hindrer at WHDLoad flytter vektortabellen.
Vanligvis flytter WHDLoad vektortabellen ved å flytte VBR (Vector base Register) til en annen plass i minnet enn $0. Dette har den fordelen at det installerte programmet ikke kan endre vektortabellen, som igjen øker sikkerheten og WHDLoads stabilitet vesentlig. Noen installerte programmer virker ikke helt korrekt sammen med en flyttet VBR. Grunnen til dette er at det installerte programmet kan gjøre noen merkelige ting som ikke er støttet av et flyttet VBR eller forfatteren av programmet var for lat til å støtte flyttede VBR. I slike tilfeller må dette tilvalget slås på for å forhindre at WHDLoad flytter VBR.
En annen funksjon ved en flyttet VBR er at WHDLoad kan kontrollere tastaturet hver gang et Autovector-avbrudd inntreffer. Slik er WHDLoad i stand til å avslutte det installerte programmet uavhengig av kjøringen i programmet/slaven, dersom QuitKey/S eller DebugKey/S trykkes (på samme måte kan det installerte programmet avbrytes når FreezeKey/S trykkes).
Flytting av VBR krever minst en 68010 for åvirke. På en 68000 har ikke denne funksjonen noen effekt, fordi VBR alltid er ved $0 og kan ikke flyttes.

#### NoWriteCache/S

Dette tilvalget slår av diskskrivebuffer-funksjonen i WHDLoad. Uten dette tilvalget vil WHDLoad prøve å bufre alle skriveoperasjoner i minnet, og avvente skrivingen til programmet avslutter for å unngå unødvendige bytter til operativsystemet.

#### NTSC/S

Hvis valgt, vil WHDLoad bruke en NTSC-visning (60Hz) for det installerte programmet. På en PAL Amiga må driveren for NTSC-skjerm være installert i "`DEVS:Monitors/`".

#### PAL/S

Hvis valgt, vil WHDLoad bruke en PAL-visning (50Hz) for det installerte programmet. På en NTSC Amiga må driveren for PAL-skjerm være installert i "`DEVS:Monitors/`".

#### Preload/S

Hvis dette tilvalget er satt vil WHDLoad laste så mange filer og diskbilder som mulig inn i minne (avhengig av mengde ledig minne) ved oppstart. Dette øker ytelsen når det installerte programmet kjører, fordi det unngår bytter til OS ved å laste data direkte fra harddisken. Dette tilvalget bør alltid være påslått.

#### QuitKey/K/N

Definerer rawkey-koden for å avslutte programmet, dette virker bare hvis VBR er flyttet av WHDLoad (NoVBRMove/S må ikke ha vært satt og CPU må være minst en 68010) eller slaven selv støtter det.

#### ReadDelay/K/N

Dette tilvalget spesifiserer tiden i 1/50-dels sekund som WHDLoad venter etter at den har lastet data fra disker, og vil også vente denne tiden etter at Preload er fullført. Dette løser problemer med stasjoner (f.eks. CDstasjoner) som ønsker å gjøre noe etter lesing (f.eks. slå av motoren).

#### RestartKey/K/N

Med dette tilvalget kan man definere en rawkeykode som gjør at WHDLoad omstarter det installerte programmet når den trykkes..

#### ShowRegs/K/N

Dette tilvalget er bare nyttig sammen med tilvalget Expert/S. Med dette tilvalget kan et program spesifiseres som vil bli brukt av WHDLoad til visning av registerdumper hvis Show Regs-knappen i en feilforespørsel fra WHDLoad blir trykket. WHDLoad vil legge til filnavnet på den midlertidige lagerfilen (for tiden `T:.whdl_register`) bak den spesifiserte kommandoteksten.

#### Slave

Navnet på slaven som vil bli brukt av WHDLoad. Slaven inneholder grensesnittkoden som vil bli brukt for kommunikasjon mellom det installerte programmet og WHDLoad.

#### Snoop/S, SnoopAGA/S, SnoopECS/S, SnoopOCS/S

Disse tilvalgene slår på WHDLoads funksjoner for søk av Cia og tilpassede registre.

#### SplashDelay/K/N

Dette tilvalget spesifiserer tiden i 1/50 sekunder som WHDLoad viser infovinduet ved oppstart. Hvis SplashDelay/K/N er mindre enn ReadDelay/K/N ignoreres det og vinduet blir vist med tiden fra ReadDelay/K/N. Vinduet vil vises minst så lenge som Preload/S jobber.
Hvis dette tilvalget settes til 0 vil ikke noe vindu vises.

#### StoreBuffer/S

Dette tilvalget slår på 68060's lagerbuffer (Store Buffer). På andre CPU-typer har det ingen effekt.
Tilvalget har ingen effekt hvis NoCache/S også er satt.

#### SuperScalar/S

Dette tilvalget slår på 68060's mulighet til å kjøre flere instruksjoner per maskinsyklus. På andre CPU-typer har det ingen effekt.
Tilvalget har ingen effekt hvis NoCache/S også er satt.

#### TimeOut/K/N

Hvis satt avslutter WHDLoad og det installerte programmet etter den gitte tiden. Krever at tilvalget NoVBRMove/S ikke er satt og at det installerte programmet ikke endrer `ciaa.ciatod`-telleren. Tiden for avbrudd spesifiseres i 1/50-dels sekunder. For å måle denne tiden for en demo eller et spill, slå på Expert/S og bestem en DebugKey/K/N, når tidspunktet man ønsker å avsluttet programmet på nås, trykkes DebugKey. Les i .whdl-register-filen og søk etter `ciaa-event`-verdien. Hvis strømforsyningsfrekvensen er 50 Hz er det denne verdien som må settes med TimeOut/K/N, dersom frekvensen er 60 Hz må man multiplisere verdien med 5/6.

#### WriteDelay/K/N

Dette tilvalget spesifiserer en tid i 1/50-dels sekunder som WHDLoad venter etter å ha skrevet noe fysisk til disk. Det påvirker alle resload_Save#?-funksjoner og FileLog/S-funksjonen. Dette gir mening fordi filsystemer vanligvis ikke skriver data umiddelbart til disk. Det tar litt tid (1..3 sekunder) før alle strukturer i filsystemet er oppdatert. Standardverdien for WriteDelay er 150 som lar WHDLoad vente i 3 sekunder etter hver skriving til harddisken. Denne verdien kan settes til 0, men da bør man aldri avslutte med en omstart fra det installerte programmet, fordi lagrede data kanskje ikke er skrevet korrekt til disk.