8 Replies Latest reply on Jun 13, 2018 12:52 PM by continuum

    How to make a VM that runs DOS and the serial ports works?

    K2teknik Novice

      I have made a VM that runs DOS (ms6.22) all fine, but the serial port is a challange.

       

      I can recive all data send from the VM on the host's hw serial port, but when I send any data to the host's serial port only one or a few bytes get to my DOS application.

       

      I am testing with a very simple comm. program Procomm (yes it is a DOS version) and from an other PC running windows Hyperterminal throu sthe serial port.

       

      I see in the workstation log some "serial0: Overrun", old problem can be solve by putting serial0.tryNoRxLoss = "TRUE" in the VM's vmx file, but it only solve the failure in the log, it don't open for data to be present to my application running in DOS.

       

      I see a few had addresed this issue before without any usefull answer, so is it possible, or not possible, to use the serial ports in DOS on a Vmware workstation?

        • 1. Re: How to make a VM that runs DOS and the serial ports works?
          continuum Guru
          User ModeratorsvExpertCommunity Warriors

          First of all : disable Thinprint.
          If serialport 0 is configured for Thinprint the results for regular serial port use becomes unpredictable.
          Read my notes: http://sanbarrow.com/vmx/vmx-serial-ports.html
          and experiment with the parameters

          • 2. Re: How to make a VM that runs DOS and the serial ports works?
            K2teknik Novice

            I have this in my vmx file:

             

            serial0.present = "TRUE"
            serial0.fileType = "device"
            serial0.fileName = "COM1"
            serial0.yieldOnMsrRead = "FALSE"
            serial0.tryNoRxLoss = "FALSE"
            serial0.autodetect = "FALSE"
            serial0.hardwareFlowControl = "FALSE"

             

            I had had this, with same problems with the serial port:

            serial0.present = "TRUE"
            serial0.fileType = "device"
            serial0.fileName = "COM1"

             

            But this "disable Thinprint" I am one big quistion sign?

            What is this, and where to change it ?

             

            I am using workstation 7.1 btw.

             

            Had also been trying to chage the VM HW to workstation 4, same problem.

            • 3. Re: How to make a VM that runs DOS and the serial ports works?
              continuum Guru
              Community WarriorsvExpertUser Moderators

              dont worry about thinprint - it is not active on that VM

              • 4. Re: How to make a VM that runs DOS and the serial ports works?
                K2teknik Novice

                I had been testing "MS Virtual PC 2007" and "VirtualBox", and it turns out that "VirtualBox" have the problem serial data is comming out of the VM, no problem, but no data is getting in.

                "MS Virtual PC 2007" is working ok, data in and out nicely without any problem.

                 

                It is strange that a so native thing as the serial ports do not work in a DOS VM.

                 

                When I install a Windows (98/XP) in any of "Vmware Workstation", "MS Virtual PC 2007" or "VirtualBox" the serial ports is working as expected.

                • 5. Re: How to make a VM that runs DOS and the serial ports works?
                  fmannix10 Lurker

                  Apologies for bumping such an old thread however I have this exact same problem.

                   

                  I am wondering if anyone knows of a solution now? I have looked at my vmx file and don't find any lines about thinprint so I am presuming that this is disabled.

                  • 6. Re: How to make a VM that runs DOS and the serial ports works?
                    continuum Guru
                    User ModeratorsCommunity WarriorsvExpert

                    Attach your vmx-file to your next reply.

                    Maybe my notes may also help: sanbarrow.com

                    Depending on the WS-version you use it may also be necessary to run your VM as administrator / root

                    • 7. Re: How to make a VM that runs DOS and the serial ports works?
                      fmannix10 Lurker

                      Thank you for offering to help. Bellow are the contents of my VMX file.

                       

                      P.S. Using VMware Workstation 12 pro

                       

                      .encoding = "windows-1252"

                      config.version = "8"

                      virtualHW.version = "12"

                      scsi0.present = "TRUE"

                      memsize = "64"

                      ide0:0.present = "TRUE"

                      ide0:0.fileName = "KDS-New-000001.vmdk"

                      sound.present = "TRUE"

                      sound.virtualDev = "sb16"

                      sound.autodetect = "TRUE"

                      pciBridge0.present = "TRUE"

                      pciBridge4.present = "TRUE"

                      pciBridge4.virtualDev = "pcieRootPort"

                      pciBridge4.functions = "8"

                      pciBridge5.present = "TRUE"

                      pciBridge5.virtualDev = "pcieRootPort"

                      pciBridge5.functions = "8"

                      pciBridge6.present = "TRUE"

                      pciBridge6.virtualDev = "pcieRootPort"

                      pciBridge6.functions = "8"

                      pciBridge7.present = "TRUE"

                      pciBridge7.virtualDev = "pcieRootPort"

                      pciBridge7.functions = "8"

                      vmci0.present = "TRUE"

                      hpet0.present = "TRUE"

                      displayName = "KDS-New"

                      guestOS = "dos"

                      nvram = "KDS-New.nvram"

                      virtualHW.productCompatibility = "hosted"

                      powerType.powerOff = "soft"

                      powerType.powerOn = "soft"

                      powerType.suspend = "soft"

                      powerType.reset = "soft"

                      extendedConfigFile = "KDS-New.vmxf"

                      usb.present = "FALSE"

                      numa.autosize.vcpu.maxPerVirtualNode = "1"

                      numa.autosize.cookie = "10001"

                      uuid.bios = "56 4d 12 5f 4c 94 31 c0-0b b6 8b 84 9f 3e 30 7a"

                      uuid.location = "56 4d 12 5f 4c 94 31 c0-0b b6 8b 84 9f 3e 30 7a"

                      migrate.hostlog = ".\KDS-New-8156935c.hlog"

                      ide0:0.redo = ""

                      pciBridge0.pciSlotNumber = "17"

                      pciBridge4.pciSlotNumber = "21"

                      pciBridge5.pciSlotNumber = "22"

                      pciBridge6.pciSlotNumber = "23"

                      pciBridge7.pciSlotNumber = "24"

                      scsi0.pciSlotNumber = "16"

                      usb.pciSlotNumber = "-1"

                      vmci0.pciSlotNumber = "33"

                      vmci0.id = "-1623314310"

                      monitor.phys_bits_used = "42"

                      vmotion.checkpointFBSize = "16777216"

                      vmotion.checkpointSVGAPrimarySize = "16777216"

                      cleanShutdown = "TRUE"

                      softPowerOff = "FALSE"

                      usb:1.speed = "2"

                      usb:1.present = "TRUE"

                      usb:1.deviceType = "hub"

                      usb:1.port = "1"

                      usb:1.parent = "-1"

                      tools.syncTime = "FALSE"

                      usb.generic.allowHID = "FALSE"

                      usb.autoConnect.device0 = "path:1/0/0/3 autoclean:1"

                      checkpoint.vmState = ""

                      usb:0.present = "TRUE"

                      usb:0.deviceType = "hid"

                      usb:0.port = "0"

                      usb:0.parent = "-1"

                      isolation.tools.hgfs.disable = "TRUE"

                      gui.viewModeAtPowerOn = "fullscreen"

                      sharedFolder.maxNum = "0"

                      serial0.present = "TRUE"

                      serial0.fileType = "device"

                      serial0.fileName = "COM1"

                      parallel0.present = "FALSE"

                      sharedFolder0.present = "FALSE"

                      ehci.present = "FALSE"

                      floppy0.present = "FALSE"

                      ide1:0.present = "FALSE"

                      • 8. Re: How to make a VM that runs DOS and the serial ports works?
                        continuum Guru
                        Community WarriorsUser ModeratorsvExpert

                        Are you running Workstation as administrator ? - if not - try it.
                        Please attach  the vmware.log from your next attempt running as admin. Please use the attach-buuton and do not paste the content as text.
                        Please also remove your snapshot so that we eventually switch to an older virtual hardware version.