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 backed up 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, only the use of one mc-card is supported and only one process is allowed to open the pc537 device. Device: At the time of writing /dev/pc537 uses major number 63. This might change in later versions. mknod /dev/pc537 c 63 X will create the character special file needed for this module where X has to be replaced by a number encoding base address, IRQ line and memory configuration. Read the pc537.4 man page for further details. 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. Since pc537 does no hex conversion the program has to be loaded as binary image. Since most assemblers will output hex files only I have included a hex2bin utility in the util directory that does exactly this job. 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 the pc537.4 man page 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.x.x to fail. If you are running a 2.x.x kernel you have to define KERNEL_VERSION=2 in Makefile. Modules: This module was tested with modules 1.3.57 (tsx-11/source) In order to use it, you have to have the modules package installed at your system. Final note: Your response is welcome. Please report bugs, patches or ideas or just write a note, that you took a look at the package to: B.KOHL@IPN-B.comlink.apc.org.