[abc80] externt tangentbord till abc80

H. Peter Anvin hpa at zytor.com
Tors Sep 3 13:59:38 PDT 2015


On 08/31/2015 11:16 AM, Anders Jansson wrote:
>
> Teckeninläsningen är inte helt interruptbaserad. Interruptet anger
> bara att en ny tangent tryckts ned och kollar om det är ctrl-c.
> Själva teckeninläsningen pollas med inp(56) i en loop som sätter
> tidsfördröjning om tangenten hålls nedtryckt. Jag tror alla
> teckeninläsningar sker på samma ställe. Man skulle kunna lägga sig i
> klockinterruptet och kolla om återhoppet är vid teckeninläsningen,
> och isåfall lägga ett tecken i register A och ändra återhoppsadressen
> till efter inp(56).
> 
> Ett eget tangentbordsinterrupt är väl inte så användbart om man måste
> trycka på en tangent för att det ska triggas? Om det kan triggas av
> inp(56) är det kanske en annan femma, och det verkar faktiskt gå att
> fixa! PIOn är normalt i control mode. Om man istället sätter den i
> input mode och trycker på en tangent så rasslar tecknet in utan
> fördröjning. Anledningen är nog att varje inp(56) triggar
> tangentbordsinterruptet som då anger att en ny tangent tryckts ned
> och teckeninläsningen plockar det då direkt utan tidsfördröjning.
> Sätter man interruptmasken att ge interrupt om någon bit är noll så
> borde det bli interrupt för varje inp(56) utom ascii 255 vilket är en
> udda tangenttryckning (ctrl-<).
> 

I "input mode" eller "output mode" så får du ett interrupt varje 128 µs
(7812 Hz).  Varför i hela fridens dagar de valde den frekvensen kan man
ju bara gissa, men det finns där i alla fall.

	-hpa



More information about the ABC80 mailing list