Кіріспе

BASIC бағдарламалау тілінің диалектісі – Vilnius BASIC, кейде BK BASIC деп те аталады, Elektronika BK 0010 01/BK 0011M және UKNC компьютерлерінде қолданылатын BASIC бағдарламалау тілінің бір түрі. Ол Литвадағы Вильнюс университетінде әзірленді, ол сол кезде КСРО құрамындағы республика болатын. Көптеген микрокомпьютерлік BASIC диалекттерінен өзгеше, Vilnius BASIC компиляцияланып, бірден орындалатын тіл болды – пайдаланушы RUN командасын енгізген кезде бастапқы код компиляцияланатын. Ол GW BASIC және MSX BASIC тілдерінің стилі мен көптеген мүмкіндіктеріне ұқсас болды, бірақ MSX-те кездесетін кейбір мультимедиа командаларынан мүресіз болды. Бір ерекшелігі – бір жолда бірнеше операторды жазуға рұқсат етілмеді, бұл әдетте қос нүкте арқылы іске асырылады. Сондай-ақ, бір уақытта бірнеше дерек файлын ашу мүмкіндігі де болмады. Толық экранды редактор тек UKNC нұсқасында ғана болды, ал 0010 сериялы машиналардың нұсқалары жол бойынша редакторды пайдаланды. Графикалық операторлар, параметрлер және PEEK/POKE адрестері сияқты машинаға тәуелді мүмкіндіктер де машиналар арасында әртүрлі болды.

Бағдарламаны өңдеу

Көптеген сол кездегі BASIC диалекттерінен өзгеше, Vilnius BASIC компиляциялап, бірден іске қосатын жүйе болды, интерпретатор емес. Пайдаланушы код енгізгенде, компилятор кодты оқып, оны іске қосатын тізбектелген кодты құрады. Дегенмен, бұл егжей-тегжейлі пайдаланушыға көрінбеді, себебі жүйе әлі де тікелей (бірден орындалатын) режимде жол нөмірінсіз немесе жанама режимде нөмірмен код енгізуге мүмкіндік берді, онда жаңа жол бағдарламаға қосылады немесе егер сол нөмірлі жол болса, оны алмастырады. 1970-ші жылдардың соңында көптеген микрокомпьютерлер толық экранды редакторды ұсынды, онда пайдаланушы курсор пернелерін бағдарламада жылжытуға және кез келген көрінетін код жолына өзгерістер енгізуге болатын. Electronica жүйелері PDP 11-ді эмуляциялады, бұл машиналар курсормен адрестелетін компьютерлік терминалдар кеңінен қолжетімді болғанға дейін жасалғандықтан, ескі жол редакторлау стилін сақтап қалды. Бұл жүйелерде пайдаланушыға бір жол кодты енгізуге немесе бұрын енгізілген жолды шақырып алып, сол жерде өңдеуге мүмкіндік беретін хабар көрсетіледі.

Бұйрықтар мен нұсқаулар

Вильнюс қолдау көрсететін кілт сөздер тізімін екі топқа бөлуге болады: тікелей режимде ғана қолданылатындар және тікелей немесе жанама режимде қолданылатындар. Алғашқылары, командалар деп аталатындар, кассетаға бағдарламаларды жүктеу және сақтау сияқты әдеттегі операцияларды қамтиды. Автоматты жол нөмірін енгізуді қосу, ағымдағы бағдарламадағы жолдарды қайта нөмірлеу, сондай-ақ LIST командасындағыдай "to" форматын пайдаланып жолдардың белгілі бір диапазонды өшіру мүмкіндігі болды. Мысалы, бағдарламаның басынан бастап 200-ші жолға дейін, оның ішінде 200-ші жолды да өшіруге болар еді. Вильнюстің негізгі командалары сол дәуірдегі басқа BASIC тілдеріне ұқсас болды және көптеген қарапайым операторларды қолдады. Көптеген BASIC диалекттерінен айырмашылығы, Вильнюс бір жолда бір оператордан артық қолдануға рұқсат бермейтін.

Сандық айнымалылар, операторлар және функциялар

Көптеген диалекттердегідей, айнымалы атаулары әріппен басталуы керек еді және одан кейін әріптер немесе сандар келе берсе болады. Айнымалы атауларының ұзындығы кез келген болуы мүмкін, бірақ тек алғашқы екі символ сақталып немесе салыстырылатын еді, яғни, егер жазылса, PR деп аталатын айнымалы жадта 5 мәнімен тіркеледі. Vilnius BASIC төрт негізгі дерек типін қамтыды: жолдар, бір және екі дәлдіктегі қозғалатын нүктелі сандар және бүтін сандар. Басқаша көрсетілмесе, айнымалылар екі есе дәлдікте сақталады, сегіз байтты алып, шамамен 17 таңбалық дәлдік береді. Салыстыру үшін, көптеген MS диалекттері қозғалатын нүкте үшін 5 байттық форматты қолданды. Егер айнымалы атауынан кейін жазылса, мән бір дәлдікте, төрт байтты пайдаланып, шамамен 7 таңбалық дәлдікпен сақталады. бүтін санды білдіреді, 32768 мен +32767 арасындағы мәндерді сақтау үшін бір 16 биттік сөз қолданылады. Егер дәлдігі жоғарырақ мән, дәлдігі төмен айнымалыға берілсе, артық бөлігі жойылады; мысалы, A% айнымалысы 1 мәнін алады. Бастапқы кодтағы сандық тұрақтыларды да сол белгілерді пайдаланып, нақты тип ретінде көрсетуге болады; тұрақтыны бүтін сан ретінде сақтайды, немесе бір дәлдіктегі 0.05 мәнін сақтайды, ал немесе сол мәнді әдепкі екі дәлдіктік форматта сақтайды. Vilnius сонымен қатар сандық тұрақтыларды екілік, сегіздік немесе ондық сандар тізбегі түрінде жазу мүмкіндігін береді, тізбектің басына B, O, H әріптерінің біреуін қою арқылы. Мысалы, ондық H9A8B тізбегін 39563 ондық мәніне айналдырып, A айнымалысына сақтайды. Сандық мәндерге арналған операторларға бүтін санды бөлу үшін және қалдық алу үшін операторлары кіреді. Осылайша, 2-ні қайтарады, ал 1-ді қайтарады. Сандық функцияларға стандартты функциясы да кіреді, ол INT сияқты, бірақ әрқашан нөлге қарай дөңгелектейді, сондықтан 1-ді қайтарады, 2-ні емес. PEEK және POKE-тан басқа, 16 биттік мәндерді қайтаратын жүйе де ұсынады, ол ұқсас, бірақ жеке биттерді қосу немесе тазалау үшін мәндерге биттік маска қолданады. экранды тазартады. Жүйелік функцияларға бос жадтың мөлшерін қайтаратын және берілген бағанға жылжытатын функциялары кіреді. TAB сияқты жұмыс істейді, бірақ курсорды берілген X,Y координатасына жылжытады.

Таспалар

Өзгергіштің соңына қосылған белгі оны мәтіндік тізбек екенін көрсетеді. Мәтіндік тізбектерге арналған функциялардың ішінде кең таралғандары бар. Функция берілген үлгі тізбегінің көшірмелерін жасайды, мысалы, бұл 17 "X" әрпінен тұратын тізбек тудырады. Тек бір манипуляция функциясы бар, ол MS жүйесіндегідей жұмыс істейді, бірақ қолданыстағы тізбектегі әріптерді алмастыру үшін де қолданылуы мүмкін, мысалы, "A$" тізбегінің бірінші әрпін "Y" әрпімен алмастырады. Пернетақтада басылған ағымдағы пернені қайтарады, егер перне басылған болса. Көптеген диалекттердегідей, тізбектерді біріктіру үшін қолданылды. Функциялар берілген мәнді мәтіндік тізбек түрінде қайтарады. Мысалы, функция "FF" нәтижесін береді, ал функция "0000000011111111" нәтижесін береді.

Графикалық толықтырулар

Electronica жүйелері компьютерлік графика қолдауын қамтыды, ал Vilnius BASIC графикамен жұмыс істеу үшін бірқатар операторларды қамтыды. Бұл жүйенің бір қызықты ерекшелігі – X,Y координаттары дөңгелек жақшамен жазылатын. Жүйе соңғы көрсетілген нүктені есте сақтайды, ал жаңа орындарды, мысалы, соңғы сурет салу командасы (100,100) болса, (105,105) пикселін 3 түске бояуға болады. Түс мәндері бес түрлі болды: 0-ден 3-ке дейін. Сонымен қатар, LIST командасына ұқсас, минус белгісімен бөлінген координаттар жұбын пайдаланып, сызықтарды салуға болады, мысалы. Ең қарапайым түрінде, ол ортасы үшін X,Y жұбын, радиусын және түсті қабылдады. Сондай-ақ, ол радиандарда берілген бастапқы және соңғы бұрыштардан доғаларды салуға және тік осьті эллипс жасау үшін "қысуға" мүмкіндік берді. (100,100) нүктесінен бастап 3 түспен толтырып, 1 түске жеткенше сыртқа қарай қозғалатын топан су эффектін жасады. Соңында, көп мақсатты команда болды. Бұл команда кодтың бір жолында күрделі пішін шығаратын сурет салу қадамдарының тізбесін кодтаған жол берді. Төрт негізгі бағыт U, D, L және R әріптерімен (жоғары, төмен, сол, оң) көрсетілді. 45 градустық бұрыштар сағат тілі бойынша E (оңға жоғары), F, G және H (солға жоғары) болып белгіленді. Мысалы, соңғы салынған нүктеден бастап қабырғалары 20 пикселдік квадратты шығарады. Бағыттардан басқа, M командасын парен қажет етпейтін "M100,120" сияқты нақты координаттарды көрсету үшін де пайдалануға болады. C түсті өзгертеді, B сызық салмай қозғалады, ал N координаттарды DRAW командасынан бұрынғы күйіне қайтарады. Экрандағы сол нүктенің түсінің нөмірін қайтаратын жалғыз графикалық функция бар.