title: PIC 16F84 PCLATH Bit3+4 unnecessary for CALL/GOTO?
body: <p>I am trying to simulate the <code>PIC16F84</code> and now need to implement <code>PCL</code> / <code>PCLATH</code> registers.</p>
  <p>The <code>PIC16F84</code> has 1K of Program memory.</p>
  <p>The <code>PCL</code> is 8Bit wide, so in this case Bit 0 and 1 of <code>PCLATH</code> is used to switch between the four Pages each having a size of <code>256B</code>, am I right so far?</p>
  <p>Based on this, I do not understand the following:</p>
  <p>The <a href="https://ww1.microchip.com/downloads/en/devicedoc/35007b.pdf#page=41" rel="nofollow noreferrer">Datasheet</a> states for a <code>GOTO</code>:</p>
  <blockquote>
  <p>The
  upper bits of PC are loaded from
  PCLATH&lt;4:3&gt;. GOTO is a two-
  cycle instruction.</p>
  </blockquote>
  <p>But aren't the upper Bits of <code>PCLATH</code> too much? I mean there are only 4 Pages, each 256B, hence only bit 0 and 1 of <code>PCLATH</code> are needed. Or in other words - Bit 3 and 4 of <code>PCLATH</code> are always 0 ? Why would I then need to care about 'PCLATH' when performing a 'CALL' or 'GOTO' ?</p>