I guess I'm a little lost here ...

so I am currently trying to get the CP/M version of #F83 #Forth by #Laxen and #Perry to do what I want.

The problem is that I can use BLOCK, UPDATE and SAVE-BUFFERS and any new data written to a block is preserved for the current session. But as soon as I quit Forth and call it up again, using the block file I've just modified, the changes are gone as if they have never been written to disk.

Any ideas?!

@Wintermute_BBS This is on what CP/M system and what hardware? SAVE-BUFFERS should force the block file to be written… You can see how by VIEWing its source code. I believe it does appropriate BDOS calls.
@honuk it's on a #rc2014 with #RomWBW firmware and ZSYSTEM 3 running from CF card.
@Wintermute_BBS I have a similar system at hand, will try later…
@honuk that is very kind of you. I'm also having another idea where too look, will report when I have checked.
@honuk I just checked my thesis and it turns out the issue exists only with ZSYSTEM 3 (ZPM3 whatever) - when running F83 on classic CP/M 2.2 or with ZSYSTEM2 (both provided by RomWBW) the data is written to the disk as is expected.
@Wintermute_BBS SAVE-BUFFERS calls the deferred word WRITE-BLOCK which in the default configuration is FILE-WRITE that invokes REC-WRITE which eventually does 34 BDOS. If the OS does not actually write to disk in 34 BDOS but keeps the data in OS buffers, the data still can get lost. The Forth intention is that SAVE-BUFFERS might not actually write to disk but FLUSH will actually assure that all data is persistsent. Could you please try FLUSH on ZSYSTEM3? Does that actually write to disk?

@honuk just checked and it does not write to disk using only FLUSH or the combination of UPDATE FLUSH on ZSYSTEM3

It works using UPDATE FLUSH on CP/M 2.2 and ZSYSTEM2

@honuk maybe the issue is related to the fact that ZSYSTEM3 doesn't use CP/M 2.2 and ZCPR2-style drive/user notation e.g. 0/A: but ZCPR3 notation like A0: