Celé vlákno · 9 zpráv
Re: Emulator ZX Spectra pro Sharpa
VELESOFT (SPRINTER) SHARP MZ-800
Ahoj, jde nekde na inetu k sehanni emulator ZX Spectrum? Vim, ze pro Sharpa nejaky existuje, ale jeste jsem ho nevidel. Rad bych videl na vlastni oci, oc jde :)
---
Re: Emulator ZX Spectra pro Sharpa
Factor6 SHARP MZ-800
Ahoj, jde nekde na inetu k sehanni emulator ZX Spectrum? Vim, ze pro Sharpa nejaky existuje, ale jeste jsem ho nevidel. Rad bych videl na vlastni oci, oc jde :)
---
---
Re: Emulator ZX Spectra pro Sharpa
VELESOFT (SPRINTER) SHARP MZ-800
Myslim, ze ne, sly spoustet normalne hry...
Ahoj, jde nekde na inetu k sehanni emulator ZX Spectrum? Vim, ze pro Sharpa nejaky existuje, ale jeste jsem ho nevidel. Rad bych videl na vlastni oci, oc jde :)
---
---
---
Re: Emulator ZX Spectra pro Sharpa
Jakub Ladman SHARP MZ-800
Ahoj Ted nevim kde je, ale taky nekde ten emulator mam a opravdu funguje, ale dost pomalu. Podle mne to funguje tak, ze se emulovana videoram pod nejakym prerusenim prepisuje do realne videoram, s prislusnymi zmenami. Stejne tak nacitani klavesnice a pod. ZX ma videoram v zakladnim adresnim prostoru, MZ imho umi mit celych 64KB RAM a k videoram se pristupuje jinak, nikdy jsem pro sharpa nic ve hw zavisleho nepsal a neznam to, na to jsou tu vetsi experti. Proste se chvili necha bezet ZX kod, pak se prerusi a chvili se data zpracovavaji emulatorem a vyuziva hw sharpa, pak se zase skoci zpet do ZX kodu. Jediny problem by mohl vzniknout s io porty v kolizi, jinak to musi fungovat. Jakub Ladman Dne neděle 28 Březen 2010 21:41:45 VELESOFT (SPRINTER) (sharpemupandora.cz) napsal(a):
Zobrazit citovaný text (74 řádků)
> Myslis asi basicove hry. Odkdy ma SHARP graficky mod 256x192 a organizaci > videoram shodnou se ZX Spectrem ? Ma vubec videoram od adresy 16384 jako > ZX ? Vzdyt ani porty klavesnice nemohou sedet, ani nic jineho. Se ZX ho > spojuje tusim jen fakt, ze ma take atributovy rezim (ale jine rozliseni), > take Z80 CPU (ale rychlejsi ?), take klavesnici (ale jinou a na jinych > portech), a adresovy prostor 64kB (nejspis take jinak usporadany co se > romky tyce). > > VELESOFT > ----- Original Message ----- > From: Factor6 > To: Konference Počítač SHARP MZ-800 a emulátory > Sent: Sunday, March 28, 2010 7:13 PM > Subject: Re: Emulator ZX Spectra pro Sharpa > > > Myslim, ze ne, sly spoustet normalne hry... > > > > F6 > > > > > > > Dne 28. března 2010 17:34 VELESOFT (SPRINTER) (sharpemupandora.cz) > <velesoft[doména skryta]> napsal(a): > > > Vzhledem k jinemu rozliseni to bude asi jen emulator ZX romky(basicu). > Nic vic. Jakykoli strojovy kod spusteni z ramky nebude korektne pracovat s > grafikou.... > > VELESOFT > ----- Original Message ----- > From: Factor6 > To: Konference Počítač SHARP MZ-800 a emulátory > Sent: Sunday, March 28, 2010 6:04 PM > Subject: Emulator ZX Spectra pro Sharpa > > > Ahoj, jde nekde na inetu k sehanni emulator ZX Spectrum? Vim, ze pro > Sharpa nejaky existuje, ale jeste jsem ho nevidel. Rad bych videl na > vlastni oci, oc jde :) > > > > F6 > > > > > --- > > > > > > --- > > > > > > > > --- > > > > --- >
Re: Emulator ZX Spectra pro Sharpa
VELESOFT (SPRINTER) SHARP MZ-800
A jak to ma vlastne SHARP s prerusenim ? Ma na to nejaky extra hardware co generuje NMI ? Totiz nektery ZX software bezi celou dobu uplne v pohode se zakazanym prerusenim ( DI ). Jiny software zase preruseni pouziva, ale v drtive vetsine IM2 s vlastnim vektorem preruseni. Aby si SHARP mohl pravidelne preruseni generovat, potrebuje na to jedine generovat prave NMI, jinak si neskrtne. Leda ze by ten emulator mel upravenou ZX romku, ktera pri preruseni IM1 cte primo sharpackou klavesnici + obcas prekopiruje videoram do te sharpacke. S takovym emulatorem by mohl fungovat leda tak hodne stary software urceny jeste pro ZX16kB, pripadne cokoli psaneho v ZX BASICu pro ZX48kB. Samozrejme takove prekopirovani celych 6912 bajtu ZX videoram do SHARPacke trva dost dlouho. Aby ho modifikovana romka kopirovala kazde preruseni je nerealne, to by emulator stal na miste. Zbyva jediny zpusob jak na to rozumnou cestou: na rutinu IM1 v ZX romce umistit nejaky citac preruseni + pridat test, ktery treba jednou za 10 preruseni prekonvertuje data ze ZX videoram oblasti do SHARPacke vram. Az tak SHARPa neznam, ale myslim, ze bude mit hodne podobnou organizaci videoramky jako ZX Spectrum, take atributy, trosku vetsi rozliseni, ale pekne linearni usporadani dat (zx ma zprehazene mikroradky). Za pomoci pripojeneho DMA cipu ( Z80DMA ) by byl presun videoramek jeste rychlejsi. Bez DMA to jde nejrychleji napsat tak, ze si udelame z ZX romce tabulku adres mikroradku obou videoramek (ZX a SHARP), nastavime zasobnik jeden radek a pomoci POP do vsech registru Z80CPU vycteme tolik dat, kolik jen pujde. Pak nastavime zasobnik na cilovy radek ve sharpacke vram a pomoci PUSH tam rychle preneseme data. Atd... Pripadne by se to dalo take pres rozepsane instrukce LDI+LDI+LDI.... Dalsi pruser vidim ve cteni stavu klavesnice. ZX Software prece vetsinou pouziva vlastni rutiny klavesnice a nikoli ty ze ZX rom. Takze emulator po nahrani hry pred jejim spustenim musi prohledat celou ZX ram (oblast pameti 16384-65535) a vyhledat tam instrukce pro cteni portu klavesnice jako jsou treba: IN A,(254) nebo LD BC,xxFE+IN A,(C) a nahradit je nejakou kratkou instrukci. Idealne by to slo prepsat jednim RST xx ktere skoci na nasi rutinu v modifikovane ZX rom. Tato rutina si ze zasobniku vycte adresu odkud byla volana a pokud najde nasledujici bajt 254, musime emulovat klavesnici ZX. Dulezite ale je, ze musime rozlisit mezi IN A,(254) a IN A,(C). Kazda z techto instrukci by mela byt nahrazena RST s jinou adresou a samostatnym testem portu v romce. Ja toto delal na SAM COUPE pro moznost emulace ZX Spectra 128kB. U takovych emulatoru je ale celkem mala sance, ze nejaky ten ZX software pobezi stabilne. Nejspis fakt jen starsi hry. Cely takovy emulator neni zadny problem za jeden den napsat. Chce to jen mit dokumentaci ohledne portu klavesnice SHARPa a info jak to ma udelane s videoram. VELESOFT
Zobrazit citovaný text (105 řádků)
----- Original Message ----- From: "Jakub Ladman" <sharpemu[doména skryta]volny.cz> To: "Konference Počítač SHARP MZ-800 a emulátory" <sharpemupandora.cz> Sent: Sunday, March 28, 2010 10:02 PM Subject: Re: Emulator ZX Spectra pro Sharpa > > Ahoj > Ted nevim kde je, ale taky nekde ten emulator mam a opravdu funguje, ale dost > pomalu. > Podle mne to funguje tak, ze se emulovana videoram pod nejakym prerusenim > prepisuje do realne videoram, s prislusnymi zmenami. > Stejne tak nacitani klavesnice a pod. > ZX ma videoram v zakladnim adresnim prostoru, MZ imho umi mit celych 64KB RAM > a k videoram se pristupuje jinak, nikdy jsem pro sharpa nic ve hw zavisleho > nepsal a neznam to, na to jsou tu vetsi experti. > Proste se chvili necha bezet ZX kod, pak se prerusi a chvili se data > zpracovavaji emulatorem a vyuziva hw sharpa, pak se zase skoci zpet do ZX > kodu. Jediny problem by mohl vzniknout s io porty v kolizi, jinak to musi > fungovat. > > Jakub Ladman > > > Dne neděle 28 Březen 2010 21:41:45 VELESOFT (SPRINTER) (sharpemupandora.cz) > napsal(a): > > Myslis asi basicove hry. Odkdy ma SHARP graficky mod 256x192 a organizaci > > videoram shodnou se ZX Spectrem ? Ma vubec videoram od adresy 16384 jako > > ZX ? Vzdyt ani porty klavesnice nemohou sedet, ani nic jineho. Se ZX ho > > spojuje tusim jen fakt, ze ma take atributovy rezim (ale jine rozliseni), > > take Z80 CPU (ale rychlejsi ?), take klavesnici (ale jinou a na jinych > > portech), a adresovy prostor 64kB (nejspis take jinak usporadany co se > > romky tyce). > > > > VELESOFT > > ----- Original Message ----- > > From: Factor6 > > To: Konference Počítač SHARP MZ-800 a emulátory > > Sent: Sunday, March 28, 2010 7:13 PM > > Subject: Re: Emulator ZX Spectra pro Sharpa > > > > > > Myslim, ze ne, sly spoustet normalne hry... > > > > > > > > F6 > > > > > > > > > > > > > > Dne 28. března 2010 17:34 VELESOFT (SPRINTER) (sharpemupandora.cz) > > <velesoft[doména skryta]> napsal(a): > > > > > > Vzhledem k jinemu rozliseni to bude asi jen emulator ZX romky(basicu). > > Nic vic. Jakykoli strojovy kod spusteni z ramky nebude korektne pracovat s > > grafikou.... > > > > VELESOFT > > ----- Original Message ----- > > From: Factor6 > > To: Konference Počítač SHARP MZ-800 a emulátory > > Sent: Sunday, March 28, 2010 6:04 PM > > Subject: Emulator ZX Spectra pro Sharpa > > > > > > Ahoj, jde nekde na inetu k sehanni emulator ZX Spectrum? Vim, ze pro > > Sharpa nejaky existuje, ale jeste jsem ho nevidel. Rad bych videl na > > vlastni oci, oc jde :) > > > > > > > > F6 > > > > > > > > > > --- > > > > > > > > > > > > --- > > > > > > > > > > > > > > > > --- > > > > > > > > --- > > > > ---
Re: Emulator ZX Spectra pro Sharpa
VELESOFT (SPRINTER) SHARP MZ-800
----- Original Message ----- From: "Jakub Ladman" <sharpemu[doména skryta]volny.cz> To: "Konference Počítač SHARP MZ-800 a emulátory" <sharpemupandora.cz> Sent: Sunday, March 28, 2010 10:02 PM Subject: Re: Emulator ZX Spectra pro Sharpa > > Ahoj > Ted nevim kde je, ale taky nekde ten emulator mam a opravdu funguje, ale dost > pomalu. > Podle mne to funguje tak, ze se emulovana videoram pod nejakym prerusenim > prepisuje do realne videoram, s prislusnymi zmenami. > Stejne tak nacitani klavesnice a pod. No a ja si troufam tvrdit, ze by sel udelat pro SHARPa nejaky modul/interface pro dokonalou emulaci ZX Spectra. Akorat nevim jak hodne slozita by byla prace s klavesnici. VELESOFT
Re: Emulator ZX Spectra pro Sharpa
Roman Dolejsi SHARP MZ-800
emulator ZX Spectra jsem opravdu na Sharpa napsal ja a fungoval v principu jak prave popsal Velesoft..
ROMka Spectra byla na svych nevyuzitych mistech napechovana mymi emulacnimi rutinami, ktere byly volany z nativniho kodu pomoci RST odskoku. Samozrejme slo vyuzit pouze omezene mnozstvi RST, aby ZX basic jako takovy zustal zachovany. Pri emulaci delsich instrukci jsem mel za RST odskokem jeste poradovy kod instrukce, atp. V momente, kdy se pres prepsane rutiny nahravani z kazetaku dohral blok, tento blok jsem projel, vyhledal spravne instrukce a nahradil je. Timto zpusobem byla vyresena klavesnice, joystick, emulace ZX IM2 (prace s I registrem, atd), zvuk 48 i AY emulace..
Prepis obrazovky fungoval pod prerusenim a nebyl vubec jednoduchy udelat. Obrazovka Sharpa ma nezvykle otocenou reprezentaci osmi bodu v byte. Kdyz tedy dochazi k vykreslovani cehokoli, vetsina programu musela standardne ulozene informace pred zapisem zrcadlove otacet. Sharp navic samozrejme nema atributy. Lze zapisovat danych osm bodu v urcitem modu zapisu do ruznych rovin (or, and, xor, ..), cimz je mozne nastavit jakoukoli barvu z palety 16 barev.. Tahle manipulace ma ale i sve nevyhody - kompletni obsluha takove obrazovky neni vubec rychlou zalezitosti..
Proto mel emulator moznost prepinat zobrazeni mezi barevnym a cernobilym (ktere bylo samozrejme o dost pomalejsi).
Celkove jsem tehdy mel velke problemy s dostupnym mistem v pameti. Kdyz emulator spustite, muzete si vsimnout, ze kusy kodu a konverznich tabulek jsou dokonce ulozeny ve VRAM Sharpa ;-))
Mnozstvi programu, ktere bezely, hodne zaviselo na nahode. Emulace jako takova problemy nemela. Opravdove problemy byly jen dva:
- pokud v miste odskoku na emulaci byl SP registr hrou zrovna pouzit jako ukazatel na data (tj. zasobnik neexistoval).. U grafickych rutin her tomu tak obcas bylo :-((
- pokud hra/aplikace prepisovala svuj vlastni kod na mistech emulace
- pokud ma prohledavaci rutina nasla a prepsala misto instrukci nejaka zivotne dulezita data :-)
Celkem vzato technologie fungovala, hry behaly (i kdyz pomalu), jen to melo sve mouchy :-)) Emulator prikladam, muzete posoudit, zda vubec neco zvladl ;-)))
HTH,
Roman
Sent: Sunday, March 28, 2010 10:02 PM
Subject: Re: Emulator ZX Spectra pro Sharpa
>
> Ted nevim kde je, ale taky nekde ten emulator mam a opravdu funguje, ale dost
> pomalu.
> Podle mne to funguje tak, ze se emulovana videoram pod nejakym prerusenim
> prepisuje do realne videoram, s prislusnymi zmenami.
> Stejne tak nacitani klavesnice a pod.
pro dokonalou emulaci ZX Spectra. Akorat nevim jak hodne slozita by byla prace s
klavesnici.
VELESOFT
---
Přílohy
-
zxemu.mzfapplication/octet-stream · 18 kB
Re: Emulator ZX Spectra pro Sharpa
Roman Dolejsi SHARP MZ-800
O dost pozdeji me to inspirovalo k napsani ZX2MZ - programku, ktery za pomoci vybraneho PC emulatoru ZX a dat z nej vytazenych (charakteristika behu hry) umi udelat cistou konverzi ZX hry na MZ hru. Jeden z vysledku prikladam jako ukazku, vcetne XML deskriptoru pro predelani ;-)
Tu technologii by slo dotahnout, jen mi nekde generuje chyby - neni zcela uspesna - a jeste stale jsem nemel cas to plne odladit - a uz je to stare 10 let ;-)..
Prikladam readme.txt, ktere jsem od toho nekde vyhrabal + ukazkove hry + jiz predeslanou ukazku XML s popisem, co hra dela - podle te konvertor pracuje..
btw. na prechodu mezi mistnostmi v Pyjamarame muzete videt, jak narocne je zkonvertovat/prepsat jeden byte barevne na Sharpa oproti jednoducheho zapisu do VRAM Spectra.. Napr. emulaci instrukce, ktera blika vsemi atributy obrazovky u Olli&Lisa jsem radsi vypnul (viz XML), jinak by se clovek dalsiho obrazu na Sharpu nedockal vubec ;-)
Na Puzznicovi zase vidite, jak maji emulacni rutiny jeste chybky a zpusobuji nehratelnost cele hry. AY hudba je ale fajn ;-)
Uzivejte ve zdravi ;-)
Roman
Zdravim,
emulator ZX Spectra jsem opravdu na Sharpa napsal ja a fungoval v principu jak prave popsal Velesoft..
ROMka Spectra byla na svych nevyuzitych mistech napechovana mymi emulacnimi rutinami, ktere byly volany z nativniho kodu pomoci RST odskoku. Samozrejme slo vyuzit pouze omezene mnozstvi RST, aby ZX basic jako takovy zustal zachovany. Pri emulaci delsich instrukci jsem mel za RST odskokem jeste poradovy kod instrukce, atp. V momente, kdy se pres prepsane rutiny nahravani z kazetaku dohral blok, tento blok jsem projel, vyhledal spravne instrukce a nahradil je. Timto zpusobem byla vyresena klavesnice, joystick, emulace ZX IM2 (prace s I registrem, atd), zvuk 48 i AY emulace..
Prepis obrazovky fungoval pod prerusenim a nebyl vubec jednoduchy udelat. Obrazovka Sharpa ma nezvykle otocenou reprezentaci osmi bodu v byte. Kdyz tedy dochazi k vykreslovani cehokoli, vetsina programu musela standardne ulozene informace pred zapisem zrcadlove otacet. Sharp navic samozrejme nema atributy. Lze zapisovat danych osm bodu v urcitem modu zapisu do ruznych rovin (or, and, xor, ..), cimz je mozne nastavit jakoukoli barvu z palety 16 barev.. Tahle manipulace ma ale i sve nevyhody - kompletni obsluha takove obrazovky neni vubec rychlou zalezitosti..
Proto mel emulator moznost prepinat zobrazeni mezi barevnym a cernobilym (ktere bylo samozrejme o dost pomalejsi).
Celkove jsem tehdy mel velke problemy s dostupnym mistem v pameti. Kdyz emulator spustite, muzete si vsimnout, ze kusy kodu a konverznich tabulek jsou dokonce ulozeny ve VRAM Sharpa ;-))
Mnozstvi programu, ktere bezely, hodne zaviselo na nahode. Emulace jako takova problemy nemela. Opravdove problemy byly jen dva:
- pokud v miste odskoku na emulaci byl SP registr hrou zrovna pouzit jako ukazatel na data (tj. zasobnik neexistoval).. U grafickych rutin her tomu tak obcas bylo :-((
- pokud hra/aplikace prepisovala svuj vlastni kod na mistech emulace
- pokud ma prohledavaci rutina nasla a prepsala misto instrukci nejaka zivotne dulezita data :-)
Celkem vzato technologie fungovala, hry behaly (i kdyz pomalu), jen to melo sve mouchy :-)) Emulator prikladam, muzete posoudit, zda vubec neco zvladl ;-)))
HTH,
Roman
Sent: Sunday, March 28, 2010 10:02 PM
Subject: Re: Emulator ZX Spectra pro Sharpa
>
> Ted nevim kde je, ale taky nekde ten emulator mam a opravdu funguje, ale dost
> pomalu.
> Podle mne to funguje tak, ze se emulovana videoram pod nejakym prerusenim
> prepisuje do realne videoram, s prislusnymi zmenami.
> Stejne tak nacitani klavesnice a pod.
pro dokonalou emulaci ZX Spectra. Akorat nevim jak hodne slozita by byla prace s
klavesnici.
VELESOFT
---
Přílohy
-
introduction.txttext/plain · 17 kB