BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 & PC-2

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

Répondre
cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 & PC-2

Message par cgh » 08 mai 2013 10:00

Bon, venant de faire prendre l'air a ma basse-cour de PC1500 et PC2, je vais me remettre au developpement d'un logiciel que j'avais commence et fini, mais qui ne semble pas bien fonctionner.
Il s'agit de BASWORD. BASWORD permet de creer, supprimer, lister dynamiquement de nouveaux mots cles BASIC, sans avoir a chaque fois regenerer une image binaire :geek:

Un petit exemple:
La fonction HEX$ est tres utile et elle fait defaut dans la base du BASIC. Qu'a cela ne tienne ! Copier la routine LM a un emplacement memoire, disons en &0837, puis faites

Code : Tout sélectionner

BASWORD +"HEX$","640837N"
Des le retour du prompt, la fonction HEX$ sera integree au BASIC, trouvee par la routine de compilation/decompilation, et sera utilisable comme CHR$ ou les autres fonctions.

Vous n'en avez plus besoin,

Code : Tout sélectionner

BASWORD -"HEX$"
supprimera HEX$ du vocabulaire, et donc si HEX$ se trouve dans un programme, vous aurez droit au ~ et a l'erreur 27 !

De meme,

Code : Tout sélectionner

BASWORD =&nn
deplace la table des mots cles a une autre adresse, afin de pouvoir reserver de l'espace pour la table ou pour les routines.

Enfin

Code : Tout sélectionner

BASWORD
sans argument liste tous les mots cles de la table utilisateur. De plus,

Code : Tout sélectionner

BASWORD "motcle" 
commencera a lister les mots cles a partir du mot cle donne, si il existe, et ce meme si il est dans une autre table ! De meme, on peut specifier "/M" pour la table BASIC principale, "/P" pour l'imprimante et "/C" pour l'interface cassette...

Et pour finir une gaterie:

Code : Tout sélectionner

BASIC "ligne"
programmera la ligne passee en argument dans le programme BASIC en memoire. Ainsi

Code : Tout sélectionner

BASIC "10 BE.1:END"
vous entrera

Code : Tout sélectionner

10 BEEP 1:END
Bien sur, BASIC est programmable et permettra de faire de l'autoprogrammation ! Imaginer le programme suivant:

Code : Tout sélectionner

10 DIM LI$(0)*80: INPUT "Entrer la fonction: ";LI$(0)
20 BASIC "30 Y="+LI$(0): END
En repondant par exemple: SI.(X)-CO.(X) vous decouvrirez:

Code : Tout sélectionner

30 Y=SIN (X)-COS (X)
Cerise sur le gateau, les nouvaux mots cles seront aussi compiles par BASIC.
Dernière édition par cgh le 08 mai 2013 12:21, édité 3 fois.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Avatar de l’utilisateur
rogeroge
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 3987
Inscription : 14 mai 2010 21:41
Localisation : Entre Nancy et Bercy : à Torcy

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC1500*/PC

Message par rogeroge » 08 mai 2013 11:27

Salut ...
Tu nous en apprends de belles choses sur le Sharp PC-1500. 8)
As-tu pensé à écrire un livre pour synthétiser tout ce que tu nous racontes sur Silicium ? :)
Il faut être fou pour venir sur ce site mais encore plus fou pour ne pas y revenir !

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC1500*/PC

Message par cgh » 08 mai 2013 11:34

Mis a jour du post avec BASWORD "motcle" que j'avais completement oublie.
rogeroge a écrit :Salut ...
Tu nous en apprends de belles choses sur le Sharp PC-1500. 8)
As-tu pensé à écrire un livre pour synthétiser tout ce que tu nous racontes sur Silicium ? :)
Non. Trop faineant ! Je cherche un biographe... :mrgreen:
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

destroyedlolo
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1880
Inscription : 03 mai 2003 02:24
Localisation : Nonglard (Annecy)
Contact :

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 &

Message par destroyedlolo » 08 mai 2013 13:44

Yep, la grande force du 1500 est que l'on peu facilement redéfinir le clavier, le basic, les caractères ...

J'ai réussi à faire la meme chose sur 1350, mais comme tout est hardcodé, tout passe par des call abscons ...
Amiga, UNIX
Sharp, NetBSD http://destroyedlolo.info/
Apache, PHP 100 % dictionnary free
Vacances, Voyages 1 mispelling by word

Avatar de l’utilisateur
Woodstock
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1969
Inscription : 17 mai 2008 11:19
Localisation : Au fin fond du Santerre ...

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC1500*/PC

Message par Woodstock » 08 mai 2013 21:03

cgh a écrit :
rogeroge a écrit :Salut ...
Tu nous en apprends de belles choses sur le Sharp PC-1500. 8)
As-tu pensé à écrire un livre pour synthétiser tout ce que tu nous racontes sur Silicium ? :)
Non. Trop faineant ! Je cherche un biographe... :mrgreen:
Dommage, car après le JCK "Voyage à l'intérieur du PC-1500/A" qui donne les informations de base, il manque un tome 2, de plus haut niveau, qui approfondisse vraiment le sujet... et rien qu'avec tes posts, tu en as déjà écrit plusieurs pages !

Je vois bien un titre du genre: "Aller plus (et même trop) loin avec le PC-1500/A", qu'entre initiés, on appellerait le "CGH"... :P
I'm the operator
Of my pocket calculator
I am adding
And substracting...
(Kraftwerk, Computer World, 1981)

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 &

Message par cgh » 08 mai 2013 21:08

Woodstock a écrit :Dommage, car après le JCK "Voyage à l'intérieur du PC-1500/A" qui donne les informations de base, il manque un tome 2, de plus haut niveau, qui approfondisse vraiment le sujet... et rien qu'avec tes posts, tu en as déjà écrit plusieurs pages !

Je vois bien un titre du genre: "Aller plus (et même trop) loin avec le PC-1500/A", qu'entre initiés, on appellerait le "CGH"...
:oops: Merci Woodstock 8) Et bien, il n'y a qu'a ouvrir une nouvelle rubrique: Les folies de CGH... ;-)

Pour ceux qui voudraient commencer a s'echauffer en attendant BASWORD et regarder comment developper des mot-cles BASIC sur PC-1500, je vous conseille la lecture de la Revue des Sharpentiers, specialement le numero 5, pages 4 a 7 avec des exemples nouvelles instructions BASIC (RENUM et DELETE), et surtout les macros instructions dans le numero 6, pages 10 et 11. Dans ce dernier numero, il y a aussi une petite extension BASIC, page 14. Enfin, toujours dans le numero 6, vous trouverez en pages 7, 8 et 9, un petit utilitaire qui derive les interruptions. C'est la base du debugger LM integre de MACBAS95 (et des autres qui vont arriver !)

C'est avec ces revues que j'ai tout appris. Des informations sont aussi a recouper avec la revue TRACE.

Bonne lecture, et a vos POKEs ;-)
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC1500*/PC

Message par Paul Tergeist » 09 mai 2013 00:25

Woodstock a écrit :Je vois bien un titre du genre: "Aller plus (et même trop) loin avec le PC-1500/A", qu'entre initiés, on appellerait le "CGH"... :P
Calls to Go Higher

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 &

Message par cgh » 14 mai 2013 00:25

Bon, et bien, BASWORD me semble bien fonctionner maintenant :-D

Son utilite est de creer/supprimer/lister de nouveaux mots-cles BASIC. Son but etait de pouvoir ainsi creer un BASIC "modulaire": une base de routines et de mots cles (instructions/fonctions) que l'on ne charge qu'en fonction de ses besoins. Fini les extensions BASIC de 8Ko alors que seuls quelques instructions nous interessent.

La syntaxe:
  • BASWORD +"nnnnnnnn";"xxaaaap" pour creer la nouvelle instruction nnnnnnnn (jusqu'a 8 caracteres), dont le code sera &F0xx, l'adresse de la routine en &aaaaa et p pouvant etre N (programmable et commande: PRINT), P (programmable: FOR), C (commande uniquement: NEW). Apres cet appel, le mot-cle nnnnnnnn sera encodable (trouvee par la routine de codage des mots-cles), decompilable et executable.
  • BASWORD -"nnnnnnnn" pour supprimer l'instruction nnnnnnnn de la table. Apres cet appel, l'instruction nnnnnnnn ne sera plus reconnue.
  • BASWORD =&tt pour deplacer la table des mots-cles a l'adresse &tt00. Les tables doivent etre alignees sur des frontieres de 2Ko (&800, &1000, &1800...).
  • BASWORD ["nnnnnnnn"] pour lister les instructions presentent. Si nnnnnnnn est specifiee et existe, le catalogue commencera a partir de cette instruction.
  • BASWORD ["/t"] pour lister les instructions d'une table. Par defaut, ce sera la table "utilisateur", mais il est possible de specifier une autre table: /M pour la table BASIC (main), /C pour l'interface K7 (CE-150) et /P pour l'imprimante (CE-150). La CE-158 n'est pas geree, mais si on me donne une image de la ROM de la CE-158, je peux l'integree.
  • Un driver clavier est present. Il est minimaliste (comme celui de BASFILE). Je vais peut-etre mettre un pilote plus evolue, comme celui que j'ai fourni dans ce fil.
Je suis en train de preparer un relogeur C, qui pourra vous fournir des images en fonction de vos modules. Attention. Pour les PC-1500 et PC-2, un module d'extension memoire est obligatoire (mais pas pour le PC-1500A).
Ainsi que des petits exemples de mots-cles/routines [extensions BASIC] : Gestion des drapeaux (justement, nous en parlions aussi...), autoprogrammation/evaluation...
Comme j'ai des dizaines de routines, je recherche celles dont je suis sur d'etre l'auteur, et que je sache (encore) m'en servir, et que cela reste "utilisable".
Dernière édition par cgh le 14 mai 2013 00:57, édité 1 fois.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 &

Message par Paul Tergeist » 14 mai 2013 00:31

Je sens que nous sommes quelques uns à l'attendre fébrilement...

Il fait quelle taille à peu près BASWORD actuellement ?

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 &

Message par cgh » 14 mai 2013 00:47

Paul Tergeist a écrit :Je sens que nous sommes quelques uns à l'attendre fébrilement...

Il fait quelle taille à peu près BASWORD actuellement ?
A cette heure: 1,5Ko (avec le driver clavier simplifie), mais il a besoin reellement de 2Ko, car comme je l'ai explique, la table doit etre alignee sur une frontiere de 2Ko [&0800] (en fait, il semblerait que ce 1Ko [&0400], mais cela n'a jamais fonctionne sur mon PC-1500 [ROM1]).
Il y a aura de la place pour des routines entre BASWORD et la table des mots cles. Et sinon, on deplace la table des mots-cles par BASWORD =&...
Ci-dessous une petite map:

Code : Tout sélectionner

+-------------+ &..00
+   RESERVE   +
+-------------+ &..C5
+   BASWORD   +
+             +
+ - - - - - - + &.488
+   CLAVIER   +
+-------------+ &.690
+  libre pour +
+ vos routines+
+-------------+ &.800
+ TABLE INSTR +
+-v-v-v-v-v-v-+ &.861..&.xxx : plus il y aura d'instructions, plus la table grandira

   .  .  .  .

+-------------+ &yyyy
+             +
+ PRGM BASIC  +
+             +
+ - - - - - - +
+  VARIABLES  +
+-------------+ &4800 / &5800

note &.. correspond au poids fort de l'adresse de base: &00 (CE-161/163), &20 (CE-159), &38 (CE-155), &40 (CE-151 ou PC-1500A).
Dernière édition par cgh le 19 févr. 2014 23:29, édité 1 fois.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7180
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 &

Message par gege » 14 mai 2013 21:46

Extraordinaire !
Mais quel est le format général du code d'un mot clef ?
C'est "juste" un code LM ? Qu'est-ce qui est passé dans les registres (j'imagine au moins un pointeur sur l'endroit en cours d'exécution dans le programme Basic, pour pouvoir récupérer des paramètres) ?
Quel est le pointeur d'exécution du Basic (pour le faire avancer) ?
Ou alors tout ça est dans le TRM...
Bravo en tout cas !
G.E.

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 &

Message par cgh » 14 mai 2013 22:26

gege a écrit :Extraordinaire !
Mais quel est le format général du code d'un mot clef ?
C'est "juste" un code LM ? Qu'est-ce qui est passé dans les registres (j'imagine au moins un pointeur sur l'endroit en cours d'exécution dans le programme Basic, pour pouvoir récupérer des paramètres) ?
Quel est le pointeur d'exécution du Basic (pour le faire avancer) ?
Ou alors tout ça est dans le TRM...
Bravo en tout cas !
G.E.
Non. Rien n'est dans le TRM, mais tout est dans La Revue du Sharpentier n`5 et n`6. Le magazine Tandy TRACE, a compter du numer 4.

Un mot cle est de la forme:
xL N...N CCDD AAAA Bx
avec
  • L la longueur en octets du nom (par exemple 5)
  • N...N le nom (par exemple PRINT)
  • CCDD le code sur 2 octets. Et oui, chaque mot cle prend 2 octets (&F097) : Dans notre cas, tous nos mots-cles "utilisateurs" doivent avoir CC=&F0, pour DD, l'interpreteur BASIC impose: DD >= &80, c'est une instruction (PRINT, LIST, FOR, DEGREE, POKE ...), DD = [&60 .. &7F], c'est une fonction avec arguments (SIN, LOG, CHR$, PEEK, ...), si DD < &60, c'est une fonction sans argument (MEM, PI, TIME...)
  • AAAA l'adresse de la routine du mot-cle. C'est la que l'interpreteur BASIC se branche quand il execute PRINT
  • B Un champs de 4 bits: 1pce: si e vaut 1, c'est la fin de la table pour la lettre recherchee, pc definissent le type de mot-cle, programmable, non programmable, etc...
  • x Valeur ne comptant pas pour ce mot cle.
La table se termine toujours par un octet definissant une taille nulle: 1..10000 (en binaire).
La table est alignee, sur un frontiere de 2Ko, et commence par l'octet &55.
&xx00 : &55
....
&xx20 .. &xx53 : Adresse de debut des mots-cles pour chaque lettres,
&xx54 .. : Table des mot cles.

Un exemple avec BASFILE:

Code : Tout sélectionner

1000    55 ...
     ;  A    B    C . . .
1020    0000 0000 0000 0000   0000 1056 10A9 1139
1030    0000 0000 0000 0000   10BD 0000 0000 10ED
1040    0000 0000 0000 0000   0000 0000 0000 0000
1050    0000 0000

1054    C7 "FCREATE"      F0B0 06EA
1060    C6 "FCLOSE"       F0B1 072C
106B    C5 "FOPEN"        F0B3 0752
1075    C6 "FWRITE"       F0BE 09CF
1080    C5 "FREAD"        F06D 0A80
108A    C5 "FTELL"        F06E 0C56
1094    C4 "FEOF"         F06F 0CA9
109D    C5 "FSEEK"        F0BD 0B9F
10A7    D5 "GSAVE"        F0AF 0CD8
10B1    C5 "GLOAD"        F0AE 0D13
10BB    D5 "MINIT"        F0A0 076C
10C5    C4 "MMEM"         F06C 055D
10CE    C4 "MDIR"         F0A3 05F9
10D7    C5 "MNAME"        F0A2 05C4
10E1    C5 "MKILL"        F0A1 059B
10EB    D5 "PSAVE"        F0A5 0817
10F5    C5 "PLOAD"        F0A6 085C
10FF    C7 "PENDALL"      F0A4 089D
110B    C5 "PCALL"        F0A7 0921
1115    C6 "PENVRN"       F0A8 08BE
1120    C7 "PRETURN"      F0A9 08DF
112C    C6 "PSTACK"       F0AA 091B
1137    D4 "HEX$"         F06A 0FD5
1140    D0 ""
A noter, que les mots cles n'ont pas besoin d'etre dans l'ordre alphabetique, mais tous les mots commencant par la meme lettre doivent etre regroupes.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 &

Message par cgh » 15 mai 2013 00:59

Bon, et bien ca arrive. Demain, je devrais ecrire le relogeur: un petit programme C pour reloger BASWORD a une adresse specifiee. Livraison a repaire en fin de semaine.

J'ai fini de coder et j'ai installe le pilote clavier de course !
DEF+|> va en fin de ligne, DEF+<| va en debut de ligne, DEF+MODE se deplace de : en :, DEF+CL efface du curseur jusqu'a la fin de la ligne, DEF+( donnera {, DEF+) donnera }, DEF+* donnera le pate, DEF++ donnera ~, DEF+- donnera _, DEF+/ donnera |, et DEF+. donnera le yen.
Toutes les touches sont a repetition.

Le code occupe 1948 octets, mais il y a 384 octets de disponibles pour vos creations de &0680 a &07FF, apres, c'est la table des mots-cles. Si cela deborde, il est possible de la deplacer avec BASWORD =&nn.

Les nouveaux mots-cles sont recherches dans une table "utilisateur", et peuvent etre abreges par !.

Bon, la table de base de BASWORD est simple.

Code : Tout sélectionner

0800	55

0820	0000 0856 0000 0000   0000 0000 0000 0000 
0830	0000 0000 0000 0000   0000 0000 0000 0000 
0840	0000 0000 0000 0000   0000 0000 0000 0000 
0850	0000 0000 

0854	D7 "BASWORD"      F0BE 0191 
0860	D0 ""
A vous de l'agrandir :-D :slime:
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 &

Message par cgh » 15 mai 2013 23:15

Ca y est le zip a ete envoye a repaire pour mise a disposition sur son site.
Deux petits exemples, tires de mon README:

Code : Tout sélectionner

  1. A first example - ERN and ERL

    For this example, it assumed that the image BASWORD-00C5 is loaded.
    Because, in this example to user's keyword table will growth, we do
    first:
        NEW &900

    This will reserve more space for the user's keyword table.

    Do the following:
        POKE &680,&A5,&78,&9B,&BA,&D9,&E4
        POKE &686,&F4,&78,&B4,&BA,&DA,&6C
        BASWORD +"ERN";"5E0680N"
        BASWORD +"ERL";"5F0686N"

    Now the new functions ERN and ERL are available. ERN will return the last
    error code, and ERL the line number where the error has occured. The ERN
    and ERL instructions are taken from 'La Revue du Sharpentier', no 6.

    Do:
        1/0
    You will see ERROR 38
        ERN
    gives 38.

    In PRO mode, do:
        NEW
        10 ON ERROR GOTO 100
        20 GOTO 1234567890
        30 END
        100 BEEP 1: PRINT "Error ";ERN ;" line "; ERL :END

    and now in RUN mode do:
        RUN
    you ear a beep and see: Error  19 line  20

    As explained in the part 3.0, the new keywords may be abreviated with !
    So E! will be ERN in our example.


  2. A second example - BUILD

    For this example, it assumed that the image BASWORD-00C5 is loaded.
    Because, in this example to user's keyword table will growth, we do
    first:
        NEW &900

    This will reserve more space for the user's keyword table.

    Do:
        POKE &068C,&FD,&98,&BE,&00,&C5,&FD,&98,&CC,&90,&CA,&00,&BE,&D0,&2B,&DC,&45
        POKE &069C,&B7,&7C,&89,&02,&B5,&22,&51,&88,&0A,&56,&B5,&0D,&51,&BE,&06,&67
        POKE &06AC,&BE,&F9,&57,&BE,&CF,&27,&03,&09,&08,&00,&CC,&00,&CA,&90,&FD,&1A
        POKE &06BC,&E2,&FD,&1A,&FD,&1A,&68,&D0,&54,&E0
        BASWORD +"BUILD";"C8068CN"

    And now do:
        BUILD "99PR.|Hello!|:B.1:E."

    Go in PRO mode and do:
        LIST 99
    You see: 99 PRINT "Hello!":BEEP 1:END
    The keyword of the user's table are also encoded and may be abbreviated by a !.
    The | character will be replaced by a " to let you enter double-quoted strings.
    Of course BUILD is programmable. There are only one restriction. The new line
    enters by BUILD should have a higher number that the line where BUILD is executed.
    If an error occurs while BUILD is working, the ERROR 208 will be raised.

    Do:
        NEW
        10 INPUT "Your function(X) ";F$
        20 BUILD "100 Y="+F$+":RET."
        30 FOR X=1TO 10
        40 GOSUB 100
        50 PRINT "F(";X;")=";Y
        60 NEXT X
        70 END

    After go back in mode RUN, and do
        RUN
    See: Your function(X)
        X^2
    And now
        F( 1)= 1
        F( 2)= 4
           . . .
        F( 10)= 100

    If you look to the line 100, you will discover: 100 Y=X^2:RETURN
J'espere bientot voir vos propres creations ou compilations :slime: et pourquoi "fabriquer" et mettre a disposition l'Extension BASIC Sili pour PC-1500/A/PC-2 :-) :geek:

Edit: Mise a jour avec le NEW &900 dans les 2 exemples.
Dernière édition par cgh le 16 mai 2013 01:30, édité 2 fois.
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

cgh
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2288
Inscription : 30 août 2011 12:23
Localisation : Vous êtes ici -> .

Re: BASWORD - Gestionnaire de mots cles BASIC sur PC-1500 &

Message par cgh » 15 mai 2013 23:23

Si des impatients veulent tester BASWORD avant la mise a dispo sur le site de repaire, manifestez-vous et je vous enverrai le zip par email :-D
Il y a ceux qui voient les choses telles qu'elles sont et se demandent pourquoi, et il y a ceux qui imaginent les choses telles qu'elles pourraient être et se disent... pourquoi pas? - George Bernard Shaw
J'adore parler de rien, c'est le seul domaine où j'ai de vagues connaissances ! - Oscar Wilde
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas que les choses sont difficiles. - Sénèque

Répondre

Revenir vers « Tous les Pockets »