What I do wrong ?!
I adapted "keypad.bas" to my hw :
Code:
KB_ROW        = 3                                      ; 3 ROW keypad
KB_ROW_PORT   = PORTB                                  ; Keypad ROW on PORTB
KB_ROW_BIT    = 3                                      ; ROW0 = PORTB.3
KB_COL        = 3                                      ; 3 COL keypad
KB_COL_PORT   = PORTB                                  ; Keypad Col on PORTB
KB_COL_BIT    = 0                                      ; COL0 = PORTB.0
DebounceDelay = 0x80                                   ; debounce delay 41mSec
SINGLE_SCAN   = 0                                      ; Scan ;till a key is pressed   
KEYPAD_AUTOREPEAT = 1
and I wrote this pice of code :
Code:
@ DEVICE pic16F628A, XT_OSC, WDT_OFF, PWRT_ON, BOD_OFF, MCLR_ON, LVP_OFF

   Define   OSC 4           ' 4MHz 
   CMCON = 7                ' Disable on-chip comparator, PORTA in digital mode

include "alldigital.pbp"
include "C:\PBP\enc_KEY.BAS" 

TrisA = %00000000
PortA = %00000000
PortB = %00111000
TrisB = %00011000

oldState VAR BYTE
newState VAR BYTE
Q_Count VAR WORD
DIR VAR BIT

UP CON 1
DN CON 0


Main_Loop:  
newState = (PortB & %00111000)  

portb.5 = 1  
gosub encoder
portb.5 = 0

if dir = up then 
porta.0 = 0
porta.1 = 1
endif                           
if dir = dn then 
porta.0 = 1
porta.1 = 0
endif
goto Main_Loop


encoder:
If newState <> 0 THEN
If newState <> oldState THEN        ' Changed from last time?
  Select Case oldState
    Case 32
    If NewState = 128 THEN          ' Was 1 now 4 = Up
      Q_Count = Q_Count + 1
      DIR = UP
    ELSE                          ' Was 1 now 2 = Down
      Q_Count = Q_Count - 1
      DIR = DN
    ENDIF
  
    Case 64
    If NewState = 32 THEN        ' Was 2 now 1 = Up
      Q_Count = Q_Count + 1
      DIR = UP
    ELSE                           ' Was 2 now 4 = Down
      Q_Count = Q_Count - 1
      DIR = DN
    ENDIF
  
    Case 128
    If NewState = 64 THEN        ' Was 4 now 2 = Up
      Q_Count = Q_Count + 1
      DIR = UP
    ELSE                       ' Was 4 now 1 = Down
      Q_Count = Q_Count - 1
      DIR = DN
    ENDIF
  END SELECT

  oldState = NewState 

ENDIF
ENDIF
Return
..but no change in porta.0 or porta.1 state ...