03.07.2013 Views

Magazine Pom's : la collection

Magazine Pom's : la collection

Magazine Pom's : la collection

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Deux méthodes sont a priori envisageables<br />

pour réaliser un programme<br />

de puzzle sur micro-ordinateur. La<br />

première serait une présentation des<br />

pièces morceau par morceau; en<br />

d'autres tennes, J'Apple afficherait<br />

successivement de façon aléatoire<br />

chaque case du dessin et attendrait<br />

que le joueur <strong>la</strong> situe correctement<br />

sur l'original.<br />

La seconde, qui vous est ici proposée,<br />

affiche J'ensemble des pièces<br />

mé<strong>la</strong>ngées et vous <strong>la</strong>isse le soin de<br />

remettre les choses en ordre.<br />

Un premier conseil : ne vous <strong>la</strong>issez<br />

pas effrayer par <strong>la</strong> difficulté apparente<br />

du problème. Le monde peut<br />

se reconstituer en moins de deux<br />

heures, je l'ai fait !<br />

120 morceaux sont à remettre en<br />

p<strong>la</strong>ce ; ce n'est pas <strong>la</strong> mer à boire.<br />

Aussi, pour corser <strong>la</strong> difficulté, l'Apple<br />

va tester votre mémoire visuelle<br />

et votre sens de l'analyse en comptant<br />

soigneusement le nombre de vos<br />

recours au dessin original. Il ne vous<br />

<strong>la</strong>issera d'ailleurs que quelques secondes<br />

pour 1'0bseIVer et, lorsque le<br />

puzzle sera intégralement reconstitué,<br />

il vous gratifiera de quelques qualificatifs<br />

que vous aurez sans doute mérités<br />

et qu'il vous appartiendra d'interpréter.<br />

En ce qui concerne le programme<br />

lui-même, il n'y a que deux parties<br />

importantes : mé<strong>la</strong>nge des morceaux<br />

et affichage, puis attente des directives<br />

du joueur.<br />

Mé<strong>la</strong>nge et affichage<br />

Le mé<strong>la</strong>nge et l'affichage se trouvent<br />

aux lignes 800 à 930 (ou 935 pour<br />

<strong>la</strong> couleur) du programme BASIC,<br />

qui renvoient aux lignes 100 à 140<br />

dans lesquelles est exécuté l'appel au<br />

sous-programme en <strong>la</strong>ngage-machine<br />

imp<strong>la</strong>nté de 8460 â 84C3. Ils utilisent<br />

une zone de mémoire tampon<br />

située â l'adresse 17232 correspondant<br />

â J'adresse initiale d'un morceau<br />

d'écran p<strong>la</strong>cé en bas et à gauche sur<br />

<strong>la</strong> page HGRZ. Une fois le mé<strong>la</strong>nge<br />

effectué, le traitement d'affichage<br />

prend le premier morceau d'écran<br />

qu'il met en mémoire tampon<br />

(17232), puis le second qu'il met à<br />

l'adresse du premier, puis le troisième<br />

qu'il met à <strong>la</strong> p<strong>la</strong>ce du second,<br />

et ainsi de suite jusqu'au 120ème,<br />

après lequel il reprend le premier<br />

<strong>Pom's</strong> n° 9<br />

Reconstituez le puzzle<br />

pour le mettre à l'adresse du<br />

120ème. La boucle étant ainsi bouclée,<br />

c'est alors â vous de jouer.<br />

Attente des directives<br />

Les lignes 1000 à 1030 du programmme<br />

correspondent à l'attente<br />

de vos directives. Les deux morceaux<br />

qui se trouvent échangéS par<br />

ces dernières transitent toujours par<br />

<strong>la</strong> zone tampon et <strong>la</strong> routine en <strong>la</strong>ngage-machine.<br />

Conception du<br />

programme<br />

Le programme peut traiter n'importe<br />

quel dessin enregistré sur disquette.<br />

Il uti lise des modules en <strong>la</strong>ngage machine<br />

dont vous trouverez plus loin <strong>la</strong><br />

récapitu<strong>la</strong>tion et qui assurent les<br />

fonctions suivantes :<br />

1) Module ONNER-128<br />

- 300 à 309 : routine de ONNER<br />

GOTO (cf page 124 du manuel de<br />

l'Applesoft).<br />

- 30A à 32B : mise à zéro des octets<br />

qui sont à 128. Sans cette routine, le<br />

programme, qui fait pour sa part <strong>la</strong><br />

différence entre les 0 et les 128,<br />

n'annoncerait jamais que le puzzle<br />

est entièrement reconstitué.<br />

2) Module TRANS<br />

- 8000 â 802B : transfert de <strong>la</strong> page<br />

HGR à <strong>la</strong> page HGRZ.<br />

- 8030 à 8417 : shapes HGR contenant<br />

\' alphabet, les chiffres, le point,<br />

le point d'exc<strong>la</strong>mation et l'étoile.<br />

- 8418 à 8443 : comparaison des<br />

deux pages HGR, octet par octet,<br />

pour savoir si le puzzle est reconstitué.<br />

- 844D à 845F : musique.<br />

- 8460 à 84C3 : échange des morceaux<br />

du puzzle.<br />

- 8500 à 872A : routine de chargement<br />

rapide de fichiers binaires de<br />

Jacques Tran-Van (cf <strong>Pom's</strong> 4).<br />

Remarques sur le programme en Applesoft<br />

:<br />

- Ligne 100 : BI, 82, Cl et C2 sont<br />

les parties hautes et basses des<br />

adresses de début de chaque mor-<br />

Joël Lecoeur<br />

ceau du puzzle. Elles sont p<strong>la</strong>cées<br />

aux adresses 250, 251, 252 et 253<br />

pour <strong>la</strong> sous-routine d'échange des<br />

morceaux.<br />

- Ligne 300 : cet échange nécessite<br />

une zone tampon, d'où les 3 appels<br />

â <strong>la</strong> sous-routine.<br />

- Ligne 400 : début du programme.<br />

- Ligne 498 : CALL -31488 <strong>la</strong>nce le<br />

programme de chargement rapide.<br />

- Ligne 500 : c'est ici que commence<br />

le programme pour un nouveau dessin.<br />

- Ligne 560 : appel du module de<br />

transfert d'image.<br />

- Ligne 600 : effacement des zones<br />

d'écran nécessaires et mise en p<strong>la</strong>ce<br />

des coordonnées. Puis mise en p<strong>la</strong>ce<br />

de l'Image finie sur <strong>la</strong> page 1.<br />

- Lignes 800 à 930 : mé<strong>la</strong>nge des<br />

morceaux et affichage.<br />

- Ligne 890 : adresse de début de <strong>la</strong><br />

zone tampon.<br />

- Ligne 915 : possibilité d'interrompre<br />

le programme pendant l'affichage<br />

par CTRL-Z.<br />

- ligne 940 : effacement de <strong>la</strong> zone<br />

tampon sur HGRZ.<br />

- ligne 980 : affichage de l'étoile sur<br />

HGR.<br />

- lignes 1000 à 1030 : le programme<br />

attend 4 données représentant<br />

les coordonnées des pièces à<br />

échanger. Accessoirement, il traite les<br />

erreurs d'entrée, émet sons et cloches,<br />

et autorise le passage au dessin<br />

original ou aux règles du jeu.<br />

- ligne 1040 : transfonnation des<br />

'coordonnées en numéros pennettant<br />

<strong>la</strong> recherche des DATA correspondants.<br />

- ligne 1100 : B(El) et B(Cl) sont<br />

les adresses des deux morceaux qui<br />

vont être échangés.<br />

- ligne 1120 : effacement de l'étoile<br />

sur <strong>la</strong> page puzzle et effacement de<br />

<strong>la</strong> zone tampon sur <strong>la</strong> page de l'original<br />

afin de voir si <strong>la</strong> reconstitution est<br />

terminée (CAU. -31720).<br />

- ligne 1150 : remise en p<strong>la</strong>ce de<br />

J'étoile.<br />

- ligne 1160 : si ]' adresse 254 est à<br />

zéro, c'est gagné 1<br />

- ligne 1200 : flip-flop entre les deux<br />

pages.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!