Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Microsoft C/C++ Tries to create invalid path at 'A:\' and 'setup.exe' #3484

Closed
2 tasks done
NuSynth opened this issue May 11, 2022 · 15 comments
Closed
2 tasks done

Microsoft C/C++ Tries to create invalid path at 'A:\' and 'setup.exe' #3484

NuSynth opened this issue May 11, 2022 · 15 comments
Labels

Comments

@NuSynth
Copy link

NuSynth commented May 11, 2022

Describe the bug

I'm not really sure what this message means, other than what the message says. I imagine I could make these disk images work by extracting them into a directory on the C drive. But I know it's not supposed to be doing this.

Also; when I push the "OK" button, it just pops back up again. I can't exit the program how I should be able to. I know that loop is a design flaw in the Microsoft program, not you guys. But I think the design flaw is there because I doubt this would be an issue on real hardware.
ERR

Steps to reproduce the behaviour

  1. Install Windows 3.1 the way the wiki explains to do so.
  2. Boot into Windows 3.1
  3. Mount the Microsoft C/C++ 7.0 1st disk image.
  4. Open the box labeled "Main"
  5. Open the File Manager.
  6. Select Drive 'a'.
  7. Select "setup"
  8. Go through the prompts.

It doesn't matter which directory you decide to attempt to install the software to. It will do it what I took a screen shot of. But I have only tried the pre-selected options that the radio buttons are already selected at.

I have also ran the setup application from DOS with Windows closed.

It may have something to do with this: If I do not have a directory mounted upon bootup of dosbox-x, and upon opening of the File Manager program, then the 'a' drive is not accessible from the File Manager after mounting a disc image, even though I can access it from the Run program built into File Manager. I can access it from the GUI 'a' drive button if I mount a real directory as the A: drive, before switching over to mount a disc image, so that I can access the contents of the disc image. But I believe Windows 3.1 is not actually able to recognize the disc images as being mounted. So the path to 'A:' and 'setup.exe', would not be valid, if this is what is happening. I am guessing that the 'Run' command from the window, does not check to see if the drive is visible to Windows. It just reports an error if the files are not available. That's the only thing I could think of at least.

Anyway; here is my [autoexec] section of the config made for this OS:

[autoexec]
@echo OFF
MOUNT C /home/hsmith/Desktop/dosBox-X/C/win31
MOUNT A A
C:
#CALL AUTOEXEC2.BAT
PATH C:\WINDOWS;C:\WINDEV\BIN;
SET INCLUDE=C:\WINDEV\INCLUDE;
SET LIB=C:\WINDEV\LIB;
SET HELPFILES=C:\WINDEV\HELP;
SET TEMP=C:\WINDOWS\TEMP;
#CD WINDOWS
WIN

Expected behavior

The program should not attempt to create an invalid path at 'A:' and 'setup.exe'

What operating system(s) this bug have occurred on?

Funtoo. Debian kernel.

What version(s) of DOSBox-X have this bug?

DOSBox-X version 0.83.25 (Linux SDL2)

Used configuration

No response

Output log

There is no relevent Output log, aside from me mounting the disk image. I could not find an option to print the code execution to a file to post here either. If you want pictures of the code, then I am not sure where to start, since I don't know assembly for x86 yet.

Additional information

It might be useful to add a feature that prints the machine code execution history to a file, for reports like this.

Have you checked that no similar bug report(s) exist?

  • I have searched and didn't find any similar bug report.

Code of Conduct & Contributing Guidelines

  • I agree to follow the code of conduct and the contributing guidelines.
@NuSynth NuSynth added the bug label May 11, 2022
@rderooy
Copy link
Contributor

rderooy commented May 11, 2022

Can you mount the diskette image before starting Windows 3.1, and try again?

@maron2000
Copy link
Contributor

No problem in setup on Windows version.
krnl386_001
command_000

@rderooy
Copy link
Contributor

rderooy commented May 11, 2022

The issue I think is that when you do not mount a disk image before starting Windows, the drive is simply not "connected" and missing from the BIOS tables and such. Then when you start Windows and connect a floppy afterwards, windows does not fully recognise it as a floppy disk drive as it does not support such devices to be hot-plugged.

In other words, don't do that ;-)

If you intend to use a floppy drive in windows, always have one mounted before you start.

@maron2000
Copy link
Contributor

Actually, there are cases that you can mount floppy images after starting Windows.
(not booting as guest but running on native DOSbox-X)
However, I also recommend you mount the floppy images in advance of starting Windows, as @rderooy mentioned.

Before: Drive A error (disk doesn't exist)
krnl386_004

After: Can access floppy image
krnl386_005

@NuSynth
Copy link
Author

NuSynth commented May 11, 2022

Can you mount the diskette image before starting Windows 3.1, and try again?

In the config file, I have tried mounting the disk image these 3 ways:

  1. MOUNT A /Desktop/dosBox-X/Programming/discs/win31/Microsoft C-CPP 7.0 (3-20-1992) (3.5-1.44mb)/DISK01.IMG
  2. MOUNT A "/Desktop/dosBox-X/Programming/discs/win31/Microsoft C-CPP 7.0 (3-20-1992) (3.5-1.44mb)/DISK01.IMG"
  3. MOUNT A ~/Desktop/dosBox-X/Programming/discs/win31/Microsoft C-CPP 7.0 (3-20-1992) (3.5-1.44mb)/DISK01.IMG

Each of these ways results in this happening:
ERR2

@rderooy
Copy link
Contributor

rderooy commented May 11, 2022

All 3 mounts seem wrong. They likely result in errors.

  • If there are spaces you need to enclose it in quotes like you did in the second one
  • Unless your Desktop directory really is in the root of the filesystem the 3rd one will not work.

A combination of the 2nd and 3rd should work, or use a relative or full path.

MOUNT A "~/Desktop/dosBox-X/Programming/discs/win31/Microsoft C-CPP 7.0 (3-20-1992) (3.5-1.44mb)/DISK01.IMG"

@NuSynth
Copy link
Author

NuSynth commented May 11, 2022

All 3 mounts seem wrong. They likely result in errors.

  • If there are spaces you need to enclose it in quotes like you did in the second one
  • Unless your Desktop directory really is in the root of the filesystem the 3rd one will not work.

A combination of the 2nd and 3rd should work, or use a relative or full path.

MOUNT A "~/Desktop/dosBox-X/Programming/discs/win31/Microsoft C-CPP 7.0 (3-20-1992) (3.5-1.44mb)/DISK01.IMG"

After restarting it with the 1st version of the mount command that I gave up there, and keeping echo on, and not calling Windows, it does show that the disk is mounted:
mounts

@NuSynth
Copy link
Author

NuSynth commented May 11, 2022

All 3 mounts seem wrong. They likely result in errors.

  • If there are spaces you need to enclose it in quotes like you did in the second one
  • Unless your Desktop directory really is in the root of the filesystem the 3rd one will not work.

A combination of the 2nd and 3rd should work, or use a relative or full path.

MOUNT A "~/Desktop/dosBox-X/Programming/discs/win31/Microsoft C-CPP 7.0 (3-20-1992) (3.5-1.44mb)/DISK01.IMG"

I also just tried that way. It did the same thing.

@rderooy
Copy link
Contributor

rderooy commented May 11, 2022

If you mean it shows that the C: drive is mounted, yes. The A: drive mount is failing due to the invalid path.

@NuSynth
Copy link
Author

NuSynth commented May 11, 2022

If you mean it shows that the C: drive is mounted, yes. The A: drive mount is failing due to the invalid path.

Yeah I didn't notice that thing saying A:\ doesn't exist. But I'm using the line that you gave to mount it now, and it is still failing to mount.

Which I just remembered that it is because we are using the wrong command. It's IMGMOUNT, not MOUNT lol

@NuSynth
Copy link
Author

NuSynth commented May 11, 2022

Alright. It works now.

I still think it's a bug though, since I started with a directory mounted as A:, allowing the system to be aware of the A:\ drive, but couldn't unmount, then mount an img, without running into this problem.

I just realized what I was saying. No, that would be an eject button, and load disk, feature that I am asking for. Different issue.

@NuSynth
Copy link
Author

NuSynth commented May 11, 2022

It's solved. Thanks people! Sorry it wasn't a bug after all.

@NuSynth NuSynth closed this as completed May 11, 2022
@NuSynth
Copy link
Author

NuSynth commented May 11, 2022

Actually, there are cases that you can mount floppy images after starting Windows. (not booting as guest but running on native DOSbox-X) However, I also recommend you mount the floppy images in advance of starting Windows, as @rderooy mentioned.

Before: Drive A error (disk doesn't exist) krnl386_004

After: Can access floppy image krnl386_005

I meant to ask; what do you mean by "booting as guest"?

@maron2000
Copy link
Contributor

You mount your C drive from a HDD image file, then boot c:
On the menu bar, you see "Guest OS".
Consult the wiki regarding installation of Windows for details.

@rderooy
Copy link
Contributor

rderooy commented May 12, 2022

You can either run an application (including Windows 3.x) directly in DOSBox-X from the "integrated" DOS shell.

Or you can boot a real DOS (MS-DOS, IBM PC DOS, FreeDOS) inside DOSBox-X and run your application from there. This is referred to as a Guest OS. But running applications like this requires more preparation work and makes it harder to transfer files between the guest OS and your host OS as folder mounts are not supported in this mode and all mounts need to be image mounts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants