Eletrônica
FZX Length
 
 
Uma dificuldade de fontes proporcionais como FZX é o fato de não ser fácil calcular o tamanho que um string irá ocupar quando impresso na tela. 

No BASIC do TK90X, existe a função LEN que permite calcular o tamanho de um string. Como os caracteres da ROM do BASIC têm as mesmas larguras (8 pixels), fica fácil saber qual e espaço ocupado por um certo número de caracteres. Também é conhecido que uma linha da tela comporta um máximo de 32 caracteres. Com tais dados, fica fácil criar alguns efeitos na impressão, como a centralização ou alinhamento à margem direita. 
Entretanto cada caractere de uma fonte proporcional tem largura diferente, portanto não basta saber o número de caracteres para  formatar a impressão, pois é necessário saber seu comprimento de número de pixels. Criei a sub-rotina em linguagem de máquina FZX_Length para esta finalidade que, fornecendo os dados da string (HL=endereço inicial e BC=comprimento), retorna no par de registrador DE o comprimento em número de pixels. A fonte desta sub-rotina encontra-se no arquivo FZX_Length.asm, que pode ser incluído em programas assembly. 
Nem todo programador tem intimidade com o assembly, portanto criei também uma interface com o BASIC que é o FZXLength_Basic. Uma vez com o FZX Driver instalado e inicializado e com uma fonte FZX localizada no endereço 60000, deve-se carregar FZXLength_Basic a partir de 59800. Para usá-lo, dever-se ter uma função definida pelo usuário no BASIC, como no exemplo:
  10 DEF FN l(a$)=USR 59800
Esta função pode ser empregado a qualquer momento no programa BASIC, retornando o número de pixels ocupado por um string. Por exemplo:
  50 LET a$="Qualquer string": PRINT FN l(a$) 
imprimirá na tela o comprimento do string a$.
Com o uso desta função e do comando AT, é possível alinhar um string no centro:
  60  PRINT #4; AT 20,128-FN l(a$)/2;a$ 
ou na margem direita: 
  70  PRINT #4; AT 20,256-FN l(a$);a$ 
Assim, creio que tenha ficado claro como foi impresso strings na tela da figura no topo desta postagem. Um lembrete: o PRINT #4 é empregado no FZX Driver para imprimir caracteres em fonte FZX na tela.
Para baixar o arquivo ZIP contendo  FZX_Length,  FZXLength_Basic,  programa demo, documentação e código fonte, acesse este link. Agora não há mais desculpas para imprimir no TK90X com a fonte sem graça da ROM do BASIC. 
 
	loading...
	
  
- 
Editando Telas No Zx Paintbrush (parte 1)
O demo BR?-TK-HUE! resultou de um exercício para exibir figuras coloridas de dimensões maiores que o da tela do TK90X. Não digo que fui inteiramente bem sucedido, pois há problemas que causa cintilação na tela, o que me obriga a repensar sobre temporização. ... 
  
- 
Número Aleatório Por Xor-shift
Apresento a sub-rotina de geração de número pseudoaleatório que foi usada na minha parte do demo Mission Highly Improbable.   Anteriormente mostrei a sub-rotina de Phantom Club para a mesma finalidade, porém a qualidade da sequência gerada... 
  
- 
Fzx
FZX é uma nova especificação para arquivo de fontes para TK90X, que permite maior flexibilidade de tamanho e providencia impressão com espaçamento proporcional.   Este padrão foi criado por Andrew Owens e toda a especificação está contido nos... 
  
- 
Reclaim
Experimente digitar o seguinte programa no seu TK90X:   Pode ser que a listagem não fique clara na imagem, portanto estou repetindo abaixo:    10 FOR n=50000 TO 50009: READ a: POKE n,a: NEXT n   20 RAND USR 50000   30 DATA 237,91,83,92,42,75,92,195,229,25... 
  
- 
Adaptação De Jogos De Fita Para Beta 48 (parte 2)
Na parte 1 dei o ponta-pé inicial falando sobre a correspondência de comandos entre o BASIC do TK90X e o DOS Beta (ou TRDOS). Entretanto estamos longe de termos adaptado algum jogo, pois os arquivos devem ainda ser salvos no disco. As... 
Eletrônica