PROJETS

ACCUEIL COMPILATEUR BASIC
NAISSANCE DU PROJET

 Ce projet est né de la décompilation de la rom de l'ORIC ATMOS suite à une lecture du magazine LIST (numéro 7, mars 1985). L'article donnait les performances des basics des différents ordinateurs de l'époque tels que APPLE II, C64, ZX81, ZX SINCLAIR, etc. Et les résultats étaient fort surprenants ... En effet, l'ORIC ATMOS était fort mal placé. Le plus étrange est le fait que l'ORIC ATMOS était plus rapide que l'ORIC 1 !!! La rom ayant peu changé d'où viennent ces différences ?
De plus, l'ORIC et le c64 partage le même basic microsoft. Or le commodore est le plus rapide. Bizarre, non ? Puis j'ai comparé les machines ayant le même processeur :
APPLE IIc (BASIC APPLE), ATARI 600XL (BASIC ATARI ??), C64 (BASIC MICROSOFT), VIC 20 (BASIC MICROSOFT), ACORN BBC (BASIC ACORN), ACORN ELECTRON (BASIC ACORN) et MPF II (BASIC compatible APPLE).
VERDICT : ACORN BBC, ACORN ELECTRON, APPLE IIc, MPF II, C64, VIC 20, ATMOS, ORIC 1, ATARI 600 XL.

Troublant, non ? Le résultat m'étonne guère. Acorn est une société réputée pour leur matériel et leur soft. Pour l'apple II, je pense que M. WOZNIAK a bien travaillé sur le basic ...
Mais revenons aux résultats des ORIC : bien que le C64 soit devant il n'y a pas beaucoup de différences avec l'ORIC. Le basic de l'ORIC présente des faiblesses sur les gosub et sur les boucles. La particularité du basic microsoft est d'utiliser les opérations sur les nombres décimaux lorsqu'il traite les entiers ! Si nous étudions attentivement le source de la rom nous constatons qu'il y a beaucoup d'appels aux routines de conversions décimales vers entiers et vice et versa.
REMARQUE : le basic de l'ORIC est bien moins "rangé" que celui du C64 !! Il manque la vectorisation des messages d'erreurs. Simple oubli ? Alors que le C64 le propose ...

Il existe au moins un compilateur basic pour ORIC. Si je ne me trompe pas, il s'appelle LM. Son principal inconvénient est d'être résident en mémoire. Cela implique donc que la taille du programme à compiler soit limitée.
Mais voyons ce que propose ce nouveau compilateur ...


PRINCIPE

Le compilateur travaillera sur un programme basic en version texte et fournira le programme compilé en assembleur 6502

NOTE DE VERSION

V0.1 : ??/??/20?? : première version

V0.2 : 30/05/2013 : Génération des expressions mathématiques (A=A+1/5) et génération du code pour la plupart des instructions sauf PRINT, etc.

PLATEFORME TECHNIQUE


DEMARCHE

DESCRIPTION

Le couple LEX et YACC permet de vérifier la validité du fichier en entrée suivant une grammaire. Et il fournit en même temps le découpage en "token" qui seront traduits en code assembleur.

LIMITATION

Le compilateur a une limitation. En effet, les commandes GOTO/GOSUB nom_de_variable ne seront pas traitées par le programme.

OPTIMISATION

Le compilateur permettra plusieurs niveaux d'optimisations :

PRECISION

La version actuellement proposée est inexploitable. Il reste beaucoup de travail de codage et de validation.

TELECHARGEMENT

VERSION 0.01 compil.zip NE FONCTIONNE PAS !  NOT RUN !!!
VERSION 0.02 compile_02.tar.gz 31/05/2013 NE FONCTIONNE PAS !  NOT RUN !!!