home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
QBasic & Borland Pascal & C
/
Delphi5.iso
/
C
/
Samples
/
CSAPE32.ARJ
/
INCLUDE
/
PCDECL.H
< prev
next >
Wrap
Text File
|
1990-10-11
|
21KB
|
509 lines
/*
pcdecl.h
% declarations for PC display stuff
5/16/88 by Ted.
OWL-PC 1.2
Copyright (c) 1986, 1987, 1988 by Oakland Group, Inc.
ALL RIGHTS RESERVED.
Revision History:
-----------------
8/30/88 Ted Changed Order of args to ram_memtoseg to extract ram_CopyBox.
10/07/88 Ted Obsoleted ram_CopyBox.
12/05/88 Ted added mousehides
12/12/88 ted Merged CheckKey and CheckMouse into CheckEvent.
12/13/88 jmd Messed with dos.h include
1/12/89 ted Separated the pchdata from the pcdata for better sharing.
2/04/89 ted moved ilmasktab into pcdata structure from static data.
2/07/89 Ted added timeout wait arg to hCheckEvent function.
2/28/89 ted extracted pc event related stuff to pchard.h
3/19/89 ted made pcdata static.
4/09/89 ted pulled static pchdata struct out of pcdata struct.
4/26/89 ted Moved attrmap out of info struct into pcdata.
5/09/89 ted Renamed from pcdisp.h
6/17/89 Ted split pc_bgPlotText into evga_Plot-, mcga_Plot-, pc_bgPlot-.
7/05/89 ted Added fontseg, fontoffs, dispseg for font plotters.
7/07/89 ted Added new font plotting stuff: attrcols, plotchar, etc.
7/12/89 ted Added OSTATIC's and '_func' macros.
7/14/89 ted Removed ilmasktab.
11/05/89 ted Added pc_roundbyte macros for scrbox x byte alignment.
11/05/89 ted Added DOS_ZEROSEG macro.
11/08/89 ted Added hdatasize pcdata element for use by dispcurr.
11/08/89 ted Added pcdata->brmask & macro to fix pc_roundbyte macros.
2/15/90 jmd added header for Watcom
2/15/90 ted Moved pc_squeezecmap out to dig dir, added hist & cswap funcs.
2/22/90 ted Moved DOS_ZEROSEG macro to pchdecl.h.
2/28/90 ted Made pcdata->h into (VOID *).
2/28/90 ted Added desqview #define's.
2/29/90 ted Added OCDECL's for assembly functions.
3/28/90 jmd ansi-fied
6/06/90 ted Added planemask arg to ram_copy stuff for EVGA plane drawing.
10/10/90 ted Replaced OCDECL with oasm_func for assembly funcs for TC++.
*/
#ifdef LATTICE
# undef LATTICE /* Lattice re-defines byte in dos.h, this tells it not to */
# include <dos.h> /* has outp for Lattice compiler */
# define LATTICE
#else
# ifdef TC
# include <dos.h> /* has outp for Turbo compiler */
# endif
# ifdef TCP
# include <dos.h> /* has outp for Turbo compiler */
# endif
# ifdef __WATCOMC__
# include <conio.h> /* has outp for Watcom compiler */
# endif
# ifdef MW
# define inp(port) oinp(port)
# define outp(port,word) ooutp(port,word)
/* plinout.asm */
extern byte oinp(short int port);
extern void ooutp(short int port, byte value);
# endif
#endif
/* -------------------------------------------------------------------------- */
#define attrcols_func(fname) unsigned DIGPRIV fname(byte rattr)
typedef unsigned (DIGPRIV *attrcols_fptr)(byte rattr);
#define plotchar_func(fname) oasm_func(void, fname, (void))
typedef oasm_fptr(void, plotchar_fptr, (void));
typedef struct _pcdata {
/* Note: the assembly coded font plotter expects these variables here. */
unsigned long fontoffs; /* offset of current char in font table */
unsigned short fontseg; /* segment of font table for current font */
unsigned short vidaddr;
unsigned short nsame; /* the length in chars of the line to plot */
unsigned short starty; /* the length in chars of the line to plot */
unsigned short splitcol; /* the fg/bg color word */
unsigned short dispseg; /* segment at which display memory lies */
unsigned short ilmask;
unsigned short ilsize;
unsigned short vbincr;
unsigned short fontlines; /* number of lines in current font */
byte nplanes; /* number of bitplanes on display */
attrcols_fptr attrcols; /* swappable attribute tranlation function */
plotchar_fptr plotchar; /* swappable font plotter kernel */
dispinfo_struct info;
struct pmap_struct dmspace; /* pointed to by info->dispmap */
byte attrmap[256]; /* attribute map table */
byte *xattrmap; /* ptr to attribute map extension for mcga */
byte attrsize; /* size of attrmap element in bits (there are always 256 of them) */
int oldmode; /* pre-init video mode to restore from */
int oldcursx; /* pre-init cursor position */
int oldcursy;
cursortype curctype; /* current hardware cursor type */
boolean retracewait; /* flag to wait for retrace or not */
unsigned long fontoffs0; /* offset of font table for current font */
unsigned short fontseg0; /* segment of font table for current font */
unsigned long fontoffs1; /* offset of font table for current font */
unsigned short fontseg1; /* segment of font table for current font */
opcoord brmask; /* byte rounding mask */
ocolmap_type colmap; /* Shadow copy of device color map */
VOID *h; /* non-display hardware dig data */
SIZE_T hdatasize; /* size of hardware data block */
} pcdata_struct;
OEXTERN pcdata_struct pcdatastruc;
#define pcdata (&pcdatastruc)
/* -------------------------------------------------------------------------- */
#define ramcopy_func(fname) oasm_func(void, fname, (unsigned segm, unsigned segoffs, byte *memaddr, unsigned bwidth))
typedef oasm_fptr(void, ramcopy_fptr, (unsigned segm, unsigned segoffs, byte *memaddr, unsigned bwidth));
#define ramclear_func(fname) oasm_func(void, fname, (unsigned segm, unsigned segoffs, unsigned bwidth, unsigned short color))
typedef oasm_fptr(void, ramclear_fptr, (unsigned segm, unsigned segoffs, unsigned bwidth, unsigned short color));
#define rammove_func(fname) oasm_func(void, fname, (unsigned segm, unsigned soffs, unsigned doffs, unsigned bwidth))
typedef oasm_fptr(void, rammove_fptr, (unsigned segm, unsigned soffs, unsigned doffs, unsigned bwidth));
#define ramplanecopy_func(fname) void DIGPRIV fname(unsigned segm, unsigned segoffs, byte *membuf, unsigned bwidth, unsigned memoffs, unsigned planemask)
typedef void (DIGPRIV *ramplanecopy_fptr)(unsigned segm, unsigned segoffs, byte *membuf, unsigned bwidth, unsigned memoffs, unsigned planemask);
#define pc_setinfo_func(fname) boolean DIGPRIV fname(int)
typedef boolean (DIGPRIV *pc_setinfo_fptr)(int);
/* -------------------------------------------------------------------------- */
/* PCMCURR.C */
extern dmode_func (pc_ModeCurrent);
extern boolean DIGPRIV pc_OpenMode(dig_struct *digp, int mode);
/* PCMCURRT.C */
extern dmode_func (pc_ModeCurrText);
extern boolean DIGPRIV pc_OpenModeText(dig_struct *digp, int mode);
/* PCMGRAPH.C */
extern dmode_func (pc_ModeGraphics);
/* PCBIOS.C */
extern dmode_func (pc_ModeBIOS);
extern dmode_func (pc_ModeBIOS0);
extern dmode_func (pc_ModeBIOS1);
extern dmode_func (pc_ModeBIOS2);
extern dmode_func (pc_ModeBIOS3);
extern dmode_func (pc_ModeBIOSEGA43);
extern dmode_func (pc_ModeBIOSVGA50);
extern dmode_func (pc_ModeBIOS7);
/* PCTEXT.C */
extern dmode_func (pc_ModeText);
extern dmode_func (pc_Mode0);
extern dmode_func (pc_Mode1);
extern dmode_func (pc_Mode2);
extern dmode_func (pc_Mode3);
extern dmode_func (pc_ModeEGA43);
extern dmode_func (pc_ModeVGA50);
extern dmode_func (pc_Mode7);
extern boolean DIGPRIV pc_OpenText(dig_struct *digp, int mode);
/* PCCGA.C */
extern dmode_func (pc_Mode4);
extern dmode_func (pc_Mode5);
extern dmode_func (pc_Mode6);
extern dmode_func (pc_ModeCpq40);
extern boolean DIGPRIV pc_OpenCGA(dig_struct *digp, int mode);
/* PCEVGA.C */
extern dmode_func (pc_ModeD);
extern dmode_func (pc_ModeE);
extern dmode_func (pc_ModeF);
extern dmode_func (pc_Mode10);
extern dmode_func (pc_Mode11);
extern dmode_func (pc_Mode12);
extern boolean DIGPRIV pc_OpenEVGA(dig_struct *digp, int mode);
/* PCMCGA.C */
extern dmode_func (pc_Mode13);
extern boolean DIGPRIV pc_OpenMCGA(dig_struct *digp, int mode);
/* PCHERC.C */
extern dmode_func (pc_ModeHerc);
extern boolean DIGPRIV pc_OpenHerc(dig_struct *digp, int mode);
/* PCTEXTIN.C */
extern boolean DIGPRIV text_setinfo(int mode);
/* PCBSCROL.C */
extern void text_bScrollBoxVt(ptd_struct *ptd, opcoord nrows);
/* PCOPEN.C */
extern boolean DIGPRIV pc_OpenDIG(dig_struct *digp, int mode, pc_setinfo_fptr setinfo);
extern dig_CloseDIG_func (pc_CloseDIG);
/* PCDISP.C */
extern dig_dControl_func (pc_dControl);
extern unsigned short DIGPRIV pc_wordcolor(opixval color);
extern void DIGPRIV pc_bgetcursorpos(int *rowp, int *colp);
extern void DIGPRIV pc_initmode(void);
extern unsigned pc_dDummy(void);
/* PCPMAP.C */
extern dig_pControl_func (pc_pControl);
/* PCPMAPIO.C */
extern dig_pControl_func (pc_PmapIoReq);
/* PCGFUNCS.C */
extern void DIGPRIV pc_setgfuncs(dig_struct *digp);
extern attrcols_func (pc_attrcols);
/* PCBDRAWC.C */
extern dig_pDrawCursor_func (pc_bDrawCursor);
/* PCBSETCU.C */
extern void DIGPRIV pc_bsetcursortype(cursortype ctype, unsigned short nlines);
extern void DIGPRIV pc_bsetcursorpos(int row, int col);
/* PCRAMCLE.C */
extern dig_pClear_func (ram_Clear);
extern dig_pScrollBoxVt_func (ram_ScrollBoxVt);
extern dig_pScrollBoxHz_func (ram_ScrollBoxHz);
/* PCRAMDRA.C */
extern dig_pDrawPixmap_func (ram_DrawPixmap);
extern dig_pReadPixmap_func (ram_ReadPixmap);
/* PCRAMCPP.C */
extern void DIGPRIV ram_copypm(opbox *scrboxp, pmap_type pmap, opcoord pmx, opcoord pmy, ramcopy_fptr copy, unsigned planemask);
/* PCPMAPIO.C - used by pmap_LoadSplash */
extern void pc_pmhist(pmap_type pmap, unsigned short *histtab);
extern void pc_pmcswap(pmap_type pmap, byte *swaptab);
extern opixval pc_pmnearcol(orgb_struct *rgb, ocolmap_type cmap);
/* pchcfunc.asm */
extern oasm_func(boolean,herc_present, (void));
extern oasm_func(int, herc_getlines, (void));
extern oasm_func(void, herc_setgmode, (int hpage));
extern oasm_func(void, herc_settmode, (void));
/* pc1bitpl.asm */
extern plotchar_func (pc_1bitplotchar);
/* pc2bitpl.asm */
extern plotchar_func (pc_2bitplotchar);
/* pc8bitpl.asm */
extern plotchar_func (pc_8bitplotchar);
/* pcevgapl.asm */
extern plotchar_func (pc_evgaplotchar);
/* pchcfont.asm */
OEXTERN unsigned short hercfont_seg;
OEXTERN unsigned long hercfont_offs; /* Long in case of dos-extender */
/* pcrammov.asm */
extern ramcopy_func (ram_segtomem);
extern ramcopy_func (ram_memtoseg);
extern ramclear_func (ram_segwordset);
extern rammove_func (ram_segtoseg);
extern oasm_func(void, ram_mem1toseg, (unsigned segm, unsigned segoffs, byte *memaddr, unsigned byte1, unsigned blen));
/* pcramwmo.asm */
extern ramclear_func (ram_wsegwordset);
extern rammove_func (ram_wsegtoseg);
extern oasm_func(void, ram_wmem1toseg, (unsigned segm, unsigned segoffs, byte *memaddr, unsigned byte1, unsigned blen));
/* -------------------------------------------------------------------------- */
#define pc_inuse() (pcdata->info.devname[0] != '\0')
#define pc_attrsize() (pcdata->attrsize)
#define pc_attrfg4bit(attr) (pcdata->attrmap[attr] & 0x0F)
#define pc_attrbg4bit(attr) (pcdata->attrmap[attr] >> 4)
#define pc_attrfgbyte(attr) pcdata->attrmap[attr]
#define pc_attrbgbyte(attr) pcdata->xattrmap[attr]
#define pc_initdispmap(wid, hgt) \
(pcdata->dmspace.width = (wid), pcdata->dmspace.height = (hgt))
#define pc_roundbyte(boxp) \
((boxp)->xmin = ((boxp)->xmin + pc_brmask()) & ~pc_brmask(), \
(boxp)->xmax &= ~pc_brmask(), \
((boxp)->xmin < (boxp)->xmax))
#define pc_roundbytex(boxp, xp) \
(*(xp) -= (boxp)->xmin, \
pc_roundbyte(boxp) ? \
(*(xp) += (boxp)->xmin, TRUE) : FALSE)
/* -------------------------------------------------------------------------- */
/* DIG - specific pixmap stuff */
typedef struct _pcpmapx {
dispinfo_struct *dispinfo; /* pointer to dispinfo struct describing */
/* layout of planes, pixbits, etc. */
odim bytewidth; /* number of bytes in a line of pixel map. */
byte nshift; /* number of unused pixels at left of each line */
byte comptype; /* type of compression applied to pixbuf */
/* to accommodate 3rd party image headers */
byte *pixbuf; /* pointer to pixel map memory buffer. */
} pcpmapx_struct;
#define pc_vidseg() (pcdata->info.dispaddr)
#define pc_bwidth() (pcdata->info.bytewidth)
#define pc_pixbits() (pcdata->info.pixbits)
#define pc_nplanes() (pcdata->info.nplanes)
#define pc_ileave() (pcdata->info.ileave)
#define pc_ilsize() (pcdata->info.ilsize)
#define pc_brmask() (pcdata->brmask)
#define pcpmap_pmapx(pm) ((pcpmapx_struct *) &(pm)[1])
#define pcpmap_planes(pm) ((byte **) &pcpmap_pmapx(pm)[1])
#define pcpmap_dispinfo(pm) (pcpmap_pmapx(pm)->dispinfo)
#define pcpmap_nplanes(pm) (pcpmap_pmapx(pm)->dispinfo->nplanes)
#define pcpmap_pixbits(pm) (pcpmap_pmapx(pm)->dispinfo->pixbits)
#define pcpmap_bytewidth(pm) (pcpmap_pmapx(pm)->bytewidth)
#define pcpmap_nshift(pm) (pcpmap_pmapx(pm)->nshift)
#define pcpmap_comptype(pm) (pcpmap_pmapx(pm)->comptype)
#define pcpmap_pixbuf(pm) (pcpmap_pmapx(pm)->pixbuf)
#define pcpmap_GetPlaneSize(pmap) \
((unsigned long)pcpmap_bytewidth(pmap) * (unsigned long)pmap_GetHeight(pmap))
#define pcpmap_SetDispinfo(pm, di) (pcpmap_pmapx(pm)->dispinfo = (di))
#define pcpmap_SetBytewidth(pm, bw) (pcpmap_pmapx(pm)->bytewidth = (bw))
#define pcpmap_SetNshift(pm, ns) (pcpmap_pmapx(pm)->nshift = (ns))
#define pcpmap_SetComptype(pm, ct) (pcpmap_pmapx(pm)->comptype = (ct))
#define pcpmap_SetPixbuf(pm, buf) (pcpmap_pmapx(pm)->pixbuf = (buf))
#define pc_pmheadersize(nplanes) \
(sizeof(struct pmap_struct) + sizeof(pcpmapx_struct) + \
((((nplanes) <= 1) ? 0 : (nplanes)) * sizeof(byte *)) )
#define pc_retrace() (pcdata->retracewait)
#define pc_setretrace(rw) (pcdata->retracewait = (rw))
/* -------------------------------------------------------------------------- */
/* Hardware Equipment Flag Values */
#define PCHFLAG_COLO 0x20
#define PCHFLAG_MONO 0x30
/* -------------------------------------------------------------------------- */
/* BIOS & DOS interrupt definitions */
/* -------------------------------------------------------------------------- */
#define BIOS_VIDINT 0x10
#define VIDINT_SETVM 0x00
#define VIDINT_SETT 0x01
#define VIDINT_SETC 0x02
#define VIDINT_GETC 0x03
#define VIDINT_SCRLUP 0x06
#define VIDINT_SCRLDN 0x07
#define VIDINT_RDCHAR 0x08
#define VIDINT_WRTCHAR 0x09
#define VIDINT_GETVM 0x0F
#define VIDINT_CHARGEN 0x11
#define CHARGEN_ROM8X8 0x12
#define VIDINT_ALTSEL 0x12
#define ALTSEL_GETINFO 0x10
#define ALTSEL_NEWPRTSCR 0x20
#define ALTSEL_SETLINES 0x30
#define SETLINES_350 0x01
#define SETLINES_400 0x02
#define VIDINT_MODEINFO 0x1B
#define VIDINT_CPQINFO 0xBF
#define CPQINFO_PLASMABIT 0x10
#define VIDINT_DVSHADOW 0xFE
#define BIOS_FONTVEC 0x43
#define BIOS_CGAXFONTVEC 0x1F
#define BIOS_CGAFONTSEG 0xF000
#define BIOS_CGAFONTOFFS 0xFA6E
/* -------------------------------------------------------------------------- */
/* Addresses and counts */
#define TEXT_HEIGHT 25
#define TEXT_XHEIGHT 43
#define TEXT_RPAGE 0
#define VID_MDAPORT 0x3B4
#define VID_CGAPORT 0x3D4
#define VID_CGAADDR 0xB800
#define VID_MONOADDR 0xB000
#define VID_EVGAADDR 0xA000
#define VID_HERC0ADDR 0xB000
#define VID_HERC1ADDR 0xB800
#define VID_CGABLOCK 0x2000
#define VID_HERCBLOCK 0x2000
/* -------------------------------------------------------------------------- */
/* Default color palette structure initializations */
#ifndef DEFDEFCMAPS
extern ocolmap_struct(2) pcdefmcmap;
extern ocolmap_struct(16) pcdefcmap;
extern ocolmap_struct(256) pcdefmcgamap;
#else
# define PC_DEF_MCMAPINIT { 0, 2, {{0x00, 0x00, 0x00}, {0xFF, 0xFF, 0xFF}} }
# define PC_DEF_CMAPINIT { 0, 16, { \
{0x00,0x00,0x00},{0x00,0x00,0xAB},{0x00,0xAB,0x00},{0x00,0xAB,0xAB}, \
{0xAB,0x00,0x00},{0xAB,0x00,0xAB},{0xAB,0x57,0x00},{0xAB,0xAB,0xAB}, \
{0x57,0x57,0x57},{0x57,0x57,0xFF},{0x57,0xFF,0x57},{0x57,0xFF,0xFF}, \
{0xFF,0x57,0x57},{0xFF,0x57,0xFF},{0xFF,0xFF,0x57},{0xFF,0xFF,0xFF} \
}}
# define PC_DEF_MCGAMAPINIT0 { 0, 256, { \
{0x00,0x00,0x00},{0x00,0x00,0xAB},{0x00,0xAB,0x00},{0x00,0xAB,0xAB}, \
{0xAB,0x00,0x00},{0xAB,0x00,0xAB},{0xAB,0x57,0x00},{0xAB,0xAB,0xAB}, \
{0x57,0x57,0x57},{0x57,0x57,0xFF},{0x57,0xFF,0x57},{0x57,0xFF,0xFF}, \
{0xFF,0x57,0x57},{0xFF,0x57,0xFF},{0xFF,0xFF,0x57},{0xFF,0xFF,0xFF}, \
\
{0x00,0x00,0x00},{0x17,0x17,0x17},{0x23,0x23,0x23},{0x2F,0x2F,0x2F}, \
{0x3B,0x3B,0x3B},{0x47,0x47,0x47},{0x53,0x53,0x53},{0x63,0x63,0x63}, \
{0x73,0x73,0x73},{0x83,0x83,0x83},{0x93,0x93,0x93},{0xA3,0xA3,0xA3}, \
{0xB3,0xB3,0xB3},{0xCB,0xCB,0xCB},{0xE3,0xE3,0xE3},{0xFF,0xFF,0xFF},
# define PC_DEF_MCGAMAPINIT2 \
{0x00,0x00,0xFF},{0x43,0x00,0xFF},{0x7F,0x00,0xFF},{0xBF,0x00,0xFF}, \
{0xFF,0x00,0xFF},{0xFF,0x00,0xBF},{0xFF,0x00,0x7F},{0xFF,0x00,0x43}, \
{0xFF,0x00,0x00},{0xFF,0x43,0x00},{0xFF,0x7F,0x00},{0xFF,0xBF,0x00}, \
{0xFF,0xFF,0x00},{0xBF,0xFF,0x00},{0x7F,0xFF,0x00},{0x43,0xFF,0x00}, \
\
{0x00,0xFF,0x00},{0x00,0xFF,0x43},{0x00,0xFF,0x7F},{0x00,0xFF,0xBF}, \
{0x00,0xFF,0xFF},{0x00,0xBF,0xFF},{0x00,0x7F,0xFF},{0x00,0x43,0xFF}, \
{0x7F,0x7F,0xFF},{0x9F,0x7F,0xFF},{0xBF,0x7F,0xFF},{0xDF,0x7F,0xFF}, \
{0xFF,0x7F,0xFF},{0xFF,0x7F,0xDF},{0xFF,0x7F,0xBF},{0xFF,0x7F,0x9F},
# define PC_DEF_MCGAMAPINIT4 \
{0xFF,0x7F,0x7F},{0xFF,0x9F,0x7F},{0xFF,0xBF,0x7F},{0xFF,0xDF,0x7F}, \
{0xFF,0xFF,0x7F},{0xDF,0xFF,0x7F},{0xBF,0xFF,0x7F},{0x9F,0xFF,0x7F}, \
{0x7F,0xFF,0x7F},{0x7F,0xFF,0x9F},{0x7F,0xFF,0xBF},{0x7F,0xFF,0xDF}, \
{0x7F,0xFF,0xFF},{0x7F,0xDF,0xFF},{0x7F,0xBF,0xFF},{0x7F,0x9F,0xFF}, \
\
{0xB3,0xB3,0xFF},{0xC7,0xB3,0xFF},{0xDB,0xB3,0xFF},{0xEB,0xB3,0xFF}, \
{0xFF,0xB3,0xFF},{0xFF,0xB3,0xEB},{0xFF,0xB3,0xDB},{0xFF,0xB3,0xC7}, \
{0xFF,0xB3,0xB3},{0xFF,0xC7,0xB3},{0xFF,0xDB,0xB3},{0xFF,0xEB,0xB3}, \
{0xFF,0xFF,0xB3},{0xEB,0xFF,0xB3},{0xDB,0xFF,0xB3},{0xC7,0xFF,0xB3},
# define PC_DEF_MCGAMAPINIT6 \
{0xB3,0xFF,0xB3},{0xB3,0xFF,0xC7},{0xB3,0xFF,0xDB},{0xB3,0xFF,0xEB}, \
{0xB3,0xFF,0xFF},{0xB3,0xEB,0xFF},{0xB3,0xDB,0xFF},{0xB3,0xC7,0xFF}, \
{0x00,0x00,0x73},{0x1F,0x00,0x73},{0x3B,0x00,0x73},{0x57,0x00,0x73}, \
{0x73,0x00,0x73},{0x73,0x00,0x57},{0x73,0x00,0x3B},{0x73,0x00,0x1F}, \
\
{0x73,0x00,0x00},{0x73,0x1F,0x00},{0x73,0x3B,0x00},{0x73,0x57,0x00}, \
{0x73,0x73,0x00},{0x57,0x73,0x00},{0x3B,0x73,0x00},{0x1F,0x73,0x00}, \
{0x00,0x73,0x00},{0x00,0x73,0x1F},{0x00,0x73,0x3B},{0x00,0x73,0x57}, \
{0x00,0x73,0x73},{0x00,0x57,0x73},{0x00,0x3B,0x73},{0x00,0x1F,0x73},
# define PC_DEF_MCGAMAPINIT8 \
{0x3B,0x3B,0x73},{0x47,0x3B,0x73},{0x57,0x3B,0x73},{0x63,0x3B,0x73}, \
{0x73,0x3B,0x73},{0x73,0x3B,0x63},{0x73,0x3B,0x57},{0x73,0x3B,0x47}, \
{0x73,0x3B,0x3B},{0x73,0x47,0x3B},{0x73,0x57,0x3B},{0x73,0x63,0x3B}, \
{0x73,0x73,0x3B},{0x63,0x73,0x3B},{0x57,0x73,0x3B},{0x47,0x73,0x3B}, \
\
{0x3B,0x73,0x3B},{0x3B,0x73,0x47},{0x3B,0x73,0x57},{0x3B,0x73,0x63}, \
{0x3B,0x73,0x73},{0x3B,0x63,0x73},{0x3B,0x57,0x73},{0x3B,0x47,0x73}, \
{0x53,0x53,0x73},{0x5B,0x53,0x73},{0x63,0x53,0x73},{0x6B,0x53,0x73}, \
{0x73,0x53,0x73},{0x73,0x53,0x6B},{0x73,0x53,0x63},{0x73,0x53,0x5B},
# define PC_DEF_MCGAMAPINITA \
{0x73,0x53,0x53},{0x73,0x5B,0x53},{0x73,0x63,0x53},{0x73,0x6B,0x53}, \
{0x73,0x73,0x53},{0x6B,0x73,0x53},{0x63,0x73,0x53},{0x5B,0x73,0x53}, \
{0x53,0x73,0x53},{0x53,0x73,0x5B},{0x53,0x73,0x63},{0x53,0x73,0x6B}, \
{0x53,0x73,0x73},{0x53,0x6B,0x73},{0x53,0x63,0x73},{0x53,0x5B,0x73}, \
\
{0x00,0x00,0x43},{0x13,0x00,0x43},{0x23,0x00,0x43},{0x33,0x00,0x43}, \
{0x43,0x00,0x43},{0x43,0x00,0x33},{0x43,0x00,0x23},{0x43,0x00,0x13}, \
{0x43,0x00,0x00},{0x43,0x13,0x00},{0x43,0x23,0x00},{0x43,0x33,0x00}, \
{0x43,0x43,0x00},{0x33,0x43,0x00},{0x23,0x43,0x00},{0x13,0x43,0x00},
# define PC_DEF_MCGAMAPINITC \
{0x00,0x43,0x00},{0x00,0x43,0x13},{0x00,0x43,0x23},{0x00,0x43,0x33}, \
{0x00,0x43,0x43},{0x00,0x33,0x43},{0x00,0x23,0x43},{0x00,0x13,0x43}, \
{0x23,0x23,0x43},{0x2B,0x23,0x43},{0x33,0x23,0x43},{0x3B,0x23,0x43}, \
{0x43,0x23,0x43},{0x43,0x23,0x3B},{0x43,0x23,0x33},{0x43,0x23,0x2B}, \
\
{0x43,0x23,0x23},{0x43,0x2B,0x23},{0x43,0x33,0x23},{0x43,0x3B,0x23}, \
{0x43,0x43,0x23},{0x3B,0x43,0x23},{0x33,0x43,0x23},{0x2B,0x43,0x23}, \
{0x23,0x43,0x23},{0x23,0x43,0x2B},{0x23,0x43,0x33},{0x23,0x43,0x3B}, \
{0x23,0x43,0x43},{0x23,0x3B,0x43},{0x23,0x33,0x43},{0x23,0x2B,0x43},
# define PC_DEF_MCGAMAPINITE \
{0x2F,0x2F,0x43},{0x33,0x2F,0x43},{0x37,0x2F,0x43},{0x3F,0x2F,0x43}, \
{0x43,0x2F,0x43},{0x43,0x2F,0x3F},{0x43,0x2F,0x37},{0x43,0x2F,0x33}, \
{0x43,0x2F,0x2F},{0x43,0x33,0x2F},{0x43,0x37,0x2F},{0x43,0x3F,0x2F}, \
{0x43,0x43,0x2F},{0x3F,0x43,0x2F},{0x37,0x43,0x2F},{0x33,0x43,0x2F}, \
\
{0x2F,0x43,0x2F},{0x2F,0x43,0x33},{0x2F,0x43,0x37},{0x2F,0x43,0x3F}, \
{0x2F,0x43,0x43},{0x2F,0x3F,0x43},{0x2F,0x37,0x43},{0x2F,0x33,0x43}, \
{0x3F,0x3F,0x3F},{0x3F,0x3F,0x3F},{0x3F,0x3F,0x3F},{0x3F,0x3F,0x3F}, \
{0x3F,0x3F,0x3F},{0x3F,0x3F,0x3F},{0x3F,0x3F,0x3F},{0x7F,0x7F,0x7F} \
}}
#endif
/* -------------------------------------------------------------------------- */