Skip to content

MUX AEh interface wrong and incomplete #194

Open

Description

@ecm-pushbx

r.r_di = 0; /* Magic value 4dos v4 */

As noted in SvarDOS/bugz#6 (comment)

I think MS-DOS v4.01 and v6.22 append will fail, because you're passing 0 in DI (just like FreeCOM and possibly 4DOS). In MS-DOS, ES:DI on 2F.AE01 passes a far pointer for a far-callable entrypoint for some parsing: https://anonymous:github@hg.pushbx.org/ecm/msdos4/file/c661c6316db2/src/CMD/COMMAND/tmisc1.nas#l173 I verified that this is both provided by the caller (shell) and used by the callee (append) in both of these MS-DOS versions, and FreeCOM crashes when an MS-DOS append command is run.

Also, as noted in LoopZ/TheList#123 at least for function AE01h, the length that FreeCOM passes in CX is wrong. It's supposed to be the command name length (equal to byte [ds:si]), and not negative. CH is always zero. AE00h isn't as clear in the lDOS source texts so CH = 0FFh may be correct there.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions