[comp.sys.amiga.programmer] Usage of CIA timers and keyboard device.

aaron@stat.tamu.edu (Aaron Hightower) (04/05/91)

I am having some problems trying to access the CIA timer register.  Instead
of trying to tell what I am doing and identify the problem, let me just say
that all I need is some number that increments continually (like the CIA
timer does).  Can someone tell me how to pull these values and where I
should get them?  (Okay, I will tell you that I cannot get it to work
on both my Amiga 3000 and my 1000.)  So can I go directly to the hardware,
or should I open up a device?

Also, I am having a problem with the keyboard device.  I am attempting
to perform a KBD_READMATRIX.  It works great on my Amiga 3000, but it
doesn't work at all on my friend's amiga 3000!  Any ideas?  I am basically
using a modified routine from the RKM Libs/devs.    

Please send responses via mail only.

Thanks a lot! - Aaron Hightower - aaron@stat.tamu.edu

darren@cbmvax.commodore.com (Darren Greenwald) (04/05/91)

In article <14180@helios.TAMU.EDU> aaron@stat.tamu.edu (Aaron Hightower) writes:
>I am having some problems trying to access the CIA timer register.  Instead
>of trying to tell what I am doing and identify the problem, let me just say
>that all I need is some number that increments continually (like the CIA
>timer does).  Can someone tell me how to pull these values and where I
>should get them?  (Okay, I will tell you that I cannot get it to work
>on both my Amiga 3000 and my 1000.)  So can I go directly to the hardware,
>or should I open up a device?
>
If you need a CIA counter, then you MUST allocate one via the AddICRVector()
command in cia.resource (its a resource, and not a device), and you cannot
go directly to the hardware or you WILL break!

You must also use the AbleICR() function cia.resource to disable/enable
interrupts generated by the interval timer you allocate, and SetICR()
function to sample/clear/set interrupts.

Do not read the interrupt control registers, and becareful what bits
you change in the cia control registers.


>Also, I am having a problem with the keyboard device.  I am attempting
>to perform a KBD_READMATRIX.  It works great on my Amiga 3000, but it
>doesn't work at all on my friend's amiga 3000!  Any ideas?  I am basically
>using a modified routine from the RKM Libs/devs.    
>
>Please send responses via mail only.
>
>Thanks a lot! - Aaron Hightower - aaron@stat.tamu.edu

Which version of 2.0 are you guys running?  There was a known bug with
KBD_READMATRIX fixed some time ago ... at one point it did not return
io_Actual properly under 2.0.  I've got a KBD_READMATRIX test running over
here next to me on a 2500/030, and its seems fine.  In what ways
did you modify the example in the RKM?


--------------------------------------------------------------
Darren M. Greenwald | Commodore-Amiga Software Engineering   
                    | USENET: uunet!cbmvax!darren                       
--------------------------------------------------------------
Quote: "It would be impossible to discuss the subject without
        a common frame of reference." - Spock