Opzioni e configurazione globale

Esistono opzioni globali e locali. Le opzioni locali vengono specificate come argomenti dalla riga di comando o come ToolType nell'esecuzione da Workbench.
Il file di configurazione globale è "S:WHDLoad.prefs". E' un normale file ASCII e contiene un'opzione per riga. Le righe vuote ed i commenti vengono ignorati. Un commento deve stare su una singola riga e comincia con il carattere ";".
Un file di configurazione d'esempio è contenuto nel pacchetto WHDLoad ("S/WHDLoad.prefs").

Sguardo generale

Lista delle opzioni disponibili

Nome opzioneTipoLocaleGlobaleValore di Default
BranchCacheswitcherx-
ButtonWaitswitcherxx
Cacheswitcherx-
Chkswitcherx-
ChkBltHogswitcherx-
ChkBltSizeswitcherx-
ChkBltWaitswitcherx-
ChkColBstswitcherx-
ChkCopConswitcherx-
ChkIntsswitcherx-
ChipNoCacheswitcherxx
CoreDumpswitcherx-
CoreDumpPathstringa-xPROGDIR:
Customstringax-
Custom1numericax-
Custom2numericax-
Custom3numericax-
Custom4numericax-
Custom5numericax-
Dswitcherx-
Datastringax--
DebugKeynumericaxx-
DCacheswitcherx-
ExecuteCleanupstringa-x-
ExecuteStartupstringa-x-
Expertswitcher-x
ExpChipswitcherx-
ExpLocalswitcherx-
Exp24Bitswitcherx-
FileLogswitcherx-
FreezeKeynumericaxx
MMUswitcherxx
NoAutoVecswitcherxx
NoCacheswitcherx-
NoFileCacheswitcherx-
NoFilterswitcherxx
NoFlushMemswitcherxx
NoMMUswitcherxx
NoTrapHandlerswitcherx-
NoVBRMoveswitcherx-
NoWriteCacheswitcherxx
NTSCswitcherxx
PALswitcherxx
Preloadswitcherx-
QuitKeynumericaxx-
ReadDelaynumerica-x0
RestartKeynumericaxx-
ShowRegsstringa-xSYS:Utilities/MultiView
Slavestringax-WHDLoad.Slave
Snoopswitcherx-
SnoopAGAswitcherx-
SnoopECSswitcherx-
SnoopOCSswitcherx-
SplashDelaynumerica-x200
StoreBufferswitcherx-
SuperScalarswitcherx-
TimeOutnumericax-0
WriteDelaynumericaxx150

Tipi di opzioni

numerica: il valore dell'opzione è un intero,
nella riga di comando devi utilizzare la notazione decimale, con i ToolType puoi anche usare la notazione esadecimale contrassegnata da un "$" all'inizio
stringa: il valore dell'opzione è una stringa
switcher: l'opzione verrà abilitata se specificata (booleano)

Esempio

Workbench: Workbench Options
CLI o Shell: 1> WHDLoad SuperGame.Slave Preload NTSC QuitKey=69 Custom1=1

Descrizione delle Opzioni

ButtonWait/S

Questa opzione non ha effetto diretto su WHDLoad, ma può essere testata dallo Slave.
Lo scopo di questa opzione è di far attendere al programma installato la pressione di un tasto quando questo mostra delle immagini e/o suona una musica, poiché di norma il tempo d'attesa è molto breve (dovuto alla differenza di velocità dei caricamenti dall'HD/RAM in confronto alla lentezza del floppy).

BranchCache/S

Questa opzione abilita le branch cache del 68060. Non ha effetto sulle altre CPU.
L'opzione non ha alcun effetto anche nel caso l'opzione NoCache/S è abilitata.

Cache/S

Questa opzione abilita la cache istruzioni e disabilita la cache dati per il programma installato. Se la MMU viene usata da WHDLoad, la memoria Chip verrà contrassegnata come Cacheable Writethrough (imprecisa).
L'opzione non ha effetto se NoCache/S viene impostata.

Chk/S

Questa opzione è uno shortcut (scorciatoia) ed abilita le opzioni ChkBltSize/S, ChkBltWait/S e ChkColBst/S.

ChkBltHog/S

Questa opzione controlla tutto il tempo che il bit blthog (bltpri) nel registro custom.dmacon non sia impostato. Questa caratteristica funziona solo in congiunzione con una delle opzioni SnoopOCS/SnoopECS/SnoopAGA.

ChkBltSize/S

Questa opzione controlla che il programma installato utilizzi correttamente il blitter, così verranno utilizzate solo aree di memoria valide per le operazioni del blitter. Questa caratteristica funziona solo in congiunzione con una delle opzioni SnoopOCS/SnoopECS/SnoopAGA.

ChkBltWait/S

Questa opzione controlla che il programma installato attenda che il blitter finisca un lavoro prima di fargliene cominciare un'altro. Questa caratteristica funziona solo in congiunzione con una delle opzioni SnoopOCS/SnoopECS/SnoopAGA.

ChkColBst/S

Questa opzione controlla per tutto il tempo che il bit color nel registro custom.bplcon0 sia impostato. Questa caratteristica funziona solo in congiunzione con una delle opzioni SnoopOCS/SnoopECS/SnoopAGA.

ChkCopCon/S

Questa opzione controlla che il programma installato non abiliti l'accesso da parte del copper ai registri DMA, tramite l'impostazione di custom.copcon. Questa caratteristica funziona solo in congiunzione con una delle opzioni SnoopOCS/SnoopECS/SnoopAGA.

ChkInts/S

Questa opzione controlla ad ogni interrupt se c'é una coppia corrispondente in intreq e intena per questo interrupt. In caso non ci fosse il programma installato sarà terminato con un appropriato requester di errore. Questa caratteristica permette di scoprire con facilità il riconoscimento di problemi di interrupt in sistemi veloci (68040/060) o hardware malfunzionante che causa interrupt non richiesti. A causa del fatto che la condizione può aumentare se gli interrupt vengono disabilitati tramite intena nello stesso momento che avviene un interrupt, questo è stato implementato come uno switch.

ChipNoCache/S

Questa opzione disabilita la cacheabilità della Memoria-Chip (BaseMem). Dovrebbe essere utilizzata con hardware che non permette la cacheabilità della Memoria-Chip (come le schede BlizzardPPC) per evitare rallentamenti nella velocità di esecuzione del programma installato. Vedi anche CPU Cache Handling.

CoreDump/S

Se selezionata, ogni volta che si uscirà da un programma installato, WHDLoad creerà un dump della memoria e dei registri. Questo può essere utile per rippare un modulo musicale dal dump della memoria o per il debugging.

CoreDumpPath

La directory di destinazione per tutti i file di dump creati da WHDLoad.

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

Queste opzioni non vengono utilizzate direttamente da WHDLoad, ma possono essere testate dallo Slave per controllare varie cose specifiche dello stesso. Custom/K può contenere una stringa e Custom1-5/K possono solo contenere un numero intero. Controlla la documentazione dell'installatore per sapere se supporta le opzioni Custom.

D/S

Questa opzione risulta utile per il debugging. Se è abilitata e viene trovato un freezer software supportato in memoria, WHDLoad simulerà un NMI prima di eseguire la prima istruzione CPU contenuta nello Slave.

Data/K

Tramite questa opzione si può specificare una directory in cui WHDLoad entrerà prima di cominciare a caricare dati per il programma installato. Questa opzione sovrascrive il valore ws_CurrentDir contenuto nello Slave.

DCache/S

Questa opzione abilita le cache dati e istruzioni per il programma installato. Se la MMU viene utilizzata da WHDLoad allora la memoria Chip verrà segnata come Cacheable Writethrough (imprecisa).
L'opzione non ha effetto se viene impostata anche NoCache/S.

DebugKey/K/N

Imposta il codice di rawkey per uscire dal programma con il debug (scrive i file coredump ed esce). Questo funziona solo se expert mode è attiva, se il VBR è stato spostato da WHDLoad (NoVBRMove/S non è impostata e la CPU è almeno un 68010) o se lo Slave lo supporta.

ExecuteCleanup

Con questa opzione si può specficare un comando che WHDLoad eseguirà all'uscita.

ExecuteStartup

Con questa opzione si può specficare un comando che WHDLoad eseguirà all'avvio. Può essere utile per disabilitare hardware che crea problemi con WHDLoad, per arrestare lo stack TCP/IP o cose del genere.

Expert/S

Questa opzione abilita l'expert mode (modalità esperto) di WHDLoad. Attualmente ha effetto sulla DebugKey/S e sui warning durante lo switching tra il programma installato e l'OS (color cycle copper screens). Se l'expert mode non è attiva la DebugKey/S non è disponibile. In questa modalità apparirà anche un nuovo pulsante in alcuni requester d'errore di WHDLoad. Questo pulsante chiamato Show Regs permette di vedere i registri ed informazioni di stato simile a quanto mostrato dal register dump.

ExpChip/S, ExpLocal/S, Exp24Bit/S

Se il programma installato utilizza la memoria espansa (ws_ExpMem), queste opzioni possono essre utilizzate per forzare WHDLoad ad allocare questa memoria rispettivamente nella memoria Chip, nella memoria Local o in nella 24BitDMA. Questo può risultare in un degrado delle prestazioni perché la memoria specificata potrebbe essere accessa in modo più lento dalla CPU rispetto alla memoria Fast di default. Puoi utilizzare tool di terze parti (come SysInfo, GvpInfo,...) per controllare la configurazione della tua memoria e vedere quale proprietà possiede una certa memoria.
In generale queste opzioni sono intese per risolvere problemi di compatibilità per quanto riguarda i programmi installati su sistemi veloci rendendoli più lenti nell'esecuzione mediante l'utilizzo di memoria più lenta.

FileLog/S

Questa opzione è intesa solo per il debugging. Vedi Dumps and Logfiles per maggiori informazioni.

FreezeKey/K/N

Se utilizzi uno dei software freezer supportati (HrtMon o Thrillkill) puoi servirti di questa opzione per impostare un codice rawkey mediante il quale WHDLoad entrerà nel freezer. Perché funzioni, il VBR deve essere spostato da WHDLoad (NoVBRMove/S non deve essere impostato e la CPU deve essere almeno un 68010) ed il freezer deve essere attivo.

MMU/S

Questa deve venire utilizzata su sistemi con 68030 per far funzionare le funzioni relazionate alla MMU (memory protection, migliore gestione delle cache , Snooping, funzioni resload_Protect#?). Su 68040/060 questa opzione non ha effetto perché la MMU viene usata di default. Si raccomanda di impostare questa opzione nel file di configurazione globale in tutti i sistemi con 68030 ed un MMU operativa (ad esempio non in un 68EC030) poiché incrementa la stabilità e la sicurezza di molto. Se viene impostata anche NoMMU/S questa opzione non avrà effetto.

NoAutoVec/S

Se selezionata WHDLoad non uscirà in caso di un inaspettato interrupt autovector o di un NMI (vettori #25-31 / $64-$7c). Questa opzione dovrebbe venire utilizzata su sistemi/hardware che generano questi interrupt a caso per impedire a WHDLoad di uscire (sarebbe meglio ancora rimuovere questo hardware!).

NoCache/S

Se selezionato tutte le cache verranno disabilitate.
Questa opzione sovrascive BranchCache/S, Cache/S, DCache/S, StoreBuffer/S e SuperScalar/S.

NoFileCache/S

Disabilita le cache per i file di WHDLoad e forza ad uno switch al SO per ogni operazione disco del programma installato.
Questa opzione disabilita Preload/S.

NoFilter/S

Disabilita il filtro audio. Nota che questa opzione ha effetto solo durante l'inizializzazione all'avvio, se il programma installato cambierà lo stato del filtro audio questa opzione non avrà affetto.

NoFlushMem/S

Normalmente WHDLoad esegue un flush della memoria all'avvio per ottenerne quanta più possibile per l'operazione di Preload/S. Questo rimuoverà tutte le risorse non utilizzate come librerie, font ecc. dalla memoria. Mediante l'utilizzo di questa opzione WHDLoad non eseguirà il flush. Può essere usata su sistemi con molta memoria per incrementare le prestazioni del sistema.

NoMMU/S

Se questa opzione è impostata WHDLoad non utilizzerà la MMU. Questa è un'opzione critica e pericolosa raccomandata solo per il testing e il debugging e non per il normale utilizzo. Vedi il capitolo MMU per maggiori informazioni. L'opzione ha priorità su MMU/S.

NoTrapHandler/S

Se questa opzione è impostata WHDLoad utilizzerà la vector table originale dall'OS che è attivo al momento dell'avvio di WHDLoad. All'avvio WHDLoad copierà la vector table di sistema invece di crearsene una. Questo può tornare utile per il debugging e non dovrebbe essere impostata per il normale utilizzo. Attenzione: se un exception handler richiamato attraverso la vector table originale tenterà la chiamata ad una funzione del SO o proverà ad usarne le strutture dati il sistema andrà in crash (ad esempio exec.Alert).

NoVBRMove/S

Di default WHDLoad muove la vector table mediante il VBR (Vector Base Register) in una locazione di memoria differente da $0. Questo ha il vantaggio che il programma installato non può cabiare la vector table, cosa che incrementerà la sicurezza e la stabilità di WHDLoad in modo rilevante. Alcuni programmi installati/slave non funzioneranno correttamente con un VBR spostato. La ragione di questo è che il programma installato può fare cose strane che non sono supportate da un VBR spostato o l'autore dell'installatore era troppo lame per supportarlo. In questo caso, questa opzione deve essere impostata per prevenire che WHDLoad sposti il VBR.
Un'altra caratteristica del spostamento del VBR è che WHDLoad può controllare la tastiera ogni volta che si presenterà un interrupt dell'Autovector. Con questo controllo WHDLoad è in grado di terminare il programma installato indipendentemente dal lavoro del programma installato/slave se vengono premuti QuitKey/S o DebugKey/S (similarmente il programma installato può essere interrotto quando viene premuto FreezeKey/S).
La capacità di spostare il VBR richiede almeno un 68010 per funzionare. Con un 68000 questa opzione non ha effetto, perché il VBR è sempre a $0 e non può essere spostato.

NoWriteCache/S

Questa opzione disabilita le cache di scrittura disco di WHDLoad. Senza questa opzione WHDLoad tenterà di utilizzare la cache per tutte le operazioni di scrittura e di mantenerle in memoria fino all'uscita dal programma per evitare switch non necessari al sistema operativo.

NTSC/S

Se selezionata, WHDLoad userà un display NTSC (60Hz) per il programma installato. In un Amiga PAL, il monitor driver NTSC deve essere installato in "DEVS:Monitors/".

PAL/S

Se selezionata, WHDLoad userà un display PAL (50Hz) per il programma installato. In un Amiga NTSC, il monitor driver PAL deve essere installato in "DEVS:Monitors/".

Preload/S

Se questa opzione è abilitata, WHDLoad caricherà tutti i file e le immagini disco che sarà possibile nella memoria (dipendentemente da quanta memoria è libera) all'avvio. Questo incrementerà le prestazioni del programma installato mentre sarà in esecuzione, poiché si eviterà lo switch al SO per caricare i dati dall'harddisk. Questa opzione dovrebbe essere sempre abilitata.

QuitKey/K/N

Imposta il codice rawkey per uscire dal programma, funziona solo se il VBR viene spostato da WHDLoad (NoVBRMove/S non deve essere impostata e la CPU deve essere almeno un 68010) o se lo Slave lo supporta.

ReadDelay/K/N

Questa opzione specifica il tempo in 1/50 di secondo che WHDLoad dovrà attendere dopo aver caricato i dati dai dischi, o il tempo di attesa dopo il Preload. Questo risolve problemi con drive (ad esempio lettori CD) che necessitano di operazioni supplementari dopo la lettura (come spegnere il motore).

RestartKey/K/N

Tramite questa opzione puoi impostare un codice rawkey alla quale pressione WHDLoad riavvierà il programma installato.

ShowRegs/K/N

Questa opzione è utile solamente in congiunzione con Expert/S. Con questa opzione si può specificare il programma che WHDLoad utilizzerà per visualizzare il dump dei registri se il pulsante Show Regs in un requester d'errore di WHDLoad viene premuto. WHDLoad aggiungerà il nome del file temporaneo salvato (attualmente T:.whdl_register) nella stringa di comando specificata.

Slave

Il nome dello slave che dovrà essere utilizzato da WHDLoad. Lo slave contiene il codice di interfaccia che è richiesto per la comunicazione tra il programma installato e WHDLoad.

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

Queste opzioni abilitano lo Snoop dei registri Cia/Custom di WHDLoad.

SplashDelay/K/N

Questa opzione specifica il tempo in 1/50 di secondo durante il quale WHDLoad mostrerà la finestra di informazioni all'avvio. Se lo SplashDelay/K/N è inferiore a ReadDelay/K/N viene ignorato e la finestra viene visualizzata per il tempo specificato in ReadDelay/K/N. La finestra viene visualizzata almeno tanto quanto necessario per il Preload/S.
Se l'opzione viene impostata a 0 la finestra non verrà visualizzata.

StoreBuffer/S

Questa opzione abilita lo Store Buffer del 68060. Con altre CPU non ha effetto.
L'opzione non ha effetto se viene impostata anche NoCache/S.

SuperScalar/S

Questa opzione abilita la capacità del 68060 di eseguire più istruzioni per ciclo macchina. Non ha effetto con altre CPU.
L'opzione non ha effetto se viene impostata anche NoCache/S.

TimeOut/K/N

Se impostata l'esecuzione di WHDLoad e del programma installato verrà terminata dopo il periodo di tempo specificato. Richiede che l'opzione NoVBRMove/S non sia impostata e che il programma installato non modifichi il timer ciaa.ciatod. Il tempo è specificato in 1/50 di secondo. Per stabilirne la durata per un demo o un gioco abilita l'opzione Expert/S e imposta una DebugKey/K/N, quando il punto in cui vuoi venga terminato il programma è stato raggiunto premi il debug key. Adesso controlla nel file creato .whdl-register e ricerca il valore ciaa-event. Se la frequenza della tua rete elettrica è di 50Hz allora questo è il valore da impostare con TimeOut/K/N, se invece la frequenza è di 60Hz allora devi moltiplicare il valore per 5/6.

WriteDelay/K/N

Questa opzione specifica il tempo in 1/50 di secondo che WHDLoad dovrà attendere dopo aver scritto fisicamente sul disco. Ha effetto su tutte le funzioni resload_Save#? e la funzione FileLog/S. Questo ha un senso poiché il filesystem di solito non scrive immediatamente i dati nel disco. C'è bisogno di un pò di tempo (1..3 secondi) perché tutte le strutture del filesystem vengano aggiornate con successo. Il valore di default per WriteDelay è 150 che fa attendere WHDLoad per 3 secondi dopo ogni scrittura nell'harddisk. Puoi impostare questo valore a 0, ma in questo caso non dovrai mai uscire dal programma installato con un reset poiché i dati salvati potrebbero non essere stati scritti correttamente nel disco.