home *** CD-ROM | disk | FTP | other *** search
- /* Copyright (c) 1987 Bellcore
- * All Rights Reserved
- * Permission is granted to copy or use this program, EXCEPT that it
- * may not be sold for profit, the copyright notice must be reproduced
- * on copies, and credit should be given to Bellcore where it is due.
- * BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
- */
- /* $Header: dump.h,v 4.2 88/07/20 15:16:24 sau Exp $
- $Source: /tmp/mgrsrc/lib/RCS/dump.h,v $
- */
- static char h_dump_[] = "$Source: /tmp/mgrsrc/lib/RCS/dump.h,v $$Revision: 4.2 $";
- /* format for saved bitmaps */
-
- #define B_HSIZE (sizeof(struct b_header))
- #define B_OHSIZE (sizeof(struct old_b_header))
-
- #define NEW_BHDR 1 /* flag for bitmapwrite */
- #define OLD_BHDR 0 /* " */
-
- /* given bitmap header, get w[idth] and h[eight] */
-
- #define B_GETOLDHDR(hdr,W,H) ( \
- W = ((int)((hdr)->h_wide - ' ') << 6) + (hdr)->l_wide - ' ', \
- H = ((int)((hdr)->h_high - ' ') << 6) + (hdr)->l_high - ' ')
-
- #define B_GETHDR8(hdr,W,H,D) ( \
- W = ((int)((hdr)->h_wide - ' ') << 6) + (hdr)->l_wide - ' ', \
- H = ((int)((hdr)->h_high - ' ') << 6) + (hdr)->l_high - ' ', \
- D = ((int)((hdr)->depth - ' ')))
-
- /* given w[idth] and h[eight], produce header */
-
- #define B_PUTOLDHDR(hdr,w,h) \
- (hdr)->magic[0]='z', (hdr)->magic[1]='z', \
- (hdr)->h_wide = (((w)>>6)&0x3f) + ' ', \
- (hdr)->l_wide = ((w)&0x3f) + ' ', \
- (hdr)->h_high = (((h)>>6)&0x3f) + ' ', \
- (hdr)->l_high = ((h)&0x3f) + ' '
- #define B8_PUTOLDHDR(hdr,w,h) \
- (hdr)->magic[0]='z', (hdr)->magic[1]='y', \
- (hdr)->h_wide = (((w)>>6)&0x3f) + ' ', \
- (hdr)->l_wide = ((w)&0x3f) + ' ', \
- (hdr)->h_high = (((h)>>6)&0x3f) + ' ', \
- (hdr)->l_high = ((h)&0x3f) + ' '
-
- #define B_PUTHDR8(hdr,w,h,d) ( \
- (hdr)->magic[0]='y', (hdr)->magic[1]='z', \
- (hdr)->h_wide = (((w)>>6)&0x3f) + ' ', \
- (hdr)->l_wide = ((w)&0x3f) + ' ', \
- (hdr)->h_high = (((h)>>6)&0x3f) + ' ', \
- (hdr)->l_high = ((h)&0x3f) + ' ', \
- (hdr)->depth = ((d)&0x3f) + ' ', \
- (hdr)->_reserved = ' ' )
-
-
- /* Bitmap header magic numbers for 1-bit-deep bitmaps with
- 8, 16, and 32 bit padding.
- 16 and 32 bit padding are ancient history, but still acknowledged.
- */
- #define B_ISHDR8(hdr) ((hdr)->magic[0]=='y' && (hdr)->magic[1]=='z')
-
- #define B_ISHDR16(hdr) \
- ((hdr)->magic[0]=='z' && (hdr)->magic[1]=='z')
- #define B_ISHDR32(hdr) \
- ((hdr)->magic[0]=='x' && (hdr)->magic[1]=='z')
-
- #ifdef ALIGN32
- #define B_ISHDR(hdr) B_ISHDR32(hdr)
- #define B8_ISHDR(hdr) \
- ((hdr)->magic[0]=='x' && (hdr)->magic[1]=='y')
- #else
- #define B_ISHDR(hdr) B_ISHDR16(hdr)
- #define B8_ISHDR(hdr) \
- ((hdr)->magic[0]=='z' && (hdr)->magic[1]=='y')
- #endif
-
- /*
- #ifdef COLOR
- #define B_ISANY(hdr) \
- (B_ISHDR(hdr) || B8_ISHDR(hdr))
- #else
- #define B_ISANY(hdr) B_ISHDR(hdr)
- #endif
- */
-
- /* number of bytes of data for bitmap */
-
- #define B_SIZE8(w,h,d) ((h)*((((w*d)+7L)&~7L)>>3))
- #define B_SIZE16(w,h,d) ((h)*((((w*d)+15L)&~15L)>>3))
- #define B_SIZE32(w,h,d) ((h)*((((w*d)+31L)&~31L)>>3))
- #define B_SIZE(w,h) ((h)*((((w)+BITS)&~BITS)>>3))
- #define B8_SIZE(w,h) ((h)*(w))
-
- struct old_b_header {
- char magic[2];
- char h_wide;
- char l_wide;
- char h_high;
- char l_high;
- };
-
- struct b_header {
- char magic[2];
- char h_wide;
- char l_wide;
- char h_high;
- char l_high;
- char depth;
- char _reserved; /* to pad b_header out to 8 bytes, which should be an
- exact alignment on any machine we are likely to
- encounter */
- };
-