Here's a quick RPL program based on the article you posted above. It uses a flag for parity tracking, and indrect addressing from the stack to scroll through the loops. Here are the program

41c

barcodes (including 2 programs to input 2 test matrices.)

Credit Note: Program was written using Free42, output to RAW and converted to barcodes using HP41UC program.

Inputs:

Register 00 - 1 (a pointer to first cell)

Register 01 - First number of grid

...

Register 15 - Last number of grid

Register 16 - 00 (assumes the space is in location 16)

Outputs:

Clear stack except for 1 in ST X if solution exists, 0 otherwise

00 { 53-Byte Prgm }

01>LBL "AQ"

02 CF 01 ' clears the parity flag

03 CLST ' clear stack

04 RCL 00 '

05>LBL 01 ' Loop for checking results

06 RCL IND ST X

07 X<0? ' Check the pointer to see if it's neg

08 GTO 02 ' if so, go to next loop

09 -1

10 STOĆ IND ST Z ' Otherwise negate and recall next value

11 RCL IND ST Z

12 +/-

13 GTO 01 ' repeat loop

14>LBL 02 ' Flip the parity flag- (starts even)

15 FS? 01

16 FC?C 01

17 SF 01

18>LBL 03 ' begin counting through the values

19 RCL IND 00

20 X=0? ' until you find a positive one to loop on

21 GTO 04 ' 00 value indicates end of matrix

22 X>0?

23 GTO 01 ' new loop found, go to main loop

24 ISG 00 ' increment reg 00 counter

25 CLX ' NOP

26 GTO 03 ' counter to check for the first pos. number

27>LBL 04 ' end program

28 CLST ' cleanup the stack

29 FS? 01

30 1 ' return parity based on Flag 1

31 END

Note: edited to add inputs/outputs section

*Edited: 18 Jan 2011, 9:16 a.m. *