VOGONS


First post, by DOSferatu

User metadata
Rank Newbie
Rank
Newbie

So, it's me again - with a little request to the DOSBox developers:
(No, it's nothing about a bug or malfunction or such this time...)

Oh, and, just to mention: Yes, I'm totally aware of DOSBox being in the first place NOT to execute some crappy own-written tools by some ancient coders... - but to run DOS games... - Yeah, I know, I know...

1st:
It would be nice if there would be an option (in the dosbox.conf) to "overtake" (is that the proper English phrase? "copy"? "adopt"?) the current settings of CAPS-LOCK/SCROLL-LOCK/NUM-LOCK from the host system - or, additionally, even if the CTRL/ALT/SHIFT are pressed when started.
I know: It has NOTHING to do with the "real thing", because when DOS/"BIOS" boots, it boots with all keys/"LEDs" "OFF"(and would scold the user if keys were pressed down).

So, if this feature would "tear down reality", then at least the NUM-LOCK key could get "overtaken" from the host system - because there IS a BIOS option in ALL systems (the ones I saw), to "switch NUM-LOCK ON or OFF at boot". So, this would be a nice feature.

I know, it's "feature creep" and I know there are other, more important issues for the developers of DOSBox.
Explanation: To use my own-written stuff even on Windows-Systems above WinXP32, I use it with DOSbox and some kind of odd constructions around it, to be even able to start them with a click onto an icon. Some of them have multiple "modes" to operate and it's an easy way to just activate CAPS/SCROLL/NUM or hold SHIFT down when start a program, without getting a prompt asking something...

In WinXP it's no problem: ALL my tools run there on the real system (yes, I know, they start that NTVDM thing...) - Because after Win98 the guys at Microsoft (unfortunately) discarded some useful INT 2Fh options, e.g. the one to use the "Windows Clipboard" (read/write), so one of my pals (who codes in Visual Basic 6) wrote some tool which writes it (the clipboard's content) into a temporary text file, so it can be used as a "crutch"... So, my tools can auto-edit some copied text... e.g. when downloading files, to fix crappy filenames or to auto-increment numbers in filenames... - or whatever...

(Some of my tools automatically find in texts numeric values given in "imperial" formats (even if the numbers are written in words) and converts then into "metric" formats - so, when I use these texts after then in google translator (or better deepl translator), then the values are as "german" as the translated text...)

Yeah, one could say: Then why not coding in Windows instead? - Well, I tried it (something in Visual Basic 6), but it's THAT UTTERLY unsexy... All that cumbersome things you've to do in modern "high languages", even if knowing it would be just two or three assembly opcodes to do the same... - woah, that sucks...

2nd:
My second request is even more brazen:
It would be a nice feature, if someone could simply take a 16-bit (DOS) .EXE and "drag-and-drop" it onto the DOSBox icon and DOSBox would execute it and then quit. Maybe there is such an option/feature already - and I'm just too stupid to find it or to figure out on how to use it.

The second-and-a-half - even cooler - idea would be if there was a way to "hook up" that Windows' error window (which - not exactly with these words - says: "I'm Windows and since CPUs are now 64bit and intel/AMD (for sole economical instead of technical reasons) decided to use artificial obsoletion in 64bit mode, I'm too stupid now to run 16bit software anymore") ... erm... so, to hook-up this and redirect it to run DOSBox instead and run that 16bit stuff in DOSBox...?

Well, I know: It's not a matters of you (the DOSBox developers) and it would have to be done outside of DOSbox... - and furthermore it's "MS-Windows-specific" stuff and has nothing to do with other OS' - but maybe there is some kind of this stuff already around and I'm just too daft to find it yet?

Or, if DOSBox is already running and someone is trying to start some 16-Bit stuff, - to immediately "catch" this attempt and take it over? - Well, yeah, I know: Modern OS are just too "nailed up" to allow doing any cool things anymore - just because some hackers/crackers out there doing uncool things - so, using (and coding) in modern systems is that unsexy: No connection to the real metal anymore - just being an unimportant layer of code instead, laying on a 10-layers mattress of abstraction layers, which ALL cost space, performance (and coolness)...

Reply 1 of 3, by xcomcmdr

User metadata
Rank Oldbie
Rank
Oldbie

Or, if DOSBox is already running and someone is trying to start some 16-Bit stuff, - to immediately "catch" this attempt and take it over?

Look at WineVDM on GitHub, it's getting close to a perfect modern Win16 layer for Win64. And I believe there is an issue there about taking over in this very case.

You can still take over stuff on modern systems. For example, dgVoodoo2 takes over Direct3D and DirectDraw, so to speak.

Reply 2 of 3, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

DOSBox goal is game support only and support across all operating systems so any request for a feature would have to keep those in mind.

1. You can find a DOS executable to do this for you and have it run on startup through dosbox.conf. For it to be included in official DOSBox there would need to be a game that needs it.
2. You can drag and drop executables on the DOSBox icon. For it to exit you'll need to modify the dosbox.conf in your profile to exit. You can either create your own shortcut to a dosbox execuble in a different location with a dosbox.conf in the same directory, use a frontend, etc.
3. Think I've seen this before but it was a very simple implementation.
Thoughts
You would have to check the header to differentiate between a DOS vs a Windows executable. The amount of posts we get on these forums from people trying to run windows executables in DOSBox is insane.
You would have to assume that the DOS program is simple and requires no special configuration or reinstall
You would have to assume that the DOS program requires no special DOSBox configuration settings
The program would be limited to it's own directory unless the DOSBox default configuration was modified.

If your interest is in command line utilities and\or compiling and not DOS games then you are better off on using the NTVDM replacements for 64bit windows. I could be wrong but I think they are all based on the MS source code release so don't link them here. You can try NTVDMx64 or MS-DOS Player http://takeda-toshiya.my.coocan.jp/
You may be better off off using NTVDM in Windows 10 32bit if you don't need fullscreen for your DOS programs. If you do need you need at the most Windows 7 32bit with XP video drivers.

There are a number of idiots on the Internet that badmouth DOSBox when for some reason they are comparing compilation times between an emulator and NTVDM or real DOS so please don't be one of those.

How To Ask Questions The Smart Way
Make your games work offline

Reply 3 of 3, by DOSferatu

User metadata
Rank Newbie
Rank
Newbie
DosFreak wrote on 2020-02-09, 14:03:

DOSBox goal is game support only and support across all operating systems so any request for a feature would have to keep those in mind.

Yes, I know. That's why I wrote, that I'm aware about that "MS-Windows specific stuff" and such.

DosFreak wrote on 2020-02-09, 14:03:

1. You can find a DOS executable to do this for you and have it run on startup through dosbox.conf. For it to be included in official DOSBox there would need to be a game that needs it.

It would be no problem to me to write a DOS executable by myself which is activating that CAPS/SCROLL/NUM bits or whatsoever. What I don't can is, to get these information from the "surrounding" Windows. - I'm not a Windows-coder...

DosFreak wrote on 2020-02-09, 14:03:

2. You can drag and drop executables on the DOSBox icon. For it to exit you'll need to modify the dosbox.conf in your profile to exit. You can either create your own shortcut to a dosbox execuble in a different location with a dosbox.conf in the same directory, use a frontend, etc.

I've done this already, with .BAT files which are starting from a desktop shortcut. But the drag-and-drop doesn't work so. It says "Befehl oder Dateiname nicht gefunden" (it's "command or file name not found" in German) - but I've now tested it now with the real DOSBox.EXE and it worked! Fine! Yeah, so it must have to do with that "windows shortcut icon" on desktop instead of the DOSBox.EXE itself. Normally it works with that "shortcuts", too. So I'll going to investigate that issue with my pal who's more familiar with Windows.

DosFreak wrote on 2020-02-09, 14:03:

3. Think I've seen this before but it was a very simple implementation. Thoughts You would have to check the header to differentiate between a DOS vs a Windows executable. The amount of posts we get on these forums from people trying to run windows executables in DOSBox is insane.

Oh well - I'm just a humbe old-fashioned legacy DOS coder and I know I sound like a dork, but I'm not THAT stupid... (So, no - I wouldn't try Windows executables in DOSBox.) And I know (at least, in DOS and my "coding environment") how to check an .EXE for DOS-/Windows Header... - But in the thing I've mentioned, the checking would have to be done in Windows itself - before running DOSBox... - and this way the "hooking" into the Windows-EXE-starter, too... Yeah, I know that's very unrealistic - but maybe something like this may have been done/made already be someone...

DosFreak wrote on 2020-02-09, 14:03:

You would have to assume that the DOS program is simple and requires no special configuration or reinstall. You would have to assume that the DOS program requires no special DOSBox configuration settings.

Yeah, that's clear. Otherwise such a program couldn't get started by just an icon-click either, even if it was in some OS (like WinXP) where it would be able to get started by Windows itself.

DosFreak wrote on 2020-02-09, 14:03:

The program would be limited to it's own directory unless the DOSBox default configuration was modified.

Yeah, that's no problem.

DosFreak wrote on 2020-02-09, 14:03:

If your interest is in command line utilities and\or compiling and not DOS games then you are better off on using the NTVDM replacements for 64bit windows. I could be wrong but I think they are all based on the MS source code release so don't link them here. You can try NTVDMx64 or MS-DOS Player http://takeda-toshiya.my.coocan.jp/

In WIndows 7 (which I have here on one of my Windows Computers, the others have still WinXP), there is an NTVDM64.DLL in the C:\Windows\SysWOW64 directory, but I don't know what it does. A "command line" is still available in Windows7 (64bit), a "CMD.EXE", but it doesn't run 16-bit software either.
I wasn't aware of such a thing as NTVDMx64 or that japanese thing you've mentioned above.
And NO, I'm not only interested in command line, but additionally. So, it's great that such a work of art like DOSBox is existing - providing so many features and emulating even very outdated hardware in a proper way.
But sometimes I've a little "problem"/"issue" and then - being some kind of a coder - I "hack together" some little tool to solve it and it would be fine, if there'd be an easy way to use it not only on my real DOS machines or my several Windows XP machines, but on my (only) Win7 (64bit) machine, too. - That's all.

DosFreak wrote on 2020-02-09, 14:03:

You may be better off off using NTVDM in Windows 10 32bit if you don't need fullscreen for your DOS programs. If you do need you need at the most Windows 7 32bit with XP video drivers.

I don't have (or want) Windows 10. Windows 7 was just a (toughly decided) compromise to me - because of the machine is a 64bit one - so, to have a possibility to use that 64bit for software it needs. (But, even THIS machine I can boot into WinXP32, too.)

DosFreak wrote on 2020-02-09, 14:03:

There are a number of idiots on the Internet that badmouth DOSBox when for some reason they are comparing compilation times between an emulator and NTVDM or real DOS so please don't be one of those.

Oh, don't worry! I'm fully aware of the differences between a full functional emulator (like DOSBox) and that kind of things that NTVDM/CMD are. (It's like with e.g. a Commodore64-emulator: For very obvious reasons an C64 emulator cannot run full speed/function on a 1 MHz machine, although a real C64 runs with ca. 1 MHz. Emulating another system needs emulating everything in it - the CPU, graphic chips, sound chips, I/O chips and even all the "hardware-bugs" and "design-errors" the original system has. And if even the CPU don't match, not to mention all the other stuff, it will have all to be done by software on the host system. - So, NO - I'm not THAT kind of an idiot... - And a C64 is a very simple system in comparison to a DOS PC with all its freaky hardware.)

So - no, I don't "badmouth" DOSBox - on the contrary: I'm a big fan of it! And noticing a little bug like mentioned in my other thread doesn't mean I wouldn't like the program itself. I'm totally aware of it being totally impossible to check all combinations of all opcodes with all parameters in all given circumstances/system configurations - so, please don't take my mention of that ROL/ROR 8 bug not for a sign of me "badmouthing" DOSBox.

Oh, and thanks for even responding to my odd stuff here. Your "user_id=2" makes me think of you being a V.I.P. in here, so, thanks for taking your time for me.