[SharpMZ] z80 a instrukce LDIR z pohledu sbrnice

Michal Hucik - ORDOZ ordoz na ordoz.com
ter Kvten 29 19:22:12 CEST 2018



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 
<http://asix.tech/dbg_sigma-omega_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
> SharpMZ na mail.ordoz.com
> http://mail.ordoz.com/mailman/listinfo/sharpmz
>

------------- dal st ---------------
HTML příloha byla odstraněna...
URL: http://mail.ordoz.com/pipermail/sharpmz/attachments/20180529/4910285b/attachment.html 


Dal informace o konferenci SharpMZ