Est. 1990 Beginner

Chipmunk BASIC

Chipmunk BASIC is a freeware old-fashioned BASIC interpreter that began as Dave Gillespie's Pascal program on Caltech's HP workstations, became a beloved Macintosh freeware staple under Ron Nicholson, and is still quietly maintained for macOS, Linux and the Raspberry Pi.

Created by Dave Gillespie wrote the original Pascal interpreter at Caltech; Ron Nicholson has developed and maintained the C-based Chipmunk Basic that followed, adding file I/O, graphics and the Unix, Macintosh and PowerMac ports

Paradigm Procedural and imperative - a traditional line-numbered BASIC, extended over time with named subroutines and functions, user-defined TYPE records and optional CLASS-based objects with single inheritance
Typing Dynamic and weak by BASIC convention, with types carried in variable-name suffixes: bare names are IEEE double-precision floats, a % suffix marks a short integer that the manual limits to the range -32768 to 32767, and a $ suffix marks a string
First Appeared Dave Gillespie's Pascal original, basic.p, was written at Caltech at an unpublished date in the 1980s; the code first reached a wide public audience in March 1990 when it shipped as an example program in the p2c source archive posted to Usenet, and Ron Nicholson's Macintosh version was publicly released in 1992 according to Wikipedia
Latest Version Version 1.368.2210 for macOS, published November 11, 2022 according to the project home page; the same page lists a later Raspberry Pi 64-bit beta, version 3.6.8b307, dated February 9, 2024

Chipmunk BASIC is a freeware interpreter for the BASIC programming language, and it is unapologetic about what it is. Its own documentation calls it “an old-fashioned interpreter for the BASIC programming language” - you get a > prompt in a terminal window, you type numbered lines, and you type run. There is no project scaffolding, no build system, no package manager. It is the experience of a 1980s home computer, delivered as a small download that still runs natively on an Apple Silicon Mac.

That combination - a genuinely vintage interface over a genuinely maintained implementation - is what makes it interesting. Chipmunk BASIC is not an emulator and not a museum piece. It is a program written in Pascal at Caltech in the 1980s, machine-translated to C in 1990, ported to the Macintosh in 1992, and updated for Apple’s M1 processors around 2020, by which point almost nothing else in the personal computing world had survived that particular gauntlet unbroken.

History and Origins

Caltech, the HP 9836, and a name

Chipmunk BASIC is named after a computer it no longer runs on. Chipmunk was Hewlett-Packard’s code name for the 9836 workstation, machines that filled Caltech’s computing clusters, and the Chipmunk Tools - a CAD suite developed at Caltech and written in HP Pascal - carried the same name. Dave Gillespie wrote a BASIC interpreter in Pascal, basic.p, for that environment.

Exactly when is not recorded. The documentation that shipped with it carries a 1989 Gillespie copyright notice and the title Chipmunk BASIC 1.0, and the p2c examples directory that later distributed it describes its contents as programs “culled from various places around the Caltech C.S. educational lab”. That is as precise as the primary sources get, and this page will not invent a date they do not give.

p2c, March 1990

The interpreter’s escape from campus came as a side effect of a different problem: translating a large body of HP Pascal into something portable. Gillespie built p2c, a Pascal-to-C translator handling HP Pascal among many other dialects, and basic.p traveled in the distribution as one of the example programs - listed there, in the README’s own phrasing, as “an interpreter for the Basic language, just for kicks!”. Nicholson’s account describes it as one of the translator’s test input files.

In March 1990, p2c was posted to Usenet - Nicholson’s readme recalls comp.source.misc, while the surviving archived posting is in comp.sources.unix. The Basic interpreter went with it. Everything that follows descends from the C that came out the other side of that translator.

Ron Nicholson and the Macintosh, 1992

The version the world actually used was built by Ron Nicholson, of HotPaw Productions. His summary of his own contribution, in the reference manual’s credits, is characteristically terse: he added file I/O and graphics and did the Unix, Macintosh and PowerMac ports, over the span 1990 to November 1997. Wikipedia dates the public Macintosh release to 1992.

It landed at the right moment. The Mac of the early 1990s had no BASIC in the box - Apple had shipped Applesoft on the II and MacBASIC was famously killed before release - and commercial options cost money. A free, capable, immediately usable BASIC filled a real gap, and it spread the way Mac freeware spread then: through Info-Mac, the FTP-and-Usenet archive that served as the platform’s distribution network before the web. Nicholson ported the interpreter first to a Mac 512KE, then to a PowerMac 7100, and posted the PowerPC build to Info-Mac on March 15, 1994 - by his own account, the day after the first Power Macintosh went on sale.

Design Philosophy

Old-fashioned on purpose

Most BASIC revivals try to modernize the language into respectability - structured control flow, no line numbers, an IDE. Chipmunk BASIC keeps the line numbers. In its console mode they are required; only when you write programs in an external editor do they become optional. The prompt-and-run loop is the product, not a limitation to be engineered away.

The argument for this is pedagogical and it is not a weak one. A beginner who types 10 print "hi" and then run has, in two lines, encountered program storage, program execution, statements, and the distinction between the two - with no file, no compiler, and no toolchain in the way. That is a very short path from nothing to a running program, and it is the path that got a generation into programming in the first place.

One maintainer, many decades

The other design decision is invisible in the syntax: Chipmunk BASIC is a single-maintainer project sustained across thirty-plus years. That shows up as conservatism. Features accumulate slowly, old builds are never deleted, and the archive still offers a build for 68k Macs running System 6 next to one for Apple Silicon. The project is explicit that its Cocoa rewrite is a trade rather than a straight upgrade - it states plainly that many Mac-specific features from the older Carbon and PowerPC versions are missing or broken in the Cocoa port. Saying so out loud, rather than quietly dropping the old downloads, is the whole ethos in one gesture.

Free, but not open in the usual sense

The licensing is of its era: free for educational and personal use, distributed without warranty. That is freeware rather than free software as the term is now understood, and it is worth being precise about the difference. The ancestor - Gillespie’s Pascal implementation - is described as public domain; the modern Chipmunk BASIC is Nicholson’s freeware.

Key Features

Types and variables

The type system is BASIC’s traditional one, encoded in the variable name:

SuffixType
(none)IEEE double-precision floating point
%Short integer (the manual specifies a range of -32768 to 32767)
$String (up to 254 characters)

Variable names may be up to 31 significant characters, must start with a letter, and are case insensitive. Arrays are declared with DIM and support a maximum of four dimensions. The manual is candid about the seams: arithmetic on integer variables is done in floating point anyway, and integer arrays are limited to one dimension.

Statements

The statement vocabulary is what you would expect, plus rather more than you would expect:

1
2
3
4
5
6
7
8
9
10 rem control flow
20 if x > 0 then print "positive" else print "not"
30 for i = 1 to 10 : print i : next i
40 while a < 100 : a = a * 2 : wend
50 gosub 1000
60 select case k
70 case 1 : print "one"
80 case else : print "other"
90 end select

IF/THEN/ELSE/ENDIF, FOR/NEXT, WHILE/WEND, SELECT/CASE, GOSUB/RETURN and GOTO cover control flow. DIM, READ, DATA and RESTORE cover static data. INPUT, PRINT, OPEN, CLOSE, GET and PUT cover I/O, with seeking and byte-level access available on files.

The function library runs from the ordinary - abs, sgn, int, sqr, rnd, sin, cos, atn, log, log10, exp - through the string set that every BASIC programmer has muscle memory for: mid$, left$, right$, str$, chr$ and case conversion.

Objects in a line-numbered BASIC

The genuinely surprising part is that this line-numbered interpreter grew an object system, and grew it early: the manual’s change log records class definitions arriving in v3.2.8, with notes on experimental OOP extensions dating to 1996. TYPE defines structured records; CLASS defines classes with single inheritance - the reference manual’s phrasing is that “classes inherit members from superclasses (single inheritance)”. Instances are created with dim VAR as new CLASSNAME and members reached through dot notation.

Finding dim obj as new Shape a few lines away from a GOSUB is a fair summary of what this language is: an artifact with thirty years of sediment in it, where nothing was ever removed to make room for what came later.

Beyond the language core

The extensions are where a Unix sensibility shows through the retro-computing surface. MAT statements provide matrix arithmetic; the interpreter offers FFTs (fn fft1), sockets, pipes, fork, shell command execution via system$(), and key-value database storage via sdbm - the project’s own description of the Linux build lists exactly this set, and notes it has even been used for web CGI. The Macintosh builds went considerably further, adding color graphics, a sprite engine, QuickTime MIDI and other sound, MacinTalk speech synthesis, AppleScript support and serial port I/O; the readme’s version history records beta support for Bluetooth LE appearing in the 2016 release.

Graphics

Cross-platform graphics are deliberately minimal: moveto, lineto, color setting and text rendering, with a scrn() function for reading pixels. The Mac-specific set adds oval and rectangle drawing and window sizing. On Linux, graphics are described as limited X11 support - a caveat the project states plainly rather than glossing over.

Evolution

The version numbering tells the story compactly. The 3.5.x line served the classic Mac era (3.5.6, dated August 1998, for System 6 on 68k; 3.5.7, dated May 2000, for System 7). The 3.6.x line ran through the 2000s and 2010s, reaching 3.6.3(b7) for Mac OS 9 Classic in April 2007, with the reference manual covering 3.6.6 internally dated August 2007, and 3.6.5 builds serving as the Windows (January 2011) and Linux/x86 ports. The current Linux x86-64 and Raspberry Pi builds carry 3.6.7 and 3.6.8 numbers.

Modern macOS releases use a different scheme - 1.368.2210, 1.368.2202, 1.367.2627 - whose middle component appears to encode the familiar 3.6.8 and 3.6.7 lines, an inference the project does not spell out. The readme reinforces it by writing one release as “Version 3.6.7(b6.0) = 1.367.2601”.

What that sequence records is four Macintosh instruction set architectures survived in one codebase: 68k, PowerPC, Intel and ARM. Apple Silicon support arrived in version 1.368.2202, which the readme credits with adding native M1 support and which the download page dates to November 2020.

Current Relevance

The current macOS release is version 1.368.2210, published November 11, 2022, which the project describes as tested with macOS 13 Ventura and on M1 Macs as well as older x86-64 Macs. According to the project’s home page, builds are also offered for Linux x86-64 (3.6.7b5 beta), the Raspberry Pi in both 32-bit and 64-bit ARM form, and MS Windows 2000/XP (3.6.5b6), with the page passing along user reports of the Windows build working under 64-bit Windows 8. Beyond what that page states, no compatibility claim here should be assumed - these are one maintainer’s builds and one maintainer’s testing, not a vendor support matrix.

The Raspberry Pi support is the most telling item on that list. A cheap single-board computer that boots to a prompt and invites a beginner to type something is, functionally, the machine BASIC was designed for, arriving forty years late. Chipmunk BASIC did not have to change to fit it - and the Pi is where the most recent activity shows: the 64-bit ARM build, version 3.6.8b307 beta, is dated February 9, 2024.

The language is best described as dormant rather than dead: releases are years apart, but this is a maintained, downloadable, natively-compiled interpreter that still starts on current hardware, with a reference manual published by MacTech, a community pocket manual on Wikibooks, a four-chapter tutorial contributed by Thomas L. Ferrell, and an entry in gotBASIC.com’s catalogue of living BASICs.

Why It Matters

Chipmunk BASIC’s significance is not linguistic. It contributed no new ideas to programming language design; it is a competent traditional BASIC with an unusually large extension set bolted on over time.

Its significance is as an object lesson in software longevity. Trace the chain: a Pascal program written for HP workstations at Caltech in the 1980s, machine-translated to C in 1990 as one of a translator’s test inputs, ported to the Macintosh in 1992, carried through the PowerPC transition in 1994, the Intel transition, Carbon to Cocoa around 2015-2016, and the Apple Silicon transition - then rebuilt for an inexpensive ARM single-board computer and a Windows PC along the way, all by one person giving it away for free. Very little commercial software has that record. Almost no hobby software does.

There is a second lesson in the lineage. The interpreter survived at all because it was useful as an example - a nontrivial program worth shipping with a translation tool. Software often outlives its purpose by being convenient to carry, and Chipmunk BASIC is one of the cleaner illustrations of that: it was preserved as a demonstration of something else, and once preserved, it turned out to be worth having on its own terms.

Finally, it stands for a defensible position on how programming should be introduced. The prompt-and-run loop it preserves is not nostalgia for its own sake. It is the shortest known distance between a person who has never programmed and a program that runs, and Chipmunk BASIC has spent three decades declining to lengthen it.

Timeline

1989
Dave Gillespie writes the original Chipmunk Basic interpreter in Pascal, as basic.p, in the Caltech computing environment. No source gives a precise date for it; the earliest firm anchor is the 1989 Gillespie copyright notice carried in its documentation, and the p2c examples directory that later shipped it describes its programs as culled from the Caltech CS educational lab. The name traces back to the machines: Chipmunk was Hewlett-Packard's code name for the 9836 workstation, and the Chipmunk Tools CAD suite developed at Caltech for those machines in HP Pascal carried the same name
1990
In March 1990, Gillespie posts p2c - a Pascal-to-C translator written at Caltech, with HP Pascal among the dialects it handles - to Usenet. Nicholson's README recalls the group as comp.source.misc; the surviving archived posting is in comp.sources.unix, March 1990. The Basic interpreter travels with it as one of the example programs, and Nicholson describes basic.p as one of the translator's test input files. The machine-generated C output of that translation becomes the ancestor of every later Chipmunk Basic. This is the point at which the code became broadly available rather than local to one campus
1992
Ron Nicholson publicly releases his Macintosh version of Chipmunk Basic, the release that most people mean when they say Chipmunk Basic; Wikipedia gives 1992 as the public release year. His own summary of the division of labor, in the reference manual credits, is that he added file I/O and graphics and did the Unix, Macintosh and PowerMac ports over the period 1990 to November 1997. Free for educational and personal use, distributed as a plain download in the era before app stores, it becomes one of the standard answers to the question of how to write BASIC on a Mac
1994
Chipmunk Basic for the PowerMac is posted to Info-Mac on March 15, 1994 - which Nicholson's own README describes as the day after the first Power Macintosh went on sale to the public. Nicholson recounts porting the translated interpreter first to a Mac 512KE and then to a PowerMac 7100. Info-Mac, the Usenet-and-FTP archive that served as the Mac world's software distribution network before the web, was exactly the right channel for a freeware interpreter
1998
Version 3.5.6 is dated August 1998 on the project's archive page, which offers it for older 68k System 6 Macs. Long after Apple moved on, that file remains linked for download - a small act of preservation that has kept the interpreter usable on hardware two hardware transitions in the past
2000
Version 3.5.7 is dated May 2000 on the project archive, offered for 68000 Macs running System 7. By this era the Mac version has grown well past a console BASIC: the project describes the Mac builds as supporting color graphics, a sprite engine, sound including QuickTime MIDI, MacinTalk speech synthesis, matrix operations, AppleScript, network sockets, pipes and serial I/O
2007
Version 3.6.3(b7) is dated April 2007 on the project archive, offered for Mac OS 9 Classic, and the reference manual covering version 3.6.6 carries an internal date of August 27, 2007. By this point the language has accumulated its most un-BASIC-like features, and the manual's own change log dates them: class definitions in v3.2.8, MAT matrix statements in v3.4.6, network socket I/O in v3.5.7b3 and sdbm key-value database commands in v3.6.3b0
2011
Version 3.6.5(b6) is dated January 2011 on the project archive as the MS Windows port, alongside a Linux/x86 port at 3.6.5(b5). The project describes the Windows build as targeting MS Windows 2000/XP and passes along user reports of it working under 64-bit Windows 8; the Linux build ships command-line executables with what the project calls some limited X11 graphics. Chipmunk Basic is by now a three-platform interpreter maintained by one person
2015
A rewritten Cocoa version arrives for OS X 10.9 and later, modernizing the Mac front end for Apple's current frameworks. Wikipedia dates the beta test release to January 2015; the shipping build on the project's download page, version 1.367.2627, is dated April 1, 2016. The project is candid that this is a trade rather than a pure gain: many Mac-specific features from the older Carbon and PowerPC versions are, in its own wording, missing or broken in the Cocoa port
2020
Version 1.368.2202 adds, in the release notes' own words, native Apple Silicon M1 support. The project's download page dates it 2020 November and describes it as being for macOS 12.x and Apple Silicon M1/M2 Macs - a pairing that does not quite line up, since macOS 12 Monterey did not ship until late 2021, so the listed date should be treated with some caution. Either way, Chipmunk Basic runs natively across four Macintosh instruction sets over its lifetime - 68k, PowerPC, Intel and ARM - a span very few pieces of Mac software have matched
2022
Version 1.368.2210 is published on November 11, 2022, described by the project as tested with macOS 13 Ventura and on M1 Macs as well as older x86-64 Macs. It remains the newest macOS release listed on the project home page. Alongside macOS, the page documents a Linux x86-64 build at version 3.6.7b5 and Raspberry Pi builds in both 32-bit and 64-bit ARM form
2024
A 64-bit ARM Raspberry Pi build, version 3.6.8b307 beta and described as text terminal only, is dated February 9, 2024 on the project's download page - the most recent dated release of any kind there, and evidence that the project is still being touched. The interpreter has found a natural second home on the hobbyist single-board computer that most resembles the machines BASIC was written for

Notable Uses & Legacy

Macintosh hobbyist and educational programming

For most of the 1990s and 2000s, Chipmunk Basic was one of the readily available ways for a Mac owner to type a line-numbered program and run it without buying a compiler. Its license - free for educational and personal use - and its deliberate old-fashionedness suited it to teaching a first language on Apple hardware, and it is still catalogued by Mac software archives: Macintosh Garden carries a Chipmunk Basic entry, and MacUpdate has hosted a download page for it.

HotPaw Basic and cbasPad on Palm OS and iOS

Nicholson carried the same interpreter core onto handhelds. cBasPad is a Basic interpreter for Palm OS, and HotPaw Basic followed for the iPhone and iPad, distributed by HotPaw Productions - the project's own pages link both. The shared ancestry is explicit: Wikipedia states that Chipmunk Basic and its Palm OS spinoffs, cBasPad and HotPaw BASIC, are all based on the same public-domain Pascal implementation by David Gillespie. Putting a real BASIC on a stylus-driven organizer, and later on a phone, gave the original code a second and third career.

Published reference documentation

The interpreter is documented well beyond a README. MacTech, the long-running Macintosh developer magazine, published a Reference Manual for Chipmunk BASIC in February 1997, still available through its preservation archive; Wikibooks hosts a community-written Chipmunk Basic pocketManual and a Chipmunk Basic help book. A four-chapter tutorial contributed by Thomas L. Ferrell, an HTML reference manual for the Macintosh version contributed by Stephen Wise, and cross-referenced HTML documentation contributed by Jim DeVona are all linked from the project's own pages, and Nicholson thanks Ferrell by name in the readme. For a one-maintainer freeware project, that is an unusual amount of third-party documentation.

Retro and hobbyist BASIC computing

Chipmunk Basic is a fixture of the small community that tracks living BASIC implementations - gotBASIC.com, which catalogues BASIC dialects still in use, gives it a page alongside its modern relatives, and the language has an entry and task implementations on Rosetta Code. Its Raspberry Pi builds, offered for both 32-bit and 64-bit ARM, place it in the same niche the Pi itself was created for: a cheap machine where a beginner can type a program at a prompt and watch it run.

An example program and test input for p2c

The interpreter's first widely distributed role was not as a product but as an example. basic.p shipped inside the p2c archive's examples directory, described there as an interpreter for the Basic language, 'just for kicks'; Nicholson's own account calls it one of the translator's test input files, and says he used the resulting C to learn about language interpreters before porting it to the Mac. That a nontrivial interactive program came through machine translation working is - incidentally - the reason the language outlived the hardware it was named after.

Dr. Dobb's Journal, December 1995

According to the project's own archive page, Chipmunk Basic was featured in the Programming Paradigms column of the December 1995 issue of Dr. Dobb's Journal - at the time one of the most widely read programming magazines in the United States, and an unusual place for a piece of Macintosh freeware to surface.

Language Influence

Influenced By

BASIC Dartmouth BASIC Microsoft BASIC

Influenced

cbasPad HotPaw Basic

Running Today

Run examples using the official Docker image:

docker pull
Last updated: