PIC16F628A Blinking LED
You have a couple of issues with your code and circuit.


A while loop with a false condition will never loop. Do you mean to put "while(0)" or is that a typo? Either way, that loop is never looping. Change the 0 to a 1.
The PIC16F628A has a PGM pin that it uses in LVP (Low Voltage Programming) mode. It shares the same pin as RB4. The PGM pin must be tied to ground under normal operation and pulled high during programming (your programmer should pull it high during a programming sequence). If the PGM pin is left floating, the chip will randomly reset for no explicable reason. Or just not run at all.
Microcontroller based systems are typically single-purpose hardware. There is no operating system, so the code you program into the MCU has no higher-level entity to return to. For that reason, the main() function should be void and there should be no return statement at the end. Defining main() to return an int will probably not break anything, but it's considered poor coding practice.