STonC - émulateur ST sur Curses

2004-01-07
[ EN | FR ]

STonC est un dérivé de STonX, l'émulateur Atari ST sur Unix/X.

Contrairement à d'autres émulateurs destinés principalement à faire tourner des programmes GEM modernes, ou des jeux pour Atari ST d'origine, STonC est destiné à faire tourner des systèmes d'exploitations comme Minix qui ne tournent pas sur d'autres émulateurs.

Les évolutions par rapport à STonX vont dans deux directions :

  • augmenter la fidélité de l'émulation du matériel ;
  • le rendre plus facilement portable sur autre chose que Unix/X.

Ce dernier objectif a d'ailleurs conduit au choix paradoxal de la librairie en mode texte Curses pour tenir lieu de librairie graphique. Malgré cela, STonC est étonnamment utilisable pour :

  • faire tourner MiNT, Minix, et des programmes TOS non graphiques (comme Nethack) ;
  • développer des remplacements libres du TOS, comme NullTOS ou EmuTOS.

STonC est couvert par la license publique générale (GPL) en version 2 ou ultérieure.

Ce que ça fait

  • émule un atari MégaST (pareil que STonX)
  • implémentation détaillée des couches basses du matériel MFP, FDC, DMA et ACIA
  • les disquettes et disques durs fonctionnent sans extension (pas de cartouche, pas de patch en ROM)
  • fonctionne en option avec la cartouche de STonX pour l'accès natif au système de fichier et la gestion de disquettes au niveau BIOS.
  • émule un terminal VT100 connecté à l'atari via le port série
  • écrit en C a priori portable, sans librairies à part Curses
  • configurable (reset, gestion des disquettes, ...) à l'aide d'un shell intégré. Les configurations peuvent être écrites sous forme de scripts stonc, permettant de gérer aisément un jeu de configurations de test

Ce que ça ne fait pas

  • pas de graphique - STonC peut reconnaître les fontes systèmes de l'atari et convertit le dessin de l'écran en texte ; les couleurs ne sont pas affichées pour l'instant (tout s'affiche en noir et blanc)
  • pas de souris, pas de joystick
  • pas de son
  • pas d'accès aux périphériques physiques de la machine hôte. L'émulation des disquettes et des disques durs se fait en utilisant des images de disques

A quoi ça sert?

STonC permet de :

  • faire tourner MiNT, minix, et des programmes TOS en texte seul
  • jouer à nethack
  • tester et développer EmuTOS
  • On peut aussi récupérer des parties de code pour les intégrer dans d'autres émulateurs.

STonC ne permet pas de

  • faire tourner des programmes GEM ;
  • faire tourner des jeux graphiques et des démos.

Copies d'écran

Téléchargement

La version la plus récente est la version 0.8.1 datée de 2004-01-07. Cette version intermédiaire corrige les bugs blocants rencontrés sur la version 0.8.0 et est livrée avec une image d'emutos prête à l'emploi.

Versions précédentes :

L'archive du code source contient un Makefile prêt à l'emploi pour Linux x86 et Cygwin.

Ce ne devrait pas être trop difficile de le faire tourner sur d'autres machines, et j'apprécierais d'être informé de toute tentative, fructueuse ou non.

Support

Il y a un doc/README et un doc/MANUAL dans l'archive (en mauvais anglais uniquement). Il y a aussi une sorte d'aide en ligne que l'on obtient en tapant help à l'invite du shell intégré. Il y a aussi des exemples de scripts de configuration.

J'ai aussi collecté de la documentation sur la façon de faire tourner minix sur STonC, dans ma page Minix.

Enfin, ne pas hésiter à m'envoyer un mail.

Historique

J'avais fait pas mal d'extensions sur ma copie de STonX, jusqu'à obtenir un niveau de fonctionnalité permettant de faire tourner Minix (Minix, au contraire de TOS, utilise le plus possible les interruptions et donc a absolument besoin d'un MFP correct, et également un disque dur ACSI ne peut pas faire de mal).

Un jour je me suis apperçu que ça faisait pas mal de temps que je n'utilisais plus du tout le bureau du GEM, et uniquement les terminaux de minix (la console à l'écran et le terminal représenté par un xterm via l'option -serial tty de STonX).

A la même époque il m'arrivait de partir en déplacement avec un portable sous Windows. je voulais continuer à examiner minix sur ce portable et je ne voulais pas porter toute la partie de STonX liée à X11 (que je n'utilisais quasiment pas de toutefaçon). Si bien que j'ai retiré de mon STonX pas mal modifié tout ce qui ne compilait pas sous cygwin, rajouté du code pour gérer plusieurs fenêtres virtuelles par dessus curses, rajouté un petit shell pour configurer le tout, et ça a donné STonC.

Depuis, début 2001 des gens sur Internet ont repris le développement de STonX ; à terme les fonctionnalités rajoutées sur STonC pourraient être reportées sur STonX. Mais bon, personnellement je n'ai pas vraiment besoin de ces fonctionnalités sur STonX, donc je ne compte pas faire cela dans un futur proche.

Liens

  • STonX, L'émulateur atari ST pour Unix/X à l'origine de plus de 80% de STonC ;
  • EmuTOS un projet libre de remplacement du TOS pour les émulateurs ;
  • Minix, un petit clone d'Unix pédagogique qui fut porté sur Atari ST et d'autres machines 68k ;
  • Cygwin, un environnement Unix pour Windows ;
  • pdcurses, une implémentation de la librairie curses ;
  • ncurses, une autre implémentation de la librairie curses ;
  • Nethack, un jeu d'exploration de donjon, et l'un des plus gros programmes TOS en texte seul que je connaisse ;
  • Documentation Atari ST : Il y a eu un projet de portage de STonX sur Java. Je ne sais pas trop ce qu'il en est, en tout cas on peut y trouver énormément de documentation technique sur l'Atari.
[Accueil]
Contenu
Quoi de neuf

[STonC]
STonC
Copies d'écran

[Programmation ésotérique]
Thue

[Minix]
Minix

[Divers]
Divers

Valid HTML 4.01! (C) 2003 - Laurent VOGEL
<lvl@club-internet.fr>