v09i097: patches for X11R4 for SCO UNIX, Part11/12
microsoft!jimke at uunet.uu.net
microsoft!jimke at uunet.uu.net
Fri Oct 12 15:20:49 AEST 1990
Submitted-by: microsoft!jimke at 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 at 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 at sun.com / argv at ora.com
Opinions expressed reflect those of the author only.
More information about the Comp.sources.x
mailing list