Základní informace
- verze TINY BASIC 1.0 (LI-CHEN WANG, 1976)
- opravena chyba přetečení NEXT po stavu 32767
- opravena chyba ABS(-32767-1)
- používá vektory RSTn pro procedury
- procedury OUTC/CHKIO/GETLN přesměrovány na procedury BIOSu PMD-85
- doplněny příkazy CLS, LOAD a SAVE
- datum vydání poslední verze na PMD-85: 26. 9. 2018
- využití RAM samotným interpretrem: 0000h ÷ 07FFh, 7F00h ÷ 7FFFh
- podpora modelů: verze pro PMD-85 typu 1 a verze pro ostatní typy PMD-85 (2/2A/3)
Status
- dokončena portace programu
- nepředpokládají se další úpravy
- program je ke stažení za účelem testování
Popis programu
Jedná se o portaci raného BASICu specifikace TINY a to verze 1, napsané LI-CHEN WANGEM v roce 1976. Od následných verzí 2 a 3 se verze 1 liší jinými chybami (obě známé chyby verze 1 jsou v této edici opraveny) a také tím, že není uzpůsobena pro provoz pod CP/M. Rovněž kultovní MIKROBASIC pro SAPI je založen na této vývojové linii TINY BASICu.
Soubor virtuální MGF pásky obsahuje mimo obou verzí samotného interpretru (verze pro „jedničku“ a pro ostatní typy PMD-85) rovněž i ukázkové programy v TINY BASICu. Na základě seznamu registrovaných typů MGF souborů, dostupných na stránkách RM-Teamu a po upozornění Romana byl pro tento interpreter TINY BASICu zvolen písmenný typ „B“.
Soubory ke stažení
- TINY_BASIC_1.0 – Soubor virtuální MGF pásky pro emulátor PMD-85 od RM-TEAMu (verze z 26. 9. 2018)
- Zdrojový kód TINY BASIC 1.0 po úpravě pro PMD-85
Galerie obrázků
Po úvodním pokusu o portaci TINY BASICu verze SHERRY BROTHERS 3.1 jsem raději aklimatizoval základní verzi 1.0 přímo od autora LI-CHEN WANGA. Je čistší, kratší a po odstranění známých chyb se určitě hodí lépe pro další úpravy. Ty vyšší verze prý přinesly jen opravy chyb a možnost spouštění pod CP/M. Editace zdrojového textu je docela spartánská, z editačních kláves to umí jen CRLF (=EOL) a BACKSPACE (namapováno na klávesy BACKSPACE, šipka vlevo, klávesa DEL). Editace se neprovádí v dialogovém řádku ale na pozici kurzoru po celé výšce obrazovky. Rovněž délku editačního řádku jsem zkrátil na maximálně 47 znaků včetně koncového CR.
Akademici všech zemí, připojte se..
A to je opravdu překladač nebo interpret? Sviští to hezky, ale asi jen díky tomu, že čísla jsou celá.
Samozřejmě, že je to interpreter. Opravím.
Protože PMD-85 verze 1 a 2 mají koncepčně jinak uspořádány rutiny pro obsluhu MGF, budou nakonec dvě verze TINY BASICu. Konkrétně pro PMD-85 verzi 1 bude TINY BASIC 1.01 a pro ostatní verze PMD-85 bude TINY BASIC 1.02. Přeci jen těch universalit ve společné verzi by bylo hodně a neúnosně by prodlužovaly program. Primárně je však TINY BASIC 1.0 portován pro PMD-85 verze 2 a vyšší.
Pekné.
Možno by stálo za úvahu zmeniť písmeno typu z `T` na `B`, keďže `T`je už „obsadené“ textom do Kaswordu.
https://pmd85.borik.net/wiki/PTP
Díky, to jsem nevěděl. V příští edici už to bude změněno. Samozřejmě i v textu hlavního článku.
Je zajímavé, že po neúspěšném načtení hlavičky MGF souboru může zůstat aktivní jedna z hardwarových frekvencí, přivedená na BEEPer. No nic, budu ji preventivně vypínat. Ale proč to nedělá samotná rutina, která zajišťuje tak komplexní činnost, jakou je načtení souboru z MGF? Bůhví kolik je takových pastí. Z toho plyne ponaučení – nevěřit nikomu. Takže rutiny PMD-85 z ROM zásadně nepoužívat. Alespoň se dosáhne kompatibility mezi všemi verzemi.
Upload upravené verze, která u TINY BASICu pro PMD 85 verze 2 a vyšší preventivně vypíná hardwarové zvukové frekvence BEEPru po volání BIOSovské funkce LOAD.
A taky jsem na virtuální MGF pásku doplnil i BASICovské demo s použitím logických výrazů. Tak schválně, co dělá TINY BASIC při interpretaci příkazu LET A=B=C? Nebo LET A=B#C?