Showing posts with label Advance C. Show all posts
Showing posts with label Advance C. Show all posts

Saturday, 21 November 2015

What is endianness of a processor Little endian and Big endian

        What is endianness of a processor Little endian and Big endian         


Endianness of a processor

If the size of data type is more than one byte then endanness decide the memory representation of data type. There are two types of microprocessor according to endianness.

Little-endian Format:
The processors which follow the following memory representation of data are known as little-endian processor.
little endian format


First A will fill then B then C then D then E and so on from right to left. Example of processor: 8085, 8086, 8088, 80286, 80386, p1, p2 etc.

Big-endian Format:
big endian format

The processors which follow the following memory representation of data are known as big-endian processor.
  
First A will fill then B then C then D then E from right to left. Example of processor: Motorola, IBM PC etc.

If you have any problem in what is endianness of a processor, you can ask here.

Thursday, 19 November 2015

Write a c programming code to create simple paint brush software

      Write a c programming code to create simple paint brush software       


Write a c programming code to create simple paint brush software or application


#include<dos.h>
#include<stdio.h>
#include<graphics.h>
#include<stdlib.h>
void main()
{
int x,y,b,px,py,c,p,s,cl;
int d=0,m;
union REGS i,o;
initgraph(&d,&m,"c:\tc");
i.x.ax=1;
int86(0x33,&i,&o);
i.x.ax=8;
i.x.cx=20;
i.x.dx=450;
int86(0x33,&i,&o);
printf("Brush style insert number from 0 to 5  : ");
scanf("%d",&p);
printf("Brush size insert number from 1  to 7  : ");
scanf("%d",&s);
printf("Brush color insert number from 1 to 16 : ");
scanf("%d",&cl);
clrscr();
cleardevice();
printf("\t\t**********DRAW IMAGE************");
while(!kbhit())
{
i.x.ax=3;
b=o.x.bx;
x=o.x.cx;
y=o.x.dx;
px=x;
py=y;
int86(0x33,&i,&o);
if(cl==16)
{
c=random(16);
}
else
{
c=cl;
}
setcolor(c);
if(b==1)
{
i.x.ax=3;
int86(0x33,&i,&o);
x=o.x.cx;
y=o.x.dx;
b=o.x.bx;
switch(p)
{
case 1:circle(px,py,s);break;
case 2:ellipse(px,py,0,270,s,s+2);break;
case 3:fillellipse(px,py,s+2,s);break;
case 4:rectangle(px,py,x,y);break;
case 5:sector(px,py,30,120,s,s);break;
default:line(px,py,x,y);
}
}
}
getch();
restorecrtmode();
closegraph();
}

      Cursor program by c programming changes the position of cursor   

Write a c program which changes the position of cursor

#include<dos.h>
#include<stdio.h>
void main()
{
union REGS i,o;
i.h.ah=2;   //positioning the cursor 
i.h.bh=0;
i.h.dh=30;   
i.h.dl=45;
int86(0x10,&i,&o);
printf("World");
getch();
}


             Write a c program to display mouse pointer                  

#include <dos.h>
#include <stdio.h>
void main()
{
union REGS i,o;
i.x.ax=1;
int86(0x33,&i,&o);
getch();
}

Explanation: To write such program you must have one interrupt table. Following table is only small part of interrupt table.
This table consists for column. They are:
(1)   Input
(2)   Output
(3)   Service number
(4)   Purpose

Now look at the first row of interrupt table. To show the mouse pointer assign ax equal to 1 i.e. service number while ax is define in the WORDREGS

struct WORDREGS {
unsigned int ax, bx, cx, dx;
unsigned int si, di, cflag, flags;
};

And WORDRGS is define in the union REGS

union REGS {
struct WORDREGS x;
struct BYTEREGS h;
};

So to access the structure member ax first declare a variable of REGS i.e.

REGS i, o;
Note: We generally use i for input and o for output

To access the ax write i.x.ax (We are using structure variable i because ax is input
(See in the interrupt table)

So to show mouse pointer assign the value of service number to it:

i.x.ax=1;

To provide this information to microprocessor
we use int86 function. It has three parameters

1. Interrupt number i.e. 
0x33
2. union REGS *inputregiste i.e. &i
3. union REGS *outputregiste i.e. &o;
So write: int86 (0x33, &i, &o);