The Gun-Handler enables you to control the mouse pointer with a Nintendo
light gun. (Ever 'shot' at those Workbench icons to open a drawer? :-) )
The code is nearly identical to my Lightpen-Handler, so I just
appended the lightpen README here.
This is how the Nintendo connector looks:

              ------
             /   1 |
             | 5 2 |
             | 6 3 |
             | 7 4 |
             -------

	Gun		Amiga (joystick port)
	---------	--------------------
	pin 1 GND	pin 8
	pin 5 +5V	pin 7
	pin 6 Beam	pin 6
	pin 7 Trigger   pin 3
(5 and 7 might by exchanged .You'd better check this. I can't anymore,
of course.)

I'd love to hear of any games you do for the gun (I am currently having
problems with sprites when I switch on the lightpen reading: they stop
moving whenever the gun points to the screen. So if you have any
suggestions ...)
And always remember: This is just a hack.

                             Lightpen-Handler
			     ================

                  Copyright by Andreas Klingler 1988,1991

This  program is freely distributable but is NOT public domain.  It MAY NOT
be  included  in  any  commercial  package, or sold for ANY amount, without
written  permission  from  the  author.   However if may be included on any
freely  distributable  package,  including  packages  for  which  a nominal
copying fee of no more than $5 is charged, as long as this copyright notice
keeps intact.
This software is distributed as-is, without any warranty.
Don`t blame me for any trouble this gets you into.

What`s it all about?
--------------------

Every  Amiga  has a hardware build in to connect a lightpen to it.  However
this  feature  is  rarely  used,  so I decided to write a software to use a
lightpen  just  like  you  use the mouse.  You even can use the mouse and a
lightpen  simultaniously and your applications don`t notice any difference.
Unfortunately  the  resolution  of the light pen registers is not very high
(vertical 1 non-interlaced scan line, horizontal 2 low-res pixels), but for
normal menu selections and gadget pressing it is more than sufficient.

Files in the distribution:

		README	- Guess what? You are reading this!
		lp	- Ready to go code
		lp.info - Yes, you can start it from workbench, too
		lp.c	- SAS/C source
		makefile- for SAS/C LMK


To use the handler

just plug in your lightpen in
		Joyport 1 (the right one) on an A2000
		Joyport 0 (the front one) on an A1000
and start the program from CLI or Workbench (you don`t need to RUN it).  To
remove  the  handler  just  run  it again.  If you start it from the CLI it
gives some output on what`s going on.  KS 2.0 should be no problem.  As you
may have noticed there is a difference between the A1000 and the A2000 (and
the other Amigas?):  On the A1000 you have to plug the lightpen in the same
port  the  mouse  goes.  To be still able to use the mouse you should first
run a program which attaches the mouse to the other port.
(However buttonsupport is hardwired for port1, but you can change it
to port0 in the source)


The  lightpenhandler  is  done as an InputEvent-Handler. It links into the
InputEvent  stream  just  ahead  of  Intuition.  This might not be the best
choice  (normaly  an interrupt-handler would be the way to do such things),
but  as  I  had  to  generate  some InputEvents anyway, and there is a good
example of an InputEvent-Handler in the RKMs I took this way.  We just link
our  faked mouse events at the end of each bypassing input event chain.  We
can`t starve here, because at least every 1/10 sec.  there is a timer event
to which we can link.


Of  course  for  the  hardware you are on your own, but I will give a short
description  how  to  make  a  *very*  simple  lightpen.   If there is some
hardware guy outthere who has a good and simple solution and likes to share
it:  feel free to mail it to me!

On every Amiga one of the joystick/mouse ports as an input to support
a lightpen. Unfortunately the line used for the beam trigger (6) is the same
which is normaly used as the left mousebutton. So to emulate the
mousebuttons I had to use other lines:


			Pin 3	 left penbutton
			    4	right penbutton
			    5	pen pressed to screen (not used here)
			    6	capture beam position
			    7	+5V (125 mA)
			    8	GND

The beam counter is triggered by pulling pin 6 to ground.
For a simple start try the following circuit:
(I don`t feel responsible for any damage this might do to your computer!)

   ------------------------------------ 7 (+5V)
   |
  | |
  | | 5k6
   | 
   |__________________________________ 6 Beam
 |/ 
 |\ BPX 81 (Phototransistor)
   |
   |
   ------------------------------------ 8 GND

For the buttons you need some switches which connect the appropriate pin
to ground when you press them.

This works only for very bright areas on the screen. You might also want to
try to hack-up one of these cheap C64 lightpens.



Have fun with it!

Andreas Klingler
Koehlerstrasse 12
8551 Hemhofen
Germany
FAX: +49 9195 3730
EMail: asklingl@informatik.uni-erlangen.de
