4

I have a friend that still uses Windows 98 because of a drawing tablet (Genius HiSketch 1212) that he is not able to install in modern systems. He has Windows 98 installed in an old PC that's always giving him problems. I suggested to him to install VMware on his Windows 10 PC and install Windows 98 inside a virtual machine. Installation of Windows 98 was successful, but we are having trouble with the driver for the tablet.

To connect the tablet, we are using a USB-serial adapter (USB-RS232) connected to the Windows 10 PC. I'm going to help him one of these days.

My question is, can I migrate the driver for the tablet from the old PC to the virtual machine installation?

The serial port is recognized by Windows 10 as a serial port (like, COM3 for example. I'm not sure about the number). Then, in the configuration of the virtual machine in VMware, I set up a serial port and assigned the COM3 of Windows 10 to the new virtual serial port (COM1 in Windows 98). So the serial port in Windows 98 is recognized the same as a physical serial port would be. There's no clues about any USB-serial or USB device connected (from inside de virtual machine).

Here are some screenshots to show exactly what I did in my friend's computer. Those were made on my computer, because I'm not at his home now, but everything is the same regarding device configuration.

Step 1 Step 2 Step 3 Step 4

7
  • 6
    I would guess the driver expects the tablet to be connected to a motherboard-driven serial port, not a USB-encapsulated one, so you’d have to connect the VM’s serial port to the USB serial device. With QEMU, that’s just -serial /dev/ttyUSB0. Though personally, I’d at least take a stab at reverse-engineering the tablet protocol and writing my own driver. Feb 25 at 14:45
  • 2
    You still have not provided the model number of the tablet device. Voting to close for now, though I will vote to reopen if you provide that, as the question is otherwise perfectly topical; I do not subscribe to the ‘every single transistor must be made in the 1980s or it’s off-topic’ ideology. Feb 26 at 17:54
  • 3
    It looks as if you assigned COM1 of the host to the single serial port of the guest, not COM3. The name in the guest will depend on the OS installed, for example a Linux will not use the name "COM1". Feb 27 at 10:18
  • 1
    Now that we have the model, someone managed to get it working in Ubuntu: <ubuntuforums.org/showthread.php?t=1784259>. Mar 2 at 11:04
  • 2
    //This sounds more like a question about Windows 10 capabilities than about any old system.// If no Windows 10 driver exists, using a small embedded microcontroller devkit to build an interface to make the tablet behave as a USB-HID device may be easier than writing a Windows 10 driver, and the portions of the project dealing with how to decode information from the tablet would seem to fall squarely within retrocomputing territory.
    – supercat
    May 11 at 15:07

1 Answer 1

2

I cannot say much about Windows, but this particular tablet model has reportedly been successfully made to run with Linux, based on this Ubuntu forums post.

The solution involves launching the inputattach utility in order to register the serial port as an input device within the evdev subsystem and translate its event reporting protocol into one digestible by evdev clients (which is usually just the X11 server or Wayland compositor, in turn forwarding input events to applications). The command to run should look something like this:

inputattach -mtouch /dev/ttyUSB0

with /dev/ttyUSB0 replaced by the character device corresponding to the serial port (whether motherboard-driven or a USB/RS-232 adapter; the example assumes the latter). This should make the tablet in native tablet mode; the device also mouse emulation mode, in which the -mtouch option ought to be replaced by (probably) -bare, -ms3 or -msc.

This command has to be run as root (or at least with sufficient privileges to access the serial port and evdev devices) each time the tablet is connected via the serial port. A good way to automate this would be to write a systemd service whose launch is triggered by a udev rule in turn triggered by the device being connected, but I am afraid describing how to set this up may turn out pretty long-winded, and borderline out-of-scope for this site.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.