<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Tue, 07 Oct 2003 20:59:18 +0100 (BST)
From   : BBC Micro <b_b_c_m_i_c_r_o@...>
Subject: Re: Keyboard scanning/interrupts

 --- Sprow <info@...> wrote: > In article
> >,
>    BBC Micro <b_b_c_m_i_c_r_o@...> wrote:
> 
> > Hi, I've got a question about the keyboard
> interrupts,
> > can anyone explain it concisely? 
> 
> Keypresses detected by use of interrupt and queued
> (2 keys) in one thread.
> 
> Centisecond timer then looks at the queued keys
> and,subject to typematic
> repeat and delay,(re)inserts the key into the
> keyboard buffer in a second.
> 
> Sprow.
> 

Thanks, I have a further question now as I can't see
where the Ascii character gets put in the buffer (02e1
etc...)

If a key is pressed (or entered with OSBYTE 120) lets
say (&EC) = &44 Then this will be picked up by the
centisecond timer and this is what I make of it so
far:

>From Int6 F065 is called with Carry Set.

F065 Set V, MI JMP EF02 
EF02 ... 
EF13 Check shift or Control Pressed,
     Check if 00EC holds a key number, 
     Set X=(&EC), Call F02A, Set (&EC)=X,
     This changes so JMP EF4D
EF4D JMP EFE9
EFE9 Check (&ED) which is empty so EFF8
EFF8 JMP F012
F012 A=(&EC), A is not 0 So F00C
F00C JMP EEDA
EEDA This fiddles with CAPS LOCK LEDs etc then the
routine RETURNS !!!!

So where has my investigation faltered... ? ??  

Regards,


________________________________________________________________________
Want to chat instantly with your online friends?  Get the FREE Yahoo!
Messenger http://mail.messenger.yahoo.co.uk
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>