Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Programovací jazyk BASIC na osmibitových mikropočítačích (3)

D.A. Tiger aura:65
22. 6. 2010 0:10 Nový

SCALE

celé vlákno

Nadherny clanek, jako vzdy. diky moc.
Nejakou dobu mi vrta hlavou prikaz SCALE. Nejak jsem mel pocit , ze patril prave do sady prikazu ZXek. Bohuzel v litarature kterou mam doma je k nemu pouze napsano (slovensky) „Zmena mirky“. VTF? Nevite prosim nekdo co presne tenhle program delal a jak se s nim pracovalo? Dik

jose
jose (neregistrovaný) ---.sh.cvut.cz
22. 6. 2010 0:53 Nový

Re: SCALE

celé vlákno

V BASICU G na PMD 85 2A prikaz
SCALE 0,10,0,10
nastavil soustavu souradnic tak, ze bod (0,0) byl v levem dolnim rohu a (10,10) v pravem hornim rohu monitoru.
resp. prvni dve cisla urcovala rozsah souradnic na ose X a druha dve cisla na ose Y.
jejej to bylo programovani.. :)
jeste me napada ze ty parametry mozna vubec nebyly oddeleny carkou..

losos
losos (neregistrovaný) ---.bb.online.no
22. 6. 2010 1:14 Nový

Re: SCALE

celé vlákno

a nebylo to z PMD? Kazdopadne na pmd85, pokud me pamet neklame, tak SCALE ma 4 parametry Xmin, Xmax, Ymin, Ymax. Bez pouziti prikazu SCALE se souradnice pro graficke funkce jako napr PLOT, MOVE zadavali v rozmezi x= 0 az 255 a y = 0 az 242 SCALE meni meritko tak ze levy okraj bude mit Xmin, pravy Xmax atd. Anebo jinak, defaultne je SCALE 0,255,0,242 a napr. po prikazu SCALE 100,500,200,6­00 bude levy okraj zacinat na 100, pravy koncit na 500, spodni bude 200 a horni 600 = levy spodni roh ma soradnice 100,200 a pravy horni 500,600. Nedojde k zadne zmene rozliseni, vsechno prepocitava do rastru 255×242

snehuliak
snehuliak (neregistrovaný) 144.160.226.---
22. 6. 2010 4:24 Nový

Re: SCALE

celé vlákno

Spectrum nemalo SCALE, SCALE bolo urcite na PMD-85, pozri aj moj posledny komentar v predoslom clanku – http://www.root.cz/clanky/programovaci-jazyk-basic-na-osmibitovych-mikropocitacich-2/nazory/351950/

D.A. Tiger aura:65
22. 6. 2010 21:24 Nový

Re: SCALE

celé vlákno

Díky všem za vysvětlení i vyvedení z omylu. Snad s tím teď pohnu :)

Trm
Trm (neregistrovaný) ---.inf.upol.cz
22. 6. 2010 8:00 Nový

proc serial o nekoncepcnich shitech

celé vlákno

Nechapu, proc se na rootu pise nekonecny serial o takovem nekoncepcnim shitu, jako je BASIC. Krome toho, ze to je jazyk, ktery rade programatoru nakurvil programovaci styl na cely zbytek zivota, neni nicim zajimavy.

Praclovek
Praclovek (neregistrovaný) ---.opera-mini.net
22. 6. 2010 8:21 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Mokrý hadr na hlavu to spraví, žádný strach.

Seesa
Seesa (neregistrovaný) 213.192.2.---
22. 6. 2010 8:25 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Ano, je to nekoncepční s*it, ale mnoho, mnoho a mnoho programátorů na něm začínalo – a štvalo je omezení tohoto jazyku.
Dnes mi připadá velmi zajímavé přečíst si takový článek, zavzpomínat na „staré“ časy a rozhodně je to dobré pro srovnámí možností tehdejší a dnešní výpočetní techniky.
PS: Zvyk je železná košile: při pročítání těch BASICových instrukcí jsem automaticky přeřadil na CESTINU, tedy bez háčků a čárek, byť takto už pár let nepíšu :)

jarous
jarous (neregistrovaný) ---.suas.cz
22. 6. 2010 16:11 Nový

BASIC - nejrychlejší cesta k výsledku

celé vlákno

Kdysi na konci 80. let jsem vedl kroužek programování v pionýráku. Byly tam Didaktiky Gama. Pln „koncepčního“ nadšení jsem je začal učit Forth. To jsem dopadl. Tak jsem zkusil alespoň Pascal „HiSoft“ i tak jsem dopadl špatně. Nakonec jsme skončili u BASICU.
Basic je totiž nejrychlejší programovací jazyk, jak dostat rychle výsledek ( když nebyly tabulkové procesory ) .Potřebuji-li si něco rychle a jednorázově spočítat, tak bezkonkurenčně nejrychleji na to udělám program v Basicu.
Když jsem něco potřeboval rychle a pro jedno, nebo pár použití, vždy jsem použil Basic. Jinak jsem programy na Spectru dělal většinou v HiSoft Pascalu.

Karel
Karel (neregistrovaný) 93.90.162.---
22. 6. 2010 17:52 Nový

Re: BASIC - nejrychlejší cesta k výsledku

celé vlákno

Přesně tak. Asi se nás většina shodne na tom, že „Spaghetti code“ je špatný. Ale lze vůbec u programu na 20 řádků mluvit o „Spaghetti code“? Jako programovatelná kalkulačka je BASIC výborný. Tedy do doby, než člověk začne pošilhávat po „knihovnách funkcí“, kdy mu začnou globální proměnné podrážet nohy.
Což je ostatně jedna věc, kterou BASIC na ZX Spectru neuměl, a která se dá považovat za zásadní věc a celý BASIC tím poslat na věčnost. Konkrétněji je to volání podprogramů s parametry, základní to kámen rekurze. Například klasický faktoriál:
fact(a): a <= 1 ? a : (a * fact(a-1))
Tohle ZX Spectrum BASIC skutečně neuměl a nedal se k tomu žádným způsobem znásilnit. Proto jsem, coby odchovanec ZX Spectrum BASICU, měl v Pascalu i C trochu problémy s tím, že jsem všechno psal jako iterace. Teprve na VŠ jsem pochopil, k čemu ta rekurze může být dobrá.

dex
dex (neregistrovaný) ---.eurotel.cz
23. 6. 2010 22:29 Nový

Re: BASIC - nejrychlejší cesta k výsledku

celé vlákno

Dá se znásilnit.
DEF FN f(n)= VAL ((„1“ AND n<2)+(„n*FN f(n-1)“ AND n >= 2))
viz http://busy.speccy.cz/tvorba/rekurzia.htm

Karel
Karel (neregistrovaný) 93.90.162.---
24. 6. 2010 14:16 Nový

Re: BASIC - nejrychlejší cesta k výsledku

celé vlákno

Tak i po 18 letech člověk nachází novinky. Rekurzi jediného výrazu jsem znal, teď už znám i způsob jak zvládnout složitější výraz. Sice to je pořád jen rekuzivní výraz a ne rekurzivní podprogram, ale řada věcí by s tím již řešit šla. Akorát to tedy nevypadá moc hezky a asi bych zůstal u iteračních verzí… Ladit takovouhle rekurzi by se mi nechtělo :-) Každopádně beru zpět své tvrzení, že znásilnit se BASIC nedal.

BLEK.
BLEK. (neregistrovaný) ---.strcechy.adsl-llu.static.bluetone.cz
24. 6. 2010 17:21 Nový

Re: BASIC - nejrychlejší cesta k výsledku

celé vlákno

… a byla tam buga, ze se ten parametr nesmel pouzit po zavolani rekurzivni funkce, pouzil-li by se, tak bude mit hodnotu z te vnitrni rekurzivni funkce. Ve skutecnosti tam totiz v pameti byla jen jedna hodnota toho parametru.

BLEK.
BLEK. (neregistrovaný) ---.strcechy.adsl-llu.static.bluetone.cz
24. 6. 2010 17:22 Nový

Re: BASIC - nejrychlejší cesta k výsledku

celé vlákno

– cili n*FN f(n-1) da spravny vysledek a FN f(n-1)*n da spatny.

Pavel Tišnovský aura:98
25. 6. 2010 10:57 Nový

Re: BASIC - nejrychlejší cesta k výsledku

celé vlákno

To je „by design“ aby nepřetíkal zásobník :-)

Pavel Tišnovský aura:98
22. 6. 2010 9:16 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Je samozřejmě pravda, že BASIC (ten klasický, ne třeba Beta BASIC) na jednu stranu nutil programátory dělat „ústupky“, například používat globální proměnné a řízení běhu programu pomocí GOTO, ale jen velmi málo jazyků bylo možné spolu se základním operačním systémem nacpat například do 4 kB ROM (ZX80) nebo 8 kB (spousta dalších osmibitů).
Napadá mě jedině FORTH, ale ten se (bohužel) nerozšířil tak jako BASIC, i když zrovna v CSSR měl poměrně velkou podporu. No a vzhledem k tomu, že o FORTHu už se tady psalo, tak se doplnil BASICem :-), určitě za tím nehledej agitačku na VB nebo něco podobného.

Pavel Tišnovský aura:98
22. 6. 2010 9:33 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Ještě bych doplnil myšlenku o zničení programovacího stylu – tak to promin, ale někdo, kdo se nedokáže „přepínat“ mezi různými styly, si nemůže říkat programátor (i když dneska mají mladší raději slovo vývojář :-).
I při programování v současných mainstreamových jazycích (tím myslím strukturované programování trošku říznuté jednou z větví OOP) je nutné pracovat s různými minijazyky a problémově orientovanými jazyky, které mají zcela odlišnou filozofii a programátoři by měli po relativně krátkém čase zvládnout i tyto jazyky a styly.
(nehledě na to, že právě díky omezenostem „osmibitových“ BASICů se programátoři celkem rychle přesouvali směrem k assembleru a například po přechodu na PC k Pascalu, což ovšem mnohdy bylo z bláta do louže :-)

Biktop
Biktop (neregistrovaný) ---.28.broadband3.iol.cz
22. 6. 2010 11:04 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Podle mě víš o programování kulový. Programovací jazyk vždy byl, je a bude jen nástrojem. Při přechodu z BASICu na vyšší jazyky měli někteří ze začátku problémy s přivyknutím na strukturované programování, ale opravdu neznám jediný program v jazyku podporující strukturované programování, přesahující rozsahem nějak výrazněji „hello, world“, který by se hemžil GOTO a byl bez lokálních proměnných. Kromě toho, z BASICu se nejčastěji přecházelo na Assembler a pro ten byl BASIC naopak velmi dobrým předstupněm. A až mi předvedeš nějakou machrovinku, jakou dokázali ti lidé tenkrát vymáčknout ze svých 8bitů, tak teprve bude tvůj názor aspoň trochu relevantní.
Znám spoustu výtvorů, které se dnes dokonce prodávají za peníze a jsou vydávány za práci profesionálů, jejichž autoři o BASICu sice jen četli v historické literatuře, ale ten pravověrný BASICář z doby před 20 lety by to napsal v BASICu elegantněji a lépe, než co zplodili oni v Javě nebo C++ – naprosto zprasený návrh hierarchie tříd a dědických vztahů, indikující, že analytické a abstraktní myšlení je těmto lidem úplně cizí věcí, z toho plynoucí nezbytnost dále to celé prasit a činit ještě neefektivnějším, nepřehlednějším a děravějším. Dneska se holt do programování cpe každé nemehlo, které by před 20 lety nemilosrdně bylo vyřazeno v praktickém životě neschopností konkurovat ostatním a ve školním pomocí matematiky, která se velmi správně považovala za základní předpoklad pro schopnost programovat a analytické uvažování.

JS
JS (neregistrovaný) 130.119.248.---
22. 6. 2010 11:15 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Protoze to byl temer jediny vyssi jazyk pro 8-bity. Co bylo za alternativy? Mozna Forth, a o tom uz pan Tisnovsky psal.

phi
phi (neregistrovaný) ---.syscae.cz
22. 6. 2010 12:42 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

ale houby, to je stejne jako ptat se, proc je v muzeu parni stroj …
mimochodem, je celkem zajimave, jakym zpusobem se vlastnosti BASICu obchazely (komentare, fejkovani lokalnich promennych pomoci recyklace nekolika malo globalnich promennzch, dusledne komentovani zacatku podprogramu, pouzivani promennych v prikazu GOSUB jako nahrada za neexistujici procedury, fejkovani struktur pomoci prikazu DATA a RESTORE atd.)

_dworkin
_dworkin (neregistrovaný) ---.cust.nbox.cz
22. 6. 2010 13:32 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

cite: „Nechapu, proc se na rootu pise nekonecny serial o takovem nekoncepcnim shitu, jako je BASIC. Krome toho, ze to je jazyk, ktery rade programatoru nakurvil programovaci styl na cely zbytek zivota, neni nicim zajimavy.“

No mozna proto, ze to bylo a podle me asi porad je nejlepsi reseni splnujici pozadavky na nej kladene a bezici na tehdejsim hardwaru.
1) Nahrazoval OS, bash. Takze to musel byt interpret.
2) Slo by udelat asi jen nejaky monitor, text. editor a par zakladnich prikazu na nahravani souboru a spousteni programu, ale mezi tehdejsi zakladni pozadavky na pocitac bylo ze na tom budes moci (konecne) programovat! A to vsichni, vcetne uplnych zacatecniku, takze podle me FORTH odpadava. A pokazde nahravat 5 minut nejaky programovaci jazyk z pasky by se nikomu nechtelo, zvlast kdyz konkurence ho ma implementovany v ROM.
3) IF THEN ELSE, lokalni promene, podprogramy a dalsi „vymozenosti“ tam nejsou proste proto, ze tyhle veci maji svoji rezii a podle me nejdou udelat v interpretu tak, aby nebyly pomalejsi nebo nezabiraly vic pameti. A to si uz rozmyslis jestli budes mit lokalni promene a pomaly program, nebo si promene budes hlidat sam a mit vic pameti a rychlejsi program..
4) Kdo to myslel vazne tak stejne programoval primo v asembleru, ale ten podle tebe musi byt stejne nekoncepcni. :)

_dworkin
_dworkin (neregistrovaný) ---.cust.nbox.cz
22. 6. 2010 14:02 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Eh.. a odpoved proc se vubec pise o Basicu? No asi proto, ze to nekoho zajima. :) Pro me osobne (kdo to jako maly kluk zazil) je to jeden z nejzajimavejsich clanku na rootu za posledni dobu. Rad jsem si zavzpominal a pokud vim (kdyz jsem se nenapadne vetrel na prednasku) tak se o tomhle tematu uci dodnes. Napr. na FITu http://www.fit.vutbr.cz/study/course-l.php.cs?id=6295 (I kdyz prednasejici jen prezentoval nevyhody a vetsina studentu stejne nevedela o co slo, pokud zrovna nehrala poker ve flashi :) )

Radovan
Radovan (neregistrovaný) 88.146.198.---
22. 6. 2010 17:23 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Nechapu… ano, skutečně nechápeš.

1) V roce 1964 kdy BASIC vznikl měl koncepci zatraceně dobrou, umožňoval neprogramátorům používat počítače v interaktivním režimu, navíc hromadně, protože to byl první jazyk navržený speciálně pro systém sdílení času. Podobal se pochopitelně FORTRANu, který v té době a ještě pár desetiletí potom počítačům vládl, a umožňoval tak snadný přechod na něj.

2) V sedmdesátých letech patřil k povinné výbavě minipočítačů (i některých mainframů), a používali ho často i profesionálové, zejména proto, jak už tu napsali jiní, že je to jazyk ve kterém se programy tvoří nejsnadněji a nejrychleji, aspoň ty jednoduché. Takže pro zpracování pár stovek nebo tisíc údajů nemá smysl týden něco datlit a odlaďovat v nějakém „skutečném“ programovacím jazyce, když totéž zvládnu za jedno odpoledne v BASICu. Dnes za dvě odpoledne v nějakém spreadsheetu.

3) Právě kvůli té jednoduchosti a přístupnosti laikům byl zvolen jako hlavní jazyk nově vzniklých mikropočítačů (které byly určené „normálním*“ lidem) a spolu s nimi ovládal svět po celé desetiletí jejich slávy, dokonce i originální IBM-PC ho měly v ROM, odkud se spouštěl automaticky, pokud nebyla v mechanice bootovací disketa. Jednu takovou 386ku tady také mám.

4) Root čte spousta lidí kteří s BASICem začínali a dodnes na něj vzpomínají, a také dost takových kteří si aspoň postesknou že tyhle časy bohužel nezažili, a ti mladší se aspoň poučí jak to bylo před lety, kdy se frekvence procesorů měřily ma megahertzy (někdy ani to ne) a velikosti pamětí na kilobajty, neboť „Staré-li seznáš, pro nové sílíš“, jak se tady u nás píše na jedné staré vilce, aspoň jim dojde že problémy se kterými se dnes střetávají dávno před nimi vyřešili jiní, a často lépe.

5) Pokud jde o kurvení stylu, spíš bych nadával na objektové programování a některé „moderní“ jazyky, které sice jako novinky přinášejí funkce, které měl BASIC před skoro padesáti lety, ale z programátorů vychovávají líné lemply, neschopné si ohlídat ani kolik paměti jejich aplikace žere, natož aby je napadlo že přeházením pár vnořených smyček můžou ušetřit stamiliony zbytečných oběhů. Že to v době gigahertzových vícejádrových procesorů a gigabajtových pamětí není třeba? Ale je, a já jsem se to naučil právě v BASICU!

6) Vezmi si příklad z Billa Gatese, ten se „svým“ BASICem protlačil Micro-Soft co počítačového průmyslu, dalo by se říct že to bylo jeho první dílo, a naopak jeho poslední dílo byl GW-Basic, na jehož vývoji se podílel v osmdesátých letech, čímž skončila jeho desetiletá kariéra programátora. Pak následoval Quick Basic a jeho krippleware verze QBasic, potom Visual Basic, C# a .NET. které toho bohužel z BASICu obsahují o dost víc, než by jim bylo ku prospěchu.

7) A navrch aspoň jeden příklad z historie, letoun Voyager, který v roce 1986 jako první obletěl Zeměkouli bez mezipřistání (na jednu nádrž), počítal jeho tvůrce Burt Rutan ve vlastnoručně napsaném programu v BASICu na Apple II.

* Kdo normální by tehdy chtěl mít doma počítač ;-)

Radovan
Radovan (neregistrovaný) 88.146.198.---
1. 7. 2010 17:20 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

P.S. kdyby to jednou někdo četl, tak jsem narazil na zajímavý článek o tom kurvení stylu: programatorske-schopnosti-absolventov-klesaju-problemom-je-java

Pavel Tišnovský aura:98
7. 7. 2010 11:02 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

nj. taky bych osobne Javu jako prvni programovaci jazyk nevolil, ale svadet nedostatecne znalosti studentu na Javu IMHO nejde, je to veci osnov te ktere skoly (a pokud se dnes IT typicky uci v kombinaci napriklad s managementem, tak se neni cemu divit ne?).
Vzdyt Java/BASIC/C/as­sembler/LISP/… jsou jen nastroje, na kterych se da rozumne stavet az po projiti kurzu o datovych strukturach, grafovych aj. algoritmech, automatech, gramatikach atd. To se doufam na IT skolach jeste uci :-)

Biktop
Biktop (neregistrovaný) ---.28.broadband3.iol.cz
9. 7. 2010 14:48 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Jde o to, co to je IT škola. „IT“ má ve studijním programu dnes každá soukromá VŠ, aby přitáhla zájemce. Ale samozřejmě Vámi naznačené věci se tam neučí a pokud se o nich někdo na nějaké přednášce zmíní, rozhodně je nezkouší. Absolventi pak propadnou přesvědčení, že jsou z nich IT experti, aniž by se computer science vůbec dotkli. To pak samozřejmě deformuje celé odvětví. Navíc – při množství absolventů „IT“ oborů ani není možné, aby se tam ty věci učily – tolik lidí, kolik jich absolvuje, na to prostě tu hlavu v žádném případě nemá a praxe to jen potvrzuje.

Pavel Tišnovský aura:98
9. 7. 2010 17:26 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Otazkou potom ovšem je, co se tam těch pět let učí :-) Tvorba grafů v Excelu a dělání prezentací v PowerPointu? ;-)
Asi už jsem trošku starý, ale základy algoritmizace, výuku datových struktur (aby student například pochopil, že když bude cpát do asociativního pole prvky se stejným hashem, tak z toho udělá lineární seznam :-), gramatik, automatů a trošku té složitosti (aspoˇn tušit že něco se složitostí O(n3) už může být fuj, raději brát třeba alogritmus s O(n log n)) si myslím patří do „základního IT vzdělání“ nebo to už taky neplatí?

Radovan
Radovan (neregistrovaný) 88.146.198.---
9. 7. 2010 18:20 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Před delším časem jsem snad v nějakém blogu četl zajímavý zážitek, jak autor nahlédl do skript na výpočetní techniku kamarádovi, co studoval ekonomiku. Jakou byste si tipl odpověď na otázku „Co je to mikroprocesor?“

Správná byla tahle: „Mikroprocesor je hybná síla počítače.“ 8-O

Pavel Tišnovský aura:98
9. 7. 2010 18:24 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Vidím, že tento předmět by byl pro mě moc složitej, to bych nedal :-)
A pevný disk je v počítači kvůli jeho ochraně proti mechanickému poškození (když je pevný)?

Radovan
Radovan (neregistrovaný) 88.146.198.---
9. 7. 2010 19:06 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Tak to netuším, sice tu mám sbírku ledajakých skript, ale tyhle humoristické se mi do ruky zatím nedostaly :-D Ale trochu mě děsí, jestli je tohle učí ve výpočetce, co za bláboly jim lijí do hlavy v ekonomice!

Pavel Tišnovský aura:98
9. 7. 2010 19:21 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Já jsem (skoro) poznal jednoho človíčka na VS, co po svých studentech na písemné zkoušce chtěl, aby mu napsali, ve kterém menu se nachází různé příkazy Wordu a jak se přesně ty příkazy v tom menu jmenují.
To jsem ovšem považoval za úlet a buzeraci někoho, kdo IT neznal do té míry aby se tím mohl živit nebo to učit na IT-pozitivní škole (tady šlo o farmaceutickou fakultu a IT předmět tam byl jen do počtu).
O tom, že se v tom Wordu učili formátovat bez stylů ani nemluvím.

Radovan
Radovan (neregistrovaný) 88.146.198.---
10. 7. 2010 11:32 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

UGH! Doufám že tenhle „odborník“ také udal ve které verzi MSO to požaduje!
Já jsem se s Wordem nikdy nesžil, na rozdíl od zlaté T602, takže když jsem kdysi potřeboval něco jako VYSIWIG editor, tak jsem si to radši napsal a zformátoval v Notepadu v čistém HTML (aspoň jsem se ho pořádně naučil), a pak vytiskl přímo z IE.
Zajímavé pak byly pokusy o načtení mých výtvorů do Wordu, který systém vnořených tabulek totálně nepobral a nedokázal z nich ani vycucnout holý text, což se s problémy podařilo Excelu :-D

Kokod
Kokod (neregistrovaný) ---.net.upc.cz
23. 6. 2010 2:38 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Udělat si z kusu šutru nůž bylo taky nekoncepční, a kde díky tomu teď jsme…

Effe
Effe (neregistrovaný) ---.84-47-115.t-com.sk
23. 6. 2010 12:20 Nový

Re: proc serial o nekoncepcnich shitech

celé vlákno

Blahoslavení chudobní duchom, lebo tých bude kráľovstvo nebeské…

onyx
onyx (neregistrovaný) ---.fsid.cvut.cz
22. 6. 2010 8:23 Nový

Doplnění

celé vlákno

Možná by stálo za to zmínit, že obr. 10 pochází ze ZX80. ZX Spectra nemají invertovaný znak > jako řádkový kurzor. Invertovaný je ještě použit v Beta Basicu.
Co se týká vkládání znaků, tak Beta Basic 1.0 umí vkládat klíčová slova jenom stiskem jedné klávesy. Popisovaný režim, kdy se po stisku mezerníku změní režim na vkládání po jednotlivých znacích je jeden ze tří režimů. První je klasický, kdy se klíčová slova vkládají stiskem jedné klávesy, druhý je vkládáním po jednotlivých písmen (bez nutnosti stisku mezerníku) a třetí je zmíněný kombinovaný, kdy při vkládání nového příkazu je moźnio vložit klíčové slovo jednou klávesou a po stisku mezerníku je možné vkládat příkazy vypsáním.
Co se týká zobrazování znaků, tak je také možné definovat oblast, do které příkaz PRINT vypisuje znaky a je možné také vypsat znaky na libovolnou pixelovou pozici pomocí příkazu PLOT. Je také možné „měnit“ počátel a velikost souřadného systému, při vykreslování se pak provádí přepočet na rozlišení 256×192.

Pavel Tišnovský aura:98
22. 6. 2010 9:35 Nový

Re: Doplnění

celé vlákno

Díky za doplnění informací o Beta BASICu. Stejně mě překvapuje, že přepínání režimů bylo například v 128k BASICu složitější než v Beta BASICu, byl pro to nějaký vážnější důvod?

onyx
onyx (neregistrovaný) ---.fsid.cvut.cz
29. 6. 2010 10:54 Nový

Re: Doplnění

celé vlákno

No, nejsoíš to bude tím, že 128 BASIC žádné přepínání nemá. 128 BASIC (a stejně tak +3 BASIC) má jenom celoobrazovkový editor s vypisováním příkazů po písmenech. Na klávesnici nejsou ani klíčová slova (teda, jsou tam tři: RUN, LOAD, CODE), takže nějaké režimy vkládání nebyly ani zamýšleny. Režim 48 BASIC mají tyto počítače kvůli kompatibilitě některých programů, takže jiné použití než nahrání programu a jeho spuštění se v tomto režimu nepředpokládalo.
Zajímavé je, že na počítačích 128+ a +2 příkaz SPECTRUM přepne do režimu 48 BASIC se zákazem všech 128 rozšíření, zatímco na počítačích +2A a +3 tato rozšíření zakázána nejsou (není zakázáno stránkování paměti, takže pokud nejsou přepsány sytémové proměnné, lze se přepnout zpět do režimu +3 BASIC, nicméně nejedná se o oficiální funkci – prostě se spustí jedna stránkovací rutinka)

Praclovek
Praclovek (neregistrovaný) ---.opera-mini.net
22. 6. 2010 8:37 Nový

ProDOS

celé vlákno

Myslím, že by mělo být zmíněno velmi zajímavé rozšíření Sinclair Basicu – tzv. ProDOS neboli Professional Display Operating System.
Využívalo obsluhu zpracování chyby, takže se nové příkazy zadávaly pomocí takzvané hvězdičkové notace – prostě před novým příkazem byl znak ‚*‘. ProDOS pochopitelně už před editací musel být v RAM a inicializovaný. Podobně fungovaly i příkazy Interface1 – tam byla ale obsluha chyby ve stínové RAM, překlápěná podle toho, zda se na sběrnici vyskytl kód instrukce tuším RST8 (je to tak dávno…).
ProDOS uměl spoustu věcí pro práci s grafikou – byla hračka s ním např. dělat grafy – sloupcové, koláčové atd…, vyplňovat vzory bitmapou atd…prostě vše co Sinclair Basic v tomto směru neuměl.
K nám se to dostalo tak, že jsme to přepsali z dlouhatánského hexa výpisu v jednom zahraničním časopise – pak pochopitelně disassemblovali a něco z toho použili i jinde – např. pro vytvoření příkazů pro plotter Alfi či SHARP MZ 1P16 byla obsluha chyby a hvězdičková notace vynikající nápad…

Substance242
Substance242 (neregistrovaný) 213.151.209.---
22. 6. 2010 10:50 Nový

flash

celé vlákno

„FLASH (skutečně nejde o spuštění Flashové animace)“
:-D Ale vlastne by som sa až tak nečudoval, keby to nejaké demo-kodér spravil. :-)

Colo
Colo (neregistrovaný) ---.coface.sk
22. 6. 2010 11:06 Nový

pre p.Tisnovskeho

celé vlákno

Zdravim, poslal som Vam cez vikend link na par myslim zaujimavych foto co som nafotil poslal som to na tu adresu ktoru mate uvedenu na roote.

Pavel Tišnovský aura:98
23. 6. 2010 16:32 Nový

Re: pre p.Tisnovskeho

celé vlákno

Mockrat dekuju, uz jsem odpovedel e-mailem (bohuzel ne hned, me to vzdycky trva delsi dobu ;-)

legoxx aura:100
22. 6. 2010 11:29 Nový

Inverzne znaky v ROMKE

celé vlákno

Zaujimalo by ma preco boli v ROMke ulozene aj inverzne znaky, ked je mozne ich jednoduchou logickou operaciou odvodit z normalnych? Par bajtov sa mohlo usetrit…

Colo
Colo (neregistrovaný) ---.coface.sk
22. 6. 2010 11:39 Nový

Re: Inverzne znaky v ROMKE

celé vlákno

Kvoli rychlosti ?

phi
phi (neregistrovaný) ---.syscae.cz
22. 6. 2010 12:51 Nový

Re: Inverzne znaky v ROMKE

celé vlákno

ale to nebyly

Radovan
Radovan (neregistrovaný) 88.146.198.---
22. 6. 2010 16:25 Nový

Re: Inverzne znaky v ROMKE

celé vlákno

Možná proto, že u ZX80 by to znamenalo pár integrovaných obvodů navíc, a to bylo přesně to, čemu se v Sinclairu chtěli vyhnout. Tahle firma byla svými minimalistickými řešeními proslulá dávno předtím než se vrhla na počítače, v roce 1971 vyráběla například nejmenší tranzistorové rádio na světě (menší než krabička zápalek) Micromatic, v roce 1975 přišla s unikátními digitálními hodinkami Black Watch, které se (dávno před ZX81) daly pořídit také jako stavebnice! O kapesních kalkulačkách a přenosných miniaturních televizích nemluvě…

Karel
Karel (neregistrovaný) 93.90.162.---
22. 6. 2010 17:58 Nový

Re: Inverzne znaky v ROMKE

celé vlákno

Ono pisatele zmátl popis obrázku. Na něm nejsou znaky uložené v ROM, ale zobrazitelné znaky. A poznámka, že to umí jen 64 znaků a že dalších 64 znaků šlo dosáhnout inverzním zobrazením těchto 64 znaků. Takže v ROM skutečně nebyly uložené invertované znaky, ale jen těch 64 neinvertova­ných :-)

Radovan
Radovan (neregistrovaný) 88.146.198.---
22. 6. 2010 18:05 Nový

Re: Inverzne znaky v ROMKE

celé vlákno

A tak, ale abych pravdu řekl, u Sinclaira by mě to nepřekvapilo :-D

phi
phi (neregistrovaný) ---.syscae.cz
22. 6. 2010 13:25 Nový

pro p.Tišnovského

celé vlákno

jak jsem tak četl o těch nestrukturovaných šitech, vzpomněl jsem si na své krátké, ale velmi zajímavé působení v jedné české bance, kde jsem viděl poprvé a naposled v životě ibm mainframe v „akci“…
takže kdyby vám náhodou docházely nápady o čem psát (a o tom pochybuju, takhle podrobně se dá o historii počítačů psát pěkných pár let), tak byste mohl ukázat čtenářům, v jakém nestrukturovém shitu (COBOL+asm+jakýsi interpret, který si napsal zaměstnanec banky, aby to nemusel všechno bušit v asm) se píšou/psaly programy, na jejichž správné funkci zavisí jejich, moje, vaše existence :) (ve smyslu fungování v světě, v němž každý spoléhá na svou bankovní kartu )

Biktop
Biktop (neregistrovaný) ---.28.broadband3.iol.cz
22. 6. 2010 14:01 Nový

Re: pro p.Tišnovského

celé vlákno

Podstatné je to, jestli to funguje a je to spolehlivé. Jízdní vlastnosti aut taky neposuzuji podle barvy jejich karoserie.

legoxx aura:100
22. 6. 2010 16:03 Nový

Re: pro p.Tišnovského

celé vlákno

v bankach a spol ide aj o to ze na tieto stare systemy je naviazanych vela roznych interfacov a prepojeni ktore by bolo treba vsetky prerobit, takze ked to funguje a robi to co ma… nesahaj na to;-)

dex
dex (neregistrovaný) ---.fnb.cz
22. 6. 2010 16:14 Nový

Re: pro p.Tišnovského

celé vlákno

No ono když něco funguje, třeba bankovní program v Cobolu, nebo třeba nějaký matematicko-fyzikální Fortranovský věc na PDP-11, tak úplně nejlepší, co může člověk udělat, je místo PDP vzít něco od Dellu, místo RTOSu 11 Windows Vista a z Fortranu přepisovat do PHP, že.
Proto se taky pro průmysl a enterprise společnosti dodnes vyrábějí zařízení nahrazující osmipalcové disketovky, OmniBusové disky, VLSI náhrady procesorových jednotek šestnáctibitových nebo dvanáctibitových PDP, a další maličkosti. Mechanické části se opotřebovávají, ale funkční sestava je funkční sestava a neradno ji předělávat.
Řešením průserů zdánlivých pak člověk vyrobí průser skutečný.

Pavel Tišnovský aura:98
23. 6. 2010 16:33 Nový

Re: pro p.Tišnovského

celé vlákno

Urcite by me to zajimalo, pokud to nejsou tajne informace :-) Mate muj e-mail?

možné náměty pro další díly
možné náměty pro další díly (neregistrovaný) 89.203.137.---
22. 6. 2010 17:56 Nový

Re: Programovací jazyk BASIC na osmibitových mikropočítačích (3)

celé vlákno

od Sinclair BASICu k SuperBASICu Sinclairu QL
od BetaBASICu k SAM Basicu
zdroje máte opět v mých statích na wikipedii a na sam.speccy.cz

Pavel Tišnovský aura:98
23. 6. 2010 16:36 Nový

Re: Programovací jazyk BASIC na osmibitových mikropočítačích (3)

celé vlákno

Urcite jeste o QLku bude rec, diky za pekne povidani na wiki (zajimavy je, ze zrovna o Spectrech jsou tam hodne podrobne informace :-).

možné náměty pro další díly 	2
možné náměty pro další díly 2 (neregistrovaný) 89.203.137.---
22. 6. 2010 18:18 Nový

Re: Programovací jazyk BASIC na osmibitových mikropočítačích (3)

celé vlákno

už delší dobu sháním porovnání nejlepších osmibitových basiců
typickám limitem bylo 64K paměti, zbytek uměly využívat jen pro ramdisk
vám o těchto výjimkách: SAM Coupé, Commodore 128

možné náměty pro další díly 	3
možné náměty pro další díly 3 (neregistrovaný) 89.203.137.---
22. 6. 2010 18:23 Nový

Re: Programovací jazyk BASIC na osmibitových mikropočítačích (3)

celé vlákno

Článek o BASICu by mohl pokračovat jeho praktickým využitím
k tomu, aby v Basicu psané programy měly jistý uživatelský komfort, je potřebná i plynulost i rychlost
chce to kompilery: Hisoft, COLT, mcoder, softek FP…
http://sam.speccy.cz/csdocs.html

Boo
Boo (neregistrovaný) ---.antik.sk
22. 6. 2010 20:33 Nový

RANDOMIZE USR 20000

celé vlákno

Hele lidi ja uz zapomnel, proc se strojove rutiny spousteli tim obskurnim RANDOMIZE USR [adresa] a ne logictejsim RUN USR, GOTO USR (nekde jsem videl i PRINT USR) ?

Radovan
Radovan (neregistrovaný) 88.146.198.---
22. 6. 2010 21:19 Nový

Re: RANDOMIZE USR 20000

celé vlákno

To USR byla funkce (na rozdíl od příkazu nešla spustit samostatně) která spustila strojový kód od zadané adresy a po jeho skončení vrátila hodnotu myslím dvojregistru BC (kdyžtak mě opravte), a pokud jsí jí nepotřeboval (jako třeba nechtěl vypsat na obrazovku tím PRINT USR), tak se musela někam „zamést“. No a tím RANDOMIZE se zametla do nastavení generátoru náhodných čísel. Stejně tak bys mohl použít třeba nějakou nepotřebnou proměnnou: LET null = USR 65000

A pokud člověk chtěl ušetřit pár bajtů paměti, tak místo 65000 napsal VAL"65e3" ;-)

Libor
Libor (neregistrovaný) ---.static.spk.cz
22. 6. 2010 23:10 Nový

Re: RANDOMIZE USR 20000

celé vlákno

Přesně tak jak píše kolega pode mnou, USR vracela hodnotu, tudíž RUN USR nebo GOTO USR bylo možné použít ovšem člověk musel (a nebo to tak udělal schválně) počítat s tím že po návratu do Basicu se příkaz RUN/GOTO provedl s vrácenou hodnotou – tedy pokud se vůbec s návratem do Basicu počítalo. Typicky u her existoval návrat pouze přes reset nebo vytažení ze zástrčky.

Petrjr
Petrjr (neregistrovaný) ---.static.adsl.vol.cz
23. 6. 2010 11:42 Nový

Re: RANDOMIZE USR 20000

celé vlákno

Navíc, při PRINT se „usr“ vykonávalo v „print“ rutinách a v tu chvíli byly tuším exx-ované registry (tedy používalo se bc' místo bc, …). S tím, že obsah původních bc,de,hl potřeboval být zachován. Což mohlo být nebezpečné, pokud pak ten volaný asm program sám využíval exx (jako dočasné zálohy registrů) či volal ROM rutiny které použily exx, resp. předpokládaly nějaký přesný stav.

Pokud se nemýlím – zmatení nevylučuji, už je to nějaké doba, jestli to bylo u PRINT či LET či někde jinde, musel bych se znovu prohrabat výpisem ROMky. Ale něco takového tam bylo.

RANDOMIZE byl v tomto ohledu nejméně „agresivní“.

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
23. 6. 2010 14:18 Nový

Re: RANDOMIZE USR 20000

celé vlákno

Problém nastal akorát, pokud tím někdo spouštěl pomocné rutinky a potřeboval i generátor náhodných čísel.
Pak mu opravdu nezbylo než psát třeba to LET null=USR xxx.

Pavel Tišnovský aura:98
25. 6. 2010 10:56 Nový

Re: RANDOMIZE USR 20000

celé vlákno

Však stačilo vrátit nějaký borčus v BC registrech a bylo, třeba mě napadá hodnota registru R, ta byla z hlediska programátora docela náhodná ne?

Petrjr
Petrjr (neregistrovaný) ---.static.adsl.vol.cz
25. 6. 2010 11:45 Nový

Re: RANDOMIZE USR 20000

celé vlákno

Ano, pokud to byl „random“ pro nějakou hru, resp. všude tam, kde bylo celkem jedno jak kvalitní ta pseudonáhodná hodnota bude.
Ale to už fakt bylo jednodušší použít LET či něco jiného. Pokud se nemohl obsadit RANDOMIZE. V exx-ovaném stavu to zůstane (dostane se do naší rutiny) jen při RST10, tedy u tisku znaku (či tokenu) na otevřený kanál (CURCHL). Při PRINT. Nad vše ostatní je ok, k dispozici.
Případně v BC vracet aktuální (SEED) hodnotu /pak je problém jen při nulové, kdy se pro randomize 0 použije hodnota aktuálního 20ms čítače (FAMES) a ne „0“/.
Těch možností je mnoho.

rur
rur (neregistrovaný) ---.87-197-120.telecom.sk
22. 6. 2010 20:34 Nový

prekladac

celé vlákno

V dobe, ked som mal ZX, som si robil niektore programy do skoly na nom, rozne vypocty, grafy a tak. Dostal som sa k nejakemu prekladacu Basicu, zial nepamatam si na nazov, pamatam si ale, ako velmi ma nadchlo, ked som si v tom prelozil svoje basicove vytvory, lebo zrychlenie bolo skoro 10×.

Kokod
Kokod (neregistrovaný) ---.net.upc.cz
23. 6. 2010 2:50 Nový

Díky za článek

celé vlákno

Ještě v době kdy už jsem měl doma svoje první PC jsem občas vyhrabal staré Atari a pěkně se na něm vyblbnul, bohužel už je v pánu a emulátor ho nikdy nenahradí :)
Vzpomínám si že jsem se párkrát jako zapřísáhlý atarista dostal k nějakému Didaktiku ale ten zápis příkazů pomocí stisku jedné klávesy mne neskutečně štval, kamarád ho používal jen na hry a nevěděl o něm zhola nic (což já taky ne) takže jsem mu třeba chtěl napsat nějaký jednoduchý prográmek a kvůli tomuhle způsobu zápisu mi to trvalo děsivě dlouho…

jarous
jarous (neregistrovaný) ---.suas.cz
23. 6. 2010 7:34 Nový

Konstanta 00

celé vlákno

Vzpoměl jsem si na takovou zajímavost. Na ZX Spectru se číselné konstanty v programu ukládaly dvakrát, jednou binárně a jednou jako String. Při psaní programu se po „zaentrování“ převedl řetězec na binární číslo, jež se ve výpisu nezobrazovalo. Program při běhu pak používal jen tato čísla. Šlo tedy program „zamaskovat“, tak, že se všechny stringy konstant „napoukovaly“ třeba na 0, což programu nevadilo, stejně je nepoužíval, ale z vypisu pak nikdo nepoznal, jak to funguje. Když jsem to poprvé viděl, tak jsem se docela lekl. Byl i prográmek, který to rekonstruoval zpátky.

Substance242
Substance242 (neregistrovaný) ---.95-103-69.t-com.sk
23. 6. 2010 8:37 Nový

Re: Konstanta 00

celé vlákno

… ako sa vlastne volal ten program, ktorý načítal BASIC-ový loader hry a NESPUSTIL ho? Tie napokované programy ktoré sa nedali normálne ani vylistovať ani nahrať pomocou merge. Vlastne si spomínam, že som tiež do svojho loadera dal na napokovaný riadok číslo nula skok na AT 0,0 nejaký nápis a potom biele na bielom… jój, to boli srandičky. :-D

Peto_MiG
Peto_MiG (neregistrovaný) 195.80.161.---
23. 6. 2010 9:05 Nový

Re: Konstanta 00

celé vlákno

To veru boli. Dosť som si obzeral niektoré loadery a bolo to územie nekončiaceho majstrovstva :-) Základným levelom boli fintičky, kedy sa vložením nejakého „zlého“ znaku (alebo aj viacerých znakov) do programového kódu BASICu docielilo, že pri pokuse o listing to blblo, dlho otravne pískalo pri každom kroku (či skôr vrčalo…), ale toto sa ešte dalo obísť, napríklad si napoukovať kratší chybový zvuk. Kombinovalo sa to s nastavením atribútov farieb na bielu na bielej, v niektorých prípadoch to bolo urobené tak šikovne, že sa mi to ani nepodarilo zrušiť :-) Videl som aj také loadery, kde chýbalo číslovanie riadkov, alebo bolo zdanlivo opačné, čo editor BASICu nerozchodil a vyhadzoval chyby.
Vrcholom umenia pre mňa boli loadery, kde sa vyskytovali úplne nezmyselné, v BASICu neexistujúce príkazy, ktoré však vyzerali úplne autenticky.
To už ani pravda nie je…

Peto_MiG
Peto_MiG (neregistrovaný) 195.80.161.---
23. 6. 2010 12:22 Nový

Re: Konstanta 00

celé vlákno

Ešte doplním pre mladšiu generáciu, o čo išlo.
Počítač bol po zapnutí v režime interpretera BASICu. Keď bolo treba nahrať nejaký program, zadal sa príkaz LOAD"" a pustila sa magnetofónová páska s príslušným programom. Príkaz zabezpečil nahratie a spustenie najbližšieho BASICovského programu z pásky. Hry boli programované samozrejme v assembleri (kvôli výkonu), ktorý si tento príkaz nevšímal, takže najprv musel byť na páske uložený krátky BASICovský program, ktorý zabezpečil nahratie nasledujúcej strojovej časti programu a jej spustenie (preto sa mu hovorilo loader – nahrávač).
Výrobcovia všemožne zabezpečovali BASICovský loader proti nahliadnutiu nepovolaným okom, pretože obsahoval adresu spustenia strojového programu. Prečo to robili? Kvôli ochrane proti kopírovaniu. Ak chcel niekto (zvyčajne nelegálne) skopírovať hru, musel to urobiť pomocou špeciálneho programu, ktorý dokázal načítať celú hru BEZ JEJ SPUSTENIA (čiže načítať z pásky v správnom poradí niekoľko sekvenčne nasledujúcich blokov kódu aj s ich zavádzačmi) z pásky do pamäte, a až keď bol program v pamäti, dal sa, opäť sekvenčne, uložiť na inú pásku. Existovalo niekoľko fínt, ako programátori ukladali hru na pásku tak, aby zmiatli kopírovací program a spôsobili, že sa kopírovanie nepodarilo (falošné zavádzače, prekročenie kapacity pamäte apod).
Samozrejme, bolo možné jednoducho skopírovať magnetofónovú pásku na dvojkazetovom magnetofóne, ale vtedy boli len veľmi vzácne (a šialene drahé) také prístroje, ktoré boli dosť kvalitné aby dokázali vytvoriť funkčnú kópiu. Zvyčajne bola funkčná aj tak len prvá, nanajvýš druhá generácia takýchto „audio“ kópií.
Takže ak sa podarilo zabezpečiť hru tak, aby sa nedala kopírovať bežnými kopírovacími programami, tak to domácich používateľov dostatočne odradilo od kopírovania.
Samozrejme, aj vtedy existovali hackerské spolky, ktoré sa pretekali v prelamovaní ochrán, a na prelomenie najlepších ochrán boli potrebné rôzne hi-tech úpravy počítača apod, takže to vyžadovalo značné vedomosti o konštrukcii počítača a znalosť assembleru. Akonáhle bola ochrana prelomená, hackeri dokázali vyrobiť takú kópiu programu, ktorá sa už dala ďalej kopírovať. Tak ako aj neskôr v dobe PC, hackerské skupiny boli rôzne schopné a tí menej šikovní nezriedka svojimi zásahmi poškodili zaujímavé efekty hry pri nahrávaní, obrázky, alebo poškodili samotný program, takže v nejakých častiach sa zasekával apod.

No a tu sa dostávame na začiatok – loader sa po nahratí z pásky rovno spustil a už neumožnil listing. Ale pre prípad, že by sa niekomu podarilo načítať ho do pamäte bez spustenia, autor programu čo najviac znepríjemnil prípadnému „nepovolanému oku“ nahliadnutie do loadera, najrôznejšími spôsobmi, zvyčajne zámerným „poškodením“ BASICovského programu tak, aby bol plne funkčný, ale aby zmiatol interpreter. Využívala sa na to „hardcore“ zmena rôznych pomocných kódov a hodnôt.

Karel
Karel (neregistrovaný) 93.90.162.---
23. 6. 2010 11:28 Nový

Re: Konstanta 00

celé vlákno

Tuším se místo „LOAD“ použil příkaz „MERGE“. Ten připojil nahraný program k tomu již existujícímu a nespouštěl ho. Tím jste obešel ochranu, kdy jako první příkaz byla nastavena „příkazová řádka“ mimo viditelnou obrazovku, čímž editor basicu vytuhl. Takový program normálně běžel až do chvíle, kdy jste ho zastavil. Basic se pokusil zobrazit „příkazovou řádku“ a umřel.
Ale i proti příkazu MERGE se dalo chránit – neporadil si, pokud v načítaném programu bylo více řádků se stejným číslem. Pak bylo nutné si pomocí nějakého programu načíst program jen jako data někam do paměti, vzít do ruky referenční příručku a začít dekódovat :-) Pak několika POKE umrtvit problematickou instrukci, změněný blok dat uložit zpět na kazetu a teprve pak to nahrát jako program. Jó to byly časy :-) Nikdy později už mě nic nemotivovalo tolik, jako potřeba rozchodit AY hudbu ze ZX Spectrum 128K na Didaktiku s AY interfacem. Po několika desítkách „cracklých“ her jsem se cítil býti odborníkem a je pravdou, že jsem rozchodil kde co a nějaký ten „kódovaný“ basic mě tenkrát nerozhodil. A nebyl jsem sám, v té době podobné zkušenosti, znalosti a úspěchy vykazovala značná část „uživatelů“. Tenkrát bylo například běžné, že mnoho lidí assembler umělo, a ten zbytek alespoň věděl, co to je. Dnes se naopak setkávám s tím, že mě někteří jedinci přesvědčují, že imperativní programování je přežitek a kdyby tu nebyla lobby Intelu a AMD, tak by už dávno procesory místo strojového kódu (vrchol to imperativního programování) nativně zpracovávaly Haskell. Z počítače je spotřební zboží a na poli software se čím dál tím více uplatňují programátoři, kteří neznají základy technologie. Jasně, HW abstrakce, netypované jazyky, to vše je krok předem. Ale zatrne mi, když chlapec s VŠ neví, čím se liší typy byte a int a i když mu to vysvětlíte, tak není schopen převést sled 4 bytů na int a na otázku zda ví, co je „little endian“ a „big endian“ odpoví, že tenhle spor je už dávno vyřešen tím, že současné počítače mají všechny Harvardskou architekturu. Člověk pak s pláčem vzpomíná na ty stovky kluků, kteří trávili dny s osmibitovým počítačem a snažili se pochopit jak to funguje.

I/O
I/O (neregistrovaný) 147.32.68.---
23. 6. 2010 11:58 Nový

Re: Konstanta 00

celé vlákno

Když je na těch školách nechají projít… To je přece současný trend – rozdat to všem s tím, že nakonec je život naučí. To je sice pravda, ale za jakou cenu, že…

JmJ
JmJ (neregistrovaný) ---.orangeline.cz
23. 6. 2010 13:07 Nový

Re: Konstanta 00

celé vlákno

Na jednu stranu dobry programator musi umet navrhovat algoritmy a nejake inty a byte ho nemusi zajimat. Ono zalezi v jake urovni toho programovni clovek je. Jestli to jen vymysli a jini koduji, obcas si sam neco nakoduje, aby overil zakladni myslenky svych algoritmu, nebo jestli je clovek koder a implementuje algoritmus pro konkretni architekturu/jazyk.
Vetsina programatoru je nekde mezi a je tedy pro ne vyhodne vedet co je „za tim“. I kdyz prijde mlady programator a nevi rozdil mezi int a byte, ale umi vymyslet dobre algoritmy, tak se jiste rad nauci dalsi veci a bude z nej opravdu dobry programator. Kdyz vyleze nejaky trotl z VS, tvrdi ze vystudoval informatiku, myslis si cert vi co neumi, tak s tim uz se neda nic delat, ten je ztracen jako clovek ;-).
A ted trochu nostalgie. Mi prijde, ze dobry spravce site/programator byva ten, kdo to mel opravdu jako konicka. Nestaci napsat ukoly do skoly. Tak to citim ja a tak to zatim vidim kolem sebe. Kazdopadne jen ten konicek nestaci, clovek se musi dale aktivne vzdelavat.
Jaj, driv sem podle zvuku Turba 2000 dokazal poznat, jestli se nahravaji same nuly, kod, znakova sada nebo obrazek :-). Dnes uz pomalu patrim do stareho zeleza.

Karel
Karel (neregistrovaný) 93.90.162.---
24. 6. 2010 14:28 Nový

Re: Konstanta 00

celé vlákno

V povrchní rovině máte pravdu. Jenže já jsem zaujatý a trvám na tom, že bez znalosti principů fungování nemůžete dlouhodobě vytvářet efektivní algoritmy. Bohužel mi příroda dá čas od času za pravdu. Měl jsem kolegu, výborný kluk. Nerozuměl sice základům (byte, int), ale programoval dobře. Jenže pak jsme řešili nějaké výkonnostní problémy a zjistili, že pro chlapce je každý datový typ tak nějak atomickým. Zjednodušeně řečeno, v jeho vnímání bylo porovnání dvou čísel stejně náročné jako porovnání dvou stringů. A protože stringy jsou univerzálnější, tak navrhl aplikaci s tím, že tam měl řadu obrovských tabulek, kde primární klíče byly typu VARCHAR2. Oracle to docela dlouho zvládal, pak jsme mu pomáhali indexy, ale prostě jednoho dne to celé umřelo. Po algoritmické stránce výborně udělaná aplikace, ale proč tam doprčic dal texty? Než to po něm předělávat, to jsme radši celý modul odepsali a udělali znovu a jinak.
A to je právě problém lidí bez základů – odvádějí často výbornou práci, ale v nečekané chvíli udělají hroznou krpu, které si nikdo včas nevšimne.

Pavel Tišnovský aura:98
24. 6. 2010 16:45 Nový

Re: Konstanta 00

celé vlákno

Skoro me to pripada, jako jeden projekt, na kterym jsem spolupracoval – vsude se to hemzilo samymi varchary2 i v pripade, ze ve skutecnosti tam byly ulozeny ciselne identifikatory (kvuli varcharum nekontrolovane).
Ale nejvic me dostala jedna aplikace, v niz si programator(ka) ukladala data do listboxu (GUI prvku s nastavenou neviditelnosti :-). Bylo to psany v Delphi, takze kazde ulozeni/smazani polozky z listboxu znamenalo nekde uvnitr volani funkce WinAPI, jeho prekresleni atd. Kolega to prepsal na pouziti poli a zrychleni celeho programu bylo nekolikanasobne.

Vlasta A
24. 6. 2010 17:39 Nový

Re: Konstanta 00

celé vlákno

Chtel bych se zastat navrhare datoveho modelu one aplikace, nutno podotknout, ze VARCHARu bylo o poznani mene nez CHARu. A kupodivu na dotaz, proc se nepouziva nejaky number se mi dostalo odpovedi, ze z vykonostnich duvodu a pro udrzeni konzistence. To jsem si musel honem sednout. Holt 30 let praxe ve foxce nemam, abych mohl oponovat.
Az Pavlovi dojdou namety na serialy, tak by urcite mohl do sekce zdrojaku psat vtipne historky a ukazky kodu, jak se nema psat enterprise aplikace, treba to v te dobe jiz nebude vyzrazovani know how. Ja bych pak v diskuzi pomohl rozptylovat pochybnosti, ze si to vymyslel…

Pavel Stěhule aura:89
25. 6. 2010 0:27 Nový

Re: Konstanta 00

celé vlákno

Na to proč dělat něco blbě jsem už slyšel tolik věcných argumentů …
Ten nejpravdivější je ovšen ten, který Vám nikdo neřekne (kromě toho, že lidská blbost je nekonečná) – když máte zprzněných tisíce řádků, tak se skoro žádný manager (pokud není idealista) nepustí do zásadního refaktoringu (u enterprise aplikace) – takže pak nezbývá než pokračovat ve starých chybách :(.

Pavel Tišnovský aura:98
25. 6. 2010 10:55 Nový

Re: Konstanta 00

celé vlákno

To máš pravdu, ale v důsledku to mnohdy vede k tomu, že se další vývoj aplikace strašně prodraží, zvláště tehdy, když odejdou původní tvůrci, kteří ví, kam vložili různé obezličky atd.
Btw ta aplikace, o které se tady s Vlastou A. zminujeme, měla další skvělou vlastnost – když bylo zapotřebí přidat další atributy k objektům, se kterými se pracovalo, tak už se každý bál šahat do struktury tabulek. Namísto toho se nové atributy zapisovaly jako „strukturované poznámky“ do VARCHAR2ového sloupce POZNAMKA, takže se to v aplikaci na x místech parsovalo a zpracovávalo (co vím, tak s minimální kontrolou chyb).

Pavel Stěhule aura:89
25. 6. 2010 13:41 Nový

Re: Konstanta 00

celé vlákno

To si dovedu živě představit – možná jsem viděl něco podobného, i když ne tak strašného. Je otázkou, jestli se má cenu nad tím nějak pozastavovat. Ono k tomu refaktoringu – aby byl úspěšný, tak firma musí mít k dispozici alespoň jednoho výborného programátora a alespoň pár dobrých dobrých – a musí být k dispozici alespoň základní čas a klid. Pokud tyto podmínky neplatí, tak cokoliv je už jen nějaké špatné řešení.

MJ
MJ (neregistrovaný) ---.net.upc.cz
13. 7. 2010 8:41 Nový

Re: Konstanta 00

celé vlákno

Nehanil bych tak kategoricky použití VARCHAR2 u Oracle v klíčích. Oracle má čísla uložená v BCD a žádný int, nebo byte nezná. Uložení toho stejného klíče uloženého jako VARCHAR2 je max 2× delší než NUMBER. Dám ruku do ohně, že v ta aplikace umřela kvůli něčemu jinému, než jsou klíče ve VARCHAR2. Tipuju na blbý model zamykání. Na tom lidé v ORACLU pohoří mnohem častěji.
Podílel jsem se na vývoji aplikace, kde jedním z požadavků bylo, že musíme být schopni data oddělit, respektive mergovat z jiné pobočky a rozhodovali jsme se jaký budeme vytvářet klíče a rozhodli jsme se, že klíč bude obsahovat id pobočky a id objektu. A protože jsme potřebovali věti než 32b čísla, tak jsme volili VARCHAR, protože byť ORACLE dokázal uložit číslo s libovolnou přesností, myslím, že jsme potřebovali 12cifer, nedokázali jsme čísla s touto přesností zpracovat mimo databázi. Rozdělit klíč do dvou polí jsme nechtěli z důvodu horší čitelnosti kódu a chybám. Báli jsme se, že na jedné pobočce to fungovat bude a až je sloučíme, tak to přestane, protože se někde zapomenou použít klíče v páru. Dělal jsem tehdy výkonnostní testy (také dnes málokdo provádí) a výsledkem bylo, že použití VARCHAR2 klíče je jenom o 20% pomalejší než čísla.
Měl jsem kolegu, který v SQL ke třídění používal GROUP BY místo ORDER BY. Prostě to našel viděl, vyzkoušel a všiml si, že výsledek je pak seřazen. Když jsem to viděl šel jsem do kolen.
Jinak databázové aplikace jsou pěkný příklad toho, že je velice vhodné znát architekturu a jak to vevnitř pracuje. Pokud to neznáte a navrhnete aplikaci tak, že databáze je pouze uložiště dat, tak to velice dlouho může fungovat a jak se zvyšují objemy, tak se to jednou složí a oprava je složitá, nebo i nemožná.

_dworkin
_dworkin (neregistrovaný) ---.cust.nbox.cz
23. 6. 2010 14:14 Nový

Re: Konstanta 00

celé vlákno

Heh, podle poctu prispevku nize koukam ze „poukovani“ her byla oblibena zabava vsech majitelu ZX :)
Puvodni clanek z MIKROBAZE 03 (1986)
http://img62.imageshack.us/img62/4881/mikrobaze03341986.jpg
http://img51.imageshack.us/img51/2602/mikrobaze03351986.jpg
http://img195.imageshack.us/img195/306/mikrobaze03361986.jpg
http://img13.imageshack.us/img13/9924/mikrobaze03371986.jpg
http://img717.imageshack.us/img717/6789/mikrobaze03381986.jpg
PS: nemam scaner ani fotak tak pred chvili foceno mobilem..

_dworkin
_dworkin (neregistrovaný) ---.cust.nbox.cz
23. 6. 2010 14:50 Nový

Re: Konstanta 00

celé vlákno
jarous
jarous (neregistrovaný) 88.146.223.---
23. 6. 2010 20:30 Nový

Re: Konstanta 00

celé vlákno

Novější programy měly jen BASICový zavaděč a přímo v něm strojový kód, který zaváděl bezhlavičkový záznam. Ten kód byl třeba v REM řádce, nebo se pomocí READ-DATA a smyčky někam napoukoval a spustil.Tak nešlo poukovat v BASICU. Pak se POKE pro hry musely provést až po doběhu tohoto strojákového zavaděče. Já to dělal tak,že jsem modifikoval odskok s konce zavaděče na poke-program, který jsem ve strojáku vkládal přímo do obrazovky ( kde nepatrně narušil obr. ) a pak skok na hru.
Největší výzva byly hry, které se nahrávaly v celku i s obrázkem a cestou plynule přepsaly stejným ( skoro ) kódem zavaděč i zásobník a loader končil instrukcí RET. Dokonce jsem se setkal se hrou, která se nahrávala v jednom bloku, po nahrátí zavaděče se tento aktivoval a chytil data z pásku letmo, bez nějakého zaváděcího tónu. Tyto hry se daly kopírovat jen kopírovacímy programy s komprimací ( třeba TF-kopy ).
Tohle všechno mi v paměti udkvělo, ale jak se jmenovaly ty hry , které jsem „poukoval“ už si nevzpomenu. Stejně jsem tím strávil víc času než hraním.

Cygnus
Cygnus (neregistrovaný) ---.net.upc.cz
24. 6. 2010 0:12 Nový

Re: Konstanta 00

celé vlákno

Podobný trik se používá třeba v TRDOSových booterech. Principielně to funguje tak, že je jeden BASICový řádek a jedna proměnná třeba a$ v níž je uložený stroják. Po načtení BASICu se provede RANDOMIZE USR na adresu a stroják se spustí, modifikuje BASICový řádek podle toho, co uživatel udělá a nakonec se vrátí zpět, provede CLEAR, čímž sám sebe odstraní a zbyde jen výsledný příkaz, kterým se spustí zvolený program z diskety.

http://cygnus.speccy.cz/popis_cygnusboot.php
Pavel Tišnovský aura:98
23. 6. 2010 16:39 Nový

Re: Konstanta 00

celé vlákno

Dik za odkazy. Jsou to stejne informace jako v manualu „Kladivo na programy“ (taky pro speccy)?

_dworkin
_dworkin (neregistrovaný) ---.cust.nbox.cz
23. 6. 2010 19:17 Nový

Re: Konstanta 00

celé vlákno

Nerozumim presne otazce. Ale Kladivo na programy http://www.grandjihlava.cz/tmp/kladivo.pdf obsahuje v podstate totozne informace. (dokonce to nekdy vypada ze jeden z nich od druheho opisoval)

Pavel Tišnovský aura:98
23. 6. 2010 22:23 Nový

Re: Konstanta 00

celé vlákno

Presne tak jsem to myslel, protoze Kladivo na programy je imho docela znama literatura ke Spectru.

_dworkin
_dworkin (neregistrovaný) ---.cust.nbox.cz
24. 6. 2010 20:20 Nový

Re: Konstanta 00

celé vlákno

Hmm tak na netu nakonec jsou ty Mikrobaze.
http://www.mikrobaze03.szm.com/

_dworkin
_dworkin (neregistrovaný) ---.cust.nbox.cz
24. 6. 2010 20:25 Nový

Re: Konstanta 00

celé vlákno

To jsem si mohl usetrit praci.. No pokud chce nekdo prvni i s dotaznikem tak je:
http://rapidshare.com/files/402406540/mikrobaze1.pdf.html jen 10 stazeni..
http://?????.wz­.cz/mikrobaze1­.pdf a tady to taky nemusi byt dlouho .)

klusacek
klusacek (neregistrovaný) ---.net.upc.cz
24. 6. 2010 22:19 Nový

Opticke pocitace

celé vlákno

Je legracni jak si tenkrat nekteri predstavovali dalsi vyvoj pocitacu:
http://www.mikrobaze03.szm.com/imagepages/p12.html
Ze budem mit za 20 let transistory mensi nez vlnova delka svetla je asi nenapadlo ani ve snu.
Dnes se optika hodi spis na propojovani jader na chipu, jak se o to snazi IBM.

Pavel Tišnovský aura:98
25. 6. 2010 10:59 Nový

Re: Opticke pocitace

celé vlákno

„Současná technologie doslova vydupala z polovodičových čipů jejich praktické maximum“ – je psali v roce 1985?

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
23. 6. 2010 15:30 Nový

Re: Konstanta 00

celé vlákno

Když jsme u těch triků, schválně jestli rozluštíte tento:
Jeden můj program se jmenoval TABULKOVANI
při nahrávání to vypadalo takto:
Program: TABULKOVANI

Podotýkám, že do hlavičky bylo pro jméno programu vyhrazeno 10 znaků.

Pavel Tišnovský aura:98
23. 6. 2010 16:20 Nový

Re: Konstanta 00

celé vlákno

nejsem sice spectrista, ale mozna sis v loaderu vypsal ten posledni znak „I“ a potom nechal na ROM subrutine udelat zbytek?

Radovan
Radovan (neregistrovaný) 88.146.198.---
23. 6. 2010 17:44 Nový

Re: Konstanta 00

celé vlákno

Malá nápověda – tokeny ;-)

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
23. 6. 2010 17:46 Nový

Re: Konstanta 00

celé vlákno

Nikoliv. Ale využil jsem to co je popsáno v článku.
Začátek slova je TAB, což je klíčové slovo a jednom bajtu. Bohužel za TAB je mezera, takže musí následovat zpětná mezera. Výsledkem je tedy
TAB,bk,U,L,K,­O,V,A,N,I
má 10 bajtů :-)
Chtěl jsem navázat tím, že tohle býval hodne používaný trik i u her. Nevím už co to bylo za hru, ale pamatuji si napis
Program: GO TO HELL!!!

Pavel Tišnovský aura:98
23. 6. 2010 22:27 Nový

Re: Konstanta 00

celé vlákno

Aha, pekne reseni :-), to me nenapadlo (Atarko to melo jinak, tam byl Basic od loaderu, konkretne Turba 2000, uplne oddelenej, ale poukovani se samozrejme taky delo pri prevodu do formatu Turba)
jeste bych to rozsiril na LET'S GO TO HELL :-)
Popremyslim o dalsich vetach, ktere jdou slozit ze Sinclair Basicovych prikazu…

Cygnus
Cygnus (neregistrovaný) ---.net.upc.cz
24. 6. 2010 0:19 Nový

Re: Konstanta 00

celé vlákno

Což mi připomíná zavaděč hry Heroes od George'K, kde byl vylistovatelný tuším jen jeden řádek obsahující REM IF NOT THEN CAT & DOG … a zbytek programu byl ukrytý :-) … ale už jsem to dlouho neviděl, možná si to pamatuju blbě.

Samotná hra Heroes 92' byla soutěžní k 10 letům existence ZX Spectra a kromě samotného řešení hry obsahovala ještě jednu „crackerskou soutěž“ v podobě velmi důmyslné ochrany. Ovšem nikoli proti kopírování, ale proti analýze samotného programu a dat. Po skončení soutěže autor podrobně vysvětlil, jak ochrana funguje – je to v nějakém ZX magazínu z roku 1993.

Petr Sládek aura:59
25. 6. 2010 20:52 Nový

příkaz ASC neexistuje

celé vlákno

ZX Spectrum nemá příkaz ASC, doporučuji si prohlédnout jeho klávesnici:
http://slady.net/Sinclair-ZX-Spectrum-keyboard/layout/
pro převod znaku na jeho ASCII hodnotu se používá příkaz CODE s parametrem znaku, například tento interaktivní výpis stištěné klávesy:
10 PRINT AT 0,0;CODE INKEY$;" "; GOTO 10
RUN
jo, to byly časy :-)

_dworkin
_dworkin (neregistrovaný) ---.cust.nbox.cz
25. 6. 2010 22:49 Nový

Re: příkaz ASC neexistuje

celé vlákno

Ja ho pod „W“ vidim. Arccosinus.
10 PRINT ARC(PI/4)
0.66745722
0 OK, 10:1

Petr Sládek aura:59
25. 6. 2010 22:51 Nový

Re: příkaz ASC neexistuje

celé vlákno

Tak to jste se špatně díval! Na klávese W je příkaz ARC, zatímco já píšu o ASC. :-)

_dworkin
_dworkin (neregistrovaný) ---.cust.nbox.cz
25. 6. 2010 22:57 Nový

Re: příkaz ASC neexistuje

celé vlákno

Mea culpa.
Navic jsem napsal ARC a ne ACS. A reaguji na ASC.

Biktop
Biktop (neregistrovaný) ---.28.broadband3.iol.cz
26. 6. 2010 13:48 Nový

Re: příkaz ASC neexistuje

celé vlákno

Jen takové malé matematické rýpnutí – nezdá se mi příliš smysluplné zadávat funkci arccos argument v násobcích pí. ;-)

_dworkin
_dworkin (neregistrovaný) ---.cust.nbox.cz
26. 6. 2010 18:13 Nový

Re: příkaz ASC neexistuje

celé vlákno

To byl jen test funkcnosti. Jestli to dela to co si myslim ze to bude delat.

Substance242
Substance242 (neregistrovaný) ---.95-103-43.t-com.sk
26. 6. 2010 17:19 Nový

ďakujem

celé vlákno

Toto bola skvelá diskusia, ďakujem vám všetkým. :-)

Zasílat nově přidané příspěvky e-mailem