Neha Patil (Editor)

Integer BASIC

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer
  
Steve Wozniak

Platform
  
Apple I, Apple II

First appeared
  
before 1977; 40 years ago (1977)

Integer BASIC, written by Steve Wozniak, was the BASIC interpreter of the Apple I and original Apple II computers. Originally available on cassette, then included in ROM on the original Apple II computer at release in 1977, it was the first version of BASIC used by many early home computer owners.

Contents

Steve Wozniak first used the BASIC computer language in the late 1960s on a time-sharing computer terminal in his California high school. He read BASIC Computer Games as a member of the Homebrew Computer Club during the 1970s, and decided that any computer he designed would be able to both play the games in the book and run the logic simulations he worked with at Hewlett-Packard (HP). Wozniak knew that Bill Gates had written Altair BASIC for the Intel 8080 microprocessor, and hoped that he would be the first to write one for the MOS Technology 6502.

Wozniak would later describe his language as "intended primarily for games and educational uses". His only experience with BASIC was the few days with the time-sharing system in high school, and without access to any other system. Wozniak had to write the language—which he called "GAME BASIC"—on paper, hand assembling the language into 6502 machine code. Without any training on how to write a computer language, he used his HP experience to implement a stack machine to interpret expressions.

Wozniak had previously studied an HP BASIC manual he borrowed from work, not knowing that the syntax of HP's version of the language was very different from DEC BASIC, the language of BASIC Computer Games, and Altair BASIC. To save time, and because games and logic simulations emphasized integer math, Wozniak removed floating-point routines from GAME BASIC. His interpreter would implement only "16-bit integer" calculations.

Wozniak had previously developed Breakout for Atari in hardware. He hoped to implement the game in his BASIC, so, while designing the Apple II computer, Wozniak added support for color graphics, game paddles, and sound to his language, now named Integer BASIC. (As the language needed 4K RAM, he made that the minimum memory for the Apple II.) While demonstrating the computer and Little Brick Out to Steve Jobs, Wozniak demonstrated that he could quickly change the colors that his game used, just by altering the source code. Woz later wrote that he had proved that "software was much more flexible than hardware", and that he and Jobs realized that "now, anyone could create arcade games without having to design it in hardware."

Wozniak demonstrated Little Brick Out at a meeting of the Homebrew Computer Club. He later described it as "the most satisfying day of my life ... It seemed like a huge step to me. After designing hardware arcade games, I knew that being able to program them in BASIC was going to change the world."

Relationship to Applesoft BASIC

When the Apple II was introduced in 1977, Integer BASIC was included in the ROM.

The most frequently cited flaw of Integer BASIC (as one might expect from the name), was that its variables were all 16-bit integers. It was therefore impossible to write a program that could do calculations using floating point numbers, or even to use integers outside of the range -32768 to +32767. Thus, it was impractical to write financial or math programs.

Apple Computer therefore licensed a more full-featured BASIC from Microsoft, named Applesoft BASIC, and included it into the second version of the ROMs of the Apple II Plus and later models, released in 1979.

The Mini-Assembler and other auxiliary firmware

The Integer BASIC ROMs also included a machine code monitor, "mini-assembler", and disassembler to create and debug assembly language programs, and an interpreter for a 16-bit bytecode language called SWEET16. Wozniak hand assembled the monitor as the Apple II's first program, then used it to write Integer BASIC.

References

Integer BASIC Wikipedia