aldweb

Close I. aldweb

Close II. PC Freeware

Close III. Palm Freeware

Close IV. Palm Shareware

Close V. iziBasic Palm

Close VI. Palm Knowledge

Close VII. Pocket Computer

Close VIII. miniPortail

Special !



Mobile version of
the aldweb Site

m.aldweb.com


Neither French, nor English?

Try one of these flags then:
[de] [es] [it] [pt]
Search




Weather / Spam / www

Lyon Weather


aldweb against spam


Newsletter
To receive news about this website, consider subscribing to our Newsletter.
Subscribe
Unsubscribe
296 Subscribers
Family's web sites

Webmaster - Infos
Friends News
Visits

   visitors

   visitors online

Poll
What do you think of the new design of the aldweb Site?
 
Great !
Beautiful
Average
So ugly...
Results
StatPays
En ligne

Colombia : 3
Sweden : 1
China : 5
GoogleBot : 1
United States : 3



Depuis le 11/02/2009

France:3249177
United States:1011143
United Kingdom:527591
Germany:290486
Italy:246117
Canada:178536
Belgium:163583
Japan:124714
Spain:102913
Russian Federation:91107
Switzerland:84533
Netherlands:83691
Mexico:76530
Brazil:66570
Argentina:59224
Czech Republic:51442
Poland:48949
Morocco:47300
China:44018
Colombia:39708
Hungary:38976
Turkey:35325
Australia:35040
Portugal:28839
Sweden:26560
Austria:23412
Taiwan:21649
Finland:20429
Denmark:20080
Venezuela:15533
India:13399
Romania:12812
Korea:11689
Greece:11424
Norway:11118
New Zealand:10788
Chile:10575
Luxembourg:10288
Slovakia:8642
Croatia:8271
Ireland:8085
Ukraine:8063
Indonesia:8016
Malaysia:7445
South Africa:6413
Uruguay:6370
Singapore:6222
Israel:5713
Peru:5160
Estonia:4555
Bulgaria:4407
Thailand:4204
Lithuania:4109
Cote D'Ivoire:3026
Madagascar:2920
New Caledonia:2580
Gibraltar:2569
Belarus:2187
Hong Kong:2146
French Polynesia:2145
Dominican Republic:1720
Philippines:1635
Saudi Arabia:1601
Latvia:1519
Serbia and Montenegro:1518
Pakistan:1487
Moldova:1444
Algeria:1412
United Arab Emirates:1370
Guatemala:1295
Slovenia:1253
Ecuador:1232
Bosnia and Herzegovina:987
Costa Rica:956
Tuvalu:924
Vietnam:915
Monaco:871
Paraguay:807
Egypt:786
Macedonia:541
Bolivia:499
Nicaragua:446
Guadeloupe:435
Cyprus:403
Lebanon:372
Cuba:361
Honduras:361
GoogleBot:355
Netherlands Antilles:350
Kazakstan:338
Syrian Arab Republic:287
Jordan:276
Mauritius:244
Albania:234
Kenya:234
Andorra:223
Ghana:223
Nepal:212
Georgia:202
Reunion:191
Mozambique:180
Congo:180
Uzbekistan:22
Jamaica:2
Zimbabwe:1
Iran:1
Trinidad and Tobago:
forum.gifForum - Topic #12

Forum - Forum
-


active  Topic # 12  Discussion générale PC-E500 (Bascom, Forth...)

18/09/2002 @ 13:22
by aldweb

Anonymous



Vous trouverez dans ce thread du forum une copie d'un long échange d'e-mails entre Claude et Sébastien.
C'est sur la bonne idée de Sébastien que cette discussion d'intérêt général sur le PC-E500 a été mise ici à la disposition de tous.

For you English readers, you will find in this forum's thread a copy of a rich exchange of e-mails between Claude and Sebastien. Sorry, they are both French, so this topic will be in this language (please use an online translator for reading it).

Sebastien is the one who gave the good idea of putting this discussion of general interest on the PC-E500, so that everybody interested can give a look to it.
Write to aldweb   Post an answer  Top

[]   

StartPrevious [ 1 2 3 4 5 ] NextEnd
Answer n 11
--------
18/09/2002 @ 13:33
by Sébastien

Anonymous

visitor
> Pourquoi as tu acheté autant de matos PC E500(s) ?

Parce que je les "upgrade" : J'ai "overclocké" deux machines à 4.8 MHz
(au lieu de 2.304 MHz). Or j'en ai déjà mise une hors d'usage : C'est
donc pour avoir de la réserve en cas de catastrophe ! J'avais aussi en
projet de rajouter une fonction d'horloge, chose que je n'ai jamais
faite bien que j'aie récupéré tous les composants nécessaires (par
courrier du Japon !).

> A quoi ressemblent leurs cartes de 256 Ko ?.la mienne est artisanale et la pile est soudée
sur le circuit :(

Tu peux aller voir sur le site : Il y a des photos. Ce ne sont pas des
copies de l'originale mais je les trouve pas mal (en tout cas, je n'ai
eu aucun problème d'utilisation). Elles sont protégeables en écriture
par un petit "switch", ce qui est bien pratique en cas de crash (d'un
programme Forth ou en langage machine...).


> Je pense que je ne pourrai me faire une idée réelle de forth que lorsque j'aurai fait mes
premiers benchs. Au fait, peut être en as tu déjà fait ? Quelle est la proportion
d'interprété, grosso-modo, dans du code FORTH ?

La nuance entre interprété et compilé en Forth est subtile : Le modèle
utilisé par mon implantation est le "code chaîné direct" (DTC, Direct
Threaded Code). Toute définition Forth commence par une séquence en
langage machine (elles sont toutes appelées par un CALL court). Cette
séquence se réduit à un simple saut vers une routine d'interprétation
d'adresses dans les cas de mots de haut niveau. J'ai codé toutes les
routines critiques du point de vue temps d'exécution en assembleur, les
autres étant en Forth. Par exemple, SM/REM (qui fait la division
symétrique avec reste en double précision) est codée en Forth car le
temps passé dans cette définition l'est en réalité dans le
sous-programme de division non signée UM/MOD (qui lui est en langage
machine). J'avais fait des essais "tout langage machine" : Je ne gagnais
que 10% de temps au risque d'introduire des bogues et d'augmenter la
quantité de code assembleur non trivial (de plus les définitions en
Forth sont souvent moins gourmandes en espace mémoire que le langage
machine qui fait la même chose).

La proportion d'interprété dans le code Forth atteint 50% à peu près
(ce qui le rend 6 à 7 fois plus lent que le langage machine au pire car
il y a des primitives qui sont appelées pour rien). Cela reste toutefois
impressionnant à côté de BASIC :
FOR i = 1 to 10000:NEXT ' Sans le I ça va deux fois plus vite !
prend 14 secondes sur un PC-E500 (à confirmer mais je ne crois pas me
tromper de beaucoup !)
10000 0 DO LOOP
prend 0.5 secondes en Forth ! Et c'est encore pire lorsque l'on fait de
l'arithmétique entière (16 ou 32 bits en Forth) vu que BASIC est obligé
d'utiliser les flottants...

Concernant les primitives :
Il est facile de rajouter une primitive à Forth : on crée une nouvelle
définition et on la "remplit" avec du code hexadécimal par exemple (ou
assembleur si on a eu le courage d'en écrire un). Mon Forth inclut le
mot (CODE;) qui marque le début d'une section en langage machine et que
l'on peut insérer dans n'importe quelle définition. (CODE;) est compilé
automatiquement par le mot DOES> (en général, les mots entre parenthèses
ne sont pas destinés à l'utilisateur normal mais plutôt au "hacker").
DOES> permet de créer des définitions dont le comportement n'est pas
standard en spécifiant celui-ci en Forth de haut niveau (pratique pour
les extensions objet par exemple). Il serait peut-être intéressant
d'ajouter le mot CODE; qui est l'équivalent de DOES> mais qui attend du
code machine et non pas du Forth de haut niveau (on n'a jamais fini
d'étendre un Forth !).

> des questions, tjrs des questions....

Ne t'inquiète pas : J'ai aussi beaucoup de réponses !
Write to Sébastien   Post an answer  Top
Answer n 12
--------
18/09/2002 @ 13:34
by Claude

Anonymous

visitor
Tu m'as parlé de memoire fusionnée ? je ne savais pas que c'était une option envisageable.
comment cela se configure-t-il ?
32+256 ca te parait honnete ?


FORTH :
Je suis encore loin du compte.
J'imagine que sur les differentes implémentations possibles (suggérées) on joue sur le nombre
d'indirections, le nombre de commandes adressables, la vitesse du process global et la taille
de code?
Est ce que DTC est l'implementation naturelle pour les petits systèmes ?
Y a t il un endroit ou sont résumés implementations =>requirements & possibilités +avantages
vs defauts ?
Write to Claude   Post an answer  Top
Answer n 13
--------
18/09/2002 @ 13:35
by Sébastien

Anonymous

visitor
> Tu m'as parlé de memoire fusionnée ? je ne savais pas que c'était une option envisageable.
> comment cela se configure-t-il ?
> 32+256 ca te parait honnete ?

C'est faisable depuis BASIC :
MEM$="B" ' B comme "Both"

> FORTH :
> Je suis encore loin du compte.
> J'imagine que sur les differentes implémentations possibles (suggérées) on joue sur le
nombre d'indirections, le nombre de commandes adressables, la vitesse du process global et la
taille de code?

Oui, cela dit sur les petits systèmes (comme le PC-E500/S) on
s'inquiète surtout de la taille du code du noyau : Un compilateur
optimisant produira généralement un code plus compact qu'un compilateur
de code chaîné naïf mais tiendra difficilement dans 20 ko !
Il existe plusieurs techniques de compilation mises en oeuvre en Forth
(et dans bien d'autres langages) :
- code natif ;
- code octet (repris par Java) ;
- code chaîné indirect ("bytecode" d'Objective Caml, tous les Forths de
la norme "Forth 83") ;
- code chaîné direct ;
- ...
Voici quelques liens intéressants qui discutent des avantages et des
inconvénients des différentes techniques :
http://www.complang.tuwien.ac.at/forth/threaded-code.html
http://www.zetetics.com/bj/papers/

> Est ce que DTC est l'implementation naturelle pour les petits systèmes ?

Elle dépend du processeur. En général le DTC est plus rapide que l'ITC
car il y a une indirection de moins pour interpréter les mots compilés.
De plus, il n'y a pas de différence entre une définition compilée en
code chaîné et une primitive au sens où les deux commencent par du code
machine.
Sur le PC-E500/S, le DTC fait perdre un octet par définition compilée
en code chaîné (le 'jp', première instruction) mais en fait gagner deux
par primitive (pas d'indirection). Or il y a à peu près autant de
primitives que d'autres définitions dans mon Forth...
L'ITC pourrait avoir un avantage sur le DTC : Il permettrait de
contruire un Forth plus robuste (c'est-à-dire dont l'interpréteur a
moins de chances de s'emballer en cas de code erroné, en contrôlant la
validité des adresses figurant en tête de définitions..).

> Y a t il un endroit ou sont résumés implementations =>requirements & possibilités
+avantages vs defauts ?

Cf. plus haut !

Un autre projet intéressant en Forth serait l'écriture d'un compilateur
(légèrement) optimisant qui enlèverait toutes les instructions inutiles
comme DUP, SWAP, etc. ainsi que les CALL de sous-programmes... Mais je
n'ai vraiment pas le temps de m'y atteler pour l'instant.
Write to Sébastien   Post an answer  Top
Answer n 14
--------
18/09/2002 @ 13:35
by Claude

Anonymous

visitor
Te semble t-il normal que je ne puisse pas charger ton S1.RAM contenant ton Forth sur l'emul
NT/2000 ?
A-t-il besoin d'une ROM ou d'une config specifique pour tourner ?

As tu d'autres ordinateurs de poche ?
Write to Claude   Post an answer  Top
Answer n 15
--------
18/09/2002 @ 13:36
by Sébastien

Anonymous

visitor
> Te semble t-il normal que je ne puisse pas charger ton S1.RAM contenant ton Forth sur
l'emul NT/2000 ?

Je n'en sais rien. Je n'ai jamais testé l'émulateur NT/2000 avec mes
fichiers S1.RAM. Je ne vois pas pourquoi ça ne marcherait pas vu que
S1.RAM ne contient qu'un "snapshot" des 4 segments supérieurs de la RAM
du PC-E500/S... Si j'ai le temps demain je récupérerai un émulateur
NT/2000 pour voir.

> A-t-il besoin d'une ROM ou d'une config specifique pour tourner ?

Normalement non.

> As tu d'autres ordinateurs de poche ?

Tandy PC-6 (acheté en classe de première, clone "relooké" du FX-790P
Casio), 2 Sharp PC-E500, 2 Sharp PC-E500S, 1 Sharp PC-1403H (peu servi,
beaucoup de documents pourtant), 1 Casio FX-850P (j'en ai vite fait le
tour, pas très intéressant...).
Write to Sébastien   Post an answer  Top
Answer n 16
--------
18/09/2002 @ 13:39
by aldweb

Anonymous

visitor
Sébastien,

Je me permets de te rappeler que tu possèdes aussi un PC-1360... que je t'avais échangé contre un PC-E500 le jour où nous nous sommes vus pour de vrai dans un bistrot à Paris après avoir échangé de longs e-mails enflammés sur le thème des Pocket Computers, notre passion commune!

Et, comme pour Claude, j'avais trouvé ton adresse e-mail dans un fichier ZIP contenant BASCOM :-)
Write to aldweb   Post an answer  Top
Answer n 17
--------
18/09/2002 @ 13:41
by Claude

Anonymous

visitor
je pense faire de grandes choses (entre autres)... :)
Write to Claude   Post an answer  Top
Answer n 18
--------
18/09/2002 @ 13:41
by Sébastien

Anonymous

visitor
Ah ? Je suis curieux : Tu peux m'en dire plus ?
Write to Sébastien   Post an answer  Top
Answer n 19
--------
18/09/2002 @ 13:47
by Claude

Anonymous

visitor
Terminer mon installation d'arrosage automatique du puits jusqu'au goutte à goutte.
:)

Et me lancer dans le PC-E Forth pardi!.
mais vu ton niveau, les "grandes choses" risquent d'être toutes relatives.
Write to Claude   Post an answer  Top
Answer n 20
--------
18/09/2002 @ 13:51
by Sébastien

Anonymous

visitor
Bonne idée ! Je serai à ta disposition pour les documents. En fichier
attaché je te joins le brouillon de la norme ANS 94 : Tu y trouveras la
définition des mots standards ainsi que des explications intéressantes
sur le langage et sa sémantique en annexe. Je suis parti de ce document
pour écrire mon Forth (c'est un joli nom, PC-E Forth !).
Pour rendre l'environnement franchement intéressant, il reste deux ou
trois choses à faire.
Je m'étais fixé, par ordre d'importance :
- Ajouter les nombres en virgule flottante (pas trop dur si fait
naïvement, mais ce serait bien si c'était performant !) ;
- Fonctions de modification/affichage des touches programmables de
fonction (facile : c'est une histoire d'allocation, le reste est géré
par STDO:SCRN: et mon éditeur Forth tient compte de la configuration de
l'écran) ;
- Un débogueur (en Forth) ;
- La possibilité d'accéder aux variables de BASIC et de lancer des
programmes BASIC (pas trop dur non plus) ;
- Des fonctions graphiques performantes (long, dur, #&#x$ et j'en
passe... Mais les algos sont connus et on dispose des sources du moteur
graphique de VOGUE) ;
- Diverses fonctions système pour gérer les "unités" (niveau IOCS, FCS
c'est OK).
S'il y a des points qui t'intéressent, je peux te donner des
informations plus précises.

> mais vu ton niveau, les "grandes choses" risquent d'être toutes relatives.

C'est un expert de code Java embarqué qui me dit ça !

A+,

Seb.

P-S : Je ne vais pas pouvoir essayer l'émulateur sur ma machine car
j'ai un Windows NT SP3... Je sais c'est nul comme configuration mais
j'en avais marre de consommer de la RAM sans raison. Il faut que je
trouve une autre machine, demain sans doute.
Write to Sébastien   Post an answer  Top
StartPrevious [ 1 2 3 4 5 ] NextEnd
active topic active   closed topic closed   Important! Important!   New New message   -   Correct Correct message   Close Close topic   Make sticky Make sticky
[]



 
^ Top ^