abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    včera 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 9
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 2
    včera 04:11 | Nová verze

    Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 743 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    BASIC

    19.7.2018 23:46 | Přečteno: 4601× | Výběrový blog | poslední úprava: 20.7.2018 10:41

    Při pohledu na klávesnici ZX Spectra jsem si uvědomil, že smysl řady příkazů, které jsou na ni vytištěny, mi už není zřejmý. Proto jsem si znovu prošel slovenský manuál k počítači Didaktik Gama a prolistoval knihu Můj přítel Didaktik Gama, což byl jeden z mála zdrojů informací, který jsem měl k dispozici k prvnímu programovacímu jazyku, s nímž jsem přišel do styku - Sinlair BASICem. Zajímalo mě, jak se těch několik zaprášených střípků informací a dojmů, které mi z té doby před několika desetiletími zbyly, vypořádají s novým pohledem. Jaký tehdy byl dnes tolik opovrhovaný BASIC?

    Pokud jste byli nebo dokonce stále jste v BASICu jako doma, pravděpodobně vám následující řádky mnoho nového nepřinesou, i když snad i vy v nich najdete pár zajímavých detailů. Pokud jste se setkali s BASICem na jiné platformě, můžete si ji alespoň s gumákem porovnat.

    Z dnešního pohledu jsou na Sinclair BASICu nezvyklé především tři vlastnosti: číslování řádků, způsob zadávání kódu a větvení. Jednotlivé řádky programu se zadávaly v libovolném pořadí, ale na začátku každého z nich, pokud neměl být okamžitě vykonán, bylo nutné uvést jeho číslo v rozsahu 1 až 9999. Bez výjimky. Návěstí neexistovala, takže pokud na určitém řádku začínal nějaký podprogram a vy jste ho pak přesunuli jinam, bylo nutné opravit všechny skoky na něj. Částečně se to dalo obejít tím, že příkazy GO TO a GO SUB akceptovaly na místo čísla řádku libovolný výraz, takže jste si mohli nejdříve deklarovat proměnné fungující jako návěstí a pak je používat. Nejednalo se však o příliš využívanou možnost. Číslo řádku, kam směřoval skok, mohlo být i reálné číslo. V takovém případě se nejdříve zaokrouhlilo a pak se hledalo nejbližší vyšší číslo řádku. Ty nemusely tvořit souvislou sekvenci.

    S číslováním řádků úzce souvisel editor, který byl u ZX Spectra 48k jednořádkový. Pomocí šipek nahoru a dolů (bylo nutné použít kombinaci kláves) jste si ve výpisu programu přesunuli značku na vybraný řádek a ten pak klávesou “EDIT” (opět kombinace) zobrazili v editačním řádku na spodní straně obrazovky, kde jste se pohybovali pomocí šipek. Klávesou Enter se řádek uložil, přičemž bylo možné změnit jeho číslo a tak ho přesunout. Vložením čísla řádku bez obsahu se takový řádek smazal. Jeden řádek programu nebyl totožný s řádkem obrazovky, která byla měla šířku jen 32 znaků, takže docházelo k jeho případnému zalamování. Pozdější model ZX Spectrum 128k obsahoval vylepšený celoobrazovkový editor, který umožňoval i přečíslování řádků.

    Sinclair BASIC

    Klávesnice Spectra měla 40 kláves (standardní PC klávesnice jich má cca 104) a patří k tomu nejhoršímu, co tehdejší trh nabízel. Didaktik Gama na tom byl mnohem lépe, ale z principu se na ní nedalo psát moc rychle. Navíc mezerník byl umístěn v pravém spodním rohu klávesnice a byl jen o něco málo větší než standardní klávesy. To bylo částečně kompenzováno tím, že klíčová slova BASICu s přilehlými mezerami nebylo nutné psát celá, ale určité klávesy nebo jejich kombinace vše vypsaly přímo. Klávesy měly až šest různých významů a to, co dělaly, bylo částečně určeno kontextem. Na místo programu, kde byl očekáván příkaz, tak nebylo možné například zapsat pouhé znaky. Do určité míry to omezovalo možné syntaktické chyby. To, v jakém jste kontextu, se dalo poznat podle tvaru textového kurzoru. Klíčová slova byla reprezentována nezměnitelnými tokeny, takže je nebylo možné v editoru poškodit a kurzor je přeskakoval.

    Sinclair BASIC

    Příkazy se většinou psaly jeden na řádek, ale bylo možné jich na na něj umístit i více. V takovém případě se oddělovaly dvojtečkou. Pak se chovaly, jako by byly na samostatném leč nečíslovaném řádku s jednou výjimkou (pomineme-li komentář REM). Tím byl příkaz IF, který v případě splnění podmínky vykonal všechny příkazy na témže řádku, či je v opačném případě přeskočil. Alternativa ELSE neexistovala, bylo nutné použít příkaz GO TO, například následujícím způsobem:

    10 INPUT a
    20 IF a=1 THEN PRINT “is one”: GO TO 40
    30 PRINT “is not one”
    40 PRINT “continue”

    Pokud by nebylo možné použít více příkazů na řádek, bylo by nutné použít dokonce dva příkazy GO TO. Toto nadužívání i pro elementární konstrukce přineslo příkazu GO TO i BASICu samotnému velice špatnou pověst, které se dodnes nedokázali zbavit.

    O mnoho lépe na tom BASIC nebyl ani s podprogramy. Na ty se skákalo příkazem GO SUB, příčemž aktuální pozice v programu se uložila na zásobník volání. Návrat z podprogramu pak obstaral příkaz RETURN. To sice umožňovalo rekurzi omezenou pouze velikostí volné paměti, ale neexistovala žádná možnost, jak na zásobník uložit také nějaké argumenty. Bylo možné použít pouze globální proměnné.

    Krom podprogramů měl BASIC ještě funkce definované pomocí příkazu DEF FN a volané příkazem FN. Funkce mohly mít více argumentů, avšak jejich jméno smělo být tvořeno pouze jediným písmenem! Navíc se nerozlišovalo mezi velkými a malými písmeny, což celkové množství funkcí značně omezovalo. Funkce byly tvořeny pouze jediným výrazem, nemohly obsahovat příkazy. Mohly volat jiné funkce a dokonce i volat rekurzivně samy sebe, ale vzhledem k tomu, ani logické funkce nepoužívaly líné vyhodnocování, byl to pouze elegantní způsob, jak se dobrat k chybě Out of memory. Argumenty funkcí překrývaly lokální proměnné a stejně jako jména funkcí mohly být tvořeny pouze jediným písmenem.

    Sinclair BASIC znal tři druhy proměnných. Čísla, která byla vždy reálná, řetězce a pole. Z nich pouze číselné proměnné mohly být pojmenovány rozumným identifikátorem. Jména proměnných s řetězci byla omezena na jedno písmeno a vždy končila znakem dolaru (např. s$). Jména zabudovaných funkcí pracujících výhradně s řetězci taktéž končila znakem dolaru.

    Stejně tak jména polí byla limitována délkou jednoho znaku. Mohla být mnohorozměrná a jejich rozměry zadány i reálným číslem, které se však vždy zaokrouhlilo na celé číslo. Indexovala se od jedničky a nebylo možné pracovat s polem jako celkem, pouze jednotlivými prvky.

    Proměnné nebylo potřeba předem deklarovat, což byl častý zdroj chyb. Možnost vkládat více příkazů na jeden řádek člověk ocenil hlavně v případě, že už se mu nedostávalo volných čísel řádků v místech, kam chtěl kód vložit. Čitelnosti programu to však nepřidávalo.

    Do zdrojového kódu programu bylo možné vkládat přímo z klávesnice tokeny měnící barvu textu. Hlavní smysl této funkce byl umožnit programátorům snadno upravovat barvy ve vypisovaných řetězcích, ale protože tyto tokeny mohly být umístěny kdekoliv v kódu, daly se použít i pro věci jako ruční zvýrazňování syntaxe. V praxi se však této funkce zneužívalo k tomu, aby se nastavením stejné barvy textu a pozadí část programu, většinou zavaděče, skryla před zraky zvědavců. Klávesnice umožňovala i vstup speciálních pseudografických znaků vyplňujcích vždy některé kvadranty plochy znaku (▙ ▚ ▛ ▜ ▝ ▟ a podobné). Těch byla jen polovina z potřebného počtu, protože zbylé se zobrazily přidáním tokenu inverzní grafiky. Protože BASIC Spectra měl příkazy pro vykreslování grafiky, nejednalo se o příliš využívanou možnost a byla zde hlavně kvůli kompatibilitě se staršími modely ZX80 a ZX81. Ale protože se bitmapy znaků dala upravovat, využívaly se pozměněné například pro češtinu.

    Sinclair BASIC

    Příkaz pro cyklus byl pouze jediný, počítaný FOR. Všechny ostatní případy se řešily přes GO TO. O debuggeru jsme si mohli nechat jen zdát, ale protože byl Sinclair BASIC interpretovaný a obsahoval příkaz STOP, který v daném místě běh programu přerušil. Bylo možné třeba vypsat hodnoty proměnných, program opravit a pak pokračovat příkazem CONTINUE. Ten se snažil navázat přesně tam, kde jste program ukončili, takže si poradil i s více příkazy na řádek. Když jste příkaz STOP, který přerušení programu vyvolal, smazali, pokračovalo se na následujícím řádku.

    Pokud bylo potřeba do programu zadat více údajů, například předvolené hodnoty nějakého pole nebo matice, daly se do programu zadat příkazem DATA a pak do příslušných proměnných nebo prvků pole načíst příkazem READ. Zajímavé je, že data mohla být definována kdekoliv v programu, tedy i za místem, kde se četla. Příkazy READ se pak sekvenčně procházela. Navíc byl k dispozici i příkaz RESTORE, který určil, ze kterého řádku se data mají nadále číst. I ten přijímal jako argument obecný výraz, takže cílový řádek nemusel být pevně určen.

    Ač byl BASIC tenkrát široce prezentován jako programovací jazyk pro začátečníky, z dnešního pohledu tak příliš nepůsobí. Ano, jednoduché věci, především základní výpočty, v něm bylo možné dělat docela jednoduše, ale u rozsáhlejších programů jste museli bojovat s velice nepřehlednou strukturou, která neumožňovala ani oddělení částí programu prázdnými řádky, natož odsazení. Absence návěstí a omezení délky jmen funkcí čitelnosti také rozhodně nepřidalo. Když se k tomu připočítá malý počet znaků na obrazovce, absence skutečného zvýrazňování syntaxe, lokálních proměnných, pořádných funkcí a procedur a podobně, nevychází z toho BASIC vůbec dobře. V mnoha ohledech si člověk při přechodu na assembler připadal jako ve vyšším programovacím jazyce. Svoji pošramocenou pověst si BASIC právem zaslouží a člověku nezbývá než litovat, že tenkrát výrobci domácích mikropočítačů nesáhli po jiné lepší alternativě.

    A nebo je to vše trochu jinak?

    BASIC totiž nebyl jen Sinclair BASIC. Například jeho implementace v BBC Micro ze stejné doby byla na mnohem lepší úrovni. Tam podmínky měly podporu ELSE, existoval v něm cyklus REPEAT UNTIL, jména řetězcových proměnných a polí neměla tak drastická omezení a podobně. V podstatě se jednalo o docela hezký jazyk, ze kterého si jeho uživatel neodnášel tolik špatných návyků

    Malá odbočka. Nedávno se na AbcLinuxu objevila zprávička upozorňující na to, že BBC zpřístupnila kompletní archiv svého projektu Computer Literacy Project. Vřele doporučuji se na některá videa podívat, především pak na úvodní The Silicon Factor. Prakticky všechny předpovědi, které v tom pořadu zazněly, se také dočkaly naplnění. Zvláště zajímavý je náhled na myšlení tehdejších lidí, kteří měli velké obavy z dopadů, které bude mít rychlý a nezvratný nástup počítačů a automatizace na pracovní trh. Hodně to připomíná to, co si dnes můžete přečíst v novinách o zavádění umělé inteligence. I to, jak se v těch pořadech učí BASIC a prezentují možnosti počítačů, je hodné obdivu a uznání.

    Na obranu ZX Spectra je nutné poznamenat, že BBC Micro mělo dvojnásobný objem paměti ROM (32 kB), takže si mohlo dovolit mnohem více. Právě ve velikosti paměti leží jeden z klíčů k tomu, proč tenkrát hromadně nesáhli po jiné alternativě k BASICu. V podstatě nebylo po čem. Sinclair BASIC se poprvé objevil na počítači ZX80, který měl pouhých 4 kB ROM. Do té se muselo podařit vměstnat vše včetně fontů a základních rutin operačního systému, takže na vlastní programovací jazyk s uživatelským rozhraním moc prostoru nezbývalo. Paměť RAM měla kapacitu pouhý 1 kB, z níž si systém ještě malou část ukousl.

    I s tak nepatrným množstvím místa se jim podařilo vyrobit počítač, který byl vlastně překvapivě použitelný. Klávesnice sice byla ještě o řád horší než u Spectra a způsob generování obrazu, kdy se o vše staral přímo procesor, vedl k nepříjemnému poblikávání obrazu, kdykoliv se stiskla nějaká klávesa, či celkovému výraznému zpomalení (ZX81), ale měli jste počítač, který se možnostmi pro programování od Spectra nijak extrémně nelišil. Chyběla sice důležitá podpora reálných čísel a skutečné grafiky, ale jinak to byl stroj, se kterým se toho díky BASICu dalo dělat s ohledem na hardwarové prostředky docela dost, o čemž se lze přesvědčit v dobových knihách či časopisech s příklady programů. Emuátor ZX80, výpis ROM.

    Úspěšný nástupce ZX81, který již měl 8 kB ROM, zvládal reálná čísla i jednoduchou grafiku. BASIC na ZX Spectru byl logickým pokračovatelem a nesporným vylepšením již rozjeté platformy se zpětnou kompatibilitou s většinou programů v literatuře. Navíc, BASIC používaly prakticky všechny konkurenční platformy, takže sáhnout po Forthu, Lispu, něčem jako Rosetta Smalltalk a podobně by je možná odsoudilo do stejné kategorie dobových obskurností, kam se dnes řadí Jupiter Ace.

    Zbývá ještě otázka, proč si BASIC přes své nesporné zápory a vady vydobyl pověst jednoduchého jazyka pro začátečníky. Když se podíváme na první verzi BASICu, kterým byl Dartmouth BASIC z roku 1964, odpověď dostaneme hned. Protože takový prostě byl. Tento BASIC byl narozdíl od pozdějších implementací kompilovaný, umožňoval pouze jeden příkaz na řádek a podmíněný příkaz IF měl možnost pouze skočit na určité číslo řádku. Jinými slovy, byla to přímočará nadstavba nad Assemblerem s podporou reálných čísel, pojmenovaných proměnných a počítaných cyklů. Dokonce neobsahoval z počátku ani příkaz INPUT, protože se prostě předpokládalo, že data se zadají přímo do programu (jak jinak než příkazem DATA) a budou neinteraktivně zpracována. Neměl ani podporu řetězců, protože byl primárně používán na matematické výpočty. Manuál k němu naleznete zde.

    V tomto světle plnil původní BASIC svou roli velice dobře a i programy v něm vypadaly docela přehledně. Odsuzovat za něj jeho autory k věčnému zatracení, by bylo hodně nespravedlivé. To, co se z něj později vyvinulo, je věc jiná. O tom, že dnešní implementace BASICu jsou někde úplně jinde, nemá cenu ani hovořit. A popravdě řečeno, všechny neduhy, kterými BASIC trpěl, měly jeden velmi pozitivní efekt. Motivovaly nás ponořit se do tajů strojového kódu a tím i k důslednějšímu poznání, jak ty úžasné domácí počítače vlastně fungují.

           

    Hodnocení: 100 %

            špatnédobré        

    Obrázky

    BASIC, obrázek 1 BASIC, obrázek 2 BASIC, obrázek 3

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    Blaazen avatar 20.7.2018 00:25 Blaazen | skóre: 24 | blog: BL
    Rozbalit Rozbalit vše Re: BASIC
    Commodore na tom byl ± podobně. Příkaz LET nebyl povinný. Čísla řádek byla 0-65535. Délka řádku programu byla dva řádky obrazovky t.j. 2*40. Šlo to obejít zadáváním příkazů pomocí zkratek, např. ? byl PRINT. Pak se řádek programu vypsal na víc než dvě řádky obrazovky, ale už to nešlo editovat, respektive se po editaci ten přebytek smazal.
    Blaazen avatar 20.7.2018 00:27 Blaazen | skóre: 24 | blog: BL
    Rozbalit Rozbalit vše Re: BASIC
    Ovšem klávesnici měl suprovou.
    20.7.2018 17:01 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Na C=64 byla škoda, že ten BASIC byl strašně omezený. Všechno se muselo dělat přes POKE a PEEK, jinak tam byl jenom úplně holý základ. K nějakým rozšířením jsem se tehdy nedostal, takže jsem s ním moc nedokázal. Na rozdíl od Spectra běžícího výhradně v grafickém módu a hýřícího barvičkami přímo v textu :-)
    20.7.2018 07:07 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASIC
    Klávesnice Spectra měla 40 kláves (standardní PC klávesnice jich má cca 104) a patří k tomu nejhoršímu, co tehdejší trh nabízel.

    To se ale týká původního "gumáka", v pozdějších letech už byla obvyklejší varianta ZX Spectrum+ ("plusko"), která měla klávesnici o dost lepší.

    xsubway avatar 20.7.2018 07:36 xsubway | skóre: 13 | blog: litera_scripta_manet
    Rozbalit Rozbalit vše Re: BASIC
    Pěkný blog :-) Na některé věci už jsem pozapomněl ...

    Jinak když porovnám svoje zkušenosti (měl jsem ZX Spectrum+ 48k) s používáním různých počítačů v 80 letech, tak bych řekl, že Didaktik Gama měl naprosto nejhorší HW klávesnicí, to už i ten gumák (ZX Spectrum - tedy bez toho plus) na tom byl lépe, a to už je co říct. I to PMD 85 bylo z hlediska HW provedení klávesnice lepší. Tiše jsem ale záviděl těm, kteří měli třeba Atari 800, Comodore 64 nebo Sharp MZ-800 :-)
    20.7.2018 07:43 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASIC
    I to PMD 85 bylo z hlediska HW provedení klávesnice lepší.

    Jak které. Původní PMD-85 se svými nízkými hranatými "cvakacími" klávesami z mého pohledu směle konkurovalo IQ 151, jehož klávesnice byla ve své době legendou. Verze PMD-85-2 (vyšší zkosené klávesy s měkkým stiskem) byla o poznání lepší, i když pořád trpěla problémem s velikostí (nebo spíš malinkostí) kláves.

    xsubway avatar 20.7.2018 09:20 xsubway | skóre: 13 | blog: litera_scripta_manet
    Rozbalit Rozbalit vše Re: BASIC
    Tak to je asi pravda, mám osobní zkušenost jen s verzí II. Ale lepší malé klávesy s alespoň nějakým zdvihem, než ta věc ze Skalice. No a na to IQ151 jsem úplně zapomněl :-) Jak jsem mohl - to bylo něco! To byl beton, ne klávesnice :-D
    20.7.2018 19:01 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC

    Ty malé cvakací klávesy mělo primárně PMD 85-1 (skutečné peklo), u verze 2 se vyskytovalo možná i obojí, rozhodně jsem viděl variantu s malými, ale skutečnými klávesami, stejně jako má verze 3 (tu mám). Hodně klávesám pomohlo lehké promazání a vyčištění, protože mají vespod jen takové ty měkké kloboučky s vodivou gumou, která se přimačkává přímo na plošný spoj, nečistota může snadno zhoršit dotek.

    Viz foto nejmodernější verze PMD-85 s lepšími tlačítky https://egalerie.net/index.php/opravy/PMD-85-3

    Sinclairisti, co se s PMD 85 nikdy nepotkali, ale mají doma UR-4, vědí. To jedno tlačítko reset na UR-4 je přesně stejné, jako ta nízká cvakací tlačítka na PMD 85.

    UR-4 viz https://cygnus.speccy.cz/popis_mhb8255.php

    Didaktikům hodně moc pomáhá lehké promazání tlačítek. Didaktik M se tím prakticky přiblíží membránovkám (fakt, tlačítka kloužou naprosto hladce) a je pak na psaní podle mého názoru pohodlnější než ZX Spectrum 48k+. Didaktik Gama není o moc horší. Možná mají svůj vliv ty středy uprostřed pružinek, nevím, ale ani jedna z klávesnic nemusí bý vysloveně špatná.

    promazání kláves Didaktiků viz https://egalerie.net/index.php/opravy/klavesnice-Didaktik-M

    Nejlepší klávesnici mezi ZX Spectry měly stroje od Amstradu. Jednak mají tlačítka klasický klávesový tvar (Didaktik M taky), ale jsou membránové (narozdíl od Didaktiků, ty mají pozlacené plíšky) a fungují většinou hladce i bez promazání. I když i mé šedé +2 to prospělo, je to znát hlavně u velkých kláves (mezerní, shifty, enter).

    Tady mám +2 klávesnici rozebranou https://egalerie.net/index.php/opravy/promaz-n-kl-vesnice-ZX-Spectrum-2

    IQ151 proti čemukoli z toho byl děs a běs, prý používali tlačítka z ovládacího panelu výtahu, ale to je nejspíš jen výmysl ilustrující jak moc špatná ta klávesnice byla.

    xsubway avatar 20.7.2018 20:06 xsubway | skóre: 13 | blog: litera_scripta_manet
    Rozbalit Rozbalit vše Re: BASIC
    Didaktik jsem měl jen zapůjčený a zřejmě bych se do něj neodvážil zasahovat. Třeba byl opravdu jen zanedbaný. Moje zkušenost s Didaktikem je dost omezená a tak z ní nelze očividně nic dělat obecně zavery i když to tak z mého předchozího příspěvku vypadá.

    Díky za ty odkazy. Klavesnice na Spectrum +2 vypadá krásně :-)
    Marián Kyral avatar 20.7.2018 21:49 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: BASIC
    Emko jsem měl rozebrané několikrát. Vždy jsem vyndal všechny klávesy, vystříkal kontoxem a jelo se dál. Největší drama bylo, když jsem si nebyl jist, zda jsem klávesy nacvakal na ta správná místa :-D

    Taky jsem zlomil pár joysticků, tak jsem si udělal vlastní ovladače. Koupil jsem pět mikrospínačů, vyleptal si k tomu plošňák, napasoval to do krabičky a už se mastil Emlyn Hughes.

    Už ani nevím, jak přesně jsem na to došel, asi reverzním inženýrstvím toho zlomeného klacku :-D
    xsubway avatar 20.7.2018 21:58 xsubway | skóre: 13 | blog: litera_scripta_manet
    Rozbalit Rozbalit vše Re: BASIC
    Njn, jednou jsem odpálil svoje Spectrum půjčeným podomácku sestaveným joystickem. Teď je v něm EEPROM s modifikovanou ROM. Od té doby jsem zase hrál všechny hry jen na klávesnici .-)
    xsubway avatar 20.7.2018 22:00 xsubway | skóre: 13 | blog: litera_scripta_manet
    Rozbalit Rozbalit vše Re: BASIC
    http://www.worldofspectrum.org/infoseekid.cgi?id=0000639
    22.7.2018 10:29 Jano z vesnice bez vodovodu
    Rozbalit Rozbalit vše Re: BASIC
    Ty vole Emlyn Hughes na tom sme s brachom tiez ponicili par joystickov.
    Grunt avatar 20.7.2018 22:52 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Ho, ho, ho…co to je? ULTIMATE - PLAY THE GAME na zeleno-černém Merkuru a PMD-85? To mělo Ziloga? Já myslel že to mělo nějaký Intel, ne? Co se k tomu vlastně dodávalo?
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    20.7.2018 23:07 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASIC
    PMD-85 používala 8080, i když pochopitelně ne přímo od Intelu, ale klon od Tesly (MHB 8080 nebo tak nějak), možná i od jiných výrobců z RVHP.
    Grunt avatar 20.7.2018 23:18 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Proto mě taky udivuje když tam vidím Pssst, který se dodával na těch růžových kazetách k Didaktiku. A kupodivu naprosto stejně vypadající.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    20.7.2018 23:41 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASIC
    I kdyby tam byl Z80, ani zdaleka by to neznamenalo, že by šlo používat programy ze Spectra. Hardware se ovládal úplně jinak, ROM vypadala úplně jinak, layout videopaměti byl úplně jiný (zrovna na PMD-85 byl dost šílený) atd. Na druhou stranu bylo celkem běžné, že se populární hra pro jeden typ počítače časem objevila i ve verzích pro další - většinou ale vypadala trochu jinak, vzhledem k rozdílným možnostem ani stejně vypadat nemohla.
    21.7.2018 11:37 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC

    Nó, není to Merkur, ale zelený monochrom monitor NEC... někde k němu mám i schéma. PMD je připojené přes kompozitní PAL.

    Ne, nemělo to Zilog Z80 na 3.5MHz, mělo to MHB8080, což je klon Intel 8080 od Tesly na pouhých 2MHz s chudší instrukční sadou a komplikovaněji organizovanou video RAM (6 bitů pixy, dva bity barvy v jednom bytu).

    Pssst je remake přepsaný komplet od základů podle původní hry ze ZX Spectra, napsal ho Libor Lasota, viz https://pmd85.borik.net/wiki/PSSST

    Ono těch přeportovaných her je mnohem víc, co si tak z paměti vzpomínám, tak ještě JetPac, Arkanoid, Atomix, Kvádro (podle flashové hry, na ZXS bylo napsáno pod názvem WHB), Spindizzy, Plotting, Highway Encounter, Treasure Island ... jo a taky samozřejmě Lemmings a přepis ZX ROM, takže na PMD 85 lze programovat v Sinclair BASICU :-)

    Stahujte zde https://pmd85.borik.net/wiki/Software

    Koho by zajímalo, jak vypadá z PMD 85-3 barevný obraz, tak viz přiložené foto, PMD jsem měl připojené přes RGB -> VGA konvertor GBS 8220.

    21.7.2018 12:45 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASIC
    komplikovaněji organizovanou video RAM (6 bitů pixy, dva bity barvy v jednom bytu).

    No, barvy, řekněme atributů. Standardně byl jeden bit pro jas a jeden pro blikání. Aby místo toho mohly být barvy (celé čtyři), byla potřeba úprava hardware. A to ještě není všechno: těch šestic bylo na řádek 48 (tj. 288 pixelů) a pak nevyužitých 16 bytů, aby vycházelo 64B na řádek. Považte, v té době prostě jen tak nechali celou čtvrtinu videopaměti (4 KB) ležet ladem. Našli se i drsňáci, kteří tam dokázali schovat celý program nebo jeho velkou část (IIRC třeba COPY482). :-)

    21.7.2018 13:13 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC

    Pravda, pořád zapomínám, že oficiálně "barevná" byla jen verze 3, předchozí verze 1, 2, 2B byly monochrom s jednou šedou a blikáním.

    Resp. zatímco ZX Spectrum má 3 bity pro barvu podkladu, 3 bity pro barvu pixelů, jeden bit blikání a jeden bit jas, který se nevztahuje na černou, tak u PMD buď pixel chyběl, nebo měl vlastnosti definované těmi atributy. Chybějící pixel byl vždy černý.

    Mimochodem, elektricky je to řešené taky zajímavě, na pětikolíku jsou vyvedené 4 signály. Kompozitní a zelená v jednom a pak červená, modrá (obě bez synchronizace) a synchronizační směs.

    I verze 1 a 2 mají RGB výstupy, ale s blikáním. Verze 3 blikat neumí.

    Základní barvy PMD jsou zelená, modrá, červená, purpurová (magenta), zelená proto, protože pixel je zapnutý, ale atribut pro BR je 00, červená pixel zapnutý, ale atribut BR je 01 atd... Žádná paleta.

    Tj. i na barevném monitoru je základní barva zelená, nikoli bílá.

    Více viz https://oldcomp.cz/viewtopic.php?f=49&t=6106&p=74622

    A rozšíření ColorACE viz https://pmd85.borik.net/wiki/ColorAce

    20.7.2018 16:58 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    To já si na mojí Gamu nemůžu stěžovat, ale možná zrovna tenhle kus byl obzvlášť povedený. Psalo se mi na ní dobře (i v době kdy jsem si už osahal PeCe) a funguje pořád stejně perfektně i dnes. Zato když jsem si později vyzkoušel eMko a Kompakt, tak jsem docela nadával.
    20.7.2018 19:40 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC
    Didaktik Gama se vyráběl ve třech sériích, model 87, 88 a 89. Ty první byly černé, později měly Gamy černá tlačítka, pak světle žlutá a až ty úplně poslední světle šedá. První verze měla hodně odlišnou desku (a snad dokonce byla jen černobílá?).

    Didaktiky, se kterými jsem se setkal já, což byly jen to pozdější, byly taky docela ok. Ale je docela dobře možné, že se někde výrobní tolerance při lisování plastu nepovedly.
    20.7.2018 20:08 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Já mám '89, ale nebyl jsem první majitel, takže rok výroby nevím přesně (u mě bydlí až od čtyřiadevadesátého). Klávesy mám bílé a velké IO jsou nastrkané v paticích, jestli to pomůže dataci.
    27.7.2018 18:20 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
    Rozbalit Rozbalit vše Re: BASIC
    a snad dokonce byla jen černobílá?
    Kdepak, i cerna Gama byla barevna.
    Pevně věřím, že zkušenější uživatelé mě s mými nápady usměrní a pošlou tam, kam tyto nápady patří...
    Grunt avatar 20.7.2018 22:12 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Taky tak. Mám šedý Didaktik '89 a taky si na klávesnici nemůžu stěžovat. Pozdějc se hrozně zasekávala no ale alespoň to mělo nějakou zvukovou odezvu, takže člověk věděl že něco zmáčkl. Docela bych to přirovnal k dnešním notebookovým klávesnicím (z jedné zrovna píšu) které mají naprosto stejný zdvih. Akorát jsou menší a bez odezvy.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    Marián Kyral avatar 20.7.2018 07:59 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: BASIC
    Jo jo. To byly časy s Didaktikem M, když jsem ještě neměl kazeťák. Ráno jsem opsal hru, celé dopoledne ji hrál a druhý den znova :-D

    Ad Basic pro začátečníky. Jak již bylo zmíněno, tehdy moc jiných možností nebylo a bylo to hodně omezeno tehdejším HW a nabídkou. Člověk byl rád, že vůbec něco sehnal a mohl si s tím hrát.
    20.7.2018 11:46 luky
    Rozbalit Rozbalit vše Re: BASIC
    IMO cislovani radku bylo pouzito jen kvuli neschopnemu editoru. Pamatuji si, ze jsem na atari mel pascal, ktery take cisloval radky.
    I HiSoft C popisované v minulém zápisku mělo číslování řádků, ale použití číslování řádků pro potřeby editoru neospravedlňuje absenci návěstí. Alespoň částečně. Pokud musíte označovat řádky velice intenzivně, což v BASICu musíte, pak vymýšlet pořád unikátní návěstí by bylo docela otravné. Použít číslování může být prostorově i časově méně náročné než návěstí. Pokud by se používala reálná čísla řádků, muselo by se provádět automatické přečíslovávání, a často by to asi vyvolávalo zmatky a na děrné pásce to nejde moc snadno. Dá se pochopit, proč to tenkrát řešili tímto způsobem (což neznamená, že to nešlo udělat lépe)
    I'm sure it crashed in the most type-safe way possible.
    20.7.2018 12:42 luky
    Rozbalit Rozbalit vše Re: BASIC
    Pokud nekdo programoval v basicu vic, tak si vetsinou nacital sadu funkci, ktere preformatovavaly kod a umoznovaly programatorovi vytvorit si vlastni knihovnu s funkcemi. Fungovalo to priblizne tak, ze na zacatku programu autor rekl, jake funkce chce, treba 1 REM FUNC MOJEFCE1 2 REM FUNC MOJEFCE7 ... potom donahral "makra" pro praci s kodem a spustil je. Ta se podivala na kod a postupne nacitala funkce z kazetaku dokud se nenacetly vyjmenovane funkce. Nejspis to umelo i disketu, tu jsem ale nemel :-)

    Nasledne kod upravil zacatek programu na 1 LET MOJEFCE1=10000 2 LET MOJEFCE7=10100 ...

    Programator mohl pote ulozit cely program, novou cast a nebo pridat funkce do knihovny.
    20.7.2018 16:55 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Ono to číslování mělo ještě víc "vedlejších" efektů. V podstatě to byly adresy paměti virtuálního stroje, takže pozdější přechod na assembler byl o to snažší, že člověk tak nějak chápal, co to adresování vůbec je.

    Navíc ve srovnání s neučesaným FORTRANem, umožňujícím vrazit libovolný label kamkoliv v jakémkoliv pořadí, to BASICové vzestupné číslování dává smysl a je v něm pořádek. Pro začátečníka asi nejpotřebnější věc, protože sám si to rozumně uspořádat ještě nedovede ;-)

    A velmi zajímavé mohlo být "přihrávání" různých knihoven pomocí MERGE, kdy se konkrétní řádky vložily mezi jiné, nahradily nebo vymazaly.
    20.7.2018 12:07 luky
    Rozbalit Rozbalit vše Re: BASIC
    A nejvic se mi asi zamlouval Action!, IMO nej jazyk/prostredi pro osmibity.
    20.7.2018 16:47 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Číslování řádku bylo použito proto, že to měly všechny ostatní BASICy v té době, a vyžadovala to i norma.

    Ostatně, samotné ovládání editoru pomocí víceúčelových čísel řádků byl nápad hraničící s genialitou. Ono se totiž v těch dávných dobách, kdy se s počítači komunikovalo pomocí mechanických řádkových terminálů, asi nic snadnějšího a efektivnějšího vymyslet nedalo.

    Kdo nevěří, ať si vyzkouší práci s editorem ED: http://pdp11.aiju.de - bez nápovědy nedáte ani Hello World: https://www.root.cz/clanky/ed-textovy-editor-do-nepohody/
    20.7.2018 13:25 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: BASIC
    Opět poruším pravidlo nepsání na abclinuxu, když jde o zajímavý zápisek.

    1) Záklandí omyl hodnocení Basicu je, že to nebyl primárně programovací jazyk. On je to spíše shell počítačů Sinclair. I na řadě jiných počítačů měl Basic funkci shellu spíše než programovacího jazyka.

    2) V článku je Basic Spectra dost podhodnocen, uměl toho poměrně více. Například definovat funkce i s předávanými parametry je možné pomocí slov DEF FN a používat je pomocí FN.

    3) Kromě toho uměl Basic volat podprogramy/funkce ve strojovém kódu pomocí klíčového slova USR. Návratová hdonota byla uložena v registru BC, mohly se používat všechny registry s výjimkou IX a IY.

    4) Spectrum Basic používal jak celá tak reálná čísla. Čísla byla uložena buď jako celá či reálná podle hodnoty. Byla to absolutní nutnost, pokud měly cykly FOR dodržet počet opakování. Při zaokrouhlovacích chybách reálných čísel by jinak občas byl o 1 opakování cyklu méně či více - a to se na jiných osmibitech i často stávalo, že se na počet opakování cyklu FOR nedalo spolehnout.

    5) Daleko zajímavější je implementace, celý Basic je v zásadě dostupný jako podporogramy ve strojovém kódu volatelné z ROM. Ve strojovém kódu tak mohl programátor použít cokoli z Basicu, například třeba reálné výpočty ála matematický korpocesor. Nebo pracovat se streamy ála C/C++. A to nejzajímavější - bylo to možné i naopak, tedy volat z Basicu podpogramy psané ve strojovém kódu.

    6) Spectrum Basic byl kódován tak, že klíčová slova byly uloženy jako jediný bajt. Tvořily vyšší polovinu ASCII tabulky.

    7) Zajímavé je pojetí řetězců. Zatímco v C končí řetězce nulovým znakem, v Basicu končí řetězce nastavením nejvyššího bitu. Mimo jiné nejvyšší bit mají nastaveny všechna klíčová slova Basicu (která jsou jediným bajtem také jako znaky). To umožnilo velice efektivní ukládání programu i dat krutě šetřící pamětí, což bylo opravdu potřeba.

    8) Řádky programu v Basicu nemusely jít za sebou. Takže se program dělal jako řádky 10, 20, 30, ... - a byl prostor pro dopisování. Kromě toho se daly řádky v Basicu přečíslovat - třeba programem ve strojovém kódu. (Jak jsem už psal - Basic a strojový kód byl vzájemně míchatelný).

    9) Návěští, která údajně chyběla - to jsou ty čísla řádků. Čísla řádků slouží jako návěští.

    10) Basic byl skutečně programovacím jazykem pro začátečníky, protože uměl motivovat. Uměl toho velice mnoho včetně celé grafiky. Tím umožňoval rychle dosáhnout výsledky. Lidi to bavilo. Zkuste posadit lidi před C nebo před Python nebo před Javu - a zkuste je naučit vykreslit třeba obrázek nebo udělat jednoduchou grafickou hru. V Basicu to lidi rychle zvládnou, v C/Ptyhonu/Javě to dříve vzdají.
    20.7.2018 14:10 〹
    Rozbalit Rozbalit vše Re: BASIC
    haf, haf ;-)
    1) Záklandí omyl hodnocení Basicu je, že to nebyl primárně programovací jazyk. On je to spíše shell počítačů Sinclair. I na řadě jiných počítačů měl Basic funkci shellu spíše než programovacího jazyka.

    To, co byl BASIC na těchto počítačích primárně, by se dalo dlouho a zbytečně polemizovat. Tenkrát se na takové rozlišení moc nehrálo. Bylo prostě běžné, že počítač se ovládal programovacím jazykem. To by pak bylo nutné dát do stejné kategorie neprogramovacích jazyků třeba Forth nebo Smalltalk. V ROM mohl stejně tak být jen zavaděč pro externí programy, nějaká tabulka znaků a pár rutin, případně pro uživatele vědecká kalkulačka a třeba monitor.

    2) V článku je Basic Spectra dost podhodnocen, uměl toho poměrně více. Například definovat funkce i s předávanými parametry je možné pomocí slov DEF FN a používat je pomocí FN.

    Funkcím je v tomto článku věnován celý odstavec, kde se hovoří i o překrývání proměnných a jejich možném rekurzivním volání.

    3) Kromě toho uměl Basic volat podprogramy/funkce ve strojovém kódu pomocí klíčového slova USR. Návratová hdonota byla uložena v registru BC, mohly se používat všechny registry s výjimkou IX a IY.

    Spouštění strojového kódu mi přišlo natolik samozřejmé, že jsem to nezmínil. Nicméně je pravda, že všechny BASICy to neumí.

    4) Spectrum Basic používal jak celá tak reálná čísla. Čísla byla uložena buď jako celá či reálná podle hodnoty. Byla to absolutní nutnost, pokud měly cykly FOR dodržet počet opakování. Při zaokrouhlovacích chybách reálných čísel by jinak občas byl o 1 opakování cyklu méně či více - a to se na jiných osmibitech i často stávalo, že se na počet opakování cyklu FOR nedalo spolehnout.

    Děkuji za doplnění. Z uživatelského hlediska se však všechna čísla tvářila jako reálná.

    5) Daleko zajímavější je implementace, celý Basic je v zásadě dostupný jako podporogramy ve strojovém kódu volatelné z ROM. Ve strojovém kódu tak mohl programátor použít cokoli z Basicu, například třeba reálné výpočty ála matematický korpocesor. Nebo pracovat se streamy ála C/C++. A to nejzajímavější - bylo to možné i naopak, tedy volat z Basicu podpogramy psané ve strojovém kódu.

    Myslím, že schopnost snadno používat rutiny z ROM, byl spíše vedlejší efekt rozumného návrhu, protože sami je v rámci strojového kódu v ROM potřebovali občas použít.

    6) Spectrum Basic byl kódován tak, že klíčová slova byly uloženy jako jediný bajt. Tvořily vyšší polovinu ASCII tabulky.
    7) Zajímavé je pojetí řetězců. Zatímco v C končí řetězce nulovým znakem, v Basicu končí řetězce nastavením nejvyššího bitu. Mimo jiné nejvyšší bit mají nastaveny všechna klíčová slova Basicu (která jsou jediným bajtem také jako znaky). To umožnilo velice efektivní ukládání programu i dat krutě šetřící pamětí, což bylo opravdu potřeba.

    Viz třeba kapitoly z uváděné knihy, které se zabývají interní reprezentací programů v Sinclair BASICu.

    8) Řádky programu v Basicu nemusely jít za sebou. Takže se program dělal jako řádky 10, 20, 30, ... - a byl prostor pro dopisování. Kromě toho se daly řádky v Basicu přečíslovat - třeba programem ve strojovém kódu. (Jak jsem už psal - Basic a strojový kód byl vzájemně míchatelný).

    O tom, že čísla řádků nemusela tvořit souvislou sekvenci, se v článku píše. O přečíslování jako o funkci modelu 128k také. U nižších modelů se nejednalo o možnost dostupnou bez externího programu.

    9) Návěští, která údajně chyběla - to jsou ty čísla řádků. Čísla řádků slouží jako návěští.

    Samozřejmě...

    I'm sure it crashed in the most type-safe way possible.
    20.7.2018 19:27 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC
    V ROM mohl stejně tak být jen zavaděč pro externí programy, nějaká tabulka znaků a pár rutin, případně pro uživatele vědecká kalkulačka a třeba monitor.
    Viz třeba výše zmíněné PMD-85

    Počítač byl dost často vybavený ROM modulem s jazykem BASIC-G, ale stejně tak tam mohl být programovací jazyk Karel, Pascal, nebo něco úplně jiného.

    Počítač bez ROM modulu měl k dispozici jen primitivní monitor, kde byly k dispozici jen základní příkazy - vzpomínám si na MGLD a MGSV pro load a save programů ve strojáku, DUMP adresa pro výpis obsahu RAM v HEXu a JUMP adresa pro spuštění programu ve strojáku.

    Myslím, že to, že BASIC na ZX Spectru funguje dobře jako programovací jazyk i shell v jednom je dáno především nemožností BASIC odstránkovat a spustit (neupravený) počítač bez něj. A vrámci možností to vyřešili docela elegantně.

    Ad číslování - nemyslím, že by to byl problém. Ano, občas se mi stalo, že jsem vyčerpal těch 9 řádků mezi násobky 10, někdy jsem postrádal funkci pro automatické přečíslování (některé BASICy měly příkaz RENUM), ale když si to člověk předem důkladně rozmyslel, tak to problém nebyl, to spíš došla RAM jako taková než čísla řádků.

    Ukončování řetězců bitem 7 je docela běžné i ve strojáku, pokud nepotřebujeme znaky z horní půlky tabulky (texty v ASCII). V každém řetězci se tím ušetřil jeden byte a detekce byla triviální.
    20.7.2018 19:52 j.t.d.
    Rozbalit Rozbalit vše Re: BASIC
    "Myslím, že schopnost snadno používat rutiny z ROM, byl spíše vedlejší efekt rozumného návrhu, protože sami je v rámci strojového kódu v ROM potřebovali občas použít."

    Ono to bylo dokonce tak, že matematické jádro floating point rutin v Sinclair Basic ROM, takzvanou "kalkulačku ZX Spectra", tvořil vlastně jednoduchý jazyk podobný Forthu.

    Za "voláním kalkulačky" instrukcí RST #28 následoval program pro tento jazyk, zapsaný jako seznam jeho instrukcí a jejich parametrů (podobně jako ve Forthu - swap, dup, drop, ...) a ukončený příkazem pro ukončení činnosti a předání výsledku do Basicu.

    Mimochodem za jeden z nejlepších dialektů Basicu na domácích mikropočítačích považuju jiný se Sinclairem spjatý - S*Basic na Sinclairu QL.
    20.7.2018 23:39 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: BASIC
    Bylo možné výraz zadat na zásobník a podprogramem v ROM ho nechat spočítat.
    20.7.2018 23:49 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: BASIC
    :::To, co byl BASIC na těchto počítačích primárně, by se dalo dlouho a zbytečně polemizovat. Tenkrát se na takové rozlišení moc nehrálo.

    Hrálo, nehrálo, Basic měl u počítačů význam shellu. Ostatně i první PC XT měly v ROM BIOSu basic pro případ, že nenahrajete žádný operační systém.

    :::Děkuji za doplnění. Z uživatelského hlediska se však všechna čísla tvářila jako reálná.

    Ano, dokonce se celá čísla ukládala do stejného float formátu. Ale přesto ten formát je udělaný tak, aby malá celá čísla (16 bitů) byla ukládána přímo.
    4) Spectrum Basic používal jak celá tak reálná čísla. Čísla byla uložena buď jako celá či reálná podle hodnoty. Byla to absolutní nutnost, pokud měly cykly FOR dodržet počet opakování. Při zaokrouhlovacích chybách reálných čísel by jinak občas byl o 1 opakování cyklu méně či více - a to se na jiných osmibitech i často stávalo, že se na počet opakování cyklu FOR nedalo spolehnout.
    Přeci jen to jen pár let, co jsem na Spectru programoval, tak jste mne málem napálil. Ale letmý pohled do dumpu ROMky Vás usvědčuje :) Nikdy tomu tak nebylo, spektrácký Basic používá na všechno 5-bytové floaty, které mají pro běžné FOR cykly dostatek přesnosti mantisy, aby se žádné zaokrouhlovací chyby neprojevily.
    20.7.2018 19:33 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC
    Přesně tak.

    To je důvod, proč se používaly triky jako VAL "1234" (7 bytů místo 4 byty + 5 bytů float) , nebo PI/PI (3 byty místo cifry 1 a toho 5 bytového floatu).
    20.7.2018 23:36 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: BASIC
    Málem jste mě napálil. Basic měl 6bajtouvou strukturu proměnné. 1. bajt název, 2. bajt exponent + sign, 4 bajty mantissa. Ovšem neukládal čísla jako IEE754, kdyby to tak dělal, tak by přesně nemohl vyjádřit čísla jako 3. Proto trochu jinak operoval s malými celými čísly a jinak s reálnými. Bez ohledu na to, že vše bylo uloženo ve stejné 6bajtové struktuře.
    Zase nesouhlasím :) Název proměnné mohl být i vícebajtový. Formát IEEE754 se opravdu nepoužíval, například proto, že v té době ještě neexistoval (první vydání IEEE754 je z roku 1985, copyright ROMky Spektra z roku 1982). Nicméně jak v IEEE754, tak ve spektráckých floatech se trojka dá vyjádřit přesně. Nechcete si o tom něco přečíst, třeba tu ROMku?
    21.7.2018 00:50 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: BASIC
    Ne, protože formát čísel byl upraven tak, aby 16bitová čísla se ukládala přesně v integer formátu a ostatní pak víceméně zaokrouhleně jako float. Přestože to bylo naskládáno do stejné struktury. Včetně matematiky. ROMka totiž byla velice hezky udělaná s mnoha vstupy jako podprogramy.

    Myslím, že jsem se ve strojáku naprogramoval dost, abych věděl, co uvnitř bylo.

    Mimo jiné jsem pak měl kromě dalšího i Didaktik M. Tím jsem opustil jako posledním produktem opusti sinclair svět.

    Didaktik M měl totiž "chytře" udělaný zdroj. Do počítače táhl nestabilizovaných +12 V a stabilizovaných +5 V pomocí MA7805 v TO3 pouzdře. Nějaký chytrák ve Skalici to udělal tak, že do chladiče té MA7805 provrtal díru v místě, kde to topilo jako gril. Tou dírou protáhl napájecí kabel (neodolný proti teplu), kterým šlo 0 V, +5 V i +12 V a pak do počítače s ním. Po cca půl roce se obvykle propálil kabel a napětí +12 V se dostalo na napájecí IO, které měly mít + 5V. A hezky se zadýmilo a konec.

    Sir Clive Sinclair by tak elementární chybu neudělal, jako udělali ve Skalici.

    Sám jsem vyreklamoval svého Didaktika M koupeného v roce 1989 za 5500 Kčs. Čekal jsem 3 měsíce, a pak jsem si nechal vrátit peníze.

    Od té doby mě svět Spectra nezajímá. Přeci jenom svět pokročil dále.
    21.7.2018 11:55 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC
    Příloha:

    Ano, je pravda, že kabel protáhli chladičem i u Didaktiku Gama a to určitě není dobrý nápad - viz přiložené foto (našel jsem ve svém archivu). Zdroj k Mku nemám, napájím ho jiným zdrojem.

    Ale na druhou stranu, ještě jsem nezažil, že by se kabel přepálil. Vyfocený zdroj byl určitě v provozu několik let skoro nonstop (hádám tak 4 roky a nejmíň 8 hodin denně). Ani další Gamy, co mám, nevykazují potíže se zdrojem. Nejspíš souběh více závad?

    Btw... nebylo tam +12V, ale nestabilizovaných cca 19 - 21V, ze kterých se stabilizovalo 12V až v počítači.

    Sir Clive dělal zas jiné chyby. V ZX Spectrech dost často odcházejí tranzistory ZXT650 (TR4) v měniči +12V/-5V a absence těchto dvou napětí může vést k poškození RAM 4116 (VRAM). Nemluvě o tom, že Gumáky se taky dost přehřívají, jen s tím rozdílem, že mají stabilizátor 7805 uvnitř pod klávesnicí. Nápad umístit ho mimo počítač není zas tak moc špatný.

    Grunt avatar 21.7.2018 20:11 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Sám jsem vyreklamoval svého Didaktika M koupeného v roce 1989 za 5500 Kčs. Čekal jsem 3 měsíce, a pak jsem si nechal vrátit peníze
    Tehdy šlo reklamovat zboží? Jak to přesně fungovalo?
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    20.7.2018 16:40 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    "v Basicu končí řetězce nastavením nejvyššího bitu"

    V maloměkkém crippleware ano, ale na Spectru ne. Tam se dá do řetězce vložit absolutně cokoliv, například klíčová slova BASICu přímo z klávesnice. Sinclair pracuje s řetězci inteligentně ;-)
    20.7.2018 23:38 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: BASIC
    Se stringem si můžete pracovat jak chcete. Ale konstantní stringy v ROM má uloženy takto.
    Grunt avatar 21.7.2018 00:14 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Záklandí omyl hodnocení Basicu je, že to nebyl primárně programovací jazyk. On je to spíše shell počítačů Sinclair. I na řadě jiných počítačů měl Basic funkci shellu spíše než programovacího jazyka
    To se může zdát, protože veškeré příkazy jsou interpretem ihned vykonávané, ale kdysi se podařilo tatovi koupit od Proximy nějaké programy. Pamatuju se že tam byl kompilátor BASICu. Vypadalo to jako klasický interpret jen s tím rozdílem že výsledek se uložil na kazetu jako CODE blok. A taky v tom že to bylo oproti interpretu šíleně rychlé. Takže prostě instrukce pro začátečníky. Naprosto ideální.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    20.7.2018 21:14 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC
    Proměnné nebylo potřeba předem deklarovat, což byl častý zdroj chyb.
    Není pravda.

    Proměnné bylo potřeba definovat, pokus o použití neinicializované proměnné vedl na chybu "2 Variable not found".
    20.7.2018 21:17 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC
    ... tedy na ZX Spectru nešlo používat neinicializované proměnné.

    Pravda, nenapsal jsem to moc šťastně. Navíc v případě polí v podstatě o deklaraci šlo.
    I'm sure it crashed in the most type-safe way possible.
    Grunt avatar 20.7.2018 21:56 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Přílohy:
    No tak to jsem normálně zatlačil slzu. Odkazovaný manuál stále mám v originále. Sice už se rozpadá a připomíná salátové vydání, ale co je bonus je fakt že k němu mám i origo růžové kazety co se dodávali k Didaktiku. Je to nejstarší kus kódu co mám v osobním vlastnictví (třicet let staré, vlastně se dodával jako první programy k didaktiku), nicméně do dnešního dne plně funkční. K němu i knížky „SKUSÍŠ TO S MIKROPOČÍTAČOM, poznáváme a programujeme“ a „SKÚSIŠ PROGRAMOVAŤ? BASIC A STROJOVÝ KÓD“ edice Mladé letá. Ty jsou přeložené, pěkné barevné s malovanými roboty, na tvrdém papíře a pokud by to někdo s BASICem myslel vážně (třeba jako výuku potomka), doporučuju radši ty. Mně jako malého kluka zaujaly, třeba to bude fungovat dál. ;-) Jinak nedávno jsem narazil na BASICODE (zde na WoS). To je asi vrchol samotného BASICu. Na Didaktiku funkční ale nepodařilo se mi rozjet jediný ukázkový program což je docela škoda.

    Jinak co se týče výrobního družstva Didaktik vo Skalici, pro zajímavost dodám že stojí do dnešního dne (kupodivu tam co stávalo). Akorát s původním zaměřením nemá už nic společného. Vím to protože do Skalice sem tam umím zajet.

    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    20.7.2018 22:11 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Tak ten je dobře jetý! Já jsem na něj hned preventivně natáhl tlustý obal od školního sešitu, takže vypadá trochu zachovaleji. K tomu jsem měl trojjazyčný sešit od VTM Seznamte se s počítačem (ten oranžový s tím legendátním "SORRY VOLE ERROR" na obálce, a seriál v časopisu Čtení z toku 1989 od inženýra Vondry. A nějaké ty programy v ABC, v různých dialektech...
    Grunt avatar 20.7.2018 22:14 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    SORRY VOLE, ERROR, toť se mi to válí.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    Grunt avatar 20.7.2018 22:22 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Mimochodem, to je legendární hláška :-) Škoda že ten ROM nejde přeprogramovat. Nějaké trapné číselné kódy…
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    20.7.2018 22:26 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Vyměnit ROM není zase tak velký problém, zrovna u mě je to otázka čtyř šroubků a jedné patice. Ale patchnout obraz a proběhnout jí v emulátoru je dnes přeci jen jednodušší :-D
    Grunt avatar 20.7.2018 22:37 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Počkat, počkat, počkat. Jaké máš čísla VTM?
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    Grunt avatar 20.7.2018 23:53 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Ač byl BASIC tenkrát široce prezentován jako programovací jazyk pro začátečníky, z dnešního pohledu tak příliš nepůsobí. Ano, jednoduché věci, především základní výpočty, v něm bylo možné dělat docela jednoduše, ale u rozsáhlejších programů jste museli bojovat s velice nepřehlednou strukturou, která neumožňovala ani oddělení částí programu prázdnými řádky, natož odsazení. Absence návěstí a omezení délky jmen funkcí čitelnosti také rozhodně nepřidalo. Když se k tomu připočítá malý počet znaků na obrazovce, absence skutečného zvýrazňování syntaxe, lokálních proměnných, pořádných funkcí a procedur a podobně, nevychází z toho BASIC vůbec dobře. V mnoha ohledech si člověk při přechodu na assembler připadal jako ve vyšším programovacím jazyce. Svoji pošramocenou pověst si BASIC právem zaslouží a člověku nezbývá než litovat, že tenkrát výrobci domácích mikropočítačů nesáhli po jiné lepší alternativě.
    Haha. A teď si namlátíme milé děti (a to vyloženě protože to zní jako by je jednotlivé instrukce mlátil do paměti kladivem na kovadlině, minimálně patro se při tom třepat musí) do RAMky BASIC od Gejtse a Allena, konkrétně tedy 4k BASIC: Jak zní Sinclair BASIC včil?
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    21.7.2018 12:07 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC
    Jak zní Sinclair BASIC včil?
    Jako vysoce uživatelsky přívětivý :-)

    A já přitom měl obavy, abych sousedy nerušil provozem jehličkové tiskárny... :/

    https://youtu.be/OxaaaTCUS3k?t=2m1s
    Grunt avatar 21.7.2018 13:21 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    A já přitom měl obavy, abych sousedy nerušil provozem jehličkové tiskárny... :/
    To šasi je tak robustní protože to bude nejspíš základ pro něco jiného (tipuju řezačku), že to umí tisknout byla první (a asi taky poslední) varianta. Ale jinak je to úplně stejné jako splašený hřebík (pakl průklepáku se mi ještě někde bude válet). Jinak cena 4990Kčs je naprosto vycucaná z prstu, protože pár stováku k tomu a stálo to jako fungl nová dvourychlostní Babetta. Kdo to vyráběl?
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    21.7.2018 13:33 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC

    Však taky lidi, alespoň co vím, kupovali častěji BT-100, která stála tuším okolo 1400Kčs a později cca 700Kčs (myslím, že jsme ji tehdy kupovali za tolik), BT-100 dokonce tiskla lépe a tišeji, byť extrémně pomalu.

    Výrobce viz foto štítku na mém webu hhttps://cygnus.speccy.cz/popis_printer-gamacentrum01.php - národní/státní podnik GAMA, České Budějovice, závod 5, Milevsko - datum výroby 24.1.1989, tj. v té době za plnou cenu nejspíš zcela neprodejné. I já svůj kus od někoho dostal (takřka nepoužitý v originál obalu).

    Tiskárna k mikropočítačům G - Centrum 01 je určena k bodovému zobrazování párem spřažených hlaviček na jednom mikrořádku. Zobrazení bodu je způsobeno obtiskem uhlového papíru při úderu jehly.

    Dnes už naštěstí můžeme ze ZX Spectra dávno tisknout i na inkoustech a laserovkách, alespoň na těch starých s paralelním portem a jazykem PCL https://cygnus.speccy.cz/popis_printer-deskjet1.php... i z BASICU :-) (abychom neutíkali od tématu příliš)

    21.7.2018 14:56 Karlík
    Rozbalit Rozbalit vše Re: BASIC
    Jo, splašený hřebík.

    Prodávala se i kombinace BT-100 s magnetofonem. Ten magneťák měl asi deset kilo.
    Grunt avatar 21.7.2018 16:36 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    Blaazen avatar 21.7.2018 17:34 Blaazen | skóre: 24 | blog: BL
    Rozbalit Rozbalit vše Re: BASIC
    To jsme měli ve škole u IQček. Ještě za komančů.
    Grunt avatar 21.7.2018 17:38 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Furt funkční (nepočítám zaprášené hlavičky). Je to kus kovu co by pravděpodobně přežil i termonukleární válku. ;-)
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    22.7.2018 20:20 Ondra
    Rozbalit Rozbalit vše Re: BASIC
    Jo, to jeste mam nekde ... problem je, ze nedrzi otazky. Jsem to chtel opravovat, ale zjistil jsem, ze tam je regulator otacek integrovany v motorku. takze menit cely motorek, nebo nic. a motorek k dostani neni.
    22.7.2018 21:49 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    SP-210T s vestavěnou tiskárnou.
    Grunt avatar 21.7.2018 20:16 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Jako vysoce uživatelsky přívětivý
    Zeptám se jinak: Existovalo v éře 8-bitů něco uživatelsky přívětivějšího (klidně v podobě alternativního ROMu či nahratelného programu) než originální BASIC v ROMce Spektra resp. Didaktiku? Je fakt že přehled o ostatních variantách moc nemám.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    23.7.2018 09:34 luky
    Rozbalit Rozbalit vše Re: BASIC
    Doporucuju si precist popis editoru: http://www.cyberroach.com/analog/an16/action.htm
    24.7.2018 12:33 Enre
    Rozbalit Rozbalit vše Re: BASIC
    Osobně jsem měl ve svém klonu ZX takzvanou LEC ROM, která umožňovala psát příkazy z jednotlivých znaků(samo se to ztokenizovalo), obsahovala hex editor a monitor, navíc jestli se nepletu i funkční NMI.
    Grunt avatar 24.7.2018 20:01 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Třeba takto?
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    25.7.2018 01:29 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: BASIC
    Ten teletype je až magicky hypnotizující :-D a tuplem když si uvědomím, že /dev/tty je vlastně zkratka z teletype(writer).
    21.7.2018 14:50 Karlík
    Rozbalit Rozbalit vše Re: BASIC
    S pseudografikou to bylo trochu složitější. Na klávesách číslic byly ty zmíněné hranaté znaky. Zajímavější ale bylo, co se dalo napsat v tomtéž režimu pomocí asi dvacítky kláves písmen (tuším A až U).

    Ano, dal se nastavit ukazatel na začátek celé znakové sady. Ale to se moc často v BASICu nedělalo. Dělalo se něco jiného. Poměrně snadno se totiž daly nadefinovat znaky té asi dvacítky pseudografických symbolů. To se používalo dost běžně. Dalo se tak na klávesnici přidat asi dvacítka písmen s nabodeníčky.
    23.7.2018 14:50 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: BASIC
    Nedavno jsem taky shodou okolnosti otevrel puvodni manual k ZX Spectru + a co me zejmena zarazilo - jak jednoduchy ten BASIC byl. Referencni dokumentace ma 22 stranek.

    Coz je zatracene malicko ve srovnani s jakymkoli dnesnim (prakticky pouzitelnym) programovacim jazykem. Tehdy mi to (jako diteti) pripadalo slozite..
    Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
    23.7.2018 14:55 Anonymous Coward
    Rozbalit Rozbalit vše Re: BASIC
    toto je velka krutost, ne takova, jako dostat ranu do kouli, ale podobna
    23.7.2018 15:45 Kate | skóre: 9
    Rozbalit Rozbalit vše Re: BASIC
    Tak ona se ta jednoduchost docela rychle obrátí ve chvíli kdy nastane potřeba psát v tom složitější věci :)
    23.7.2018 16:59 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Ovšem otázka je, co jsou to složitější věci, když má člověk k dispozici nějakých 40 KiB RAM a na ukládání audiokazetu, kam se prý dají vmáčknout i dva megabajty! :-D

    Ten pluskový manuál je úžasný, dodnes ho vozím na různé akce a ukazuji mládeži. Já jsem si tenkrát musel vystačit se stručnými popisy černobílým strojopisem a pérovkami, na víc se v Didaktiku nezmohli. Ale díky aspoň za to.
    23.7.2018 17:31 Kate | skóre: 9
    Rozbalit Rozbalit vše Re: BASIC
    Já se BASIC učila z úžasně napsané knihy Jak se domluvíme s počítačem, manuál jsem nesehnala :) Na konci už jsem si zvládla na svém ZX Spectru + naprogramovat jednoduchou hru ve stylu Space Invaders (se znakovou pseudografikou)
    23.7.2018 21:47 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Jo, ta je pěkná, před pár lety ke mě také doputovala. Já jsem dřív než počítač dostal "Domluvte se s počítačem", takže jsem měl aspoň představu do čeho jdu.
    Grunt avatar 24.7.2018 20:06 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    když má člověk k dispozici nějakých 40 KiB RAM
    Těch 40 KiB v BASICu vypiš. Ti upadnou prsty. Kor na něčem jako Didaktik.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    Grunt avatar 24.7.2018 20:05 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Naopak. Je až překvapivé co s tím napsat jde. Obzvláště v kombinaci se strojovým kódem. Hele mám něco naskenovat z těch knížek s robotama (v podstatě je to pro děcka) od Usborne publishing?
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    Dnes by ho také nikdo za prakticky použitelný neoznačil ;-) Ten manuál je opravdu hezky udělaný.
    I'm sure it crashed in the most type-safe way possible.
    23.7.2018 17:23 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: BASIC
    co me zejmena zarazilo - jak jednoduchy ten BASIC byl
    Ono to opravdu nic moc sloziteho nebylo, v podstate se jednalo o spoustec predchystanych rutin.
    Coz je zatracene malicko ve srovnani s jakymkoli dnesnim (prakticky pouzitelnym) programovacim jazykem.
    Skoda ze takovy Forth uplne zapadl, pricemz jeho implementace je (co do narocnosti) srovnatelna s BASICem, pricemz vyjadrovaci prostredky jsou mnohem lepsi.
    Tehdy mi to (jako diteti) pripadalo slozite..
    ...ta neotesana jednoduchost a primocarost BASICu byla asi nakonec jeho killer feature. Sice se pak clovek musel odnaucovat spoustu zlozvyku, ale v konecnem dusledku to pritahlo k pocitacum nezanedbatelne mnozstvi lidi.

    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    24.7.2018 10:29 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: BASIC
    Ono to opravdu nic moc sloziteho nebylo, v podstate se jednalo o spoustec predchystanych rutin.
    To ja bych zase nerekl, ze ten BASIC je az tak trivialni, prece jen se v nem dalo napsat (a bylo napsano) dost slusnych aplikaci.
    Skoda ze takovy Forth uplne zapadl, pricemz jeho implementace je (co do narocnosti) srovnatelna s BASICem, pricemz vyjadrovaci prostredky jsou mnohem lepsi.
    To mas naprostou pravdu. S Forthem jsem si hral v Minecraftu (RedPower 2 mod), a moc se mi to libilo, ale bohuzel vetsina lidi proste chce BASIC (nebo aspon Luu), buhviproc. Takze interpret BASICu pro RP2 byl nakonec taky popularnejsi nez originalni interpret Forthu.

    Navic kdyby v ZX ROM byl Forth, dokazala by toho tak 2-4x vic (podle navrhu).
    ...ta neotesana jednoduchost a primocarost BASICu byla asi nakonec jeho killer feature.
    Rekl bych, ze to je prave to, co si nechceme priznat. I Python, ktery tomu BASICu asi dnes ma nejbliz, je dost slozity jazyk.
    Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
    Bystroushaak avatar 24.7.2018 13:10 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: BASIC
    ... a co me zejmena zarazilo - jak jednoduchy ten BASIC byl. Referencni dokumentace ma 22 stranek. Coz je zatracene malicko ve srovnani s jakymkoli dnesnim (prakticky pouzitelnym) programovacim jazykem.
    Ani ne. Tohle jsem slyšel snad na všechny jazyky, včetně Lispu, Smalltaku, Selfu, ale i Pythonu.

    Například Smalltalk se slavně vejde na pohlednici. K čemu ti to ale je, když pak stejně musíš nastudovat tisíc knihoven? Nebo lisp. Celý interpreter i s makry se ti vejde to 1000 řádek C kódu. Syntaxe je doslova na dva řádky vysvětlování. Dělá to pak jazyk a programování v něm jednoduchým? Vůbec.
    24.7.2018 13:22 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: BASIC
    Asi si nerozumime.. Ta referencni dokumentace BASICu na 22 strankach obsahuje i celou tu knihovnu.

    Samozrejme, uz jsme tu rozebirali, ze to neni nijak optimalni, protoze treba s Forthem by se tam dala nacpat nekolikrat vetsi knihovna.

    Ale pro neprofesionala nebo zacatecnika to opravdu je pritulnejsi.
    Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
    24.7.2018 15:16 Kate | skóre: 9
    Rozbalit Rozbalit vše Re: BASIC
    Jenže pokud srazíš Python na subset se schopnostmi toho ANSII BASICu, bude to na těch pár stránek taky. A co jsem tak viděla různé kurzy programování pro začátečníky, na ten subset se většinou v prvních hodinách omezují. Proměnné, print, for cyklus, podmínky…

    Jenže pak se časem přejde na nějaké pokročilé funkce a knihovny a BASIC je v koncích.
    24.7.2018 15:57 luky
    Rozbalit Rozbalit vše Re: BASIC
    Zkus si v pythonu napsat program, kteremu zadas dve strany a uhel a on nakresli trojuhelnik, a pak si to same zkus v basicu na nejakem 8-mi bitu ;-)
    Bystroushaak avatar 24.7.2018 16:32 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: BASIC
    No, to jsem fakt zvědavý v čem se to bude lišit, kromě toho, že python v sobě nemá integrovanou grafickou knihovnu. S nějakou želví grafikou to bude asi tak na tři řádky.
    24.7.2018 16:48 luky
    Rozbalit Rozbalit vše Re: BASIC
    Bude se to lisit tim, ze nejdriv musite vysvetlit, jak doinstalovat python-tk a nasledne vysvetlit, co jsou to moduly. To cely priklad znacne zkomplikuje.
    24.7.2018 17:09 〹
    Rozbalit Rozbalit vše Re: BASIC
    nejdriv musite vysvetlit, jak doinstalovat python-tk
    Rovněž je potřeba počítač vybalit z krabice, zapojit ho a nainstalovat operační systém a ovladače.
    a nasledne vysvetlit, co jsou to moduly
    Proč je potřeba vysvětlovat moduly, ale vysvětlovat built-in funkce BASICu problém není?

    Chápu pointu, že dřív si na programování mohl sáhnout každý, kdo měl počítač, protože měl všechno připravené a stačilo to začít používat. Dnes v ROM žádný interpreter nebývá a operační systémy zpravidla nejsou na výuku programování vybavené. Na žádnou lákavou ikonku, na kterou by stačilo poklepat a ihned začít programovat, ve Windows nenarazíme a ostatně ani v žádné z majoritních linuxových distribucí není situace o moc lepší (systém může mít předinstalovaný ten Python, ale začátečník ani nebude vědět, že ho má hledat, nebo k čemu to je).

    Nevím, jestli je to nutně špatně. Způsobů, jak začít programovat, existuje hromada a kdo má Internet, to svoje si najde. Uznávám, že v tomto ohledu je vstupní bariéra mírně vyšší, ale ne o moc a naopak možnosti toho, co začátečník může s minimem studia následně dělat, jsou výrazně širší.
    24.7.2018 17:42 luky
    Rozbalit Rozbalit vše Re: BASIC
    Proč je potřeba vysvětlovat moduly, ale vysvětlovat built-in funkce BASICu problém není?
    Vysvetlovat built-in funkce se musi jak u pythonu tak u basicu, vysvetlovat moduly je neco, co se musi delat u pythonu navic. Ze stejneho duvodu je na vyuku nevhodna napr. Java, kde se musi zacit prvni program "public class HelloWorld { public static void main(String[] args) {", coz pro zacatecnika znamena asi neco jako "abrakadabra pocitaci, spust muj program".
    Uznávám, že v tomto ohledu je vstupní bariéra mírně vyšší
    Vstupni bariera je obrovska. Byvaly spoluzak se prihlasil na pocitacovy krouzek v domeni, ze se tam hrajou hry, a misto toho na druhe hodine uz kreslili trojuhelniky. Dovedete si predstavit, ze dostanete skupinu deti, ktere nevedi, co je soubor, jak pracovat s okny atd. a po druhe hodine uz budete prgramovat kreslici programy?
    24.7.2018 18:07 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASIC
    Ze stejneho duvodu je na vyuku nevhodna napr. Java, kde se musi zacit prvni program "public class HelloWorld { public static void main(String[] args) {", coz pro zacatecnika znamena asi neco jako "abrakadabra pocitaci, spust muj program".

    Ono takové první setkání s printf() (a pochopitelně scanf()) může být taky celkem traumatizující zážitek.

    Bystroushaak avatar 24.7.2018 18:22 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: BASIC
    vysvetlovat moduly je neco, co se musi delat u pythonu navic.
    No, dobře, v tomhle konkrétním případě. Stejně tak si ale můžu vymyslet nějaký, kde na tom bude BASIC hůř, že. Například vytvoř asociativní pole (dictionary), či stáhni stránku z internetu a zkontroluj, jestli v ní není substring. Nebo něco, kde na tom budou oba stejně blbě, například nakresli rotující 3D krychli.
    Byvaly spoluzak se prihlasil na pocitacovy krouzek v domeni, ze se tam hrajou hry, a misto toho na druhe hodine uz kreslili trojuhelniky. Dovedete si predstavit, ze dostanete skupinu deti, ktere nevedi, co je soubor, jak pracovat s okny atd. a po druhe hodine uz budete prgramovat kreslici programy?
    To zní super, dokud si neuvědomíš, že ten spolužák stejně jako v druhém případě nevěděl nic o souborech, práci s okny a ničem, dokázal jen nakreslit trojuhelník, což je znalost sice silně poetická, ale reálně úplně k ničemu. Ve chvíli, kdy bys vysvětloval třeba jak uložit soubor na nějakém osmibitu, nebo na současných počítačích, tak hádej kde bude lehčí pracovat se soubory.
    Vstupni bariera je obrovska.
    Tohle uznávám, a myslím si, že je to špatně. Problém ale není technického rázu, nýbrž rázu fundamentální filosofie.

    V dnešní době se programování mezi běžnými lidmi bere jako něco komplikovaného a přežitého, hlavně protože to vyžaduje časovou investici a vloženou námahu a správný interface má být přece intuitivní a okamžitě použitelný, aby to dokázal použít i úplný dement.

    Dřív mi přišlo, že počítače se braly víc jako pomocník člověka, než jako spotřební elektronika. Mělo to být rozšíření vlastní mysli, které jsi musel ovládnout, stejně jako musíš ovládnout například matematiku. Od uživatelů se předpokládala jistá gramotnost. Tomu byl trh přizpůsobený, například tím že počítače bootovaly do programovacího jazyka.

    Ukázalo se ovšem, že většina trhu tahle nesmýšlí a peníze nejlíp vyděláš, pokud je prodáš všem s příslibem, že do toho lidi nemusí investovat žádný čas a námahu. Osobně mi na tom přijde škoda, že se to bere často jako buď a nebo. I když si člověk stáhne něco relativně technicky specifického, jako třeba linuxovou distribuci, stejně se všude počítá s tím, že jí bude používat jako uživatel, ne jako tvůrce, pro kterého je počítač médium, rozšíření mysli (viz původní Engelbartův sen).
    24.7.2018 18:24 〹
    Rozbalit Rozbalit vše Re: BASIC
    Nepovažuji za problém abstraktně vysvětlit jednořádkovou konstrukci. Co to dělá lze vysvětlit jednoduše a v podstatě pomocí pojmů, se kterými se pracuje i dál. Já zpočátku také nevěděl, jak fungují unity v Pascalu, což mi ovšem nebránilo je používat.

    S nevhodností Javy na výuku programování vesměs souhlasím, protože se to neobejde bez vysvětlení jejího pojetí OOP. Navrch toho se tam už u jednoduchých programů objevují výjimky a generika. Pokud to někomu bude vyhovovat, budou to spíš výjimky (pun intended).
    Dovedete si predstavit, ze dostanete skupinu deti, ktere nevedi, co je soubor, jak pracovat s okny atd. a po druhe hodine uz budete prgramovat kreslici programy?
    Ano, samozřejmě. Naučil bych je ale jen to, co je naučili na těch osmibitech. Musel bych tedy investovat nějaký čas do přípravy, abych našel nebo vytvořil co nejjednodušší prostředí. Vzhledem k tomu, že na osmibitech byly dedikované klávesy na zadávání klíčových slov, možná bych musel nechat vyrobit na zakázku speciální klávesnici, popř. sehnat klávesnici s multifunkčními klávesami, které bych přebindoval a opatřil je patřičnými nálepkami.

    To zadání je ale nesmyslné, jelikož dnes reálně děti samozřejmě umí nejen pracovat s okny, ale umí toho daleko víc, protože s tou technologií vyrůstají. Omezovat se na faktickou emulaci osmibitů by dávalo smysl leda u dětí z nejnižších sociálních skupin, které s počítačem dosud nepřišly do styku. U těch ostatních nelze předpokládat, že nebudou vědět „jak pracovat s okny“ a nic nebrání tomu používat rovnou něco rozumnějšího. Nemyslím si, že mezi mnou uvedeným příkladem programu v Pythonu (za předpokladu, že bych připravil takový modul, což je ovšem záležitost jednoho odpoledne) a tím BASICem na osmibitu by byl v tomto ohledu podstatný rozdíl.

    Dále existuje například jazyk Karel, pro který existuje i čistě webové prostředí. Nelíbí se mi ani ten jazyk, ani toto prostředí, ale není ostatně problém vytvořit něco lepšího.
    24.7.2018 19:54 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    To prostředí je naprosto luxusní, a tenhle dialekt Karla pravděpodobně nejdokonalejší ze všech existujících. Tedy pro úplného začátečníka. Porovnej si to s tímhle: https://www.youtube.com/watch?v=R9ZeXiz_-B0
    24.7.2018 23:14 Pavel Křivánek | skóre: 29 | blog: Kvičet nezávaznou konverzaci
    Rozbalit Rozbalit vše Re: BASIC
    Příloha:
    Existuje i Karel, který používá programové bloky podobně jako Scratch.
    I'm sure it crashed in the most type-safe way possible.
    Jendа avatar 25.7.2018 16:07 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: BASIC
    Vstupni bariera je obrovska.
    Ano, ale na druhou stranu bych řekl, že 95 % dětí ji zdolalo (s okny pracovat umí).
    Dovedete si predstavit, ze dostanete skupinu deti, ktere nevedi, co je soubor, jak pracovat s okny atd. a po druhe hodine uz budete prgramovat kreslici programy?
    Můžeš jim ten IPython hodit na fullscreen a prohlásit že sedí u toho osmibitu?
    24.7.2018 19:44 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Lišit se to bude minimálně tím, že ten Python s želví grafikou nenacpeš do 8 KiB ROM ;-)

    Viz https://www.youtube.com/watch?v=_9im5fro1rg
    Bystroushaak avatar 24.7.2018 20:44 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: BASIC
    Viz https://www.youtube.com/watch?v=_9im5fro1rg
    Já měl doma Atari 800XE, takže vím jak to fungovalo.
    Lišit se to bude minimálně tím, že ten Python s želví grafikou nenacpeš do 8 KiB ROM ;-)
    To jestli se to vejde do 8KiB ROM zajímá dneska v podstatě už jen pár fetišistů adorujících některé aspekty minulosti, které by jim paradoxně nejspíš v té době přišlo naprosto smysluplné odbourat, kdyby to tenkrát šlo. Mimochodem existuje micropython, který ale pravda vyžaduje 16kB paměti.
    24.7.2018 16:51 〹
    Rozbalit Rozbalit vše Re: BASIC
    To je záležitost knihoven. Dřív to bylo přirozeně jednoduché hlavně proto, že se rovnou zapisovalo do VRAM (tj. žádná renderovací smyčka), bylo málo barev (specifikování barev o délce 24 bitů kód může subjektivně komplikovat) a v neposlední řadě byla inicializace grafického režimu primitivní.

    Nic nebrání tomu takový modul dnes poskytnout v Pythonu, ale bude to do jisté míry za cenu špatného návrhu a její možnosti na nikoho – relativně vůči tomu, jaké dnes máme možnosti a co lidé od počítačů očekávají – neudělají. To je ten hlavní problém. Jinak fakt není problém mít v Pythonu něco jako:
    import grafika # kde načtením modulu se rovnou vytvoří okno o určitém rozlišení atp.
    import time
    
    grafika.barva(grafika.bila)
    grafika.primka(100, 100, 200, 200)
    
    time.sleep(3)
    grafika.vycistit()
    
    grafika.barva(grafika.cervena)
    grafika.primka(100, 100, 200, 200)
    
    Dokonce by šlo ještě upravit ty importy tak, aby se ušetřilo psaní a šlo rovnou psát třeba barva(bila).
    24.7.2018 17:11 luky
    Rozbalit Rozbalit vše Re: BASIC
    Nic nebrání tomu takový modul dnes poskytnout v Pythonu
    Stejne tak nic nebranilo poskytnout neco navic pred X lety. Bezne se prodavali cartridge, kde byly ruzne pokrocile rutiny implementovane v ROM a uzivatel je mohl volat. O tom se tu ale nebavime.

    Bavime se tu o tom, jak jednoduche bylo driv neco naprogramovat, clovek si prinesl pocitac z obchodu, otevrel si knizku a programoval. Dnes si musite osvojit spoustu znalosti, nez se vubec k samotnemu programovani dostanete.
    24.7.2018 17:33 〹
    Rozbalit Rozbalit vše Re: BASIC
    Jo, viz #90. S tím samozřejmě souhlasím, jen nevím, jestli je to špatně.
    Jendа avatar 25.7.2018 16:17 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: BASIC
    clovek si prinesl pocitac z obchodu, otevrel si knizku a programoval. Dnes si musite osvojit spoustu znalosti, nez se vubec k samotnemu programovani dostanete.
    Jednak si myslím, že to není blocker, protože ty znalosti si zjevně skoro všichni osvojit dokázali i z jiného důvodu.

    A jednak si myslím, že to není tak úplně pravda, pokud se tedy nebavíme o počítačích s Windows -- v normálních systémech je interpret nějakého skriptovacího jazyka (s možnostmi a snadností použití daleko překonávajícího osmibity -- což je samozřejmě dáno 100000x vyšším dostupným výkonem a pamětí) dostupný na jeden příkaz. (a konec konců i v těch windows není instalace Pythonu něco, co by lama nedala)
    Bystroushaak avatar 25.7.2018 17:12 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: BASIC
    I ve Windows je visual basic a javascript interpret. Nemyslím v prohlížeči, ale Windows Script Host.
    Grunt avatar 25.7.2018 19:28 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Otevři si odkazovaný manuál k Didaktiku. Teoreticky by sis vystačil s první kapitolou a LOAD "" ale prakticky si se tomu prostě nevyhnul. Pokud ses chtěl naučit ovládat počítač, nezbylo ti nic jiného než se pomalu ale jistě učit programovat. Pokud sis chtěl HW rozšířit (i jen o blbý joystick) nezbylo ti nic jiného než se naučit pájet a pochopit HW stránku počítače. Řekl bych že děcka typu Franta Fuky (dík za odkaz soudruhu) se mohli učit cca věcem tak na úrovni prvního ročníku VŠ (školní děcka!). To vůbec nepočítám dobu kdy žádný SW (vč her) neexistoval či nebyl dostupný a pokud si něco chtěl, musel sis to v BASICu z časáku přepsat. Těžko se to vysvětluje někomu kdo tu dobu nezažil.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    25.7.2018 21:12 Kate | skóre: 9
    Rozbalit Rozbalit vše Re: BASIC
    Já ano (tedy, zažila jsem její konec, kdy na našem malém městečku začalo vystrkovat růžky PC ve formě pár 286, ale osmibity ještě vládly), vyrůstala jsem na Spectru a nezdá se mi že by to bylo dneska nějak horší. Většina děcek si s tím LOAD vystačila, jen ti zvídavější se dostali dál.

    No a dneska? Kolegův syn na základce staví z lega a programuje roboty (teď mu navíc kolega pořizuje 3D tiskárnu), vím o pár dětech co si hrají s Raspberry Pi a bastlí si kolem toho na nepájivém poli... Možná za to může moje sociální bublina, ale nepřijde mi, že by se procento dětí co se věnují technice na (na tuto dobu) nižší úrovni je menší než dřív. Jen se trochu posunula hranice toho co je nižší úroveň. Osobně to dnešní mládeži trochu závidím. Všechno je dostupnější a mají na hraní si s tím čas, kterého já už po práci tolik nemám :)
    Grunt avatar 25.7.2018 21:32 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Většina děcek si s tím LOAD vystačila, jen ti zvídavější se dostali dál.
    Jen dodám že do toho jdou cpát Cartridge alias Atari či Famicom (později diskety, CD alias Playstation). Jenže nevím, i když to šlo, málo lidí se vyhnulo aspoň mírné znalosti programování v BASICu na těch 8-bitech. Různí bastliči, to už je kapitola sama pro sebe. Kdežto dneska v době různých AppStoů je to přitom přesně naopak.
    Možná za to může moje sociální bublina
    Takovou závidím. Tady frčí drogy, tráva, alkohol.
    Možná za to může moje sociální bublina, ale nepřijde mi, že by se procento dětí co se věnují technice na (na tuto dobu) nižší úrovni je menší než dřív.
    To asi jo. To bude konstantní. Zas na druhou stranu díky BASICu se programováni dotkli i lidi kteří neměli úmysl věnovat se technice (jde původně o jazyk určený "to enable students in fields other than science and mathematics to use computers").
    Všechno je dostupnější a mají na hraní si s tím čas, kterého já už po práci tolik nemám
    Chce to jen najít si koníček trošku dál od zaměření oboru. Toť vše.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    25.7.2018 22:00 〹
    Rozbalit Rozbalit vše Re: BASIC
    Nepochopila jsi Gruntův komentář, který v podstatě říká, že živé organismy mají tendenci uzpůsobit se okolnímu prostředí. Život před 30 let měl svoje specifika, na která se tehdejší mládež – překvapivě – adaptovala, stejně jako současná doba má svoje specifika, na která se dnešní mládež – opět velmi překvapivě – adaptovala, přičemž každá doba měla svá pozitiva i negativa, což otevírá prostor pro spoustu rozsáhlých a podstaty prostých diskuzí mezi nostalgiky a zastánci doby přítomné. Absolutní srovnání kvality života v té či oné době je samozřejmě vzhledem k obrovské subjektivitě a tedy nepanujícímu konsenzu o tom, čemu přiřadit jakou váhu, zhola nemožné. Ryze po praktické stránce by samozřejmě každý soudný člověk souhlasil, že přesunout se k vyšším abstrakcím a ultimátně získat širší možnosti za cenu menšího porozumění a praktických znalostí všech dílčích komponent, je s ohledem na reálnou aktuální tržní poptávku jistě obecně výhodnější, leč na subjektivní emotivní výrony lidí, kterým se to tak nelíbí, se těžce reaguje.

    Už jen ta debata o čmárání čar v BASICu zhola ignoruje fakt, že dneska si z takového programu nikdo na prdel nesedne, je-li od dětství obklopen technikou schopnou pohánět hry s téměř fotorealistickou grafikou, možná byl v 3D kině a třeba se mu i poštěstilo si vyzkoušet VR. Pornoweby jsou plné deep fake videí, lidé si kupují cenově dostupné drony, v moderní domácnosti se po podlaze plynule pohybuje Roomba, světla lze rozsvěcet hlasem, telefon odemykat otisky prstů či tváří a na Internetu jsou dostupné satelitní snímky celé zeměkoule. To jsem se ostatně snažil naznačit i tou poznámkou v jednom z předchozích komentářů, kde jsem narážel na to, že emulovat osmibity je naprostý nesmysl.

    Zatímco se jedno dítě bude učit, jak že může vykreslit na obrazovku pár čar, nebo mordovat s Robotem Karlem, druhé děcko si může programovat pohyb skutečného fyzického robota. A tu cestu si samozřejmě najdou, pokud chtějí, smyslem výchovy a vzdělání je především zajistit, že nějaké možnosti vůbec mají, možná je trochu popostrčit nějakým směrem, ale zejména je naučit koncentrovat se na jednu věc déle než pár minut mezi notifikacemi, že vyšlo nové video na YouTube, nebo kamarád na Steamu začal hrát nějakou novou hru.

    Oblíbeným defektem státem zřizovaných vzdělávacích institucí je to zcela ignorovat, jak předvádí někteří lidé zde, a aplikovat reverzní waterfall. Napřed vás naučíme násobit matice, ale k čemu matice jsou se dozvíte až ve vyšších ročnících, pokud se tam tedy dostanete a zvolíte si takovou specializaci, kde to budete potřebovat. Pak to dopadá tak, že lidé dokážou na zadání na papíře provést sadu našprtaných operací, ale aplikovat to nedokážou. Je lepší vědět co a k čemu je integrál a umět ho použít a v krajním případě vyřešit numericky nebo pomocí Wolframu, nebo ho umět vyřešit exaktně na papíře, ale naprosto netušit, k čemu to je? Neodpovídejte, je to řečnická otázka…
    24.7.2018 17:28 Pavel Křivánek | skóre: 29 | blog: Kvičet nezávaznou konverzaci
    Rozbalit Rozbalit vše Re: BASIC
    Přílohy:
    Tady je BASICovská verze (jednoduchá, neřeší zoom apod., jen centrování na obrazovku). Pak šup s tím na ZX Printer ;-)
    I'm sure it crashed in the most type-safe way possible.
    Jendа avatar 25.7.2018 16:12 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: BASIC
    Modul grafika v podstatě existuje a jmenuje se PyGame.
    Bystroushaak avatar 25.7.2018 17:13 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: BASIC
    + Tkinter bývá často balený k pythonu a ten v sobě obsahuje i turtle grafiku pro jednoduché kreslení čar.
    25.7.2018 17:15 〹
    Rozbalit Rozbalit vše Re: BASIC
    Ono toho existuje hodně. Záměrně jsem zvolil něco takto jednoduchého a lokalizovaného do čestiny (protože to by taky někdo mohl vytknout, že na nějakém komunistickém klonu imperialistické technologie to tak třeba bylo). Jinak o PyGame vím, shodou okolností jsem to nedávno někomu doporučoval v poradně, ale moc detailně to neznám. Reálně dnes většinou nedává smysl používat cokoliv jiného než tu renderovací smyčku, takže jsem se po obdobě zápisu do VRAM ani nepídil.
    25.7.2018 00:42 Kate | skóre: 9
    Rozbalit Rozbalit vše Re: BASIC
    Zkus v BASICu napsat program, ve kterém ze souboru na disketě načteš JSON a přečteš hodnotu v klíči "franta".
    25.7.2018 00:44 Kate | skóre: 9
    Rozbalit Rozbalit vše Re: BASIC
    Jo mimochodem, ANSII BASIC pokud vím PLOT neměl a u dost počítačů se muselo pro něco podobného sahat k assembleru, ale možná se pletu :)
    25.7.2018 01:15 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: BASIC
    ANSII BASIC pokud vím ...
    WTF, jaky ANSI BASIC? V te dobe pouzival kazdy BASIC jaky byl k dispozici a nejaka standardizovana varianta byla vsem ukradena. Vyrobcum i uzivatelum.
    PLOT neměl a u dost počítačů se muselo pro něco podobného sahat k assembleru, ale možná se pletu :)
    Nekde byl PLOT, nekde byl treba LINE, ale rekl bych, ze pokud hardware umoznoval pracovat s grafikou na urovni jednotlivych pixelu, BASIC to podporoval taky. Slusi se dodat, ze nekde to z hardwarovych duvodu neslo a tak se pouzival trik s premapovanim jednotlivych znaku (symbolu) tak, aby to odpovidalo vykreslovanym grafickym objektum.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    Commodore 64 pro grafiku podporu v BASICu neměl a pokud tam člověk chtěl něco kreslit na obrazovku, musel to obcházet přes PEEK a POKE.
    I'm sure it crashed in the most type-safe way possible.
    Blaazen avatar 25.7.2018 13:34 Blaazen | skóre: 24 | blog: BL
    Rozbalit Rozbalit vše Re: BASIC
    A nebo nahrát Simons' Basic. Ani jsem netušil, že to napsal 16-ti letý kluk.
    25.7.2018 15:28 Kate | skóre: 9
    Rozbalit Rozbalit vše Re: BASIC
    Přesně tak… Ono je kvůli tomu hrozně jednoduchému kreslení nutné zjistit jak to zrovna funguje v implementaci basicu co mám ve stroji před sebou, jestli to vůbec funguje bez přímého zápisu hodnot do paměti, pokud ne, napsat si rovnou jednoduchou grafickou knihovnu… A jednoduchost je v tahu.

    Oproti tomu, spousta začátečnických tutorialů třeba pythonu ukazuje jednoduchou grafiku na pygame, kde to zas až o tolik složitější než tomu bylo na ZX Spectru není.
    25.7.2018 01:26 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: BASIC
    BASIC a diskety patri do naprosto odlisnych geologickych obdobi, o JSONu ani nemluve.

    Na druhou stranu vykresleni geometrickeho utvaru na pocitaci povazuji za relativne smysluplnou ulohu, kterou zvladaji pocitace jiz delsi dobu, proto je ponekud paradoxni, ze dnes je vyreseni teto ulohy slozitejsi nez driv.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    xxx avatar 25.7.2018 12:38 xxx | skóre: 42 | blog: Na Kafíčko
    Rozbalit Rozbalit vše Re: BASIC
    Naopak je to jednodussi. Muzes to nakreslit v Gimpu.
    Please rise for the Futurama theme song.
    25.7.2018 09:10 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: BASIC
    Ja hlavne nevim, proc bych to v ZX BASICu delal.. Pocitac byl a je nastroj na reseni urcitych problemu. JSON je pseudoproblem, ktery se pouziva jen proto, ze ho pouzivaji jini lide.

    Mozna kdyby otazka byla "zkus v BASICu napsat quicksort", tak by to melo pointu (a dobrou, BASIC skutecne neni idealni reseni pro 8-bity).
    Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
    23.7.2018 17:40 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: BASIC
    Bez urazky, jako uzivatel Sharpa (MZ-800) jsem vzdycky nevericne ziral, jak nekdo muze programovat v tak prisernem editoru jako melo Spectrum nebo Didaktik.

    Na Sharpovi byla cela obrazovka jeden velky REPL (tehdy jsem nevedel, ze se to tak jmenuje) a clovek si tam jen tak odzkousel kus kodu, psal si jak zrovna potreboval, a pak pridanim cisel radku pred prikazy je vlozil do programu na prislusne misto.

    ...a pak jsem cekal dalsich dvacet let, nez jsem objevil LightTable+Clojure, ve kterem jsem se mohl k tomuto hodne komfortnimu pristupu opet vratit. Ironicke na tom je, ze LightTable se oznacuje jako "next generation editor", pricemz ho pouzivam hlavne proto, ze umi veci, ktere umely pocitace pred triceti lety.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    23.7.2018 20:36 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Příšerný vypadá možná proto, že to vlastně vůbec editor není. U Sinclairů se totiž nevkládá zdrojový text, ale rovnou tokeny BASICu zakódované přímo do kláves, čímž odpadá docela velká část překladače. Zároveň to programátora-začátečníka chrání před spoustou překlepů a chyb :-)
    xvasek avatar 31.7.2018 00:15 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: BASIC
    Konečně jsem se dostal k přečtění a moc pěkné. Sám jsem napsal kupu věcí a největší moje dílo byl engine na textovou hru v basicu - obsahovalo to mapu, inventář, příkazy, takové normální věci.

    Každopádnš myslím, že se zapomíná na jeden aspekt tehdejšího programování. Nedílnou součástí programování tehdy byla tužka a papír položené u počítače, kde si člověk psal poznámky: na kterém čísle - resp. rozsahu čísel - je jaký rutina, kam uložit která DATA, který název pole co obsahuje atd. Svět byl tehdy hodně moc konečný a proto spousta zde popsaných problémů ve skutečnosti problémy podle mého názoru vůbec nebyly, protože než se člověk dostal k nějakému nedosatku proměnných nebo tak něčemu, tak zjistil, že jeho návrh se prostě nevejde do paměti a tudíž je potřeba udělat nějaký hack, který to všechno zjednoduší. Na papíře vznikala dokumentace a popravdě se mi takto pracovalo řekl bych i pohodlněji, než s dnešními "nekonečnými" zdroji a stovkami funkcí i u jednoduchých programů. Tehdy se prostě celá idea programu a všechny důležité věci vešly popisem na jednu A4. Tento přístup už dnes není bohužel použitelný a řešíme to jinak.

    Tzn. podobně jako nám z dnešního pohledu připadá neergonomické prostředí ZX Spectra, pokud se na něj chceme dívat z paradigmatu dnešních programovacích nástrojů, je potřeba si uvědomit, že stejně by se daly z tehdejšího pohledu hodnotit současné nástroje a nebál bych se prohlásit je za něco jako peklo, které svou absurdní rozáhlostí, rozežraností a celkovou neefektivitou, nebudí nic jiného, než deskpekt. (Pfuj!)
    xvasek avatar 31.7.2018 00:17 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: BASIC
    PS: Černá Gama, klávesy až do smrti celkem v pohodě. :-)
    31.7.2018 07:03 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASIC
    Nedílnou součástí programování tehdy byla tužka a papír položené u počítače, kde si člověk psal poznámky: na kterém čísle - resp. rozsahu čísel - je jaký rutina, kam uložit která DATA, který název pole co obsahuje atd.

    A milimetrák na grafiku. :-)

    Grunt avatar 31.7.2018 09:16 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Co to? Prosím o rozvedení.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    31.7.2018 09:38 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASIC

    Pohodlné grafické editory tu nebyly odjakživa. Na Spectru jsem sice později na nějaký narazil (jméno už si nevzpomenu), ale ovládání z klávesnice (myš neměl skoro nikdo) stejně nebylo nic příjemného.

    Takže když chtěl člověk nějakého panáčka nebo jiný obrázek, tak se to prostě nakreslilo na milimetrový papír a z něj už s trochou praxe nebyl problém odečítat rovnou hodnoty jednotlivých bytů.

    31.7.2018 09:42 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASIC
    Vzpomínám si, jaké to bylo terno, když jsem v NDR objevil průsvitný milimetrový papír. Poor man's scanner… :-)
    xvasek avatar 31.7.2018 14:09 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: BASIC
    Ten grafický editor bylo ART studio. :-)
    31.7.2018 14:11 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASIC
    Ano, teď už si zcela jasně vzpomínám. :-)
    Grunt avatar 31.7.2018 16:22 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Yup. To byl on. Ten jsem taky dostal ;-)
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    Když si člověk chtěl třeba doplnit font o pseudografiku, nakreslil si ji na čtverečkovaný papír, převedl do binárního kódu, hodil do programu a měl to hotové dřív, než by si na to nahrál nějaký nástroj, pokud ho vůbec měl.
    I'm sure it crashed in the most type-safe way possible.
    Grunt avatar 31.7.2018 10:32 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: BASIC
    Zlaté časy. Já už to nezažil. Já dostal rovnou graf. editor ovládaný joystickem. Škoda no.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    1.8.2018 07:35 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Asi takhle:

    10 FOR I=0 TO 7
    20 READ N: POKE USR "A"+I,N
    30 NEXT I
    100 PRINT "(přepnout na G kurzor)A"
    1000 DATA BIN 0,0,1,1,1,1,0,0
    1001 DATA BIN 0,1,0,0,0,0,1,0
    1002 DATA BIN 1,0,1,0,0,1,0,1
    1003 DATA BIN 1,0,0,0,0,0,0,1
    1004 DATA BIN 1,0,1,0,0,1,0,1
    1005 DATA BIN 1,0,0,1,1,0,0,1
    1006 DATA BIN 0,1,0,0,0,0,1,0
    1007 DATA BIN 0,0,1,1,1,1,0,0


    Zlaté časy! :-)
    1.8.2018 07:37 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Sakra, bez těch čárek :-O
    Blaazen avatar 31.7.2018 15:00 Blaazen | skóre: 24 | blog: BL
    Rozbalit Rozbalit vše Re: BASIC
    Takhle jsem kreslis na Commodoru font a sprity. Já měl tehdy tak vytrénovaný mozek na převod binárních čísel na desítkové, že jsem jel jak fretka.
    31.7.2018 19:24 frankie
    Rozbalit Rozbalit vše Re: BASIC
    Take jsem si kreslil na milimetrovy papir obrazky pro generator znaku. Moc jsem nechapal sesnactkovou a dvojkovou soustavu a pouzival jsem prevodni tabulku. Pak me ale pri hodine cestiny pri tom kresleni nacapal suplujici ucitel matematiky. Zadal vsem cteni a vysvetlil mi, jak muj obrazek odpovida dvojkove soustave a jak to jednoduse prevedu do sesnactkove i kdyz nekde zapomenu svoji tabulku :)
    31.7.2018 23:33 ZX Cygnus
    Rozbalit Rozbalit vše Re: BASIC
    jj, bývávalo...

    Jednou z možností už tehdy bylo to zmíněné Art Studio. Kromě obrázku se v něm dá nakreslit i font následně získaný soubor o délce 768 bytů načíst někam do paměti a nasměrovat na něj systémové proměnné na adresách 23606 a 23607, BASIC pak font mohl používat místo toho z ROM.

    A pokud chcete používat myš s kolečkem, místo na pásku ukládat na disketu s pohodlným klikacím GUI, tak dneska už máme třeba tohle https://cygnus.speccy.cz/popis_ufeditor.php :-) Umožňuje nakreslit plných 256 znaků (ideálně v kódování ISO8859-2).
    1.8.2018 07:31 Radovan
    Rozbalit Rozbalit vše Re: BASIC
    Pěkné, něco podobného jsem si kdysi vyrobil v QBasicu na úpravu/výrobu fontů tiskárny pro T602. V grafice, ovládání myší, tenkrát celkem luxus. Ten osmibit bych na papíře dal, ale při čtyřiadvaceti jehličkách bych se asi ukreslil :-D
    2.8.2018 01:31 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
    Rozbalit Rozbalit vše Re: BASIC
    V qbasicu jsem si udělal generátor exe souborů co uměly vypsat vložený text. Jsem si všimnul, jak programy pro win 3.11 vypisovaly tu hlášku, takže jsem si je v dosshell hexvieweru opsal na papír, přepsal do qbasicu a pak ukrajoval a ukrajoval dokud to ten string vypisovalo :-D. To jsem samozřejmě neměl žádné povědomí o programování a teprve pak jsem si sehnal turbo pascal :-D.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.