These steps and the Makefile (Listing 3) assume you have installed the sources in /usr/sys/mpu.1. Find the appropriate IRQ and I/O address. Use the XENIX utility vectorsinuse to make sure there will be no conflicts.
2. Set MPU switches.
Log in as yourself.
3. Set VECTOR and BASE in mpu.c (Listing 2) to correspond with the board configuration. If the board is set for IRQ 2 on an AT, set VECTOR to 25, otherwise set VECTOR to the actual vector number.
4. Compile mpu.c by running
make mpu.oBecome superuser and change to /usr/sys/conf for the following steps.5. Save copy of working kernel
cp /xenix /xenix.worksIf the new kernel doesn't boot, you can boot off the old kernel by typing xenix.works at the Boot: prompt.6. Save a copy of link_xenix, then edit link_xenix, inserting ../mpu/mpu.o after c.o.
7. Determine the next available major device number.
./configure -c -j NEXTMAJORThis will display the next major device number for a character device.8. Configure the new driver.
./configure -a mpuinit mpuopen \\ mpuclose mpuread mpuwrite \\ mpuioctl mpuintr mpuhalt mpupoll \\ -c -m MAJOR -1 6 -v VECTORSubstitute the major device number found in step 7 for MAJOR, and substitute the mapped vector number for VECTOR. The configure line above is a single command line. Do not include the backslashes or newlines when you enter the command.9. Link a new kernel
./link_xenixThis produces a new kernel named /usr/sys/conf/xenix.10. Create the device node
/etc/mkn0d /dev/mpu c MAJOR 0 chmod 666 /dev/mpuAgain, substitute the actual major device number for MAJOR.11. Copy the new kernel to /xenix and boot the new kernel
cp xenix /xenix sync; sync; reboot12. Confirm the driver is installed by watching the device listing. An entry for mpu should be displayed showing the I/O address and IRQ, among other things. If the message MPU not found at 00000XXX is displayed, check the card configuration, the source defines, and check for interrupt or address conflicts.