quinta-feira, maio 11, 2023

MSX: Manual MSXDebug (CPU)

MSXDEBUG vr. 1.21, por Sergio Duric Calheiros - CPU 01/89, vr1.21 por A&L Software 1997

Novas implementações na versao 1.21

  • Vários bugs da versão 1.11 corrigidos.
  • Bug do comando PASSO (tecla DELETE) corrigido.
  • Totalmente funcional em MSX2, MSX2+ e Turbo R.
  • Mensagens de comandos mais elucidativas.
  • Apresentação de comandos mais detalhada.
  • Comando DIR agora com mascara.
  • Digitação de caracteres gráficos no prompt.
  • DUMP de tela a qualquer momento pela tecla CONTROL+P.
  • Novos comandos: HEADER, SLOAD, SSAVE, RESTART.

Resumo dos comandos

Atenção! Todos os dados dos comandos devem estar em hexadecimal!

DOS: retorna ao MSX-DOS.

MOVE inicio fim destino:  copia o bloco de dados compreendido entre "início" e "fim" para ¨destino".

FILL inicio fim dado: preenche o bloco de dados compreendido entre "início" e "fim" com o byte "dado".

EXEC endereco: executa o programa contido em "endereço".

DISP endereco: permite acessar/modificar os dados a partir de "endereço". As teclas de visualização são:

  •     seta para cima : volta 8 bytes (uma linha)
  •     seta para baixo : avança 8 bytes (uma linha)
  •     seta para esquerda : volta 192 bytes (uma tela)
  •     seta para direita : avança 192 bytes (uma tela)
  •     ESC  : volta ao prompt
  •     RETURN : edita dados

                 neste caso a edição é em hexadecimal. Para edição em ASCII tecle RETURN novamente (ainda, tecle RETURN outra vez para retornar à edição em hexadecimal). As teclas cursoras controlam a movimentação. A tecla ESC volta ao modo de visualização.

DIR [mascara]: lista os arquivos do disco determinados por "mascara". Sua ausência causa a listagem de todos os arquivos do disco.

DSAVE nome início fim: cria um arquivo em disco chamado "nome" contendo os dados compreendidos entre "início" e "fim".

DLOAD nome início: carrega um arquivo em disco chamado "nome" a partir de "início".

SOMA início fim: mostra a soma dos bytes compreendidos entre "início" e "fim".

BUSCA endereço string: procura "string" na memoria a partir de "endereço". Quando uma ocorrência é encontrada seu endereço é apresentado. Tecle S para continuar procurando ou ESC para voltar ao prompt.

BLOAD nome [offset]: carrega o arquivo binário "nome" em seu endereço correspondente. Se "offset" for especificado, carrega o arquivo no novo endereço.

BSAVE nome inicio fim [execução]: grava um arquivo binário "nome" contendo os dados compreendidos entre "inicio" e "fim", setando seu endereço de execução para "execução", se especificado (se não for, assume 0000h).

DASS endereço [origem]: desassembla o conteúdo da memoria a partir de "endereço". Se "origem" for especificado os endereços serão mostrados a partir de "origem", com um ponto na frente para indicar (ex.: .0100). As teclas de movimentação são:

  • RETURN : próxima instrução
  • ESPAÇO : próximas 23 instruções (uma tela)
  • ESC : volta ao prompt

APPEND nome inicio fim: adiciona ao arquivo "nome" o bloco de dados compreendido entre "início" e "fim".

SAVECOM nome inicio fim execução: converte programas binários para ambiente MSXDOS, criando um arquivo .COM chamado "nome" contendo o bloco de dados compreendido entre "início" e "fim" e com endereço de execução em "execução". São pedidos três dados:

  • Endereço da pilha : endereço da pilha do sistema.
  • Deslocamento : deslocamento do bloco de dados em relação a "início" quando da sua transferência para o destino exato.
  • Byte de mascara ROM: mascara para a configuração de slots para a execução do programa (normalmente, 0FCh, setando a pagina 0 para ROM).

SAVESCR nome início fim execução: converte telas gráficas binarias para ambiente MSXDOS, criando um arquivo .COM chamado "nome" contendo o bloco de dados compreendido entre "início" e "fim" e com endereço de execução em "execução". Este bloco deve ser um programa de desenho de tela gráfica. Em seguida o programa executa no disco outro arquivo de mesmo nome, mas com extensão .OVR. São pedidos os mesmos três dados do comando SAVECOM.

HEX dado1 dado2: fornece a soma e a diferença entre "dado1" e "dado2".

PASSO início: permite a execução, passo a passo, de um programa a partir do endereço "início". Na tela visualizam-se o programa, os registradores, os flags e a pilha do sistema. Os comandos são:

  • RETURN : executa instrução atual
  • DELETE : ignora instrução atual
  • CONTROL+G : passa a execução para o programa
  • CONTROL+L : executa chamada longa
  • SELECT : modifica conteúdo de registrador. Tecle o par de registradores desejado seguido de virgula (ou espaço) e do novo valor.
  • INSERT : insere breakpoints na execução do programa, que só são obedecidos por CONTROL+G. Tecle o numero do breakpoint (de 1 a 3) seguido de virgula (ou espaço) e do endereço
  • ESC : volta ao prompt

LDASS início fim [origem]: desassembla o conteúdo da memoria a partir de "endereço" ate' "fim" na impressora. Se "origem" for especificado os endereços serão mostrados a partir de "origem", com um ponto na frente para indicar    (ex.: .0100).

LDISP endereço: mostra na impressora os 192 bytes (uma tela) a partir de "endereço".

HEADER nome: informa o endereço inicial, final e de execução de "nome", se este for um arquivo binário.

RESTART: reinicializa o MSXDEBUG.

SLOAD setor drive endereço número: lê de "drive" um total de "número" setores a partir do setor "setor" e os coloca a partir de "endereço".

SSAVE setor drive endereço numero: grava em "drive" o conteúdo a partir de "endereço", num total de "número" setores, a partir do setor "setor" .

Copyright

O programa MSXDEBUG é de autoria de Sergio Duric Calheiros, e foi publicado em forma de projeto na revista CPU (depois, CPU MSX) dos números 7 a 22, contando com a colaboração de varias pessoas. Sua última versao, publicada em CPU MSX 22 e' a 1.11

A versao 1.21 do MSXDEBUG é de autoria de A&L Software em 1.997.