The program determines the available instruction sets of the CPU. It's a simple Real Mode application and only requires an 80386. I wrote it with PowerBASIC and JWASM.
TASM also works and MASM should not be a problem.
This program is the preliminary stage for a stand alone DOS application in assembly language. I need that for a Beowulf project. The program searches up to and including
SSE4.2. AVX, AVX2 and AVX512 are not tested. The use of AVX and AVX2 under DOS is of course possible in principle. However, that requires special arrangements. This was
discussed in this forum back in 2015. Anyone interested in this needs to read this (http://masm32.com/board/index.php?topic=4134.msg43831#msg43831) and this (http://masm32.com/board/index.php?topic=4135.msg43847#msg43847) thread very carefully.
It is amazing what the application outputs on the same machine under different environments. Native FreeDOS provides that:
Detection Results
=================
CPU Strings
-----------
Processor Vendor String: GenuineIntel
Processor Brand String: Intel(R)Core(TM)i7-7820XCPU@3.60GHz
Supported Instruction Sets
--------------------------
MMX SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
Please, press any key to end the application ...
This is equal to the output of FreeDOS under Oracle Virtual Box with Windows 10 as host. Therefore, I suspect that Virtual Box does not emulate the processor, but rather reaches
through to the original CPU. However, I know too little about the internals for a final opinion on this.
In contrast, DOSBox 0.74-3 only emulates an 80486, as the following output shows:
Detection Results
=================
CPU Strings
-----------
Processor Vendor String: GenuineIntel
Processor Brand String not supported.
Supported Instruction Sets
--------------------------
80486
Please, press any key to end the application ...
At the moment there is no chance to use SSE under DOSBox. This is what it looks like.
I need help testing with other processors, configurations and environments. I would like to thank you in advance for this.
Hi,
Quote from: Gunther on May 12, 2022, 05:31:12 PM
I need help testing with other processors, configurations and environments. I would like to thank you in advance for this.
System one, Windows 2000 and OS/2. I could test MS-DOS.
Detection Results
=================
CPU Strings
-----------
Processor Vendor String: GenuineIntel
Processor Brand String not supported.
Supported Instruction Sets
--------------------------
MMX SSE
Please, press any key to end the application ...
System two, Windows XP.
Detection Results
=================
CPU Strings
-----------
Processor Vendor String: GenuineIntel
Processor Brand String: Intel(R)Pentium(R)Mprocessor1.70GHz
Supported Instruction Sets
--------------------------
MMX SSE SSE2
Please, press any key to end the application ...
I tried to test in Virtual Box, but failed to communicate with it.
(Inexperienced with using it. Frustrating.)
Regards,
Steve N.
Thank you for testing, Steve. :thumbsup:
Quote from: FORTRANS on May 13, 2022, 06:27:35 AM
I tried to test in Virtual Box, but failed to communicate with it.
(Inexperienced with using it. Frustrating.)
Yes, that' s a significant problem, especially the data exchange between host and guest. Shared folders can be created with other guest operating systems. DOS doesn't have
reasonable, free USB drivers either. Maybe one day I'll write a driver for it - if I find the time.
Here is my solution. I'm using FreeDOS as guest. This has several advantages. First of all, FreeDOS has a pretty good FTP server. The only thing you need then is a FTP client
under Windows. I recommend Total Commander for this; however, there are certainly alternatives. The data exchange then happens quite simply and very reliably via FTP.
Here you can read (https://www.lazybrowndog.net/freedos/virtualbox/?page_id=495) the details. I hope that was helpful.
Doesn't dosbox have slowpentium setting? And fork that supports mmx?
The only distributed computing I have experience with is 3d software render animation spread 1/4 of frames to 4 computers in network
Daydreamer,
Quote from: daydreamer on May 13, 2022, 06:17:30 PM
Doesn't dosbox have slowpentium setting? And fork that supports mmx?
that's not known to me. I have read the DOSBox manual and found nothing about this.
Quote from: Gunther on May 13, 2022, 07:26:47 PM
Quote from: daydreamer on May 13, 2022, 06:17:30 PM
Doesn't dosbox have slowpentium setting? And fork that supports mmx?
that's not known to me. I have read the DOSBox manual and found nothing about this.
It's in config file,different cpu type emulation settings if not auto
Also different emulation cores to choose from
Daydreamer,
Quote from: daydreamer on May 13, 2022, 10:12:36 PM
It's in config file,different cpu type emulation settings if not auto
Also different emulation cores to choose from
I'll check that again.
Daydreamer,
I've changed cputype from auto to pentium_slow in dosbox-0.74-3.conf. This makes no difference in my installation. What's wrong with that?
Hi Gunther!
It's a different build or patch: https://www.vogons.org/viewtopic.php?t=74877&start=20
HSE,
Quote from: HSE on May 14, 2022, 01:31:02 AM
It's a different build or patch: https://www.vogons.org/viewtopic.php?t=74877&start=20
yes, it seems that way. Thank you for the link. On the other hand, the Pentium is all about MMX. Who else uses that? Even 3DNow, which was highly praised at the time,
is now obsolete and deprecated. Of interest would be SSE and SSE2.
Hello,
DosEMU2 reports an 80486 only ( although I selected a Pentium in its config file - this is an error in DosEmu )
Qemu is the best emulation IMO. If supports virtually the native cpu: attached
For file transfers, I have a raw image file, that I can mount in linux.
Andreas,
thanks for the screenshot of the AMD Ryzen. Are you pleased with that processor?
Quote from: _japheth on May 14, 2022, 03:08:27 AM
DosEMU2 reports an 80486 only ( although I selected a Pentium in its config file - this is an error in DosEmu )
Since I switched from Linux to FreeBSD a few years ago, I can't really speak about that.
Quote from: _japheth on May 14, 2022, 03:08:27 AM
Qemu is the best emulation IMO. If supports virtually the native cpu: attached
Yes, it looks solid and has the possibility of life migration. Right now I'm struggling with an application that uses SSE2. DOSBox drops out and both Virtual Box
and VMWare Player crash in the process.
The program runs otherwise perfectly under plain DOS and - I almost couldn't believe it - in the XP Mode under Win 7. Unfortunately, it no longer exists under Win 10.
Maybe I'll get around to posting the program here this weekend.
Quote from: _japheth on May 14, 2022, 03:08:27 AM
For file transfers, I have a raw image file, that I can mount in linux.
Of course, that' s always a clean solution.
Gunther,
Quote from: Gunther on May 14, 2022, 02:46:36 AM
...is all about MMX. Who else uses that?
Apparently some games of an specific period of time (around 2000).
Quote from: Gunther on May 14, 2022, 02:46:36 AMOf interest would be SSE and SSE2.
Some months ago I was searching that, but not luck.
HSE,
Quote from: HSE on May 14, 2022, 04:27:46 AM
Apparently some games of an specific period of time (around 2000).
you're right. After all, DOSBox is made for the DOS gamers. In this sense, of course, MMX has relevance.
Quote from: HSE on May 14, 2022, 04:27:46 AM
Some months ago I was searching that, but not luck.
No chance with the current DOSBox. It also seems that Virtual Box and VMWare Player fail to do so. But maybe there are other alternatives, who knows?
Quote from: Gunther on May 14, 2022, 03:51:46 AM
Are you pleased with that processor?
It works - but pleased? The fan is a bit too loud - that's why I prefer an 11-year-old AMD 3-core, the motherboard bought on Ebay for 3€.. Progress is an illusion. :biggrin:
Andreas,
Quote from: _japheth on May 14, 2022, 05:18:04 PM
... that's why I prefer an 11-year-old AMD 3-core, the motherboard bought on Ebay for 3€. ...
3€? That's a good catch.
Quote from: _japheth on May 14, 2022, 05:18:04 PM
Progress is an illusion. :biggrin:
Yes, the times are like this. What had long belonged to the past and seemed to have been overcome is now celebrating a happy new day.
Hi Gunther!
Detection Results
=================
CPU Strings
-----------
Processor Vendor String: GenuineIntel
Processor Brand String: Intel(R)Core(TM)i3-10100CPU@3.60GHz
Supported Instruction Sets
--------------------------
MMX SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
Please, press any key to end the application ...
This is a VirtualBox FreeDos machine with a different trick. I created a floppy image and copy or paste files with DiskExplorer (http://hp.vector.co.jp/authors/VA013937/editdisk/index_e.html)
As contrast, QEMU apparently fail to know about hardware machine:Detection Results
=================
CPU Strings
-----------
Processor Vendor String: AuthenticAMD
Processor Brand String: QEMUVirtualCPUversion2.5+
Supported Instruction Sets
--------------------------
MMX SSE SSE2 SSE3
Please, press any key to end the application ...
Regards, HSE.
HSE,
Quote from: HSE on May 16, 2022, 02:46:14 AM
This is a VirtualBox FreeDos machine with a different trick. ...
Yes. The output is as expected.
Quote from: HSE on May 16, 2022, 02:46:14 AM
... I created a floppy image and copy or paste files with DiskExplorer (http://hp.vector.co.jp/authors/VA013937/editdisk/index_e.html)
Fine. This is another way of data exchange between host and guest. :thumbsup: But a floppy image is limited to 1.44 MB, isn't it?
The following option works as well. Make an USB stick bootable. Install a DOS on it normally - by the way, FreeDOS is a good choice. A good BIOS can boot from a USB stick
meanwhile. Voilà a native DOS is running. This is a clean solution without much effort.
Quote from: HSE on May 16, 2022, 02:46:14 AM
As contrast, QEMU apparently fail to know about hardware machine:
Yes, it's a pain with these emulations.
Gunther,
Quote from: Gunther on May 16, 2022, 03:41:11 AM
The following option works as well. Make an USB stick bootable. Install a DOS on it normally - by the way, FreeDOS is a good choice. A good BIOS can boot from a USB stick
meanwhile. Voilà a native DOS is running. This is a clean solution without much effort.
:eusa_naughty: That solution don't work in new machines. FreeDos depend on Legacy BIOS, but new Intel machines only have UEFI.
You have to emulate a Legacy BIOS machine if want to run FreeDos :eusa_boohoo:
Any way, non-bootable USB stick is a better solution for VirtualBox, but yesterday I don't found the stick :biggrin:
HSE,
Quote from: HSE on May 16, 2022, 09:17:19 PM
:eusa_naughty: That solution don't work in new machines. FreeDos depend on Legacy BIOS, but new Intel machines only have UEFI.
I've a new Intel machine with UEFI and it works. I can boot from USB stick without any problems. Check your BIOS settings.
Gunter,
Quote from: Gunther on May 16, 2022, 10:25:17 PM
I've a new Intel machine with UEFI and it works. I can boot from USB stick without any problems. Check your BIOS settings.
If FreeDos run native, you machine have a Dual BIOS :thumbsup: (like AMD machines, yet).
HSE,
Quote from: HSE on May 16, 2022, 10:38:32 PM
If FreeDos run native, you machine have a Dual BIOS :thumbsup: (like AMD machines, yet).
that can be. I picked out all the components of the computer from a company that built everything together. The motherboard was their suggestion.
But if the new Intel machines can't boot from other media, it's another step to patronize users. How to install another operating system? Is Grub4Dos
a possibility in this case?
Gunther,
You can install any recent OS from any media, because they boot from UEFI. Old OSs that need Legacy BIOS not longer run natively.
I think there was some discussion or question in FreeDos forum, but Hall have no interest into update FreeDos to use UEFI.
HSE,
Quote from: HSE on May 17, 2022, 01:36:19 AM
I think there was some discussion or question in FreeDos forum, but Hall have no interest into update FreeDos to use UEFI.
yes, I have read the thread, but that is not the whole truth. Here is what I found from various sources: A typical bootable stick with DOS contains a FAT partition. Dozens of tutorials exist on
how to do this. If you now store an efi program, e.g. an EFI shell under "EFI/BOOT/BOOTX64.EFI" on this file system, then most UEFI systems can boot from it without further workarounds,
either in legacy mode (DOS) or in EFI mode (the EFI shell). More finicky systems may require that the efi program resides on an EFI system partition, i.e. a FAT formatted partition of type ef00.
You could also install DOS on this partition or alternatively create a separate partition for DOS and install grub as boot manager if necessary. Alternatively you can boot DOS with grub from an
image without any problems, at least then it doesn't matter anymore if the image is on an EFI system partition or on another one. More details can be found here (https://wiki.debian.org/DualBoot/FreeDOS).
Gunther,
It's not a booting problem. DOS binaries are calling BIOS interruptions but, I understand, interruptions no longer exist in UEFI systems.
You pointed to a 2012 discussion, there was no only-UEFI systems at that time. I think first only UEFI x64 machines are from last part of 2020.
HSE,
Quote from: HSE on May 17, 2022, 02:14:24 AM
It's not a booting problem.
First of all, it is a boat problem, but it can be solved.
Quote from: HSE on May 17, 2022, 02:14:24 AM
DOS binaries are calling BIOS interruptions but, I understand, interruptions no longer exist in UEFI systems.
My program doesn't use BIOS interrupts. It may be that the PowerBASIC RTL does this. Mostly UEFI still contains a BIOS compatibility mode, with which the old BIOS functions
and interrupts are made available after all and redirected internally to modern UEFI routines. But, of course, this has to be checked. First of all, it's about booting DOS; that still
works.
Quote from: Gunther on May 17, 2022, 02:47:24 AM
First of all, it's about booting DOS; that still works.
If You are sure, must be that way. :thumbsup:
Just this machine came from a parallel universe where things don't work like expected :biggrin: (may be the future?)
HSE,
Quote from: HSE on May 17, 2022, 03:54:52 AM
If You are sure, must be that way. :thumbsup:
what does safe mean here? Assume nothing, check it, measure it. That's the motto.
Quote from: HSE on May 17, 2022, 03:54:52 AM
Just this machine came from a parallel universe where things don't work like expected :biggrin: (may be the future?)
Who knows?
Gunther,
Quote from: Gunther on May 17, 2022, 05:18:40 AM
Quote from: HSE on May 17, 2022, 03:54:52 AM
If You are sure, must be that way. :thumbsup:
what does safe mean here? Assume nothing, check it, measure it. That's the motto.
That is the point. I can't refute nothing without better references. :biggrin:
HSE,
Quote from: HSE on May 17, 2022, 05:51:23 AM
That is the point. ...
And i'ts the way to go.
Hi Gunther,
I finally got FTP working in Virtual Box, The final pitfall was
fixed by enabling the "Bridged Adapter" setting in the "Network
Settings". As mentioned in the link you posted. Well, at least
fixed enough to get some communication going.
So, here is your program's report running with an eCS (OS/2)
VDM in an Oracle VirtualBox running under Windows 8.1.
Detection Results
=================
CPU Strings
-----------
Processor Vendor String: GenuineIntel
Processor Brand String: Intel(R)Core(TM)i3-4005UCPU@1.70GHz
Supported Instruction Sets
--------------------------
MMX SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
Please, press any key to end the application ...
Regards,
Steve N.
Steve,
Quote from: FORTRANS on May 19, 2022, 04:34:44 AM
So, here is your program's report running with an eCS (OS/2)
VDM in an Oracle VirtualBox running under Windows 8.1.
Thank you for your effort. :thumbsup:
From time to time the FreeDOS FTP server changes the address. You have to change this in the settings of the client as well. That' s a small drawback.
Otherwise, the data exchange via FTP works very well and stable.
Hi,
I did not use FreeDOS at all. Just the instructions on the web
page you pointed out. (As far as I was able to.) I used the OS/2
server and client for the final transfers. And I used the Windows
clients to try to debug the situation. But I will assume that any
server will act as you say the FreeDOS server does and keep note
of its address.
I used FTP on the job long ago before I retired. But mostly forgot
anything useful over the years. It does seem to work well. And well
enough to start trying to use VirtualBox in earnest.
Thanks,
Steve
Steve,
Quote from: FORTRANS on May 20, 2022, 12:12:55 AM
I used the OS/2 server and client for the final transfers.
interesting approach. But it works and that's the point.
Quote from: FORTRANS on May 20, 2022, 12:12:55 AM
I used FTP on the job long ago before I retired. But mostly forgot
anything useful over the years. It does seem to work well. And well
enough to start trying to use VirtualBox in earnest.
Yes, I see. A virtual machine with FreeDOS is still worth a try. It's stable and solid. An interesting Expanded Memory Manager JEMM for FreeDOS has been written by Japheth, for example.
Gunther,
Quote from: HSE on May 17, 2022, 02:14:24 AM
interruptions no longer exist in UEFI systems.
I found some interesting pieces of information about this. You can have a CSM-BIOS (that support Legacy BIOS) but CSM is disabled if you have an Intel integrated graphic processor, because that card requiere UEFI.
Apparently plugging an old dedicated video card, and disabling the internal one, allow to use Legacy BIOS. But video cards are things of gamers... :biggrin:
HSE,
Quote from: HSE on May 22, 2022, 12:35:50 AM
I found some interesting pieces of information about this. You can have a CSM-BIOS (that support Legacy BIOS) but CSM is disabled if you have an Intel integrated graphic processor, because that card requiere UEFI.
fortunately, my computer has a NVIDIA GeForce Experience built-in.
Quote from: HSE on May 22, 2022, 12:35:50 AM
Apparently plugging an old dedicated video card, and disabling the internal one, allow to use Legacy BIOS. But video cards are things of gamers... :biggrin:
That could be a way. Thank you for the information. :thumbsup: