I think it will be a lot of fun once I get started.
It will definitely be fun. I'm so hooked on electronics, that now my programmer requires a double-sided board, and this is the first time I'm attempting a double sided PCB.
I noticed the flash memory for storing instructions is generally much larger than the EEPROM built into these chips.
Flash is normally larger in size than ANY EEPROM. EEPROMS tend to be more expensive than flash as well, but they are easier to program (requires less external circuitry).
So I was wondering if there is any posisible way that the PIC could write into unused spaces of program memory while it is running, and retrieve this data later?
It is possible, but as Nigel said, it is NOT recomended. Why do you want to write into the
same memory the PIC is using to function?
Maybe with a chip that allows in circuit debugging or something. Again, I'm still reading these things, so I'm not sure what the limitations at all.
The datasheet of any microcontroller you use will tell you what code set it is compatible with, its limitations, and the device pinout.
What you may want to do is go externally. Instead of a microcontroller, use a microprocessor and any ROM memory (either flash or EEPROM).
The code is stored in the EEPROM, and the microprocessor executes the code. Attach another ROM memory to any output of the microprocessor, and simply send data to it.
Have you visit Nigel's site? He may have alot of info on the PIC microcontrollers.
Do some of the pins need to be wired in a certain way?
Most IC's want the top-left pin (VCC) to +5V, and the bottom-right pin (GND) to 0V. The datasheet on your microcontroller will explain more.
Could you describe basically what is involved?
Basically in any microcontroller setup, the ROM (eeprom or flash) has the code in the format the chip can recognize. Once the chip becomes active, the code begins at byte 0, and the chip reads it. the external clock applied to the chip through XTAL pin (I don't know the exact pin name for a PIC) controls the speed in which the instructions are processed.
The instructions are simply bytes, and the parameters are bytes as well.
Each instruction is executed one after the other until it receives a command that makes the uC go to a different area of the rom.
First, you need to make a final decision on the chip before I can explain the instructions any further.