Alice est à la mode sur le forum :
On y parle d'un compilateur TURBO BASIC, il y a même un concours pour Alice32.
Alors j'ai bien entendu pensé à refaire le Sokoban compilé à la sauce Forth.
1 - Par chance M. Joel Rees a écrit un compilateur Fig-Forth pour le 6801.
Pour qui a l'habitude, la compilation est aisée; On peut même dire que c'est de la 'pseudo-compilation' avec des 'pseudos codes' qui ne sont que des adresses. Le gros avantage c'est que j'aime le Forth et que tous les outils existent depuis plus de 40 ans. Pas besoin d'attendre que quelqu'un le fasse.
2 - Techniquement la Machine Virtuelle Forth est mal adaptée au 6803 et à son manque de registres. On est obligé de sauvegarder le vecteur et le pointeur d'adresses de l'interpréteur NEXT; C'est galère !
Sauf si quelqu'un a une solution miracle.
Vous voyez que adresse $428E on sauvegarde IP et $4283 c'est W.
Code : Tout sélectionner
NEXT
4289 FE425D LDX IP
428C 08 NEXTWI INX pre-increment mode
428D 08 INX
428E FF425D STX IP
4291 EE00 NEXT2 LDX 0,X get W which points to CFA of
word to be done
4293 FF425F NEXT3 STX W
4296 EE00 LDX 0,X get VECT which points to
executable code
4298 6E00 NEXTGO JMP 0,X
4 - J'ai voulu faire les BIP et la mélodie FINALE. Mais les sons sont pénibles à mon gout. Vous trouverez les paramètres du BIP adresse $47EC, ceux des 3 sons de la mélodie à $47F6 $47FC $4802 et la routine SON à $47CA. Toute suggestion sera la bien venue; On peut même faire une mélodie de plus de 3 sons.
5 - Ce n'est pas la version finale. De mon coté je vais essayer d'optimiser le code mais tout en gardant la philosophie Forth. Sinon autant écrire le programme en ASM.
6 - Je ne me suis pas encore penché sur l'enregistrement sur K7. J'ai cru comprendre qu'il y avait quelques manip à faire. Si quelqu'un veut le faire je l'en remercie. Ce sera une façon de vérifier si ça marche sur Alice.
En attendant, la manip pour charger le programme est celle du chargement d'un fichier BIN sur DCALICE.
- Configuration paramètres : Alice32 + 16 K.
Depuis 'Mise au Point' charger SokoAliceV1.bin adresse $4250 - Amener le registre PC à $4250 et lancer.
SVP n'hésitez pas à me mettre à contribution, à faire des critiques dans le but d'améliorer, à me corriger : surtout ceux qui connaissent bien ALICE comme Patrice, Jester, Daniel, Sam, Papy.G, 6502man, Seilebost et d'autres que j'ai peur d'oublier.
================================
Fichier Binaire et source LST du A09 ===============================
K7 avec deux tableaux seulement (RAM $4250 à $61F2)- Charger par LOADM"SOKO" - Exécuter par EXEC 16976 ===============================
K7 avec les 50 tableaux (RAM $4250 à $85F4) - Charger par LOADM"SOK5" - Exécuter par EXEC 16976 ===============================