[comp.sources.x] v09i095: patches for X11R4 for SCO UNIX, Part09/12

jimke@uunet.uu.net (10/12/90)

Submitted-by: microsoft!jimke@uunet.uu.net
Posting-number: Volume 9, Issue 95
Archive-name: sco.patches/part09

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 9 (of 12)."
# Contents:  fix-14.sco09
# Wrapped by jimke@kellman on Sat Oct  6 17:13:33 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'fix-14.sco09' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'fix-14.sco09'\"
else
echo shar: Extracting \"'fix-14.sco09'\" \(46868 characters\)
sed "s/^X//" >'fix-14.sco09' <<'END_OF_FILE'
X*** ./mit-orig/server/ddx/ibm/sysV/sysVKeymap.h	Thu Oct  4 18:02:21 1990
X--- ./mit/server/ddx/ibm/sysV/sysVKeymap.h	Fri Sep 28 10:36:38 1990
X***************
X*** 0 ****
X--- 1,155 ----
X+ /*
X+  * Copyright IBM Corporation 1987,1988,1989
X+  *
X+  * All Rights Reserved
X+  *
X+  * Permission to use, copy, modify, and distribute this software and its
X+  * documentation for any purpose and without fee is hereby granted,
X+  * provided that the above copyright notice appear in all copies and that
X+  * both that copyright notice and this permission notice appear in
X+  * supporting documentation, and that the name of IBM not be
X+  * used in advertising or publicity pertaining to distribution of the
X+  * software without specific, written prior permission.
X+  *
X+  * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
X+  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
X+  * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
X+  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
X+  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
X+  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
X+  * SOFTWARE.
X+  *
X+ */
X+ #ifndef SYSVKEYMAP_H
X+ #define SYSVKEYMAP_H
X+ KeySym sysvmap[MAP_LENGTH*SYSV_GLYPHS_PER_KEY] = {
X+     /* 0x00 */  NoSymbol,       NoSymbol,
X+     /* 0x01 */  XK_Escape,      NoSymbol,
X+     /* 0x02 */  XK_1,           XK_exclam,
X+     /* 0x03 */  XK_2,           XK_at,
X+     /* 0x04 */  XK_3,           XK_numbersign,
X+     /* 0x05 */  XK_4,           XK_dollar,
X+     /* 0x06 */  XK_5,           XK_percent,
X+     /* 0x07 */  XK_6,           XK_asciicircum,
X+     /* 0x08 */  XK_7,           XK_ampersand,
X+     /* 0x09 */  XK_8,           XK_asterisk,
X+     /* 0x0a */  XK_9,           XK_parenleft,
X+     /* 0x0b */  XK_0,           XK_parenright,
X+     /* 0x0c */  XK_minus,       XK_underscore,
X+     /* 0x0d */  XK_equal,       XK_plus,
X+     /* 0x0e */  XK_BackSpace,   XK_BackSpace,
X+     /* 0x0f */  XK_Tab,         NoSymbol,
X+     /* 0x10 */  XK_q,           XK_Q,
X+     /* 0x11 */  XK_w,           XK_W,
X+     /* 0x12 */  XK_e,           XK_E,
X+     /* 0x13 */  XK_r,           XK_R,
X+     /* 0x14 */  XK_t,           XK_T,
X+     /* 0x15 */  XK_y,           XK_Y,
X+     /* 0x16 */  XK_u,           XK_U,
X+     /* 0x17 */  XK_i,           XK_I,
X+     /* 0x18 */  XK_o,           XK_O,
X+     /* 0x19 */  XK_p,           XK_P,
X+     /* 0x1a */  XK_bracketleft, XK_braceleft,
X+     /* 0x1b */  XK_bracketright,XK_braceright,
X+     /* 0x1c */  XK_Return,      XK_Return,
X+     /* 0x1d */  XK_Control_L,   NoSymbol,
X+     /* 0x1e */  XK_a,           XK_A,
X+     /* 0x1f */  XK_s,           XK_S,
X+     /* 0x20 */  XK_d,           XK_D,
X+     /* 0x21 */  XK_f,           XK_F,
X+     /* 0x22 */  XK_g,           XK_G,
X+     /* 0x23 */  XK_h,           XK_H,
X+     /* 0x24 */  XK_j,           XK_J,
X+     /* 0x25 */  XK_k,           XK_K,
X+     /* 0x26 */  XK_l,           XK_L,
X+     /* 0x27 */  XK_semicolon,   XK_colon,
X+     /* 0x28 */  XK_quoteright,  XK_quotedbl,
X+     /* 0x29 */  XK_quoteleft,   XK_asciitilde,
X+     /* 0x2a */  XK_Shift_L,     NoSymbol,
X+     /* 0x2b */  XK_backslash,   XK_bar,
X+     /* 0x2c */  XK_z,           XK_Z,
X+     /* 0x2d */  XK_x,           XK_X,
X+     /* 0x2e */  XK_c,           XK_C,
X+     /* 0x2f */  XK_v,           XK_V,
X+     /* 0x30 */  XK_b,           XK_B,
X+     /* 0x31 */  XK_n,           XK_N,
X+     /* 0x32 */  XK_m,           XK_M,
X+     /* 0x33 */  XK_comma,       XK_less,
X+     /* 0x34 */  XK_period,      XK_greater,
X+     /* 0x35 */  XK_slash,       XK_question,
X+     /* 0x36 */  XK_Shift_R,     NoSymbol,
X+     /* 0x37 */  XK_asterisk,    XK_mu,
X+     /* 0x38 */  XK_Alt_L,       NoSymbol,
X+     /* 0x39 */  XK_space,       NoSymbol,
X+     /* 0x3a */  XK_Caps_Lock,   NoSymbol,
X+     /* 0x3b */  XK_F1,          NoSymbol,
X+     /* 0x3c */  XK_F2,          NoSymbol,
X+     /* 0x3d */  XK_F3,          NoSymbol,
X+     /* 0x3e */  XK_F4,          NoSymbol,
X+     /* 0x3f */  XK_F5,          NoSymbol,
X+     /* 0x40 */  XK_F6,          NoSymbol,
X+     /* 0x41 */  XK_F7,          NoSymbol,
X+     /* 0x42 */  XK_F8,          NoSymbol,
X+     /* 0x43 */  XK_F9,          NoSymbol,
X+     /* 0x44 */  XK_F10,         NoSymbol,
X+     /* 0x45 */  XK_Num_Lock,    NoSymbol,       /* num lock */
X+     /* 0x46 */  XK_Break,       NoSymbol,       /* scroll lock - XXX */
X+     /* 0x47 */  XK_Begin,       XK_KP_7,
X+     /* 0x48 */  XK_Up,          XK_KP_8,
X+     /* 0x49 */  XK_Prior,       XK_KP_9,
X+     /* 0x4a */  XK_KP_Subtract, NoSymbol,
X+     /* 0x4b */  XK_Left,        XK_KP_4,
X+     /* 0x4c */  NoSymbol,       XK_KP_5,
X+     /* 0x4d */  XK_Right,       XK_KP_6,
X+     /* 0x4e */  XK_KP_Add,      NoSymbol,
X+     /* 0x4f */  XK_End,         XK_KP_1,
X+     /* 0x50 */  XK_Down,        XK_KP_2,
X+     /* 0x51 */  XK_Next,        XK_KP_3,
X+     /* 0x52 */  XK_Insert,      XK_KP_0,
X+     /* 0x53 */  XK_Delete,      XK_KP_Decimal,
X+     /* 0x54 */  XK_Execute,     NoSymbol,       /* Action - XXX */
X+     /* 0x55 */  XK_Down,        NoSymbol,       /* down arrow */
X+     /* 0x56 */  XK_less,        XK_greater,
X+     /* 0x57 */  XK_F11,         NoSymbol,
X+     /* 0x58 */  XK_F12,         NoSymbol,
X+     /* 0x59 */  NoSymbol,       NoSymbol,
X+     /* 0x5a */  NoSymbol,       NoSymbol,
X+     /* 0x5b */  NoSymbol,       NoSymbol,
X+     /* 0x5c */  NoSymbol,       NoSymbol,
X+     /* 0x5d */  NoSymbol,       NoSymbol,
X+     /* 0x5e */  NoSymbol,       NoSymbol,
X+     /* 0x5f */  NoSymbol,       NoSymbol,
X+     /* 0x60 */  NoSymbol,       NoSymbol,
X+     /* 0x61 */  NoSymbol,       NoSymbol,
X+     /* 0x62 */  NoSymbol,       NoSymbol,
X+     /* 0x63 */  NoSymbol,       NoSymbol,
X+     /* 0x64 */  NoSymbol,       NoSymbol,
X+     /* 0x65 */  NoSymbol,       NoSymbol,
X+     /* 0x66 */  NoSymbol,       NoSymbol,
X+     /* 0x67 */  NoSymbol,       NoSymbol,
X+     /* 0x68 */  NoSymbol,       NoSymbol,
X+     /* 0x69 */  NoSymbol,       NoSymbol,
X+     /* 0x6a */  NoSymbol,       NoSymbol,
X+     /* 0x6b */  NoSymbol,       NoSymbol,
X+     /* 0x6c */  NoSymbol,       NoSymbol,
X+     /* 0x6d */  NoSymbol,       NoSymbol,
X+     /* 0x6e */  NoSymbol,       NoSymbol,
X+     /* 0x6f */  XK_Prior,       NoSymbol,       /* page up */
X+     /* 0x70 */  NoSymbol,       NoSymbol,
X+     /* 0x71 */  NoSymbol,       NoSymbol,
X+     /* 0x72 */  XK_Alt_R,       NoSymbol,
X+     /* 0x73 */  XK_Control_R,   NoSymbol,
X+     /* 0x74 */  XK_KP_Enter,    NoSymbol,
X+     /* 0x75 */  XK_backslash,   NoSymbol,
X+     /* 0x76 */  NoSymbol,       NoSymbol,
X+     /* 0x77 */  XK_Cancel,      NoSymbol,       /* scroll lock - XXX */
X+     /* 0x78 */  XK_Up,          NoSymbol,       /* up arrow */
X+     /* 0x79 */  XK_Delete,      NoSymbol,
X+     /* 0x7a */  XK_End,         NoSymbol,
X+     /* 0x7b */  XK_Insert,      NoSymbol,
X+     /* 0x7c */  XK_Left,        NoSymbol,
X+     /* 0x7d */  XK_Right,       NoSymbol,       /* right arrow */
X+     /* 0x7e */  XK_Next,        NoSymbol,       /* page down */
X+     /* 0x7f */  XK_Home,        NoSymbol,
X+ };
X+ #endif /* SYSVKEYMAP_H */
X*** ./mit-orig/server/ddx/ibm/sysV/sysVModKeys.h	Thu Oct  4 18:02:22 1990
X--- ./mit/server/ddx/ibm/sysV/sysVModKeys.h	Mon Sep 17 10:45:32 1990
X***************
X*** 0 ****
X--- 1,46 ----
X+ /*
X+  * Copyright IBM Corporation 1987,1988,1989
X+  *
X+  * All Rights Reserved
X+  *
X+  * Permission to use, copy, modify, and distribute this software and its
X+  * documentation for any purpose and without fee is hereby granted,
X+  * provided that the above copyright notice appear in all copies and that
X+  * both that copyright notice and this permission notice appear in
X+  * supporting documentation, and that the name of IBM not be
X+  * used in advertising or publicity pertaining to distribution of the
X+  * software without specific, written prior permission.
X+  *
X+  * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
X+  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
X+  * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
X+  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
X+  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
X+  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
X+  * SOFTWARE.
X+  *
X+ */
X+ /* Copyright International Business Machines Corporation 1987, 1988
X+  *
X+  */
X+ #ifndef SYSVINPUT_H
X+ #define SYSVINPUT_H
X+ #if defined(ix386) || defined(sco)
X+ #define SYSV_MIN_KEY  0x08
X+ #define SYSV_MAX_KEY (0x7f + SYSV_MIN_KEY)
X+ #define SYSV_GLYPHS_PER_KEY 2
X+ /*                                        Position
X+  *                          Base            Code
X+  */
X+ #define Sysv_Control_L    (SYSV_MIN_KEY   +    0x1D)
X+ #define Sysv_Control_R	  (SYSV_MIN_KEY	  +    0x73)
X+ #define Sysv_Shift_L      (SYSV_MIN_KEY   +    0x2A)
X+ #define Sysv_Shift_R      (SYSV_MIN_KEY   +    0x36)
X+ #define Sysv_Caps_Lock    (SYSV_MIN_KEY   +    0x3A)
X+ #define Sysv_Alt_L        (SYSV_MIN_KEY   +    0x38)
X+ #define Sysv_Alt_R        (SYSV_MIN_KEY   +    0x72)
X+ #define Sysv_Delete       (SYSV_MIN_KEY   +    0x53)
X+ #define Sysv_Num_Lock	  (SYSV_MIN_KEY   +    0x45)
X+ #define NumLockMask	  Mod5Mask
X+ #endif /* ix386 or sco */
X+ #endif /* SYSVINPUT_H */
X*** ./mit-orig/server/ddx/ibm/sysV/sysVMouse.c	Thu Oct  4 18:02:22 1990
X--- ./mit/server/ddx/ibm/sysV/sysVMouse.c	Mon Sep 17 10:45:32 1990
X***************
X*** 0 ****
X--- 1,142 ----
X+ /*
X+  * Copyright IBM Corporation 1987,1988,1989
X+  *
X+  * All Rights Reserved
X+  *
X+  * Permission to use, copy, modify, and distribute this software and its
X+  * documentation for any purpose and without fee is hereby granted,
X+  * provided that the above copyright notice appear in all copies and that
X+  * both that copyright notice and this permission notice appear in
X+  * supporting documentation, and that the name of IBM not be
X+  * used in advertising or publicity pertaining to distribution of the
X+  * software without specific, written prior permission.
X+  *
X+  * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
X+  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
X+  * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
X+  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
X+  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
X+  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
X+  * SOFTWARE.
X+  *
X+ */
X+ /***********************************************************
X+ 		Copyright IBM Corporation 1987,1988
X+                       All Rights Reserved
X+ Permission to use, copy, modify, and distribute this software and its
X+ documentation for any purpose and without fee is hereby granted,
X+ provided that the above copyright notice appear in all copies and that
X+ both that copyright notice and this permission notice appear in
X+ supporting documentation, and that the name of IBM not be
X+ used in advertising or publicity pertaining to distribution of the
X+ software without specific, written prior permission.
X+ IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
X+ ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
X+ IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
X+ ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
X+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
X+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
X+ SOFTWARE.
X+ ******************************************************************/
X+ #include <stdio.h>
X+ #include <sys/types.h>
X+ #include <sys/file.h>
X+ #include <sys/fcntl.h>
X+ #include <sys/termio.h>
X+ #include "X.h"
X+ #include "Xproto.h"
X+ #include "miscstruct.h"
X+ #include "scrnintstr.h"
X+ #include "input.h"
X+ #include "cursorstr.h"
X+ #include "ibmIO.h"
X+ #include "ibmMouse.h"
X+ #include "ibmScreen.h"
X+ #include "ibmTrace.h"
X+ #include "OSio.h"
X+ extern	char	*getenv();
X+ int	SYSVMouseChordDelay= 20;
X+ int     SYSVMouseType = MicroSoft;
X+ char *  SYSVPtrDev = "/dev/tty1a";
X+ int     (* SYSVPtrEvents)();
X+ /***================================================================***/
X+ static int
X+ SYSVGetMotionEvents(buff, start, stop)
X+     CARD32 start, stop;
X+     xTimecoord *buff;
X+ {
X+     TRACE(("GetMotionEvents( buff= 0x%x, start= %d, stop= %d )\n",
X+ 							buff,start,stop));
X+     return 0;
X+ }
X+ /***================================================================***/
X+ static unsigned	always0= 0;
X+ int
X+ SYSVMouseProc(pDev, onoff)
X+     DevicePtr	pDev;
X+     int onoff;
X+ {
X+     BYTE map[4];
X+     struct termio tty;
X+     TRACE(("SYSVMouseProc( pDev= 0x%x, onoff= 0x%x )\n",pDev, onoff ));
X+     switch (onoff)
X+     {
X+     case DEVICE_INIT:
X+ 	    if (pDev != LookupPointerDevice()) {
X+ 		ErrorF ("Cannot open non-system mouse");
X+ 		return (!Success);
X+ 	    }
X+ 	    if (SYSVmouseFd < 0) {
X+ 	      switch (SYSVMouseType) {
X+ 	      case MouseSystems:
X+ 		if ((SYSVmouseFd= open(SYSVPtrDev,O_RDONLY | O_NDELAY)) < 0) {
X+ 		  Error ("Opening MouseSystemsMouse");
X+ 		  return (!Success); }
X+ 		ioctl(SYSVmouseFd,TCGETA,&tty);
X+ 		tty.c_iflag = IGNBRK | IGNPAR ;
X+ 		tty.c_oflag = 0;
X+ 		tty.c_cflag = B1200 | CS8 | CSTOPB | CREAD;
X+ 		tty.c_lflag = 0;
X+ 		tty.c_cc[VTIME]=0;
X+ 		tty.c_cc[VMIN]=1;
X+ 		ioctl(SYSVmouseFd,TCSETA,&tty);
X+ 		SYSVPtrEvents = MSMPtrEvent;
X+ 		break;
X+ 	      case MicroSoft:
X+ 		if ((SYSVmouseFd= open(SYSVPtrDev,O_RDONLY | O_NDELAY)) < 0) {
X+ 		  Error ("Opening MicroSoftMouse");
X+ 		  return (!Success); }
X+ 		ioctl(SYSVmouseFd,TCGETA,&tty);
X+ 		tty.c_iflag = IGNBRK | IGNPAR ;
X+ 		tty.c_oflag = 0;
X+ 		tty.c_cflag = B1200 | CS7 | CREAD;
X+ 		tty.c_lflag = 0;
X+ 		tty.c_cc[VTIME]=0;
X+ 		tty.c_cc[VMIN]=1;
X+ 		ioctl(SYSVmouseFd,TCSETA,&tty);
X+ 		SYSVPtrEvents = MSPtrEvent;
X+ 		break;
X+ 	      }}
X+ 	    SYSVMouseState = 0;
X+ 	    pDev->on = FALSE;
X+ 	    ibmPtr = pDev;
X+ 	    map[1] = 1;
X+ 	    map[2] = 2;
X+ 	    map[3] = 3;
X+ 	    InitPointerDeviceStruct(
X+ 		ibmPtr, map, 3, SYSVGetMotionEvents, ibmChangePointerControl );
X+ 	    break;
X+ 	case DEVICE_ON:
X+ 	    AddEnabledDevice(SYSVmouseFd);
X+ 	    pDev->on = TRUE;
X+ 	    break;
X+ 	case DEVICE_CLOSE:
X+ 	    pDev->on = FALSE;
X+ 	    break;
X+ 	case DEVICE_OFF:
X+ 	    RemoveEnabledDevice(SYSVmouseFd);
X+ 	    pDev->on = FALSE;
X+ 	    break;
X+ 	  }
X+     return Success;
X+ }
X*** ./mit-orig/server/ddx/ibm/vga/Imakefile	Thu Oct  4 16:51:00 1990
X--- ./mit/server/ddx/ibm/vga/Imakefile	Mon Oct  1 16:09:15 1990
X***************
X*** 19,25 ****
X  		vgaStipple.c	\
X  		vgaSolid.c
X  
X! ASM_SRCS =	vgaLine.386.s
X  
X  OTHER_FILES =	vgaAddr.c
X  
X--- 19,27 ----
X  		vgaStipple.c	\
X  		vgaSolid.c
X  
X! ASM_SRCS =	vgaLine.386.s \
X! 		vgaSld.386.s \
X! 		vgaBlit.386.s
X  
X  OTHER_FILES =	vgaAddr.c
X  
X***************
X*** 39,57 ****
X  		vgaStipple.o	\
X  		vgaSolid.o
X  
X! #if defined(PS2Architecture) || defined(iAPX286) || defined(DOS)
X! ASM_OBJS =	vgaLine.386.o
X! #else
X! ASM_OBJS =
X! #endif
X  
X  OBJS =		$(C_OBJS)	$(ASM_OBJS)
X  
X- #if defined(PS2Architecture) || defined(iAPX286) || defined(DOS)
X  STD_DEFINES = ServerDefines -DPCIO
X- #else
X- STD_DEFINES = ServerDefines -DATRIO -DUSE_PORTABLE_FAST_LINES=1
X- #endif
X  
X  INCLUDES =	-I. -I../OPERATING_SYSTEM -I../ppc -I../../../include \
X  		-I$(INCLUDESRC) -I../common -I../../mfb -I../../mi
X--- 41,53 ----
X  		vgaStipple.o	\
X  		vgaSolid.o
X  
X! ASM_OBJS =	vgaLine.386.o \
X! 		vgaSld.386.o \
X! 		vgaBlit.386.o
X  
X  OBJS =		$(C_OBJS)	$(ASM_OBJS)
X  
X  STD_DEFINES = ServerDefines -DPCIO
X  
X  INCLUDES =	-I. -I../OPERATING_SYSTEM -I../ppc -I../../../include \
X  		-I$(INCLUDESRC) -I../common -I../../mfb -I../../mi
X***************
X*** 130,133 ****
X--- 126,150 ----
X  #ifndef LCGBUILD
X  LintLibraryTarget(vga,$(SRCS))
X  NormalLintTarget($(SRCS))
X+ #endif
X+ 
X+ #if defined(i386Architecture) && !HasGcc
X+   /*
X+    * rcc won't statically initialize unions. Maybe we can do this at runtime.
X+    *
X+    * We are in trouble if we have to use cc here. cc does not pack bit
X+    * fields the same way that rcc and gcc do. The result is that object
X+    * files made by two different compilers are incompatible.
X+    *
X+    * struct {
X+    *     char a[3];
X+    *     unsigned i:1;
X+    *     int j;
X+    * };
X+    *
X+    * cc produces an offset of 8 for j.
X+    * rcc and gcc produce an offset of 4 for j.
X+    */
X+ vgaData.o: vgaData.c
X+ 	gcc $(CFLAGS) -c vgaData.c
X  #endif
X*** ./mit-orig/server/ddx/ibm/vga/vgaBitBlt.c	Thu Oct  4 16:51:02 1990
X--- ./mit/server/ddx/ibm/vga/vgaBitBlt.c	Sun Sep 16 22:19:27 1990
X***************
X*** 62,67 ****
X--- 62,71 ----
X  #undef LEFT_SHIFT
X  
X  
X+ #ifdef USE_ASM
X+ extern void fast_blt_Aligned_Left();
X+ extern void fast_blt_Aligned_Right();
X+ #else
X  #define NO_SHIFT
X  #define MOVE_RIGHT
X  static /* fast_blt_Aligned_Right() */
X***************
X*** 71,76 ****
X--- 75,81 ----
X  #define MOVE_LEFT
X  static /* fast_blt_Aligned_Left() */
X  #include "vgaAddr.c"
X+ #endif
X  #undef MOVE_LEFT
X  #undef NO_SHIFT
X  
X*** ./mit-orig/server/ddx/ibm/vga/vgaBlit.386.s	Thu Oct  4 18:02:23 1990
X--- ./mit/server/ddx/ibm/vga/vgaBlit.386.s	Mon Sep 17 16:55:55 1990
X***************
X*** 0 ****
X--- 1,436 ----
X+ 	.file	"vgaBlit.386.s"
X+ .text
X+ 	.align 4
X+ 	.globl fast_blt_Aligned_Left
X+ fast_blt_Aligned_Left:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %edi
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%edi
X+ 	movl 16(%ebp),%edx
X+ 	movl 20(%ebp),%ebx
X+ 	movl 24(%ebp),%ecx
X+ 	leal (%ecx,%edx),%eax
X+ 	std
X+ 	negl %edx
X+ 	addl $128,%edx
X+ 	leal .fastALeft0(%edx),%edx
X+ 	jmp *%edx
X+ 	.align 4
X+ .fastALeft0:
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb; 	movsb;
X+ 	decl %ebx
X+ 	je .fastALeft1
X+ 	addl %eax,%esi
X+ 	addl %eax,%edi
X+ 	jmp *%edx
X+ .fastALeft1:
X+ 	cld
X+ 	leal -24(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	popl %edi
X+ 	leave
X+ 	ret
X+ 	.align 4
X+ 	.globl fast_blt_Aligned_Right
X+ fast_blt_Aligned_Right:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %edi
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	pushl %ebp
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%edi
X+ 	movl 16(%ebp),%edx
X+ 	movl 20(%ebp),%ebx
X+ 	movl 24(%ebp),%ebp
X+ 	movl %ebp,%eax
X+ 	subl %edx,%eax
X+ 	leal (%esi,%edx),%ecx
X+ 	cld
X+ 	andl $15,%edx
X+ 	jmp *.fastARight0(,%edx,4)
X+ 	.align 4
X+ .fastARight0:
X+ 	.long .fastARight1
X+ 	.long .fastARight16
X+ 	.long .fastARight15
X+ 	.long .fastARight14
X+ 	.long .fastARight13
X+ 	.long .fastARight12
X+ 	.long .fastARight11
X+ 	.long .fastARight10
X+ 	.long .fastARight9
X+ 	.long .fastARight8
X+ 	.long .fastARight7
X+ 	.long .fastARight6
X+ 	.long .fastARight5
X+ 	.long .fastARight4
X+ 	.long .fastARight3
X+ 	.long .fastARight2
X+ .fastARight1:
X+ 	movsb
X+ .fastARight2:
X+ 	movsb
X+ .fastARight3:
X+ 	movsb
X+ .fastARight4:
X+ 	movsb
X+ .fastARight5:
X+ 	movsb
X+ .fastARight6:
X+ 	movsb
X+ .fastARight7:
X+ 	movsb
X+ .fastARight8:
X+ 	movsb
X+ .fastARight9:
X+ 	movsb
X+ .fastARight10:
X+ 	movsb
X+ .fastARight11:
X+ 	movsb
X+ .fastARight12:
X+ 	movsb
X+ .fastARight13:
X+ 	movsb
X+ .fastARight14:
X+ 	movsb
X+ .fastARight15:
X+ 	movsb
X+ .fastARight16:
X+ 	movsb
X+ 	cmpl %esi,%ecx
X+ 	jne .fastARight1
X+ 	decl %ebx
X+ 	je .fastARight17
X+ 	addl %eax,%esi
X+ 	addl %eax,%edi
X+ 	addl %ebp,%ecx
X+ 	jmp *.fastARight0(,%edx,4)
X+ .fastARight17:
X+ 	popl %ebp
X+ 	leal -24(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	popl %edi
X+ 	leave
X+ 	ret
X+ 	.text
X+ 	.align 4
X+ fast_CursortoBlt1:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%ecx
X+ 	movl 16(%ebp),%ebx
X+ 	movl BYTES_PER_ROW,%eax
X+ 	decl %eax
X+ .fast_toBlt1_0:
X+ 	movb (%esi),%dl
X+ 	movb %dl,(%ecx)
X+ 	incl %esi
X+ 	leal 1(%eax,%ecx),%ecx
X+ .fast_toBlt1_1:
X+ 	decl %ebx
X+ 	jne .fast_toBlt1_0
X+ 	leal -8(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	leave
X+ 	ret
X+ 	.align 4
X+ fast_CursortoBlt2:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%ecx
X+ 	movl 16(%ebp),%ebx
X+ 	movl BYTES_PER_ROW,%eax
X+ 	subl $2,%eax
X+ .fast_toBlt2_0:
X+ 	movb (%esi),%dl
X+ 	movb %dl,(%ecx)
X+ 	movb 1(%esi),%dl
X+ 	movb %dl,1(%ecx)
X+ 	addl $2,%esi
X+ 	leal 2(%eax,%ecx),%ecx
X+ .fast_toBlt2_1:
X+ 	decl %ebx
X+ 	jne .fast_toBlt2_0
X+ 	leal -8(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	leave
X+ 	ret
X+ 	.align 4
X+ fast_CursortoBlt3:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%ecx
X+ 	movl 16(%ebp),%ebx
X+ 	movl BYTES_PER_ROW,%eax
X+ 	subl $3,%eax
X+ .fast_toBlt3_0:
X+ 	movb (%esi),%dl
X+ 	movb %dl,(%ecx)
X+ 	movb 1(%esi),%dl
X+ 	movb %dl,1(%ecx)
X+ 	movb 2(%esi),%dl
X+ 	movb %dl,2(%ecx)
X+ 	addl $3,%esi
X+ 	leal 3(%eax,%ecx),%ecx
X+ .fast_toBlt3_1:
X+ 	decl %ebx
X+ 	jne .fast_toBlt3_0
X+ 	leal -8(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	leave
X+ 	ret
X+ 	.align 4
X+ fast_CursortoBlt4:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%ecx
X+ 	movl 16(%ebp),%ebx
X+ 	movl BYTES_PER_ROW,%eax
X+ 	subl $4,%eax
X+ .fast_toBlt4_0:
X+ 	movb (%esi),%dl
X+ 	movb %dl,(%ecx)
X+ 	movb 1(%esi),%dl
X+ 	movb %dl,1(%ecx)
X+ 	movb 2(%esi),%dl
X+ 	movb %dl,2(%ecx)
X+ 	movb 3(%esi),%dl
X+ 	movb %dl,3(%ecx)
X+ 	addl $4,%esi
X+ 	leal 4(%eax,%ecx),%ecx
X+ .fast_toBlt4_1:
X+ 	decl %ebx
X+ 	jne .fast_toBlt4_0
X+ 	leal -8(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	leave
X+ 	ret
X+ 	.align 4
X+ fast_CursortoBlt5:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%ecx
X+ 	movl 16(%ebp),%ebx
X+ 	movl BYTES_PER_ROW,%eax
X+ 	subl $5,%eax
X+ .fast_toBlt5_0:
X+ 	movb (%esi),%dl
X+ 	movb %dl,(%ecx)
X+ 	movb 1(%esi),%dl
X+ 	movb %dl,1(%ecx)
X+ 	movb 2(%esi),%dl
X+ 	movb %dl,2(%ecx)
X+ 	movb 3(%esi),%dl
X+ 	movb %dl,3(%ecx)
X+ 	movb 4(%esi),%dl
X+ 	movb %dl,4(%ecx)
X+ 	addl $5,%esi
X+ 	leal 5(%eax,%ecx),%ecx
X+ .fast_toBlt5_1:
X+ 	decl %ebx
X+ 	jne .fast_toBlt5_0
X+ 	leal -8(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	leave
X+ 	ret
X+ 	.align 4
X+ fast_CursorfromBlt1:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%ecx
X+ 	movl 16(%ebp),%ebx
X+ 	movl BYTES_PER_ROW,%eax
X+ 	decl %eax
X+ .fast_fromBlt1_0:
X+ 	movb (%esi),%dl
X+ 	movb %dl,(%ecx)
X+ 	incl %ecx
X+ 	leal 1(%eax,%esi),%esi
X+ .fast_fromBlt1_1:
X+ 	decl %ebx
X+ 	jne .fast_fromBlt1_0
X+ 	leal -8(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	leave
X+ 	ret
X+ 	.align 4
X+ fast_CursorfromBlt2:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%ecx
X+ 	movl 16(%ebp),%ebx
X+ 	movl BYTES_PER_ROW,%eax
X+ 	subl $2,%eax
X+ .fast_fromBlt2_0:
X+ 	movb (%esi),%dl
X+ 	movb %dl,(%ecx)
X+ 	movb 1(%esi),%dl
X+ 	movb %dl,1(%ecx)
X+ 	addl $2,%ecx
X+ 	leal 2(%eax,%esi),%esi
X+ .fast_fromBlt2_1:
X+ 	decl %ebx
X+ 	jne .fast_fromBlt2_0
X+ 	leal -8(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	leave
X+ 	ret
X+ 	.align 4
X+ fast_CursorfromBlt3:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%ecx
X+ 	movl 16(%ebp),%ebx
X+ 	movl BYTES_PER_ROW,%eax
X+ 	subl $3,%eax
X+ .fast_fromBlt3_0:
X+ 	movb (%esi),%dl
X+ 	movb %dl,(%ecx)
X+ 	movb 1(%esi),%dl
X+ 	movb %dl,1(%ecx)
X+ 	movb 2(%esi),%dl
X+ 	movb %dl,2(%ecx)
X+ 	addl $3,%ecx
X+ 	leal 3(%eax,%esi),%esi
X+ .fast_fromBlt3_1:
X+ 	decl %ebx
X+ 	jne .fast_fromBlt3_0
X+ 	leal -8(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	leave
X+ 	ret
X+ 	.align 4
X+ fast_CursorfromBlt4:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%ecx
X+ 	movl 16(%ebp),%ebx
X+ 	movl BYTES_PER_ROW,%eax
X+ 	subl $4,%eax
X+ .fast_fromBlt4_0:
X+ 	movb (%esi),%dl
X+ 	movb %dl,(%ecx)
X+ 	movb 1(%esi),%dl
X+ 	movb %dl,1(%ecx)
X+ 	movb 2(%esi),%dl
X+ 	movb %dl,2(%ecx)
X+ 	movb 3(%esi),%dl
X+ 	movb %dl,3(%ecx)
X+ 	addl $4,%ecx
X+ 	leal 4(%eax,%esi),%esi
X+ .fast_fromBlt4_1:
X+ 	decl %ebx
X+ 	jne .fast_fromBlt4_0
X+ 	leal -8(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	leave
X+ 	ret
X+ 	.align 4
X+ fast_CursorfromBlt5:
X+ 	pushl %ebp
X+ 	movl %esp,%ebp
X+ 	pushl %esi
X+ 	pushl %ebx
X+ 	movl 8(%ebp),%esi
X+ 	movl 12(%ebp),%ecx
X+ 	movl 16(%ebp),%ebx
X+ 	movl BYTES_PER_ROW,%eax
X+ 	subl $5,%eax
X+ .fast_fromBlt5_0:
X+ 	movb (%esi),%dl
X+ 	movb %dl,(%ecx)
X+ 	movb 1(%esi),%dl
X+ 	movb %dl,1(%ecx)
X+ 	movb 2(%esi),%dl
X+ 	movb %dl,2(%ecx)
X+ 	movb 3(%esi),%dl
X+ 	movb %dl,3(%ecx)
X+ 	movb 4(%esi),%dl
X+ 	movb %dl,4(%ecx)
X+ 	addl $5,%ecx
X+ 	leal 5(%eax,%esi),%esi
X+ .fast_fromBlt5_1:
X+ 	decl %ebx
X+ 	jne .fast_fromBlt5_0
X+ 	leal -8(%ebp),%esp
X+ 	popl %ebx
X+ 	popl %esi
X+ 	leave
X+ 	ret
X+ 	.data
X+ 	.align 4
X+ 	.globl UnwoundtoBlitProcs
X+ UnwoundtoBlitProcs:
X+ 	.long fast_CursortoBlt1
X+ 	.long fast_CursortoBlt2
X+ 	.long fast_CursortoBlt3
X+ 	.long fast_CursortoBlt4
X+ 	.long fast_CursortoBlt5
X+ 	.align 4
X+ 	.globl UnwoundfromBlitProcs
X+ UnwoundfromBlitProcs:
X+ 	.long fast_CursorfromBlt1
X+ 	.long fast_CursorfromBlt2
X+ 	.long fast_CursorfromBlt3
X+ 	.long fast_CursorfromBlt4
X+ 	.long fast_CursorfromBlt5
X*** ./mit-orig/server/ddx/ibm/vga/vgaCurs.c	Thu Oct  4 16:51:02 1990
X--- ./mit/server/ddx/ibm/vga/vgaCurs.c	Sun Sep 16 22:14:11 1990
X***************
X*** 55,63 ****
X  /* CONSTANTS FOR NOW */
X  #define MAX_CURSOR_WIDTH 32
X  #define MAX_CURSOR_HEIGHT 32
X- #define CURSOR_SAVE_ROW ( MAX_OFFSCREEN_ROW - MAX_CURSOR_HEIGHT )
X- #define CURSOR_SAVE_COL 0
X  
X  /* Global Semaphore For Low Level ( e.g. Screen Drawing ) Routines */
X  int vgaCursorSemaphore = 0 ;
X  
X--- 55,62 ----
X  /* CONSTANTS FOR NOW */
X  #define MAX_CURSOR_WIDTH 32
X  #define MAX_CURSOR_HEIGHT 32
X  
X+ extern unsigned char * CURSOR_BUFFER;
X  /* Global Semaphore For Low Level ( e.g. Screen Drawing ) Routines */
X  int vgaCursorSemaphore = 0 ;
X  
X***************
X*** 85,118 ****
X  static int background_width  = MAX_CURSOR_WIDTH ;	/* width */
X  static int background_height = MAX_CURSOR_HEIGHT ;	/* height */
X  
X  /* Bytewidth == 1 */
X  static void
X! fast_CursorBlt1( source, destination, height )
X  register volatile unsigned char *source ;
X  register volatile unsigned char *destination ;
X  register unsigned int height ;
X  {
X  
X! #define row_jump ( BYTES_PER_ROW - 1 )
X  
X! for ( ; height-- ; source += row_jump, destination += row_jump ) {
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X  		*( (VgaMemoryPtr) ( source ++ ) ) ;
X  }
X  return ;
X  }
X- #undef row_jump
X  /* Bytewidth == 2 */
X  static void
X! fast_CursorBlt2( source, destination, height )
X  register volatile unsigned char *source ;
X  register volatile unsigned char *destination ;
X  register unsigned int height ;
X  {
X  
X! #define row_jump ( BYTES_PER_ROW - 2 )
X  
X! for ( ; height-- ; source += row_jump, destination += row_jump ) {
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X  		*( (VgaMemoryPtr) ( source ++ ) ) ;
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X--- 84,217 ----
X  static int background_width  = MAX_CURSOR_WIDTH ;	/* width */
X  static int background_height = MAX_CURSOR_HEIGHT ;	/* height */
X  
X+ #ifdef USE_ASM
X+ extern void (*UnwoundfromBlitProcs[5])();
X+ extern void (*UnwoundtoBlitProcs[5])();
X+ #else
X  /* Bytewidth == 1 */
X  static void
X! fast_CursortoBlt1( source, destination, height )
X  register volatile unsigned char *source ;
X  register volatile unsigned char *destination ;
X  register unsigned int height ;
X  {
X+ register int row_jump = BYTES_PER_ROW - 1;
X+ for ( ; height-- ; destination += row_jump ) {
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ }
X+ return ;
X+ }
X+ /* Bytewidth == 2 */
X+ static void
X+ fast_CursortoBlt2( source, destination, height )
X+ register volatile unsigned char *source ;
X+ register volatile unsigned char *destination ;
X+ register unsigned int height ;
X+ {
X+ register int row_jump = BYTES_PER_ROW - 2;
X+ for ( ; height-- ; destination += row_jump ) {
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ }
X+ return ;
X+ }
X+ /* Bytewidth == 3 */
X+ static void
X+ fast_CursortoBlt3( source, destination, height )
X+ register volatile unsigned char *source ;
X+ register volatile unsigned char *destination ;
X+ register unsigned int height ;
X+ {
X+ register int row_jump = BYTES_PER_ROW - 3;
X+ for ( ; height-- ; destination += row_jump ) {
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ }
X+ return ;
X+ }
X+ /* Bytewidth == 4 */
X+ static void
X+ fast_CursortoBlt4( source, destination, height )
X+ register volatile unsigned char *source ;
X+ register volatile unsigned char *destination ;
X+ register unsigned int height ;
X+ {
X+ register int row_jump = BYTES_PER_ROW - 4;
X+ for ( ; height-- ; destination += row_jump ) {
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ }
X+ return ;
X+ }
X+ /* Bytewidth == 5 */
X+ static void
X+ fast_CursortoBlt5( source, destination, height )
X+ register volatile unsigned char *source ;
X+ register volatile unsigned char *destination ;
X+ register unsigned int height ;
X+ {
X+ register int row_jump = BYTES_PER_ROW - 5;
X+ for ( ; height-- ; destination += row_jump ) {
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ 	*( (VgaMemoryPtr) ( destination ++ ) ) =
X+ 		*( (VgaMemoryPtr) ( source ++ ) ) ;
X+ }
X+ return ;
X+ }
X+ static void (*UnwoundtoBlitProcs[5])() = {
X+ 	fast_CursortoBlt1,
X+ 	fast_CursortoBlt2,
X+ 	fast_CursortoBlt3,
X+ 	fast_CursortoBlt4,
X+ 	fast_CursortoBlt5
X+ } ;
X+ /* Bytewidth == 1 */
X+ static void
X+ fast_CursorfromBlt1( source, destination, height )
X+ register volatile unsigned char *source ;
X+ register volatile unsigned char *destination ;
X+ register unsigned int height ;
X+ {
X  
X! register int row_jump = BYTES_PER_ROW - 1;
X  
X! for ( ; height-- ; source += row_jump ) {
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X  		*( (VgaMemoryPtr) ( source ++ ) ) ;
X  }
X  return ;
X  }
X  /* Bytewidth == 2 */
X  static void
X! fast_CursorfromBlt2( source, destination, height )
X  register volatile unsigned char *source ;
X  register volatile unsigned char *destination ;
X  register unsigned int height ;
X  {
X  
X! register int row_jump = BYTES_PER_ROW - 2;
X  
X! for ( ; height-- ; source += row_jump ) {
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X  		*( (VgaMemoryPtr) ( source ++ ) ) ;
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X***************
X*** 120,137 ****
X  }
X  return ;
X  }
X- #undef row_jump
X  /* Bytewidth == 3 */
X  static void
X! fast_CursorBlt3( source, destination, height )
X  register volatile unsigned char *source ;
X  register volatile unsigned char *destination ;
X  register unsigned int height ;
X  {
X  
X! #define row_jump ( BYTES_PER_ROW - 3 )
X  
X! for ( ; height-- ; source += row_jump, destination += row_jump ) {
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X  		*( (VgaMemoryPtr) ( source ++ ) ) ;
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X--- 219,235 ----
X  }
X  return ;
X  }
X  /* Bytewidth == 3 */
X  static void
X! fast_CursorfromBlt3( source, destination, height )
X  register volatile unsigned char *source ;
X  register volatile unsigned char *destination ;
X  register unsigned int height ;
X  {
X  
X! register int row_jump = BYTES_PER_ROW - 3;
X  
X! for ( ; height-- ; source += row_jump ) {
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X  		*( (VgaMemoryPtr) ( source ++ ) ) ;
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X***************
X*** 141,158 ****
X  }
X  return ;
X  }
X- #undef row_jump
X  /* Bytewidth == 4 */
X  static void
X! fast_CursorBlt4( source, destination, height )
X  register volatile unsigned char *source ;
X  register volatile unsigned char *destination ;
X  register unsigned int height ;
X  {
X  
X! #define row_jump ( BYTES_PER_ROW - 4 )
X  
X! for ( ; height-- ; source += row_jump, destination += row_jump ) {
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X  		*( (VgaMemoryPtr) ( source ++ ) ) ;
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X--- 239,255 ----
X  }
X  return ;
X  }
X  /* Bytewidth == 4 */
X  static void
X! fast_CursorfromBlt4( source, destination, height )
X  register volatile unsigned char *source ;
X  register volatile unsigned char *destination ;
X  register unsigned int height ;
X  {
X  
X! register int row_jump = BYTES_PER_ROW - 4;
X  
X! for ( ; height-- ; source += row_jump ) {
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X  		*( (VgaMemoryPtr) ( source ++ ) ) ;
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X***************
X*** 164,181 ****
X  }
X  return ;
X  }
X- #undef row_jump
X  /* Bytewidth == 5 */
X  static void
X! fast_CursorBlt5( source, destination, height )
X  register volatile unsigned char *source ;
X  register volatile unsigned char *destination ;
X  register unsigned int height ;
X  {
X  
X! #define row_jump ( BYTES_PER_ROW - 5 )
X  
X! for ( ; height-- ; source += row_jump, destination += row_jump ) {
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X  		*( (VgaMemoryPtr) ( source ++ ) ) ;
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X--- 261,277 ----
X  }
X  return ;
X  }
X  /* Bytewidth == 5 */
X  static void
X! fast_CursorfromBlt5( source, destination, height )
X  register volatile unsigned char *source ;
X  register volatile unsigned char *destination ;
X  register unsigned int height ;
X  {
X  
X! register int row_jump = BYTES_PER_ROW - 5;
X  
X! for ( ; height-- ; source += row_jump ) {
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X  		*( (VgaMemoryPtr) ( source ++ ) ) ;
X  	*( (VgaMemoryPtr) ( destination ++ ) ) =
X***************
X*** 189,213 ****
X  }
X  return ;
X  }
X- #undef row_jump
X  
X! static void (*UnwoundBlitProcs[5])() = {
X! 	fast_CursorBlt1,
X! 	fast_CursorBlt2,
X! 	fast_CursorBlt3,
X! 	fast_CursorBlt4,
X! 	fast_CursorBlt5
X  } ;
X  
X  /* Only Does Special Case -- VERY Fast Blt
X   * ( Width % 8 ) == 0 AND ( x0 % 8 ) == 0 AND ( x1 % 8 ) == 0
X   */
X  static void
X! vgaCursorBitBlt( x0, y0, x1, y1, w, h )
X  register int x0 ;
X  register int y0 ;
X- register int x1 ;
X- register int y1 ;
X  register int w, h ;
X  {
X  
X--- 285,330 ----
X  }
X  return ;
X  }
X  
X! static void (*UnwoundfromBlitProcs[5])() = {
X! 	fast_CursorfromBlt1,
X! 	fast_CursorfromBlt2,
X! 	fast_CursorfromBlt3,
X! 	fast_CursorfromBlt4,
X! 	fast_CursorfromBlt5
X  } ;
X+ #endif
X  
X  /* Only Does Special Case -- VERY Fast Blt
X   * ( Width % 8 ) == 0 AND ( x0 % 8 ) == 0 AND ( x1 % 8 ) == 0
X   */
X  static void
X! vgaCursortoBitBlt( x0, y0, w, h )
X! register int x0 ;
X! register int y0 ;
X! register int w, h ;
X! {
X! /* ******************** Vga Register Setup ******************** */
X! /* Disable SET/RESET Function */
X! SetVideoGraphics( Enb_Set_ResetIndex, 0 ) ;
X! /* Set Write Mode To 0 -- Read Mode To 0 */
X! SetVideoGraphics( Graphics_ModeIndex, 0 ) ;
X! /* Set Bit Mask -- ALL OFF */
X! SetVideoGraphics( Bit_MaskIndex, 0 ) ;
X! /* Ignore Data Rotate Function */
X! /* Set Map Mask */
X! SetVideoSequencer( Mask_MapIndex, VGA_ALLPLANES ) ;
X! /* Really Do It Here! */
X! (*UnwoundtoBlitProcs[ROW_OFFSET( w ) - 1])(
X! 	(unsigned char *) CURSOR_BUFFER,
X! 	(unsigned char *) VGABASE + ( BYTES_PER_ROW * y0 ) + ROW_OFFSET( x0 ),
X! 	h ) ;
X! return ;
X! }
X! static void
X! vgaCursorfromBitBlt( x0, y0, w, h )
X  register int x0 ;
X  register int y0 ;
X  register int w, h ;
X  {
X  
X***************
X*** 223,231 ****
X  SetVideoSequencer( Mask_MapIndex, VGA_ALLPLANES ) ;
X  
X  /* Really Do It Here! */
X! (*UnwoundBlitProcs[ROW_OFFSET( w ) - 1])(
X  	(unsigned char *) VGABASE + ( BYTES_PER_ROW * y0 ) + ROW_OFFSET( x0 ),
X! 	(unsigned char *) VGABASE + ( BYTES_PER_ROW * y1 ) + ROW_OFFSET( x1 ),
X  	h ) ;
X  
X  return ;
X--- 340,348 ----
X  SetVideoSequencer( Mask_MapIndex, VGA_ALLPLANES ) ;
X  
X  /* Really Do It Here! */
X! (*UnwoundfromBlitProcs[ROW_OFFSET( w ) - 1])(
X  	(unsigned char *) VGABASE + ( BYTES_PER_ROW * y0 ) + ROW_OFFSET( x0 ),
X! 	(unsigned char *) CURSOR_BUFFER,
X  	h ) ;
X  
X  return ;
X***************
X*** 389,396 ****
X  void
X  vgaRemoveCursor()
X  {
X!     vgaCursorBitBlt( CURSOR_SAVE_COL, CURSOR_SAVE_ROW,
X! 		     cursor_save_x_loc, cursor_save_y_loc,
X  		     cursor_save_width, cursor_save_height ) ;
X      active = FALSE ;
X  return ;
X--- 506,512 ----
X  void
X  vgaRemoveCursor()
X  {
X!   vgaCursortoBitBlt( cursor_save_x_loc, cursor_save_y_loc,
X  		     cursor_save_width, cursor_save_height ) ;
X      active = FALSE ;
X  return ;
X***************
X*** 445,456 ****
X    && ( ( bg_height > 0 ) || ( fg_height > 0 ) )
X    && ( x <= MAX_COLUMN )
X    && ( y <= MAX_ROW ) ) {
X! 	/* Round Edges To Use FAST Blt */
X! 	vgaCursorBitBlt( 
X  		   ( cursor_save_x_loc = x & ~0x7 ),
X  		   ( cursor_save_y_loc = y ),
X- 		   CURSOR_SAVE_COL,
X- 		   CURSOR_SAVE_ROW,
X  ( cursor_save_width = ( ( MAX( bgwidth, fgwidth )
X  			+ ( x & 0x7 ) ) + 0x7 ) & ~0x7 ),
X  		   ( cursor_save_height = MAX( bg_height, fg_height ) ) ) ;
X--- 561,570 ----
X    && ( ( bg_height > 0 ) || ( fg_height > 0 ) )
X    && ( x <= MAX_COLUMN )
X    && ( y <= MAX_ROW ) ) {
X! 	/* screeen to buffer */
X! 	vgaCursorfromBitBlt( 
X  		   ( cursor_save_x_loc = x & ~0x7 ),
X  		   ( cursor_save_y_loc = y ),
X  ( cursor_save_width = ( ( MAX( bgwidth, fgwidth )
X  			+ ( x & 0x7 ) ) + 0x7 ) & ~0x7 ),
X  		   ( cursor_save_height = MAX( bg_height, fg_height ) ) ) ;
X*** ./mit-orig/server/ddx/ibm/vga/vgaData.c	Thu Oct  4 16:51:11 1990
X--- ./mit/server/ddx/ibm/vga/vgaData.c	Tue Sep 18 21:42:52 1990
X***************
X*** 166,172 ****
X  	VGA_ALLPLANES,		/*  unsigned long	planemask */
X  	VGA_BLACK_PIXEL,	/*  unsigned long	fgPixel */
X  	VGA_WHITE_PIXEL,	/*  unsigned long	bgPixel */
X! 	0,			/*  PixmapPtr	tile	 */
X  	0,			/*  PixmapPtr	stipple	 */
X  	{ 0, 0 },		/*  DDXPointRec	patOrg	 */
X  	0,			/*  FontPtr	font	 */
X--- 166,172 ----
X  	VGA_ALLPLANES,		/*  unsigned long	planemask */
X  	VGA_BLACK_PIXEL,	/*  unsigned long	fgPixel */
X  	VGA_WHITE_PIXEL,	/*  unsigned long	bgPixel */
X! 	{ 0 },                  /*  PixUnion	tile	 */
X  	0,			/*  PixmapPtr	stipple	 */
X  	{ 0, 0 },		/*  DDXPointRec	patOrg	 */
X  	0,			/*  FontPtr	font	 */
X***************
X*** 175,183 ****
X  	NULL,			/*  pointer	clientClip */
X  	(1<<(GCLastBit+1))-1,	/*  unsigned long	stateChanges */
X  	0,			/*  unsigned long        serialNumber */
X! 	(GCFuncs *) &vgaGCFuncs,		/*  pointer	funcs */
X! 	(GCOps *) &vgaGCOps,		/*  pointer	ops */
X! 	(DevUnion *) &vgaPrototypeGCPriv	/*  DevUnion *devPrivates */
X  } ;
X  
X  ppcScrnPriv vgaScrnPriv = {
X--- 175,183 ----
X  	NULL,			/*  pointer	clientClip */
X  	(1<<(GCLastBit+1))-1,	/*  unsigned long	stateChanges */
X  	0,			/*  unsigned long        serialNumber */
X! 	(GCFuncs *)&vgaGCFuncs,	/*  pointer	funcs */
X! 	(GCOps *)&vgaGCOps,	/*  pointer	ops */
X! 	(DevUnion *)&vgaPrototypeGCPriv /*  DevUnion *devPrivates */
X  } ;
X  
X  ppcScrnPriv vgaScrnPriv = {
X***************
X*** 190,203 ****
X  			0,		/* unsigned long        id */
X  			0,		/* short        x */
X  			0,		/* short        y */
X! 			MAX_COLUMN + 1,	/* short        width */
X! 			MAX_ROW + 1,	/* short        height */
X  			0,		/* ScreenPtr    pScreen */
X  			0,		/* unsigned long        serialNumber */
X  		},		/* DrawableRec drawable */
X  		1,		/* int refcnt */
X! 		(MAX_ROW + 1) / 8,	/* int devKind */
X! 		0		/* pointer devPrivate */
X  	},			/* PixmapRec	pixmap */
X  	0,			/* void	(* devHardwareInitBB)() */
X  	0,			/* void	(* devHardwareInitAB)() */
X--- 190,203 ----
X  			0,		/* unsigned long        id */
X  			0,		/* short        x */
X  			0,		/* short        y */
X! 			640,	        /* short        width */
X! 			480,	        /* short        height */
X  			0,		/* ScreenPtr    pScreen */
X  			0,		/* unsigned long        serialNumber */
X  		},		/* DrawableRec drawable */
X  		1,		/* int refcnt */
X! 		60,	        /* int devKind */
X! 		{ 0 }       	/* DevUnion devPrivate */
X  	},			/* PixmapRec	pixmap */
X  	0,			/* void	(* devHardwareInitBB)() */
X  	0,			/* void	(* devHardwareInitAB)() */
X***************
X*** 233,242 ****
X  ScreenRec vgaScreenRec = {
X  	0,			/* int			myNum */
X  	0,			/* ATOM id */
X! 	MAX_COLUMN + 1,		/* short		width */
X! 	MAX_ROW	+ 1,		/* short		height */
X! 	((MAX_COLUMN+1)*254 )/800, /* short		mmWidth */
X! 	((MAX_ROW+1)*254)/800,	/* short		mmHeight */
X  	sizeof vgaDepths/sizeof (DepthRec), /* short	numDepths */
X  	VGA_MAXPLANES,		/* short   	    	rootDepth */
X  	vgaDepths,		/* DepthPtr       	allowedDepths */
X--- 233,242 ----
X  ScreenRec vgaScreenRec = {
X  	0,			/* int			myNum */
X  	0,			/* ATOM id */
X! 	640,		        /* short		width */
X! 	480,		        /* short		height */
X! 	240,                    /* short		mmWidth */
X! 	180,	                /* short		mmHeight */
X  	sizeof vgaDepths/sizeof (DepthRec), /* short	numDepths */
X  	VGA_MAXPLANES,		/* short   	    	rootDepth */
X  	vgaDepths,		/* DepthPtr       	allowedDepths */
X*** ./mit-orig/server/ddx/ibm/vga/vgaGBlt.c	Thu Oct  4 16:51:03 1990
X--- ./mit/server/ddx/ibm/vga/vgaGBlt.c	Sun Sep 16 22:14:12 1990
X***************
X*** 70,94 ****
X  #include	"mfb.h"
X  #include	"ppc.h"
X  #include	"maskbits.h"
X- #include	"ppcUtils.h"
X  
X  extern PixmapPtr ppcCreatePixmap() ;
X  
X! static
X! void filltempPixmap( pPixmap, pglyph, w, h )
X! register PixmapPtr pPixmap ;
X  register unsigned char *pglyph ;
X! register int w, h ;
X  {
X! register unsigned char *dest ;
X! register int djmp = (int) pPixmap->devKind ;
X! 
X! dest = pPixmap->devPrivate ;
X  
X  while ( h-- ) {
X! 	bcopy( pglyph, dest, w ) ;
X  	pglyph += w ;
X! 	dest += djmp ;
X  }
X  
X  return ;
X--- 70,92 ----
X  #include	"mfb.h"
X  #include	"ppc.h"
X  #include	"maskbits.h"
X  
X  extern PixmapPtr ppcCreatePixmap() ;
X  
X! void
X! filltempPixmap( pPixmap, pglyph, w, h )
X! 	 PixmapPtr pPixmap ;
X  register unsigned char *pglyph ;
X! register const int w ;
X! register int h ;
X  {
X! register unsigned char *dest = pPixmap->devPrivate.ptr;
X! register int		dstWidth= pPixmap->devKind;
X  
X  while ( h-- ) {
X! 	MOVE( pglyph, dest, w ) ;
X  	pglyph += w ;
X! 	dest += dstWidth;
X  }
X  
X  return ;
X***************
X*** 133,140 ****
X  
X  QueryGlyphExtents( pGC->font, ppci, nglyph, &info ) ;
X  
X! x += ( (WindowPtr) pDrawable )->absCorner.x ;
X! y += ( (WindowPtr) pDrawable )->absCorner.y ;
X  
X  backrect.x = x + info.overallLeft ;
X  backrect.y = y - pGC->font->pFI->fontAscent ;
X--- 131,138 ----
X  
X  QueryGlyphExtents( pGC->font, ppci, nglyph, &info ) ;
X  
X! x += pDrawable->x ;
X! y += pDrawable->y ;
X  
X  backrect.x = x + info.overallLeft ;
X  backrect.y = y - pGC->font->pFI->fontAscent ;
X***************
X*** 148,157 ****
X  bbox.y1 = y - info.overallAscent ;
X  bbox.y2 = y + info.overallDescent ;
X  
X! pRegion = ( (mfbPrivGC *) ( pGC->devPriv ) )->pCompositeClip ;
X! if ( !( nbox = pRegion->numRects ) )
X  	return ;
X! pbox = pRegion->rects ;
X  
X  alu = pGC->alu ;
X  pm =  pGC->planemask ;
X--- 146,155 ----
X  bbox.y1 = y - info.overallAscent ;
X  bbox.y2 = y + info.overallDescent ;
X  
X! pRegion = ((ppcPrivGC *)(pGC->devPrivates[mfbGCPrivateIndex].ptr))->pCompositeClip ;
X!     if ( !( nbox = REGION_NUM_RECTS(pRegion) ) )
X  	return ;
X! nbox = (int)REGION_RECTS(pRegion);
X  
X  alu = pGC->alu ;
X  pm =  pGC->planemask ;
X***************
X*** 221,232 ****
X  					been_here = TRUE ;
X  				}
X  				prgnClip = (*pScreen->RegionCreate)
X! 					( &cbox, pRegion->numRects ) ;
X  				(*pScreen->Intersect)( prgnClip,
X  						       prgnClip,
X  						       pRegion ) ;
X! 				pbox = prgnClip->rects ;
X! 				if ( !( nbox = prgnClip->numRects ) )
X  					break ;
X  				filltempPixmap( pTempPixmap, pglyph,
X  						GLYPHWIDTHBYTESPADDED( pci ),
X--- 219,230 ----
X  					been_here = TRUE ;
X  				}
X  				prgnClip = (*pScreen->RegionCreate)
X! 					( &cbox, REGION_NUM_RECTS(pRegion)) ;
X  				(*pScreen->Intersect)( prgnClip,
X  						       prgnClip,
X  						       pRegion ) ;
X! 				pbox = REGION_RECTS(prgnClip);
X! 				if ( !( nbox = REGION_NUM_RECTS(prgnClip)) )
X  					break ;
X  				filltempPixmap( pTempPixmap, pglyph,
X  						GLYPHWIDTHBYTESPADDED( pci ),
X***************
X*** 298,305 ****
X  
X  QueryGlyphExtents( pGC->font, ppci, nglyph, &info ) ;
X  
X! x += ( (WindowPtr) pDrawable )->absCorner.x ;
X! y += ( (WindowPtr) pDrawable )->absCorner.y ;
X  
X  bbox.x1 = x + info.overallLeft ;
X  bbox.x2 = x + info.overallRight ;
X--- 296,303 ----
X  
X  QueryGlyphExtents( pGC->font, ppci, nglyph, &info ) ;
X  
X! x += pDrawable->x ;
X! y += pDrawable->y ;
X  
X  bbox.x1 = x + info.overallLeft ;
X  bbox.x2 = x + info.overallRight ;
X***************
X*** 306,314 ****
X  bbox.y1 = y - info.overallAscent ;
X  bbox.y2 = y + info.overallDescent ;
X  
X! pRegion = ( (mfbPrivGC *) ( pGC->devPriv ) )->pCompositeClip ;
X! pbox = pRegion->rects ;
X! if ( !( nbox = pRegion->numRects ) )
X  	return ;
X  
X  alu = pGC->alu ;
X--- 304,312 ----
X  bbox.y1 = y - info.overallAscent ;
X  bbox.y2 = y + info.overallDescent ;
X  
X! pRegion = ((ppcPrivGC *)(pGC->devPrivates[mfbGCPrivateIndex].ptr))->pCompositeClip ;
X! pbox = REGION_RECTS(pRegion);
X! if ( !( nbox = REGION_NUM_RECTS(pRegion) ) )
X  	return ;
X  
X  alu = pGC->alu ;
X***************
X*** 375,386 ****
X  						been_here = TRUE ;
X  					}
X  					prgnClip =
X! 		(*pScreen->RegionCreate)( &cbox, pRegion->numRects ) ;
X  					(*pScreen->Intersect)( prgnClip,
X  							       prgnClip,
X  							       pRegion ) ;
X! 					pbox = prgnClip->rects ;
X! 					if ( !( nbox = prgnClip->numRects ) )
X  						break ;
X  					filltempPixmap( pTempPixmap, pglyph,
X  						GLYPHWIDTHBYTESPADDED( pci ),
X--- 373,384 ----
X  						been_here = TRUE ;
X  					}
X  					prgnClip =
X! 		(*pScreen->RegionCreate)( &cbox, REGION_NUM_RECTS(pRegion)) ;
X  					(*pScreen->Intersect)( prgnClip,
X  							       prgnClip,
X  							       pRegion ) ;
X! 					pbox = REGION_RECTS(prgnClip);
X! 					if ( !( nbox = REGION_NUM_RECTS(prgnClip)) )
X  						break ;
X  					filltempPixmap( pTempPixmap, pglyph,
X  						GLYPHWIDTHBYTESPADDED( pci ),
END_OF_FILE
if test 46868 -ne `wc -c <'fix-14.sco09'`; then
    echo shar: \"'fix-14.sco09'\" unpacked with wrong size!
fi
# end of 'fix-14.sco09'
fi
echo shar: End of archive 9 \(of 12\).
cp /dev/null ark9isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 12 archives.
    echo "instructions are in fix-14.sco01"
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0


dan
----------------------------------------------------
O'Reilly && Associates   argv@sun.com / argv@ora.com
Opinions expressed reflect those of the author only.