Est. 1995 Intermediate

GLPRO

John Bridges' Graphics Language for Professionals: the script-driven successor to GRASP that packed images, animation, sound, fonts and even a database into a single small executable for DOS and Windows multimedia titles of the late 1990s.

Created by John Bridges, under a development contract with GMEDIA (IMS Communications Ltd, UK)

Paradigm Procedural scripting with event-driven extensions (the WHEN command, hotspots, layers); not object-oriented
Typing Untyped script variables, created with SET and read back with an @ prefix (for example @a); floating-point maths fully supported from GLPRO 7
First Appeared 1995
Latest Version GLPRO 8.100 (May 2000); GMEDIA added native MPEG video support in a further 8.x release in September 2000

GLPRO, short for Graphics Language for Professionals, was a commercial multimedia authoring language for MS-DOS and Microsoft Windows. John Bridges wrote it as the successor to GRASP, the pioneering PC animation system he had developed since the 1980s. Most competing tools of the late 1990s were visual: Macromedia Director had its stage and score, Asymetrix ToolBook its books and pages. GLPRO was built around a script. Every fade, animation, sound, hotspot and database lookup was a line of BASIC-like code. The script was then compiled into a single self-contained .EXE or screensaver .SCR file that needed no runtimes, codecs or drivers on the user’s machine. That “one file, nothing to install” design made GLPRO popular for CD-ROM and floppy titles that had to run on whatever PC a customer happened to own.

History & Origins

The GRASP inheritance

GLPRO’s history begins with GRASP. In the mid-1980s Doug Wolfgram and John Bridges, who had already written PCPaint together for Mouse Systems, produced GRASP, the GRaphical System for Presentation. It was later renamed the GRaphics Animation System for Professionals. Wolfgram’s company Microtex Industries released it as shareware in 1985. From version 2.0 in 1987 it was a commercial product published by Paul Mace Software, and Bridges took over the core engine. GRASP 3.0 followed in 1988 and GRASP 4.0 in February 1991. Version 4.0 added the ability to bind a presentation into a stand-alone EXE, Autodesk FLI/FLC playback, file I/O, global variables and loadable command modules. Multi-Media GRASP followed in June 1993 with TrueColor support.

Early in 1990 Wolfgram sold his remaining rights in GRASP and PCPaint to Bridges. That is probably where the date 1990, used for GLPRO in some language lists, comes from. The GLPRO product itself appeared only in 1995.

From GRASP to GLPRO (1994-1995)

GMEDIA’s own history of the product says that in 1994 GRASP development “stagnates in a bad atmosphere” between Bridges and his publisher, and Bridges ended his contract with Paul Mace Software. In June 1995 he signed a new development contract with GMEDIA. GMEDIA was one of GRASP’s largest users and a popular developer of GRASP add-ons, and was associated with the British multimedia producer IMS Communications Ltd. Work started on a brand-new Windows codebase, codenamed Neptune.

The first product came out in autumn 1995: GLPRO 6 for DOS. It was a complete rewrite and was “100% upwardly compatible” with GRASP. The version number continued GRASP’s numbering rather than starting again at 1, so existing GRASP scripts and developers carried straight across. GLPRO for Windows followed in February 1996.

Design Philosophy

Everything in one file

The idea that ran through every GLPRO release was self-containment. GMEDIA’s GLPRO 8 specification explains it at length. Contemporary Windows applications depended on a growing pile of shared DLLs, codecs and drivers, and GMEDIA saw that as the root cause of “compatibility” failures. GLPRO’s answer was to implement each media type itself:

  • Sound: WAV, ADPCM and, from late 1998, MP3, decoded by GLPRO’s own code with up to 32 mixed channels
  • Animation: Autodesk FLI and FLC plus GLPRO’s own DFF format, with no AAPLAY.DLL, Indeo or QuickTime runtime
  • Fonts: compressed .GLF fonts with real-time anti-aliasing, so no TrueType fonts had to be installed
  • Images: JPEG, GIF, BMP, PCX and GLPRO’s own image format
  • Data: a built-in dBASE .DBF engine that GMEDIA put at about 8 KB

All of these assets could be embedded in, and protected inside, the compiled executable. GMEDIA quoted the size of the playback engine itself as 249 KB in early 1998, 321 KB after the late-1998 MP3 upgrade, and 320 KB for each of the two version 8 engines. These are vendor figures.

The drawback was the one Wikipedia’s article identifies. Because GLPRO did not use operating-system media services, it had to add every new format itself. It struggled to keep up as video and audio formats multiplied.

Code instead of WYSIWYG

GLPRO deliberately had few visual tools. Developers wrote scripts in an editor. The late-1998 MP3 upgrade introduced a 32-bit IDE with syntax colouring, breakpoints and watches, plus image and font editors. The language was not object-oriented: there were no classes and no way to extend the language itself. Instead it offered a very large vocabulary of specialised commands, which GMEDIA’s MP3 press release put at more than 650 commands and features. Customer testimonials on GMEDIA’s site present this as a selling point: “No object orientated programming, just straight code”. Critics pointed to its syntactic inconsistency and the steep learning curve.

Key Features

Syntax

GLPRO scripts are line-oriented. Each line holds a command followed by space-separated arguments, and comments begin with a semicolon. Version 8 reorganised the language so that every command starts with its subsystem name: image..., draw..., sound..., palette..., net..., file..., print.... The examples below are adapted from GMEDIA’s own “GLPRO tips” page (archived January 2000) and use the version 8 syntax.

Displaying images and waiting for the user:

1
2
3
4
5
imageLoad egypt.jpg              ;load a JPEG image
imagePut left center egypt       ;display left side, vertically centred
imagePut center center egypt     ;display centred on the screen
wait                             ;wait for keypress/mouse click
paletteSpread black              ;fade a 256-colour screen to black

A complete screensaver that grabs the desktop and scribbles random lines over it:

1
2
3
4
5
6
7
8
desktopGET image                 ;grab the desktop, calling it image
screensaver
imageFADE image                  ;show the grabbed desktop
imageFREE image
mark
  drawLine 0 0 @drawMaxX random(0,@drawMaxY)
  drawLine 0 random(0,@drawMaxY) @drawMaxX 0
endloop

Variables and expressions. A name is assigned with set or = and dereferenced with @:

1
2
3
4
set a 1                          ;create variable a, set to 1
textLN @a                        ;displays 1
textLN a=2                       ;displays 2
textLN @a+1                      ;displays 3

Sound and internet access are ordinary commands too:

1
2
3
4
sound PLAY popsong.mp3           ;play an MP3 file embedded in the EXE
wait 625                         ;wait 6.25 seconds
sound POSITION 25000             ;jump 25,000 samples in
netOPENWEBPAGE "http://www.gmedia.com"

Capabilities by the end of the 1990s

GMEDIA’s dated history records the feature growth through the Windows releases:

AreaFeatureAdded
EventsEnhanced WHEN command as the basis of event-driven scriptsMay 1996
OutputScreensaver (.SCR) generationJune 1996
InteractionHotspots, later including irregular user-defined areasSept 1996 / v7.1x
TextOn-the-fly anti-aliased text with embedded compressed fontsFeb 1997
InternetHTTP and FTP; then email sendingJuly / Nov 1997
GraphicsLayers; filter and tint; rotate and warpOct 1997 - Mar 1998
DatadBASE .DBF database and printingJan 1998
BuildModular compiler that includes only the commands a script usesApr 1998
AudioNative MP3, ADPCM and multi-stream mixingNov 1998
VideoNative MPEG video, first public versionSept 2000

Version 7.1x also added serial and parallel port I/O, DLL callbacks, clipboard access and encryption functions.

Evolution

GLPRO 6 (1995-1996)

GLPRO 6 was the DOS rewrite and then the first Windows edition. Its main job was to give the existing GRASP user base a stable, actively developed home. GMEDIA credits the “instant user feedback and internet fueled development” of a mailing-list community for its rapid pace.

GLPRO 7 (1997)

Released in June 1997, GLPRO 7 brought JPEG support, long filenames and 32-bit Windows API access. It also merged GLPRO’s separate function and command forms into one common syntax. Script size limits doubled from 32 KB to 64 KB in 7.1x. The engine was still a tightly coded 16-bit Windows program, which kept Windows 3.1 compatibility.

GLPRO 8 (1999-2000)

GLPRO 8, announced on 16 September 1999, was the largest change in the product’s life. It introduced the prefixed command syntax shown above, a pure 32-bit engine for Windows 95, 98, NT and 2000, a second 16/32-bit engine that still played back on Windows 3.1, and an HTML Help reference with runnable examples. The old syntax remained available through a switch. GMEDIA described the new “clean” 32-bit architecture as the base for Macintosh, Linux and Windows CE engines that would reproduce a title “pixel for pixel” on every platform.

The end of GMEDIA

In February 2000 the GLPRO technology moved from IMS Communications to a separately financed public company, GMEDIA.COM plc, which renamed itself GMEDIA Technology plc that September. Its last dated history entry, from January 2001, reports alpha Macintosh and Linux engines running about 95% of GLPRO’s features. GMEDIA closed its doors in the last days of February 2001, according to Bridges’ own account on aftergrasp.com. Wikipedia adds that the Macintosh and Linux ports were just entering public beta at the time. We found no evidence that any non-Windows engine was ever released. The same article claims the rights later passed to a company called Comlet Technologies, which we could not verify.

Current Relevance

GLPRO is a historical product. Its vendor has been gone for a quarter of a century, and its runtimes are 16- and 32-bit Windows executables from the Windows 3.1-2000 era. They are of interest mainly to people preserving CD-ROM titles of that period.

The lineage did not quite end with GLPRO, though. In late February 2002 John Bridges began AfterGRASP, a new authoring system designed to be backwards compatible with GLPRO. Its website, aftergrasp.com, still describes it as “a successor to GLPRO and GRASP” and offers a free download under a non-commercial licence.

Why It Matters

GLPRO was the last commercial form of one of the PC’s earliest multimedia traditions. GMEDIA’s 1999 press release could claim “over 15 years” of history for a product launched in 1995, because GLPRO was really the continuation of GRASP and PCPaint, which go back to 1983-85. Its single-executable, no-dependency design was a deliberate response to the “DLL hell” of 1990s Windows, and it let small teams ship rich titles on a single floppy or a run-from-CD disc that worked on low-end PCs. Its main weakness, owning every media format itself, also explains why it faded once the industry moved to shared codecs and web-based multimedia.

Sources and Verification Notes

  • GMEDIA, “The History of GLPRO and the people behind it” (gmedia.com/glpro/press/history.html, Wayback capture June 2001) is the source for the dated chronology from 1983 to January 2001.
  • GMEDIA press releases are the source for the GLPRO 8 launch (16 September 1999), the MP3 upgrade and the World Cup 98 CD-ROM. The GLPRO 8 and version 7 specification pages and the “GLPRO tips” page are the source for the syntax examples. GMEDIA’s showcase pages are the source for AeroMexico, OAG CargoDisk, Microsoft Sales Specialist and CD Zone, and its 1998 users page for the “No object orientated programming” testimonial. All are Wayback captures, 1998-2001.
  • Pallas Press, “Master GLPRO Faster” release (25 April 2000) is the source for GLPRO Foundations 2000, ISBN 0-9661871-7-2.
  • Wikipedia’s GRASP, PCPaint and John Bridges articles are the source for GRASP history, the 1990 rights sale and the critique of the language.
  • The February 2001 closure and the February 2002 start of AfterGRASP come from Bridges’ “Where did AfterGRASP come from?” page on aftergrasp.com. The claim that the Macintosh and Linux ports were entering public beta, and the later ownership by Comlet Technologies, come only from Wikipedia and are not independently verified. Engine sizes, command counts and the 8 KB database figure are vendor claims.

Timeline

1990
Doug Wolfgram sells his remaining rights in GRASP and PCPaint to John Bridges, who had been the main developer of the GRASP engine since GRASP 2.0 (1987). This is the date some language catalogues give for GLPRO, but the GLPRO name did not yet exist
1995
In June, after GRASP development stalls in a dispute with its publisher Paul Mace Software, Bridges signs a development contract with GMEDIA, one of GRASP's largest users and an add-on developer. Work starts on a new Windows codebase codenamed Neptune, and in the autumn GLPRO 6 for DOS ships: a complete rewrite that is upwardly compatible with GRASP scripts
1996
In February GLPRO for Windows ships, the first Windows version of the technology. Later that year come TrueType font support and compressed GLF fonts, an enhanced WHEN command for event-driven scripts (May), screensaver output (June) and hotspots (September)
1997
In June GMEDIA releases GLPRO 7 for Windows. It adds JPEG support, long filenames and access to the 32-bit Windows API, although the engine itself remains a 16-bit Windows program. Commands and functions are merged into one syntax and floating-point maths is fully supported. HTTP and FTP (July), layers (October) and email (November) follow
1998
dBASE .DBF database access and printing (January), image rotate and warp (March), a modular compiler that links in only the commands a script actually uses (April), and native MP3, ADPCM and multi-stream sound mixing (November) are added. The MP3 upgrade also introduces a new 32-bit IDE. IMS Communications uses GLPRO to build Ziff-Davis' 'Ultimate Guide to the World Cup 98' CD-ROM
1999
GMEDIA announces GLPRO 8 on 16 September. It brings a completely revised, category-prefixed command syntax (imageLOAD, imageFADE, drawLINE...), a pure Win32 runtime alongside a 16/32-bit engine for Windows 3.1, and an HTML Help reference. The GLPRO 7 syntax remains available through a switch
2000
In February GMEDIA.COM plc acquires the GLPRO technology from IMS Communications Ltd. On 25 April Pallas Press announces Conrad Brandt's 464-page 'GLPRO Foundations 2000'. GLPRO 8.100 adds MP1/MP2 audio in May, and in September the renamed GMEDIA Technology plc ships the first public version of GLPRO's native MPEG video support
2001
In January GMEDIA reports alpha Macintosh and Linux engines running about 95% of GLPRO's features. According to Bridges, GMEDIA closed its doors in the last days of February 2001, and there is no evidence that either port was ever released
2002
Bridges, no longer involved with GLPRO, begins AfterGRASP, a new authoring system designed to be backwards compatible with GLPRO scripts

Notable Uses & Legacy

The Ultimate Guide to the World Cup '98 (Ziff-Davis)

A magazine companion CD-ROM built by IMS Communications in GLPRO, with screensavers, games, video interviews and team information. The specification called for Windows 3.1/95/98/NT on a 486DX in no more than 4 MB of RAM, running directly from CD with nothing installed to the hard drive, plus live results updates over the internet without a web browser

AeroMexico Flight Planner

A single-floppy application listed in GMEDIA's showcase. It held a searchable graphical database of more than 45,000 flights, with airport details, aircraft types, connections and seat classes, together with country maps, cabin layouts and terminal plans.

OAG CargoDisk demonstration (Reed Travel Group)

A GMEDIA showcase disk made for Reed Travel Group to demonstrate its OAG CargoDisk product, containing a walk-through simulation of the product and descriptions of its key benefits

Microsoft Sales Specialist training disk

A multilingual, single-floppy training application listed in GMEDIA's showcase. Microsoft's remote sales offices used it to train staff and dealers in key product areas, and it included graphics, user testing and storage of trainee results

CD Zone (PC Zone Benelux cover disc)

The front end of the monthly cover CD-ROM for the Dutch and Belgian games magazine PC Zone Benelux, which GMEDIA's showcase put at 43,000 copies a month. It launched game demos after checking the user's CPU, disk space and free memory, played sound and video, and read its menu structure from an external INI file

Computer-based training (Conrad Brandt / Pallas Press)

Conrad Brandt, a retired US Air Force officer, used the GRASP/GLPRO line from 1991 to build computer-based training, testing and financial applications. He wrote the GLPRO tutorial books 'GLpro for Windows Foundations' and 'GLPRO Foundations 2000' (Pallas Press, Orlando)

Language Influence

Influenced By

Influenced

AfterGRASP

Running Today

Run examples using the official Docker image:

docker pull
Last updated: