DCMOTO - Emulateur universel Thomson 8 bits : Forum - Fiches techniques - Quick Disk Drive et Quick Disks
Auteur Message
Daniel
Visiteur
Date : 09/02/2005 à 15h53
Entrelacement des Quick Disks

Contrairement aux disquettes pour lesquelles l'entrelacement est paramétrable, l'ordre des secteurs logiques sur la piste physique (unique) d'un Quick Disk est fixé par le contrôleur. Pour optimiser les performances, il n'est pas déterminé par une formule simple, mais par un algorithme (en a2ea-a380 pour le contrôleur CQ 90-028 sur MO5).

Il y a 25 pistes logiques (0-24) de 16 secteurs. Si on numérote les secteurs logiques de 1 à 400, le tableau ci-dessous donne leur ordre d'écriture sur le support physique. Notez que les pistes logiques 20, 2, 14, 8 sont au début (leur accès est donc plus rapide), les pistes 1, 15, 9, 3, 0 sont à la fin (accès plus lent).

Le programmeur doit tenir compte de cette organisation. Une lecture en Basic dans l'ordre des secteurs logiques nécessite peut-être une centaine de passes (je n'ai pas compté) et probablement plus de 10 minutes. En optimisant on arrive à moins de 3 secondes, comme les utilitaires de PrehisTO.

Toujours par souci d'optimisation, le BACKUP 0 copie d'abord les secteurs physiques impairs, puis les pairs. Il travaille donc en deux passes. La taille mémoire du MO5 oblige à fragmenter ces deux passes en trois étapes (avec un double échange de Quick Disk à chaque étape). L'opérateur attentif remarquera qu'à la deuxième étape la lecture atteint la fin du Quick Disk (secteur physique 399) puis repart au début (secteur physique 2).

int qdsector[400] =
{
321,033,225,129,322,034,226,130,323,035,227,131,324,036,228,132, //p20,2,14,8
325,037,229,133,326,038,230,134,327,039,231,135,328,040,232,136,
329,041,233,137,330,042,234,138,331,043,235,139,332,044,236,140,
333,045,237,141,334,046,238,142,335,047,239,143,336,048,240,144,
337,305,209,113,338,306,210,114,339,307,211,115,340,308,212,116, //p21,19,13,3
341,309,213,117,342,310,214,118,343,311,215,119,344,312,216,120,
345,313,217,121,346,314,218,122,347,315,219,123,348,316,220,124,
349,317,221,125,350,318,222,126,351,319,223,127,352,320,224,128,
353,289,193,097,354,290,194,098,355,291,195,099,356,292,196,100, //p22,18,12,6
357,293,197,101,358,294,198,102,359,295,199,103,360,296,200,104,
361,297,201,105,362,298,202,106,363,299,203,107,364,300,204,108,
365,301,205,109,366,302,206,110,367,303,207,111,368,304,208,112,
369,273,177,081,370,274,178,082,371,275,179,083,372,276,180,084, //p23,17,11,5
373,277,181,085,374,278,182,086,375,279,183,087,376,280,184,088,
377,281,185,089,378,282,186,090,379,283,187,091,380,284,188,092,
381,285,189,093,382,286,190,094,383,287,191,095,384,288,192,096,
385,257,161,065,386,258,162,066,387,259,163,067,388,260,164,068, //p24,16,10,4
389,261,165,069,390,262,166,070,391,263,167,071,392,264,168,072,
393,265,169,073,394,266,170,074,395,267,171,075,396,268,172,076,
397,269,173,077,398,270,174,078,399,271,175,079,400,272,176,080,
017,241,145,049,018,242,146,050,019,243,147,051,020,244,148,052, //p1,15,9,3
021,245,149,053,022,246,150,054,023,247,151,055,024,248,152,056,
025,249,153,057,026,250,154,058,027,251,155,059,028,252,156,060,
029,253,157,061,030,254,158,062,031,255,159,063,032,256,160,064,
001,009,005,013,002,010,006,014,003,011,007,015,004,012,008,016 //p0
};

Table extraite des sources de dcmoto

Daniel
en haut - en bas