0% ont trouvé ce document utile (0 vote)
58 vues257 pages

Omikron Basic

Transféré par

lagifo1663
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
58 vues257 pages

Omikron Basic

Transféré par

lagifo1663
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF ou lisez en ligne sur Scribd
ATARI-Software @EMIKLOM. sasic Series ATARI ST —— JI ATARI ...la technology de pointe Intodution COIKIOL. INTRODUCTION Vous venez d’acquérir le Basic OMIKRON. Bravo! Pour que vous puissiez bien vous en servir, nous avons congu ce manuel d'apprentissage et de 1éférence. Nous pensons avoir mis tout ce qui vous sera nécessaire pour débuter, comme pour développer en OMIKRON Basic. Néanmoins, il serait préférable que vous ayez une certaine connaissance du Basic ou d'un autre langage (comme PASCAL ou C). MISE EN ROUTE Le basic OMIKRON existe sous deux formes, en cartouche ou sur disquette. - EN CARTOUCHE — Sur le c6té gauche de votre ATARI ST, vous trouverez le port cartouche. Vous devez insérer la cartouche OMIKRON dans le connecteur. Comment procéder ? Q Etsignez I'unité centrale et tous les périphériques. © Regardez bien la cartouche, sur un cété se trouve les composants, de l'autre vous pouvez voir une surface peinte en blanc. ATTENTION ! Le cété sur lequel sont enfichés les composants doit toujours se trouver vers le sol. Q Allumez le systéme. = Premier cas: Votre ATARI démarre, le message ‘[04] OMIKRON. cartridge selftest ... ok’ s'affiche en haut de l'écran. C'est parfait. = Deuxidéme cas: Votre ATARI ne démarre pas ou bien le message affiché se termine par ‘bad’. Dans ce cas, contactez votre revendeur pour vérifier votre machine et la cartouche. Page 1 © a KfOO O° _ _ Manuel de Référence a Installez un lecteur ‘O’. Cliquez sur une icéne disque, puis tendez—vous dans le menu Options du bureau. Cliquez l’option ‘Installer une unité disque...’. Donnez le nom ‘O’ au lecteur, puis ‘OMIKRON’ comme libellé. Cliquez ‘Installer’. Ouvrez le lecteur ‘O’. Démarrez le seul programme qui se trouve dans ce lecteur. Vous étes maintenant dans le basic OMIKRON! IMPORTANT: Si vous ne voulez pas réinstaller & chaque fois le disque ‘0’, nous vous conseillons de faire ce qui suit: o @ Installez le disque ‘0’ = Sauvegardez le Bureau = A chaque démarrage de la machine, utilisez la disquette sur laquelle vous avez sauvé le bureau. L’ordinateur installera de lui-méme le disque ‘O’. (Sur un disque dur comportant un Boot automatique, vous n’avez pas besoin d'utiliser une disquette particuliére, en effet GEM sauvegarde le fichier de configuration du bureau sur le disque C) — SUR DISQUE — a Ouvrez le lecteur contenant le programme ‘[Link]’ et démarrez-le. Vous étes maintenant dans le basic OMIKRON! ATTENTION: Si vous installez [OMIKRON basic dans un dossier AUTO, celui-ci fonctionnera mais sans la partie AES du GEM. En effet, tout programme situé dans un dossier auto démarre avant que I’AES soit initialisé. Vous ne pourrez donc pas travailler avec la souris, les fenétres, les menus, etc. o Page 2 Inrocuovon eMIKIOO. A PROPOS DE CE MANUEL... Nous avons séparé le manuel en deux volumes. Pour quelles raisons ? En premier lieu, nous ne pensons pas qu'un livre de 450 pages soit trés pratique a manipuler. Secondo, |'existence de deux volumes permet de bien différencier les pdles d’intérét: = Un volume de références = Un volume pour les explications détaillées. D’autre part, les instructions ont été classées par catégories (par exemple, les instructions ayant un rapport avec les fichiers sont regroupées par ordre alphabétique dans le chapitre ‘FICHIERS’. REGLES TYPOGRAPHIQUES: Tout au long des pages de ce manuel, vous trouverez deux polices de caractéres:utilisées de la fagon suivante: = Cette police de caractére pour les explications. = Cette autre police pour la syntaxe et les exemples. © Les commandes et les fonctions sont toujours indiquées en lettres capitales. Exemple: RETURN, PRINT Les variables n'ont que la premiére lettre des mots en capitale. Exemple : Prix, Manuel_De_L_Omikron Note: Ces deux derniéres régles sont appliquées dans le basic lui-méme. Quand vous tapez ‘print’, I'éditeur affiche aprés validation ‘PRINT’. Page 3 © M0 Ke) Q) ° Manuel de Référence LES TOUCHES Les touches du clavier sur lesquelles vous devez appuyer sont indiquées entre crochets []. Par exemple, la touche ESC, située en haut a gauche, est indiquée par [ESC]. Le clavier de I'ATARI dispose parfois de touches en double exemplaire. C’est le cas de [Shift], (*], (1, (+41, [-]. (1.10. 0). [Enter] et des chiffres. Dans le cas général, vous pouvez appuyer sur la touche qui vous plait, 'OMIKRON n’en tient pas compte. Il existe pourtant des particularités, nous les aborderons avec l’ordre INKEYS. Les abréviations retenues pour les touches du clavier sont: = [Control] = [CTRL] @ [ALTERNATE] = [ALT] = [Shift] = [Sf] L'éditeur exige parfois des combinaisons de touches. Les combinaisons de touches sont indiquées par = ([Shift]-[CTRL], ou le signe ‘—' signifie: Appuyez sur "une des touches [Shift], maintenez cette touche enfoncdée, puis appuyez sur [CTRL] = (F1][F2]. ou l'absence de caractére de liaison indique qu'il faut successivement taper [F1] puis [F2] SYNTAXE A chaque instruction correspond une ou plusieurs syntaxes. Les syntaxes sont imprimées de la maniére suivante: = Les <> indiquent une entrée obligatoire. ® Les [] indiquent une entrée optionnelle = Les ... indiquent qu'on peut répeter l'entrée précédente. Page 4 Introduction @ CU KfOQ ° COMPATIBILITE AVEC M-BASIC. L'OMIKRON est l'un des meilleurs basics existant, et ce pour Plusieurs raisons. L'une de ces raison est sa compatibilité quasi- parfaite avec le MICROSOFT-BASIC, ce qui vous permet de reprendre directement la plupart des programmes écrits en Basic ‘normal’. ll existe pourtant quelques différences qu'il est bon d'avoir en téte lors du portage d'un programme. Dans ce qui suit, nous vous indiquons les fonctions concernées et les moyens de cortiger ces différences. LOG En M-BASIC, LOG(X) calcul le logarithme népérien de X. En OMIKRON, vous devez taper LN(X). MKS$, MKD$ Transforme une expression numérique en une chaine alphanumérique. Le format de représentation des nombres utilisé par rOMIKRON est sensiblement différent, car plus précis. Cette précision demande plus de mémoire. Aussi, les deux fonctions retourneront des chaines de caractéres plus longues. Le probléme n’est vraiment génant qu’avec FIELD et dans ce cas, nous vous conseillons d’augmenter un peu la taille des champs. DATA En MBASIC, ‘DATA Maison’ est équivalent a ‘DATA "Maison" ’. Pour TOMIKRON, il s'agit d'une variable numérique. Vous obtiendrez Verreur ‘CONFUSION DE TYPE’ si vous ne rajoutez pas les guillemets. RANDOMIZE N'existe pas en OMIKRON. Effacez cette commande. RND(-X) Ne donne pas la valeur initiale du générateur aléatoire, mais une valeur comprise entre 0 et -1 WIDTH N'existe pas en OMIKRON. Page 5 © CO) J KO () ° Manuel de Référence ERASE Cétte instruction efface un tableau. En OMIKRON, vous fedimensionnez avec DIM. CHAIN...ALL N'existe pas. | faut taper toutes les variables a transmettre. PRINT..USING Quelques différences. Cf PRINT CLOSE En OMIKRON, CLOSE efface les buffers d’entrées—sorties. Le GW-Basic est la version du basic la plus utilisée dans le monde. Elle fonctionne sur les compatibles PC. Comme le GW est tras proche du M-Basic, il y a peu de complications supplémentaires. Mais attention: les PC sont tout de méme différents des ATARI ST (euphémisme!). Par exemple: les PC disposent de la sur—brillance, du clignotement et d'un jeu de caractéres semi—graphiques. En monochrome, |'ATARI ST ne peut pas simuler la sur—brillance. Donc, 'OMIKRON non plus. Pour le jeu de caractéres, il est possible de faire un appel aux fonctions VDI de chargement de police. Pour le clignotement, il n'y a pas de solution générale. Page 6 Editeurs OMIKZOO. Les éditeurs de l'OMIKRON Les éditeurs ? Eh oui! L'OMIKRON dispose de deux éditeurs ! Le premier éditeur est un éditeur pleine page qui ressemble assez a celui du Commodore 64. Il est simple et efficace Pour les petits Programmes, pour calculer rapidement, pour mettre au point les Programmes. Sa vocation n'est toutefois pas d’écrire un programme de 1000 lignes, bien que cela soit tout a fait possible. Le deuxiéme éditeur est de la derniére génération. || posséde des menus déroulants et utilise au maximum la souris. Extrémement simple a utiliser, il convient parfaitament aux débutants. Sa puissance incroyable et sa vitesse époustouflante vont le faire’ adorer des professionnels. Bien que l'OMIKRON dispose de deux éditeurs, il ne contient qu'une mémoire, ce qui signifie qu'on peut passer d’un éditeur a l'autre sans rien perdre du programme que !’on vient de taper. Nous vous proposons d’aborder ces deux éditeurs sous le nom d'éditeur standard pour le premier et de super-éditeur pour le second. L’éditeur standard. Dés le chargement du basic OMIKRON, vous vous trouvez dans cet éditeur. Comme nous |'avons déja dit plus haut, cet éditeur est plutét congu pour la mise au point des programmes. Sa vitesse n’a pas 6t6 le point déterminant lors de son écriture. Venons en au fonctionnement. Positionnement du curseur Le curseur se dépliace a l'aide des quatre fléches du clavier. {CTRL]-[Clr/Home] efface |’écran. [Cir/Home] positionne le curseur en haut de I’écran. Page 7 @ 0) IKPO Q) ° Manuel de Référence Entrée d’une ligne de programme. Il faut bien distinguer le mode direct du mode programme: Le mode direct (pas de numéro de ligne) oblige 'OMIKRON a interpréter immédiatement la ligne aprés l'appui sur [Return]. C’est un mode qui permet de tester une instruction ou d’effectuer un calcul. Exemple : PRINT 990/1.186 ll est possible de repositionner le curseur sur la ligne de commande, éventuellement de la modifier et de réexécuter celle-ci simplement en appuyant sur [Return]. Il est & noter que le curseur dans ce cas ne doit pas étre obligatoirement en fin de ligne. Le mode programme (un numéro pour chaque ligne) permet de batir un programme. On rentre les lignes en séquence, puis on exécute le programme par la commande ‘RUN’. Exemple: 10 INPUT “Entrez A ”.A 20 PRINT “Le carré de A est:", A°2 RUN Listage d’un programme. Pour ce faire, tapez ‘LIST’. Le programme s'affiche a I'é6cran dans ordre croissant des numéros de lignes. Si une ligne de texte dépasse en nombre de caractéres la capacité de I’écran, le caractére ‘|’ apparait au début de la ligne suivante suivi du reste du texte. Pour interrompre le déroulement, tapez [CTRL]-[C]. Pour suspendre le déroulement, appuyez sur [CTRL]-[S]. Pour reprendre le déroulement suspendus par [CTRL]-[S], appuyez sur {CTRL]-[Q]. Aprés un [CTRL]-[C], on peut poursuivre le déroulement des lignes du programme a l'aide des fléches du clavier. Modification du texte sur I'é6cran. ll existe deux modes pour modifier un texte: = Le mode insertion (celui-ci est activé par défaut). = Le mode recouvrement. Vous pouvez passer de l'un a l'autre par la combinaison {CTRL]-[Insert]. Page 8 Edtous eMIKIOL. Le mode recouvrement Lorsque vous écrivez sur une ligne de texte, les caractéres tapés viennent remplacer les anciens. [Delete]: Le texte a partir du curseur suit celui-ci d'un cran vers la gauche et efface de ce fait le caractére qui se situait a la gauche du curseur. [Backspace]: Déplace le curseur vers la gauche en remplacant les caractéres par des espaces. [Insert]: Décale le texte a partir du curseur d'un cran vers la droite et place un espace. Le mode insertion Lorsque vous tapez un texte, celui-ci vient s'insérer dans le texte déja existant. [Delete]: Etface le caractére qui se trouve sous le curseur et déplace le texte a droite de celui—ci d'un cran vers la gauche. [Backspace]: Méme effet que [Delete] en mode recouvrement. [Insert]: Son effet reste le méme. Sauvegarde d’un programme sous I’éditeur standard. L'OMIKRON peut sauver un programme de deux maniéres: en code FIT ou en code ASCII. SAVE “NOM” Sauvegarde en code FIT. Le code FIT (Fast Interpreting Technic) est le 1ésultat du fonctionnement semi-compilé de l'OMIKRON. II S'agit d'un code directement exécutable par I'OMIKRON, directement compilable avec le compilateur. Quand vous tapez la commande SAVE “NOM”, le code FIT est employé. Tapez “SAVE” tout court oblige 'OMIKRON a sauvegarder sous le dernier nom employé. SAVE “NOM",A Sauvegarde en code ASCII. Cette possibilité permet a l'OMIKRON de pouvoir communiquer avec d'autres dialectes basic. L'ASCII est universellement répandu sur les ordinateurs. Il est a noter que VOMIKRON sera obligé de pré—compiler chaque ligne a la relecture, ce qui demande nettement plus de temps que la lecture du code FIT. Page 9 © QO ) KOO ° Manuel de Référence Chargement d’un programme sous I'éditeur standard. Le chargement s'effectue la aussi en code FIT ou en ASCII. LOAD “NOM” Le chargement s'effectue depuis le chemin par défaut. Une instruction “NEW" est effectuée par l'OMIKRON puis le programme est chargé. Le nom du programme chargé devient le nom par défaut. Exemples: LOAD “MAG” : REM charge [Link] depuis le chemin courant. LOAD "C\OMIKRON\DIVERS\[Link]”: REM charge le programme [Link] depuis le chemin indiqué. “LOAD” reconnait automatiquement les programmes en ASCIl. Mais attention : les programmes en ASCII doivent impérativement comporter des numéros de lignes, faute de quoi le chargement sera stoppé. MERGE “NOM” MERGE ajoute au programme déja en mémoire le programme en ASCIl indiqué. Exemples: MERGE “[Link]” MERGE “D:\[Link]” Si votre programme de base utilise des numéros de ligne, il faut impérativement que les numéros de ligne du bloc mergé soient différents des numéros de ligne du programme de base. Exemple, vous avez le programme suivant en mémoire : 10 PRINT “On y vas” 20 Stat(50) 30 FOR T=1 TO 50: PRINT A\(T):NEXT T Vous voulez charger le programme en ASCII suivant, qui vous sert & chaque fois que vous avez des statistiques a calculer : 1 REM *****#* STATISTIQUE 2 DIM A\(100) 1000 DEF PROC Stat(N) 1010 LOCAL T 1020 FOR T=1 TO N:A\(T)-RND(50000): NEXT T 1030 RETURN Page 10 Editeur eMIK(OO. Aprés le MERGE, vous obtiendrez le programme suivant : 1 REM ******** STATISTIQUE 2 DIM Al\(100) 10 PRINT “On y vas” 20 Stat(50) 30 FOR T=1 TO 50 : PRINT A\(T) : NEXT T 1000 DEF PROC Stat(N) 1010 LOCAL T 1020 FOR T=1 TO N:A\(T)=RND(50000):NEXT T 1030 RETURN Les touches de fonctions ll est possible de reprogrammer celles-ci de la fagon suivante: Exemple : Key 5 = “RUN” [Return] A partir de maintenant, si vous appuyez sur la touche de fonction F5, le mot ‘'RUN' sera automatiquement tapé. Si vous voulez que Vinstruction ‘RUN’ soit automatiquement exécutée, il vous faut modifier la ligne de la fagon suivante : Key 5 = “RUN"+CHR$(13) [Return] Quitter L’OMIKRON. Pour quitter l'OMIKRON, il suffit de taper ‘SYSTEM’ ou [ALT]-[S], puis [RETURN] et enfin de répondre O (OUI), J (JA) ou Y (YES). L'OMIKRON est trilingue! Les instructions VT-52. Reportez—vous aux annexes et au manuel de référence pour plus de détails. Page 11 @OIKfOO). Manuel de Retérence LE SUPER-EDITEUR Passons maintenant au plus intéressant: Super—éditeur. Il a été 6crit par Arthur SODLER pour répondre aux critiques qui avaient été formulées & propos de I'éditeur de la version 2xx. On lui reprochait d'un peu trop ressembler aux vieux éditeurs des huit bits, de ne pas utiliser la souris, d’6tre trop lent et de ne pas comprendre les menus. Eh bien! tout cela est arrangé ! = Utilisation de la souris pour définir les blocs, d'une maniére trés souple et rapide. = Améilioration de la vitesse, jusqu’a trois fois plus rapide (en particulier pour l'affichage du programme a I’écran). ® Utilisation des menus pour l’appel des commandes. Ce qui ne l'empéche pas de comprendre les touches de fonctions. Comment entrer dans le super—éditeur ? Tapez ‘EDIT’ ou [HELP] depuis I’éditeur normal. Vous y étes! Les menus du Super-éditeur regroupent les fonctions par centre d'intéréts communs. Nous allons explorer chaque menu du haut vers le bas. Nous avons conservé |'anglais dans les menus, car de nombreuses options sont aussi des instructions du basic, ce qui interdit leur modification. Mais nous traduirons chaque option dans ce manuel, n'ayez crainte. Pour se servir des menus, il suffit de placer la souris sur le titre et le contenu du menu s’affiche. Choisissez l’option que vous désirez, puis cliquez sur le bouton gauche. Vous pouvez cliquer sur le titre du menu. Dans ce cas, l'option la Plus proche en dessous du titre sera sélectionnée. Voici comment se présentent sur la premidére ligne les titres des menus. Page 12 Edtours eMIK(OQ. TITRE: FILE (FICHIER) ae Caos SAVE *.* (SAUVER) Sauvegarde du programme qui se trouve en mémoire. Cette option affiche le sélecteur d’objet, dés lors |'utilisation de ce sélecteur est standard mis a part les détails suivants : a Le nom par défaut est celui qui se trouve en haut a droite dans le menu de |'éditeur. a Si ala place du nom vous tapez “A:” ou “C:", vous obtiendrez le répertoire du lecteur A ou C. De plus, l'OMIKRON réaffichera le nom par défaut. Il vous suffira donc de cliquer “CONFIRMER”. Q D’autre part, il est possible de conserver le chemin actuel comme chemin par défaut. II suffit pour cela de confirmer sans qu'il y ait de nom dans Ia partie sélection. Exemple: Aprés avoir choisi option ‘SAVE’, vous effacez le nom par défaut (avec plusieurs [Backspace] ou avec [ESC]) et tapez ‘C:’, puis [Enter]. Le sélecteur d’objet affiche le répertoire du lecteur C et le nom du fichier par défaut est replacé. Effacez ce nom, puis cliquez ‘Confirmer ou tapez [Enter]. Le nouveau chemin par défaut sera maintenant ‘C:'. Vérifiez-le en redemandant la sauvegarde. L'instruction SAVE *.* est aussi accessible au Clavier par [F8]. LOAD *.* (CHARGER) Charge un programme qui se trouve sur disque dans la mémoire et efface celui qui pourrait déja s’y trouver. La aussi le sélecteur d’objet est utilisé et vous y retrouverez les m&émes astuces. Pour obtenir LOAD *.* au clavier, utilisez [Sf]-[F8]. Page 13 @eDIKIOO. Manuel de Rétrence SAVE BLOCK *.* (SAUVER en ASCIil) Sauve un bloc en ASCII. Bien entendu, un bloc doit absolument tre défini pour utiliser SAVE BLOCK. La sauvegarde est plus lente qu'une sauvegarde normale, car 'OMIKRON est obligé de décompiler le programme. Comme toutes les fonctions des menus faisant appel au sélecteur de d’objet, SAVE BLOCK utilise le changement de lecteur et la définition de chemin d'accés automatique. Autre moyen d’accéder a cette commande : [F7][F8]. LOAD BLOCK *.* (CHARGER en ASCIl) Charge un bloc en mémoire. Contrairement a LOAD, LOAD BLOCK n’efface pas le programme existant. LOAD BLOCK intercale le bloc dans le programme exactement a l'endroit ou se trouve le curseur. Le chargement est nettement plus lent, car |'OMIKRON doit précompilé chaque ligne avant de pouvoir charger la suivante. Equivalent clavier : [F7)[Sf]-[F8] DIRECTORY (Répertoire) Afficher & I'écran le répertoire du lecteur pris par défaut. Aprés le choix de DIRECTORY, il vous est demandé si le chemin par défaut vous convient (il s’affiche ‘*.*"). Confirmez par [Enter] ou modifiez le chemin ou le type de fichier puis tapez [Enter]. Les fichiers répondant aux critéres du chemin d'accés sont affichés & I'écran sur deux colonnes. N'importe quelle touche vous permet de quitter cet écran ou de passer a la page suivante du répertoire. NEW (NOUVEAU PROGRAMME) Efface le programme. Confirmez par [RETURN]. Attention, une fois que vous avez autorisé I'M a effacer le programme, il n'y a plus aucun moyen de le retrouver, sauf si vous |'avez sauvé auparavant. QUIT (*C) (QUITTER) Quitter le super—éditeur. Retour a |'éditour standard. Pour quitter complétement I'OMIKRON, il faut ensuite tapez ‘SYSTEM’ [Return] Puis confirmer par [O}. Vous pouvez obtenir cette commande par [CTRL]-[C]. Page 14 Eatours ©OMUKCON. TITRE: FIND (CHERCHER) FIND a caret Cima a aera) LIST TOKEN anna aaa) Omrmascuad fates tel Le super—éditeur ne tient pas compte des majuscules/minuscules lors de la recherche. Par contre, les majuscules des chaines de remplacement sont prises en compte. FIND NEXT (CHERCHER SUIVANT) Cherche la prochaine occurrence de la chaine recherchée. Quand super-éditeur ne trouve plus de chaine équivalente, il émet un ‘ping’ et laisse le curseur en place. FIND (CHERCHER) Cherche une chaine de caractéres. Apras avoir choisi cette option, super—é6diteur affiche sur l'avant-derniére ligne de I’écran le message “SEARCH FOR:’. Sur la demiére ligne, vous devez indiquer la chaine a techercher. Un peu comme pour le sélecteur de fichiers, l'OMIKRON conserve l'ancienne chaine recherchée. De cette maniére, vous pouvez la corriger ou la conserver telle quelle. Pour supprimer Vancienne chaine, tapez [ESC]. Aprés avoir choisi la chaine, tapez [Enter]. Le super—éditeur commence la recherche a partir de la position du curseur. Si vous voulez entreprendre la recherche depuis le début du programme, placez—vous sur la premiére ligne en tapant [Clr/Home]. Si il trouve la chaine demandée, il s'arréte sur la premiére lettre de celle-ci. Bien sir, I'écran est déplacé si besoin est. Dans le cas ou la chaine n’existe pas, super-éditeur ne bouge pas le curseur et émet un ‘ping’. Equivalent clavier: [F2][F2]. LIST (LISTER) Lister toutes les occurences d'une chaine. Super—éditeur affiche sur un écran spécial les lignes contenant la chaine recherchée. Page 15 eMIKIOO. Manuel de Rétérence Chaque occurrence apparait en inverse vidéo. Pour interrompre le listage, tapez [ALT] ou [Undo]. Pour voir les lignes suivantes, tapez n’'importe quelle touche. Si vous trouvez |a ligne qui vous intéresse, cliquez—la et super-éditeur se place automatiquement dessus a _ lintérieur du programme. Equivalent clavier : [F2][F3] REPLACE ALL (TOUT REMPLACER) Remplacer toutes les occurrences par une chaine donnée. Aprés avoir choisi ‘REPLACE ALL’, super—éditeur affiche ‘SEARCH FOR:’ sur lavant—deriére ligne et vous demande d'entrer la chaine recherchée sur la derniére ligne. Tapez [Enter], puis super—éditeur affiche sur Vavant-derniére ligne ‘REPLACE ALL BY:’. Effacez ou modifiez la chaine, puis tapez [Enter]. Super-éditeur va modifier toutes les chaines correspondantes en conséquence. Equivalent clavier : (F3][F3] QUERY REPLACE (REMPLACER A LA DEMANDE) Remplacer a la demande une chaine par une autre. Fonctionne exactement comme ‘REPLACE ALL’ en ce qui concerne |'entrée des chaines. Lors d'un remplacement, super—éditeur vous demande de confirmer le remplacement par [Y] (ou [J] ou [O]), de passer a occurrence suivante par [N] ou d'abandonner la recherche par [ESC] ou [UNDO]. Equivalent clavier : [F3](F2] FIND TOKEN (CHERCHER MOTS-CLES) Chercher les mots-clés. Les mots-clés sont les variables, les procédures, les fonctions utilisateurs et les instructions de POMIKRON. La recherche des mots clés est largement plus rapide que pour les chaines normales, car l'OMIKRON tient a jour une liste. Pour le reste, FIND TOKEN fonctionne comme ‘FIND’. Equivalent clavier : [F2] [Shift]—-(F2] LIST TOKEN (LISTER MOTS-CLES) Lister les mots-clés sur un écran spécial. ‘LIST TOKEN’ s’emploie comme ‘LIST’. Page 16 _ OMIKOO. FIND DEF (CHERCHER DEFINITION) ‘FIND DEF’ cherche la définition d'une procédure ou d'une fonction. Fonctionne comme un ‘LIST’ standard. Equivalent clavier : [F1] Editeurs _ RENAME TOKEN (RENOMMER MOTS-CLES) Renomme les mots-clés. C’est une opération ultra-rapide qui échange le nom d'un mot-clé avec son nouveau nom. En fait, ‘RENAME TOKEN’ ne touche que quelques octets, ce qui explique sa vitesse. LIST TO PRINTER (LISTER SUR IMPRIMANTE) Envoie sur l'imprimante la liste demandée lors d'une opération avec fune des fonctions de ce menu. Une fois cette option choisie, le super—éditeur vous demande combien de caractéres votre imprimante accepte-t-elle par ligne. Le nombre le plus courant est 80, C’est pourquoi le super-éditeur l'adopte par défaut. Tapez [Enter] et impression commence. Si l'imprimante n'est pas préte, super—éditeur attend une vingtaine de secondes, puis annule l’impression. Par pitié, ne tentez pas de RESET!!! Normalement, !'OMIKRON continuera dessayer d'imprimer, mais si vous le faites trop souvent, le systeme reboote! FIND ERROR (CHERCHER ERREUR) Chercher la premiére erreur de syntaxe en partant du début du programme. Super—éditeur positionne le curseur juste derriére l’erreur. Par ce procédé, il vous désigne l'emplacement de l'erreur dans la ligne. Si il n'y aucune erreur dans le programme, super—éditeur émet un ‘ping’. Page 17 oO eal KO Q) ° _ Manuel de Référence TITRE: BLOCK (BLOC) ERLE oa cr KILL Cae eee) aera ee eee aera! ch INSERT (INSERER) Insére le bloc actif a l'emplacement du curseur. Un bloc doit évidemment avoir été défini au préalable. Le bloc de départ n'est ni déplacé, ni annulé. Equivalent clavier : [F7][F9] MOVE (DEPLACER) Déplacer le bloc actif a ‘emplacement du curseur. Cette fonction déplace le bloc, ce qui signifie qu'il n'y a pas de copie réalisée. KILL (SUPPRIMER) Supprimer le bloc actif. A la suite du choix de cette option, vous devrez confirmer la suppression par [Enter] Equivalent clavier : [F7][SHIFT]-[F9] MARK BLOCK START (MARQUER LE DEBUT DU BLOC) Repérer le début du bloc (curseur). Equivalent clavier : [F7][F7] MARK BLOCK END (MARQUER LA FIN DU BLOC) Repérer la fin du bloc. Equivalent clavier : [F7][SHIFT]-[F7] LOAD BLOCK *.* (CHARGER LE BLOC) Charger un bloc en mémoire. ‘LOAD BLOCK’ insére |e bloc dans le programme exactement a l'endroit ou se trouve le curseur. Equivalent clavier : [F7][SHIFT]-[F8] SAVE BLOCK *.* (SAUVER LE BLOC) Sauver en ASCII un bloc. Bien entendu, le bloc doit absolument 6tre défini pour utiliser SAVE BLOCK. Equivalent clavier : [F7][F8] Page 18 Editeurs _ eNIKLON. PRINT BLOCK (IMPRIMER LE BLOC) Imprime le bloc actif. Une fois cette option choisie, le super—éditeur vous demande combien de caractéres votre imprimante accepte— t-elle par ligne. Le nombre le plus courant est 80, c'est pourquoi le super—éditeur I'adopte par défaut. Tapez [Enter], et impression commence. Si I'imprimante n’est pas préte, super—dditeur attend une vingtaine de secondes, puis annule l'impression. Par pitié, ne tentez pas de RESET!!! Normalement, 'OMIKRON continuera d’essayer d’imprimer, mais si vous le faites trop souvent, le systéme reboote! HIDE (DESACTIVER LE BLOC) Désactive le bloc actif. INSERT (INSERTION) Passage en mode insertion/recouvrement. Le mode par défaut de 'OMIKRON est le mode insertion. Ainsi, quand un caractére est entre, les caractéres de la lignes situés a droite sont décalés. En mode recouvrement, par contre, les caractéres situés a droite sont effacés par le dernier caractére entré. Equivalent clavier : [CTRLJ—[INSERT] SWITCH SCREEN (PASSER D'UNE FENETRE A L’AUTRE) Cf SPLIT SCREEN. Passage d’une fenétre a |'autre. On peut aussi passer d'une fenétre a l'autre avec la souris en cliquant sur le bouton gauche. Equivalent clavier : [SHIFT]-[F2] SPLIT SCREEN (PARTAGER L'ECRAN EN DEUX FENETRES) Partage I’6cran en deux fenétres. Par défaut, les deux fenétres ont la méme taille. Vous pouvez déplacer la barre de séparation Page 19 ODIKLO! horizontale avec la souris et choisir ainsi la taille des deux fenétres. Equivalent clavier : [SHIFT]-[F1] __ Manuel de Référence Sa eT Br Ga Risitsiccistiscissceseescecssccocsscseccessesstcorsccssratceg ‘RERERAESAESAESSE SEATS ESTAS TESTES ITT TTT TTT TTTT “aaaEaat 3333333 “aa33ztt 3-0 saetast ‘3423225 C€Lie Vertz 1/6/88 332333t NODE FILL STYLE Ob jets= LEFTS(Objets,8) FILL STYLE PRBOX 78,5, 551 PRBOX 5,5,60,161 Htext=15 | Texte(4,6,1,18,Htexz, Ob jets) ENDIF TEXT STYLE =8 TEXT HEIGHT =4 TEXT 10,HtexzZe8,“D=" CHANGE SIZE (CHANGER TAILLE DES CARACTERES) Change la taille des caractéres affichés a |'écran. Il y a deux tailles possibles, quelle que soit la résolution. Equivalent clavier : [SHIFT]— (F3] seuguressrerecersereaeeeseseerececeeererereterrrstessizetisy Hrsieseseanssssaneasrsssssteosssiaesiessiasecaesaeuig200E nant fess Geer ‘fers Hearesresesrsterererenrecereseretsusesratereesreesisetet ‘SSR SESSEES SEES EES SEEEEEISSTEESTESEIEESIERESESEFEPEIEESEES CLEAR 2228649410000 OF ERROR soTD PLantase SEP RIS SESE oregon tn Init Gen Tf Resoleee Ten Tablet HNC 909) Ber Pasta Pas "aad aoiF TE Reravind Te Travia2: SCREEN 1. LPOKE $44¢.Coran2!-Trans ert Poa Travins SCREEN 2 LPOME $44€,Escand! Tronstert Peat Page 20 Editors _ eMIK(OO. LINE NUMBERS (ACTIVER NUMEROS DE LIGNES) Active/désactive les numéros de lignes. Attention: certains programmes utilisent des GOTO/GOSUB un numéro de ligne. Dans ce cas, il ne faut pas enlever les numéros de ligne car l'OMIKRON renumérote automatiquement si vous sortez du super—éditeur. Equivalent clavier : [CTRL]-[CLR/HOME] SHOW ERROR (AFFICHER LES ERREURS) Active/désactive le signalement des erreurs. SAVE SETTING (SAUVEGARDER LES PARAMETRES) Sauvegarde les paramétres. L'OMIKRON sauvegarde sur le disque C: quand il existe ou sur le disque A: dans le cas contraire. Les paramétres concernés sont: - La taille des caractéres ; - Le multifenétrage ; - Le mode insertion/recouvrement ; — Le mode numéro de ligne ; - La recherche des erreurs ; - Les définitions de touches de I’éditeur standard ((F1], [F2] ...) - Les définitions de la souris et des touches [F4] et [F5] dans super—éditeur. TITRE: GO (ALLER) Pia NODE ead crea er aar mtd Sn aRC RCT ass rd ri SET mark SET MARK ae aee aaa Sires Ces options donnent a super-éditeur la puissance d’un traitement de texte. TO LAST MARK (ALLER SUR DERNIERE MARQUE) Positionne le curseur du super—éditeur sur la derniére marque définie. Page 21 © a 0 KO () o Manuel de Référence TO LINE (ALLER ALA LIGNE...) Positionne le curseur du super—éditeur a la ligne. De plus, il vous est possible de chercher la définition d'une procédure en tapant simplement “p” suivi de son nom. Super—éditeur se positionne alors sur la ligne contenant la définition. Equivalent clavier : [F1] LINE TO TOP (AFFICHER LA LIGNE EN HAUT) La ligne oui se trouve le curseur va étre affichée en haut de I'écran. Ceci permet de voir ce qui se situe en dessous sans pour autant perdre la ligne en cours. Equivalent clavier : [F1]—[cur up] LINE TO BOTTOM (AFFICHER LA LIGNE EN BAS) La ligne ol) se trouve le curseur va étre affichée en bas de I'écran. Ceci permet de voir ce qui se situe au dessus sans perdre la ligne pour autant. Equivalent clavier : [F1]-[cur dwn] TO MARK #1 (ALLER MARQUE 1) Va a la marque numéro 1. On ne peut se rendre qu’a une marque déja existante. TO MARK #2 (ALLER MARQUE 2) Va & la marque numéro 2. On ne peut se rendre qu’a une marque déja existante. TO MARK #3 (ALLER MARQUE 3) Va a la marque numéro 3. On ne peut se rendre qu’a une marque déja existante. TO MARK #4 (ALLER MARQUE 4) Va a la marque numéro 4. On ne peut se rendre qu’A une marque déja existante. SET MARK #1 (POSITIONNER MARQUE 1) Positionne la marque numéro 1. SET MARK #1 remplace l'ancienne marque 1 par la nouvelle marque 1 SET MARK #2 (POSITIONNER MARQUE 2) Positionne la marque numéro 2. SET MARK #2 remplace l'ancienne marque 2 par la nouvelle marque 2. Page 22 Edtous eMIKIOO. SET MARK #3 (POSITIONNER MARQUE 3) Positionne la marque numéro 3. SET MARK #3 remplace |’ancienne marque 3 par la nouvelle marque 3. SET MARK #4 (POSITIONNER MARQUE 4) Positionne la marque numéro 4. SET MARK #4 remplace l’ancienne marque 4 par la nouvelle marque 4. FIND ERROR (CHERCHE ERREUR) Cherche la premiére erreur en partant du début du programme. Le super—éditeur positionne le curseur juste derriére l'erreur. Par ce procédé, il vous désigne |'emplacement de |’erreur dans la ligne. Si aucune erreur n’est trouvée dans le programme, le super—éditeur émet un ‘ping’ du plus bel effet. TITRE: RUN (RUN) Ca RUN RUN (RP eae) ear rns Trae eats Crean ae taser Ces options apportent énormément de confort et de simplicité a l'usage. RUN (*R) (RUN) Démarre le programme actuellement en mémoire. RUN remet a z6fo les valeurs des variables. Il vous simplifie la vie, dans la mesure ou vous ne devez pas sortir de super—éditeur puis tapez ‘RUN’, mais qu'il vous suffit de taper [CTRL]-[R]. Equivalent clavier : [CTRL]-[R] SAVE & RUN (SAUVER & RUN) Sauve le programme, puis le démarre. Tout comme ‘RUN’, cette fonction simplifie grandement les sauvegardes lors de la mise au point. Qu'y a t'il de plus énervant qu'un programme qui reset le systéme sans qu’on ait fait de sauvegarde? Et bien, cela ne vous Page 23 @ O 0 KLO Q) ° Manuel de Référence arrivera plus avec 'SAVE & RUN’. TRON & RUN (TRON & RUN) Met en route le mode TRACE et démarre le programme. COMPILE (COMPILER) Compile le programme actuellement en mémoire. C'est l'un des points forts de cette nouvelle version. Grace a elle, vous compilez directement vos programmes depuis l'interpréteur, sans avoir besoin de quitter l'OMIKRON et de le recharger ensuite. En fait, sion ajoute la_ possibilité d’exécuter n'importe quel programme depuis Vinterpréteur, le basic OMIKRON devient un environnement intégré de développement. SAVE & COMPILE (SAUVER & COMPILER) Sauve le programme, puis le compile. La sauvegarde s’effectue en code FIT. Cette option permet de ne cliquer qu’une seule fois au lieu - de deux, ce qui est tout a fait pratique. RUN *.BAS (RUN *.BAS) Exécute un programme se trouvant sur disque. Attention! cela 6quivaut & charger un nouveau programme, donc a effacer le programme actuellement en mémoire. Si le programme actuellement n mémoire a une certaine valeur pour vous et que vous ne l’avez pas encore sauvé, faites-le avant de lancer le nouveau programme par un ‘RUN *.BAS’. EXEC *.PRG (EXECUTER *.PRG) Exécute un programme se trouvant sur le disque. Dés que le programme ast terminé, on retourne dans le super—édditeur. Grace a ‘EXEC *.PRG’, ’OMIKRON autorise l’'accds a la grande majorité des Programmes tournant sur ATARI ST. Vous pouvez sans probléme exécuter un assembleur, un traitement de texte ou un tableur, puis revenir & votre OMIKRON. Une restriction: il faut que le programme que vous appelez se conforme aux normes édictées par ATARI en ce qui concerne GEM. Ce n'est pas toujours le cas! Page 24 Eatours eOIKIOO. ACCESSORY (ACCESSOIRES) Permet d’afficher un mini-menu, dans lequel se trouvent les accessoires. De la, tous les accessoires s’exécutent sans difficulté. Quit accessor: AUTRES POSSIBILITES L'OMIKRON utilise aussi la souris. Dans quelle mesure? C’est ce que nous allons voir maintenant. La définition d'un bloc a la souris! Voici le principal attrait d’une souris dans un éditeur. Super—éditeur permet de définir un bloc en cliquant le bouton gauche de la souris et en le maintenant enfoncé jusqu’a la fin du bloc. Super—éditeur indique le bloc en inverse vidéo. ll est possible de déterminer un bloc de moins d'une ligne. “§SS333328933 USESSESS ER STSS AERTS RESTS Eee TTTeEE SS CLEAR GEPEISER 0088 ON ERROR GOTO PLdhtage ON HELP GOSUB Sort ir_Ou_Progranme Grace a la souris, on peut déplacer le curseur absolument ou Ion veut sur |’écran du super-éditeur. II suffit simplement de déplacer la souris et de cliquer sur le bouton gauche. Le curseur est alors déplacé. Vous pouvez régler la vitesse de défilement du texte a I’écran. II suffit de sélectionner l'accessoire panneau de contréle et de régler la vitesse des touches. Essayez la vitesse maximale et attachez votre ceinturel!! Page 25 eo {) KO () ° Manuel de Référence LE RESET IMPORTANT: Le bouton RESET, situé derriére votre ATARI, permet normalement de booter la machine, c'est a dire de la remettre a zéro. Le basic OMIKRON redirige le RESET. Au lieu de démarrer la machine, le RESET retourne dans le super—éditeur. Ainsi, en cas d'erreur grave, vous ne perdez pas votre programme, puisque vous étes en mesure de stopper et de sauver le programme. Il s'agit d'un point extrémement important pour la mise au point de vos programmes et d'une fonctionnalité unique, qu’aucun autre langage ne supporte. LES ERREURS L'OMIKRON. Basic est un véritable interpréteur. Ce qui signifie qu’il est possible d’exécuter et de sauver un programme méme si des erreurs de syntaxe y sont trouvées. Il s'agit la encore d’une fonctionnalité trés importante pour la mise au point, car cela signifie que vous pouvez sortir d'une ligne comportant une erreur et que vous pouvez quitter le super-éditeur n'importe quand en y laissant des erreurs. De plus, cette possibilité facilite le portage de programmes en basic venant d'autres machines, puisque vous n’étes pas obligé de Corriger toutes les erreurs avant de pouvoir essayer le programme transféré. Simplement, l'exécution sera interrompue das que la ligne comportant l’erreur sera rencontrée. Page 26 Editeurs eMIKIOO. ll existe enfin plusieurs fonctions uniquement accessibles depuis le clavier. Positionnement du curseur : (Shift]-[CTRL]-[droit] (Shift]-[CTRL]-[gauche] (CTRL]-[droit] {CTRL]-[gauche] [CTRL]-[haut] ou (Shift]-[F 10] [CTRL]-[bas] ou [F10] [TAB] (Shift]-[CTRL]-[haut] (Shift]-[CTRL]-[bas] [Clr/Home] Fonctions spéciales : Le curseur se positionne en fin de ligne. Le curseur se positionne en début de ligne. Le curseur se déplace vers la droite de 3 caractéres. Passage sur la ligne suivante en cas de dépassement de la fin de la ligne. Le curseur se déplace vers la gauche de 3 caractéres. Passage sur la ligne précédente en cas de dépassement du début de la ligne. Le super—éditeur affiche la page précédente. Le super—éditeur affiche la page suivante. Passage a la tabulation suivante. Début du programme Fin du programme. Fin/début du programme. [Undo] Annulation de toutes les opérations effectuées depuis le passage sur une autre ligne (par [Enter] ou par l'une des fléches). [CTRL]-[Delete] Suppression des caractéres de la ligne situées & droite du curseur. Ces caractéres peuvent 6tre rappelés en cas de fausses manipulation par [Undo], mais uniquement si vous n’avez pas confirmé la ligne. Page 27 @ ) IKGO Q) 2 Manuel de Référence [F6] [Shift]-[F7] Multiplication d'un caractére. Pour répéter un méme caractére 50 fois, il existe une fonctions tres pratique. Tapez le caractére désiré, puis [F6]. Super—éditeur. vous demande le nombre de caractéres désirés, entrez-le puis tapez [Enter]. Les caractéres s'afficheront a partir da la position du curseur. Redéfinition des touches et du bouton droit de la souris. Cette fonction rendra service a ceux qui rédigent des programmes répétitifs. On peut définir cing touches, a savoir [F4], [FS], [Shift]-[F4], [Shift]-[F§] et le bouton droit de la souris. Comment procéder: Tapez: [Shift]-[F7] [la touche a redéfinir] La définition ... [La touche @ redéfinir]. Les possibilités de tedéfiniton sont innombrables, mais il faut s’en tenir aux touches (on ne peut pas se servir de la souris pour appeler les options des menus, ni définir des blocs...) Les raccourcis clavier : L'OMIKRON comprend les raccourcis clavier du type [ALT]-[X] pour MOUSEX. En employant ces raccourcis, vous gagnerez beaucoup de temps sur |’écriture des programmes. Voici la liste: (ALT]-[A] {ALT]-[8] {ALT]-[C] {ALT]-[D] [ALT]-[E] [ALT] -[F] {ALT]-[G] (ALT]-[H] (ALT]-[1) (ALT]-[K] (ALT]-[L] (ALT]-[M] ASC( [ALT]-[N] NEXT BLOAD {ALT]-[0] OPEN CONT [ALT]-[P] PRINT DATA [ALT]-[R] RETURN ELSE [ALT]-[S] SYSTEM FOR {ALT]-[T] THEN GOTO [ALT]-[U] USING HCOPY [ALT]-[V] VARPTR INPUT (ALT]-[W]_ WHILE KEY [ALT]-[X]_ MOUSEX PRINT [ALT]-[Y] MOUSEY MID$( Page 28 Edtous eMIKGOO. Nous allons terminer par un récapitulatif des commandes au clavier. Chaque commande a été expliquée en détail, c'est pourquoi vous ne trouverez qu'un bref résumé. ‘EDIT’ ou [Help] Entrer dans le super—éditeur. (F1] GO Aller a la . [Fi] GO <+n> Aller n lignes plus loin. [Fi] <-n> GO <-n> Aller n lignes moins loin. {F1] [haut] GO [haut] Ligne actuelle en haut de |’écran. {F1] [bas] GO [bas] Ligne actuelle en bas de |’écran. (Shift]-[F1] SPLITSCREEN Multi-fenétrage. (F2) [F2] FIND Chercher une chaine. (Shift]-[F2] SWITCH SCREEN Passage sur l'autre fenétre. (F3] (F2] QUERY REPLACE Remplacer une chaine @ la demande. (F2] [F3] LST Lister occurences d’une chaine. (F3] [F3] REPLACE ALL — Remplacer toutes les chaines. (F2] (Shift]-[F3] FIND TOKEN Chercher un mot-clé. {F3] (Shift]-[F3] LIST TOKEN Lister occurences d’un mot-clé. (Shift]-[F3] CHANGE SIZE _— Changer taille des caractéres. (F4) Touche de fonction tedéfinissable. {Shift]-(F4] Touche de fonction tedéfinissable. (F5] Touche de fonction tedéfinissable. (Shift]-[F5] Touche de fonction tedéfinissable. (F6] REPEAT Répétition du dernier caractére. {Shift]-[F6] [F9] Coupure d'une ligne. (Sf]-(F6] [Sf]-[F9] Collage de deux lignes. {Shift]-[F7] Définition des touches de fonctions. (F7) (F7) MARK BLOCK START Marquer début de bloc. (F7] [Shift]-[F7] MARK BLOC END Marquer fin de bloc (F7] [F8] SAVE BLOCK *.* Sauver bloc (ASCII). (F7] [Shift]-[F8] LOAD BLOCK *.* Charger bloc (ASCII) {F7] [F9] INSERT Insérer un bloc. (F7) [Shift]-[F9] KILL Supprimer le bloc Page 29 ©MIKLOL. Manuel de Référence (F8] [Shitt]-[Fe) F9) SAVE *.* LOAD *.* [Shift]-[F9] [F10} [Shift]-[F10] [Cir/Home] [CTRL]- [Clr/Home] (CTARL]-[C] (CTRL]-[R] [ALT]-<...> [Undo] [Undo] [Tab] [CTRL]-[Insert] [CTRL]-[gauche] ou [droite) (CTRL]-[Sf]- [gauche) (CTRL]-[Sf]- {droite} [CTRL]-[Delete] [CTRL]-[up] [CTRL]-[bas] LINE NUMBERS QUIT EDIT RUN INSERT Sauver le programme. Charger un programme. Insérer une ligne. Supprimer la ligne courante. Page suivante. Page précédente. Aller début/fin de programme. Avec ou sans numéros de lignes. Quitter I’éditeur. RUN. Raccourcis clavier. Annuler la derniére commande. Annuler/remettre la derniare saisie de ligne. Aller de tabulation en tabulation. Mode insertion/recouvrement. Aller de 3 caractéres en 3. Début de ligne. Fin de ligne. Effacer la fin de la ligne. Page précédente. Page suivante. Page 30 Structure de la mémoire © a IKLO ) ° ORGANISATION DES VARIABLES Au tout début, les ordinateurs ont permis le développement de la bombe atomique américaine. Ensuite, les scientifiques s'en servirent pour calculer les trajectoires des fusées Apollo (la lune!!!). Le calcul, voilé un domaine ou |'OMIKRON excelle. Sa précision et sa rapidité, son respect des standards au niveau des formats numériques (normes IEEE) font de lui I'allié naturel des mathématiciens et physiciens. Pour répondre a tous les besoins, l(OMIKRON dispose de plusieurs types de variables: Flag (Booléen), Entier et virgule flottante (réel). Voici une présentation rapide des types’ de variables de l'OMIKRON: [Type de variable Suffixe Domaine d'utilisation |Fag (Booléen) KF Oou-1 [Octet %B 0.8 255 jEntier court (16 bits) AW 0ou% | -32768 a 32767 Entier long (32 bits) %L ou rien | -2147483658 & 2147483657 Réel simple (6 octets) ! 4-5, 11 E4931 (9 chiffres significatifs) Réel double (10 octets) # 4/-5,11 E+/-4931 (19 chiffres significatifs) ATTENTION : Les variables Flag et Octet ne sont utilisables que sous la forme de tableaux. Utilisation des variables avec les suffixes : Prim%F(N)=0 : REM l’élément N du tableau Prim(booléens) = 0. Al!=3.5 : REM la variable A (réel simple) recevra la valeur 3,5. A®=1.3 ; REM A (1éel double) recevra la valeur 1,3 (réel simple). Page 31 eMIKOO. Manvel de Rétéronce Malheureusement, les suffixes rendent la lecture des programmes plus compliquée. Aussi, OMIKRON permet de définir un ou plusieurs groupes de variables comme appartenant a un type déterminé. Voici les commandes 8 utiliser: DEFINT Entier court DEFINTL Enter long DEFSNG Réel simple DEFDBL Réel double DEFSTR Chaine de caractéres Exemples: Q DEFDBL “A”: Définit toutes les variables dont I'initiale est A comme des réels doubles. 0 DEFINT “I,J,Q”: Toutes les variables commengant par |, J, Q sont des entiers courts. Q DEFSNG “A-Z”: Définit toutes les variables comme des réels simples. a DEFSTR “G, K-O”: Toutes les variables ayant pour initiales G, K, L, M, N et O sont des chaines de caractéres. Bien entendu, DEFXXX n’affecte que les variables qui n'ont aucun suffixe: Pas de #,!, %, %L, %W, %B, %F ou de $. Une variable A! reste réel simple, méme aprés DEFDBL “A”, alors que la variable Apple sera considérée comme un réel double. IMPORTANT: La commande DEFXXX doit toujours 6tre entrée au tout début du programme, avant que vous n’ayez tapé quoi que ce soit. Il ne suffit pas de taper votre programme, puis ensuite d’ajouter un DEFXXX en ligne 1. Cela ne marche pas. Toutes les variables sans suffixes testeront des entiers longs (qui est le type de variable par défaut). Mais ce n’est pas un désastre si vous avez oublié de mettre votre DEFXXX au début. Page 32 Structure de la mémoire @ QO KO Oe Dans ce cas de figure : 2 Terminez I'écriture de votre programme Q Insérez DEFXXX sur la premiére ligne Q Sauvegardez le programme avec SAVE “Nom”,A Q Rechargez-le avec LOAD BLOCK. Le DEFXXX fonctionnera alors a la perfection. Une autre méthode: = Sauvez le programme en ASCII (SAVE,A) = Effacez—le de la mémoire (NEW) = Entrez sur la premiére ligne : DEFSNG “A-Z” = Rechargez le programme du disque avec MERGE Lors du portage de programmes en provenance d'autres dialectes basic, n’oubliez jamais de mettre un 'DEFSNG “A-Z"" sur la premiére ligne. En effet, la grande majorité des basics considérent les réels simples comme le type de variable par défaut. Or, les programmes en basic font largement appel aux nombres réels, notamment avec les fonctions mathématiques. Nous emploierons la notation suivante, dans ce paragraphe uniquement, afin d’améliorer Ia lisibilité: A=SIN(X) doit se comprendie: A!=SIN(X!) L'OMIKRON est capable de calculer en simple ou en double précision. Toutes les fonctions ont la possibilité de travailler en double précision, au détriment du temps d'exécution. Le fait de disposer de deux précisions constitue une certaine incompatibilité, dans la mesure ou les interpréteurs basic ne comprennent en général qu'un seul type de variable réelle. Mais au fait, quelles sont les différences entre simple et double précision ? Les deux formats acceptent les mémes limites en ce qui concerne 'e nombre maximum et le nombre minimum, a savoir —5,11E-4931 comme minimum et +5.11£+4931 comme maximum. Ces limites sont tes largement suffisantes pour n'importe quel usage. Pour donner un sepére, les scientifiques estiment qu'il y a moins de 10E100 atomes dans tout l'univers. Page 33 @ ) J KO Q) ° Manuel de Référence La simple précision dispose de 9 chiffres significatifs, la double précision de 19 chiffres significatifs. Mais il s’agit d'un minimum et, bien souvent, I'OMIKRON dispose de 10 et 20 chiffres significatifs. Les deux formats employés par l'OMIKRON n'ont pas été choisi au hasard: ils correspondent aux normes IEEE, ce qui assure la compatibilité avec les co-processeurs arithmétiques (le 68881 de Motorola, le 80287 d’INTEL...) et avec des langages comme TURBO PASCAL (au niveau du format des nombres, s’entend). Si les réels (ou virgules flottantes) sont si pratiques, il existe tout de méme certains inconvénients a leur utilisation (rien n’est parfait). La méthode de calcul des nombres réels implique des erreurs d'arrondis, quelque soit la précision utilisée. Les erreurs d'arrondis sont inhérentes a la méthode et il faut bien s'en accomoder. Expliquons pourquoi les erreurs d'arrondis surviennent: Le nombre de chiffres aprés la virgule est obligatoirement fini. Mais les nombres exprimés ne sont pas, eux, toujours finis. Prenons 1/3 : 1/3=0.3333333333333333333333 etc... Pour stocker 1/3 en mémoire, vous pouvez employer autant de décimales que vous voulez, il est impossible d'obtenir exactement un tiors. LOMIKRON effectue l'approximation la plus correcte possible, mais il s'agit d'une approximation. De plus, les nombres sont stockés en mémoire sous forme binaire, ce qui signifie que certains nombres qui ne nous posent aucun probléme présentent de grandes difficultés pour I'OMIKRON. Essayez ceci sur votre ordinateur: ? 10000 - 10000.1 Vous serez surpris du résultat. Entre 10000 et 0.1 I’écart est bien plus important en binaire qu’en décimal. Représentez—vous 1/10 en binaire: cela ne tombe pas juste, il faut aller chercher 1/16+1/ 3241/64... Afin de limiter au minimum les erreurs d’arrondis, il vaut mieux éviter de soustraire deux grands nombres tras proches. Page 34 Structure de la mémoire © O J KLO QO) ° ORGANISATION DE LA MEMOIRE Nous allons aborder ici une des parties les plus complexes d'un interpréteur Basic, a savoir la gestion de la mémoire. Nous nous limiterons a l'étude d'une fonction, FRE, mais vous trouverez d'autres renseignements dans le manuel de programmation. FRE Syntaxe : A=FRE() Syniaxe « AsFRE() Syntaxe « A=FRE(Lecteur’) FRE(0) permet de connaitre la place disponible en mémoire. FRE retourne toujours un nombre entier et la taille est indiquée en octets. La premiére syntaxe correspond au FRE standard, que l'on trouve sur tous les basics. Exemple: ? FRE(0) La seconde syntaxe donne le nombre d’octets disponibles sur la chaine spécifiée. Exemple: ? FRE(A$) Enfin, FRE(‘Lecteur") retourne le nombre d'octets disponibles sur le lecteur spécifié. Exemple: PRINT FRE(“A:”) La seconde syntaxe effectue un GARBAGE COLLECTION avant d'afficher le nombre d’octets libres. Qu’est-ce qu'un GARBAGE COLLECTION ? Encore une fois, il faut bien comprendre que la gestion de la mémoire est l'une des fonctions les plus complexes d'un interpréteur basic. De la réussite de cette gestion dépend la qualité du basic. Page 35 O IKLO Q ° Manuel de Référence Voici pourquoi la gestion de la mémoire est si compliquée: A$="GOOD” L'OMIKRON place la chaine “GOOD” sur l'adresse la plus basse possible pouvant ta contenir. || doit donc disposer d’une plage de mémoire libre d’un seul tenant. De cette facon, il prend le moins de mémoire possible. Voici ce qu'on trouve en mémoire: ”"GOODO...” (le z6ro indique un octet nul, dont la valeur est 0). B$-”"MORNING” Voici ce qu'on trouve en mémoire : ”GOODOMORNINGO...” Si nous entrons: AS=AS+BS Que doit faire le basic ? Il y a deux solutions: “MORNINGOGOODMORNINGO. |___B$__|__ A$=(@xA$+B$)__| "“GOODOMORNINGOGOODMORNINGO...” |_exAS_|___BS_|_ AS=(0xA$+B8)_| Bien sir, la premiére méthode utilise au mieux la mémoire. Mais il faut recopier entigrement en mémoire la chaine B$. Dans la réalité, il faut déplacer plusieurs, voire des centaines de chaines. C'est rédhibitoire au niveau du temps d’exécution!!! Pour contourner le probléme, on est obligé d'utiliser la deuxiéme méthode. Cette fois, tout va bien, l'interpréteur est extrémement rapide. Par contre, il reste au début de la mémoire une partie de la chaine A$, qui est maintenant inutile. Et pratiquement toutes les opérations portant sur des chaines de caractéres produisent ce genre de ‘déchets’. A moins de disposer d'une mémoire infinie, il faut bien un jour la nettoyer pour récupérer la mémoire ainsi encombrée. Page 36 Structure de la mémoire © on KO 0) ° Quand Ie basic OMIKRON se rend compte qu'il n’a plus de place pour travailler, il effectue de lui-m&me un GARBAGE COLLECTION. Le GARBAGE COLLECTION peut parfois restituer plusieurs kilo-octets de mémoire. Tapez l'exemple suivant : B="azert” FOR T=1 TO 1000 FOR U=1 TO 100 AS=A$+BS NEXT U PRINT “Avant CARBACE: ”; FRE(0),”Aprés GARBACE: ”; FRE(“”) NEXT T Comme vous pouvez le voir, le GARBAGE peut &tre bien utile! En OMIKRON, un GARBAGE prend entre <1/200 4me de seconde et 5/200 @me de seconde. Pour apprécier a sa juste valeur cette performance, il faut savoir qu'un GARBAGE peut durer plusieurs secondes sur un micro—ordinateur comme le commodore 64. Page 37 © O l] KO Q) ° Manuel de Référence Conversions de Type ONMIKLOO. LES CONVERSIONS DE TYPE Les quatre fonctions qui viennent sont assez peu rencontrées dans un programme. Mais le basic OMIKRON les utilise automatiquement dans de nombreux cas (par exemple: A=SQR(100), ot A est un entier long et oi le résultat de SQR est un réel. Le basic fait de lui-méme la conversion). CDBL Syntaxe:A*=CDBL() CDBL signifie ‘Convert to DouBLe’. CDBL convertit une expression numérique quelconque en un réel double précision. Exemple : Total* = CDBL(a!) CSNG ‘Syntaxe - Al = CSNC() CSNG signifie ‘Convert to SiNGIe’. CDBL convertit une expression numérique quelconque en un réel simple précision. Exemple : Montant! = CDBL(Total* ) cur] Syniaxe :A% = CINT() CINT signifie ‘Convert to INTeger’. CINT convertit une expression numérique quelconque en un entier 16 bits. Bien entendu, en cas de dépassement de capacité, un message d’erreur interrompt l'exécution du programme. Exemple : Copies% = CINT(Total* ) Page 39 © O NIKO Q ° Manuel de Référence CINTL Syntaxe : A = CINTL() CINTL signifie ‘Convert to INTeger Long’. CINTL convertit une expression numérique quelconque en un entier 32 bits. En cas de dépassement de capacité, un message d’erreur interrompt I’exécution du programme. Exemple : Nombre_Maxi = CINT(Total* ) Les fonctions qui suivent sont liées a la gestion du disque. Elles permettent de coder les nombres sur une chaine de taille fixe. La relecture des chaines s’effectue par les fonctions inverses, qui sont aussi expliquées ici. Syntaxe : A$ = MKD$() MKD$ transforme une expression numérique en une chaine de caractéres. Concrétement, comment fonctionne MKD$ ? Tout d’abord, il faut savoir que MKD signifie MaKe Double, passer en double. MKD$ sauve tous les nombres sous la forme d’une chaine de caractéres de 10 octets de long, soit le format des réels double précision. Pour les nombres qui ne sont pas a ce format, MKD$ opére d’abord une conversion en réel double. A quoi sert MKD$ ? On utilise conjoitement avec les fichiers. MKD$ permet d'obtenir toujours la méme taille lors de la sauvegarde sur fichier. Exemple sans MKD$ : A* = 0.14785 : B* = 25: C* = 222222202 WRITE *1, A*, B*,C* Dans cet exemple, aucun des trois nombres ne tiendra la méme place sur le fichier, ce qui peut poser des problémes a la relecture. Voyons maintenant un programme identique avec MKD$ A* = 0.14785 : B* = 25: C# = 222220222 WRITE *1, MKD§(A* ),MKD$(B* ), MKDS(C* ) Page 40 Conversions de Type _ © 0 KO Q) ° Cette fois, tous les nombres occupent la méme place sur le fichier, soit dix octets chacun. Pour relire les données, il suffit d’utiliser la fonction inverse de MKD$, CVD. Syntaxe : CVD( ) CVD convertit une chaine de caractéres en un réel double précision. La longueur de la chaine & convertir doit 6tre de 10 caractéres. Exemple : A* = CVD(MKD$ (999.111)) Syntaxe - A$ = MKS$() MKS signifie MaKe Single, passer en simple précision. Convertit l'expression numérique en une chaine de 6 caractéres. Exemple : AS = MKS$ (9.263) Syntaxe: CV5(a L'avantage de la division entiére réside dans sa vitesse par rapport a la division normale. Lorsque vous divisez des entiers, pensez a ‘\’. MOD Syniaxe. Az BMODC Retourne le reste de la division entiére de B par C. Exemples : 25 MOD 3 2 OK ? 100 MOD 30 10 OK Page 43 © OO KLO Q) ° Manuel de Référence OPERATEURS DE RELATION D’ORDRE L'OMIKRON dispose des opérateurs suivants: > Plus grand que < Moins grand que = Egal & >= Supérieur ou égal <= Inférieur ou égal <> Différent de ll est tout a fait possible d’entrer les opérateurs dans n’importe quel ordre : : <= OU =< L'OMIKRON dispose de deux autres fonctions d’ordre: Syniaxe: A=MINBC) MIN retourne la plus petite des deux expressions numériques. Exemple : B=10000 : C=5000 ? MIN(B,C) 5000 OK [ MAX Syntaxe : A=MAXBO) MAX retourne la plus grande des deux expressions numériques. Exemple : B=10000 : C=5000 : PRINT MAX(B,C) 10000 OK Page 44 Operateur @MIKION. OPERATEURS LOGIQUES L'OMIKRON peut effectuer de nombreuses opérations logiques (booléennes). LIMITES: Les opérateurs logiques travaillent sur des nombres entiers uniquement. Ce qui signifie que les réels sont convertis en entiers avant que l’opérateur logique n’intervienne. Si la conversion ne se déroule pas correctement, 'OMIKRON affiche une erreur. En ce qui concerne les problémes possibles avec les opérateurs logiques, consultez le manuel de programmation. xor| Syniaxe -A-NOTB NOT inverse tous les bits du nombre B. Exemple : NOT(0000 0100) = 111] 1011 AND AND entre B et C. Exemple : (1100) AND (1010) = 1000 @eMIKIOO. Manuel de Référence OR Syniaxe A= BOR C OR entre Bet C. EQV Syniaxe A=BEQVC EQV entre B et C. (B EQV C) = NOT(B XOR C) Page 46 ceteiun ONIKGOD. mp | Syntaxe “A =BIMPC IMP entre B et C. NAND | | NOR Syniaxe A =BNORC NOR entre B et C. (B NOR C) = NOT(B OR C) | SHR Syntaxe A= BSHRN L'ensemble des bits composants le nombre B est décalé vers la droite de N fois. Un décalage a droite correspond a une division par deux (non signée). Page 47 @ O IKLO Q) ° Manuel de Référence [ SHL Syntaxe A= 8 SHLN L'ensemble des bits composants le nombre B est décalé vers la gauche de N fois. Un décalage a gauche correspond a une multiplication par 2 (non signée). En ragie générale, vous pouvez remplacer SHL, SHR par * et \. Exemple : ? 100 SHL2 400 OK Syniaxe. A= BITC) BIT teste un bit du nombre C. Le paramétre B représente le numéro du bit & tester. Par exemple, B=0 teste le bit de poids le plus faible du nombre C. Exemple : 10 C=8 20 A=BIT(O ,C) 30 PRINTA RUN 0 OK A ccontiendra 0, car le bit 0 de C est & zéro (B=1000 en binaire). Page 48 Fonctions mathématiques © O lH KO Q ° FONCTIONS MATHEMATIQUES i INT Syntaxe A= INT) INT supprime les chiffres aprés la virguie d’un nombre réel. Elle retourne donc la partie entiére du nombre. Exemples : INT(2/3) : REM donne 0 INT(1) : REM donne 1 INT(7.8) : REM donne 7 INT(-3.7) : REM donne -4 NOTE : Les nombres négatifs sont traités de la fagon suivante: INT arrondi au nombre inférieur, ce qui signifie que : INT(-5.1) : REM donne -6 Prenez-y garde! Limites : INT n’est utile qu’'avec les nombres réels. En effet, INT d'un nombre entier est égal a ce nombre entier. Syntaxe: A= FIX(B) FIX supprime les chiffres aprés la virgule d’un nombre réel. Elle différe de INT par le fait que les nombres négatifs sont arrondis au nombre supérieur. FIX comespond au TRUNC de PASCAL. Exemple : FIX(35) : REM donne 3 FIX(-2.5) : REM donne -2 FIX(0.1) : REM donne 0 Limites: FIX n’est utile qu’avec les nombres réels. En effet, FIX d'un nombre entier est égal 4 ce nombre entier. Page 49 oO ) KLO Q) ° Manuel de Référence FRAC Syntaxe : Az FRAC) FRAC retoume la partie décimale d'un nombre réel. Exemple : FRAC(3.56) : REM donne 0.56 FRAC(1) : REM donne 0 En ce qui concerne les nombres négatifs, FRAC(X) = X-FIX(X), donc : FRAC(-3.7) : REM donne -0.7 Limites : FRAC n'est utile que pour les nombres réels, car FRAC d’un nombre entier retourne toujours la valeur 0. ABS Syntaxe: A= ABS(B) ABS retourne la valeur absolue d’un nombre. Les’ nombres positifs ne sont pas modifiés, les nombres négatifs changent de signe et deviennent positifs. Exemple : ABS(47.55) : REM donne 47.55 ABS(-333.1) : REM donne 333.1 ABS(0) : REM donne 0 Syntaxe : Az SCN(B) Détermine le signe d’un nombre. Lorsque le signe est positif SGN renvoie 1, si le nombre est négatif SGN renvoig -1. Par définition, SGN(O) est nul. Exemple : SGN(47.55) : REM donne 1 SGN(-333.1) : REM donne -1 SGN(0) : REM donne 0 Page 50 + ontionsmthématiques eMIK(OO. Syntaxe: A= RND(®) Génére un nombre semi-aléatoire. Exemple: PRINT RND(1) Retourne une valeur comprise entre 0 et 0,99999999. II s’agit du RND standard, qu’on retrouve dans tous les dialectes basic. RND(X) Avec un nombre entier différent de 1, RND retourne un nombre ontier compris entre O et X-1. RDN(6)+1 Retourne un nombre compris entre 1 et 6. RND(O) Retourne le dernier nombre aléatoire généré. Limites : RND retourne toujours des valeurs réelles. De plus, le paramétre de RND est toujours convertit en entier. DEG Syntaxe: DEC Par défaut, les ordinateurs calculent les fonctions trigonométiiques (SIN, COS...) en radians. Mais si vous effectuez vos calculs en degrés, vous allez devoir effectuer des conversions sans arrét. Aussi. DEG passe en degrés toutes les opérations trigonométriques. NOTE :: les instructions CLEAR et RUN repassent au mode par défaut, le mode RADIAN. Page 51 OMMKGOL). _ anu retrnce [ ___ | Syntaxe . RAD Aprés l'exécution de RAD, I'OMIKRON effectue tous les calculs trigonométriques en radians. Le mode radians est le mode par défaut de 'OMIKRON, a instar de la plupart des langages. Exemple : 10 RAD 20 FOR I!=0 TO PI*2 STEP PI/18 : REM Ne pas oublier les ! 30 DRAW 100+SIN(I!)*50, 100+COS(I!)*50 : REM qui indiquent 40 NEXT : REM un nombre réel. NOTE : le mode radian est forcé aprés CLEAR et RUN. Syntaxe: A=SIN(B) SIN calcule le sinus d'un angle. L'angle est normalement donné en fadian, donc SIN(PI/2)=0. Le passage en degrés se fait par DEG. Dans ce cas, SIN(180)=0. Exemple : 10 RAD 20 PRINT SIN(PI/4) NOTE: L'OMIKRON calcule toujours les fonctions trigonométriques avec le maximum de précision, c'est a dire en double précision (19 Chiffres significatifs). l1 Convertit ensuite au format numérique nécessaire (entier, réel simple ...). Cela assure la meilleure précision possible dans tous les cas. COS, TAN, COT Syntaxe . A= COS(B) Syntaxe ‘A= TAN(B) Syntaxe «A= COTIB) Ces fonctions permettent de calculer le cosinus, la tangente et la cotangente de langle B. Page 52 fonctions mathématiques © QO KLO QO ° SEC, COSEC syntaxe » A= SEC(X) syntaxe : Az COSEC(X) SEC donne la sécante et COSEC la cosécante de |'angle X. ATN ou ARCTAN syntaxe : Az ATMB) ou A = ARCTAN(B) ATN retourne l'arc tangente de !’'angle B. ARCSIN, ARCCOS, ARCCOT Syntaxe : A= ARCSIM(B) "yntaxe : A= ARCCOS(B) Syntaxe A= ARCCOT) ARCSIN est Ia fonction inverse de sinus, ARCCOS est la fonction verse de cosinus et ARCCOT la fonction inverse de cotangente. Exemple : A!=SIN(45) : BISARCSIN(A!) PRINT B! 45 OK Limites : L'argument de ARCSIN... doit 6tre parfaitement cohérent, \ ost a dire qu’il doit correspondre a un résultat possible de SINUS... SINH, COSH, TANH, COTH Syntaxe . A=SINH(B) Syntaxe : A=COSH(B) Syntaxe ‘A> TANH(B) Syntaxe : A= COTH(B) @ sont les quatre fonctions hyperboliques disponibles sur | OMIKRON. Page 53 OMIKLON. Manuol de Référence SECH, COSECH Syntaxe : A=SECH(X) Syntaxe : A = COSECH(X) SECH correspond a sécante hyperbolique et COSECH a cosécante hyperbolique. Ces fonctions sont trés peu utilisées. ARSINH, ARTANH, ARCOTH Ces fonctions correspondent aux arcs sinus, tangente et cotangente hyperboliques. un] Syataxe: A= LNB) LN calcule le logarithme népérien (de base e, e=2,718281828). Dans la plupart des autres basics, cette fonction est appelée LOG(). Exemple : ? LN(2.718281828) Limites : B doit obligatoirement étre positif et supérieur a zéro. Syntaxe. A =LOC(BC) LOG calcule le logarithme de base B du nombre C. Exemple : PRINT LOG(15,52) 1,4590733 OK Limites : B comme C doivent tre positifs et différents de 0. Page 54 Fonctions mathématiques @ aa 1] KO Q) ° Exe] Syntaxe : A-EXP(B) EXP calcule I’exponentielle de base de B Exemples : ? EXP(1500) ? EXP(1) SOR 1 Syntaxe : A=SOR@®) SQR retourne la racine cartée du nombre B. Exemple : ? SQR(65536) Limites : B doit dtre strictement supérieur a zéro. FACT Syntaxe : A=FACT) FACT donne la factorielle de B, qui doit étre un nombre entier positif. La factorielle peut s'exprimer sous la forme : a FACT(X) =1*2*3*...*X Exemple : ? FACT(1S00)/FACT(1499) NOTE : La fonction FACT n’existe que dans peu de Basics, aussi, quand vous passez de l'OMIKRON vers un autre dialecte, assurez— vous de l’existence de FACT. Page 55 oO O l) KO Q ° Manuel de Référence LES BASES NUMERIQUES L’OMIKRON comprend trois bases numériques en plus du décimal. Ces trois bases sont : ® Le binaire (base 2) = L’octal (base 8) = L’hexadécimal (base 16) Le Binaire ll s'agit de la base dans laquelle travaillent les ordinateurs. La base deux ne comprend que 2 chiffres : 0 et 1. En OMIKRON, le préfixe du binaire est %. L’Octal ll s'agit de la base qui est encore utilisé sur certains ordinateurs. II n’a pratiquement que des désavantages (format variant entre 1 et 3 chiffres pour la représentation d'un octet, entre autre). Le préfixe de Voctal est &. L’Hexadécimal C’est la base la plus répandue sur les ordinateurs. La base 16 comporte, en plus des chiffres décimaux 0 a 9, les lettres A a F correspondant a 10...15 en décimal. Le préfixe de I'hexadécimal est $. Tableau récapitulatif des préfixes : &d décimal | (par défaut) $ ou &h hexadécimal ll est entendu qu'un nombre ne change pas, quelle que soit sa représentation. Par exemple : O CHR$($40)=CHR$(64). Page 56 Fonctions mathématiques @ ) KO ) ° Pour passer d’une base a l'autre, 'OMIKRON utilise trois fonctions : BINS Syntaxe » A$S=BINS() BINS convertit une expression numérique quelconque en une chaine de caractéres binaire. Exemple : ? BINS(8) 1000 OK Syntaxe . AS=HEXS( ) HEX$ convertit une expression numérique quelconque en une chaine de caractéres hexadécimale. Exemple : ? HEX$(65535);"", HEX$(&177) FFFF 7F OK syntaxe : AS = OCT$() OCT$ convertit une expression numérique quelconque en une chaine de caractéres octale. Exemple : ? OCTS($FF) 317 OK LIMITES : Comme les opérations logiques, les conversions de bases n’acceptent une expression numérique que dans la mesure ou oll respecte les limites imposées aux entiers longs. Page 57 eMIKIOO. Manuel de Rétérence vat| Syniaxe . VAL() VAL permet de passer en décimal une chaine en octal,en binaire ou en hexadécimal. Exemples : PRINT VAL(“$FF00") 65280 OK PRINT VAL(“&765") $01 OK PRINT VAL(“%110010") 50 OK L'OMIKRON dispose aussi d’une fonction étonnante : vous pouvez convertir un nombre hexadécimal, octal ou binaire méme s'il n’est pas entier! Exemples : Q &1.4=1.5 en décimal O $1.4=1.25 en décimal Q %1.1=1.5 en décimal Page 58 haines de caractéras @ au KfO Oe LES CHAINES DE CARACTERES En utilisant les fonctions suivantes, vous étes 4 méme de manipuler los chaines de caractéres. Addition de chaines Il est possible d’additionner deux chaines ensembles. Pour additionner les chaines, on utilise le signe ‘+’. Exemple : C$-""AAA" : D§="DDD” B$=C$+D$ ? BS AAADDD OK Limites: la chaine de caractéres résultant de cette opération ne peut dépasser la limite de 32765 caractéres. Multiplication de chaines: L'OMIKRON dispose de la multiplication de chaine, une fonction que les autres basics offrent sous la forme (diminuée) de STRINGS. Syntaxe “ * Exemples : oy" #35 OK A$=""OMIKRON"” : PRINT A$*S OMIKRONOMIKRONOMIKRONOMIKRONOMIKRON NOTE : Le caractére de multiplication se trouve obligatoirement APRES la chaine a multiplier. Page 59 o na J KO () ° Manuel de Référence LEFTS Syntaxe . AS-LEFT$(, ) LEFT$ retourne la chaine de caractéres correspondant aux n premiers caractéres (deuxiéme paramétre) de la chaine de départ (premier paramétre). Exemples : A$- "ATARI” : PRINT LEFTS(AS$,3) : REM donne ATA PRINT LEFTS("DISQUE’, 4) : REM donne DISQ ERREURS COURANTES : PRINT LEFTS(“Vitesse”,1000) Impossible : la chaine de départ contient moins de 1000 caractéres. PRINT LEFTS(A,7) Impossible : Confusion de type, A est une variable numérique. PRINT LEFTS(ASBS) Impossible: B$ n’est pas une variable numérique. RIGHTS Syntaxe . AS=RICHTS(, Expression Numerique>) RIGHT$ fonctionne comme LEFT$, mais commence a partir de la droite de la chaine et non pas de la gauche. Exemples : A$="ATARI" : PRINT RIGHTS(AS,3) : REM donne ARI PRINT RIGHTS ("DISQUE”4 ) : REM donne SQUE ATTENTION : RIGHTS ne retourne pas la chaine, il la découpe. Vous ne retrouverez donc pas les caractéres en sens inverse. Page 60 Chaines de caractéres @ O IKeO Q ° ory Syntaxe:A$=MID$(, ,) Syntaxe:A$=MIDS(, ) MID$ retourne les n caractéres (troisiome paramétre) a partir dua ieme caractére (deuxieéme paramétre) de la chaine de départ (premier paramétre). Les caractéres sont comptés de la gauche vers la droite, dans le sens de la lecture. Si le troisiéme paramétre est omis, tous les caractéres a partir du a iéme seront retournés. Exemples : PRINT MIDS§(‘123456789" 3,4) 3456 OK PRINT MIDS("ZERTFINDECHAINE'” 5) FINDECHAINE OK Voici un exemple d'utilisation : 10 INPUT AS 20 FOR T=1 TO LEN(A$) 30 PRINT “Le ".T,”"ieme caractere de la chaine est: ", 40 PRINT MIDS(A$,T,1) $0 NEXT T Syntaxe “ A=LEN() LEN retourne Ia taille d'une chaine. Exemples : PRINT LEN(“1234”) 4 OK A$="" : PRINT LEN(A$) 0 OK Page 61 @ O lt KLO Q) ° Manuel de Référence VAL Syntaxe : A=VAL() On utilise souvent dans les programmes des chaines de caractéres contenant des nombres, comme par exemple “$FFEF” ou “153”. Le problame se pose quand on doit utiliser ces chaines ‘numériques’ dans des calculs. La solution existe: il faut se servir de VAL. VAL transforme une chaine de caractéres représentant un nombre en une valeur numérique. Voici quelques exemples: PRINT VAL("$FFFF") 65535 OK PRINT VAL("1234") 1234 OK Bien entendu, VAL ne fonctionne que sur les chaines valides. Une chaine valide est constituée de chiffres, éventuellement des caractéres hexadécimaux et des codes de contrdle ($, & et %). Dans le cas ot la chaine n’est pas transformable, VAL retourne la valeur 0. Regardons ensemble ce qui est possible et ce qui ne |’est pas : VAL(‘KDZD”)=0 Caractéres sans correspondance. VAL(“$FF")=255 Précédées de $, la chaine est hexadécimale et les caractéres hexa sont autorisés. VAL($FF) Erreur de syntaxe $FF n’est pas une chaine. VAL(‘'-132.25 123”)=-132.25 En effet, dés qu’un caractére non traduisible est employé, VAL arr€te la conversion. VAL(‘'1.25E6”)=1250000. ll est tout a fait possible d’employer la notation scientifique. Page 62 t minesdecaectses OL NIMGPOO. strs | oyniaxe . AS=STRS() STR§$ est la fonction inverse de VAL. Elle convertit une expression numérique quelconque en une chaine alphanumérique. Voici quelques exemples: 10 A$= STRS(PI) : AS: 20 PRINT "*"+STRS(-5) RUN * 3.141592653897932* +5 OK PRINT STRS($FFFF) : REM donne 65535 ": PRINT AS ATTENTION : 4 Afin d’aligner les nombres, les nombres positifs sont précédés d'un espace. 1 Le format employé par STR$ pour transformer les nombre en chaine est subordonné a USING. Vous obtiendrez donc des résultats différents selon le format choisi avec USING. Syntaxe: A=ASC() ASC retourne le code ASCII d'un caractére alphanumérique. Le code ASCII permet d’indiquer a l'ordinateur un caractére parmi 256 (généralement). Le code ASCII de ‘A’ est 65 ($41), le code ASCII de ( est 48 ($30)... Exemples : PRINT ASC("R") : REM donne 82 AS="AZERT" : PRINT ASC(A$) : REM donne 65 LIMITES : = Si la chaine indiquée dépasse 1 caractére de long, ASC ne retourne que le code du premier caractére. = Si la chaine ne contient aucun caractére, ASC déclenche une erreur ‘Appel illégal de fonction’ Page 63 G) ) IKCO ) ° Manuel de Référence [ CHRS Syniaxe . AS=CHRS() CHRA$ exécute l’opération inverse de ASC. Elle retourne un des 256 caractéres ASCII (numérotés de 0 a 255) que l'ATARI connait. Exemple : FOR T=32 TO 128: PRINT CHRS(T);: NEXT T LIMITES : II est interdit d'utiliser des expressions numériques dont la valeur serait inférieure a 0 ou supérieure a 255. INSTR Syntaxe « A:INSTR() Syntaxe-A=INSTR(,,) INSTR permet de rechercher une chaine (deuxiéme ou troisiéme Paramétre) dans une chaine de départ (premier ou deuxieéme Parametre), en partant éventuellement du n iéme caractére de la chaine de départ (premier paramétre). Si la chaine n'est pas trouvée, INSTR retourne O ; sinon, INSTR retourne la position dans la chaine de départ de la premiére occurence de la chaine recherchée. Exemple A$="123456" : PRINT INSTR(A$,”23") : REM donne 2 Syniaxe - A$=SPC() La fonction SPC construit une chaine constituée uniquement d'espaces. Le nombre d’espaces est fixé par le paramétre. En OMIKRON, SPC fonctionne aussi avec les chaines (la plupart des autres basics n'acceptent SPC qu'’avec PRINT). Pour conserver la compatibilité avec ces basics, nous avons conservé l'instruction SPACE$. Exemple : AS$=SPC(5)+"OMIKRON™ Page 64 Chines do carectires OMIKLOO. | SPACES Syntaxe . AS=SPACES(/) Absolument identique a SPC. | TAB Syntaxe : PRINT TAB():. TAB ne s’utilise qu'avec PRINT. Positionne le curseur sur la colonne 1 avant de continuer l'affichage. Exemple : PRINT TAB(20); "OMIKRON " REM Le texte commencera sur la vingtiéme colonne. Limites : |! n'est pas possible de dépasser 79 comme valeur pour largument, ce qui correspond a la dermiére colonne de I’écran. STRINGS Syntaxe : AS=STRINGS(, ) STRING$ fonctionne comme la multiplication de chaine, mais «’opére que sur un caractére a la fois. Exemple : A$=STRINGS(5,"*") MIRRORS Syntaxe ” AS=MIRRORS() MIRRORS est une fonction exclusive que vous ne trouverez qu’en OMIKRON. Elle inverse une chaine. Exemple : ? MIRRORS(“OMIKRON") : REM donne NORKIMO NOTE : On utilise généralement cette fonction pour retrouver le nom d'un fichier dans un chemin d’accés. Reporter-vous au manuel de programmation pour plus de détails. Page 65 © a IkKeO Q) ° Manuel de Référence UPPERS ‘Syntaxe: A$-UPPER$() UPPER$ transforme en majuscules tous les caractéres d'une chaine. Les caractéres spéciaux, les chiffres et les majuscules ne sont pas modifiés. En pratique, on utilise principalement UPPER$ pour faciliter les tests aprés la saisie, un exemple INPUT “Votre nom: ";Nom$ IF NOM$="TRAMIEL” OR NOM$="Tramiel” OR .. est remplacé avantageusement par : IF UPPERS (NOM$)="TRAMIEL"” ... LOWERS Syntaxe « AS-LOWERS() LOWERS transforme en minuscules tous les caractéres d'une chaine. Les caractéres spéciaux, les chiffres et les minuscules ne sont pas modifiés. MODE MODE permet de basculer sur le jeu de caractére national. II existe plusieurs modes possibles: francais, allemand, anglais et américain (mode par défaut). MODE a une action sur INPUT USING, UPPERS, LOWER$ et DATE$ (les caractéres accentués sont passés en majuscules automatiquement). Pour DATES, il existe trois formats possibles: JJ/MM/AA Format anglais(GB) et frangais(F) MM/JJ/AA Format américain(USA) [Link] Format allemand(D) Exemple : MODE “F” : PRINT DATE$ : MODE “D” : PRINT DATES MODE “GB” : PRINT DATES : MODE “USA” : PRINT DATES Page 66 Variables systéme © O U KLO () ° LES VARIABLES SYSTEME L'OMIKRON tient a votre disposition plusieurs variables qui vous informent du déroulement du programme ou des événements extérieurs. En général, on ne peut pas assigner de valeur a ces variables. MOUSEBUT MOUSEBUT indique l'état des boutons de la souris. Elle peut prendre quatre valeurs différentes : 0 Pas de bouton 1 Bouton gauche 2 Bouton droit 3 Boutons gauche et droit MOUSEX MOUSEX contient la position horizontale de la souris. Cette variable varie en fonction des déplacements de la souris. MOUSEY MOUSEY contient la position verticale de la souris. Cette variable varie en fonction des déplacements de Ia souris. Exemple : MOUSEON REPEAT PRINT @(MOUSEY\16, MOUSEX \ 8 ); MOUSEX; " "; MOUSEY UNTIL MOUSEBUT = 2 REM Changez le 16 et le 8 en fonction de la définition de l'écran. Vous trouverez dans le manuel de programmation une petite ‘outine qui permet de positionner la souris n'importe ov sur I'écran, en passant par MOUSEX et MOUSEY. Page 67 OMIKTOO. Manuel de Rétérence TIMER TIMER contient le temps écoulé depuis la mise en route de la machine en 200 éme de seconde. Exemple : 10 T=TIMER 20 FOR Y=1 TO 10000 30 NEXT Y 40 PRINT (TIMER-T) /200 RUN 0.245 OK TIME$ TIME$ contient I'heure systeme. L’ordre de réception des données est le suivant: HH:MM:SS. Contrairement aux autres fonctions, il est possible d’assigner une valeur a TIME$. Bien entendu, il faut respecter le format indiqué ci-dessus. Exemple TIME$="11 : 25: 32": WAIT 10 : ? TIMES 11:25:42 OK DATE$ DATES contient la date systeme. L’ordre de réception des données varie en fonction des paramétres de linstruction MODE. Le mode USA est choisi par défaut et dans ce cas, la date est recue sous la forme m= MMJJAA En mode F ou D, DATES est de la forme suivante : = JJMMAA Comme pour TIMER$, il est possible d’assigner une valeur a DATES. Bien entendu, il faut respecter le format indiqué ci-dessus. Page 68 Variables systime OOUKLOL. Pl Pl équivaut environ a 22/7. Pl oblige l'OMIKRON a effectuer les calculs en double précision. On peut passer en simple précision en utilisant une variable simple précision a la réception. Exemple : O Pil=PI CSRLIN CSRLIN retourne le numéro de ligne ou se trouve le curseur. POS POS retourne le numéro de la colonne dans laquelle se trouve le curseur. La paramétre qui suit POS n’a aucune utilité, Exemple : MOUSEOFF REPEAT IF MOUSEX <>X OR MOUSEY <>Y THEN PRINT @(( MOUSEY \16),( MOUSEX \8)); ""; : P = POS(0) PRINT CHRS$(27); "j ";@(00); P; " "; CHRS(27); "k’; ENDIF X = MOUSEX : ¥ = MOUSEY UNTIL MOUSEBUT = 2 LPOS LPOS fournie le numéro de la colonne sur laquelle se trouve la téte de l'imprimante. En réalité, LPOS retourne le numéro de la colonne calculée par l'ordinateur. Donc, si votre imprimante dispose d’un tampon, vous obtiendrez le numéro de la derniére colonne envoyé a ‘imprimante et non pas le numéro de la colonne ou se trouve ‘6ellement la téte de l'imprimante. Exemple : ? LPOS(0) LIMITES : LPOS ne fonctionne pas en mode graphique. LPOS ne rotourne pas le bon numéro de colonne si des codes ESC ont été envoyés. LPOS ne fonctionne que si 'imprimante est branchée ('!!) Page 69 C) KO al ° Manuel de Référence ERR, ERL, ERR$ Ces trois variables contiennent des éléments succeptibles de faciliter le débugage en cas d’erreur. ERR Numéro de l’erreur (cf Liste des erreurs). ERL Numéro de ligne ou s'est produite l'erreur. ERR$ __Libellé de l'erreur. Exemple : ON ERROR GOTO Er_Corect PRINT A/(1-1) END -Er_Corect PRINT ERR, ERL, ERR$ VERSION Symtaxe : PRINT VERSION VERSION est une variable qui contient le numéro de la version du basic OMIKRON utilisée. Si la version du basic OMIKRON que vous utilisez est la 3.01, vous obtiendrez 301 comme valeur dans VERSION. Exemple : PRINT VERSION 301 OK Limites : VERSION ne fonctionne pas dans un programme compilé. Page 70 Instructions de sortie efi KfOO ° LES INSTRUCTIONS DE SORTIE | PRINT Syntaxe : PRINT [/ ou [<[Link]>]{<[Link]>] PRINT affiche a I'écran la ou les chaines ou la (les) expressions numériques, suivit éventuellement de caractéres de contréle. Exemples : PRINT : REM Saute 4 la ligne suivante PRINT “Omikron” : REM Affiche le mot Omikron a l’écran PRINT Omikron : REM Affiche le contenu de la variable Omikron PRINT “2*5” : REM Affiche “2*5” sur l’écran PRINT 2*5 : REM Affiche 10 sur l'écran PRINT dispose de deux caractéres de contréle = Le point-virguie qui oblige le PRINT a rester sur Ia ligne actuelle sans passer aucun espace. Exemple : PRINT "Car" ; "ATARI" ; Affiche sur I'écran “Carl'ATARI” Pour l'affichage des nombres, le '; nombre. Les deux mots sont rattachés. laisse un espace derriére chaque ® La Virgule. qui permet au curseur de sauter a la prochaine tabulation sur la ligne. Il y a une tabulation tous les 8 caractéres. Le prochain texte sera affiché a cet endroit. Voici un exemple qui vous permettra de pratiquer un peu : FOR An = 80 TO 87 READ Turnover , Directeur$ PRINT An, Turnover, Directeur$ NEXT An DATA 50000, “ALIX”, 500000, “ALIX”, 750000, "ALIX" DATA 48500, "SUPERMAN", 75000, "LEONARD" DATA 215000, "ALAIN", 75000, "ALAIN", 25000, “ALAIN” Page 71 ©OMIKIOCO. Manuel de Référence Vous pouvez utiliser plusieurs ";” et ",” dans un méme PRINT. Exemple : ‘PRINT X, : PRINT Y; est équivalent a: PRINT X ; Y; Autre possibilité : PRINT “La valeur de X est " X Pas de séparateur! L'OMIKRON ajoute tout seul les séparateurs. II insére un point virguie automatiquement. Tapez ce qui suit : 10 PRINT “Salut” Adresse$; Nom$ Cette ligne sera transformée comme suit : 10 PRINT “Salut” ; Adresse$ ; Nom$ ll existe un raccourci clavier pour PRINT. Au lieu d’entrer les cing lettres qui composent PRINT, vous pouvez taper [?], qui est Vabréviation standard du PRINT dans la plupart des basics. "2 6*7 agit exactement comme : ‘PRINT 6*7’ L'OMIKRON transforme automatiquement les ”?” en “PRINT”. Tapez ce qui suit pour vous en convaincre : 10 ? SIN(X) : REM Lister cette ligne aprés l'avoir écrite. TAB ‘Syntaxe : PRINT. TABIN) Positionne le curseur sur la colonne N avant de continuer laffichage. Exemple : 10 PRINT TAB(20); “OMIKRON.” 20 REM Le texte commencera sur la vingtiéme colonne. Limites : II n'est pas possible de dépasser 79 comme valeur pour largument, ce qui correspond a la derniére colonne de I'écran. Page 72 instructions de sortie OMUKZOH. SPC Synitaxe . PRINT..SPC(N) Affiche n espaces avant de continuer. Exemple : PRINT “OMIKRON.” ; SPC(8) ; "SOFTWARE" REM 8 espaces entre les mots OMIKRON. et SOFTWARE. Limites : || n'est pas possible de dépasser 32765 comme valeur pour SPC, ce qui constitue le maximum pour une chaine de caractéres. | PRINT USING Syntaxe . PRINT USING , PRINT USING formate les affichages numériques. On utilise principalement PRINT USING pour afficher les tableaux. PRINT USING permet par exemple d’aligner les nombres sur la virgule, ce qui rend la lecture moins fatigante. L'exemple le plus simple consiste a indiquer le nombre de caractéres avant et aprés la virgule. Pour ce faire, on utilise le masque d’édition : A!=15 : PRINT USING “#### ##" A! 1.50 OK Le masque d'édition accepte les commandes suivantes: Réserve l'emplacement d'un chiffre ou du signe du nombre. En effet, il ne faut pas oublier de réserver un emplacement pour le signe, méme si celui-ci n'est pas visible (+). Ainsi l'exemple permet d'afficher un nombre qui aurait au maximum trois chiffres sur sa partie entidre. Le point placé de cette maniére sépare emplacement réservé pour les parties entidre et décimale du nombre. Page 73 OMIKIOO. _ Manual de Référence HEABEY yp yo naan Le point placé au début de la chaine indiquera la séparation des milliers. Dans ce cas, seule la virgule peut servir a positionner les décimales. Exemple : "#####,#°.1252 14 donnera 1.252,1 Méme principe que le point dans le contexte correspondant La virgule va servir de séparatour tout les trois chitfres et dans ce cas c'est le point qui peut servir de point décimal. Dans tous las cas, le signe moins est affiché si la valeur est négative. Placer un signe moins ne sert qu’a indiquer sa position “| 1.268 donnera 1.2580— Force l'affichage du signe plus si le nombre est positif et indique I'emplacement du signe, qu'il soit positif ou négatif. Le caractére qui suit I'étoile est utilisé comme caractére de remplissage. En régle générale, on choisi le O pour remplir les emplacements vides. Le caractére "_" n'est pas autorisé comme caractére de remplissage. Exemple : "**# ###.#",.579 donnera ****57.9 L'underscore force |'affichage du caractére qui le suit. On I'utilise seulement pour les caractéres de commande car on peut placer n'importe quel autre caractére n'importe ou dans la chaine. Exemple : “##_+,## °C*,20 78 donnera 20+,78 °C Affichage en notation scientifique. Chaque "*" téserve un caractére pour cette notation. Exemple : “##°******,1000000 donnera 1E +6 Page 74 Instructions de sortie _ © ou KgO () ° Un exemple récapitulatif : PRINT USING "**,#######.# YEN", Total ! Affiche la valeur de la variable Total, avec deux chiffres aprés la virgule et une virgule pour séparer les milliers. Les premiers caractéres sont remplacés par des ‘*’ (a retenir pour les cheques). Si Total!=1234.67 alors le résultat sera : *****1,234.67 YEN Important: 2 A moins que le masque ne contienne une indication contraire, le signe est toujours placé devant le nombre affiché. Pour demander un signe derriére le nombre, on indique un “+” ou “—" derriére le masque. a On doit toujours prévoir un caractére pour le signe. “###.##" permettra l'affichage de 99 mais pas de 100, car il n'y a que 2 caractéres de libres pour l'affichage. a On peut mettre dans le masque l’affichage complet de ce quion désire a l’écran: “*0## Mille ### Francs, ## centimes —” 0 Les erreurs de syntaxe dans une ligne contenant un USING proviennent souvent d’une erreur dans le masque. USING Syntaxe | USING USING utilisé sans PRINT permet de formater laffichage des commandes a venir. Le USING reste actif tant qu'un autre USING n’est pas exécuté. Pour annuler tout formatage de chaine, il suffit de taper USING sans autre argument. LPRINT Syntaxe : LPRINT [{ |.. LPRINT fonctionne exactement comme PRINT, excepté le fait qu’il adresse limprimante au lieu de lécran. II est possible d’abréger LPRINT par L?. Page 75 OOIK(CH. Manuel de Reférnce PRINT* Syntaxe « PRINT* , est une suite de chaines alphanumériques, de variables numériques ou de constantes. PRINT# écrit les données sur le fichier de sortie spécifié. Le fichier doit avoir été ouvert auparavant. II est possible d'abréger par ?#. Pour plus de détails, reportez—vous au chapitre concernant les fichiers. PRINT @ Syntaxe . PRINT @(,) est une suite de chaines alphanumériques, de variables numériques ou de constantes. 2 PRINT@ doit se lire PRINT AT, (AFFICHER EN). ll permet d’afficher a |'endroit déterminé par les deux paramétres ligne et colonne. La premiére position en haut a gauche de I’écran est accessible par : PRINT@(00);"J'y suis, j'y reste” @ rest pas spécifiquement lié a PRINT et vous pouvez I'utiliser seul, dans une chaine de caractéres. Exemple : 100 RAD 110 FOR X-0 TO 78 120 Y¥!=( SIN(X* PI /10)+ SIN(X* PI /8))/2 130 Sinu$ = Sinu$ +@(Y¥!*12+12.X) + "*" 140 NEXT X 150 PRINT Sinu$ 160 A$ = INPUTS(1) Limites: LPRINT @... ne fonctionne pas, car les imprimantes ne comprennent pas toutas les mémes commandes de mise en page. Page 76 Instructions de sortie MIKGO Q) ° wrirE| Syntaxe . WRITE Fonctionne comme PRINT. Les seules différences : WRITE entoure de guillemets ce qu'il affiche. Exemple : WRITE "OMIKRON™ “OMIKRON™ OK PRINT “OMIKRON” OMIKRON OK De plus, WRITE affiche les virgules : #=12:B=15: WRITE AB,"Coucou" 1Z 18 ,"Coucou” WRITE* Syntaxe . WRITE* , Sortie séquentielle des données sur le fichier dont le canal est spécifié. Comme pour PRINT#, le fichier doit avoir 6t6 ouvert auparavant. WRITE# est plus pratique que PRINT# car les guillemets et les virgules ajoutées par WRITE sont automatiquement reconnues par INPUT#. Il est donc possible de lire plusieurs champs avec un seul INPUT#, alors qu'il en faut un par champs avec PRINT#. Exemple : 10 OPEN “O” ,1 ,"A:\NOMFIC™ 20 FOR T=1 TO 3 30 READ Nom$ 40 WRITE*1,Nom$ 50 NEXT T 60 CLOSE : END 70 DATA “Alix” , “Ghislain” , “Alain” Page 77 O {) KO a ° _ Manuel de Référence CMD Syntaxe : CMD Nous abordons ici une commande particuligrement puissante. CMD permet de rediriger le vecteur des instructions de sortie. Exemples : OPEN “O""|1,"TEST” : CMD 1 Déviation de toutes les instructions de sortie sur un fichier disque qui se nomme “TEST” OPEN “P”,4 : OPEN “O”.8,"TEST2” CMD 4: ...: CMD 8 Déviation des instructions de sortie vers limprimante, puis redéviation des instructions de sortie sur le fichier TEST2 Une utilisation possible de CMD consiste a tester l'imprimante et si limprimante n’est pas disponible, de rediriger toutes les instructions de sortie sur I'écran. Cette astuce est utilisée dans le programme [Link] de la disquette originale. Page 78 Les entrées OO ) KLO Q ° LES ENTREES L'OMIKRON dispose de cinq commandes permettant I'entrée de données. II s’agit des fonctions standards du basic, mais il nous a semblé intéressant d’introduire une nouvelle fonction (INPUT USING) et de nouveaux modes de fonctionnement pour les commandes standards. En effet, la saisie des données constitue l'une des fonctions principales des programmes. La plupart du temps, le programmeur invente sa petite bibliothéque, qu'il utilise et transforme au fur et a mesure du développement de son programme. Au bout d'un certain temps, il ne se souvient plus vraiment du fonctionnement de sa bibliothéque. En fait, on s’apercoit rapidement que l'agrément de la conception d'un logiciel repose aussi sur |'utilisation de fonctions standards, bien connues et qui ne changent pas toutes les semaines. Voici les cinq commandes du basic OMIKRON : INPUT Ordre standard du basic. LINE INPUT Entrée d'une ligne complete. INPUT USING Voici la nouvelle commande de L‘OMIKRON. INKEY$ Interrogation du clavier, sans attente. INPUT$ Entrée d'un nombre donné de caractéres. inPur | Syntaxe: INPUT [@(V.X)] [ texte’'] [..] Le programme s'arréte, le texte apparait sur I’écran, et l'utilisateur doit taper quelque chose au clavier. Pour terminer la saisie, il doit appuyer sur [Enter]. Les données entrées sont alors stockées dans la (ou les) variable(s). Puis le programme reprend son cours. Exemple : INPUT "Entrez un nombre s'il vous plait : "A PRINT “Le carré de "A;"est "A"2 A l'exécution, ‘Entrez un nombre s'il vous plait: ?’ apparait sur 'écran et 'OMIKRON attend que vous entriez un nombre au Clavier. Entrez 5, tapez [Enter] pour terminer la saisie. LOMIKRON passe a la Page 79 © 0 KIO QO) ° Manuel de Référence ligne suivante est affiche ‘Le carré de 5 est 25’. Il faut noter que INPUT place automatiquement un point d'interrogation a la fin de la ligne. Si vous supprimer le texte dans INPUT, exemple : INPUT A : REM Le basic OMIKRON n’affichera plus que '?’. L'OMIKRON n’est pas (comme la majorité des basics) limité & une chaine de caractéres en ce qui concerne le texte. Le texte peut tout aussi bien étre constitué d’opérations sur des chaines. Illustration : 10 FOR I=] TO 10 20 INPUT STRS(I)+"Oui : "Entres(1) 30 NEXT Bien sér, il est impossible de saisir des lettres par Vintermédiaire d'une variable numérique ! Et si vous voulez entrer du texte au lieu de chiffres? Aucun probléme : il suffit de choisir une variable alphanumérique. INPUT "Nom™,.NOMS INPUT “Prénom";PRENOMS PRINT "VOUS VOUS APPELEZ"; PRENOMS;” *; NOMS Le nombre maximum de caractéres saisis est de 255 caractéres et autant de signes spéciaux, sans compter les virgules. Les virgules nappartiennent pas a la chaine entrée, car elles servent de séparateurs inter-variables. Quand "entrée doit absolument contenir des virgules, utilisez plutét les instructions LINE INPUT ou INPUT USING. Un seul INPUT permet de renseigner plusieurs variables : 10 INPUT "3 NOMBRES ";[Link] : PRINT " Total = ".A+B+C L'utilisateur devra saisir 3 variables séparées par des virgules : RUN 3nombres ? §,7,9 [Return] Total = 21 OK Le premier nombre est enregistré dans A, le second dans B, le troisiéme dans C. Page 80 Los ents OMIKLOO. C'est une facon intelligente de gagner de Ia place, en particulier pour entrer des coordonnées : 10 FOR I-1 TO 10 20 ~~ PRINT “Point n° “I 30 INPUT “Entrez X et Y: “:X(1), ¥(D) 40 NEXTI Pour rendre le programme facile d'accés, vous pouvez séparer les INPUT: a chaque saisie correspond alors un texte d'information. ‘LINE INPUT Syntaxe « LINE INPUT [@(¥.X)] [texte] i ../] Cet ordre correspond pratiquement a ordre INPUT. Limites: La saisie de plusieurs variables dans un seul LINE INPUT est interdite. Il faut un LINE INPUT pour chaque variable. De par sa définition, LINE INPUT refuse les variables numériques. Par contre, il autorise les virgules. INPUT USING Syntaxe INPUT [@(¥.X)] [texte] USINC [] ( /() [,/| Position. Curseur>/ INPUT USING est I'une des instructions les plus complexes de |OMIKRON basic. Nous ne vous recommandons pas de |'aborder avant d’avoir parfaitement compris comment se servir des autres INPUT. INPUT USING réjouiera les amoureux du COBOL! C'est qu'il existe des instructions particuligrement puissantes en COBOL! Par exemple : = INPUT USING permet d’interdir ou d’autoriser la saisie d’un Nombre donné de lettres, de chiffres et de caractéres spéciaux. @ Il peut transformer un caractére en un autre. ® etc. Page 81

Vous aimerez peut-être aussi