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.

Schéma de branchement de Pauline en mode simulation

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.

Photo de la carte Pauline branchée en mode simulation

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

sources

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

Simulation Mode === Pauline FDC powered by HxC