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

Původní podoba příspěvku

Radek Suk Zpět na příspěvek

Surová data tak, jak byla v roce 2013 stažena z Pandory (HTML zdroj bez úprav, osobní e-mailové adresy jsou maskované).

<!-------------------------------------------------------------->
<table width="100%"><tr><td align="left" valign="middle"></td><td align=right valign="middle"></td></tr></table><BR><pre>
Ahoj Michale

Pripada mi to, ze v teto rutine vyskocis kdyz je dokoncen prikaz a Busy 
jde na nulu. Ale protoze neprevezmes posledni bajt tak DRQ je jeste 
nahore. Zkus zkontrolovat zda mas read_size=6 ci jen 5.

Radek


/*
  * FDC_waitForData - radic je ve stavu, kdy zapisujeme/cteme data
  *		     budeme na ne cekat, dokud bude vystaven priznak BUSY
  *
  * Vstup:
  *	dma_addr - adresa dat
  *	drq_call - rutina, ktera se vykona pri DRQ
  *
  * Vystup:
  *	pocet prectenych bajtu
  *
*/
unsigned int FDC_waitForData ( void* p, void *drq_call ) __naked {

     (void) p;
     (void) drq_call;
     __asm

     push ix
     ld ix,#0
     add ix,sp

     // Prepiseme adresu volani pro DRQ.
     //
     // Pri FDC_SUPPORT_HDD zapiseme na 0x0038 instrukci JP &lt;drq_call&gt;
     // U normalniho radice prepiseme CALL intrukci pro volani pri DRQ.
     ld e,6 (ix)
     ld d,7 (ix)

#ifdef FDC_SUPPORT_HDD
     ld hl,#0x0038
     ld a,#0xc3
     ld (hl),a
     inc hl
#else
     ld hl,#3$+1
#endif
     ld (hl),e
     inc hl
     ld (hl),d

     // DMA do HL
     ld l,4 (ix)
     ld h,5 (ix)

     ld c,#_FDC_DATA

#ifdef FDC_SUPPORT_HDD
     ei
#endif
     // cekame na DRQ, nebo az zmizi BUSY
     1$:
     in a,(#_FDC_STS)
     rrc a
     jr c, 2$				// zmizel BUSY - koncime

#ifndef FDC_SUPPORT_HDD
     rrc a

     3$:
     call nc, __FDC_readByteCpl		// prisel DRQ - jdeme pro dalsi bajt
#endif

     jr 1$

     2$:
#ifdef FDC_SUPPORT_HDD
     di
#endif
     // zacatek DMA do DE
     ld e,4 (ix)
     ld d,5 (ix)
     ccf
     sbc hl,de				// do HL pocet prenesenych bajtu
     pop ix
     ret

     __endasm;
}

Dne 31.12.2011 16:21, Michal Hučík (sharpemu@pandora.cz) napsal(a):
<span class="replyquote1">&gt;
&gt;
&gt; Ahoj Radku,
&gt;
&gt; takhle je to super! Diky! Myslim, ze je docela jedno ktery chip tam je
&gt; fyzicky - kazdopadne jak je videt, tak to co snesou emulatory, to
&gt; mohuzel neunese fyzicky HW, takze budu muset nakouknout do ROMky a do
&gt; svych starych zdrojaku jestli tam neni potreba pridat jeste nejake
&gt; prodlevy :( ERR = 253 znamena, ze prikaz READ_ADDR skoncil s nejakym
&gt; nenulovym statusem ...
&gt;
&gt; Michal
&gt;
&gt; Dne 31.12.2011 16:07, Radek Suk (sharpemu@pandora.cz) napsal(a):
</span><span class="replyquote2">&gt;&gt;
&gt;&gt; Ahoj Michale
&gt;&gt;
&gt;&gt; Chci se optat zda by to nestacilo otestovat na wd2797 s eprom
&gt;&gt; simulujici 93?
&gt;&gt;
&gt;&gt; Jestli ano, tak vysledek jsem nafotil.
&gt;&gt; http://www.radeksuk.cz/sharp/smazat/test%20michal.zip
&gt;&gt;
&gt;&gt; Jestli to potrebujes presne na 2793 a to jak napis a ja to rozeberu a
&gt;&gt; dam tam presne tento. Mam i upraveny radic a tak i na tomto to muzu
&gt;&gt; pripadne otestovat.
&gt;&gt;
&gt;&gt; Radek
</span><span class="replyquote1">&gt;
&gt;
&gt; ---
&gt;
&gt;
</span>
</pre>