Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Zpět na zprávu

Celé vlákno · 13 zpráv

Soutez

Michal Hučík SHARP MZ-800

Ahoj,

chtel bych vyhlasit soutez, jejimz ukolem je najit pricinu toho, proc v zadnem z top emulatoru (Zdenkuv, Romanuv) nefunguje spravne hra Tetris2, ktera je ulozena na tomto konkretnim DSK http://duna.ordoz.com/doc/soutez/Hry-HDS05.dsk

Hra se po spusteni zakousne. Deje se tak nejen ve zminenych emulatorech, ale i v mem FPGA HW modelu Sharpa.

Nicmene kdyz ten image natahnete pres SD do Unikarty, tak ta hra na realnem Sharpu bez problemu bezi!

Kdysi jsem to trochu zkoumal a jedine co si z toho pamatuju je tusim to, ze v emulatoru se deje jeden interrupt navic a ten tu hru zbori... Vic si nevybavuju, nicmene na pozadani jsem ochoten premerit sondou, ci osciloskopem vse, co bude v mych silach - mne totiz uz nejak nenapada jak dal tu pricinu potizi hledat a proto by treba pomohl pohled na vec od nekoho cerstveho.

Klidne placnete i prvni hloupost, ktera vas jako mozna pricina napadne :)


Pro uspesneho resitele tohoto ukolu nabizim za odmenu 1ks WD2791 z jiste limitovane edice ;)

Michal

Re: Soutez

Bohumil Nováček SHARP MZ-800

Ahoj,

  tak ja neco placnu. Taky se mi totiz na HW emulatoru Tetris2 kousal.
Zkusim to otazkou ...
Generuje Z80PIO dalsi preruseni az teprve po vykonani instrukce RETI (kod ED 4D) ?
Pokud je odpoved NE, nekdo nedocetl specifikaci Z80PIO az dokonce ! ;-)

Hodne stesti
Bohous

Zobrazit citovaný text

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) <ordoz[doména skryta]>
Datum: 23. 5. 2013
Předmět: Soutez


Ahoj,

chtel bych vyhlasit soutez, jejimz ukolem je najit pricinu toho, proc v zadnem z top emulatoru (Zdenkuv, Romanuv) nefunguje spravne hra Tetris2, ktera je ulozena na tomto konkretnim DSK http://duna.ordoz.com/doc/soutez/Hry-HDS05.dsk

Hra se po spusteni zakousne. Deje se tak nejen ve zminenych emulatorech, ale i v mem FPGA HW modelu Sharpa.

Nicmene kdyz ten image natahnete pres SD do Unikarty, tak ta hra na realnem Sharpu bez problemu bezi!

Kdysi jsem to trochu zkoumal a jedine co si z toho pamatuju je tusim to, ze v emulatoru se deje jeden interrupt navic a ten tu hru zbori... Vic si nevybavuju, nicmene na pozadani jsem ochoten premerit sondou, ci osciloskopem vse, co bude v mych silach - mne totiz uz nejak nenapada jak dal tu pricinu potizi hledat a proto by treba pomohl pohled na vec od nekoho cerstveho.

Klidne placnete i prvni hloupost, ktera vas jako mozna pricina napadne :)


Pro uspesneho resitele tohoto ukolu nabizim za odmenu 1ks WD2791 z jiste limitovane edice ;)

Michal

Re: Soutez

Michal Hučík SHARP MZ-800



Ahoj, diky za tip, ale tuto vlastnost budou mit asi vsechny zminene emulatory implementovanu (u Zdenka to treba jeste vyzkousim nejakym experimentalnim kodem).

Tady je VHDL kod meho Z80PIO ve kterem je m.j. v poznamce napsano, ze skutecne PIO pry nereaguje na RETI, ale jen na zacatek instrukcniho optokodu 0xED a pak uz mu staci jen jeden aktivni M1 + RD cyklus ... Uz si to nevybavuju, ale kdyz jsem to tam napsal, tak si budu verit :)
http://duna.ordoz.com/doc/soutez/Z80PIO.vhd

Tu chybu s Tetris2 jsme se Zdenkem probirali uz pred par rokama a vzpomnel jsem si na ni prave v souvislosti s tim, ze jsi prisel na to, ze v emulatoru chodi pomaleji interrupty z 8253 ... Napadlo mne, jestli neni spise chyba nekde kolem tech preruseni, nez v samotnem citaci a proto jsem to znova vytahnul na svetlo.

Tve demo jsem na FPGA jeste nezkousel. Snad pres vikend.

Michal

Dne 23.5.2013 23:54, Bohumil Nováček (sharpemupandora.cz) napsal(a):

Ahoj,

  tak ja neco placnu. Taky se mi totiz na HW emulatoru Tetris2 kousal.
Zkusim to otazkou ...
Generuje Z80PIO dalsi preruseni az teprve po vykonani instrukce RETI (kod ED 4D) ?
Pokud je odpoved NE, nekdo nedocetl specifikaci Z80PIO az dokonce ! ;-)

Hodne stesti
Bohous

Zobrazit citovaný text

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) <ordoz[doména skryta]>
Datum: 23. 5. 2013
Předmět: Soutez


Ahoj,

chtel bych vyhlasit soutez, jejimz ukolem je najit pricinu toho, proc v zadnem z top emulatoru (Zdenkuv, Romanuv) nefunguje spravne hra Tetris2, ktera je ulozena na tomto konkretnim DSK http://duna.ordoz.com/doc/soutez/Hry-HDS05.dsk

Hra se po spusteni zakousne. Deje se tak nejen ve zminenych emulatorech, ale i v mem FPGA HW modelu Sharpa.

Nicmene kdyz ten image natahnete pres SD do Unikarty, tak ta hra na realnem Sharpu bez problemu bezi!

Kdysi jsem to trochu zkoumal a jedine co si z toho pamatuju je tusim to, ze v emulatoru se deje jeden interrupt navic a ten tu hru zbori... Vic si nevybavuju, nicmene na pozadani jsem ochoten premerit sondou, ci osciloskopem vse, co bude v mych silach - mne totiz uz nejak nenapada jak dal tu pricinu potizi hledat a proto by treba pomohl pohled na vec od nekoho cerstveho.

Klidne placnete i prvni hloupost, ktera vas jako mozna pricina napadne :)


Pro uspesneho resitele tohoto ukolu nabizim za odmenu 1ks WD2791 z jiste limitovane edice ;)

Michal


---
Pobyty na horách se slevou


Re: Soutez

Zdenek Adler SHARP MZ-800

Ahoj chlapi,
 
obávám se že specifikaci Z80PIO jsem tenkrát kvůli tomu přečetl snad i pozpátku, abych něco nevynechal. Letmo jsem se koukal do kódu a před návratem z přerušovací rutiny by skutečně další přerušení nemělo být generováno.
Vím ještě o jednom případu, kde jsem nebyl schopen zjistit, proč se mi generuje přerušení 2x pomaleji než má tentokráte to bylo v http://mz-800.xf.cz/files/rdosfx4.mzf kde jestli si dobře pamatuju je přerušení generováno od VBLNK přes PIO v IM2. Jak vám na FPGA šlape tohle?
Tenkrát jsem měl podezření, že mi v tom dělají bordel WAIT stavy, kterými se tuším brzdí procesor při zápisech do VRAM v MZ-700 režimu (doufám že nekecám, je už to docela dávno). To jsem ale následně řešil u této japonské hry http://mz-800.xf.cz/files/y2k.mzf u které autor jemné grafiky docílil rychlým přepínáním fontů na konci každého zobrazovaného řádku, nicméně to nevyřešilo problémy s RDOSFX4 ani zmiňovaným Tetrisem. Mimochodem, k tomu Y2K.MZF ovládání je klávesami 1,2,3 (kámen, nůžky, papír) a pokud nechcete sledovat ty artefakty které tam nemají co dělat, je třeba do emulátoru naládovat japonský font.
 
Zdeněk
 
 
 
From: mailto:ordoz[doména skryta]
Sent: Friday, May 24, 2013 8:25 AM
To: Konference "Počítač SHARP MZ-800 a emulátory"
Subject: Re: Soutez
 



Ahoj, diky za tip, ale tuto vlastnost budou mit asi vsechny zminene emulatory implementovanu (u Zdenka to treba jeste vyzkousim nejakym experimentalnim kodem).

Tady je VHDL kod meho Z80PIO ve kterem je m.j. v poznamce napsano, ze skutecne PIO pry nereaguje na RETI, ale jen na zacatek instrukcniho optokodu 0xED a pak uz mu staci jen jeden aktivni M1 + RD cyklus ... Uz si to nevybavuju, ale kdyz jsem to tam napsal, tak si budu verit :)
http://duna.ordoz.com/doc/soutez/Z80PIO.vhd

Tu chybu s Tetris2 jsme se Zdenkem probirali uz pred par rokama a vzpomnel jsem si na ni prave v souvislosti s tim, ze jsi prisel na to, ze v emulatoru chodi pomaleji interrupty z 8253 ... Napadlo mne, jestli neni spise chyba nekde kolem tech preruseni, nez v samotnem citaci a proto jsem to znova vytahnul na svetlo.

Tve demo jsem na FPGA jeste nezkousel. Snad pres vikend.

Michal

Dne 23.5.2013 23:54, Bohumil Nováček (sharpemupandora.cz) napsal(a):

Ahoj,

  tak ja neco placnu. Taky se mi totiz na HW emulatoru Tetris2 kousal.
Zkusim to otazkou ...
Generuje Z80PIO dalsi preruseni az teprve po vykonani instrukce RETI (kod ED 4D) ?
Pokud je odpoved NE, nekdo nedocetl specifikaci Z80PIO az dokonce ! ;-)

Hodne stesti
Bohous

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) mailto:ordoz[doména skryta]
Datum: 23. 5. 2013
Předmět: Soutez


Ahoj,

chtel bych vyhlasit soutez, jejimz ukolem je najit pricinu toho, proc v zadnem z top emulatoru (Zdenkuv, Romanuv) nefunguje spravne hra Tetris2, ktera je ulozena na tomto konkretnim DSK http://duna.ordoz.com/doc/soutez/Hry-HDS05.dsk

Hra se po spusteni zakousne. Deje se tak nejen ve zminenych emulatorech, ale i v mem FPGA HW modelu Sharpa.

Nicmene kdyz ten image natahnete pres SD do Unikarty, tak ta hra na realnem Sharpu bez problemu bezi!

Kdysi jsem to trochu zkoumal a jedine co si z toho pamatuju je tusim to, ze v emulatoru se deje jeden interrupt navic a ten tu hru zbori... Vic si nevybavuju, nicmene na pozadani jsem ochoten premerit sondou, ci osciloskopem vse, co bude v mych silach - mne totiz uz nejak nenapada jak dal tu pricinu potizi hledat a proto by treba pomohl pohled na vec od nekoho cerstveho.

Klidne placnete i prvni hloupost, ktera vas jako mozna pricina napadne :)


Pro uspesneho resitele tohoto ukolu nabizim za odmenu 1ks WD2791 z jiste limitovane edice ;)

Michal


---
Pobyty na horách se slevou


 


---
Pobyty na horách se slevou

Re: Soutez

Bohumil Nováček SHARP MZ-800

Ahoj,

  no mozna to tim vubec neni zpusobeno, ale kazdopadne jsem to rano zkousel a bohuzel treba
zrovna Zdenkuv emulator vesele generuje preruseni od PIO, i kdyz nahradim RETI jenom RET,
zatimco Sharp se zastavi.

S tou reakci na ED XX misto ED 4D je to mozne, ze je to tahkle zjednodusene implementovano.
Zkusim overit pokusem na Sharpovi.

Zatim drzim palec v dalsim hledani a budu kdyztak napomocen
Bohous

Zobrazit citovaný text

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) <ordoz[doména skryta]>
Datum: 24. 5. 2013
Předmět: Re: Soutez




Ahoj, diky za tip, ale tuto vlastnost budou mit asi vsechny zminene emulatory implementovanu (u Zdenka to treba jeste vyzkousim nejakym experimentalnim kodem).

Tady je VHDL kod meho Z80PIO ve kterem je m.j. v poznamce napsano, ze skutecne PIO pry nereaguje na RETI, ale jen na zacatek instrukcniho optokodu 0xED a pak uz mu staci jen jeden aktivni M1 + RD cyklus ... Uz si to nevybavuju, ale kdyz jsem to tam napsal, tak si budu verit :)
http://duna.ordoz.com/doc/soutez/Z80PIO.vhd

Tu chybu s Tetris2 jsme se Zdenkem probirali uz pred par rokama a vzpomnel jsem si na ni prave v souvislosti s tim, ze jsi prisel na to, ze v emulatoru chodi pomaleji interrupty z 8253 ... Napadlo mne, jestli neni spise chyba nekde kolem tech preruseni, nez v samotnem citaci a proto jsem to znova vytahnul na svetlo.

Tve demo jsem na FPGA jeste nezkousel. Snad pres vikend.

Michal

Dne 23.5.2013 23:54, Bohumil Nováček (sharpemupandora.cz) napsal(a):

Ahoj,

  tak ja neco placnu. Taky se mi totiz na HW emulatoru Tetris2 kousal.
Zkusim to otazkou ...
Generuje Z80PIO dalsi preruseni az teprve po vykonani instrukce RETI (kod ED 4D) ?
Pokud je odpoved NE, nekdo nedocetl specifikaci Z80PIO az dokonce ! ;-)

Hodne stesti
Bohous

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) <ordoz[doména skryta]>
Datum: 23. 5. 2013
Předmět: Soutez


Ahoj,

chtel bych vyhlasit soutez, jejimz ukolem je najit pricinu toho, proc v zadnem z top emulatoru (Zdenkuv, Romanuv) nefunguje spravne hra Tetris2, ktera je ulozena na tomto konkretnim DSK http://duna.ordoz.com/doc/soutez/Hry-HDS05.dsk

Hra se po spusteni zakousne. Deje se tak nejen ve zminenych emulatorech, ale i v mem FPGA HW modelu Sharpa.

Nicmene kdyz ten image natahnete pres SD do Unikarty, tak ta hra na realnem Sharpu bez problemu bezi!

Kdysi jsem to trochu zkoumal a jedine co si z toho pamatuju je tusim to, ze v emulatoru se deje jeden interrupt navic a ten tu hru zbori... Vic si nevybavuju, nicmene na pozadani jsem ochoten premerit sondou, ci osciloskopem vse, co bude v mych silach - mne totiz uz nejak nenapada jak dal tu pricinu potizi hledat a proto by treba pomohl pohled na vec od nekoho cerstveho.

Klidne placnete i prvni hloupost, ktera vas jako mozna pricina napadne :)


Pro uspesneho resitele tohoto ukolu nabizim za odmenu 1ks WD2791 z jiste limitovane edice ;)

Michal


---
Pobyty na horách se slevou


Re: Soutez

Zdenek Adler SHARP MZ-800

Ahoj Bohouši,

máš nějaký konkrétní kód, kterým bych to mohl odzkoušet? Zatím jsem se
koukal jenom do zdrojáků a instrukce RETI a RET mám skutečně v tomto 
rozlišené. Netvrdím ale že jsem neomylný, jen mi nejde do hlavy, že mi
 potom 
fungovalo tolik jiných programů.
Každopádně děkuju za podnětné informace. Asi budu muset vzít po letech doruky literaturu a znovu si všechno osvěžit... Zatím i na vlastní zdrojáky 
koukám po 10-ti letech, jako by to psal někdo cizí :-)

Zdeněk


Zobrazit citovaný text (116 řádků)
From: Bohumil Nováček (sharpemupandora.cz)
Sent: Friday, May 24, 2013 12:35 PM
To: Konference "Počítač SHARP MZ-800 a emulátory"
Subject: Re: Soutez


Ahoj,

  no mozna to tim vubec neni zpusobeno, ale kazdopadne jsem to rano zkousel 
a bohuzel treba
zrovna Zdenkuv emulator vesele generuje preruseni od PIO, i kdyz nahradim 
RETI jenom RET,
zatimco Sharp se zastavi.

S tou reakci na ED XX misto ED 4D je to mozne, ze je to tahkle zjednodusene 
implementovano.
Zkusim overit pokusem na Sharpovi.

Zatim drzim palec v dalsim hledani a budu kdyztak napomocen
Bohous



---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) <ordoz[doména skryta]>
Datum: 24. 5. 2013
Předmět: Re: Soutez





Ahoj, diky za tip, ale tuto vlastnost budou mit asi vsechny zminene 
emulatory implementovanu (u Zdenka to treba jeste vyzkousim nejakym 
experimentalnim kodem).

Tady je VHDL kod meho Z80PIO ve kterem je m.j. v poznamce napsano, ze 
skutecne PIO pry nereaguje na RETI, ale jen na zacatek instrukcniho optokodu 
0xED a pak uz mu staci jen jeden aktivni M1 + RD cyklus ... Uz si to 
nevybavuju, ale kdyz jsem to tam napsal, tak si budu verit :)
http://duna.ordoz.com/doc/soutez/Z80PIO.vhd

Tu chybu s Tetris2 jsme se Zdenkem probirali uz pred par rokama a vzpomnel 
jsem si na ni prave v souvislosti s tim, ze jsi prisel na to, ze v emulatoru 
chodi pomaleji interrupty z 8253 ... Napadlo mne, jestli neni spise chyba 
nekde kolem tech preruseni, nez v samotnem citaci a proto jsem to znova 
vytahnul na svetlo.

Tve demo jsem na FPGA jeste nezkousel. Snad pres vikend.

Michal

Dne 23.5.2013 23:54, Bohumil Nováček (sharpemupandora.cz) napsal(a):


Ahoj,

  tak ja neco placnu. Taky se mi totiz na HW emulatoru Tetris2 kousal.
Zkusim to otazkou ...
Generuje Z80PIO dalsi preruseni az teprve po vykonani instrukce RETI (kod ED 
4D) ?
Pokud je odpoved NE, nekdo nedocetl specifikaci Z80PIO az dokonce ! ;-)

Hodne stesti
Bohous



---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) mailto:ordoz[doména skryta]
Datum: 23. 5. 2013
Předmět: Soutez



Ahoj,

chtel bych vyhlasit soutez, jejimz ukolem je najit pricinu toho, proc v 
zadnem z top emulatoru (Zdenkuv, Romanuv) nefunguje spravne hra Tetris2, 
ktera je ulozena na tomto konkretnim DSK 
http://duna.ordoz.com/doc/soutez/Hry-HDS05.dsk

Hra se po spusteni zakousne. Deje se tak nejen ve zminenych emulatorech, ale 
i v mem FPGA HW modelu Sharpa.

Nicmene kdyz ten image natahnete pres SD do Unikarty, tak ta hra na realnem 
Sharpu bez problemu bezi!

Kdysi jsem to trochu zkoumal a jedine co si z toho pamatuju je tusim to, ze 
v emulatoru se deje jeden interrupt navic a ten tu hru zbori... Vic si 
nevybavuju, nicmene na pozadani jsem ochoten premerit sondou, ci 
osciloskopem vse, co bude v mych silach - mne totiz uz nejak nenapada jak 
dal tu pricinu potizi hledat a proto by treba pomohl pohled na vec od nekoho 
cerstveho.

Klidne placnete i prvni hloupost, ktera vas jako mozna pricina napadne :)

Pro uspesneho resitele tohoto ukolu nabizim za odmenu 1ks WD2791 z jiste 
limitovane edice ;)

Michal





---
Pobyty na horách se slevou





---
Pobyty na horách se slevou

Re: Soutez

Zdenek Adler SHARP MZ-800

Ještě jeden dotaz na Bohouše (ale i na ostatní): když se tedy z přerušovací rutiny vyvolané od PIO vrátím instrukcí RET (namísto regulerního RETI) a následuje instrukce EI, zůstává přerušení od PIO nadále zakázané? Pokud ano, pak budu mít v emulátoru chybu....
 
Z.
 
 
From: mailto:bohumil.novacek[doména skryta]
Sent: Friday, May 24, 2013 12:35 PM
To: Konference "Počítač SHARP MZ-800 a emulátory"
Subject: Re: Soutez
 

Ahoj,

  no mozna to tim vubec neni zpusobeno, ale kazdopadne jsem to rano zkousel a bohuzel treba
zrovna Zdenkuv emulator vesele generuje preruseni od PIO, i kdyz nahradim RETI jenom RET,
zatimco Sharp se zastavi.

S tou reakci na ED XX misto ED 4D je to mozne, ze je to tahkle zjednodusene implementovano.
Zkusim overit pokusem na Sharpovi.

Zatim drzim palec v dalsim hledani a budu kdyztak napomocen
Bohous

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) <ordoz[doména skryta]>
Datum: 24. 5. 2013
Předmět: Re: Soutez




Ahoj, diky za tip, ale tuto vlastnost budou mit asi vsechny zminene emulatory implementovanu (u Zdenka to treba jeste vyzkousim nejakym experimentalnim kodem).

Tady je VHDL kod meho Z80PIO ve kterem je m.j. v poznamce napsano, ze skutecne PIO pry nereaguje na RETI, ale jen na zacatek instrukcniho optokodu 0xED a pak uz mu staci jen jeden aktivni M1 + RD cyklus ... Uz si to nevybavuju, ale kdyz jsem to tam napsal, tak si budu verit :)
http://duna.ordoz.com/doc/soutez/Z80PIO.vhd

Tu chybu s Tetris2 jsme se Zdenkem probirali uz pred par rokama a vzpomnel jsem si na ni prave v souvislosti s tim, ze jsi prisel na to, ze v emulatoru chodi pomaleji interrupty z 8253 ... Napadlo mne, jestli neni spise chyba nekde kolem tech preruseni, nez v samotnem citaci a proto jsem to znova vytahnul na svetlo.

Tve demo jsem na FPGA jeste nezkousel. Snad pres vikend.

Michal

Dne 23.5.2013 23:54, Bohumil Nováček (sharpemupandora.cz) napsal(a):

Ahoj,

  tak ja neco placnu. Taky se mi totiz na HW emulatoru Tetris2 kousal.
Zkusim to otazkou ...
Generuje Z80PIO dalsi preruseni az teprve po vykonani instrukce RETI (kod ED 4D) ?
Pokud je odpoved NE, nekdo nedocetl specifikaci Z80PIO az dokonce ! ;-)

Hodne stesti
Bohous

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) mailto:ordoz[doména skryta]
Datum: 23. 5. 2013
Předmět: Soutez


Ahoj,

chtel bych vyhlasit soutez, jejimz ukolem je najit pricinu toho, proc v zadnem z top emulatoru (Zdenkuv, Romanuv) nefunguje spravne hra Tetris2, ktera je ulozena na tomto konkretnim DSK http://duna.ordoz.com/doc/soutez/Hry-HDS05.dsk

Hra se po spusteni zakousne. Deje se tak nejen ve zminenych emulatorech, ale i v mem FPGA HW modelu Sharpa.

Nicmene kdyz ten image natahnete pres SD do Unikarty, tak ta hra na realnem Sharpu bez problemu bezi!

Kdysi jsem to trochu zkoumal a jedine co si z toho pamatuju je tusim to, ze v emulatoru se deje jeden interrupt navic a ten tu hru zbori... Vic si nevybavuju, nicmene na pozadani jsem ochoten premerit sondou, ci osciloskopem vse, co bude v mych silach - mne totiz uz nejak nenapada jak dal tu pricinu potizi hledat a proto by treba pomohl pohled na vec od nekoho cerstveho.

Klidne placnete i prvni hloupost, ktera vas jako mozna pricina napadne :)


Pro uspesneho resitele tohoto ukolu nabizim za odmenu 1ks WD2791 z jiste limitovane edice ;)

Michal


---
Pobyty na horách se slevou


 


---
Pobyty na horách se slevou

Re: Soutez

Bohumil Nováček SHARP MZ-800

Ahoj Zdeňku,

  to bude asi ten problém, PIO na zakázání nebo povolení přerušení nijak nereaguje,
pouze na to RETI (popřípadně něco tomu podobného), dřiv než přijde RETI nevyvolá
nový INT na pinu a to ani žádný další obvod v IEI IEO řetězu.
V Madonna2.mzf, když změníš na adrese 3327h ED na C9, tedy přerušení
bude končit instrukcemi EI a RET (místo EI a RETI), a spustíš znovu od 3304h,
tak by se to mělo seknout a další přerušení už nevyvolat, jako na Sharpovi.

Podle mě to ve většíně programů funguje i bez toho, protože:
a) málokdy trvá zpracování prerušení déle než doba do další změny na pinu PIO
b) paranoia velí programátorům začínat zpracování přerušení instrukcí DI a končit EI a RETI,
pak si to hlídá sám program, aby nebyl volaný víckrát

Zatím
Bohouš

---------- Původní zpráva ----------
Od: Zdenek Adler (sharpemupandora.cz) <zdeneka[doména skryta]>
Datum: 24. 5. 2013
Předmět: Re: Soutez


Ještě jeden dotaz na Bohouše (ale i na ostatní): když se tedy z přerušovací rutiny vyvolané od PIO vrátím instrukcí RET (namísto regulerního RETI) a následuje instrukce EI, zůstává přerušení od PIO nadále zakázané? Pokud ano, pak budu mít v emulátoru chybu....
 
Z.
 
 
From: mailto:bohumil.novacek[doména skryta]
Sent: Friday, May 24, 2013 12:35 PM
To: Konference "Počítač SHARP MZ-800 a emulátory"
Subject: Re: Soutez
 

Ahoj,

  no mozna to tim vubec neni zpusobeno, ale kazdopadne jsem to rano zkousel a bohuzel treba
zrovna Zdenkuv emulator vesele generuje preruseni od PIO, i kdyz nahradim RETI jenom RET,
zatimco Sharp se zastavi.

S tou reakci na ED XX misto ED 4D je to mozne, ze je to tahkle zjednodusene implementovano.
Zkusim overit pokusem na Sharpovi.

Zatim drzim palec v dalsim hledani a budu kdyztak napomocen
Bohous

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) <ordoz[doména skryta]>
Datum: 24. 5. 2013
Předmět: Re: Soutez




Ahoj, diky za tip, ale tuto vlastnost budou mit asi vsechny zminene emulatory implementovanu (u Zdenka to treba jeste vyzkousim nejakym experimentalnim kodem).

Tady je VHDL kod meho Z80PIO ve kterem je m.j. v poznamce napsano, ze skutecne PIO pry nereaguje na RETI, ale jen na zacatek instrukcniho optokodu 0xED a pak uz mu staci jen jeden aktivni M1 + RD cyklus ... Uz si to nevybavuju, ale kdyz jsem to tam napsal, tak si budu verit :)
http://duna.ordoz.com/doc/soutez/Z80PIO.vhd

Tu chybu s Tetris2 jsme se Zdenkem probirali uz pred par rokama a vzpomnel jsem si na ni prave v souvislosti s tim, ze jsi prisel na to, ze v emulatoru chodi pomaleji interrupty z 8253 ... Napadlo mne, jestli neni spise chyba nekde kolem tech preruseni, nez v samotnem citaci a proto jsem to znova vytahnul na svetlo.

Tve demo jsem na FPGA jeste nezkousel. Snad pres vikend.

Michal

Dne 23.5.2013 23:54, Bohumil Nováček (sharpemupandora.cz) napsal(a):

Ahoj,

  tak ja neco placnu. Taky se mi totiz na HW emulatoru Tetris2 kousal.
Zkusim to otazkou ...
Generuje Z80PIO dalsi preruseni az teprve po vykonani instrukce RETI (kod ED 4D) ?
Pokud je odpoved NE, nekdo nedocetl specifikaci Z80PIO az dokonce ! ;-)

Hodne stesti
Bohous

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) mailto:ordoz[doména skryta]
Datum: 23. 5. 2013
Předmět: Soutez


Ahoj,

chtel bych vyhlasit soutez, jejimz ukolem je najit pricinu toho, proc v zadnem z top emulatoru (Zdenkuv, Romanuv) nefunguje spravne hra Tetris2, ktera je ulozena na tomto konkretnim DSK http://duna.ordoz.com/doc/soutez/Hry-HDS05.dsk

Hra se po spusteni zakousne. Deje se tak nejen ve zminenych emulatorech, ale i v mem FPGA HW modelu Sharpa.

Nicmene kdyz ten image natahnete pres SD do Unikarty, tak ta hra na realnem Sharpu bez problemu bezi!

Kdysi jsem to trochu zkoumal a jedine co si z toho pamatuju je tusim to, ze v emulatoru se deje jeden interrupt navic a ten tu hru zbori... Vic si nevybavuju, nicmene na pozadani jsem ochoten premerit sondou, ci osciloskopem vse, co bude v mych silach - mne totiz uz nejak nenapada jak dal tu pricinu potizi hledat a proto by treba pomohl pohled na vec od nekoho cerstveho.

Klidne placnete i prvni hloupost, ktera vas jako mozna pricina napadne :)


Pro uspesneho resitele tohoto ukolu nabizim za odmenu 1ks WD2791 z jiste limitovane edice ;)

Michal


---
Pobyty na horách se slevou


 


---
Pobyty na horách se slevou

Re: Soutez

Radek Suk SHARP MZ-800

Ahoj Zdenku

Spravne ma zarizeni Z80 reagovat tak, ze zarizeni napr. Z80-PIO, ktere 
vyvolalo preruseni a tim padem ma aktualne na IEI=log1 a IEO=log0 a vidi 
na sbernici postupne kombinaci ED 4D pri M1/.RD/ tak da EIO do log1. Vse 
je popsano napr. na http://www.z80.info/zip/z80piomn.pdf strana 18. Na 
instrukci RET nema reagovat - podporogram ma obsluhu preruseni ma pravo 
volat CALL a podobne. Take je takto zajisteno ze neni problem aby vice 
zarizeni mohlo postupne vyvolat INT a presne podle priority ovladat 
preruseni.

Radek


Dne 24.5.2013 15:13, Zdenek Adler (sharpemupandora.cz) napsal(a):
Zobrazit citovaný text (121 řádků)
>
> Ještě jeden dotaz na Bohouše (ale i na ostatní): když se tedy z 
> přerušovací rutiny vyvolané od PIO vrátím instrukcí RET (namísto 
> regulerního RETI) a následuje instrukce EI, zůstává přerušení od PIO 
> nadále zakázané? Pokud ano, pak budu mít v emulátoru chybu....
> Z.
> *From:* mailto:bohumil.novacek[doména skryta]
> *Sent:* Friday, May 24, 2013 12:35 PM
> *To:* Konference "Počítač SHARP MZ-800 a emulátory" 
> <mailto:sharpemupandora.cz>
> *Subject:* Re: Soutez
>
> Ahoj,
>
>   no mozna to tim vubec neni zpusobeno, ale kazdopadne jsem to rano 
> zkousel a bohuzel treba
> zrovna Zdenkuv emulator vesele generuje preruseni od PIO, i kdyz 
> nahradim RETI jenom RET,
> zatimco Sharp se zastavi.
>
> S tou reakci na ED XX misto ED 4D je to mozne, ze je to tahkle 
> zjednodusene implementovano.
> Zkusim overit pokusem na Sharpovi.
>
> Zatim drzim palec v dalsim hledani a budu kdyztak napomocen
> Bohous
>
> ---------- Původní zpráva ----------
> Od: Michal Hučík (sharpemupandora.cz) <ordoz[doména skryta]>
> Datum: 24. 5. 2013
> Předmět: Re: Soutez
>
>
>
>
>     Ahoj, diky za tip, ale tuto vlastnost budou mit asi vsechny
>     zminene emulatory implementovanu (u Zdenka to treba jeste
>     vyzkousim nejakym experimentalnim kodem).
>
>     Tady je VHDL kod meho Z80PIO ve kterem je m.j. v poznamce napsano,
>     ze skutecne PIO pry nereaguje na RETI, ale jen na zacatek
>     instrukcniho optokodu 0xED a pak uz mu staci jen jeden aktivni M1
>     + RD cyklus ... Uz si to nevybavuju, ale kdyz jsem to tam napsal,
>     tak si budu verit :)
>     http://duna.ordoz.com/doc/soutez/Z80PIO.vhd
>
>     Tu chybu s Tetris2 jsme se Zdenkem probirali uz pred par rokama a
>     vzpomnel jsem si na ni prave v souvislosti s tim, ze jsi prisel na
>     to, ze v emulatoru chodi pomaleji interrupty z 8253 ... Napadlo
>     mne, jestli neni spise chyba nekde kolem tech preruseni, nez v
>     samotnem citaci a proto jsem to znova vytahnul na svetlo.
>
>     Tve demo jsem na FPGA jeste nezkousel. Snad pres vikend.
>
>     Michal
>
>     Dne 23.5.2013 23:54, Bohumil Nováček (sharpemupandora.cz
>     <mailto:sharpemupandora.cz>) napsal(a):
>
>         Ahoj,
>
>           tak ja neco placnu. Taky se mi totiz na HW emulatoru Tetris2
>         kousal.
>         Zkusim to otazkou ...
>         Generuje Z80PIO dalsi preruseni az teprve po vykonani
>         instrukce RETI (kod ED 4D) ?
>         Pokud je odpoved NE, nekdo nedocetl specifikaci Z80PIO az
>         dokonce ! ;-)
>
>         Hodne stesti
>         Bohous
>
>         ---------- Původní zpráva ----------
>         Od: Michal Hučík (sharpemupandora.cz
>         <mailto:sharpemupandora.cz>) mailto:ordoz[doména skryta]
>         Datum: 23. 5. 2013
>         Předmět: Soutez
>
>
>             Ahoj,
>
>             chtel bych vyhlasit soutez, jejimz ukolem je najit pricinu
>             toho, proc v zadnem z topemulatoru (Zdenkuv, Romanuv)
>             nefunguje spravne hraTetris2, ktera je ulozena na tomto
>             konkretnim DSK http://duna.ordoz.com/doc/soutez/Hry-HDS05.dsk
>
>             Hra se po spusteni zakousne. Deje se tak nejen ve
>             zminenych emulatorech, ale i v mem FPGA HW modelu Sharpa.
>
>             Nicmene kdyz ten image natahnete pres SD do Unikarty, tak
>             ta hra na realnem Sharpu bez problemu bezi!
>
>             Kdysi jsem to trochu zkoumal a jedine co si z toho
>             pamatuju je tusim to, ze v emulatoru se deje jeden
>             interrupt navic a ten tu hru zbori... Vic si nevybavuju,
>             nicmene na pozadani jsem ochoten premerit sondou, ci
>             osciloskopem vse, co bude v mych silach - mne totiz uz
>             nejak nenapada jak dal tu pricinu potizi hledata proto by
>             treba pomohl pohled na vec od nekoho cerstveho.
>
>             Klidne placnete i prvni hloupost, ktera vas jako mozna
>             pricina napadne :)
>
>             Pro uspesneho resitele tohoto ukolu nabizim za odmenu 1ks
>             WD2791 z jiste limitovane edice ;)
>
>             Michal
>
>
>         ---
>         Pobyty na horách se slevou <http://raketa.cz/slevy/pobyty/hory/>
>
>
>
> ---
> Pobyty na horách se slevou <http://raketa.cz/slevy/pobyty/hory/>
>
>
> ---
> Pobyty na horách se slevou <http://raketa.cz/slevy/pobyty/hory/>
>

Re: Soutez

Michal Hučík SHARP MZ-800

Tak tedy ... Vyhrabal jsem cca po roce Nexys2 (FPGA) a po skoro 
celodennim trapeni s tim, ze mi zadny z tech modelu Sharpa (a ze jsem 
jich mel doma ruzne na vsech discich snad 30 verzi :) nechtel nabehnout, 
jsem se dobral k tomu, ze mi ve Flashce chybi ROM :) Nyni uz jedu!

Mam nakonfigurovany 1MB ramdisk, nicmene Bohousovo demo je u mne v ramci 
tohoto omezeni OK. Mel jsem akorat pocit, ze je mezi animacnimi snimky 
trochu delsi pauza, takze oko vnima jejich prekresleni jako cuknuti, ale 
nevidel jsem jeste jak to vypada na Sharpu, tak to lze tezko soudit.

Co se tyka Tetris2, tak u mne na FPGA se to nezakousne hned pos 
spusteni, jako u Zdenka (muj PIO reaguje jen na RETI, viz vhdl, ktery 
jsem dal na web ... zrejme jsem na to RETI prisel uz pred 2 rokama, ale 
zapomnel jsem na to :) ).

Zobrazi se tedy napis Tetris2 s modrym obdelnikem dole a dokola hraje 
hudba. Az kdyz stisknu klavesu, tak se cela obrazovka prekresli. Zobrazi 
menu hry - ovsem v nem uz jsou graficke defekty a hra je jakasi 
vykolejena ... Takze tady prave asi prichazi ten interrupt navic, o 
kterem jsem psal... Uvidime, jak to dopadne u Zdenka, az si opravi PIO.

Bohousi, pokud ses dival na ten muj VHDL k PIO, netrklo te tam nahodou 
neco, co treba ve sve emulaci delas jinak, nez ja? Ve svem emulatoru 
pouzivam upraveny kod T80, ktery vubec neobsahuje IFF registry, ktere 
jsem si musel napsat sam a je mozne, ze to podivuhodne chovani je 
zpusobene i tam.

Kazdopadne pokud ti ten Tetris2 ve tve emulaci bez problemu funguje, tak 
se zrejme stavas VITEZEM mnou vyhlasene souteze uz ted :) Pokud mas tedy 
o ten WD2791 zajem, tak mi posli adresu kam ho mam vyexpedovat.

Michal

Re: Soutez

Bohumil Nováček SHARP MZ-800

Gratuluju k pokrokum.

Tak jsem otestoval tu reakci na RETI na skutecnem Sharpovi.
A opravdu to musi byt instrukce RETI (ED 4D).
Nestaci NEG (ED 44) ani za sebou NEG a LD C,L (ED 44 4D)
dokonce ani SET 5,L a LD C,L (CB ED 4D). Ono to PIO opravdu
nepotrebuje kontrolovat, ze ten druhy operand je 4D, staci podminka,
ze je to M1 cyklus. RETI je totiz asi jedina dvoubajtova instrukce,
ktera ma dva M1 cykly.

Do toho VHDLka moc nevidim, ale tohle se mi tam nezda podchycene
(asi to ale nema vliv na chodivost programu), kontroluje se tam pritomnost
ED a 4D dat v M1 cyklech po sobe, ale pokud je mezi nimi nejaky jiny cyklus,
tak se detekce nevrati na zacatek, takze by to pravdepodobne posloupnost
instrukci NEG a LD C,L (ED 44 4D) nebo jakoukoliv ED XX 4D vzalo jako RETI
(pokud se spravne generuje signal M1).

A bohuzel ja si hraju s emulatorem v ARMu, takze to neni az tak jednoduse
prenositelne do VHDL, tak se potykam zas s uplne jinymi problemy. Vzal
jsem kod ktery jsem psal uz drive pro LPC1768  jako jednoduchy emulator
(na Flappyho byl dobrej), pridal to ke kodu unikarty, zahodil nozicky smerem
k Sharpovi, takze jich ted bohate staci 64 misto 100 a vylepsil rychlost grafiky
(na ukor rychlosti cteni SD karty). Jeste to ma mouchy, ale je to na dobre
ceste, pocitam ze behem par dni k tomu neco napisu a hodim na web
podklady pro hracicky :-)

No jeste me napadla jedna vec s rychlosti programu, casto si synchronizaci
krom preruseni program jeste upravuje cekanim na hodnoty z IO portu CEh.
Nikde jsem to nenasel, dle mych mereni jsou tam tyto hodnoty:

bit7  HBLNK
bit6  VBLNK
bit5  HSYNC
bit4  VSYNC
bit3 a 2 = 0
bit1  Switch1 0=ON, 1=OFF
bit0  TEMPO

VSYNC je na 25 videoradku v 0 jinak zbytek snimku na 1
VBLNK je v 0 o 42 radku pred a 45 radku po VSYNC dele
HSYNC na 41,6 taktu procesoru je v 0, zbytek vidoradku v 1
HBLNK je v 0 o 30,4 taktu pred a 27,2 taktu po HSYNC dele
TEMPO cca 34Hz strida blizko 1:1
Doba jednoho videoradku je 227,2 taktu procesoru, aktivni jsou radky (200 radku)
v dobe, kdy je VBLNK v 1, celkem je 312 radku na stranku, plati pro PAL
nastaveni GDG.

Jinak WD2791 se mi hodi, kdyz uz na nej mam i desku, jeste se ozvu,
moc diky.

Zatim
Bohous

Zobrazit citovaný text

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) <ordoz[doména skryta]>
Datum: 24. 5. 2013
Předmět: Re: Soutez


Tak tedy ... Vyhrabal jsem cca po roce Nexys2 (FPGA) a po skoro
celodennim trapeni s tim, ze mi zadny z tech modelu Sharpa (a ze jsem
jich mel doma ruzne na vsech discich snad 30 verzi :) nechtel nabehnout,
jsem se dobral k tomu, ze mi ve Flashce chybi ROM :) Nyni uz jedu!

Mam nakonfigurovany 1MB ramdisk, nicmene Bohousovo demo je u mne v ramci
tohoto omezeni OK. Mel jsem akorat pocit, ze je mezi animacnimi snimky
trochu delsi pauza, takze oko vnima jejich prekresleni jako cuknuti, ale
nevidel jsem jeste jak to vypada na Sharpu, tak to lze tezko soudit.

Co se tyka Tetris2, tak u mne na FPGA se to nezakousne hned pos
spusteni, jako u Zdenka (muj PIO reaguje jen na RETI, viz vhdl, ktery
jsem dal na web ... zrejme jsem na to RETI prisel uz pred 2 rokama, ale
zapomnel jsem na to :) ).

Zobrazi se tedy napis Tetris2 s modrym obdelnikem dole a dokola hraje
hudba. Az kdyz stisknu klavesu, tak se cela obrazovka prekresli. Zobrazi
menu hry - ovsem v nem uz jsou graficke defekty a hra je jakasi
vykolejena ... Takze tady prave asi prichazi ten interrupt navic, o
kterem jsem psal... Uvidime, jak to dopadne u Zdenka, az si opravi PIO.

Bohousi, pokud ses dival na ten muj VHDL k PIO, netrklo te tam nahodou
neco, co treba ve sve emulaci delas jinak, nez ja? Ve svem emulatoru
pouzivam upraveny kod T80, ktery vubec neobsahuje IFF registry, ktere
jsem si musel napsat sam a je mozne, ze to podivuhodne chovani je
zpusobene i tam.

Kazdopadne pokud ti ten Tetris2 ve tve emulaci bez problemu funguje, tak
se zrejme stavas VITEZEM mnou vyhlasene souteze uz ted :) Pokud mas tedy
o ten WD2791 zajem, tak mi posli adresu kam ho mam vyexpedovat.

Michal


---
Pobyty na horách se slevou
http://raketa.cz/slevy/pobyty/hory/

Re: Soutez

Michal Hučík SHARP MZ-800



Ahoj,

v tom VHDL mam sice uvedeno v poznamce, ze staci dekodovat jen ED a pak M1 + RD, nicmene v kodu testuju vzdy na zacatku instrukce zda je na datove sbernici ED, pak zda je tam v nasledujicim instrukcnim taktu 4D ... je tam na to dvou bitovy flag registr "s_RETI" a ten se vynuluje vzdy, kdyz se pri instrukcnim cyklu objevi na sbernici neco jineho.

Co se tyka status portu, tak mam pocit, ze ten snad neni v zadne oficialni dokumentaci nijak seriozne popsany. Ja generuju TEMPO jako 38 Hz (netusim jak jsem k tomu dospel, zrejme jsem to tak u sebe nameril).

Pokud by jsi chtel, tak tady mam zmerene i hodnoty vetsiny signalu pro NTSC normu. K tomu je potreba na Sharpu prerusit propojku NTPL u GDG... Z80 pak jede o neco rychleji, nez v PALu.

Michal


Dne 24.5.2013 21:48, Bohumil Nováček (sharpemupandora.cz) napsal(a):

Gratuluju k pokrokum.

Tak jsem otestoval tu reakci na RETI na skutecnem Sharpovi.
A opravdu to musi byt instrukce RETI (ED 4D).
Nestaci NEG (ED 44) ani za sebou NEG a LD C,L (ED 44 4D)
dokonce ani SET 5,L a LD C,L (CB ED 4D). Ono to PIO opravdu
nepotrebuje kontrolovat, ze ten druhy operand je 4D, staci podminka,
ze je to M1 cyklus. RETI je totiz asi jedina dvoubajtova instrukce,
ktera ma dva M1 cykly.

Do toho VHDLka moc nevidim, ale tohle se mi tam nezda podchycene
(asi to ale nema vliv na chodivost programu), kontroluje se tam pritomnost
ED a 4D dat v M1 cyklech po sobe, ale pokud je mezi nimi nejaky jiny cyklus,
tak se detekce nevrati na zacatek, takze by to pravdepodobne posloupnost
instrukci NEG a LD C,L (ED 44 4D) nebo jakoukoliv ED XX 4D vzalo jako RETI
(pokud se spravne generuje signal M1).

A bohuzel ja si hraju s emulatorem v ARMu, takze to neni az tak jednoduse
prenositelne do VHDL, tak se potyk! am zas s uplne jinymi problemy. Vzal
jsem kod ktery jsem psal uz drive pro LPC1768  jako jednoduchy emulator
(na Flappyho byl dobrej), pridal to ke kodu unikarty, zahodil nozicky smerem
k Sharpovi, takze jich ted bohate staci 64 misto 100 a vylepsil rychlost grafiky
(na ukor rychlosti cteni SD karty). Jeste to ma mouchy, ale je to na dobre
ceste, pocitam ze behem par dni k tomu neco napisu a hodim na web
podklady pro hracicky :-)

No jeste me napadla jedna vec s rychlosti programu, casto si synchronizaci
krom preruseni program jeste upravuje cekanim na hodnoty z IO portu CEh.
Nikde jsem to nenasel, dle mych mereni jsou tam tyto hodnoty:

bit7  HBLNK
bit6  VBLNK
bit5  HSYNC
bit4  VSYNC
bit3 a 2 = 0
bit1  Switch1 0=ON, 1=OFF
bit0  TEMPO

VSYNC je na 25 videoradku v 0 jinak zbytek snimku na 1
VBLNK je v 0 o 42 radku pred a 45 radku po VSYNC dele
HSYNC na 41,6 taktu procesoru je ! v 0, zbytek vidoradku v 1
HBLNK je v 0 o 30,4 taktu pred a 27,2 taktu po HSYNC dele
TEMPO cca 34Hz strida blizko 1:1
Doba jednoho videoradku je 227,2 taktu procesoru, aktivni jsou radky (200 radku)
v dobe, kdy je VBLNK v 1, celkem je 312 radku na stranku, plati pro PAL
nastaveni GDG.

Jinak WD2791 se mi hodi, kdyz uz na nej mam i desku, jeste se ozvu,
moc diky.

Zatim
Bohous

Zobrazit citovaný text

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) <ordoz[doména skryta]>
Datum: 24. 5. 2013
Předmět: Re: Soutez


Tak tedy ... Vyhrabal jsem cca po roce Nexys2 (FPGA) a po skoro
celodennim trapeni s tim, ze mi zadny z tech modelu Sharpa (a ze jsem
jich mel doma ruzne na vsech discich snad 30 verzi :) nechtel nabehnout,
jsem se dobral k tomu, ze mi ve Flashce chybi ROM :) Nyni uz jedu!

Mam nakonfigurovany 1MB ramdisk, nicmene Bohousovo demo je u mne v ramci
tohoto omezeni OK. Mel ! jsem akorat pocit, ze je mezi animacnimi snimky
trochu delsi pauza, takze oko vnima jejich prekresleni jako cuknuti, ale
nevidel jsem jeste jak to vypada na Sharpu, tak to lze tezko soudit.

Co se tyka Tetris2, tak u mne na FPGA se to nezakousne hned pos
spusteni, jako u Zdenka (muj PIO reaguje jen na RETI, viz vhdl, ktery
jsem dal na web ... zrejme jsem na to RETI prisel uz pred 2 rokama, ale
zapomnel jsem na to :) ).

Zobrazi se tedy napis Tetris2 s modrym obdelnikem dole a dokola hraje
hudba. Az kdyz stisknu klavesu, tak se cela obrazovka prekresli. Zobrazi
menu hry - ovsem v nem uz jsou graficke defekty a hra je jakasi
vykolejena ... Takze tady prave asi prichazi ten interrupt navic, o
kterem jsem psal... Uvidime, jak to dopadne u Zdenka, az si opravi PIO.

Bohousi, pokud ses dival na ten muj VHDL k PIO, netrklo te tam nahodou
neco, co treba ve sve emulaci delas jinak, nez ja? Ve svem emulatoru
pouzivam uprave! ny kod T80, ktery vubec neobsahuje IFF registry, ktere
jsem si musel napsat sam a je mozne, ze to podivuhodne chovani je
zpusobene i tam.

Kazdopadne pokud ti ten Tetris2 ve tve emulaci bez problemu funguje, tak
se zrejme stavas VITEZEM mnou vyhlasene souteze uz ted :) Pokud mas tedy
o ten WD2791 zajem, tak mi posli adresu kam ho mam vyexpedovat.

Michal


---
Pobyty na horách se slevou
http://raketa.cz/slevy/pobyty/hory/


---
Pobyty na horách se slevou


Re: Soutez

Zdenek Adler SHARP MZ-800

Ahojte,
 
tak jsem o víkendu po letech oprášil Sharpa a na vlastní oči jsem si ověřil skutečnost, že jediné co odblokuje přerušení od PIO je RETI instrukce, nebo reset PIO (pomocí samostatného M1). Chybně jsem to přerušení od PIO odblokovával i při samotné EI instrukci (ne při RET, jak psal Bohouš), což je pochopitelně blbě.
Rád bych se tedy ještě předtím, než to napravím v emulátoru zeptal, jestli přerušení od PIO odblokují i jiné podmínky než ty dvě jmenované výše např. povolení přerušení PIO, nastavení režimu PIO, .... ?
Díky
 
Zdeněk
 
 
From: mailto:bohumil.novacek[doména skryta]
Sent: Friday, May 24, 2013 9:48 PM
To: Konference "Počítač SHARP MZ-800 a emulátory"
Subject: Re: Soutez
 

Gratuluju k pokrokum.

Tak jsem otestoval tu reakci na RETI na skutecnem Sharpovi.
A opravdu to musi byt instrukce RETI (ED 4D).
Nestaci NEG (ED 44) ani za sebou NEG a LD C,L (ED 44 4D)
dokonce ani SET 5,L a LD C,L (CB ED 4D). Ono to PIO opravdu
nepotrebuje kontrolovat, ze ten druhy operand je 4D, staci podminka,
ze je to M1 cyklus. RETI je totiz asi jedina dvoubajtova instrukce,
ktera ma dva M1 cykly.

Do toho VHDLka moc nevidim, ale tohle se mi tam nezda podchycene
(asi to ale nema vliv na chodivost programu), kontroluje se tam pritomnost
ED a 4D dat v M1 cyklech po sobe, ale pokud je mezi nimi nejaky jiny cyklus,
tak se detekce nevrati na zacatek, takze by to pravdepodobne posloupnost
instrukci NEG a LD C,L (ED 44 4D) nebo jakoukoliv ED XX 4D vzalo jako RETI
(pokud se spravne generuje signal M1).

A bohuzel ja si hraju s emulatorem v ARMu, takze to neni az tak jednoduse
prenositelne do VHDL, tak se potyk! am zas s uplne jinymi problemy. Vzal
jsem kod ktery jsem psal uz drive pro LPC1768  jako jednoduchy emulator
(na Flappyho byl dobrej), pridal to ke kodu unikarty, zahodil nozicky smerem
k Sharpovi, takze jich ted bohate staci 64 misto 100 a vylepsil rychlost grafiky
(na ukor rychlosti cteni SD karty). Jeste to ma mouchy, ale je to na dobre
ceste, pocitam ze behem par dni k tomu neco napisu a hodim na web
podklady pro hracicky :-)

No jeste me napadla jedna vec s rychlosti programu, casto si synchronizaci
krom preruseni program jeste upravuje cekanim na hodnoty z IO portu CEh.
Nikde jsem to nenasel, dle mych mereni jsou tam tyto hodnoty:

bit7  HBLNK
bit6  VBLNK
bit5  HSYNC
bit4  VSYNC
bit3 a 2 = 0
bit1  Switch1 0=ON, 1=OFF
bit0  TEMPO

VSYNC je na 25 videoradku v 0 jinak zbytek snimku na 1
VBLNK je v 0 o 42 radku pred a 45 radku po VSYNC dele
HSYNC na 41,6 taktu procesoru je ! v 0, zbytek vidoradku v 1
HBLNK je v 0 o 30,4 taktu pred a 27,2 taktu po HSYNC dele
TEMPO cca 34Hz strida blizko 1:1
Doba jednoho videoradku je 227,2 taktu procesoru, aktivni jsou radky (200 radku)
v dobe, kdy je VBLNK v 1, celkem je 312 radku na stranku, plati pro PAL
nastaveni GDG.

Jinak WD2791 se mi hodi, kdyz uz na nej mam i desku, jeste se ozvu,
moc diky.

Zatim
Bohous

---------- Původní zpráva ----------
Od: Michal Hučík (sharpemupandora.cz) <ordoz[doména skryta]>
Datum: 24. 5. 2013
Předmět: Re: Soutez


Tak tedy ... Vyhrabal jsem cca po roce Nexys2 (FPGA) a po skoro
celodennim trapeni s tim, ze mi zadny z tech modelu Sharpa (a ze jsem
jich mel doma ruzne na vsech discich snad 30 verzi :) nechtel nabehnout,
jsem se dobral k tomu, ze mi ve Flashce chybi ROM :) Nyni uz jedu!

Mam nakonfigurovany 1MB ramdisk, nicmene Bohousovo demo je u mne v ramci
tohoto omezeni OK. Mel ! jsem akorat pocit, ze je mezi animacnimi snimky
trochu delsi pauza, takze oko vnima jejich prekresleni jako cuknuti, ale
nevidel jsem jeste jak to vypada na Sharpu, tak to lze tezko soudit.

Co se tyka Tetris2, tak u mne na FPGA se to nezakousne hned pos
spusteni, jako u Zdenka (muj PIO reaguje jen na RETI, viz vhdl, ktery
jsem dal na web ... zrejme jsem na to RETI prisel uz pred 2 rokama, ale
zapomnel jsem na to :) ).

Zobrazi se tedy napis Tetris2 s modrym obdelnikem dole a dokola hraje
hudba. Az kdyz stisknu klavesu, tak se cela obrazovka prekresli. Zobrazi
menu hry - ovsem v nem uz jsou graficke defekty a hra je jakasi
vykolejena ... Takze tady prave asi prichazi ten interrupt navic, o
kterem jsem psal... Uvidime, jak to dopadne u Zdenka, az si opravi PIO.

Bohousi, pokud ses dival na ten muj VHDL k PIO, netrklo te tam nahodou
neco, co treba ve sve emulaci delas jinak, nez ja? Ve svem emulatoru
pouzivam uprave! ny kod T80, ktery vubec neobsahuje IFF registry, ktere
jsem si musel napsat sam a je mozne, ze to podivuhodne chovani je
zpusobene i tam.

Kazdopadne pokud ti ten Tetris2 ve tve emulaci bez problemu funguje, tak
se zrejme stavas VITEZEM mnou vyhlasene souteze uz ted :) Pokud mas tedy
o ten WD2791 zajem, tak mi posli adresu kam ho mam vyexpedovat.

Michal


---
Pobyty na horách se slevou
http://raketa.cz/slevy/pobyty/hory/
 


---
Pobyty na horách se slevou