.n0rig.,

I'll try to get more detail to you this evening if you need it, but here's some info to get you started.

The button command will work on any I/O so long as the pin you select is set to a digital output. As I'm a little more familar with 16 and 18 series, let's stick with the 16F684. Now, most of the pins on this chip can be used as analog or comparator inputs, so you need to turn these off. Something like this (sorry, this is quick and dirty):

Code:
CMCON0 = %00000111    ' Turn off comparator bits and set pins to digital I/O
ADCON0.0 = 0               ' Disable ADC
TRISC = %00001111       ' Make port c pins 0-3 inputs and the rest as outputs 
b0   VAR    byte    ' Byte variable for button
HIGH PORTC.4

Start:

BUTTON PORTC.0, 0, 255, 0, b0, 1, drive_forward  ' If button is pressed, goto drive_forward routine

GOTO Start

drive_forward:
    LOW PORTC.4
    PAUSE 500
    HIGH PORTC.4
    PAUSE PORTC.4
goto Start
Now, as far as hookup, you should connect a 10k resistor to 5V (whatever is powering VDD) and to pin RC0. Connect one side of the momentary switch to RC0 and the other to ground. Connect the positive side of an LED to 5V and the other to, say, a 1k resistor and the other side of the resistor to RC4. Assuming I made no mistakes, you should see the LED blink once when you press the switch.

To control motors, it depends on what you want to do. If you're NOT trying to vary the speed and just want to turn the motor on and off (one speed), I'd look at an H-bridge IC or make one with transistors or MOSFETs. Another option is to use a DPDT and a simple SPST relay, which you'd have to interface to the PIC with transistors or an optoisolator. The DPDT will change the direction will the SPST will turn the motor on and off. If you do want to vary the speed keep in mind your controller must be able to vary the signal to the PIC as well. If you want to go this route, I'd search the forum on PWM and/or motors. The rumble packs are just simple brushed DC motors as far as I know, so if one speed is okay, you just feed them power and they go - they don't need PWM to function. You would use PWM to vary the speed, but my knowledge on this subject is limited at best.

As far as steering, I'd use a cheap servo and the PULSOUT command. Optionally, you could use continuous servos for the wheels too and get varying speed easy with the PULSOUT command, but it won't go very fast.