OH! A competition.
And as usual, I'm too late, oh well. Here's my entry.
Code:
<font color="#008000"><b>DEFINE </b></font><b>NO_CLRWDT 1 </b><font color="#0000FF"><b><i>; Saves 2 words :)
</i></b></font><b>array </b><font color="#008000"><b>VAR WORD </b></font>[<b>5</b>] <b>BANK0 SYSTEM
ArrayStart </b><font color="#008000"><b>CON </b></font><b>EXT
</b><font color="#000080">@ArrayStart = array + 1 </font><font color="#0000FF"><b><i>; Start at highbyte of element 0
</i></b></font><b>LastElement </b><font color="#008000"><b>CON </b></font><b>EXT
</b><font color="#000080">@LastElement = ArrayStart + (4 * 2) </font><font color="#0000FF"><b><i>; Stop at element 4
</i></b></font><b>FSR </b>= <b>ArrayStart
Loop1</b>:
<font color="#008000"><b>IF </b></font><b>INDF </b>= <b>0 </b><font color="#008000"><b>THEN GOSUB </b></font><b>Compute
FSR </b>= <b>FSR </b>+ <b>2
</b><font color="#008000"><b>IF </b></font><b>FSR </b>< <b>LastElement </b><font color="#008000"><b>THEN </b></font><b>Loop1
</b><font color="#0000FF"><b><i>;----------------------------------
</i></b></font><b>Compute</b>:
<font color="#0000FF"><b><i>'Do something
</i></b></font><font color="#008000"><b>RETURN</b></font>
21 words<hr>
Or going the ASM route
Code:
<font color="#000000"><b>array </b><font color="#008000"><b>VAR WORD </b></font>[<b>5</b>] <b>BANK0 SYSTEM
</b><font color="#008000"><b>ASM
</b></font><font color="#000080">ArrayStart = array + 1 </font><font color="#0000FF"><b><i>; Start at highbyte of element 0
</i></b></font><font color="#000080">LastElement = ArrayStart + (4 * 2) </font><font color="#0000FF"><b><i>; Stop at element 4
</i></b></font><font color="#000080">movlw ArrayStart
movwf FSR </font><font color="#0000FF"><b><i>; FSR = ArrayStart
</i></b></font><font color="#000080">Loop1
movf INDF, W
btfsc STATUS, Z
call _Compute </font><font color="#0000FF"><b><i>; if INDF = 0 then gosub Compute
</i></b></font><font color="#000080">movlw 2
addwf FSR, F </font><font color="#0000FF"><b><i>; FSR = FSR + 2
</i></b></font><font color="#000080">movlw LastElement
subwf FSR, W
btfss STATUS, C
goto Loop1 </font><font color="#0000FF"><b><i>; if FSR < LastElement then Loop1
</i></b></font><font color="#008000"><b>ENDASM
</b></font><font color="#0000FF"><b><i>;----------------------------------
</i></b></font><b>Compute</b>:
<font color="#0000FF"><b><i>'Do something
</i></b></font><font color="#008000"><b>RETURN</b></font>
13 words
Bookmarks