Issue title: DirAsDisk corrupts file.
 Issue body: Using Trilotracker a file keeps getting corrupt when using DirAsDisk to overwrite. On other emulators (Emulicious), real HW or saving in openMSX using HDD image the file saves correctly.

When overwriting a the ALESTEGG.TMU file the file gets corrupted. If saved under another filename there is no corruption. 
In the corrupt file old and new data is visible :
$0000-$07FF = New data
$0800-$1FFF = Old data 2,5kb?
$2000- einde = New data

Using MSX-DOS2 functions:
```
3.48 CREATE FILE HANDLE (44H)
     Parameters:    C = 44H (_CREATE) 
                        DE = Drive/path/file ASCIIZ string
                    A = Open mode. b0 set => no write
                                   b1 set => no read
                                   b2 set => inheritable   
                                 b3..b7   -  must be clear
                    B = b0..b6 = Required attributes
                            b7 = Create new flag
     Results:       A = Error
                    B = New file handle
A = $00
B = $00
HL = F:\ALESTEGG.TMU + $00
```

```
3.53 WRITE TO FILE HANDLE (49H)
     Parameters:    C = 49H (_WRITE) 
                    B = File handle
                   DE = Buffer address
                   HL = Number of bytes to write
     Results:       A = Error
                   HL = Number of bytes actually written

```


Reproduction method:
- Start openMSX with attached files in a DirAsDisk folder.
- DOS prompt type 'TTFM' + enter
- F5 (opens file menu)
- select 'Load Song'
- select file 'ALESTEGG.TMU' + enter
- F5
- select 'Save Song'
- select file 'ALESTEGG.TMU' + enter
- now try to load the file 'ALESTEGG.TMU' again. A mesage will indicate the file is corrupted
[TTdir.zip](https://github.com/openMSX/openMSX/files/7809845/TTdir.zip)
.
 Comments: 
 Comment 0: Thanks a lot for the bug report!   Unfortunately I cannot reproduce the problem :-(

Though maybe because I couldn't exactly follow the steps you gave:
- You didn't specify a specific MSX machine. So I randomly picked a turbor machine. (I was guessing I needed a machine with MSX-MUSIC? Any other configuration that might be relevant?)
- Your TTdir.zip didn't contain MSXDOS2.SYS and COMMAND2.COM. Because of this I first booted using another disk.
- More specifically I started openmsx like this:   openmsx ~/msx/disks/dos2.dsk -machine turbor
- After the machine booted and showed the DOS prompt, I opened the openmsx console and gave the command:  diska TTdir/
- Then close the openMSX console and type the command   TTFM<enter>
- Load the song:  <f5><enter><enter>
- Save the song:  <f5><cursor-down><enter><enter>
- Load again: <cursor-up><enter><enter>
This doesn't show any error message. And playing the song (<F1>) seems to work fine.

Do you see any (differences in the steps that you executed and the steps that I described?

Which openMSX version are you using? I tried to reproduce with
- The latest development snapshot.
- The version right before a bugfix in dir-as-disk (https://github.com/openMSX/openMSX/commit/0d342a9d17eff9451561928463e3dc47d015b2af)
- The 17.0 release.
But with all 3 versions the above scenario worked just fine for me.

Could you maybe try to simplify the scenario (e.g. include the DOS2 files in the zip). And maybe try to make a replay file (see the "reverse savereplay" openmsx command).

Though one annoying thing with dir-as-disk is that it's not 100% deterministic across host machines. E.g. internally openMSX asks the OS (linux, windows, ..) for the list of files in the directory, and these files are not always returned in the same order. And thus they also and up in different sectors in the virtual dir-as-disk.

Wouter
 Comment 1: Your steps seem OK to me.

[TTdir 2.zip](https://github.com/openMSX/openMSX/files/7810218/TTdir.2.zip)
[openmsx0001.zip](https://github.com/openMSX/openMSX/files/7810244/openmsx0001.zip)
Added :
- attachment including the MSX-DOS files. 
- replay file.

My config:
openMSX 17.0 + Catapult
MSX turbo-R GT + ram1mb
All running on Windows10

I hope this helps

.
 Comment 2: @cornelisser Can you test with the latest development build? As @m9710797 said, there was a bug fix after the 17.0 release.
 Comment 3: Where can I download the latest version? Can only see 17.0 release for download.
 Comment 4: @cornelisser 17.0 is the latest release, development builds can be downloaded from the link on the website under "Development builds" at the bottom of the download box.
 Comment 5: With the latest development build the issues is gone. YES!
 Comment 6: OK, thanks for confirming, I'll close this issue then.
{'source': 'GithubIssues', 'repo_name_with_owner': 'openMSX/openMSX', 'issue_id': 1093674530, 'repo_stars': 340.0}