This works so far to play back 4 sounds repeatedly. The volume setting via apc2 works also. Next I plan to get rid of the PAUSE delays and monitor status to determine when each sound finished playing.

Code:
'DEMO PLAYER FOR ISD1700
'Code Version: 01 
'Words Used = 354
'Revision Date: 8 Feb 2009
'PicBasic Pro Compiler version 2.50b
'Processor=PIC16F684  (WDT=ON, MCLR=INPUT, OSC=INTOSC)

'Modified from code posted by Jerson and Brenon

'Memory Reference:
'ISD17XX First Address = 0x010
'ISD1730 Max Address   = 0x0FF
'ISD1760 Max Address   = 0x1EF
'ISD1790 Max Address   = 0x2DF

	DEFINE OSC 8
'*************************************************************
'*************************************************************
'******************** DEFINE VARIABLES ***********************
'*************************************************************
'*************************************************************
temp_bit    VAR BIT

temp		VAR BYTE
spi_cnt 	             var byte	' counter for SPI transfer
bSPI 		var byte 	' the byte being transferred on SPI

s_addr		VAR WORD	' Start Address
e_addr		VAR WORD	' End Address

ISD_Data 	var byte[7]	' This array contains data to/from ISD

SR0a 		var ISD_Data[0]
SR0b 		var ISD_Data[1]
SR1 		var ISD_Data[2]    ' only valid after ReadStatus

isCmdErr 	var SR0a.0	             ' 1=previous command failed/ignored
isFull 		var SR0a.1	' 1=memory full
isPU		var SR0a.2	' 1=ISD powered up
isEOM		VAR SR0a.3	' 1=EOM detected (clear by CLR_INT command)
isINT 		var SR0a.4	' 1=current operation completed (clear by CLR_INT command)

isReady 	var SR1.0	' 1=Ready to receive SPI command (only valid after ReadStatus)
				        ' Some SPI commands can still be sent when isReady=0

'*************************************************************
'*************************************************************
'******************** PIN ASSIGNMENTS ************************
'*************************************************************
'*************************************************************
Symbol sensor	= PORTA.0			' 
Symbol miso		= PORTA.3			'ISD1760 SPI MISO 
Symbol led1	    = PORTC.1			'  
Symbol led2	    = PORTC.2			'
Symbol ss		= PORTC.3			'ISD1760 SLAVE SELECT  
Symbol sclk		= PORTC.4			'ISD1760 SPI CLOCK 
Symbol mosi 	= PORTC.5         	'ISD1760 SPI MOSI	
	
'*************************************************************
'*************************************************************
'******************** INITIALIZATION *************************
'*************************************************************
'*************************************************************
initialize:
    CLEAR
	OSCCON = %01111000
	CMCON0 = 7				'turn off comparators
	ANSEL = 0
	
	PR2 = 35				'PWM Period (40K=49, 56K=35) (35 to 55)
	CCPR1L = 15				'PWM Duty Cycle (1 to 15)
	T2CON = 4				'Timer2 = ON; Prescale = 1:1
	CCP1CON = 0				'PWM module off
	OPTION_REG = %11111111	'Turn off PortA weak pull-ups
	
	TRISA = %111111    		'set PortA directions
	WPUA =  %000000			'enable weak pull-ups PortA
	IOCA =  %000000			'disable PORTA.0 Int On Change

	TRISC = %000000    		'set PortC directions

	PORTA = %000000
	PORTC = %000000    		'
	
	HIGH ss			'start with Slave Select HIGH
	HIGH sclk		'start with SPI Clock HIGH
	LOW MOSI		'start with MOSI LOW
	
    INPUT sensor
	LOW led1
	LOW led2
	
	
start:                       'Initialize the ISD
	GoSub isd_pu
	PAUSE 50		         '50 mS Power Up Delay (per datasheet)
	GoSub isd_wr_apc 	     'set volume and config bits 
	PAUSE 10
	GoSub isd_clr_int	     'clear interrupt and EOM
'*************************************************************	
'*************************************************************
'********************* MAIN PROGRAM **************************
'*************************************************************
'*************************************************************
main_loop:	'(MAIN PROGRAM LOOP)
     
    PAUSE 2000
    
    s_addr = $010
    e_addr = $02b
    GOSUB isd_set_play

    PAUSE 2500
    
    GOSUB isd_stop
    
    PAUSE 2000
    
    s_addr = $02c
    e_addr = $048
    GOSUB isd_set_play
    
    PAUSE 2500

    GOSUB isd_stop
    
    PAUSE 2000
        
    s_addr = $049
    e_addr = $07c
    GOSUB isd_set_play
    
    PAUSE 4800

    GOSUB isd_stop
    
    PAUSE 2000
        
    s_addr = $07d
    e_addr = $093
    GOSUB isd_set_play
    
    PAUSE 2000

    GOSUB isd_stop
        
	GoTo 	main_loop


'*************************************************************	
'*************************************************************
'********************** SUBROUTINES **************************
'*************************************************************
'*************************************************************
isd_pu:				
	LOW ss

	bSPI=$01		'Power Up Command
	GoSub isd_spi
	ISD_Data[0] = bSPI 	'SR0a

	bSPI=$00
	GoSub isd_spi
	ISD_Data[1] = bSPI 	'SR0b

	HIGH ss

	RETURN

'--------------------------------------------------------------------------
isd_wait_ready:
	GOSUB isd_rd_status
	IF isReady = 0 THEN isd_wait_ready
	RETURN

'--------------------------------------------------------------------------
isd_set_play:
	LOW ss

	bSPI = $80		'Set Play Command (7 bytes)
	GoSub isd_spi
	ISD_Data[0] = bSPI	'SR0a

	bSPI = $00 
	GoSub isd_spi
	ISD_Data[1] = bSPI 	'SR0b

	bSPI = s_addr.LowByte 	' Start Address low byte. 
	GoSub isd_spi
	ISD_Data[2] = bSPI	'SR0a

	bSPI = s_addr.HighByte 	' Start Address high byte 
	GoSub isd_spi
	ISD_Data[3] = bSPI 	'SR0b

	bSPI = e_addr.LowByte 	' End Address low byte 
	GoSub isd_spi
	ISD_Data[4] = bSPI 	'SR0a

	bSPI = e_addr.HighByte 	' End Address high byte
	GoSub isd_spi
	ISD_Data[5] = bSPI 	'SR0b

	bSPI = $00		' Reserved Address - set to "0"
	GoSub isd_spi
	ISD_Data[6] = bSPI 	'SR0a

	HIGH ss

	RETURN

'--------------------------------------------------------------------------
isd_wr_apc:			'Write to APC Register using bits D2:D0 to set Volume 
	LOW ss

	bSPI = $65		'Write APC2 
	GoSub isd_spi
	ISD_Data[0] = bSPI 	'SR0a

	bSPI = %01000011	'Volume set by D2:D0 (000=Max)
				'Output set by D7 (0=Aud, 1=Aux)
	GoSub isd_spi
	ISD_Data[1] = bSPI 	'SR0b
					
	bSPI = %00000100 	'PWM Speaker Output D8 (0=Enable, 1=Disable)
				
	GoSub isd_spi
	ISD_Data[2] = bSPI 	'SR0a

	HIGH ss

	RETURN

'--------------------------------------------------------------------------
isd_spi:				        ' shift SPI data out and into SPI byte 
	FOR spi_cnt = 0 to 7        '
		MOSI = bSPI.0 		    ' shift LSB of byte onto MOSI line
		LOW SCLK 		        ' clock MISO data out to uC (Falling Edge)
		temp_bit = miso         '
		HIGH SCLK		        ' clock MOSI into ISD1700 (Rising Edge)
		bSPI = bSPI >> 1 		' shift SPI byte Right
		bSPI.7 = temp_bit
	NEXT spi_cnt

	RETURN

'--------------------------------------------------------------------------
isd_clr_int:					' CLEAR INTERRUPT AND EOM BITS
	LOW SS
	
	bSPI=$04		'Clear Interrupt Command
	gosub isd_spi
	ISD_Data[0] = bSPI 	'SR0a

	bSPI=$00
	gosub isd_spi
	ISD_Data[1] = bSPI 	'SR0b

	HIGH SS

	RETURN

'--------------------------------------------------------------------------
isd_stop:					' Stop Immediately
	LOW ss

	bSPI=$02		'Stop Command
	gosub isd_spi
	ISD_Data[0] = bSPI 	'SR0a

	bSPI=$00
	gosub isd_spi
	ISD_Data[1] = bSPI 	'SR0b

	HIGH ss

	RETURN

'--------------------------------------------------------------------------
isd_pd:					' Stop Immediately
	LOW ss

	bSPI=$07		'Power Down Command
	gosub isd_spi
	ISD_Data[0] = bSPI 	'SR0a

	bSPI=$00
	gosub isd_spi
	ISD_Data[1] = bSPI 	'SR0b

	HIGH ss

	RETURN

'--------------------------------------------------------------------------
isd_rd_status:				'read status of ISD1700 
	LOW ss

	bSPI=$05		'Read Status Command
	gosub isd_spi
	ISD_Data[0] = bSPI	'SR0a

	bSPI=$00
	gosub isd_spi
	ISD_Data[1] = bSPI	'SR0b

	bSPI=$00
	gosub isd_spi
	ISD_Data[2] = bSPI	'SR1

	HIGH ss

	RETURN

'*************************************************************
'*************************************************************


	End