Gate A20 Handling Incompatibility of IBM PS/55 Model 5523S (IBM PS/55 note) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The patches here were originally developed to fix a problem with keyboard BIOS after running Minix on IBM PS/55 model 5523S. Later it has proved that these patches help some old IBM models including some PS/2's that do not undergo protected mode. Minix 2.0.0 runs in 286- or 386-protected mode on a PC with a 80286 or better CPU, and Minix-vmd 1.7.0 always runs in 386-protected mode. The loader (Minix 386, Minix-vmd) or the kernel (Minix 86) has such codes to switch the processor mode. Upon mode switch, the system also needs to switch gate A20. Minix does this by sending a specific byte code to the keyboard controller. This strategy works fine with standard PC's, but IBM PS/55 model 5523S (aka IBM PS/55 note) particularly causes trouble. On this machine, once the key- board controller gets this code, keyboard BIOS (int 16h) somehow goes wrong. So when minix subsequently shuts down and returns to monitor, the keyboard doesn't work. The patches here let Minix switch gate A20 using the proprietary I/O port, system control port A (0092h) to avoid this problem. Note that this patch makes the operating system incompatible to PC's that don't have this I/O port. In the case of PS/55 note, Minix boots and runs just fine. The problem develops at the time Minix returns control to boot monitor, so you won't be disturbed while you boot and work on Minix. If you want to try out these patches to those machines that do not undergo protected mode, get into monitor menu and specify processor=86 and get started in real mode. *** Standard Minix 2.0.0 *** Apply the patches boothead.cdiff and klib88.cdiff to: 1. /usr/src/boot/boothead.s (effective on Minix in 386 protected mode) and 2. /usr/src/kernel/klib88.s (effective on Minix in 286 protected mode). *** Minix-vmd 1.7.0 *** Apply the patch boothead.cdiff to /usr/src/sys/cmd/boot/boothead.ack.s. boothead.s (boothead.ack.s in Minix-vmd) is one of the source codes of boot monitor but not that of kernel. Remember you've got to update both kenel and boot monitor. Floppy disk driver tuning for IBM PS/55 Model 5523S (IBM PS/55 note) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Original Minix floppy driver makes horrible noise and vibration on this model. That's because the FDC timing constants are set too slow and hence the head gets slow and clumbsy. Here's a tiny patch to make the head motion smooth and quiet. The tuning makes sense for almost any PC's, but you must be good at FDC to decide the constants for your own PC. Apply the patch floppy.cdiff to /usr/src/kernel/floppy.c (Minix 2.0.0) or /usr/src/sys/kernel/ibm/floppy.c (Minix-vmd 1.7.0). Key mapping fix for Japanese keyboard (Minix-vmd only) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Minix-vmd comes with key mappers for several national keyboards including Japanese keyboard. This patch fixes a couple of inappropriate key mappings of Japanese keyboard. Apply the patch keyboard.cdiff and japanese.cdiff to: 1. /usr/src/sys/kernel/ibm/keyboard.c and 2. /usr/src/sys/kernel/ibm/keymaps/japanese.kbd. Remember to specify KEYMAP = keymaps/japanese.kbd in /usr/src/sys/kernel/ibm/Makefile to make the map to take effect. The original Minix 2.0.0 key mapper has no problem. May 23, 2000 Osamu Ishibashi, M.D., Ph.D.