Tiny BASIC

Li-Chen Wang, author of Palo Alto Tiny BASIC, coined the term "copyleft" to describe this concept.

The community response was so overwhelming that the newsletter was relaunched as Dr. Dobb's Journal, the first regular periodical to focus on microcomputer software.

At the time, video-based terminals were very expensive, costing much more than the computer, so many users turned to mechanical devices like the Teletype Model 33.

[1] The Homebrew Computer Club met for the first time in March 1975, and its members soon used the meetings to swap software on punched tape.

He approached Dennis Allison, a member of the Computer Science faculty at Stanford University, to write a specification for a version of BASIC that would fit in 2 to 3 kilobytes of memory.

Allison's initial design was published in the September 1975 edition of the PCC newsletter, along with an Intel 8080 version of the IL interpreter.

The article called on programmers to implement the design on their computer and send the resulting assembly language version back to the PCC.

They stated their plans to publish three special newsletters containing these user-submitted versions, along with bug fixes, programs written in the new BASIC, and suggestions and enhancements.

The concept gained further notice when it was republished in the January 1976 edition of the ACM Special Interest Group on Programming Languages.

Among the notable early versions was Tiny BASIC Extended by Dick Whipple and John Arnold which ran in 3K of RAM, added FOR...NXT loops, and allowed a single numeric array.

[6] The first of the three planned newsletters, with the title "Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte", was published in January 1976.

Over the next several issues, additional versions of the language were published, and similar articles began appearing in other magazines like Interface Age.

[10] Jim Warren, editor of Dr. Dobb's, wrote in the July 1976 ACM Programming Language newsletter about the motivations and methods of this successful project.

He started with this: "There is a viable alternative to the problems raised by Bill Gates in his irate letter to computer hobbyists concerning 'ripping off' software.

[11] A fellow Homebrew Computer Club member, Roger Rauskolb, modified and improved Wang's program and this was published in the December 1976 issue of Interface Age magazine.

The syntax allowing IF-THEN statement (as opposed to just a line number to branch to) was not yet supported in Dartmouth BASIC at this time but had been introduced by Digital[14] and copied by Microsoft.

The choice of a virtual machine approach economized on memory space and implementation effort, although the BASIC programs run thereon were executed somewhat slowly.

If it passes, control continues; in this case, calling an IL subroutine that starts at label EXPR, which parses an expression.

The following table gives a partial list of the 32 commands of the virtual machine in which the first Tiny BASIC interpreter was written.

[17] Tom Pittman, discussing the IL, says: "The TINY BASIC interpreter was designed by Dennis Allison as a recursive descent parser.

"[20] He then went on to describe his implementation: "This language has been augmented to include the functions RND, USR, and PEEK and POKE, giving the user access to all his system components in the 6800 from the BASIC program."

Of the seven prominent implementations published by 1977: As an alternative to tokenization, to save RAM, TBX,[21] DTB,[22] and MINOL[23] truncated keywords: PR for PRINT, IN for INPUT, RET for RETURN.

This article also included information on adding additional I/O devices, using code for the VDM video display by Processor Technology as an example.

[24] Wang also wrote a STARTREK program in his Tiny BASIC that appeared in the July 1976 issue of the People's Computer Company Newsletter.

Memory was addressable as if it were a two-dimensioned array of high and low bytes (e.g., "(0,0)" to "(255,255)"); CALL executes a machine language subroutine.

He later expanded the language to 4K, adding support for floating point; this implementation was unique among BASIC interpreters by using Binary Coded Decimal to 9 digits of precision, with a range up to 1099, and by being published for free as a "Floppy ROM" magazine insert.

[29] Unable to take that source code with him, he adapted Li-Chen Wang's Palo Alto Tiny BASIC for the original prototype of the TRS-80 Model I.

[55] Also in 2019, Oscar Toledo Gutierrez published bootBASIC, which fits in the 512 bytes of the boot sector of an 8086/8088 machine, making it the smallest BASIC implementation yet.

To accomplish this, the language drops relational operators (IF statements work on nonzero values), limits lines of code to 19 characters or less, and doesn't update the display when backspace is pressed.

It supports DO/UNTIL, FOR/NEXT, simple strings and memory peek/poke (byte or 16-bit word), GOSUB/RETURN, CALL, RND with facilities for hexadecimal input and output.

A paper tape containing the expanded 8K version of Microsoft BASIC
Monospaced font reads "Tiny basic for Intel 8080, version 2.0 by Li-Chen Wang, modified and translated to Intel mnemonics by Roger Rausklob, 10 October 1976. @ Copyleft, All Wrongs Reserved."
The use of "Copyleft; All Wrongs Reserved" in 1976 [ 8 ]
The May 1977 issue featured a Floppy ROM containing MICRO-BASIC.