jimke@uunet.uu.net (10/12/90)
Submitted-by: microsoft!jimke@uunet.uu.net Posting-number: Volume 9, Issue 97 Archive-name: sco.patches/part11 #! /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 11 (of 12)." # Contents: fix-14.sco11 # Wrapped by jimke@kellman on Sat Oct 6 17:13:35 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'fix-14.sco11' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'fix-14.sco11'\" else echo shar: Extracting \"'fix-14.sco11'\" \(39005 characters\) sed "s/^X//" >'fix-14.sco11' <<'END_OF_FILE' X*** ./mit-orig/server/ddx/ibm/vga/vgaOSD.c Thu Oct 4 16:51:11 1990 X--- ./mit/server/ddx/ibm/vga/vgaOSD.c Wed Oct 3 18:33:47 1990 X*************** X*** 20,42 **** X SOFTWARE. X X ******************************************************************/ X- /* $Header: /andrew/X11/r3src/r3plus/server/ddx/ibm/vga/RCS/vgaOSD.c,v 6.7 89/08/13 22:25:39 jeff Exp $ */ X- /* $Source: /andrew/X11/r3src/r3plus/server/ddx/ibm/vga/RCS/vgaOSD.c,v $ */ X- X- #ifndef lint X- static char *rcsid = "$Header: /andrew/X11/r3src/r3plus/server/ddx/ibm/vga/RCS/vgaOSD.c,v 6.7 89/08/13 22:25:39 jeff Exp $"; X- #endif X- X- #ifdef BSDrt X- #include <sys/file.h> X- #include <machinecons/buf_emul.h> X- #else X- #if defined(AIX386) X #include <sys/fcntl.h> X #include <sys/ioctl.h> X #else X! ******** ERROR ******** X! #endif X #endif X X #include "X.h" X--- 20,36 ---- X SOFTWARE. X X ******************************************************************/ X #include <sys/fcntl.h> X #include <sys/ioctl.h> X+ #include <sys/types.h> X+ #ifdef sco X+ #define C_IOC ('X' << 8) X+ #define MAP_CLASS (C_IOC | 1) X+ #include <sys/vtkd.h> X #else X! #include <sys/at_ansi.h> X! #include <sys/kd.h> X! #include <sys/vt.h> X #endif X X #include "X.h" X*************** X*** 43,224 **** X #include "miscstruct.h" X #include "scrnintstr.h" X #include "cursorstr.h" X! X #include "OScompiler.h" X X #include "ibmScreen.h" X X #include "vgaVideo.h" X #include "vgaSave.h" X! X! #if defined(BSDrt) X! #if !defined(IBM_OS_HAS_X_QUEUE) X! #define IBM_OS_HAS_X_QUEUE 1 X! #endif X! #else X! #if defined(AIX386) X! #include "ibmXhftMap.h" X! #endif X! #endif X! X! #if defined(IBM_OS_HAS_X_QUEUE) X! #include <sys/ioctl.h> X! #endif X! X! #if defined(IBM_OS_HAS_X_QUEUE) || defined(BSDrt) X! #define USE_SLASH_DEV_FILES 1 X! #else X! #define USE_SLASH_DEV_FILES 0 X! #endif X X! /* Global Variables */ X! int vgaDisplayTubeType = 0 ; X X! int vgaCheckDisplay( fd ) X! register int fd ; /* Device File Decriptor */ X! { X! #if defined(BSDrt) X! static unsigned long int infoword ; X X! return ( ioctl( fd, BUFDISPINFO, &infoword ) < 0 ) ? -1 : ( infoword & 3 ) ; X! #else X X! return COLOR_TUBE ; /* THIS IS CERTAINLY WRONG !! */ X X! #endif X! } X X! static int vga_file_desc = -1 ; /* Set IFF open on VGA_DEV_FILE succeedes */ X X! #if defined(IBM_OS_HAS_HFT) X! extern int ibm8514FD; X! #endif X X int X vgaProbe() X { X! register int fd ; X! X! #if USE_SLASH_DEV_FILES X! if ( ( fd = open( VGA_DEV_FILE, O_RDWR | O_NDELAY ) ) >= 0 ) { X! #if defined(i386) && defined(IBM_OS_HAS_X_QUEUE) X! /* Set the display to BIOS mode 0x12 -- AIX386 mode 0x1C */ X! if ( ioctl( fd, EGAMODE, 0x1C ) < 0 ) { X! ErrorF( "vgaProbe: vgaioctl, set ega mode\n" ) ; X! (void) close( fd ) ; X! return -1 ; X! } X! /* Map the display buffer into user space */ X! if ( SCREEN_ADDR != ioctl( fd, MAPCONS, 0 ) ) { X! ErrorF( X! "vgaProbe: vgaioctl, vga map video memory address wrong\n" ) ; X! (void) close( fd ) ; X! return -1 ; X! } X! #endif /* defined(i386) && defined(IBM_OS_HAS_X_QUEUE) */ X! vga_file_desc = fd ; X! } X! else /* Open of device file failed */ X! #endif /* USE_SLASH_DEV_FILES */ X! #if defined(IBM_OS_HAS_HFT) X! { X! if ( ibm8514FD != -1 ) X! fd = ibm8514FD; X! else if ( ( fd = hftProbe( VGAxHFTid ) ) < 0 ) X! return fd ; X! } X! #else /* No hft and initial devFile open failed */ X! { X! ErrorF( "vgaProbe: Failed to open %s\n", VGA_DEV_FILE ) ; X! return -1 ; X! } X! #endif /* defined(IBM_OS_HAS_HFT) */ X! X! if ( ( vgaDisplayTubeType = vgaCheckDisplay( fd ) ) <= 0 ) { X! (void) close( fd ) ; X! return -1 ; X! } X ibmInfoMsg( ( vgaDisplayTubeType == COLOR_TUBE ) X! ? "Found a vga with color display.\n" : X "Found a vga with gray scale display.\n" ) ; X! X! return fd ; X! } X! X! #if !defined(DOS) && !defined(AIX) X! static void X! unix_vga_init() X! { X! register int fd ; X! #if defined(BSDrt) && defined(ATRIO) X! static const int mode = (int) MODE_124 ; X! static unsigned page = SCREEN_ADDR ; X! X! extern void exit() ; X! #endif X! X! extern int ioctl() ; X! X! /* Open Device File */ X! if ( ( fd = vga_file_desc ) < 0 ) { X! ErrorF( "unix_vga_init: vga file descriptor invalid, exiting...\n" ) ; X! exit( 1 ) ; X } X X- #if defined(BSDrt) && defined(ATRIO) X- X- /* Set 128k window to point to vga display buffer */ X- if ( ioctl( fd, BUFSETWIND, &page ) < 0 ) X- ErrorF( "unix_vga_init: vgaioctl, set window\n" ) ; X- /* Set The Display Mode To Avoid Confusing The BIOS Later */ X- if ( ioctl( fd, BUFINITVGA, &mode ) < 0 ) X- ErrorF( "unix_vga_init: vgaioctl, vga init\n" ) ; X- #endif X- X- return ; X- } X- X- #endif X- X- extern void save_vga_state() ; X- extern void restore_vga_state() ; X- extern void save_dac() ; X- extern void restore_dac() ; X- extern void set_graphics_mode() ; X- X- /* Video State On Program Entry */ X- static struct vga_video_hardware_state VS_Start ; X- static DAC_TABLE init_dac_table ; X- X int X vgaScreenInitHW( index ) X register int index ; X { X! static char been_here = 0 ; X X! if ( !been_here ) { X! #if !defined(DOS) && !defined(AIX) X! unix_vga_init() ; X! #endif X! /* Save Extant Video State & Setup For Graphics */ X! save_vga_state( &VS_Start ) ; X! save_dac( init_dac_table ) ; X! been_here = 1 ; X! } X! /* If The Display Is Turned Off Or Changed It Should Take Effect Now */ X! if ( ( vgaDisplayTubeType = vgaCheckDisplay( vga_file_desc ) ) > 0 ) { X! if ( !( vgaDisabled & PhysicalVgaAccessDisabled ) ) X! set_graphics_mode( &VS_Start ) ; X! else X! vgaDisabled = ( vgaDisabled & ~ VirtualVgaHardwareClosePending ) X! | VirtualVgaHardwareOpenPending ; X! return 1 ; /* SUCCESS !! */ X! } X! else { X! ErrorF( "Headless vga!\n Check monitor cables!\n" ) ; X! return 0 ; /* Error Condition -- FAILURE !! */ X! } X! /*NOTREACHED*/ X } X X /*ARGSUSED*/ X--- 37,233 ---- X #include "miscstruct.h" X #include "scrnintstr.h" X #include "cursorstr.h" X! #include "pixmapstr.h" X #include "OScompiler.h" X+ #include "OSio.h" X X #include "ibmScreen.h" X X #include "vgaVideo.h" X #include "vgaSave.h" X! #include "ppc.h" X! #include "vgaProcs.h" X X! struct vga_video_hardware_state VS640x480 = { X! 0xE3, 0x00, 0x00, 0x00, 0x01, /* general registers */ X! 0x00, {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }, /* attribute registers */ X! 0x81, 0x00, 0x0F, 0x00, 0x00, X! 0x00, /* crt registers */ X! 0x5F, 0x4F, 0x50, 0x82, 0x54, 0x80, 0x0B, 0x3E, X! 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, X! 0xEA, 0x8C, 0xDF, 0x28, 0x00, 0xE7, 0x04, 0xE3, X! 0xFF, X! 0x00, 0x02, 0x01, 0x0F, 0x00, 0x06, /* sequencer registers */ X! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, /* graphics registers */ X! 0x0F, 0xFF, X! 0x00, 0x00, 0x00, 0x00, 0xFF /* dac registers */ X! }; X! struct vga_video_hardware_state VS800x600 = { X! 0xEF, 0x00, 0x00, 0x00, 0x01, /* general registers */ X! 0x00, {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }, /* attribute registers */ X! 0x81, 0x00, 0x0F, 0x00, 0x00, X! 0x00, /* crt registers */ X! 0x85, 0x6B, 0x6E, 0x04, 0x72, 0x19, 0x78, 0xF0, X! 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, X! 0x5F, 0x80, 0x5C, 0x36, 0x00, 0x62, 0x72, 0xC3, X! 0xFF, X! 0x00, 0x02, 0x01, 0x0F, 0x00, 0x06, /* sequencer registers */ X! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, /* graphics registers */ X! 0x0F, 0xFF, X! 0x00, 0x00, 0x00, 0x00, 0xFF /* dac registers */ X! }; X! struct vga_video_hardware_state VS1024x768 = { X! 0xE7, 0x00, 0x00, 0x00, 0x01, /* general registers */ X! 0x00, {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }, /* attribute registers */ X! 0x81, 0x00, 0x0F, 0x00, 0x00, X! 0x00, /* crt registers */ X! 0x69, 0x59, 0x5A, 0x8A, 0x5C, 0x88, 0x4F, 0xF0, X! 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, X! 0x20, 0x8C, 0x1B, 0x2D, 0x00, 0x23, 0x02, 0xE3, X! 0xFF, X! 0x00, 0x02, 0x01, 0x0F, 0x00, 0x06, /* sequencer registers */ X! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, /* graphics registers */ X! 0x0F, 0xFF, X! 0x00, 0x00, 0x00, 0x00, 0xFF /* dac registers */ X! }; X! struct vgaModeRec { X! char * resName; X! BoxRec dimensions; X! int bytes_per_row, max_row; X! struct vga_video_hardware_state * VS; X! void (* SpecialGraphicsEnter)(); X! void (* SpecialGraphicsLeave)(); X! }; X X! /* Video State On Program Entry */ X! static struct vga_video_hardware_state VS_Start ; X! static DAC_TABLE init_dac_table ; X X! extern void save_vga_state() ; X! extern void restore_vga_state() ; X! extern void save_dac() ; X! extern void restore_dac() ; X! extern void set_text_mode() ; X! extern void set_graphics_mode() ; X X! extern void set_graphics_mode_640_480() ; X! extern void set_graphics_mode_800_600() ; X! extern void set_graphics_mode_1024_768() ; X X! struct vgaModeRec vgaModeTab[] = { X! { "640x480", {0, 0, 639, 479}, 80, 479, &VS640x480, X! set_graphics_mode_640_480, X! NoopDDA }, X! { "800x600v7", {0, 0, 799, 599}, 100, 599, &VS800x600, X! set_graphics_mode_800_600, X! set_text_mode }, X! { "1024x768v7", {0, 0, 1023, 767}, 128, 767, &VS1024x768, X! set_graphics_mode_1024_768, X! set_text_mode }, X! }; X X! #define NUMMODES sizeof(vgaModeTab) / sizeof(struct vgaModeRec) X X! int BYTES_PER_ROW, MAX_ROW, MAX_COLUMN, MAX_OFFSCREEN_ROW,CURSOR_BUFFER; X! int vgaDisplayTubeType = 0 ; X! struct vgaModeRec * vgaDefaultMode = &(vgaModeTab[0]); X X int X vgaProbe() X { X! extern ibmPerScreenInfo vgaScreenInfoStruct; X! extern ppcScrnPriv vgaScrnPriv; X! extern ScreenRec vgaScreenRec; X! int i; X! X! /* X! * select a video mode for the vga card X! */ X! for (i=0; i < NUMMODES; i++) X! if (strcmp(SYSVresolution,vgaModeTab[i]) == 0) X! vgaDefaultMode = &(vgaModeTab[i]); X! /* X! * patch the original structures X! */ X! BYTES_PER_ROW = vgaDefaultMode->bytes_per_row; X! MAX_ROW = vgaDefaultMode->max_row; X! MAX_COLUMN = BYTES_PER_ROW * PIX_PER_BYTE -1; X! CURSOR_BUFFER = 64*1024 - (32*32)/8; X! vgaScreenInfoStruct.ibm_ScreenBounds = vgaDefaultMode->dimensions; X! vgaScrnPriv.pixmap.drawable.width = MAX_COLUMN + 1; X! vgaScrnPriv.pixmap.drawable.height = MAX_ROW + 1; X! vgaScrnPriv.pixmap.devKind = (MAX_ROW + 1) / 8; X! vgaScreenRec.width = MAX_COLUMN + 1; X! vgaScreenRec.height = MAX_ROW + 1; X! X! vgaDisplayTubeType = COLOR_TUBE; X ibmInfoMsg( ( vgaDisplayTubeType == COLOR_TUBE ) X! ? "Found a vga with color display.\n" : X "Found a vga with gray scale display.\n" ) ; X! return 0; X } X X int X vgaScreenInitHW( index ) X register int index ; X { X! static char been_here = 0 ; X X! if ( !been_here ) { X! extern int SYSVconsoleFd; X! struct vt_mode vgaVT; X! X! ioctl(SYSVconsoleFd, VT_GETMODE, &vgaVT); X! vgaVT.mode = VT_PROCESS; X! ioctl(SYSVconsoleFd, VT_SETMODE, &vgaVT); X! ioctl(SYSVconsoleFd, KDSETMODE, KD_GRAPHICS); X! X! #ifdef sco X! /* X! * This is an ioctl to the vid driver (I found it in the 3.2v2.0 X! * release notes) which searches the video class list from X! * /etc/conf/pack.d/cn/class.h for physical addresses and sizes. X! * It will enable I/O ports for the class, map the adapter memory X! * to virtual mem and return that address. X! */ X! if ((vgaBASE = ioctl(SYSVconsoleFd, MAP_CLASS, "SVGA")) == -1) X! ErrorF("MAP_CLASS(%08x)\n", vgaBASE); X! X! /* X! * Also need to set IO priviledges for a few more ports. X! */ X! ioctl(SYSVconsoleFd, KDENABIO, 0); X! #else X! struct kd_memloc vgaDSC; X! X! vgaBASE = (int)malloc(0x21000); X! if ((unsigned int)vgaBASE & 0xFFF) { X! vgaBASE = (int)(((unsigned int)vgaBASE & 0xFFFFF000) X! + 0x1000); X! } X! vgaDSC.vaddr = (char *)vgaBASE; X! vgaDSC.physaddr = (char *)0xA0000; X! vgaDSC.length = 0x20000; X! vgaDSC.ioflg = 1; X! ioctl(SYSVconsoleFd, KDMAPDISP, &vgaDSC); X! #endif X! /* Save Extant Video State & Setup For Graphics */ X! save_vga_state( &VS_Start ) ; X! save_dac( init_dac_table ) ; X! been_here = 1 ; X! CURSOR_BUFFER += (unsigned int) vgaBASE; X! } X! /* If The Display Is Turned Off Or Changed It Should Take Effect Now */ X! if ( !( vgaDisabled & PhysicalVgaAccessDisabled ) ) { X! (* (vgaDefaultMode->SpecialGraphicsEnter))(); X! /* X! restore_vga_state( vgaDefaultMode->VS); X! */ X! } X! else X! vgaDisabled = ( vgaDisabled & ~ VirtualVgaHardwareClosePending ) X! | VirtualVgaHardwareOpenPending ; X! return 1 ; /* SUCCESS !! */ X } X X /*ARGSUSED*/ X*************** X*** 227,244 **** X register int index ; X { X if ( !( vgaDisabled & PhysicalVgaAccessDisabled ) ) { X! #if defined(i386) && !defined(DOS) X! /* Set the display to BIOS mode 0x7 -- AIX386 mode 0x3 */ X! if ( ( vga_file_desc >= 0 ) X! && ( ioctl( vga_file_desc, EGAMODE, 0x3 ) < 0 ) ) X! ErrorF( "vgaCloseHW: vgaioctl, set ega mode\n" ) ; X! #endif X! restore_dac( init_dac_table ) ; X! restore_vga_state( &VS_Start ) ; X } X else X! vgaDisabled = ( vgaDisabled & ~ VirtualVgaHardwareOpenPending ) X! | VirtualVgaHardwareClosePending ; X X return ; X } X--- 236,256 ---- X register int index ; X { X if ( !( vgaDisabled & PhysicalVgaAccessDisabled ) ) { X! extern int SYSVconsoleFd; X! struct vt_mode vgaVT; X! extern int errno; X! X! restore_dac( init_dac_table ) ; X! restore_vga_state( &VS_Start ) ; X! (*(vgaDefaultMode->SpecialGraphicsLeave))(); X! ioctl(SYSVconsoleFd, VT_GETMODE, &vgaVT); X! vgaVT.mode = VT_AUTO; X! ioctl(SYSVconsoleFd, VT_SETMODE, &vgaVT); X! ioctl(SYSVconsoleFd, KDSETMODE, KD_TEXT0); X } X else X! vgaDisabled = ( vgaDisabled & ~ VirtualVgaHardwareOpenPending ) X! | VirtualVgaHardwareClosePending ; X X return ; X } X*** ./mit-orig/server/ddx/ibm/vga/vgaProcs.h Thu Oct 4 16:51:07 1990 X--- ./mit/server/ddx/ibm/vga/vgaProcs.h Sun Sep 16 22:14:12 1990 X*************** X*** 69,88 **** X const CursorPtr pCurs ) ; X X /* vgaHWCntl.o */ X! extern void save_vga_state( X! struct vga_video_hardware_state *VS ) ; X X- extern void restore_vga_state( X- struct vga_video_hardware_state const *VS ) ; X- X extern void vgaSetColor( X unsigned long int color, X unsigned short int r, X unsigned short int g, X unsigned short int b ) ; X- X- extern void set_graphics_mode( X- struct vga_video_hardware_state *VS ) ; X X extern Bool vgaScreenClose( X const int index, X--- 69,82 ---- X const CursorPtr pCurs ) ; X X /* vgaHWCntl.o */ X! extern void save_vga_state(); X! extern void restore_vga_state(); X X extern void vgaSetColor( X unsigned long int color, X unsigned short int r, X unsigned short int g, X unsigned short int b ) ; X X extern Bool vgaScreenClose( X const int index, X*** ./mit-orig/server/ddx/ibm/vga/vgaReg.h Thu Oct 4 16:51:07 1990 X--- ./mit/server/ddx/ibm/vga/vgaReg.h Sun Sep 16 22:14:13 1990 X*************** X*** 72,82 **** X #define AttributeDataWriteRegister REGBASE + 0xC0 X #define AttributeDataReadRegister REGBASE + 0xC1 X #define AttributeRegister AttributeIndexRegister X! #define AttributeModeIndex 0x30 X! #define OverScanColorIndex 0x31 X! #define ColorPlaneEnableIndex 0x32 X! #define HorizPelPanIndex 0x33 X! #define ColorSelectIndex 0x34 X #define SetVideoAttributeIndex( index ) \ X SET_INDEX_REGISTER( AttributeIndexRegister, index ) X #define SetVideoAttribute( index, value ) \ X--- 72,82 ---- X #define AttributeDataWriteRegister REGBASE + 0xC0 X #define AttributeDataReadRegister REGBASE + 0xC1 X #define AttributeRegister AttributeIndexRegister X! #define AttributeModeIndex 0x10 X! #define OverScanColorIndex 0x11 X! #define ColorPlaneEnableIndex 0x12 X! #define HorizPelPanIndex 0x13 X! #define ColorSelectIndex 0x14 X #define SetVideoAttributeIndex( index ) \ X SET_INDEX_REGISTER( AttributeIndexRegister, index ) X #define SetVideoAttribute( index, value ) \ X*** ./mit-orig/server/ddx/ibm/vga/vgaSld.386.s Thu Oct 4 18:02:27 1990 X--- ./mit/server/ddx/ibm/vga/vgaSld.386.s Mon Sep 17 16:55:38 1990 X*************** X*** 0 **** X--- 1,261 ---- X+ .file "vgaSolid.386.s" X+ .text X+ .align 4 X+ .globl fastFill X+ fastFill: X+ pushl %ebp X+ movl %esp,%ebp X+ pushl %edi X+ pushl %esi X+ pushl %ebx X+ movl 8(%ebp),%edi X+ movl 12(%ebp),%edx X+ movl 16(%ebp),%ebx X+ movl BYTES_PER_ROW,%esi X+ movl %edx,%eax X+ andl $3,%eax X+ subl %eax,%esi X+ andl $0x7C,%edx X+ .fastFill0: X+ test $1,%eax X+ jz .fastFill1 X+ movb $0xFF,(%edi) X+ incl %edi X+ .fastFill1: X+ test $2,%eax X+ jz .fastFill2 X+ movw $0xFFFF,(%edi) X+ addl $2,%edi X+ X+ .fastFill2: X+ jmp *.fastFill3(%edx) X+ .align 4 X+ .fastFill3: X+ .long .fastFill35 X+ .long .fastFill34 X+ .long .fastFill33 X+ .long .fastFill32 X+ .long .fastFill31 X+ .long .fastFill30 X+ .long .fastFill29 X+ .long .fastFill28 X+ .long .fastFill27 X+ .long .fastFill26 X+ .long .fastFill25 X+ .long .fastFill24 X+ .long .fastFill23 X+ .long .fastFill22 X+ .long .fastFill21 X+ .long .fastFill20 X+ .long .fastFill19 X+ .long .fastFill18 X+ .long .fastFill17 X+ .long .fastFill16 X+ .long .fastFill15 X+ .long .fastFill14 X+ .long .fastFill13 X+ .long .fastFill12 X+ .long .fastFill11 X+ .long .fastFill10 X+ .long .fastFill9 X+ .long .fastFill8 X+ .long .fastFill7 X+ .long .fastFill6 X+ .long .fastFill5 X+ .long .fastFill4 X+ X+ .fastFill4: X+ movl $0xFFFFFFFF,124(%edi) X+ .fastFill5: X+ movl $0xFFFFFFFF,120(%edi) X+ .fastFill6: X+ movl $0xFFFFFFFF,112(%edi) X+ .fastFill7: X+ movl $0xFFFFFFFF,108(%edi) X+ .fastFill8: X+ movl $0xFFFFFFFF,104(%edi) X+ .fastFill9: X+ movl $0xFFFFFFFF,100(%edi) X+ .fastFill10: X+ movl $0xFFFFFFFF,96(%edi) X+ .fastFill11: X+ movl $0xFFFFFFFF,92(%edi) X+ .fastFill12: X+ movl $0xFFFFFFFF,88(%edi) X+ .fastFill13: X+ movl $0xFFFFFFFF,84(%edi) X+ .fastFill14: X+ movl $0xFFFFFFFF,80(%edi) X+ .fastFill15: X+ movl $0xFFFFFFFF,76(%edi) X+ .fastFill16: X+ movl $0xFFFFFFFF,72(%edi) X+ .fastFill17: X+ movl $0xFFFFFFFF,68(%edi) X+ .fastFill18: X+ movl $0xFFFFFFFF,64(%edi) X+ .fastFill19: X+ movl $0xFFFFFFFF,60(%edi) X+ .fastFill20: X+ movl $0xFFFFFFFF,56(%edi) X+ .fastFill21: X+ movl $0xFFFFFFFF,52(%edi) X+ .fastFill22: X+ movl $0xFFFFFFFF,48(%edi) X+ .fastFill23: X+ movl $0xFFFFFFFF,44(%edi) X+ .fastFill24: X+ movl $0xFFFFFFFF,40(%edi) X+ .fastFill25: X+ movl $0xFFFFFFFF,36(%edi) X+ .fastFill26: X+ movl $0xFFFFFFFF,32(%edi) X+ .fastFill27: X+ movl $0xFFFFFFFF,28(%edi) X+ .fastFill28: X+ movl $0xFFFFFFFF,24(%edi) X+ .fastFill29: X+ movl $0xFFFFFFFF,20(%edi) X+ .fastFill30: X+ movl $0xFFFFFFFF,16(%edi) X+ .fastFill31: X+ movl $0xFFFFFFFF,12(%edi) X+ .fastFill32: X+ movl $0xFFFFFFFF,8(%edi) X+ .fastFill33: X+ movl $0xFFFFFFFF,4(%edi) X+ .fastFill34: X+ movl $0xFFFFFFFF,0(%edi) X+ .fastFill35: X+ X+ addl %esi,%edi X+ decl %ebx X+ jnz .fastFill0 X+ X+ leal -12(%ebp),%esp X+ popl %ebx X+ popl %esi X+ popl %edi X+ leave X+ ret X+ X+ X+ .text X+ .align 4 X+ .globl fastFillRMW X+ fastFillRMW: X+ pushl %ebp X+ movl %esp,%ebp X+ pushl %edi X+ pushl %esi X+ pushl %ebx X+ movl 8(%ebp),%edi X+ movl 12(%ebp),%edx X+ movl 16(%ebp),%ebx X+ movl BYTES_PER_ROW,%esi X+ subl %edx,%esi X+ X+ cld X+ leal (%edi,%edx),%ecx X+ andl $15,%edx X+ X+ jmp *.fastFillRMW1(,%edx,4) X+ X+ .align 4 X+ .fastFillRMW1: X+ .long .fastFillRMW2 X+ .long .fastFillRMW17 X+ .long .fastFillRMW16 X+ .long .fastFillRMW15 X+ .long .fastFillRMW14 X+ .long .fastFillRMW13 X+ .long .fastFillRMW12 X+ .long .fastFillRMW11 X+ .long .fastFillRMW10 X+ .long .fastFillRMW9 X+ .long .fastFillRMW8 X+ .long .fastFillRMW7 X+ .long .fastFillRMW6 X+ .long .fastFillRMW5 X+ .long .fastFillRMW4 X+ .long .fastFillRMW3 X+ .fastFillRMW2: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW3: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW4: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW5: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW6: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW7: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW8: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW9: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW10: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW11: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW12: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW13: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW14: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW15: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW16: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ .fastFillRMW17: X+ movb (%edi),%ah X+ movb $255,(%edi) X+ incl %edi X+ X+ cmpl %edi,%ecx X+ jne .fastFillRMW2 X+ decl %ebx X+ je .fastFillRMW18 X+ leal (%esi,%edi),%edi X+ addl BYTES_PER_ROW,%ecx X+ jmp *.fastFillRMW1(,%edx,4) X+ X+ .fastFillRMW18: X+ leal -12(%ebp),%esp X+ popl %ebx X+ popl %esi X+ popl %edi X+ leave X+ ret X*** ./mit-orig/server/ddx/ibm/vga/vgaSolid.c Thu Oct 4 16:51:10 1990 X--- ./mit/server/ddx/ibm/vga/vgaSolid.c Sun Sep 16 22:14:13 1990 X*************** X*** 69,74 **** X--- 69,78 ---- X extern int vgaCheckCursor() ; X extern void vgaReplaceCursor() ; X X+ #ifdef USE_ASM X+ extern void fastFill(); X+ extern void fastFillRMW(); X+ #else X static void fastFill( destination, bytewidth, height ) X register volatile unsigned char *destination ; X register const unsigned int bytewidth ; /* MUST BE > 0 !! */ X*************** X*** 177,182 **** X--- 181,187 ---- X #undef SINGLE_STORE X /*NOTREACHED*/ X } X+ #endif X X void vgaFillSolid( color, alu, planes, x0, y0, lx, ly ) X unsigned long int color ; X*** ./mit-orig/server/ddx/ibm/vga/vgaTile.c Thu Oct 4 16:51:09 1990 X--- ./mit/server/ddx/ibm/vga/vgaTile.c Sun Sep 16 22:14:13 1990 X*************** X*** 43,72 **** X X ******************************************************************/ X X- /* $Header: /andrew/X11/R3src/earlyRelease/server/ddx/ibm/vga/RCS/vgaTile.c,v 6.1 88/10/30 20:26:24 paul Exp $ */ X- /* $Source: /andrew/X11/R3src/earlyRelease/server/ddx/ibm/vga/RCS/vgaTile.c,v $ */ X- X- #ifndef lint X- static char *rcsid = "$Header: /andrew/X11/R3src/earlyRelease/server/ddx/ibm/vga/RCS/vgaTile.c,v 6.1 88/10/30 20:26:24 paul Exp $" ; X- #endif X- X- /* vga Tile X- * P. Shupak 10/87 X- * Modified From ppc Tile X- * T. Paquin 9/87 X- * Uses private imageFill a bunch of times X- */ X- X #include "X.h" X! #include "gcstruct.h" X! #include "scrnintstr.h" X #include "pixmapstr.h" X #include "pixmap.h" X! #include "rtutils.h" X! #include "misc.h" X #include "colormap.h" X #include "ppc.h" X #include "ppcProcs.h" X X extern void vgaFillSolid( ) ; X extern void ErrorF( ) ; X--- 43,64 ---- X X ******************************************************************/ X X #include "X.h" X! #include "Xproto.h" X! #include "windowstr.h" X! #include "window.h" X #include "pixmapstr.h" X #include "pixmap.h" X! #include "scrnintstr.h" X #include "colormap.h" X+ #include "font.h" X+ #include "cursorstr.h" X #include "ppc.h" X #include "ppcProcs.h" X+ #include "ibmTrace.h" X+ #include "gcstruct.h" X+ #include "misc.h" X+ #include "OScompiler.h" X X extern void vgaFillSolid( ) ; X extern void ErrorF( ) ; X*************** X*** 109,116 **** X break ; X } X X! tlx = pTile->width ; X! tly = pTile->height ; X pScreen = pTile->drawable.pScreen ; X depth = pTile->drawable.depth ; X X--- 101,108 ---- X break ; X } X X! tlx = pTile->drawable.width ; X! tly = pTile->drawable.height ; X pScreen = pTile->drawable.pScreen ; X depth = pTile->drawable.depth ; X X*************** X*** 231,237 **** X savehcount = w / tlx ; X X /* FIRST DO COMPLETELY VISIBLE PORTIONS */ X! for ( data = (char *) pTile->devPrivate, X vcount = savevcount, X vtarget = y ; X vcount-- ; X--- 223,229 ---- X savehcount = w / tlx ; X X /* FIRST DO COMPLETELY VISIBLE PORTIONS */ X! for ( data = (char *) pTile->devPrivate.ptr, X vcount = savevcount, X vtarget = y ; X vcount-- ; X*************** X*** 256,262 **** X } X ppcClipZ8Pixmap( pTile, pTmpTile ) ; X X! for ( data = (char *) pTmpTile->devPrivate, X vcount = savevcount, X htarget = x + savehcount * tlx, X vtarget = y ; X--- 248,254 ---- X } X ppcClipZ8Pixmap( pTile, pTmpTile ) ; X X! for ( data = (char *) pTmpTile->devPrivate.ptr, X vcount = savevcount, X htarget = x + savehcount * tlx, X vtarget = y ; X*************** X*** 271,277 **** X X /* NOW DO BOTTOM */ X if ( Btly = h % tly ) { X! for ( data = (char *) pTile->devPrivate, X hcount = savehcount, X htarget = x, X vtarget = y + savevcount * tly ; X--- 263,269 ---- X X /* NOW DO BOTTOM */ X if ( Btly = h % tly ) { X! for ( data = (char *) pTile->devPrivate.ptr, X hcount = savehcount, X htarget = x, X vtarget = y + savevcount * tly ; X*** ./mit-orig/server/ddx/ibm/vga/vgaVideo.h Thu Oct 4 16:51:09 1990 X--- ./mit/server/ddx/ibm/vga/vgaVideo.h Tue Sep 18 21:21:29 1990 X*************** X*** 65,70 **** X--- 65,74 ---- X #define signed /**/ X #endif X X+ #if defined(sco) && !defined(__GNUC__) X+ #define volatile X+ #endif X+ X /* X * References to all pc ( i.e. '286 ) memory in the X * regions used by the [ev]ga server ( the 128K windows ) X*************** X*** 72,176 **** X * This definition will change for other memory architectures X * ( e.g. AIX-Rt ) X */ X- #if defined(ATRIO) X- typedef unsigned long int VideoAdapterObject ; X- #else X- #if defined(RTIO) || defined(PCIO) X typedef unsigned char VideoAdapterObject ; X- #else X- ******** ERROR ******** X- #endif X- #endif X typedef volatile VideoAdapterObject *VideoMemoryPtr ; X- #if !defined(BUILD_EGA) X typedef volatile VideoAdapterObject *VgaMemoryPtr ; X- #else X- typedef volatile VideoAdapterObject *EgaMemoryPtr ; X- #endif X- X- #if defined(BUILD_EGA) X- #define EGA_DEV_FILE "/dev/ega" X- #else X- #define VGA_DEV_FILE "/dev/vga" X- #endif X- X #if !defined(BITMAP_BIT_ORDER) X- #if defined(ibm032) || defined(i386) || defined(iAPX286) || defined(DOS) X #define BITMAP_BIT_ORDER MSBFirst X- #else X- ******** ERROR ******** X #endif X- #endif X X #if !defined(IMAGE_BYTE_ORDER) X- #if defined(ibm032) X- #define IMAGE_BYTE_ORDER MSBFirst X- #else X- #if defined(i386) || defined(iAPX286) || defined(DOS) X #define IMAGE_BYTE_ORDER LSBFirst X- #else X- ******** ERROR ******** X- #endif X- #endif X- #endif X- X- #if defined(BUILD_EGA) X- #if defined(BSDrt) && defined(ATRIO) X- #define SCREEN_ADDR 0x000b8000 X- #else X- #define SCREEN_ADDR 0x000a0000 X- #endif X- #else /* Must be for the vga */ X- #if defined(i386) && defined(AIX386) X- #define SCREEN_ADDR 0x020400000 /* "very" MAGIC NUMBER */ X- #else X- #define SCREEN_ADDR 0x000a0000 X- #endif X #endif X X! #if defined(i386) || defined(iAPX286) || defined(DOS) X #define VIDEO_MEMORY_BASE ( (volatile unsigned char *) ( SCREEN_ADDR ) ) X- #else /* BSD43 */ X- #if defined(ATRIO) X- #define VIDEO_MEMORY_BASE ( (volatile unsigned char *) \ X- ( 0xd00c0000 | ( SCREEN_ADDR & 0x0001ffff ) ) ) X- #else X- #if defined(RTIO) X- #define VIDEO_MEMORY_BASE ( (volatile unsigned char *) \ X- ( 0xd00c0000 | ( SCREEN_ADDR & 0x0001ffff ) ) ) X- #endif X- #endif X- #endif X- X- #if defined(BUILD_EGA) X- #define EGABASE VIDEO_MEMORY_BASE X- #else X #define VGABASE VIDEO_MEMORY_BASE X- #endif X X /* Bit Ordering Macros */ X #if !defined(SCRLEFT8) X- #if (BITMAP_BIT_ORDER == MSBFirst) /* pc/rt */ X #define SCRLEFT8(lw, n) ( (unsigned char) (((unsigned char) lw) << (n)) ) X- #else X- #if (BITMAP_BIT_ORDER == LSBFirst) /* intel */ X- #define SCRLEFT8(lw, n) ( (unsigned char) (((unsigned char) lw) >> (n)) ) X- #else X- ******** ERROR ******** X- #endif X- #endif X #endif X #if !defined(SCRRIGHT8) X- #if BITMAP_BIT_ORDER == MSBFirst /* pc/rt */ X #define SCRRIGHT8(lw, n) ( (unsigned char) (((unsigned char)lw) >> (n)) ) X- #else X- #if BITMAP_BIT_ORDER == LSBFirst X- #define SCRRIGHT8(lw, n) ( (unsigned char) (((unsigned char)lw) << (n)) ) X- #else X- ******** ERROR ******** X #endif X- #endif X- #endif X /* These work ONLY on 8-bit wide Quantities !! */ X #define LeftmostBit ( SCRLEFT8( 0xFF, 7 ) & 0xFF ) X #define RightmostBit ( SCRRIGHT8( 0xFF, 7 ) & 0xFF ) X--- 76,104 ---- X * This definition will change for other memory architectures X * ( e.g. AIX-Rt ) X */ X typedef unsigned char VideoAdapterObject ; X typedef volatile VideoAdapterObject *VideoMemoryPtr ; X typedef volatile VideoAdapterObject *VgaMemoryPtr ; X #if !defined(BITMAP_BIT_ORDER) X #define BITMAP_BIT_ORDER MSBFirst X #endif X X #if !defined(IMAGE_BYTE_ORDER) X #define IMAGE_BYTE_ORDER LSBFirst X #endif X X! int vgaBASE; X! #define SCREEN_ADDR vgaBASE X #define VIDEO_MEMORY_BASE ( (volatile unsigned char *) ( SCREEN_ADDR ) ) X #define VGABASE VIDEO_MEMORY_BASE X X /* Bit Ordering Macros */ X #if !defined(SCRLEFT8) X #define SCRLEFT8(lw, n) ( (unsigned char) (((unsigned char) lw) << (n)) ) X #endif X #if !defined(SCRRIGHT8) X #define SCRRIGHT8(lw, n) ( (unsigned char) (((unsigned char)lw) >> (n)) ) X #endif X /* These work ONLY on 8-bit wide Quantities !! */ X #define LeftmostBit ( SCRLEFT8( 0xFF, 7 ) & 0xFF ) X #define RightmostBit ( SCRRIGHT8( 0xFF, 7 ) & 0xFF ) X*************** X*** 186,195 **** X #define xGA_MAXPLANES 4 X #define xGA_ALLPLANES 0xF X X- #if !defined(BUILD_EGA) X- #define NO_TUBE 0 X #define COLOR_TUBE 1 X- #define MONO_TUBE 2 X X #define VGA_BLACK_PIXEL xGA_BLACK_PIXEL X #define VGA_WHITE_PIXEL xGA_WHITE_PIXEL X--- 114,120 ---- X*************** X*** 197,226 **** X #define VGA_MAXPLANES xGA_MAXPLANES X #define VGA_ALLPLANES xGA_ALLPLANES X X! #define VIDEO_MEM_BYTES_PER_PLANE ( 64 * 1024 ) X! X! #ifndef VGA720 X! #define BYTES_PER_ROW 80 X! #define MAX_ROW 479 X! #else X! #define BYTES_PER_ROW 90 X! #define MAX_ROW 539 X! #endif X! #else /* Must be for ega */ X! #define EGA_BLACK_PIXEL xGA_BLACK_PIXEL X! #define EGA_WHITE_PIXEL xGA_WHITE_PIXEL X! X! #define EGA_MAXPLANES xGA_MAXPLANES X! #define EGA_ALLPLANES xGA_ALLPLANES X! X! #define VIDEO_MEM_BYTES_PER_PLANE ( 32 * 1024 ) X X! #define BYTES_PER_ROW 80 X! #define MAX_ROW 349 X! #endif X X- #define MAX_COLUMN ( ( BYTES_PER_ROW * PIX_PER_BYTE ) - 1 ) X- #define MAX_OFFSCREEN_ROW ( ( VIDEO_MEM_BYTES_PER_PLANE / BYTES_PER_ROW ) - 1 ) X #define ROW_OFFSET( PIXEL_X_VALUE ) ( ( PIXEL_X_VALUE ) >> 3 ) X #define BIT_OFFSET( PIXEL_X_VALUE ) ( ( PIXEL_X_VALUE ) & 0x7 ) X #define BYTE_OFFSET( PIXEL_X_VALUE, PIXEL_Y_VALUE ) \ X--- 122,134 ---- X #define VGA_MAXPLANES xGA_MAXPLANES X #define VGA_ALLPLANES xGA_ALLPLANES X X! #define VIDEO_MEM_BYTES_PER_PLANE ( 96 * 1024 ) X X! extern int BYTES_PER_ROW; X! extern int MAX_ROW; X! extern int MAX_COLUMN; X! extern int MAX_OFFSCREEN_ROW; X X #define ROW_OFFSET( PIXEL_X_VALUE ) ( ( PIXEL_X_VALUE ) >> 3 ) X #define BIT_OFFSET( PIXEL_X_VALUE ) ( ( PIXEL_X_VALUE ) & 0x7 ) X #define BYTE_OFFSET( PIXEL_X_VALUE, PIXEL_Y_VALUE ) \ X*** ./mit-orig/server/ddx/mfb/maskbits.h Thu Oct 4 16:48:23 1990 X--- ./mit/server/ddx/mfb/maskbits.h Sun Sep 16 22:21:22 1990 X*************** X*** 191,196 **** X--- 191,197 ---- X X #if (BITMAP_BIT_ORDER == IMAGE_BYTE_ORDER) X #define LONG2CHARS(x) (x) X+ #define LONG2CHARS_F(x) (x) X #else X /* X * the unsigned case below is for compilers like X*************** X*** 200,213 **** X | ( ( ( x ) & 0x0000FF00 ) << 0x08 ) \ X | ( ( ( x ) & 0x00FF0000 ) >> 0x08 ) \ X | ( ( ( x ) & (unsigned long)0xFF000000 ) >> 0x18 ) ) X #endif X X #ifdef STRICT_ANSI_SHIFT X! #define SHL(x,y) ((y) >= 32 ? 0 : LONG2CHARS(LONG2CHARS(x) << (y))) X! #define SHR(x,y) ((y) >= 32 ? 0 : LONG2CHARS(LONG2CHARS(x) >> (y))) X #else X! #define SHL(x,y) LONG2CHARS(LONG2CHARS(x) << (y)) X! #define SHR(x,y) LONG2CHARS(LONG2CHARS(x) >> (y)) X #endif X X #if (BITMAP_BIT_ORDER == MSBFirst) /* pc/rt, 680x0 */ X--- 201,224 ---- X | ( ( ( x ) & 0x0000FF00 ) << 0x08 ) \ X | ( ( ( x ) & 0x00FF0000 ) >> 0x08 ) \ X | ( ( ( x ) & (unsigned long)0xFF000000 ) >> 0x18 ) ) X+ static X+ #ifndef sco X+ inline X #endif X+ unsigned X+ LONG2CHARS_F(it) X+ unsigned it; X+ { X+ return LONG2CHARS(it); X+ } X+ #endif X X #ifdef STRICT_ANSI_SHIFT X! #define SHL(x,y) ((y) >= 32 ? 0 : LONG2CHARS_F(LONG2CHARS_F(x) << (y))) X! #define SHR(x,y) ((y) >= 32 ? 0 : LONG2CHARS_F(LONG2CHARS_F(x) >> (y))) X #else X! #define SHL(x,y) LONG2CHARS_F(LONG2CHARS_F(x) << (y)) X! #define SHR(x,y) LONG2CHARS_F(LONG2CHARS_F(x) >> (y)) X #endif X X #if (BITMAP_BIT_ORDER == MSBFirst) /* pc/rt, 680x0 */ X*************** X*** 214,221 **** X #define SCRLEFT(lw, n) SHL((unsigned int)(lw),(n)) X #define SCRRIGHT(lw, n) SHR((unsigned int)(lw),(n)) X #else /* vax, intel */ X! #define SCRLEFT(lw, n) SHR((lw),(n)) X! #define SCRRIGHT(lw, n) SHL((lw),(n)) X #endif X X #define maskbits(x, w, startmask, endmask, nlw) \ X--- 225,232 ---- X #define SCRLEFT(lw, n) SHL((unsigned int)(lw),(n)) X #define SCRRIGHT(lw, n) SHR((unsigned int)(lw),(n)) X #else /* vax, intel */ X! #define SCRLEFT(lw, n) SHR((unsigend int)(lw),(n)) X! #define SCRRIGHT(lw, n) SHL((unsigned int)(lw),(n)) X #endif X X #define maskbits(x, w, startmask, endmask, nlw) \ X*** ./mit-orig/server/ddx/mfb/mfbfillsp.c Thu Oct 4 16:48:25 1990 X--- ./mit/server/ddx/mfb/mfbfillsp.c Sun Sep 16 22:21:23 1990 X*************** X*** 839,845 **** X offset in the tile. X */ X w = min(min(tileWidth - rem, width), BITMAP_SCANLINE_UNIT); X! endinc = rem / BITMAP_SCANLINE_UNIT; X getandputrop((psrc+endinc), (rem&0x1f), (x & 0x1f), w, pdst, rop); X if((x & 0x1f) + w >= 0x20) X pdst++; X--- 839,845 ---- X offset in the tile. X */ X w = min(min(tileWidth - rem, width), BITMAP_SCANLINE_UNIT); X! endinc = rem / BITMAP_SCANLINE_PAD ; X getandputrop((psrc+endinc), (rem&0x1f), (x & 0x1f), w, pdst, rop); X if((x & 0x1f) + w >= 0x20) X pdst++; X*************** X*** 996,1002 **** X offset in the tile. X */ X w = min(min(tileWidth - rem, width), BITMAP_SCANLINE_UNIT); X! endinc = rem / BITMAP_SCANLINE_UNIT; X getandputrrop((psrc + endinc), (rem & 0x1f), (x & 0x1f), X w, pdst, rop) X if((x & 0x1f) + w >= 0x20) X--- 996,1002 ---- X offset in the tile. X */ X w = min(min(tileWidth - rem, width), BITMAP_SCANLINE_UNIT); X! endinc = rem / BITMAP_SCANLINE_PAD; X getandputrrop((psrc + endinc), (rem & 0x1f), (x & 0x1f), X w, pdst, rop) X if((x & 0x1f) + w >= 0x20) X*** ./mit-orig/server/ddx/mfb/mfbtegblt.c Thu Oct 4 16:48:22 1990 X--- ./mit/server/ddx/mfb/mfbtegblt.c Sun Sep 16 22:21:23 1990 X*************** X*** 76,82 **** X #define ShiftAmnt 16 X #endif X X! #define GetBits4 c = (*char1++ << ShiftAmnt) | \ X SCRRIGHT (*char2++ << ShiftAmnt, xoff2) | \ X SCRRIGHT (*char3++ << ShiftAmnt, xoff3) | \ X SCRRIGHT (*char4++ << ShiftAmnt, xoff4); X--- 76,82 ---- X #define ShiftAmnt 16 X #endif X X! #define GetBits4 c = LONG2CHARS_F(*char1++ << ShiftAmnt) | \ X SCRRIGHT (*char2++ << ShiftAmnt, xoff2) | \ X SCRRIGHT (*char3++ << ShiftAmnt, xoff3) | \ X SCRRIGHT (*char4++ << ShiftAmnt, xoff4); X*************** X*** 104,109 **** X--- 104,111 ---- X X #ifdef USE_LEFTBITS X #define GetBits1 getleftbits (char1, widthGlyph, c); \ X+ if (glyphBytes == 1) \ X+ c <<=8; \ X c &= glyphMask; \ X char1 = (glyphPointer) (((char *) char1) + glyphBytes); X #else X*** ./mit-orig/server/ddx/mfb/mfbzerarc.c Thu Oct 4 16:48:27 1990 X--- ./mit/server/ddx/mfb/mfbzerarc.c Sun Sep 16 22:21:23 1990 X*************** X*** 35,45 **** X--- 35,48 ---- X X extern void miPolyArc(), miZeroPolyArc(); X X+ #define LEFTMOST endtab[1] X+ /* X #if (BITMAP_BIT_ORDER == MSBFirst) X #define LEFTMOST ((unsigned int) 0x80000000) X #else X #define LEFTMOST ((unsigned int) 1) X #endif X+ */ X X #define PixelateWhite(addr,off) \ X (addr)[(off)>>5] |= SCRRIGHT (LEFTMOST, ((off) & 0x1f)) X*** ./mit-orig/server/ddx/mi/mispritest.h Thu Oct 4 16:47:48 1990 X--- ./mit/server/ddx/mi/mispritest.h Sun Sep 16 22:22:36 1990 X*************** X*** 92,98 **** X */ X #define SPN_OVERLAP(pCbox,y,x,w) BOX_OVERLAP((pCbox),(x),(y),(x)+(w),(y)) X X! #define LINE_SORT(x1,y2,x2,y2) \ X { int _t; \ X if (x1 > x2) { _t = x1; x1 = x2; x2 = _t; } \ X if (y1 > y2) { _t = y1; y1 = y2; y2 = _t; } } X--- 92,98 ---- X */ X #define SPN_OVERLAP(pCbox,y,x,w) BOX_OVERLAP((pCbox),(x),(y),(x)+(w),(y)) X X! #define LINE_SORT(x1,y1,x2,y2) \ X { int _t; \ X if (x1 > x2) { _t = x1; x1 = x2; x2 = _t; } \ X if (y1 > y2) { _t = y1; y1 = y2; y2 = _t; } } X*** ./mit-orig/server/include/fontdir.h Thu Oct 4 16:52:59 1990 X--- ./mit/server/include/fontdir.h Sun Sep 16 22:24:58 1990 X*************** X*** 79,81 **** X--- 79,85 ---- X extern FontTable MakeFontTable(); X extern Boolean Match(); X X+ #if defined(ix386) || defined(sco) X+ #include <dirent.h> X+ #define MAXPATHLEN 1024 X+ #endif X*** ./mit-orig/server/include/misc.h Thu Oct 4 16:53:01 1990 X--- ./mit/server/include/misc.h Sun Sep 16 22:24:58 1990 X*************** X*** 34,40 **** X extern unsigned long serverGeneration; X X #ifndef NULL X! #if __STDC__ && !NOSTDHDRS X #include <stddef.h> X #else X #define NULL 0 X--- 34,40 ---- X extern unsigned long serverGeneration; X X #ifndef NULL X! #if __STDC__ && !NOSTDHDRS && !defined(__GNUC__) X #include <stddef.h> X #else X #define NULL 0 X*** ./mit-orig/server/include/os.h Thu Oct 4 16:53:03 1990 X--- ./mit/server/include/os.h Sun Sep 16 22:24:58 1990 X*************** X*** 126,129 **** X--- 126,136 ---- X unsigned long *Xrealloc(); X long GetTimeInMillis(); X X+ #ifdef sco X+ #ifdef NULL X+ #undef NULL X+ #endif X+ #define NULL 0 X+ #endif X+ X #endif /* OS_H */ X*** ./mit-orig/server/include/servermd.h Thu Oct 4 16:53:00 1990 X--- ./mit/server/include/servermd.h Sun Sep 16 22:24:58 1990 X*************** X*** 126,131 **** X--- 126,140 ---- X X #endif /* sun */ X X+ #if defined(ix386) || defined(sco) X+ #define IMAGE_BYTE_ORDER LSBFirst /* Values for the i386 only */ X+ #define BITMAP_BIT_ORDER MSBFirst /* Not compatible to other..*/ X+ #define GLYPHPADBYTES 1 X+ #define GETLEFTBITS_ALIGNMENT 4 X+ #define AVOID_MEMORY_READ X+ #define LARGE_INSTRUCTION_CACHE X+ #define FAST_CONSTANT_OFFSET_MODE X+ #endif /* ix386 or sco */ X #ifdef apollo X X #define IMAGE_BYTE_ORDER MSBFirst /* Values for the Apollo only*/ X*************** X*** 226,232 **** X #endif X X /* pad scanline to a longword */ X! #if defined(ibm) && defined(i386) X #define BITMAP_SCANLINE_UNIT 8 X #else X #define BITMAP_SCANLINE_UNIT 32 X--- 235,241 ---- X #endif X X /* pad scanline to a longword */ X! #if (defined(ibm) && defined(i386)) || defined(ix386) || defined(sco) X #define BITMAP_SCANLINE_UNIT 8 X #else X #define BITMAP_SCANLINE_UNIT 32 END_OF_FILE if test 39005 -ne `wc -c <'fix-14.sco11'`; then echo shar: \"'fix-14.sco11'\" unpacked with wrong size! fi # end of 'fix-14.sco11' fi echo shar: End of archive 11 \(of 12\). cp /dev/null ark11isdone 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.