Simulation
Pauline peut émuler un lecteur de disquette sur une machine réelle via la nappe du lecteur de disquette.
On pourra simuler un ou plusieurs lecteurs virtuels et ainsi tester les dumps des originaux réalisés.
Suivant la machine utilisée, on pourra avantageusement remplacer l'alimentation externe par le +5V de la machine hôte pour alimenter Pauline.
Attention cependant à la stabilité et à la puissance délivrées par l'alimentation de la machine hôte.
La prise d'alimentation principale de la DE10 a une protection contre les surtensions qui, en théorie, devrait déconnecter le DE10-nano si l'entrée est >5.4V.
La consommation est d'environ 1A - 1.2A (informations données à titre informatif, merci de prendre le maximum de précautions pour ne pas endommager les composants).
Branchement pour passer Pauline en mode Simulation
Repérer le connecteur "Host machine", brancher la nappe floppy sur ce connecteur
Brancher Pauline comme un lecteur de disquette réel sur la machine hôte.
Rappel :
Après le "twist" sur la nappe floppy => Pauline sera en Lecteur A
(PC Drive),
avant le "twist" => Pauline sera en Lecteur B
(PC DRIVE)
Voir les annexes pour quelques informations sur les nappes
Le mode simulation est amené à évoluer lors des mises à jour (intégration dans l'interface web).
Pour l'instant, ce mode est uniquement accessible depuis la ligne de commande SSH
La simulation des lecteurs shugart ou PC est fonctionnel.
La pin 02, la pin 34 et la sélection du lecteur sont configurées différemment entre l'interface "shugart" et l'interface "PC"
Density Select
en pin 02
pour le "PC" mais Disk Change Detect
en mode "shugart"
Disk Changed
en pin 34
pour le "PC" mais Drive Ready
en mode "shugart"
DRVSB
(Pin 12) pour le "PC" et SEL0
(Pin 10) pour le "shugart"
On utilisera la même commande moteur (pin 16) pour les 2 interfaces
Avec un logiciel SSH => dossier home/pauline/Drives_Simulation/
Pour faciliter l'utilisation du mode simulation, on conviendra de placer les fichiers images des disquettes à charger dans ce répertoire.
Putty
peut-être avantageusement utilisé, on pourra également utilisé MobaXterm
qui permet la sauvegarde des identifiants et mot de passe et surtout l'enregistrement de macro bien utile pour le mode simulation.
1re étape : convertir le fichier image en stream hfe
Soit avec le logiciel HxCFloppyEmulator Export disk
/ Save As
type : HFE file (stream - Exprimental) (*.hfe)
ou
en ligne de commande :
hxcfe -conv:HXC_STREAMHFE -finput:"XXXX.img"
L'extension .hfe
peut être utilisée pour un autre usage, il faudra vérifier si le fichier XXXX.hfe
utilisé a un header "HxC_Stream_Image" "48 78 43 5F 53 74 72 65 61 6D 5F 49 6D 61 67 65"
si le fichier .hfe
a un header différent, le fichier ne pourra pas être chargé.
2 étape chargement en mémoire de l'image et activation de la simulation interface PC :
Simuler un PC Drive A: 5,25" DD
pauline -reset -load:"XXXX.hfe" -drive:0 -pin34mode:6 -pin02mode:0 -selsrc:9 -motsrc:12 -led1src:17 -led2src:24 -enabledrive
Simuler un PC Drive A: 3,5" DD
pauline -reset -load:"DOS622 - 720K_80.hfe" -drive:0 -pin34mode:6 -pin02mode:0 -selsrc:9 -motsrc:12 -led1src:17 -led2src:24 -enabledrive
Simuler un PC Drive A: 5,25" HD
pauline -reset -load:"XXXX.hfe" -drive:0 -pin34mode:6 -pin02mode:1 -selsrc:9 -motsrc:12 -led1src:17 -led2src:24 -enabledrive
Simuler un PC Drive A: 3,5" HD
pauline -reset -load:"DOS622 - 144M_80.hfe" -drive:0 -pin34mode:6 -pin02mode:1 -selsrc:9 -motsrc:12 -led1src:17 -led2src:24 -enabledrive
Simuler un PC Drive A: sans disquette (pour éviter l'affichage du code erreur POST "A: Drive Error" au démarrage du PC)
pauline -reset -drive:0 -pin34mode:6 -pin02mode:1 -selsrc:9 -motsrc:12 -enabledrive -led1src:17 -led2src:24
La commande Pauline -help
permettra d'avoir un aperçu des fonctionnalités disponibles
Rappel :
Drive Simulation select lines ID (-selsrc & -motsrc ID):
0 : Always deasserted
1 : Always asserted
8 : SEL0/MOTEA (Pin 10)
9 : SEL1/DRVSB (Pin 12)
10: SEL2/DRVSA (Pin 14)
11: SEL3 (Pin 6)
12: MTRON/MOTEB (Pin 16)
13: EXTERNAL IO (J5 - Pin 4)
Drive Simulation status lines ID (-pin02mode & -pin34mode ID):
0 : Low state
1 : High state
2 : nReady
3 : Ready
4 : nDensity
5 : Density
6 : nDiskChange (mode 1 : Head step clear)
7 : DiskChange (mode 1 : Head step clear)
8 : nDiskChange (mode 2 : Head step clear + timer/timeout clear)
9 : DiskChange (mode 2 : Head step clear + timer/timeout clear)
10: nDiskChange (mode 3 : timer/timeout clear)
11: DiskChange (mode 3 : timer/timeout clear)
12: nDiskChange (mode 4 : floppy_dc_reset input clear)
13: DiskChange (mode 4 : floppy_dc_reset input clear)
Signal input mux (-led1src & -led2src ID):
0 : LED gpio register
1 : Floppy pin 10 drive 0 selection output
2 : Floppy pin 12 drive 1 selection output
3 : Floppy pin 14 drive 2 selection output
4 : Floppy pin 6 drive 3 selection output
5 : Floppy pin 16 Motor on output
6 : Floppy step output
7 : Floppy dir output
8 : Floppy side1 output
9 : Floppy index input
10 : Floppy pin 2 input
11 : Floppy pin 34 input
12 : Floppy write protect input
13 : Floppy data input
14 : Floppy write gate output
15 : Floppy write data output
16 : Host pin 10 / sel 0 input
17 : Host pin 12 / sel 1 input
18 : Host pin 14 / sel 2 input
19 : Host pin 16 / sel 3 input
20 : Host pin 6 / mot on input
21 : Host step input
22 : Host dir input
23 : Host side1 input
24 : Host write gate input
25 : Host write data input
26 : IO input 0
27 : IO input 1
28 : IO input 2
29 : IO input 3
30 : IO input 4
31 : IO input 5
Avec pour PC : -pin34mode:6
et pin02mode:0
ou pin02mode:1
selon la densité du disque.
C'est via ces 2 signaux que le PC sait qu'il y a eu un changement de disque et qu'elle est la densité (DD ou HD) de la disquette chargée.
Drive Before the Twist Sees
SEL0/MOTEA (Pin 10)
SEL1/DRVSB (Pin 12)
SEL2/DRVSA (Pin 14)
MTRON/MOTEB (Pin 16)
Drive After the Twist Sees
MTRON/MOTEB (Pin 10)
SEL2/DRVSA (Pin 12)
SEL1/DRVSB (Pin 14)
SEL0/MOTEA (Pin 16)
Attention : le choix du lecteur dans les paramètres du Bios dans la machine hôte est indispensable.
Commandes spéciales :
-doublestep
=> force le doublestep pour les disquettes 5,25" de 360K si un lecteur 5,25" HD (1,2 MB) est paramétrer dans le Bios. A utiliser uniquement en cas de problème.
-writeprotectdrive:[0/1]
=> désactive ou active (0/1) la protection en ecriture de la disquette. Déprotégée par defaut (0) si le paramètre n'est pas saisie.
pauline -reset -drive:0 -pin34mode:6 -pin02mode:1 -selsrc:9 -motsrc:12 -enabledrive -led1src:17 -led2src:24
=> Active un lecteur ou permet l'éjection de la disquette chargée. Il sera intéressant de sauvegarder cette commande en macro dans MobaXterm
Pour la simulation interface Shugart :
pauline -reset -load:"XXXX.hfe" -drive:0 -pin34mode:2 -pin02mode:6 -selsrc:8 -motsrc:12 -led1src:17 -led2src:24 -enabledrive
Activation des LED
LED verte pin 12 drive A ou B / LED rouge pin Host write gate input
-led1src:17 -led2src:24
pour l'activation des led fonctionne en simulation interface PC
mais reste à valider en simulation shugart
Pour activer d'autres lecteurs en interface Shugart :
pauline -load:"XXXX.hfe" -drive:1 -pin34mode:2 -pin02mode:6 -selsrc:9 -motsrc:12 -led1src:17 -led2src:24 -enabledrive
pour simuler un drive "B"
Pour le chargement, il suffit de changer le paramètre drive et les sources de sélection. Ne pas faire de -reset
pour le chargement des autres lecteurs.
Une fois activée la simulation est complètement matériel : le logiciel Pauline ne joue aucun rôle après le chargement.
Pour sauvegarder le contenu de la disquette du lecteur A
Attention : Lors des écritures, il faut penser à sauvegarder l'image avec d'éteindre la carte :
pauline -save:"XXXX.hfe" -drive:0
Conclusion
Cette vidéo illustre en 5 min les informations présentées dans cette documentation