Knowledge (XXG)

Beta BASIC

Source đź“ť

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:)

Index


Original author(s)
Developer(s)
Final release
Operating system
ZX Spectrum
Type
BASIC programming language
interpreter
License
Proprietary
BASIC interpreter
Sinclair Research
ZX Spectrum
microcomputer
BASIC toolkit
Sinclair BASIC
OS
command line interface
idiosyncratic
BASIC
prettyprint
interpreter
ROM
KB
structured programming
functions
local variables
recursion
RAM disk

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑