Hi Alain. I guess I wasn't being clear in my last post. For example, someone pushes a series of buttons. Each button is a different ISD address. Now comes playback time. What I have done that is memory intensive is this:

ShiftOut PORTC.5,PORTC.3,0,[FIRST\16] 'first is variable for 1st playback address
ShiftOut PORTC.5,PORTC.3,0,[SECOND\16] 'second is variable for 2nd playback address
ShiftOut PORTC.5,PORTC.3,0,[THIRD\16] 'third is variable for 3rd playback address

Now, if those variables were written into the program by itself such as [224,132,188] I could use the lookup command, put it into X and use something like:

ShiftOut PORTC.5,PORTC.3,0,[X\16] 'X is variable for all addresses
next X

Right now I have 20 address variables & 20 shiftout commands and a large block of code that says LET FIRST = 111, LET SECOND = 222, etc. I even thought of using read & write but the problem is getting those numbers into brackets. - Peter