Standard input- output using motorola and intel devices, C/C++ Programming

Assignment Help:

Talking to IO boards inside a computer or microcontroller depends upon the principles used by the microprocessor to address physical devices. On Motorola systems all devices connected to the processor local bus are memory mapped. Therefore it is fairly easier to address by means of a pointer the IO device, since it is just like RAM. In the case of Intel devices, the IO is not memory mapped, it is IO mapped. This causes a minor problem is accessing such devices, since the processor has to use IN, OUT commands and the address, therefore a simple pointer will not do. A non-ANSI function exists on PC's called 'portoutb' and 'portinb' these are used to input and output a byte of data (char) to an IO address (int). 

The syntax depends upon the compiler used by usually consists of
 
        outportb(address,data);
        data = inportb(address);
 
Care should be taken when porting code from an Intel platform to a Motorola platform since these functions are not standard ANSI and will need to converted for the Motorola Platform.  Below is shown an example for a 8255 IO board configured at a base address 0x2b4
 
 #include stdio.h
 #include dos.h
 
void main()
{
     Date: 26th August 1992 
    Version 1.0 
    Function : Reads port A and display it on the screen and portb,c       
     Modifications:  Non Standard non portable code PC only
    */
 
  int CardAddress = 0x2b0, BaseAddress, Port_a;
  int  Port_b, Port_c, ControlRegister;
  unsigned char ControlWord = 0x90, InputValue;
 
   BaseAddress = CardAddress + 4;
   Port_a = BaseAddress;
   Port_b = BaseAddress + 1;
      Port_c = BaseAddress + 2;
      ControlRegister = BaseAddress + 3;
    
      ControlWord = 0x90;
    
   outportb(ControlRegister, ControlWord);
    
   while (1)
   {
      InputValue = inportb(Port_a);
      outportb(Port_b, InputValue);
      outportb(Port_c, InputValue);
        
        printf("Read from A = %x\n", InputValue);
    }
}    
 
Despite these additions NON-ANSI functions they are only DOS commands and hence using Windows NT you will need to write a windows driver, for this you will need C++ and a few books on Windows.


Related Discussions:- Standard input- output using motorola and intel devices

Matrices, write a c program that multiplies 3 martices

write a c program that multiplies 3 martices

Substitution model, (a) Write a procedure called (mult x y) that multiplies...

(a) Write a procedure called (mult x y) that multiplies two numbers x and y in a recursive manner using successive addition. Specifically, note that a x b = a + a + .... + a (b tim

Area under curve, Write a program to find the area under the curve y = f(x)...

Write a program to find the area under the curve y = f(x) between x = a and x = b, integrate y = f(x) between the limits of a and b

Explain about inheritance, Inheritance and Reuse Consider a car manufac...

Inheritance and Reuse Consider a car manufacturing company. When they require building a new car, they have two choices. They can start from the scratch, or they can change an

What operators can or cannot be overloaded?, A: Mostly can be overloaded. T...

A: Mostly can be overloaded. The only C operators which can't be are. and?: (and sizeof, that is technically an operator). C++ adds a few of its own operators, mostly which can be

List, Is there any difference between List x; and List x ()? Can you please...

Is there any difference between List x; and List x ()? Can you please provide me assignment help.

GPA Calculator, I am having trouble declaring a variable and returning a va...

I am having trouble declaring a variable and returning a value from my function.

Car rental system, Car Rental System This system tracks cars in a rental co...

Car Rental System This system tracks cars in a rental company. Each car has a number (assume its plate number), type (small car, four wheel car), and status (rented, available). T

Microprocessor programming, I need to program a microprocessor that would h...

I need to program a microprocessor that would have a temperature, gas, humidity and PIR sensor connected to it. It would send the data to a PC via a Zigbee and receive commands fro

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd