Ok, now I can reproduce your problem and I see what you mean:
a as dword
b as dword
c as dword
d as dword
File$="test.dat"
if file exist( File$ ) then delete file File$
open to write 1, File$
write string 1, "abcd"
close file 1
open to read 1, File$
read word 1, a
read word 1, b
print "Read word 1: "; hex$(a)
print "Read word 2: "; hex$(b)
print ""
close file 1
open to read 1, File$
read byte 1, a
read byte 1, b
read byte 1, c
read byte 1, d
print "Read byte 1: "; hex$(a)
print "Read byte 2: "; hex$(b)
print "Read byte 3: "; hex$(c)
print "Read byte 4: "; hex$(d)
print ""
close file 1
open to read 1, File$
read long 1, a
print "Read long 1: "; hex$(a)
print ""
close file 1
wait key
end
Quote: "I'm under the impression that all unsigned types actually act the same and the naming is pointless"
They have storage of 4 bytes internally I believe, but you can only access 2 bytes of it for a word, so it's not really pointless.