Vývojové prostředí DevX85
Aktuální verze | 1.0 |
Požadavky | Windows 10 (32 i 64 bitový systém), .NET Framework 4.7.2. |
Podporované cílové platformy | PMD85-1, PMD85-2, PMD85-2A, PMD85-3 |
Download | DevX85_1.0.zip |
Pár slov
Vývojové prostředí slouží k pohodlnému vývoji programů na výše uvedené platformy. Součástí prostředí je:
- překladač Macro Assembler
- emulátor ePMD85
- debugger
- editor obrázků s exportem do několik formátů
Instalace
Vývojové prostředí se aktuálně nemusí instalovat, stačí stáhnout archiv z výše uvedeného odkazu, rozbalit do některého adresáře a spustit DevX85.exe.
Založení projektu
Projekt se zakládá výběrem šablony na úvodní stránce. Aktuálně jsou k dispozici jen dvě šablony – jednou z nich je demonstrační hra Bombarder, druhým je Hello, world!
Spuštění překladu
Klávesovou zkratkou F5 se spustí překlad projektu a jeho spuštění v mém emulátoru ePMD85. Jiné emulátory (např. od RM-TEAMu) nejsou podporovány.
- Projekt Bombarder je nakonfigurovaný tak, že překladem vznikne .pmd a .ptp soubor, který se v emulátoru automaticky načte jako páska a spustí.
- Projekt Hello, world! se naopak jen načte do paměti a ve spuštěném emulátoru se musí zadat JUMP 0000.
Ladění
Stiskem klávesy ESC v emulátoru se emulace pauzne a ve vývojovém studiu se ukáže místo pauznutí. Pokud k pauznutí došlo v místě, ke kterému lze najít zdrojový kód, otevře se toto místo i ve zdrojovém kódu. Dále je možné krokovat (F10/F11) a nebo pokračovat v emulaci (F5).
Během ladění je k dispozici panel s informacemi o registrech a paměti. Údaje lze měnit a tak ovlivňovat další průběh emulace.
Před spuštěním i během emulace lze také vložit libovolný počet breakpointů (poklepání na levý okraj řádku a nebo stiskem F9) a docílit tak zastavení v potřebném místě.
Za zmínku stojí ještě „write break point“ WBP – pokud se aktivuje (kliknutím na text WBP), dojde k pauznutí emulace při zápisu na uvedenou adresu. Mnohokrát mi to pomohlo najít příčinu nežádoucího přemazání kódu.
Princip složení projektu
Poklepáním na některých ze zdrojových souborů v průzkumníku se spustí jeho editace. Pokud je projekt tvořen více .asm soubory, je nutné jeden z nich nastavit jako hlavní (např. main.asm – viz nastavení projektu) a ostatní do něj vnořit (direktivou include). Překládá se právě jen tento hlavní soubor.
Vývojové prostředí disponuje také jednoduchým editorem grafiky – výstupem je textový soubor s příponou .inc, který musí být také includován do hlavní .asm souboru. Např. šablona „Bombarder“ generuje binární soubor main.bin podle následujícího schématu:
Pokud má překladem vzniknout obraz pásky (.pmd/.ptp soubor), překladem generovaný main.bin se doplní o hlavičku a (volitelně) o loader/logo – zdrojové soubory jednotlivých částí lze opět nalézt v nastavení projektu:
Poslední možností je generování image pro ROM modul. Pro tento účel se vybírá sekundární hlavní soubor – může být stejný jako hlavní asm soubor, ale vzhledem k začlenění samospouštěcího kódu je lepší ho definovat zvlášť:
Jak je vidět, projekt „Bombarder“ umí jediným překladem vygenerovat soubor pásky i ROM verzi – v další kapitole bude ukázáno jak obě verze pohodlně odladit.
Způsob spuštění
V nastavení projektu lze vybrat jeden z těchto způsobů spuštění programu po překladu:
- Načíst do RAM – soubor main.bin (viz předchozí kapitola) se načte do paměti RAM od adresy 0000. V emulátoru se dá spustit napsáním JUMP 0000 (nebo SHIFT + DEL pro verze 2/2A/3)
- „RAM + spuštění“ – do RAM se načte soubor main.bin, automatické spuštění je zajištěno tak, že se do v emulátoru do ROM modulu „vloží“ kód, který na verzi 2/2A/3 sám spustí a skočí na adresu 0000. Asi nejlepší volba v prvopočátcích vývoje.
- Vložit pásku – v emulátoru se použije soubor .ptp jako soubor pásky. Pro spuštění se musí zadat „MGLD 00“
- Vložit pásku + AUTOLOAD – jako předchozí případ, do ROM modulu se vloží zavaděč, který spustí automatické načítání z pásky.
- Vložit ROM modul – použije se binární verze souboru, který je uveden jako zdroj v položce „ROM modul (exe.)“
Grafický Editor
Grafický editor edituje soubory s příponou gfx. Jeden gfx soubor může zahrnovat několik obrázků různých velikostí a exportovaných formátů. Např. níže uvedený screenshot zachycuje editaci souboru sprites.gfx z demonstrační hry Bombarder. Konkrétně je pro editaci vybrán obrázek s názvem gfxAirplane1. Jeho exportovaná podoba (která je v souboru sprites.inc) je vidět na pravém panelu.
Ve zdrojovém kódu se pak můžeme odkazovat názvem gfxAirplane1 jako na adresu, kde jsou data uložená.
Pixelová editace:
- levé tlačítko myši – nastaví pixel na zvolenou barvu (ta je vidět jen při zatržení volby „zobrazit barvy“)
- pravé tlačítko myši – vyčerní pixel
- prostřední tlačítko myši – nastaví bit v masce (ta je vidět jen při zatržení volby „včetně masky“)
- shift + prostřední tlačítko myši – nuluje bit v masce
Další grafické operace editor nemá, složitější obrázky dělám raději v nějakém jiném editoru (např. Photofiltre) a z něj přes schránku kopíruju do obrázku.
Pár tipů k vývojovému prostředí
- poklepáním na název projektu v průzkumníku se otevře složka projektu
- v asm editoru se vpravo aktualizuje seznam návěští. Vynechávají se ty, které začínají tečkou nebo podtržítkem
- v asm editoru podržením klávesy CTRL a kliknutím na název (např. návěští v jmp instrukci) se prohledají otevřené soubory s deklarací tohoto symbolu.
- v asm editoru klávesou CTRL+K dojde k automatické naformátování kódu
- pro použití Z80 syntaxe stačí použít direktivu cpu z80:
cpu z80
ld a, b
cpu 8080
mov a, b
„Požadavky Windows 10 (32 i 64 bitový systém), .NET Framework 4.7.2“
Proč takové nesmyslné požadavky? Když se při kompilaci .NET nastaví na 2.0, program poběží i na Windows 2000. Škoda, rád bych vývojové prostředí zkusil, ale desítky z důvodu šmírování používat nehodlám…