Notes on Mouse Directory:

1. Summary of Files in this directory:
	
	mouse.asm:	library routines for mouse

	mickey.asm:	shows differential movement of mouse in mickeys

	c2.asm:		working program to detect double clicks.

	mse_int*.asm:	setting up of mouse interrupts
		-- mse_int.asm, set up interrupts for left mouse button
			NOTE: also calls the realtime clock ticks interrupt!
		-- mse_int1.asm, ...

	mse_pos*.asm:	displays current mouse position on screen
		-- mse_pos0.asm, original prog from Abel
		-- mse_pos.asm, my adaptation
		-- mse_pos1.asm, further adaptation

	mse_line*.asm:	displays a vertical line corresponding to 
			mouse x-coordinate
		-- mse_line0.asm, original from Hull
		-- mse_line.asm, my adaptation

	mse_cur*.asm:	modifies the mouse cursor
		-- mse_cur.asm, standard mouse cursor

	mse*.asm:	sequential list of mouse programs
			that do not fit into any groupings
		-- mse1.asm, just moves mouse cursor around


2. Projects to develop the mouse techniques:

	(a) can define sensitivity zones (SZ), say rectangles
	(b) Each SZ also has a depth
	(c) Every pixel position belongs to at most one SZ
	(d) Within each SZ, the mouse has a behaviour defined
		by the SZ.  
		E.g. some SZ are enclosing (you
		cannot leave the SZ without pressing the
		right button while moving out of the SZ).
		E.g. some will play music as long as you are
		in the zone.
	(e) Some special SZ's:
		(i) a zone containing a virtual joystick (the
			mouse cursor is a hand that pulls
			the joystick, but you need to pull 
			gently so as not to lose the joystick)
		(ii) a zone containing a dial, which makes
			clicking sounds (faster if you rotate
			faster)
		(iii) a virtual trackball

3. Notes on Int 33h

  3.1 Function 14h (swap interrupt routines)
	-- you can set the mask for the various mouse events
		(L/R/M + Press/Release, Mouse Movement)
	-- However, this does not mean that you can set up
		several interrupt routines, one for each of
		the possible events!  (Only one routine can
		be set up)
  3.2 Function 3 versus Functions 5 and 6:
	-- Fn=3 gets status of buttons (pressed or not) and mse position
	-- Fn=5 gets button press information (must specify which button
		desired).  It gets the number of presses since last call
		to fn=5 and resets this number to 0.  It also gives the
		position of the mouse in the last button press.
	-- Fn=6 is similar to fn=5, but for button release.
	-- HENCE: fn=3 gives the current button status, while fn=5,6
		gives a history of the corresponding button events.

  3.3 Functions 0Ch and 14h
	-- both sets up mouse interrupt handlers for mouse events
	-- but Fn=14h 
