PC537 - a driver for the 537(LWL) microcontroller addin board from
	Feger + Co., Traunreut, Germany. It should work for their
	535 card as well.

	  This driver module will only be useful to those having a 
	537, 537LWL or 535 PC-addin board at hand. These ISA-boards 
	are designed for use with PC's and compatibles.

Warning:
	  This driver package is certainly ALPHA. Use it at your own
	risk - it might crash your system resulting in data loss.
	Don't use it before you have backupped your hard disks. 
	

Intro:
	  The Siemens SAB80C537/80C517A is a powerful 8bit microcontroller
	with 6 I/O-port, AD-Converter, mul/div-, PWM-unit, watchdog,
	3 timers, 2 UARTS and a lot more features.
	Feger + Co's 537/537(LWL) addin boards use this chip on a board
	glued together with RAM and some circuitry to allow the mc to 
	communicate with a PC.
	  I wrote this driver because I was tired of developing programs
	for this embedded system under dos.
	  If you are looking for a assembler/linker package, you might try
	out the CAS51 package from csd4.csd.uwm.edu.
	  This driver is ALPHA, by the time of writing it is lacking
	some features e.g. a scheme for handling different IRQ-lines, base 
	I/O-adresses and different RAM amounts through the use of minor 
	numbers. But the basic functionality to communicate with the
	mc and to fill its memory is there.

Device:
	  At the time of writing /dev/pc537 uses major number 63 and
	no minor. This might change in later versions.
		mknod /dev/pc537 c 63 0
	will create the character special file needed for this module.

RAM/EPROM:
	  pc537 uses the write/read file operations for accessing RAM/EPROM
	on the board. Note that both operations will reset the mc, which 
	has to be restarted using the PC537_RESTART ioctl cmd. Attempts
	to read/write beyond the highest memory address will be aborted with
	errno set to EINVAL. 

C-Port and MCINTs:
	  PC and MC exchange data by the use of a '646 bidirectional port
	latch - the C-port, which is one byte wide.
	By reading two IO-ports the PC raises the MC-interrupts MCINT0
	and MCINT1. The MC can raise a PC-interrupt.

	  A reasonable protocol for communication could look like this:
	PC to MC
	- PC writes to the C-Port
	- PC raises MCINT0
	- (Optionally the MC writes back the complemented byte to
	  the c-port).
	- MC reads from c-port and acknowledges with PC-interrupt

	MC to PC
	- MC writes to MC-port.
	- MC raises PC-interrupt to signal that data are available.
	- PC reads from c-port and acknowledges with MCINT1 inter-
	  rupt.

	  A MC-program implementing this protocol can be found in 
	./images/cport7.bin.

	  All these operations are accessible through the PC537_xxx
	ioctl commands. Read pc537.h for details.

Compilation:
	  Just type `make' to compile the module. For inserting it,
	you might need root permissions.

Kernel-Version:
	  This module was built under kernel version 1.2.13. Some features
	of a 2.0.x kernel were included. Expect compilation under 2.0.x 
	to fail.

Modules:
	  This modules was tested with modules 1.3.67 (tsx-11/source)

Final note: 
	  Your response is welcome. Please report bugs, patches or
	ideas or just a note, that you took a look at the package
	to:

		B.KOHL@IPN-B.comlink.apc.org.
