| | ||||
|
La vitesse de rotation de la disquette a une influence sur la lecture et l'écriture. Pour preuve, des protections utilisent des drives réglés plus lents afin de placer plus d'informations que prévu et ainsi empêcher, et à minima gêner fortement, la copie. Nous verrons plus tard comment joue cette influence de la vitesse. Contrairement à une fausse idée fort répandue, il y a bien deux moteurs dans un lecteur de disquette ! |
||||
| LA SELECTION D'UN DRIVE, ALLUMAGE ET ARRÊT | ||||
|
Evidement sur chaque contrôleur de lecteur vous pouvez brancher deux drives : le 1 et le 2 (Dieu que c'est original !) qui en CP/M se dénomment : le A et le B (Mon Dieu comme c'est aussi très original !) Mais ce n'est pas tout encore faut-il pouvoir selectionner celui qui doit être enclenché car nous verrons que les commandes des moteurs sont identiques pour ces deux drives. L'enclenchement se fait par deux softswitchs qu'il faut de préférence utiliser en indexation avec X= slot*16. Ces softswitchs sont : Si vous n'utilisez pas une indexation par X le softswitch se calcule en ajoutant S*16 à l'adresse de base donnée ci-dessus. Exemple : slot 6 > 6*16=96=$60 > $C08A + $60 = $C0EA |
||||
|
L'allumage des drives se fait par le softswitch $C089 et l'arrêt par $C088. Les deux softswitchs servent aux deux drives
qui sont connectés sur la carte contrôleur et là encore soit vous utilisez l'indexation par X = slot*16, soit vous calculez
l'adresse physique réelle du softswitch.
|
||||
|
Du point de vue programmation les sous routines en assembleur sont d'une simplicité à faire pâlir
un spécialiste du basic, et bien evidemment en X vous avez N°de slot *16 :
| ||||
|
DRIVE1 DRIVE2 DRIVEON DRIVEOFF |
LDA $C08A,X RTS LDA $C08B,X RTS LDA $C089,X RTS LDA $C088,X RTS |
|||
| LE DRIVE MOTOR | ||||
|
Pour ce qui est du DRIVE MOTOR, les softswitchs qui le commandent sont $C088 (OFF) et $C089 (ON) indexés par X = slot*16 comme expliqué ci-dessus. Vous pouvez à titre d'exercice le lancer et l'arrêter de la façon suivante : Vous passez sous le moniteur avec la classique commande CALL-151 suivi de RETURN puis, si votre contrôleur de disquette est en SLOT 6, vous essayez de le démarrer en tapant C0E9 suivi de RETURN. Pour l'arrêter il suffit de taper C0E8... Pourquoi $C0E8 alors que j'ai écrit que le softswitch est $C088 ? Oui mais il était bien précisé : "$C088 indexé par X contenant le N° de slot *16" or 6*16=96 soit $60 (calcul en hexadécimal) donc $C088+$60 = $C0E8 cqfd... l'adresse exacte à utiliser! |
|
|||
| Le réglage de la vitesse (enfin !) | ||||
|
Comme vous le voyez sur l'image ci-dessous, il y a à l'arrière du drive une carte de contrôle avec une PETITE vis. C'est en tournant celle-ci (la vis pas la carte...) que vous réglez la vitesse de votre drive. Mais attention si c'est une vis d'horloger cela veut dire qu'il ne faut pas la tourner comme un abruti qui fixe une étagère ! Vous avez besoin : Après avoir inséré une disquette vierge et lancé l'option ad hoc du logiciel non moins ad hoc, vous voyez un écran qui vous donne la vitesse de votre drive. TOURNEZ ALORS LENTEMENT EN MARQUANT UN ARRET la PETITE VIS en question et par pitié laisser le temps au logiciel de calculer la vitesse... ce n'est pas un jeu PONG ! Idéalement pour les drives servant à la copie il est préférable de les régler légèrement en dessous de 300 tours/minute. Sinon ne soyez pas bourrin , réglez à 300 tours /minutes |
||||
|
|
||||