Кіріспе
Sinclair Research ZX Spectrum микрокомпьютері үшін BASIC интерпретаторы Beta BASIC — Sinclair Research ZX Spectrum микрокомпьютері үшін BASIC интерпретаторы, 1983 жылы доктор Эндрю Райт жазған және оның жеке бағдарламалық компаниясы BetaSoft сатқан. BetaSoft сонымен қатар BetaNews атты тұрақты жаңалықтар бюлетені/журналын шығарды. Бастапқыда ол BASIC құралдар жиынтығы ретінде жоспарланған, бірақ уақыт өте келе толыққанды алмастырғышқа айналды.
Beta BASIC is a BASIC interpreter for the Sinclair Research ZX Spectrum microcomputer, written by Dr Andrew Wright in 1983 and sold by his one man software house BetaSoft. BetaSoft also produced a regular newsletter/magazine, BetaNews. Originally it started as a BASIC toolkit but over time it grew into a full replacement.
Мекемелер
Beta BASIC Sinclair BASIC-ті толықтай алмастырды, ол сол кезде кең таралған, сонымен қатар командалық желі интерфейсін (CLI) қамтамасыз ететін операциялық жүйе болды. Осылайша Beta BASIC жаңа және жақсартылған CLI және редакторды ұсынды. Ол BASIC кілт сөздері үшін Синклердің ерекше бір пернемен енгізу жүйесін қолдады, сонымен қатар кілт сөздерді әріптерін бірінен соң бірі теріп жазуға мүмкіндік берді. Бұл кейде құпия кілт комбинацияларын жаттап алу қажеттілігін де жойды. Алайда, бір пернемен енгізу жүйесі Spectrum-тің «графикалық» таңбаларын Beta BASIC-тің жаңа кілт сөздеріне бейімдеу арқылы кеңейтілді. Кілт сөзді енгізуден әріптермен жазуға ауысу үшін тек бір бос орынды басу керек болды, бұл курсор режимін K (кілт сөз) әрпінен L (кіші әріп) немесе C (үлкен әріп) әрпіне ауыстырды. (KEYWORDS операторы бұл әрекетті өзгертуге, мысалы K режимін өшіру арқылы да қолданылуы мүмкін.) Редактор, кодты тізімдегенде, қалауынша автоматты түрде әдемі басып шығара алады. Бұл Sinclair BASIC-те қолмен жасауға болады, бірақ автоматты терімдеу кодтау қателерінің кейбір түрлерін, ең алдымен конструкцияларды дұрыс жаппауға байланысты қателерді анықтауға көмектеседі. Басқа редакциялау жақсартулары: ағымдағы жол индикаторының автоматты түрде ерекшеленуі – бұл шағын, бірақ өте пайдалы өзгеріс – және курсорды жоғары және төмен, сол және оңға жылжыту мүмкіндігі, ұзын жолдарды өңдеу кезінде үлкен көмек болды. 64 бағандық дисплеймен (төмендегі «Жаңа мүмкіндіктер» бөлімін қараңыз) біріктірілген бұл жақсартулар Beta BASIC-ті тіпті стандартты Sinclair BASIC-ті кодтау үшін де әлдеқайда өнімді ортаға айналдырды және BetaSoft тілінің қосымшаларын пайдаланбастан. Beta BASIC сонымен қатар өз алдына дербес интерпретатор болды, ол Spectrum ROM-ын айналып өтіп, оны кітапхана ретінде пайдаланды. Ол кейде ROM-ға функцияларды шақырып, қайта іске асыруға тұрмайтын функцияларға қол жеткізу үшін қоңырау шалады, өйткені ROM-ның процедуралары жеткілікті жақсы болды немесе жадты үнемдеу қажет болды. Beta BASIC Spectrum-дағы қол жетімді 48 КБ жадыда жұмыс істеуі керек болды және пайдаланушының кодына орын қалдыру керек болды.
Тіл өзгерістері
Өз кезегінде Beta BASIC өте күрделі болды. Ол атаулы процедуралар мен функциялармен, жергілікті айнымалылармен толық құрылымдалған бағдарламалауды қамтамасыз етті, сондай-ақ рекурсия қолданып бағдарламалауға мүмкіндік берді. Жол нөмірлерін қолдағанмен, олар міндетті емес еді және жол нөмірлерін көрсетуді толығымен тоқтату режимін ұсынды. 128К Spectrum машиналарында Beta BASIC бағдарламашыларға машинаның қосымша жадын RAM дискісі түрінде пайдалануға мүмкіндік беретін кеңейтілген мүмкіндіктерді ұсынды. Бағдарламашыға бағдарламаларды, жад блоктарын немесе экран бейнелерін RAM дискісіне сақтау және жүктеу, сондай-ақ RAM дискісіндегі мазмұнды тізімдеуге мүмкіндік берді. Beta BASIC RAM дискісінде сақталған массивтерді құру және пайдалану үшін де командалар берді, бұл Spectrum-тегі 30 КБ шамасындағы бос жадыда жұмыс істейтін бағдарламаларға 80 КБ-қа жуық массивтерді басқаруға мүмкіндік берді – 1980-ші жылдар стандарты бойынша бұл үлкен көлемдегі жад еді және басқа 8 биттік BASIC-терге қарағанда әлдеқайда артық, себебі олардың бағдарламасы мен деректерінің жалпы көлемі 64 КБ-тан аспайтын.
Жаңа функционалдық
Бета BASIC сонымен қатар Spectrum-тің 256x192 пикселдік дисплейін тікелей басқарып, ROM-ның 32 бағандық мәтіндік дисплейінің шектеулерін жойды. Beta BASIC масштабталатын экрандық қаріптерді ұсынды, оның ішінде әрі қана 4 пиксел ені бар, бірақ оқылуы мүмкін ерекше жұмсақ қаріп болды. Бұл Beta BASIC-ке экранда 64 баған мәтінді көрсетуге мүмкіндік берді, бұл оны компьютерлік терминалдардың және кәсіби және хобби CP/M машиналарының дәстүрлі 80 бағандық дисплейлерімен салыстыруға болатын деңгейге жеткізді. (80-ші жылдардағы кейбір үй компьютерлері де 80 бағанды дисплейді қолдайтын.) Егер пайдаланушы әріптер арасындағы аралықтардың болмауына келісім берсе, 85 бағандық дисплейге де қол жеткізуге болар еді. Бұл оқуға қиын болғанымен, 80 бағандық экранға арналған BASIC қолданбаларын оңай көшіруге мүмкіндік берді. Мәтіннің мөлшерін бағдарлама арқылы басқаруға болады, сондықтан бағдарламаның бір бөлігі 64 бағандық мәтінді, ал екінші бөлігі 32 бағандық мәтінді пайдалана алатын, сондай-ақ аралық мөлшерді үлкейтуге немесе кішірейтуге болады.
Шектеулер
Beta BASIC кейбір шектеулерден зардап шекті. Басқа 8 биттік микропроцессорлар сияқты, Spectrum Zilog Z80 процессорының адрестеу шектеулеріне байланысты 64 КБ үздірілген жадыға ғана қол жеткізе алды. Оның 16 КБ-ын Sinclair BASIC ROM алды, ал 48 КБ-ы RAM үшін қалды. Экран да, интерпретатордың ішкі дерек құрылымдарын сақтауға арналған аймақтар да осы жадтың бір бөлігін пайдаланды. Beta BASIC қалған жадтың шамамен 11-12 КБ-ын алды, кейбір жағдайларда пайдаланушы бағдарламалары үшін 20 КБ-қа дейін қалдырды. Sinclair редакторының орнына жаңасы қойылғандықтан, 128К Spectrum ROM-ның толық экранды BASIC редакторын пайдалану мүмкін болмады. Beta BASIC коды үшін компилятор болған жоқ, ал HiSoft BASIC сияқты Sinclair BASIC компиляторлары Beta BASIC-тің кеңейтілген кілт сөздері мен мүмкіндіктерін қолдауға қабілетсіз болды. Тағы бір Sinclair BASIC шектеуі – жолдар, массивлер және басқа да типтер үшін тек бір әріптен тұратын айнымалы атауларын ғана қолдануға болады. Құрылымдық бағдарламалауды ендіріп бірінші 8 биттік BASIC – BBC BASIC болды. Beta BASIC-тегі аталған процедураларды BBC BASIC-тегідей PROC кілт сөзімен шақыру қажет болмады, осылайша олар тілдің өзінің кілт сөздеріне айналып, тілді кеңейтуге мүмкіндік берді. Дегенмен, BBC BASIC сол кездегі ең жылдам BASIC интерпретаторынан едәуір жылдам болды. Beta BASIC аса жылдам болмаса да, оның құрамында шеңбер мен доға сызу коды сияқты өте баяу ROM процедураларының жылдам нұсқалары болды.
Нұсқалар
BetaBasic V1.0 1983 жылы Beta BASIC-пен көп жағынан үйлесімді болды және SAM құрылғысының экраны мен кеңейтілген жадысы сияқты маңызды айырмашылықтары болмаған жағдайларда, одан да ұқсас жұмыс істеді. Кейіннен BetaSoft SAM BASIC-ке MasterBASIC деп аталатын қосымша шығарды.