Тоже бился над этим - не вышло. Нельзя объявить два раза один и тот же порт.
Это выражение
Code
Dim Vport As Byte
PORTB.7 = Vport.0
PORTB.6 = Vport.1
PORTB.5 = Vport.2
PORTB.4 = Vport.3
PORTB.3 = Vport.4
PORTB.2 = Vport.5
PORTB.1 = Vport.6
PORTB.0 = Vport.7
лишь присваивает каждому биту порта значение соответствующего бита переменной Vport.
На PBP есть пример работы с виртуальным портом, но только для работы с LCD, но там нужно корректировать файл компилятора, подключать внешний модуль с макросами. Возможно, для протона кто-то что-нибудь придумает.