PROJETS |
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 !!!