Po delší odmlce tu máme nové video ze seriálu VideoCastu z Hexadecimálního doupěte.
V Logoutově článku s retro benchmarkem různým implementací Basicu na různých (převážně) osmibitových systémech jsem poslal nenápadnou poznámku, která ale asi unikla pozornosti odborné veřejnosti.
Jak všichni víme (nebo aspoň někteří z nás), když Tesla vydala software pro Ondru, převzala většinu ze systému SAPI-1.
MIKOS v5 (mikro-kazetový operační systém) pro Ondru je pokračováním Mikosu v4 a v5 pro SAPI-1.
Assembler TOOL a editor PEDIT jsou rovněž převedeny ze SAPI.
Basic EXP v5.0/G je potomkem Basicu EX v 4.0 ze SAPI.
A Basic EX, a tedy i Basic EXP, jsou varianty Microsoft Basicu (grafický subjazyk DRAW by mohl ukazovat na MSX).
Ovšem pro Ondru vznikl nový systém.
Jeho autory je skupina kolem Víta Libovického, účastnil se i Jan Mercl, který patří mezi autory Ondry.
Tato ROM, označovaná Centrum 1000, SSM ’87 ROM, ViLi ROM, Komenium ROM, poskytuje sice řadu služeb programátorům, ale z hlediska uživatele dělá jen jednu věc: nechá si vložit jméno programu, který má nahrát z kazety nebo sítě (jiná média Ondra neumí).
Pro systém Centrum 1000 se z programovacích jazyků distribuoval Editor/Assembler od Microsoftu (převedený z TRS-80, potažmo Video Genie), HiSoft Pascal (ten byl převeden ze ZX Spectra) a Karel (pokud za programovací jazyk lze považovat “něco, čeho jediným výsledkem je šmejdění panáka po dvorku”).
A samozřejmě se v dokumentaci objevovaly zmínky o jazycích LISP, PROLOG a samozřejmě BASIC (o FORTHu ani slovo, asi už tehdy nebyl v módě).
Zřejmě tehdy někdo považoval Pascal za vhodnější pro výuku programování, než Basic, asi byl Pascal zrovna v módě, tak se zdá, že v realizaci dostal před Basicem přednost.
K převodu Prologu (zřejmě to měl být Micro Prolog ze ZX Spectra) a Lispu (zřejmě opět nejspíš SpecLisp V1.3 ze Spectra) už ale nejspíš nikdy nedošlo.
Pak už byly k dispozici jen hry, Město Robotů (přeložené Forbidden City, druhý díl ságy Forbidden Planet z TRS-80, potažmo Video Genie) a hry ze ZX Spectra (které na Ondrovi ale běhají zpomaleně, zkuste si porovnat Galaxians na ZX Spectru a na Ondrovi co do rychlosti).
Takže, když jsem pod Logoutův článek psal, že jsem použil jiný Basic, než BASIC EXP v5.0/G, čekal jsem záplavu dotazů (která nepřišla).
Jaký jiný Basic pro Ondru, když jiný neexistuje?
No, nějaký existuje.
Jinak bych ho nemohl použít.
Tož se pokochejte čuměním na TyTrubku.
Nádherné video, které mě neskonale bavilo. Jsem zvědavý, kdo přijde na ten jiný BASIC :-).
A prozradíš nám jaký to je Basic ? 🙂
Jinak super video.
Ha, super, pecka, bomba, paráda. Dá se to někde stáhnout? Jo a docela by mě zajímala i story, jak a kde jsi ho vykutal?
P.S. Jo a s tou poznamkou, ze se obesla bez reakci bude spis tim, ze se clovek tak casto opakovane nevraci ke starsimu clanku, takze vetsina nadsencu, co chodi na tenhle blog, uz tady byla davno predtim.
Ovšem to s tím přepisováním řetězce přímo v programu je prasárna neskutečná.
To prepisovani promennych ulozenych v programu za chodu ma nejakou vyhodu?
[2] – chystám podrobný článek.
A taky bude Forever, že…
[5] – Představ si, že máš 32 kB dlouhý řetězec.
Když ho máš v paměti jen jednou, tak se vejde.
Pokud bys dal LET Ał=”32 kB dlouhý text” a někde v paměti by se měla objevit jeho kopie, tak se nevejde.
Takže je prostě tímto způsobem uložen v paměti jen jednou.
Samozřejmě to, že je možné ho přímo v programu předefinovat, je trochu nebezpečné, pokud by nový řetězec měl být delší (něco přepíše) nebo kratší (syntax error) než vyhrazené místo.
Víc potom v dalším článku, až vznikne.
Mozme potom rychlost porovnat so ZX Basic-om, co som vlani skusobne naportoval na Ondru.
[7] To můžeme už teď pomocí Logoutova retrobenchmarku http://blog.i-logout.cz/retrobenchmarking.php .
Basic EXP – 514 sekund (emulátor)
Piko Basic FAST – 140 sekund
Piko Basic SLOW – 890 sekund
Pro jistotu pastuju i benchmarkovací program:
10 LET W=250: DIM F(W):LET P=1:LET A=3
20 LET F(P)=A:LET P=P+1:IF P>W THEN STOP
30 LET A=A+2:LET X=1
40 LET S=A/F(X):IF S=INT(S) THEN 30
50 LET X=X+1:IF X>=P THEN 60
51 IF F(X)*F(X)<=A THEN 40
60 GOTO 20
Jsem na Ondra verzi ZX Basicu zvědav.
Konecne dalsi video, bavil jsem se.
Mal som ho vlani na Forever.
Trochu si treba zvyknut na ovladanie, lebo namapovat klavesnicu bol celkom problem.
Zial, nedotiahol som to do konca. Skoncil som na prikaze LOAD, ten este treba doladit, aby vedel nacitat subor zo ZX. Naopak, subor z Ondry ide bez problemov nahrat do ZX.
[10] Aha. Myslel jsem, že když se do toho bude někdo pouštět, tak použije některou z upravených ROMek, co se v nich zadávají příkazy po písmenech.