You have chosen a quiet advanced chip to start your program learning.
Is there any way you could use a more basic chip from the Pic16F range like a pic16F877A / 76A etc ?
For the Pic18 the Ram area can be quiet confusing.
From the picture below you can see that you have two "banks" of Ram , Bank 0 or Bank 1, other similar chips may have many more Banks like 2 -8 etc.
To use Bank1 or above you need specify in your code that you want to use a particular Bank with the BSR.
However for Bank 0 you do not, its contents are always available to the system regardless of what other Bank you may be using, thats why Bank 0 is called the Access bank.
To confuse matters, the system needs some Ram for its Registers and they reside in part of both Bank 0 and Bank15, as shows in the pic below, and you must not use those areas in your code,
Where is says" Unused, Read as 00" , simply means there to is no Ram there to use.
Code:
cblock 0x00 ; Bank 0 Access Ram Use 0x00 to 0x5F Only
d1,d2,d3,d4 ; delay work files
PORTAOLD ; main loop files
PORTACHG
PORTEOLD
PORTECHG
FIRES
RECOVER
endc
cblock 0x100 ; Bank 1
endc