EUPHORIC : Manuel de référence
1. Options de la ligne de commande
Euphoric reconnait les options suivantes sur la ligne de commande :
-
-m : palette de gris pour un écran VGA monochrome
-
-r : redémarre sur un état sauvé par F9
-
-1 : démarre un Oric-1
-
-a : démarre un Atmos
-
-t : démarre un TéléStrat
-
-d : démarre avec un controleur Microdisc
-
-j : démarre avec un controleur Jasmin
Tout autre paramètre est considéré comme un fichier
devant contenir une image disque.
2. Fichier d'initialisation
Au démarrage, Euphoric commence par lire la configuration décrite
par un fichier d'initialisation, puis analyse les options sur la ligne
de commande. Le fichier d'initialisation permet de construire une configuration
Oric sur mesure, en choisissant parmi tous les périphériques
supportés. Normalement, le fichier d'initialisation se nomme euphoric.ini
et il est cherché dans le répertoire courant puis dans le
répertoire donné par la variable d'environnement ORIC. Ce
qui veut dire que vous pouvez lancer Euphoric depuis n'importe quel répertoire
à partir du moment où vous avez initialisé correctement
la variable ORIC (par exemple, si vous avez installé la distribution
Euphoric dans c:\oric\system, utilisez la commande DOS "set oric=c:\oric\system").
Vous pouvez même utiliser plusieurs fichiers d'initialisation différents
si vous avez plusieurs copies du programme nommées différemment.
Par exemple, si vous avez copié euphoric.exe dans atmos.exe, le
programme ira chercher le fichier d'initialisation atmos.ini. Voici la
liste des lignes de configuration du fichier d'initialisation, chaque ligne
est de la forme mot-clé=valeur à moins de commencer par un
point-virgule auquel cas la ligne est un commentaire. Veillez à
respecter la casse des caractères et à ne pas introduire
de blancs...
; Choix possibles : Oric1,Atmos,Telestrat
Choisit le modèle d'ordinateur. Cette sélection peut être
surchargée par les options de la ligne de commande.
; Choix possibles : 6502, 65C02
Choisit le type de cpu. Tous les Oric ont un 6502 Nmos, mais quelques
personnes ont remplacé ce cpu par le 65C02 qui bénéficie
d'instructions et de modes d'addressages supplémentaires.
; Microdisc,Jasmin,Non
Pour les Oric-1 et Atmos, choisit un type de contrôleur de disquette
(le Téléstrat a automatiquement le sien).
Spécifie le nom du fichier image de la rom de l'Oric-1 (cf note
1)
Spécifie le nom du fichier image de la rom de l'Atmos (cf note
1)
-
MicrodiscEprom=Microdisc.ROM
Spécifie le nom du fichier image de l'eprom du contrôleur
Microdisc (cf note 1).
Spécifie le nom du fichier image de l'eprom du contrôleur
Jasmin (cf note 1).
-
Bank7=TeleMon2.4
-
Bank6=HyperBasic
-
Bank5=TeleAss
-
;Bank4=
-
Bank3=Telematic
-
;Bank2=
-
;Bank1=
Spécifie des noms de fichier image de roms de cartouches du Téléstrat
(cf note 1 et paragraphe Téléstrat).
; 1 or 2
Sélectionne un type de mémoire RAM. Cette option a un
effet sur le contenu initial de la RAM lorsque l'oric est mis sous tension.
Avec le premier type, chaque boitier contient initialement une alternance
de bits à 1 et à 0. Avec le second type, chaque boitier contient
initialement une demi-ligne de 128 bits à 1 et une demi-ligne de
128 bits à 0. La fameuse mire de l'oric découle directement
de cette sélection.
-
DriveA=Oui
-
DriveB=Oui
-
DriveC=Oui
-
DriveD=Non
Pour les configurations à contrôleur de disquettes (Microdisc,
Jasmin ou Téléstrat), choisit le nombre de lecteurs à
connecter.
Sélectionne la vitesse d'horloge de l'oric. Elle peut être
changée pendant l'exécution, mais cela donne la vitesse normale
(F5 s'y rapporte).
; True,Extended
Sélectionne la signification des touches Ctrl et Alt encadrant
la barre d'espace. En mode 'True', elles fonctionnent comme les flèches
de l'oric, et la touche Caps Lock devient la touche CTRL de l'Oric. En
mode 'Extended', elles ont la signification habituelle.
Permet de configurer un oric à rom double (32 Ko). Les 16 Ko inférieurs
ou supérieurs sont alors sélectionnés avec la sortie
PB5 du VIA.
-
AsynchronousController=Oui
Sélectionne ou non une extension contrôleur série sur
Oric-1/Atmos, du même type que celui du Téléstrat (ACIA
6551 à l'adresse 031C)
; Non,com1,com2,/dev/ttyS0,...
Sélectionne le port physique du PC utilisé pour les entrées-sorties
séries (cf paragraphe RS232)
Sélectionne ou non l'extension horloge temps réel.
; Non, PASE, IJK
Choisit un type d'interface joystick sur la prise Centronics de l'oric
(cf paragraphe Joystick)
Configure ou non un joystick sur la prise du Téléstrat.
Configure ou non une souris pour le Téléstrat (il n'est pas
possible d'avoir en même temps le crayon optique).
Configure ou non un crayon optique (il n'est pas possible d'avoir en même
temps la souris sur Téléstrat)
Configure ou non une imprimante sur le port Centronics de l'oric.
-
PrinterOutput=printer.out
Sélectionne le fichier de sortie de l'imprimante. Il est possible
de choisir un nom de périphérique pour avoir une sortie directe,
par exemple lpt1.
Choisit le nom du fichier de sauvegarde utilisé par la touche F9.
Note 1: Pour toutes les images de rom, si le nom
de fichier est donné en relatif, il est cherché d'abord dans
le répertoire courant puis relativement au répertoire indiqué
par la variable ORIC. Rien n'empêche de mettre vos propres roms expérimentales,
bien sûr: vous pouvez aussi utiliser des roms de capacités
différentes de celles d'origine, mais aucune ne peut dépasser
16 Ko.
3. Images de cassettes
Deux formats d'images de cassettes sont supportés, correspondant
à deux types d'émulations. La première émulation
est dite logicielle: l'accès à quelques routines de la rom
est détourné. La seconde émulation est purement matérielle,
sans aucun artifice. Les images cassettes pour l'émulation logicielle
contiennent les mêmes octets que ceux que les routines en rom de
l'oric sauvent sur cassette (toutefois, le nombre d'octets de synchronisation
a été réduit à 3). Ce format est le plus utilisé,
et il est aussi utilisé par les émulateurs Amoric et Arcoric.
Presque tous les programmes pour Oric disponibles sur les serveurs d'archives
utilisent ce format. Il n'y a pas d'extension particulière pour
les noms des images cassettes, seul le contenu est caractéristique
(3 octets $16 de synchronisation, puis $24, puis un programme). Le second
format est seulement utilisé par Euphoric, et représente
le signal électrique entre l'oric et le lecteur de cassettes, échantillonné
à 4800 Hz. Il permet une émulation très fine des cassettes,
utile pour faciliter les transferts oric/pc ou pour lancer les programmes
qui n'utilisent pas du tout les routines en rom.
3.1. Utilisation des cassettes avec l'émulation logicielle
Bon, comme vous l'avez sûrement déjà remarqué,
la commande CLOAD du Basic va chercher le programme demandé sur
le système hôte (DOS ou Linux). Il en est de même avec
la sauvegarde de programmes par CSAVE. Ceci permet une utilisation très
intuitive et parfaitement compatible avec tous les programmes prévus
pour fonctionner depuis une cassette, même ceux qui sont écrits
en langage machine, ou qui sont légèrement protégés.
Pour une utilisation avancée, si vous voulez ranger vos programmes
oric dans des répertoires différents, fabriquer des programmes
en plusieurs parties, ou utiliser le nom vide, lisez ce qui suit :
-
CLOAD et CSAVE transmettent sans modification le nom donné en paramètre
au système d'exploitation hôte. Ce qui veut dire que le nom
de programme que vous demandez est pris tel que comme nom de fichier sur
l'hôte. Vous pouvez donc inclure un nom de chemin satisfaisant aux
règles de l'hôte ! Par exemple : CLOAD"A:\JEUX\GOBBLER" ou
CSAVE"/tmp/version1",AUTO Le premier exemple est pour DOS bien sûr,
le deuxième marche aussi bien pour Linux que pour DOS (essayez le
ne serait-ce que pour vérifier que vous savez toujours passer en
minuscules). Notez qu'il est plus facile sous Linux de mémoriser
les fichiers Oric avec des majuscules. Voilà donc qui permet de
classer un peu vos programmes dans des répertoires, mais ATTENTION
! l'oric tronque le nom de programme à 16 caractères, ce
qui vous obligera à choisir entre un nom long (sous Linux), un seul
niveau de répertoire fils, ou des noms de répertoires très
courts.
-
une exception est faite pour les programmes sans nom : vous savez qu'il
est possible de sauvegarder un programme par CSAVE "" ou de le charger
de la même façon avec la commande CLOAD. Comme les systèmes
hôtes n'acceptent pas de mémoriser des fichiers sans nom,
le fichier prend le nom "________" sur l'hôte (8 caractères
trait-bas). Il est fortement déconseillé de sauver un programme
sans lui donner de nom bien que cela soit possible : vous ne vous rappellerez
plus ce qu'il contient, et le programme court le risque d'être écrasé
par la prochaine sauvegarde d'un autre programme sans nom. Vous verrez
parfois apparaître ce fichier dans vos répertoires, c'est
le signe qu'un programme a fait une sauvegarde (l'état d'un jeu
par exemple) sans lui donner de nom. Avec les commandes du système
hôte, vous pouvez très bien alors gérer plusieurs de
ces sauvegardes en les renommant sous des noms différents.
-
il est très facile d'utiliser un programme en plusieurs parties,
parfois vous ne vous en rendrez même pas compte si les différentes
parties sont concaténées dans un seul fichier. Pour charger
un tel programme, il suffit en effet de taper la commande CLOAD avec le
nom du fichier en paramètre : le premier programme contenu dans
le fichier sera chargé, et des commandes CLOAD successives chargent
les autres morceaux du programme toujours dans le même fichier. La
logique de l'émulateur est en effet la suivante pour le chargement
des programmes : la première commande CLOAD détermine le
nom du fichier à ouvrir en lecture, puis charge le premier programme
oric trouvé à l'intérieur. Le fichier reste ouvert
en lecture, et les commandes CLOAD suivantes considèrent le fichier
comme une cassette (accès séquentiel). En particulier, cela
veut dire qu'un programme dans le fichier peut être sauté
si son nom ne correspond pas à celui demandé. Si une commande
CLOAD est demandée alors que la fin du fichier a été
atteinte, ce dernier est fermé et un nouveau fichier est ouvert,
de même nom sur le système hôte que le programme demandé.
Pas clair ? Prenons un exemple : supposons que The Hobbit soit un programme
en quatre morceaux, concaténés dans un fichier HOBBIT. Avec
CLOAD"HOBBIT" vous demandez à ouvrir le fichier HOBBIT et à
lire le premier programme oric qui se trouve à l'intérieur.
Celui-ci s'exécute automatiquement et va charger les trois morceaux
suivants (avec des instructions en langage machine dans cet exemple), puis
vous voulez charger une sauvegarde que vous aviez faite dans un jeu précédent
: dans le vocabulaire compris par The Hobbit, vous utilisez la commande
LOAD qui va demander à charger un premier programme sans nom, or
la fin du fichier HOBBIT a été atteinte, c'est donc un nouveau
fichier qui va être ouvert, en l'occurrence le fichier spécial
________ puisque le nom voulu est vide. Le premier programme (un bloc de
données dans cet exemple) va être chargé, et le fichier
va rester ouvert en lecture (The Hobbit demandera d'ailleurs trois autres
blocs car il sauve l'état d'un jeu sous forme de quatre morceaux).
Et ainsi de suite : si vous demandez à recharger cette même
sauvegarde, la fin du fichier étant dorénavant atteinte,
il sera fermé puis aussitôt réouvert. Et si maintenant
vous décidez de rebooter l'oric avec F8, puis de charger un nouveau
jeu ? Toujours pareil, la fin du fichier en cours étant atteinte,
un nouveau fichier sera ouvert... Bref, normalement, vous n'avez pas à
vous poser de questions, tout se passe comme si vous aviez un robot qui
vous charge les cassettes dans votre magnétophone, et qu'ensuite
vous déroulez la cassette jusqu'au bout pour charger des programmes.
La compréhension de cette logique vous sera seulement utile si vous
fabriquez vos propres "cassettes". Et en écriture ? Bonne question,
comme vous n'avez pas envie d'écrire vos sauvegardes n'importe où,
et surtout pas d'écraser le contenu d'une de vos "cassettes", un
nouveau fichier est toujours ouvert pour la sauvegarde d'un programme.
Deux programmes différents ne se retrouveront donc pas concaténés
sur une même "cassette" (si c'était ce que vous vouliez faire,
vous aurez toujours la possibilité de le faire avec les commandes
du système hôte, par exemple 'cat' sous linux ou 'COPY /B'
sous Dos). Une exception à cette règle : la sauvegarde de
programmes sans nom. La première sauvegarde sans nom viendra se
placer dans le fichier ________ (écrasant ce qui pouvait s'y trouver)
et les sauvegardes sans nom viendront se mettre à la suite.
3.2. Utilisation des cassettes avec l'émulation matérielle
Pour activer l'option "cassettes matérielles", sélectionnez
la ligne "Hardware tape" sur l'écran de configuration, puis sélectionnez
un nom d'image cassette. Le système matériel est très
(trop ?) fidèle à l'utilisation des cassettes réelles:
l'interface de l'écran de configuration (F1) vous fournit un magnétophone
avec des commandes avance-rapide, écoute, retour-rapide et enregistrement,
et même un compteur en minutes/secondes pour repérer des programmes
sur une bande. Lire une cassette ne pose pas de soucis particuliers: remarquez
simplement que la touche Play du magnétophone ne sert qu'à
la pré-écoute de cassettes (ah... nostalgie...) et pas à
la lecture des cassettes par l'oric. En effet, l'oric est capable de télécommander
le magnétophone par les broches 6 et 7 du connecteur magnétophone,
grace à son relai interne. La touche de lecture est donc toujours
enfoncée et c'est l'oric qui pilote le relais bloquant le moteur.
Il suffit donc de faire un CLOAD"" pour charger le premier programme de
la cassette, ou un CLOAD"nom_de_programme" pour charger un programme particulier.
Grâce à la télécommande, vous n'avez pas besoin
non plus d'arrêter le magnétophone après la lecture
du programme, les routines de l'oric s'en chargent pour vous. Ecrire sur
une cassette demande un peu plus de précautions, comme pour les
cassettes réelles. Il vous faudra passer sur l'écran de configuration
et appuyer sur le bouton enregistrement (sélectionnez la ligne avec
Entrée, le bouton passe en inversion vidéo) avant de taper
votre commande CSAVE. Comme pour la lecture, la télécommande
bloque le moteur du magnétophone tant que la commande CSAVE n'est
pas exécutée, et arrête l'enregistrement à la
fin de la commande. Par contre, n'oubliez pas de relacher le bouton enregistrement
après votre sauvegarde, ou vous risquez d'effacer une cassette au
prochain CLOAD ! Soyez prudent aussi si vous voulez enregistrer un programme
sur une cassette déjà utilisée. Positionnez la bande
à un endroit vierge, comme la fin de la bande par exemple, ou alors
vous écraserez un programme. Bref, je ne saurais trop vous conseiller
de mettre un seul programme par bande, ou les différentes parties
d'un programme en plusieurs morceaux, sauf si vous préparez une
cassette complète pour un oric réel. N'oubliez pas aussi
de protéger vos précieuses cassettes contre l'écriture,
en positionnant les droits d'accès du fichier avec votre système
hôte (commande chmod sous Linux, commande attrib sous Dos).
3.3. Ecriture d'une cassette réelle avec Euphoric
J'ai pris un soin tout particulier à la réalisation de la
touche de pré-écoute pour que les images de cassettes puissent
servir à refaire de véritables cassettes. A priori, n'importe
quel lecteur de fichiers sons aurait du permettre cela à partir
d'un fichier au format WAV. Et bien, ce n'est pas le cas, les drivers sous
Windows perdent des échantillons: vous ne l'entendez pas pour votre
musique favorite, mais l'oric oui. Meme les lecteurs de fichiers sons sous
Dos n'arrivent pas à faire un sans-faute, en tout cas tous ceux
que j'ai essayés. Pour enregistrer une vraie cassette, branchez
un magnétophone sur la sortie Line Out de votre carte son, et faites
une copie de magnétophone (virtuel) à magnétophone
(réel).
3.4. Lecture d'une cassette réelle
La lecture d'une cassette réelle par le biais de la carte son est
plus délicate que l'écriture. En effet, le signal enregistré
sur une cassette analogique est loin d'etre parfait, et meme à 44,1kHz,
l'échantillonnage par la carte son donne des mesures de début
et fin de créneau moins précises que celles que l'oric obtient.
Résultat, la lecture d'une cassette par la carte son d'un PC n'est
pas très fiable, pour obtenir de bons résultats, il faut
des cassettes en bon état, des niveaux d'enregistrements corrects,
etc. Un petit programme (readtape) est fourni avec Euphoric pour décoder
les échantillonnages à 44,1 kHz et les transformer en images
de cassettes utilisables avec l'émulateur, mais je conseille fortement
de transférer les cassettes de l'Oric au PC par l'intermédiaire
du cable de transfert (cf annexe).
4. Images disques
Les images disques sont des fichiers sur le système hôte reproduisant
bit par bit le contenu de disquettes MFM (double densité)(en fait,
le format ne mémorise pas les transitions d'horloge, seul le contenu
après décodage est mémorisé: tout ce que le
contrôleur de disquette peut fournir au cpu est mémorisé).
Des images de disquettes avec un ancien format doivent toujours trainer
sur une archive ou une autre, et certains utilitaires de transfert oric->PC
génèrent toujours ce format obsolète qui n'est plus
supporté par Euphoric: il vous faut convertir les vieilles images
avec l'utilitaire oric2mfm. On nomme généralement les images
avec un suffixe ".dsk" mais ce n'est absolument pas obligatoire; Euphoric
contrôle la signature d'une image disque dans les premiers 256 octets.
Il y a plusieurs façons d'obtenir une image disque: la récupérer
sur un serveur, la fabriquer lors d'un transfert oric->pc, ou en formattant
une nouvelle disquette virtuelle avec Euphoric (dans ce dernier cas, il
vous faut déjà avoir une image de disquette système,
bien sûr).
4.1. Gestion des disquettes avec l'écran d'environnement
Si vous avez démarré Euphoric avec une configuration disque
(Microdisc, Jasmin ou Téléstrat), vous voyez apparaître
sur l'écran d'environnement 4 lignes (ou moins) correspondant aux
lecteurs de disquettes que vous avez demandés dans le fichier d'initialisation:
Disk A, Disk B, etc (si vous êtes sûrs d'avoir lancé
Euphoric avec un contrôleur de disquette et que vous ne voyez aucune
ligne Disk, vérifiez que vous avez connecté au moins un lecteur
de disquette en donnant une ligne telle que DriveA=Oui dans le fichier
d'initialisation). Pour toute action sur un lecteur de disquette, vous
devez tout d'abord amener le curseur (la sélection bleue) sur la
ligne du lecteur. Après le nom du lecteur apparaît le nom
de l'image disque insérée dans le lecteur (si rien n'est
indiqué, le lecteur est vide), et tout à gauche apparaît
un petit symbole montrant si la disquette est protégée en
écriture ou non (le symbole est censé représenter
la petite fenêtre de protection d'une disquette 3"1/2). Vous pouvez
changer la protection en écriture en appuyant sur les flèches
gauche et droite. Ejecter une disquette se fait avec la touche Suppr (=Del)
ou BackSpace. Entrée permet de choisir une disquette à insérer
dans le lecteur: le contenu du répertoire courant du PC s'affiche
alors. Les flèches Haut, Bas, Page Haut, Page Bas, Début
et Fin permettent de se déplacer dans la liste. Sélectionnez
une image disque ou un répertoire avec Entrée ou abandonnez
la sélection avec Escape. Si vous avez besoin d'une nouvelle disquette
vierge, tapez Espace sur la ligne d'un lecteur. Vous obtenez une nouvelle
disquette nommée ________.dsk (ou _______1.dsk, _______2.dsk, etc
si les fichiers existent déjà dans le répertoire courant
du PC). Attention, la disquette obtenue n'est pas formattée, à
vous de le faire avec le système d'exploitation disque Oric de votre
choix (OricDos, FT-DOS, Sedoric, Stratsed, etc). Quand vous sortez d'Euphoric,
mieux vaut mettre une étiquette sur cette nouvelle disquette, je
veux dire la renommer vers quelque chose de plus parlant.
5. Utilisation du Microdisc
Pour utiliser le contrôleur Microdisc, il suffit de donner un ou
des noms d'images disques sur la ligne de commande, ou d'utiliser l'option
-d, ou encore de spécifier DiskController=Microdisc dans le fichier
d'initialisation (dans les deux cas, la ligne MicrodiscEprom=... doit pointer
sur une image de Rom. Notez que vous n'êtes pas obligés
d'utiliser une eprom de 8 Ko seulement, vous pouvez en programmer une de
16 Ko, ou à l'inverse une plus petite). Si vous donnez des noms
d'images disques sur la ligne de commande, les disquettes seront rangées
dans les lecteurs successifs (jusqu'à 4), et l'oric bootera sur
la première. Pendant l'émulation, vous pouvez éjecter
et insérer de nouvelles disquettes, en passant par l'écran
de configuration (veillez à ne pas le faire pendant une écriture
de disquette: vous abimeriez une disquette de la même façon
qu'avec une disquette réelle !)
6. Utilisation du Jasmin
Pour utiliser un contrôleur Jasmin, lancez euphoric avec l'option
-j et éventuellement des noms d'images disques sur la ligne de commande,
ou spécifiez DiskController=Jasmin dans le fichier d'initialisation
(dans les deux cas la ligne JasminEprom=... doit pointer sur une image
de Rom). Rappelez-vous que l'électronique du Jasmin n'interfère
pas avec le démarrage normal de l'oric. Il faut attendre le message
d'invite "Ready" habituel du Basic puis appuyer sur le bouton de boot du
contrôleur (F6 sur l'émulateur). Bien sûr, une disquette
avec le système Tran DOS doit être présente dans le
premier lecteur.
7. Téléstrat
Démarrer un Téléstrat au lieu d'un Oric1/Atmos consiste
simplement à rajouter l'option -t sur la ligne de commande (et éventuellement
des noms d'images disques) ou en spécifiant la ligne Computer=Telestrat
dans le fichier d'initialisation. Le contenu des cartouches à insérer
dans le Téléstrat doit être spécifié
banque par banque dans le fichier d'initialisation (cf paragraphe ci-dessous).
Pour ceux qui ne le savent pas encore, le Téléstrat est
le dernier Oric sorti par la branche française alors qu'Oric Angleterre
avait mis la clé sous la porte. Le projet avait néanmoins
commencé outre-manche sous le nom de code IQ64 et la machine devait
s'appeler Stratos. Cette superbe machine est compatible de manière
ascendante avec l'Atmos+Microdisc, et rajoute entre autre des cartouches
(tout le logiciel système est d'ailleurs sous forme de cartouches),
un contrôleur disque intégré, une interface RS232 et
Minitel, des ports joysticks ou souris. Les cartouches peuvent contenir
de la ROM, de la RAM, ou un périphérique (mais aucun périphérique
n'a jamais été développé sous forme de cartouche).
Il existe une cartouche avec 64 Ko de ram, et des cartouches de ROM de
différentes capacités. En fait, ces ROMs et ces RAMs sont
toujours accédées dans les 16Ko les plus hauts de la mémoirei,
par recouvrement. Il y a donc 8 banques de 16 Ko accessibles, la banque
0 consiste en fait en la partie supérieure des 64 Ko de RAM interne
du Téléstrat. Le Téléstrat a besoin d'au moins
une cartouche de ROM pour démarrer sur la banque 7, celle-ci contient
habituellement le logiciel Télémon, qui est le moniteur du
Téléstrat. Dans les autres banques peuvent se trouver d'autres
ROMs, généralement associées à un numéro
de banque fixé, comme l'HyperBasic en banque 6, le TéléAss
en banque 5 ou la Télématic en banque 3 (cette dernière
ROM ne fait d'ailleurs que 8 Ko). Euphoric permet de spécifier directement
le contenu de chaque banque mémoire dans le fichier d'initialisation
avec des lignes du type Bank7=... ce qui fixe la banque comme ROM. Chaque
banque non initialisée est automatiquement considérée
comme une banque de RAM. Donc si vous démarrez avec une image du
Télémon en banque 7 et une image de l'HyperBasic en banque
6, vous avez un Téléstrat avec 48 + 6 * 16 = 144 K ram !
(toutefois, la banque 0 est la ram overlay et sera généralement
utilisée par le StratSed) Au démarrage, le Télémon
teste le contenu des autres banques, affichant le copyright des différentes
rom, et tente de charger le système StratSed depuis le premier lecteur
vers la banque 0. Si la disquette dans ce lecteur contient aussi un fichier
BONJOUR.COM, il est exécuté, sinon la main est donnée
à la première banque de rom en descendant les numéros,
donc généralement la 6 qui contient l'HyperBasic. Les dernières
versions de cette banque font afficher un menu proposant le choix entre
la banque Télématic (si elle est présente) ou une
banque langage, puis dans ce dernier cas entre l'Hyper-Basic ou le TéléAssembleur
(si présent).
8. Sortie imprimante
Pour connecter une imprimante à votre oric virtuel, assurez-vous
que la ligne Printer=Oui est présente dans le fichier d'initialisation,
et indiquez la destination de tout ce qui sort par la ligne PrinterOutput=...
Vous pouvez indiquer un fichier de sortie, ce qui permet par la suite d'éditer
le fichier, ou de l'envoyer sur une imprimante (ou un émulateur
de MCP40 par exemple). Ou alors, vous pouvez opter pour une sortie directe
sur une imprimante réelle, en donnant le nom du fichier spécial
correspondant. Par exemple: PrinterOutput=lpt1. Enfin, vérifiez
que vous avez mis en marche l'imprimante dans l'écran d'environnement,
elle est éteinte par défaut pour la raison suivante: certains
programmes de jeu prévus pour fonctionner avec un joystick IJK sur
le port imprimante, ne détectent pas qu'une imprimante est connectée
et l'inondent alors de données binaires. L'interface PASE ne perturbe
pas l'impression (mais peut perturber le son...) Tous ces comportements
s'expliquent parfaitement et sont évidemment identiques sur l'Oric
réel...
9. Joysticks
Euphoric peut émuler un joystick par les touches du pavé
numérique (2,4,6,8 pour les directions et 0 pour le tir). Choisissez
un type d'interface joystick avec la ligne Joystick=... Indiquez IJK ou
PASE pour les interfaces correspondantes, ou Non si vous ne voulez pas
qu'un joystick soit émulé. Si vous voulez émuler un
joystick sur le port intégré gauche d'un Téléstrat,
il faut enlever l'émulation d'un joystick IJK ou PASE et mettre
la ligne JoystickPort=Oui dans le fichier d'initialisation.
10. RS232
L'Oric-1 et l'Atmos n'ont pas de port série en standard, mais il
est très facile de les doter d'une telle extension (avec 4 boitiers
sur une carte de la taille d'une boite d'allumettes, le tour est joué).
Euphoric met à votre disposition une telle extension basée
sur un ACIA 6551 à l'adresse 031C. Pour cela, indiquer la ligne
AsynchronousController=Oui dans le fichier d'initialisation, et spécifier
le nom du port série du PC qui servira au simulateur d'ACIA au moyen
de la ligne SerialPort=...
Le Téléstrat dispose en standard d'un tel contrôleur
série, son port de communication peut être envoyé soit
sur la prise V24 (niveaux EIA standard), soit la prise Minitel (niveaux
TTL). Le PC n'a pas de connecteur Minitel, mais il suffit d'utiliser un
cable PC/Minitel du commerce pour pouvoir brancher un Minitel et l'utiliser
par exemple avec la cartouche Télématic (toutefois, il vous
faudra aussi un petit montage supplémentaire si vous voulez que
votre PC détecte les sonneries du téléphone). En simulant
un Oric1/Atmos ou un Téléstrat, vous pouvez bien sûr
connecter ce que vous voulez sur le port série, modem ou imprimante
série par exemple. Enfin, notez que vous avez aussi la possibilité
d'utiliser une partie du simulateur d'ACIA si vous n'avez pas de port série
libre sur votre PC, ou si vous n'avez pas le périphérique
nécessaire au bon fonctionnement d'un logiciel (par exemple, le
logiciel système du Téléstrat se bloque lorsque son
buffer d'émission série est plein et que l'équipement
de données ne lui signale pas de porteuse): donnez alors la ligne
SerialPort=Non.
11. Stylo optique
Pour utiliser le stylo optique, spécifiez simplement la ligne LightPen=Oui
dans le fichier d'initialisation. Le stylo optique est simulé par
la souris du PC, un petit marqueur gris matérialise la position
du stylo sur l'écran. Mais n'oubliez pas que le stylo doit toucher
l'écran pour pointer une zone: cette action est remplacée
par l'appui sur le bouton de la souris. N'oubliez pas non plus que le stylo
ne peut marcher que sur les zones éclairées de l'écran,
inutile de sélectionner une zone noire...
Vous devez avoir un pilote de souris résident lorsque vous lancez
euphoric, sinon le marqueur gris restera immobile.
12. Souris
Pour utiliser la souris du Téléstrat, spécifiez simplement
la ligne Mouse=Oui dans le fichier d'initialisation. Il vous faut un pilote
de souris lorsque vous lancez Euphoric, sinon elle se comporte comme si
elle fuyait dans une direction.
13. Clavier
Le clavier d'Euphoric émule précisément celui des
vrais Oric. Avec lui, vous êtes par exemple capable d'enfoncer simultanément
les touches QD5VBL' pour tricher à Damsel in Distress... mais attention,
j'entends les grincheux qui rétorquent que le clavier est américain
(comme sur l'Oric) et pas français. En fait, il y a deux petites
variations pour le clavier d'Euphoric: un clavier Oric légèrement
"étendu" et un clavier Oric "pur". Le clavier Euphoric étendu
incrémente celui de l'Oric d'un petit nombre de touches, en utilisant
les emplacements libres de la matrice de 64 positions de l'Oric. L'une
ou l'autre variation est choisie dans le fichier d'initialisation, en indiquant
OricKeyboard=Extended ou OricKeyboard=True.
13.1. Le clavier "étendu"
Regardez les photos pour suivre les explications: quelques touches ne se
trouvent pas exactement à la même position sur le clavier
PC et le clavier Oric, elles sont reliées par des traits verts entre
les deux photos, il s'agit de la touche d'effacement arrière, de
la touche à droite de '=' ('+' avec shift), de la touche CTRL de
l'Oric qui descend sur le PC et de la touche FUNCT de l'Atmos qui devient
ALT sur PC, plus bien entendu la touche ESC de l'Oric qui monte sur le
PC en dehors de la partie principale du clavier et les touches des flèches
de l'Oric qui passent sur les flèches grises du clavier PC. Il y
a ensuite quelques touches supplémentaires rajoutées par
Euphoric dans la matrice de l'Oric émulé: en bleu, la touche
AltGr et la deuxième touche Ctrl à droite de la barre d'espace,
et la touche CAPS. Enfin, sur les claviers PC internationaux, il y a une
touche de plus que sur les claviers PC américains, c'est celle qui
se trouve à côté du Shift gauche, elle est reliée
en rouge à une touche qui n'existe pas habituellement sur le clavier
Oric (la photo n'est pas truquée, c'est un clavier avec une touche
FUNCT de plus que j'ai bidouillé...). Les deux dernières
différences entre clavier Oric et PC concernent la touche TAB et
la touche au dessus, elles ne sont pas utilisées par Euphoric.
13.2. Le clavier "puriste"
Le clavier pour les puristes permet de se rapprocher encore un peu plus
du véritable clavier de l'Oric: cette fois, les touches ESC et CTRL
de l'Oric et les flèches autour de la barre d'espace restent à
leur place, en utilisant respectivement les touches TAB et CAPS du PC et
les touches Ctrl et Alt autour de la barre d'espace.
13.3. Utilisation d'un clavier non-US
Euphoric n'entend pas faire en sorte que vous puissiez utiliser toutes
les possibilités de votre clavier de PC, le programme vise la parfaite
compatiblité de l'Oric, pas celle du PC: j'ai eu des errements dans
la gestion du clavier qui m'ont conduit à implémenter par
le passé des claviers programmables ultra-sophistiqués, mais
c'est fini, c'étaient de fausses pistes. Si gestion de clavier international
il doit y avoir, c'est une affaire de logiciel, pas de matériel:
si vous mettez des cabochons de touches AZERTY sur votre véritable
Oric, et que vous ne changez pas la routine de lecture du clavier, vous
n'aurez pas ce que vous voulez... La solution si vous avez un clavier français
sur votre PC, c'est donc une ROM française. J'en ai fait une pour
l'Oric Atmos et une pour le Téléstrat, qui prennent en charge
les touches supplémentaires (AltGr pour accéder au troisième
symbole des touches, et la touche supplémentaire du clavier international
à côté du shift gauche), elles sont nommées
Basic1.1fr et Telemon2.4fr. C'est incontestablement la meilleure solution:
toute lecture de caractère par la routine de la rom prend en charge
le clavier national, tandis que tous les jeux qui accèdent directement
au matériel du clavier marchent parfaitement en fonction de la position
des touches.
14. Sauvegarde et reprise d'état
En appuyant sur la touche F9 pendant l'émulation, vous enregistrez
l'état et la mémoire de l'oric dans un fichier (vous pouvez
spécifier son nom dans le fichier d'initialisation avec la ligne
DumpFile=...). Vous pouvez ainsi ultérieurement lancer euphoric
avec l'option -r pour repartir au point précis où de la sauvegarde.
Il vous faut bien sûr redémarrer avec la même configuration,
ce n'est pas la peine d'essayer de relancer un état d'Atmos sur
un Téléstrat. Si vous aviez une configuration disquette,
relancez euphoric avec les mêmes disquettes dans les lecteurs. Par
exemple, si vous lancez euphoric comme suit : euphoric -t hypercat.dsk,
vous devrez relancer euphoric par euphoric -t hypercat.dsk -r pour repartir
avec l'état sauvé.
15. Copie d'écran
Tout simplement avec la touche PrtSc... Un fichier au format BMP est généré
dans le répertoire courant, chaque appui sur PrtSc crée un
nouveau fichier: Screen01.bmp, Screen02.bmp, etc. Utilisateurs de Windows:
vérifiez que PrtSc n'est pas intercepté par Windows (il l'est
par défaut: il vous faut décocher la case Impr.Ecran dans
les propriétés du raccourci d'euphoric (onglet "divers")).
A1. Configuration matérielle
VGA: Euphoric tourne sur n'importe quelle carte VGA en mode Q (Cube) 256x256x256
386 : Euphoric tourne sur tout processeur acceptant le jeu d'instructions
du 386, donc au minimum un 386SX. MAIS, si votre processeur n'est pas assez
puissant, vous ne verrez rien à l'écran : l'émulateur
tourne mais il n'a pas le temps de faire d'affichage. C'est le cas sur
les 386 SX 16, vous serez obligés de vous contenter d'un oric plus
lent, lisez le paragraphe suivant... A l'inverse, plus votre processeur
est puissant, plus le nombre de rafraichissements écrans par seconde
sera important (la rapidité du bus et de la carte graphique sont
ici mis à contribution) Euphoric est écrit en langage machine
optimisé pour le 386 (minimisation des accès mémoires
et des branchements).
SoundBlaster: une compatibilité matérielle avec une des
cartes SoundBlaster est nécessaire pour avoir du son. Si Euphoric
n'arrive pas à initialiser votre carte, c'est que sa compatibilité
n'est pas bonne. Si vous avez un bonne émulation, ça marche
aussi (la Gravis UltraSound par exemple).
A2. Problèmes ?
Le formattage de disquette avec un Atmos sous FT-DOS ne marche pas !
Si, si, il marche, mais le programme FORMAT de FT-DOS identifie un oric-1
ou un atmos en lisant une adresse en rom qui se trouve être celle
d'un patch d'euphoric pour la lecture de cassette rapide. Il suffit de
passer en mode émulation de cassette matérielle pour que
le patch ne soit plus installé et FORMAT trouvera la valeur qu'il
attendait à cette adresse. Une autre solution est de corriger FORMAT,
parce que le but de ce test est de savoir l'adresse de la routine IRQ,
et il vaut mieux le remplacer par la ligne :
IQ=DEEK(#FFFE)+1
A3. Transférer des programmes de l'Oric vers
le PC
Si vous possédez un lecteur 3"1/2 ou 5"1/4 sur votre Oric, vous
savez sans doute déjà que l'utilitaire readdsk vous permet
de lire vos disquettes sur PC et d'en faire des images disques. Si vous
ne possédez pas de lecteur de disquettes 3"1/2 ou 5"1/4 sur votre
oric, je vous conseille de faire le cable parallèle unidirectionnel
décrit ci-dessous. C'est le moyen le plus fiable et le plus rapide
pour transférer vos programmes, j'ai aussi un programme readtape
à vous proposer, qui vous permet de transformer en images cassettes
les échantillonnages à 44kHz que vous pourriez faire avec
votre carte son, mais les performances ne sont bonnes qu'avec des échantillonnages
de très bonne qualité, ce qui rend l'opération délicate
à maîtriser. Donc, si vous cherchez l'efficacité et
la sureté, je vous recommande le transfert par cable parallèle,
mais avant de vous lancer dans ce petit bricolage très simple (pas
de composant, juste deux connecteurs parallèles et du cable), vérifiez
que ce bon vieil oric et sa périphérie marchent effectivement
et que vous arrivez à charger vos programmes. Le petit programme
de transfert que je vous propose ici vous permettra de transférer
toute une cassette (ou seulement une partie si vous le désirez).
Sachez aussi que Philippe Menard a ensuite réutilisé ce cable
et écrit un programme de transfert pour les disquettes 3". Prêt
? Alors on y va :
A) Fabriquez votre cable
PC DB25 |
Oric 20 broches |
15 |
3 (D0) |
13 |
5 (D1) |
12 |
7 (D2) |
10 |
9 (D3) |
11 |
1 (STROBE) |
6 |
19 (ACK) |
18-25 |
2,4,6,8,10,12,14,16,18,20
(GROUND: une seule suffit) |
Soyez sûrs de ne pas vous tromper dans la numérotation des
broches de l'Oric (pas de problème avec la DB25, les numéros
sont souvent marqués dessus), quand vous regardez l'arrière
de votre Oric, voici ce que vous voyez (port parallèle mâle):
2 4 6 8 10 12 14 16 18 20
1 3 5 7 9 11 13 15 17 19
Autre possibilité, si vous avez déjà un cable de liaison
parallèle PC<->PC de type LapLink, et que vous aimez comme moi
mettre les cables bout à bout, vous pouvez faire un petit convertisseur
Oric-PC, que vous brancherez au bout de votre cable parallèle PC:
DB25 |
Oric 20 broches |
2 |
3 (D0) |
3 |
5 (D1) |
4 |
7 (D2) |
5 |
9 (D3) |
6 |
1 (STROBE) |
11 |
19 (ACK) |
18-25 |
2,4,6,8,10,12,14,16,18,20
ou une seule d'entre elles (GROUND) |
(si vous choisissez de ne mettre à la masse qu'une des broches 18
à 25 de la DB25, assurez-vous que la masse est bien transmise de
bout en bout)
B) Sur votre Atmos ou Oric1, tapez le petit programme Basic ci-dessous.
100 DATA #20,#6A,#E7 ' remplacez par #20,#CA,#E6 sur Oric1
101 DATA #A9,#FF
102 DATA #8D,#00,#03
103 DATA #20,#1C,#E7 ' remplacez par #20,#7D,#E6 sur Oric1
104 DATA #2A
105 DATA #8D,#01,#03
106 DATA #AD,#00,#03
107 DATA #48
108 DATA #29,#EF
109 DATA #8D,#00,#03
110 DATA #A9,#02
111 DATA #2C,#0D,#03
112 DATA #F0,#FB
113 DATA #68
114 DATA #8D,#00,#03
115 DATA #4C,#08,#B8
120 FOR I=#B800 TO #B825
125 READ A : POKE I,A
130 NEXT
135 CALL #B800
C) Lancez l'utilitaire oriclink sur le PC, tapez RUN sur l'Oric et appuyez
sur la touche PLAY du magnétophone. Lorsque vous voulez arrêter
le transfert, appuyer sur le bouton RESET de votre Oric (dessous le boitier)
et sur une touche quelconque côté PC. Vous obtenez une image
cassette nommée image.tap qui peut être directement exploitée
par euphoric en mode cassette matérielle
D) Eventuellement, vous pouvez convertir l'image cassette obtenue en
un fichier plus compact avec l'utilitaire tape2oric, ceci n'est pas toujours
possible toutefois, certains programmes protégés n'utilisant
pas le format standard pour les fichiers sur cassettes.
NB: Utilisateurs Linux : comme pour tous les programmes accédant
à des ports d'entrées-sorties physiques, le programme a besoin
des droits root. Vous devez donc utiliser le programme en tant que super-utilisateur
ou changer le propriétaire du programme pour root et positionner
le bit setuid (soit chown root oriclink ; chmod u+s oriclink )
A4. Copyrights et remerciements
Euphoric est copyright Fabrice Francès. Euphoric est développé
en assembleur 386 sous Linux, système d'exploitation Unix gratuit,
avec tout l'environnement de programmation GNU, en particulier l'assembleur
gas et le compilateur C/C++ gcc. Le même source (à quelques
détails près) est assemblé grâce au portage
de l'environnement GNU sous DOS, et tourne en 32 bits avec un serveur DPMI.
Les routines d'entrées-sorties standard (fopen, fread, fwrite...)
de la bibliothèque C sont copyright "The Regents of the University
of California" (UCB), c'est pourquoi je signale le message suivant "This
product includes software developed by the University of California, Berkeley
and its contributors". Aucun code de la Free Software Foundation n'est
inclus dans ce programme, il ne tombe donc pas sous le statut de la GNU
General Public License, ni même celui de la GNU Library Public License.
La bibliothèque svgalib (Harm Hanemaayer) est utilisée sous
Linux pour changer de mode d'écran.
Merci à ceux qui continuent à vouloir faire vivre l'Oric
depuis toutes ces années : les membres de l'Oric User Monthly et
du Club Europe Oric. Merci aux testeurs pour leur patience, en particulier
Philipp Mulrane, Bruno Thiebot, Laurent Chiacchierini et surtout Vaggelis
Blathras qui remporte la palme du perfectionnisme... Et merci aux généreux
supporters de ce développement : Roger Barbier, Marc Chamaillou,
Roger Barthès, Simon Guyart, Jérémie Petit, Eric Février,
Pierre Guyon, André Franz, Rodolphe Bottosso, Jean-David Olekhnovitch.
Euphoric est freeware (mais pas domaine public). Pourtant, c'est un
des meilleurs émulateurs de micro 8-bits, rien a voir avec les émulateurs
développés en quelques semaines, alors pourquoi n'est-il
pas payant ? Parce que je veux favoriser une "renaissance" de l'oric, faire
en sorte que ceux qui ont passé de bons moments avec cette machine
se retrouvent autour de valeurs différentes que celles qui font
la micro d'aujourd'hui. Ne trouvez-vous pas frustrant que votre micro soit
"obsolète" au bout de 18 mois ? Ne trouvez-vous pas ridicule de
voir des débauches de technologie englouties par des logiciels mal
écrits, ou que nombre de jeux ne donnent pas le dixième du
plaisir que donnaient les anciens hits des 8 bits ? N'êtes-vous pas
las de payer des versions de Word (TM), qui vous obligent à acheter
un nouveau micro ? Au lieu de contribuer à rendre Bill Gates toujours
plus riche, vous feriez mieux de m'envoyer l'argent que vous lui destiniez:
un Euphoric pour la vie, au lieu d'un Windows (TM) buggé. Je ne
donne plus mon adresse (je recevais 10 fois plus de requêtes que
de support...), mais vous la trouverez facilement si vous reprenez contact
avec la communauté des Oriciens. Voici l'adresse des deux Clubs
précités pour ceux qui n'ont pas accès à Internet:
Club Europe Oric/Jean Boileau/33 av Henri Barbusse/93140 BONDY/FRANCE et
Oric User Monthly/Dave Dick/65 Barnard Crescent/Aylesbury/HP21 9PW/ANGLETERRE
Vous trouverez dans ces clubs un esprit différent, des nostalgiques
bien sûr, mais aussi plein de gens bourrés d'idées
qui prouvent que l'Oric n'a pas épuisé ses possibilités.