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 Radku,
myslim si, ze dokud ma radic nejaka data, tak bude BUSY - divam se na
komentovany vypis ROM a vidim, ze je tam cteni z FD realizovano velice
podobnym zpusobem:
0998 ;
0999 ; Cte data z Floppy disku
1000 ;
1001 @FDREAD:
1002 E5A7 CD96E6 CALL @FDTR? ; spocti stopu a sektor
1003 E5AA CDFBE5 CALL @FDPREP ; priprav disk a registry
(CALL @FDSEL - zapne motor a vybere disk)
1004 E5AD CD1BE6 JE5AD: CALL @FDTR ; nastav stopu (ulozi
stopu do datoveho registru FDC a nastavi stranu)
1005 E5B0 CD28E5 CALL @FDSEEK ; fyzicky ji hledej
1006 E5B3 C290E6 JP NZ,FDERR2 ; nezadarilo se
1007 E5B6 CD2BE6 CALL @FDSEC ; nastav sektor
1008 E5B9 F3 DI ; prerusovat se nesmi, proto
1009 E5BA 3E94 LD A,94H ; povolit preruseni
1010 E5BC CD4EE6 CALL FDSTRT ; zahajit cteni sektoru
1011 E5BF 0600 JE5BF: LD B,0 ; 256 bytu
1012 E5C1 DBD8 JE5C1: IN A,(<FDCTR) ; status
1013 E5C3 0F RRCA
1014 E5C4 381A JR C,JE5E0 ; chyba
1015 E5C6 0F RRCA
1016 E5C7 38F8 JR C,JE5C1 ; not ready
1017 E5C9 EDA2 INI ; precist byte
1018 E5CB 20F4 JR NZ,JE5C1 ; jeste se cte dalsi
Asi nam to v tuto chvili moc nerekne, ale upravil jsem cteci rutinu tak,
aby se jeste pred tim return ( -3 ) ulozil FDC_STATUS a pocet
prenesenych bajtu na adresu 0x5000:
dbg_sts = FDC_STS;
* (unsigned char *) 0x5000 = dbg_sts;
* (unsigned int *) 0x5001 = read_size;
if ( dbg_sts != 0xff ) {
retval = -3; // vsechny status bity ted musi byt nulove!
break;
};
Takze bych chtel opet poprosit, jestli by Radek, nebo nekdo, kdo je po
silvestru ready :) mohl vyzkouset tuto verzi a jestli READ_ADDR skonci
zase s ERR = 253, tak potom RESET + M a zjistit obsah 3 bajtu na adrese
0x5000. Dekuju.
Michal
Dne 1.1.2012 6:45, Radek Suk (sharpemu@pandora.cz) napsal(a):
<span class="replyquote1">>
>
> 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
</span>
</pre>