MF-DOS
This page was last modified 10:20, 16 October 2020 by Briqunullus.

Contents

Description

MF-DOS is a Brazilian MSX-DOS clone named after its creator, Miguel Freitas. In 1993 he published external commands to handle subdirectories in MSX-DOS 1, CD.COM, MD.COM and RD.COM. These can be found in the Brazilian CPU MSX Magazine 35, including a technical description and their source code. With these utilities, standard MSX-DOS can access subdirectories, even on MSX-DOS 2 disks.

Although these commands work really well, there are a few drawbacks. First of all, since these utilities are external commands, they must be accessible from the current path. Which means, if only one floppy drive is present, they have to be copied into each subdirectory on the disk. This will quickly clutter the disk with copies of the same files. Secondly, only the shortened commands are available, if the longer commands CHDIR, MKDIR and RMDIR are required, all files need to be copied again.

Migual Freitas has solved these problems that same year with MF-DOS. This MSX-DOS clone is an extended version of the official MSXDOS.SYS 1.03 and COMMAND.COM 1.11, and has the subdirectory commands built in. Also, the current path will be shown at the command prompt. Apart from subdirectory support, a few other commands have been built in as well. All texts in MF-DOS are in English.

Version

MSXDOS.SYS 1.30 beta
COMMAND.COM 1.5


The COMMAND.COM from MF-DOS will not work with any other MSXDOS.SYS version.

Limitations

Subdirectory support is the most visible difference between MSX-DOS 1 and MSX-DOS 2. MSX-DOS 2 however comes with an updated DISKROM. This DISKROM contains an extended API to enable MSX-DOS 2 programs to access subdirectories as well. Also there are functions for memory management. Since MF-DOS still relies on the old DISKROM, it lacks support for all of that and it cannot run MSX-DOS 2 applications.

MF-DOS will therefore only run MSX-DOS 1 progams. Once they have been executed from a certain subdirectory, they cannot browse to another subdirectory to access files. Also from the command prompt, commands like 'TYPE TEST\TEST.TXT' or 'DIR SUBDIR' will not work.

Additional commands

These internal commands are available on top of the official MSX-DOS commands in the COMMAND.COM file.

Command Description
BEEP Makes beep sound
CD or CHDIR Change the current working directory for the command prompt. This command also supports nested subdirectories like 'CD SUBDIR1\SUBDIR2'.
CLS Clears the screen
COLOR Sets specific foreground, background and border colors
ECHO Shows text message. 'ECHO ON' and 'ECHO OFF' are supported as well
HELP Shows available commands
MD or MKDIR Create subdirectories
PATH Yet unknown
PROMPT Change the command prompt
RD or RMDIR Remove subdirectories. Be careful when deleting non-empty subdirectories, this will result in losing files.
VER Shows a copyright message and version string


Technical details

Since the standard MSX DISKROM does not support subdirectories, it is quite an astonishing achievement that MF-DOS does. The article in the CPU MSX magazine tells how it's done. The CD.COM utility (and therefore the CD command in MF-DOS) attaches itself to a few of the DISKROM hooks.

First of all it uses the HDSKIO (0F26AH) hook get access to the drive parameter block (DPB). Secondly it attaches to HDSKRD (0F270H) and HDSKWR (0F279H) to manipulate sector numbers that will be read or written. In short, if the system has changed to a certain subdirectory, MF-DOS will redirect it to the sectors containing the subdirectory data instead of the root directory sectors.

This sector number manipulation is done in the background, the system will not notice.