Capítulo 2 - ESCREVENDO NOMES
Agora, vamos usar a mesma sub-rotina para escrever um nome na tela. Vamos
aproveitar para ver uma ferramenta bastante útil na depuração de um programa:
o SI.
![]() |
Digite o programa ao lado. 10 Indica onde o programa irá começar. 20 Define uma etiqueta, ou seja, toda vez que o programa encontrar a palavra WRTVRM, substituirá pelo valor &H4D. 30 Atribui valor 0 aos registradores H e L. HL passa como parâmetro para a sub-rotina WRTVRM o endereço da VRAM. 0 fica em 0,0; 1 em 0,1, etc. 40 Passa para os registradores BC a posição inicial da primeira letra do nome. 50 Passa como parâmetro para A, o conteúdo da memória no endereço BC. 60 Chama sub-rotina da BIOS que escreve letra na tela. 70 Incrementa (x = x+1) HL (posição na tela). 80 Incrementa BC (posição no nome). 90 faz operação lógica com A, para setar os flags. O A contém o código ASCII da letra atual do nome. 100 Quando o caracter ASCII for 0, encerra o programa, senão GOTO loop. 110 "RETurn". 120 Cria a string com o nome. 130 Acrescenta um byte 0 ao final do nome, para indicar ao programa onde parar. |
![]() |
Dê um pulinho no BASIC para rodar o programa. Se você já havia definido o endereço de execução no BASIC em &HC000, use direto o x=usr(0). Senão, use o defusr=&hc000 antes. |
![]() |
Esta variação, escreve o nome na tela várias vezes. |
![]() |
Aqui está uma grande ferramenta de
depuração. Digite SI &HC000 no RSC II e em seguida, H. Observe na tela, o valor de todos os registradores na tela. Você poderá executar o seu programa passo a passo e verificar as mudanças que acontecem nos registradores, e com isto, verificar se a instrução usada está funcionando de acordo com o desejado. Se você teclar E, a instrução que estiver na última linha será executada e todas as mudanças (se ocorrer) serão vistas na tela. Não execute as subr-rotinas, ou o RSC II irá travar :(. Quando você chgar a um CALL WRTVRM, por exemplo, digite S, que a próxima linha virá sem que esta seja executada :). Para sair, tecle <CTRL+STOP>. |