Pane Tišnovský, co Vy o počítačích nevíte nebo neumíte? :-)
Názory k článku
Programovací jazyk BASIC na osmibitových mikropočítačích (2)
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoRe: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoTo nemůžu prozradit, ještě by se to dozvěděl můj zaměstnavatel :-)
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoNo, soudím, že tohoto se bát nemusíš :) Fakt dobrý.
Mimochodem, když jsi psal o Commodore, tak jsem se neudržel, málem jsem se přizabil na otočném křesle s kolečky, když jsem šplhal po skříni, ale našel jsem… svůj první počítač. Škoda jen, že už k němu nemám zdroj… :-(
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoHehe to je pekny s tim screenshotem roota na pozadi :-) Zdroj bych mozna mohl pohledat, pokud si pamatuju, tak ke komousovi potrebujete +5V a +9V ze?
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoPavle mám Vám vykat, nebo Ti mám tykat? Začínám v tom mít trochu chaos – jednou si tykáme a podruhé naopak :-D
Mám ten dojem, že ano. Ono by možná stačilo schéma zapojení toho konektoru, ale kdyby se mi podařilo dostat k originál zdroji, byla by to paráda :)
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknourcite tykat :-) Ja vetsinou ve vlaknu, kde se zacina vykat taky prechazim na vykani, ale preferuju tykani.
co dela prikaz POP?
celé vláknoJakozto byvaly atarista netusim co dela POP. Oni snad na applisti meli v basicu nejaky zasobnik?
S temi floaty v atari-basicu: Je pravda ze vypocet desive zpomalovaly, jeste navic pouzivaly BCD kod pro ulozeni mantissy, takze i plytvaly pameti, ale na druhou stranu to melo nasledek ze kdyz nekdo napsal
for a=1 to 10 step 0.1
tak to fungovalo jak by zacatecnik ocekaval, takze to melo aspon tuhle pedagogickou vyhodu.
Jo a ty floatovy rutiny nebyly soucasti tech 8kB kde byl BASIC, ale sidlily v 16kB OS-ROM, nekde pobliz te diry kam byly namapovany periferie. Vsechny ty rutiny se vesly do 4kB. Ted teda nevim jestli k nim patrily i funkce (log, exp, sin, cos, atd.) ale +,–,*,/ tam bylo urcite. Aspon si to takhle pamatuju, ale je to uz dlouho tak me neberte moc vazne.
Re: co dela prikaz POP?
celé vláknoJestli si dobre pamatuju, tak POP jsme meli i na Atarku. Odstranoval AFAIK ze zasobniku cislo radku + cislo prikazu, takze se dal (o5 AFAIK) pouzit k vyskokum z podprogramu nebo k opusteni smycky FOR.
Re: co dela prikaz POP?
celé vláknoAha, tak to jsem nikdy nepouzil. Ted jsem si to chtel zkusit v emulatoru a napsalo mi to error 13, kdyz jsem chtel opustit FOR cyklus, takze asi funguje jen pro GOSUB.
Re: co dela prikaz POP?
celé vláknoTaky si nepamatuji, ze bych to casto pouzival, ale konstrukci typu:
100 IF X<0 THEN POP:GOTO 200
si pamatuju.
Ten error 13 mi pripomel dalsi skvelou vec v BASICu a to prikaz TRAP, kterym bylo mozne implementovat TRY-CATCH-FINALLY. Cislo chyby bylo ulozene v nejake bunce pameti v zero page, tusim adresa 195(?) a kdyz si clovek navic cisla chyb dal do promenych, bylo to dost citelne.
Re: co dela prikaz POP?
celé vláknoAha, to mas pravdu, nikdy me nedocvaklo, ze BCD mantisa ma vyhodu v tom, ze dokazu reprezentovat 0.1 presne. To ale znamenalo i desitkovy zaklad exponentu ne dvojkovy zejo?
Re: co dela prikaz POP?
celé vlákno> Ted teda nevim jestli k nim patrily i funkce (log, exp, sin, cos, atd.)
To si najdeš tady
http://www.atari8.cz/calp/data/pha_pr_8/
Re: co dela prikaz POP?
celé vláknoPekne, nekdo si dal praci se skenovanim „Zpravodaju“. Ja je sice mam v originale, ale pro „IT historii“ je to dobry pocin.
Re: co dela prikaz POP?
celé vláknoDik. Takze jak vidim, se jim to vsechno veslo do 2KB, zbyle 2KB obsahovaly selftest. Krome zakladnich operaci tam maji vypocet polynomu hornerovym schematem a dale pak e^x, 10^x, ln(x) a log10(x). sin, cos atd. chybi, takze asi bude implementovany nekde v BASICu.
Re: co dela prikaz POP?
celé vláknoDalší výhodou bylo, že například pro jiné tehdejší počítače (Spectrum a myslím i PMD, C64 a jiné nevím) neřešitelné matematické úlohy, např.:
print 10.2–10.1
a podobné Atarko zvládalo bez problémů.
Re: co dela prikaz POP?
celé vláknoV čem spočívá ta neřešitelnost pro C64?
Re: co dela prikaz POP?
celé vláknoMyslel jsem to tak, že u C64 a jiných toto nevím.
Re: co dela prikaz POP?
celé vláknoV tom, že například u Spectra vyjde něco jako .09999998 místo správného 0.1, na C64 jsem to nezkoušel, ale bude to asi podobné. Ale neřešitelnost bych to nenazval, spíš zvětšená nepřesnost.
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoBoží, jako vždycky :)
advan basic
celé vláknoV době TurboBasicu se u nás šířil jakýsi mýtus o implementaci Basicu nazvané Advan Basic nebo tak nějak. Pro Atari. Měl prý být ještě mnohem rychlejší než TurboBasic. Nevíte někdo jestli opravdu existoval?
Re: advan basic
celé vláknoRe: advan basic
celé vláknoAdvan basic se dá stáhnout tady:
http://advan.oldos.net/
Dobrý optimalizující kompilátor – a navíc v kódu lze kombinovat BASIC a assembler, v assembleru se dá přistupovat k BASICovým proměnným.
Re: advan basic
celé vláknonikdy jsem Advan Basic nezkousel, protoze jsem mezitim zacal laborovat se strojakm, ale vypada to dost uchvatne:
„Advan BASIC was already pretty fast. Now it's the fastest BASIC in Atari history. In our Sieve Benchmark, the Advan Optimizing Compiler is about four times faster than the MMG Compiler, six times faster than regular Advan, 20 times faster than compiled Turbo-BASIC XL and 120 times faster than uncompiled Atari BASIC. In fact, it's more than half the speed of ACTION!- that's getting real close to pure assembly language.“
Pokud byl skutecne az 120× rychlejsi nez Atari Basic a pametove to bylo vyhodne, tak mozna bylo lepsi se na strojak nakonec vykaslat :-)
super
celé vláknoVyborny clanek – ostatne jako vzdy :).
Basic byl výbornej skriptovací jazyk
celé vlákno..a jeho pomalost byla skvělá, protože díky ní se člověk rychle naučil stroják .-)
Re: Basic byl výbornej skriptovací jazyk
celé vláknoNechápu, proč se tedy dneska skriptute v bashi, či v perlu, či v jiném šileném skriptovači? :-)
Re: Basic byl výbornej skriptovací jazyk
celé vláknoProtoze se vyvojari vydali hledat slepe cesty vyvoje aby se po x-letech (kde x=30..40) pokorne vratili zpet k Basicu ;-)
POKE
celé vláknoMalem jsem se rozbrecel.
Dostanem se k extenzím ZX Basicu?
celé vláknoPamatuju na Beta Basic, Mega Basic, a další šílené extenze :-)
Re: Dostanem se k extenzím ZX Basicu?
celé vláknojj, budu se snazit to vecpat uz do pristiho clanku.
Basicy pro Atari
celé vláknoMozna by bylo dobre jeste dodat, ze Basic, stejne jako DOS pro Atari vyvinula firma Shepardson Microsystems. Ve vyvoji basicu pak pokracovala OSS, ktera vydala Basic XL a XE. U nas jsem tyto jazyky nikdy nevidel, ale s jejich assemblerem MAC/65 se asi setkal kazdy osmibitovy atarista.
Konecne
celé vláknoJa uz myslel, ze se k memu prvnimu pocitaci (C64) tato rubrika nedostane a je to tady. Moc diki za clanek :)
Jen bych dodal, ze Basic se pozdeji dostal do min vykonnych stroju jako napr. http://en.wikipedia.org/wiki/Sharp_EL-5120 kterou jsem vlastnil a bylo az k nevire, co vsechno se dalo na teto kalkulacce naprogramovat. Od jednoduchych her, az po screensaver s nahodne se obejevujicima hvezdickama, ale ja delal v te dobe hlavne aplikace do skoly.
Na stredni stihla projet celou tridu a vsichni meli z te pisemky jednicku. A aby ne, kdyz jenom vlozili parametry ktere meli v zadani a pak jen mackali Enter a opisovali co vydeli na display(i).
Ucitelka byla prijemne prekvapena jak se vsichni „pripravili“ a ja taky, jakozto test aplikace v produkcnim prostedi probehl bez problemu :D
Re: Konecne
celé vláknoJo, C64 jsem mel taky, krome Simons' Basic jsem tam mel jeste dva dalsi – Basic V3.5 a Plot Basic, se kterym se daly vykreslovat nadherne obrazce…
Re: Konecne
celé vláknoNo jo, že jsi školu ojebával, to ostatně „vydíme“ i na tvém písemném projevu. :-)
Re: Konecne
celé vláknoI/O – Si snad zo mna robis srandu. Ved ja niesom vobec Čech :p
Re: Konecne
celé vláknoA co jako? Ani po slovensky se „vidět“ nepíše s tvrdým.
Re: Konecne
celé vláknoA to jako z toho delas tragedii kvuli jenomu „y“?
To uz asi fakt nemas koho jineho prudit. Ze?
Re: Basicy pro Atari
celé vláknoDiky moc za doplneni. Jeste doplnim toto doplneni :-) o informaci, ze OSS vydala jazyk Action!, coz byla na osmibitovych Atarkach docela bomba. V podstate slo o orezane Cecko a Pascal (chybely tusim struktury, FP a spousta runtime funkci), ale prekladalo se primo do stojaku a vysledek byl docela rychly.
Re: Basicy pro Atari
celé vláknoJasná věc, už jsem chtěl zmínku o Action! doplnit. Já se s ním prvně setkal na stránkách časopisu Bajtek, který jsem si chodil kupovat do Polského kulturního střediska :-) V tom čísle byl zdroják tetrisu, myslím že dokonce s nějakou chybou.
beta basic na zx spectru
celé vláknoPamatuje nekdo ? Malo to kompilator a umoznoval polymorfne programovanie :)
Re: beta basic na zx spectru
celé vláknoBeta Basic? Že měl kompilátor?
Asi nejsem jediný, kdo o kompilátoru pro Beta Basic nic neví.
Něco bližšího by nebylo? Nebo to byl omyl?
Re: beta basic na zx spectru
celé vláknoJe to uz 22 rokov co som to nahraval s pasky, mozna sa mylim, ale urcite viem ze nejaky basic compilator existoval, mozna bol len pre ZX basic :)
Re: beta basic na zx spectru
celé vláknoPro ZX Spectrum byly minimálně dva kompilery HiSoft BASIC compiler a IUC88+.
K IUC88+ kdysi vyšel podrobný návod … už nevím kde, nejspíš v ZX Magazínu. Kompilací skutečně došlo k výraznému zrychlení, ale pokud vím, tak kompiler měl omezení, jedním z nich byla tuším možnost používat pouze integer (16bit). Naopak byl docela malý a vměstnal se do paměti spolu se zdrojovým kódem i zkompilovaným výsledkem. Detaily si už nepamatuju, nepoužil jsem ho víc než 15 let.
Re: beta basic na zx spectru
celé vláknoJJ bol to hisoft a bol len pre ZX basic. Kazdopadne beta bol rychlejsi ako XZ interpreter, ale kym sa to nahralo s pasky …
Re: beta basic na zx spectru
celé vláknoDodávám, že ani já netuším o existenci kompileru k Beta BASICu. Zmiňované HiSoft a IUC88+ pracují se Sinclair BASICem.
Re: beta basic na zx spectru
celé vláknoBeta basic pro ZX rozhodně neměl kompilátor, ale jinak byl uměl zajímavé věci.
tera basic
celé vláknoNedávno som nahliadol do svojich starých denníkov (ehm), a dočítal sa ako som sa pobavil na popise neexistujúceho jazyka Tera Basic (alebo Tear?), pravdepodobne v časopise Mikrobáze. Viem že tam boli popísané príkazy ako „smoke“ (počítač začne dymiť), a myslím že tam bolo aj niečo ako:
if ja then high score
if kolega then zero
… nespomenie si na to niekto?
Re: tera basic
celé vláknoJa si na nej spominam.
Je to davno co jsem chodil v Hodonine do pocitacovehou krouzku a jeho popis byl rucne psany v A4 sesite.
Jsi si jisty ze jsi to cetl v Mikrobazi?
Re: tera basic
celé vláknoNie som. :-)
nostalgia
celé vláknoJo a ešte k obrázku „Obrázek 17: Úvodní obrazovka interpretru jazyka BASIC na počítači Commodore C64.“ – internetový prezerač Opera dlho obsahoval uživateľký CSS, ktorý stránky zobrazoval v takomto štýle, volalo sa to „nostalgia“ a už nejaký čas je to preč.
http://wiki.operacesky.net/Opera_Lover_-_4-7_den-Obsah#Nostalgie_.7Bnostalgia.css.7D
Pěkná historie
celé vláknoZajímavé, vždy jsem si myslel , že první dílo Microsoftu byl BASIC pro CP/M, což jsem si myslel zřejmě špatně.
Neplánujete napsat něco jako „Softwarové dějiny“ ? ( třeba jen pro Home a PC ) Jak to vlastně bylo s Microsoftem, Digital research atd. Co to byl ten ISIS2.
Jako to bylo s DOSem, proč se nechytil CP/M86 a GEM atd. a i české firmy 602 apod. I záčatky implementace Unixů ( Xenix … ) na PC.
Řekl bych, že o tom víte v česku asi nejvíc a dost lidí by to zajímalo.
Díky.
Re: Pěkná historie
celé vláknoNeco jako „SW dejiny“ planuju :-) ale jeste nevim, do jake hloubky. Ta „mainstreamova“ historie je jasna (MS, CP/M, Xerox, unixy, SGI…) ale jeste nevim, zda psat i o slepych cestach vyvoje. Ale spatny napad to urcite neni, treba takovy Xenix, GEM, je uz pozapomenuty a mladsi kolegove si uz nepamatuji ani T602 nebo NC (a proto nedelaji v MC :-)
Re: Pěkná historie
celé vláknoDíky, už se těším. Já si právě myslím, že psát o těch slepých cestách je právě důležité. Protože software, který přetrval, se formoval právě vlivem v té době konkurenčních produktů. To dává klíč pochopení k tomu, proč je Dos, Windows i Linux právě takový, jaký je. Ze Sw ( iHW ) produktů „mrtvých větví“ se lze poučit, „kde udělali soudruzi chybu“, technickou, ale častěji obchodní, takže jejich produkt se neprosadil.
Re: Pěkná historie
celé vláknoAhoj Pavle, jasne :-) Dobre napady se vzdycky hodi…
10 PRINT "VICE" AND A>0;"MENE" AND A<0;"ROVNO" AND A=0
celé vláknoZajimavy clanek o programovani na ZX81 je tady:
http://f6.bloguje.cz/823204-zx81-kdyz-schazi-pamet.php
Smrt Commodoru
celé vláknojedine Atari!!!
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoMaly pruvodce Basicem na ZX spectru http://www.fi.muni.cz/usr/jkucera/pv109/2004/xnovotn3speccy.htm
PS: Na tom emulatoru se neda poradne pracovat, dokud nedam oknu fuse rezim porad na popredi a pod to si nehodim http://www.nvg.ntnu.no/sinclair/computers/zxspectrum/gallery/images/speckeys_jpg.jpg
--- C
if (podminka)
telo bloku
else if (podminka)
telo bloku
else
telo bloku
--- ZX spectrum
10 INPUT a
20 PRINT „Zadane cislo je ";
30 if a < 10 THEN PRINT "mensi jak“;
40 if a = 10 THEN PRINT „presne“;
50 if a > 10 THEN PRINT „vesti jak“;
60 PRINT " deset.„
…
10 INPUT a
20 PRINT "Zadane cislo je ";“mensi jak" AND a < 10;„presne“ AND a=10;„vesti jak“ AND a>10;" deset.„: REM prvne vyraz a pak retezec mi to nevzalo
--- C
for (v1;v2;v3) příkaz
--- ZX spectrum
10 FOR a = 2 TO 5 STEP 0.5
20 PRINT a,;
30 NEXT a: PRINT
--- C
double v1;
while (v2) {
příkaz
v3;
}
--- ZX spectrum
10 LET a=2
20 IF a>5 THEN GO TO 40
30 PRINT a,;: LET a=a+.5: GO TO 20
…
10 LET a=2: IF a>5 THEN GOTO 30
20 PRINT a,;: LET a=a+.5: IF a<=5 THEN GO TO 20
…
10 LET a=2: GO TO 30
20 PRINT a,;: LET a=a+.5
30 IF a<=5 THEN GO TO 20
--- C
v1;
do {
příkaz
v3;
} while (v2)
--- ZX spectrum
10 LET a=2
20 PRINT a,;: LET a=a+.5: IF a<=5 THEN GO TO 20
--- C
switch (n) {
case 0: // následující kód se provede, je-li n nulové
…
case 1: // následující kód se provede je-li n==1
// a také je-li n nulové, protože jsme nepoužili break
…
break;
case 2: // následující kód se provede jen je-li n==2
…
}
--- ZX spectrum
10 LET break=60: INPUT a
20 IF a>2 OR a<0 THEN GO TO 50
30 GO TO 40+a
40 PRINT "<0..0.5)“: GO TO break
41 PRINT „<0.5..1.5)“: GO TO break
42 PRINT „<1.5..2>“: GO TO break
50 PRINT „jinak“
…
10 LET break=60: INPUT a
20 IF a<>INT a OR a>2 OR a<0 THEN GO TO 50
30 GO TO 40+a
40 PRINT „urcite jen nula“
41 PRINT „nula nebo jedna“: GO TO break
42 PRINT „dva“: GO TO break
50 PRINT „jinak“
--- ZX spectrum
10 LET top=15: DIM z(top): DIM p(top): REM Zasobnik pomocnych promenych a parametru rekurzivni Fce
20 INPUT „Zadej faktorial: ";p(top): GO SUB 100: PRINT z(top): STOP
100 REM Simulace "rekurzivni Fce“
110 PRINT top;„: p – ";p(top);“, z – „;z(top)
120 IF p(top)=0 THEN LET z(top)=1: RETURN
130 REM Snizeni vrcholu zasobniku, nacteni parametru, zavolani Fce, obnoveni vrcholu
140 IF top=1 THEN PRINT "Preteceni zasobniku!“: STOP
150 LET top=top-1: LET p(top)=top(top-1)-1: GO SUB 100: LET top=top+1
160 LET z(top)=p(top)*z(top-1)
170 RETURN
…
10 LET top=15: DIM p(top): REM Zasobnik parametru rekurzivni Fce
20 INPUT „Zadej faktorial: ";p(top): GO SUB 100: PRINT rekurze: STOP
100 REM Simulace "rekurzivni Fce“
110 PRINT top;„: p – ";p(top)
120 IF p(top)=0 THEN LET rekurze=1: RETURN
130 REM Snizeni vrcholu zasobniku, nacteni parametru, zavolani Fce, obnoveni vrcholu
140 IF top=1 THEN PRINT "Preteceni zasobniku!“: STOP
150 LET top=top-1: LET p(top)=top(top-1)-1: GO SUB 100: LET top=top+1
160 LET rekurze=p(top)*rekurze
170 RETURN
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vlákno140 IF top=1 THEN PRINT "Podteceni zasobniku!“: STOP
150 LET top=top-1: LET p(top)=p(top-1)-1: GO SUB 100: LET top=top+1
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoZX umel vytvaret vlastni prikazy? Tak na tohle si uz vubec nepamatuji…
http://scratchpad.wikia.com/wiki/DEF_FN
Snad jedine matne… ze to stejne nefungovalo.. protoze ta fce MIN je tam zapsana spatne.
10 DEF FN Q(x,y)=x-(x-y)*(x>y)
15 INPUT „Zadej cislo:“;a,„a druhy:“;b
20 PRINT „Mensi z ";a;“ a „;b;“ je:";FN Q(a,b)
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoJak se divam, taky jsi pouzival „pocitane GOTO“, to byla docela dobra ficurka :-) (stejne jako pocitane GOSUB).
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoJo s tim se daly delat kouzla, ale asi by spouste lidem vstavaly vlasy hruzou kdyby videli v goto goniometrickou fci .)
Byl jsem hrozne prekvapeny kdyz jsem se prvne docetl ze GO TO je spatny. A pri uceni PASCALU jsem se divil co na tom vsichni maji, vzdyt to vsechno mohu udelat i v BASICU. A chvilku to trvalo nez jsem zjistil ze programy se nepisi pro hrani. A proto prehlednost/citelnost/rychlost vyvoje/udrzby je dulezita a dostal do krve while, do-loop kde goto maskuji pomoci continue a break. Jediny rozdil oproti goto je, ze je hned videt kam program pokracuje.
Ale obcas mi stejne jeste goto chybi… bylo to takovy svobodny. .) Nejaky break(3) co by vyskocil ze tri smycek, nebo nedavno jsem psal nejaky brain pro deskovou hru a v jednom okamziku zjistim ze cas vyprsel a potrebuji opustit rekurzivni fci z libovolneho zanoreni. Neprisel jsem na to, jak to bez hrani se zasobnikem udelat, tak jsem musel vracet konstantu „cas_vyprsel“ a hned jsem udelal chybu, kdyz se mi ta konstanta ulozila jako platna hodnota pozice do hashe .), protoze jsem v casti s hashem taky volal rekurzivne fci pro killer variantu a zapomnel vlozit po obdrzeni vysledku kontrolu jestli jen nemam opustit fci.
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoAsi by se to dalo prirovnat jako stavet z cihel nebo panelu. Stejne se vetsinou bude delat normalni stena tak proc to komplikovat. Velikost oken a dveri bude taky vetsinou standardni. A proc to rovnou neudelat z pripravenych unibunek?
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknojj, ze zacatku jsem mel podobne pocity. Prvni program v Placalu, co nam ucitel napsal na tabuli, pocital obvod kruznice a jak je u Pascalu zvykem, bylo to minimalne na 10 radku (samanske tance typu: program x(input, output), var, begin, end s teckou atd.) a ja si porad rikal, co na tom vsichni vidi kdyz se da jednoduse napsat:
10 ? "Zadej r:" 20 INPUT A 30 ? "Obvod="; A*2*3.1415
Samozrejme ze s prichodem slozitejsich datovych struktur a algoritmu se vyhoda strukturovanych jazyku nakonec ukazala :-)
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknojeste s tou rekurzi – v BASICech (tech klasickych) se moc nedala pouzit (ne ze by nesla, ale zasobnik pro GOSUB/RETURN byval maly a promenne globalni), takze tam se problem vyresil hned pri navrhu algoritmu :-)
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vlákno<hereze>
Jeste k tomu clanku „GOTO considered harmful“ od Dijkstry. Trosku me pripadne, ze nekteri autori a autority ten clanek snad vubec necetli (nebo nepochopili) a vyvozuji zavery pouze z titulku toho clanku :-)
Protoze ono GOTO samo o sobe spatne neni, je to proste prikaz, pomoci nehoz se daji vytvaret klasicke strukturovane prikazy (ktere Dijstra samozrejme prosazuje), tj. WHILE a REPEAT-UNTIL.
Problem GOTO je v tom, ze s nim clovek (krome „cisteho“ pouziti) muze prasit, ale to muze i v nekterych jinych „cistych“ jazycich – treba menit hodnotu ridici promene smycky FOR (nekdy to pravda nejde, zalezi na jazyku), pouzivat longjmp() atd.
GOTO navic neni nejvetsi problem BASICu, tim je (IMHO) existence pouze globalnich promennych a jejich automaticka inicializace. Pokud by toto bylo vyreseno (napriklad zmenou prikazu GOSUB/RETURN s novym prikazem pro zacatek podprogramu), byl by i klasicky BASIC s cislovanymi radky a GOTO pouzitelny i pro psani vetsich aplikaci.
</hereze>
Re: Programovací jazyk BASIC na osmibitových mikropočítačích (2)
celé vláknoTo jo. GOTO byla funkce za vsechny drobne, hlavne IF…GOTO :) Zjednodusovalo to tolik veci, ale kdyz pak editoval ten program nekdo jinej jako ten co ho psal, tak byl z toho pekne v prdeli :D
konverzia grafickych prikazov z PMD-85 na Spectrum
celé vláknoSvojho casu som zacal robit na konvertore grafickych prikazov z PMD-85 na Spectrum.
Bolo to vo forme podprogramov a aj ked som to nikdy nedokoncil, podarilo sa mi urobit zakladne prikazy – SCALE, PLOT a MOVE. Spectrum SCALE nemalo – hodnoty som ulozil a pri prikazoch PLOT a MOVE som potom prerataval pevnu poziciu x a y na zaklade velkosti danych pri SCALE.
BPLOT a BMOVE som mal premyslene ale nedokoncil som ich.
Motivaciou bola kniha „Basic u Mikropocitacu“ ktora obsahovala vela dobrych prikladov pre PMD-85. Pomocou mojich podprogramov sa mi podarilo jednoduchym prepisanim programu z knihy vykreslit na didaktiku obrazok ktory bol aj na obalke knihy ;)
C64 - korekce
celé vláknoC64 měl procesor 6510, ne 6502
>>Poměrně jednoduchý trik, pomocí něhož bylo možné na úvodní obrazovce interpretru jazyka BASIC zobrazit více než osm spritů.
tohle rozhodně jednoduchý trik nebyl a v žádném existujícím basicu nešel napsat. jednalo se o sprite-multiplexer a bylo třeba pracovat s rastrovým přerušením. vsadím se, že v době největší slávy c64 ho u nás nezvládlo víc jak 20–30 lidí :-)
Re: C64 - korekce
celé vláknojasne, 6510, ta 02 mi ulitla, omlouvam se.
Co me tesi, ze jsem ten trik (jakozto Atarista a ne Commodorista :-) nakonec taky zvladl, ono to opravdu neni tak slozite, staci zmenit jen nekolik registru (vubec i pres rozdily mezi Atarkem, komousem a treba i VGAckem na PC se pri znalosti toho, jak se obraz generuje a co se da menit na kazdem obrazovem radku ty efekty delaly docela snadno). Asi nejslozitejsi bylo to cele spravne nasynchronizovat, ale jen pro zobrazeni x-spritu ani toto nebylo tak slozite, kdyz na jejich presne pozici nezalezelo.

