home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume9 / sun.serpatch / part01 next >
Encoding:
Internet Message Format  |  1990-08-31  |  30.4 KB

  1. Path: uunet!lll-winken!sun-barr!newstop!sun!CUNYVM.CUNY.EDU
  2. From: ntakahas%langue.is.tsukuba.ac.jp@CUNYVM.CUNY.EDU (TAKAHASHI Naoto)
  3. Newsgroups: comp.sources.x
  4. Subject: v09i013: Xsun for CG8/CG9, Part01/01
  5. Message-ID: <141675@sun.Eng.Sun.COM>
  6. Date: 31 Aug 90 16:40:19 GMT
  7. Sender: news@sun.Eng.Sun.COM
  8. Lines: 1065
  9. Approved: argv@sun.com
  10.  
  11. Submitted-by: ntakahas%langue.is.tsukuba.ac.jp@CUNYVM.CUNY.EDU (TAKAHASHI Naoto)
  12. Posting-number: Volume 9, Issue 13
  13. Archive-name: sun.serpatch/part01
  14.  
  15. [ The following patches are not official; use at your own risk.
  16.   I have not tested the changes but have no reason to believe
  17.   they shouldn't work. --dan
  18. ]
  19.  
  20. This is an X server for Sun CG[89] 24-bit colour boards.  The code was
  21. tested on the following platforms:
  22.  
  23. Sun4/330GXP SunOS 4.0.3 with Sun cc
  24. Sun4/110TC  SunOS 4.1   with Sun cc
  25. Sun3/80 TFC SunOS 4.0.3 with gcc1.35, gcc1.37.1
  26.  
  27. It supports CG8 and CG9 (and BW2, of course).  Other colour boards,
  28. such as CG4 and CG6, are NOT supported.  See the file named X.sample
  29. if you want your /usr/bin/X11 directory to be shared by both 8-bit
  30. colour systems and 24-bit colour systems.
  31.  
  32. See README for more information.
  33.  
  34. ntakahas
  35.  
  36. ----------------------------------------------------------------------
  37.  
  38. #! /bin/sh
  39. # This is a shell archive.  Remove anything before this line, then unpack
  40. # it by saving it into a file and typing "sh file".  To overwrite existing
  41. # files, type "sh file -c".  You can also feed this as standard input via
  42. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  43. # will see the following message at the end:
  44. #        "End of shell archive."
  45. # Contents:  README X.sample cg8.diff cg9.diff doit.sh
  46. # Wrapped by ntakahas@langue on Wed Aug 29 14:16:41 1990
  47. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  48. if test -f 'README' -a "${1}" != "-c" ; then
  49.   echo shar: Will not clobber existing file \"'README'\"
  50. else
  51. echo shar: Extracting \"'README'\" \(3110 characters\)
  52. sed "s/^X//" >'README' <<'END_OF_FILE'
  53. XThis is an X server for Sun CG[89] 24-bit colour boards.  The code was
  54. Xtested on the following platforms:
  55. X
  56. XSun4/330GXP SunOS 4.0.3 with Sun cc
  57. XSun4/110TC  SunOS 4.1   with Sun cc
  58. XSun3/80 TFC SunOS 4.0.3 with gcc1.35, gcc1.37.1
  59. X
  60. XIt supports CG8 and CG9 (and BW2, of course).  Other colour boards,
  61. Xsuch as CG4 and CG6, are NOT supported.  See the file named X.sample
  62. Xif you want your /usr/bin/X11 directory to be shared by both 8-bit
  63. Xcolour systems and 24-bit colour systems.
  64. X
  65. XLike a CG4 server, it has two screens: a colour screen (screen 0) and
  66. Xa monochrome screen (screen 1).  The screens toggle when the mouse
  67. Xcursor goes off the side edges.  But this implementation is incomplete
  68. X(See `PROBLEMS' below).
  69. X
  70. XThe GP2 graphic processor is not used.  The code is not tuned for a
  71. X24-bit framebuffer, either.  So it is very slow, but I believe it is
  72. Xeasily ported to other 24-out-of-32-bit framebuffers.
  73. X
  74. X
  75. XHOW TO MAKE
  76. X
  77. X1. Copy `cg8.diff', `cg9.diff',  and `doit.sh' to $(TOP)/mit/server.
  78. X
  79. X2. cd to $(TOP)/mit/server.
  80. X
  81. X3. Run `doit.sh'.  The patches will be applied and the sources will be
  82. Xcompiled automatically.
  83. X
  84. X4. Test the new Xsun by `xinit -- ./Xsun'.
  85. X
  86. X5. If everything seems OK, replace the old Xsun with the new one.
  87. X
  88. X
  89. XABOUT CLIENTS
  90. X
  91. XThis server is a TrueColor server.  So the clients which dynamically
  92. Xchange the colormap do not work.
  93. X
  94. XMost of the MIT clients work fine.  Unfortunately, however, some
  95. Xclients do not run with this server.  Ico does not work when more than
  96. Xone colour is specified for -colors option.  Xfade does not support
  97. Xthe TrueColor visual type.  Xterm, xbiff, xclock, oclock, twm, xmag,
  98. Xetc. work fine.  Xcolors is attractive.
  99. X
  100. XIf you are a twm user, do not forget to set XORvalue to 16777215 (=
  101. X2^24 - 1) in your .twmrc, or the window outlines for moving and
  102. Xresizing are not visible.
  103. X
  104. XUser contributed clients may or may not work.  Xphoon works, but it
  105. Xtakes long time to start up and to redraw the root window.  Xmj
  106. Xappears only in black and white mode and also takes long time to
  107. Xredraw the tiles.  Xothello works fine, except that when you play
  108. Xblack your tile cannot be seen until you put it on the board.  Xtartan
  109. Xlooks good.  Emacs with the X11 functionality works fine.  Olwm works
  110. Xto some extent.
  111. X
  112. XPROBLEMS
  113. X
  114. XIf something is (re)drawn on the monochrome screen when you are on the
  115. Xcolour screen, you will see the `shade' of what is drawn.  So do not
  116. Xput xclock, xload, ico, etc., on the monochrome screen.  You are also
  117. Xadvised to use the side edge of the ROOT window to move from the
  118. Xmonochrome screen to the colour screen.  Otherwise the shade of the
  119. Xlast window you visited on the monochrome screen may be drawn on the
  120. Xcolour screen.  This is because the window manager (or the window
  121. Xitself) tries to redraw the border after the screens are toggled.  As
  122. Xthe monochrome screen is not affected by the colour screen, you can
  123. Xdraw anything on the colour screen whenever you want.
  124. X
  125. XAs mentioned above, no optimization is done.  It is left for you
  126. Xexercise :-)
  127. X
  128. XEnjoy.
  129. X
  130. X- ntakahas
  131. X
  132. XTAKAHASHI Naoto
  133. XDoctoral Program in Engineering, University of Tsukuba
  134. Xntakahas@is.tsukuba.ac.jp
  135. END_OF_FILE
  136. if test 3110 -ne `wc -c <'README'`; then
  137.     echo shar: \"'README'\" unpacked with wrong size!
  138. fi
  139. # end of 'README'
  140. fi
  141. if test -f 'X.sample' -a "${1}" != "-c" ; then
  142.   echo shar: Will not clobber existing file \"'X.sample'\"
  143. else
  144. echo shar: Extracting \"'X.sample'\" \(284 characters\)
  145. sed "s/^X//" >'X.sample' <<'END_OF_FILE'
  146. X#!/bin/sh
  147. X# If your /usr/bin/X11 directory is shared by both 8-bit colour systems
  148. X# and 24-bit colour systems, install the 24-bit server as /usr/bin/X11/Xcg89
  149. X# and use this shell script as /usr/bin/X11/X
  150. Xif [ `constype` = rop -o `constype` = bw4 ]; then
  151. X  Xcg89 $@
  152. Xelse
  153. X  Xsun $@
  154. Xfi
  155. END_OF_FILE
  156. if test 284 -ne `wc -c <'X.sample'`; then
  157.     echo shar: \"'X.sample'\" unpacked with wrong size!
  158. fi
  159. chmod +x 'X.sample'
  160. # end of 'X.sample'
  161. fi
  162. if test -f 'cg8.diff' -a "${1}" != "-c" ; then
  163.   echo shar: Will not clobber existing file \"'cg8.diff'\"
  164. else
  165. echo shar: Extracting \"'cg8.diff'\" \(21036 characters\)
  166. sed "s/^X//" >'cg8.diff' <<'END_OF_FILE'
  167. XCommon subdirectories: ddx/cfb and patched/cfb
  168. XCommon subdirectories: ddx/sun and patched/sun
  169. Xdiff -cr ddx/cfb/Imakefile patched/cfb/Imakefile
  170. X*** ddx/cfb/Imakefile    Fri Aug 24 23:02:30 1990
  171. X--- patched/cfb/Imakefile    Fri Aug 24 22:57:26 1990
  172. X***************
  173. X*** 4,13 ****
  174. X       cfbpntwin.c cfbmskbits.c cfbpixmap.c cfbbitblt.c \
  175. X       cfbfillsp.c cfbsetsp.c cfbscrinit.c \
  176. X       cfbgetsp.c cfbfillrct.c cfbtileodd.c \
  177. X!      cfbcmap.c cfbzerarc.c cfbfillarc.c \
  178. X       cfbtegblt.c cfbbstore.c \
  179. X!      cfb8bit.c cfbteblt8.c cfbglblt8.c \
  180. X!       cfbpush8.c cfbrctstp8.c cfbpolypnt.c \
  181. X       cfbbres.c cfbline.c cfbhrzvert.c cfbbresd.c cfbimage.c
  182. X
  183. X  OBJS =   cfbgc.o cfbwindow.o \
  184. X--- 4,12 ----
  185. X       cfbpntwin.c cfbmskbits.c cfbpixmap.c cfbbitblt.c \
  186. X       cfbfillsp.c cfbsetsp.c cfbscrinit.c \
  187. X       cfbgetsp.c cfbfillrct.c cfbtileodd.c \
  188. X!      cfbcmap.c cfbfillarc.c \
  189. X       cfbtegblt.c cfbbstore.c \
  190. X!       cfbpolypnt.c \
  191. X       cfbbres.c cfbline.c cfbhrzvert.c cfbbresd.c cfbimage.c
  192. X
  193. X  OBJS =   cfbgc.o cfbwindow.o \
  194. X***************
  195. X*** 14,23 ****
  196. X       cfbgetsp.o cfbfillrct.o cfbtileodd.o \
  197. X       cfbfillsp.o cfbsetsp.o cfbscrinit.o \
  198. X       cfbpntwin.o cfbmskbits.o cfbpixmap.o cfbbitblt.o \
  199. X!      cfbcmap.o cfbzerarc.o cfbfillarc.o \
  200. X       cfbtegblt.o cfbbstore.o \
  201. X!      cfb8bit.o cfbteblt8.o cfbglblt8.o \
  202. X!       cfbpush8.o cfbrctstp8.o cfbpolypnt.o \
  203. X       cfbbres.o cfbline.o cfbhrzvert.o cfbbresd.o cfbimage.o cfbseg.o
  204. X
  205. X     INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
  206. X--- 13,21 ----
  207. X       cfbgetsp.o cfbfillrct.o cfbtileodd.o \
  208. X       cfbfillsp.o cfbsetsp.o cfbscrinit.o \
  209. X       cfbpntwin.o cfbmskbits.o cfbpixmap.o cfbbitblt.o \
  210. X!      cfbcmap.o cfbfillarc.o \
  211. X       cfbtegblt.o cfbbstore.o \
  212. X!       cfbpolypnt.o \
  213. X       cfbbres.o cfbline.o cfbhrzvert.o cfbbresd.o cfbimage.o cfbseg.o
  214. X
  215. X     INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
  216. Xdiff -cr ddx/cfb/cfbbitblt.c patched/cfb/cfbbitblt.c
  217. X*** ddx/cfb/cfbbitblt.c    Fri Aug 24 23:02:28 1990
  218. X--- patched/cfb/cfbbitblt.c    Fri Aug 24 22:57:24 1990
  219. X***************
  220. X*** 942,947 ****
  221. X--- 942,949 ----
  222. X      return prgnExposed;
  223. X  }
  224. X
  225. X+ static unsigned long    copyPlaneBitPlane;
  226. X+
  227. X  #if (PPW == 4)
  228. X
  229. X  cfbCopyPlane1to8 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
  230.  planemask)
  231. X***************
  232. X*** 1287,1294 ****
  233. X      }
  234. X  }
  235. X
  236. X- static unsigned long    copyPlaneBitPlane;
  237. X-
  238. X  #define mfbmaskbits(x, w, startmask, endmask, nlw) \
  239. X      startmask = starttab[(x)&0x1f]; \
  240. X      endmask = endtab[((x)+(w)) & 0x1f]; \
  241. X--- 1289,1294 ----
  242. X***************
  243. X*** 1317,1335 ****
  244. X      } \
  245. X  }
  246. X
  247. X- cfbCopyImagePlane (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
  248.  planemask)
  249. X-     DrawablePtr pSrcDrawable;
  250. X-     DrawablePtr pDstDrawable;
  251. X-     int    rop;
  252. X-     unsigned long planemask;
  253. X-     RegionPtr prgnDst;
  254. X-     DDXPointPtr pptSrc;
  255. X- {
  256. X-     copyPlaneBitPlane = planemask;
  257. X-     cfbCopyPlane8to1 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
  258. X-               (unsigned long) ~0L);
  259. X- }
  260. X-
  261. X  cfbCopyPlane8to1 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
  262.  planemask)
  263. X      DrawablePtr pSrcDrawable;
  264. X      DrawablePtr pDstDrawable;
  265. X--- 1317,1322 ----
  266. X***************
  267. X*** 1500,1505 ****
  268. X--- 1487,1505 ----
  269. X  }
  270. X
  271. X  #endif
  272. X+
  273. X+ cfbCopyImagePlane (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
  274.  planemask)
  275. X+     DrawablePtr pSrcDrawable;
  276. X+     DrawablePtr pDstDrawable;
  277. X+     int    rop;
  278. X+     unsigned long planemask;
  279. X+     RegionPtr prgnDst;
  280. X+     DDXPointPtr pptSrc;
  281. X+ {
  282. X+     copyPlaneBitPlane = planemask;
  283. X+     cfbCopyPlane (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc,
  284. X+               (unsigned long) ~0L);
  285. X+ }
  286. X
  287. X  RegionPtr cfbCopyPlane(pSrcDrawable, pDstDrawable,
  288. X          pGC, srcx, srcy, width, height, dstx, dsty, bitPlane)
  289. Xdiff -cr ddx/cfb/cfbbres.c patched/cfb/cfbbres.c
  290. X*** ddx/cfb/cfbbres.c    Fri Aug 24 23:02:31 1990
  291. X--- patched/cfb/cfbbres.c    Fri Aug 24 22:57:27 1990
  292. X***************
  293. X*** 182,188 ****
  294. X              addrl += nlwidth;
  295. X              e += e3;
  296. X          }
  297. X!         if (!bit)
  298. X          {
  299. X              bit = leftbit;
  300. X              addrl++;
  301. X--- 182,188 ----
  302. X              addrl += nlwidth;
  303. X              e += e3;
  304. X          }
  305. X! /*        if (!bit) */
  306. X          {
  307. X              bit = leftbit;
  308. X              addrl++;
  309. X***************
  310. X*** 202,208 ****
  311. X              addrl += nlwidth;
  312. X              e += e3;
  313. X          }
  314. X!         if (!bit)
  315. X          {
  316. X              bit = rightbit;
  317. X              addrl--;
  318. X--- 202,208 ----
  319. X              addrl += nlwidth;
  320. X              e += e3;
  321. X          }
  322. X! /*        if (!bit) */
  323. X          {
  324. X              bit = rightbit;
  325. X              addrl--;
  326. X***************
  327. X*** 222,228 ****
  328. X          if (e >= 0)
  329. X          {
  330. X              bit = SCRRIGHT(bit,1);
  331. X!             if (!bit)
  332. X              {
  333. X              bit = leftbit;
  334. X              addrl++;
  335. X--- 222,228 ----
  336. X          if (e >= 0)
  337. X          {
  338. X              bit = SCRRIGHT(bit,1);
  339. X! /*            if (!bit) */
  340. X              {
  341. X              bit = leftbit;
  342. X              addrl++;
  343. X***************
  344. X*** 242,248 ****
  345. X          if (e >= 0)
  346. X          {
  347. X              bit = SCRLEFT(bit,1);
  348. X!             if (!bit)
  349. X              {
  350. X              bit = rightbit;
  351. X              addrl--;
  352. X--- 242,248 ----
  353. X          if (e >= 0)
  354. X          {
  355. X              bit = SCRLEFT(bit,1);
  356. X! /*            if (!bit) */
  357. X              {
  358. X              bit = rightbit;
  359. X              addrl--;
  360. Xdiff -cr ddx/cfb/cfbbresd.c patched/cfb/cfbbresd.c
  361. X*** ddx/cfb/cfbbresd.c    Fri Aug 24 23:02:30 1990
  362. X--- patched/cfb/cfbbresd.c    Fri Aug 24 22:57:27 1990
  363. X***************
  364. X*** 204,210 ****
  365. X                  addrl += yinc;
  366. X                  e += e3;
  367. X                  }
  368. X!                 if (!bit)
  369. X                  {
  370. X                  bit = leftbit;
  371. X                  addrl++;
  372. X--- 204,210 ----
  373. X                  addrl += yinc;
  374. X                  e += e3;
  375. X                  }
  376. X! /*                if (!bit) */
  377. X                  {
  378. X                  bit = leftbit;
  379. X                  addrl++;
  380. X***************
  381. X*** 228,234 ****
  382. X                  addrl += yinc;
  383. X                  e += e3;
  384. X                  }
  385. X!                 if (!bit)
  386. X                  {
  387. X                  bit = rightbit;
  388. X                  addrl--;
  389. X--- 228,234 ----
  390. X                  addrl += yinc;
  391. X                  e += e3;
  392. X                  }
  393. X! /*                if (!bit) */
  394. X                  {
  395. X                  bit = rightbit;
  396. X                  addrl--;
  397. X***************
  398. X*** 252,258 ****
  399. X                  if (e >= 0)
  400. X                  {
  401. X                  bit = SCRRIGHT(bit,1);
  402. X!                 if (!bit)
  403. X                   {
  404. X                  bit = leftbit;
  405. X                  addrl++;
  406. X--- 252,258 ----
  407. X                  if (e >= 0)
  408. X                  {
  409. X                  bit = SCRRIGHT(bit,1);
  410. X! /*                if (!bit) */
  411. X                   {
  412. X                  bit = leftbit;
  413. X                  addrl++;
  414. X***************
  415. X*** 276,282 ****
  416. X                  if (e >= 0)
  417. X                  {
  418. X                  bit = SCRLEFT(bit,1);
  419. X!                 if (!bit)
  420. X                   {
  421. X                  bit = rightbit;
  422. X                  addrl--;
  423. X--- 276,282 ----
  424. X                  if (e >= 0)
  425. X                  {
  426. X                  bit = SCRLEFT(bit,1);
  427. X! /*                if (!bit) */
  428. X                   {
  429. X                  bit = rightbit;
  430. X                  addrl--;
  431. Xdiff -cr ddx/cfb/cfbgc.c patched/cfb/cfbgc.c
  432. X*** ddx/cfb/cfbgc.c    Fri Aug 24 23:02:29 1990
  433. X--- patched/cfb/cfbgc.c    Fri Aug 24 22:57:25 1990
  434. X***************
  435. X*** 693,699 ****
  436. X          if (pGC->alu == GXcopy &&
  437. X          ((pGC->planemask & PMSK) == PMSK))
  438. X          {
  439. X!         pGC->ops->PushPixels = cfbPushPixels8;
  440. X          pGC->ops->PolyFillArc = cfbPolyFillArcSolidCopy;
  441. X          }
  442. X          break;
  443. X--- 693,699 ----
  444. X          if (pGC->alu == GXcopy &&
  445. X          ((pGC->planemask & PMSK) == PMSK))
  446. X          {
  447. X!         pGC->ops->PushPixels = mfbPushPixels;
  448. X          pGC->ops->PolyFillArc = cfbPolyFillArcSolidCopy;
  449. X          }
  450. X          break;
  451. Xdiff -cr ddx/cfb/cfbgetsp.c patched/cfb/cfbgetsp.c
  452. X*** ddx/cfb/cfbgetsp.c    Fri Aug 24 23:02:30 1990
  453. X--- patched/cfb/cfbgetsp.c    Fri Aug 24 22:57:26 1990
  454. X***************
  455. X*** 68,74 ****
  456. X      case 1:
  457. X          mfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
  458. X          return;
  459. X!     case 8:
  460. X          break;
  461. X      default:
  462. X          FatalError("cfbGetSpans: invalid depth\n");
  463. X--- 68,74 ----
  464. X      case 1:
  465. X          mfbGetSpans(pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
  466. X          return;
  467. X!     case PSZ:
  468. X          break;
  469. X      default:
  470. X          FatalError("cfbGetSpans: invalid depth\n");
  471. Xdiff -cr ddx/cfb/cfbmskbits.c patched/cfb/cfbmskbits.c
  472. X*** ddx/cfb/cfbmskbits.c    Fri Aug 24 23:02:28 1990
  473. X--- patched/cfb/cfbmskbits.c    Fri Aug 24 22:57:24 1990
  474. X***************
  475. X*** 149,159 ****
  476. X  #if    (BITMAP_BIT_ORDER == MSBFirst)
  477. X  int cfbmask[] =
  478. X      {
  479. X!     0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF
  480. X      };
  481. X  int cfbrmask[] =
  482. X      {
  483. X!     0x00FFFFFF, 0xFF00FFFF, 0xFFFF00FF, 0xFFFFFF00
  484. X      };
  485. X  #else    /* (BITMAP_BIT_ORDER == LSBFirst) */
  486. X  int cfbmask[] =
  487. X--- 149,159 ----
  488. X  #if    (BITMAP_BIT_ORDER == MSBFirst)
  489. X  int cfbmask[] =
  490. X      {
  491. X!     0xFFFFFFFF, 0x00FF0000, 0x0000FF00, 0x000000FF
  492. X      };
  493. X  int cfbrmask[] =
  494. X      {
  495. X!     0x00000000, 0xFF00FFFF, 0xFFFF00FF, 0xFFFFFF00
  496. X      };
  497. X  #else    /* (BITMAP_BIT_ORDER == LSBFirst) */
  498. X  int cfbmask[] =
  499. Xdiff -cr ddx/cfb/cfbmskbits.h patched/cfb/cfbmskbits.h
  500. X*** ddx/cfb/cfbmskbits.h    Fri Aug 24 23:02:29 1990
  501. X--- patched/cfb/cfbmskbits.h    Fri Aug 24 22:57:25 1990
  502. X***************
  503. X*** 82,93 ****
  504. X   * ==========================================================================
  505. X   */
  506. X
  507. X! #define PPW    4
  508. X! #define PLST    3
  509. X! #define PIM    0x03
  510. X! #define PWSH    2
  511. X! #define PSZ    8
  512. X! #define PMSK    0xFF
  513. X
  514. X  /* the following notes use the following conventions:
  515. X  SCREEN LEFT                SCREEN RIGHT
  516. X--- 82,93 ----
  517. X   * ==========================================================================
  518. X   */
  519. X
  520. X! #define PPW    1
  521. X! #define PLST    0
  522. X! #define PIM    0x00
  523. X! #define PWSH    0
  524. X! #define PSZ    32
  525. X! #define PMSK    0xFFFFFFFF
  526. X
  527. X  /* the following notes use the following conventions:
  528. X  SCREEN LEFT                SCREEN RIGHT
  529. X***************
  530. X*** 420,426 ****
  531. X      else \
  532. X          q = (*(psrcstip)) >> -m; \
  533. X      q = QuartetBitsTable[(w)] & ((ones) ? q : ~q); \
  534. X!     *(destpix) = (*(psrcpix)) & QuartetPixelMaskTable[q]; \
  535. X  }
  536. X  #else /* BITMAP_BIT_ORDER == LSB */
  537. X  #define getstipplepixels( psrcstip, xt, w, ones, psrcpix, destpix ) \
  538. X--- 420,426 ----
  539. X      else \
  540. X          q = (*(psrcstip)) >> -m; \
  541. X      q = QuartetBitsTable[(w)] & ((ones) ? q : ~q); \
  542. X!     *(destpix) = q ? *(psrcpix) : 0; \
  543. X  }
  544. X  #else /* BITMAP_BIT_ORDER == LSB */
  545. X  #define getstipplepixels( psrcstip, xt, w, ones, psrcpix, destpix ) \
  546. Xdiff -cr ddx/cfb/cfbscrinit.c patched/cfb/cfbscrinit.c
  547. X*** ddx/cfb/cfbscrinit.c    Fri Aug 24 23:02:31 1990
  548. X--- patched/cfb/cfbscrinit.c    Fri Aug 24 22:57:27 1990
  549. X***************
  550. X*** 61,66 ****
  551. X--- 61,67 ----
  552. X
  553. X  static VisualRec visuals[] = {
  554. X  /* vid  class        bpRGB cmpE nplan rMask gMask bMask oRed oGreen oBlue */
  555. X+     0,  TrueColor,     8, 256, 32, 0xff, 0xff00, 0xff0000, 0, 8, 16,
  556. X  #ifndef STATIC_COLOR
  557. X      0,  PseudoColor, _BP,  1<<PSZ,   PSZ,  0,   0,   0,   0,   0,   0,
  558. X      0,  DirectColor, _BP, _CE,       PSZ,  _RM, _GM, _BM, _RS, _GS, _BS,
  559. X***************
  560. X*** 78,84 ****
  561. X  static DepthRec depths[] = {
  562. X  /* depth    numVid        vids */
  563. X      1,        0,        NULL,
  564. X!     8,        NUMVISUALS,    VIDs
  565. X  };
  566. X
  567. X  #define NUMDEPTHS    ((sizeof depths)/(sizeof depths[0]))
  568. X--- 79,85 ----
  569. X  static DepthRec depths[] = {
  570. X  /* depth    numVid        vids */
  571. X      1,        0,        NULL,
  572. X!    32,        NUMVISUALS,    VIDs
  573. X  };
  574. X
  575. X  #define NUMDEPTHS    ((sizeof depths)/(sizeof depths[0]))
  576. X***************
  577. X*** 140,146 ****
  578. X      pScreen->numDepths = NUMDEPTHS;
  579. X      pScreen->allowedDepths = depths;
  580. X
  581. X!     pScreen->rootDepth = 8;
  582. X      pScreen->minInstalledCmaps = 1;
  583. X      pScreen->maxInstalledCmaps = 1;
  584. X      pScreen->backingStoreSupport = Always;
  585. X--- 141,147 ----
  586. X      pScreen->numDepths = NUMDEPTHS;
  587. X      pScreen->allowedDepths = depths;
  588. X
  589. X!     pScreen->rootDepth = 32;
  590. X      pScreen->minInstalledCmaps = 1;
  591. X      pScreen->maxInstalledCmaps = 1;
  592. X      pScreen->backingStoreSupport = Always;
  593. X***************
  594. X*** 157,163 ****
  595. X      if (!pPixmap)
  596. X      return FALSE;
  597. X      pPixmap->drawable.type = DRAWABLE_PIXMAP;
  598. X!     pPixmap->drawable.depth = 8;
  599. X      pPixmap->drawable.pScreen = pScreen;
  600. X      pPixmap->drawable.serialNumber = 0;
  601. X      pPixmap->drawable.x = 0;
  602. X--- 158,164 ----
  603. X      if (!pPixmap)
  604. X      return FALSE;
  605. X      pPixmap->drawable.type = DRAWABLE_PIXMAP;
  606. X!     pPixmap->drawable.depth = 32;
  607. X      pPixmap->drawable.pScreen = pScreen;
  608. X      pPixmap->drawable.serialNumber = 0;
  609. X      pPixmap->drawable.x = 0;
  610. Xdiff -cr ddx/sun/Imakefile patched/sun/Imakefile
  611. X*** ddx/sun/Imakefile    Fri Aug 24 23:02:26 1990
  612. X--- patched/sun/Imakefile    Fri Aug 24 23:00:29 1990
  613. X***************
  614. X*** 8,18 ****
  615. X      sunKbd.c \
  616. X      sunMouse.c \
  617. X      sunUtils.c \
  618. X!     sunCG2C.c \
  619. X!     sunCG2M.c \
  620. X!     sunCG3C.c \
  621. X!     sunCG4C.c \
  622. X!     sunCG6C.c \
  623. X      sunKeyMap.c
  624. X
  625. X  SRCS =    $(SRCS1) kbd_mode.c constype.c
  626. X--- 8,14 ----
  627. X      sunKbd.c \
  628. X      sunMouse.c \
  629. X      sunUtils.c \
  630. X!     sunCG8C.c \
  631. X      sunKeyMap.c
  632. X
  633. X  SRCS =    $(SRCS1) kbd_mode.c constype.c
  634. X***************
  635. X*** 26,36 ****
  636. X      sunKbd.o \
  637. X      sunMouse.o \
  638. X      sunUtils.o \
  639. X!     sunCG2C.o \
  640. X!     sunCG2M.o \
  641. X!     sunCG3C.o \
  642. X!     sunCG4C.o \
  643. X!     sunCG6C.o \
  644. X      sunKeyMap.o
  645. X
  646. X     INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
  647. X--- 22,28 ----
  648. X      sunKbd.o \
  649. X      sunMouse.o \
  650. X      sunUtils.o \
  651. X!     sunCG8C.o \
  652. X      sunKeyMap.o
  653. X
  654. X     INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
  655. Xdiff -cr ddx/sun/sun.h patched/sun/sun.h
  656. X*** ddx/sun/sun.h    Fri Aug 24 23:02:26 1990
  657. X--- patched/sun/sun.h    Fri Aug 24 22:57:22 1990
  658. X***************
  659. X*** 196,202 ****
  660. X      pointer           fbPriv;        /* Frame-buffer-dependent data */
  661. X  } fbFd;
  662. X
  663. X! extern Bool sunSupportsDepth8;
  664. X  extern unsigned long sunGeneration;
  665. X
  666. X  typedef struct _sunFbDataRec {
  667. X--- 196,202 ----
  668. X      pointer           fbPriv;        /* Frame-buffer-dependent data */
  669. X  } fbFd;
  670. X
  671. X! extern Bool sunSupportsDepth32;
  672. X  extern unsigned long sunGeneration;
  673. X
  674. X  typedef struct _sunFbDataRec {
  675. Xdiff -cr ddx/sun/sunCG8C.c patched/sun/sunCG8C.c
  676. X*** ddx/sun/sunCG8C.c    Fri Aug 24 23:05:49 1990
  677. X--- patched/sun/sunCG8C.c    Fri Aug 24 22:57:23 1990
  678. X***************
  679. X*** 3,8 ****
  680. X--- 3,12 ----
  681. X   *    Functions to support the sun CG8 board as a memory frame buffer.
  682. X   */
  683. X
  684. X+ /****************************************************************/
  685. X+ /* Modified from sunCG4C.c for X11R4 by TAKAHASHI Naoto            */
  686. X+ /****************************************************************/
  687. X+
  688. X  /************************************************************
  689. X  Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA.
  690. X
  691. X***************
  692. X*** 47,53 ****
  693. X
  694. X  /*-
  695. X   * The cg8 frame buffer is divided into several pieces.
  696. X!  *    1) an array of 8-bit pixels
  697. X   *    2) a one-bit deep overlay plane
  698. X   *    3) an enable plane
  699. X   *    4) a colormap and status register
  700. X--- 51,57 ----
  701. X
  702. X  /*-
  703. X   * The cg8 frame buffer is divided into several pieces.
  704. X!  *    1) an array of 32-bit pixels
  705. X   *    2) a one-bit deep overlay plane
  706. X   *    3) an enable plane
  707. X   *    4) a colormap and status register
  708. X***************
  709. X*** 60,71 ****
  710. X  typedef struct cg8c {
  711. X      u_char mpixel[128*1024];        /* bit-per-pixel memory */
  712. X      u_char epixel[128*1024];        /* enable plane */
  713. X!     u_char cpixel[CG8_HEIGHT][CG8_WIDTH];    /* byte-per-pixel memory */
  714. X  } CG8C, CG8CRec, *CG8CPtr;
  715. X
  716. X  #define CG8C_IMAGE(fb)        ((caddr_t)(&(fb)->cpixel))
  717. X  #define CG8C_IMAGEOFF        ((off_t)0x0)
  718. X! #define CG8C_IMAGELEN        (((CG8_HEIGHT*CG8_WIDTH + 8191)/8192)*8192)
  719. X  #define    CG8C_MONO(fb)        ((caddr_t)(&(fb)->mpixel))
  720. X  #define    CG8C_MONOLEN        (128*1024)
  721. X  #define    CG8C_ENABLE(fb)        ((caddr_t)(&(fb)->epixel))
  722. X--- 64,75 ----
  723. X  typedef struct cg8c {
  724. X      u_char mpixel[128*1024];        /* bit-per-pixel memory */
  725. X      u_char epixel[128*1024];        /* enable plane */
  726. X!     u_long cpixel[CG8_HEIGHT][CG8_WIDTH];    /* word-per-pixel memory */
  727. X  } CG8C, CG8CRec, *CG8CPtr;
  728. X
  729. X  #define CG8C_IMAGE(fb)        ((caddr_t)(&(fb)->cpixel))
  730. X  #define CG8C_IMAGEOFF        ((off_t)0x0)
  731. X! #define CG8C_IMAGELEN        (((4*CG8_HEIGHT*CG8_WIDTH + 8191)/8192)*8192)
  732. X  #define    CG8C_MONO(fb)        ((caddr_t)(&(fb)->mpixel))
  733. X  #define    CG8C_MONOLEN        (128*1024)
  734. X  #define    CG8C_ENABLE(fb)        ((caddr_t)(&(fb)->epixel))
  735. X***************
  736. X*** 75,80 ****
  737. X--- 79,86 ----
  738. X
  739. X  static int  sunCG8CScreenIndex;
  740. X
  741. X+ static u_char mbak[128*1024];            /* backup for mpixel */
  742. X+
  743. X  /* XXX - next line means only one CG8 - fix this */
  744. X  static ColormapPtr sunCG8CInstalledMap;
  745. X
  746. X***************
  747. X*** 351,357 ****
  748. X              sunFbs[index].info.fb_width,
  749. X              sunFbs[index].info.fb_height,
  750. X              monitorResolution, monitorResolution,
  751. X!             sunFbs[index].info.fb_width))
  752. X          return (FALSE);
  753. X
  754. X      pScreen->SaveScreen = sunCG8CSaveScreen;
  755. X--- 357,363 ----
  756. X              sunFbs[index].info.fb_width,
  757. X              sunFbs[index].info.fb_height,
  758. X              monitorResolution, monitorResolution,
  759. X!             sunFbs[index].info.fb_width * 4))
  760. X          return (FALSE);
  761. X
  762. X      pScreen->SaveScreen = sunCG8CSaveScreen;
  763. X***************
  764. X*** 386,404 ****
  765. X      u_char     select;
  766. X  {
  767. X      int index;
  768. X!     register int    *j, *end;
  769. X
  770. X      index = pScreen->myNum;
  771. X      CG8Cfb = (CG8CPtr) sunFbs[index].fb;
  772. X
  773. X!     j = (int *) CG8Cfb->epixel;
  774. X!     end = j + (128 / sizeof (int)) * 1024;
  775. X!     if (!select)
  776. X!       while (j < end)
  777. X      *j++ = 0;
  778. X      else
  779. X!       while (j < end)
  780. X!     *j++ = ~0;
  781. X  }
  782. X
  783. X  /*-
  784. X--- 392,417 ----
  785. X      u_char     select;
  786. X  {
  787. X      int index;
  788. X!     register int  *i, *j, *k, *end;
  789. X
  790. X      index = pScreen->myNum;
  791. X      CG8Cfb = (CG8CPtr) sunFbs[index].fb;
  792. X
  793. X!     i = (int *) CG8Cfb->epixel;
  794. X!     j = (int *) CG8Cfb->mpixel;
  795. X!     k = (int *) mbak;
  796. X!     end = i + (128 / sizeof (int)) * 1024;
  797. X!     if (!select)
  798. X!       while (i < end) {
  799. X!     *i++ = 0;
  800. X!     *k++ = *j;
  801. X      *j++ = 0;
  802. X+       }
  803. X      else
  804. X!       while (i < end) {
  805. X!     *i++ = ~0;
  806. X!     *j++ = *k++;
  807. X!       }
  808. X  }
  809. X
  810. X  /*-
  811. X***************
  812. X*** 426,432 ****
  813. X      int         fd;
  814. X      struct fbtype fbType;
  815. X
  816. X!     if ((fd = sunOpenFrameBuffer(FBTYPE_SUN4COLOR, &fbType, index, fbNum,
  817. X                   argc, argv)) < 0)
  818. X      return FALSE;
  819. X
  820. X--- 439,445 ----
  821. X      int         fd;
  822. X      struct fbtype fbType;
  823. X
  824. X!     if ((fd = sunOpenFrameBuffer(FBTYPE_MEMCOLOR, &fbType, index, fbNum,
  825. X                   argc, argv)) < 0)
  826. X      return FALSE;
  827. X
  828. X***************
  829. X*** 459,465 ****
  830. X      sunFbs[index].info = fbType;
  831. X      sunFbs[index].fb = (pointer) CG8Cfb;
  832. X      sunFbs[index].EnterLeave = sunCG8CSwitch;
  833. X!     sunSupportsDepth8 = TRUE;
  834. X      return TRUE;
  835. X  }
  836. X
  837. X--- 472,478 ----
  838. X      sunFbs[index].info = fbType;
  839. X      sunFbs[index].fb = (pointer) CG8Cfb;
  840. X      sunFbs[index].EnterLeave = sunCG8CSwitch;
  841. X!     sunSupportsDepth32 = TRUE;
  842. X      return TRUE;
  843. X  }
  844. X
  845. X***************
  846. X*** 480,486 ****
  847. X      i = AddScreen(sunCG8CInit, argc, argv);
  848. X      if (i >= 0)
  849. X      {
  850. X-     /* Now set the enable plane for screen 0 */
  851. X      sunCG8CSwitch(pScreenInfo->screens[i], i != 0);
  852. X      return TRUE;
  853. X      }
  854. X--- 493,498 ----
  855. Xdiff -cr ddx/sun/sunInit.c patched/sun/sunInit.c
  856. X*** ddx/sun/sunInit.c    Fri Aug 24 23:02:27 1990
  857. X--- patched/sun/sunInit.c    Fri Aug 24 23:00:30 1990
  858. X***************
  859. X*** 57,68 ****
  860. X  extern int sunMouseProc();
  861. X  extern int sunKbdProc();
  862. X  extern Bool sunBW2Probe(), sunBW2Create();
  863. X! extern Bool sunCG2CProbe(), sunCG2CCreate();
  864. X! extern Bool sunCG3CProbe(), sunCG3CCreate();
  865. X! extern Bool sunCG4CProbe(), sunCG4CCreate();
  866. X! #ifdef FBTYPE_SUNFAST_COLOR /* doesn't exist in sunos3.x */
  867. X! extern Bool sunCG6CProbe(), sunCG6CCreate();
  868. X! #endif
  869. X  extern void ProcessInputEvents();
  870. X
  871. X  extern void SetInputCheck();
  872. X--- 57,63 ----
  873. X  extern int sunMouseProc();
  874. X  extern int sunKbdProc();
  875. X  extern Bool sunBW2Probe(), sunBW2Create();
  876. X! extern Bool sunCG8CProbe(), sunCG8CCreate();
  877. X  extern void ProcessInputEvents();
  878. X
  879. X  extern void SetInputCheck();
  880. X***************
  881. X*** 76,82 ****
  882. X  static int autoRepeatHandlersInstalled;    /* FALSE each time InitOutput called
  883.  */
  884. X
  885. X  static Bool sunDevsProbed = FALSE;
  886. X! Bool sunSupportsDepth8 = FALSE;
  887. X  unsigned long sunGeneration = 0;
  888. X
  889. X
  890. X--- 71,77 ----
  891. X  static int autoRepeatHandlersInstalled;    /* FALSE each time InitOutput called
  892.  */
  893. X
  894. X  static Bool sunDevsProbed = FALSE;
  895. X! Bool sunSupportsDepth32 = FALSE;
  896. X  unsigned long sunGeneration = 0;
  897. X
  898. X
  899. X***************
  900. X*** 105,116 ****
  901. X
  902. X  sunFbDataRec sunFbData[] = {
  903. X      sunBW2Probe,      "/dev/bwtwo0",        sunBW2Create,
  904. X!     sunCG2CProbe,      "/dev/cgtwo0",        sunCG2CCreate,
  905. X!     sunCG3CProbe,      "/dev/cgthree0",    sunCG3CCreate,
  906. X! #ifdef FBTYPE_SUNFAST_COLOR
  907. X!     sunCG6CProbe,    "/dev/cgsix0",        sunCG6CCreate,
  908. X! #endif
  909. X!     sunCG4CProbe,      "/dev/cgfour0",        sunCG4CCreate,
  910. X      sunBW2Probe,      "/dev/bwtwo0",        sunBW2Create,
  911. X  };
  912. X
  913. X--- 100,106 ----
  914. X
  915. X  sunFbDataRec sunFbData[] = {
  916. X      sunBW2Probe,      "/dev/bwtwo0",        sunBW2Create,
  917. X!     sunCG8CProbe,      "/dev/cgeight0",    sunCG8CCreate,
  918. X      sunBW2Probe,      "/dev/bwtwo0",        sunBW2Create,
  919. X  };
  920. X
  921. X***************
  922. X*** 125,131 ****
  923. X
  924. X  static PixmapFormatRec    formats[] = {
  925. X      1, 1, BITMAP_SCANLINE_PAD,    /* 1-bit deep */
  926. X!     8, 8, BITMAP_SCANLINE_PAD,    /* 8-bit deep */
  927. X  };
  928. X  #define NUMFORMATS    (sizeof formats)/(sizeof formats[0])
  929. X
  930. X--- 115,121 ----
  931. X
  932. X  static PixmapFormatRec    formats[] = {
  933. X      1, 1, BITMAP_SCANLINE_PAD,    /* 1-bit deep */
  934. X!    32,32, BITMAP_SCANLINE_PAD,    /*32-bit deep */
  935. X  };
  936. X  #define NUMFORMATS    (sizeof formats)/(sizeof formats[0])
  937. X
  938. X***************
  939. X*** 227,236 ****
  940. X          sunFbData[dev].createProc = NULL;
  941. X      }
  942. X      sunDevsProbed = TRUE;
  943. X      if (n == 0)
  944. X          return;
  945. X      }
  946. X!     if (!sunSupportsDepth8)
  947. X      pScreenInfo->numPixmapFormats--;
  948. X      for (i = NUMSCREENS, dev = devStart; --i > 0; dev++) {
  949. X      if (sunFbData[dev].createProc)
  950. X--- 217,227 ----
  951. X          sunFbData[dev].createProc = NULL;
  952. X      }
  953. X      sunDevsProbed = TRUE;
  954. X+
  955. X      if (n == 0)
  956. X          return;
  957. X      }
  958. X!     if (!sunSupportsDepth32)
  959. X      pScreenInfo->numPixmapFormats--;
  960. X      for (i = NUMSCREENS, dev = devStart; --i > 0; dev++) {
  961. X      if (sunFbData[dev].createProc)
  962. END_OF_FILE
  963. if test 21036 -ne `wc -c <'cg8.diff'`; then
  964.     echo shar: \"'cg8.diff'\" unpacked with wrong size!
  965. fi
  966. # end of 'cg8.diff'
  967. fi
  968. if test -f 'cg9.diff' -a "${1}" != "-c" ; then
  969.   echo shar: Will not clobber existing file \"'cg9.diff'\"
  970. else
  971. echo shar: Extracting \"'cg9.diff'\" \(1888 characters\)
  972. sed "s/^X//" >'cg9.diff' <<'END_OF_FILE'
  973. XCommon subdirectories: ddx/cfb and patched/cfb
  974. XCommon subdirectories: ddx/sun and patched/sun
  975. Xdiff -cr ddx/sun/Imakefile patched/sun/Imakefile
  976. X*** ddx/sun/Imakefile    Fri Aug 24 23:26:56 1990
  977. X--- patched/sun/Imakefile    Fri Aug 24 23:27:12 1990
  978. X***************
  979. X*** 9,14 ****
  980. X--- 9,15 ----
  981. X      sunMouse.c \
  982. X      sunUtils.c \
  983. X      sunCG8C.c \
  984. X+     sunCG9C.c \
  985. X      sunKeyMap.c
  986. X
  987. X  SRCS =    $(SRCS1) kbd_mode.c constype.c
  988. X***************
  989. X*** 23,28 ****
  990. X--- 24,30 ----
  991. X      sunMouse.o \
  992. X      sunUtils.o \
  993. X      sunCG8C.o \
  994. X+     sunCG9C.o \
  995. X      sunKeyMap.o
  996. X
  997. X     INCLUDES = -I. -I../mfb -I../mi -I../../include -I$(INCLUDESRC)
  998. Xdiff -cr ddx/sun/sunCG9C.c patched/sun/sunCG9C.c
  999. X*** ddx/sun/sunCG9C.c    Fri Aug 24 23:30:27 1990
  1000. X--- patched/sun/sunCG9C.c    Fri Aug 24 23:27:14 1990
  1001. X***************
  1002. X*** 439,445 ****
  1003. X      int         fd;
  1004. X      struct fbtype fbType;
  1005. X
  1006. X!     if ((fd = sunOpenFrameBuffer(FBTYPE_MEMCOLOR, &fbType, index, fbNum,
  1007. X                   argc, argv)) < 0)
  1008. X      return FALSE;
  1009. X
  1010. X--- 439,445 ----
  1011. X      int         fd;
  1012. X      struct fbtype fbType;
  1013. X
  1014. X!     if ((fd = sunOpenFrameBuffer(FBTYPE_SUNROP_COLOR, &fbType, index, fbNum,
  1015. X                   argc, argv)) < 0)
  1016. X      return FALSE;
  1017. X
  1018. Xdiff -cr ddx/sun/sunInit.c patched/sun/sunInit.c
  1019. X*** ddx/sun/sunInit.c    Fri Aug 24 23:26:57 1990
  1020. X--- patched/sun/sunInit.c    Fri Aug 24 23:27:14 1990
  1021. X***************
  1022. X*** 58,63 ****
  1023. X--- 58,64 ----
  1024. X  extern int sunKbdProc();
  1025. X  extern Bool sunBW2Probe(), sunBW2Create();
  1026. X  extern Bool sunCG8CProbe(), sunCG8CCreate();
  1027. X+ extern Bool sunCG9CProbe(), sunCG9CCreate();
  1028. X  extern void ProcessInputEvents();
  1029. X
  1030. X  extern void SetInputCheck();
  1031. X***************
  1032. X*** 101,106 ****
  1033. X--- 102,108 ----
  1034. X  sunFbDataRec sunFbData[] = {
  1035. X      sunBW2Probe,      "/dev/bwtwo0",        sunBW2Create,
  1036. X      sunCG8CProbe,      "/dev/cgeight0",    sunCG8CCreate,
  1037. X+     sunCG9CProbe,      "/dev/cgnine0",        sunCG9CCreate,
  1038. X      sunBW2Probe,      "/dev/bwtwo0",        sunBW2Create,
  1039. X  };
  1040. X
  1041. END_OF_FILE
  1042. if test 1888 -ne `wc -c <'cg9.diff'`; then
  1043.     echo shar: \"'cg9.diff'\" unpacked with wrong size!
  1044. fi
  1045. # end of 'cg9.diff'
  1046. fi
  1047. if test -f 'doit.sh' -a "${1}" != "-c" ; then
  1048.   echo shar: Will not clobber existing file \"'doit.sh'\"
  1049. else
  1050. echo shar: Extracting \"'doit.sh'\" \(293 characters\)
  1051. sed "s/^X//" >'doit.sh' <<'END_OF_FILE'
  1052. X#!/bin/sh
  1053. Xsed -e 's/CG4/CG8/g' -e 's/cg4/cg8/g' ddx/sun/sunCG4C.c > ddx/sun/sunCG8C.c
  1054. Xpatch -p0 < cg8.diff
  1055. Xif [ -f /usr/include/sundev/cg9reg.h ]; then
  1056. X  sed -e 's/CG8/CG9/g' -e 's/cg8/cg9/g' ddx/sun/sunCG8C.c > ddx/sun/sunCG9C.c
  1057. X  patch -p0 < cg9.diff
  1058. Xfi
  1059. Xmake Makefiles
  1060. Xmake depend
  1061. Xmake Xsun
  1062. END_OF_FILE
  1063. if test 293 -ne `wc -c <'doit.sh'`; then
  1064.     echo shar: \"'doit.sh'\" unpacked with wrong size!
  1065. fi
  1066. chmod +x 'doit.sh'
  1067. # end of 'doit.sh'
  1068. fi
  1069. echo shar: End of shell archive.
  1070. exit 0
  1071.  
  1072. dan
  1073. ----------------------------------------------------
  1074. O'Reilly && Associates   argv@sun.com / argv@ora.com
  1075. Opinions expressed reflect those of the author only.
  1076.