[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Apple II Csa2 FAQs: Input Devices, Part 15/25 (2/2)
[continued from previous message]
My experience is that this is more simple than it looks. You have
one
stuck key. It is stuck down. Have you opened the machine and moved the
keyboard? If so you may have replaced it wrong, it is rubbing on one of
the
edges. The key that is stuck is
next to the edge.
If this does not apply to you, often pressing all of the keys
until it
stops (because by pressing on the right key, it comes unstuck) will
work.
----------------------------
From: Dave Althoff
My first suspicion is a stuck key, and if this is a beige ][e, the
first
place I'd look is the [`/~] key, adjacent to the power light.
----------------------------
From: Owen Aaland
The escape is a likely key for this as it is located where it can
easily
contact the case but does not exhibit any problems until another key is
pressed
and then that key will repeat.
----------------------------
From: Rubywand
If the KB Encoder IC or the IOU IC is loose or has pins making
poor
contact, you could get the symptoms described.
Open the case and locate the KB Encoder (a big, 40-pin IC on the
right
side of the motherboard just to the right of three ROMs). Use a small,
thin-blade screwdriver to scootch up the IC. (You want to get some
lifting for
all pins, even if you end up
just removing the IC.) Press the IC back into the socket.
Do the same with the IOU (a big, 40-pin IC just to the left of the
three
ROMs).
The idea of lifting up and re-socketing each IC is to let the
socket
contacts scrape a fresh connection with each pin on the IC.
____________________________
From: tgeer@pro-gumbo.cts.com (System Administrator)
017- A while ago someone posted about how to read the joystick on
a GS in native mode. They said that it was possible to read
both paddles at once and therefore get much more accurate
readings?
Only the high bit of these locations is valid. When the high bit of
either
location becomes 0 then the corresponding analog input has timed out.
You will actually get more accurate results by reading them one after
the other
with the accumulator set to 8 bits wide and the index registers used to
hold
the counts (16 bits wide). This allows for a much faster loop, giving
better
resolution.
Assuming that this routine is called from full native mode, the
following code
will do the trick:
strobe equ $C070 ; analog input timing reset
pdl0 equ $C064 ; analog input 0
pdl1 equ $C065 ; analog input 1
start php ; save processor status register
phb ; and data bank register
sep #%100000 ; make accumulator 8 bits wide
lda #0 ; make data bank = 0
pha
plb
ldx #0 ; initialize the counters
txy
lda strobe ; strobe the timing reset
loop1 inx ; increment pdl0 count
lda pdl0 ; is high bit = 0?
bmi loop1 ; no, keep checking
lda strobe ; yes, strobe the timing reset again
loop2 iny ; increment pdl1 counter
lda pdl1 ; is high bit = 0?
bmi loop2 ; no, keep checking
plb ; yes, restore data bank
plp ; and processor status register
rts ; return to caller (could be RTL)
Notice that the actual counting loops are only 9 cycles long. This
gives the
best possible resolution. You will need your counters to be 16 bits
wide as
the results will easily overflow the capacity of an 8 bit counter.
Using memory locations as counters will only serve to slow the counting
loop
down. If X and Y contain valid data before entry, you will need to save
them
off to the stack and pull them back in after interpreting the joystick
results.
I have used this
exact method to read the analog inputs on my Science Toolkit box which
connects
to the joystick port.
The results have been extremely accurate (much more than would be
needed for a
game which reads the joystick).
____________________________
From: Dan DeMaggio
018- Is a Y-adapter available for my GS keyboard?
Yes. Redmond Cable has an ADB Y-connector cable for separating
your mouse
from the side of your keyboard.
____________________________
From: Mark Wade
019- How do you use the Kensington TurboMouse with a IIgs?
The Version 3.0 Kensington TurboMouse ADB works fine on a later model
IIgs
(such as a mid-late 1987 true ROM-01 IIgs). It will not work correctly
on a
ROM-00 IIgs even after the standard ROM upgrade to ROM-01. The Version
4.x TM
will not work on any
IIgs.
Dip switches:
Right handed use: (L but click, R but click lock) SW1 Up
Left handed use: (R but click, L but click lock) SW1 Down
The other switches are for what they call "chording" and are listed as:
SW2 SW3 SW6
Command N Dn Dn Up
Command O Dn Up Dn
Command W Dn Up Up
Command S Up Dn Dn
Command P Up Dn Up
Command Q Up Up Dn
Command Z Up Up Up
____________________________
From: Rubywand
020- My mouse feels very bumpy. Everyone says it needs cleaning but
when I look inside there is just a little dust and the rubber
treads on the rollers look okay. So, how am I supposed to get
my mouse any cleaner?
It does sound like you have a gunked-up mouse. Rollers are whitish
plastic, black plastic, or metal-- they do not have treads. The "tread"
is
gunk.
It is best to clean a mouse with the computer OFF. The main reason
is
that, otherwise, it's hard to avoid unintended clicking on stuff that
could
cause problems. There is no need to disconnect the mouse unless you
want to
move to a better work area
for the cleaning.
First, get together a few supplies and tools:
A wooden desoldering stylus or flat-tipped plastic TV technician's tool
is
handy for dislodging gunk. (Probably, a small jeweler's screwdriver is
okay.
However, you do not want to scratch a roller.)
Small skinny long-nosed pliers are good for picking out globs of gunk
and dust.
Windex or some relatively safe spray cleaner.
Paper towels and a cotton swab.
To open the mouse use fingernails to rotate the panel insert
around the
ball opening on the bottom. The panel and ball should come out. Spritz
the ball
and panel with cleaner (or put them in a glass with soap and water).
Wipe dry.
Dampen a paper towel with cleaner and wipe the outside case. With
a
cleaner-dampened paper towel, clean the cord for at least a foot or so
near the
mouse.
Look inside the mouse. You may see globs of dust and gunk. Remove
these--
pick them out-- as best you can.
Inside, there should be 3-4 rollers. If it's been a month or more
since
the last cleaning each will probably look like it has a dark gray
rubber tread.
Use the desoldering stylus, etc. or a fingernail to dislodge gunk on
each
roller.
The best way to dislodge gunk is to push the 'tread' sidewise (kind of
like
removing a tire) as you work your way around the roller. Use the skinny
long-nosed pliers to pick out strips of the 'tread' as it unpeels.
Use a cleaner-dampened swab to finish cleaning each roller.
Use the swap to wipe around and pick out any remaining dust or
gunk,
replace the mouse ball, and rotate the plastic panel into place.
One way to simplify mouse cleaning is regular timely use of an
Ergotron
"Mouse Cleaner 360" or similar kit. The Ergotron kit includes a couple
velcro
balls, cleaner, wipe cloth or shammy, and a mouse cleaner track pad.
You squirt
cleaner on the
proper size ball, stick it in your mouse, run it around in a circular
motion on
the track pad, and finish up with a wipe using the cloth or shammy.
Such kits do not seem to be much help in removing established gunk
'treads'. (Actually, the Ergotron might get the job done; but, it would
take a
_lot_ of revolutions. It is easier to dislodge 'treads' by hand and use
the
Ergotron to get rid of
residue.) Cleaning kits can avoid tread build-up if used every week or
so.
----------------------------
021- What is the best kind of mouse pad?
The best mouse pads are cloth-covered 1/8" - 1/4" rubber foam. The
cloth
should have a slightly prickly feel when brushed by your finger tips.
Such pads
offer some resistance to mouse movement. This makes positioning easier
and
helps reduce fatigue.
The worst mouse pads are plastic or plastic coated. These usually
offer
little resistance to movement and transfer hand oils, dust, and other
gunk into
the mouse so rapidly that cleaning becomes a nearly daily chore.
Cloth-covered pads do get dirty. It's a good idea to wash your
mouse pad
every couple of months. (Use warm soapy water, rinse, blot with towel,
and let
dry.)
-----------------------------
022- Does anyone know what is the best way to clean a keyboard
after several months of using it without affecting the
imprinted letters or numbers on the keys?
First, if you do not have a picture of the keyboard, it's a good
idea to
make a diagram of key locations.
If the keyboard is a separate unit, remove the keyboard cover--
i.e. the
'shell' that surrounds the keys. Spritz it with a cleaner (like Windex,
Fantastik, etc.), wipe, and let soak in warm soapy water.
What you need to do next is pull the key tops. A puller tool which
lets
you get around and under a key on two sides is very helpful; or, you
can use
fingers and a small screwdriver or leter opener to pop off the key
tops. For
SPACE and other large
keys, take care to unhook stabilizer bars and pay attention to how the
bar for
each is connected.
Spritz each key top with Windex, Fantastik, etc., wipe, and let
soak in
warm soapy water. The letters, numbers, etc. on key tops are, usually,
solid
plastic and should not be in any danger of getting wiped off. For sure,
you
would not want to use
any petroleum distillate or other solvent which attacks plastic for
cleaning.
Everything is rinsed, blotted with paper towels, and allowed a
couple
hours to dry.
Once the KB interior is de-dusted you can blot away remaining
moisture
from key tops, etc. and put everything together. Install the large key
tops
with stabilizer bars first, then press on the others. If the keyboard
is a
separate unit, wipe/clean
the cable.
-----------------------------
023- Is there a fix for a bad trigger on a CH Products Flight Stick?
If the trigger on your "Flight Stick" doesn't always fire when
squeezed,
the problem is likely to be too much space between the trigger and the
PB0
microswitch. A simple fix is to apply two or three layers of self-stick
label
bits to the back of the
trigger piece (easily accessed once the handle is opened). To check
your work,
use an ohmmeter connected across the button output or plug in the stick
and RUN
a two-liner to display PB0 status:
10 IF PEEK(49249)>127 THEN PRINT "X";
20 GOTO 10
Pressing the trigger should spit out X's. Once you know your stick
is
fixed, just slap it together and you've got the hair-trigger
snap-action
response "Flight Stick" is supposed to deliver.
____________________________
From: Mitchell Spector
024- How can I improve the feel of my original (beige-key) IIc
keyboard?
You can improve the feel by removing the black rubber mat. This is
a
spill-guard; but, people complained it hindered their typing so it was
removed
in next generation IIc's. You can safely remove yours by just lifting
it up;
it's attached by a few
drops of glue.
Some people claim typing is even further improved if you remove
the small
metal clips in between each key stem (these produce a click sound when
you
type). You can reverse all this if you do it carefully, I did myself.
____________________________
From: Supertimer
025- Can I replace my broken GS mouse with one from a Mac?
Yes, if it is a Macintosh ADB mouse. The "teardrop" ADB Mouse II
that
comes on newer Macs works great on the IIGS and can be found for a few
bucks in
Mac for-sale groups. Third party ADB mice should work too.
Note: Mice for Mac Plus and before are not ADB so won't work. Mice for
the new
iMac won't work because they are for the USB interface.
____________________________
From: David Empson and David Wilson
026- What is the pinout for the IIe, //c, Laser and similar 9-pin
mouses?
The IIe/IIc/Mac Plus mouses can plug into the //c or IIc+ Game/Mouse
Port or,
on a IIe, into the 9-pin socket of a Mouse Card. When plugged into the
//c or
IIc+, several Game Port pins are redefined for use with a mouse.
Dsub-9 Female Socket on Computer Dsub-9 Male Plug on Mouse
,---------------------. ,---------------------.
\ 5 4 3 2 1 / \ 1 2 3 4 5 /
\ 9 8 7 6 / \ 6 7 8 9 /
`-----------------' `-----------------'
Mouse Usual //c, IIc+ Game Port Function
1 MOUSE ID Pushbutton 1
2 +5V +5V
3 GND GND
4 XDIR no Game Port function on //c, IIc+;
this TTL-compatible input can be read at $C066
5 XMOVE Game Control 0 or PDL0 (Joystick X-axis)
6 n.c. (no Game Port function on //c, IIc+)
7 MOUSE BUTTON Pushbutton 0
8 YDIR Game Control 1 or PDL1 (Joystick Y-axis)
9 YMOVE no Game Port function on //c, IIc+;
this TTL-compatible input can be read at $C067
____________________________
From: David Empson
027- How do I write programs which use the mouse?
The assembly language interface to the mouse firmware is documented in
three
places:
- the reference material that was supplied with the AppleMouse card for
the
IIe.
- the IIc Technical Reference Manual.
- the IIgs Firmware Reference Manual.
Interfacing to the mouse is somewhat complicated, especially if you
want to
implement some kind of mouse cursor (usually requires writing an
interrupt
handler).
The first problem is locating the mouse firmware. It could be in any
slot for
a IIe or IIgs, or either of two slots for the IIc. The safest method
is just
to do a slot search, looking for the mouse ID bytes:
$Cn05 = $38
$Cn07 = $18
$Cn0B = $01
$Cn0C = $20
$CnFB = $D6
On a ROM 3 IIgs, it is possible that the mouse firmware will not be
available,
because this doesn't prevent the use of the mouse from GS/OS (the
Miscellaneous
Toolset or Event Manager can still be used). An AppleMouse card, if
installed,
is not used by
the toolbox.
On a ROM 1 IIgs, the slot mouse firmware is used by the toolbox, so
slot 4 must
be set to "Mouse Port", or an AppleMouse card may be installed in any
slot.
Using the mouse firmware consists of calling the various parameters
provided by
the firmware. An entry point table is provided in the mouse slot. The
routines common to all implementations are:
$Cn12 SETMOUSE Sets mouse mode
$Cn13 SERVEMOUSE Services mouse interrupt
$Cn14 READMOUSE Reads mouse position
$Cn15 CLEARMOUSE Clears mouse position to 0 (for delta mode)
$Cn16 POSMOUSE Sets mouse position to a user-defined pos
$Cn17 CLAMPMOUSE Sets mouse bounds in a window
$Cn18 HOMEMOUSE Sets mouse to upper-left corner of clamp win
$Cn19 INITMOUSE Resets mouse clamps to default values;
sets mouse position to 0,0
Each of the above locations contains the low byte of the entry point
for the
routine. The high byte is $Cn. The usual method for calling these
routines is
to set up a single subroutine which is patched with the location of the
appropriate routine as
required. You could also set up a series of subroutines for calling
each
routine.
The general logic would be as follows:
Locate the mouse slot by searching for the ID bytes described earlier.
Patch
the slot into the following routine:
TOMOUSE LDX #$C1 ; Patch operand byte with slot in $Cn form
LDY #$10 ; Patch operand byte with slot in $n0 form
JMP $C100 ; Patch high byte of operand with slot in
; $Cn form. Low byte of operand must be--- Fruity
Dog 6.2