Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!
Voici les contenus des trois fichiers binaires sur MO5. DES.BIN et BIN.BIN sont chargés et utilisés par l'intro, respectivement en &H9204 et en &H5000, puis ils sont intégralement recouverts par AIGLE.BIN, qui prend toute la RAM de &H4000 à &H9FFF. C'est donc à ce dernier qu'on s'intéressera plus particulièrement.
Le désassemblage est laissé au lecteur à titre d'exercice On pourra commencer à dérouler la pelote de laine en partant de tous les points d'entrées du programme BASIC:
Fool-DupleX a écrit : ↑22 mars 2024 10:20
....
On voit aisément que le jeu est entre les lignes 900 et 5030, avec beaucoup de sous-routines placées avant. Comme souvent avec les listings BASIC d'époque, il suffit de formater correctement, ligne par ligne et bloc par bloc pour s'apercevoir que ce n'est pas si spaghetti que ça.
Tout à fait. C'est même un exemple de 'Programmation structurée' dont on nous abreuvait à l'époque. On voit bien que chaque sous-routine est un module, ainsi que l'utilisation des éléments de contrôle recommandés comme dans :
Fool-DupleX a écrit : ↑22 mars 2024 10:33
Amusant, ces fichiers .k7 remplis de "DCMOTO".
C'est au début de chaque bloc logique sur les K7 MO5, juste avant l'amorce par une série de $01 $01 $01 $01 $01 $01 $01 $01 $01 $01 $3c $5a. Sur les K7 TO7 il n'y a rien de cela.
Je suppose que c'est lié au fait que l'écriture sur K7 sur MO5 est faite par bloc logiques dans la ROM et octet par octet sur TO7 (pas de notion de bloc logique dans le moniteur des TO). La routine de lectrre/écriture par bloc du moniteur MO5 est patchée et prise en charge par l'émul qui doit lire/écrire ce TAG au début.
Je n'en connais pas la raison, mais Daniel avait parlé de protection sur MO5 avec des blocs non standards. Si ca se trouve ce tag permet de discriminer entre les blocs standards qui peuvent être lus directement sans soucis par l'émul et les blocs non standards qui doivent avoir une procédure de lecture/écriture différente (genre buffer plus long, ignorer le checksum).
Il manque des ENDIF en basic pour bien "deviner" la structure. Sans ENDIF, savoir si le ELSE dans une ligne se rapporte à tel ou tel IF avant devient vite très, trop, compliqué.
Cela devient tout de suite plus clair.
Je ne connais pas ce Basic (je ne sais même pas s'il y a un <= 0 )
mais ça pourrait s'écrire (je prend le risque de dire une bétise) :
Fool-DupleX a écrit : ↑22 mars 2024 10:33
Amusant, ces fichiers .k7 remplis de "DCMOTO".
Une cassette Thomson est structurée en blocs, commençant par une séquence bien définie avec un identifiant de bloc. Pour le MO5 c'est une dizaine de $01 suivis de $3C5A, pour le TO7 c'est des $FF suivis de $013C. Entre les blocs c'est rien, ou plus exactement n'importe quels parasites ne contenant pas d'identifiant de bloc. Ils sont ignorés lors de la lecture.
A une certaine époque je mettais DCMOTO entre les blocs. A une autre époque c'était DCMO6 ou DCMO5. Aujourd'hui c'est plus discret : juste un octet $DC. Cette astuce me permet de savoir d'où viennent les fichiers .k7 trouvés sur internet, en particulier dans les sites de "ROMs" comme TOSEC. Au moins 90% des fichiers .k7 Thomson proviennent du site dcmoto.
Dans le site logicielsmoto, vous verrez que la cassette de l'Aigle d'Or contient DCMO6 entre chaque bloc. A l'époque j'ai passé à Yoann toutes les cassettes MO que j'avais numérisées. Au total, depuis les années 1980, je dois avoir numérisé plus de mille cassettes, MO et TO confondus. C'est ce que j'appelle la sauvegarde du patrimoine. Sans cela plus de la moitié des logiciels Thomson auraient disparu à jamais.
Ah, c'est donc le fameux fingerprinting sauce Daniel pour identifier discrètement l'origine des images, ça n'a aucune utilité dans le décodage.
J'ai regardé vite fait le code machine de l'Aigle d'or, c'est "naïf" comme programmation, ce qui n'est pas nécessairement surprenant. Mais ça fait le taf, c'est tout ce qui compte. Ce que je veux dire par là, c'est que c'est facile à désassembler. Pas de déchiffreur obfusqué qui tourne en ram vidéo, à la façon de William Hennebois
Merci pour ces informations.
Certains se demandaient pourquoi il n'y avait pas pas de version pour MSX.
Peut-être qu'un jour prochain elle verra le jour.
Recherche: cartouches Mattel Intellivision Imagic (loose)
Star Jacker et Lode Runner sur Yeno/SEGA SC-3000