A Janela de texto é um porto de entradas saídas que permite escrever e ler para uma janela alfanumérica com 24 linhas e 80 colunas.
Este circuito possui 4 portos, endereçados pelas linhas de endereço "Add" (Figura 1), com funções distintas:
- O porto 00b é utilizado para posicionar o cursor na janela de texto, posição esta onde será escrito o próximo caracter;
- O porto 01b é utilizado para testar se houve alguma tecla premida na janela de texto;
- O porto 10b é utilizado para escrever um dado caracter na janela de texto;
- O porto 11b é utilizado para receber caracteres teclados na janela de texto.
Os dados são escritos e lidos do barramento de leitura/escrita "Data" desde que o sinal "En" esteja a 1.
Figura 1. Esquema do circuito que realiza a Janela de Texto.
O circuito é síncrono pelo que funciona em todas as fases ascendentes do relógio.
Esta janela, apresentada na Figura 2, permite uma interface a nível de texto, permitindo ler caracteres do teclado e escrever caracteres para o monitor. Para aceder a este dispositivo estão reservados 4 portos que deverão ser mapeados nos 4 endereços mais elevados do espaço de endereçamento do processador, assim o porto 3 deverá estar mapeado no endereço FFFFh, o 2 no endereço FFFEh, o 1 no endereço FFFD e o 0 no endereço FFFCh. Cada um deste portos tem uma função específica:
porto de leitura, endereço
3: uma leitura deste porto retorna o código ASCII do caracter correspondente última tecla premida sobre a janela de texto. Portanto, no caso de se premir uma tecla antes da leitura da tecla anterior faz com que esta se perca. É possível testar se existe alguma tecla para ler através do porto de estado. Uma leituradeste porto sem que tenha havido uma tecla premida retorna o valor 0.porto de escrita, endereço
2: porto que permite escrever um dado caracter na janela de texto. O caracter com o código ASCII igual ao valor escrito para este porto é ecoado na janela. Esta janela mantém internamente um cursor onde este caracter é escrito. Sempre que se faz uma escrita, este cursor avança. É possível posicionar-se o cursor em qualquer ponto da janela através do porto de controlo.porto de estado, endereço
1: porto que permite testar se existe ou não algum caracter para ler na janela de texto. Caso não haja, uma leitura deste porto retorna 0. Caso entretanto tenha sido premida uma tecla, este porto retorna 1. Assim que esta tecla for lida através do porto de leitura, este porto passa novamente a retornar 0.Figura 3: Janela de interface de texto, com 24 linhas e 80 colunas.
porto de controlo, endereço
0: porto que permite posicionar o cursor na janela de texto, indicando onde será escrito o próximo caracter. O cursor pode ser posicionado numa dada linha e coluna escrevendo para este porto um valor em que os 8 bits mais signicativos indicam a linha (entre 0 e 23) e os 8 menos signicativos a coluna (entre 1 e 80):15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Linha |
Coluna |