154

Basically, Windows used the basic 16-color CGA palette, which included 4 shades of monochrome, and 12 basic colors (two each of red, green, blue, yellow, purple, and teal), which later formed the basis of the "web safe palette" that became popular during the early days of the Internet. The algorithm used back then was known as the Bayer dithering technique, ...


126

I wrote a short python script that extracted the icons, matched them with entries from APPS.INF and generated an HTML file. Some entries were missing, so I entered them manually, except for the generic MS-DOS icons which I marked as "(no entry)". One icon was blank. You can find my moricons.py script on GitHub.


78

There were a number of factors involved. Windows 3.0 introduced a more refined user interface than available in Windows 2.0: more colours, proportional fonts everywhere, smaller icons, and MDI windows (multiple document windows inside an application window)... This made it "obviously" better than plain DOS to many users. Reviewers back in the day perceived ...


73

For Win16 programs, Windows implemented co-operative multitasking. Its implementation was based upon the "message loop" architecture of every Windows program. The duty of every program was to endlessly run in a loop in which a call to GetMessage() function was performed. This function call looks whether a message to this process is in the queue. If there is ...


63

Stephen Kitt covers the bases well, but I think the majority of the reason relates to fact that Windows 3.0 finally brought 286 protected mode execution to the masses. Even though the 80286 was first released in 1984, Windows 3.0 was the first mainstream platform that actually ran it in protected mode. That made it the first mainstream platform that could ...


42

Found a great answer on Super User that explains it really well! Windows 3.1 uses cooperative multi-tasking – meaning that each application that is in the process of running is instructed to periodically check a message queue to find out if any other application is asking for use of the CPU and, if so, to yield control to that application. However,...


37

You’ll find the mappings for these icons in SYSTEM\APPS.INF in Windows 3; this is the file which is used by Windows Setup to detect pre-existing DOS applications on the system, and set up icons for them in Program Manager. Look for “moricons.dll” and the index of the icon you’re interested in. For example the ADOS icon, index 101, corresponds to Access for ...


31

The short answer is yes, starting with version 2.0 and even more so with Warp, OS/2 was a viable alternative for daily DOS and Windows tasks, up to and including Windows 3.x. Starting with OS/2 2.0, the first 32-bit version, OS/2 included very, very good support for DOS programs, including protected-mode and some measure of direct hardware access. This ...


30

As @phyrfox mentions, it is ordered dithering using a bayer matrix. I recently was trying to find a 16x16 bayer matrix (256 discrete values) but all the ones I could find were 8x8 max, so I derived the algorithm. It's actually a pretty simple recursion: (Python) def InitBayer(x, y, size, value, step, matrix = [[]]): if matrix == [[]]: ...


28

If my memory serves well, Windows can be installed from a directory on hard disk. You need a means of reading all disks and storing its files on the same directory on the hard disk of your target machine. There may be files that are the same (DISK.ID or something). Just overwrite them. Then, invoke the INSTALL application from the copied directory. I think ...


27

I'm going to post a frame challenge answer and say that if your goal is to run MS-DOS and Windows software from the early 90s and before then you don't want to do what you propose. Instead you're better off just installing Windows 98 SE and booting (or rebooting) into MS-DOS mode for the few applications that need it. In particular trying to force Windows (...


23

TL;DR: on 286s in standard-mode Windows, DOS programs run one at a time in real mode, with Windows suspended, so the restrictions of enhanced mode which rendered DPMI necessary don’t apply. The “trick” used to allow unmodified Windows 2 programs to run in protected mode on a 286 relies largely on the fact that Windows provides a full operating system API to ...


22

One reason that Windows 3.0 was popular with software authors: it included a DOS extender, meaning that on 286 / 386 processors Windows programs could run in protected mode and access as much memory as the computer had, rather than the 640k allowed by PCDOS.


19

Windows executables are in NE format rather than the MZ format used by DOS, so a developer would need a toolchain capable of generating files in that format. Windows functions are not accessed by calling known fixed addresses, but by a list of imported symbols which are populated when the program is loaded. So the tools used would also have to generate ...


18

The first part isn’t too difficult: install Windows 98 as usual, then edit MSDOS.SYS to change its BootGUI setting to 0. This will disable the automatic GUI startup, and the computer will boot to a COMMAND.COM prompt. You can install Windows 3.11 in a different directory than Windows 98. Before you can, you’ll need to patch IO.SYS using Ralf Buschmann’s ...


17

There are several reasons for the low performance of virtual memory. The implementation had a significant effect. It keeps ALL of the contents of memory in the VM Storage file, plus however much extra you've set it to, so all memory writes are also to disk also, even if not all reads are. Source Program design also affected this. Many memory-hungry ...


17

As I recall, the Windows code did have some special cases. If you asked for #C0C0C0 you would of course get solid #C0C0C0. This was a special case; if you asked for #BFBFBF then you would get a chequerboard dither using #808080 and #FFFFFF. The dither used an 8×8 matrix, so it would only approximate 18-bit colour. If all channels had a value of #80 or less ...


17

Notepad (at least originally) was implemented as a simple wrapper around the Windows EDIT control. EDIT is not really designed to handle large amounts of text -- it stores text in a single block of memory allocated via LocalAlloc (which, at least for 16-bit versions of Windows, means that it can't handle more than 64K of text in a single control, and in ...


15

The situation isn't nearly as cut and dried as Wikipedia might make it sound. For example, under US copyright law: § 117 . Limitations on exclusive rights: Computer programs (a) Making of Additional Copy or Adaptation by Owner of Copy.—Notwithstanding the provisions of section 106, it is not an infringement for the owner of a copy of a computer ...


14

It was an option in (afaik) MS-Dos 6.0 and later, where you were able to define different sections in config.sys [MENU] REM syntax: Name, Descritopn MENUITEM=DOS, DOS w/o CD MENUITEM=DOSCD, DOS with CD MENUITEM=WIN, Windows [COMMON] DEVICE=C:\DOS\HIMEM.SYS DOS=HIGH,UMB [DOSCD] REM this is only loaded when "DOSCD" is selected DEVICE=C:\DOS\EMM386.EXE ...


13

I would say poor performance was due to System 7's implementation, and the constraints needed to support existing applications/drivers/extensions. Looking through the documentation, it's not hard to see why performance could suffer. From Inside Macintosh: Memory: The Virtual Memory Manager takes special steps to avoid double page faults caused by user ...


12

The device was called the MindDrive, from a company called "The Other 90%". It had a few games available including MindSkier, which was a downhill slalom game. Nothing in particular ever happened to it, it just never caught on. The technology really has nothing to do with brainwaves at all; it's just measuring the conductance of your finger. At worst, it's ...


12

After doing a bit of research (on Raymond Chen's blog) one of the better examples of things Windows compilers did on 16 bit Windows was to increment BP before pushing it on the stack in a far called function (and decrementing it afterwards) so the code that walked the stack knew the size of the return address. https://blogs.msdn.microsoft.com/oldnewthing/...


11

Assuming this was a PC running MS-DOS 6 or later, this would typically be implemented using a CONFIG.SYS menu: [MENU] MENUITEM=EMS MENUITEM=XMS MENUITEM=Windows [COMMON] DEVICE=C:\DOS\HIMEM.SYS [EMS] DEVICE=C:\DOS\EMM386.EXE [XMS] [Windows] with appropriate settings in the [XMS] and [Windows] blocks. The [COMMON] block is taken into account in all ...


11

Well, turns out the Wikipedia article has the answer already: WinG would also perform a graphics hardware/driver profiling test on the first execution of the program in order to determine the best way to manipulate the graphics hardware. This test showed a window full of red curved lines, sections of which would wobble as performance was tested. Once WinG ...


11

In the Windows world, the MAX_PATH 260-character limit dates back to the introduction of the Win32 APIs; it is for example documented in GetWindowsDirectory. Before that, Windows (at least in version 3) documented a 144-character limit; see for example GetSystemDirectory. As far as why the path limit is 260 characters, the general answer you’ll find on the ...


10

For me, the main advantage of Windows 2.0 over MS-DOS was that I could configure my printer just once and then all Windows programs used the same configuration. Also it printed graphics better than most DOS applications. But overall, Windows 2.0 was basically a technology preview of things to come... Windows 3.0 let you run MS-DOS sessions in their own ...


8

Assuming that you will only use the MS-DOS 4.x installation on one machine configuration, you will not require the setup disks for use. The extra data that requires multiple floppy disks (on 6.2.2) contains: An interactive setup program with lots of text. Keyboard Layouts[1] Help files[2] Optional Windows Programs (e.g. MSAVIRUS, taking up much of the third ...


7

TL;DR: The success of Microsoft Office, proprietary data formats and the ensuing marketing strategies thereof, undercutting the competition, collusion cooperation with OEMs to lease MS software preinstalled on their products, and probably most importantly: landing deals with IBM and their longstanding contracts with them while retaining the ownership of ...


7

I recently installed OS/2 Warp on a vintage (late-90s) IBM PC 350 with a 200 MHz Pentium MMX CPU and 96MB of RAM. I found that OS/2 Warp works very well for running virtually any DOS or Windows 3.x productivity application, and provides excellent stability, performance, and access to all that glorious RAM and CPU "power" in my vintage PC. However, DOS ...


Only top voted, non community-wiki answers of a minimum length are eligible