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

Develop diablo 2 lod 1.13d dupe method for closed battle.net, Develop Diabl...

Develop Diablo 2 LOD 1.13d Dupe Method for Closed Battle.net This hack is for diablo 2 lord of destruction The program must work on all realms, all cores, all ladders (4x rea

Write a program of constructors and destructors, Write a program of constru...

Write a program of constructors and destructors Make a class drugs having encapsulated data for medicine name, whether solid or liquid, price and purpose of use. From this clas

Program, Byteland county is very famous for luminous jewels. Luminous jewel...

Byteland county is very famous for luminous jewels. Luminous jewels are used in making beautiful necklaces. A necklace consists of various luminous jewels of particular colour. Nec

Define one's complement operator, Define One's Complement Operator? The...

Define One's Complement Operator? The one's complement operator, occasionally called the "bitwise NOT" or "bitwise complement" operator produces the bitwise one's complement of

Write a program for simulating jet-powered car acceleration, The absolute l...

The absolute land-speed record of 763.035 MPH (Mach 1.02) was set in October 15 1997 by a jet-powered car called Thrust SSC in the Black Rock Desert of northern Nevada. The team th

Want an ea project for jack bsher, Want an EA project for Jack Bsher Pro...

Want an EA project for Jack Bsher Project Description: New EA game Skills required   Android, C++ Programming, PHP, Metatrader, SQL

Program for function in cpp, Question Write a program using c++ for the...

Question Write a program using c++ for the above function , at a= 1000, b=10 -3 ,10 -2 ,10 -4

#title. c program on pebble merchant, #questThere is a pebble merchant. He ...

#questThere is a pebble merchant. He sells the pebbles, that are used for shining the floor. His main duty is to take the length of the room’s sides. But he sometimes mistakes doin

Add words in dictionary - c++ program, Add words in Dictionary: void D...

Add words in Dictionary: void Dictionary::add( Object& objectToAdd ) {     if( !objectToAdd.isAssociation() )         ClassLib_error( __ENOTASSOC );     else

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