| 
									
										
										
										
											2010-06-02 18:00:22 +00:00
										 |  |  | ; This test checks the effect of the index looping registers (R8-R11) | 
					
						
							|  |  |  | incdir  "tests" | 
					
						
							|  |  |  | include "dsp_base.inc" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; Tests done using AR1 = 0x0010, IX1 = 0. WR1 (wrap 1) means WR1. | 
					
						
							|  |  |  | ; WR1 = 0 | 
					
						
							|  |  |  | ;   10, 10, 10, 10, | 
					
						
							|  |  |  | ; WR1 = 1 | 
					
						
							|  |  |  | ;   10, 11, 10, 11, | 
					
						
							|  |  |  | ; WR1 = 2 | 
					
						
							|  |  |  | ;   10, 12, 11, 13, 12, 11, 13, 12, 11, 13, 12, 11 | 
					
						
							|  |  |  | ; WR1 = 3 | 
					
						
							|  |  |  | ;   10, 13, 12, 11, 10, 13, 12... | 
					
						
							|  |  |  | ; WR1 = 4 | 
					
						
							|  |  |  | ;   10, 14, 13, 17, 16, 15, 14, 13, 17, 16, 15, 14, 13, ...  | 
					
						
							|  |  |  | ; WR1 = 5 | 
					
						
							|  |  |  | ;   10, 15, 14, 13, 12, 17, 16, 15, 14, 13, 12, 17,  | 
					
						
							|  |  |  | ; WR1 = 6 | 
					
						
							|  |  |  | ;   10, 16, 15, 14, 13, 12, 11, 17, 16, 15, 14, 13 | 
					
						
							|  |  |  | ; WR1 = 7 | 
					
						
							|  |  |  | ;   10, 17, 16, 15, .. normal | 
					
						
							|  |  |  | ; WR1 = 8 | 
					
						
							|  |  |  | ;   10, 18, 17, 1f, 1e, 1d, 1c, 1b, 1a, 19, 18, 17, 1f, 1e, ..... | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; I really don't know how the above could possibly be efficiently implemented in hardware. | 
					
						
							|  |  |  | ; And thus it's tricky to implement in software too :p | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; test using indexing register 1 - 0 is used in send_back | 
					
						
							|  |  |  | lri $AR1, #16 | 
					
						
							|  |  |  | lri $IX1, #32 | 
					
						
							|  |  |  | lri $WR1, #0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | lri $AR1, #16 | 
					
						
							|  |  |  | lri $WR1, #1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | lri $AR1, #16 | 
					
						
							|  |  |  | lri $WR1, #2 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | lri $AR1, #16 | 
					
						
							|  |  |  | lri $WR1, #3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | lri $AR1, #16 | 
					
						
							|  |  |  | lri $WR1, #4 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | lri $AR1, #16 | 
					
						
							|  |  |  | lri $WR1, #5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | lri $AR1, #16 | 
					
						
							|  |  |  | lri $WR1, #6 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | lri $AR1, #16 | 
					
						
							|  |  |  | lri $WR1, #7 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | lri $AR1, #16 | 
					
						
							|  |  |  | lri $WR1, #8 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | nx'dr  : $AR1 | 
					
						
							|  |  |  | call send_back  ; 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | lri $WR1, #0xFFFF | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ; We're done, DO NOT DELETE THIS LINE | 
					
						
							|  |  |  | jmp end_of_test |