home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
378.lha
/
MemMometer_V2.1
/
mminit.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-05-02
|
24KB
|
723 lines
/* : ai=0 bk=0 ts=8 */
#include "mm.h"
#define PROJMAX 3 /* number of project menu items */
#define SETUPMAX 2 /* number of setup menu items */
#define MODEMAX 2
#define FREQMAX 4 /* number of frequency menu items */
#define PRIOMAX 16 /* number of priority menu items */
#define CHIPMAX 5 /* number of chip mem size menu items */
#define CHIPAMAX 4 /* number of chip mem base addr menu items */
#define SFMAX 4 /* number of sf mem size menu items */
#define SFAMAX 4 /* number of sf mem base addr menu items */
#define FASTMAX 7 /* number of fast mem size menu items */
#define FASTAMAX 8 /* number of fast mem base addr menu items */
#define MAXMENU 9 /* total number of top level menus */
extern BOOL p_mode; /* preset frags mode = 0, warps mode = 1 */
extern long p_rate; /* preset sample interval, secs see menu */
extern long p_priority; /* preset priority, range -100 to +100 */
extern long p_chip; /* preset chip mem size, kbytes see menu */
extern long p_chipa; /* preset chip mem address, kb see menu */
extern long p_sf; /* preset slowfast mem size, kb see menu */
extern long p_sfa; /* preset slowfast mem addr, kb see menu */
extern long p_fast; /* preset fast mem size, mbytes see menu */
extern long p_fasta; /* preset fast mem addr, mbytes see menu */
/******************************************************/
/* Structure declarations for the menu sections */
/******************************************************/
struct MenuItem ProjItem[PROJMAX];
struct IntuiText ProjText[PROJMAX];
struct MenuItem SetupItem[SETUPMAX];
struct IntuiText SetupText[SETUPMAX];
struct MenuItem ModeItem[MODEMAX];
struct IntuiText ModeText[MODEMAX];
struct MenuItem FreqItem[FREQMAX];
struct IntuiText FreqText[FREQMAX];
struct MenuItem PrioItem[PRIOMAX];
struct IntuiText PrioText[PRIOMAX];
struct MenuItem ChipItem[CHIPMAX];
struct IntuiText ChipText[CHIPMAX];
struct MenuItem ChipAItem[CHIPAMAX];
struct IntuiText ChipAText[CHIPAMAX];
struct MenuItem SFItem[SFMAX];
struct IntuiText SFText[SFMAX];
struct MenuItem SFAItem[SFAMAX];
struct IntuiText SFAText[SFAMAX];
struct MenuItem FastItem[FASTMAX];
struct IntuiText FastText[FASTMAX];
struct MenuItem FastAItem[FASTAMAX];
struct IntuiText FastAText[FASTAMAX];
struct Menu menu[MAXMENU];
/*****************************************************************/
/* The following function initializes the structure arrays */
/* needed to provide the Project menu topic. */
/* this was left retro-compatible with Manx 3.4a (nplus1) */
/*****************************************************************/
void InitProjItems()
{
int n,nplus1;
/* initialize each menu item and IntuiText with loop */
for( n=0; n<PROJMAX; n++ )
{
nplus1 = n + 1;
ProjItem[n].NextItem = &ProjItem[nplus1];
ProjItem[n].LeftEdge = 0;
ProjItem[n].TopEdge = 9 * n;
ProjItem[n].Width = 64;
ProjItem[n].Height = 9;
ProjItem[n].Flags = ITEMTEXT | ITEMENABLED | HIGHCOMP;
ProjItem[n].MutualExclude = 0;
ProjItem[n].ItemFill = (APTR)&ProjText[n];
ProjItem[n].SelectFill = NULL;
ProjItem[n].Command = 0;
ProjItem[n].SubItem = NULL;
ProjItem[n].NextSelect = 0;
ProjText[n].FrontPen = BLUP;
ProjText[n].BackPen = WHTP;
ProjText[n].DrawMode = JAM2;/* render in fore and background */
ProjText[n].LeftEdge = 0;
ProjText[n].TopEdge = 1;
ProjText[n].ITextFont = NULL;
ProjText[n].NextText = NULL;
}
ProjItem[PROJMAX-1].NextItem = NULL;
/* initialize text for specific menu items */
ProjText[0].IText = (UBYTE *)"Front";
ProjText[1].IText = (UBYTE *)"Back";
ProjText[2].IText = (UBYTE *)"Quit";
}
/*****************************************************************/
/* The following initializes the structure arrays */
/* needed to provide the Setup menu topic. */
/*****************************************************************/
void InitSetupItems()
{
int n,nplus1;
/* initialize each menu item and IntuiText with loop */
for( n=0; n<SETUPMAX; n++ )
{
nplus1 = n + 1;
SetupItem[n].NextItem = &SetupItem[nplus1];
SetupItem[n].LeftEdge = 0;
SetupItem[n].TopEdge = 9 * n;
SetupItem[n].Width = 44;
SetupItem[n].Height = 9;
SetupItem[n].Flags = ITEMTEXT | ITEMENABLED | HIGHCOMP ;
SetupItem[n].MutualExclude = 0;
SetupItem[n].ItemFill = (APTR)&SetupText[n];
SetupItem[n].SelectFill = NULL;
SetupItem[n].Command = 0;
SetupItem[n].NextSelect = 0;
SetupText[n].FrontPen = BLUP;
SetupText[n].BackPen = WHTP;
SetupText[n].DrawMode = JAM2;
SetupText[n].LeftEdge = 0;
SetupText[n].TopEdge = 1;
SetupText[n].ITextFont = NULL;
SetupText[n].NextText = NULL;
}
SetupItem[SETUPMAX-1].NextItem = NULL;
SetupText[0].IText = (UBYTE *)"Mode";
SetupItem[0].SubItem = ModeItem;
SetupText[1].IText = (UBYTE *)"Freq";
SetupItem[1].SubItem = FreqItem;
/*****************************************************************/
/* The following initializes the structure arrays */
/* needed to provide the Mode submenu topic. */
/*****************************************************************/
for( n=0; n<MODEMAX; n++ )
{
nplus1 = n + 1;
ModeItem[n].NextItem = &ModeItem[nplus1];
ModeItem[n].LeftEdge = 38;
ModeItem[n].TopEdge = 9 * n;
ModeItem[n].Width = 72;
ModeItem[n].Height = 9;
ModeItem[n].Flags = ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT;
ModeItem[n].MutualExclude = (~(1 << n));
ModeItem[n].ItemFill = (APTR)&ModeText[n];
ModeItem[n].SelectFill = NULL;
ModeItem[n].Command = 0;
ModeItem[n].SubItem = NULL;
ModeItem[n].NextSelect = 0;
ModeText[n].FrontPen = BLUP;
ModeText[n].BackPen = WHTP;
ModeText[n].DrawMode = JAM2; /* render in fore and background */
ModeText[n].LeftEdge = 0;
ModeText[n].TopEdge = 1;
ModeText[n].ITextFont = NULL;
ModeText[n].NextText = NULL;
}
ModeItem[MODEMAX-1].NextItem = NULL;
/* select mode subitem checked */
switch (p_mode) {
case 0: n = 0; break;
case 1: n = 1; break;
default: n = 1; p_mode = FALSE;
}
ModeItem[n].Flags |= CHECKED;
/* initialize text for specific submenu items */
ModeText[0].IText = (UBYTE *)" Frags";
ModeText[1].IText = (UBYTE *)" Warps";
/*****************************************************************/
/* The following initializes the structure arrays */
/* needed to provide the Freq submenu topic. */
/*****************************************************************/
for( n=0; n<FREQMAX; n++ )
{
nplus1 = n + 1;
FreqItem[n].NextItem = &FreqItem[nplus1];
FreqItem[n].LeftEdge = 38;
FreqItem[n].TopEdge = 9 * n;
FreqItem[n].Width = 88;
FreqItem[n].Height = 9;
FreqItem[n].Flags = ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT;
FreqItem[n].MutualExclude = (~(1 << n));
FreqItem[n].ItemFill = (APTR)&FreqText[n];
FreqItem[n].SelectFill = NULL;
FreqItem[n].Command = 0;
FreqItem[n].SubItem = NULL;
FreqItem[n].NextSelect = 0;
FreqText[n].FrontPen = BLUP;
FreqText[n].BackPen = WHTP;
FreqText[n].DrawMode = JAM2; /* render in fore and background */
FreqText[n].LeftEdge = 0;
FreqText[n].TopEdge = 1;
FreqText[n].ITextFont = NULL;
FreqText[n].NextText = NULL;
}
FreqItem[FREQMAX-1].NextItem = NULL;
/* select frequency item checked */
switch (p_rate) {
case 1: n = 0; break;
case 2: n = 1; break;
case 5: n = 2; break;
case 10: n = 3; break;
default: n = 1; p_rate = 2;
}
FreqItem[n].Flags |= CHECKED;
/* initialize text for specific menu items */
FreqText[0].IText = (UBYTE *)" 1 Sec ";
FreqText[1].IText = (UBYTE *)" 2 Secs";
FreqText[2].IText = (UBYTE *)" 5 Secs";
FreqText[3].IText = (UBYTE *)" 10 Secs";
}
/*****************************************************************/
/* The following initializes the structure arrays */
/* needed to provide the Priority menu topic. */
/*****************************************************************/
void InitPrioItems()
{
int n,nplus1;
/* initialize each menu item and IntuiText with loop */
for( n=0; n<PRIOMAX; n++ )
{
nplus1 = n + 1;
PrioItem[n].NextItem = &PrioItem[nplus1];
PrioItem[n].LeftEdge = 0;
PrioItem[n].TopEdge = 9 * n;
PrioItem[n].Width = 80;
PrioItem[n].Height = 9;
PrioItem[n].Flags = ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT;
PrioItem[n].MutualExclude = (~(1 << n));
if (n < 3) PrioItem[n].MutualExclude &= 0x0007;
if (n < 1) PrioItem[n].MutualExclude |= 0x0007;
PrioItem[n].ItemFill = (APTR)&PrioText[n];
PrioItem[n].SelectFill = NULL;
PrioItem[n].Command = 0;
PrioItem[n].NextSelect = 0;
PrioText[n].FrontPen = BLUP;
PrioText[n].BackPen = WHTP;
if (n > 11) {
PrioText[n].FrontPen = ORNP;
PrioText[n].BackPen = REDP;
}
PrioText[n].DrawMode = JAM2;
PrioText[n].LeftEdge = 0;
PrioText[n].TopEdge = 1;
PrioText[n].ITextFont = NULL;
PrioText[n].NextText = NULL;
}
PrioItem[PRIOMAX-1].NextItem = NULL;
/* select priority item checked */
switch (p_priority) {
case -99: n = 3; break;
case -75: n = 4; break;
case -50: n = 5; break;
case -25: n = 6; break;
case -20: n = 7; break;
case -15: n = 8; break;
case -10: n = 9; break;
case -5: n = 10; break;
case 0: n = 11; break;
case 5: n = 12; break;
case 10: n = 13; break;
case 15: n = 14; break;
case 20: n = 15; break;
default: n = 11; p_priority = 0;
}
PrioItem[n].Flags |= CHECKED;
PrioText[ 0].IText = (UBYTE *)" NORM ";
PrioText[ 1].IText = (UBYTE *)" DECR ";
PrioText[ 2].IText = (UBYTE *)" INCR ";
PrioText[ 3].IText = (UBYTE *)" -99 ";
PrioText[ 4].IText = (UBYTE *)" -75 ";
PrioText[ 5].IText = (UBYTE *)" -50 ";
PrioText[ 6].IText = (UBYTE *)" -25 ";
PrioText[ 7].IText = (UBYTE *)" -20 ";
PrioText[ 8].IText = (UBYTE *)" -15 ";
PrioText[ 9].IText = (UBYTE *)" -10 ";
PrioText[10].IText = (UBYTE *)" -5 ";
PrioText[11].IText = (UBYTE *)" 0 ";
PrioText[12].IText = (UBYTE *)" 5 ";
PrioText[13].IText = (UBYTE *)" 10 ";
PrioText[14].IText = (UBYTE *)" 15 ";
PrioText[15].IText = (UBYTE *)" 20 ";
}
/*****************************************************************/
/* The following initializes the structure arrays */
/* needed to provide the Chip Mem Size menu topic. */
/*****************************************************************/
void InitChipItems()
{
int n,nplus1;
/* initialize each menu item and IntuiText with loop */
for( n=0; n<CHIPMAX; n++ )
{
nplus1 = n + 1;
ChipItem[n].NextItem = &ChipItem[nplus1];
ChipItem[n].LeftEdge = 0;
ChipItem[n].TopEdge = 9 * n;
ChipItem[n].Width = 80;
ChipItem[n].Height = 9;
ChipItem[n].Flags = ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT;
ChipItem[n].MutualExclude = (~(1 << n));
ChipItem[n].ItemFill = (APTR)&ChipText[n];
ChipItem[n].SelectFill = NULL;
ChipItem[n].Command = 0;
ChipItem[n].NextSelect = 0;
ChipText[n].FrontPen = BLUP;
ChipText[n].BackPen = WHTP;
ChipText[n].DrawMode = JAM2;
ChipText[n].LeftEdge = 0;
ChipText[n].TopEdge = 1;
ChipText[n].ITextFont = NULL;
ChipText[n].NextText = NULL;
}
ChipItem[CHIPMAX-1].NextItem = NULL;
/* select chip mem size item checked */
switch (p_chip) {
case 0: n = 0; break;
case 256: n = 1; break;
case 512: n = 2; break;
case 1024: n = 3; break;
case 2048: n = 4; break;
default: n = 2; p_chip = 512;
}
ChipItem[n].Flags |= CHECKED;
ChipText[0].IText = (UBYTE *)" NONE";
ChipText[1].IText = (UBYTE *)" 256K";
ChipText[2].IText = (UBYTE *)" 512K";
ChipText[3].IText = (UBYTE *)" 1 MB";
ChipText[4].IText = (UBYTE *)" 2 MB";
}
/*****************************************************************/
/* The following initializes the structure arrays */
/* needed to provide the Chip Base Addr menu topic. */
/*****************************************************************/
void InitChipAItems()
{
int n,nplus1;
/* initialize each menu item and IntuiText with loop */
for( n=0; n<CHIPAMAX; n++ )
{
nplus1 = n + 1;
ChipAItem[n].NextItem = &ChipAItem[nplus1];
ChipAItem[n].LeftEdge = 0;
ChipAItem[n].TopEdge = 9 * n;
ChipAItem[n].Width = 80;
ChipAItem[n].Height = 9;
ChipAItem[n].Flags = ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT;
ChipAItem[n].MutualExclude = (~(1 << n));
ChipAItem[n].ItemFill = (APTR)&ChipAText[n];
ChipAItem[n].SelectFill = NULL;
ChipAItem[n].Command = 0;
ChipAItem[n].NextSelect = 0;
ChipAText[n].FrontPen = BLUP;
ChipAText[n].BackPen = WHTP;
ChipAText[n].DrawMode = JAM2;
ChipAText[n].LeftEdge = 0;
ChipAText[n].TopEdge = 1;
ChipAText[n].ITextFont = NULL;
ChipAText[n].NextText = NULL;
}
ChipAItem[CHIPAMAX-1].NextItem = NULL;
/* select chip base address item checked */
switch (p_chipa) {
case 0: n = 0; break;
case 256: n = 1; break;
case 512: n = 2; break;
case 1024: n = 3; break;
default: n = 0; p_chipa = 0;
}
ChipAItem[n].Flags |= CHECKED;
ChipAText[0].IText = (UBYTE *)" @ 0K";
ChipAText[1].IText = (UBYTE *)" @ 256K";
ChipAText[2].IText = (UBYTE *)" @ 512K";
ChipAText[3].IText = (UBYTE *)" @ 1 MB";
}
/*****************************************************************/
/* The following initializes the structure arrays */
/* needed to provide the Slow Fast Mem Size menu topic. */
/*****************************************************************/
void InitSFItems()
{
int n,nplus1;
/* initialize each menu item and IntuiText with loop */
for( n=0; n<SFMAX; n++ )
{
nplus1 = n + 1;
SFItem[n].NextItem = &SFItem[nplus1];
SFItem[n].LeftEdge = 0;
SFItem[n].TopEdge = 9 * n;
SFItem[n].Width = 80;
SFItem[n].Height = 9;
SFItem[n].Flags = ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT;
SFItem[n].MutualExclude = (~(1 << n));
SFItem[n].ItemFill = (APTR)&SFText[n];
SFItem[n].SelectFill = NULL;
SFItem[n].Command = 0;
SFItem[n].NextSelect = 0;
SFText[n].FrontPen = BLUP;
SFText[n].BackPen = WHTP;
SFText[n].DrawMode = JAM2;
SFText[n].LeftEdge = 0;
SFText[n].TopEdge = 1;
SFText[n].ITextFont = NULL;
SFText[n].NextText = NULL;
}
SFItem[SFMAX-1].NextItem = NULL;
/* select slow fast mem size item checked */
switch (p_sf) {
case 0: n = 0; break;
case 512: n = 1; break;
case 1024: n = 2; break;
case 1536: n = 3; break;
default: n = 0; p_sf = 0;
}
SFItem[n].Flags |= CHECKED;
SFText[0].IText = (UBYTE *)" NONE ";
SFText[1].IText = (UBYTE *)" 0.5 MB";
SFText[2].IText = (UBYTE *)" 1 MB";
SFText[3].IText = (UBYTE *)" 1.5 MB";
}
/*****************************************************************/
/* The following initializes the structure arrays */
/* needed to provide the Slow Fast Mem Base Addr menu topic. */
/*****************************************************************/
void InitSFAItems()
{
int n,nplus1;
/* initialize each menu item and IntuiText with loop */
for( n=0; n<SFAMAX; n++ )
{
nplus1 = n + 1;
SFAItem[n].NextItem = &SFAItem[nplus1];
SFAItem[n].LeftEdge = 0;
SFAItem[n].TopEdge = 9 * n;
SFAItem[n].Width = 104;
SFAItem[n].Height = 9;
SFAItem[n].Flags = ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT;
SFAItem[n].MutualExclude = (~(1 << n));
SFAItem[n].ItemFill = (APTR)&SFAText[n];
SFAItem[n].SelectFill = NULL;
SFAItem[n].Command = 0;
SFAItem[n].NextSelect = 0;
SFAText[n].FrontPen = BLUP;
SFAText[n].BackPen = WHTP;
SFAText[n].DrawMode = JAM2;
SFAText[n].LeftEdge = 0;
SFAText[n].TopEdge = 1;
SFAText[n].ITextFont = NULL;
SFAText[n].NextText = NULL;
}
SFAItem[SFAMAX-1].NextItem = NULL;
/* select slow fast mem base address item checked */
switch (p_sfa) {
case 12288: n = 0; break; /* 0x3000 kb = 12 mb */
case 12800: n = 1; break; /* 0x3200 kb = 12.5 mb */
case 13312: n = 2; break; /* 0x3400 kb = 13 mb */
case 13824: n = 3; break; /* 0x3600 kb = 13.5 mb */
default: n = 0; p_sfa = 12288;
}
SFAItem[n].Flags |= CHECKED;
SFAText[0].IText = (UBYTE *)" @ C.0 Meg";
SFAText[1].IText = (UBYTE *)" @ C.8 Meg";
SFAText[2].IText = (UBYTE *)" @ D.0 Meg";
SFAText[3].IText = (UBYTE *)" @ D.8 Meg";
}
/*****************************************************************/
/* The following initializes the structure arrays */
/* needed to provide the Fast Mem Size menu topic. */
/*****************************************************************/
void InitFastItems()
{
int n,nplus1;
/* initialize each menu item and IntuiText with loop */
for( n=0; n<FASTMAX; n++ )
{
nplus1 = n + 1;
FastItem[n].NextItem = &FastItem[nplus1];
FastItem[n].LeftEdge = 0;
FastItem[n].TopEdge = 9 * n;
FastItem[n].Width = 80;
FastItem[n].Height = 9;
FastItem[n].Flags = ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT;
FastItem[n].MutualExclude = (~(1 << n));
FastItem[n].ItemFill = (APTR)&FastText[n];
FastItem[n].SelectFill = NULL;
FastItem[n].Command = 0;
FastItem[n].NextSelect = 0;
FastText[n].FrontPen = BLUP;
FastText[n].BackPen = WHTP;
FastText[n].DrawMode = JAM2;
FastText[n].LeftEdge = 0;
FastText[n].TopEdge = 1;
FastText[n].ITextFont = NULL;
FastText[n].NextText = NULL;
}
FastItem[FASTMAX-1].NextItem = NULL;
/* select fast mem size item checked */
switch (p_fast) {
case 0: n = 0; break;
case 512: n = 1; break;
case 1: n = 2; break;
case 2: n = 3; break;
case 4: n = 4; break;
case 6: n = 5; break;
case 8: n = 6; break;
default: n = 0; p_fast = 0;
}
FastItem[n].Flags |= CHECKED;
FastText[0].IText = (UBYTE *)" NONE";
FastText[1].IText = (UBYTE *)" 512K";
FastText[2].IText = (UBYTE *)" 1 MB";
FastText[3].IText = (UBYTE *)" 2 MB";
FastText[4].IText = (UBYTE *)" 4 MB";
FastText[5].IText = (UBYTE *)" 6 MB";
FastText[6].IText = (UBYTE *)" 8 MB";
}
/*****************************************************************/
/* The following initializes the structure arrays */
/* needed to provide the Fast Mem Base Addr menu topic. */
/*****************************************************************/
void InitFastAItems()
{
int n,nplus1;
/* initialize each menu item and IntuiText with loop */
for( n=0; n<FASTAMAX; n++ )
{
nplus1 = n + 1;
FastAItem[n].NextItem = &FastAItem[nplus1];
FastAItem[n].LeftEdge = 0;
FastAItem[n].TopEdge = 9 * n;
FastAItem[n].Width = 80;
FastAItem[n].Height = 9;
FastAItem[n].Flags = ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT;
FastAItem[n].MutualExclude = (~(1 << n));
FastAItem[n].ItemFill = (APTR)&FastAText[n];
FastAItem[n].SelectFill = NULL;
FastAItem[n].Command = 0;
FastAItem[n].NextSelect = 0;
FastAText[n].FrontPen = BLUP;
FastAText[n].BackPen = WHTP;
FastAText[n].DrawMode = JAM2;
FastAText[n].LeftEdge = 0;
FastAText[n].TopEdge = 1;
FastAText[n].ITextFont = NULL;
FastAText[n].NextText = NULL;
}
FastAItem[FASTAMAX-1].NextItem = NULL;
/* select fast base address item checked */
switch (p_fasta) {
case 2: n = 0; break;
case 3: n = 1; break;
case 4: n = 2; break;
case 5: n = 3; break;
case 6: n = 4; break;
case 7: n = 5; break;
case 8: n = 6; break;
case 9: n = 7; break;
default: n = 0; p_fasta = 2;
}
FastAItem[n].Flags |= CHECKED;
FastAText[0].IText = (UBYTE *)" @ 2 M";
FastAText[1].IText = (UBYTE *)" @ 3 M";
FastAText[2].IText = (UBYTE *)" @ 4 M";
FastAText[3].IText = (UBYTE *)" @ 5 M";
FastAText[4].IText = (UBYTE *)" @ 6 M";
FastAText[5].IText = (UBYTE *)" @ 7 M";
FastAText[6].IText = (UBYTE *)" @ 8 M";
FastAText[7].IText = (UBYTE *)" @ 9 M";
}
/****************************************************************/
/* The following function inits the Menu structure array with */
/* appropriate values for our simple menu. Review the manual */
/* if you need to know what each value means. */
/****************************************************************/
void InitMenu()
{
menu[0].NextMenu = &menu[1];
menu[0].LeftEdge = 0;
menu[0].TopEdge = 0;
menu[0].Width = 64;
menu[0].Height = 10;
menu[0].Flags = MENUENABLED;
menu[0].MenuName = "Project"; /* text for menu-bar display */
menu[0].FirstItem = &ProjItem[0]; /* pointer to first item in list */
menu[1].NextMenu = &menu[2];
menu[1].LeftEdge = 64;
menu[1].TopEdge = 0;
menu[1].Width = 48;
menu[1].Height = 10;
menu[1].Flags = MENUENABLED;
menu[1].MenuName = "Setup"; /* text for menu-bar display */
menu[1].FirstItem = &SetupItem[0]; /* pointer to first item in list */
menu[2].NextMenu = &menu[3];
menu[2].LeftEdge = 112;
menu[2].TopEdge = 0;
menu[2].Width = 72;
menu[2].Height = 10;
menu[2].Flags = MENUENABLED;
menu[2].MenuName = "Priority"; /* text for menu-bar display */
menu[2].FirstItem = &PrioItem[0]; /* pointer to first item in list */
menu[3].NextMenu = &menu[4];
menu[3].LeftEdge = 184;
menu[3].TopEdge = 0;
menu[3].Width = 80;
menu[3].Height = 10;
menu[3].Flags = MENUENABLED;
menu[3].MenuName = "Chip Size"; /* text for menu-bar display */
menu[3].FirstItem = &ChipItem[0]; /* pointer to first item in list */
menu[4].NextMenu = &menu[5];
menu[4].LeftEdge = 264;
menu[4].TopEdge = 0;
menu[4].Width = 80;
menu[4].Height = 10;
menu[4].Flags = MENUENABLED;
menu[4].MenuName = "Chip Addr"; /* text for menu-bar display */
menu[4].FirstItem = &ChipAItem[0]; /* pointer to first item in list */
menu[5].NextMenu = &menu[6];
menu[5].LeftEdge = 344;
menu[5].TopEdge = 0;
menu[5].Width = 64;
menu[5].Height = 10;
menu[5].Flags = MENUENABLED;
menu[5].MenuName = "SF Size"; /* text for menu-bar display */
menu[5].FirstItem = &SFItem[0]; /* pointer to first item in list */
menu[6].NextMenu = &menu[7];
menu[6].LeftEdge = 408;
menu[6].TopEdge = 0;
menu[6].Width = 64;
menu[6].Height = 10;
menu[6].Flags = MENUENABLED;
menu[6].MenuName = "SF Addr"; /* text for menu-bar display */
menu[6].FirstItem = &SFAItem[0]; /* pointer to first item in list */
menu[7].NextMenu = &menu[8];
menu[7].LeftEdge = 472;
menu[7].TopEdge = 0;
menu[7].Width = 80;
menu[7].Height = 10;
menu[7].Flags = MENUENABLED;
menu[7].MenuName = "Fast Size"; /* text for menu-bar display */
menu[7].FirstItem = &FastItem[0]; /* pointer to first item in list */
menu[8].NextMenu = NULL;
menu[8].LeftEdge = 552;
menu[8].TopEdge = 0;
menu[8].Width = 80;
menu[8].Height = 10;
menu[8].Flags = MENUENABLED;
menu[8].MenuName = "Fast Addr"; /* text for menu-bar display */
menu[8].FirstItem = &FastAItem[0]; /* pointer to first item in list */
}
void StartMenus()
{
SetMenuStrip(window,&menu[0]);
}