Hi all,

Darrell mentioned in his first post that EXT will not work with arrays,
Can anyone suggest an elegant way to receive serial BYTE data in and convert it to WORD data and then sort it? Obviously, this won't work and to do it straight-line would be a mess.
Code:
ByteData    var byte[32] BANK0                                                                                                      

ASM
Arg0 = _ByteData        ; word
Arg1 = _ByteData + 2    ; word
Arg2 = _ByteData + 4    ; word
Arg3 = _ByteData + 6    ; word
Arg4 = _ByteData + 8    ; word
Arg5 = _ByteData + 10    ; word
Arg6 = _ByteData + 12    ; word
Arg7 = _ByteData + 14    ; word
Arg8 = _ByteData + 16    ; word
Arg9 = _ByteData + 18    ; word
Arg10 = _ByteData + 20    ; word
Arg11 = _ByteData + 22    ; word
Arg12 = _ByteData + 24    ; word
Arg13 = _ByteData + 26    ; word
Arg14 = _ByteData + 28    ; word
Arg15 = _ByteData + 30    ; word
ENDASM

Arg0   VAR  WORD  EXT
Arg1   VAR  word  EXT
Arg2   VAR  WORD  EXT
Arg3   VAR  WORD  EXT
Arg4   VAR  word  EXT
Arg5   VAR  WORD  EXT
Arg6   VAR  word  EXT
Arg7   VAR  WORD  EXT
Arg8   VAR  WORD  EXT
Arg9   VAR  word  EXT
Arg10   VAR  WORD  EXT
Arg11   VAR  word  EXT
Arg12   VAR  WORD  EXT
Arg13   VAR  WORD  EXT
Arg14   VAR  word  EXT
Arg15   VAR  word  EXT
...........
'***Sort Array SUB ** collects 16 readings, sorts, and averages middle 8 ******
SortArray:
    CounterA=0
SortLoop:                          ' sorts 16 readings of RawData in order
    If Arg(CounterA+1) < Arg(CounterA) then
        DataA=Arg(CounterA)
        Arg(CounterA)=Arg(CounterA+1)
        Arg(CounterA+1+0)=DataA
        If CounterA > 0 then CounterA=CounterA-2
        endif
    CounterA=CounterA+1
    If CounterA < 15 then goto SortLoop
Thanks
Bo