ROM Alice 32 : Désassemblage et commentaires
Modérateurs : Papy.G, fneck, Carl
Re: ROM Alice 32 : Désassemblage et commentaires
Bonjour à tous.
Une mise à jour d'une bonne cuvée je pense ...
Voici de nouvelles versions :
ROM V1.0 : fichier V0.70 V5 : c'est une mise à jour des sources de la rom originale avec les dernières découvertes durant le développement de la V0.97.
ROM V2.0 : fichier V0.95 WIP V4
+ Ajout de la commande BOX
+ Correction de l'intervalle (X,Y) possible de la
commande basic PLOT
+ Ajout de la commande CARG b,n, ...
+ Début de la réorganisation des variables
définies à partir de l'adresse $3000
+ Suppression des HOOKS + réorganisation du code
+ Récupération espace mémoire
+ Correction de l'inversion des variables CURX_PRT et XMAX_PRT
ROM V3.xx : ficchier V0.97 WIP6
Cette version est utilisable en l'état (sauf pour les commandes TRUE et FALSE).
Mais il reste encore des bugs à corriger ...
+ Disparition de l'assembleur
+ La commande BASIC CLOAD est de nouveau fonctionnelle dans l'émulateur DCALICE
+ Réorganisation du code !
- Déplacement du noyau BASIC de la fin au début de la
rom
- Regroupement des constantes mathématiques
- Harmonisation des noms des constantes
- Regroupement du code par famille :
- calcul mathématique
- manipulation de chaîne
- routine spécifique (OS_XXXX)
- Le découpage de la rom est le suivant :
- BASIC
- ÉDITION
- I/O : CLAVIER/GRAPHISMES/K7/SON
- ZONE LIBRE
- ZONE VECTEURS CPU
+ Suppression de ASS / RESUME
+ Report V0.95 de la correction de l'inversion des
variables CURX_PRT et XMAX_PRT
+ Correction de CRT_TEMPO en TEMPO_PRT
+ Correction de la fonction QUICK_INT qui faisait
référence à ACC1 codé en dur au lieu de son
nom (ldx #$00C9 ==> ldx #ACC1
+ Nettoyage des variables (changement de nom, d'
utilisation, déplacement en mémoire vive, etc.)
pour des soucis de rationalisation et de clarté
+ Optimisation de la commande BASIC SGN
gain de temps estimé 10%
+ Développement de repeat until
+ Développement de while wend
+ romRND : remplacement de bsr j_romINT_RomRND par
jsr romINT
+ Ajout des commandes de DEBUG TRON et TROFF
+ La commande BASIC RESTORE peut prendre un
nouveau paramètre ligne
+ Ajout de la commande ELSE
+ Ajout de TRUE / FALSE
+ Ajout de INC A / DEC B / SWAP A,B
+ Ajout de DEF FN
La suite d'ici fin 2021 :
+ Renommer les noms des fichiers suivant le numéro de version pour plus de visibilité
V0.70 -> V1.00 : version initiale de la rom BASIC de l'ordinateur ALICE 32
V0.95 -> V2.xx : version V2.xx de la rom BASIC de l'ordinateur ALICE 32 rétrocompatible V1.xx
V0.95 -> V3.xx : version V3.xx : nouvelle version du BASIC non compatible d'un point de vue binaire avec la V1.xx
+ Stabiliser le code des nouvelles commandes ou fonction (REPEAT ... UNTIL, BOX, FILL, etc.)
+ Correction de TRUE et FALSE pour passer d'une commande BASIC en une fonction BASIC
+ Ajouts de nouvelles commandes : DRAW, USING, etc.
+ Ajout d'une nouvelle constante mathématique : TWOPI = 2*PI
+ Ajout des variables entières : A% + routines mathématiques entières : addition, soustraction, multiplication, division, comparaison, etc.
+ Modification de la commande FOR pour gérer directement les variables entières sans passer par les routines mathématiques de type float
+ Ajout du codage hexadécimal des nombres : POKE #4000,#10 ou POKE &4000,&10 : la syntaxe n'est pas stabilisée ...
+ Optimisation de la commande basic DIM
+ Nettoyage de code pour supprimer les doublons de code
Une mise à jour d'une bonne cuvée je pense ...
Voici de nouvelles versions :
ROM V1.0 : fichier V0.70 V5 : c'est une mise à jour des sources de la rom originale avec les dernières découvertes durant le développement de la V0.97.
ROM V2.0 : fichier V0.95 WIP V4
+ Ajout de la commande BOX
+ Correction de l'intervalle (X,Y) possible de la
commande basic PLOT
+ Ajout de la commande CARG b,n, ...
+ Début de la réorganisation des variables
définies à partir de l'adresse $3000
+ Suppression des HOOKS + réorganisation du code
+ Récupération espace mémoire
+ Correction de l'inversion des variables CURX_PRT et XMAX_PRT
ROM V3.xx : ficchier V0.97 WIP6
Cette version est utilisable en l'état (sauf pour les commandes TRUE et FALSE).
Mais il reste encore des bugs à corriger ...
+ Disparition de l'assembleur
+ La commande BASIC CLOAD est de nouveau fonctionnelle dans l'émulateur DCALICE
+ Réorganisation du code !
- Déplacement du noyau BASIC de la fin au début de la
rom
- Regroupement des constantes mathématiques
- Harmonisation des noms des constantes
- Regroupement du code par famille :
- calcul mathématique
- manipulation de chaîne
- routine spécifique (OS_XXXX)
- Le découpage de la rom est le suivant :
- BASIC
- ÉDITION
- I/O : CLAVIER/GRAPHISMES/K7/SON
- ZONE LIBRE
- ZONE VECTEURS CPU
+ Suppression de ASS / RESUME
+ Report V0.95 de la correction de l'inversion des
variables CURX_PRT et XMAX_PRT
+ Correction de CRT_TEMPO en TEMPO_PRT
+ Correction de la fonction QUICK_INT qui faisait
référence à ACC1 codé en dur au lieu de son
nom (ldx #$00C9 ==> ldx #ACC1
+ Nettoyage des variables (changement de nom, d'
utilisation, déplacement en mémoire vive, etc.)
pour des soucis de rationalisation et de clarté
+ Optimisation de la commande BASIC SGN
gain de temps estimé 10%
+ Développement de repeat until
+ Développement de while wend
+ romRND : remplacement de bsr j_romINT_RomRND par
jsr romINT
+ Ajout des commandes de DEBUG TRON et TROFF
+ La commande BASIC RESTORE peut prendre un
nouveau paramètre ligne
+ Ajout de la commande ELSE
+ Ajout de TRUE / FALSE
+ Ajout de INC A / DEC B / SWAP A,B
+ Ajout de DEF FN
La suite d'ici fin 2021 :
+ Renommer les noms des fichiers suivant le numéro de version pour plus de visibilité
V0.70 -> V1.00 : version initiale de la rom BASIC de l'ordinateur ALICE 32
V0.95 -> V2.xx : version V2.xx de la rom BASIC de l'ordinateur ALICE 32 rétrocompatible V1.xx
V0.95 -> V3.xx : version V3.xx : nouvelle version du BASIC non compatible d'un point de vue binaire avec la V1.xx
+ Stabiliser le code des nouvelles commandes ou fonction (REPEAT ... UNTIL, BOX, FILL, etc.)
+ Correction de TRUE et FALSE pour passer d'une commande BASIC en une fonction BASIC
+ Ajouts de nouvelles commandes : DRAW, USING, etc.
+ Ajout d'une nouvelle constante mathématique : TWOPI = 2*PI
+ Ajout des variables entières : A% + routines mathématiques entières : addition, soustraction, multiplication, division, comparaison, etc.
+ Modification de la commande FOR pour gérer directement les variables entières sans passer par les routines mathématiques de type float
+ Ajout du codage hexadécimal des nombres : POKE #4000,#10 ou POKE &4000,&10 : la syntaxe n'est pas stabilisée ...
+ Optimisation de la commande basic DIM
+ Nettoyage de code pour supprimer les doublons de code
- Pièces jointes
-
- rom_ALICE32_V0.97_CLEAN_ALL_WIP6.asm.zip
- (109.64 Kio) Téléchargé 89 fois
-
- rom_ALICE32_V0.70_CLEAN_ALL_V5.asm.zip
- (134.01 Kio) Téléchargé 98 fois
-
- rom_ALICE32_V0.94_CLEAN_ALL_WIP_V8.asm.zip
- (134.35 Kio) Téléchargé 93 fois
Re: ROM Alice 32 : Désassemblage et commentaires
La version 0.95 WIP 4 en plus
- Pièces jointes
-
- rom_ALICE32_V0.95_CLEAN_ALL_WIP_V4.asm.zip
- (135.85 Kio) Téléchargé 99 fois
- Mokona
- Messages : 1043
- Inscription : 17 déc. 2016 22:01
- Localisation : Nord Est des Yvelines
- Contact :
Re: ROM Alice 32 : Désassemblage et commentaires
Wow quel boulot ! Bravo.
- Patrice
- Messages : 1562
- Inscription : 14 janv. 2008 10:42
- Localisation : https://www.ville-saintes.fr/
- Contact :
Re: ROM Alice 32 : Désassemblage et commentaires
Vraiment un super boulot et énorme tâche en même temps. Un très grand bravo pour cela!!!
Re: ROM Alice 32 : Désassemblage et commentaires
Une nouvelle fournée pour Noël.
Les noms des fichiers reflètent maintenant le numéro de version du BASIC.
Nous avons donc :
Pour la rom INITIALE : V1.00_CLEAN_ALL_WIP_Vx avec x l'incrément des différentes mises à jour. Pour rappel, c'est le désassemblage de la version initiale de la rom ALICE 32
Pour la rom AMELIOREE : V2.ZZ_CLEAN_ALL_WIP_Vy avec ZZ le numéro de version des différentes mises à jour et y le nombre de différents tests/améliorations pour une version ZZ donnée. Pour rappel, c'est une version optimisée de la V1.00 en assurant une compatibilité source et binaire.
Pour la rom ETENDUE : V3.WW_CLEAN_ALL_WIMP_Vv avex WW le numéro de version des différentes mises à jour et v le le nombre de différents tests/améliorations pour une version WW donnée. Pour rappel, c'est une nouvelle version du BASIC d'origine. Elle montre les possibilités de la machine. Elle est compatible au niveau source avec la V1.0.
Vous trouverez un entête de chaque fichier listant les améliorations, modifications ou optimisations pour chaque version.
Carnet de route 2022:
1er trimestre :
1 - Poursuite de la mise à jour du source de désassemblage de la rom initiale V1.0
2 - Poursuite des ajouts des nouvelles fonctionnalités dans la rom étendue V3.0 :
A - RENUM
B - gestion des entiers, de l'hexadécimale
C - Suppression du code inutile, réorganisation du code, simplification du code
Note : la V2.0 ne subira pas de changement hors report de mises à jour de commentaires de la V1.0
2eme trimestre :
1 - Optimisation de la V3.00 : codage des constantes numériques directement dans le source via un token BASIC
Gain espéré :
A - Dans les opérations et dans les appels via ON GOTO/GOSUB, GOSUB/GOTO : cela permettra d'enlever les opérations de conversion ASCII -> BINAIRE,
B - La commande BASIC RENUM pourrait bénéficier de cette optimisation.
Perte estimée :
A - Temps d'exécution durant la phase d’interprétation des lignes de commandes,
B - Temps d'affichage de la fonction LIST.
CONSTATION :
1 - La version étendue du BASIC me semble plus réactive (subjectif ?). Ma marge de manœuvre étant maintenant réduite sur les optimisations
(le processeur utilisé limite grandement les possibilités), je m'attache maintenant à implémenter des fonctionnalités "utiles".
2 - D'après mes constations, cette machine aurait du mériter à l'époque un BASIC digne de ce nom malgré les limitations techniques
Les noms des fichiers reflètent maintenant le numéro de version du BASIC.
Nous avons donc :
Pour la rom INITIALE : V1.00_CLEAN_ALL_WIP_Vx avec x l'incrément des différentes mises à jour. Pour rappel, c'est le désassemblage de la version initiale de la rom ALICE 32
Pour la rom AMELIOREE : V2.ZZ_CLEAN_ALL_WIP_Vy avec ZZ le numéro de version des différentes mises à jour et y le nombre de différents tests/améliorations pour une version ZZ donnée. Pour rappel, c'est une version optimisée de la V1.00 en assurant une compatibilité source et binaire.
Pour la rom ETENDUE : V3.WW_CLEAN_ALL_WIMP_Vv avex WW le numéro de version des différentes mises à jour et v le le nombre de différents tests/améliorations pour une version WW donnée. Pour rappel, c'est une nouvelle version du BASIC d'origine. Elle montre les possibilités de la machine. Elle est compatible au niveau source avec la V1.0.
Vous trouverez un entête de chaque fichier listant les améliorations, modifications ou optimisations pour chaque version.
Carnet de route 2022:
1er trimestre :
1 - Poursuite de la mise à jour du source de désassemblage de la rom initiale V1.0
2 - Poursuite des ajouts des nouvelles fonctionnalités dans la rom étendue V3.0 :
A - RENUM
B - gestion des entiers, de l'hexadécimale
C - Suppression du code inutile, réorganisation du code, simplification du code
Note : la V2.0 ne subira pas de changement hors report de mises à jour de commentaires de la V1.0
2eme trimestre :
1 - Optimisation de la V3.00 : codage des constantes numériques directement dans le source via un token BASIC
Gain espéré :
A - Dans les opérations et dans les appels via ON GOTO/GOSUB, GOSUB/GOTO : cela permettra d'enlever les opérations de conversion ASCII -> BINAIRE,
B - La commande BASIC RENUM pourrait bénéficier de cette optimisation.
Perte estimée :
A - Temps d'exécution durant la phase d’interprétation des lignes de commandes,
B - Temps d'affichage de la fonction LIST.
CONSTATION :
1 - La version étendue du BASIC me semble plus réactive (subjectif ?). Ma marge de manœuvre étant maintenant réduite sur les optimisations
(le processeur utilisé limite grandement les possibilités), je m'attache maintenant à implémenter des fonctionnalités "utiles".
2 - D'après mes constations, cette machine aurait du mériter à l'époque un BASIC digne de ce nom malgré les limitations techniques
Re: ROM Alice 32 : Désassemblage et commentaires
Bonjour.
Avec les fichiers et le détail des ajouts et modifications pour la V3.10 :
; V3.10 2021/08/27 :
+ Changement de numérotation du nom du fichier
source : V0.97 devient V3.10
+ Les commandes TRUE et FALSE deviennent enfin des
constantes
+ Ajout de la constante TWOPI = 2 * PI
+ Ajout du calcul de la borne du numéro maximal de
ligne + maj commentaire lié à LINGET
+ 042 : Optimisation légère sur cmdRESTORE
+ O43 : Optim. bsr jmpFMULT_SubMapApproximxation
en jsr FMULT (optim. en vitesse pas en place !)
+ Déplacement des données liées à MATHTBL
+ Déplacement d'un jmp setError0x02_SYNTAXERROR
+ 044 : suppression de pshx/pulx dans la fonction
GR_readScreenAtHOME
+ Suppression de la fonction OS_convUnderscore
et GR_storeAToR1_EF9345
+ La séquence de touche CTRL+L ne génère plus
le mot clé PEEK mais effectue un CLS
+ Simplification de la commande BASIC CLS et
suppression GR_getParamCLS
+ Optimisation sur les commandes basic TEXT et
LORES
+ Ajout des commandes BASIC AUTO et DEL
+ Optimisation du code pour la commande FILL
et la fonction setMaskColor : Gain 2 cyles
+ Simplication des constantes cOS_DEV_*
+ Personnalisation de l'étiquette loc_E362 en
next3IsUnknownTokenBasic
+ Correction du contenu des constantes d'erreur
changement de nom et de contenu
+ Dans romCLEAR, remplacement de la constante
numérique $3A par cBAS_OFS_STK
+ Correction d'un commentaire sur cBAS_OFS_STK
+ Correction commentaire FREFAC
+ Dans ENDREL_FRMEVL, remplacement de la constante
numérique $07 par cBAS_TOKEN_sup-cBAS_TOKEN_PLUS
+ Nettoyage de commentaires inutiles
+ Remplacement des constantes numériques lièes
à la précédence des opérations mathématiques par
des constantes alpha (cBAS_PREC_xxx)
Avec les fichiers et le détail des ajouts et modifications pour la V3.10 :
; V3.10 2021/08/27 :
+ Changement de numérotation du nom du fichier
source : V0.97 devient V3.10
+ Les commandes TRUE et FALSE deviennent enfin des
constantes
+ Ajout de la constante TWOPI = 2 * PI
+ Ajout du calcul de la borne du numéro maximal de
ligne + maj commentaire lié à LINGET
+ 042 : Optimisation légère sur cmdRESTORE
+ O43 : Optim. bsr jmpFMULT_SubMapApproximxation
en jsr FMULT (optim. en vitesse pas en place !)
+ Déplacement des données liées à MATHTBL
+ Déplacement d'un jmp setError0x02_SYNTAXERROR
+ 044 : suppression de pshx/pulx dans la fonction
GR_readScreenAtHOME
+ Suppression de la fonction OS_convUnderscore
et GR_storeAToR1_EF9345
+ La séquence de touche CTRL+L ne génère plus
le mot clé PEEK mais effectue un CLS
+ Simplification de la commande BASIC CLS et
suppression GR_getParamCLS
+ Optimisation sur les commandes basic TEXT et
LORES
+ Ajout des commandes BASIC AUTO et DEL
+ Optimisation du code pour la commande FILL
et la fonction setMaskColor : Gain 2 cyles
+ Simplication des constantes cOS_DEV_*
+ Personnalisation de l'étiquette loc_E362 en
next3IsUnknownTokenBasic
+ Correction du contenu des constantes d'erreur
changement de nom et de contenu
+ Dans romCLEAR, remplacement de la constante
numérique $3A par cBAS_OFS_STK
+ Correction d'un commentaire sur cBAS_OFS_STK
+ Correction commentaire FREFAC
+ Dans ENDREL_FRMEVL, remplacement de la constante
numérique $07 par cBAS_TOKEN_sup-cBAS_TOKEN_PLUS
+ Nettoyage de commentaires inutiles
+ Remplacement des constantes numériques lièes
à la précédence des opérations mathématiques par
des constantes alpha (cBAS_PREC_xxx)
Re: ROM Alice 32 : Désassemblage et commentaires
Les fichiers :
- Leraptor06
- Messages : 691
- Inscription : 15 févr. 2022 10:34
- Localisation : Mandelieu
Re: ROM Alice 32 : Désassemblage et commentaires
Bonjour,
Je découvre seulement ce sujet puisque j'ai enfin un alice90 fonctionnel. C'est un travail énorme qui a été fait, bravo et merci.
Je découvre seulement ce sujet puisque j'ai enfin un alice90 fonctionnel. C'est un travail énorme qui a été fait, bravo et merci.
Jp
Re: ROM Alice 32 : Désassemblage et commentaires
Quel travail
Bravo
Bravo
Re: ROM Alice 32 : Désassemblage et commentaires
Bonjour à tous.
Merci pour les retours positifs.
Je n'ai pas chômé cette année et j'ai essayé avec le peu de temps à ma disposition pour continuer à travailler sur la nouvelle ROM.
J'ai amélioré les commentaires du source de la rom en V1.0 (source originel).
J'ai amélioré un peu le code de la rom V2.00 (qui est rétrocompatible avec la V1.0).
Pour la V3.xx : c'est une nouvelle rom qui améliore grandement la V1.0 et elle n'est plus compatible ni en source ni en binaire avec la V1.0.
J'ai ajouté la fonction LINE, ajouté le traitement des entiers : l'addition et la soustraction ainsi que la multiplication devrait fonctionner. Le AND et le OR aussi (je l'espère). L'affichage des entiers semble fonctionner.
Les variables de type entier sont suffixés par % : l'affectation à une variable fonctionne (I%=23).
Je n'ai pas testé si I%=#40 fonctionne ( # étant le signe pour la notation hexadécimale).
Je rappelle que la rom V3.xx est toujours en construction donc elle n'est pas fonctionnelle mais on peut la tester si on reste raisonnable ...
L'intégration des entiers n'est pas facile car le basic d'origine MICROSOFT n'a pas été prévu pour les manipuler.
Certains choix de mes codages peuvent surprendre ...
Je n'ai pas encore décidé si je code les entiers en complément à deux ou pas.
sinon les entiers vont de -65535 à +65535
Code pour tester la V3.xx : PRENDRE LA DERNIÈRE VERSION DE L’ÉMULATEUR ALICE FOURNIE PAR DANIEL COULOM
10 HIRES
20 PAPER 4
30 INK 6
50 BOX 20,30,20,30,2
70 BOX 2,2,30,10,1
La fonction LINE a été cassée en 3.4x : je regarderai en 2023 si je peux la réparer rapidement.
Dans tous les cas, pour avoir la liste des améliorations 2022, merci de consulter l'entête des sources.
Début 2023, j'ouvrirai un dépôt GITHUB avec toutes les sources. Tous les errements de codage seront visibles ...
Je vous souhaite de bonne fêtes.
Seilebost
Merci pour les retours positifs.
Je n'ai pas chômé cette année et j'ai essayé avec le peu de temps à ma disposition pour continuer à travailler sur la nouvelle ROM.
J'ai amélioré les commentaires du source de la rom en V1.0 (source originel).
J'ai amélioré un peu le code de la rom V2.00 (qui est rétrocompatible avec la V1.0).
Pour la V3.xx : c'est une nouvelle rom qui améliore grandement la V1.0 et elle n'est plus compatible ni en source ni en binaire avec la V1.0.
J'ai ajouté la fonction LINE, ajouté le traitement des entiers : l'addition et la soustraction ainsi que la multiplication devrait fonctionner. Le AND et le OR aussi (je l'espère). L'affichage des entiers semble fonctionner.
Les variables de type entier sont suffixés par % : l'affectation à une variable fonctionne (I%=23).
Je n'ai pas testé si I%=#40 fonctionne ( # étant le signe pour la notation hexadécimale).
Je rappelle que la rom V3.xx est toujours en construction donc elle n'est pas fonctionnelle mais on peut la tester si on reste raisonnable ...
L'intégration des entiers n'est pas facile car le basic d'origine MICROSOFT n'a pas été prévu pour les manipuler.
Certains choix de mes codages peuvent surprendre ...
Je n'ai pas encore décidé si je code les entiers en complément à deux ou pas.
sinon les entiers vont de -65535 à +65535
Code pour tester la V3.xx : PRENDRE LA DERNIÈRE VERSION DE L’ÉMULATEUR ALICE FOURNIE PAR DANIEL COULOM
10 HIRES
20 PAPER 4
30 INK 6
50 BOX 20,30,20,30,2
70 BOX 2,2,30,10,1
La fonction LINE a été cassée en 3.4x : je regarderai en 2023 si je peux la réparer rapidement.
Dans tous les cas, pour avoir la liste des améliorations 2022, merci de consulter l'entête des sources.
Début 2023, j'ouvrirai un dépôt GITHUB avec toutes les sources. Tous les errements de codage seront visibles ...
Je vous souhaite de bonne fêtes.
Seilebost
- Pièces jointes
-
- rom_ALICE32_V3.44_CLEAN_ALL_WIP_V3.zip
- (138.44 Kio) Téléchargé 49 fois
-
- rom_ALICE32_V1.00_CLEAN_ALL_WIP_V1.zip
- (145 Kio) Téléchargé 48 fois
-
- rom_ALICE32_V2.00_CLEAN_ALL_WIP_V3.zip
- (146.82 Kio) Téléchargé 49 fois
Re: ROM Alice 32 : Désassemblage et commentaires
Bonjour.
Une erreur sur le fichier fourni en V1.0 : voici la bonne version.
Seilebost.
Une erreur sur le fichier fourni en V1.0 : voici la bonne version.
Seilebost.
- Pièces jointes
-
- rom_ALICE32_V1.00_CLEAN_ALL_WIP_V2.zip
- (144.92 Kio) Téléchargé 58 fois
Re: ROM Alice 32 : Désassemblage et commentaires
Bonjour,
Tout d'abord merci et bravo @Seilebost pour ce remarquable travail.
Il m'est très utile pour suivre la partie GR de Alice.
J'ai assemblé le fichier rom_ALICE32_V0.70_CLEAN_ALL_V5.asm.zip
(message du 27 aout 2021 10:55)
Il s'agirait de la dernière mise à jour des sources de la rom originale.
Ma version dasm.exe est du 09/11/2020
Je trouve :
Il me semble que la ligne 6525 n'a pas reconnu l'étiquette createOneSLICE
De même, l'assembleur ne reconnait pas tab9345SLICE initSLICE et peut être d'autres.
Aurais-tu le même probleme ?
Tout d'abord merci et bravo @Seilebost pour ce remarquable travail.
Il m'est très utile pour suivre la partie GR de Alice.
J'ai assemblé le fichier rom_ALICE32_V0.70_CLEAN_ALL_V5.asm.zip
(message du 27 aout 2021 10:55)
Il s'agirait de la dernière mise à jour des sources de la rom originale.
Ma version dasm.exe est du 09/11/2020
Je trouve :
Code : Tout sélectionner
6522 d58d bclinitSLICE
6523 d58d e6 00 ldab 0,x
6524 d58f 36 psha
6525 d590 8d 00 bsr createOneSLICE ; FCT : valeurs à stocker par colonne (définition 2 col x 5 lignes)
6526 d592 ; IN : A=valeur de la colonne gauche
6527 d592 ; B=valeur de la colonne droite
6528 d592 ; OUT : A,B modified
De même, l'assembleur ne reconnait pas tab9345SLICE initSLICE et peut être d'autres.
Aurais-tu le même probleme ?
Re: ROM Alice 32 : Désassemblage et commentaires
Bonjour.
Je ne rencontre pas le même que toi.
Voici les paramètres et outils de compilation utilisés pour mes développements :
- dasm 2.20.12
- .\dasm .\rom_ALICE32_V0.70_CLEAN_ALL_V5.asm -f3 -o"res.bin" -v2 avec res.bin le fichier rom de 16Ko
==> Dans l'émulateur j'ai $8D 11 et non pas $8D $00
Comme je n'ai pas d'autres informations concernant ton problème, je te conseille d'installer la version 2.20.12 (au moins) et d'utiliser les paramètres indiqués dans l'entête du source (-s"symbol est optionnel).
Seilebost.
Je ne rencontre pas le même que toi.
Voici les paramètres et outils de compilation utilisés pour mes développements :
- dasm 2.20.12
- .\dasm .\rom_ALICE32_V0.70_CLEAN_ALL_V5.asm -f3 -o"res.bin" -v2 avec res.bin le fichier rom de 16Ko
==> Dans l'émulateur j'ai $8D 11 et non pas $8D $00
Comme je n'ai pas d'autres informations concernant ton problème, je te conseille d'installer la version 2.20.12 (au moins) et d'utiliser les paramètres indiqués dans l'entête du source (-s"symbol est optionnel).
Seilebost.
Re: ROM Alice 32 : Désassemblage et commentaires
Bonjour,
C'est bon, problème corrigé. J'ai bien 8d 11
Donc , juste pour info, ça a marché avec la dernière version :DASM 2.20.14.1
Merci
C'est bon, problème corrigé. J'ai bien 8d 11
Code : Tout sélectionner
6522 d58d bclinitSLICE
6523 d58d e6 00 ldab 0,x
6524 d58f 36 psha
6525 d590 8d 11 bsr createOneSLICE ; FCT : valeurs à stocker par colonne (définition 2 col x 5 lignes)
6526 d592 ; IN : A=valeur de la colonne gauche
6527 d592 ; B=valeur de la colonne droite
6528 d592 ; OUT : A,B modified
6529 d592 32 pula
Merci
Re: ROM Alice 32 : Désassemblage et commentaires
Bonjour à tous,
une nouvelle cuvée : V3.48.
Au programme : des corrections, des optimisations & des évolutions (ajout d'une fonction de traçage de rectangle et d'une fonction de conversion en FLOAT appelée FLOAT)
Les version V3.X sont toujours en développement.
Elles contiennent encore des bugs.
A VENIR :
+ terminer de corriger toutes les régressions suite à la mise en place des entiers
+ ajouter la fonctionnalité d'appel à un sous-programme nommé
+ remettre en place les HOOK
+ remettre en place la table système des appels
+ factoriser le code
+ ajouter du code pour vérifier le domaine des paramètres (type et/ou valeur)
Récapitulatif des corrections & évolutions
V3.45 2023/01/05 : + Correction commande BASIC LINE
V3.46 2023/01/12 : + Correction régression sur les calculs des
entiers et la comparaison
+ Correction régression commande BASIC FOR
+ Correction régression sur l'opération *
+ Correction régression : dans certains cas, la
commande LIST affiche les numéros de lignes avec
un '-' avant (ex: -10 PRINT I)
V3.47 2023/01/16 : + Correction régression sur la multiplication
partie FMULT et sur la partie romPLUS
PRINT SIN(PI/2) donne le bon résultat
+ Harmonisation : FDIV_ACC1_BY_MEM devient FDIV
à l'image de FADD, FSUB, FMULT
+ CONUPK : le code ldab ACC1 a été sorti de la
fonction. Il n'y a pas de lien direct avec sa
fonctionnalité première.
+ LEN retourne dorénavant un entier
+ ASC retourne dorénavant un entier
+ INT traite aussi les entiers en paramètre et
retourne un entier dans ce cas
+ Ajout de la fonction FLOAT : conversion d'un
entier en float
+ Le code FPWRT a été optimisé légèrement afin
d'utiliser les constantes pour n^0 = 1 ou 0^n=0
Il faut passer des float car la gestion des int
comme paramètre n'a pas été effectuée
+ Diverses corrections pour passer le pointeur X
aux fonctions ZEROFAC1 et ZEROFAC2
+ Correction d'une régression lors de la
comparaison (IF A$="TITI" ...)
+ Correction du code de recherche de variable
confondant A et A$
+ Correction régression sur la multiplication ...
suite à une régression sur le type des variables
retourné lors d'une comparaison
V3.48 2023/04/11 : + Nettoyage de certains TODO
+ FOR : déplacement du test de la "numéricité" de
la valeur de départ au plus près de l'action au
de le faire avant le TO
+ Suppression de la constante cK7_TYP_PRG_ASS_SRC
+ Gestion des formats d'un nombre et du type :
NOTE : intervalle des entiers [-65535 65535]
nombre = . => type : float et égal à 0
nombre = 0 => type : entier
nombre = 0. => type : float
nombre = 10000 => type : entier
nombre = 10000. => type : float
nombre = 100000 => type : float car dépassement
de capacité d'un entier
+ Correction d'une régression dans la commande
INPUT dans le cas d'une attente d'une saisie
d'une chaîne de caractère
+ Ajout d'une commande RECT qui dessine ... un
rectangle de couleur c
+ la gestion des float dans FOR ... TO ... est
encore cassée
+ la comparaison ne vérifie pas la comptabilité
des types num. des éléments comparés
seilebost.
une nouvelle cuvée : V3.48.
Au programme : des corrections, des optimisations & des évolutions (ajout d'une fonction de traçage de rectangle et d'une fonction de conversion en FLOAT appelée FLOAT)
Les version V3.X sont toujours en développement.
Elles contiennent encore des bugs.
A VENIR :
+ terminer de corriger toutes les régressions suite à la mise en place des entiers
+ ajouter la fonctionnalité d'appel à un sous-programme nommé
+ remettre en place les HOOK
+ remettre en place la table système des appels
+ factoriser le code
+ ajouter du code pour vérifier le domaine des paramètres (type et/ou valeur)
Récapitulatif des corrections & évolutions
V3.45 2023/01/05 : + Correction commande BASIC LINE
V3.46 2023/01/12 : + Correction régression sur les calculs des
entiers et la comparaison
+ Correction régression commande BASIC FOR
+ Correction régression sur l'opération *
+ Correction régression : dans certains cas, la
commande LIST affiche les numéros de lignes avec
un '-' avant (ex: -10 PRINT I)
V3.47 2023/01/16 : + Correction régression sur la multiplication
partie FMULT et sur la partie romPLUS
PRINT SIN(PI/2) donne le bon résultat
+ Harmonisation : FDIV_ACC1_BY_MEM devient FDIV
à l'image de FADD, FSUB, FMULT
+ CONUPK : le code ldab ACC1 a été sorti de la
fonction. Il n'y a pas de lien direct avec sa
fonctionnalité première.
+ LEN retourne dorénavant un entier
+ ASC retourne dorénavant un entier
+ INT traite aussi les entiers en paramètre et
retourne un entier dans ce cas
+ Ajout de la fonction FLOAT : conversion d'un
entier en float
+ Le code FPWRT a été optimisé légèrement afin
d'utiliser les constantes pour n^0 = 1 ou 0^n=0
Il faut passer des float car la gestion des int
comme paramètre n'a pas été effectuée
+ Diverses corrections pour passer le pointeur X
aux fonctions ZEROFAC1 et ZEROFAC2
+ Correction d'une régression lors de la
comparaison (IF A$="TITI" ...)
+ Correction du code de recherche de variable
confondant A et A$
+ Correction régression sur la multiplication ...
suite à une régression sur le type des variables
retourné lors d'une comparaison
V3.48 2023/04/11 : + Nettoyage de certains TODO
+ FOR : déplacement du test de la "numéricité" de
la valeur de départ au plus près de l'action au
de le faire avant le TO
+ Suppression de la constante cK7_TYP_PRG_ASS_SRC
+ Gestion des formats d'un nombre et du type :
NOTE : intervalle des entiers [-65535 65535]
nombre = . => type : float et égal à 0
nombre = 0 => type : entier
nombre = 0. => type : float
nombre = 10000 => type : entier
nombre = 10000. => type : float
nombre = 100000 => type : float car dépassement
de capacité d'un entier
+ Correction d'une régression dans la commande
INPUT dans le cas d'une attente d'une saisie
d'une chaîne de caractère
+ Ajout d'une commande RECT qui dessine ... un
rectangle de couleur c
+ la gestion des float dans FOR ... TO ... est
encore cassée
+ la comparaison ne vérifie pas la comptabilité
des types num. des éléments comparés
seilebost.
- Pièces jointes
-
- rom_ALICE32_V3.48_CLEAN_ALL_WIP_V1.zip
- (147.01 Kio) Téléchargé 41 fois