write up on tech Geek History MS DOS Gaming

Msdos-icon.svg

LLiterature Review
History of DOS Games
DOS (an abbreviation of Disk Operating System “Disk Operating System” or “Operating System Disk”) is a family of operating systems for personal computers (PC). Created for computers of the IBM PC family, they used the 16-bit Intel 8086 and 8088 processors, being the first popular operating system for this platform. It had a command-line interface in text mode or alphanumeric, via its shell, command.com. Probably the most popular of its variants is the belonging to the family MS-DOS, Microsoft, supplied with a good part of the computers compatible with the IBM PC, in particular, those of the family of Intel, as a separate operating system or native, up to version 6.22, often attached to a version of the graphical interface of 16-bit Windows, such as 3.1 x.
Inversions native Microsoft Windows based on NT (and this in turn in OS/2 2.X) (see Windows NT, 2000, 2003, XP or Vista or Windows 7) MS-DOS disappears as operating system (proper) and base environment, from which the computer and its essential processes were started and the windows graphical interface or working environment was run and loaded. Any vestige of the same is relegated, in such versions, to the existence of a simple shell, called System symbol, executed as an application using cmd.exe, from the realistic environment itself (now elevated to the system category).
This is not true for non-native Windows versions, which are MS-DOS-based, and are loaded from it. From 1.0 x to 3.1(1), 16-bit versions, Ms. Windows had the idea of a simple interface application or graphical environment, complementary to the shell itself, from which it was executed. It was from the 32-bit, new design, and higher power versions, based on Windows 95 and 98, that the MS-DOS began to be deliberately camouflaged by the windows graphic environment itself. During the boot process, it is giving way, by default, to its automatic execution, which caught the attention of the average user and attributed to the old system a more dependent and secondary role, becoming by many forgotten and unknown. Gradually abandoned by the software and hardware developers., starting with Microsoft itself (this option can be disabled by altering the BootGUI=1 entry by BootGUI=0, from the system file, now text, MSDOS. SYS). However, in such versions, Windows did not function autonomously, as an operating system. Several of the primary or essential functions of the system and their boot are still due to the 32-bit versions, to the different modules and system files that made up the modest frame of the DOS, requiring those a minimum of the underlying records of the DOS, in order to be run (such as IO.SYS, DRVSPACE. BIN, EMM386.EXE and HIMEM. SYS).
There are several versions of DOS:
MS-DOS, Microsoft, is the most well-known.
PC-DOS, IBM.
DR-DOS, from Digital Research, would then move to Novell (Novell DOS 7.0), then to Caldera and finally to DeviceLogics.
FreeDOS is the most recent, free license and open source. You can do the version for GNU/Linux and UNIX, of an emulator of MS-DOS under systems of this type.
With the appearance of the operating systems with graphical user interface (GUI), of the Windows type, especially those of 32 bits, of the Windows 95 type, the DOS has been relegated to the background, until being reduced to the mere shell of commands, and to the command lines (especially in type files .PIF and .BAT), as in Windows NT derivative systems.
History
The story of DOS games started in 1981 when a purchase was made, on the part of Microsoft, the operating system, QDOS (Quick and Dirty Operating System), that after receiving a few modifications, become the first version of the Microsoft operating system, called MS-DOS 1.0 (Microsoft Disk Operating System).
From here, there are a series of modifications to the operating system, until you get to version 7.1, from which MS-DOS ceases to exist as such and becomes an integrated part of the Microsoft Windows operating system.
MS-DOS chronology in all versions
In 1982, version 1.25 was released, and support for double-sided diskettes was added.
In 1983, the system began to have more functionality, with its version 2.0, which added support to IBM 10 MB hard drives, and the ability to read-write 5¼” floppy disks with a capacity of 360 Kb. In version 2.11 of the same year, new keyboard characters are added.
In 1984, Microsoft would release its MS-DOS 3.0 version, and that’s when support for 1.2 MB high-density disks and the possibility of installing a hard drive with a maximum of 32 MB is added. In the same year, support for Microsoft networks would be added to version 3.1.
Three years later, in 1987, version 3.3 is released with support for 3½” floppy disks, and it is allowed to use hard drives more significant than 32 MB.
In 1988, Microsoft released its version 4.0 and with it the support for extended memory specification (XMS) and the possibility to include hard drives up to 2 GB, it should be noted that this version was the biggest catastrophe carried out by the company because it was full of bugs, bugs, etc., which they fixed in 1989 with the release of version 4.01 that solved all these problems and failures.
In 1991, one of the most relevant developments in MS-DOS history is the transition from version 4.01 to version 5.0, in which DOS is already able to load programs into the high memory part of the system using the upper memory (from 640 Kb to 1024 Kb). In version 5.0, the basic programmer and the famous EDIT editor are added. We also added the utilities UNDELETE (recovery of deleted files), FDISK (partition management), and service to run programs designed for earlier versions of MS-DOS, called SERVER. At the end of 1992 was resolved a few problems with UNDELETE and CHKDSK on the 5.0 release.
In 1993, MS-DOS 6.0 appeared with many new features, among them the Doublespace utility that was responsible for compressing the disk and thus having more space available, also included a basic antivirus (MSAV), a DEFRAGMENTADOR (DEFRAG), a memory administrator (MEMMAKER) and some old utilities were suppressed, which by misusing them could destroy data, these utilities were JOIN and RECOVER, among others. In the same year, version 6.2, which adds safety to the loss of data Doublespace, and adds a new scanner, disk, SCANDISK, and solves problems with DISKCOPY and SmartDrive. In version 6.21, which appeared in 1993, Microsoft suppresses Doublespace and looks for a new alternative for this utility.
In 1994, the solution to the Doublespace problem appeared was the utility of the company Stac Electronics, Drive space, the one chosen to be included in version 6.22.
In 1995 Microsoft Windows 95 appeared, and with the appearance of the same, means to separate MS-DOS to a secondary plane.
The MS-DOS system, however, remains in 1995 a new version, 7.0, which correct a multitude of utilities and provides support for long names. Deleted services from the previous operating system can be found in the Windows 95 \other\oldmsdos CD directory.
In 1997 Windows 95 OSR2 appeared and with it a comprehensive revision of system DOS, adding support for FAT32 partitions. Since then, MS-DOS ceases to exist as an operating system.
DOS versions
Several companies developed versions of DOS, generally very similar to each other. PC-DOS and MS-DOS, for example, began to be virtually identical, although they ended up being very different. Versions most well-known are QDOS, PC-DOS, MS-DOS, and FreeDOS, among others.
With the GNU / Linux operating system, it is possible to run two copies under DOSEmu, a virtual machine native to GNU/Linux to run programs in real mode. There are many other emulators for different versions of UNIX, even for platforms other than the x86 processor architecture.
https://dosomegames.com/history-of-dos-games/

When we talk about “DOS Games” we speak about games produced for PC running a Microsoft system prior to Windows. The first “PC” was the IBM PC introduced in 1981. This means that the PC we know today did not exist during the 1st generation of consoles. However, the IBM PC could play games written for mainframe computers in portable programming languages that existed before the PC was born. Zork was written in Z-code in 1977, Lunar Lander was ported to BASIC in 1973 and Star Trek is dated back to 1971.

Incidentally most games for MS-DOS in 1981-1983 were ports from other systems like TRS-80, Apple II and Commodore 64 and and those who were DOS-Specific were often published by IBM themselves like Arithmetic Games Set 1 and 2 that might have been the first games written and published directly for DOS in mind.

While the IBM PC could display graphics, graphics was barely used in the first batch of PC games that instead relied on text, unless they used very rudimentary line-based 3d-polygons without color or textures. Even the first action-games, such as Snipes, used letters instead of pixels, both for the character and enemies. The trend of games lagging behind on graphics will stay through most of the early DOS history and its rooted in the fact that the raw processing power and memory limited what the PC could do.

The second generation of video game consoles brought rudimentary colors and interchangeable software. The IBM PC coexisted the final years of the most iconic of the 2nd generation consoles; the Atari 2600. This was also the same era where games like Pac-Man, Space Invaders and Donkey Kong could be played in the Arcades.

The earliest games with graphics appeared around 1982, with Paratrooper, Flight Simulator 1.0 and Decathlon. It took until 83-84 for CGA graphics to be common. CGA is identified by a distinct 4-color palette. The lack of color made gaming on the PC inferior to contemporary platforms like the Commodore 64, the ZX Spectrum and Amstrad CPC. Even if other alternatives became available earlier on, the majority of all DOS games kept using CGA until 1987.

Harddrives and memory capacity was limited too. To save space, many of the first games were booted from large wobbly 5-inch floppy disks, called “PC booters”. With few standards the games in this era were pioneers, often hardcoded or custom made. This make them difficult to run even on authentic PC’s. One issue were that they were programmed to run as fast as the processor can handle, meaning that when processors became faster the games became too fast to be played until modern emulation came in. Sound and music was often non-existant or used the “PC speaker” . A rudimentary device that could produce simple bleeps and blops.

What is Hercules?
The Hercules Graphics Card was released in 1982 and offered high resolution (720×348) monochrome graphics. For awhile it was standard on monochrome IBM computers. This card was rarely a primary choice for games, but mentioned here as a curiosity.
1983 marks the video game crash, a time in which home computers took over the gaming market. While the new IBM XT was a more powerful machine, with an updated 286 processor, it was also expensive. The IBM PCjr was announced in 1984 to compete with Commodore 64 and Apple II, but it also met competition with the “PC Compatible” Tandy 1000 by Tandy Corporation. The Tandy 1000 marked the first step towards IBM losing their hold of PC as a platform, leading to PC becoming an “unowned” computer.

What is Composite CGA?
During this era we saw the earliest introduction of 16 colors on PC. When using CGA on some old TV’s, the signal was imperfect, which caused a color smearing that was later turned into an asset. Done right it was possible to use this smearing to produce new colors, offering an early 16-color mode known as “Composite CGA”. 1983 marks the video game crash, a time in which home computers took over the gaming market. While the new IBM XT was a more powerful machine, with an updated 286 processor, it was also expensive. The IBM PCjr was announced in 1984 to compete with Commodore 64 and Apple II, but it also met competition with the “PC Compatible” Tandy 1000 by Tandy Corporation. The Tandy 1000 marked the first step towards IBM losing their hold of PC as a platform, leading to PC becoming an “unowned” computer.

What is Composite CGA?
During this era we saw the earliest introduction of 16 colors on PC. When using CGA on some old TV’s, the signal was imperfect, which caused a color smearing that was later turned into an asset. Done right it was possible to use this smearing to produce new colors, offering an early 16-color mode known as “Composite CGA”.

What is Tandy?
King’s Quest was among the first games to use the low resolution 16-color PCjr Tandy mode, a mode iconic for its very large pixels. By reducing the amount of pixels on screen (160×200), the PC’s could produce 16-color games at reasonable speed. Adventure games like King’s Quest could not be ran on most other systems at the time due to their high memory requirement, making King’s Quest one of the first “defining” games for DOS and still quite fun to play.
DOS Memory Management
Throughout the DOS era, one of the most challenging and frustrating things was making sure applications and games had the right memory configuration. The problem stemmed from limitations in the original IBM PC’s architecture, where it was thought no PC would ever require more than 640 KB of RAM!
Indeed, the Intel 8088 and 8086 CPUs could only physically access up to 1 MB of memory via their 20 address lines. With the arrival of the 80286 CPU, up to 16 MB could be addressed, but in order to retain full backward-compatibility with the original IBM PC, memory allocation was still limited to the first 640 KB – this was referred to as Conventional Memory or Base Memory.
Upper Memory
In the original IBM PC architecture the area of memory between 640 KB and 1 MB was called Upper Memory. This was supposed to be reserved for a combination of video screen memory, video BIOS memory, option ROMs for certain devices, and Cassette BASIC. In reality, a lot of this 384 KB upper memory area (UMA) was unused.
From MS-DOS 5.0, launched in June 1991, device drivers and TSRs could be loaded into unused locations within the 384 KB of UMA via the loading of EMM386.EXE (a device driver that opened up access to the UMA). This helped keep conventional memory free for running programs. These locations were called Upper Memory Blocks (UMBs).
Extended Memory and the High Memory Area
All memory above 1 MB was referred to generically as Extended Memory. Within this, a small 64 KB area just above the 1 MB mark is called the High Memory Area (HMA).
Again from MS-DOS 5.0, a new device driver was provided called HIMEM.SYS which would allow parts of the operating system to be loaded into the HMA. This meant that up to 46 KB of conventional memory could be freed up for programs instead of storing part of the operating system.
On 80286-based systems and above, CPUs would need to be put into what was called “Protected” mode in order to access this Extended Memory. The default mode on startup for 286 and higher processors was called “Real” mode, which was essentially the same as the only mode the 8088 and 8086 CPUs could run in.
Expanded Memory
Due to the fact that no 100% IBM PC-compatible DOS software could support the 286’s Protected mode, there was an opportunity for some other mechanism to be created in order to provide access to memory above 1 MB.
The solution was to have the ability to move a “window” of accessible memory around the extended memory space in what was known as bank switching. By swapping out chunks of the extended memory area (everything above 1 MB) into a 64 KB region of the UMA, the full amount of extended memory could be accessed, just one chunk at a time. This method of accessing more memory grew and eventually became a standard known as LIM EMS (Lotus/Intel/Microsoft Expanded Memory Specification), named after the consortium of companies that worked on and ratified the specification.
It was at this point where Extended Memory got the label XMS, and Expanded Memory got the label EMS to help differentiate between the two. Both access memory above the 1 MB mark, but do so in different ways.
In order to make use of EMS, DOS 4.01 (released in 1989) came bundled with an Expanded Memory Manager called EMM386.SYS. In 1991 a more flexible version called EMM386.EXE was released with DOS 5.0. EMM386 made use of a mode found in 80386 CPUs and above: “Virtual 8086” mode.
https://dosdays.co.uk/topics/dos_memory.php
Section II: Programming in the MS-DOS Environment
Part A Structure of MS-DOS

An operating system is a set of interrelated supervisory programs that
manage and control computer processing. In general, an operating
system provides

■  Storage management
■  Processing management
■  Security
■  Human interface

Existing operating systems for microcomputers fall into three major
categories: ROM monitors, traditional operating systems, and operating
environments. The general characteristics of the three categories are
listed in Table 1-1.


Table 1-1. Characteristics of the Three Major Types of
            Operating Systems.

╓┌──────────────────────────┌─────────────┌─────────────┌────────────────────╖
Traditional
ROM Operating Operating
Monitor System Environment
──────────────────────────────────────────────────────────────────
Complexity Low Medium High
Built on Hardware BIOS Operating system
Delivered on ROM Disk Disk
Programs on ROM Disk Disk
Peripheral support Physical Logical Logical
Disk access Sector File system File system

Example PC ROM BIOS MS-DOS Microsoft Windows

A ROM monitor is the simplest type of operating system. It is designed
for a particular hardware configuration and provides a program with
basic--and often direct--access to peripherals attached to the
computer. Programs coupled with a ROM monitor are often used for
dedicated applications such as controlling a microwave oven or
controlling the engine of a car.

A traditional microcomputer operating system is built on top of a ROM
monitor, or BIOS (basic input/output system), and provides additional
features such as a file system and logical access to peripherals.
(Logical access to peripherals allows applications to run in a
hardware-independent manner.) A traditional operating system also
stores programs in files on peripheral storage devices and, on
request, loads them into memory for execution. MS-DOS is a traditional
operating system.

An operating environment is built on top of a traditional operating
system. The operating environment provides additional services, such
as common menu and forms support, that simplify program operation and
make the user interface more consistent. Microsoft Windows is an
operating environment.

MS-DOS System Components

The Microsoft Disk Operating System, MS-DOS, is a traditional
microcomputer operating system that consists of five major components:

■  The operating-system loader
■  The MS-DOS BIOS
■  The MS-DOS kernel
■  The user interface (shell)
■  Support programs

Each of these is introduced briefly in the following pages. See
PROGRAMMING IN THE MS-DOS ENVIRONMENT: STRUCTURE OF MS-DOS: The
Components of MS-DOS.

The operating-system loader

The operating-system loader brings the operating system from the
startup disk into RAM.

The complete loading process, called bootstrapping, is often complex,
and multiple loaders may be involved. (The term bootstrapping came
about because each level pulls up the next part of the system, like
pulling up on a pair of bootstraps.) For example, in most standard
MS-DOS-based microcomputer implementations,  the ROM loader, which is
the first program the microcomputer executes when it is turned on or
restarted, reads the disk bootstrap loader from the first (boot)
sector of the startup disk and executes it. The disk bootstrap loader,
in turn, reads the main portions of MS-DOS--MSDOS.SYS and IO.SYS
(IBMDOS.COM and IBMBIO.COM with PC-DOS)--from conventional disk files
into memory. The special module SYSINIT within MSDOS.SYS then
initializes MS-DOS's tables and buffers and discards itself. See
PROGRAMMING IN THE MS-DOS ENVIRONMENT: STRUCTURE OF MS-DOS: MS-DOS
Storage Devices.

(The term loader is also used to refer to the portion of the operating
system that brings application programs into memory for execution.
This loader is different from the ROM loader and the operating-system
loader.)

The MS-DOS BIOS

The MS-DOS BIOS, loaded from the file IO.SYS during system
initialization, is the layer of the operating system that sits between
the operating-system kernel and the hardware. An application performs
input and output by making requests to the operating-system kernel,
which, in turn, calls the MS-DOS BIOS routines that access the
hardware directly. See SYSTEM CALLS. This division of function allows
application programs to be written in a hardware-independent manner.

The MS-DOS BIOS consists of some initialization code and a collection
of device drivers. (A device driver is a specialized program that
provides support for a specific device such as a display or serial
port.) The device drivers are responsible for hardware access and for
the interrupt support that allows the associated devices to signal the
microprocessor that they need service.

The device drivers contained in the file IO.SYS, which are always
loaded during system initialization, are sometimes referred to as the
resident drivers. With MS-DOS versions 2.0 and later, additional
device drivers, called installable drivers, can optionally be loaded
during system initialization as a result of DEVICE directives in the
system's configuration file. 

The MS-DOS kernel

The services provided to application programs by the MS-DOS kernel
include

■  Process control
■  Memory management
■  Peripheral support
■  A file system

The MS-DOS kernel is loaded from the file MSDOS.SYS during system
initialization.

https://www.pcjs.org/documents/books/mspl13/msdos/encyclopedia/section2/c

Conclusion
The MS DOS scalability based on it’s Technical Requirements and Primitive Instructional Sets 86 Assembly was quite impressive in Gaming until 1998 when PlayStation had become dominate in the Gaming Market. Focus point is the Memory Management , again look at the Memory Management it was very impressive for PC Gaming.
Memory management
Because the amount of memory a program needs varies from program to
program, the traditional operating system ordinarily provides memory-
management functions. Memory requirements can also vary during program
execution, and memory management is especially necessary when two or
more programs are present in memory at the same time.

    MS-DOS memory management is based on a pool of variable-size memory
blocks. The two basic memory-management actions are to allocate a
block from the pool and to return an allocated block to the pool.
MS-DOS allocates program space from the pool when the program is
loaded; programs themselves can allocate additional memory from the
pool. Many programs perform their own memory management by using a
local memory pool, or heap--an additional memory block allocated from
the operating system that the application program itself divides into
blocks for use by its various routines. 

Because the amount of memory a program needs varies from program to
program, the traditional operating system ordinarily provides memory-
management functions. Memory requirements can also vary during program
execution, and memory management is especially necessary when two or
more programs are present in memory at the same time.

References:

https://dosomegames.com/history-of-dos-games

https://dosdays.co.uk/topics/dos_memory.php

https://www.pcjs.org/documents/books/mspl13/msdos/encyclopedia/section2/c

Leave a Comment

Your email address will not be published. Required fields are marked *