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

Aucun commentaire:

Enregistrer un commentaire