Тоже бился над этим - не вышло. Нельзя объявить два раза один и тот же порт. 
 Это выражение 
 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, но там нужно корректировать файл компилятора, подключать внешний модуль с макросами. Возможно, для протона кто-то что-нибудь придумает.