Hello.
Please forgive me, but I'm still not sure what are you trying to do. What puzzles me most is PAUSE 500 because when a program is executing PAUSE it can't do anything else until the specified period expire (unless abrupted by interrupt). In your case, whenever the program hits PAUSE 500 it is just sitting there for the half of a second.
In my example the program is looping in MAIN waiting a key to be pressed (with some sort of debounce routine) and counting ~500ms ON/OFF time for the appropriate LED (it counts nothing until the key is pressed for the first time). After keypress it jumps to SWITCH_LED subroutine where it adjusts index (indx variable) to grab a value from the LOOKUP table in order to toggle an appropriate LED (that way I'm addresing a port by its number instead by its name), and then returns in main loop.


if I like to change, which port I like to be low,of high,I mean because I like to make some ,to combinations of led,to high,or low,to I do it myself!
To change ports with attached LEDs you need to change values in LOOKUP table. You can use numbers 0-15 instead of port names, where 0 is portb.0, and 15 would be porta.7. However on 16F628 you can go as far as 12 (porta.4) or 13 (porta.5), depending whether you use external or internal oscillator. It's not same for all PICs. For example on 16F877 you can use full range of 0-15 because it spreads over portb and portc.