Author Topic: port 1 stuff  (Read 15940 times)

0 Members and 4 Guests are viewing this topic.

Offline DrDnar

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 546
  • Rating: +97/-1
    • View Profile
Re: port 1 stuff
« Reply #15 on: May 17, 2014, 04:58:37 pm »
This is your research; you should document it on the Wiki.
"No tools will make a man a skilled workman, or master of defense, nor be of any use to him who has not learned how to handle them, and has never bestowed any attention upon them. . . . Yes, [] the tools which would teach men their own use would be beyond price."—Plato's The Republic, circa 380 BC

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: port 1 stuff
« Reply #16 on: May 17, 2014, 06:53:54 pm »
It requires a bit more investigations, but yeah, i do that for the community (and personal curiosity) and i hope it will be of use for some.
I'm currently coding some stuff at work for a few testers...

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: port 1 stuff
« Reply #17 on: May 20, 2014, 01:30:27 am »
Did some new tests.
I can say i was a bit surprised by the results.

Examples of some delays my program returns.
The values are the needed delay to disable those keys while being pressed, at 15 Mhz :

DOWN : 21
LEFT : 21
RIGHT : 22
UP : 20
DOWN+LEFT : 15
DOWN+LEFT+RIGHT : 13
DOWN+LEFT+RIGHT+UP : 12
As you can see, it appears that the more keys are being pressed in the same group, the faster it takes to disable them.

And now, some results in different groups :
LEFT+-+9+(+SIN+MATH+DEL : 24
LEFT+++3+2+1+STO+TRACE : 123
It took me a while to figure out why such a huge difference.
In the first case, all keys correspond to different key bits, and in the second, to the same.
« Last Edit: May 20, 2014, 01:44:42 am by the_mad_joob »

Offline Streetwalrus

  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3821
  • Rating: +80/-8
    • View Profile
Re: port 1 stuff
« Reply #18 on: May 20, 2014, 02:00:15 am »
Wow. Your research is making this hardware sound more and more obscure. O.O What the hell TI ?

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: port 1 stuff
« Reply #19 on: May 20, 2014, 06:03:43 am »
Yeah, obscure as hell.
An important thing to note is that all my tests were realised checking the needed delay to disable keys while those are actually being pressed.
Due to how the keyboard works, i think it's impossible to test those delays without pressing them.
In other words, it won't be possible to know the real needed time for the keybord to disable unpressed keys.

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: port 1 stuff
« Reply #20 on: May 21, 2014, 08:14:48 am »
Allright, performed a few verifications, and nothing contradictory showed up.
I have reformated post#1 with all my discoveries.

Right now, i need a few testers (attached program).
You can use it on any 8X+, except the CSE.
Just run it with Asm(.
As soon as it starts, you have 3 seconds to hold the desired key(s).
Plz hold the keys until the program tells you to release them.
The returned values are for all available CPU speeds on your calc (in order : 0,1,2,3).
What it does is check the needed delay for the pressed key(s) to be disabled.
Despite it recognizes all possible key combinations, i'm particularly interested in the following ones :

1) Check all keys, separately, and let me know the maximum delays the program returns.
The "5" key is expected to have the highest delays, whereas "ALPHA" should have the lowest.

2) Check the following combinations :
LEFT + 3 2 1 STO TRACE
RIGHT - 6 5 4 LN ZOOM
UP * 9 8 7 LOG WINDOW

Thx in advance for your time =]
« Last Edit: May 21, 2014, 08:29:38 am by the_mad_joob »

Offline DrDnar

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 546
  • Rating: +97/-1
    • View Profile
Re: port 1 stuff
« Reply #21 on: May 23, 2014, 01:00:58 pm »
Wow. Your research is making this hardware sound more and more obscure. O.O What the hell TI ?
This behavior is most likely due to capacitance in the keyboard traces. When you select a group for reading, charge almost instantly rushes onto the group traces on the PCB, so you can read instantly. But when you unselect a group, TI makes no effort to discharge the traces. (They're also too cheap to add a 1-cent diode to each key so that we could detect multiple key presses without ghosting.) The pins that control the group traces simply go into a high-impedance state, meaning change can't flow back into them. As a result, electric charge stays on the traces until internal resistance dissipates it. When you read from the keyboard right after disabling a group, the charge that was previously on the keyboard traces is still there, giving you the false signal. The capacitance effect is small and the charge dissipates in just a few microseconds, but the Z80 is running fast enough that we can see those microseconds.
"No tools will make a man a skilled workman, or master of defense, nor be of any use to him who has not learned how to handle them, and has never bestowed any attention upon them. . . . Yes, [] the tools which would teach men their own use would be beyond price."—Plato's The Republic, circa 380 BC

Offline the_mad_joob

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 346
  • Rating: +47/-0
    • View Profile
Re: port 1 stuff
« Reply #22 on: May 23, 2014, 02:35:11 pm »
Wow. Your research is making this hardware sound more and more obscure. O.O What the hell TI ?
This behavior is most likely due to capacitance in the keyboard traces. When you select a group for reading, charge almost instantly rushes onto the group traces on the PCB, so you can read instantly. But when you unselect a group, TI makes no effort to discharge the traces. (They're also too cheap to add a 1-cent diode to each key so that we could detect multiple key presses without ghosting.) The pins that control the group traces simply go into a high-impedance state, meaning change can't flow back into them. As a result, electric charge stays on the traces until internal resistance dissipates it. When you read from the keyboard right after disabling a group, the charge that was previously on the keyboard traces is still there, giving you the false signal. The capacitance effect is small and the charge dissipates in just a few microseconds, but the Z80 is running fast enough that we can see those microseconds.
Excellent, some hardware explanations =]
Makes me remember how far my knowledge of electronic suck XD

I still need at least a few testers (prgm available @ my previous post).
 
« Last Edit: May 23, 2014, 02:38:06 pm by the_mad_joob »

Offline Streetwalrus

  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3821
  • Rating: +80/-8
    • View Profile
Re: port 1 stuff
« Reply #23 on: May 23, 2014, 04:02:30 pm »
Yeah, me too I suck at analog electronics. ._.