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 · 7 zpráv

[SharpMZ] z80 a instrukce LDIR z pohledu sběrnice

Jakub Ladman <ladmanj@[doména skryta]> SHARP MZ-800

Ahoj

Diskuse dnes tady někde ve zmiňovaných odkazech mi připomněla moji 
aktivitu kolem mého systému ve FPGA.

Je to trochu OT, protože to nemá nic společného se SHARPem, jen tu Z80tku.

a) kdyby měl někdo zájem, mám nakonec docela hezkou implementaci, jak 
bych to nazval, SLAVE kontroléru přerušení IM2. Čili modul, který se dá 
připojit do řetězu jiných součástek podporujících IM2. Vektor obsluhy se 
na sběrnici vystavuje externě když o to modul zažádá. Je to napsáno ve 
verilogu.

b) k vlastnímu dotazu:

Mám tam taky stroječek, který pokud je hw pomocí io portu nakonfigurován 
příslušným způsobem a zdetekuje-li na sběrnici opcode LDIR, přepíná 
stránky paměti mezi čtením a zápisem.

Využívám toho v CP/M3 (xmove), kde se tím přenáší bloky dat mezi 
stránkami vlastně hardwarově.

Funguje to většinou dobře, ale občas to udělá hovadinu a já nevím proč. 
Asi se to týká toho jestli se kopíruje ze stránky kde běží program 
jinam, nebo naopak. Ale už jsem na to rok nešáhnul, takže si to přesně 
nepamatuju.

Ale když se do toho stavového stroje dívám tak mi najednou chybí info o 
tom jak se vrtí signály na sběrnici během té LDIR instrukce.

Vím že se opakuje Nkrát celá včetně opcode fetch, ale nevím kdy se mění 
!MREQ !M1 !RD a !WR, pouze odhaduji podle jednoduché instrukce, která je 
v manuálu Z80 popsaná obrázkem. Chtěl bych to vidět pro ten konkrétní 
případ. ve FPGA to nemám kam logovat, simulovat to za podmínek programu 
taky nedovedu. Logický analyzátor mám jenom osmibitový a nepovedlo se mi 
zatriggerovat v situaci, kdy došlo k poškození dat.


Za radu děkuji

J.

Re: [SharpMZ] z80 a instrukce LDIR z pohledu sběrnice

Michal Hucik - ORDOZ <ordoz@[doména skryta]> SHARP MZ-800



Ahoj Jakube,

opichal jsem sbernici a zmeril jsem ti vsechny signaly pri LDIR.  Zaznam je zde http://ordoz.com/sharp/BUS_LDIR.stf

Tady si stahni SIGMA & OMEGA APPLICATION PACKAGE  http://asix.tech/dbg_sigma_cz.html

Jako vzorkovaci hodiny jsem pouzil nabeznou hranu GDGCLK. Jako trigger jsem pouzil GATE CTC0 - svisla zelena cara. Z datove a adresni sbernice jsem vytahnul jen dolni 4 bity.

Merici program jsem umistil na 0x2000

    ld a,0x01
    ld (0xe008),a
    xor a
    ld (0xe008),a
    di
    ld hl, 0x0000
    ld de, 0x3000
    ld bc, 0x0010
    ldir
    nop
    ld bc,0x06cf
cycle:
    out (c),a
    dec a
    jr nz, cycle
    nop
    halt



Dne 28.5.2018 v 19:51 Jakub Ladman napsal(a):
Ahoj

Diskuse dnes tady někde ve zmiňovaných odkazech mi připomněla moji 
aktivitu kolem mého systému ve FPGA.

Je to trochu OT, protože to nemá nic společného se SHARPem, jen tu Z80tku.

a) kdyby měl někdo zájem, mám nakonec docela hezkou implementaci, jak 
bych to nazval, SLAVE kontroléru přerušení IM2. Čili modul, který se dá 
připojit do řetězu jiných součástek podporujících IM2. Vektor obsluhy se 
na sběrnici vystavuje externě když o to modul zažádá. Je to napsáno ve 
verilogu.

b) k vlastnímu dotazu:

Mám tam taky stroječek, který pokud je hw pomocí io portu nakonfigurován 
příslušným způsobem a zdetekuje-li na sběrnici opcode LDIR, přepíná 
stránky paměti mezi čtením a zápisem.

Využívám toho v CP/M3 (xmove), kde se tím přenáší bloky dat mezi 
stránkami vlastně hardwarově.

Funguje to většinou dobře, ale občas to udělá hovadinu a já nevím proč. 
Asi se to týká toho jestli se kopíruje ze stránky kde běží program 
jinam, nebo naopak. Ale už jsem na to rok nešáhnul, takže si to přesně 
nepamatuju.

Ale když se do toho stavového stroje dívám tak mi najednou chybí info o 
tom jak se vrtí signály na sběrnici během té LDIR instrukce.

Vím že se opakuje Nkrát celá včetně opcode fetch, ale nevím kdy se mění 
!MREQ !M1 !RD a !WR, pouze odhaduji podle jednoduché instrukce, která je 
v manuálu Z80 popsaná obrázkem. Chtěl bych to vidět pro ten konkrétní 
případ. ve FPGA to nemám kam logovat, simulovat to za podmínek programu 
taky nedovedu. Logický analyzátor mám jenom osmibitový a nepovedlo se mi 
zatriggerovat v situaci, kdy došlo k poškození dat.


Za radu děkuji

J.

_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz


Re: [SharpMZ] z80 a instrukce LDIR z pohledu sběrnice

Ladman Jakub <ladmanj@[doména skryta]> SHARP MZ-800

Tisíceré díky.

Jdu si to prohlédnout.

J.


Dne 29.05.2018 v 19:22 Michal Hucik - ORDOZ napsal(a):


Ahoj Jakube,

opichal jsem sbernici a zmeril jsem ti vsechny signaly pri LDIR.  Zaznam je zde http://ordoz.com/sharp/BUS_LDIR.stf

Tady si stahni SIGMA & OMEGA APPLICATION PACKAGE  http://asix.tech/dbg_sigma_cz.html

Jako vzorkovaci hodiny jsem pouzil nabeznou hranu GDGCLK. Jako trigger jsem pouzil GATE CTC0 - svisla zelena cara. Z datove a adresni sbernice jsem vytahnul jen dolni 4 bity.

Merici program jsem umistil na 0x2000

    ld a,0x01
    ld (0xe008),a
    xor a
    ld (0xe008),a
    di
    ld hl, 0x0000
    ld de, 0x3000
    ld bc, 0x0010
    ldir
    nop
    ld bc,0x06cf
cycle:
    out (c),a
    dec a
    jr nz, cycle
    nop
    halt



Dne 28.5.2018 v 19:51 Jakub Ladman napsal(a):
Ahoj

Diskuse dnes tady někde ve zmiňovaných odkazech mi připomněla moji 
aktivitu kolem mého systému ve FPGA.

Je to trochu OT, protože to nemá nic společného se SHARPem, jen tu Z80tku.

a) kdyby měl někdo zájem, mám nakonec docela hezkou implementaci, jak 
bych to nazval, SLAVE kontroléru přerušení IM2. Čili modul, který se dá 
připojit do řetězu jiných součástek podporujících IM2. Vektor obsluhy se 
na sběrnici vystavuje externě když o to modul zažádá. Je to napsáno ve 
verilogu.

b) k vlastnímu dotazu:

Mám tam taky stroječek, který pokud je hw pomocí io portu nakonfigurován 
příslušným způsobem a zdetekuje-li na sběrnici opcode LDIR, přepíná 
stránky paměti mezi čtením a zápisem.

Využívám toho v CP/M3 (xmove), kde se tím přenáší bloky dat mezi 
stránkami vlastně hardwarově.

Funguje to většinou dobře, ale občas to udělá hovadinu a já nevím proč. 
Asi se to týká toho jestli se kopíruje ze stránky kde běží program 
jinam, nebo naopak. Ale už jsem na to rok nešáhnul, takže si to přesně 
nepamatuju.

Ale když se do toho stavového stroje dívám tak mi najednou chybí info o 
tom jak se vrtí signály na sběrnici během té LDIR instrukce.

Vím že se opakuje Nkrát celá včetně opcode fetch, ale nevím kdy se mění 
!MREQ !M1 !RD a !WR, pouze odhaduji podle jednoduché instrukce, která je 
v manuálu Z80 popsaná obrázkem. Chtěl bych to vidět pro ten konkrétní 
případ. ve FPGA to nemám kam logovat, simulovat to za podmínek programu 
taky nedovedu. Logický analyzátor mám jenom osmibitový a nepovedlo se mi 
zatriggerovat v situaci, kdy došlo k poškození dat.


Za radu děkuji

J.

_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz




_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz

Re: [SharpMZ] z80 a instrukce LDIR z pohledu sběrnice

Ladman Jakub <ladmanj@[doména skryta]> SHARP MZ-800

Ahoj Michale

Ta data jsou divná, ne-li úplně špatná.

Čekal bych  M1=0 data[3:0]=D a v zápětí M1=0 data[3:0]=0  když probíhá fetch instrukce ED B0.

Sytematicky je tam ale vidět jen to data[3:0]=D

Už už jsem uvažoval nad tím, že se instrukce načítá opačně, což by vysvětlovalo, proč mi můj FSM nezafunguje, ale to je ovšem blbost, nemůže se načítat opačně než je uložená v paměti.

Čili logický analyzátor to asi nestihl nasamplovat včetně detailů, nebo nevím co.


Dne 29.05.2018 v 19:22 Michal Hucik - ORDOZ napsal(a):


Ahoj Jakube,

opichal jsem sbernici a zmeril jsem ti vsechny signaly pri LDIR.  Zaznam je zde http://ordoz.com/sharp/BUS_LDIR.stf

Tady si stahni SIGMA & OMEGA APPLICATION PACKAGE  http://asix.tech/dbg_sigma_cz.html

Jako vzorkovaci hodiny jsem pouzil nabeznou hranu GDGCLK. Jako trigger jsem pouzil GATE CTC0 - svisla zelena cara. Z datove a adresni sbernice jsem vytahnul jen dolni 4 bity.

Merici program jsem umistil na 0x2000

    ld a,0x01
    ld (0xe008),a
    xor a
    ld (0xe008),a
    di
    ld hl, 0x0000
    ld de, 0x3000
    ld bc, 0x0010
    ldir
    nop
    ld bc,0x06cf
cycle:
    out (c),a
    dec a
    jr nz, cycle
    nop
    halt



Dne 28.5.2018 v 19:51 Jakub Ladman napsal(a):
Ahoj

Diskuse dnes tady někde ve zmiňovaných odkazech mi připomněla moji 
aktivitu kolem mého systému ve FPGA.

Je to trochu OT, protože to nemá nic společného se SHARPem, jen tu Z80tku.

a) kdyby měl někdo zájem, mám nakonec docela hezkou implementaci, jak 
bych to nazval, SLAVE kontroléru přerušení IM2. Čili modul, který se dá 
připojit do řetězu jiných součástek podporujících IM2. Vektor obsluhy se 
na sběrnici vystavuje externě když o to modul zažádá. Je to napsáno ve 
verilogu.

b) k vlastnímu dotazu:

Mám tam taky stroječek, který pokud je hw pomocí io portu nakonfigurován 
příslušným způsobem a zdetekuje-li na sběrnici opcode LDIR, přepíná 
stránky paměti mezi čtením a zápisem.

Využívám toho v CP/M3 (xmove), kde se tím přenáší bloky dat mezi 
stránkami vlastně hardwarově.

Funguje to většinou dobře, ale občas to udělá hovadinu a já nevím proč. 
Asi se to týká toho jestli se kopíruje ze stránky kde běží program 
jinam, nebo naopak. Ale už jsem na to rok nešáhnul, takže si to přesně 
nepamatuju.

Ale když se do toho stavového stroje dívám tak mi najednou chybí info o 
tom jak se vrtí signály na sběrnici během té LDIR instrukce.

Vím že se opakuje Nkrát celá včetně opcode fetch, ale nevím kdy se mění 
!MREQ !M1 !RD a !WR, pouze odhaduji podle jednoduché instrukce, která je 
v manuálu Z80 popsaná obrázkem. Chtěl bych to vidět pro ten konkrétní 
případ. ve FPGA to nemám kam logovat, simulovat to za podmínek programu 
taky nedovedu. Logický analyzátor mám jenom osmibitový a nepovedlo se mi 
zatriggerovat v situaci, kdy došlo k poškození dat.


Za radu děkuji

J.

_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz




_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz

Re: [SharpMZ] z80 a instrukce LDIR z pohledu sběrnice

Radek Suk <suk@[doména skryta]> SHARP MZ-800

Jakube koukal jsem na data a take si myslim ze datova sbernice je spatne popsana. Nekoukal jsem na to na 100% ale vypada to ze napr. D0 je realne D5. Asi by slo presne zjistit co je prohozene. Rychle jeste koukam a vypada to ze D1 je v realu D4. A mozna D2 je D3 a nasledne ale to je jen velmi rychly tip je D3 realne D6.

Radek


Dne 30.05.2018 v 16:48 Ladman Jakub napsal(a):

Ahoj Michale

Ta data jsou divná, ne-li úplně špatná.

Čekal bych  M1=0 data[3:0]=D a v zápětí M1=0 data[3:0]=0  když probíhá fetch instrukce ED B0.

Sytematicky je tam ale vidět jen to data[3:0]=D

Už už jsem uvažoval nad tím, že se instrukce načítá opačně, což by vysvětlovalo, proč mi můj FSM nezafunguje, ale to je ovšem blbost, nemůže se načítat opačně než je uložená v paměti.

Čili logický analyzátor to asi nestihl nasamplovat včetně detailů, nebo nevím co.


Dne 29.05.2018 v 19:22 Michal Hucik - ORDOZ napsal(a):


Ahoj Jakube,

opichal jsem sbernici a zmeril jsem ti vsechny signaly pri LDIR.  Zaznam je zde http://ordoz.com/sharp/BUS_LDIR.stf

Tady si stahni SIGMA & OMEGA APPLICATION PACKAGE  http://asix.tech/dbg_sigma_cz.html

Jako vzorkovaci hodiny jsem pouzil nabeznou hranu GDGCLK. Jako trigger jsem pouzil GATE CTC0 - svisla zelena cara. Z datove a adresni sbernice jsem vytahnul jen dolni 4 bity.

Merici program jsem umistil na 0x2000

    ld a,0x01
    ld (0xe008),a
    xor a
    ld (0xe008),a
    di
    ld hl, 0x0000
    ld de, 0x3000
    ld bc, 0x0010
    ldir
    nop
    ld bc,0x06cf
cycle:
    out (c),a
    dec a
    jr nz, cycle
    nop
    halt



Dne 28.5.2018 v 19:51 Jakub Ladman napsal(a):
Ahoj

Diskuse dnes tady někde ve zmiňovaných odkazech mi připomněla moji 
aktivitu kolem mého systému ve FPGA.

Je to trochu OT, protože to nemá nic společného se SHARPem, jen tu Z80tku.

a) kdyby měl někdo zájem, mám nakonec docela hezkou implementaci, jak 
bych to nazval, SLAVE kontroléru přerušení IM2. Čili modul, který se dá 
připojit do řetězu jiných součástek podporujících IM2. Vektor obsluhy se 
na sběrnici vystavuje externě když o to modul zažádá. Je to napsáno ve 
verilogu.

b) k vlastnímu dotazu:

Mám tam taky stroječek, který pokud je hw pomocí io portu nakonfigurován 
příslušným způsobem a zdetekuje-li na sběrnici opcode LDIR, přepíná 
stránky paměti mezi čtením a zápisem.

Využívám toho v CP/M3 (xmove), kde se tím přenáší bloky dat mezi 
stránkami vlastně hardwarově.

Funguje to většinou dobře, ale občas to udělá hovadinu a já nevím proč. 
Asi se to týká toho jestli se kopíruje ze stránky kde běží program 
jinam, nebo naopak. Ale už jsem na to rok nešáhnul, takže si to přesně 
nepamatuju.

Ale když se do toho stavového stroje dívám tak mi najednou chybí info o 
tom jak se vrtí signály na sběrnici během té LDIR instrukce.

Vím že se opakuje Nkrát celá včetně opcode fetch, ale nevím kdy se mění 
!MREQ !M1 !RD a !WR, pouze odhaduji podle jednoduché instrukce, která je 
v manuálu Z80 popsaná obrázkem. Chtěl bych to vidět pro ten konkrétní 
případ. ve FPGA to nemám kam logovat, simulovat to za podmínek programu 
taky nedovedu. Logický analyzátor mám jenom osmibitový a nepovedlo se mi 
zatriggerovat v situaci, kdy došlo k poškození dat.


Za radu děkuji

J.

_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz




_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz



_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz

Re: [SharpMZ] z80 a instrukce LDIR z pohledu sběrnice

Michal Hucik - ORDOZ <ordoz@[doména skryta]> SHARP MZ-800

jj, mate pravdu, prehodil jsem u tech dat radu na sbernicovem konektoru, 
takze tam jsou bity 5,4,3,2 - jeste ze to tady mam na stole stale 
napichnute, naboucham ten kod znova a nahraju spravne mereni


Dne 30.5.2018 v 20:02 Radek Suk napsal(a):
Zobrazit citovaný text (7 řádků)
> Jakube koukal jsem na data a take si myslim ze datova sbernice je 
> spatne popsana. Nekoukal jsem na to na 100% ale vypada to ze napr. D0 
> je realne D5. Asi by slo presne zjistit co je prohozene. Rychle jeste 
> koukam a vypada to ze D1 je v realu D4. A mozna D2 je D3 a nasledne 
> ale to je jen velmi rychly tip je D3 realne D6.
>
> Radek

Re: [SharpMZ] z80 a instrukce LDIR z pohledu sběrnice

Michal Hucik - ORDOZ <ordoz@[doména skryta]> SHARP MZ-800


Zaznam je zde http://ordoz.com/sharp/BUS_LDIR_OPRAVA.stf


Dne 30.5.2018 v 22:04 Michal Hucik - ORDOZ napsal(a):
jj, mate pravdu, prehodil jsem u tech dat radu na sbernicovem konektoru, 
takze tam jsou bity 5,4,3,2 - jeste ze to tady mam na stole stale 
napichnute, naboucham ten kod znova a nahraju spravne mereni


Dne 30.5.2018 v 20:02 Radek Suk napsal(a):
Jakube koukal jsem na data a take si myslim ze datova sbernice je 
spatne popsana. Nekoukal jsem na to na 100% ale vypada to ze napr. D0 
je realne D5. Asi by slo presne zjistit co je prohozene. Rychle jeste 
koukam a vypada to ze D1 je v realu D4. A mozna D2 je D3 a nasledne 
ale to je jen velmi rychly tip je D3 realne D6.

Radek
_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz