Autor ::Lisiak4 Poslaná :: 27.06.2010 11:20:10 Predmet ::Re: Basic G a Pascal na PMDčku.
Zatiaľ to vizerá na Basic G, keď sa k tomu niekedy odhodlám. Díky Dexi za nápad pozrieť rovno do súboru. Zistil som tak, ako sa ide z EDITÁCIE v Pascale spat do MENU (Esc+Enter). Ani vo verzii 1.02 som nejako nerozbehal nahrávanie, ale verím, že by to šlo ako píše Roman B. Moc som sa tým nezaoberal. Zkúsil som v emulátoru od Martina Schotka, kde v poslednej jeho verzii je tiež Pascal v 1.02 uložiť súbor a tam mi to fungobalo a potom som si ho nahral v emulátore od RM a bolo to OK :). No verzia Pascalu 2.2 má hlavne podporu diakritiky, čo je pre textovů hru zásadná vec. Kompilácia Pascalu u verzie pre PMD ale asi neni, bol by to podla mna malý zázrak. Bral by som možnosť horšieho čítania kódu, ako príkazom LIST v Basicu. Čítal som niekde, že má Basic G verzia 3 možnosť prečíslovania riadku čo nemusí byť tak zlá vlastnosť. Mám z tých riadkov trochu v dnešnej dobe asi strach. Dokonca sa mi zdá, že to bol Roman B. poprípade jeho brat, kto to písal niekde na fóre. Možno söm to používal, keď som mal PMDčko a sám už o tom už ani neviem, pokiaľ touto vlastnostou Basic disponuje.
Správa
Autor ::Roman Bórik Poslaná :: 27.06.2010 14:41:40 Predmet ::Re: Basic G a Pascal na PMDčku.
1. Výskok z editora PASCALu je pomocou STOP+EOL. V emulátore je pre PMD 85 klávesa STOP mapovaná na klávesy CTRL a klávesu ESC. EOL je pochopiteľne Enter. Viď. rozloženie klávesnice v emulátore ALT+F1.
2. Nahrávanie na pásku funguje v oboch verziách PASCALu. Jednotlivé verzie, ale ukladajú v hlavičke inú začiatočnú adresu, takže napriek rovnakému formátu zdrojového textu/súboru sa súbor uložený verziou 2.2 nenahraje do verzie 1.02.
3. PASCAL na PMD 85 zdrojový text kompiluje, ale neumožňuje uložiť výsledný kompilát. Je to zrejme preto, že skompilovaný kód je silne závislý od samotného PASCALu.
4. PMD 85-3 má možnosť prečíslovania riadkov. Doporučujem preštudovať manuál k PMD 85-3
Správa
Autor ::Tomáš Pecina Poslaná :: 06.10.2015 16:04:43 Predmet ::Re: Basic G a Pascal na PMDčku.
Zkoušel někdo Pascal V2.2 na skutečném PMDčku? Mně v emulátoru chodí ve versi 1.02 (pascal2.rmm) nahrávání i čtení, a to i programy nahrané versí 2.2, ve versi 2.2 (pascal22.rmm) mohu ukládat, ale nepřečtu. Trochu už fungování Pascalu rozumím, disassembloval jsem si obě verse, takže v případě potřeby mohu vygenerovat obraz Pascalu pro MGLD, na kterém se čtení dá ověřit, bez nutnosti mít HW modul (samozřejmě nebude fungovat vše, ale prověřit tuto funkci snad bude možné).
Připadá mi zvláštní, že by někdo dal do oběhu takhle zjevně nefungující ROM, přičemž chyba v ROMce to být nemůže, Pascal kontroluje integritu dat přes jednobytový kontrolní součet.
Správa
Autor ::Roman Bórik Poslaná :: 09.10.2015 13:10:01 Predmet ::Re: Basic G a Pascal na PMDčku.
Netestoval som teraz TOM Pascal V2.2 na živom PMD 85, ale opäť som trochu trasoval v Emulátore.
Samozrejme, tiež mi príde čudné, že napriek tomu, že je v kóde test na kontrolný súčet (čo by malo znamenať, že je program z RomModulu natiahnutý bez chýb), tak Pascal V2.2 nefunguje správne...
Ale späť k trasovaniu. Porovnával som kód Pascalu V1.02 a V2.2 a podľa očakávania tam sú mnohé podobnosti.
Obe verzie si najprv zisťujú na akom stroji bežia a podľa veľkosti pamäte nastavujú premenné na adresách #C430 a #C432 na začiatok a koniec pamäti pre program. Program (už tokenizovaný) sa ukladá od vyšších adries k nižsím, takže #C430 > #C432. Ak som to správne pochopil, premenná na adrese #C434 obsahuje adresu konca aktuálne vloženého programu. A táto premenná je práve kameňom úrazu.
Na adrese #6DFD (V1.02) resp. #0444 (V2.2) je rutina, ktorá hľadá koniec aktuálneho programu v pamäti. Vo V1.02 sa pri prechádzaní po riadkoch programu priebežne aktualizuje aj premenná #C434, takže po ukončení rutiny je v tejto premennej adresa konca programu a teda miesto kam sa prihraje nahrávaný program. Vo V2.2 však k aktualizácii premennej #C434 nedochádza a tak zostáva nezmenená (po spustení Pascalu je tam 0).
Takže, ak sa ide načítať do pamäti program, tak sa najprv zavolá spomenutá rutina a následne sa počas spracovávania zdrojového textu (ten je na kazete/diskete uložený v čistom tvare) tokenizovaný program ukladá od adresy v premennej #C434. Keďže vo V2.2 je v tejto premennej nesprávna hodnota, tak sa program neukladá tam, kam by sa mal. Po prvom spusteni Pascalu, kedy je v premennej #C434 nula, tak sa tokenizovanie prejaví prepisovaním spodnej časti obrazovky.
Ako som spomenul, kód oboch verzií sa veľmi podobá, ale spomenutá rutina sa odlišuje dosť a hlavne v tom, že premenná #C434 sa neaktualizuje. Aký bol zámer a ako to vlastne "po novom" malo vo V2.2 fungovať, neviem.
Ak po skončení inkriminovanej rutiny premennú #C434 korektne nastavím, tak sa program nahraje správne a pochopiteľne aj funguje.
Správa
Autor ::Tomáš Pecina Poslaná :: 09.10.2015 17:17:49 Predmet ::Re: Basic G a Pascal na PMDčku.
Výborně, to je cenné zjištění. Mým cílem - kromě opravy této chyby - je vytvořit si pro Pascal stejný plugin, jaký mám pro Basicy (v PMD i v Ondrovi), a který umožní tokenizaci/detokenizaci programu v paměti z/do ASCII souboru, proto jsem zatím analysoval, jak funguje LOAD v P1.02 (0x7b76) a k analyse P2.2 (0x3145) se teprve chystám. Jestliže je to takto jednoduchá závada, bude možná snadná oprava), ovšem proč někdo vypáli flagrantně nefunkčí ROM-modul, zůstává záhadou.
Správa
Autor ::Tomáš Pecina Poslaná :: 09.10.2015 23:32:59 Predmet ::Re: Basic G a Pascal na PMDčku.
Autor ::Roman Bórik Poslaná :: 11.10.2015 09:53:42 Predmet ::Re: Basic G a Pascal na PMDčku.
Uvidíme.
Mám ešte "kacírsku" myšlienku. Čo keby sme prečíslovali túto verziu na 2.3, aby sa to neplietlo.
Správa
Autor ::Tomáš Pecina Poslaná :: 11.10.2015 12:16:33 Predmet ::Re: Basic G a Pascal na PMDčku.
To mě taky napadlo, ale řekl jsem si, že je-li nějaká verse zcela nefunkční, nemá smysl ji udržovat při životě. Možná bychom mohli napsat autorovi (učí v Blavě na MFF), jestli neví, proč tento problém vůbec vznikl.
Správa
Autor ::Roman Bórik Poslaná :: 12.10.2015 21:57:30 Predmet ::Re: Basic G a Pascal na PMDčku.
Predsa som našiel problém. Nefunguje prepínač Insert/Overwrite - kláves K0.
Problém spočíva v tom, že príznak INS/OVR je na adrese #06E0 a od tejto adresy ste umiestnili opravný kód. Tým sa po stlačení K0 prakticky poškodí tento kód a po chvíli to zhavaruje.
Pre opravu "stačí" opravný kód umiestniť až za tento príznak (po spustení 0FFh).
Správa
Autor ::Tomáš Pecina Poslaná :: 12.10.2015 23:31:14 Predmet ::Re: Basic G a Pascal na PMDčku.
Mělo by být opraveno, prosím, stáhněte si ze stejných adres čerstvé verse.
Správa
Autor ::Roman Bórik Poslaná :: 13.10.2015 09:34:38 Predmet ::Re: Basic G a Pascal na PMDčku.
Teraz už funguje aj prepínanie INS/OVR. Super.
O napísaní Tomcsányimu som už uvažoval skôr, resp. sa mi marí, že som mu už kedysi dávno písal, ale o iných veciach. A už si nepamätám s akým výsledkom (nemám z roboty prístup k súkromným emailom).
Zamyslím sa, ako to vôbec formulovať, keďže je to 25 až 30 rokov, čo sa venoval PMD 85. Po takej dobe by som si nepamätal ani ja nič :-D
Správa
Autor ::Lisiak4 Poslaná :: 27.06.2010 23:58:53 Predmet ::Re: Basic G a Pascal na PMDčku.
Ano, neviem, čo som robil zle, ale zo začiatku mi to ukladanie nejako nešlo. Už mi to funguje v oboch verziách. Tak pardón za ten omyl :). Čítanie mi ide len vo verzii 1.02, tak ako už bolo spomenuté. Každopádne nemožnosť načítania súboru vo verzii 2.2 túto verziu robí nepoužiteľnou pre programovanie. A verzia 1.02 nepodporuje diakritiku.
Správa
Autor ::Martin Bórik Poslaná :: 27.06.2010 13:48:59 Predmet ::Re: Basic G a Pascal na PMDčku.
Ja mám len takú blbú otázku:
Keď už ísť do textovky na PMD, prečo sa radšej nepotrápiť s naštudovaním strojového kódu i8080, nepreštudovať si vstupné body Monitorov a urobiť si vlastné rutiny na výpis textu s diakritikou, vlastné uloženie všetkých textov (napr. aj komprimovane) atď atď ... ako sa viazať na nejaké interpretované jazyky a nechať sa nimi obmedzovať priestorom, možnosťami, nahrávaním zdrojákov do nich a čo ja viem ešte akými problémami okolo...?
A pritom to ide tak jednoducho ... priamo na PC, akýkoľvek lepší textový editor, nahodený highlighter na i8080, vytvorený batch na kompiláciu cez AS, hotová binárka sa vloží od offsetu 56 do vytvoreného nekomprimovaného PSN snapu emulátora a ihneď test... Какая проблема...?
Správa
Autor ::Lisiak4 Poslaná :: 27.06.2010 14:53:46 Predmet ::Re: Basic G a Pascal na PMDčku.
Tá otázka neni blbá, ale povedal by som, že niekomu, kto programuje v Pythone postačuje na zvládnutie Basic a nie strojový kód a že v Basicu urobím textovú hru rýchlejšie ako v strojovom kóde, pokiaľ som amatér a nie profesionálny programátor z rady RM-TEAMu :). To by som sa skor trápil s radou Motorola MC68000 :) keby sa malo jednat o nízkoúrovňové programovanie (Commodore Amiga). Ale mám rád praktické veci. A multiplatformnosť je fajn vec. Robí mi radosť aj hambu, radosť z toho, že som vobec niečo napísal, že moj jediný program, ktorý som dokončil minulý rok funguje a blíži sa mojim predstavám podla programátorských schopností ktoré mám. Že som spolu s jedným amigistom dokázali splácat dokopy ADF súbor pre moj program (Amiga disk file). A hambu v tom, že pre Amigu potrebuje moj program 11 MB RAM co je moc pre počítač tej doby. Proste si to spustí človek len s turbo kartou na Amige, procesor stačí 68020 takze Amiga 1200. A ja to sem trepnem :) Je to princ Jason :). Neni to síce na úrovni originálu, urobil som tam svoje ovladanie pomocou klasického textu. Dúfam, že to nikomu vadiť nebude, že som si to dovolil prepísat bez nejakého súhlasu. Jasoňa som ako malý nedohrál, tak som ho dohral v mojej 30ke. Povodný autori su uvedený. Týmto zdravím Ceres Soft :).
Správa
Autor ::Martin Bórik Poslaná :: 27.06.2010 15:43:52 Predmet ::Re: Basic G a Pascal na PMDčku.
Akože ... poviem na rovinu, textovku som mal tiež v pláne naprogramovať, takže, ak je nejaký dobrý námet a pekný dej, nie je problém, aby som pomohol ku realizácii priamo v low-level i8080 ... textovky mám rád!
Správa
Autor ::Lisiak4 Poslaná :: 28.06.2010 01:31:09 Predmet ::Re: Basic G a Pascal na PMDčku.
Ja som v minulosti mal rad nástupcu textovej hry a tou je klasická adventura, princ Jasoň mi prirástol k srdcu asi preto, že som ho hrával ako malý. Je to asi jediná textová hra, ktorú som prešiel. Pre naprogramovanie som to bral ako ideálnu vec pre prvé zoznámenie sa s Pythonom. Programovanie v Pythone je pre mna prvoradé tak ako prvé skúsenosti s GUI GTK v mojom prípade pyGTK. Venujem tomu asi veľkú čast mojeho voľného času a nerád by som na úkor učenia sa Assembleru pre PMD nejako podstatne tento čas skracoval. Pokiaľ nebudú vadiť veľmi pomalé kroky robenia nejakej textovky v Assembleru tak to možem skúsiť. Myslím, že na to nemám. Na strednej škole mi Assembler nič nevravel a som mu nerozumel. Ale bolo to tam aj letmo brané. Dúfam, že je tu reč o Assemblery (skratky sú fajn), alebo vážne strojový kód? Len pre predstavu, Jasona som robil asi 1 rok z toho tak 3 možno 4 mesiace mi zobralo rozbehanie to aj pod Amiga platformou spolu s jednym amigistom (bez neho by som to nedal). Raz som to po dokonceni cele upravoval. Som si potikal s rekurziou, kde u PC sa program choval normálne (defaultne nastavená hĺbka rekurzie u Pythonu je 2000) A u Amigy pri asi 130 zanorení pretiekol zasobník :).
Správa
Autor ::dex Poslaná :: 27.06.2010 17:13:57 Predmet ::Re: Basic G a Pascal na PMDčku.
Textovku v Pascalu jsem plánoval na Ondrovi, kde je kompilátor HiSoft Pascal (takže žádné interpretované jazyky), ale je tam problém - moje kopie překladače se s delším programem hroutí.
Co se textovek týče, tak Basic je dostačující (v PMD ho má každý, narozdíl od Pascalu), ale programy v Basicu prostě nepůsobí tak "profesionálně" (nehledě na to, že v Basicu se zahazuje dost paměti a je problém tvořit třeba komprimované texty).