Supercharger

English Version



Me plaît de manière incompréhensible.
Voir les photos du Supercharger Plus
L'extension 286 jamais commercialisée!

Quelques programmes DOS que j'ai réalisés, avec exécutables et sources.


Que peut-on en faire ? Caractéristiques
  1. Un émulateur PC XT
  2. Un Ram Disque 1Mo
  3. Un Coprocesseur tournant en parallèle avec l'Atari.
  4. Tester votre FPU 8087.
  5. Overclocking à 10 Mhz.
Il s'agit d'un boîtier se plaçant dans la chaîne ACSI de l'Atari. Sa carte comporte un NEC V30 à 8MHz (compatible 8086), un emplacement pour un 8087 (copro arithmétique) et un méga de Ram. C'est un émulateur PC XT de grande qualité.

Une carte mère "parasite" de l'Atari:
  1. CPU NEC V30, 8MHz (8086 amélioré) je l'ai poussé à 10MHz en remplaçant le quartz 24 MHz par un 30 MHz.
  2. 1Mo de Ram
  3. 8087 en option, moi je l'ai!
  4. Modes graphiques CGA (320x200 ou 640x200) et Hercules (720x348)
  5. Support de la souris, du port série, //
  6. Support des disquettes Atari et MS-DOS (360K à 1.44Mo)
  7. Support des partitions Atari < 16 Mo
  8. Possibilité d'une partition bootable MS-DOS



Fonctionnement en tant qu'émulateur:

En le poussant à bout, on peut lui demander de faire tourner le PC-DOS-7, un clone du MS-DOS-6.22. Il supporte également le PC-GEM, système équivalent à celui de l'Atari (dans une version un peu vieillotte).

Publisher sous PC Gem
en mode Hercules.


Il peut aussi faire tourner Windows 2.03. Pour ce dernier système, je n'ai trouvé aucun logiciel hormis un jeu d'Othello et le programme Write: c'est à dire qu'on peut faire du traitement de textes avec des fontes proportionnelles et imprimer avec son Supercharger. Par contre il y a aussi Windows 3.00a qui ne pose aucun problème!

Windows 3.0 avec Write,
le panneau de contrôle
et mes réglages dans Setup.


La réactivité de l'ensemble est particulièrement bonne. Juste un problème avec le double clic, souvent je clique et j'utilise Enter pour valider.

Jeux sous Windows 3.0,
8 balles dans JezzBall
et j'ai pas fini!


Il fait tourner des logiciels mathématiques comme SMAO, Derive, Cabri Géomètre. Des langages de programmation comme Turbo Pascal 6, Turbo C 2, Quick Basic, A86, Logo. Les utilitaires sont également reconnus (Pkzip, RAR, LHA, PCtools) et on peut lui demander de faire de la compression de disque avec l'utilitaire Stacker.



Fonctionnement en tant que Ram Disque:

Un petit programme était livré avec qui transforme le Supercharger en une unité de 1Mo. Sur TT, c'est peu utile, par contre, sur un ST il donne un grand confort pour les copies de disquettes, pour les décompressions d'archives ou pour y stocker les dossiers de fontes de Speedo lorsqu'on n'a pas de disque dur.



Fonctionnement en tant que coprocesseur:

C'est l'utilisation "top". Le NEC V30 et le 680x0 peuvent travailler de concert, échanger des données. Cela demande par contre de programmer avec l'assembleur INTEL. C'est le gros frein de ce système.
J'avais écrit une série d'articles sur le sujet, téléchargez-les.
Vous voudrez sans doute récupérer également les programmes qui accompagnaient les articles.


Un exemple: côté Atari


Le FORTH propose des instructions de dialogue avec le Supercharger. La méthode est celle-ci:
  • Installer les routines contenues dans TOOL_BOX.BIN puis booter le système avec sc_load et sc_boot
  • Charger un programme PC, l'envoyer au NECV30 et l'exécuter avec sc_sendm et sc_exec
  • Dialoguer avec le programme en échangeant des données avec par exemple sc_xsendm et sc_xgetm
  • Terminer et désinstaller le système avec sc_unload
Télécharger
le source
du programme.
Le mot install charge la Tool_Box grâce à sc_load.

Si tout se passe bien, c'est sc_boot qui est ensuite appelé qui installe les routines également côté PC pour initier le dialogue.

Pour finir, on appelle le mot verif qui utilise sc_check pour vérifier que l'installation est correcte.
Il renvoit le numéro de version de la Tool_Box installée (1.50 normalement).
On alloue un buffer en ST-Ram, ceci est indispensable car les transferts vers le SuperCharger se font via le DMA qui n'a pas accès à la TT-Ram.

Le mot pc_prog charge le binaire A_FPU (voir ci-dessous "Côté PC") qui est un exécutable x86 dans le buffer en ST-Ram.

Ce programme est envoyé au NecV30 grâce à sc_sendm. Notez le format de l'adresse 0300000 qui correspond côté PC segment=0x0300 et offset=0x0000, c'est à dire l'adresse 0x3000.

Il est ensuite exécuté par sc_exec, notez qu'on lui donne sa première adresse pour commencer l'exécution.

Si tout se passe bien, le mot se termine par un message d'exécution.
Le mot racine prend sur la pile un nombre réel, stocké grâce à if! (Intel Float Store) car côté PC tous les octets seront inversés.

Il est envoyé sur 8 octets avec sc_xsendm.

C'est ensuite le programme PC qui en calcule la racine carrée.

On récupère le résultat sur 8 octets avec sc_xgetm et on le retransforme avec if@ (Intel Float Recall).

Ci-contre à droite, la fenêtre d'exécution du programme avec les calculs des racines carrées de 1024 et de 3

Et côté PC


Pour le programme PC, on utilisera l'assembleur pour appeler l'interruption int 60h qui tient le rôle du Trap #4 en mettant face à chaque appel Atari un appel PC. On peut préparer et compiler le source assembleur x86 directement depuis l'éditeur/interpréteur du FORTH qui propose cette facilité. Ainsi, l'ensemble du programme est géré depuis un unique programme.

La directive >export permet de sauver les lignes suivants sous "A_FPU.S" jusqu'à la directive >comp.

Au départ, la ToolBox n'initialise que le Code Segment (CS), celui ci est copié dans ES et DS pour les autres accès aux données. Ensuite, Finit initialise le FPU.

L'appel Int 60h avec ah=4 est le "receive data" des 8 octets du réel vers la variable real.

Ensuite, le réel est chargé dans le fpu, on en prend la valeur absolue puis sa racine carrée et on le range à nouveau dans la variable real.

Pour finir, l'appel à int 60h avec ah=5 correspond à "send data" avec les 8 octets de la variable real.

Ce code est assemblé avec l'assembleur externe NASM.TTP qui est appelé par la directive >exec. Il fournira en sortie le binaire A_FPU chargé par le mot pc_prog.




Tester votre FPU 8087:

Difficile de savoir si une application utilise ou non votre FPU 8087 nouvellement installé. Voici un petit programme qui l'utilise à coup sûr (j'ai inclus les sources assembleur). Il s'agit du tracé de la fractale de Mandelbrot en CGA ou en Hercules. Si vous n'avez pas de FPU installé, il plante tout simplement.
Pour le mode CGA, tapez setvideo C puis lancez fractcga.com.(Tourne sur tout PC, même sous Windows XP!)
Pour le mode Hercules, tapez setvideo H puis lancez fracther.com.


Voici le résultat du tracé en CGA
après un quart d'heure de calcul
(profondeur 240, ne tient pas
compte de la symétrie pour être
facilement adaptable à
d'autres coordonnées)
.


Overclocking à 10MHz:

Il suffit de dessouder le quartz initial à 24MHz pour le remplacer par un 30MHz. C'est ce que j'ai fait. Mais j'ai également voulu installer un système avec switch pour changer de fréquence et revenir à 8 ou pourquoi pas, tester le 12MHz. Ce système était légèrement instable, donc je n'ai laissé qu'un quartz dedans. Par contre, j'ai bien ajouté un ventilateur avec un radiateur à cheval sur le processeur et le coprocesseur. Ce système est très stable avec un TT lui même overclocké à 48MHz avec la CaTTamaran.



15 décembre 2007