@jan5650 It looks like the jarzebski library by default runs the HMC5883L in continous mode at 15Hz (66ms period) and doesn't attempt to time the reading of the X, Y, Z axes data registers to status register's RDY flag bit going high. Acutally, jazebski's library doesn't use the status register at all.
In this case, the library should work with a QMC5883L revision A as is, since your 500ms time interval code far exceeds the 66ms continuous sample rate.