Emulátor ePMD85
Aktuální verze | 1.7 |
Požadavky | Windows 10 (32 i 64 bitový systém), DirectX 9.0, zvuková karta |
Download | ePMD85_public1.7.zip |
Stručný přehled novinek
|
Přehled emulovaného hardware:
Verze PMD85 | 1, 2, 2A, 3 |
Videorežimy | černobílý+blikání, 4 stupně šedi, 4 barvy (RGBM), COLORACE, WGRM |
Změna videorežimu | prostřednictvím portu 6Ch |
Joystick 4004 | možnost připojení na GPIOA, GPIOB |
Myš 602 | na portu 8Ch |
Mif85 | emulace SAA1099 + systému přerušení |
Magnetofon | emulace generování zvukového streamu, zrychlené čtení (patch čtecích rutinek), ukládání záznamu do .ptp souboru |
PMD32 | prozatím jen experimentální emulace čtení z disketové mechaniky, nefunguje moc dobře |
PAX modul | emulace ROM modulu, přístup na SD kartu, změna barevného režimu a nastavení palety |
Přehled parametrů příkazového řádku
-pmd1, -pmd2, -pmd2A, -pmd3 |
volba emulovaného typu PMD85 | ||||||||||||
-blink, -gray, -color, -colorace, -wgrm | volba videorežimu | ||||||||||||
-filter, -nofilter | zapnutí/vypnutí grafického filtru | ||||||||||||
-boost | spustit v boost režimu (maximální rychlost emulace) | ||||||||||||
-mif85 | připojit MIF85 modul | ||||||||||||
-mouse | zapne emulaci myši | ||||||||||||
-pmd32 | připojít na GPIOA diskovou jednotku PMD32 | ||||||||||||
-screen2, -screen3 | spustí okno ve dvojnásobném/trojnásobném měřítku | ||||||||||||
-joya, -joyb | připojít joystick na GPIOA nebo GPIOB | ||||||||||||
-d0: diskimage | vloží do disketové jednotky 0 obraz diskety. | ||||||||||||
-d1:, -d2:, -d3, | jako d0, vkládá do dalších mechnaik | ||||||||||||
-clear | spustit PMD s vymazanou pamětí, bez uvedení bude vyplněna náhodným obrazem (staženým z reálného PMD) | ||||||||||||
-mgfsound | zapne příposlech magnetofonu, při ukládání na pásku bude slyšitelný zvukový signál | ||||||||||||
-memory: file | do paměti přednačte zadaný soubor od adresy 0000 | ||||||||||||
-rom: file | do rom modulu načte zadaný soubor. Kromě názvu souboru lze použít tyto speciální názvy:
|
||||||||||||
-monitor: file | nahradí původní firmwarem obsahem ze souboru. Soubor může být velký až 16 kB a jeho obsah se umístí do paměti podle zvolené verze:
*Ačkoliv se u reálného PMD 85-2A mezi adresami A000-AFFF zrcadlí 4kB ROM z adresy 8000, je technicky realizovatelné rozšíření na 8kB, proto s touto možností emulátor počítá. |
||||||||||||
-mgf: file | zadaný soubor bude pokládat za pásku. Pokud se jedná o soubor typu .pmd, po jeho přečtení se pokusí ve stejném adresáři vyhledat další .pmd soubor. Soubory .ptp přetáčí neustále dokola. Soubor s příponou .s85 načte jako uložený stav. | ||||||||||||
-xtal: freq | nastaví frekvenci krystalu, frekvence se zadává jako celé číslo v Hz, např: -xtal: 18432000 | ||||||||||||
-smpf: freq | nastaví frekvenci přehrávaného zvuku, podporováno je 48000, 44100, 22050 a 11025 | ||||||||||||
-pax: path | zapne emulaci PAX modulu, uvedená cesta se stane rootem pro emulaci SD karty. Je vhodné zavést i PAXCommander parametrem -rom: pax_rom.bin. Fungující verze je součaástí zipu i s bat souborem pro ukázku spuštění. | ||||||||||||
file | stejné jako –mgf: file (není nutné přepínač) |
Ovládání emulátoru
Jakoukoliv konfiguraci počítače lze zvolit přes příkazovou řádku. Tak je možné vytvořit zástupce na ePMD85.exe a zjednodušit si spuštění samotného emulátoru v požadované konfiguraci nebo přímo vybrané hry.
Příklady:
ePMD85.exe -pmd3 -colorace -rom: *BASIC
ePMD85.exe -gray -joya -rom: *AUTOLOAD boulder.pmd
Za běhu lze konfiguraci měnit pomocí ALT nabídky – zobrazí se po stisku levé klávesy ALT. V nabídce se objeví aktuální konfigurace a průzkumník pásky. Při ukončení emulátoru se nastavení uloží. Toto nastavení se opět načte, pokud je emulátor spuštěn bez jediného parametru v příkazové řádce.
Barevné režimy
Emulátor nabízí možnost zvolit barevný režim klávesovou zkratkou Alt+C. Zároveň je možné nastavit barevný režim zápisem na port 6ch. Práce s tímto portem byl zvolen podle ovládání modulu Faudraj a dále podle návrhu zde.
Nastavení barevného režimu se řídí touto tabulkou:
Číslo zapisované na port 6ch | Barevný režim |
0/1 | Colorace – 7 barev |
2 | WGRM – bílá, zelená, červená a tmavě červená |
3 | RGBM – červená, zelená, modrá a magenta |
4,5,6,7 | Monochromatický (odstíny šedi bez blikání) |
Emulace magnetofonu
Emulace je u verzí PMD85-2/2A/3 založena na generování zvukového záznamu. Generování se automaticky spouští, pokud se začne vykonávat rutina hledání pilotního tónu na adrese 8ebeh (eebeh u verze 3), a rovněž se automaticky zastaví při načtení posledního bajtu záznamu. Pro urychlení čtení je proveden patch rutinky na adrese 8b6ch (eb6ch u verze 3), kdy se přímo načte do akumulátoru celý bajt.
U verze PMD85-1 jsou záznamy čtené z adresy 1eh. Každé přečtení automaticky inkrementuje ukazatel v záznamu. V zájmu zrychleného čtení se u 8251 neustále nastavuje příznak plného vstupního bufferu.
Zápis na pásku je automaticky odchytáván sledováním posloupnosti odeslané na port 1eh. Pokud posloupnost naplňuje vlastnosti hlavičky (úvodní sekvence bajtů ff/00/55 + hlavička + platné CRC), nabídne se volba souboru, do kterého se data ukládají. Soubor je typu ptp a emulátor automaticky odděluje bloky, pokud je mezi zápisy na 1eh větší mezera. Ukládání je dále automaticky ukončeno, pokud se manipuluje s nastavením 8251 nebo 8253 (zápis na porty 1fh/5x) nebo uplyne větší pauza od posledního zápisu na 1eh. Ukládání není patchnuté, takže trvá reálnou dobu, ovšem pomocí boost režimu (ALT+B) lze ukládání výrazně urychlit.
Poslechnout si generovaný zvukový záznam je možné aktivací příposlechu (ALT+G). Tento generovaný zvuk lze také použít pro transfer souboru na skutečné PMD85.
Po otevření ptp/pmd souboru lze obsah pásky procházet v ALT nabídce klávesami ALT+šipka nahoru/šipka dolů/home/end. Při zahájení čtení se začíná označeným záznamem. Ke každému záznamu je uvedena velikost, která je dána součtem velikosti hlavičky a všech dalších navazujících (nehlavičkových) bloků. Rozečtený záznam má graficky znázorněnou načtenou část.
Drop nabídka
Záměna souborů v emulaci pásky, ROM modulu, monitoru a obsahu RAM lze provést prostým přetažením na okno emulátoru a upuštěním na příslušnou nabídku:
- Vložit a spustit – přepne se na verzi PMD85-2A a do ROM modulu se spustí kód, který provede automatický načtení a spuštění hry. Nefunguje univerzálně, hry pro PMD85-1 takto spustit nejdou, pro tyto případy je nutné zvolit verzi 1, použít Vložit pásku a manuálně načíst příkazem MGLD XX.
- Vložit pásku – pouze vloží soubor jako pásku. Pokud se nejedná o soubor s páskou, doplní jej o hlavičku a tento soubor lze načíst příkazem MGLD 00. Do hlavičky se doplní číslo souboru 00, prompt ‚?‘, startovací adresa 00 a 8 znaků z názvu souboru. Držením klávesy SHIFT se nové záznamy připojí na konec načtené pásky.
- RAM od 0000/RAM od 4000 – načte obsah do RAM od příslušné adresy.
- Načíst do ROM – myšleno do ROM modulu, např. jiná verze BASICu apod.
- Nahradit monitor – zamění firmware. Pozor! Po resetu se startuje s tímto firmwarem, pokud obsahuje chybu, může dojít k sesypání emulovaného PMD.
Automatické ukládání stavu
Během emulace se automaticky vytvářejí každé 3 sekundy stavy emulace, ke kterým se lze vrátit klávesovou zkratkou ALT+LEFT. Celkem je možné vrátit emulaci až o 1 minutu. Je to pomocník při hraní i při ladění. Tuto funkci jsem nazval obraceč času podle přívěsku s obdobnou funkcí, který v Harry Potterovi použila Hermiona 🙂
Emulace myši
Na portu 8Ch se vytváří časová posloupnost signálu ze clonek myši a stav tlačítek. Rychlost pohybu myši ovlivňuje rychlost změny clonky.. Pokud je zapnutá emulace myši a klikne se na okno emulátoru, dojde k zachycení myši – ztratí se kurzor a nejde z okna vyjet. Uvolnění myšky se provede klávesou ESC (další stisk ESC zastaví emulaci).
Emulace joysticku
Klávesovovou zkratkou ALT+J lze cyklicky volit připojení joysticku na interface GPIOA nebo GPIOB. Momentálně se emuluje pouze jeden připojený joystick. Joystick je namapován na kurzorové klávesy a pravý CTRL (fire).
Emulace PAX modulu
PAX modul lze spustit jen parametrem příkazové řádky. Pro svou funkci potřebuje uvést cestu, která se stane kořenovým adresářem při emulaci SD karty a dále parametrem -rom: specifikovat obsah emulované ROM – nejlépe PAXCommander. Součástí zipu je obraz fungující verze PAXCommanderu a dávkový soubor pro ukázku, jak emulaci PAX modulu spustit.
Články k verzím
- ePMD85 v1.7Poslední měsíc jsem se věnoval dokončení PAX modulu. Abych si ulehčil vývoj GUI rozhraní pro tento modul, implementoval jsem emulaci PAX modulu i do ePMD85. Kromě toho jsem opravil pár věcí: prodloužena mezera mezi bloky v ptp souboru – měl jsem nastavenou kratší mezeru bloky (během této mezery se generuje jen pilotní tón). To vedlo […]
- ePMD85 v1.6Nestává se to často, že bych připravil novou verzi emulátoru tak brzy, ale protože už si hovím na vánoční dovolené a mám dostatek času, vrhl jsem se na dokončení toho, co mě poslední roky vadilo nejvíce, ale moc se mi do toho nechtělo – emulace čtení a zápisu na mgf pásku. Do teď jsem emulátor […]
- ePMD85 1.5Tak jsem naakumuloval nějaká ta vylepšeníčka a pouštím novou verzi do světa.
- ePMD 1.4 + debuggerNová verze emulátoru je zde! Sice ještě stále nemám dořešenou emulaci magnetofonu, ale přidal jsem 3 mega funkce, tak si to zaslouží samostatné číslo 1.4.
- Emulátor PMD85 – update na 1.3Na začátku dovolené jsem měl čas, a tak přišel na řadu velký „user interface update“.