Impacto
A small 32-bit interpreted language for DOS and early Windows, built on Shawn Hargreaves's Allegro library and pitched at hobbyists who wanted to write games without the difficulty of C or the slowness of BASIC
Created by An author publishing as "Mestre" (Portuguese for "master"), with a contact address at a Brazilian .com.br domain; no full name is given on the surviving page
Impacto was a small interpreted programming language for MS-DOS and early Windows, aimed at hobbyists who wanted to write games and multimedia programs. Its author, who signed the work only as “Mestre”, built the interpreter on Shawn Hargreaves’s Allegro game library and sold the idea in one line: a powerful tool “without the difficulty imposed by C and without the slowness of Basic.” Impacto shipped as a free beta from a personal web page, picked up one entry in the 99 Bottles of Beer catalogue, and then disappeared. Its home page survives only in the Internet Archive, and no archived copy of the interpreter itself has been found.
The encyclopedia catalogue lists Impacto as a 1993 database language. The one primary source found contradicts both: it describes a games and multimedia tool and gives 1999 as the copyright year. This page follows that source and explains the discrepancy below.
What the record says
Almost everything known about Impacto comes from two documents:
- The author’s home page, Impacto - Games and Multimedia Programming Tool, hosted at
scorpius.spaceports.com/~esanto/. The Internet Archive captured it in December 2005 and again in January 2009 with essentially the same text. Its footer reads “Copyright 1999, Mestre, Last update - 25/04/2002”. It gives a contact address at a.com.brdomain, and one code comment uses the Portuguese word retangulo for a rectangle function. Both suggest a Brazilian author, though the page never says so. - Entry 328 on 99-bottles-of-beer.net, an Impacto version of the 99 Bottles of Beer song submitted by Philipp Winterberg on 20 April 2005. It links back to the same home page. Winterberg contributed programs in a great many obscure languages to that catalogue, so the entry shows the language was publicly downloadable at some point. It does not show that Impacto had a user community.
No manual, Usenet posting, magazine review, software-archive listing or second-hand description of Impacto has been located.
History and origins
The home page explains the motivation directly. Impacto was offered “for those programmers that want a powerful tool to develop your programs, without the difficulty imposed by C and without the slowness of Basic.” It sat in the same late-1990s niche as other hobbyist game languages: people who wanted Allegro-style graphics and sound, but without setting up a C compiler and learning C to get them.
The page states that the software “USES SHAWN HARGREAVES ALLEGRO LYBRARY”. Allegro had been re-implemented for MS-DOS with the Borland C++ and DJGPP compilers in 1995, and it became one of the most widely used game libraries of the DOS hobbyist scene. Impacto exposed Allegro’s facilities through its own built-in functions. The author told users to read the Allegro help file to understand how to call Impacto’s routines, because “Allegro functions and Impacto functions are more or less the same.”
The surviving page describes a 32-bit beta release and says: “Now, Impacto is 2 times faster and 4 times shorter than before, and have new built-in functions.” So at least one earlier version existed. Neither the earlier version nor any benchmark behind those figures is documented. The author gives no measurement, no baseline program and no test conditions, and the figures should be read as an unquantified claim of improvement.
Design philosophy
The author’s feature list sets out the design goals:
- Fast development, with a “clear and concise language”
- Automatic variables and arrays, with no declarations required
- Built-in multimedia functions for graphics, sprites, sound, MIDI music, mouse and keyboard
- Mathematical functions
- User-written functions and include files
- “No memory limits”, meaning a 32-bit protected-mode program rather than a 16-bit DOS one
- Speed the author calls “superior” to “most of the existent interpreters”, again without any benchmark
The page says the interpreter would “Run in DOS, Win3x, Win95 and Win98.” That is the author’s own claim. It has not been tested here, because no copy of the interpreter is available.
Key features
Running a program
Programs were plain text files, written in Notepad or any editor and saved with an .imp extension. They were run from the command line as impacto filename.imp. The author’s first tutorial example (the page itself says “Hello Word”):
| |
Every program ends with end(), and the author warns “do not forget to write the end() command, or you will have trouble.”
Variables and expressions
Variables need no declaration. print concatenates its arguments by juxtaposition: a string followed by an expression, with no operator between them.
| |
According to the page, this prints x is 60, y is 800, z is 2 and w is 20.
Graphics and sound
The longest example on the home page is a tour of the Allegro-backed library. It sets VGA mode 19 (13h, 320x200), installs the timer, keyboard and sound handlers, loads WAV and MIDI files into variables, draws into an off-screen image and copies it to the screen after a vertical retrace:
| |
This is a shortened version of the author’s example. Comments in the original use //. Many routines come in two forms: a _mem variant that draws into an image buffer and a plain variant that draws directly to the screen, such as linhorz_mem and linhorz for horizontal lines. The double-buffering pattern (draw off-screen, vsync(), copy) is the standard Allegro technique of the period, carried over almost unchanged.
Loops
The home page shows no loop syntax. The only loop on record is in Winterberg’s 99 Bottles entry, which uses a for(variable = start, end, step) { ... } form:
| |
The entry’s header lines begin with a backslash, while the author’s own examples use // for comments. Whether \ was also a valid comment marker cannot be checked without the interpreter.
The missing interpreter
The home page offered three downloads: impacto.zip (the interpreter), examples.zip and allegro.zip (the Allegro help file). The Internet Archive holds an impacto.zip from that address, captured in December 2005, January 2006 and February 2007, and every capture is the same 649,772-byte file. That file is not the interpreter. It is an InstallShield installer, tagged as company “SIS”, application “Impacto”, version 1.00.000. Its compressed payload contains Spanish-language documentation for IMPACTO, an instructional computer game for preschool children, with a Palabras (words) subdirectory and Borland runtime strings. The archived copies of examples.zip and allegro.zip resolve only to the host’s 404 page.
So the one archived download under Impacto’s name is an unrelated program that happens to share it. Whether the file was swapped on the host or misplaced by the author is unknown. In practice, no working copy of the Impacto interpreter is known to survive.
Evolution
Only two stages can be identified, and only from the author’s own description:
| Stage | Evidence |
|---|---|
| Earlier version(s) | Implied by “2 times faster and 4 times shorter than before”; undocumented |
| 32-bit beta | Described on the home page; copyright 1999, page last updated 25 April 2002 |
No later release, no non-beta version and no move to Windows-native or newer Allegro versions is recorded. By the 2005 captures the page had not been updated for over three years, and the final 2009 capture is unchanged.
Current relevance
Impacto is historical in the plainest sense. It has no maintained implementation, no downloadable interpreter, no source code and no community. It survives as an archived web page and a ten-line program in the 99 Bottles of Beer catalogue. Its programs could in principle be re-implemented on top of a modern Allegro, since the function set mirrors Allegro’s DOS-era calls closely, but nobody is known to have tried.
Not to be confused with
- IMP and IMP77: the Edinburgh University systems-programming languages. They are unrelated, despite the shared prefix and Impacto’s
.impfile extension. - IMP, the small textbook imperative language used to teach programming-language semantics.
- IMPACTO, the Spanish-language preschool educational game whose installer occupies Impacto’s archived download link.
What could not be verified
- The 1993 year in the catalogue. No source dates Impacto before 1999. A 1993 date is also hard to reconcile with the language’s dependence on Allegro, whose DOS version dates from 1995, and with the home page’s claim of Windows 95 and 98 support. The catalogue year may come from an earlier, undocumented version or may simply be an error. This page uses 1999 as the earliest dated evidence, and the real first release could be somewhat earlier.
- The “Database” category in the catalogue. Nothing in the surviving material mentions databases, records or file storage. Every documented feature concerns graphics, sound, input and arithmetic.
- The author’s identity. “Mestre” is a pseudonym. The Brazilian origin is inferred from the
.com.brcontact domain and a Portuguese identifier in a code comment, not stated. - Performance. The “2 times faster” and “superior speed” claims are the author’s, with no stated benchmark or baseline.
- Platform support. DOS, Windows 3.x, 95 and 98 are listed by the author. With no surviving binary, none of them can be confirmed.
- Release dates of individual versions. None are recorded.
Why it matters
Impacto is a small but typical example of a whole class of late-1990s software: one-person game languages built on top of a free C library and distributed from free web hosting. The pattern of “games without C” ran from AMOS on the Amiga through DarkBASIC and Blitz Basic on Windows, and many entries like Impacto never got further than a beta, a home page and a handful of downloads. Impacto also shows how fragile that record is. Its hosting service is long gone, its download link ended up pointing at a different program with the same name, and what survives is the author’s tutorial text and one program contributed by a collector of obscure languages.
Sources
- Impacto - Games and Multimedia Programming Tool, author’s home page at
scorpius.spaceports.com/~esanto/. Internet Archive captures of 29 December 2005 and 16 January 2009 (text identical apart from whitespace). impacto.zipfrom the same address. Internet Archive captures of 17 December 2005, 7 January 2006 and 6 February 2007 (identical, 649,772 bytes), inspected for this page: InstallShield metadata and recovered compressed payload.- 99-bottles-of-beer.net, “Language Impacto”, entry 328, by Philipp Winterberg, dated 04/20/05 (via Internet Archive; the live site did not resolve on 15 October 2026).
- Wikipedia, “Allegro (software library)”, History section, for Allegro’s Atari ST origin and 1995 DOS re-implementation.
Timeline
Notable Uses & Legacy
99 Bottles of Beer catalogue
Philipp Winterberg's 2005 Impacto program (Bottles.imp) printing the 99 Bottles of Beer song with a for loop - the only Impacto code preserved outside the author's own page