#include<dos.h>
#include<process.h>
#include<string.h> // for various functions of strings like gets or puts
#include<fstream.h> // for files
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
void starting();
void typing();
void openfile(char *);
void newfile(char *);
void print(char i[],int x,int y);
char ch ;
char s[20];
char xs[20];
char ys[20];
void main()
{
clrscr();
textmode(BW40);
print(" MY NOTEPAD ",3,14);
print(" Presented",6,14);
print(" By ",7,17);
print(" Zahid Ashfaq",8,13);
textmode(BW80);
starting();
typing();
getch();
}
void starting()
{ textcolor(1);
textbackground(WHITE);
clrscr();
for(int i=0 ;i<45;i++)
{if(i==0||i==44)
cout<<"||";
else if(i==4)
cout<<" ctrl+O(Open file)";
else if(i==24)
cout<<" ctrl+n(New file)";
else
cout<<"=";}
gotoxy(80,24); cout<<endl;
for( i=0 ;i<37;i++)
{if(i==0||i==47)
cout<<"||";
else if(i==4)
cout<<" ctrl+s(save file)";
else if(i==16)
cout<<" ctrl+k(Help)";
else if(i==26)
cout<<"ctrl+q(Quit)";
else
cout<<"=";}
}
void typing()
{ int i=0;
char *p=new char[2000];
step1 : int row=2 ,col=1;
while(ch!=19)
{
gotoxy(col,row);
step2: if(col==79)
{col=1;row++;}
else if (row==24)
goto step1;
int a;
ch=getch();
if(ch == 0)
ch = getch();
a=ch; // To convert character to its ascii code
switch(a)
{
case 13 : row=row++;col=1; // case for press enter for next line
gotoxy(col,row);
ch='\n';
break;
case 8 :
if(col==1) // case for backspace
{row--;col=78;}
else
{col--;
cout<<" ";
i--;
}
continue;
case 9 : col=col+8; // case for tab function
if(col>79)
{row++;col=col-79;
}
continue;
case 72 : row--; //upper arrow key
continue;
case 77 : col++; continue; //right arrow key
case 75 : col--; continue; //left arrow key
case 80 : //down arrow key
row++;
continue;
case 14 : clrscr(); //to creat new file ctrl+n
cout<<"Enter File`s Path ";
gets(s);
newfile(s);
starting();
break;
case 15 : clrscr(); //to open existing file ctrl+o
cout<<"Enter file`s path to be open :" ;
gets(xs);
starting();
openfile(xs);
continue;
case 11 : clrscr();
gotoxy(20,3);
cout<<"~`~`~`~`~ HELP PORTION ~`~`~`~`~";
gotoxy(20,4);
cout<<"Following Are the Keys Used in My-Note PAD : ";
int za=10;
for(int i=0;i<46 ;i++ )
{
gotoxy(za,5);
cout<<"=";za++;}
za=6;
for(i=0;i<15;i++)
{gotoxy(10,za);
cout<<"|"<<endl;
za++;}
za=10;
for( i=0;i<46 ;i++ )
{
gotoxy(za,21);
cout<<"=";
za++;}
za=6;
for(i=0;i<15;i++)
{gotoxy(56,za);
cout<<"|"<<endl;
za++;}
gotoxy(13,6);
cout<<" 1-To Open File Press ( ctrl + o ) ";
gotoxy(13,8);
cout<<" 2-To create New File Press(ctrl+n) " ;
gotoxy(13,10);
cout<<" 3-MOve Arrow keys (up,down,right,left)" ;
gotoxy(13,12);
cout<<" 4-Back Space ";
gotoxy(13,14);
cout<<" 5-Save File(ctrl+s)";
gotoxy(13,16);
cout<<" 6-Enter For new line ";
gotoxy(13,18);
cout<<" 7-Enter ctrl+q(Quit)";
gotoxy(13,20);
cout<<"Press any key to Go back " ;
getch();
clrscr();
starting();
continue;
case 17 : clrscr();
gotoxy(24,6);
cout<<"Thank You For using PIcs-soft Word ";
cout<<endl;
gotoxy(24,8);
cout<<"Have A NIce Time ";
getch();
exit(0);
}
cout<<ch;
p[i]=ch;
col++; i++;
p[i]='\0';
}
clrscr();
cout<<"enter path where you want to save the file ";
gets(ys); int j=0;
ofstream f1(ys,ios::out);
while(p[j]!='\0')
{f1.write((char*)&p[j],sizeof(p[j]));
j++;}
f1.close();
delete [] p;
exit(0);
}
void newfile(char *s)
{
ofstream file(s,ios::out);
file.close();
}
void openfile(char *xs)
{ char ch; int col=3,row=2;
gotoxy(col,row);
ifstream file(xs,ios::in);
while( file.read((char*)&ch,sizeof(ch)))
cout<<ch;
file.close();
}
void print(char i[],int x,int y)
{
char far* ptr=(char far*) 0xB8000000+(160*x)+(2*y) ;
for(int a=0; i[a]!='\0'; a++)
{
*ptr=i[a];
*(ptr+1)=16;
ptr=ptr+2;
delay(250);
}
ptr=ptr+2;
}