Virtual H89 Computer HostFileBdos Device

HostFileBdos makes a native directory appear like a CP/M disk via CP/Net. File names are forced to lower case, and files under "user IDs" greater than zero are prefixed with the user number and a colon (":"). Files with names longer than the CP/M 8+3 format produce unpredictable results, but this module is otherwise compatible with the native OS. Note, however, that CP/M always writes in blocks of 128 bytes and will use ^Z (0x1a) as the text file EOF. Also, CP/M text files have both CR and LF for line endings. Viewing text files on the host OS, that were created by CP/M, may show unusual characters, especially following (and including) the terminating ^Z. Linux has utilities for converting line endings. A Linux text file must have CRs added to the line endings, but there is a (new) CP/M-Plus utility TR.COM that may be used to copy text files in or out of CP/M. HostFileBdos is configured as follows:

hostfilebdos##_root_dir
Root directory for server "##" drives (A: through P:). This directory will be created if it does not exist. This may also be specified as the first argument in the cpnetdevice_server## property. Default is "~/HostFileBdos". Drives appear as subdirectories with names "a" through "p". Drive subdirs are created automatically by CP/Net only when set as default drive (e.g. "A> P:(enter)"), but may also be created manually on the host (e.g. 'mkdir').
hostfilebdos##_nosys
This property does not use a value, its presence sets the feature. This disables the SYS attribute, which is implemented using the native file execute permissions. Since Windows (or at least FAT filesystems) doesn't support the execute permission, this feature is needed to avoid having all files show up with the SYS attribute set (and being hidden).
hostfilebdos##_drive_%
Where "%" is a lowercase letter 'a' to 'p'. Specifies the directory to use for drive "%". This overrides the default using {root_dir}.
hostfilebdos##_lst#
Configuration of server "##" list device "#" (hexadecimal). Note, CP/Net LST: output requires use of ENDLIST.COM (or printing an 0xff character) in order to properly terminate a print job. This character will end up in the data sent to the list device. Value syntax is as follows:

>file [a]
Send printer output to file. If "a" is specified, file will be appended instead of overwritten.
|command [args...]
Send printer output to command. Not yet implemented.
ClassName [args...]
Send printer output to an instance of ClassName. The class must implement OutputStream. Currently, only "Diablo630Stream" exists.