Napadlo mě přepsat některý z benchmarků do BBC Basicu a zkusit to na BBC Micro B a Masteru (ale protože je mám oba aktuálně v krabicích ve sklepě, tak jen emulátor - ale ty časy sedí) - a vzal jsem ten druhý - to třídění ...
Nevím, jestli mám sem psát tu BBC Basic syntaxi kódu - je to skoro stejné - ale výsledek je:
"FINISHED IN 7.19 SECONDS" u BBC Mirco a
"FINISHED IN 6.63 SECONDS" u Mastera
A to jen tak, že jde o vestavěný Basic na 8bitu s 6502 (resp. 65c12) na 2 MHz z roku 81 (resp. 86) bez úprav ... tedy dva roky před uvedením Atari 800 XL :-)
... a kdyby to chtělo zrychlit, tak se to dá napsat v tom samém BBC Basicu v assembleru - pro ty, kdo neví, tak BBC Basic skutečně umí zpracovat i přímo assembler (ne stroják) zapsaný do Basic programu
Já, jakožto Atarista z osmdesátek jsem snad až do přelomu milenia ani nevěděl, že nějaký Acorn, resp. BBC stroje existovaly a byl jsem následně v naprostém šoku, co to byly za mašinky a o kolik byly napřed před slavnými 8bity z USA (Atari/Commodore).
Na Atari bychom museli trošku podvádět, ale jen trošku - jak ve starých gamesách pár "pouků na nesmrtelnost", ale kód zůstává 100% v tom daném BASIC:
1. vypnout DMA, to by mohlo přidat cca 20-30% - dobré je, že tenhle trik zafunguje nezávisle na druhu BASIC
2. pokud by někdo chtěl i tak vidět nějaký progres, tak pruhy GTIA sprites jako ve VisiCopy, nesmí se pochopitelně zapínat data pro sprites, to by byla také DMA, proto jen pruhy.
3. vyházet všechny komentáře a zbytek smrsknout dvojtečkami na co nejméně řádků, obzvlášť smyčky.
Přechody mezi řádky jsou trochu drahé, aspoň v Atari BASIC. Mimochodem, používají se na ně také ta pomalá čísla v plovoucí čárce(!). Myslím, že už jsem to tu nedávno psal, trochu mě šokovalo, když jsem to zjistil. A opravdu lze napsat řádky s čísly jako "3.14E2" apod. :)