Кіріспе
TI 99/4A бағдарламалау тілі TI BASIC — 1979 жылғы Texas Instruments TI 99/4 үй компьютерінің және оның 1981 жылы жаңартылған нұсқасы TI 99/4A-ның құрамына енгізілген BASIC бағдарламалау тілі үшін ANSI стандартына сәйкес интерпретатор. Қазіргі микрокомпьютерлердегі көптеген BASIC нұсқаларының тарихы Microsoft BASIC-ке байланысты болғанымен, TI BASIC ANSI және ECMA ұйымдары жасаған Minimal BASIC стандартын ұстанған, TI компаниясының жеке әзірлемесі болды. Бұл, өз кезегінде, 1960 жылдардағы түпнұсқа Dartmouth BASIC-ке негізделген. TI BASIC пен кең таралған MS түрлері арасында маңызды, кейде көзге көрінбейтін айырмашылықтар бар. Minimal BASIC-те заманауи BASIC-терде жиі кездесетін көптеген мүмкіндіктер болмады, ал Texas Instruments кейіннен BASIC қолданушыларының мүмкіндіктерін кеңейткен TI Extended BASIC картриджін ұсынды. Ол басқа BASIC-тердегі мүмкіндіктермен қатар, платформаның графикалық объектілерді басқару, дыбыс және басқа да функциялары үшін жаңа жүйелік командаларды қамтыды. Үй компьютеріндегідей, TI BASIC бағдарламалау үшін ғана емес, қарапайым операциялық жүйе ретінде де қолданылды. Minimal BASIC-ке TI мәтін, графика және таспаға немесе басқа файл жүйесіне сақтау сияқты негізгі файл операцияларына арналған командаларды қосты. TI 99 платформасының ерекшеліктеріне байланысты, TI BASIC өте төмен өнімділікке ие болды – әдеттегі компьютерлерге қарағанда шамамен екі есе баяу, бірақ одан да маңыздысы, жоғары сандық дәлдікке қол жеткізді.
TI 99/4A programming language
TI BASIC is an ANSI compliant interpreter for the BASIC programming language built into the 1979 Texas Instruments TI 99/4 home computer and its improved 1981 version, the TI 99/4A. In contrast to most BASICs found on contemporary microcomputers, TI BASIC does not trace its history to Microsoft BASIC, but was instead a TI developed interpreter following the emerging Minimal BASIC standard being created by ANSI and ECMA. This was, in turn, based on the original Dartmouth BASIC from the 1960s. There are a number of differences, sometimes subtle, between TI BASIC and the more common MS varieties. Minimal BASIC lacks a number of features that are commonly found on contemporary BASICs, and Texas Instruments later introduced the TI Extended BASIC cartridge that enhanced the functionality accessible to BASIC users. This included a wide variety of features found in other BASICs, as well as new system functions for sprite handling, sound, and other features of the platform. As was common on home computers, TI BASIC was used not only for programming but also as a thin operating system. On top of Minimal BASIC, TI added commands for text, graphics, and basic file operations like recording to tape or any other file system. Due to the specifics of the TI 99 platform, TI BASIC was most notable for its extremely slow performance, roughly half that of common machines, but conversely sported high numerical accuracy.
Өнер көрсету
TI 99, TMS9900 микропроцессорына негізделген, ол 16 биттік архитектура, бастапқыда TI 990 миникомпьютерлерінің төменгі деңгейдегі модельдеріндегі бір чиптік орталық процессорды (CPU) қамтамасыз ету үшін құрылған. TMS9900 микрокомпьютерде де қолданылуға болатын, бірақ сол кезде толыққанды компьютер құру үшін қажетті қолдау микросхемаларының көп бөлігі 8 биттік болатын, және TI-дің мұндай микросхемалардың кең каталогы осыны қамтыды. Миникомпьютерлерде 16 биттік қолдау жүйелері көптеген жеке микросхемалардан құралатын, бірақ бұл төмен құнмен өнімге жарамсыз болды. Сондықтан TI машинаны негізінен 8 биттік ету және түрлі қолдау микросхемаларын осы 8 биттік шинаға қосу шешімін қабылдады, TMS9900 шинаны екі рет оқып 16 биттік мәнді шығарды. TMS9900-нің командалар жиынтығы архитектурасы 16 биттік операциялық кодтарға негізделген, яғни бағдарламалар әдетте 8 биттік машинадағыдан екі есе үлкен болар еді. Есте сақтау құрылғыларының қымбат болған дәуірінде бұл елеулі шығынға әкелді. Мұны шешу үшін TI өзінің тілімен немесе «Графикалық бағдарламалау тілі» (GPL) деп аталатын аралық өрнекпен 8 биттік виртуалды машина жасады, бұл бағдарламаларды ықшам форматта жазуға мүмкіндік берді. Бұл тәсілдің кемшілігі – әрбір GPL командасы TMS9900 командаларының бір немесе бірнешесіне дереу түрлендірілуі керек болды. GPL кодының өзі машинаның 8 биттік бөлігінде сақталып, оның өнімділігін одан әрі төмендетті. Осы себептердің салдарынан машина теориялық мүмкіндіктерінен әлдеқайда баяу жұмыс істеді. Бұл әсіресе BASIC-те байқалатын. Пайдаланушы бағдарламасының әрбір командасы 8 биттік жадтан оқылып, GPL-де жазылған код арқылы түсіндіріліп, содан кейін қайтадан 8 биттік шина арқылы жіберілуі керек еді. Нәтижесінде TI BASIC нашар өнімділік көрсетті; сол дәуірдің ортақ сынақтарында TI 99 әдетте Commodore PET немесе Apple II сияқты 8 биттік машиналардан екі есе баяу жұмыс істеді. Мысалы, Byte Sieve-ді BASIC-те орындау TI BASIC-те 3960 секундқа созылды, ал Apple II-дегі Applesoft BASIC-те, көріне бергенде, өте баяу машинада 2806 секундқа созылды, бұл TI-ден шамамен 30% жылдам.
Өңдеу және орындау
Сол кездегі көптеген BASIC тілдерінен айырмашылығы, TI BASIC толық экрандық редакторды ұсынбады. Оның орнына, пайдаланушыға бір жолды қосуға немесе өңдеуге мүмкіндік беретін жолдық редактор берілді. Әрбір операторды реттеу үшін нақты жол нөмірлері қолданылды. Тікелей режимдегі ағымдағы жаңа жолды көрсету үшін бірден іздеу сұрауы пайдаланылды, бұл көптеген жағдайлардағы жол нөмірлерінен өзгеше болды. Жол нөмірлері 1-ден 32767-ге дейін болды, және осы диапазоннан тыс жол енгізілсе, "BAD LINE NUMBER" қатесі пайда болатын. Жолды енгізуге көмектесетін команда тек тікелей режимде қолжетімді болды, ол жол нөмірін өсіретін болса, ал ескі бағдарламаны қайта нөмірлеуге мүмкіндік берді. TI BASIC сонымен қатар бірнеше қателіктерді жою командаларын қамтыды. белгілі бір жолдарда орындалуды тоқтату сияқты жұмыс істеді. , командасынан айырмашылығы, тікелей режимге шығу командасы пайда болған жолда емес, көрсетілген жолдарда орын алды. Мысалы, бағдарлама 130-шы жолға өткен сайын тікелей режимге шығаратын. Бұл, мысалы, кодтың ортасына емес, бағдарламаның басына бір команданы қою арқылы орындалуды басқару үшін қолданылуы мүмкін. командасы бұрынғы тоқтау нүктелерін өшірді. Сонымен қатар, командасы қазіргі орындалып жатқан жолдың нөмірін бұрышты жақшалармен шығарды: және т.б., ал командасы оны өшірді.
Айғақтар
TI BASIC-тің ANSI-ге үйлесімді нұсқалары, олардың көпшілігі MS-дегі әріптестері сияқты жұмыс істейді, бірақ екі қосымша мүмкіндігі бар: кездейсоқ сан генераторын белгілі бір "тұқым" мәнімен қайта іске қосады, ал массивтердегі алғашқы элементті 0 немесе 1 деп белгілейді, ал MS әрқашан нөлден басталады. Бұл стандартты жиынтыққа CALL, CLOSE, DISPLAY және OPEN командалары қосылды. Минималды BASIC стандартына сәйкес, операторлар тек тармақталуға ғана қолданылады, олар кез келген операторды орындай алмайды, бұл сол дәуірдегі көптеген BASIC тілдерінде кең таралған еді. Мысалы, TI BASIC-те: сияқты код жарамсыз. Оның орнына, мұны бірнеше жолдар арқылы орындау керек: Егер түрлендіру логикалық салыстырудың мағынасын өзгертуге қатысты сақ болмаса, қате пайда болуы мүмкін. Дегенмен, TI BASIC мынадай шартты операторды қолдады: Операторда екі нүктелер әртүрлі жолдардағы элементтерді ажырату үшін қолданылды, бұл әдеттегі үтір немесе нүктелі үтірден өзгеше. Бұл оны операторды ажыратушы ретінде пайдалануға мүмкіндік бермеді, себебі TI BASIC-те мұндай ұғым болған жоқ. Яғни, бір жолда тек бір ғана оператор болуы мүмкін. BASIC интерпретаторларының жұмыс істеу принципіне байланысты, циклдарды жеделдету үшін кодты бір жолға біріктіруге болады, бұл бағдарламадағы жол нөмірін іздеу қажеттілігін жояды. Бұл көріне бермейтін кемшілік кодтың өте баяу жұмыс істеуіне әкелуі мүмкін, ал осы мүмкіндікті қосу Extended BASIC-тің құрамына кірді. Минималды BASIC жүйесінің кеңейтімдері көбінесе BASIC-те тікелей көрсетілмейді, бірақ оларға команда және GPL негізіндегі атаулы кіші программалар арқылы қол жеткізіледі. Мысалы, экранды тазалайды, ал қазіргі уақытта басылған перненің коды қайтарылады. Тілде PEEK және POKE операторлары болғандықтан, BASIC ішінде жаңа CALLable кодты жасаудың ресми жолы болған жоқ. Мұны жасау үшін TI Editor/Assembler, кішкентай ассемблерді қамтитын TI Mini Memory картриджін немесе Extended BASIC қолдану қажет.
is not valid in TI BASIC. Instead, this would have to be performed using multiple lines:
This can easily lead to off by one errors if the conversion is not careful about changing the sense of the boolean comparison. TI BASIC did, however, support the clause:
The statement used colons to separate items on different lines, in addition to the more common comma or semicolon. This precluded its use as a statement separator, a concept that TI BASIC did not have. This means a line can have only a single statement. Due to the way BASIC interpreters work, based loops can be sped up significantly by combining code onto a single line, which avoids having to search through the program for line numbers. This seemingly minor missing feature may result in much slower code, and adding this feature was part of Extended BASIC. Extensions to the Minimal BASIC system were often not represented directly in BASIC, but were instead accessed via the command and a series of named GPL based subroutines. For instance, clears the screen, and returns the keycode of the currently pressed key on the keyboard. The language lacked PEEK and POKE so there was no official way to create new CALLable code within BASIC, to do this one would require the TI Editor/Assembler, the TI Mini Memory cartridge which included a small assembler, or by using Extended BASIC.
Кеңейтілген BASIC
TI BASIC жүйедегі ішкі ROM-да орналасты. 1981 жылы TI ROM картриджінің плагинін шығарды, ол қолданыстағы кодқа қосымша функцияларды қосып, тілді бірнеше жағынан жақсартты. Extended BASIC деп аталатын бұл платформаға көптен күткен жаңалық болды. Өзгерістердің бірі – бір жолда бірнеше оператор болу мүмкіндігінің қосылуы. Бірнеше операторды пайдалану өнімділікті арттыруы мүмкін; бір жолда орындалған циклдар әлдеқайда жылдам жұмыс істейді. Сонымен қатар, операторлар бірнеше жолға созылуы мүмкін. Негізгі диалект бұрыннан бері екі нүктені жол таңбасы ретінде пайдаланғандықтан, Extended BASIC осы мақсатта қос нүктені пайдаланды. Қызығы, TI BASIC-те де екі нүктенің тіркесімі мүмкін болды, мысалы, , ол "A" шығарып, содан кейін бос жол және "B" шығаратын еді, сондықтан Extended BASIC-те мұндай операторларға бос орын қосу қажет болды. Тағы бір қабылдаған жаңалық – операторлар енді тек ғана емес, кез келген операторды орындай алатын болды. Extended BASIC-те қарапайым операторды былай жазуға болады. Бұл сөйлемде де жұмыс істейді, басқа операторларға мүмкіндік береді. Extended BASIC сонымен қатар жаңа операторлардың шағын жиынтығын, соның ішінде , , , , , , , және операторларын қамтыды. Соңғы үш оператор құрылымдық бағдарламалау үшін қолданылады, атаулы кіші бағдарламаларды жасауға мүмкіндік береді. Extended BASIC сонымен қатар көптеген жаңа функцияларды және әсіресе CALLable процедураларды қамтыды. Соңғылардың ішінде автоматты түрде жалғасатын қозғалысты жасауға арналған спрайт командаларының кітапханасы бар еді.
Another overdue addition was that statements could now perform arbitrary statements, rather than only a In Extended BASIC one could write a simple statement like This also worked in the clause, allowing statements like
Other additions include a small selection of new statements, including , , , , , , , and The last three statements are used for structured programming, allowing the creation of named subroutines. Extended BASIC also included a number of new functions and especially CALLable routines. Among the latter was a library of sprite commands, including ones that created motion that continued automatically.