LG KS 360

English Version
WikipédiA



Mon nouveau petit jouet est... programmable!

Un véritable petit ordinateur!

Programmable en PASCAL?

Voir la page WEB de Nabster, d'un autre programmeur en MidletPascal, plusieurs programmes en téléchargement pour votre mobile! (avec sources)

Avec le kit MidletPASCAL 2.02, on peut se passer du JAVA et écrire directement en Pascal une application pour portables. Cet environnement de programmation génère directement du code JAVA à partir d'une programmation Pascal classique. Vous obtenez les deux fichiers JAD et JAR pour faire tourner votre application sur le téléphone.
Pour profiter de l'option RUN vous aurez besoin de l'émulateur de téléphone qui se trouve intégré au WTK de SUN et téléchargeable ici!

L'environnement MidletPascal



L'écran de titre de mon Master Mind
Exemple avec le Master Mind

J'ai écrit une petite application dont je vous livre ici le projet complet: Il est assez complet puisqu'il utilise les instructions de dessin, le traitement des images, du clavier et des commandes.

Voir le code source.

Le plateau du jeu
Programmable en BASIC?

Après quelques recherches sur Internet, je suis tombé sur le site du CellularBASIC. Il s'agit d'un interpréteur BASIC complet programmé en JAVA. Ne connaissant rien au JAVA j'ai un peu ramé pour l'adaptation... Voici les problèmes qui étaient rencontrés:
Voici l'écran de démarrage du CellularBASIC enfin adapté!
Le menu est complet, il permet d'éditer un programme, de le sauver, de le charger et bien sûr, de l'exécuter.
Une petite image de l'édition d'un programme. Sur ce portable, il est certain que le clavier complet est un atout non négligeable.

On regrettera pourtant que certains symboles soient un peu difficiles à taper (=, ", parenthèses).
Sinon, préparer le source sur PC (fichier format texte) et le sauvegarder sur la MicroSD dans le répertoire ZAM avec l'extention *.ZAM! Ainsi l'édition sera facilitée. Il se chargera sans problème dans le CellularBASIC.

L'éditeur du Basic pose problème sur le KS360 car il semblerait que le source soit limité à 512 octets lors de l'édition (même si le texte chergé peut atteindre plusieurs Ko, dès qu'on édite seules les 512 premiers restent à l'écran). J'ai résolu ce problème en écrivant un petit éditeur en MidletPascal (voir plus bas).

Un exemple de programme:
sub main
CLS
FOR I = 1 TO 50
X = INT(RND * width)
Y = INT(RND * height)
R = INT(RND * 50)
if R < 17 then
   	FILLON
else
	FILLOFF
end if
color(rnd*256,rnd*256,rnd*256)
CIRCLE (X, Y, R)
NEXT I
end sub

Le fameux problème des huit reines:
Cliquer pour le source.
sub main
t=timemilli
q=0 : i=0 : sol=0
cls : print "Recherche..."

while i<>-2
   q=q+1
   if q=9 then
      call dessin
   else
      r(q)=1
   end if
   i=-1
   
while i=-1
   if q<9 then
      s(q)=q+r(q) : d(q)=q-r(q)
      i=1 : p=q
      while i<p
         if r(i)=r(p) or s(i)=s(p) or d(i)=d(p) then
            i=-1 : p=-1
         else

92 solutions trouvées et affichées en 264 secondes
(l'écran affiche 311 pour une précédente version).
            i=i+1
         end if
      wend
   else
      q=8
   end if
   
   if i=-1 then
      p=1
      while p=1
         if r(q)<8 then p=0
         else q=q-1
            if q=0 then p=0 end if
         end if
      wend
      if q=0 then
         i=-2
      else
         r(q)=r(q)+1
      end if
   end if
wend
wend
end sub
sub dessin
   cls : sol=sol+1
   x=(width-160)/2 : y=(height-160)/2
   color(255,0,0) : filloff : box(x-1,y-1,162,162)
   color(200,200,200) : fillon : box(x,y,160,160)
   color(120,0,0) : c=0
   for k=x to x+140 step 20
      for j=y to y+140 step 20
      	 if c=0 then
            box(k,j,20,20)
         end if
         c=1-c
      next j
      c=1-c
   next k
   color(0,0,255) : x=x-10 : y=y-10
   for k=1 to 8
      circle(x+k*20,y+r(k)*20,7)
   next k
   color(255,255,255)
   clt : print sol
   print int((timemilli-t)/100)/10
end sub


Ce que j'ai ajouté:

A l'AIDE!
Ce BASIC n'a pas d'instruction INKEY$! J'ai été incapable d'en ajouter une malgré mes recherches sur les Canvas de Java. Si quelqu'un pouvait s'y atteler...


Les adaptations à réaliser!

Si tout ceci vous semble un peu difficile, contactez moi pour un package clés en main.

Bien sur il vous faut un système de développement JAVA... J'ai choisi SUN JAVA Wireless Toolkit for CLDC 2.5 disponible gratuitement sur le site de SUN Microsystems.

Sur le site du CellularBASIC, téléchargez les exemples cellularbasic.10.ex.zip, décompressez et copiez les sur votre carte MicroSD dans le répertoire ZAM. (Si vous n'avez pas de carte, copiez les sur la mémoire interne dans le répertoire ZAM).

Sur le site du CellularBASIC, téléchargez les sources cellularbasic.10.wtk.zip et effectuez les modifications suivantes dans le fichier CellularBASIC.java: Ainsi les appels LOAD et SAVE seront redirigés vers la carte MicroSD (ou vers la mémoire interne).

Dans le WTK 2.5, utilisez "Project"/"Package"/"Create package" pour recréer un nouveau fichier JAD et un nouveau JAR.

Pour finir, éditez le fichier CellularBASIC.JAD et ajoutez cette ligne: Il ne reste plus qu'à copier ces deux fichiers vers le portable et à les installer!

Mon éditeur MPedit

Pour pallier aux défauts de l'éditeur du CellularBASIC, et notemment la limite des 512 octets, voici un petit éditeur de textes que j'ai écrit en MidletPASCAL. Il est basé sur le principe d'un éditeur russe TextEditor (ce dernier posait d'énormes problèmes car on devait confirmer les opérations de fichiers à tout bout de champ):
Le code source apparait, on peut naviguer dedans et lorsqu'on choisit EDIT, seules les 6 lignes à partir du curseur sont chargées dans une boite d'édition. On peut écrire, corriger, effacer, puis ce bloc est réinséré avec la commande ACCEPT.

Navigation dans le code source!

Edition d'un bloc de 6 lignes
Vous pouvez télécharger MPedit. L'archive contient le dossier complet du projet:
  • Code source en MidletPASCAL (dossier SRC)
  • Code exécutable à installer sur le LG KS360 (dossier BIN)
  • Code source de ma librairie JAVA d'accès aux fichiers (car le MPascal ne le fait pas en standard!)
  • Fichier "class" de ma librairie Lib_textfile à mettre dans le dossier LIB du MidletPASCAL
Par défaut, l'accès est dans la carte MicroSD, dossier ZAM. Vous pourrez modifier le source sinon. A moins que vous ne soyez patients, car je compte ajouter une option de chemin par défaut accessible de l'éditeur.


15 décembre 2007