Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Tiny BASIC
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Deviations from the design=== Defining Tiny BASIC for the Homebrew Computer Club, Pittman wrote, "Tiny BASIC is a proper subset of Dartmouth BASIC, consisting of the following statement types only: LET, PRINT, INPUT, IF, GOTO, GOSUB, RETURN, END, CLEAR, LIST, RUN. Arithmetic is in 16-bit integers only with the operators + - * / and nested parentheses. There are only the 26 single letter variable names A, B, ...Z, and no functions. There are no strings or arrays... Tiny BASIC specifies line numbers less than 256."<ref>{{cite web|url=https://archive.computerhistory.org/resources/access/text/2015/02/102740021-05-14-acc.pdf |archive-url=https://ghostarchive.org/archive/20221009/https://archive.computerhistory.org/resources/access/text/2015/02/102740021-05-14-acc.pdf |archive-date=2022-10-09 |url-status=live| title= TINY BASIC 6800 |access-date=13 Aug 2020}}</ref> 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." Many implementers brought their own experiences with [[HP Time-Shared BASIC]] or [[BASIC-PLUS|DEC BASIC-PLUS]] to their designs and relaxed the formal Tiny BASIC language specification. Of the seven prominent implementations published by 1977: * All added some sort of random number function, typically {{code|RND()}}. Though not included in the specification, a newsletter article prior to the Design Note for Tiny BASIC requested only this function. * All enabled {{code|LET}} to be optional and most let expressions in assignment statements contain [[relational operators]]. * All but 6800TB supported statement delimiters in lines, typically {{code|:}} although TBX used {{code|$}} and PATB used {{code|;}}. * In {{code|IF}} statements, all but MINOL removed the need for expressions to contain relational operators (e.g., {{code|2=basic|1=IF X THEN LET Y=X}} was valid). Implementations removed {{code|THEN}} altogether or made it optional or supported it only for implied {{code|GOTO}}. None supported {{code|ELSE}} clauses. * Many modified {{code|PRINT}} to support print zones, using {{code|,}} to go to the next zone and {{code|;}} to not advance the cursor. * All but 6800TB and DTB added {{code|NEW}}. * All but 6800TB and MINOL added a function to return memory size: TBX had {{code|SZE}}, DTB and PATB had {{code|SIZE}}, L1B had {{code|MEM}}, and NIBL had {{code|TOP}}. * Four implementations added arrays, whether a single, undimensioned array in PATB and L1B or {{code|DIM}}ensionable arrays in TBX and DTB. * Four implementations added the {{code|REM}}ark statement. * Four implementations added the {{code|FOR}} loop: PATB, NIBL, and L1B offered {{code|FOR-TO-STEP/NEXT}}, while TBX did not support {{code|STEP}} and used the keyword {{code|NXT}} to end a loop. * Only NIBL had any nod towards structured programming, with {{code|DO/UNTIL}}, despite Allison's lament in Issue 2 about problems with BASIC. As an alternative to tokenization, to save RAM, TBX,<ref name="Tiny BASIC Extended">{{Cite journal |journal=[[Dr. Dobb's Journal|Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte]] |title=Tiny BASIC Extended |volume=1 |issue=2 |date=February 1976}}</ref> DTB,<ref name="Denver Tiny BASIC">{{Cite journal |journal=[[Dr. Dobb's Journal|Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte]] |title=Denver Tiny BASIC |volume=1 |issue=3 |date=March 1976}}</ref> and MINOL<ref name="MINOL">{{Cite journal |journal=[[Dr. Dobb's Journal|Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Running Light Without Overbyte]] |title=MINOL |volume=1 |issue=4 |date=April 1976}}</ref> truncated keywords: {{code|PR}} for {{code|PRINT}}, {{code|IN}} for {{code|INPUT}}, {{code|RET}} for {{code|RETURN}}. The full, traditional keywords were not accepted. In contrast, PATB allowed accepted traditional keywords but also allowed any keyword to be abbreviated to its minimal unique string, with a trailing period. For instance, {{code|PRINT}} could be typed {{code|P.}}, although {{code|PR.}} and other variations also worked. This system was retained in [[Level I BASIC]] for the [[TRS-80]], which used PATB, and was also later found in [[Atari BASIC]] and the BASIC of various [[Sharp PC-1211|Sharp Pocket Computers]].<ref name=revisit>{{cite magazine |first=Roger |last=Rauskolb |title=Dr. Wang's Palo Alto Tiny BASIC |magazine=Interface Age |date=December 1976 |pages=92β108 |url=http://www.jk-quantized.com/experiments/8080Emulator/TinyBASIC-2.0.pdf |archive-url=https://ghostarchive.org/archive/20221009/http://www.jk-quantized.com/experiments/8080Emulator/TinyBASIC-2.0.pdf |archive-date=2022-10-09 |url-status=live}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)