Am I reading the busy flag correctly?

Since read_busyflag is a function you need to invoke it and not just test it's address. i.e.

while(read_busyflag() == 1);