title: Explain why mikroC's PIC18F4550 HID example works
body: <p>The <a href="http://www.mikroe.com/mikroc/pic/" rel="nofollow">mikroC compiler</a> has a library for HID (Human Interface Device) USB communication. In the supplied samples, they specify that the buffers below should be in USB RAMand use a PIC18F4550 as the target microcontroller. </p>
  
  <pre><code>unsigned char readbuff[64] absolute 0x500;   // Buffers should be in USB RAM, please consult datasheet
  unsigned char writebuff[64] absolute 0x540;
  </code></pre>
  
  <p>But the PIC18F4550's datasheet says USB RAM ranges from 400h to 4FFh.</p>
  
  <p>So why does their example work, when their buffers appear not to be between 400h to 4FFh?</p>
  
  <p><a href="http://pastebin.com/RCNXGAdV" rel="nofollow">Link to full source</a>.</p>