VOGONS


First post, by retroduck

User metadata
Rank Newbie
Rank
Newbie

(Not sure if this belongs in the software or hardware section, new here, be nice...)

I recently purchased the "Pocket 386" retro laptop device and have installed OS/2 Warp 3 on it. It's not exactly "fast" or "snappy", but it runs "well enough" considering the specs of the machine.

One issue I did have, however, is how to get data on/off the system. My initial solution was to have a FAT partition on the CF card, in addition to the main OS/2 HPFS partition. Then I can shutdown the laptop, put the CF card in a reader on my modern PC or Mac and access the files on that FAT partition. I also put a minimal, bootable, install of DOS on the FAT partition so that I can use the CH375 (with FreddyV's driver) from DOS as an alternative.

Thing is, both these methods require shutting down OS/2 and re-starting it after transferring files and that isn't exactly quick on this system. It would be so much nicer if I could use the CH375 within OS/2 itself. Thing is, there are no OS/2 drivers for the device, so that would seem to be a non-starter...

Actually, it isn't. While there's currently no way to use the CH375 directly within OS/2, it is possible to launch a DOS session from within OS/2 that has access to both the CH375 USB drive and OS/2's filesystem(s) and use that to copy files in/out without having to shut down and re-start OS/2.

The key is that OS/2's DOS subsystem (called "MVDM") is remarkably powerful and has capabilities I haven't seen on any other platform.

OS/2 can be configured to run a "real" version of DOS, not just the "DOS" that comes with OS/2, inside a MVDM session. And it's possible to have that DOS l load the CH375 driver! Unlike modern virtualisation/emulation systems, MVDM allows DOS sessions access to the real hardware on the host. While this may cause security/stability problems in some cases (don't try running more than one such session at a time!), it's exactly what we want in this case.

By default, OS/2 installs an icon in the "Command Prompts" folder called "DOS from Drive A:" which allows you to boot a real version of DOS (and some other simple x86 OSs) from a floppy disk. OS/2 even includes a driver to allow said real DOS sessions to access the OS/2 filesystem. Of course, the Pocket 386 doesn't have a floppy drive, but OS/2 also supports using disk images to boot DOS in the same way.

As far as I can tell, OS/2 only supports its own, little known (I couldn't find any documentation about it), disk image format, created by the "VMDISK" tool included with the system. At least, my first attempt using a "raw" floppy image from the emulator didn't work.

So, to set it all up, you need:

  • An OS/2 system with a CH375
  • An OS/2 system with a floppy drive (doesn't need to be the same system, can be an emulator; I used 86Box)
  • A bootable DOS floppy disk (or image for an emulator), I used MS-DOS 6.22

Steps:

  1. Insert the bootable DOS disk into the OS/2 system with a floppy drive
  2. Copy the "FSFILTER.SYS" file from C:\OS2\MDOS to the floppy
  3. Copy the FreddyV CH375 driver to the floppy (I used the 286 optimised version; CH375286.SYS)
  4. Add the above drivers to the CONFIG.SYS on the floppy; i.e. "DEVICE=FSFILTER.SYS" and "DEVICE=CH375286.SYS" (you may want to remove any other drivers that might be set to load, I found that the version of "HIMEM.SYS" on my disk wasn't compatible with MVDM and if there's anything like CD-ROM drivers, etc. they won't be of use either)
  5. Optionally test the disk on this system using the "DOS from Drive A:" icon (of course, the CH375 driver won't work if the system/emulator doesn't have one)
  6. Use VMDISK to create an image of the disk (i.e. open an OS/2 Command Prompt and type "VMDISK A: C:\CH375DOS.IMG" or whatever path/filename you like)
  7. Transfer this disk image to the PC with the CH375
  8. Make a copy of the "DOS from Drive A:" icon from the "Command Prompts" folder and enter the "Settings" view from the right-click menu
  9. On the "Session" tab, choose "DOS Settings" (you might also want to change the session type to "DOS window")
  10. Accept "All DOS settings" (honestly, I don't know what the point of this dialog is; when would you not want all the settings?)
  11. Select the "DOS_STARTUP_DRIVE" setting and change the value to the path to the disk image you created and copied over (e.g. "C:\CH375DOS.IMG").
  12. Click save, close the settings view
  13. That should be it! Just double-click the icon and see DOS start up in the session with access to both the CH375 and OS/2's filesystem.

You may also want to add your favourite DOS file manager to the AUTOEXEC.BAT on the disk image (I used Volkov Commander) if you want a slightly more user-friendly way to transfer files, but plain old DOS commands also work fine.

Caveats: No support for long file names (DOS sessions can't even see files with long names on the OS/2 filesystem), even LFNDOS isn't really much use. The USB drive must be formatted with a fileystem supported by the DOS version you're using (i.e. FAT16 for MS-DOS 6.22), if you see garbage in a directory listing, this is probably what's wrong.

Obviously, this isn't as convenient as it would be if a CH375 driver existed for OS/2, but it's a lot better than having to shut down and re-start OS/2 every time you want to copy files in/out. Of course, a network-based solution might be even easier, but this solution works entirely with the stock Pocket 386 hardware.

As always, YMMV. I'm not responsible for any data corruption, system crashes or other side-effects that may come from attempting this.