No artigo sobre a estrutura da tela do TK90X, fiz um programa BASIC para criar a tela abaixo.
Segue a respectiva listagem:
10 FOR n=0 TO 7
20 LET u=BIN 10000000: IF n=0 THEN LET u=BIN 11111111
30 POKE USR "a"+n,u
40 NEXT n
50 PRINT AT 0,0;
60 FOR n=1 TO 704: PRINT CHR$ 144;: NEXT n
70 PRINT #0;AT 0,0;
80 FOR n=1 TO 64: PRINT #0;CHR$ 144;: NEXT n
90 LET p=0: OVER 1: PRINT AT 0,0;0
100 FOR n=0 TO 31
110 PRINT AT 0,n;p;
120 IF n<22 THEN PRINT AT n,0;p;
130 LET p=p+1: IF p=10 THEN LET p=0
140 NEXT n
150 PRINT #0; OVER 1;AT 0,0;2;AT 1,0;3
160 PAUSE 0
No lugar de PLOT ou LINE, optei por usar um gráfico definido pelo usuário, o famoso UDG. A construção do UDG é feita nas linhas 10 a 40 do programa.
USR string
Talvez o leitor estranhe a linha 30, se considerar que a função USR executa um código de máquina a partir do endereço fornecido como argumento. Então o que seria esse USR que aceita um string como argumento?
Uma outra sintaxe pouco conhecida de USR é que pode aceitar como argumento um string. O string deve conter um caractere de "a" a "u" (pode ser letra maiúscula ou minúscula) e a função irá retornar o endereço do primeiro byte do respectivo caractere. Por exemplo, PRINT USR "u" irá imprimir normalmente o endereço 65528 no TK90X de 48K.
A utilidade dessa forma de se usar USR é para facilitar o POKE na hora de definir os UDGs. Um exemplo dessa aplicação está no próprio programa apresentado acima.
Muito legal lembra desta "outra" função do USR!
ResponderExcluir