Utilização
O WHDLoad pode ser iniciado da linha de comandos (CLI/Shell) ou do Workbench.
As opções podem ser especificadas num ficheiro de configuração global e
através de argumentos ou usando Tooltypes. A opção
Slave (doravante denominado de Escravo) é normalmente
requerida. Outras opções podem também ser necessárias, dependendo do hardware e
do programa a executar dentro do WHDLoad. Quando iniciado da linha de comandos,
o WHDLoad encerra com um dos seguintes códigos de retorno:
- 0 - execução com sucesso
- 10 - erro, erro de Escravo, Escravo não conseguiu ser executado
devido a constrangimentos anteriores, a mensagem de erro é mostrada
- 20 - erro fatal, não existe suficiente memória livre
- > 100 - o Escravo foi executado, retornou com 100 + TDREASON
Opções e configuração global
Existem opções locais e globais. As opções locais são especificadas como
argumentos através da linha de comando ou como ToolTypes quando iniciadas
do Workbench.
O ficheiro de configuração global é "S:WHDLoad.prefs
". É um
ficheiro ASCII regular que contém uma opção por linha. Linhas vazias e
comentários são ignorados. Cada comentário encontra-se numa linha, iniciado pelo
caracter ";
" continuando até ao final da linha.
Um ficheiro de configuração exemplo encontra-se no pacote WHDLoad ("S/WHDLoad.prefs
").
Lista de opções disponíveis
existem três tipos de opções:
numérica: |
o valor de cada opção é um número inteiro,
na linha de comandos é necessário utilizar notação decimal, como
ToolType você também poderá usar notação hexadecimal assinalada
pelo caracter "$ " a preceder o número. |
cadeias de caracteres: |
o valor da opção é uma cadeia de caracteres (string) |
comutador: |
a opção irá ser activa se especificado (valor boleano) |
A coluna Local mostra se a opção pode ser usada na linha de
comandos e como tooltype através do ícone. A coluna Global mostra
se a opção pode ser usada no ficheiro de configuração global.
Muitas das opções não se encontram disponíveis em
WHDLoadCD32. A coluna CD³² mostra se a opção se encontra
presente nesta versão especial do WHDLoad.
Exemplo
Descrição de cada Opção
ButtonWait/S
Esta opção não afecta o WHDLoad
em si, mas pode ser testado pelo Escravo.
Esta opção se activa significa que
o utilizador deseja que o programa instalado aguarde que um botão seja
pressionado quando mostra imagens e/ou reproduz música e, normalmente isto é
feito apenas durante um tempo muito limitado (devido ao carregamento HD/RAM
comparado com o carregamento lento de disquetes).
BranchCache/S
Esta opção activa a cache ramal
do 68060. Em outros tipos de CPU não tem qualquer efeito.
A opção não tem
efeito se NoCache/S também estiver activa.
Cache/S
Esta opção activa a instrução de cache e
desactiva a cache de dados para o programa instalado. Se o MMU é utilizado pelo
WHDLoad, marca a Memória-Chip como Cacheable Writethrough (impreciso).
A opção não tem efeito se NoCache/S também estiver
activa.
Chk/S
Esta opção é um atalho que activa as opções ChkBltSize/S, ChkBltWait/S e ChkColBst/S.
ChkBltHog/S
Esta opção verifica que durante
todo o tempo o bit blthog
(bltpri
) no registo
custom.dmacon não é activo. Esta característica apenas funciona em conjunção com
uma das opções SnoopOCS/SnoopECS/SnoopAGA.
ChkBltSize/S
Esta opção verifica se o programa
instalado utiliza o blitter correctamente, para que apenas áreas de
memória válida sejam utilizadas para as operações de blitter. Esta
característica apenas funciona em conjunção com uma das opções SnoopOCS/SnoopECS/SnoopAGA.
ChkBltWait/S
Esta opção verifica que o
programa instalado aguarda correctamente para que o blitter termine antes
de começar uma nova tarefa de blitter. Esta característica apenas
funciona em conjunção com uma das opções
SnoopOCS/SnoopECS/SnoopAGA.
ChkColBst/S
Esta opção verifica que todo o
tempo que o bit de côr (color
) no registo custom.bplcon0
está activo. Esta característica apenas funciona em conjunção com uma
das opções SnoopOCS/SnoopECS/SnoopAGA.
ChkCopCon/S
Esta opção verifica que o programa
instalado não activa o acesso de cobre para registos de DMA via a função
custom.copcon
. Esta característica apenas funciona em conjunção com uma
das opções SnoopOCS/SnoopECS/SnoopAGA.
ChkInts/S
Esta opção verifica se em cada
interrupção que ocorre se existe um par semelhante em intreq
e
intena
activo para esta interrupção. Caso contrário, o que estiver
instalado será terminado com um requisito de erro apropriado. Esta
caracteristica permite a fácil detecção de constrangimentos de aceitação em
máquinas mais rápidas (68040/060) ou hardware estragado que cause interrupções
indesejadas. Dado que a condiçao pode também surgir se as interrupções forem
desactivas por ter activo intena
ao mesmo tempo que uma interrupção
que ocorra, esta opção foi implementada como uma opção comutável.
ChipNoCache/S
Esta opção desactiva a
capacidade de cache Memória-Chip (BaseMem). Deve ser utiliado em hardware que
não permita a capacidade de cache da Memória-Chip (x. BlizzardPPC boards) para
evitar lentidões na velocidade de execução do programa instalado. Ver também
Lidando com a Cache de CPU.
CoreDump/S
Se seleccionado, em cada saída de um
programa instalado, o WHDLoad cria a memory and register a
a memoria e a descarga de registos. A opção poderá ser
útil para copiar um modulo de música da memória descarregada ou para fazer o
depuramento de erros.
CoreDumpPath
A directoria alvo para todos os
ficheiros de descarga criados pelo WHDLoad.
Custom/K, Custom1/K/N, Custom2/K/N, Custom3/K/N,
Custom4/K/N, Custom5/K/N
Estas opções não são utilizadas pelo WHDLoad por
si, mas podem ser testadas pelo Slave (escravo) para controlar várias coisas
específicas ao Slave. Custom/K pode conter uma cadeia de caracteres e
Custom1-5/K apenas poderá conter um número inteiro. Verifique a documentação da
instalação específica se suportar opções Costumizadas.
D/S
Esta opção é útil para depuramento de erros. Se
esta opção estiver activa e um congelador (freezer) de software suportado
(Hrt/TK) é encontrado em memória, o WHDLoad simula um NMI antes da execução da
primeira instrução de CPU contida no escravo (Slave).
Data/K
Ao utilizar esta opção, uma directoria pode
ser especificada que será a directoria base para o ficheiro de operações do
programa instalado. Também, multiplas directorias podem ser especificadas
separadas por uma vírgula (assim o nome de uma directoria especificada não
poderá conter uma vírgula!). Se múltiplas directorias de dados são utilizadas no
carregamento, todas as directorias especificadas são experimentadas em ordem
para carregar um ficheiro. A escrita ira sempre ocorrer na primeira directoria
de dados. Estas opções sobrescrevem o valor ws_CurrentDir contido no Slave.
DCache/S
Esta opção permite a instrução e os dados
de cache para o prgrama instalado. Se o MMU é utilizado pelo WHDLoad, marcará a
Memória-Chip como Cacheable Writethrough (impreciso).
A opção não
tem qualquer efeito se NoCache/S estiver activo.
DebugKey/K/N
Activa o código rawkey para sair do programa com vista a depuramento de
erros (descarregar ficheiros coredump e sair). Isto
funciona apenas se o modo de perito está activo e o VBR é
movido pelo WHDLoad (NoVBRMove/S não esteja activo e o
CPU seja pelo menos um 68010) ou o Slave por si o suporte.
ExecuteCleanup
Com esta opção, um comando
pode ser especificado que irá ser executado pelo WHDLoad à saída.
ExecuteStartup
Com esta opção, um comando
pode ser especificado que será executado pelo WHDLoad no arranque. Pode ser
utilizdo para desactivar o hardware que provoca constrangimentos em conjunção
com o WHDLoad, parar a pilha de TCP/IP ou algo similar.
Expert/S
Esta opção activa o modo de perito do
WHDLoad. Actualmente apenas afecta características e avisos de DebugKey/S durante a mudança entre o programa instalado e o
SO (ciclos de cor de ecrãs de cobre). Se o modo de perito não estiver activo DebugKey/S não estará disponível. No modo de perito existe
outro botão que aparece em alguns requisitores de erros pelo WHDLoad. Este botão
chamado Show Regs permite mostrar informação de
registo e estado de forma similar como e escrito no descarregamento de registos.
ExpChip/S, ExpLocal/S, Exp24Bit/S
Se o programa
instalado usar memória de expansão (
ws_ExpMem) estas opções podem ser utilizadas para forçar o WHDLoad a alocar
a respectiva memória na Memória-Chip, Memória Local ou Memória 24BitDma. Isto
poderá resultar numa degradação de performance porque a memória especificada
pode ser mais lentamente acedida pelo CPU comparado com a memória seleccionada
por omissão, a memória Rápida FastMem. Poderá utilizar as ferramentas de
terceiros (por exemplo, SysInfo, GvpInfo, etc.) para verificar a configuração de
memória e ver que memória tem que propriedades.
Em regra geral, estas opções são intencionadas para resolver constrangimentos de
compatibilidade de programas instalados em máquinas rápidas, tornando-as mas
lentas a executar devido à utilização de memória mais lenta.
FileLog/S
Esta opção serve apenas para o
propósito de depuração de erros. Ver Dumps e
Logfiles para mais informações.
FreezeKey/K/N
Se estiver a usar um dos
congeladores (freezer) de software suportados (HrtMon or Thrillkill),
você podera utilizar esta opção para configurar um código de
rawkey no qual ao ser pressionado, o WHDLoad irá
entrar no congelador. Para que isto funcione, o VBR terá de ser movido pelo
WHDLoad (NoVBRMove/S não deverá estar activo e o CPU
deverá ser pelo menos um 68010) e o congelador deverá estar activo. Conslte
também o capítulo System Monitors / Freezer para
informações adicionais.
FullChip/S
Especificando esta opção causa que o
WHDLoad a gravar e a restaurar não apenas a área de memória-chip que está activa
como ws_BaseMemSize no escravo, mas
de facto como toda a memória-chip (execbase.MaxLocMem). Se o WHDLoad usar o MMU
que está presente para proteger memória, esta cobre apenas acessos ilegais
causados pelo CPU. Não cobertos são os acessos directos a memória por
co-processadores como Blitter/Disk-DMA. Estas acções DMA têm a capacidade para
corromper a memória-chip indetectadas pela protecção de memória do WHDLoad. Com
esta opção, seleccionadas tais falhas não poderão prejudicar o sistem operativo
anfitrião porque a memória chip é guardada e restaurada completamente.
Antes do programa instalado ser iniciado, a memória chip adicional guardada
(a parte entre BaseMemSize e MaxLocMem) irá ser preenchida por um padrão
especial. Após o programa instalado tiver retornado, o WHDLoad verifica que se a
memória adicional foi alterada. Se houver uma alteração, o WHDLoad irá mostrar
um requisito de erro apropriado. Apenas neste caso é que a memória adicional irá
ser escrita para o ficheiro de descarregamento de
memória (não o ficheiro de descarregamento
completo), o que permitirá investigação adicional.
Esta opção poderá ser útil para desenvolvimento/depuramento de erros para
evitar corromper o AmigaOS anfitrião e também ajudar instalações temporariamente
quebradas em que todos os erros do programa instalado não tenham sido
completamente resolvidos.
MMU/S
Esta opção deverá ser usada em máquinas 68030
para pôr as características relacionadas com o MMU a funcionar (as funções de protecção de memória, gestão de
cache melhorada, Snooping e resload_Protect#?). No 68040/060 esta opção não tem
efeito porque o MMU irá ser utilizado por omissão. É recomendado activar esta
opção no ficheiro de configuração global em todos os sistemas contendo um 68030
com um MMU funcional (i.e. não um 68ec040) porque irá aumentar por muito a
estabilidade e segurança. Se a opção NoMMU/S tambem
estiver activa, esta opção não irá ter qualquer efeito.
NoAutoVec/S
Se seleccionado, o WHDLoad não irá
sair se um interruptor de autovector ou NMI inesperado tenha ocorrido (vectores
#25-31 / $64-$7c). Isto ever ser usado em sistemas/hardware quer irá criar
aleatoriamente tais interrupções para previnir que o WHDLoad saia (ou melhor,
remover o hardware defeituoso!).
NoCache/S
Se seleccionado, todas as caches serão desactivadas.
Esta opção sobrepõe-se a
BranchCache/S, Cache/S, DCache/S, StoreBuffer/S eSuperScalar/S.
NoFileCache/S
Desactiva a cache de ficheiro
do WHDLoad e força uma mudança para o SO para cada operação de disco do programa
instalado.
Esta opção desactiva Preload/S.
NoFilter/S
Desactiva o filtro de áudio. De notar
que esta opção apenas afectra a inicialização no arranque, se o programa
instalado por si alterar o estado do filtro de áudio é que esta opção não irá
ter qualquer efeito.
NoFlushMem/S
Normalmente o WHDLoad liberta a
memória no arranque para obter a maior quantidade de memória livre que possível
para a operação de Preload/S. Isso ir remover da memória
todos os recursos como bibliotecas, fontes, etc. Ao usar esta opção o WHDLoad
não irá libertar (fazer flush) à memória. Pode ser usado em sistemas com
muita memória livre para evitar estar a recarregar recursos residentes e assim
melhorar o desempenho do sistema.
NoMemReverse/S
Se esta opção estiver
activada o WHDLoad não irá alocar memória usando a flag MEM_REVERSE. Existem
relatos que usar esta bandeira causa problemas em algumas configurações
(configurações usando memória o encaixe PCMCIA do A600/A1200 para memória
rápida, configurações com um M-Tec 1230/8 MB OS3.0) A razão para estes
constrangimentos não é conhecido. Esta opção pode também ajudar se a parte
superior da RAM estiver defeituosa, porque o WHDLoad irá depois usar memória num
endereço mais baixo primeiro. Se obtiver erros estranhos, esta opção poderá
valer a pena experimentar.
Esta opção foi introduzida no WHDLoad v16.8.
NoMMU/S
Se esta opção estiver activa, o WHDLoad não
ira usar o MMU. Esta é uma opção crítico e perigosa, recomendada apnas para
teste e depuramento de erros, e não para uso normal. Ver o capítulo sobre o MMU para mais informações. Esta opção
sobrepõe-se a MMU/S.
NoReq/S
Esta opção apenas poderá ser usada quando o
WHDLoad tiver sido iniciado da linha de comandos (CLI/Shell). Iniciado do
Workbench não terá qualquer efeito. Esta opção congela o WHDLoad para não
mostrar quaisquer requisitores numa nova janela separada, o que irá fazer é
enviar mensagens para a janela de comandos de onde o WHDLoad tenha sido
iniciado.
NoResInt/S
Esta opção desactiva interrupções
durante a execução de funções resload. Normalmente, as interrupções são
permitidas enquanto as funções resoad são executadas. As interrupções poderão
reproduzir som, actualizar o ecrã ou fazer outro trabalho importante. Porém,
utilização indevida de interrupções poderá destruir áreas de dados internas do
WHDLoad, o que irá tipicamente levar a quebras repentinas de funcionamento
(crashes) do WHDLOad e provavelmente do sistema operativo. Esta opção
pode ser usada para verficar tais problemas. Se uma instalação se comportar de
forma estranha ou quebrar o funcionamento do WHDLoad sem esta opção, mas
funcionar normalmente com esta opção, é porque a razão é muito provavelmente um
constrangimento de interrupções. Em tais casos, a instalação precisa de ser
arranjada.
NoTrapHandler/S
Se esta opção estiver
activa, o WHDLoad irá usar a tabela original de vectores do SO que estará activa
no início do WHDLoad. No arranque o WHDLoad irá copiar a tabela de sistema de
vectores em vez de criar a sua própria. Será apenas útil para o propósito de
depuramento de erros e não deverá ser usada para operação normal. Aviso: se um
lidador (handler) de excepções chamado através da table original de
vectores tentar chamar qualquer função de SO ou tentar usar estruturas de dados
do SO, a máquina irá quebrar o funcionamento (ex. exec.Alert).
NoVBRMove/S
Por omissão o WHDLoad move a tabela
de vectores usando o VBR (Vector Base Register) para uma localização de
memória diferente de $0. Isto terá a vantagem que o programa instalado não
poderá alterar a tabela de vectores, o que aumenta substancialmente a segurança
e estabilidade do WHDLoad. Alguns programas/escravos não irão correr
correctamente com um VBR que tenha sido movido. A razão para tal é que o
programa instalado poderá realizar algo estranho que não seja suportado pelo VBR
que tenha sido movido ou o autor da instalação foi demasiado fatela para
suportar um VBR movido. Em tal caso, esta opção deverá estar activa para
previnir que o WHDLoad de mover o VBR. Outra característica do VBR movido é que
o WHDLoad é capaz de terminar o programa instalado de forma independente do
trabalho do programa/escravo se QuitKey/S ou DebugKey/S é pressionado (de forma similar, o programa
instalado pode ser interrompido quando FreezeKey/S é
pressionado).
A característica do VBR movido requer pelo menos um 68010 para
trabalhar. Num 68000 esta opção não tem qualquer efeito, porque o VBR é sempre
$0 e não pode ser movido.
NoWriteCache/S
Esta opção desactiva a
característica de escrita de cache do WHDLoad. Sem esta opção o WHDLoad irá
tentar pôr em cache todas as operações de escrita em memória e as diferem até o
programa sair para evitar comutações desnecessárias para o sistema operativo.
NTSC/S
Se seleccionado, o WHDLoad irá utilizar uma
amostragem de 60Hz para o programa instalado. Num Amiga que seja PAL, o driver
de monitor NTSC deverá ser instalado em "DEVS:Monitors/
".
PAL/S
Se seleccionado, o WHDLoad irá usar uma
amostragem de 50Hz para o programa instalado. Num Amiga NTSC, o driver de
monitor PAL deverá ser instalado em "DEVS:Monitors/
".
Preload/S
Se esta opção estiver activa, o WHDLoad
irá carregar tantos ficheiros e imagens de disquetes quanto possível para a
memória no arranque (dependendo de quanta memória livre tiver). Isto aumenta o
desempenho quando o programa instalado estiver a correr, isto porque evita
comutar para o SO para carregar dados directamente disco rígido. Esta opção
deverá estar sempre activa.
QuitKey/K/N
Activa o código de
rawkey para sair do programa. Funciona apenas se o
VBR é movido pelo WHDLoad (NoVBRMove/S não deverá estar
activo e o CPU deverá ser pelo menos um 68010) ou o Escravo por si o suporte.
ReadDelay/K/N
Esta opção especifica o tempo em
1/50-ávos de segundo, o tempo que WHDLoad irá aguardar que tenha feito o
carregamento de dados dos dos discos, e também irá aguardar este tempo após o
pré-carregamento tenha terminado. Isto soluciona questões com drives (por ex.,
leitores de CD) que não quererão realizar ago após terem feito uma leitura, como
o motor da drive ter sido desligado.
RestartKey/K/N
Usando esta opção, poderá
configurar um código rawkey, o qual ao ser pressionado
o WHDLoad irá recomeçar o programa instalado em conjunção com a opção SavePath/K. Poderá ser necessário activá-lo explicitamente
em vez de deixar que o WHDLoad determiná-lo se você tiver várias versões do
mesmo jogo instaladas qqe utilizem o mesmo Escravo mas que tenham ficheiros de
guardar o estado (save files) incompatíveis. Poderá também ser útil se o
Escravo não contiver o nome do jogo e que o nome de ficheiro do Escravo não for
o que você gostaria de ter como o nome da directoria para guardar os ficheiros
de estado (save directory).
SavePath/K
Esta opção força o WHDLoad a
redireccionar todas as operações de escrita para o programa instalado para um
local diferente no disco. Esta opção especifica a directoria base para todos
os programas instalados. Cada programa instalado irá tea sua própria
subdirectoria dentro aí dentro. A subdirectoria irá ser criada pelo WHDLoad se
ela não existir (durante a primeira operação de escrita). O nome de cada
subdirectoria pode depois ser especificada usando a opção
SaveDir/K ou então quando não estiver activa será derivada pelo WHDLoad das
informações do Escravo (ws_name ou o nome
de ficheiro do Escravo). Internmete esta directoria para guardar os estados é
lidada como uma directoria adicional de Dados.
ShowRegs/K/N
Esta opção é apenas útil quando em
conjunção com a opção Expert/S. Com esta opção o programa
que irá ser usado pelo WHDLoad para mostrar o descarregamento de registos pode
ser especificado se o botão Show Regs num requisitor de erro for
pressionado. O WHDLoad irá anexar o nome do ficheiro do temporário que guardará
o estado (actualmente T:.whdl_register) para a cadeia de caracteres do
comando especificado.
Slave
Nome do Escravo que deverá ser usado pelo
WHDLoad. O Escravo contém o código de interface que é necessário para
comunicar entre o programa instalado e o WHDLoad.
Snoop/S, SnoopAGA/S, SnoopECS/S, SnoopOCS/S
Estas
opções activam a característca de Cia/Custom register
snoop do WHDLoad.
SplashDelay/K/N
Esta opção especifica o tempo
em 1/50ávos de segundo que o WHDLoad mostra a janela de informação no arranque.
Se SplashDelay/K/N for mais reduzido que ReadDelay/K/N
então será ignorado e a janela é mostrada usando o tempo de ReadDelay/K/N. A janela mostrada é durante o tempo que
Preload/S estiver a funcionar.
Se a opção estiver
certa a 0 (zero), nenhuma janela será mostrada.
StoreBuffer/S
Esta opção activa o Store
Buffer do 68060. Em outros tipos de CPU não terá qualquer efeito.
A opção
não terá qualquer efeito se NoCache/S também estiver
activa.
SuperScalar/S
Esta opção actva a
funcionalidade do 68060 executar multiplas instruções por cíclo de máquina. Em
outros tipos de CPU não tem qualquer efeito.
A opção não tem qualquer efeito
se NoCache/S também estiver activo.
TimeOut/K/N
Se activo permite ao WHDLoad e ao
programa instalado sair após um tempo especificado. Requer que a opção
NoVBRMove/S não esteja activa e que o programa
instalado não modifique o temporizador ciaa.ciatod
. O tempo após a
saida é especificado em 1/50ávos de um segundo. Para medir esse tempo para uma
demo ou jogo, activar a opção Expert/S e activar uma
DebugKey/K/N; quando chegar ao ponto onde você pretender
sair do programa é atingido, pressionar a tecla de debug. Agora poderá olhar
para o ficheiro .whdl_register e procurar o valor de
ciaa-event
. Se a sua Fonte de Alimentação tiver uma frequência de
50 Hz então será o valor que você terá de colocar com TimeOut/K/N; se a
frequência for 60 Hz então terá de multiplicar o valor por 5/6.
WriteDelay/K/N
Esta opção especifica o
tempo em 1/50ávos de segundo que o WHDLoad irá aguardar após escrever qualquer
coisa física para o disco. Ist afecta todas as funções
resload_Save#? e a característica
FileLog/S. Isto faz sentido porque sistemas de ficheiros
não escrevem usualmente dados imediatamente para disco. Isto demora algum tempo
(1..3 segundos) até todas as estruturas do sistema de ficheiros tenham sido
actualizadas com sucesso. O valor por omissão para Write Delay é 150 o que
permite que o WHDLoad aguardar 3 segundos após cada escrita para disco rígido.
Você poderá colocar este valor a 0, devendo ter em atenção para nunca sair com
um reset do programa instalado porque dados guardados poderão não ser escritos
correctamente para disco.