découverte OPL

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Avatar du membre
tyann
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 846
Enregistré le : 06 oct. 2012 14:37

Re: découverte OPL

Message par tyann »

Bonsoir à tous
Un article dans la gazette, j'en serai très honoré.
Un projet de programme, pour l'instant non, j'ai juste commencé à écrire quelques petites
fonctions, mais pourquoi pas, l'idée me paraît sympa.
En tous cas merci à tous pour vos encouragements, bon comme promis je vous parle
aujourd'hui des fichiers.

Sur les autres machines que j'utilise, la conservation des données se fait par les variables
qui peuvent en contenir différents types.Sur le psion les variables locales ou globales sont
perdues à l'arrêt du programme.
Excepté les variables de l'appli calculatrice que l'on peut utiliser et modifier en OPL.

Il faut donc en passer par les fichiers en ram ou sur disques.
On peut créer un fichier avec CREATE nom$,nom logique,champs1,champs2,....
On peut travailler sur quatre fichiers en simultané, nom logique (a,b,c,d) permet de désigner le
fichier sur lequel on travaille ou pour lire et écrire les données.
On peut ouvrir un fichier existatnt avec OPEN nom$,nom logique,champs1,champs2,...
OPENR pour l'ouvrir seulement en lecture, et EXIST nom$ pour savoir si il existe.
OPL gére un pointeur qui vaut 0 lorsque que l'on créer un fichier et 1 si on ouvre un
fichier existant, FIRST, NEXT, BACK et LAST permettent de déplacer ce pointeur,
COUNT renvoie le nombre de ligne de données et POSITION n de se placer sur une ligne précise.
EOF renvoie true si le pointeur à dépasser la dernière ligne.
Toutes ces instructions se réfèrent au fichier actif, que l'on peut spécifier avec USE nom logique.
CLOSE ferme le fichier actif et DELETE nom$ permet d'effacer un fichier.
Pour écrire une donnée dans un fichier on utilise APPEND(ajout d'une ligne) ou UPDATE (remplacement
des données sur une ligne).
nom logique.nom de champs permet de lire les données.
FIND string permet de rechercher une donnée dans le fichier, dans string on peut utiliser ? pour
remplacer n'importe que caractère et * pour n'importe quelle suite.
FINDFIELD permet de limiter la recherche à certains champs en spécifiant l'ordre de recherche
dans ces champs.
Vous avez également droit à des instructions de gestion des repertoires, SETPATH, MKDIR et RMDIR.
Il est également possible de lire des données de l'appli Base de données depuis OPL et vice versa.

Voilà dernier post la prochaine fois avec du divers et varié.
A+.
Modifié en dernier par tyann le 31 mars 2014 23:17, modifié 1 fois.
Ti(s) 60, 62 Galaxy, 66, 67 Galaxy, 68, 74 Basical 80, 81, 82, 83+, 83 CE, 84+SE, 85, 86, 89, 89 titanium, 92, 95 Procalc, v200, nSpire cx
Hp(s) 35s, 41CX, 28S, 48g, 50g, 39gII, Prime G1 et G2,
Casio(s) fx 602P, 702P, 4000P, 4500P, 6000G, 6900G, 7700G, 8500g, PB-700, CG-20, Graph 95 sd
Psion(s)II LZ64, siena, s3a, s3mx, s5mx.
Sharp(s) pc-1350, 1403, 1500A, E500, El 5120, 9200, 9600
Canon X-07
destroyedlolo
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1806
Enregistré le : 03 mai 2003 02:24
Localisation : Nonglard (Annecy)
Contact :

Re: découverte OPL

Message par destroyedlolo »

Par contre, j'ai du mal à voir l'avantage du langage par rapport au BASIC ...
Amiga, UNIX
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
Avatar du membre
bernouilli92
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5270
Enregistré le : 21 nov. 2012 13:03
Localisation : Ile de France

Re: découverte OPL

Message par bernouilli92 »

destroyedlolo a écrit :Par contre, j'ai du mal à voir l'avantage du langage par rapport au BASIC ...
Le fait d'avoir des procédures et plus de numéros de lignes?
HP, Casio, Sharp, Psion, quelques TI et divers autres
destroyedlolo
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1806
Enregistré le : 03 mai 2003 02:24
Localisation : Nonglard (Annecy)
Contact :

Re: découverte OPL

Message par destroyedlolo »

ben les BASIC les plus récents font de mêmes :lol:

Je sais que ce langage a mauvaise réputation (mais bon, y'a qu'a savoir programmer), mais je regrette un peu que ce langage est été remplacé par d'autres qui n'apportent pas forcement grand chose et où il faut tout réapprendre à chaque fois :cry:
Amiga, UNIX
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word
Avatar du membre
tyann
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 846
Enregistré le : 06 oct. 2012 14:37

Re: découverte OPL

Message par tyann »

Bonsoir
En fait l'OPL ressemble beaucoup aux basics modernes, pas de n° de lignes, structures de boucles de tests, etc...
sauf que l'OPL date des années 90 et qu'à cette époque ce n'était pas si courant, de plus ce langage donne accès
aux ressources de la machine, ce qui sur les calculatrices modernes n'est pas si fréquent, les machines de type psion
n'existant plus de nos jours ce qui est bien dommage, peut être la Prime si elle évolue s'en rapprochera t-elle, car elle a
des caractéristiques assez fantastiques et son écran tactile est un vrai bonheur et parfaitement exploitable par programme.
Ti(s) 60, 62 Galaxy, 66, 67 Galaxy, 68, 74 Basical 80, 81, 82, 83+, 83 CE, 84+SE, 85, 86, 89, 89 titanium, 92, 95 Procalc, v200, nSpire cx
Hp(s) 35s, 41CX, 28S, 48g, 50g, 39gII, Prime G1 et G2,
Casio(s) fx 602P, 702P, 4000P, 4500P, 6000G, 6900G, 7700G, 8500g, PB-700, CG-20, Graph 95 sd
Psion(s)II LZ64, siena, s3a, s3mx, s5mx.
Sharp(s) pc-1350, 1403, 1500A, E500, El 5120, 9200, 9600
Canon X-07
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6190
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: découverte OPL

Message par Marge »

Selon Wikipedia, la première version de l'OPL date de 1984 !
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
tyann
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 846
Enregistré le : 06 oct. 2012 14:37

Re: découverte OPL

Message par tyann »

Bonjour à tous
Le traitement de chaînes de caractères est assez complet sous OPL, outre les
traditionnelles fonctions LEFT$, RIGHT$, et MID$, on a droit à ASC et CHR$ ainsi que LEN.
VAL est présent mais pas STRING$ qui est remplacée par FIX$,GEN$,SCI$ et NUM$ qui permettent
de convertir un nombre en chaîne mais avec une mise en forme, HEX$ est là aussi, INSTR est
appelée LOC et REPT$ permet de répèter un caractère ou une chaîne x fois.
EVAL est presque l'équivalent de EXPR en Ti basic ou sur Hp prime qui permet d'évaluer une
expression mathématique dans une chaîne, mais EVAL ne reconnaît pas les variables:
EVAL("sin(45)") fonctionne, mais pas a%=45 :EVAL("sin(a%)"), cependant on peut s'en sortir
en écrivant a%=45 :EVAL("sin("+GEN$(a%,8)+")"), cependant EXPR permet
d'exécuter du code programme sous forme de string, chose impossible pour EVAL.
UPPER$ et LOWER$ sont également présentes, pourquoi diable ne trouve t'on pas ces fonctions
sur les caltos modernes.

Côté calcul OPL est assez basic, fonctions trigo, exponentiel, puissance, racine carré,
ABS, INT, MIN et MAX, générateur de nombre aléatoire, et PI, par contre les calculs de pourcentage
sont très élaborés, + - et par exemple : 120>10% renvoie 109.091 soit la valeur qui augmentée de 10%= 120,
on trouve également quelques fonctions avec les tableaux comme MEAN, SUM et STD.

On trouve également pas mal de fonctions traitant de la date et de l'heure, DATIM$ qui renvoie
la date et l'heure sous forme de chaîne, DAY, MONTH et YEAR qui renvoie le jour, le mois et
l'année sous forme de nombre.DAYS(day%,month%,year%) vous renvoie le nombre de jour séparant
cette date du 1/01/1900.SECOND, MINUTE et HOUR vous renvoie... bon vous avez compris,
DOW(day,month,year) vous renvoie sous forme de nombre le jour de la semaine correspondant à la
date fournie et WEEK le n° de la semaine.
Enfin DATETOSEC et SECSTODATE permettent le calcul de secondes par rapport à une date réfèrence
(1/1/1970) et quelle date en y ajoutant des secondes.
Notez qu' OPL n'a aucun problème avec le passage de l'an 2000.

Voilà nous arrivons à la fin de ce post, tout n'a pas été dit sur OPL, il y a encore d'autres
fonctions pour le langage machine, la gestion des interfaces et la communication avec les appli.
Le Psion et son OPL va maintenant rejoindre mes autres machines, et je vais m'amuser à le programmer
comme les autres car comme vous avez pu le constater vu ses possibilités il n'a rien à leur envier.

Si je devais lui reprocher quelques petites choses, ce serait le manque de mode calcul, si vous souhaitez tester
une procédure avec paramètres, il est impossible de la lancer depuis l'éditeur, il faut écrire une
autre procédure sans paramètres qui appelle celle que vous voulez tester, sinon l'éditeur est vraiment très complet,
notamment avec un mode plan qui replie les procédures comme en gfa basic sur st pour ceux qui connaissent.
Par rapport aux calculatrices modernes, je trouve qu'il lui manque les listes et aussi une aide au
niveau des fonctions comme un catalogue et des menus avec la liste des fonctions triées par thèmes, ici
il faut tout taper à la main et consulter la doc au moindre trou de mémoire.

Enfin merci à Ledudu grâce à qui j'ai pu acquérir cette petite machine fort sympathique.
Ti(s) 60, 62 Galaxy, 66, 67 Galaxy, 68, 74 Basical 80, 81, 82, 83+, 83 CE, 84+SE, 85, 86, 89, 89 titanium, 92, 95 Procalc, v200, nSpire cx
Hp(s) 35s, 41CX, 28S, 48g, 50g, 39gII, Prime G1 et G2,
Casio(s) fx 602P, 702P, 4000P, 4500P, 6000G, 6900G, 7700G, 8500g, PB-700, CG-20, Graph 95 sd
Psion(s)II LZ64, siena, s3a, s3mx, s5mx.
Sharp(s) pc-1350, 1403, 1500A, E500, El 5120, 9200, 9600
Canon X-07
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6190
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: découverte OPL

Message par Marge »

tyann a écrit :Bonjour à tous

Après 2 semaines d'utilisation de mon psion série 3a,
j'ai décidé de vous faire un petit topo sur son langage de programmation
appelé OPL, pour voir un peu ce qu'il offre par rapport aux calculatrices modernes.

Certes ce n'est pas le même genre de machine, mais il y a quand même quelques similitudes,
et puis on aurait pu avoir, (cela a peut-être même existé) une application calculatrice
graphique
.
[...]
Depuis le temps que j'en cherchais la trace ! Redécouverte OPL, donc... en creusant le sable de la plage.

Oui, la Psion48 a bel et bien existé, réalisée par Xavier Galante. Je l'ai retrouvée grâce à archive.org :
https://web.archive.org/web/19990429201 ... on48f.html

On y trouvera de bonnes explications de ses capacités.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
zpalm
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2936
Enregistré le : 03 mai 2008 15:33
Localisation : Grenoble

Re: découverte OPL

Message par zpalm »

Intéressant ! Malheureusement ça n'a pas l'air supporté sur le Série 3 de base.

Un lien plus récent sans passer par archive.org: http://psion48.free.fr.
Okinawok
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 401
Enregistré le : 12 avr. 2011 15:07

Re: découverte OPL

Message par Okinawok »

Salut,
Je me souviens avoir déjà installé sur un PSION 5 un émulateur d'HP-48GX.
C'était peut-être Emu48E ?
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6190
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: découverte OPL

Message par Marge »

C'est bien possible ; si l'on se fie à archive.org, environ 4 ans séparent les deux programmes, celui pour le 3a ayant été publié en 1999, alors que le Psion 5 était déjà sorti - l'adaptation au 5 a dû suivre assez rapidement.

Psion48 a dû faire des émules. ;)

@zpalm : il ne doit pas manquer grand-chose pour l'adapter au "simple" Serie 3 ; ce ne doit être qu'une question de taille d'écran... si quelqu'un veut se lancer, Damian Walker avait publié une série d'astuces pour cela. Je vais tâcher de retrouver le lien. (Rhââââ, adresse introuvable !)

ÉDITION : il semble que malheureusement, le joli site de Damian Walker (http://psigamer.cyningstan.org.uk/) ne soit plus.
On trouvera néanmoins de quoi nourrir sa réflexion avec les EPOC Entertainers ("EPOC Entertainer, a monthly A5 PDF magazine leaflet dedicated to gaming on 32-bit Psion pocket computers") publiés par le même Damian, et en particulier un tutoriel en 6 parties sur l'animation OPL avec les difficultés liées aux tailles des écrans là, dans les numéros 1 à 6 : http://web.archive.org/web/201110250655 ... iner.shtml

Je vais attendre un peu avant d'actualiser la liste des sites consacrés aux PSION, sait-on jamais...
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Avatar du membre
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 6190
Enregistré le : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: découverte OPL

Message par Marge »

Bonjour,

Je suis entré en contact avec Damian Walker : par faute de place sur son serveur et de temps, il a décidé en avril dernier de ne plus héberger son travail autour de Psion.
Il m'a dit avoir perdu le contenu d'un DD, mais espère rassembler les éléments intéressants dans le futur...

Wait and see.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

Quelques-uns de mes petits programmes pour machines Hewlett-Packard :
15C : Knight's Tour ;
29C : (k-)Permutations, Combinations, Linear Regression and Pseudo-random number ;
34C : Hanoi Towers - Automatic & Manual resolutions ;
67
__: A L I E N .

« Boris », c'était juste Maurice enrhumé.
Répondre

Retourner vers « Tous les Pockets »