Discussion:
Reading keyboard upon reset
(too old to reply)
Anthony Ortiz
2017-09-19 16:03:08 UTC
Permalink
Raw Message
Was reading blondi hacks where she was working on her accelerator and she said she was unable to read the keyboard upon reset and I'm wondering if you guys can illuminate why the keyboard strobe would not provide key press information at this early juncture.
Jorge
2017-09-19 16:28:28 UTC
Permalink
Raw Message
Post by Anthony Ortiz
Was reading blondi hacks where she was working on her accelerator and she said she was unable to read the keyboard upon reset and I'm wondering if you guys can illuminate why the keyboard strobe would not provide key press information at this early juncture.
Was that on a IIe ?
--
Jorge.
Anthony Ortiz
2017-09-19 17:14:11 UTC
Permalink
Raw Message
She was using a IIc.
Jorge
2017-09-19 17:55:09 UTC
Permalink
Raw Message
Post by Anthony Ortiz
She was using a IIc.
Ohhh, well... but I'm going to say it anyway :-)

"In a IIe you never know what's going to happen next after you hit reset"
--
Jorge.
Michael J. Mahon
2017-09-19 18:53:36 UTC
Permalink
Raw Message
Post by Anthony Ortiz
Was reading blondi hacks where she was working on her accelerator and she
said she was unable to read the keyboard upon reset and I'm wondering if
you guys can illuminate why the keyboard strobe would not provide key
press information at this early juncture.
I'd expect reset to clear the keyboard latch until some key is pressed.
--
-michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com
Anthony Ortiz
2017-09-19 20:13:57 UTC
Permalink
Raw Message
Quoted from
http://quinndunki.com/blondihacks/?p=2546

"The last piece of the puzzle was how to get the accelerator to switch modes when I wanted it. I didn’t just want to disable it completely, though I now had the tools to do so. Ideally, I wanted to reverse the meaning of the Esc key. In other words, the machine would boot into 1MHz, unless you hold down Esc, in which case it would boot into 4MHz. This is the opposite of how it currently works. I figured I could simply check the Esc myself after the accelerator had done its initialization, and disable the accelerator if needed (Esc up), or leave it alone (Esc down). This turned out not to work, however. It seems that we’re so early in the boot process that the keyboard buffer isn’t working yet, so normal keys can’t be checked from software. This might be part of why the CGGA does this check directly in hardware, and why I didn’t find the ROM code that I expected to for this."

Not sure why she's unable to read the keyboard when the accelerator can do it.
Ralf Kiefer
2017-09-20 00:25:44 UTC
Permalink
Raw Message
Post by Anthony Ortiz
Not sure why she's unable to read the keyboard when the accelerator can do it.
How long does the keyboard controller need for his internal boot
process? This chip is incredible slow compared to the main cpu. The
frequency is 50kHz.

Fundamental question: is the keyboard encoder software/microcode based?

Why did Apple software guys take the apple keys (game port! not keyboard
encoded) to give the user the choice to start the hardware test (in the
IIe)?

Other details: the keyboard encoder 3600PRO doesn't use the /Reset
signal from the mainboard. This chip generates an own internal Reset
after powering up. Once(!) after power up. Also the 3600PRO needs +5V
and(!) -12V. If the power supply won't be able in generating stable -12V
the 3600PRO won't start reliable.

- Ralf
Michael J. Mahon
2017-09-20 03:13:29 UTC
Permalink
Raw Message
Post by Ralf Kiefer
Post by Anthony Ortiz
Not sure why she's unable to read the keyboard when the accelerator can do it.
How long does the keyboard controller need for his internal boot
process? This chip is incredible slow compared to the main cpu. The
frequency is 50kHz.
Fundamental question: is the keyboard encoder software/microcode based?
Why did Apple software guys take the apple keys (game port! not keyboard
encoded) to give the user the choice to start the hardware test (in the
IIe)?
Other details: the keyboard encoder 3600PRO doesn't use the /Reset
signal from the mainboard. This chip generates an own internal Reset
after powering up. Once(!) after power up. Also the 3600PRO needs +5V
and(!) -12V. If the power supply won't be able in generating stable -12V
the 3600PRO won't start reliable.
- Ralf
Good point.

I've always guessed that it wasn't the initial keypress of ESC that was
detected, but the auto-repeat ESC that comes after...

The encoder undoubtedly takes many milliseconds to reset, as it takes
several milliseconds to denounce a key press.

I expect that accelerators sensing the ESC key wait (during their
initialization) for a good fraction of a second before reading the
keyboard.

BTW, the 3600PRO is a (slow) hardware state machine, not a microprocessor.
At the time, microprocessors used too much silicon for an inexpensive
keyboard encoder. Wow, -12v! Must be an old process, too!
--
-michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com
Anthony Ortiz
2017-09-20 04:13:22 UTC
Permalink
Raw Message
I wonder if Sathers mentions this delay at all; probably not as it's too edge case to even notice.
r***@gmail.com
2017-09-20 01:48:03 UTC
Permalink
Raw Message
Post by Anthony Ortiz
Was reading blondi hacks where she was working on her accelerator and she said she was unable to read the keyboard upon reset and I'm wondering if you guys can illuminate why the keyboard strobe would not provide key press information at this early juncture.
This is one of the numerous problems with the //c+ CGGA (accelerator) code.

On a RESET, the CGGA clears the keyboard strobe - unless the Escape key has been pressed!

Still tempted to write "The Horrors of the //c+ Accelerator Code" even if much of it is already covered by https://gist.github.com/mgcaret/022bd0bb3ee71f28429972523556416e
Michael J. Mahon
2017-09-20 03:13:29 UTC
Permalink
Raw Message
Post by r***@gmail.com
Post by Anthony Ortiz
Was reading blondi hacks where she was working on her accelerator and
she said she was unable to read the keyboard upon reset and I'm
wondering if you guys can illuminate why the keyboard strobe would not
provide key press information at this early juncture.
This is one of the numerous problems with the //c+ CGGA (accelerator) code.
On a RESET, the CGGA clears the keyboard strobe - unless the Escape key has been pressed!
Still tempted to write "The Horrors of the //c+ Accelerator Code" even if
much of it is already covered by
https://gist.github.com/mgcaret/022bd0bb3ee71f28429972523556416e
Yes, the code looks like a real rush job...
--
-michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com
Loading...