j'ai uploade une premiere ebauche de code relogeable, version 1.10 ici.
J'ai decompose les sources de la facon suivante :
Code : Tout sélectionner
MAIN.asm ; overall code structure
EQUATES.asm ; EQU definitions
MACROS.asm ; word header macros
WORKAREA.asm ; variables, user area
KERNEL.asm ; machine code kernel
HIGHLEVEL.asm ; FORTH words kernel
-D ROM=1 specifie que WORKAREA et le dictionnaire utilisateur sont en RAM, KERNEL et HIGHLEVEL en ROM
si cette option n'est pas precisee, l'ensemble est alloue en RAM comme avant
- D ORGRAM=xxxx specifie l'addresse de depart de la RAM (default 00C5)
-D ORGROM=xxxxx specifie l'adresse de depart de la ROM (default C000)
J'ai verifie que le code tourne toujours... seul hic, mais serieux a mon avis :
le BIN genere demarre systematiquement de 0000 (il a donc un espace libre a zero au debut du fichier qui ecrase tout quand on le charge). Cela vient du fait que j'ai du mettre un ORG 0000 en debut de fichier, sinon lhasm rejette les ordres .ORIGIN: ORGRAM ou ORGROM car etant d'une valeur inferieure a 40C5, valeur pas defaut de lhasm. Que me conseillez-vous pour contourner ce probleme ? je pourrais preciser -O=<valeur de ORGRAM> mais je trouve ca redondant.