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.
Celé vlákno · 7 zpráv
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.
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.
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
Radek
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