Pity about a loop using more words. I wouldn't have thought so with so many IF statements.

I wonder if this would work to access ports as an array
Code:
vPWMPos var byte
vPWM var byte[6]
pA var portb.0
BLA var byte
'
FOR BLA = 0 TO 6
IF vPWMPos=vPWM[BLA] THEN pA[BLA]=1
NEXT BLA
'
In C, you can access arrays out of bounds like that, and we know portb pins are in consecutive memory locations.
. Don't know with PBP though.