[Alice32] [Forth] Sokoban pour Alice

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!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

[Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

Bonjour à tous,

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
3 - Je me suis un peu arraché les cheveux avec le programme du Z80 (VG5K) qui pratique l'inversion MSB et LSB, ce que ne fait pas le 6803. C'était pénible car cela inverse la lecture sur un octet : On croit lire le LSB et on lit le MSB.

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
SokoAliceV1.zip
(47.23 Kio) Téléchargé 21 fois
===============================
K7 avec deux tableaux seulement (RAM $4250 à $61F2)- Charger par LOADM"SOKO" - Exécuter par EXEC 16976
SOKO2.zip
(36.43 Kio) Téléchargé 12 fois
===============================
K7 avec les 50 tableaux (RAM $4250 à $85F4) - Charger par LOADM"SOK5" - Exécuter par EXEC 16976
SOKO50.zip
(68.48 Kio) Téléchargé 15 fois
===============================

Dernière modification par Dominique le 06 mars 2024 09:15, modifié 7 fois.
Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: [Alice32] [Forth] Sokoban pour Alice

Message par David.G »

Bonjour Dominique,

Un Forth pour Alice ? Le monde de l'Alice semble effectivement très actif ! :shock:

Je possède un Alice 90 et l'émulateur de Daniel. Je débute malheureusement donc je n'y connais pas grand chose,

mais j'ai téléchargé ton Sokoban et je le teste demain. Je n'hésiterai pas à faire des retours si ça peut aider.
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

@David.G

Le fichier ZIP était erroné (Il manquait le BIN). C'est corrigé maintenant.
Brochiman
Messages : 3546
Inscription : 02 juin 2019 11:26
Localisation : Angers

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Brochiman »

Bonjour Dominique,

J'ai voulu tester sur Alice 32 avec l'extension multiports de Fred_72 en gravant le .bin sur eeprom et en lançant le jeu avec exec 4096 mais cela ne fonctionne pas :D . Y'a t'il une autre façon de faire pour le lancer ou cela n'est-il pas possible actuellement? Merci
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

Bonjour,

4096 veut dire adresse $4096 ? parce que l'adresse de départ c'est $4250.
Et au niveau de la RAM, il faut voir les adresses des piles SP et Pile de Retour; Il faut voir aussi comment se comporte le buffer appelé PAD
Brochiman
Messages : 3546
Inscription : 02 juin 2019 11:26
Localisation : Angers

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Brochiman »

J'ai aussi essayé exec 4250 mais cela n'à pas voulu fonctionné, ce n'est peut-être pas possible de lancer le bin avec le multiports
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

ATT : $4250 c'est Hexadécimal - En décimal pour EXEC ça donne 16976

Je vais essayer de faire la K7 avec l'utilitaire de Patrice.

viewtopic.php?p=242661#p242661

Je vais aussi faire une K7 avec 1 ou deux tableaux seulement.

1 Tableau : occupe la RAM de $4250 à $6132
2 Tableaux : occupent la RAM de $4250 à 61F2
50 Tableaux : occupent la RAM de $4250 à 85F4

Je rajoute les K7 :
- une avec deux tableaux
- Une avec les 50 tableaux
Avatar de l’utilisateur
Patrice
Messages : 1562
Inscription : 14 janv. 2008 10:42
Localisation : https://www.ville-saintes.fr/
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Patrice »

Bravo Dominique, un jeu de plus pour Alice 32-90. 8) :D :D :D
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

Merci Patrice, et pour ton utilitaire CSAVEM qui fonctionne parfaitement.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Daniel »

Le FORTH n'a jamais été mon langage favori, mais chaque nouvelle réalisation de Dominique me laisse admiratif.
Celle-ci peut-être encore plus que les précédentes. Félicitations !

Dominique a écrit :5 - Ce n'est pas la version finale.
J'attends un peu avant de la mettre en ligne sur le site http://alice32.free.fr/
Tu me diras quand je pourrai le faire (sachant qu'en cas d'amélioration ultérieure une mise à jour est toujours possible).
Daniel
L'obstacle augmente mon ardeur.
Brochiman
Messages : 3546
Inscription : 02 juin 2019 11:26
Localisation : Angers

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Brochiman »

Malheureusement exec 16976 ne fonctionne pas non plus ☹️☹️
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

Merci Daniel pour ces mots qui me touchent sincèrement. Je te dis quand ce sera prêt.

Il faut d'abord s'assurer que ça tourne sur la machine réelle.

Je vais essayer de me fixer un objectif : faire tourner le Sokoban sur un Alice 32 sans l'extension 16 K avec le maximum de tableaux.

Comme on peut retourner au BASIC depuis le Forth, on chargera facilement les tableaux manquants.

Si je me base sur alice.system-cfg.com je dois pouvoir descendre mon programme à $3346 au lieu de $4250 et aller jusqu'à $4FFF ?
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

@Brochiman

J'aurai bien voulu t'aider, mais malheureusement sans émulation je n'ai aucune idée de ce qui se passe.
Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: [Alice32] [Forth] Sokoban pour Alice

Message par David.G »

Dominique a écrit : 06 mars 2024 07:32
4096 veut dire adresse $4096 ? parce que l'adresse de départ c'est $4250.
Je dis peut-être une bêtise mais je crois qu'il n'y a pas d'hexadécimal en BASIC Alice. Je n'ai pas trouvé en tous cas.

Donc EXEC 4096 (c'est du décimal) appellera l'adresse HEXA $1000

Il faut faire EXEC 16534 pour exécuter à l'adresse HEXA $4096 et EXEC 16976 pour exécuter à l'adresse HEXA $4250.

Les experts de l'Alice confirmeront ou infirmeront. Désolé si je me suis trompé Dominique.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Daniel »

Avec la version cassette, il n'y a pas d'adresse à taper. Après le CLOADM, EXEC lance le programme à la bonne adresse.
Avec le fichier binaire chargé dans l'outil de mise au point de dcalice, il suffit de mettre la valeur 4250 hexa dans le registre PC.
La conversion en décimal de $4250 n'est pas nécessaire.
Daniel
L'obstacle augmente mon ardeur.
Répondre