TESLA Ondra BASIC přímo v EPROM – aktualizováno

Tuhle skvělou zprávu jsem musel dát do samostatného příspěvku. Dalibor Smolík si dal práci, disassembloval část MIKOSu starající se o načtení programu z kazety, využil toho, že do Ondry se dají zastrčit 2x 8kB EPROM a vytvořil obsah ROM, ve které je přímo BASIC – EXP V5.0/G.

Aktualizace: Díky Daliborovi je v článku je stažení nová verze, kterou už je možné spustit příkazem B a zvládá teplý u studený start!

Ondra_SPO186_BASIC_screen   Ondra_BASIC_EPROM_2x2764

První verzi BASIC bylo potřeba spustit z MIKOSu pomocí příkazu

G1000

Pak už vše fungovalo standardně tak, jak jste zvyklí.

Aktualizováno 20. 8. 2012:

Dalibor nelenil a připravil novou verzi. Tentokrát už je možné ji spouštět příkazem B, přesně jako v návodu. Při prvním spuštění proběhne studený start a BASIC se inicializuje. Kdykoli si můžete odskočit do monitoru příkazem BYE nebo použít NMI tlačítko a do BASICU se pak vrátíte příkazem B. BASIC pozná, že už je zavedený a provede jen teplý start.

Nový obsah EPROM s BASICem můžete stáhnout zde. Stačí jen vypálit do 2 ks 2764, přehodit jumper u EPROM do polohy B-C a jedete. Od původní verze se změnila je první EPROM, takže nemusíte programovat obě. Vše jsem vyzkoušel a funguje to báječně. Tohle měl mít Ondra rovnou Mrkající veselý obličej.

Příspěvek byl publikován v rubrice Československé počítače, Ondra. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

24 komentářů: TESLA Ondra BASIC přímo v EPROM – aktualizováno

  1. PvvS napsal:

    Hmm jeste ze sem dokonceni nechal po dovoleny.Ted uz vim co budu palit do eprom.

  2. dex napsal:

    Snadno zapamatovatelný příkaz B má, pokud se dobře pamatuju, skočit do Basicu, pokud je už nahraný do paměti z kazeťáku.
    Nedal by se skok na zkopírování Basicu z ROM do RAM (na adresu 1000) vpašovat do tohoto příkazu? Člověk by pak mačkal normálně B jako skok do Basicu (bez ohledu na to, jestli ho už v RAMce má, nebo ještě ne).

    Jinak ale vypadají desky replik úžasně. Kdybych už originálního Ondru neměl, jistě bych chtěl replikovaného!

    • Dali2 napsal:

      No ono je to takto:
      Ten príkaz B tam je, je súčasťou MIKOSu, ale aj napriek tomu, že Basic sa hneď pri štarte prekopíruje z ROM do RAM tak príkaz B proste nefunguje.
      Nešiel som v Disassemblingu až tak ďaleko, ale predpokladám, že po normálnom nahratí BASICu z kazety sa nastaví nejaká systémová premenná, ktorá informuje o jeho prítomnosti v RAM a tá umožní použitie príkazu B. Aj mne to vadí, ale je to len otázka času, práve sa pomaličky prehryzávam cez MIKOS aby som ho pochopil, až to tam nájdem, tak to upravím, zatiaľ funguje aspoň štartovanie pomocou G1000.

    • Dali2 napsal:

      Skoro som zabudol, ty si na svojom blogu mal veľmi pekné články okolo Ondru, dúfam, že sa časom tvoj blog „zreinkarnuje“ v pôvodnom rozsahu, neexistuje náhodou niekde komentovaný výpis MIKOSu z Ondry tak, ako ViLi ROM? Viem, že je dosť podobný MIKOSu 5 z SAPI-1, ktorý mám k dispozícii, ale predsa len…

  3. dex napsal:

    ad 1) zatím ručně upravuju články, které se mi už povedlo přenést – zmizely odstavce a nejsou tam vložené obrázky.
    Pak to zkusím nějak donutit sežrat ostatní články z XML zálohy a taky je doupravit. Je tam ale asi něco, co mi to nechce sežrat (snad assemblerovské výpisy).

    ad 2) přímo k MIKOS ROMce Ondry nemám nic. Jedině pokud není nějaká zmínka v materiálech, které posílal Tomáš Smutný Melsoftovi. Zřejmě bude ale k dispozici jen ta verze pro SAPI.

  4. Pavel Železo napsal:

    Pánové , smekám.
    Pěkná práce. Už mám vypálené ROMky a funguje to !

  5. melsoft napsal:

    Bohužel také nemám zdroják Mikosu z Ondry, nicméně s použitím zdrojáku Mikosu ze SAPI by to neměl být problém disasemblovat (asi bude pakárna s obsluhou displeje – když si vzpomenu na obsluhu 8253 v řadiči disket RPD-1 tak mě jde ještě teď hlava kolem).
    Jinak jsem se také zabýval myšlenkou jak spomocí desky ROM-1 na SAPI zavádět Basic, Pedit a TOOL pomocí k tomuto účelu vyhrazených kláves B,P a T přímo z epromek v ROM-1. Bohužel jsem musel upřednostnit jiné činnosti (třeba něco tak trapného jako je vydělávání na živobytí) a tak to zatím je u ledu.

  6. melsoft napsal:

    Tak jsem si našel chvilku a vyzobal jsem jak se spouští Basic, Tool a Pedit vMikosu 4:
    Nejdřív definice startovacích adres:
    BPST EQU 4400H :Basic a Pedit
    TOLST EQU 4C00H :Tool

    Pak rozskok podle stisknuté klávesy (výřez):
    CPI ‚P‘
    JZ PEDIT
    CPI ‚B‘
    JZ BASIC
    CPI ‚T‘
    JZ TOOL

    a vlastní testovací a spouštěcí rutina:
    BASIC: MVI B,’B‘ ;START BASICU
    LXI H,BPST
    L089B: LXI D,BTFL
    L089E: MOV A,M :obsah start. adr. do střadače
    CPI 0C3H :otestovat jeli Basic přítomen (C3 xx xx)
    JNZ ERROR :není = chyba
    LDAX D
    CMP B
    JZ L08B0
    ORA A
    JNZ ERROR
    MOV A,B
    STAX D
    PCHL
    L08B0: INX H
    INX H
    INX H
    PCHL

    TOOL: MVI B,’T‘ ;START TOOL
    LXI H,TOLST
    JMP L089B

    PEDIT: MVI B,’P‘ ;START EDITORU
    LXI H,BPST
    LXI D,PEDFL
    JMP L089E

    Něco z toho je jasné, něco mi na první pohled nic neříká tak se někdo zahloubejte….

  7. melsoft napsal:

    Jo a BTFL respektive PEDFL jsou buňky v RAM, tzv Flag Basicu/Toolu a Peditu.
    BTFL leží na 40ABh a PEDFL leží na 40ACh.
    Jestli se nepletu, tak by v příslušné buňce mělo být s nahráním Basic/Toolu nebo Peditu písmeno B nebo T respektive P. Alespoň mi to tak přijde. Na začátku se B,P nebo T uloží do registru B a do DE se dá adresa BTFL nebo PEDFL. Později se obsah (DE) přesune do D a provná s B. Není li shoda, následuje cosi (odskok na chybu???) jeli shoda spustí se startovací adresa ??? Aspoň myslím, že to to PCHL udělá (tuhle „fintu“ často používali v obsluze RPD-1 kvůli rychlosti).

    • EC1045 napsal:

      PCHL je nepimy skok tj. JMP xx xx ale stim ze adesa na kterou se skace je v HL tudiz jde adresa skoku vastavit dle tabulky ci spocitat. Ale jdou delat i jine prasarnicky jako ulozit adresu do zasobniku (PUSH B,D,H) a pak na ni skoci pomoci navratu z podprogramu (RET popripade podminenich verzi ale to si uz cilovek musi hlidat kde je v zasobniku) technicky jde taktez o JMP xx xx ale stim ze se adresa vezme ze zasobniku. mam to pouzite v jedne transportni rutine s moznosti spousteni programu po presunu

    • Dali2 napsal:

      Páni, hotovo, podarilo sa!
      Martinovi už som poslal novú verziu EPROM, našiel som to (vďaka Melsoftovi, pomohlo).
      Rozdiel je v tom, že po zadaní príkazu B MIKOS najprv pozrie na štartovaciu adresu posledne nahraného programu, vytiahne prvý byte z tejto adresy a ak je to C3 (JMP, Basic naozaj začina touto inštrukciou), tak potom to berie, že tam Basic je. Potom ešte skontroluje obsah ďalšej bunky, kde má uložené, či už Basic spúšťal, alebo nie. Ak ešte nie, vykoná studený štart Basicu – teda G1000 (premaže pamäť, vynuluje premenné atď.), ak áno, tak vykoná teplý reštart – teda G1003. Takže teraz kľudne môžete po zapnutí a spustení Basicu príkazom B kedykoľvek odskočiť do Monitora (príkazom BYE) a po opätovnom zadaní B nabehne Basic aj so zachovaným pôvodným stavom – program, obsah premenných atď…
      Ak by sa niekto nevedel dočkať, kým to Martin vyvesí, tak sa mi ozvite, pošlem 🙂

  8. Dali2 napsal:

    Super, dík, to by mohlo pomôcť, aspoň viem, čo mám hľadať. Adresácia bude síce iná, MIKOS v Ondrovi sedí na úplne iných adresách, ale nevadí. Tento týždeň by som to chcel dokončiť, ak to vyjde, bude nová verzia EPROM s funkčným príkazom B.
    Pôvodne som chcel ešte urobiť sadu EPROM s ViLi ROM a Basicom, ale keďže musí byť prítomný aj MIKOS, tak do 16KB sa v žiadnom prípade nezmestím, tak prezradím, čo som vymyslel, aby sa s Ondrom nemusel používať magneťák – z ViLi ROM som sa nechal inšpirovať „sériovou sieťou“, ktorá je síce fajn nápad, ale dala by sa použiť ešte tak na naťahovanie programov z PC, čo mi teda vôbec nie je po srsti.
    Takže ak sa mi to celé podarí, bude nová verzia EPROM, ktorá bude namiesto MGF používať SPI EEPROM pripojenú na port – signálov je tam až-až. Asi to pôjde narvať do oboch verzií ROM, ale ešte to celé treba otestovať a naprogramovať. Pri dnešnej cene niečo málo cez 2€ za 4MB SPI EEPROM (v prepočte 64x kompletná pamäť ONDRu) je to rozumný variant. Dokonca už som videl 8MB (64Mbit) EEPROM za 3,50€ a to už je ozaj fajn 🙂

    • Martin napsal:

      To je docela dobrej napad, akorat musis predelat ty nacitaci rutiny a nepujde ukladat. Jak budes rozlisovat, co nacist?
      Dik, Martin.

      • Dali2 napsal:

        Ponecham povodnu filozofiu, ibaze SPI bude fungovat v sekvencnom rezime a zmeni sa iba iba samotny podprogram pre ukladanie/citanie bajtu/bloku, cize bud normalne fungovat aj ukladanie, pokial budu pouzite rutiny z EPROM.
        Takze budes pracovat akoze s magnetakom, ibaze to pojde do EEPROM 🙂

        • jirka napsal:

          chlapi – vy jste kouzelníci. 🙂
          Ondru nemám a přesto mám z těchto věcí radost, až se bojím, jestli bych neměl zajít k Choholouškovi. Možná bude lepší si tu úchylku pěstovat a Ondru pořídit 😀
          Nejraděj bych ale jen chodil okukovat do nějakého klubu šílenců a nechal si vysvětlovat a popisovat co a proč udělat, aby to a to fungovalo takto, …
          Zatím alespoň díky za tohle letmé virtuální koukání přes rameno. (Pro 8080 či Z80 jsem nic nenapsal – praktické zkušenosti mám jen s assemblerem pro Atari/6502 – ale doby, kdy to znamenalo „druhý břeh“ jsou už čtvrt století zpět a tak se raduju z tady prezentovaných úspěchů.)

          Díky

  9. Pingback: Ondra v krabičke | SinDiKat

  10. Pingback: Dexovo Hexadecimální Doupě • Tesla Ondra a periferie? Vnitřní.

Napsat komentář: Daniel Zrušit odpověď na komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *