I am using a Rix51 board with 8xc251TB and SAB82526 HDLC controller. I want to memory map the HDLC registers so that I can easily read-write to them in C code. For example to write to a FIFO register addressable at 0x40 location internally in SAB82526 I do the following : #define FIFO *(volatile unsigned char far *)(0x01FD40) FIFO = 0x01; Is the above incorrect in any way because I am unable to write in the above manner . Though there are no errors/warnings during building but while running on the simulator (uvision2) , I dont get the expected values at expected addresses. Can anyone help? Thanks Puneet