Programação de Sistemas
2º semestre do ano lectivo 2000/01

Aula Prática 2

Sumário

Exercício sobre portos.
Exercícios sobre o teclado.


Exercício 1

Escreva um programa em C capaz de ler o estado de uma impressora ligada à porta paralela, cujo porto tem o endereço base 378H. Quais os valores lidos, quando não está nenhuma impressora (nem qualquer outro dispositivo) presente?

Sugestões: Utilize a instrução inportb ou inport.

Informação técnica adicional:

A estrutura do registo de estado, localizado no endereço base + 1, associada 
a uma porta paralela é a seguinte: 
(bits)		7 (BUSY) - 0 = Impressora está ocupada 
		6 (ACK ) - 0 = Impressora está pronta para receber o prximo caracter 
		5 (PE )  - 1 = Impressora sem papel 
		4 (SLCT )- 1 = Impressora está on­line 
		3 (Error)- 0 = Erro 
		2,1,0 - Não são usados


Exercício 2

Escreva um programa em C para ver o estado do teclado. Depois deverá simular com as teclas 1,2,3 o activar/desactivar das teclas CapsLock, NumLock e ScrollLock, respectivamente.

Sugestões: Usar as instruções peekb e pokeb, e os operadores binários se necessário.



Exercício 3

Escreva um programa em C para limpar o buffer do teclado, fazer uma pausa de 10 segundos em que se vão premindo teclas, e ler o buffer do teclado.

Sugestões: Fazer uso das variáveis da BIOS associadas ao teclado que estão nas zonas de memória 0040:001A, 0040:001C e 0040:001E a 0040:003D.