Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!


Vilnius Basic

Iš Pipedijos - durniausios enciklopedijos.
Jump to navigation Jump to search

Vilnius Basic, dar vadintas kaip BASIC-86 arba Vilniaus Beisikas - toksai lietuviškas Basic variantas, sukurtas sovietmečiu, kuris išties tai buvo kažkodėl tai vien kvadratinėmis raidėmis, nes tiktai taip viską leisdavo su kompiuteriais daryti, nes kažkodėl sovietiniai kompiuteriai lietuvių kalbos ir netgi šiaip lotyniškų raidžių nepalaikė.

Tasai lietuviškas Vilniaus Beisikas buvo iš esmės MSX Basic klonas, nors ir su modifikacijomis. Sukurtas buvo 1985 metais VU, skirtas PDP-11 tipo architektūroms, tokioms kaip BK-0010, DVK ir panašiai. Įvairios Vilnius Basic versijos leistos iki 1988 metų ir buvo visuose BK kompiuteriuose, kurie tik buvo pagaminti SSRS - viso gerokai virš 100 tūkstančių mašinų, kas sudarė maždaug 2/3 visų kompiuterių, kiek išvis SSRS pagamino per visą savo istoriją.

Kaip ir visi kiti beisikai, taip ir šitas Vilnius Basic kažkaip panašus kaip kokia dibilų kalba, tiktai daug mažiau suprantamas.


Visokios neįdomios techninės detalės apie Vilniaus Basic

Vilnius Basic buvo sukurtas Vilniaus Universiteto skaičiavimo centre, 1985 metais, aiškiai klonuojant MSX Basic. Skirtas visokiems 16 bitų kompiuteriams, turintiems PDP-11 architektūrą, taip kad kaip kad DVK, BK-0010, BK-0011, UKNC, Nemiga ir panašūs.

Su MSX Basic sutampa absoliuti dauguma operatorių ir funkcijų, o taip pat pranešimų kodai, tačiau Vilnius Basic yra kiek bukesnis: jame nesigauna parašyti kelių operatorių vienoje eilutėje, nėra PLAY operatoriaus ir dar ten kažko. O be to, kaip ir įprasta visiems sovietiniams kompiuteriams ir programoms, dolerio ženklas yra uždraustas ir pašalintas, taip kad vietoje imperialistinio $ yra neaišku ką vaizduojantis simbolis ¤. Taip vat visokie kintamieji ir string tipo funkcijos rašomos su tuo simboliu.

Paleidžiant Basic programą (su komanda RUN), programos tekstas būdavo kompiliuojamas į pseudokodą. Pseudokodas buvo kraštutinai primityvus - tiesiog Basic funkcijų adresai, kuriais interpretatorius darydavo tų funkcijų iškvietimus, perduodamas už tų pat adresų esančius parametrus. Gaudavosi kaip ir greičiau, nei šiaip interpretatoriumi viską daryti, bet visvien kažkaip nelabai aiškiai. Gal vienintelis privalumas tebuvo toksai, kad šitaip perdirbta programa užimdavo mažiau vietos, nes tuose kompiuteriuose atminties tebūdavo keli kilobaitai.

Pats Vilnius Basic užimdinėjo atmintyje cielus 24 kilobaitus ir būdavo įrašomas hardvariškai į ROM, esantį pačiame kompe, taip kad labai tenai vietą visi taupė, tai vietoje pranešimų apie klaidas būdavo parašomi kodai tiesiog. Ir aišku, viskas kvadratinėmis raidėmis, pvz., "Ошибка 2 в строке 54".

Kita vertus, be tos į ROM įrašomos versijos, buvo dar ir mokykliniam kompiuterių tinklui skirtas variantas, kuris užimdavo 28 kilobaitus ir diskeliams skirta versija, kuri užimdavo 30 kilobaitų. Tai šitose versijose visgi pranešimai apie klaidas būdavo normalūs.


Hello World ant Vilnius Basic

Visas Hello World atrodo panašiai, kaip ir su kitomis Basic versijomis:

10 CLS
20 PRINT "Вильнюс Бейсик"
30 END


Šiaip kažkokia Basic sintaksė

Vilnius Basic reikalavo eilučių numeracijos, vienai eilutei leidžiamas būdavo tik vienas operatorius. Visi operatoriai suvedami komandinėje eilutėje. Įvedimo operatorių sąrašas pridedamas:

  • RUN - programos vykdymas
  • CONT - programos pratęsimas po sustabdymo
  • CSAVE - išsaugoti programą magnetofono kasetėje
  • CLOAD - įkelti programą iš magnetofono kasetės
  • FIND - rasti programą kasetėje
  • LIST - programos teksto išvedimas į ekraną
  • . - programos eilutės iškvietimas redagavimui
  • DELETE - programos eilutės pašalinimas
  • NEW - pašalinama visa programa ir pradedama nauja
  • RENUM - perskaičiuojamos programos eilutės
  • AUTO - programos teksto įvedimas su automatine eilučių numeracija
  • BSAVE - atminties bloko įrašymas į kasetę
  • BLOAD - atminties bloko pakrovimas iš kasetės
  • MONIT arba SYSTEM - išėjimas iš Basic į operacinę sistemą

Kalbos operatoriai (kableliais atskirti skirtingi tinkami to pat operatoriaus variantai):

  • BEEP, BEE
  • CALL, CAL
  • CIRCLE, CIR
  • CLEAR, CLE
  • CLOSE, CLO
  • CLS
  • COLOR, COL
  • DATA, DAT
  • DEF
  • DEF FN
  • DEF USR
  • DIM
  • DRAW, DRA
  • END
  • FOR
  • GOSUB, GOS
  • GOTO, GOT
  • IF
  • INPUT, INP
  • KEY
  • LET
  • LINE, LIN
  • LOCATE, LOC
  • LPRINT, LPR
  • ON
  • OPEN, OPE
  • OUT
  • NEXT, NEX
  • PAINT, PAI
  • POKE, POK, PO
  • PRESET, PRE
  • PRINT, ?
  • PSET, PSE
  • READ, REA
  • REM
  • RESTORE, RES
  • RETURN, RET
  • SCREEN, SCR
  • STOP, STO
  • TROFF
  • TRON

Kad būtų greičiau, tai buvo dar pagreitintas šiek tiek įvedimas visokių dalykų, pvz., įvedant operatorius, nebūtina įvesti visus, o pakanka įvesti pirmas tris raides, o jei operatorius skiriasi labai nuo kitų - tai ir dvi raides, o PRINT - išvis pakeisti į klaustuką. Taip pat numatyta konstrukcija "IF x THEN y ELSE z", taip pat ELSE IF. Maksimalus vienos teksto eilutės ilgis - 254 baitai.

Taip pat realizuotos funkcijos:

  • SQR, SIN, COS, TAN, ATN, PI, EXP, LOG
  • ABS, FIX, INT, SGN, RND, FRE
  • CINT, CSNG, CDBL
  • PEEK, INP
  • BIN¤, OCT¤, HEX¤, CHR¤, ASC, LEN, STRING¤, INKEY¤
  • STR¤, VAL, MID¤
  • CSRLIN, POS, LPOS, EOF
  • POINT

Taip pat buvo numatytas išorinių (mašininių) funkcijų iškvietimas, perskaitant per BLOAD arba tiesiogiai formuojant per POKE operatorių.

Dar reikia pasakyti, kad tenai buvo bugovas random generatorius, tai RND duodavo išties pseudorandomą, nes naudojo legendinį RANDU algoritmą, kuris labai greitas ir paprastas, bet su atsitiktiniais skaičiais išties nieko bendro neturintis, taip kad visiems tekdavo patiems rašytis kokį nors nuosavą randominį generatorių vietoje to, kad naudot būtų galima kokį nors standartinį.


Dar žr.

Čia visokių jums priešistorinių atliekų suradom iš internetų, tai jei esate hakeriai, tai gal ką nors suprasite, tik kad viskas rusiškai, tai gal ir nesuprasite: