OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů

Registrace na OCP IV ZDE!

Právě je 23 zář 2018, 02:22

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 34 ]  Přejít na stránku Předchozí  1, 2, 3
Autor Zpráva
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 04 bře 2015, 22:30 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13 kvě 2013, 09:52
Příspěvky: 1770
Bydliště: Mliecna draha
Has thanked: 20 times
Been thanked: 124 times
faron: zdrojak mam stiahnuty davno. Len sa mi neche.

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 14 bře 2015, 09:27 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 23 bře 2014, 19:13
Příspěvky: 1554
Has thanked: 61 times
Been thanked: 266 times
Jo, mě se také nechtělo, ale dneska jsem si to dal na probuzení :lol:

Tak se dobře bav, je to soubor scripts/slovnik.js:
Kód:
/*
 * [Česky]
 * Projekt: Robot Karel
 * Copyright: Viz KOPIROVANI v kořenovém adresáři projektu
 *
 * [English]
 * Project: Karel, the Robot
 * Copyright: See COPYING in the top level directory
 */

// JavaScript - slovník

// ===========================================================================
// =~ Globální proměnné ~=====================================================

// Příkazy
//
// Každý příkaz má následující vlastnosti:
//
// jmeno             jméno příkazu
// systemovy         true, pokud se jedná o systémový příkaz
// zobrazit          true, pokud má být příkaz zobrazen
// ignoruj           true, pokud příkaz neprovádí žádnou činnost
// hlavicka          true, pokud se příkaz může vyskytovat v hlavičce (před
//                   názvem příkazu)
// telo              pole jednotlivých řádek. Jedna řádka příkazu je pole dvou
//                   hodnot - příkazu a parametrů
// syntaxe           true, pokud příkaz vyžaduje kontrolu syntaxe (všechny
//                   příkazy, které neprovádí žádnou činnost)
// tooltip           text nápovědy (není povinné)
// spust             vykonání příkazu, provádí i kontrolu syntaxe (když je
//                   atribut syntaxe nastaven na true)
// formatovac        formátování příkazu. Pokud chybí, použije se obecný
//                   formátovač
// rozpoznavac       rozpoznání příkazu. Pokud chybí, použije se obecný
//                   rozpoznávač
// ukladac           ukládání příkazu. Pokud chybí, použije se obecní funkce
//                   ukládání
// kompatibilita     verze, které příkaz znají
// verze_ulozeni     verze, ve kterých se příkaz ukládá. Pokud se v dané verzi
//                   neukládá, je zobrazeno varování. Pokud se má uložit, ale
//                   příkaz není s verzí kompatibilní, je zobrazena chyba. Pokud
//                   se má uložit a je s verzí kompatibilní, pak se ukládá
// prikaz            true, pokud se jedná o příkaz. Pouze pro systémové příkazy
//                   a to jen pro zobrazení v chybové hlášce
//
// Navíc existuje pro každý příkaz prikazy.prikaz["PŘÍKAZ"]
//
prikazy.seznam = new Array(
        { jmeno: "prázdná řádka", systemovy: true, zobrazit: false, ignoruj: true,
                hlavicka: true,
                rozpoznavac: prikazy.rozpoznavac.prazdna_radka,
                formatovac: prikazy.formatovac.prazdna_radka,
                kompatibilita: prikazy.min_VERZE_20,
                verze_ulozeni: prikazy.min_VERZE_20
        },
        { jmeno: "komentář", systemovy: true, zobrazit: false, ignoruj: true,
                hlavicka: true,
                rozpoznavac: prikazy.rozpoznavac.komentar,
                formatovac: prikazy.formatovac.komentar,
                ukladac: data.ukladani.uloz_komentar,
                nacitac: data.nacitani.nacti_komentar,
                kompatibilita: prikazy.min_VERZE_20,
                verze_ulozeni: prikazy.min_VERZE_20
        },
        { jmeno: "název příkazu", systemovy: true, zobrazit: false, ignoruj: true,
                hlavicka: true,
                rozpoznavac: prikazy.rozpoznavac.nazev,
                formatovac: prikazy.formatovac.nazev,
                ukladac: data.ukladani.uloz_nazev,
                nacitac: data.nacitani.nacti_nazev,
                kompatibilita: prikazy.min_VERZE_10,
                verze_ulozeni: prikazy.min_VERZE_20
        },
        { jmeno: "prázdná řádka", systemovy: true, zobrazit: false, ignoruj: true,
                rozpoznavac: prikazy.rozpoznavac.prazdna_radka,
                formatovac: prikazy.formatovac.prazdna_radka,
                kompatibilita: prikazy.min_VERZE_20,
                verze_ulozeni: prikazy.min_VERZE_20
        },
        { jmeno: "komentář", systemovy: true, zobrazit: false, ignoruj: true,
                rozpoznavac: prikazy.rozpoznavac.komentar,
                formatovac: prikazy.formatovac.komentar,
                ukladac: data.ukladani.uloz_komentar,
                nacitac: data.nacitani.nacti_komentar,
                kompatibilita: prikazy.min_VERZE_20,
                verze_ulozeni: prikazy.min_VERZE_20
        },
        { jmeno: "KONEC, JINAK", systemovy: true, zobrazit: false,
                spust: prikazy.jadro.KONEC_JINAK,
                syntaxe: true,
                formatovac: prikazy.formatovac.konec,
                kompatibilita: prikazy.min_VERZE_10,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true
        },
        { jmeno: "KONEC", systemovy: true, zobrazit: false,
                spust: prikazy.jadro.KONEC,
                syntaxe: true,
                formatovac: prikazy.formatovac.konec,
                kompatibilita: prikazy.min_VERZE_10,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true
        },
        { jmeno: "KDYZ", systemovy: true, zobrazit: false,
                spust: prikazy.jadro.KDYZ,
                syntaxe: true,
                rozpoznavac: prikazy.rozpoznavac.podminka,
                formatovac: prikazy.formatovac.podminka,
                nacitac: data.nacitani.nacti_podminku,
                kompatibilita: prikazy.min_VERZE_10,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true
        },
        { jmeno: "DOKUD", systemovy: true, zobrazit: false,
                spust: prikazy.jadro.DOKUD,
                syntaxe: true,
                rozpoznavac: prikazy.rozpoznavac.podminka,
                formatovac: prikazy.formatovac.podminka,
                nacitac: data.nacitani.nacti_podminku,
                kompatibilita: prikazy.min_VERZE_10,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true
        },
        { jmeno: "OPAKUJ", systemovy: true, zobrazit: false,
                spust: prikazy.jadro.OPAKUJ,
                syntaxe: true,
                rozpoznavac: prikazy.rozpoznavac.cyklus,
                formatovac: prikazy.formatovac.cyklus,
                ukladac: data.ukladani.uloz_OPAKUJ,
                nacitac: data.nacitani.nacti_OPAKUJ,
                kompatibilita: prikazy.min_VERZE_10,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true
        },
        { jmeno: "AZ", systemovy: true, zobrazit: false,
                spust: prikazy.jadro.AZ,
                syntaxe: true,
                rozpoznavac: prikazy.rozpoznavac.podminka,
                formatovac: prikazy.formatovac.podminka,
                nacitac: data.nacitani.nacti_podminku,
                kompatibilita: prikazy.min_VERZE_11,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true
        },
        { jmeno: "RYCHLE", systemovy: true, zobrazit: false,
                spust: prikazy.jadro.RYCHLE,
                syntaxe: true,
                formatovac: prikazy.formatovac.odsazeni,
                kompatibilita: prikazy.min_VERZE_12,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true
        },
        { jmeno: "POMALU", systemovy: true, zobrazit: false,
                spust: prikazy.jadro.POMALU,
                syntaxe: true,
                formatovac: prikazy.formatovac.predsazeni,
                kompatibilita: prikazy.min_VERZE_12,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true
        },
        { jmeno: "STOP", systemovy: true, zobrazit: false,
                spust: prikazy.jadro.STOP,
                kompatibilita: prikazy.min_VERZE_10,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true
        },
        { jmeno: "KROK", systemovy: true, zobrazit: true,
                spust: prikazy.jadro.KROK,
                kompatibilita: prikazy.min_VERZE_10,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true,
                tooltip: "Posune Karla o jedno políčko dopředu"
        },
        { jmeno: "VLEVO-VBOK", systemovy: true, zobrazit: true,
                spust: prikazy.jadro.VLEVO_VBOK,
                kompatibilita: prikazy.min_VERZE_10,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true,
                tooltip: "Otočí Karla jednou vlevo"
        },
        { jmeno: "POLOZ", systemovy: true, zobrazit: true,
                spust: prikazy.jadro.POLOZ,
                kompatibilita: prikazy.min_VERZE_10,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true,
                tooltip: "Karel položí jednu značku, pokud je na políčku místo"
        },
        { jmeno: "ZVEDNI", systemovy: true, zobrazit: true,
                spust: prikazy.jadro.ZVEDNI,
                kompatibilita: prikazy.min_VERZE_10,
                verze_ulozeni: prikazy.min_VERZE_10,
                prikaz: true,
                tooltip: "Karel zvedne jednu značku, pokud na políčku nějaká je"
        }
);

// Příkazy přístupné podle jména
prikazy.prikaz = new Object();

// Textové řetězce spojené s příkazy
prikazy.JE = "JE";
prikazy.NENI = "NENI";
prikazy.KRAT = "KRAT";
prikazy.KRAT_text = escape(prikazy.KRAT);
prikazy._KRAT = "-" + prikazy.KRAT;
prikazy.podminky = [
        { jmeno: "ZED", test: mesto.JE_ZED },
        { jmeno: "ZNACKA", test: mesto.JE_ZNACKA },
        { jmeno: "DOMOV", test: mesto.JE_DOMOV },
        { jmeno: "VYCHOD", test: mesto.JE_VYCHOD },
        { jmeno: "SEVER", test: mesto.JE_SEVER },
        { jmeno: "ZAPAD", test: mesto.JE_ZAPAD },
        { jmeno: "JIH", test: mesto.JE_JIH }
];


// ===========================================================================
// =~ Základní nastavení ~====================================================

for ( var i = 0; i < prikazy.seznam.length; i++ ) {
        var prikaz = prikazy.seznam[i];
        if (! (prikaz.jmeno in prikazy.prikaz)) {
                prikazy.prikaz[prikaz.jmeno] = prikaz;
        }
}

// ===========================================================================
// =~ Příkazové konstanty ~===================================================

prikazy.HLAVICKA_KOMENTAR = prikazy.prikaz["komentář"];
prikazy.HLAVICKA_PRAZDNA_RADKA = prikazy.prikaz["prázdná řádka"];
prikazy.NAZEV = prikazy.prikaz["název příkazu"];
prikazy.KONEC_JINAK = prikazy.prikaz["KONEC, JINAK"];
prikazy.KONEC = prikazy.prikaz["KONEC"];
prikazy.KDYZ = prikazy.prikaz["KDYZ"];
prikazy.DOKUD = prikazy.prikaz["DOKUD"];
prikazy.OPAKUJ = prikazy.prikaz["OPAKUJ"];
prikazy.AZ = prikazy.prikaz["AZ"];
prikazy.RYCHLE = prikazy.prikaz["RYCHLE"];
prikazy.POMALU = prikazy.prikaz["POMALU"];
prikazy.STOP = prikazy.prikaz["STOP"];
prikazy.KROK = prikazy.prikaz["KROK"];
prikazy.VLEVO_VBOK = prikazy.prikaz["VLEVO_VBOK"];
prikazy.POLOZ = prikazy.prikaz["POLOZ"];
prikazy.ZVEDNI = prikazy.prikaz["ZVEDNI"];

_________________
"When I designed Voyager, I did it on an Apple II with 48K of memory, and I wrote my own Basic program." - Burt Rutan
Obrázek Obrázek


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 27 říj 2015, 21:00 
Offline
Kecka

Registrován: 18 říj 2013, 14:30
Příspěvky: 45
Bydliště: Oakland, Slovakia
Has thanked: 2 times
Been thanked: 2 times
Rosta_Kolmix píše:
Ale na základě jeho další touhy po poznání vyvstalo pár DALŠÍCH OTÁZEK PRO VÁS:
1) Jak se při ukládání programu na kazetu dělalo, aby se po nahrátí z kazety program rovnou spustil?
2) Za IF a THEN se dá napsat více podmíněných příkazů i na více řádků, nebo musí být vše za IFem jen odděleno dvojtečkami?
3) Jak se dělalo u PRINTu, aby se další zobrazovaný text psal ještě na tentýž řádek a ne na další?
4) Zrovnatak si pamatuju, že se dalo nějakým "lomítkem" zalamovat řádek přímo v textu pro vypsání za PRINTem
5) Jak se v INKEYSu testuje klávesa ENTER?

1)
Kód:
SAVE "nazov_suboru" LINE cislo_riadku

2) Za IF sa da zadat niekolko podmienok s pouzitim operatorov AND, OR. Za THEN mozno zadat viac prikazov oddelenych dvojbodkou ktore budu vykonane ak su splnene podmienky v IF:
Kód:
10 LET a=10: LET a$="desat"
20 IF a=10 AND a$="desat" THEN PRINT a,h$: STOP: REM ak su splnene obidve podmienky vypise obsah premennych a zastavi program

10 LET a$=INKEY$
20 IF a$="K" OR a$="k" THEN PRINT "bola stlacena klavesa K": STOP: REM ak je splnena aspon jedna podmienka vypise sa text a program sa zastavi
30 GO TO 10

3)
Kód:
PRINT "Tento";"Text";"Je";"Spojeny";FLASH 1;" a tento blika"

4)
Kód:
PRINT "Text od zaciatku riadku"'"Dalsi text na novom riadku": REM apostrof (SymbShift+7) medzi uvodzovkami

Bonus: :)
Kód:
PRINT "Stlpec Vlavo","Stlpec Vpravo",1,2,1,2

5)
Kód:
IF INKEY$=CHR$ 13 THEN prikaz
IF CODE INKEY$=13 THEN prikaz

_________________
//// Didaktik Gama //// ZX Diskface Plus A //// divIDE //// D40 & D80 //// ZX Spectrum 128
WANTED //// BetaDisk Interface ////WANTED //// DPRUN for ZX Diskface Plus A //// WANTED


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 28 říj 2015, 10:40 
Offline
Pan Štábní

Registrován: 22 kvě 2013, 20:14
Příspěvky: 1955
Bydliště: Bratislava
Has thanked: 215 times
Been thanked: 354 times
iwosh píše:
Rosta_Kolmix píše:
3) Jak se dělalo u PRINTu, aby se další zobrazovaný text psal ještě na tentýž řádek a ne na další?
3)
Kód:
PRINT "Tento";"Text";"Je";"Spojeny";FLASH 1;" a tento blika"
Predpokladam ze Rosta myslel viac samostatnych prikazov PRINT:
Kód:
10 PRINT "Hello ";
20 PRINT "world!"

faraon píše:
... mohl bys mu ještě ukázat nejjednodušší spectráckou kalkulačku, která umí počítat i velmi složité výrazy s funkcemi a závorkami, dokonce včetně proměnných zadaných předem (ale s nimi se musí spustit pomocí GOTO 10, protože RUN je vymaže):
Kód:
10 INPUT t$
20 PRINT VAL t$
Tip na este jednoduchsiu kalkulacku:
Kód:
INPUT a;#2;(a)
:lol:


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 34 ]  Přejít na stránku Předchozí  1, 2, 3

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz