Autor ::Libor L.A. Poslaná :: 07.11.2012 06:35:53 Predmet ::další monitor pro PMD85 - pomůžete?
Mám v plánu napsat monitor (vč. assembler. zobrazení a zápisu) pro PMD-85, který by se vešel do "zápisníku" v posledních 16kB, kde je hlavně VIDEORAM. Základní rutiny už mám, všechny se vejdou do 14byte a měly by jít nějak rozumně zřetězit. Problémem je, že např. PMD 85-3 nebo některé hry (myslím že minimálně FLAPPY) využívají tento zápisník pro nějaké své proměnné nebo kusy kódu.
Zkuste přispět svými poznatky, kterým adresám v zápisníku se vyhnout, aby tam ten monitor mohl zůstat a nebyl přepsán programy, které byste s ním chtěli ladit.
PS: do toho zápisníku vedle VIDEORAM by se měla vejít celá tabulka asm instrukcí procesoru a kompletní program monitoru, takže by standardní RAM/ROM 0000-BFFF nebyly vůbec používány. Předpoklad funkcí: asm výpis/zápis, prohlížení paměti v různých formátech, blokové fce (copy, suma, swap, srovnání, hledání, vyplňování), přístup k I/O, atd.
Správa
Autor ::Libor L.A. Poslaná :: 20.11.2012 12:42:01 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Tak samotný Monitor je hotový, skončil jsem u adresy 9c41h (začátek 9000h). Co teď upřednostnit? Začal jsem dělat malý trasovací modul, jede pěkně, ale ošetření skoků a práce se zásobníkem by asi zabrala zbytek paměti do 9fffh. Nebo druhá varianta, navržená Dexem, je zapracovat obsluhu PMD32. Čtení v zásadě není problém, ale obávám se, že implementace rutin potřebných pro zápis a verifikaci dat a podporu FAT na PMD32 už do volného prostoru nevleze. Spíše jsem uvažoval, že by základní monitor v prostoru 9000h-9ffffh osahal prvních pár byte v prostoru od b000h a pokud tam najde podporu PMD32 nebo dalších zařízení, nasměroval by tam své rutiny pro podporu těchto zařízení. Tiskárna i s buferem (ten bych s ohledem na předpokládanou délku tiskové řádky udělal max. 128 byte dlouhý) by snad ještě měly vlézt do základní části 9000h-9fffh. U tiskárny je problém, že se nedostanu "dovnitř" standardní procedury pro editaci dialogového řádku a tudíž řádek, odeslaný stiskem EOL se nikdy nezobrazí na tiskárně. Texty a údaje, které tisknou na obrazovku příkazy monitoru vyjedou samozřejmě korektně, ale už na té tiskárně nebude vidět, jaký příkaz s jakými parametry tu výstupní sestavu vyvolal. Má vůbec někdo připojenou tiskárnu?
A poslední poznámka: Pojede to jen na verzi 2A a vyšších. Přebral jsem maximum procedur z originálního MONITORu PMD85-2A (na jedničce a dvojce není volná RAM od 9000h a trojka umí emulovat verzi 2A).
Správa
Autor ::Roman Bórik Poslaná :: 21.11.2012 21:40:18 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Určite by bol trasovací / debug modul fajn.
Ak by sme sa mali baviť o voľnej pamäti, tak je prakticky (pri zachovaní pôvodného Monitora od adresy 8000h) využiteľná pamäť od 9000h až 0BFFFh. Na PMD 85-3 je to po prechode do režimu kompatibility príkazom JUMP FFF0. Na PMD 85-2A zasa po prekopírovaní Monitora do RAM a zapnutí AllRAM režimu.
Samozrejme, ak by sme chceli, aby sa to zo súboru (z MGF) nahralo naraz a zároveň by sa pri verzii 2A urobilo aj prestránkovanie, tak by to vyžadovalo špecializovaný loader s autoštartom, ale to už zasahujem ďaleko.
Základný ovládač pre PMD 32 má asi 300 bytov, ale samozrejme obsluha nejakého súborového systému by zabrala dosť miesta. Otázka ale je, ako by ten súborový systém mal vyzerať? V najjednoduchšom prípade zrejme bez podadresárov. Otázka je, či s FAT (napr. FAT12 ako je to na D40/80) alebo bez FAT (napr. ako Betadisk). V každom prípade, pokiaľ by sme chceli aj prenositeľnosť na PC, museli by sme si napísať ešte utilitu na prácu s daným obrazom disku.
Tlačiarne sa k PMD 85 pripájali rôzne, dokonca aj na IMS-2 konektor. V našom prípade by tlačiareň nesmela byť na konektore GPIO0 (port A), kde bude prípadná PMD 32. Ideálne na GPIO1 - strobovaný Port B.
Správa
Autor ::Libor L.A. Poslaná :: 15.11.2012 05:37:58 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Nechal jsem si poradit, monitor píšu od adresy 9000h. Zatím jsem obsadil rozsah 9000-9900 a celkově předpokládám, že bych se s rezervou měl vejít do rozsahu 9000-9FFF.
momentálně hotovo:
převody HEXDEC, součet, rozdíl, suma bloku, průběžné sledování 8 byte paměti nebo portu, výpis hlavičky souboru MGF, výpis paměti ve formátech: DUMP, ASCII, ASM, BIT, ROMPACK, ZÁPISNÍK zobrazení aktuální hodnoty SP, nastavení/zobrazení přenosové rychlosti MGF, výpis fiktivních registrů CPU (do skutečných se nakopírují při příkazu JUMP a při závěrečném RET se znovu ty skutečné uloží do fiktivních, které lze zobrazit), vstup/výstup na port, porovnání bloků, integrována tabulka názvů instrukcí CPU
dodělám:
modifikace paměti ve formátech DUMP, ASM, TEXT, příkazy LOAD/SAVE/VERIFY/MGEND blokové operace vyplnění paměti řetězcem, hledání řetězce, bitové operace nad blokem, prohození bloků, nějaká jednodušší forma trasování/debuggingu, uvažuju nad procedurou pro nahrání programu, ale těsně před autostartem by se to vrátilo do OS
Jak říkám, místa ještě zbude dost (opět mě jeden z autorů těchto stránek inspiroval ke "kompresi" sady jmenných názvů instrukcí CPU), takže co tam ještě dát?
Správa
Autor ::Roman Bórik Poslaná :: 15.11.2012 19:31:03 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Pre ďalšie povely je možné sa inšpirovať týmto popisom Monitorov mon19 alebo mon20.
Správa
Autor ::dex Poslaná :: 15.11.2012 09:03:42 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Disketové operace? (Ale jak?)
Správa
Autor ::Libor L.A. Poslaná :: 15.11.2012 16:25:18 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Někdy v roce 1994 jsem rozchodil PMD32 podle originálních rutin z PMD 85-3. S tím by asi problém být neměl. Ale tehdy jsem si udělal vlastní souborový systém, teď by to asi chtělo zachovat ten originální. Doufám, že ten monitor dokončím koncem příštího týdne a moc se mi nechce dělat hluboké rozbory souborového systému PMD32. Není někde ucelená dokumentace?
Správa
Autor ::Roman Bórik Poslaná :: 15.11.2012 18:10:49 Predmet ::Re: další monitor pro PMD85 - pomůžete?
PMD 32-SD pracuje s obrazmi diskov do veľkosti 2MB (256 stôp / 64 sektorov/ 128 bytov na sektor). Teoreticky na tých diskoch môže byť akýkoľvek súborový systém, ale nadradený počítač potom musí sám tento súborový systém vedieť obslúžiť a to určite zaberie nemalé miesto. I keď tých 12kB nad Monitorom by mohlo na nejakú jednoduchú (bezadresárovú) štruktúru súborov bohate stačiť. V súčasnosti sa PMD 32-SD používa iba v spojení so systémom CP/M, ktorý si toto všetko práve rieši sám.
Na tejto stránke je ovládač pre komunikáciu s PMD 32. Tu je možné si stiahnuť popis komunikačného protokolu PMD 32.
Správa
Autor ::Roman Bórik Poslaná :: 08.11.2012 20:26:32 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Nemám ucelený prehľad o tom, ktoré hry/programy využívajú pamäť vedľa VideoRAM, ale pár poznatkov môžem poskytnúť.
- Monitor (všetky modely) využíva oblasť od 0C030h až 0C1FFh
- BASIC V1.0 nevyužíva pamäť vedľa VideoRAM
- BASIC V2.0 a V2.A využíva oblasť od 0C330h až 0C37Fh
- BASIC V3.0 využíva oblasť od 0C230h až 0C37Fh
BASIC V2.A a V3.0 naviac využívajú aj rozšírenú pamäť v oblasti 8000h (9000h) až 0BFFFh.
- Hra Hlípa využíva celú oblasť vedľa VideoRAM už pri nahrávaní hry, ale aj počas behu hry
- Ovládač PMD 32 pre PMD 85-2(A) pre MIKROS (CP/M) je umiestnený do oblasti 0C470h až 0D83Fh
Na iné si viac nespomínam.
Správa
Autor ::Schotek Poslaná :: 08.11.2012 22:46:44 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Paměť vedle VideoRAM používal také ovladač XY 4130/4140 - rozšíření grafiky Basicu o výstup na tyto plottery.
Správa
Autor ::Martin Bórik Poslaná :: 08.11.2012 23:50:13 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Áno, je týchto programov skutočne viac, ktoré reálne využívajú zásobník, práve preto som Liborovi odporúčal skôr pamäť od 9000h do BFFFh, kde už bolo niekoľko spomínaných monitorov či disassemblerov umiestnených. Navyše by nemusel zbytočne kúskovať kód po 16tich bytoch...
Správa
Autor ::Martin Bórik Poslaná :: 07.11.2012 09:28:18 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Neviem či je to zrovna šťastné riešenie. Napríklad Kvádro využíva komplet celý zásobník od C030h až FFFFh, lebo v RAMke od 0000h do 8000h mi aj tak ostal iba jediný voľný bajt. Podobne je na tom určite Hlípa. Ten zásobník je proste užívateľsky prístupná časť voľnej pamäte a bol by hriech to nevyužiť! :)
Využívať ho môže aj pakovač Quido a svoju rozpakovaciu rutinu si presunúť kdekoľvek do zásobníka vedľa VRAM a je pravda, že ho často takto využívam(e).
Nebolo by lepšie pre ten monitor využiť AllRAM modelov 2A a 3, prípadne ich voľný flek pamäte od 9000h do BFFFh?
Správa
Autor ::Libor L.A. Poslaná :: 07.11.2012 11:06:44 Predmet ::Re: další monitor pro PMD85 - pomůžete?
A ta volná stínovaná paměť RAM (All RAM režim 8000h - 8FFFh), tu novější programy nevyužívají?
Správa
Autor ::Roman Bórik Poslaná :: 08.11.2012 20:01:32 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Poznám iba dva pôvodné úžitkové programy, ktoré využívali rozšírenú pamäť RAM.
Sú to debugger/assembler/monitor DAM+9000 a debugger/monitor VMON9000.
Oba požadovali, aby od 8000h bol prekopírovaný pôvodný Monitor a umiestnené boli od adresy 9000h.
Sú k dispozícii v downloadoch.
Správa
Autor ::Schotek Poslaná :: 07.11.2012 22:33:08 Predmet ::Re: další monitor pro PMD85 - pomůžete?
Rozsireni monitoru pro verzi 2A s podobnymi vlastnostmi jsem kdysi vyrobil a pouzival pro upravy ruznych programu. Umi to disassemblovat, psat v asm, presouvat bloky, vyplnovat pamet, zobrazovat grafiku a dalsi podobne funkce. Akorat v te dobe jsem netusil, ze jde programy psat se symbolickymi adresami do textoveho editoru a text pak prelozit. Takze pises zhruba stylem:
SUB 1A2C MVI A,3F
SUB 1A2E LXI H,C000
SUB 1A31 CALL 1BC2
Planovane automaticke preadresovavani presunuteho programu tam tusim neni. Pokud si s tim nekdo bude chtit pohrat, dam to k dispozici. Veslo se to akorat mezi B000-BD9B.