OH! A competition.
And as usual, I'm too late, oh well. Here's my entry.21 words<hr>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>
Or going the ASM route13 wordsCode:<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>




Bookmarks