Thanks for taking the time to reply.
I didn't bother with the default case in the write because it was only a meant as a quick test to check read/write functionality before I added anything else.
I *think* I originally used blocking assignments in both read & write, but I'll certainly go back and have another look to see if that makes any difference.
I made changes to my original code after looking at the altera peripherals, so I made changes from my *99% working* code to alteras presumably *100%* code - and it still didn't work.
I'll have another try over the weekend, and hopefully will get it to work and I can continue with my uClinux drivers.
This is probably a good idea why software engineers should stay away from hardware! (can't resist though!)
Adrian