Im having trouble getting this to work. my circuit is the same as Gadelhas has in his schematic, except im not grabbing any inputs with my circuit and i'm using a different PIC . The way I have it coded is so that I can use it with a 16F648A w/ 4Mhz internal OSC and I think it should light each led on the MCP23S17s PORTA one at a time before reseting at the end of the string and repeating, but its not working in that the leds never light. I have an LED on PORTB.4 as kind of a watch dog blinky and its behaving as I would expect. Any ideas on whats wrong with my version of Gadelhas' code or something else I'm missing?

Code:
'                              CONFIGS
' ================================================================
@ DEVICE PIC16F648A, INTRC_OSC_NOCLKOUT, WDT_OFF, PWRT_OFF, MCLR_OFF, PROTECT_OFF, BOD_OFF, LVP_OFF

'                          DEFINES & INCLUDES
' ================================================================
 DEFINE OSC 4
 include "modedefs.bas"
'                REGISTERS AND PINOUT ( 1 = IN; 0 = OUT )
' ================================================================
           '76543210          
CMCON = 7                              ' Turn off un-needed PIC hardware
VRCON = 0                              '   ''             ''
CCP1CON = 0                            '   ''             ''
INTCON = %00000000                     '   ''             ''

 
'                         ALIAS & MODIFIERS
' ================================================================
  nCS VAR PORTA.0 
 nRST VAR PORTB.5
 SCLK VAR PORTB.0
  SDO VAR PORTB.3
  
'                        VARIABLES & COSTANTS
' ================================================================
 MCPWRT CON $40    'Command o write in MCP23S17 Address $00
 MCPRED CON $41    'Command o read from MCP23S17 Address $00
 IOCON  CON $0A    'Register address to MCP23S17 Config
 IODIRA CON $00    'Register address to MCP23S17 PortA(1)
 IODIRB CON $01    'Register address to MCP23S17 PortB(2)
 GPIOA  CON $12    'Register address to MCP23S17 GPIOA(1)
 GPIOB  CON $13    'Register address to MCP23S17 GPIOB(2)
 OLATA  CON $14    'Register address to MCP23S17 LATA(1)
 OLATB  CON $15    'Register address to MCP23S17 LATB(2)
  
 DataOut VAR BYTE  'Variable for Data Byte to Send to the MCP23S17
 DataIn  VAR BYTE  'Variable for Data Byte to Receive from the MCP23S17
 MCPReg  VAR BYTE  'Variable for the Register to Send to the MCP23S17
 
'                           PROGRAM INIT
' ================================================================
clear
pause 100
nrst = 1
ncs = 1
sclk = 0
sdo = 0
pause 100
    GOSUB INIT_MCP23S17    'Init the MCP23S17
'                            MAIN LOOP
' ================================================================
MAIN:
    MCPReg=OLATA             'This light up the leds, connected in
    DataOut=DataOut+1        'PortA(1) of the MCP23S17
    if dataout >=8 then
    dataout=0
    GOSUB SEND_MCP23S17
    gosub INIT_MCP23S17:
    endif
    GOSUB SEND_MCP23S17
    
'    MCPReg = GPIOB           'This read the PortB(1) of the MCP23S17
'   GOSUB RECEIVE_MCP23S17   'and show the result on the PORTB of the
'   PORTB = DataIn           'PIC
    
    PAUSE 500
    if dataout = 0 then
    high PORTB.4
    pause 250
    low PORTB.4
    pause 250
    endif 
    high PORTB.4
    pause 500
    low PORTB.4
GOTO MAIN
'                              SUB - ROTINES
' ================================================================    
INIT_MCP23S17:
    nRST = 0                'Reset the port expander
    PAUSE 1
    nRST = 1
    MCPReg = IOCON          'Configures the MCP23S17
    DataOut = $20
    GOSUB SEND_MCP23S17
    MCPReg = IODIRA         'Configures PortA(1) All Output
    DataOut = $00
    GOSUB SEND_MCP23S17
    
    MCPReg = IODIRB         'Configures PortB(2) All Input
    DataOut = $FF
    GOSUB SEND_MCP23S17      
RETURN
SEND_MCP23S17:
    nCS = 0                'Enable the MCP23S17
    SHIFTOUT SDO, SCLK, MSBFIRST, [MCPWRT,MCPReg,DataOut]        
    nCS = 1                'Disable the MCP23S17
RETURN
'RECEIVE_MCP23S17:
'    nCS = 0                'Enable the MCP23S17
'    SHIFTOUT SDO, SCLK, MSBFIRST, [MCPRED,MCPReg]        
'   SHIFTIN SDI, SCLK, MSBPRE, [DataIn]    
'    nCS = 1                'Disable the MCP23S17
'RETURN
END