
void helponhelp(int,int);
void contents()
{
char *contotline[]={
" #Ú#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#¿",
" #³ How to use help #À#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#¿",
" #³#Ú#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#¿ #³",
" #³#³ Menus and Hot Keys #À#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Á#¿",
" #À#³#Ú#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#¿ #³",
" #³#³ Editor Commands #À#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Á#¿",
" #À#³#Ú#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#¿ #³",
" #³#³ Error Messages #À#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Á#¿",
" #À#³ #³",
" #³ #³",
" #À#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ä#Ù",
"",
};
char *cont[]={
" How to use help ",
" Menus and Hot Keys ",
" Editor Commands ",
" Error Messages "
};
int i,areareqd,choice=0;
char *p;
areareqd=(20-4+1)*(67-12+1)*2;
p=malloc(areareqd);
if(p==NULL)
{
errormesg();
}
if(mouseinit!=0)
hidemsptr();
savevideo(4,12,20,67,p);
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
for(i=0; i<=10; i++)
{
writestring(contotline[i],5+i,14,62);
}
writestring(cont[choice],6,16,30);
while(1)
{
if(mouseinit!=0)
showms_ptr();
getkey();
/* if Esc if hit or OK is selected */
if(button==0)
{
switch(scan)
{
case 1:
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
if(mouseinit!=0)
showms_ptr();
return;
case 80://down arrow
if(choice==0)
writestring(cont[choice],6+choice*2,16+choice*2,62);
else
{
writestring(cont[choice],6+choice*2,15+choice*2,62);
}
choice++;
if(choice>3)
choice=0;
if(choice==0)
writestring(cont[choice],6+choice*2,16+choice*2,30);
else
{
writestring(cont[choice],6+choice*2,15+choice*2,30);
}
break;
case 72://up arrow
if(choice==0)
writestring(cont[choice],6+choice*2,16+choice*2,62);
else
{
writestring(cont[choice],6+choice*2,15+choice*2,62);
}
choice--;
if(choice<0)
choice=3;
if(choice==0)
writestring(cont[choice],6+choice*2,16+choice*2,30);
else
{
writestring(cont[choice],6+choice*2,15+choice*2,30);
}
break;
case 28:
if(mouseinit!=0)
hidemsptr();
if(choice==0)
helponhelp(28,84);
restorevideo(4,12,20,67,p);
free(p);
if(mouseinit!=0)
showms_ptr();
return;
}
}
else if(button==1 && xgrid==120 && ygrid==32)
{
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
if(mouseinit!=0)
showms_ptr();
break;
}
}
}
/* displays help index */
void displayindx(start,stop,sr,sc)
int start,stop, sr,sc;
{
int i;
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
for(i=start; i12)
{
choice=hchoice;
displayindx(choice-11,choice,6,15);
writestring(indx[choice],17,15,30);
length=12;
gotoxy(16,length+5);
}
else
{
choice=hchoice;
displayindx(1,13,6,15);
length=choice;
gotoxy(16,length);
writestring(indx[choice],length+5,15,30);
}
}
hotkeyindx=hotkeyindx-hchoice;
}
}
else if(button==0)
{
switch(scan)
{
case 80:
if(choice<76)
{
choice++;
length++;
if(choice>=76)
{
choice=76;
length=13;
}
if(choice>12 && length>12)
{
length=12;
displayindx(choice-11,choice,6,15);
writestring(indx[choice],5+length,15,30);
}
else
{
writestring(indx[choice-1],5+length-1,15,62);
writestring(indx[choice],5+length,15,30);
}
}
break;
case 72:
if(choice>1)
{
choice--;
length--;
if(choice<=1)
{
choice=1;
length=0;
}
if(length<1 && choice>0)
{
length=1;
displayindx(choice,choice+12,6,15);
writestring(indx[choice],5+length,15,30);
}
else
{
writestring(indx[choice+1],5+length+1,15,62);
writestring(indx[choice],5+length,15,30);
}
}
break;
case 28://enter
if(indxpos[choice]!=0)
{
if(mouseinit!=0)
hidemsptr();
displayhelp(indxpos[choice]);
restorevideo(4,12,20,67,p);
free(p);
// size(32,0);
if(mouseinit!=0)
showms_ptr();
return;
}
break;
case 1://escape
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
size(32,0);
if(mouseinit!=0)
showms_ptr();
return;
}
}
else if(button==1 && xgrid==120 && ygrid==32)
{
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
size(32,0);
if(mouseinit!=0)
showms_ptr();
return;
}
}
}
void helponhelp(from,to)
int from,to;
{
char *helpon[]={
" ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ",
" Welcome to Online Help ",
" ßßßßßßßßßßßßßßßßßßßßßßßß",
"You can learn about Sapta-Swara through",
"the online Help system. What you're",
"reading right now is a \"Help screen.\"",
"",
"Most Help screens have some highlighted",
"items (\"Help keywords\") on them that",
"lead to another Help screen.",
"",
"ÚÄÄÄÄÄ¿ You can use the arrow keys to move",
"³Arrow³ the cursor from one Help keyword to",
"ÀÄÄÄÄÄÙ another, then press Enter to go to",
"a Help screen describing that item.",
"",
"ÚÄÄ[ð) With the mouse, you can click a Help",
" Mouse keyword to go to the Help screen",
" about that item.",
"",
"Try it now; choose one of these Help keywords",
"to get started:",
"",
"$A$b$o$u$t $O$n$l$i$n$e $H$e$l$p",
"$H$o$w $t$o $U$s$e $H$e$l$p",
"$S$a$p$t$a$-$S$w$a$r$a $M$e$n$u$s",
"$T$h$e $E$d$i$t$o$r",
"",
" ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ",
" How to Use Help",
" ßßßßßßßßßßßßßßßßß",
" ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»",
" º To read all of this screen, scroll down. º",
" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ",
" You can use the online Help system from",
" the Help menu or via hot keys.",
" ",
" Wherever you are in Sapta-Swara, you",
" can press F1 to see a Help screen about the",
" currently active menu command or dialog-box",
" item. This is called context-sensitive Help.",
" ",
" Context-sensitive Help typically comes",
"up in a dialog-style Help window as shown",
"below:",
" ",
" Close box ",
" ³ ",
" V ",
" ÉÍ[X]ÍÍÍÍÍÍÍÍÍ Help ÍÍÍÍÍÍÍÍÍÍÍÍ»",
" º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º",
" º ³ ± º",
" º ³ scroll barsÄÂÄÄÄ>± º",
" º ³ ³ ± º",
" º ³ Help screen ³ þ º",
" º ³ ³ ± º",
" º ³ ³ ± º",
" º ³ V ± º",
" º Àı±þ±±±±±±±±±±±±±±±±±±±±±±ÄÙ º",
" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ",
"",
" Navigating through a Help window:",
" ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß",
" þ If you're viewing this screen in a",
" Help window, you can press the PgUp or",
" PgDn or arrow keys to move the",
" cursor to a Help keyword. Then press Enter.",
" ",
" þ If you're using a mouse, click the Help",
" keyword you're interested in.",
"Choose one of these Help keywords to find out",
"how to:",
" $G$o $t$o $t$h$e $H$e$l$p $I$n$d$e$x",
" $G$o $t$o $t$h$e $H$e$l$p $C$o$n$t$e$n$t$s $s$c$r$e$e$n",
" ",
"Choose one of these keywords to find out more",
"about the Help menu:",
" ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿",
" ³ $I$n$d$e$x ³",
" ³ $C$o$n$t$e$n$t$s ³",
" ³ $H$e$l$p $o$n $H$e$l$p ³",
" ³ $A$b$o$u$t ³",
" ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ",
"",
" ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ",
" Sapta Swara Musical Editor",
" ßßßßßßßßßßßßßßßßßßßßßßßßßß",
"There are many ways to get into an open Edit",
"window (make it active):",
" þ Click it.",
" þ Press Alt-# (where # is that Edit",
" window's number).",
" þ Choose the window from the Window List",
" dialog box.",
" þ Press (or click) F6 to cycle through the",
" open windows.",
"",
"To close the active Edit window, choose",
"Window³Close.",
"",
"Once in the Edit window, you enter text just",
"as if you were using a typewriter.",
"",
" þ When you want to end a line, press Enter.",
" þ To exit the editor, press F10.",
"",
"The maximum line width in an Edit window is",
"1023 characters; the computer will beep if you",
"try to type past that.",
"",
"The maximum number of lines allowed in a file",
"is 65,534. You can have approximately 6 MB",
"open, across all files, subject to available",
"swap space.",
"",
"To cut, copy, or paste blocks of text, you",
"first need to select a block.",
"",
" See Also:",
" Editor Commands",
};
int areareqd,y=0,row=5,line=1,page=0;
char *p;
areareqd=(20-4+1)*(67-12+1)*2;
p=malloc(areareqd);
if(p==NULL)
{
errormesg();
}
if(mouseinit!=0)
hidemsptr();
savevideo(4,12,20,67,p);
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
y=from;
row=5;
while(1)
{
writestring(helpon[y],row,14,48);
y++;
row++;
if(row>18)
break;
}
if(mouseinit!=0)
showms_ptr();
size(6,7);
row=6;
gotoxy(16,row);
while(1)
{
ascii=0;
scan=0;
if(mouseinit!=0)
showms_ptr();
getkey();
if(button==0)
{
switch(scan)
{
case 1:
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
size(32,0);
return;
case 81:
//if PgDn is selected and it is not the last help screen
// if(y<=to)
{
if(mouseinit!=0)
hidemsptr();
page++;
if(page>=((to-from)/14)-1)
page=((to-from)/14)-1;
y=page*14+from;
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
row=5;
while(1)
{
writestring(helpon[y],row,14,48);
y++;
row++;
if(row>18)
break;
}
// row=5;
}
if(mouseinit!=0)
showms_ptr();
break;
//if PgUp is selected and it is not the first help screen
case 73:
// if(y>from+14)
{
if(mouseinit!=0)
hidemsptr();
page--;
if(page<=0)
page=0;
y=page*14+from;
// y-=28;// go back by 14 lines
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
row=5;
while(1)
{
writestring(helpon[y],row,14,48);
y++;
row++;
if(row>18)
break;
}
// row=5;
// y-=14;
if(mouseinit!=0)
showms_ptr();
}
break;
case 80://down arrow key
row++;
line++;
if(line>14 && page<(to/14))
{
line=1;
page++;
}
if(row>18)
{
if(y!=to)
{
if(mouseinit!=0)
hidemsptr();
y-=13;
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
row=5;
while(1)
{
writestring(helpon[y],row,14,48);
y++;
row++;
if(row>18)
break;
}
if(mouseinit!=0)
showms_ptr();
}
}
if(row>18)
{
gotoxy(15,19);
row=19;
}
else
{
gotoxy(15,row);
}
break;
case 72://up arrow key
row--;
line--;
if(line<1 && page>(from/14))
{
line=14;
page--;
}
if(row<6)
{
if(y-14!=from)
{
y-=14;
y--;
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
row=5;
while(1)
{
writestring(helpon[y],row,14,48);
y++;
row++;
if(row>18)
break;
}
// y-=14;
row=6;
}
}
if(row<6)
{
row=6;
gotoxy(15,row);
}
else
gotoxy(15,row);
break;
}
}
else if(button==1 && xgrid==120 && ygrid==32)
{
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
if(mouseinit!=0)
showms_ptr();
size(32,0);
return;
}
/* writestring(helpon[y],row,14,48);
y++;
row++;
if(row>18)
{
//continue till either PgUp, PgDn,Ok or Isc is hit
while(1)
{
if(mouseinit!=0)
showms_ptr();
getkey();
//if Esc is hit or Ok is selected
if(scan==1 && button==0)
{
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
if(mouseinit!=0)
showms_ptr();
return;
}
//if PgDn is selected and it is not the last help screen
else if((scan==81) && (y!=to) && button==0)
{
// menubox(6,13,18,64,112,0);
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
row=5;
break;
}
//if PgUp is selected and it is not the first help screen
else if((scan==73) && (y!=from+14) && button==0)
{
y-=28;// go back by 14 lines
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
row=5;
break;
}
else if(button==1 && xgrid==120 && ygrid==32)
{
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
if(mouseinit!=0)
showms_ptr();
return;
}
}
}*/
}
}
/* displays context sensitive help */
void displayhelp(index)
int index;
{
char *p;
int areareqd,i,row;
char *sapthelp[]={
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
" ÜÜÜÜÜÜÜÜÜÜÜÜÜ",
" Record Menu",
" ßßßßßßßßßßßßß",
" The Record menu provides commands for",
" * creating new record",
" * opening existing record",
" * saving record",
" * saving record under a different name",
" * closing a record",
" * quitting SaptaSwara",
"",
"",
"",
"",
" Edit Menu",
" ßßßßßßßßßßß",
" The Edit menu provides commands to",
" * select the notes for edit operation",
" * copy the notes for paste operation",
" * insert the notes at a given position",
" * clears the selected notes ",
" * cuts the selected notes for paste operation",
" * merges two records together",
"",
"",
"",
"",
"",
" Settings Menu",
" ßßßßßßßßßßßßßßß",
" The settings menu provides commands to",
" * set the pitch of a note",
" * set the persistance of a note",
" * set the pause between two notes",
" * change to higher octave set of 13 notes",
" * change to lower octave set of 13 notes",
"",
"",
"",
"",
"",
"",
" ÜÜÜÜÜÜ",
" Play",
" ßßßßßß",
" The play menu provides commands for",
" * loading a record to play",
" * playing a record forwards",
" * playing a record backwards",
" * playing 20 records continously",
" * manipulating the volume of play operation",
"",
"",
"",
"",
"",
" Help",
" ßßßßßß",
" The help menu provides information about",
" version and copyright information.",
"",
" Online help comes up in a special help window.",
" The text in the help window is the \"help screen\".",
"",
"",
"",
"",
"",
"",
"",
" Record³New ",
" ßßßßßßßßßßßß",
" (Alt-R N)",
"",
" Creates a new record. You have to type in",
" the name of the record. If the record does",
" not exist you have the option of creating",
" a new record of that name.",
"",
"",
"",
"",
"",
"",
" Record³Open",
" ßßßßßßßßßßßßß",
" (Alt-R O)",
"",
"Lets you open an existing record.",
"If the record does not exist a new record by",
"that name is created.",
"",
"",
"",
"",
"",
"",
"",
" Record³Save",
" ßßßßßßßßßßßßß",
" (Alt-R S)",
"",
"Allows you to save the current record.",
"The hotkey is F2 which saves the current",
"record directly without having to go to the",
"record menu.",
"",
"",
"",
"",
"",
"",
" Record³Save As",
" ßßßßßßßßßßßßßßßß",
" (Alt-R A)",
"",
"Renames the current record with the new",
"record name. The original record remains",
"intact. The new record becomes the current",
"active record.",
"",
"",
"",
"",
"",
"",
" Record³Close",
" ßßßßßßßßßßßßßß",
" (Alt-R C)",
"",
" This command closes the active record.",
" The same command is used to close the",
" record in edit mode as well as the play",
" mode",
"",
"",
"",
"",
"",
"",
" Record³Exit",
" ßßßßßßßßßßßßß",
" (Alt-R X)",
"",
"Use this option to exit from Sapta-Swara. If",
"a record is modified without saving it, you are",
"prompted to do so. The hot key Alt-X, also",
"allows you to exit Sapta-Swara.",
"",
"",
"",
"",
"",
"",
" Edit³Select",
" ßßßßßßßßßßßßß",
" (Alt-E S)",
"",
"This command allows to select the notes",
"for the cut, copy, clear or paste operations",
"during the edit operation of a record",
"",
"",
"",
"",
"",
"",
"",
" Edit³Copy",
" ßßßßßßßßßßß",
" (Alt-E C)",
"",
"This command copies the selected notes",
"at the same time leaving the selected notes",
"intact. Thereafter the paste command can",
"be used to paste the selected notes at the",
"given location.",
"",
"",
"",
"",
"",
" Edit³Paste",
" ßßßßßßßßßßßß ",
" (Alt-E P)",
"",
"The paste command is used to paste",
"the selected notes after copy or cut",
"operation at the given user location.",
"",
"",
"",
"",
"",
"",
"",
" Edit³Clear",
" ßßßßßßßßßßßß ",
" (Alt-E L)",
"",
"This command clears the number",
"of notes selected by the select",
"command. The notes so cleared cannot",
"be retrieved.",
"",
"",
"",
"",
"",
"",
" Edit³Cut",
" ßßßßßßßßßßßß ",
" (Alt-E T)",
"",
"This command cuts the selected number",
"of notes selected by the select operation",
"for the paste operation at the given user",
"location at the current active record.",
"",
"",
"",
"",
"",
"",
" Edit³Merge",
" ßßßßßßßßßßßß ",
" (Alt-E M)",
"",
"This command merges one record with",
"another. If the destination record does",
"not exist then it is created else it is",
"appended at the end.",
"",
"",
"",
"",
"",
"",
" Settings³Pitch",
" ßßßßßßßßßßßßßßßß",
" (Alt-S P)",
"",
"The pitch option in settings menu will",
"enable the user to set the pitch of",
"all the notes as a whole or individual",
"a note.",
"",
"",
"",
"",
"",
"",
" Settings³Persistance",
" ßßßßßßßßßßßßßßßßßßßßßß",
" (Alt-S R)",
"",
"The persistance option in settings menu will",
"enable the user to set the persistance of a",
"note i.e. how long a note should sound on the",
"press of a key.",
"",
"",
"",
"",
"",
"",
" Settings³Pause",
" ßßßßßßßßßßßßßßßß",
" (Alt-S A)",
"",
"The pause option in settings menu will enable",
"the user to set the pause between two notes",
"i.e. the soundless gap between two individual",
"notes can be set using this option.",
"",
"",
"",
"",
"",
"",
" Settings³Higher Set",
" ßßßßßßßßßßßßßßßßßßßßß",
" (Alt-S U)",
"",
"The higher set refers to the higher frequency",
"set or the higher octave set of 13 notes. The",
"hotkey Alt-U can also be used in the edit mode",
"which will perform the same operation.",
"",
"",
"",
"",
"",
"",
" Settings³Lower Set",
" ßßßßßßßßßßßßßßßßßßßß",
" (Alt-S W)",
"",
"The lower set refers to the lower frequency set",
"or the lower octave set of 13 notes. The hotkey",
"Alt-W can also be used in the edit mode which",
"will perform the same operation.",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
" Play³Load",
" ßßßßßßßßßßß",
" (Alt-P L)",
"",
"The load command option in the play menu loads",
"a record in read mode so that the record can be",
"played forward or backward. Here no edit operation",
"can take place.",
"",
"",
"",
"",
"",
"",
" Play³Play Forward ",
" ßßßßßßßßßßßßßßßßßßß",
" (Alt-P F)",
"",
"The play forward option in the play menu plays",
"the record loaded into the memory by the load",
"command. The play forward option plays the record",
"in the forward direction i.e. as the record was",
"edited and saved.",
"",
"",
"",
"",
"",
" Play³Play Backward ",
" ßßßßßßßßßßßßßßßßßßßß",
" (Alt-P B)",
"",
"The play backward option in the play menu plays",
"the record loaded into the memory by the load",
"command. The play backward option plays the record",
"in the backward direction i.e. from the last note",
"to the first.",
"",
"",
"",
"",
"",
" Play³Play Continuous ",
" ßßßßßßßßßßßßßßßßßßßßßß",
" (Alt-P C)",
"",
"The play continuous option in the play menu plays",
"twenty continuous records which are loaded when",
"this option is selected. The records are of user's",
"choice and on playing the last record all the",
"records are played again .",
"",
"",
"",
"",
"",
" Play³Volume ",
" ßßßßßßßßßßßßß",
" (Alt-P V)",
"",
"The volume option in the play menu sets the",
"volume of the record before it is played.",
"The hotkeys up arrow and down arrow keys can",
"be used to increase or decrease the volume during",
"play forward or backward.",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
" Help³Contents",
" ßßßßßßßßßßßßßßß",
" (F1-C)",
"",
"The contents option in the help menu opens",
"a help window that displays several topics",
"to choose from.",
"",
"",
"",
"",
"",
"",
"",
" Help³Index",
" ßßßßßßßßßßßß",
" (F1-I)",
"",
"The online help comes with a comprehensive",
"alphabetic index. When you are in the index",
"you can scroll through the index. Once the item",
"you want is highlighted, press Enter to go to",
"the Help screen for that item.",
"",
"",
"",
"",
"",
" Help³Help on Help",
" ßßßßßßßßßßßßßßßßßßß",
" (F1-H)",
"",
"This option in the help menu enables the user",
"to know how the Sapta-Swara online help works.",
"This is a help window on using the online help.",
"",
"",
"",
"",
"",
"",
"",
" Help³About",
" ßßßßßßßßßßßß",
" (F1-A)",
"",
"When you choose about command from the help menu,",
"a dialog box appears, showing Sapta-Swara version",
"and copyright information.",
"To close the box:",
"Click Ok or Press Enter or Press Esc.",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
" About Dialog Box",
" ßßßßßßßßßßßßßßßßßß",
"",
" To close the dialog box:",
" * Press Esc, or",
" * Click Ok.",
"",
"",
"",
"",
"",
"",
"",
"",
" Keyboard Layout",
" ßßßßßßßßßßßßßßßßß",
"",
" S D G H J <-- Keys",
" Re Ga Ma Dha Ni <-- Swaras",
"",
" Z X C V B N M ,",
" Sa Re Ga Ma Pa Dha Ni Sa",
"",
" The Sapta-Swara keys are mapped out onto the",
" keyboard as shown above. ",
"",
"",
"",
"ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ",
"Û $S$A$P$T$A$-$S$W$A$R$A Û",
"ßßßßßßßßßßßßßßß",
"",
" This product has been designed & developed",
"by Vikram.S residing at Bangalore, India. He is",
"an admirer of Carnatic as well as Hindustani",
"classical style of music. This is his attempt",
"to help the lovers of music know a little about",
"Carnatic as well as Hindustani classical style",
"of music.",
"",
"",
" Music in general can be divided into",
"Carnatic classical, Hindustani classical, Western",
"classical, folk, jazz, pop, etc. The two major",
"systems of classical music in India today are",
"the Carnatic and the Hindustani. Though today they",
"appear to be quite distinct styles they in fact",
"have their origins in a common theory and source.",
"",
" The pivotal concept of Indian music (Carnatic",
"and Hindustani) is Raaga (melody). Raaga is",
"India's contribution to world musicology.",
"",
" A highly scientific and practical scheme of",
"raaga classification introduced by Venkatamukhi",
"became the foundation for the Indian classical",
"music of the north and south. In fact so",
"comprehensive is this scheme that even other",
"systems of music can be classified in it.",
"",
" Raagas are made of different combination of",
"the \'Sapta\' (seven) swaras - Sa Sadjam; Ri",
"Rishabham; Ga Gaandharam; Ma Madhyamam; Pa",
"Panchamam; Dha Dhaivadam and Ni Nishadam.",
"",
" It is not necessary that all the \'Swaras\'",
"(notes) be present in a raaga. However it is",
"acknowleged that a minimum of five swaras are",
"complusory in the formation of a raaga. A music",
"maestro of India Dr.M. Balamurali Krishna",
"questioned this and composed a raaga with just",
"four notes.",
"",
" \'Swara\' is generally defined as a note whereas",
"\'Sruti\' (tone) constitutes the macrotonal",
"intervals between two swaras. The nuances of these",
"can be best understood in \'Prayoga\' (practice)",
"rather than theory.",
"",
" Though \'taala\' is defined as rhythm, in",
"Indian music it is much more than that. Whether in",
"vocal music or instrumental music taala plays a",
"creative and organic part in bringing out the",
"essence and elevating the musical expressions to",
"new dimensions. The major taalas are Aadi taala,",
"a cycle of eight maathras or beats, Roopak taala",
"of six maathras, etc.",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
" Sound",
" ßßßßßßß",
" This product attempts to bring out classical",
" music from the error indicating lowlevel PC",
" system speaker. Please make sure that the",
" inbuilt PC system speaker is working. No",
" multimedia speaker or multimedia sound card",
" is required. This product runs on a 16 or",
" higher bit processor in DOS mode on IBM PC",
" & clone machines.",
"",
"",
"",
""
};
areareqd=(20-4+1)*(67-12+1)*2;
p=malloc(areareqd);
if(p==NULL)
{
errormesg();
}
if(mouseinit!=0)
hidemsptr();
savevideo(4,12,20,67,p);
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
size(32,0);
messgline(15);
if(mouseinit!=0)
showms_ptr();
if(index==61)
{
int x=0,y=0,z=0;
x=index%10;
index=index/10;
z=index;
// calculate number of starting help message to be displayed
y=(84*z)+(14*x);
row=5;
while(1)
{
writestring(sapthelp[y],row,14,48);
y++;
row++;
if(row>18)
{
//continue till either PgUp, PgDn,Ok or Isc is hit
while(1)
{
if(mouseinit!=0)
showms_ptr();
getkey();
//if Esc is hit or Ok is selected
if(scan==1 && button==0)
{
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
status_line();
if(mouseinit!=0)
showms_ptr();
return;
}
//if PgDn is selected and it is not the last help screen
else if((scan==81) && (y!=588) && button==0)
{
if(mouseinit!=0)
hidemsptr();
// menubox(6,13,18,64,112,0);
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
row=5;
break;
}
//if PgUp is selected and it is not the first help screen
else if((scan==73) && (y!=532) && button==0)
{
if(mouseinit!=0)
hidemsptr();
y-=28;// go back by 14 lines
menubox(4,12,20,67,48,07);
drawbox(4,12,19,65,63);
writestring("[ ]",4,14,63);
writestring("X",4,15,59);
writestring(" Help ",4,36,63);
row=5;
break;
}
else if(button==1 && xgrid==120 && ygrid==32)
{
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
status_line();
if(mouseinit!=0)
showms_ptr();
return;
}
else if(button==0 && scan==59)
{
if(mouseinit!=0)
hidemsptr();
helponhelp(0,28);
restorevideo(4,12,20,67,p);
free(p);
status_line();
if(mouseinit!=0)
showms_ptr();
return;
}
}
}
}
}
else
{
int x=0,y=0,z=0;
x=index%10;
index=index/10;
z=index;
// calculate number of starting help message to be displayed
y=(84*z)+(14*x);
if(mouseinit!=0)
hidemsptr();
// display help screen
for(row=5; row<19; row++)
{
// writestring(sapthelp[y],row,14,112);
writestring(sapthelp[y],row,14,48);
y++;
}
// continue till Esc is hit or OK is selected
while(1)
{
if(mouseinit!=0)
showms_ptr();
ascii=0;
scan=0;
getkey1();
if(ascii==27 && button==0)
{
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
status_line();
if(mouseinit!=0)
showms_ptr();
return;
}
else if(button==1 && xgrid==120 && ygrid==32)
{
if(mouseinit!=0)
hidemsptr();
restorevideo(4,12,20,67,p);
free(p);
status_line();
if(mouseinit!=0)
showms_ptr();
return;
}
/* else if(button==0 && scan==59)
{
if(mouseinit!=0)
hidemsptr();
helponhelp(0,28);
restorevideo(4,12,20,67,p);
free(p);
if(mouseinit!=0)
showms_ptr();
return;
}*/
}
}
}
void about()
{
int area;
char *p;
size(32,0);
hidemsptr();
area=(18-5+1)*(61-19+1)*2;
p=malloc(area);
if(p==NULL)
{
errormesg(0,10);
}
if(mouseinit!=0)
hidemsptr();
savevideo(5,19,18,61,p);
menubox(6,19,18,60,112,7);
drawbox(6,19,17,58,127);
writestring("[ ]",6,21,127);
writestring("X",6,22,115);
writestring(" About ",6,35,127);
writestring("SAPTA-SWARA",7,33,112);
writestring("Version 1.0",9,33,112);
writestring("Copyright (c) 2000, 2001 by",11,25,112);
writestring("VIKRAM R&S ASSOCIATES.",13,28,112);
/*display OK button */
menubox(15,33,16,42,32,HALF_SHADOW);
writestring("O",15,36,46);
writestring("K",15,37,47);
messgline(11);
if(mouseinit!=0)
showms_ptr();
while(1)
{
if(mouseinit!=0)
showms_ptr();
ascii=0;
scan=0;
button=0;
getkey1();
if(ascii==ESC || ascii=='O' || ascii=='o' || ascii==ENTER && (button==0))
{
break;
}
else if(ascii==0 &&(button==1) && ((xgrid>=264) && (xgrid<=320)) && (ygrid==120))
{
menubox(15,33,16,42,112,NO_SHADOW);
menubox(15,34,15,41,32,NO_SHADOW);
writestring("OK",15,37,46);
delay(150);
break;
}
else if(ascii==0 && (button==1) && (xgrid==176) && (ygrid==48))
{
break;
}
else if(scan==59)
{
if(mouseinit!=0)
hidemsptr();
displayhelp(61);
messgline(11);
}
}
if(mouseinit!=0)
hidemsptr();
restorevideo(5,19,18,61,p);
status_line();
free(p);
if(mouseinit!=0)
showms_ptr();
}