Basic na PMI-80?

Je to tak. Osmibit bez Basicu, to je něco jako osmibit bez Forthu. Prostě divnost.

Když už dělám na tom Basicu pro Ondru, podíval jsem se, jaký jiný počítač by se dal tímto Piko Basicem (tedy poněkud dost rozšířeným Tiny Basicem) obšťastnit.
Uvažoval jsem o MiniMax 8085 od Sergeje, ale jednak jej nemám, druhak si Tiny Basic upravil z originálu Sergej sám.

Československé počítače byly na Basicu založeny takřka všechny – na SAPI-1 se objevil Mikro-Basic, tedy opět inkarnace Wangova Tiny Basicu, ostatní počítače byly vybaveny interpretem plnohodnotného Basicu, nejčastěji to byl Basic-G, tedy (jistojistě alespoň v případě PMD-85 a Consul 2717) upravený Microsoft Nascom Basic (na SAPI-1 ZPS-2 Basic EX opět původem od Microsoftu a na Ondrovi s Tesla ROM Basic EXP obsahující i “subjazyk” DRAW z počítačů MSX).

Jediný počítač, který by mohl stát o nějakou tu implementaci Tiny Basicu (nebo raději mého rozšířeného Piko Basicu z Ondry) by tak byl snad jen PMI-80.

Sám PMI-80 nemám, ale to, že jde o jednodeskáč, by nemuselo v principu vadit.
Však Basic (a další programovací jazyky) byly implementovány i pro jiné jednodeskáče – třeba 6502 verze Microsoft Basicu pro KIM-1, nebo Tiny Basic pro Cosmac Elf (případně SuperBasic pro Cosmac Elf, což je, jak jsem pochopil, zajímavá implementace “plnohotnotného” Basicu, využívající ovšem reverzní polskou notaci při zápisu výrazů!). Nepočítaje Basic pro počítače vybavené originálně čelním panelem a “blinkenlights”, jako je PDP-8, ALtair 8800 a další.

Basic tak, jak je vytvořen pro Ondru, je sice v mnemonice Z80, ale v těch částech, které se netýkají specificky Ondry, nepoužívám žádné zvláštní vlastnosti Z80, tak by měl být na 8080 spustitelný.
Kromě základu, vytvořeného Wangem, by na PMI-80 přinesl mnou dotvořenou aritmetiku a práci s textovými pointery.
Blbosti, jako jsou grafické a zvukové příkazy, se na PMI-80 pochopitelně vynechají, neb nejsou potřeba a navíc se tím uvolní místo. Aby se na PMI-80 šetřilo ještě víc (i když teoreticky je rozšiřitelné na tolik paměti, jako má Ondra, ba ještě víc, neb nepotřebuje 16 kB VideoRAM), vykašlal bych se i na kompilátor a vyřešil spouštění programů jinak – jako to dělají užitkové programy na ZX-81.

VU-File nebo Tasword na ZX-81 totiž nemá možnost uložit samostatný datový soubor, tak to řeší tím, že uloží celý program i s daty. Na pásce tak máte uložen “prázdný” Tasword a pak další kopie Taswordu s už vloženými texty.
Basicové programy by pak mohly být ukládány i jako “samospustitelné”, například jako na kapesních počítačích Sharp použitím povelu ARUN na začátku programu. Uživatel by pak ani nemusel zkoumat, zd nahrává program ve strojáku, nebo v Basicu – prostě nahraje a spustí kód a buď se mu spoustí “samospustitelný” program, nebo příkazová řádka interpretu (se zdrojovým textem basicového programu připraveným ke zpracování).

Vzhledem k tomu, že Wangův Basic je kraťoučký, a rozšíření (po vynechání zbytečností) ho moc nenafouknou, vešlo by se to i do malé ROMky. Respektive RAMky, když předpokládám nahrávání z nějakého média.

Když už totiž Basic, nepoužil bych ho rovnou jako operační systém, ale chtělo by to pro PMI-80 nějaký DOS.
Sídlící na nějaké hezké adrese, aby se z Monitoru snadno spouštěl.

PMI má na provozování Basicu málo paměti, takže je jasné, že pro celou tu srandu potřebuje nějaké rozšíření (zasouvané do většíko z obou rozšiřujících FRB konektorů).
RAM a nějaká ROM, to je jasné (i když ROM, pokud se DOS vejde do 2 kB, by mohla být i v rozšiřující patici na desce).

Protože zobrazovat na sedmisegmentovkovém displeji takové věci, jako je DOS nebo Basic, nelze, bude PMI potřebovat sériák pro připojení terminálu (třeba PockeTerm nebo PC s terminálovým programem).
Moc se mi líbí Nostalcompovo řešení s RS232 / USB, kdy při zasunutí USB kabelu se aktivuje USB a při vytažení je funkční normální RS-232.

RS-232 kromě terminálu řeší i přesun kódu do a z PMI-80 pomocí PC.

V tom případě DOS nemusí ukládat na výměnné zařízení – klidně to může být nějaký ROM disk nebo stránkovaná či sériová EEPROM dostatečné kapacity s nějakým filesystémem, který by se dal obsloužit něčím co nejkratším, optimalizovaným na velikost.
Nahrávání z magnetofonu by zůstalo zachováno voláním původní rutiny Monitoru.

Samozřejmě by se dalo uvažovat i o alternativní obsluze DOSu z hexadecimální klávesničky – když už tam to mass storage zařízení je, ať se dají nahrávat i programy určené pro “holé” PMI-80 bez sériáku a terminálu.

Takže to máme minimálně
* nějakou RAM,
* sériák a
* nějaký RAMdisk, který se při vypnutí nesmaže (třeba EEPROM).
Samozřejmě pro všechny uživatele stejně, aby se dodržel nějaký standard a neměl to každý jinak a na jiných portech.

No a pak tedy můžeme realizovat ten Basic pro PMI-80.
Dokud ale někdo nenakreslí desku, nenechá ji vyrobit, aby se dal odladit DOS, a nezařídí pak její rozšíření mezi majitele PMI-80, tak nebude nic.