Skip to content

MS-DOS writes 0 bytes if an entire write cannot be fulfilled due to disk space #218

@ecm-pushbx

Description

@ecm-pushbx

I just added proper disk full checks to every (non-stdout) file write in WarpLink: https://hg.pushbx.org/ecm/warplink/rev/6fe1ccef6b07

I noticed that there were some checks already, but they only checked for ax returned as exactly zero. Turns out that this is sufficient on MS-DOS (tested current lMS-DOS, MS-DOS v5.00, and MS-DOS v7.10), as they always appear to return either the full ax equal to cx, or ax as zero if there isn't enough disk space.

The interrupt list only states that "the usual cause for AX < CX on return is a full disk", but it doesn't say that the return is never 0 < ax < cx. So that's probably why FreeDOS behaves differently.

Metadata

Metadata

Assignees

No one assigned

    Labels

    compatibilityissue may effect compatibility

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions