home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!lll-winken!sun-barr!newstop!sun!CUNYVM.CUNY.EDU
- From: ntakahas%langue.is.tsukuba.ac.jp@CUNYVM.CUNY.EDU (TAKAHASHI Naoto)
- Newsgroups: comp.sources.x
- Subject: v09i013: Xsun for CG8/CG9, Part01/01
- Message-ID: <141675@sun.Eng.Sun.COM>
- Date: 31 Aug 90 16:40:19 GMT
- Sender: news@sun.Eng.Sun.COM
- Lines: 1065
- Approved: argv@sun.com
-
- Submitted-by: ntakahas%langue.is.tsukuba.ac.jp@CUNYVM.CUNY.EDU (TAKAHASHI Naoto)
- Posting-number: Volume 9, Issue 13
- Archive-name: sun.serpatch/part01
-
- [ The following patches are not official; use at your own risk.
- I have not tested the changes but have no reason to believe
- they shouldn't work. --dan
- ]
-
- This is an X server for Sun CG[89] 24-bit colour boards. The code was
- tested on the following platforms:
-
- Sun4/330GXP SunOS 4.0.3 with Sun cc
- Sun4/110TC SunOS 4.1 with Sun cc
- Sun3/80 TFC SunOS 4.0.3 with gcc1.35, gcc1.37.1
-
- It supports CG8 and CG9 (and BW2, of course). Other colour boards,
- such as CG4 and CG6, are NOT supported. See the file named X.sample
- if you want your /usr/bin/X11 directory to be shared by both 8-bit
- colour systems and 24-bit colour systems.
-
- See README for more information.
-
- ntakahas
-
- ----------------------------------------------------------------------
-
- #! /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 shell archive."
- # Contents: README X.sample cg8.diff cg9.diff doit.sh
- # Wrapped by ntakahas@langue on Wed Aug 29 14:16:41 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(3110 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- XThis is an X server for Sun CG[89] 24-bit colour boards. The code was
- Xtested on the following platforms:
- X
- XSun4/330GXP SunOS 4.0.3 with Sun cc
- XSun4/110TC SunOS 4.1 with Sun cc
- XSun3/80 TFC SunOS 4.0.3 with gcc1.35, gcc1.37.1
- X
- XIt supports CG8 and CG9 (and BW2, of course). Other colour boards,
- Xsuch as CG4 and CG6, are NOT supported. See the file named X.sample
- Xif you want your /usr/bin/X11 directory to be shared by both 8-bit
- Xcolour systems and 24-bit colour systems.
- X
- XLike a CG4 server, it has two screens: a colour screen (screen 0) and
- Xa monochrome screen (screen 1). The screens toggle when the mouse
- Xcursor goes off the side edges. But this implementation is incomplete
- X(See `PROBLEMS' below).
- X
- XThe GP2 graphic processor is not used. The code is not tuned for a
- X24-bit framebuffer, either. So it is very slow, but I believe it is
- Xeasily ported to other 24-out-of-32-bit framebuffers.
- X
- X
- XHOW TO MAKE
- X
- X1. Copy `cg8.diff', `cg9.diff', and `doit.sh' to $(TOP)/mit/server.
- X
- X2. cd to $(TOP)/mit/server.
- X
- X3. Run `doit.sh'. The patches will be applied and the sources will be
- Xcompiled automatically.
- X
- X4. Test the new Xsun by `xinit -- ./Xsun'.
- X
- X5. If everything seems OK, replace the old Xsun with the new one.
- X
- X
- XABOUT CLIENTS
- X
- XThis server is a TrueColor server. So the clients which dynamically
- Xchange the colormap do not work.
- X
- XMost of the MIT clients work fine. Unfortunately, however, some
- Xclients do not run with this server. Ico does not work when more than
- Xone colour is specified for -colors option. Xfade does not support
- Xthe TrueColor visual type. Xterm, xbiff, xclock, oclock, twm, xmag,
- Xetc. work fine. Xcolors is attractive.
- X
- XIf you are a twm user, do not forget to set XORvalue to 16777215 (=
- X2^24 - 1) in your .twmrc, or the window outlines for moving and
- Xresizing are not visible.
- X
- XUser contributed clients may or may not work. Xphoon works, but it
- Xtakes long time to start up and to redraw the root window. Xmj
- Xappears only in black and white mode and also takes long time to
- Xredraw the tiles. Xothello works fine, except that when you play
- Xblack your tile cannot be seen until you put it on the board. Xtartan
- Xlooks good. Emacs with the X11 functionality works fine. Olwm works
- Xto some extent.
- X
- XPROBLEMS
- X
- XIf something is (re)drawn on the monochrome screen when you are on the
- Xcolour screen, you will see the `shade' of what is drawn. So do not
- Xput xclock, xload, ico, etc., on the monochrome screen. You are also
- Xadvised to use the side edge of the ROOT window to move from the
- Xmonochrome screen to the colour screen. Otherwise the shade of the
- Xlast window you visited on the monochrome screen may be drawn on the
- Xcolour screen. This is because the window manager (or the window
- Xitself) tries to redraw the border after the screens are toggled. As
- Xthe monochrome screen is not affected by the colour screen, you can
- Xdraw anything on the colour screen whenever you want.
- X
- XAs mentioned above, no optimization is done. It is left for you
- Xexercise :-)
- X
- XEnjoy.
- X
- X- ntakahas
- X
- XTAKAHASHI Naoto
- XDoctoral Program in Engineering, University of Tsukuba
- Xntakahas@is.tsukuba.ac.jp
- END_OF_FILE
- if test 3110 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'X.sample' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'X.sample'\"
- else
- echo shar: Extracting \"'X.sample'\" \(284 characters\)
- sed "s/^X//" >'X.sample' <<'END_OF_FILE'
- X#!/bin/sh
- X# If your /usr/bin/X11 directory is shared by both 8-bit colour systems
- X# and 24-bit colour systems, install the 24-bit server as /usr/bin/X11/Xcg89
- X# and use this shell script as /usr/bin/X11/X
- Xif [ `constype` = rop -o `constype` = bw4 ]; then
- X Xcg89 $@
- Xelse
- X Xsun $@
- Xfi
- END_OF_FILE
- if test 284 -ne `wc -c <'X.sample'`; then
- echo shar: \"'X.sample'\" unpacked with wrong size!
- fi
- chmod +x 'X.sample'
- # end of 'X.sample'
- fi
- if test -f 'cg8.diff' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'cg8.diff'\"
- else
- echo shar: Extracting \"'cg8.diff'\" \(21036 characters\)
- sed "s/^X//" >'cg8.diff' <<'END_OF_FILE'
- XCommon subdirectories: ddx/cfb and patched/cfb
- XCommon subdirectories: ddx/sun and patched/sun
- Xdiff -cr ddx/cfb/Imakefile patched/cfb/Imakefile
- X*** ddx/cfb/Imakefile Fri Aug 24 23:02:30 1990
- X--- patched/cfb/Imakefile Fri Aug 24 22:57:26 1990
- X***************
- X*** 4,13 ****
- X cfbpntwin.c cfbmskbits.c cfbpixmap.c cfbbitblt.c \
- X cfbfillsp.c cfbsetsp.c cfbscrinit.c \
- X cfbgetsp.c cfbfillrct.c cfbtileodd.c \
- X! cfbcmap.c cfbzerarc.c cfbfillarc.c \
- X cfbtegblt.c cfbbstore.c \
- X! cfb8bit.c cfbteblt8.c cfbglblt8.c \
- X! cfbpush8.c cfbrctstp8.c cfbpolypnt.c \
- X cfbbres.c cfbline.c cfbhrzvert.c cfbbresd.c cfbimage.c
- X
- X OBJS = cfbgc.o cfbwindow.o \
- X--- 4,12 ----
- X cfbpntwin.c cfbmskbits.c cfbpixmap.c cfbbitblt.c \
- X cfbfillsp.c cfbsetsp.c cfbscrinit.c \
- X cfbgetsp.c cfbfillrct.c cfbtileodd.c \
- X! cfbcmap.c cfbfillarc.c \
- X cfbtegblt.c cfbbstore.c \
- X! cfbpolypnt.c \
- X cfbbres.c cfbline.c cfbhrzvert.c cfbbresd.c cfbimage.c
- X
- X OBJS = cfbgc.o cfbwindow.o \
- X***************
- X*** 14,23 ****
- X cfbgetsp.o cfbfillrct.o cfbtileodd.o \
- X cfbfillsp.o cfbsetsp.o cfbscrinit.o \
- X cfbpntwin.o cfbmskbits.o cfbpixmap.o cfbbitblt.o \
- X! cfbcmap.o cfbzerarc.o cfbfillarc.o \
- X cfbtegblt.o cfbbstore.o \
- X! cfb8bit.o cfbteblt8.o cfbglblt8.o \
- X! cfbpush8.o cfbrctstp8.o cfbpolypnt.o \
- X cfbbres.o cfbline.o cfbhrzvert.o cfbbresd.o cfbimage.o cfbseg.o
- X
- X INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
- X--- 13,21 ----
- X cfbgetsp.o cfbfillrct.o cfbtileodd.o \
- X cfbfillsp.o cfbsetsp.o cfbscrinit.o \
- X cfbpntwin.o cfbmskbits.o cfbpixmap.o cfbbitblt.o \
- X! cfbcmap.o cfbfillarc.o \
- X cfbtegblt.o cfbbstore.o \
- X! cfbpolypnt.o \
- X cfbbres.o cfbline.o cfbhrzvert.o cfbbresd.o cfbimage.o cfbseg.o
- X
- X INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
- Xdiff -cr ddx/cfb/cfbbitblt.c patched/cfb/cfbbitblt.c
- X*** ddx/cfb/cfbbitblt.c Fri Aug 24 23:02:28 1990
- X--- patched/cfb/cfbbitblt.c Fri Aug 24 22:57:24 1990
- X***************
- X*** 942,947 ****
- X--- 942,949 ----
- X return prgnExposed;
- X }
- X
- X+ static unsigned long copyPlaneBitPlane;
- X+
- X #if (PPW == 4)
- X
- X cfbCopyPlane1to8 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
- planemask)
- X***************
- X*** 1287,1294 ****
- X }
- X }
- X
- X- static unsigned long copyPlaneBitPlane;
- X-
- X #define mfbmaskbits(x, w, startmask, endmask, nlw) \
- X startmask = starttab[(x)&0x1f]; \
- X endmask = endtab[((x)+(w)) & 0x1f]; \
- X--- 1289,1294 ----
- X***************
- X*** 1317,1335 ****
- X } \
- X }
- X
- X- cfbCopyImagePlane (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
- planemask)
- X- DrawablePtr pSrcDrawable;
- X- DrawablePtr pDstDrawable;
- X- int rop;
- X- unsigned long planemask;
- X- RegionPtr prgnDst;
- X- DDXPointPtr pptSrc;
- X- {
- X- copyPlaneBitPlane = planemask;
- X- cfbCopyPlane8to1 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
- X- (unsigned long) ~0L);
- X- }
- X-
- X cfbCopyPlane8to1 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
- planemask)
- X DrawablePtr pSrcDrawable;
- X DrawablePtr pDstDrawable;
- X--- 1317,1322 ----
- X***************
- X*** 1500,1505 ****
- X--- 1487,1505 ----
- X }
- X
- X #endif
- X+
- X+ cfbCopyImagePlane (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
- planemask)
- X+ DrawablePtr pSrcDrawable;
- X+ DrawablePtr pDstDrawable;
- X+ int rop;
- X+ unsigned long planemask;
- X+ RegionPtr prgnDst;
- X+ DDXPointPtr pptSrc;
- X+ {
- X+ copyPlaneBitPlane = planemask;
- X+ cfbCopyPlane (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
- X+ (unsigned long) ~0L);
- X+ }
- X
- X RegionPtr cfbCopyPlane(pSrcDrawable, pDstDrawable,
- X pGC, srcx, srcy, width, height, dstx, dsty, bitPlane)
- Xdiff -cr ddx/cfb/cfbbres.c patched/cfb/cfbbres.c
- X*** ddx/cfb/cfbbres.c Fri Aug 24 23:02:31 1990
- X--- patched/cfb/cfbbres.c Fri Aug 24 22:57:27 1990
- X***************
- X*** 182,188 ****
- X addrl += nlwidth;
- X e += e3;
- X }
- X! if (!bit)
- X {
- X bit = leftbit;
- X addrl++;
- X--- 182,188 ----
- X addrl += nlwidth;
- X e += e3;
- X }
- X! /* if (!bit) */
- X {
- X bit = leftbit;
- X addrl++;
- X***************
- X*** 202,208 ****
- X addrl += nlwidth;
- X e += e3;
- X }
- X! if (!bit)
- X {
- X bit = rightbit;
- X addrl--;
- X--- 202,208 ----
- X addrl += nlwidth;
- X e += e3;
- X }
- X! /* if (!bit) */
- X {
- X bit = rightbit;
- X addrl--;
- X***************
- X*** 222,228 ****
- X if (e >= 0)
- X {
- X bit = SCRRIGHT(bit,1);
- X! if (!bit)
- X {
- X bit = leftbit;
- X addrl++;
- X--- 222,228 ----
- X if (e >= 0)
- X {
- X bit = SCRRIGHT(bit,1);
- X! /* if (!bit) */
- X {
- X bit = leftbit;
- X addrl++;
- X***************
- X*** 242,248 ****
- X if (e >= 0)
- X {
- X bit = SCRLEFT(bit,1);
- X! if (!bit)
- X {
- X bit = rightbit;
- X addrl--;
- X--- 242,248 ----
- X if (e >= 0)
- X {
- X bit = SCRLEFT(bit,1);
- X! /* if (!bit) */
- X {
- X bit = rightbit;
- X addrl--;
- Xdiff -cr ddx/cfb/cfbbresd.c patched/cfb/cfbbresd.c
- X*** ddx/cfb/cfbbresd.c Fri Aug 24 23:02:30 1990
- X--- patched/cfb/cfbbresd.c Fri Aug 24 22:57:27 1990
- X***************
- X*** 204,210 ****
- X addrl += yinc;
- X e += e3;
- X }
- X! if (!bit)
- X {
- X bit = leftbit;
- X addrl++;
- X--- 204,210 ----
- X addrl += yinc;
- X e += e3;
- X }
- X! /* if (!bit) */
- X {
- X bit = leftbit;
- X addrl++;
- X***************
- X*** 228,234 ****
- X addrl += yinc;
- X e += e3;
- X }
- X! if (!bit)
- X {
- X bit = rightbit;
- X addrl--;
- X--- 228,234 ----
- X addrl += yinc;
- X e += e3;
- X }
- X! /* if (!bit) */
- X {
- X bit = rightbit;
- X addrl--;
- X***************
- X*** 252,258 ****
- X if (e >= 0)
- X {
- X bit = SCRRIGHT(bit,1);
- X! if (!bit)
- X {
- X bit = leftbit;
- X addrl++;
- X--- 252,258 ----
- X if (e >= 0)
- X {
- X bit = SCRRIGHT(bit,1);
- X! /* if (!bit) */
- X {
- X bit = leftbit;
- X addrl++;
- X***************
- X*** 276,282 ****
- X if (e >= 0)
- X {
- X bit = SCRLEFT(bit,1);
- X! if (!bit)
- X {
- X bit = rightbit;
- X addrl--;
- X--- 276,282 ----
- X if (e >= 0)
- X {
- X bit = SCRLEFT(bit,1);
- X! /* if (!bit) */
- X {
- X bit = rightbit;
- X addrl--;
- Xdiff -cr ddx/cfb/cfbgc.c patched/cfb/cfbgc.c
- X*** ddx/cfb/cfbgc.c Fri Aug 24 23:02:29 1990
- X--- patched/cfb/cfbgc.c Fri Aug 24 22:57:25 1990
- X***************
- X*** 693,699 ****
- X if (pGC->alu == GXcopy &&
- X ((pGC->planemask & PMSK) == PMSK))
- X {
- X! pGC->ops->PushPixels = cfbPushPixels8;
- X pGC->ops->PolyFillArc = cfbPolyFillArcSolidCopy;
- X }
- X break;
- X--- 693,699 ----
- X if (pGC->alu == GXcopy &&
- X ((pGC->planemask & PMSK) == PMSK))
- X {
- X! pGC->ops->PushPixels = mfbPushPixels;
- X pGC->ops->PolyFillArc = cfbPolyFillArcSolidCopy;
- X }
- X break;
- Xdiff -cr ddx/cfb/cfbgetsp.c patched/cfb/cfbgetsp.c
- X*** ddx/cfb/cfbgetsp.c Fri Aug 24 23:02:30 1990
- X--- patched/cfb/cfbgetsp.c Fri Aug 24 22:57:26 1990
- X***************
- X*** 68,74 ****
- X case 1:
- X mfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
- X return;
- X! case 8:
- X break;
- X default:
- X FatalError("cfbGetSpans: invalid depth\n");
- X--- 68,74 ----
- X case 1:
- X mfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
- X return;
- X! case PSZ:
- X break;
- X default:
- X FatalError("cfbGetSpans: invalid depth\n");
- Xdiff -cr ddx/cfb/cfbmskbits.c patched/cfb/cfbmskbits.c
- X*** ddx/cfb/cfbmskbits.c Fri Aug 24 23:02:28 1990
- X--- patched/cfb/cfbmskbits.c Fri Aug 24 22:57:24 1990
- X***************
- X*** 149,159 ****
- X #if (BITMAP_BIT_ORDER == MSBFirst)
- X int cfbmask[] =
- X {
- X! 0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF
- X };
- X int cfbrmask[] =
- X {
- X! 0x00FFFFFF, 0xFF00FFFF, 0xFFFF00FF, 0xFFFFFF00
- X };
- X #else /* (BITMAP_BIT_ORDER == LSBFirst) */
- X int cfbmask[] =
- X--- 149,159 ----
- X #if (BITMAP_BIT_ORDER == MSBFirst)
- X int cfbmask[] =
- X {
- X! 0xFFFFFFFF, 0x00FF0000, 0x0000FF00, 0x000000FF
- X };
- X int cfbrmask[] =
- X {
- X! 0x00000000, 0xFF00FFFF, 0xFFFF00FF, 0xFFFFFF00
- X };
- X #else /* (BITMAP_BIT_ORDER == LSBFirst) */
- X int cfbmask[] =
- Xdiff -cr ddx/cfb/cfbmskbits.h patched/cfb/cfbmskbits.h
- X*** ddx/cfb/cfbmskbits.h Fri Aug 24 23:02:29 1990
- X--- patched/cfb/cfbmskbits.h Fri Aug 24 22:57:25 1990
- X***************
- X*** 82,93 ****
- X * ==========================================================================
- X */
- X
- X! #define PPW 4
- X! #define PLST 3
- X! #define PIM 0x03
- X! #define PWSH 2
- X! #define PSZ 8
- X! #define PMSK 0xFF
- X
- X /* the following notes use the following conventions:
- X SCREEN LEFT SCREEN RIGHT
- X--- 82,93 ----
- X * ==========================================================================
- X */
- X
- X! #define PPW 1
- X! #define PLST 0
- X! #define PIM 0x00
- X! #define PWSH 0
- X! #define PSZ 32
- X! #define PMSK 0xFFFFFFFF
- X
- X /* the following notes use the following conventions:
- X SCREEN LEFT SCREEN RIGHT
- X***************
- X*** 420,426 ****
- X else \
- X q = (*(psrcstip)) >> -m; \
- X q = QuartetBitsTable[(w)] & ((ones) ? q : ~q); \
- X! *(destpix) = (*(psrcpix)) & QuartetPixelMaskTable[q]; \
- X }
- X #else /* BITMAP_BIT_ORDER == LSB */
- X #define getstipplepixels( psrcstip, xt, w, ones, psrcpix, destpix ) \
- X--- 420,426 ----
- X else \
- X q = (*(psrcstip)) >> -m; \
- X q = QuartetBitsTable[(w)] & ((ones) ? q : ~q); \
- X! *(destpix) = q ? *(psrcpix) : 0; \
- X }
- X #else /* BITMAP_BIT_ORDER == LSB */
- X #define getstipplepixels( psrcstip, xt, w, ones, psrcpix, destpix ) \
- Xdiff -cr ddx/cfb/cfbscrinit.c patched/cfb/cfbscrinit.c
- X*** ddx/cfb/cfbscrinit.c Fri Aug 24 23:02:31 1990
- X--- patched/cfb/cfbscrinit.c Fri Aug 24 22:57:27 1990
- X***************
- X*** 61,66 ****
- X--- 61,67 ----
- X
- X static VisualRec visuals[] = {
- X /* vid class bpRGB cmpE nplan rMask gMask bMask oRed oGreen oBlue */
- X+ 0, TrueColor, 8, 256, 32, 0xff, 0xff00, 0xff0000, 0, 8, 16,
- X #ifndef STATIC_COLOR
- X 0, PseudoColor, _BP, 1<<PSZ, PSZ, 0, 0, 0, 0, 0, 0,
- X 0, DirectColor, _BP, _CE, PSZ, _RM, _GM, _BM, _RS, _GS, _BS,
- X***************
- X*** 78,84 ****
- X static DepthRec depths[] = {
- X /* depth numVid vids */
- X 1, 0, NULL,
- X! 8, NUMVISUALS, VIDs
- X };
- X
- X #define NUMDEPTHS ((sizeof depths)/(sizeof depths[0]))
- X--- 79,85 ----
- X static DepthRec depths[] = {
- X /* depth numVid vids */
- X 1, 0, NULL,
- X! 32, NUMVISUALS, VIDs
- X };
- X
- X #define NUMDEPTHS ((sizeof depths)/(sizeof depths[0]))
- X***************
- X*** 140,146 ****
- X pScreen->numDepths = NUMDEPTHS;
- X pScreen->allowedDepths = depths;
- X
- X! pScreen->rootDepth = 8;
- X pScreen->minInstalledCmaps = 1;
- X pScreen->maxInstalledCmaps = 1;
- X pScreen->backingStoreSupport = Always;
- X--- 141,147 ----
- X pScreen->numDepths = NUMDEPTHS;
- X pScreen->allowedDepths = depths;
- X
- X! pScreen->rootDepth = 32;
- X pScreen->minInstalledCmaps = 1;
- X pScreen->maxInstalledCmaps = 1;
- X pScreen->backingStoreSupport = Always;
- X***************
- X*** 157,163 ****
- X if (!pPixmap)
- X return FALSE;
- X pPixmap->drawable.type = DRAWABLE_PIXMAP;
- X! pPixmap->drawable.depth = 8;
- X pPixmap->drawable.pScreen = pScreen;
- X pPixmap->drawable.serialNumber = 0;
- X pPixmap->drawable.x = 0;
- X--- 158,164 ----
- X if (!pPixmap)
- X return FALSE;
- X pPixmap->drawable.type = DRAWABLE_PIXMAP;
- X! pPixmap->drawable.depth = 32;
- X pPixmap->drawable.pScreen = pScreen;
- X pPixmap->drawable.serialNumber = 0;
- X pPixmap->drawable.x = 0;
- Xdiff -cr ddx/sun/Imakefile patched/sun/Imakefile
- X*** ddx/sun/Imakefile Fri Aug 24 23:02:26 1990
- X--- patched/sun/Imakefile Fri Aug 24 23:00:29 1990
- X***************
- X*** 8,18 ****
- X sunKbd.c \
- X sunMouse.c \
- X sunUtils.c \
- X! sunCG2C.c \
- X! sunCG2M.c \
- X! sunCG3C.c \
- X! sunCG4C.c \
- X! sunCG6C.c \
- X sunKeyMap.c
- X
- X SRCS = $(SRCS1) kbd_mode.c constype.c
- X--- 8,14 ----
- X sunKbd.c \
- X sunMouse.c \
- X sunUtils.c \
- X! sunCG8C.c \
- X sunKeyMap.c
- X
- X SRCS = $(SRCS1) kbd_mode.c constype.c
- X***************
- X*** 26,36 ****
- X sunKbd.o \
- X sunMouse.o \
- X sunUtils.o \
- X! sunCG2C.o \
- X! sunCG2M.o \
- X! sunCG3C.o \
- X! sunCG4C.o \
- X! sunCG6C.o \
- X sunKeyMap.o
- X
- X INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
- X--- 22,28 ----
- X sunKbd.o \
- X sunMouse.o \
- X sunUtils.o \
- X! sunCG8C.o \
- X sunKeyMap.o
- X
- X INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
- Xdiff -cr ddx/sun/sun.h patched/sun/sun.h
- X*** ddx/sun/sun.h Fri Aug 24 23:02:26 1990
- X--- patched/sun/sun.h Fri Aug 24 22:57:22 1990
- X***************
- X*** 196,202 ****
- X pointer fbPriv; /* Frame-buffer-dependent data */
- X } fbFd;
- X
- X! extern Bool sunSupportsDepth8;
- X extern unsigned long sunGeneration;
- X
- X typedef struct _sunFbDataRec {
- X--- 196,202 ----
- X pointer fbPriv; /* Frame-buffer-dependent data */
- X } fbFd;
- X
- X! extern Bool sunSupportsDepth32;
- X extern unsigned long sunGeneration;
- X
- X typedef struct _sunFbDataRec {
- Xdiff -cr ddx/sun/sunCG8C.c patched/sun/sunCG8C.c
- X*** ddx/sun/sunCG8C.c Fri Aug 24 23:05:49 1990
- X--- patched/sun/sunCG8C.c Fri Aug 24 22:57:23 1990
- X***************
- X*** 3,8 ****
- X--- 3,12 ----
- X * Functions to support the sun CG8 board as a memory frame buffer.
- X */
- X
- X+ /****************************************************************/
- X+ /* Modified from sunCG4C.c for X11R4 by TAKAHASHI Naoto */
- X+ /****************************************************************/
- X+
- X /************************************************************
- X Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
- X
- X***************
- X*** 47,53 ****
- X
- X /*-
- X * The cg8 frame buffer is divided into several pieces.
- X! * 1) an array of 8-bit pixels
- X * 2) a one-bit deep overlay plane
- X * 3) an enable plane
- X * 4) a colormap and status register
- X--- 51,57 ----
- X
- X /*-
- X * The cg8 frame buffer is divided into several pieces.
- X! * 1) an array of 32-bit pixels
- X * 2) a one-bit deep overlay plane
- X * 3) an enable plane
- X * 4) a colormap and status register
- X***************
- X*** 60,71 ****
- X typedef struct cg8c {
- X u_char mpixel[128*1024]; /* bit-per-pixel memory */
- X u_char epixel[128*1024]; /* enable plane */
- X! u_char cpixel[CG8_HEIGHT][CG8_WIDTH]; /* byte-per-pixel memory */
- X } CG8C, CG8CRec, *CG8CPtr;
- X
- X #define CG8C_IMAGE(fb) ((caddr_t)(&(fb)->cpixel))
- X #define CG8C_IMAGEOFF ((off_t)0x0)
- X! #define CG8C_IMAGELEN (((CG8_HEIGHT*CG8_WIDTH + 8191)/8192)*8192)
- X #define CG8C_MONO(fb) ((caddr_t)(&(fb)->mpixel))
- X #define CG8C_MONOLEN (128*1024)
- X #define CG8C_ENABLE(fb) ((caddr_t)(&(fb)->epixel))
- X--- 64,75 ----
- X typedef struct cg8c {
- X u_char mpixel[128*1024]; /* bit-per-pixel memory */
- X u_char epixel[128*1024]; /* enable plane */
- X! u_long cpixel[CG8_HEIGHT][CG8_WIDTH]; /* word-per-pixel memory */
- X } CG8C, CG8CRec, *CG8CPtr;
- X
- X #define CG8C_IMAGE(fb) ((caddr_t)(&(fb)->cpixel))
- X #define CG8C_IMAGEOFF ((off_t)0x0)
- X! #define CG8C_IMAGELEN (((4*CG8_HEIGHT*CG8_WIDTH + 8191)/8192)*8192)
- X #define CG8C_MONO(fb) ((caddr_t)(&(fb)->mpixel))
- X #define CG8C_MONOLEN (128*1024)
- X #define CG8C_ENABLE(fb) ((caddr_t)(&(fb)->epixel))
- X***************
- X*** 75,80 ****
- X--- 79,86 ----
- X
- X static int sunCG8CScreenIndex;
- X
- X+ static u_char mbak[128*1024]; /* backup for mpixel */
- X+
- X /* XXX - next line means only one CG8 - fix this */
- X static ColormapPtr sunCG8CInstalledMap;
- X
- X***************
- X*** 351,357 ****
- X sunFbs[index].info.fb_width,
- X sunFbs[index].info.fb_height,
- X monitorResolution, monitorResolution,
- X! sunFbs[index].info.fb_width))
- X return (FALSE);
- X
- X pScreen->SaveScreen = sunCG8CSaveScreen;
- X--- 357,363 ----
- X sunFbs[index].info.fb_width,
- X sunFbs[index].info.fb_height,
- X monitorResolution, monitorResolution,
- X! sunFbs[index].info.fb_width * 4))
- X return (FALSE);
- X
- X pScreen->SaveScreen = sunCG8CSaveScreen;
- X***************
- X*** 386,404 ****
- X u_char select;
- X {
- X int index;
- X! register int *j, *end;
- X
- X index = pScreen->myNum;
- X CG8Cfb = (CG8CPtr) sunFbs[index].fb;
- X
- X! j = (int *) CG8Cfb->epixel;
- X! end = j + (128 / sizeof (int)) * 1024;
- X! if (!select)
- X! while (j < end)
- X *j++ = 0;
- X else
- X! while (j < end)
- X! *j++ = ~0;
- X }
- X
- X /*-
- X--- 392,417 ----
- X u_char select;
- X {
- X int index;
- X! register int *i, *j, *k, *end;
- X
- X index = pScreen->myNum;
- X CG8Cfb = (CG8CPtr) sunFbs[index].fb;
- X
- X! i = (int *) CG8Cfb->epixel;
- X! j = (int *) CG8Cfb->mpixel;
- X! k = (int *) mbak;
- X! end = i + (128 / sizeof (int)) * 1024;
- X! if (!select)
- X! while (i < end) {
- X! *i++ = 0;
- X! *k++ = *j;
- X *j++ = 0;
- X+ }
- X else
- X! while (i < end) {
- X! *i++ = ~0;
- X! *j++ = *k++;
- X! }
- X }
- X
- X /*-
- X***************
- X*** 426,432 ****
- X int fd;
- X struct fbtype fbType;
- X
- X! if ((fd = sunOpenFrameBuffer(FBTYPE_SUN4COLOR, &fbType, index, fbNum,
- X argc, argv)) < 0)
- X return FALSE;
- X
- X--- 439,445 ----
- X int fd;
- X struct fbtype fbType;
- X
- X! if ((fd = sunOpenFrameBuffer(FBTYPE_MEMCOLOR, &fbType, index, fbNum,
- X argc, argv)) < 0)
- X return FALSE;
- X
- X***************
- X*** 459,465 ****
- X sunFbs[index].info = fbType;
- X sunFbs[index].fb = (pointer) CG8Cfb;
- X sunFbs[index].EnterLeave = sunCG8CSwitch;
- X! sunSupportsDepth8 = TRUE;
- X return TRUE;
- X }
- X
- X--- 472,478 ----
- X sunFbs[index].info = fbType;
- X sunFbs[index].fb = (pointer) CG8Cfb;
- X sunFbs[index].EnterLeave = sunCG8CSwitch;
- X! sunSupportsDepth32 = TRUE;
- X return TRUE;
- X }
- X
- X***************
- X*** 480,486 ****
- X i = AddScreen(sunCG8CInit, argc, argv);
- X if (i >= 0)
- X {
- X- /* Now set the enable plane for screen 0 */
- X sunCG8CSwitch(pScreenInfo->screens[i], i != 0);
- X return TRUE;
- X }
- X--- 493,498 ----
- Xdiff -cr ddx/sun/sunInit.c patched/sun/sunInit.c
- X*** ddx/sun/sunInit.c Fri Aug 24 23:02:27 1990
- X--- patched/sun/sunInit.c Fri Aug 24 23:00:30 1990
- X***************
- X*** 57,68 ****
- X extern int sunMouseProc();
- X extern int sunKbdProc();
- X extern Bool sunBW2Probe(), sunBW2Create();
- X! extern Bool sunCG2CProbe(), sunCG2CCreate();
- X! extern Bool sunCG3CProbe(), sunCG3CCreate();
- X! extern Bool sunCG4CProbe(), sunCG4CCreate();
- X! #ifdef FBTYPE_SUNFAST_COLOR /* doesn't exist in sunos3.x */
- X! extern Bool sunCG6CProbe(), sunCG6CCreate();
- X! #endif
- X extern void ProcessInputEvents();
- X
- X extern void SetInputCheck();
- X--- 57,63 ----
- X extern int sunMouseProc();
- X extern int sunKbdProc();
- X extern Bool sunBW2Probe(), sunBW2Create();
- X! extern Bool sunCG8CProbe(), sunCG8CCreate();
- X extern void ProcessInputEvents();
- X
- X extern void SetInputCheck();
- X***************
- X*** 76,82 ****
- X static int autoRepeatHandlersInstalled; /* FALSE each time InitOutput called
- */
- X
- X static Bool sunDevsProbed = FALSE;
- X! Bool sunSupportsDepth8 = FALSE;
- X unsigned long sunGeneration = 0;
- X
- X
- X--- 71,77 ----
- X static int autoRepeatHandlersInstalled; /* FALSE each time InitOutput called
- */
- X
- X static Bool sunDevsProbed = FALSE;
- X! Bool sunSupportsDepth32 = FALSE;
- X unsigned long sunGeneration = 0;
- X
- X
- X***************
- X*** 105,116 ****
- X
- X sunFbDataRec sunFbData[] = {
- X sunBW2Probe, "/dev/bwtwo0", sunBW2Create,
- X! sunCG2CProbe, "/dev/cgtwo0", sunCG2CCreate,
- X! sunCG3CProbe, "/dev/cgthree0", sunCG3CCreate,
- X! #ifdef FBTYPE_SUNFAST_COLOR
- X! sunCG6CProbe, "/dev/cgsix0", sunCG6CCreate,
- X! #endif
- X! sunCG4CProbe, "/dev/cgfour0", sunCG4CCreate,
- X sunBW2Probe, "/dev/bwtwo0", sunBW2Create,
- X };
- X
- X--- 100,106 ----
- X
- X sunFbDataRec sunFbData[] = {
- X sunBW2Probe, "/dev/bwtwo0", sunBW2Create,
- X! sunCG8CProbe, "/dev/cgeight0", sunCG8CCreate,
- X sunBW2Probe, "/dev/bwtwo0", sunBW2Create,
- X };
- X
- X***************
- X*** 125,131 ****
- X
- X static PixmapFormatRec formats[] = {
- X 1, 1, BITMAP_SCANLINE_PAD, /* 1-bit deep */
- X! 8, 8, BITMAP_SCANLINE_PAD, /* 8-bit deep */
- X };
- X #define NUMFORMATS (sizeof formats)/(sizeof formats[0])
- X
- X--- 115,121 ----
- X
- X static PixmapFormatRec formats[] = {
- X 1, 1, BITMAP_SCANLINE_PAD, /* 1-bit deep */
- X! 32,32, BITMAP_SCANLINE_PAD, /*32-bit deep */
- X };
- X #define NUMFORMATS (sizeof formats)/(sizeof formats[0])
- X
- X***************
- X*** 227,236 ****
- X sunFbData[dev].createProc = NULL;
- X }
- X sunDevsProbed = TRUE;
- X if (n == 0)
- X return;
- X }
- X! if (!sunSupportsDepth8)
- X pScreenInfo->numPixmapFormats--;
- X for (i = NUMSCREENS, dev = devStart; --i > 0; dev++) {
- X if (sunFbData[dev].createProc)
- X--- 217,227 ----
- X sunFbData[dev].createProc = NULL;
- X }
- X sunDevsProbed = TRUE;
- X+
- X if (n == 0)
- X return;
- X }
- X! if (!sunSupportsDepth32)
- X pScreenInfo->numPixmapFormats--;
- X for (i = NUMSCREENS, dev = devStart; --i > 0; dev++) {
- X if (sunFbData[dev].createProc)
- END_OF_FILE
- if test 21036 -ne `wc -c <'cg8.diff'`; then
- echo shar: \"'cg8.diff'\" unpacked with wrong size!
- fi
- # end of 'cg8.diff'
- fi
- if test -f 'cg9.diff' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'cg9.diff'\"
- else
- echo shar: Extracting \"'cg9.diff'\" \(1888 characters\)
- sed "s/^X//" >'cg9.diff' <<'END_OF_FILE'
- XCommon subdirectories: ddx/cfb and patched/cfb
- XCommon subdirectories: ddx/sun and patched/sun
- Xdiff -cr ddx/sun/Imakefile patched/sun/Imakefile
- X*** ddx/sun/Imakefile Fri Aug 24 23:26:56 1990
- X--- patched/sun/Imakefile Fri Aug 24 23:27:12 1990
- X***************
- X*** 9,14 ****
- X--- 9,15 ----
- X sunMouse.c \
- X sunUtils.c \
- X sunCG8C.c \
- X+ sunCG9C.c \
- X sunKeyMap.c
- X
- X SRCS = $(SRCS1) kbd_mode.c constype.c
- X***************
- X*** 23,28 ****
- X--- 24,30 ----
- X sunMouse.o \
- X sunUtils.o \
- X sunCG8C.o \
- X+ sunCG9C.o \
- X sunKeyMap.o
- X
- X INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
- Xdiff -cr ddx/sun/sunCG9C.c patched/sun/sunCG9C.c
- X*** ddx/sun/sunCG9C.c Fri Aug 24 23:30:27 1990
- X--- patched/sun/sunCG9C.c Fri Aug 24 23:27:14 1990
- X***************
- X*** 439,445 ****
- X int fd;
- X struct fbtype fbType;
- X
- X! if ((fd = sunOpenFrameBuffer(FBTYPE_MEMCOLOR, &fbType, index, fbNum,
- X argc, argv)) < 0)
- X return FALSE;
- X
- X--- 439,445 ----
- X int fd;
- X struct fbtype fbType;
- X
- X! if ((fd = sunOpenFrameBuffer(FBTYPE_SUNROP_COLOR, &fbType, index, fbNum,
- X argc, argv)) < 0)
- X return FALSE;
- X
- Xdiff -cr ddx/sun/sunInit.c patched/sun/sunInit.c
- X*** ddx/sun/sunInit.c Fri Aug 24 23:26:57 1990
- X--- patched/sun/sunInit.c Fri Aug 24 23:27:14 1990
- X***************
- X*** 58,63 ****
- X--- 58,64 ----
- X extern int sunKbdProc();
- X extern Bool sunBW2Probe(), sunBW2Create();
- X extern Bool sunCG8CProbe(), sunCG8CCreate();
- X+ extern Bool sunCG9CProbe(), sunCG9CCreate();
- X extern void ProcessInputEvents();
- X
- X extern void SetInputCheck();
- X***************
- X*** 101,106 ****
- X--- 102,108 ----
- X sunFbDataRec sunFbData[] = {
- X sunBW2Probe, "/dev/bwtwo0", sunBW2Create,
- X sunCG8CProbe, "/dev/cgeight0", sunCG8CCreate,
- X+ sunCG9CProbe, "/dev/cgnine0", sunCG9CCreate,
- X sunBW2Probe, "/dev/bwtwo0", sunBW2Create,
- X };
- X
- END_OF_FILE
- if test 1888 -ne `wc -c <'cg9.diff'`; then
- echo shar: \"'cg9.diff'\" unpacked with wrong size!
- fi
- # end of 'cg9.diff'
- fi
- if test -f 'doit.sh' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doit.sh'\"
- else
- echo shar: Extracting \"'doit.sh'\" \(293 characters\)
- sed "s/^X//" >'doit.sh' <<'END_OF_FILE'
- X#!/bin/sh
- Xsed -e 's/CG4/CG8/g' -e 's/cg4/cg8/g' ddx/sun/sunCG4C.c > ddx/sun/sunCG8C.c
- Xpatch -p0 < cg8.diff
- Xif [ -f /usr/include/sundev/cg9reg.h ]; then
- X sed -e 's/CG8/CG9/g' -e 's/cg8/cg9/g' ddx/sun/sunCG8C.c > ddx/sun/sunCG9C.c
- X patch -p0 < cg9.diff
- Xfi
- Xmake Makefiles
- Xmake depend
- Xmake Xsun
- END_OF_FILE
- if test 293 -ne `wc -c <'doit.sh'`; then
- echo shar: \"'doit.sh'\" unpacked with wrong size!
- fi
- chmod +x 'doit.sh'
- # end of 'doit.sh'
- fi
- echo shar: End of shell archive.
- exit 0
-
- dan
- ----------------------------------------------------
- O'Reilly && Associates argv@sun.com / argv@ora.com
- Opinions expressed reflect those of the author only.
-