326:. Beta BASIC named procedures did not need to be called with the PROC keyword like in BBC BASIC and thus became new language keywords, allowing the language to be extended in itself. However, BBC BASIC was considerably quicker - the fastest BASIC interpreter of the time. Beta BASIC was not especially fast, though it included faster replacements for particularly slow ROM routines, such as the circle and arc drawing code.
214:
indicator - a small tweak but disproportionately helpful - and the ability to move the cursor up and down as well as left and right, a huge boon when editing long lines. Combined with the 64-column display (see "New functionality" section below), these improvements made Beta BASIC a much more productive environment even for coding standard
Sinclair BASIC and making no use of BetaSoft's language additions.
305:. Of this, 16 KB was taken by the Sinclair BASIC ROM, leaving 48 KB for RAM. The screen took some of this, as did the areas used for holding the interpreter's own internal data structures. Beta BASIC took around 11-12 KB of the remainder, in some cases leaving only 20 KB or so for user programs.
264:
held in the RAM disk, allowing programs running in the 30 KB or so of free memory on the
Spectrum to manipulate arrays approaching 80 KB - a significant extra amount of space by 1980s standards and more than almost any other 8-bit BASIC, which were generally limited to 64 KB of program
213:
code. It was possible to do this manually in
Sinclair BASIC, but automatic indentation has the advantage of highlighting certain types of coding error - primarily those to do with failing to correctly close constructs. Other editing improvements included automatic highlighting of the current-line
201:
keywords. However, the single-key entry system was also extended by mapping the
Spectrum's 'graphics' characters to Beta BASIC's new keywords. To switch from keyword entry to typed entry, it was merely necessary to type a single space, causing the cursor mode to change from K (keyword) to L
289:
machines. (A few home computers of the 80s could also display 80 columns.) If the user was prepared to tolerate characters being displayed without gaps between them, an 85 column display was possible. This was not very readable but did allow easy porting of BASIC applications designed for an
397:
approached BetaSoft and contracted Wright to provide the BASIC for the new machine. He provided a complete BASIC interpreter which drew extensively upon Beta BASIC but was differently structured, as this was a language in its own right and had no
Sinclair ROM to call upon or work around.
402:
was largely compatible with Beta BASIC and operated in a very similar manner, except for areas where the SAM hardware was significantly different, such as the SAM's screen and extended memory. BetaSoft later released an extension to SAM BASIC, named MasterBASIC.
27:
225:, which it used as a library. It occasionally made calls into the ROM to access functions that were not worth re-implementing either because the ROM routines were good enough or for reasons of space - Beta BASIC had to run in the 48
196:
single-key entry system for BASIC keywords but also allowed keywords to be spelled out letter-for-letter. This also removed the necessity for memorising the sometimes arcane key combinations necessary to enter less-commonly-used
260:. As well as allowing the programmer to save and load programs, blocks of memory or screen images into the RAM disc and catalogue the contents of the RAM disk, Beta BASIC also provided commands for the creation and use of
281:, with a special soft font which was only 4 pixels wide but still legible. This meant that Beta BASIC could display 64 columns of text across the screen, making it more comparable to traditional 80-column displays of
298:
Beta BASIC suffered from some limitations. As with other 8-bit microprocessors, the
Spectrum could only address 64 KB of contiguous memory due to the addressing restrictions of the Spectrum's
290:
80-column screen. Text size could be controlled programmatically so that part of a program's display might use 64-column text, part 32-column text and enlarged or reduced intermediate sizes.
1405:
256:
On the 128K Spectrum machines, Beta BASIC provided extended facilities allowing programmers to access the machine's extra memory, which took the form of a
253:. Although it supported line numbers, they were not necessary and it offered a mode of operation which completely suppressed the display of line numbers.
1683:
162:, written by Dr Andrew Wright in 1983 and sold by his one-man software house BetaSoft. BetaSoft also produced a regular newsletter/magazine, BetaNews.
1292:
319:
Another remaining
Sinclair BASIC limitation was that only single-letter variable names could be used for strings, arrays and other types.
308:
The replacement of
Sinclair's editor meant that it was not possible to use the 128K Spectrum ROM's full-screen BASIC editor. No
1155:
623:
1287:
1673:
1360:
1270:
903:
1055:
1678:
1215:
1030:
828:
822:
79:
1509:
1504:
1160:
1065:
122:
1668:
1552:
1165:
1035:
833:
394:
242:
218:
125:
1602:
1386:
1005:
637:
238:
186:
1489:
1332:
1299:
862:
671:
277:
display directly, eliminating the restrictions of the ROM's 32-column text display. Beta BASIC offered
1557:
1421:
1373:
1312:
1226:
1130:
1017:
735:
730:
725:
261:
137:
601:
581:
496:
363:
1637:
1527:
1401:
745:
678:
616:
117:
818:
399:
1514:
1350:
1150:
986:
701:
688:
282:
153:
149:
943:
1342:
976:
786:
753:
222:
206:
statement could also be used to alter this behaviour, for example by disabling the K mode.)
182:
132:
105:
422:
1547:
1537:
1479:
1337:
1281:
960:
717:
661:
26:
1642:
1622:
1494:
1239:
1095:
981:
872:
814:
609:
313:
246:
178:
545:
1662:
1647:
1532:
1435:
1060:
781:
768:
758:
667:
520:
359:
278:
193:
166:
159:
435:
1562:
1474:
1364:
1075:
991:
848:
801:
378:
565:
390:
389:
During the development of their sophisticated new successor to the
Spectrum, the
1542:
1484:
1381:
1322:
1249:
1115:
1105:
1050:
908:
893:
867:
707:
459:
355:
312:
was available for Beta BASIC code and existing
Sinclair BASIC compilers such as
210:
156:
110:
322:
The only other 8-bit BASIC with inbuilt support for structured programming was
1632:
1627:
1612:
1259:
1175:
1110:
1085:
1025:
928:
888:
857:
838:
776:
47:
37:
1597:
1577:
1567:
1522:
1499:
1450:
1439:
1327:
1140:
1120:
1100:
1090:
923:
653:
381:
was also under consideration for a while, but Wright discarded the project.
323:
299:
250:
229:
of memory available on a Spectrum and still leave room for the user's code.
316:
BASIC could not handle the extended keywords and facilities of Beta BASIC.
1587:
1582:
1572:
1391:
1275:
1170:
1145:
1070:
898:
809:
696:
367:
309:
257:
226:
1617:
1244:
1200:
1185:
1080:
968:
948:
791:
375:
586:
Spectrum Computing - Sinclair ZX Spectrum games, software and hardware
501:
Spectrum Computing - Sinclair ZX Spectrum games, software and hardware
1607:
1592:
1445:
1396:
1254:
1234:
1195:
1190:
1040:
938:
933:
918:
913:
16:
BASIC interpreter for the Sinclair Research ZX Spectrum microcomputer
189:(CLI). Thus Beta BASIC provided a new and improved CLI and editor.
633:
371:
274:
198:
1411:
1180:
286:
605:
1431:
302:
525:
Spectrum Computing - ZX Spectrum games, software and hardware
440:
Spectrum Computing - ZX Spectrum games, software and hardware
237:
For its time, Beta BASIC was sophisticated. It provided full
209:
The editor, when listing, could optionally automatically
1467:
1420:
1372:
1359:
1311:
1225:
1213:
1129:
1016:
1004:
959:
881:
847:
800:
767:
744:
716:
687:
652:
645:
131:
116:
104:
78:
56:
46:
36:
169:but over time it grew into a full replacement.
617:
273:Beta BASIC also drove the Spectrum's 256x192
8:
354:Special versions were produced for users of
181:, which as common for the time was also the
19:
418:
416:
374:disk interfaces as well. A version for the
1369:
1222:
1013:
649:
624:
610:
602:
25:
18:
567:MasterBASIC for the SAM COUPÉ User Manual
221:in its own right, bypassing the Spectrum
412:
362:, and subsequently for those with the
285:and typical hobbyist and professional
7:
491:
489:
487:
485:
483:
481:
479:
31:Screenshot of BetaBasic in operation
202:(lowercase) or C (capital). (The
14:
1684:BASIC programming language family
393:, Alan Miles and Bruce Gordon of
249:, allowing for programming using
217:Beta BASIC was also a standalone
177:Beta BASIC completely replaced
553:. MILES GORDON TECHNOLOGY plc.
1:
829:Data General Extended BASIC
165:Originally it started as a
87:; 37 years ago
62:; 41 years ago
1700:
241:with named procedures and
123:BASIC programming language
1553:Disk Extended Color BASIC
1166:Open Programming Language
100:
85:Beta Basic v4.0 / 1987
74:
24:
1451:WinFBE, Visual FB Editor
834:Southampton BASIC System
192:It supported Sinclair's
547:SAM Coupé Users' Manual
395:Miles Gordon Technology
1603:MS BASIC for Macintosh
1387:Visual Basic (classic)
697:TI-BASIC (calculators)
636:programming language (
544:Croucher, Mel (1989).
385:Subsequent development
239:structured programming
187:command line interface
1490:Atari Microsoft BASIC
1333:Microsoft Small Basic
1300:Embedded Visual Basic
863:VSI BASIC for OpenVMS
564:Wright, Andy (1990).
350:BetaBasic V4.0 - 1987
347:BetaBasic V3.1 - 1985
344:BetaBasic V3.0 - 1985
341:BetaBasic V1.9 - 1984
338:BetaBasic V1.8 - 1984
335:BetaBasic V1.0 - 1983
279:scalable screen fonts
1674:ZX Spectrum software
1558:Extended Color BASIC
731:Rocky Mountain BASIC
726:HP Time-Shared BASIC
1638:TI BASIC (TI 99/4A)
1528:Benton Harbor BASIC
746:Locomotive Software
425:- World of Spectrum
265:and data combined.
21:
1679:BASIC interpreters
283:computer terminals
38:Original author(s)
1656:
1655:
1516:BASIC Programming
1463:
1462:
1459:
1458:
1402:Visual Basic .NET
1209:
1208:
1000:
999:
987:Super Expander 64
702:TI Extended BASIC
689:Texas Instruments
269:New functionality
154:Sinclair Research
150:BASIC interpreter
143:
142:
1691:
1669:BASIC extensions
1370:
1343:OpenOffice Basic
1223:
1014:
952:
787:North Star BASIC
754:Locomotive BASIC
650:
632:Dialects of the
626:
619:
612:
603:
596:
595:
593:
592:
578:
572:
571:
561:
555:
554:
552:
541:
535:
534:
532:
531:
517:
511:
510:
508:
507:
493:
474:
473:
471:
470:
456:
450:
449:
447:
446:
432:
426:
420:
245:, complete with
233:Language changes
205:
106:Operating system
95:
93:
88:
70:
68:
63:
42:Dr Andrew Wright
29:
22:
1699:
1698:
1694:
1693:
1692:
1690:
1689:
1688:
1659:
1658:
1657:
1652:
1548:Dartmouth BASIC
1538:Commodore BASIC
1480:Applesoft BASIC
1455:
1423:
1416:
1363:
1355:
1314:
1307:
1282:Microsoft Excel
1218:
1205:
1132:
1125:
1009:
996:
955:
946:
877:
843:
796:
763:
740:
718:Hewlett-Packard
712:
683:
666:TRS-80 BASICs (
662:Microsoft BASIC
641:
630:
600:
599:
590:
588:
580:
579:
575:
563:
562:
558:
550:
543:
542:
538:
529:
527:
519:
518:
514:
505:
503:
495:
494:
477:
468:
466:
458:
457:
453:
444:
442:
436:"Andrew Wright"
434:
433:
429:
421:
414:
409:
387:
332:
296:
271:
247:local variables
235:
203:
175:
96:
91:
89:
86:
66:
64:
61:
57:Initial release
32:
17:
12:
11:
5:
1697:
1695:
1687:
1686:
1681:
1676:
1671:
1661:
1660:
1654:
1653:
1651:
1650:
1645:
1643:Turbo-BASIC XL
1640:
1635:
1630:
1625:
1623:Sinclair BASIC
1620:
1615:
1610:
1605:
1600:
1595:
1590:
1585:
1580:
1575:
1570:
1565:
1560:
1555:
1550:
1545:
1540:
1535:
1530:
1525:
1520:
1512:
1507:
1502:
1497:
1495:Atari ST BASIC
1492:
1487:
1482:
1477:
1471:
1469:
1465:
1464:
1461:
1460:
1457:
1456:
1454:
1453:
1448:
1443:
1428:
1426:
1418:
1417:
1415:
1414:
1409:
1399:
1394:
1389:
1384:
1378:
1376:
1367:
1357:
1356:
1354:
1353:
1348:
1345:
1340:
1335:
1330:
1325:
1319:
1317:
1309:
1308:
1306:
1305:
1302:
1297:
1296:
1295:
1290:
1278:
1273:
1268:
1265:
1262:
1257:
1252:
1247:
1242:
1240:Chipmunk Basic
1237:
1231:
1229:
1220:
1211:
1210:
1207:
1206:
1204:
1203:
1198:
1193:
1188:
1183:
1178:
1173:
1168:
1163:
1158:
1153:
1148:
1143:
1137:
1135:
1127:
1126:
1124:
1123:
1118:
1113:
1108:
1103:
1098:
1093:
1088:
1083:
1078:
1073:
1068:
1063:
1058:
1053:
1048:
1043:
1038:
1033:
1028:
1022:
1020:
1011:
1002:
1001:
998:
997:
995:
994:
989:
984:
982:Super Expander
979:
974:
973:Graphics BASIC
971:
965:
963:
957:
956:
954:
953:
941:
936:
931:
926:
921:
916:
911:
906:
901:
896:
891:
885:
883:
879:
878:
876:
875:
873:CALL/360:BASIC
870:
865:
860:
854:
852:
845:
844:
842:
841:
836:
831:
826:
815:Business Basic
812:
806:
804:
798:
797:
795:
794:
789:
784:
779:
773:
771:
769:Microcomputers
765:
764:
762:
761:
756:
750:
748:
742:
741:
739:
738:
733:
728:
722:
720:
714:
713:
711:
710:
705:
699:
693:
691:
685:
684:
682:
681:
675:
664:
658:
656:
647:
643:
642:
631:
629:
628:
621:
614:
606:
598:
597:
573:
556:
536:
512:
475:
451:
427:
411:
410:
408:
405:
386:
383:
364:Opus Discovery
352:
351:
348:
345:
342:
339:
336:
331:
328:
295:
292:
270:
267:
234:
231:
179:Sinclair BASIC
174:
171:
141:
140:
135:
129:
128:
120:
114:
113:
108:
102:
101:
98:
97:
84:
82:
76:
75:
72:
71:
58:
54:
53:
50:
44:
43:
40:
34:
33:
30:
15:
13:
10:
9:
6:
4:
3:
2:
1696:
1685:
1682:
1680:
1677:
1675:
1672:
1670:
1667:
1666:
1664:
1649:
1648:Vilnius BASIC
1646:
1644:
1641:
1639:
1636:
1634:
1631:
1629:
1626:
1624:
1621:
1619:
1616:
1614:
1611:
1609:
1606:
1604:
1601:
1599:
1596:
1594:
1591:
1589:
1586:
1584:
1581:
1579:
1576:
1574:
1571:
1569:
1566:
1564:
1561:
1559:
1556:
1554:
1551:
1549:
1546:
1544:
1541:
1539:
1536:
1534:
1533:Chinese BASIC
1531:
1529:
1526:
1524:
1521:
1519:
1517:
1513:
1511:
1508:
1506:
1503:
1501:
1498:
1496:
1493:
1491:
1488:
1486:
1483:
1481:
1478:
1476:
1473:
1472:
1470:
1466:
1452:
1449:
1447:
1444:
1441:
1437:
1436:Basic4android
1433:
1430:
1429:
1427:
1425:
1419:
1413:
1410:
1407:
1403:
1400:
1398:
1395:
1393:
1390:
1388:
1385:
1383:
1380:
1379:
1377:
1375:
1371:
1368:
1366:
1362:
1358:
1352:
1349:
1346:
1344:
1341:
1339:
1336:
1334:
1331:
1329:
1326:
1324:
1321:
1320:
1318:
1316:
1310:
1304:WinWrap Basic
1303:
1301:
1298:
1294:
1291:
1289:
1286:
1285:
1283:
1279:
1277:
1274:
1272:
1269:
1266:
1263:
1261:
1258:
1256:
1253:
1251:
1248:
1246:
1243:
1241:
1238:
1236:
1233:
1232:
1230:
1228:
1224:
1221:
1217:
1212:
1202:
1199:
1197:
1194:
1192:
1189:
1187:
1184:
1182:
1179:
1177:
1174:
1172:
1169:
1167:
1164:
1162:
1159:
1157:
1154:
1152:
1149:
1147:
1144:
1142:
1139:
1138:
1136:
1134:
1128:
1122:
1119:
1117:
1114:
1112:
1109:
1107:
1104:
1102:
1099:
1097:
1094:
1092:
1089:
1087:
1084:
1082:
1079:
1077:
1074:
1072:
1069:
1067:
1064:
1062:
1061:Liberty BASIC
1059:
1057:
1054:
1052:
1049:
1047:
1044:
1042:
1039:
1037:
1034:
1032:
1029:
1027:
1024:
1023:
1021:
1019:
1015:
1012:
1007:
1003:
993:
990:
988:
985:
983:
980:
978:
977:Simons' BASIC
975:
972:
970:
967:
966:
964:
962:
958:
950:
945:
942:
940:
937:
935:
932:
930:
927:
925:
922:
920:
917:
915:
912:
910:
907:
905:
902:
900:
897:
895:
892:
890:
887:
886:
884:
880:
874:
871:
869:
866:
864:
861:
859:
856:
855:
853:
850:
846:
840:
837:
835:
832:
830:
827:
824:
820:
816:
813:
811:
808:
807:
805:
803:
802:Minicomputers
799:
793:
790:
788:
785:
783:
782:Integer BASIC
780:
778:
775:
774:
772:
770:
766:
760:
759:Mallard BASIC
757:
755:
752:
751:
749:
747:
743:
737:
734:
732:
729:
727:
724:
723:
721:
719:
715:
709:
706:
703:
700:
698:
695:
694:
692:
690:
686:
680:
676:
673:
669:
665:
663:
660:
659:
657:
655:
651:
648:
644:
639:
635:
627:
622:
620:
615:
613:
608:
607:
604:
587:
583:
582:"MasterBasic"
577:
574:
569:
568:
560:
557:
549:
548:
540:
537:
526:
522:
516:
513:
502:
498:
492:
490:
488:
486:
484:
482:
480:
476:
465:
461:
460:"Andy Wright"
455:
452:
441:
437:
431:
428:
424:
419:
417:
413:
406:
404:
401:
396:
392:
384:
382:
380:
377:
373:
369:
365:
361:
360:ZX Microdrive
357:
349:
346:
343:
340:
337:
334:
333:
329:
327:
325:
320:
317:
315:
311:
306:
304:
301:
293:
291:
288:
284:
280:
276:
268:
266:
263:
259:
254:
252:
248:
244:
240:
232:
230:
228:
224:
220:
215:
212:
207:
200:
195:
194:idiosyncratic
190:
188:
184:
180:
172:
170:
168:
167:BASIC toolkit
163:
161:
160:microcomputer
158:
155:
151:
147:
139:
136:
134:
130:
127:
124:
121:
119:
115:
112:
109:
107:
103:
99:
83:
81:
80:Final release
77:
73:
59:
55:
51:
49:
45:
41:
39:
35:
28:
23:
1563:Family BASIC
1518:(Atari 2600)
1515:
1475:Altair BASIC
1076:Mobile BASIC
1045:
992:YS MegaBasic
849:Time-sharing
823:Data General
704:(aka XBasic)
672:Level II/III
589:. Retrieved
585:
576:
566:
559:
546:
539:
528:. Retrieved
524:
515:
504:. Retrieved
500:
497:"Beta Basic"
467:. Retrieved
464:World of SAM
463:
454:
443:. Retrieved
439:
430:
388:
353:
321:
318:
307:
297:
272:
255:
236:
216:
208:
191:
185:providing a
176:
164:
145:
144:
48:Developer(s)
1543:Color BASIC
1485:Atari BASIC
1424:open source
1382:CA-Realizer
1374:Proprietary
1347:ScriptBasic
1315:open source
1250:LotusScript
1227:Proprietary
1161:Indic BASIC
1133:open source
1116:Turbo Basic
1106:Tiger-BASIC
1051:FutureBASIC
1018:Proprietary
947: [
909:Casio BASIC
894:Astro BASIC
868:SUPER BASIC
708:TI-BASIC 83
570:. Betasoft.
379:Spectrum +3
356:Interface 1
294:Limitations
219:interpreter
211:prettyprint
157:ZX Spectrum
138:Proprietary
126:interpreter
111:ZX Spectrum
1663:Categories
1633:SuperBASIC
1628:STOS BASIC
1613:QuickBASIC
1338:Mono-Basic
1260:PowerBASIC
1219:extensions
1176:SmallBASIC
1111:True BASIC
1096:SmileBASIC
1086:PowerBASIC
1046:Beta BASIC
1031:AMOS BASIC
1026:AmigaBASIC
929:Tiny BASIC
889:AlphaBasic
858:BASIC-PLUS
839:Wang BASIC
777:Atom BASIC
591:2022-11-30
530:2022-11-30
521:"BETASOFT"
506:2022-11-30
469:2022-11-30
445:2022-11-30
423:Beta Basic
407:References
173:Facilities
146:Beta BASIC
20:Beta BASIC
1598:MSX BASIC
1578:IBM BASIC
1568:GFA BASIC
1523:BBC BASIC
1440:Basic4ppc
1365:designers
1328:FreeBASIC
1280:VB 5 for
1267:Run BASIC
1151:DarkBASIC
1141:Basic-256
1121:WordBASIC
1101:ThinBasic
1091:PureBasic
1006:Procedure
961:Extenders
924:SDS BASIC
851:computers
679:BASIC 1.0
654:Microsoft
400:SAM BASIC
391:SAM Coupé
324:BBC BASIC
300:Zilog Z80
251:recursion
243:functions
1588:MacBASIC
1583:JR-BASIC
1573:GW-BASIC
1510:BASIC XL
1505:BASIC XE
1500:BASIC A+
1422:Free and
1392:NS Basic
1323:BlitzMax
1313:Free and
1276:VBScript
1264:ProvideX
1171:SdlBasic
1156:Euphoria
1146:Basic4GL
1131:Free and
1071:MapBasic
1010:oriented
899:BASICODE
810:BASIC-11
736:HP Basic
677:Thomson
368:DISCiPLE
358:and the
330:Versions
310:compiler
258:RAM disk
204:KEYWORDS
152:for the
52:BetaSoft
1618:S-BASIC
1468:Defunct
1406:Mercury
1245:GLBasic
1201:Yabasic
1186:wxBasic
1081:OWBasic
969:BASIC 8
944:ETBASIC
792:SCELBAL
668:Level I
646:Classic
376:Amstrad
133:License
90: (
65: (
1608:QBasic
1593:MBASIC
1446:Gambas
1397:RapidQ
1351:Roslyn
1255:Morfik
1235:AutoIt
1216:object
1196:Xblite
1191:XBasic
1041:BasicX
939:ZBasic
934:UBASIC
919:PBASIC
914:CBASIC
314:HiSoft
262:arrays
1214:With
1056:GRASS
951:]
882:Other
634:BASIC
551:(PDF)
372:PlusD
275:pixel
199:BASIC
148:is a
1412:Xojo
1293:VSTA
1288:VSTO
1284:5.0
1181:QB64
1036:ASIC
638:list
370:and
287:CP/M
118:Type
92:1987
67:1983
60:1983
1432:B4X
1361:RAD
1271:VBA
1066:LSE
904:BAL
819:B32
303:CPU
223:ROM
1665::
1438:,
949:zh
821:,
670:,
584:.
523:.
499:.
478:^
462:.
438:.
415:^
366:,
227:KB
183:OS
1442:)
1434:(
1408:)
1404:(
1008:-
825:)
817:(
674:)
640:)
625:e
618:t
611:v
594:.
533:.
509:.
472:.
448:.
94:)
69:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.