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