563:, which made saving multiple files on other devices more difficult. The user of one of these other systems had to note the recorder's counter display at the location of the file, but this was inaccurate and prone to error. With the PET (and BASIC 2.0), files from cassettes could be requested by name. The device would search for the filename by reading data sequentially, ignoring any non-matching filenames. The file system was also supported by a powerful
992:
but only 4000 if declared as an integer array). Denoting any variable as integer simply causes BASIC to convert it back to floating point, slowing down program execution and wasting memory as each percent sign takes one additional byte to store (since this also applies to integer arrays, the programmer should avoid using them unless very large arrays are used that would exceed available memory if stored as floating point). Also, it is not possible to
1264:
371:
429:
330:
633:, causing the interpreter to stop reading and parse the statement according to a lookup table. This meant that the statement up to where the high bit was set was accepted as a substitute for typing the entire command out. However, since all BASIC keywords were stored in memory as single byte tokens, this was a convenience for statement entry rather than an optimization.
1275:, which was included on the Commodore 1541 Test/Demo Disk. This 1 KB extension to BASIC added a number of disk-related commands, including the ability to read a disk directory without destroying the program in memory. Its features were subsequently incorporated in various third-party extensions, such as the popular
1175:
do not refer to the same variable. The size of a string array merely refers to how many strings are stored in the array, not the size of each element, which is allocated dynamically. Unlike some other implementations of
Microsoft BASIC, Commodore BASIC does not require string space to be reserved at
991:
variables (denoted with a percent sign) in the range -32768 to 32767, in practice they are only used for array variables and serve the function of conserving memory by limiting array elements to two bytes each (an array of 2000 elements will occupy 10,000 bytes if declared as a floating point array,
922:
statements will search downward from the current line to find a line number if a forward jump is performed, in case of a backwards jump, they will return to the start of the program to begin searching. This will slow down larger programs, so it is preferable to put commonly used subroutines near the
743:
takes less than a second in machine code, compared to over a minute in BASIC. To execute faster than the interpreter, programmers started using various techniques to speed up execution. One was to store often-used floating point values in variables rather than using literal values, as interpreting
1386:
by the programmer. It was common practice to increment numbers by some value (5, 10 or 100) to make inserting lines during program editing or debugging easier, but bad planning meant that inserting large sections into a program often required restructuring the entire code. A common technique was to
1246:
function in BASIC 2.0 suffered from another technical flaw in that it cannot handle signed numbers over 32768, thus if the function is invoked on a C64 (38k BASIC memory), a negative amount of free BASIC memory will be displayed (adding 65535 to the reported number will obtain the correct amount of
891:
error if the user enters a program line over 160 characters in length. Earlier versions do not produced an error and simply display the READY prompt two lines down if the line length is exceeded. The line number is counted in the number of characters in the program line, so a five digit line number
878:
Program lines can be 80 characters total on most machines, but machines with 40 column text would cause the line to wrap around to the next line on the screen, and on the VIC-20, which had a 22 column display, program lines could occupy as many as four. BASIC 7.0 on the
Commodore 128 increased the
1192:
may be used to set the time via a six number string (an error results from using a string other than six numbers). The clock is not a very reliable method of timekeeping since it stops whenever interrupts are turned off (done by some kernal routines) and accessing the IEC (or IEEE port on the PET)
1151:
statement, it is automatically set to ten elements (in practice 11 since array elements are counted from 0). Larger arrays must be declared or BASIC will display an error when the program is run and an array cannot be re-dimensioned in a program unless all variables are wiped via a CLR statement.
899:
with a pointer (containing the address of the beginning of the next program line), a line number, and then the tokenized code for the line. While a program was being entered, BASIC would constantly reorder program lines in memory so that the line numbers and pointers were all in ascending order.
707:
By abbreviating keywords, it was possible to fit more code on a single program line (which could take up two screen lines on 40-column displays - i.e., C64 or PET, or four lines on the VIC-20's 22-column display). This allowed for a slight saving on the overhead to store otherwise necessary extra
616:
command will always load at the first two bytes contained in the program file. This created a problem when trying to load BASIC programs saved on other
Commodore machines as they would load at a higher address than where the PET's BASIC expected the program to be, there were workarounds to "move"
315:
came with BASIC v2.0 in ROM even though the computer was released after the PET/CBM series that had version 4.0 because the 64 was intended as a home computer, while the PET/CBM series were targeted at business and educational use where their built-in programming language was presumed to be more
1238:
function is executed and if there are many string variables and arrays that have been manipulated over the course of a program, clearing them can take more than an hour under the worst conditions. It is also not possible to abort garbage collection as BASIC does not scan the RUN/STOP key while
1497:
command to display a disk's contents without clearing main memory. On the 64, viewing files on a disk was implemented as loading a "program" which when listed showed the directory as a pseudo BASIC program, with the file's block size as the line number. This had the effect of overwriting the
744:
a variable name was faster than interpreting a literal number. Since floating point is default type for all commands, it's faster to use floating point numbers as arguments, rather than integers. When speed was important, some programmers converted sections of BASIC programs to
823:
following a quote mark will cause BASIC to display the visual representation of the control code (in this case, a reversed heart) which is then acted upon at program execution (directly printing out the control codes uses less memory and executes faster than invoking a
1179:
Unlike other 8-bit machines such as the Apple II, Commodore's machines all have a built-in clock that is initialized to 0 at power on and updated with every tick of the PIA/VIA/TED/CIA timer, thus 60 times per second. It is assigned two system variables in BASIC,
1088:
statement, used to start machine language programs, was added by
Commodore and was not in the original Microsoft BASIC code, which featured only the USR function for invoking machine language routines. It automatically loads the CPU's registers with the values in
1445:
to load and execute software. If program execution was halted using the RUN/STOP key, variable values would be preserved in RAM and could be PRINTed for debugging. The 128 even dedicated its second 64k bank to variable storage, allowing values to persist until a
1424:
command, as well as an AUTO line numbering command that would automatically select and insert line numbers according to a selected increment. Earlier BASICs from
Commodore also lack debugging commands, meaning that bugs and unused variables are hard to trap.
911:
Line numbers can range from 0 to 65520 and take five bytes to store regardless of how many digits are in the line number, although execution is faster the fewer digits there are. Putting multiple statements on a line will use less memory and execute faster.
1396:, with the body of the program structured into sections starting at a designated line number like 1000, 2000, and so on. If a large section needed to be added, it could just be assigned the next available major line number and inserted to the jump table.
976:
is common. 6502 implementations of
Microsoft BASIC utilized 40-bit floating point arithmetic, meaning that variables took five bytes to store (four byte mantissa and one byte for the exponent) unlike the 32-bit floating point found in BASIC-80.
708:
program lines, but nothing more. All BASIC commands were tokenized and took up 1 byte (or two, in the case of several commands of BASIC 7 or BASIC 10) in memory no matter which way they were entered. Such long lines were a nuisance to edit. The
621:
machine, the only way to load it on a PET was by modifying the first two bytes with a disk sector editor as the CBM-II series had their BASIC program area at $ 0, which would result in a PET attempting to load into the zero page and locking up.
1289:
The limitations of BASIC 2.0 on the C64 led to use of built-in ROM machine language from BASIC. To load a file to a designated memory location, the filename, drive, and device number would be read by a call:
559:– a popular storage device in the days of the PET, and one that remained in use throughout the lifespan of the 8-bit Commodores as an inexpensive form of mass storage. Most systems only supported filenames on
871:, and it was common to write programs with no spacing. This feature was added to conserve memory since the tokenizer never removes any space inserted between keywords: the presence of spaces results in extra
567:
that could be loaded or saved to files. Commodore cassette data was recorded digitally, rather than less expensive (and less reliable) analog methods used by other manufacturers. Therefore, the specialized
895:
The order of execution of
Commodore BASIC lines was not determined by line numbering; instead, it followed the order in which the lines were linked in memory. Program lines were stored in memory as a
1462:-like feel; programmers could insert and edit program lines at any screen location, interactively building the program. This is in contrast to business-oriented operating systems of the time like
651:
onscreen). Most such commands were two letters long, but in some cases they were longer. In cases like this, there was an ambiguity, so more unshifted letters of the command were needed, such as
779:
A unique feature of
Commodore BASIC is the use of control codes to perform tasks such as clearing the screen or positioning the cursor within a program; these can be invoked either by issuing a
1286:
Although BASIC 2.0's lack of sound or graphics features was frustrating to many users, some critics argued that it was ultimately beneficial since it forced the user to learn machine language.
1378:
From a modern programming point of view, the earlier versions of
Commodore BASIC presented a host of bad programming traps for the programmer. As most of these issues derived from
1399:
In addition, all variables are treated as global variables. Clearly defined loops beyond the FOR...NEXT construct are hard to create, often causing the programmer to rely on the
544:
happened to be on the line. This marked a significant upgrade in program entry interfaces compared to other common home computer BASICs at the time, which typically used
1271:
Many BASIC extensions were released for the
Commodore 64, due to the relatively limited capabilities of its native BASIC 2.0. One of the most popular extensions was the
1247:
free memory). The PET and VIC-20 never had more than 32k of total memory available to BASIC, so this limitation did not become apparent until the C64 was developed. The
1208:
works the same as other implementations of Microsoft BASIC in that a pseudo-random sequence is used via a fixed 5-byte seed value stored at power on in memory locations
1239:
performing this routine. BASIC 4.0 introduced an improved garbage collection system with back pointers and all later implementations of Commodore BASIC also have it.
752:
assembly language that was loaded separately from a file or POKEd into memory from DATA statements at the end of the BASIC program, and executed from BASIC using the
591:
parameter is not used, the program will load into the start of the BASIC program area, which widely differs between machines. Some Commodore BASIC variants supplied
3365:
3663:
1093:(C64, varies on other machines)--this can be used to pass data to machine language routines or as a means of calling kernal functions from BASIC (as an example,
1847:
to store program code separately from variables. Variable values would be preserved across program executions if the program was started with the GOTO command.
1152:
Numeric arrays are automatically filled with zeros when they are created, there may be a momentary delay in program execution if a large array is dimensioned.
587:
which will load a program into the memory address contained in the first two bytes of the file (these bytes are discarded and not retained in memory). If the
904:
commands could allow for out-of-order execution or even give each line the same line number. In the early days, when BASIC was used commercially, this was a
875:
bytes in the tokenized program which are merely skipped during execution. Spaces between the line number and program statement are removed by the tokenizer.
3653:
2125:
288:
Commodore took the source code of the flat-fee BASIC and further developed it internally for all their other 8-bit home computers. It was not until the
712:
command displayed the entire command keyword - extending the program line beyond the 2 or 4 screen lines which could be entered into program memory.
3658:
828:
function). This is in comparison to other implementations of BASIC which typically have dedicated commands to clear the screen or move the cursor.
1120:
Since Commodore 8-bit machines other than the C128 cannot automatically boot disk software, the usual technique is to include a BASIC stub like
704:
prompt. This glitch was used to some effect by programmers who wanted to try and protect their work, although it was fairly easy to circumvent.
3643:
1255:
on BASIC 7.0 was also "split" into two functions, one to display free BASIC program text memory and the other to display free variable memory.
1429:
structures, a standard part of Z80 Microsoft BASICs, were added to BASIC 3.5 after being unavailable in earlier versions of Commodore BASIC.
1382:, virtually every home computer BASIC of the era suffered from similar deficiencies. Every line of a Microsoft BASIC program was assigned a
3252:
2072:
1234:
BASIC 2.0 notoriously suffered from extremely slow garbage collection of strings. Garbage collection is automatically invoked any time a
1279:
cartridge. Other BASIC extensions added additional keywords to make it easier to code sprites, sound, and high-resolution graphics like
245:(in C64 mode) and other models. Later PETs featured BASIC 4.0, similar to the original but adding a number of commands for working with
268:
commands from the Plus/4's BASIC 3.5, as well as keywords designed specifically to take advantage of the machine's new capabilities. A
2540:
2516:
2394:
2336:
2303:
2270:
2218:
2181:
764:. When the execution speed of machine language was too great, such as for a game or when waiting for user input, programmers could
490:
472:
410:
357:
685:
shortcut, as was common in most Microsoft BASIC dialects. Abbreviating commands with shifted letters is unique to Commodore BASIC.
439:
2139:
388:
343:
949:, although this feature was part of the core Microsoft 6502 BASIC code, it was usually omitted in other implementations such as
3115:
2583:
1188:, which both contain the current time. TI is read-only and cannot be modified; doing so will result in a Syntax Error message.
1498:
currently loaded program. Addons like the DOS Wedge overcame this by rendering the directory listing direct to screen memory.
3633:
3247:
2081:
1441:, Commodore's machines booted directly into the BASIC interpreter. BASIC's file and programming commands could be entered in
626:
392:
1132:
to begin program execution. It is possible to automatically start software after loading and not require the user to type a
629:
could be abbreviated by entering first an unshifted keypress, and then a shifted keypress of the next letter. This set the
665:. Some commands had no abbreviated form, either due to brevity or ambiguity with other commands. For example, the command,
3320:
3230:
2863:
988:
3015:
879:
limit of a program line to 160 characters (four 40-column lines or two 80-column lines). By using abbreviations such as
3648:
3175:
2990:
2788:
2782:
573:
93:
71:
454:
1231:
statement, it is more typical on the C64 and C128 to utilize the SID chip's white noise channel for random numbers.
3469:
3464:
3120:
3025:
1775:
765:
269:
532:
or to input and edit program lines from anywhere on the screen. If a line was prefixed with a line number, it was
450:
381:
3512:
3125:
2995:
2467:
2326:
2260:
1603:
724:
2293:
2171:
696:, when trying to view the program listing, the BASIC interpreter would immediately abort the listing, display a
3638:
2793:
1797:
1167:
would each be understood as distinct. Array variables are also considered distinct from simple variables, thus
815:
is the control code to clear the screen) or by pressing the key in question between quote marks, thus pressing
636:
In the default uppercase-only character set, shifted characters appear as a graphics symbol; e.g. the command,
273:
1489:
lacked these, requiring the user to specify the disk drive's device number (typically 8 or 9) to the standard
252:
BASIC 3.5 was the first to really deviate, adding a number of commands for graphics and sound support on the
2066:
1371:, was a venue for hobbyist programmers, who shared collections of proto-commands for BASIC, called with the
972:. The accuracy of a floating point number using a three-byte mantissa is only about 6.5 decimal digits, and
174:
2210:
237:
version was very similar to the original Microsoft implementation with few modifications. BASIC 2.0 on the
3562:
3346:
2965:
2597:
1471:
1224:
with a negative number goes to a point in the sequence of the current seed value specified by the number.
265:
1216:
with any number higher than 0 will generate a random number amalgamated from the value included with the
3628:
3449:
3292:
3259:
2822:
2631:
2556:
c65manual.txt Commodore 65 preliminary documentation (March 1991), with addendum for ROM version 910501.
1810:
1155:
String variables are represented by tagging the variable name with a dollar sign. Thus, the variables
3517:
3381:
3333:
3272:
3186:
3090:
2977:
2695:
2690:
2685:
1751:
1520:
1204:, however it is of relatively limited use as only numbers between 0 and 255 are returned. Otherwise,
740:
630:
349:
170:
2561:
2234:
1493:
command, which otherwise defaulted to tape. Another omission from the Commodore 64s BASIC 2.0 was a
3597:
3487:
3361:
2705:
2638:
2576:
1455:
1367:
905:
749:
745:
196:
163:
2204:
1200:
function in Commodore BASIC can use the clock to generate random numbers; this is accomplished by
2778:
984:
supported integer and double precision variables, 6502 implementations were floating point only.
896:
541:
293:
134:
37:
2070:
304:
appearing on the screen. (The easter egg was well-obfuscated—the message did not show up in any
900:
However, after a program was entered, manually altering the line numbers and pointers with the
528:
which reversed direction when the shift key was held, the screen editor allowed users to enter
296:
into the version 2 or "upgrade" Commodore Basic that proved its provenance: typing the command
3474:
3310:
3110:
2946:
2661:
2648:
2536:
2512:
2438:
2390:
2332:
2299:
2266:
2214:
2177:
2012:
536:
and stored in program memory. Lines not beginning with a number were executed by pressing the
513:
122:
2903:
2413:
1474:. If a programming language was required on these platforms, it had to be loaded separately.
292:(with V7.0) that a Microsoft copyright notice was displayed. However, Microsoft had built an
3302:
2936:
2746:
2713:
2384:
2018:
1687:
1610:
1516:
1280:
1263:
736:
556:
509:
576:
to allow use of a standard recorder, but these cost only a little less than the Datasette.
3507:
3439:
3297:
3241:
2920:
2677:
2621:
2085:
2076:
1379:
1220:
function and the seed value, which is updated by 1 each time an RND function is executed.
1144:
981:
973:
950:
721:
602:
203:
199:
25:
1136:
statement, this is done by having a piece of code that hooks the BASIC "ready" vector at
202:, and as such it shares many characteristics with other 6502 BASICs of the time, such as
572:
was required rather than a standard tape recorder. Adapters were available that used an
3602:
3582:
3454:
3199:
3055:
2941:
2832:
2774:
2569:
2555:
2002:
1956:
1844:
1506:
A list of CBM BASIC versions in chronological order, with successively added features:
961:
564:
2146:
3622:
3607:
3492:
3395:
3020:
2741:
2728:
2718:
2627:
2006:
1905:
1850:
1769:
1622:
1571:
1529:
1438:
1276:
901:
831:
BASIC 3.5 and up have proper commands for clearing the screen and moving the cursor.
521:
289:
261:
242:
234:
189:
185:
181:
143:
139:
3522:
3434:
3324:
3035:
2951:
2808:
2761:
2492:
2062:
1944:
1741:
1683:
1597:
1486:
761:
728:
674:
312:
305:
277:
253:
238:
215:
2079:
1908:(unreleased prototype). Almost identical to V7.0, with the following differences:
838:
command will always display one between the line number and the statement), e.g.,
2358:
3502:
3444:
3341:
3282:
3209:
3075:
3065:
3010:
2868:
2853:
2827:
2667:
1708:
1442:
1413:
commands). Flag variables often needed to be created to perform certain tasks.
1383:
969:
964:. Most contemporary BASIC implementations used one byte for the characteristic (
757:
545:
529:
525:
370:
246:
316:
heavily used. This saved manufacturing costs, as the V2 fit into smaller ROMs.
3592:
3587:
3572:
3219:
3135:
3070:
3045:
3005:
2985:
2888:
2848:
2817:
2798:
2736:
2088:
1393:
776:
for the 128, denoting size of the keyboard queue) to delay or halt execution.
555:
It also had the capability of saving named files to any device, including the
552:
command, or a "copy cursor" that truncated the line at the cursor's position.
219:
926:
Variable names are only significant to 2 characters; thus the variable names
3557:
3537:
3527:
3482:
3459:
3410:
3399:
3287:
3100:
3080:
3060:
3050:
2883:
2613:
2035:
1537:
V2.0 (first release): PET 2001 with full-travel keyboard & upgrade ROMs
1272:
732:
569:
533:
211:
207:
42:
30:
797:
command where X corresponds to the control code to be issued (for example,
3547:
3542:
3532:
3351:
3235:
3130:
3105:
3030:
2858:
2769:
2656:
1801:
1695:
1541:
965:
957:
834:
Program lines in Commodore BASIC do not require spaces anywhere (but the
560:
226:
per unit fee, stating, "I'm already married," and would pay no more than
126:
1405:
command (this was later rectified in BASIC 3.5 with the addition of the
3577:
3204:
3160:
3145:
3040:
2928:
2908:
2751:
2031:
2025:
1704:
1000:
memory locations above 32767 with address defined as a signed integer.
395: in this section. Unsourced material may be challenged and removed.
892:
will result in four fewer characters allowed than a one digit number.
3567:
3552:
3405:
3356:
3214:
3194:
3155:
3150:
3000:
2898:
2893:
2878:
2873:
1593:
1467:
956:
The native number format of Commodore BASIC, like that of its parent
618:
606:
517:
257:
669:
had no abbreviation because its spelling collided with the separate
457:. Statements consisting only of original research should be removed.
2593:
1745:
1736:
1631:
1627:
1389:
1262:
887:, it is possible to fit even more on a line. BASIC 7.0 displays a
673:
keyword, which was located nearer to the beginning of the keyword
661:
597:
178:
167:
2472:
2101:"Bill Gates' Personal Easter Eggs in 8 Bit BASIC - pagetable.com"
2100:
1532:
command explicitly disabled over BASIC ROM locations above $ C000
1458:
included with Commodore BASIC gave the programming environment a
1416:
Later BASIC versions on Commodore and other platforms included a
3371:
3140:
1463:
1459:
1401:
688:
This tokenizing method had a glitch such that if one included a
2565:
3391:
2386:
An Introduction to the Commodore 64: Adventures in Programming
1477:
While some versions of Commodore BASIC included disk-specific
422:
364:
323:
692:(BASIC statement to add a comment to the code) followed by a
617:
programs to the proper location. If a program was saved on a
276:
were added. The last, BASIC 10.0, was part of the unreleased
1568:
V4.0: PET/CBM 4000/8000 series (and late version PET 2001s)
1308:; the location would be specified in the X and Y registers:
908:
technique to discourage casual modification of the program.
2041:
1227:
Since true random number generation is impossible with the
1251:
function on BASIC 3.5 and 7.0 corrected this problem and
2065:
at the Commodore 64 25th Anniversary Celebration at the
1003:
A period (.) can be used in place of the number 0 (thus
446:
612:
The PET does not support relocatable programs and the
1212:
on the C64 (the location differs on other machines).
2034:(C128; floppy disk and optional internal ROM chip) (
3427:
3380:
3332:
3319:
3271:
3185:
3173:
3089:
2976:
2964:
2919:
2841:
2807:
2760:
2727:
2704:
2676:
2647:
2612:
2605:
1372:
1354:
1309:
1291:
1209:
1201:
1137:
1121:
1094:
1090:
1058:
1034:
1019:
1004:
884:
880:
839:
798:
780:
773:
769:
133:
118:
92:
70:
48:
36:
24:
1454:command was issued. This, along with the advanced
941:Commodore BASIC also supports bitwise operators —
2535:. Grand Rapids, Michigan: Abacus Software, Inc.
1387:start a program at some low line number with an
1193:port will slow the clock update by a few ticks.
601:commands that worked like their counterparts in
583:command may be used with the optional parameter
2473:Bill Gates’ Personal Easter Eggs in 8 Bit BASIC
1989:PAINT,LOCATE,SCALE,WIDTH,SET,VIEWPORT,PASTE,CUT
1587:greatly improved garbage-collection performance
2408:
2406:
768:by reading selected memory locations (such as
2577:
524:. Although Commodore keyboards only have two
8:
1774:more sound and graphics commands, including
19:
731:. Test results have shown that copying 16
358:Learn how and when to remove these messages
3329:
3182:
2973:
2609:
2584:
2570:
2562:
2468:Commodore/Microsoft Basic version timeline
18:
2531:Jarvis, Dennis; Springer, Jim D. (1987).
2509:The Complete COMMODORE 16 ROM Disassembly
2439:"Mike Naberezny – Commodore LCD Firmware"
491:Learn how and when to remove this message
473:Learn how and when to remove this message
411:Learn how and when to remove this message
1890:
1761:
1554:
1353:; and the load routine would be called:
820:
816:
727:, Commodore BASIC is slower than native
537:
2054:
241:was also similar, and was also seen on
2507:Gerrard, Peter; Bergin, Kevin (1985).
2331:. COMPUTE! Publications. p. 231.
2265:. COMPUTE! Publications. p. 209.
1081:), this will execute slightly faster.
3664:Programming languages created in 1977
2383:Scrimshaw, N. B. (11 November 2013).
2298:. COMPUTE! Publications. p. 71.
2176:. COMPUTE! Publications. p. 37.
1485:commands, the version built into the
1147:, if an array is not declared with a
7:
508:A convenient feature of Commodore's
393:adding citations to reliable sources
2126:"Keyboarding and the Screen Editor"
2024:Graphics BASIC (C64; floppy disk) (
2511:. Gerald Duckworth & Co. Ltd.
2328:Mapping the Commodore 64 & 64C
2295:Mapping the Commodore 64 & 64C
2262:Mapping the Commodore 64 & 64C
2173:Mapping the Commodore 64 & 64C
2044:(C64; floppy disk) (Dennis Osborn)
1760:C(1)16, Plus/4 Easter egg – enter
1592:V2.0 (second release, after 4.0):
987:Although Commodore BASIC supports
980:While 8080/Z80 implementations of
260:. BASIC 7.0 was included with the
16:BASIC programming language dialect
14:
3654:BASIC programming language family
2491:(for the full reference, see the
2209:. COMPUTE! Publications. p.
1267:The Simons' BASIC start-up screen
609:from specified memory locations.
339:This section has multiple issues.
2359:"Compute!'s First Book of Atari"
1470:, which typically booted into a
1283:(1983) and Vision BASIC (2022).
938:all refer to the same variable.
427:
369:
328:
206:. Commodore licensed BASIC from
3659:Microsoft programming languages
2489:The Anatomy of the Commodore 64
1547:improved the garbage collection
1143:As with most other versions of
380:needs additional citations for
347:or discuss these issues on the
1581:disk error-channel variables:
1526:arrays limited to 256 elements
1:
3644:Discontinued Microsoft BASICs
1365:A disk magazine for the C64,
2021:(C64; cartridge) (Commodore)
2015:(C64; cartridge) (Commodore)
1876:(read CPU registers after a
1563:an arbitrary number of times
2789:Data General Extended BASIC
2487:Angerhausen et al. (1983).
1787:multi-statement blocks for
1692:sound and graphics commands
574:analog-to-digital converter
453:the claims made and adding
210:in 1977 on a "pay once, no
101:; 33 years ago
79:; 39 years ago
54:; 47 years ago
3682:
1997:Notable extension packages
968:) and three bytes for the
184:line, stretching from the
3513:Disk Extended Color BASIC
3126:Open Programming Language
2206:Mapping the Commodore 128
2203:Cowper, Ottis R. (1986).
1950:graphics/video commands:
1723:function key assignment:
1576:DLOAD,DSAVE,COPY,SCRATCH,
230:for a perpetual license.
114:
66:
3411:WinFBE, Visual FB Editor
2794:Southampton BASIC System
2325:Leemon, Sheldon (1987).
2292:Leemon, Sheldon (1987).
2259:Leemon, Sheldon (1987).
2170:Leemon, Sheldon (1987).
1987:unimplemented commands:
1889:C128 Easter egg – enter
1883:unimplemented commands:
1781:built-in sprite editor:
1719:DO,LOOP,WHILE,UNTIL,EXIT
1674:string search function:
1656:dynamic error handling:
1613:series (aka B, P range)
1176:the start of a program.
548:, invoked by a separate
274:machine language monitor
2067:Computer History Museum
1947:(unreleased prototype)
1872:undocumented, working:
1839:SWAP,FETCH,STASH,FRE(1)
1831:controlled time delay:
1730:program entry/editing:
1650:alternative branching:
762:from the program itself
640:, could be abbreviated
175:Commodore International
119:Implementation language
3563:MS BASIC for Macintosh
3347:Visual Basic (classic)
2657:TI-BASIC (calculators)
2596:programming language (
2414:"BASIC 4.0 Memory Map"
2005:(VIC-20; delivered on
1859:CPU speed adjustment:
1819:get variable address:
1553:Easter egg – entering
1472:command line interface
1407:DO, LOOP, WHILE, UNTIL
1268:
266:structured programming
3634:Commodore 64 software
3450:Atari Microsoft BASIC
3293:Microsoft Small Basic
3260:Embedded Visual Basic
2823:VSI BASIC for OpenVMS
2363:www.atariarchives.org
1825:text mode windowing:
1502:Versions and features
1437:In common with other
1433:Use as user interface
1266:
756:command, either from
681:command had a single
659:) being required for
308:of the interpreter.)
195:The core is based on
3518:Extended Color BASIC
2691:Rocky Mountain BASIC
2686:HP Time-Shared BASIC
1935:Additional command:
1932:commands not present
1851:more disk operations
1732:AUTO,DELETE,RENUMBER
1717:structured looping:
1638:formatted printing:
1623:more disk operations
1515:V1.0: PET 2001 with
1373:SYS address + offset
1299:"filename"
1117:clears the screen).
923:start of a program.
605:, loading or saving
389:improve this article
171:programming language
3598:TI BASIC (TI 99/4A)
3488:Benton Harbor BASIC
2706:Locomotive Software
2533:BASIC 7.0 Internals
1981:memory management:
1899:Unreleased versions
1837:memory management:
1658:TRAP,RESUME,ERR$ ()
1616:memory management:
906:software protection
677:. The heavily used
49:First appeared
21:
3649:BASIC interpreters
2084:2017-10-03 at the
2075:2008-12-11 at the
2069:December 10, 2007
1891:SYS 32800,123,45,6
1727:(also direct mode)
1269:
897:singly linked list
720:Like the original
700:and return to the
522:full-screen editor
438:possibly contains
3616:
3615:
3476:BASIC Programming
3423:
3422:
3419:
3418:
3362:Visual Basic .NET
3169:
3168:
2960:
2959:
2947:Super Expander 64
2662:TI Extended BASIC
2649:Texas Instruments
2443:mikenaberezny.com
2235:"Mapping The C64"
2105:www.pagetable.com
2013:Super Expander 64
1975:program editing:
1863:(2 vs 1 MHz)
1640:PRINT USING,PUDEF
1510:Released versions
644:(which resembled
540:key whenever the
514:BASIC interpreter
501:
500:
493:
483:
482:
475:
440:original research
421:
420:
413:
362:
320:Technical details
149:
148:
3671:
3330:
3303:OpenOffice Basic
3183:
2974:
2912:
2747:North Star BASIC
2714:Locomotive BASIC
2610:
2592:Dialects of the
2586:
2579:
2572:
2563:
2454:
2453:
2451:
2449:
2435:
2429:
2428:
2426:
2424:
2410:
2401:
2400:
2380:
2374:
2373:
2371:
2369:
2355:
2349:
2348:
2346:
2345:
2322:
2316:
2315:
2313:
2312:
2289:
2283:
2282:
2280:
2279:
2256:
2250:
2249:
2247:
2245:
2239:www.unusedino.de
2231:
2225:
2224:
2200:
2194:
2193:
2191:
2190:
2167:
2161:
2160:
2158:
2157:
2151:
2145:. Archived from
2144:
2140:"Byte July 1983"
2136:
2130:
2129:
2122:
2116:
2115:
2113:
2111:
2097:
2091:
2059:
1990:
1984:
1978:
1972:
1968:
1962:
1953:
1938:
1931:
1926:
1922:
1917:
1913:
1886:
1879:
1875:
1869:
1866:enter C64 mode:
1862:
1856:
1840:
1834:
1828:
1822:
1816:
1807:
1794:
1790:
1784:
1757:
1748:
1733:
1726:
1720:
1714:
1701:
1677:
1671:
1665:
1659:
1653:
1647:
1644:error trapping:
1641:
1635:
1619:
1584:
1578:etc. (15 in all)
1577:
1562:
1517:chiclet keyboard
1496:
1492:
1484:
1480:
1453:
1449:
1428:
1427:IF...THEN...ELSE
1423:
1419:
1412:
1408:
1404:
1392:
1374:
1361:
1360:
1357:
1352:
1351:
1348:
1345:
1342:
1339:
1336:
1333:
1330:
1327:
1324:
1321:
1318:
1315:
1312:
1307:
1306:
1303:
1300:
1297:
1294:
1254:
1250:
1245:
1237:
1230:
1223:
1219:
1215:
1211:
1207:
1203:
1199:
1191:
1187:
1183:
1174:
1170:
1166:
1162:
1158:
1150:
1139:
1135:
1131:
1130:
1127:
1124:
1116:
1115:
1112:
1109:
1106:
1103:
1100:
1097:
1092:
1087:
1080:
1079:
1076:
1073:
1070:
1067:
1064:
1061:
1056:
1055:
1052:
1049:
1046:
1043:
1040:
1037:
1032:
1031:
1028:
1025:
1022:
1017:
1016:
1013:
1010:
1007:
999:
995:
948:
944:
937:
933:
929:
921:
917:
890:
889:?STRING TOO LONG
886:
882:
874:
870:
869:
866:
863:
860:
857:
854:
851:
848:
845:
842:
837:
827:
814:
813:
810:
807:
804:
801:
796:
795:
792:
789:
786:
783:
775:
771:
755:
711:
703:
699:
695:
691:
684:
680:
672:
668:
664:
658:
654:
650:
643:
639:
625:Commodore BASIC
615:
600:
594:
590:
586:
582:
565:record structure
551:
496:
489:
478:
471:
467:
464:
458:
455:inline citations
431:
430:
423:
416:
409:
405:
402:
396:
373:
365:
354:
332:
331:
324:
303:
300:would result in
299:
229:
225:
154:, also known as
109:
107:
102:
87:
85:
80:
62:
60:
55:
26:Designed by
22:
3681:
3680:
3674:
3673:
3672:
3670:
3669:
3668:
3639:VIC-20 software
3619:
3618:
3617:
3612:
3508:Dartmouth BASIC
3498:Commodore BASIC
3440:Applesoft BASIC
3415:
3383:
3376:
3323:
3315:
3274:
3267:
3242:Microsoft Excel
3178:
3165:
3092:
3085:
2969:
2956:
2915:
2906:
2837:
2803:
2756:
2723:
2700:
2678:Hewlett-Packard
2672:
2643:
2626:TRS-80 BASICs (
2622:Microsoft BASIC
2601:
2590:
2560:
2475:, pagetable.com
2463:
2458:
2457:
2447:
2445:
2437:
2436:
2432:
2422:
2420:
2412:
2411:
2404:
2397:
2382:
2381:
2377:
2367:
2365:
2357:
2356:
2352:
2343:
2341:
2339:
2324:
2323:
2319:
2310:
2308:
2306:
2291:
2290:
2286:
2277:
2275:
2273:
2258:
2257:
2253:
2243:
2241:
2233:
2232:
2228:
2221:
2202:
2201:
2197:
2188:
2186:
2184:
2169:
2168:
2164:
2155:
2153:
2149:
2142:
2138:
2137:
2133:
2124:
2123:
2119:
2109:
2107:
2099:
2098:
2094:
2086:Wayback Machine
2077:Wayback Machine
2060:
2056:
2051:
1999:
1988:
1982:
1976:
1970:
1966:
1960:
1952:PALETTE,GENLOCK
1951:
1936:
1929:
1924:
1920:
1915:
1911:
1901:
1892:
1884:
1877:
1873:
1867:
1860:
1854:
1843:used the 128's
1838:
1832:
1826:
1820:
1814:
1805:
1792:
1788:
1782:
1763:
1755:
1754:entry command:
1740:
1731:
1724:
1718:
1712:
1699:
1675:
1667:
1663:
1657:
1651:
1645:
1639:
1626:
1617:
1582:
1575:
1572:disk operations
1560:
1558:
1523:(original PET)
1512:
1504:
1494:
1490:
1482:
1478:
1451:
1447:
1435:
1426:
1421:
1417:
1410:
1406:
1400:
1388:
1380:Microsoft BASIC
1358:
1355:
1349:
1346:
1343:
1340:
1337:
1334:
1331:
1328:
1325:
1322:
1319:
1316:
1313:
1310:
1304:
1301:
1298:
1295:
1292:
1261:
1252:
1248:
1243:
1235:
1228:
1221:
1217:
1213:
1205:
1197:
1189:
1185:
1181:
1172:
1168:
1164:
1160:
1156:
1148:
1145:Microsoft BASIC
1133:
1128:
1125:
1122:
1113:
1110:
1107:
1104:
1101:
1098:
1095:
1085:
1077:
1074:
1071:
1068:
1065:
1062:
1059:
1053:
1050:
1047:
1044:
1041:
1038:
1035:
1029:
1026:
1023:
1020:
1014:
1011:
1008:
1005:
997:
993:
982:Microsoft BASIC
974:round-off error
951:Applesoft BASIC
946:
942:
935:
931:
927:
919:
915:
888:
872:
867:
864:
861:
859:"YES"
858:
855:
852:
849:
846:
843:
840:
835:
825:
822:
818:
811:
808:
805:
802:
799:
793:
790:
787:
784:
781:
772:for the 64, or
753:
722:Microsoft BASIC
718:
709:
701:
697:
693:
689:
682:
678:
670:
666:
660:
656:
652:
645:
641:
637:
613:
603:Applesoft BASIC
596:
592:
588:
584:
580:
549:
539:
530:direct commands
506:
504:Program editing
497:
486:
485:
484:
479:
468:
462:
459:
444:
432:
428:
417:
406:
400:
397:
386:
374:
333:
329:
322:
301:
297:
286:
264:, and included
227:
223:
204:Applesoft BASIC
200:Microsoft BASIC
152:Commodore BASIC
110:
105:
103:
100:
99:V10.0 / 1991
94:Preview release
88:
83:
81:
78:
58:
56:
53:
20:Commodore BASIC
17:
12:
11:
5:
3679:
3678:
3675:
3667:
3666:
3661:
3656:
3651:
3646:
3641:
3636:
3631:
3621:
3620:
3614:
3613:
3611:
3610:
3605:
3603:Turbo-BASIC XL
3600:
3595:
3590:
3585:
3583:Sinclair BASIC
3580:
3575:
3570:
3565:
3560:
3555:
3550:
3545:
3540:
3535:
3530:
3525:
3520:
3515:
3510:
3505:
3500:
3495:
3490:
3485:
3480:
3472:
3467:
3462:
3457:
3455:Atari ST BASIC
3452:
3447:
3442:
3437:
3431:
3429:
3425:
3424:
3421:
3420:
3417:
3416:
3414:
3413:
3408:
3403:
3388:
3386:
3378:
3377:
3375:
3374:
3369:
3359:
3354:
3349:
3344:
3338:
3336:
3327:
3317:
3316:
3314:
3313:
3308:
3305:
3300:
3295:
3290:
3285:
3279:
3277:
3269:
3268:
3266:
3265:
3262:
3257:
3256:
3255:
3250:
3238:
3233:
3228:
3225:
3222:
3217:
3212:
3207:
3202:
3200:Chipmunk Basic
3197:
3191:
3189:
3180:
3171:
3170:
3167:
3166:
3164:
3163:
3158:
3153:
3148:
3143:
3138:
3133:
3128:
3123:
3118:
3113:
3108:
3103:
3097:
3095:
3087:
3086:
3084:
3083:
3078:
3073:
3068:
3063:
3058:
3053:
3048:
3043:
3038:
3033:
3028:
3023:
3018:
3013:
3008:
3003:
2998:
2993:
2988:
2982:
2980:
2971:
2962:
2961:
2958:
2957:
2955:
2954:
2949:
2944:
2942:Super Expander
2939:
2934:
2933:Graphics BASIC
2931:
2925:
2923:
2917:
2916:
2914:
2913:
2901:
2896:
2891:
2886:
2881:
2876:
2871:
2866:
2861:
2856:
2851:
2845:
2843:
2839:
2838:
2836:
2835:
2833:CALL/360:BASIC
2830:
2825:
2820:
2814:
2812:
2805:
2804:
2802:
2801:
2796:
2791:
2786:
2775:Business Basic
2772:
2766:
2764:
2758:
2757:
2755:
2754:
2749:
2744:
2739:
2733:
2731:
2729:Microcomputers
2725:
2724:
2722:
2721:
2716:
2710:
2708:
2702:
2701:
2699:
2698:
2693:
2688:
2682:
2680:
2674:
2673:
2671:
2670:
2665:
2659:
2653:
2651:
2645:
2644:
2642:
2641:
2635:
2624:
2618:
2616:
2607:
2603:
2602:
2591:
2589:
2588:
2581:
2574:
2566:
2559:
2558:
2552:
2551:
2549:
2545:
2544:
2528:
2527:
2525:
2521:
2520:
2504:
2503:
2501:
2497:
2496:
2484:
2483:
2481:
2477:
2476:
2470:
2464:
2462:
2459:
2456:
2455:
2430:
2402:
2395:
2389:. Birkhäuser.
2375:
2350:
2337:
2317:
2304:
2284:
2271:
2251:
2226:
2219:
2195:
2182:
2162:
2131:
2117:
2092:
2053:
2052:
2050:
2047:
2046:
2045:
2039:
2029:
2022:
2016:
2010:
2003:Super Expander
1998:
1995:
1994:
1993:
1992:
1991:
1985:
1979:
1973:
1963:
1954:
1941:
1940:
1939:
1933:
1927:
1918:
1900:
1897:
1896:
1895:
1894:
1893:
1887:
1881:
1870:
1864:
1857:
1848:
1845:bank switching
1841:
1835:
1829:
1823:
1817:
1808:
1795:
1785:
1779:
1766:
1765:
1764:
1758:
1749:
1734:
1728:
1721:
1715:
1702:
1693:
1680:
1679:
1678:
1672:
1660:
1654:
1648:
1642:
1636:
1620:
1607:
1600:
1590:
1589:
1588:
1585:
1579:
1566:
1565:
1564:
1551:
1548:
1545:
1535:
1534:
1533:
1527:
1511:
1508:
1503:
1500:
1439:home computers
1434:
1431:
1260:
1257:
989:signed integer
962:floating point
717:
714:
698:?SYNTAX ERROR
505:
502:
499:
498:
481:
480:
435:
433:
426:
419:
418:
377:
375:
368:
363:
337:
336:
334:
327:
321:
318:
285:
282:
214:" basis after
188:(1977) to the
147:
146:
137:
131:
130:
120:
116:
115:
112:
111:
98:
96:
90:
89:
77:V7.0 / 1985
76:
74:
72:Stable release
68:
67:
64:
63:
50:
46:
45:
40:
34:
33:
28:
15:
13:
10:
9:
6:
4:
3:
2:
3677:
3676:
3665:
3662:
3660:
3657:
3655:
3652:
3650:
3647:
3645:
3642:
3640:
3637:
3635:
3632:
3630:
3627:
3626:
3624:
3609:
3608:Vilnius BASIC
3606:
3604:
3601:
3599:
3596:
3594:
3591:
3589:
3586:
3584:
3581:
3579:
3576:
3574:
3571:
3569:
3566:
3564:
3561:
3559:
3556:
3554:
3551:
3549:
3546:
3544:
3541:
3539:
3536:
3534:
3531:
3529:
3526:
3524:
3521:
3519:
3516:
3514:
3511:
3509:
3506:
3504:
3501:
3499:
3496:
3494:
3493:Chinese BASIC
3491:
3489:
3486:
3484:
3481:
3479:
3477:
3473:
3471:
3468:
3466:
3463:
3461:
3458:
3456:
3453:
3451:
3448:
3446:
3443:
3441:
3438:
3436:
3433:
3432:
3430:
3426:
3412:
3409:
3407:
3404:
3401:
3397:
3396:Basic4android
3393:
3390:
3389:
3387:
3385:
3379:
3373:
3370:
3367:
3363:
3360:
3358:
3355:
3353:
3350:
3348:
3345:
3343:
3340:
3339:
3337:
3335:
3331:
3328:
3326:
3322:
3318:
3312:
3309:
3306:
3304:
3301:
3299:
3296:
3294:
3291:
3289:
3286:
3284:
3281:
3280:
3278:
3276:
3270:
3264:WinWrap Basic
3263:
3261:
3258:
3254:
3251:
3249:
3246:
3245:
3243:
3239:
3237:
3234:
3232:
3229:
3226:
3223:
3221:
3218:
3216:
3213:
3211:
3208:
3206:
3203:
3201:
3198:
3196:
3193:
3192:
3190:
3188:
3184:
3181:
3177:
3172:
3162:
3159:
3157:
3154:
3152:
3149:
3147:
3144:
3142:
3139:
3137:
3134:
3132:
3129:
3127:
3124:
3122:
3119:
3117:
3114:
3112:
3109:
3107:
3104:
3102:
3099:
3098:
3096:
3094:
3088:
3082:
3079:
3077:
3074:
3072:
3069:
3067:
3064:
3062:
3059:
3057:
3054:
3052:
3049:
3047:
3044:
3042:
3039:
3037:
3034:
3032:
3029:
3027:
3024:
3022:
3021:Liberty BASIC
3019:
3017:
3014:
3012:
3009:
3007:
3004:
3002:
2999:
2997:
2994:
2992:
2989:
2987:
2984:
2983:
2981:
2979:
2975:
2972:
2967:
2963:
2953:
2950:
2948:
2945:
2943:
2940:
2938:
2937:Simons' BASIC
2935:
2932:
2930:
2927:
2926:
2924:
2922:
2918:
2910:
2905:
2902:
2900:
2897:
2895:
2892:
2890:
2887:
2885:
2882:
2880:
2877:
2875:
2872:
2870:
2867:
2865:
2862:
2860:
2857:
2855:
2852:
2850:
2847:
2846:
2844:
2840:
2834:
2831:
2829:
2826:
2824:
2821:
2819:
2816:
2815:
2813:
2810:
2806:
2800:
2797:
2795:
2792:
2790:
2787:
2784:
2780:
2776:
2773:
2771:
2768:
2767:
2765:
2763:
2762:Minicomputers
2759:
2753:
2750:
2748:
2745:
2743:
2742:Integer BASIC
2740:
2738:
2735:
2734:
2732:
2730:
2726:
2720:
2719:Mallard BASIC
2717:
2715:
2712:
2711:
2709:
2707:
2703:
2697:
2694:
2692:
2689:
2687:
2684:
2683:
2681:
2679:
2675:
2669:
2666:
2663:
2660:
2658:
2655:
2654:
2652:
2650:
2646:
2640:
2636:
2633:
2629:
2625:
2623:
2620:
2619:
2617:
2615:
2611:
2608:
2604:
2599:
2595:
2587:
2582:
2580:
2575:
2573:
2568:
2567:
2564:
2557:
2554:
2553:
2550:
2547:
2546:
2542:
2541:0-916439-71-2
2538:
2534:
2530:
2529:
2526:
2523:
2522:
2518:
2517:0-7156-2004-5
2514:
2510:
2506:
2505:
2502:
2499:
2498:
2494:
2490:
2486:
2485:
2482:
2479:
2478:
2474:
2471:
2469:
2466:
2465:
2460:
2444:
2440:
2434:
2431:
2419:
2415:
2409:
2407:
2403:
2398:
2396:9781489967879
2392:
2388:
2387:
2379:
2376:
2364:
2360:
2354:
2351:
2340:
2338:9780874550825
2334:
2330:
2329:
2321:
2318:
2307:
2305:9780874550825
2301:
2297:
2296:
2288:
2285:
2274:
2272:9780874550825
2268:
2264:
2263:
2255:
2252:
2240:
2236:
2230:
2227:
2222:
2220:9780874550603
2216:
2212:
2208:
2207:
2199:
2196:
2185:
2183:9780874550825
2179:
2175:
2174:
2166:
2163:
2152:on 2017-08-24
2148:
2141:
2135:
2132:
2127:
2121:
2118:
2106:
2102:
2096:
2093:
2089:
2087:
2083:
2080:
2078:
2074:
2071:
2068:
2064:
2058:
2055:
2048:
2043:
2040:
2037:
2033:
2030:
2027:
2023:
2020:
2019:Simons' BASIC
2017:
2014:
2011:
2009:) (Commodore)
2008:
2007:ROM cartridge
2004:
2001:
2000:
1996:
1986:
1980:
1974:
1964:
1958:
1955:
1949:
1948:
1946:
1942:
1934:
1928:
1919:
1910:
1909:
1907:
1906:Commodore LCD
1903:
1902:
1898:
1888:
1882:
1871:
1865:
1858:
1852:
1849:
1846:
1842:
1836:
1830:
1824:
1818:
1812:
1809:
1803:
1799:
1796:
1786:
1780:
1777:
1773:
1772:
1771:
1767:
1759:
1753:
1750:
1747:
1743:
1738:
1735:
1729:
1722:
1716:
1713:DEC(),HEX$ ()
1710:
1706:
1703:
1697:
1694:
1691:
1690:
1689:
1685:
1681:
1673:
1670:
1661:
1655:
1649:
1643:
1637:
1633:
1629:
1624:
1621:
1615:
1614:
1612:
1608:
1605:
1601:
1599:
1595:
1591:
1586:
1580:
1573:
1570:
1569:
1567:
1557:
1552:
1550:fix array bug
1549:
1546:
1543:
1539:
1538:
1536:
1531:
1528:
1525:
1524:
1522:
1519:and built-in
1518:
1514:
1513:
1509:
1507:
1501:
1499:
1488:
1475:
1473:
1469:
1465:
1461:
1457:
1456:screen editor
1444:
1440:
1432:
1430:
1414:
1403:
1397:
1395:
1391:
1385:
1381:
1376:
1370:
1369:
1363:
1287:
1284:
1282:
1281:Simons' BASIC
1278:
1277:Epyx FastLoad
1274:
1265:
1258:
1256:
1240:
1232:
1225:
1194:
1177:
1153:
1146:
1141:
1118:
1082:
1001:
990:
985:
983:
978:
975:
971:
967:
963:
959:
954:
952:
939:
924:
913:
909:
907:
903:
898:
893:
876:
832:
829:
777:
767:
763:
759:
751:
747:
742:
738:
734:
730:
726:
723:
715:
713:
705:
686:
676:
663:
649:
634:
632:
628:
623:
620:
610:
608:
604:
599:
577:
575:
571:
566:
562:
558:
553:
547:
543:
535:
531:
527:
523:
519:
515:
511:
503:
495:
492:
477:
474:
466:
456:
452:
448:
442:
441:
436:This section
434:
425:
424:
415:
412:
404:
394:
390:
384:
383:
378:This section
376:
372:
367:
366:
361:
359:
352:
351:
346:
345:
340:
335:
326:
325:
319:
317:
314:
309:
307:
295:
291:
290:Commodore 128
283:
281:
279:
275:
271:
267:
263:
262:Commodore 128
259:
255:
250:
248:
244:
240:
236:
233:The original
231:
222:' offer of a
221:
217:
213:
209:
205:
201:
198:
193:
191:
190:Commodore 128
187:
183:
182:home computer
180:
176:
172:
169:
165:
161:
157:
153:
145:
144:Commodore 128
141:
138:
136:
132:
128:
124:
121:
117:
113:
97:
95:
91:
75:
73:
69:
65:
51:
47:
44:
41:
39:
35:
32:
29:
27:
23:
3629:CBM software
3523:Family BASIC
3497:
3478:(Atari 2600)
3475:
3435:Altair BASIC
3036:Mobile BASIC
2952:YS MegaBasic
2809:Time-sharing
2783:Data General
2664:(aka XBasic)
2632:Level II/III
2532:
2508:
2488:
2446:. Retrieved
2442:
2433:
2421:. Retrieved
2417:
2385:
2378:
2366:. Retrieved
2362:
2353:
2342:. Retrieved
2327:
2320:
2309:. Retrieved
2294:
2287:
2276:. Retrieved
2261:
2254:
2242:. Retrieved
2238:
2229:
2205:
2198:
2187:. Retrieved
2172:
2165:
2154:. Retrieved
2147:the original
2134:
2128:. July 1985.
2120:
2108:. Retrieved
2104:
2095:
2063:Jack Tramiel
2057:
2042:Vision BASIC
1961:MOUSE,RMOUSE
1945:Commodore 65
1904:V3.6 :
1855:BOOT,DVERIFY
1811:exclusive or
1791:structures:
1789:IF THEN ELSE
1711:conversion:
1669:
1556:
1505:
1487:Commodore 64
1476:
1436:
1415:
1398:
1377:
1366:
1364:
1288:
1285:
1270:
1259:Alternatives
1241:
1233:
1226:
1195:
1178:
1154:
1142:
1119:
1083:
1002:
986:
979:
955:
940:
925:
914:
910:
894:
877:
833:
830:
778:
729:machine code
719:
706:
687:
675:lookup table
647:
635:
624:
611:
578:
554:
546:line editors
507:
487:
469:
460:
437:
407:
398:
387:Please help
382:verification
379:
355:
348:
342:
341:Please help
338:
313:Commodore 64
311:The popular
310:
298:WAIT 6502, 1
287:
278:Commodore 65
251:
247:floppy disks
232:
218:turned down
216:Jack Tramiel
194:
159:
155:
151:
150:
3503:Color BASIC
3445:Atari BASIC
3384:open source
3342:CA-Realizer
3334:Proprietary
3307:ScriptBasic
3275:open source
3210:LotusScript
3187:Proprietary
3121:Indic BASIC
3093:open source
3076:Turbo Basic
3066:Tiger-BASIC
3011:FutureBASIC
2978:Proprietary
2907: [
2869:Casio BASIC
2854:Astro BASIC
2828:SUPER BASIC
2668:TI-BASIC 83
2418:zimmers.net
1977:FIND,CHANGE
1969:) utility:
1965:text file (
1943:V10 :
1923:instead of
1914:instead of
1739:(tracing):
1709:hexadecimal
1609:V4+ :
1443:direct mode
1384:line number
1091:$ 30C-$ 30F
1057:instead of
1018:instead of
883:instead of
758:direct mode
725:interpreter
716:Performance
653:GO{Shift-S}
526:cursor keys
401:August 2011
306:disassembly
272:editor and
3623:Categories
3593:SuperBASIC
3588:STOS BASIC
3573:QuickBASIC
3298:Mono-Basic
3220:PowerBASIC
3179:extensions
3136:SmallBASIC
3071:True BASIC
3056:SmileBASIC
3046:PowerBASIC
3006:Beta BASIC
2991:AMOS BASIC
2986:AmigaBASIC
2889:Tiny BASIC
2849:AlphaBasic
2818:BASIC-PLUS
2799:Wang BASIC
2737:Atom BASIC
2548:BASIC 10.0
2344:2018-03-25
2311:2018-03-25
2278:2018-03-25
2189:2018-03-25
2156:2015-05-01
2061:Stated by
2049:References
1983:DMA,FRE(2)
1813:function:
1793:BEGIN,BEND
1561:MICROSOFT!
1555:WAIT6502,
1521:Datassette
1394:jump table
1390:ON...GOSUB
642:G{Shift-O}
512:-resident
447:improve it
344:improve it
302:Microsoft!
294:easter egg
220:Bill Gates
3558:MSX BASIC
3538:IBM BASIC
3528:GFA BASIC
3483:BBC BASIC
3400:Basic4ppc
3325:designers
3288:FreeBASIC
3240:VB 5 for
3227:Run BASIC
3111:DarkBASIC
3101:Basic-256
3081:WordBASIC
3061:ThinBasic
3051:PureBasic
2966:Procedure
2921:Extenders
2884:SDS BASIC
2811:computers
2639:BASIC 1.0
2614:Microsoft
2524:BASIC 7.0
2500:BASIC 3.5
2495:article).
2480:BASIC 2.0
2423:21 August
2368:21 August
2244:21 August
2036:Walrusoft
1930:FAST,SLOW
1861:FAST,SLOW
1762:SYS 52650
1737:debugging
1662:flexible
1559:displays
1495:DIRECTORY
1375:command.
1273:DOS Wedge
1210:$ 8B-$ 8F
932:VARIABLE2
928:VARIABLE1
856:THENPRINT
733:kilobytes
694:{Shift-L}
570:Datasette
534:tokenized
463:July 2013
451:verifying
350:talk page
212:royalties
208:Microsoft
162:, is the
160:CBM-BASIC
156:PET BASIC
43:Microsoft
38:Developer
31:Microsoft
3548:MacBASIC
3543:JR-BASIC
3533:GW-BASIC
3470:BASIC XL
3465:BASIC XE
3460:BASIC A+
3382:Free and
3352:NS Basic
3283:BlitzMax
3273:Free and
3236:VBScript
3224:ProvideX
3131:SdlBasic
3116:Euphoria
3106:Basic4GL
3091:Free and
3031:MapBasic
2970:oriented
2859:BASICODE
2770:BASIC-11
2696:HP Basic
2637:Thomson
2448:8 August
2110:8 August
2082:Archived
2073:Archived
1885:OFF,QUIT
1802:lightpen
1778:handling
1696:joystick
1668:RESTORE
1542:IEEE-488
1422:RENUMBER
1368:Loadstar
970:mantissa
966:exponent
958:MS BASIC
821:CLR HOME
631:high bit
627:keywords
561:diskette
557:cassette
520:was the
228:$ 25,000
192:(1985).
173:used in
135:Platform
123:Assembly
3578:S-BASIC
3428:Defunct
3366:Mercury
3205:GLBasic
3161:Yabasic
3146:wxBasic
3041:OWBasic
2929:BASIC 8
2904:ETBASIC
2752:SCELBAL
2628:Level I
2606:Classic
2461:Sources
2032:BASIC 8
2026:Hesware
1959:input:
1821:POINTER
1806:POT,PEN
1804:input:
1756:MONITOR
1705:decimal
1698:input:
1684:C16/116
1646:DISPOSE
1634:,DCLEAR
1583:DS,DS$
1544:support
943:AND, OR
817:⇧ Shift
607:bitmaps
445:Please
284:History
166:of the
164:dialect
142:to the
104: (
82: (
57: (
3568:QBasic
3553:MBASIC
3406:Gambas
3357:RapidQ
3311:Roslyn
3215:Morfik
3195:AutoIt
3176:object
3156:Xblite
3151:XBasic
3001:BasicX
2899:ZBasic
2894:UBASIC
2879:PBASIC
2874:CBASIC
2539:
2515:
2393:
2335:
2302:
2269:
2217:
2180:
1937:POPUPS
1912:VOLUME
1827:WINDOW
1798:paddle
1783:SPRDEF
1776:sprite
1768:V7.0:
1688:Plus/4
1682:V3.5:
1666:read:
1611:CBM-II
1606:(1990)
1594:VIC-20
1468:MS-DOS
1418:DELETE
1409:, and
1202:RND(0)
1163:, and
1138:$ 0302
960:, was
945:, and
934:, and
702:READY.
671:INPUT#
619:CBM-II
542:cursor
538:RETURN
518:KERNAL
270:sprite
258:Plus/4
3174:With
3016:GRASS
2911:]
2842:Other
2594:BASIC
2150:(PDF)
2143:(PDF)
1957:mouse
1833:SLEEP
1746:TROFF
1676:INSTR
1632:BSAVE
1628:BLOAD
1604:C64GS
1602:V2.2
1483:DSAVE
1479:DLOAD
1359:65493
1296:57812
1114:65490
920:GOSUB
885:PRINT
826:CHR$
803:CHR$
800:PRINT
785:CHR$
782:PRINT
735:from
679:PRINT
667:INPUT
662:GOSUB
598:BSAVE
593:BLOAD
243:C128s
179:8-bit
168:BASIC
3372:Xojo
3253:VSTA
3248:VSTO
3244:5.0
3141:QB64
2996:ASIC
2598:list
2537:ISBN
2513:ISBN
2450:2018
2425:2023
2391:ISBN
2370:2023
2333:ISBN
2300:ISBN
2267:ISBN
2246:2023
2215:ISBN
2178:ISBN
2112:2018
1971:TYPE
1925:QUIT
1921:EXIT
1874:RREG
1868:GO64
1770:C128
1742:TRON
1664:DATA
1652:ELSE
1618:BANK
1540:add
1530:PEEK
1491:LOAD
1481:and
1464:CP/M
1460:REPL
1420:and
1411:EXIT
1402:GOTO
1341:POKE
1326:POKE
1311:POKE
1242:The
1196:The
1190:TI$
1186:TI$
1184:and
1173:A(1)
1171:and
1157:AA$
1129:2048
1096:POKE
1084:The
998:PEEK
994:POKE
918:and
916:GOTO
902:POKE
873:0x20
865:GOTO
836:LIST
774:$ D0
770:$ C6
766:poll
750:6510
746:6502
710:LIST
638:GOTO
614:LOAD
595:and
581:LOAD
579:The
550:EDIT
516:and
256:and
197:6502
127:6502
106:1991
84:1985
59:1977
52:1977
3392:B4X
3321:RAD
3231:VBA
3026:LSE
2864:BAL
2779:B32
2493:C64
1967:SEQ
1916:VOL
1878:SYS
1815:XOR
1752:MLM
1725:KEY
1700:JOY
1598:C64
1466:or
1452:RUN
1450:or
1448:NEW
1356:SYS
1350:192
1344:782
1329:781
1314:780
1293:SYS
1253:FRE
1249:FRE
1244:FRE
1236:FRE
1229:RND
1222:RND
1218:RND
1214:RND
1206:RND
1198:RND
1165:AA%
1149:DIM
1134:RUN
1126:SYS
1111:SYS
1105:147
1099:780
1086:SYS
1078:100
1063:FOR
1054:100
1039:FOR
1033:or
996:or
947:XOR
868:160
841:100
809:147
760:or
754:SYS
748:or
741:RAM
739:to
737:ROM
690:REM
657:GO♥
510:ROM
449:by
391:by
254:C16
239:C64
235:PET
224:$ 3
186:PET
177:'s
158:or
140:PET
3625::
3398:,
2909:zh
2781:,
2630:,
2441:.
2416:.
2405:^
2361:.
2237:.
2213:.
2211:66
2103:.
1853::
1800:,
1744:,
1707:↔
1686:,
1630:,
1625::
1596:;
1574::
1362:.
1182:TI
1161:AA
1159:,
1140:.
1123:10
1075:to
1060:10
1051:TO
1036:10
1021:10
1006:10
953:.
936:VA
930:,
844:IF
589:,1
585:,1
353:.
280:.
249:.
3402:)
3394:(
3368:)
3364:(
2968:-
2785:)
2777:(
2634:)
2600:)
2585:e
2578:t
2571:v
2543:.
2519:.
2452:.
2427:.
2399:.
2372:.
2347:.
2314:.
2281:.
2248:.
2223:.
2192:.
2159:.
2114:.
2090:.
2038:)
2028:)
1880:)
1347:,
1338::
1335:0
1332:,
1323::
1320:0
1317:,
1305:8
1302:,
1169:A
1108::
1102:,
1072:0
1069:=
1066:A
1048:.
1045:=
1042:A
1030:0
1027:=
1024:A
1015:.
1012:=
1009:A
881:?
862::
853:5
850:=
847:A
819:+
812:)
806:(
794:)
791:X
788:(
683:?
655:(
648:Γ
646:G
494:)
488:(
476:)
470:(
465:)
461:(
443:.
414:)
408:(
403:)
399:(
385:.
360:)
356:(
129:)
125:(
108:)
86:)
61:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.