Michael Abrash

Last updated
Michael Abrash
Michael Abrash at Facebook's F8 2015.jpg
As Oculus VR Chief Scientist on stage at Facebook's F8 2015
Born1957 (age 6768) [1]
Occupation(s)Programmer
Technical writer
Employer Oculus VR (2014–present)
TitleChief scientist

Michael Abrash is an American programmer and technical writer. He has written dozens of magazine articles and multiple books on code optimization and software-rendered graphics for IBM PC compatibles. He worked at id Software in the mid-1990s on the rendering technology for Quake . He later wrote the Pixomatic software renderer for RAD Game Tools. Since 2014, he has been the chief scientist of Oculus VR, a subsidiary of Meta Platforms. [2]

Contents

Abrash started his career in 1982 writing action video games for the IBM PC, which eventually resulted in a 1990 book, Zen of Assembly Language Volume 1: Knowledge, about optimization for the 16-bit 8086 and 8088 processors. [3] He began writing about programming the EGA and VGA hardware of IBM PC compatibles for Programmer's Journal in the late 1980s, followed by a column for Dr. Dobb's Journal in the early 1990s. In the latter, he introduced a method of adjusting VGA mode 13h to have a resolution of 320×240 with square pixels, which he called Mode X. He also used his Dr. Dobbs's column to write about the details of his work on Quake

Game programmer

Abrash began writing video games the early days of the IBM PC and the Color Graphics Adapter. His first commercial game was a clone of Space Invaders published by Datamost in 1982 as Space Strike . [4] He followed it with Cosmic Crusader (1982) and Big Top (1983), both published by Funtastic. Working with Dan Illowsky, who had previously programmed the Apple II Pac-Man clone Snack Attack , he co-wrote Snack Attack II (1982) for the IBM PC. [5] All of his IBM PC games were written in 8086 assembly language.

After working at Microsoft on graphics and assembly code for Windows NT 3.1, he was hired by id Software in the mid-1990s to work on Quake . Some of the technology behind Quake is documented in Abrash's Ramblings in Realtime published in Dr. Dobb's Journal . [6] He mentions Quake as his favourite game of all time. [7] After Quake was released, Abrash returned to Microsoft to work on natural language research, then moved to the Xbox team until 2001. [8]

In 2002, Abrash went to RAD Game Tools where he co-wrote the Pixomatic software renderer, which emulates the functionality of a DirectX 7-level graphics card. At the end of 2005, Pixomatic was acquired by Intel. When developing Pixomatic, he and Mike Sartain designed a new architecture called Larrabee, which now is part of Intel's GPGPU project. [9]

Gabe Newell, managing director of Valve, said that he had "been trying to hire Michael Abrash forever. [...] About once a quarter we go for dinner and I say 'are you ready to work here yet?'" [10] In 2011 Abrash joined Valve. [11]

On March 28, 2014, three days after Facebook announced agreements to purchase the virtual reality headset company, [12] Oculus VR published a statement saying that Michael Abrash had joined their company as Chief Scientist. [2] This reunited him with id Software's John Carmack, who was chief technology officer there at the time.

Technical writer

Michael Abrash was a columnist in the 1980s for the magazine Programmer's Journal. The articles were collected in the 1989 book, Power Graphics Programming. His second book, Zen of Assembly Language Volume 1: Knowledge (1990), [13] is about writing efficient assembly code for the 16-bit 8086 processor, but was released after the 80486 CPU was already being used in IBM PC compatibles. [14] Volume 2 was never published.

In the early to mid-1990s, Abrash wrote a column about graphics programming for IBM PC compatibles for Dr. Dobb's Journal called "Ramblings in Realtime." In 1991, his column introduced Mode X: a 256 color 320x240 graphics mode with square pixels instead of the slightly elongated pixels of the standard 320x200 mode. The same column covers a VGA feature allowing up to four pixels to be written at once—something which had not been widely documented outside of the VGA specification. The article and its follow-ups ignited interest among MS-DOS game programmers. "Ramblings in Realtime" also covered polygon drawing, 3D graphics, and texture mapping.

Much of the content of Zen of Assembly Language was updated in Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit (1994). [15] In 1997 Abrash's Graphics Programming Black Book, [16] [17] was published. It is a collection of Dr. Dobb's Journal articles and his work on the Quake graphic subsystem.

Abrash stopped writing publicly in the 2000s until maintaining a public blog at Valve, "Ramblings in Valve Time", from April 2012 until January 2014.

Related Research Articles

<span class="mw-page-title-main">Intel 8086</span> 16-bit microprocessor

The 8086 is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, is a slightly modified chip with an external 8-bit data bus, and is notable as the processor used in the original IBM PC design.

<span class="mw-page-title-main">Tandy 1000</span> IBM PC compatible home computer system

The Tandy 1000 was the first in a series of IBM PC compatible home computers produced by the Tandy Corporation, sold through its Radio Shack and Radio Shack Computer Center stores. Introduced in 1984, the Tandy 1000 line was designed to offer affordable yet capable systems for home computing and education. Tandy-specific features, such as enhanced graphics, sound, and a built-in joystick port, made the computers particularly attractive for home use.

<span class="mw-page-title-main">Video Graphics Array</span> Computer display standard and resolution

Video Graphics Array (VGA) is a video display controller and accompanying de facto graphics standard, first introduced with the IBM PS/2 line of computers in 1987, which became ubiquitous in the IBM PC compatible industry within three years. The term can now refer to the computer display standard, the 15-pin D-subminiature VGA connector, or the 640 × 480 resolution characteristic of the VGA hardware.

In computer graphics, planar is the method of arranging pixel data into several bitplanes of RAM. Each bit in a bitplane is related to one pixel on the screen. Unlike packed, high color, or true color graphics, the whole dataset for an individual pixel is not in one specific location in RAM, but spread across the bitplanes that make up the display. Planar arrangement determines how pixel data is laid out in memory, not how the data for a pixel is interpreted; pixel data in a planar arrangement could encode either indexed or direct color.

<span class="mw-page-title-main">Hercules Graphics Card</span> IBM PC graphic adapter and display standard

The Hercules Graphics Card (HGC) is a computer graphics controller formerly made by Hercules Computer Technology, Inc. that combines IBM's text-only MDA display standard with a bitmapped graphics mode, also offering a parallel printer port. This allows the HGC to offer both high-quality text and graphics from a single card.

<span class="mw-page-title-main">Enhanced Graphics Adapter</span> IBM PC graphic adapter and display standard

The Enhanced Graphics Adapter (EGA) is an IBM PC graphics adapter and de facto computer display standard from 1984 that superseded the CGA standard introduced with the original IBM PC, and was itself superseded by the VGA standard in 1987. In addition to the original EGA card manufactured by IBM, many compatible third-party cards were manufactured, and EGA graphics modes continued to be supported by VGA and later standards.

<span class="mw-page-title-main">Deluxe Paint</span> Raster graphics editor

Deluxe Paint, often referred to as DPaint, is a bitmap graphics editor created by Dan Silva for Electronic Arts and published for the then-new Amiga 1000 in November 1985. A series of updated versions followed, some of which were ported to other platforms. An MS-DOS release with support for the 256 color VGA standard became popular for creating pixel graphics in video games in the 1990s.

<span class="mw-page-title-main">Mode 13h</span> Standard 256-color mode on VGA graphics hardware

Mode 13h is the standard 256-color mode on VGA graphics hardware introduced in 1987 with the IBM PS/2. It has a resolution of 320 × 200 pixels. It was used in computer games and art/animation software of the late 1980s and early to mid-1990s. "13h" refers to the number of the mode in the VGA BIOS. The "h" stands for hexadecimal.

Mode X is a 320 × 240 256-color graphics display mode of the VGA graphics hardware for IBM PC compatibles. It was first publicized by Michael Abrash in his July 1991 column in Dr. Dobb's Journal and then in chapters 47-49 of Abrash's Graphics Programming Black Book. The term "Mode X" was coined by Abrash. Mode X is a variant of the 320 × 200 Mode 13h with the resolution increased to 320 × 240, giving square pixels instead of the slightly elongated pixels of Mode 13h. It is enabled by entering Mode 13h via an BIOS system call, then changing the values of several VGA registers.

<span class="mw-page-title-main">Color Graphics Adapter</span> IBM PC graphic adapter and display standard

The Color Graphics Adapter (CGA), originally also called the Color/Graphics Adapter or IBM Color/Graphics Monitor Adapter, introduced in 1981, was IBM's first color graphics card for the IBM PC and established a de facto computer display standard.

<span class="mw-page-title-main">IBM Monochrome Display Adapter</span> IBM PC graphic adapter and display standard

The Monochrome Display Adapter is IBM's standard video display card and computer display standard for the IBM PC introduced in 1981. The MDA does not have any pixel-addressable graphics modes, only a single monochrome text mode which can display 80 columns by 25 lines of high-resolution text characters or symbols useful for drawing forms.

<span class="mw-page-title-main">S3 ViRGE</span> Accelerator graphics chipset

The S3 ViRGE (Video and Rendering Graphics Engine) graphics chipset was one of the first 2D/3D accelerators designed for the mass market.

<span class="mw-page-title-main">Professional Graphics Controller</span> Graphics adapter and display standard for early IBM PCs

Professional Graphics Controller is a graphics card manufactured by IBM for PCs. It consists of three interconnected PCBs, and contains its own processor and memory. The PGC was, at the time of its release, the most advanced graphics card for the IBM XT and aimed for tasks such as CAD.

John Bridges is the co-author of the computer program PCPaint and primary developer of the program GRASP for Microtex Industries with Doug Wolfgram. He is also the sole author of GLPro and AfterGRASP. His article entitled "Differential Image Compression" was published in the February 1991 issue of Dr. Dobb's Journal.

<span class="mw-page-title-main">Olivetti M24</span> Computer sold by Olivetti in 1983 using the Intel 8086 CPU

The Olivetti M24 is a computer that was sold by Olivetti in 1983 using the Intel 8086 CPU.

The eXtended Graphics Array is a graphics card manufactured by IBM and introduced for the IBM PS/2 line of personal computers in 1990 as a successor to the 8514/A. It supports, among other modes, a display resolution of 1024 × 768 pixels with 256 colors at 43.5 Hz (interlaced), or 640 × 480 at 60 Hz (non-interlaced) with up to 65,536 colors. The XGA-2 added an 800 × 600 65,536 color mode and 1024 × 768 60 Hz non-interlaced.

A binary recompiler is a compiler that takes executable binary files as input, analyzes their structure, applies transformations and optimizations, and outputs new optimized executable binaries.

<span class="mw-page-title-main">IBM PS/2 Model 30</span> 1987 IBM desktop computer

The Personal System/2 Model 30 and Personal System/2 Model 30 286 are IBM's entry-level desktop computers in their Personal System/2 (PS/2) family of personal computers. As opposed to higher-end entries in the PS/2 line which use Micro Channel bus architecture, the Model 30 features an Industry Standard Architecture bus, allowing it to use expansion cards from its direct predecessors, the PC/XT and the PC/AT. The original PS/2 Model 30, released in April 1987, is built upon the Intel 8086 microprocessor clocked at 8 MHz and features the 8-bit ISA bus; the Model 30 286, released in September 1988, features the Intel 80286 clocked at 10 MHz and includes the 16-bit ISA bus.

Video Seven, Inc., also typeset as Video-7, later Headland Technology, Inc., was a public American computer hardware company independently active from 1984 to 1989. The company manufactured expansion cards for personal computers, mainly graphics cards for the IBM PC through their Vega brand. It was founded by Paul Jain as his second venture in the graphics card market; after his departure in 1990, he founded Media Vision. Video Seven delivered both the first graphics card compatible with IBM's Enhanced Graphics Adapter (EGA), in 1985, and one of the first cards compatible with IBM's Video Graphics Array (VGA) standard, in 1987. At its peak, it was one of the three largest global manufacturers of graphics hardware for the IBM PC. In 1989, Video Seven merged with G-2 Inc., a subsidiary of LSI Logic Corporation, becoming Headland Technology.

References

  1. Abrash, Michael (April 1, 1997). "Some Things I've Learned About Win32 Game Programming". Dr. Dobb's.
  2. 1 2 "Introducing Michael Abrash, Oculus Chief Scientist". Oculus VR. 2014-03-28. Retrieved 28 March 2014.
  3. Abrash, Michael (January 1990). Zen of Assembly Language: Knowledge. Scott Foresman Trade. ISBN   978-0-673-38602-1.
  4. Lacine, Mark (Mar–Apr 1983). "Micro-Reviews". Computer Gaming World. Vol. 1, no. 9. p. 44.
  5. Hague, James. "The Giant List of Classic Game Programmers".
  6. Abrash, Michael (1996-02-01). "Ramblings in Realtime". www.drdobbs.com. Retrieved 2010-07-10.
  7. Valve Pipeline. "Pipeline Interviews: Michael Abrash on Virtual Reality & the Future of Gaming". YouTube. Archived from the original on 2021-12-12. Retrieved 8 November 2016.
  8. "Xbox Graphics Analyzed". GameSpot. Retrieved 2022-08-25.
  9. Abrash, Michael (2009-04-01). "A First Look at the Larrabee New Instructions (LRBni)". drdobbs.com/architecture-and-design. Retrieved 2010-07-10.
  10. Walker, John (2007-11-21). "RPS Exclusive: Gabe Newell Interview". Rock, Paper, Shotgun . Retrieved 22 January 2010.
  11. Crossley, Rob (2011-05-13). "Valve hires world-class development trio". Develop. Retrieved 16 May 2011.
  12. "Facebook to Acquire Oculus". Facebook. 2014-03-25. Retrieved 28 March 2014.
  13. Abrash, Michael (1994-01-15). Zen of Graphics Programming: The Ultimate Guide to Writing Fast PC Graphics. Coriolis Group; Bk&Disk edition. ISBN   978-1-883577-08-7.
  14. Hague, James (2008-02-18). "Five Memorable Books About Programming" . Retrieved 2010-07-10.
  15. Abrash, Michael (1994-12-08). Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit . Coriolis Group Books. ISBN   978-1-883577-03-2.
  16. Abrash, Michael (July 1997). Graphics Programming Black Book . Coriolis Group Books. ISBN   978-1-57610-174-2.
  17. Abrash, Michael (2001-11-01). "Graphics Programming Black Book". www.drdobbs.com/high-performance-computing. Retrieved 2010-07-10.