mercredi 18 septembre 2013

Le simulateur en ligne est à présent disponible sur mon nouveau site http://www.aigogeek.com/MainPage/simulateur.html

Il est pour le moment possible de voir les statistiques d'exécution du simulateur (qui tourne non-stop depuis à peu près 48h), et de voir l'écran LCD émulé. (dans un navigateur récent avec support du HTML5)
Bien que le taux de rafraîchissement de ce dernier ne soit pas très élevé, cela me permet d'avoir mon environnement de simulation disponible depuis n'importe quelle machine.

The online version of the simulator is now available on my new website :
http://www.aigogeek.com/MainPage/simulateur.html

Yet, you can have access to runtime statistics for the emulator (currently running since two full days already), and see the result on an emulated LCD screen (in a decent browser with HTML5 capabilities).
The refresh rate of the LCD module is not very high, but it is enough for a simulation environment available on any device.

samedi 17 août 2013

Après une pause de quelques mois, le projet continue avec prochainement une version en ligne du simulateur. Le but sera surtout de me permettre un accès centralisé au simulateur et de pouvoir y accéder depuis n'importe laquelle de mes machines (même de ma tablette).
Technologies utilisées : Java, Spring (Core, Web), JAX-RS, Javascript

After a few months, the project is still alive with soon an online version of the simulator. The goal is mainly to provide a centralized access to the simulation environment from any machine (even my Kindle Fire Tab). Technologies used : Java, Spring (Core, Web), JAX-RS, Javascript

lundi 10 décembre 2012

Modification de l'architecture cible

Faire avec les ressources réduites de l'Attiny 2313 n'est pas une affaire simple, il faut réussir à caser un OS et un interpréteur dans 2Ko de flash, un programme dans 128 octets d'EPROM et travailler avec 128 octets de RAM (pour les variables Basic, l'OS ...).
J'ai un temps pensé à utiliser une EEPROM I2C, mais au final je pars sur une première évolution positive en utilisant un Attiny 4313 (que j'ai fini par recevoir après quelques péripéties). Ce dernier a le mérite de doubler les valeur sus-mentionnées, ce qui est déjà beaucoup plus confortable, tout en restant bien sûr 100% compatible avec le 2313. La cartographie mémoire en est simplifiée, et je peux maintenant la dévoiler sans rougir.

Programming an Os and a Basic interpreter with the humble Attiny 2313 is not a simple matter, you have to do with as few as 2Kb of FlashROM, 128 bytes of EPROM (to store the GFA Program) and 128 bytes of RAM.
Therefore, I fist envisaged to use a I2C EEPROM, but dealing with signals synchronization bores me, so I came into a much simpler solution : use a more powerful Attiny 4313. The latter offers twice the room that the 2313 has for every kind of memory. It's now easier to organize memory, and the code is also cleaner. See the memory map hereunder for the details.


jeudi 25 octobre 2012

It's the final countdown ...

Ce n'est pas tout à fait le compte à rebours de la chanson du groupe Europe, mais c'est une petite application chronomètre, et la première application tout court.
Le chrono ne compte que jusqu'à 4min 15s. La raison est simple, l'interpreteur ne gère pour le moment que les variables 8 bits.
C'est tout de même un grand pas avec la gestion des fonctionnalités suivantes : affectations sur 8 bits, expressions simples (calcul arithmétiques sur des variables et constantes), boucle GOTO, instructions PAUSE, PRINT (avec gestion du ';'), et CLS.
Suivent une photo en action et le code source chargé dans l'EPROM.
Au passage, ce simple programme occupe déjà la quasi totalité des 128 octets de l'EPROM, il va donc falloir que je me penche sur la question d'une EPROM I2C pour stocker le programme GFA.

It's not final, and it's not counting down but up, but it's already quite an achievement for me and the first actual application.
This chrono application counts to 4min 15 s only, due to the fact that the interpreter only handles 8 bits variables. 
The following instructions are now supported : 8bits variables, simple arithmetic expressions, loops (GOTO), PAUSE, PRINT (with/without crlf) and CLS.
Hereunder a picture and the source code of the program loaded in the AVR's EPROM. (the later is already almost completely filled with this simple program so an urgent action will be to think about a bigger, I2C interfaced, EEPROM).





Code source :

a|=0
VOID INP(2)
debut:
PAUSE 50
INC a|
m|=a|/60
s|=a| MOD 60
CLS
PRINT m|;":";s|
GOTO debut

mercredi 3 octobre 2012

Premier programme GFA AVR

Voici le premier programme GFA exécuté sur OrdiGFA Nano.
Le programme exécuté :
PRINT " Premier programme"
PRINT "GFA BASIC AVR"

Le résultat :

jeudi 27 septembre 2012

Les outils de développement (suite)

L'OrdiGFA Nano utilise un afficheur LCD commandé par RS485 de la société Droids : le Muin LCD.
Pour pouvoir tester l'envoi correct des données vers l'afficheur LCD, j'ai développé un simulateur de cet afficheur écrit en GFA Basic, à l'aide de l'excellent IDE GBE (hi LP060 !) sous le non moins excellent aranym.
Le programme est exécuté sous l'émulateur Hatari, qui permet d'émuler le port série via un fichier.
En configurant Hatari pour utiliser donc comme port série le fichier généré par le Simulateur/assembleur AVR décrit dans le précédent billet, on peut simuler une partie supplémentaire du Nano.


mercredi 26 septembre 2012

Planning prévisionnel du projet

Un joli diagramme de Gantt (qui ne reflète pas l'avancement actuel, mais celui du début du mois) qui illustre les différentes étapes, objectifs et dates prévues.