DONKEY.BAS

Last updated
DONKEY.BAS
Developer(s) Microsoft
Programmer(s) Bill Gates
Neil Konzen
Platform(s) IBM PC DOS
ReleaseAugust 1981;42 years ago (1981-08)
Genre(s) Driving
Mode(s) Single-player

Donkey, often known by its filename DONKEY.BAS, is a video game written in 1981, and included with early versions of the IBM PC DOS operating system distributed with the original IBM PC. It is a top-down driving game in which the player must avoid hitting donkeys. The game was written by Microsoft co-founder Bill Gates and early employee Neil Konzen.

Contents

Although on the game's title screen it is simply named Donkey, it is often referred to by its filename of DONKEY.BAS. All BASIC programs used the ".BAS" extension, and MS-DOS compatible operating systems that came before Windows 95 display file names in upper case. These conventions are often maintained when the game is referred to in writing.

Gameplay

DONKEY.BAS is a simple driving game in which the player controls a car but cannot steer, accelerate or brake, only changing lanes to avoid a series of donkeys on the road. There is no goal other than to avoid donkeys.

The game uses the CGA display mode, the only colour graphics mode available on the original IBM PC. The mode allows four colours but in DONKEY.BAS there are usually only three on screen.

The center of the screen shows a vertical scrolling road with two lanes; the areas on either side of the road are used for scores and instructions. The player's car is driving up the road and every few seconds a donkey will appear at random on one side of the road at the top of the screen. As the donkey moves down the screen, the player can press the space bar to switch between lanes to avoid the donkey. If the car hits the donkey, both car and donkey explode, and parts of the graphics are scattered to the four corners of the screen to the sound of a short monophonic tune played through the PC speaker, with the word "BOOM!" displayed on the left side of the screen. If the player avoids the donkey, it will scroll off the bottom of the screen, with the words "Donkey loses!" displayed on the right side of the screen, and after a few seconds another will appear. There is never more than one donkey on the screen at any one time.

The game keeps the score between the player and the donkeys. If the car hits a donkey, the donkey gets a point and the player is returned to the start of the road. As the car avoids donkeys, it moves slowly up the screen, giving the player less time to react when donkeys appear. If the car avoids enough donkeys, the player receives a point and the car is moved back to the bottom of the road. The game displays the number of points earned by the player and donkey, but does not end or change when a particular score is reached.

The Esc key quits the game.

Sprites are rendered slightly differently between the QBasic interpreter and the original IBM BASICA/GW-BASIC interpreter.

Development

DONKEY.BAS in IBM PC DOS 1.10 PC DOS 1.10 screenshot.png
DONKEY.BAS in IBM PC DOS 1.10

When IBM was developing its personal computer in the late 1970s and early 1980, it contracted Microsoft to develop an operating system and a version of the BASIC programming language to release with the new computer. The operating system was released as IBM PC DOS when included with IBM PCs and MS-DOS when sold separately by Microsoft. Both included versions of Microsoft BASIC.

DONKEY.BAS was written by Bill Gates and Neil Konzen to demonstrate the IBM PC and the BASIC programming language's capability to produce interactive programs with color graphics and sound. The game continues to generate interest, in part because of the involvement of Gates at a time when Microsoft was relatively small and only six years old. According to a speech delivered by Gates in 2001:

Actually, it was myself and Neil Thompson [sic] at four in the morning with this prototype IBM PC sitting in this small room. IBM insisted that we had to have a lock on the door and we only had this closet that had a lock on it, so we had to do all our development in there and it was always over 100 degrees, but we wrote late at night a little application to show what the Basic built into the IBM PC could do. And so that was Donkey.bas. It was at the time very thrilling. [1]

Apple's Andy Hertzfeld mentioned the game in a description of the Macintosh team's reaction to the 1981 IBM PC purchased for them by Steve Jobs "to dissect and evaluate," noting that the new computer shipped with "some games written in BASIC that were especially embarrassing:"[ excessive quote ]

The most embarrassing game was a lo-res graphics driving game called "Donkey". The player was supposed to be driving a car down a slowly scrolling, poorly rendered "road", and could hit the space bar to toggle the jerky motion. Every once in a while, a brown blob would fill the screen, which was supposed to be a donkey manifesting in the middle of the road. If you didn't hit the space bar in time, you would crash into the donkey and lose the game. We thought the concept of the game was as bad as the crude graphics that it used. Since the game was written in BASIC, you could list it out and see how it was written. We were surprised to see that the comments at the top of the game proudly proclaimed the authors: Bill Gates and Neil Konzen. Neil was a bright teenage hacker who I knew from his work on the Apple II (who would later become Microsoft's technical lead on the Mac project) but we were amazed that such a thoroughly bad game could be co-authored by Microsoft's co-founder, and that he would actually want to take credit for it in the comments. [2]

The first version of DONKEY.BAS was released in 1981, followed by version 1.10 in 1982. The operating systems with which the game was first distributed still work on modern computers with compatible BIOS and 5.25-inch floppy drives; however, IBM BASICA which ran the program under PC DOS 1.x requires ROM-based IBM Cassette BASIC, which modern computers do not have. The source code is still available. The game may be played with the GW-BASIC (original code) or QBasic (adapted code) interpreters or in compiled form (see "external links" below).

Legacy

Screenshot of the free software remake of DONKEY.BAS for the Gambas programming language DONKEY-GB.png
Screenshot of the free software remake of DONKEY.BAS for the Gambas programming language

As a programming example for the new .NET platform and Visual Basic .NET programming language, in 2001 Microsoft developed a game called Donkey .NET in homage to DONKEY.BAS. It is a three-dimensional driving game in which the aim is to hit donkeys. The game demonstrates to programmers how a Visual Basic .NET application can be structured and how to use various features of the .NET platform. [3] [4] A version was also included as part of Google's wwwBASIC browser based interpreter. [5]

See also

Related Research Articles

<span class="mw-page-title-main">BASIC</span> Family of programming languages

BASIC is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College in 1963. They wanted to enable students in non-scientific fields to use computers. At the time, nearly all computers required writing custom software, which only scientists and mathematicians tended to learn.

<span class="mw-page-title-main">GW-BASIC</span> Dialect of the BASIC programming language

GW-BASIC is a dialect of the BASIC programming language developed by Microsoft from IBM BASICA. Functionally identical to BASICA, its BASIC interpreter is a fully self-contained executable and does not need the Cassette BASIC ROM found in the original IBM PC. It was bundled with MS-DOS operating systems on IBM PC compatibles by Microsoft.

<span class="mw-page-title-main">IBM PC compatible</span> Computers similar to the IBM PC and its derivatives

IBM PC compatible computers are similar to the original IBM PC, XT, and AT, all from computer giant IBM, that are able to use the same software and expansion cards. Such computers were referred to as PC clones, IBM clones or IBM PC clones. The term "IBM PC compatible" is now a historical description only, since IBM no longer sells personal computers after it sold its personal computer division in 2005 to Chinese technology company Lenovo. The designation "PC", as used in much of personal computer history, has not meant "personal computer" generally, but rather an x86 computer capable of running the same software that a contemporary IBM PC could. The term was initially in contrast to the variety of home computer systems available in the early 1980s, such as the Apple II, TRS-80, and Commodore 64. Later, the term was primarily used in contrast to Apple's Macintosh computers.

<span class="mw-page-title-main">QuickBASIC</span> IDE for the BASIC programming language

Microsoft QuickBASIC is an Integrated Development Environment and compiler for the BASIC programming language that was developed by Microsoft. QuickBASIC runs mainly on DOS, though there was also a short-lived version for the classic Mac OS. It is loosely based on GW-BASIC but adds user-defined types, improved programming structures, better graphics and disk support and a compiler in addition to the interpreter. Microsoft marketed QuickBASIC as the introductory level for their BASIC Professional Development System. Microsoft marketed two other similar IDEs for C and Pascal, viz QuickC and QuickPascal.

Microsoft BASIC is the foundation software product of the Microsoft company and evolved into a line of BASIC interpreters and compiler(s) adapted for many different microcomputers. It first appeared in 1975 as Altair BASIC, which was the first version of BASIC published by Microsoft as well as the first high-level programming language available for the Altair 8800 microcomputer.

<span class="mw-page-title-main">SmallBASIC</span> BASIC programming language dialect with interpreters released as free software

SmallBASIC is a BASIC programming language dialect with interpreters released as free software under the GNU General Public License version 3 for Microsoft Windows, Linux and Android.

<span class="mw-page-title-main">Tandy 2000</span> Personal computer by Radio Shack

The Tandy 2000 is a personal computer introduced by Radio Shack in September 1983 based on the 8 MHz Intel 80186 microprocessor running MS-DOS. By comparison, the IBM PC XT used the older 4.77 MHz Intel 8088 processor, and the IBM PC/AT would later use the newer 6 MHz Intel 80286. Due to the 16-bit data bus and more efficient instruction decoding of the 80186, the Tandy 2000 ran significantly faster than other PC compatibles, and slightly faster than the PC AT. The Tandy 2000 was the company's first computer built around an Intel x86 series microprocessor; previous models used the Zilog Z80 and Motorola 6809 CPUs.

<i>Nibbles</i> (video game) 1991 video game

Nibbles, also known by the source code's file name NIBBLES.BAS, is a variant of the snake video game concept used to demonstrate the QBasic programming language. Nibbles was written in QBasic by Rick Raddatz, who later went on to create small businesses such as Xiosoft and Bizpad.

<i>Gorillas</i> (video game) 1991 video game

Gorillas, also known under the source code's file name GORILLA.BAS, is a video game first distributed with MS-DOS 5 and published in 1991 by Microsoft. It is a turn-based artillery game. With allusions to King Kong, the game consists of two gorillas throwing explosive bananas at each other above a city skyline. The players can adjust the angle and velocity of each throw as well as the gravitational pull of the planet.

<span class="mw-page-title-main">IBM TopView</span> Former front-end to DOS

TopView is the first object-oriented, multitasking, and windowing, personal computer operating environment for PC DOS developed by IBM, announced in August 1984 and shipped in March 1985. TopView provided a text-mode operating environment that allowed users to run more than one application at the same time on a PC. IBM demonstrated an early version of the product to key customers before making it generally available, around the time they shipped their new PC AT computer.

Mallard BASIC is a BASIC interpreter for CP/M produced by Locomotive Software and supplied with the Amstrad PCW range of small business computers, the ZX Spectrum +3 version of CP/M Plus, and the Acorn BBC Micro's Zilog Z80 second processor.

<span class="mw-page-title-main">PC game</span> Electronic game played on a personal computer

A personal computer game, also known as a computer game or abbreviated PC game, is a video game played on a personal computer (PC). They are defined by the open platform nature of PC systems.

Neil Konzen is a computer programmer who formerly worked for Microsoft as one of its earliest employees. He was the systems programmer of Microsoft's Macintosh programs projects, including Multiplan and Word for the Mac in 1984. He was later tasked with leading the team that created the second version of Windows at Microsoft, after the failure of the original version.

BSAVE and BLOAD are commands in many varieties of the BASIC programming language. BSAVE copies RAM to a binary file, and BLOAD copies the contents of the file to RAM. The term "BSAVE image" could mean any of various raw image formats of video display controllers, or more generally any file containing the raw contents of a section of memory.

<span class="mw-page-title-main">Windows 1.0</span> First major release of Microsoft Windows

Windows 1.0 is the first major release of Microsoft Windows, a family of graphical operating systems for personal computers developed by Microsoft. It was first released to manufacturing in the United States on November 20, 1985, while the European version was released as Windows 1.02 in May 1986.

<span class="mw-page-title-main">QBasic</span> IDE for the BASIC programming language

QBasic is an integrated development environment (IDE) and interpreter for a variety of dialects of BASIC which are based on QuickBASIC. Code entered into the IDE is compiled to an intermediate representation (IR), and this IR is immediately executed on demand within the IDE.

The IBM Personal Computer Basic, commonly shortened to IBM BASIC, is a programming language first released by IBM with the IBM Personal Computer, Model 5150 in 1981. IBM released four different versions of the Microsoft BASIC interpreter, licensed from Microsoft for the PC and PCjr. They are known as Cassette BASIC, Disk BASIC, Advanced BASIC (BASICA), and Cartridge BASIC. Versions of Disk BASIC and Advanced BASIC were included with IBM PC DOS up to PC DOS 4. In addition to the features of an ANSI standard BASIC, the IBM versions offered support for the graphics and sound hardware of the IBM PC line. Source code could be entered with a full-screen editor, and limited facilities were provided for rudimentary program debugging. IBM also released a version of the Microsoft BASIC compiler for the PC concurrently with the release of PC DOS 1.10 in 1982.

<span class="mw-page-title-main">BASIC interpreter</span> Interpreter that enables users to enter and run programs in the BASIC language

A BASIC interpreter is an interpreter that enables users to enter and run programs in the BASIC language and was, for the first part of the microcomputer era, the default application that computers would launch. Users were expected to use the BASIC interpreter to type in programs or to load programs from storage.

References

  1. Bill Gates Speech Transcript - Tech Ed 2001 Archived 2012-02-13 at the Wayback Machine
  2. "Donkey - Folklore.org". Archived from the original on 2006-09-01. Retrieved 2009-02-23.
  3. Jeff Atwood (2007-03-17). "Bill Gates and DONKEY.BAS". CODING HORROR. Archived from the original on 2016-03-04. Retrieved 2016-03-21.
  4. "Donkey.NET - Software Informer. Donkey .NET is a three-dimensional driving simulator game". 2015-03-21. Archived from the original on 2016-04-03. Retrieved 2016-03-21.
  5. Williams, Al (2018-09-17). "It's The Web, Basically". Hackaday . Retrieved 2023-09-28.