then the method flow stops by signaling a bad die 865 if u201c pass u201d occurs 845 the method repeats the programming bbp step 840 and continues the flow again the above method flow could also be used to u201c repair u201d or correct bytes disturbed by previous attempts to program and test array bytes also the above method flow could also be used for bytes on the same row or word line in this corollary application all of the references to columns above would be changed to rows fig9 shows the third embodiment of this invention which is a method for programming an entire memory array with random combinations of adaptive row and column programming currents the first step 910 sets the byte being programmed bbp to the start address of the array next with this bbp the method calls the previously defined method or flow described in fig8 fig8 is the method of programming and testing a single random byte within a magnetic memory array after completing the successful writing of the bbp the flow in fig9 goes to 930 which checks if bbp is the last address of the memory array being programmed if the result of this decision block 930 is.