home *** CD-ROM | disk | FTP | other *** search
- {///////////////////////////////////////////////////////////////////////////}
- { Ca y est... je me suis décidé à mettre le source de la LEMDEMO dans le
- domaine public! A mon point de vue, c'est un petit programme sans
- importance, mais de nombreuses personnes m'ont demandé si j'envisageais
- de le diffuser (a priori c'est susceptible d'intéresser). Ceux-ci sont
- évidemment curieux de savoir comment "ça" marche! En fait, c' est
- relativement simple (une fois que l'on a visualisé le fichier PCX), sauf
- peut-être en ce qui concerne la gestion des écrans virtuels dans le bloc
- principal qui n'est donc pas un modèle du genre en lisibilité. Voilà!,
- sachez donc tirer profit de ce petit cadeau et évitez de faire partie du
- club très large des LAMERS en "pompant" bêtement et en changeant le texte
- du message...
-
- Pour de plus amples informations, d'éventuelles suggestions, ou tout
- simplement pour le fun, vous pouvez m'écrire à l'adresse suivante (celle
- qui défile dans le scrolling n'est plus valable!):
-
- Patrick Ruelle
- 43, av. de Grande Bretagne
- 98000 Monaco
- Principauté de Monaco
-
- Evidemment je n'ai pas pris la décision de diffuser ce source dans le
- but de demander de l'argent, mais il va de soit que toutes sortes de dons
- sont acceptés (carte postale, matos, argent, spécialités locales, docs,
- etc...). N'oubliez pas non plus que cette diffusion ne m'enlève nullement
- mes droits d'auteur de cette mmm... de démo; ce petit package peut être
- diffusé librement à condition de rester sous sa forme initiale:
-
- LEMDEMO .EXE 19/08/93 10909
- LEMDEMO .PAS 27/07/94 49031
- LEMDEMO .PCX 25/04/92 9862
-
- La version actuelle est remaniée exprès pour la diffusion de ce package,
- mais en fait ce programme date de début 1992 (c'est dire si ça date!)...
-
- Patrick Ruelle (Monac) / GRYPHAEA
- }
- {///////////////////////////////////////////////////////////////////////////}
-
- Program LEMDEMO;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {DECLARATION DES UNITES}
- Uses Crt,Dos;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {DECLARATION DES TYPES GLOBAUX}
- Type
- ecranptr2 = ^ecrantype2;
- ecrantype2= Array[0..64767] Of Byte;
- im = Array[0..10203] Of Byte;
- type1 = Array[0..767] Of Byte;
- tb = Array[1..8] Of Byte;
- chai = Array[1..810] Of Byte;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {L'IMAGE GLOBALE (DECOR+ANIMATIONS+FONTE) COMPRESSEE EN RSF (ENTETE=1 WORD)}
- Const image : im=
- (64,65,64,152,1,67,65,208,42,64,152,1,19,65,151,3,208,37,65,208,38,
- 37,208,64,151,1,20,65,208,7,16,26,208,208,65,16,3,26,16,26,16,26,
- 65,208,4,65,16,3,26,65,16,3,26,65,16,3,26,65,16,3,26,65,208,
- 7,65,151,36,65,17,3,65,151,102,65,17,5,65,151,127,150,65,208,7,16,
- 26,208,208,16,26,208,208,65,16,3,26,65,208,5,16,26,208,16,26,16,26,
- 208,16,26,208,16,26,16,26,65,208,7,65,150,34,65,17,7,65,150,22,65,
- 17,7,65,150,70,65,17,8,65,150,126,65,208,7,16,26,208,208,16,16,26,
- 208,65,16,3,26,65,208,5,16,26,208,65,16,3,26,208,16,26,208,65,16,
- 3,26,65,208,7,65,150,33,65,17,10,65,150,17,65,17,11,65,150,26,65,
- 17,7,65,150,35,65,17,10,65,150,59,65,17,10,65,150,55,149,65,208,7,
- 16,26,208,208,16,26,208,208,16,26,16,26,65,208,5,16,26,208,16,16,26,
- 208,208,16,26,208,16,26,65,208,9,65,149,34,65,17,8,65,149,17,65,17,
- 13,65,149,23,65,17,12,65,149,34,65,17,6,65,149,59,65,17,15,65,149,
- 53,65,208,7,65,16,3,26,65,16,3,26,16,26,16,26,65,16,3,26,208,
- 16,26,208,16,26,16,26,65,16,3,26,16,26,65,208,9,65,149,12,65,17,
- 5,65,149,18,65,17,5,65,149,20,65,17,11,65,149,23,65,17,14,65,149,
- 101,65,17,7,65,149,57,148,65,208,46,65,148,11,65,17,8,65,148,46,65,
- 17,4,65,148,27,65,17,10,65,148,93,65,17,3,65,148,36,65,17,3,65,
- 148,33,65,208,5,16,26,16,26,65,16,3,26,16,26,16,26,65,16,3,26,
- 65,208,4,16,16,26,208,65,16,3,26,16,26,16,26,65,16,3,26,65,208,
- 5,65,148,13,65,17,5,65,148,179,65,17,8,65,148,31,65,17,8,65,148,
- 29,147,65,208,5,65,16,3,26,208,16,26,208,65,16,3,26,208,16,26,65,
- 208,5,16,26,16,26,16,26,208,208,65,16,3,26,16,26,16,26,65,208,5,
- 65,147,198,65,17,5,65,147,34,65,17,5,65,147,32,65,208,5,65,16,3,
- 26,208,16,26,208,16,26,16,26,208,16,26,65,208,5,16,26,16,26,16,16,
- 26,208,65,16,3,26,16,26,16,26,65,208,5,64,147,1,17,146,65,208,5,
- 16,26,16,26,208,16,26,208,16,26,16,26,208,16,26,65,208,5,16,26,16,
- 26,16,26,208,208,16,26,16,26,16,26,16,26,65,208,5,64,146,1,18,65,
- 208,5,16,26,16,26,65,16,3,26,16,26,16,26,65,16,3,26,65,208,4,
- 16,16,26,208,65,16,3,26,16,26,16,26,65,16,3,26,65,208,5,64,146,
- 1,17,145,65,208,46,65,145,94,65,25,23,65,145,157,65,208,19,16,16,26,
- 208,16,26,16,26,65,208,19,65,145,93,25,65,6,23,25,65,145,155,144,65,
- 208,19,16,26,16,26,16,26,16,26,65,208,19,65,144,92,25,65,6,25,25,
- 65,144,155,65,208,19,16,16,26,208,208,16,26,65,208,20,65,144,91,25,65,
- 6,27,25,65,144,153,143,65,208,19,16,26,16,26,208,16,26,65,208,20,65,
- 143,14,2,65,143,7,2,65,143,7,2,65,143,7,2,65,143,51,25,65,6,
- 29,25,65,143,27,2,65,143,7,2,65,143,7,2,65,143,90,65,2,3,65,
- 143,16,65,208,19,16,16,26,208,208,16,26,65,208,20,65,143,14,2,65,143,
- 7,2,65,143,7,2,65,143,7,2,65,143,51,65,25,31,65,143,27,2,65,
- 143,7,2,65,143,7,2,65,143,89,2,65,143,3,2,65,143,14,142,65,208,
- 46,65,142,13,65,2,3,65,142,5,65,2,3,65,142,5,65,2,3,65,142,
- 5,65,2,3,65,142,51,25,4,4,21,65,4,4,21,65,4,4,21,65,4,
- 4,21,65,4,4,21,65,4,4,25,65,142,27,65,2,3,65,142,5,65,2,
- 3,65,142,5,65,2,3,65,142,87,65,2,4,142,65,2,3,65,142,13,65,
- 208,7,65,16,3,26,65,208,4,65,16,3,26,16,26,16,26,65,16,3,26,
- 16,26,208,208,16,26,208,208,65,16,3,26,65,208,7,65,142,13,65,2,3,
- 65,142,5,65,2,3,65,142,5,65,2,3,65,142,5,65,2,3,65,142,25,
- 22,65,142,25,25,4,4,21,65,4,4,21,65,4,4,21,65,4,4,21,65,
- 4,4,21,65,4,4,25,65,142,27,65,2,3,65,142,5,65,2,3,65,142,
- 5,65,2,3,65,142,86,2,65,142,3,65,2,3,142,142,2,65,142,11,141,
- 65,208,7,16,26,16,26,65,208,4,16,26,16,26,16,26,16,26,16,26,208,
- 208,16,26,208,208,16,26,208,208,16,26,65,208,9,65,141,13,65,2,3,65,
- 141,5,65,2,3,65,141,5,65,2,3,65,141,5,65,2,3,65,141,24,22,
- 21,22,65,141,24,25,65,21,27,25,65,141,27,65,2,3,65,141,5,65,2,
- 3,65,141,5,65,2,3,65,141,89,37,37,65,2,3,141,141,2,65,141,11,
- 65,208,7,65,16,3,26,65,208,4,65,16,3,26,16,26,16,26,16,16,26,
- 208,16,26,208,208,16,26,208,208,16,16,26,65,208,8,65,141,12,65,2,5,
- 65,141,3,65,2,5,65,141,3,65,2,5,65,141,3,65,2,5,65,141,20,
- 129,128,22,22,21,22,22,131,132,65,141,21,25,21,65,4,4,21,65,4,4,
- 21,65,4,4,21,4,65,25,7,4,21,4,25,65,141,11,25,25,65,141,13,
- 65,2,5,65,141,3,65,2,5,65,141,3,65,2,5,65,141,87,37,208,65,
- 141,4,2,141,2,65,141,10,140,65,208,7,16,26,65,208,6,16,16,26,208,
- 16,26,16,26,16,26,208,208,16,26,208,208,16,26,208,208,16,26,65,208,9,
- 65,140,12,65,2,5,65,140,3,65,2,5,65,140,3,65,2,5,65,140,3,
- 65,2,5,65,140,18,131,130,65,140,3,22,21,22,65,140,3,133,128,65,140,
- 19,25,21,65,4,3,65,25,9,4,4,21,4,25,65,6,5,25,4,21,4,
- 25,65,140,10,25,209,209,25,65,140,12,65,2,5,65,140,3,65,2,5,65,
- 140,3,65,2,5,65,140,86,208,37,65,140,5,2,65,140,13,65,208,7,16,
- 26,65,208,3,16,26,208,16,26,16,26,65,16,3,26,65,16,3,26,65,16,
- 3,26,65,16,3,26,65,16,3,26,65,208,7,65,140,12,65,2,5,65,140,
- 3,65,2,5,65,140,3,65,2,5,65,140,3,65,2,5,65,140,17,132,65,
- 140,5,22,21,22,65,140,5,129,65,140,18,25,65,21,4,25,65,16,3,28,
- 65,16,3,25,65,21,4,25,65,6,5,25,65,21,3,25,65,140,9,25,65,
- 211,4,25,65,140,11,65,2,5,65,140,3,65,2,5,65,140,3,65,2,5,
- 65,140,86,37,208,65,140,4,2,65,140,13,65,139,3,208,37,65,208,38,37,
- 208,65,139,14,65,2,5,65,139,3,65,2,5,65,139,3,65,2,5,65,139,
- 3,65,2,5,65,139,16,133,65,139,6,22,21,22,65,139,6,130,65,139,17,
- 25,4,4,21,4,25,65,16,3,28,65,16,3,25,65,4,4,25,65,6,5,
- 25,65,4,3,25,65,139,8,25,65,209,6,25,65,139,10,65,2,5,65,139,
- 3,65,2,5,65,139,3,65,2,5,65,139,85,208,208,65,139,22,65,208,42,
- 65,139,14,65,2,5,65,139,3,65,2,5,65,139,3,65,2,5,65,139,3,
- 65,2,5,65,139,16,128,65,139,3,65,22,4,21,65,22,4,65,139,3,131,
- 65,139,17,25,4,4,21,4,25,16,16,65,28,3,16,16,25,65,4,4,25,
- 65,6,5,25,65,4,3,25,65,139,7,25,25,65,211,6,25,25,65,139,9,
- 65,2,5,65,139,3,65,2,5,65,139,3,65,2,5,65,139,66,65,71,3,
- 65,139,16,37,37,65,139,19,65,138,20,65,37,7,65,138,32,65,2,5,65,
- 138,3,65,2,5,65,138,3,65,2,5,65,138,3,65,2,5,65,138,11,22,
- 65,138,4,129,65,138,3,22,65,21,7,22,65,138,3,132,65,138,4,22,65,
- 138,12,25,65,21,4,25,2,65,28,5,2,25,65,21,4,25,65,6,5,25,
- 65,21,3,25,65,138,6,25,25,65,209,8,25,25,65,138,8,65,2,5,65,
- 138,3,65,2,5,65,138,3,65,2,5,65,138,62,65,71,4,65,70,3,71,
- 71,65,138,14,208,208,65,138,39,65,37,7,65,138,32,65,2,5,65,138,3,
- 65,2,5,65,138,3,65,2,5,65,138,3,65,2,5,65,138,11,65,22,27,
- 65,138,12,25,21,65,4,3,25,16,65,28,5,16,25,4,4,21,4,25,6,
- 25,65,6,3,25,4,21,4,25,65,138,7,25,65,211,3,25,25,65,211,3,
- 25,65,138,9,65,2,5,65,138,3,65,2,5,65,138,3,65,2,5,65,138,
- 58,65,71,4,70,70,2,65,70,6,65,71,3,65,138,11,37,37,65,138,8,
- 71,65,138,10,65,137,20,65,37,7,65,137,33,65,2,3,65,137,5,65,2,
- 3,65,137,5,65,2,3,65,137,5,65,2,3,65,137,12,22,65,21,25,22,
- 65,137,12,25,21,65,4,3,65,25,9,4,4,21,4,25,65,6,5,25,4,
- 21,4,25,65,137,7,25,209,209,25,0,0,25,209,209,25,65,137,10,65,2,
- 3,65,137,5,65,2,3,65,137,5,65,2,3,65,137,39,2,65,137,3,2,
- 65,137,9,65,71,6,65,70,7,2,70,70,2,65,70,5,65,71,3,65,137,
- 8,208,208,65,137,6,71,71,70,71,71,65,137,28,65,37,7,65,137,34,37,
- 65,137,7,37,65,137,7,37,65,137,7,37,65,137,12,65,22,29,65,137,11,
- 25,65,21,17,25,65,6,5,25,65,21,3,25,65,137,7,25,211,211,25,0,
- 0,25,211,211,25,65,137,11,37,65,137,7,37,65,137,7,37,65,137,39,2,
- 65,137,3,2,65,137,7,65,71,3,65,70,14,2,70,70,2,70,70,2,65,
- 70,4,71,71,65,137,6,37,37,65,137,3,65,71,3,65,70,5,71,65,137,
- 7,136,136,2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,136,
- 2,37,2,37,2,37,2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,
- 136,2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,37,
- 2,136,2,136,2,136,2,37,2,136,2,136,2,136,2,37,2,136,2,136,2,
- 136,2,37,2,136,2,136,2,136,2,136,2,136,2,136,2,21,2,21,2,21,
- 2,21,2,21,2,21,2,21,2,21,2,21,2,21,2,21,2,21,2,21,2,
- 21,2,136,2,136,2,136,2,136,2,136,2,136,2,4,2,21,2,4,2,4,
- 2,4,2,4,2,21,2,4,2,4,2,6,2,6,2,6,2,4,2,4,2,
- 136,2,136,2,136,2,136,2,209,2,25,2,0,2,209,2,25,2,136,2,136,
- 2,136,2,136,2,136,2,37,2,136,2,136,2,136,2,37,2,136,2,136,2,
- 136,2,37,2,136,2,136,2,136,2,136,2,136,2,65,136,28,2,136,2,136,
- 2,65,136,4,65,71,3,65,70,17,2,65,70,3,2,2,70,2,65,70,5,
- 65,71,3,65,136,3,208,208,136,71,71,65,70,9,71,71,65,136,5,2,136,
- 2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,37,2,
- 37,2,37,2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,136,
- 2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,136,2,37,2,136,2,
- 136,2,136,2,37,2,136,2,136,2,136,2,37,2,136,2,136,2,136,2,37,
- 2,136,2,136,2,136,2,136,2,136,2,136,2,21,2,21,2,21,2,21,2,
- 21,2,21,2,21,2,21,2,21,2,21,2,21,2,21,2,21,2,21,2,136,
- 2,136,2,136,2,136,2,136,2,136,2,4,2,21,2,4,2,4,2,4,2,
- 4,2,21,2,4,2,4,2,6,2,6,2,6,2,4,2,4,2,136,2,136,
- 2,136,2,136,2,211,2,25,2,0,2,211,2,25,2,136,2,136,2,136,2,
- 136,2,136,2,37,2,136,2,136,2,136,2,37,2,136,2,136,2,136,2,37,
- 2,136,2,136,2,136,2,136,2,136,2,136,2,65,136,26,2,136,136,2,136,
- 136,65,71,3,65,70,20,2,65,70,3,2,65,70,11,71,71,136,37,37,71,
- 65,70,13,71,65,136,4,65,10,226,65,23,18,65,71,76,65,2,226,23,65,
- 18,16,23,65,70,76,65,2,226,23,65,18,3,65,23,10,65,18,3,23,65,
- 70,76,65,2,226,23,18,18,23,65,0,10,23,18,18,23,65,70,76,65,2,
- 226,23,18,23,65,0,12,23,18,23,65,70,76,65,2,226,65,23,3,128,131,
- 129,132,130,133,130,133,129,132,128,131,65,23,3,65,70,76,64,152,2,128,64,
- 151,1,244,65,23,33,65,151,35,65,17,4,65,151,68,65,150,179,23,65,206,
- 33,23,65,150,32,65,17,7,65,150,30,26,26,65,150,63,65,17,10,65,150,
- 58,65,17,6,65,150,76,23,65,206,35,23,65,150,30,65,17,10,65,150,27,
- 65,26,4,65,150,34,65,149,26,65,17,16,65,149,51,65,17,11,65,149,73,
- 23,65,206,37,23,65,149,30,65,17,10,65,149,27,26,26,65,149,19,65,17,
- 5,65,149,41,65,17,10,65,149,55,65,17,5,65,149,15,65,17,7,65,149,
- 54,23,65,206,39,23,65,149,12,17,17,65,149,16,65,17,7,65,149,29,26,
- 26,65,149,17,65,17,9,65,149,9,65,148,114,65,17,11,65,148,50,23,65,
- 206,41,23,65,148,10,65,17,4,65,148,51,26,26,65,148,16,65,17,11,65,
- 148,124,65,17,4,65,148,55,65,23,43,65,148,9,65,17,7,65,148,47,65,
- 23,6,65,148,16,65,17,8,65,148,9,65,147,178,23,65,17,35,23,65,147,
- 13,65,17,5,65,147,46,23,23,65,210,6,23,23,65,147,16,65,17,5,65,
- 147,188,23,65,17,35,23,65,147,62,23,23,65,210,10,23,23,65,147,29,65,
- 146,178,23,65,17,35,23,65,146,60,23,23,65,210,14,23,23,65,146,205,23,
- 65,17,3,65,212,3,23,65,212,3,65,17,4,65,212,3,23,65,212,3,65,
- 17,4,65,212,3,23,65,212,3,65,17,3,23,65,146,58,23,23,65,210,18,
- 23,23,65,146,25,65,145,178,23,17,17,212,65,209,3,23,65,209,3,212,17,
- 17,212,65,209,3,23,65,209,3,212,17,17,212,65,209,3,23,65,209,3,212,
- 17,17,23,65,145,57,23,65,210,22,23,65,145,20,65,23,4,65,145,178,23,
- 65,17,3,65,212,3,23,65,212,3,65,17,4,65,212,3,23,65,212,3,65,
- 17,4,65,212,3,23,65,212,3,65,17,3,23,65,145,56,65,23,26,65,145,
- 18,23,65,211,4,65,144,161,65,23,18,65,17,3,65,209,3,23,65,209,3,
- 65,17,4,65,209,3,23,65,209,3,65,17,4,65,209,3,23,65,209,3,65,
- 17,3,23,65,144,58,23,65,17,20,23,65,144,19,23,65,211,5,65,144,160,
- 23,65,206,17,23,17,17,65,212,4,23,65,212,4,17,17,65,212,4,23,65,
- 212,4,17,17,65,212,4,23,65,212,4,17,17,23,65,144,58,23,65,17,9,
- 23,23,65,17,9,23,65,144,18,23,65,211,6,65,143,159,23,65,206,18,23,
- 65,17,3,65,209,3,23,65,209,3,65,17,4,65,209,3,23,65,209,3,65,
- 17,4,65,209,3,23,65,209,3,65,17,3,23,65,143,52,65,23,7,65,17,
- 8,23,20,20,23,65,17,8,65,23,7,65,143,11,23,65,211,7,65,143,5,
- 65,19,27,65,143,126,23,65,206,19,23,65,17,35,23,65,143,5,65,2,6,
- 65,143,28,65,2,6,65,143,6,23,65,210,6,23,65,17,8,23,20,20,23,
- 65,17,8,23,65,210,6,23,65,143,9,23,65,211,8,65,142,6,19,65,17,
- 23,19,65,142,126,23,65,206,20,23,65,17,35,23,65,142,4,65,2,9,65,
- 142,11,22,22,65,142,12,65,2,9,65,142,3,23,65,210,7,23,65,17,8,
- 23,20,20,23,65,17,8,23,65,210,7,23,65,142,8,65,23,9,65,142,6,
- 19,65,17,23,19,65,142,126,65,23,22,65,17,35,23,65,142,3,65,2,11,
- 65,142,9,22,17,22,22,65,142,10,65,2,11,142,65,23,10,65,17,8,65,
- 23,4,65,17,8,65,23,10,65,142,9,23,65,17,6,65,141,6,19,65,17,
- 23,19,65,141,129,23,65,17,17,23,65,17,35,23,65,141,3,65,2,12,65,
- 141,8,65,17,3,22,65,141,10,65,2,12,141,141,23,65,17,6,23,65,17,
- 20,23,65,17,6,23,65,141,11,23,65,17,6,65,141,6,19,65,17,23,65,
- 19,21,65,141,13,22,65,141,95,23,65,17,17,23,65,17,35,23,65,141,3,
- 2,37,2,141,37,2,37,2,141,37,2,2,65,141,9,21,17,65,141,11,2,
- 37,2,141,37,2,37,2,141,37,2,2,141,141,23,65,17,6,23,65,17,20,
- 23,65,17,6,23,65,141,11,23,65,17,6,65,140,6,19,65,17,4,65,19,
- 4,65,17,5,65,19,7,65,17,3,19,65,17,18,19,65,140,12,19,19,22,
- 19,19,65,140,22,71,65,140,70,23,65,17,17,23,65,17,15,65,23,5,65,
- 17,15,23,65,140,3,2,2,37,37,140,37,140,37,37,65,140,12,21,17,65,
- 140,11,2,2,37,37,140,37,140,37,37,65,140,5,23,65,17,6,23,65,17,
- 6,65,23,8,65,17,6,23,65,17,6,23,65,140,11,23,65,17,4,23,23,
- 65,140,6,19,65,17,3,19,65,25,4,19,65,17,4,19,65,25,5,19,65,
- 17,3,19,65,17,18,19,65,140,11,19,140,140,22,140,140,19,65,140,18,65,
- 71,3,70,71,71,65,140,68,23,17,17,212,212,23,212,212,17,17,212,212,65,
- 23,3,212,212,17,23,17,65,212,3,65,23,5,65,212,3,17,17,23,65,212,
- 5,23,17,17,65,212,3,65,23,5,65,212,3,17,23,65,140,7,65,37,3,
- 65,140,14,17,21,65,140,15,65,37,3,65,140,7,23,17,17,23,23,17,17,
- 23,65,17,5,23,65,210,3,23,23,65,210,3,23,65,17,5,23,17,17,23,
- 23,17,17,23,65,140,11,23,65,17,3,23,206,206,65,139,6,19,17,17,19,
- 65,25,6,19,65,17,3,19,65,25,5,19,65,17,3,19,65,17,18,19,65,
- 139,10,19,65,139,3,19,65,139,3,19,65,139,12,65,71,5,65,70,6,71,
- 71,65,139,66,23,17,212,209,209,23,209,209,212,17,209,209,65,19,3,209,209,
- 17,23,17,65,209,3,19,19,23,19,19,65,209,3,17,17,23,65,212,5,23,
- 17,17,65,209,3,19,19,23,19,19,65,209,3,17,23,65,139,8,37,65,139,
- 15,21,21,65,139,16,37,65,139,8,23,17,23,20,20,23,17,23,65,17,4,
- 23,65,210,4,23,23,65,210,4,23,65,17,4,23,17,23,20,20,23,17,23,
- 65,139,11,23,65,17,3,23,206,206,65,139,6,19,17,17,19,65,25,6,19,
- 65,17,3,19,65,25,5,19,65,17,3,19,65,17,18,19,65,139,10,19,65,
- 139,3,19,65,139,3,19,65,139,8,65,71,4,65,70,13,71,71,65,139,64,
- 23,17,17,212,212,23,212,212,17,17,212,212,65,19,3,212,212,17,23,17,65,
- 212,3,19,19,23,19,19,65,212,3,17,17,23,65,212,5,23,17,17,65,212,
- 3,19,19,23,19,19,65,212,3,17,23,65,139,8,37,65,139,14,65,21,4,
- 17,65,139,14,37,65,139,8,23,17,23,20,20,23,17,23,65,17,4,23,65,
- 210,4,23,23,65,210,4,23,65,17,4,23,17,23,20,20,23,17,23,65,139,
- 11,23,65,17,3,23,206,206,65,138,6,19,17,17,19,65,25,6,19,65,17,
- 3,19,65,25,5,19,65,17,3,19,65,17,18,19,65,138,10,19,65,138,3,
- 19,65,138,3,19,65,138,3,65,71,5,65,70,19,71,71,65,138,3,2,65,
- 138,9,71,71,65,138,47,23,17,17,209,209,23,209,209,17,17,209,209,65,19,
- 3,209,209,17,23,17,65,209,3,19,19,23,19,19,65,209,3,17,17,23,65,
- 212,5,23,17,17,65,209,3,19,19,23,19,19,65,209,3,17,23,65,138,8,
- 37,65,138,14,17,17,138,138,17,65,138,14,37,65,138,8,23,17,23,20,20,
- 23,17,23,65,17,4,23,65,210,4,23,23,65,210,4,23,65,17,4,23,17,
- 23,20,20,23,17,23,65,138,11,23,65,17,3,23,206,206,65,138,6,19,17,
- 17,19,65,25,6,19,65,17,3,65,19,7,65,17,3,19,65,17,18,19,65,
- 138,10,19,65,138,3,19,65,138,3,19,65,71,3,65,70,26,71,2,138,138,
- 2,65,138,6,71,71,70,70,65,71,3,65,138,44,23,17,65,212,3,23,65,
- 212,3,17,212,212,65,19,3,212,212,17,23,17,65,212,3,19,19,23,19,19,
- 65,212,3,17,17,23,212,23,65,212,3,23,17,17,65,212,3,19,19,23,19,
- 19,65,212,3,17,23,65,138,8,37,65,138,14,65,22,5,65,138,14,37,65,
- 138,8,23,17,65,23,4,17,23,65,17,4,23,65,210,4,23,23,65,210,4,
- 23,65,17,4,23,17,65,23,4,17,23,65,138,11,23,65,17,3,23,206,211,
- 65,137,6,19,17,17,19,65,25,6,19,65,17,13,19,65,17,18,19,65,137,
- 9,65,21,11,65,70,25,2,70,70,2,70,2,71,2,65,137,4,71,71,65,
- 70,7,65,71,4,65,137,40,23,17,17,209,209,23,209,209,17,17,209,209,65,
- 23,3,209,209,17,23,17,65,209,3,65,23,5,65,209,3,17,17,23,65,212,
- 5,23,17,17,65,209,3,65,23,5,65,209,3,17,23,65,137,8,37,65,137,
- 14,22,65,21,3,22,65,137,14,37,65,137,8,23,65,17,6,23,65,17,4,
- 23,210,26,26,210,23,23,210,26,26,210,23,65,17,4,23,65,17,6,23,65,
- 137,11,23,65,17,3,23,206,206,65,137,6,19,17,17,19,65,25,6,19,65,
- 17,13,19,65,17,9,2,65,17,3,2,65,17,4,19,65,137,9,17,21,17,
- 17,21,17,17,21,17,17,21,65,70,26,2,70,2,65,70,3,71,2,137,2,
- 71,65,70,13,65,71,4,65,137,36,23,65,17,17,23,65,17,14,23,65,212,
- 5,23,65,17,14,23,65,137,8,37,65,137,12,65,22,9,65,137,12,37,65,
- 137,8,23,65,17,6,23,65,17,4,23,65,210,4,23,23,65,210,4,23,65,
- 17,4,23,65,17,6,23,65,137,11,23,65,17,3,23,206,206,65,136,6,19,
- 17,17,19,65,25,6,19,65,17,13,19,65,17,10,2,17,2,17,2,65,17,
- 3,19,65,136,9,65,21,11,65,70,27,2,65,70,5,2,2,71,2,65,70,
- 17,65,71,4,65,136,32,23,65,17,17,23,65,17,14,23,65,212,5,23,65,
- 17,14,23,65,136,4,65,22,9,65,136,8,22,65,21,7,22,65,136,8,65,
- 22,9,65,136,4,23,65,17,6,23,65,17,4,23,65,210,4,23,23,65,210,
- 4,23,65,17,4,23,65,17,6,23,65,136,11,23,65,17,3,23,206,206,65,
- 136,6,19,17,17,19,65,25,6,19,65,17,13,19,65,17,10,2,17,2,65,
- 17,5,19,65,136,9,17,17,21,17,17,21,17,17,21,17,17,65,70,27,2,
- 65,70,5,2,70,70,71,65,70,21,65,71,3,65,136,29,23,65,17,17,23,
- 65,17,14,23,65,212,5,23,65,17,14,23,65,136,4,22,136,22,136,22,136,
- 22,136,22,65,136,8,22,65,21,7,22,65,136,8,22,136,22,136,22,136,22,
- 136,22,65,136,4,23,65,17,6,23,65,17,4,23,65,210,4,23,23,65,210,
- 4,23,65,17,4,23,65,17,6,23,65,136,11,23,65,17,3,23,206,206,65,
- 71,135,65,23,185,65,70,135,23,65,18,16,23,65,21,167,65,70,135,23,65,
- 18,3,65,23,10,65,18,3,23,65,21,167,65,70,135,23,18,18,23,65,0,
- 10,23,18,18,23,65,21,167,65,70,135,23,18,23,65,0,12,23,18,23,65,
- 21,167,65,70,135,65,23,3,128,131,129,132,130,133,130,133,129,132,128,131,65,
- 23,3,65,21,167,64,152,1,40,65,0,24,64,152,1,40,65,0,24,64,151,
- 1,40,65,0,24,64,151,1,40,65,0,24,65,150,41,65,17,5,65,150,250,
- 65,0,24,65,150,39,65,17,8,65,150,249,65,0,24,65,149,38,65,17,10,
- 65,149,248,65,0,24,65,149,39,65,17,8,65,149,249,65,0,24,65,148,41,
- 65,17,5,65,148,250,65,0,24,65,148,9,65,23,5,64,148,1,26,65,0,
- 24,65,147,8,23,65,211,5,23,64,147,1,25,65,0,24,65,147,7,23,65,
- 211,7,23,64,147,1,24,65,0,24,65,146,6,23,65,211,9,23,64,146,1,
- 23,65,0,24,65,146,6,65,23,11,64,146,1,23,65,0,24,65,23,8,17,
- 17,65,23,3,17,17,65,23,19,64,145,1,6,65,0,24,65,211,7,23,17,
- 23,65,19,3,23,17,23,65,211,18,23,64,145,1,5,65,0,24,65,211,7,
- 23,17,23,65,19,3,23,17,23,65,211,19,23,64,144,1,4,65,0,24,65,
- 211,7,23,17,23,65,19,3,23,17,23,65,211,20,23,64,144,1,3,65,0,
- 24,65,211,7,65,23,9,65,211,21,23,64,143,1,2,65,0,24,65,211,38,
- 23,64,143,1,1,65,0,24,65,23,39,64,142,1,1,65,0,24,65,17,18,
- 23,65,17,17,23,65,142,190,65,0,3,65,142,66,65,0,24,65,17,18,23,
- 65,17,17,23,65,141,190,65,0,3,65,141,66,65,0,24,65,17,18,23,65,
- 17,17,23,65,141,190,65,0,3,65,141,6,14,65,141,59,65,0,24,65,23,
- 3,65,17,15,23,17,65,23,15,17,23,65,140,95,65,15,4,65,140,28,65,
- 15,4,65,140,57,65,0,7,65,140,3,14,140,14,65,140,58,65,0,24,65,
- 206,3,23,17,17,65,212,3,65,23,5,65,212,3,17,23,17,23,65,19,4,
- 65,9,5,65,19,4,23,17,23,65,140,93,15,15,17,17,15,17,15,15,65,
- 140,24,15,15,17,17,15,17,15,15,65,140,56,65,15,5,65,140,3,14,140,
- 14,140,14,65,140,57,65,0,24,65,206,3,23,17,17,65,206,3,19,19,23,
- 19,19,65,206,3,17,23,17,23,65,19,3,9,65,18,5,9,65,19,3,23,
- 17,23,65,139,92,65,15,10,65,139,22,65,15,10,65,139,55,15,0,17,0,
- 15,65,139,3,14,14,139,14,65,139,58,65,0,24,65,206,3,23,17,17,65,
- 212,3,19,19,23,19,19,65,212,3,17,23,17,23,65,19,3,9,65,18,5,
- 9,65,19,3,23,17,23,65,139,72,65,15,6,65,139,13,15,17,15,17,17,
- 15,17,17,15,17,17,15,65,139,20,15,17,15,17,17,15,17,17,15,17,17,
- 15,65,139,9,15,15,65,139,26,65,15,10,65,139,7,15,17,200,17,15,139,
- 139,6,139,14,14,65,139,59,65,0,24,65,206,3,23,17,17,65,206,3,19,
- 19,23,19,19,65,206,3,17,23,17,23,19,19,65,9,9,19,19,23,17,23,
- 65,138,62,65,15,10,65,17,6,15,65,138,11,65,15,14,65,138,7,126,138,
- 138,127,138,127,65,138,5,65,15,14,65,138,6,65,15,6,65,138,22,15,15,
- 65,17,10,65,15,13,6,15,15,65,138,61,65,0,24,65,206,3,23,17,17,
- 65,212,3,19,19,23,19,19,65,212,3,17,23,17,23,19,9,12,4,65,9,
- 5,4,12,9,19,23,17,23,65,138,56,65,15,6,65,17,17,15,65,138,10,
- 15,17,17,15,17,17,15,15,17,17,15,17,17,15,65,138,6,126,127,138,127,
- 126,138,126,65,138,5,15,17,17,15,17,17,15,15,17,17,15,17,17,15,65,
- 138,5,15,17,15,17,17,15,17,15,65,138,19,15,15,65,17,19,15,17,12,
- 17,15,17,6,17,17,65,15,9,65,138,10,15,15,65,138,40,65,0,24,65,
- 206,3,23,17,17,65,206,3,65,23,5,65,206,3,17,23,17,23,19,65,9,
- 4,65,0,3,65,9,4,19,23,17,23,65,137,55,15,17,15,65,17,22,15,
- 65,137,8,65,15,7,23,23,65,15,7,65,137,6,126,127,126,137,126,127,65,
- 137,4,65,15,7,23,23,65,15,7,65,137,4,65,15,8,65,137,17,15,15,
- 65,17,20,15,65,17,5,6,65,17,8,15,15,17,17,15,65,137,8,15,17,
- 17,65,15,3,65,137,37,65,0,24,65,206,3,23,65,17,14,23,17,23,19,
- 65,21,11,19,23,17,23,65,137,36,65,15,5,65,137,14,15,17,17,15,65,
- 17,22,15,65,137,7,15,17,17,15,17,15,65,23,4,15,17,15,17,17,15,
- 65,137,7,126,137,126,127,65,137,5,15,17,17,15,17,15,65,23,4,15,17,
- 15,17,17,15,65,137,3,15,17,15,17,15,15,17,15,17,15,65,137,14,15,
- 15,65,17,22,15,17,17,12,17,6,15,65,17,6,15,15,65,17,4,15,65,
- 137,6,15,15,65,17,6,65,15,4,65,137,33,65,0,24,65,206,3,23,65,
- 17,14,23,17,23,19,19,26,26,65,19,5,26,26,19,19,23,17,23,65,136,
- 35,15,65,17,5,65,15,6,65,136,7,15,65,17,4,15,65,17,22,15,65,
- 136,6,65,15,6,65,23,4,65,15,6,65,136,6,37,136,37,136,37,37,65,
- 136,4,65,15,6,65,23,4,65,15,6,65,136,3,65,15,4,23,23,65,15,
- 4,65,136,12,15,15,65,17,24,15,65,17,4,6,15,65,17,4,15,15,65,
- 17,7,15,65,136,4,15,65,17,12,65,15,3,65,136,30,65,0,24,65,206,
- 3,23,65,17,14,23,17,23,19,19,26,26,65,19,5,26,26,19,19,23,17,
- 23,65,136,34,15,65,17,12,65,15,4,65,136,3,15,65,17,5,15,65,17,
- 22,15,65,136,5,15,17,15,17,17,15,65,23,4,15,17,17,15,17,15,65,
- 136,4,65,37,4,136,37,37,65,136,5,15,17,15,17,17,15,65,23,4,15,
- 17,17,15,17,15,65,136,3,15,17,17,15,23,23,15,17,17,15,65,136,11,
- 15,65,17,26,15,17,17,12,6,17,15,65,17,3,15,65,17,9,15,65,136,
- 3,15,65,17,16,15,15,65,136,28,65,0,24,65,23,62,65,15,216,65,23,
- 18,65,0,24,65,21,44,23,65,18,16,23,65,17,216,23,65,18,16,23,65,
- 0,24,65,21,44,23,65,18,3,65,23,10,65,18,3,23,65,17,216,23,65,
- 18,3,65,23,10,65,18,3,23,65,0,24,65,21,44,23,18,18,23,65,0,
- 10,23,18,18,23,65,17,216,23,18,18,23,65,0,10,23,18,18,23,65,0,
- 24,65,21,44,23,18,23,65,0,12,23,18,23,65,17,216,23,18,23,65,0,
- 12,23,18,23,65,0,24,65,21,44,65,23,3,128,131,129,132,130,133,130,133,
- 129,132,128,131,65,23,3,65,17,216,65,23,3,128,131,129,132,130,133,130,133,
- 129,132,128,131,65,23,3,64,0,53,229,99,0,99,65,0,3,99,0,99,65,
- 0,29,99,99,65,0,6,99,99,65,0,6,99,99,65,0,6,99,99,65,0,
- 6,99,99,65,0,6,99,99,65,0,6,99,99,65,0,6,99,99,65,0,213,
- 99,99,65,0,4,99,99,0,0,65,99,3,65,0,3,65,99,3,65,0,4,
- 65,99,4,0,0,65,99,4,0,0,99,0,99,65,0,3,99,0,99,65,0,
- 4,65,99,4,65,0,4,65,99,4,65,0,4,65,99,4,65,0,4,65,99,
- 4,65,0,4,65,99,4,65,0,4,65,99,4,65,0,4,65,99,4,65,0,
- 4,65,99,4,65,0,211,99,99,15,99,0,0,99,99,15,99,0,99,99,15,
- 65,0,3,99,99,15,65,0,4,99,99,15,65,0,3,99,99,15,65,0,3,
- 65,99,3,65,0,3,65,99,3,65,0,4,99,15,15,99,65,0,4,99,15,
- 15,99,65,0,4,99,15,15,99,65,0,4,99,15,15,99,65,0,4,99,15,
- 15,99,65,0,4,99,15,15,99,0,0,15,0,99,15,15,99,0,15,0,15,
- 99,15,15,99,15,65,0,3,15,99,99,15,65,0,4,99,99,15,65,0,5,
- 15,99,99,15,65,0,5,15,99,99,65,0,179,99,65,15,3,0,0,99,65,
- 15,3,0,0,65,15,3,65,0,3,65,15,3,65,0,4,65,15,3,0,0,
- 99,65,15,3,65,0,3,99,15,65,0,4,99,15,65,0,5,15,15,65,0,
- 6,15,15,65,0,6,15,15,65,0,6,15,15,65,0,6,15,15,65,0,3,
- 15,0,0,15,15,0,0,15,0,15,0,15,15,0,15,0,0,15,0,15,15,
- 0,15,0,0,15,99,15,15,99,15,0,15,99,15,15,99,15,65,0,3,15,
- 99,15,15,99,15,65,0,3,15,99,15,15,99,15,65,0,178,15,9,65,0,
- 4,15,9,65,0,3,15,9,65,0,4,15,9,65,0,5,15,9,65,0,4,
- 15,9,65,0,4,65,15,3,65,0,3,65,15,3,65,0,3,15,9,9,15,
- 65,0,4,15,9,9,15,65,0,4,15,9,9,15,65,0,3,15,15,9,9,
- 15,15,0,65,15,3,9,9,65,15,3,0,15,15,9,9,15,15,65,0,3,
- 15,9,9,15,65,0,4,15,9,9,15,65,0,3,15,99,15,15,99,15,0,
- 15,99,65,15,4,65,0,3,15,99,15,15,99,15,65,0,3,65,15,4,99,
- 15,65,0,178,15,9,65,0,4,15,9,0,0,15,9,9,65,0,4,9,15,
- 65,0,5,15,9,65,0,4,9,15,65,0,4,9,15,65,0,3,15,15,9,
- 65,0,4,15,9,9,15,65,0,3,15,0,9,9,0,15,0,0,15,0,9,
- 9,0,15,0,15,0,0,9,9,0,0,15,65,0,3,9,9,65,0,6,9,
- 9,65,0,6,9,9,65,0,6,9,9,65,0,5,15,9,9,15,65,0,3,
- 15,65,9,3,15,65,0,4,15,9,9,15,65,0,4,15,65,9,3,15,65,
- 0,179,9,15,65,0,3,15,9,9,0,0,15,9,9,0,15,0,0,9,15,
- 0,15,65,0,3,15,9,65,0,4,15,9,65,0,4,9,15,65,0,3,15,
- 9,9,65,0,4,15,9,9,15,65,0,3,15,0,9,9,0,15,0,15,0,
- 0,9,9,0,0,15,65,0,3,9,9,65,0,6,9,9,65,0,6,9,9,
- 65,0,6,9,9,65,0,6,9,9,65,0,6,9,9,65,0,5,65,9,3,
- 65,0,6,9,9,65,0,6,65,9,3,65,0,180,9,9,65,0,4,9,9,
- 65,0,3,9,9,0,15,0,0,9,9,0,15,65,0,3,9,9,65,0,4,
- 9,9,65,0,4,9,9,15,0,15,15,65,9,3,65,0,4,9,9,65,0,
- 6,9,9,65,0,6,9,9,65,0,6,9,9,65,0,6,9,9,65,0,6,
- 9,9,65,0,6,9,9,65,0,6,9,9,65,0,6,9,9,65,0,6,9,
- 9,65,0,6,9,9,65,0,6,9,9,65,0,179,15,65,9,4,0,15,65,
- 9,4,0,9,9,0,15,0,0,9,9,0,15,65,0,3,15,9,9,65,0,
- 3,15,9,9,65,0,3,65,9,4,0,0,65,9,4,65,0,4,9,9,65,
- 0,6,9,9,65,0,6,9,9,65,0,6,9,9,65,0,6,9,9,65,0,
- 6,9,9,65,0,6,9,9,65,0,6,9,9,65,0,5,65,9,4,65,0,
- 4,65,9,4,65,0,4,65,9,4,65,0,4,65,9,4,65,0,178,15,0,
- 0,15,15,0,15,0,0,15,15,0,15,15,65,0,4,15,15,65,0,6,15,
- 15,65,0,4,15,15,0,0,15,15,0,0,65,15,4,0,0,15,15,0,0,
- 65,15,4,65,0,4,65,15,4,65,0,4,65,15,4,65,0,4,65,15,4,
- 65,0,4,65,15,4,65,0,4,65,15,4,65,0,4,65,15,4,65,0,4,
- 65,15,4,65,0,4,65,15,4,65,0,4,65,15,4,65,0,4,65,15,4,
- 65,0,4,65,15,4,64,0,5,178,65,18,3,1,18,18,1,1,65,18,3,
- 1,18,18,1,1,65,18,3,1,65,18,3,1,65,18,3,1,18,1,18,1,
- 1,18,65,1,4,18,1,18,1,18,1,18,65,1,3,18,1,18,1,18,1,
- 18,1,65,18,3,1,65,18,3,1,65,18,3,1,65,18,3,1,65,18,3,
- 1,65,18,3,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,
- 18,1,18,1,65,18,3,1,1,18,65,1,3,18,1,1,65,18,3,1,65,
- 18,3,1,18,65,1,3,65,18,3,1,65,18,3,1,65,18,3,1,65,18,
- 3,1,65,18,3,65,1,6,18,65,1,6,18,1,18,1,1,18,65,1,4,
- 18,1,1,18,65,1,9,18,65,1,18,18,1,18,65,1,3,65,18,3,1,
- 65,0,112,20,1,20,1,20,1,20,1,20,65,1,3,20,1,20,1,20,65,
- 1,3,20,65,1,3,20,65,1,3,20,1,20,1,1,20,65,1,4,20,1,
- 20,1,20,1,20,65,1,3,65,20,3,1,65,20,3,1,20,1,20,1,20,
- 1,20,1,20,1,20,1,20,1,20,1,20,65,1,4,20,1,1,20,1,20,
- 1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,65,1,3,20,1,
- 20,1,20,1,20,20,65,1,4,20,65,1,3,20,1,20,65,1,3,20,65,
- 1,3,20,65,1,5,20,1,20,1,20,1,20,1,20,65,1,6,20,65,1,
- 6,20,1,20,1,1,20,65,1,3,20,65,1,4,20,65,1,7,20,65,1,
- 18,20,65,1,3,20,65,1,4,20,1,65,0,112,65,22,3,1,22,22,1,
- 1,22,65,1,3,22,1,22,1,22,22,1,1,22,22,1,1,22,1,22,1,
- 65,22,3,1,1,22,65,1,4,22,1,22,22,1,1,22,65,1,3,65,22,
- 3,1,22,1,22,1,22,1,22,1,65,22,3,1,22,1,22,1,65,22,3,
- 1,65,22,3,1,1,22,1,1,22,1,22,1,22,1,22,1,65,22,3,1,
- 1,22,65,1,3,22,65,1,3,22,1,1,22,1,22,1,1,22,1,1,65,
- 22,3,1,1,22,1,1,22,1,22,1,65,22,3,1,65,22,3,65,1,3,
- 22,1,65,22,3,1,65,22,3,65,1,6,22,65,1,15,22,65,1,4,22,
- 1,1,22,65,1,3,22,22,1,1,22,65,1,6,65,22,3,65,1,5,22,
- 65,1,5,22,1,1,22,1,1,65,0,112,23,1,23,1,23,1,23,1,23,
- 65,1,3,23,1,23,1,23,65,1,3,23,65,1,3,23,1,23,1,23,1,
- 23,1,1,23,1,1,23,1,23,1,23,1,23,1,23,65,1,3,23,1,23,
- 1,23,1,23,1,23,1,23,1,23,65,1,3,23,1,23,1,23,23,65,1,
- 4,23,1,1,23,1,1,23,1,23,1,1,23,1,1,65,23,3,1,23,1,
- 23,1,1,23,1,1,23,65,1,3,23,1,23,1,1,23,1,1,23,65,1,
- 5,23,1,65,23,3,65,1,3,23,1,23,1,23,65,1,3,23,1,23,1,
- 23,65,1,3,23,65,1,22,23,65,1,4,23,65,1,6,23,1,1,65,23,
- 3,1,65,23,3,65,1,10,23,65,1,3,23,65,1,6,65,0,112,24,1,
- 24,1,24,24,1,1,65,24,3,1,24,24,1,1,65,24,3,1,24,65,1,
- 3,65,24,3,1,24,1,24,1,1,24,1,1,65,24,3,1,24,1,24,1,
- 65,24,3,1,24,1,24,1,24,1,24,1,65,24,3,1,24,65,1,3,24,
- 24,1,1,24,1,24,1,65,24,3,1,1,24,1,1,65,24,3,1,1,24,
- 1,1,24,1,24,1,24,1,24,1,1,24,1,1,65,24,3,1,1,24,1,
- 1,65,24,3,1,65,24,3,1,65,24,3,65,1,3,24,1,65,24,3,1,
- 65,24,3,65,1,3,24,1,65,24,3,1,65,24,3,65,1,6,24,65,1,
- 3,24,65,1,12,24,1,1,24,65,1,3,24,1,1,24,65,1,4,24,65,
- 1,6,65,24,3,1,65,24,3,65,1,3,24,1,24,65,1,4,24,1,1,
- 64,0,7,240,65,15,82,65,0,238,15,65,1,80,15,65,0,238,15,65,1,
- 4,18,65,1,3,65,18,3,1,18,1,18,65,1,5,65,18,3,1,65,18,
- 3,1,65,18,3,1,65,18,3,65,1,5,18,1,18,1,65,18,3,1,18,
- 1,18,1,65,18,3,65,1,5,18,18,1,1,65,18,3,1,18,1,18,1,
- 65,18,3,65,1,5,15,65,0,238,15,65,1,4,20,65,1,3,20,65,1,
- 3,65,20,3,65,1,6,20,1,1,20,1,20,1,1,20,1,1,20,1,20,
- 65,1,5,65,20,3,1,1,20,1,1,65,20,3,1,1,20,65,1,6,20,
- 1,20,1,20,65,1,3,65,20,3,1,20,1,20,65,1,5,15,65,0,238,
- 15,65,1,4,22,65,1,3,22,22,1,1,65,22,3,65,1,6,22,1,1,
- 65,22,3,1,1,22,1,1,65,22,3,65,1,5,65,22,3,1,1,22,1,
- 1,22,1,22,1,1,22,65,1,6,22,1,22,1,22,22,1,1,65,22,3,
- 1,22,1,22,65,1,5,15,65,0,238,15,65,1,4,23,65,1,3,23,65,
- 1,3,23,1,23,65,1,6,23,1,1,23,23,65,1,3,23,1,1,23,65,
- 1,7,23,1,23,1,1,23,1,1,23,1,23,1,1,23,65,1,6,23,1,
- 23,1,23,65,1,3,23,1,23,1,23,1,23,65,1,5,15,65,0,238,15,
- 65,1,4,65,24,3,1,65,24,3,1,24,1,24,1,65,24,3,1,1,24,
- 1,1,24,1,24,1,65,24,3,1,24,65,1,7,24,1,24,1,65,24,3,
- 1,24,1,24,1,65,24,3,65,1,5,24,24,1,1,65,24,3,1,24,1,
- 24,1,65,24,3,65,1,5,15,65,0,238,15,65,1,80,15,65,0,238,65,
- 15,82,64,0,4,179,42,0,42,0,0,65,42,3,0,0,42,0,42,42,21,
- 0,65,42,3,65,21,5,63,1,50,0,21,65,63,3,21,21,63,21,65,63,
- 3,21,65,63,3,65,59,3,65,55,3,65,52,3,65,48,3,65,45,3,65,
- 42,3,65,38,3,65,35,3,65,31,3,65,28,3,65,25,3,65,21,3,65,
- 18,3,65,14,3,65,11,3,65,8,3,63,0,0,59,0,0,56,0,0,53,
- 0,0,50,0,0,40,25,15,44,0,0,41,0,0,38,0,0,34,0,0,31,
- 0,0,28,0,0,25,0,0,22,0,0,19,0,0,16,0,0,63,54,54,63,
- 46,46,63,39,39,63,31,31,63,23,23,63,16,16,63,8,8,63,0,0,63,
- 42,23,63,38,16,63,34,8,63,30,0,57,27,0,51,24,0,45,21,0,39,
- 19,0,63,63,54,63,63,46,63,63,39,63,63,31,63,62,23,63,61,0,57,
- 54,0,51,49,0,57,54,0,51,49,0,45,43,0,39,39,0,33,33,0,28,
- 27,0,22,21,0,16,16,0,52,63,23,49,63,16,45,63,8,40,63,0,36,
- 57,0,32,51,0,29,45,0,24,39,0,54,63,54,47,63,46,39,63,39,32,
- 63,31,24,63,23,16,63,16,8,63,8,0,63,0,0,63,0,0,59,0,0,
- 56,0,0,53,0,1,50,0,1,47,0,1,44,0,1,41,0,1,38,0,1,
- 34,0,1,31,0,1,28,0,1,25,0,1,22,0,1,19,0,1,16,0,54,
- 63,63,46,63,63,39,63,63,31,63,62,23,63,63,16,63,63,8,63,63,0,
- 63,63,0,57,57,0,51,51,0,45,45,0,39,39,0,33,33,0,28,28,59,
- 0,0,63,42,23,23,47,63,16,44,63,8,42,63,0,39,63,0,35,57,0,
- 31,51,0,27,45,0,23,39,54,54,63,46,47,63,39,39,63,31,32,63,23,
- 24,63,16,16,63,8,9,63,0,1,63,0,0,63,0,0,59,0,0,56,0,
- 0,53,0,0,50,0,0,47,0,0,44,0,0,41,0,0,38,0,0,34,0,
- 0,31,0,0,28,0,0,25,0,0,22,0,0,19,0,0,16,60,54,63,57,
- 46,63,54,39,63,52,31,63,50,23,63,47,16,63,45,8,63,42,0,63,38,
- 0,57,32,0,51,29,0,45,24,0,39,20,0,33,17,0,28,13,0,22,10,
- 0,16,63,54,63,63,46,63,63,39,63,63,31,63,63,23,63,63,16,63,63,
- 8,63,63,0,63,56,0,57,50,0,51,45,0,45,39,0,39,33,0,33,27,
- 0,28,22,0,22,16,0,16,63,58,55,63,56,52,63,54,49,63,53,47,63,
- 51,44,63,49,41,63,47,39,63,46,36,63,44,32,63,41,28,63,39,24,60,
- 37,23,58,35,22,55,34,21,52,32,20,50,31,19,47,30,18,45,28,17,42,
- 26,16,40,25,15,39,24,14,36,23,13,34,22,12,32,20,11,29,19,10,27,
- 18,9,23,16,8,21,15,7,18,14,6,16,12,6,14,11,5,10,8,3,65,
- 0,21,65,20,3,49,10,10,49,19,10,49,29,10,49,39,10,49,49,10,39,
- 49,10,29,49,10,19,49,10,10,49,12,10,49,23,10,49,34,10,49,45,10,
- 42,49,10,31,49,10,20,49,11,10,49,22,10,49,33,10,49,44,10,49,49,
- 10,43,49,10,32,49,10,21,49,10,10,65,63,3,64,64,0,1,0);
-
- {L'ORDRE (EN ABCISSES(PIXELS)) DES ETAPES DE LA MARCHE DU LEMMING}
- table : tb =(0,24,12,42,6,30,18,36);
-
- {LE CONTENU DU TEXTE (810 CARACTERES), CHAQUE CARACTERE=UN CODE (NON ASCII
- ET NON EBCDIC)}
- chaine: chai=(36,7,8,36,12,4,13,37,36,8,5,36,24,14,20,36,11,8,10,4,3,36,19,7,4,
- 36,6,0,12,4,36,39,11,4,12,12,8,13,6,18,39,36,5,17,14,12,36,15,
- 18,24,6,13,14,18,8,18,36,19,7,4,13,36,24,14,20,40,11,11,36,15,
- 17,14,1,0,1,11,24,36,11,8,10,4,36,19,7,8,18,36,5,20,13,13,24,
- 36,12,8,13,8,36,3,4,12,14,36,19,14,14,38,38,38,36,8,36,19,14,
- 14,10,36,19,7,4,36,11,4,12,12,8,13,6,40,18,36,12,14,21,4,18,
- 36,1,24,36,3,17,0,22,8,13,6,36,19,7,4,12,36,3,20,17,8,13,6,36,
- 19,7,4,36,15,0,20,18,4,36,14,15,19,8,14,13,36,14,5,36,19,7,4,
- 36,6,0,12,4,37,36,14,10,38,38,38,36,8,36,0,6,17,4,4,36,22,8,19,
- 7,36,24,14,20,38,38,38,36,19,7,0,19,36,22,0,18,13,40,19,36,17,
- 4,0,11,11,24,36,4,0,18,24,36,0,19,36,0,11,11,38,38,38,36,1,20,
- 19,36,8,36,3,8,3,36,8,19,37,37,37,36,0,18,36,24,14,20,40,21,4,
- 36,13,14,19,8,2,4,3,36,19,7,8,18,36,3,4,12,14,36,8,18,36,17,0,
- 19,7,4,17,36,12,8,13,8,36,41,8,13,18,19,4,0,3,36,14,5,36,12,4,
- 6,0,36,14,17,36,6,8,6,0,42,38,38,38,36,1,20,19,36,18,14,36,18,
- 22,4,4,19,37,36,19,7,4,36,15,17,14,6,17,0,12,12,8,13,6,36,15,
- 0,17,19,36,8,18,36,3,14,13,4,36,8,13,36,0,36,7,8,6,7,36,11,4,
- 21,4,11,36,11,0,13,6,20,0,6,4,36,22,8,19,7,36,0,36,11,8,19,19,
- 11,4,36,12,14,17,4,36,19,7,0,13,36,7,20,13,3,17,4,3,36,11,8,13,
- 4,18,36,14,5,36,0,18,18,4,12,1,11,24,36,17,14,20,19,8,13,4,18,
- 38,36,13,14,22,36,22,4,40,17,4,36,2,11,14,18,4,36,19,14,36,19,
- 7,4,36,4,13,3,38,38,38,36,8,36,9,20,18,19,36,22,0,13,19,36,19,
- 14,36,10,8,18,18,36,19,4,13,3,4,17,11,24,36,18,0,13,3,17,8,13,
- 4,38,38,38,36,12,24,36,15,0,17,4,13,19,18,38,38,38,36,0,13,3,
- 36,18,0,24,36,7,4,11,11,14,36,19,14,36,12,8,12,8,38,38,38,36,
- 19,8,19,8,38,38,38,36,5,8,5,8,38,38,38,36,5,17,0,13,2,10,8,4,
- 38,36,15,11,4,0,18,4,36,3,14,13,40,19,36,12,14,3,8,5,24,36,19,
- 7,8,18,36,15,17,14,6,17,0,12,36,1,20,19,36,3,8,18,19,17,8,1,
- 20,19,4,36,8,19,36,5,17,4,4,11,24,37,36,19,14,36,2,14,13,19,
- 0,2,19,36,12,4,38,38,38,36,22,17,8,19,4,36,19,14,43,36,15,0,
- 19,17,8,2,10,36,17,20,4,11,11,4,36,44,36,27,32,29,36,17,20,4,
- 36,3,4,36,2,7,0,17,14,13,13,4,36,44,36,33,31,26,27,27,36,15,0,
- 17,8,18,38,36,18,4,4,36,24,14,20,36,11,0,19,4,17,36,5,14,17,
- 36,0,36,13,4,22,36,15,17,14,3,20,2,19,36,5,17,14,12,36,12,14,
- 13,0,2,36,18,14,5,19,22,0,17,4,38,38,38,36,1,24,4,37,37,37,36,
- 36,36,36,36,36,36,36);
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {DECLARATION DES VARIABLES GLOBALES}
- Var
- palet,pal,pal2 : type1;
- ecran2 : ecrantype2 Absolute $A000:$0;
- virtuel : ecranptr2;
- img2,img3 : ecranptr2;
- regs : Registers;
- int_truc : Pointer;
- old_int_truc : Pointer;
- cpt : Word;
- bande : Byte;
- CompDelay : Integer;
-
- {///////////////////////////////////////////////////////////////////////////}
- {///////////////////////////////////////////////////////////////////////////}
-
- {ROUTINE ACTIVEE SUR APPUI DE CTRL BREAK}
- Procedure Rien;Interrupt;
- Begin
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {RAFRAICHISSEMENT DE LA PALETTE (OU D'UN SOUS-ENSEMBLE) SANS PASSER PAR LE
- BIOS (TROP LENT)}
- Procedure Refresh_palette(Var pal; deb,nbre:Word);
- Begin
- Asm
- Push DS
- Lds SI ,pal
- Mov DX ,$3C8
- Cld
- Mov CX ,nbre
- Mov BX ,deb
- @@1:
- Mov AL ,BL
- Out DX ,AL
- Inc DX
- Lodsb
- Out DX ,AL
- Lodsb
- Out DX ,AL
- Lodsb
- Out DX ,AL
- Dec DX
- Inc BL
- Loop @@1
- Pop DS
- End;
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {ROUTINE POUR AFFICHER UN SPRITE EN MASQUANT LE FOND (COULEUR 0) D'UN
- ENDROIT DE LA MEM A UN AUTRE (VIDEO OU NON)}
- Procedure Aff_Sprite_Mask(x1,y1,larg:Word; haut:Byte; x2,y2,orig,dest:Word);
- Assembler;
- Label boucle1,boucle2,Suite,Fin;
- Asm
- Push DS
- Mov DS ,orig
- Mov ES ,dest
- Mov AX ,320
- Mov BX ,y1
- Mul BX {on peut aussi contourner ce MUL coûteux!}
- Add AX ,x1
- Mov SI ,AX
- Mov AX ,320
- Mov BX ,y2
- Mul BX {idem}
- Add AX ,x2
- Mov DI ,AX
- Mov DX ,0
- Mov AX ,larg
- Mov BX ,320
- Sub BX ,AX
- boucle1:
- Inc DH
- Mov CX ,AX
- Cld
- boucle2:
- Mov DL ,[SI]
- And DL ,DL
- Jz Suite
- Movsb
- Loop boucle2
- Add SI ,BX
- Add DI ,BX
- Cmp DH ,haut
- Jne boucle1
- Jmp Fin
- Suite:
- Inc SI
- Inc DI
- Loop boucle2
- Add SI ,BX
- Add DI ,BX
- Cmp DH ,haut
- Jne boucle1
- Fin:
- Pop DS
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {ROUTINE POUR AFFICHER UN SPRITE EN ECRASANT LE FOND}
- Procedure Aff_Sprite_Norm(x1,y1,larg:Word; haut:Byte; x2,y2,orig,dest:Word);
- Assembler;
- Label boucle;
- Asm
- Push DS
- Mov DS ,orig
- Mov ES ,dest
- Mov AX ,320
- Mov BX ,y1
- Mul BX {idem}
- Add AX ,x1
- Mov SI ,AX
- Mov AX ,320
- Mov BX ,y2
- Mul BX {idem}
- Add AX ,x2
- Mov DI ,AX
- Mov DL ,0
- Mov DH ,haut
- Mov AX ,larg
- Mov BX ,320
- Sub BX ,AX
- Cld
- boucle:
- Inc DL
- Mov CX ,AX
- Rep Movsb
- Add SI ,BX
- Add DI ,BX
- Cmp DL ,DH
- Jne boucle
- Pop DS
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {ROUTINE DECREMENTEE A CHAQUE APPEL DE INT 1Ch}
- Procedure EntryDelay;Interrupt;
- Begin
- Dec(CompDelay);
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {ROUTINE DE MODIFICATION DU FONCTIONNEMENT DU CIRCUIT TIMER}
- Procedure SetTimer (Temp:Word);
- Begin
- Port[$43]:=$34;
- Port[$40]:=Lo(Temp);
- Port[$40]:=Hi(Temp);
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {ROUTINE GLOBALE DE TEMPORISATION INDEPENDANTE DE LA VITESSE DU PC}
- Procedure DelayT(Temp:Word);
- Var OldInt1C : Pointer;
- Int1C : Pointer;
- Begin
- SetTimer($4A6); {permet d'appeler l'INT 1Ch 1000 fois/s}
- If Temp=0 Then Exit;
- CompDelay:=Temp;
- Inline($FA); {CLI}
- GetIntVec($1C,OldInt1C); {on sauve l'ancienne INT 1Ch}
- Int1C:=Ptr(Seg(EntryDelay),Ofs(EntryDelay));{on pointe sur notre routine}
- SetIntVec($1C,Int1C);
- Inline($FB); {STI}
- Repeat
- Until CompDelay<=0; {test de CompDelay (décrémenté par INT 1Ch)}
- Inline($FA);
- SetIntVec($1C,OldInt1C); {on restaure l'ancienne INT 1Ch}
- Inline($FB);
- SetTimer($FFFF) {remet l'INT 1Ch à normal (18,2 fois/s)}
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {INITIALISATION ET VERIFICATION DU MODE VIDEO}
- Procedure Init_Mode(numero:Byte);
- Begin
- regs.AH:=0;
- regs.AL:=numero;
- Intr($10,regs);
- regs.AH:=15;
- Intr($10,regs);
- If regs.AL<>numero Then
- Begin
- WriteLn('Mode vidéo absent!');
- Halt;
- End;
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {CYCLAGE D'UN SOUS-ENSEMBLE DE LA PALETTE (L'EAU DE LA FONTAINE ET DES PONTS
- ET LES FLAMES)}
- Procedure Cyclage_Palette(deb,fin:Byte);
- Var i,rouge,vert,bleu:Byte;
- Begin
- rouge:=palet[fin*3];
- vert :=palet[fin*3+1];
- bleu :=palet[fin*3+2];
- For i:=fin-1 DownTo deb Do
- Begin
- palet[(i+1)*3] :=palet[i*3];
- palet[(i+1)*3+1]:=palet[i*3+1];
- palet[(i+1)*3+2]:=palet[i*3+2];
- End;
- palet[deb*3] :=rouge;
- palet[deb*3+1]:=vert;
- palet[deb*3+2]:=bleu;
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {DECOMPRESSION RSF DE L'IMAGE DU TABLEAU INTERNE (10203 octets --> 64768!)}
- Procedure Decompacte;
- Var
- i,cptimg3,cptimg4,ox:Word;
- o1,o2,o3,o4 :Byte;
- min1,min2 :Byte;
- Begin
- min1 :=image[0];
- min2 :=image[1];
- cptimg4:=2;
- cptimg3:=0;
- Repeat
- o1:=image[cptimg4];
- If o1=min1 Then
- Begin
- o2:=image[cptimg4+1];
- o3:=image[cptimg4+2];
- o4:=image[cptimg4+3];
- ox:=256*o3+o4;
- For i:=cptimg3 To cptimg3+ox-1 Do
- img2^[i]:=o2;
- Inc(cptimg3,ox);
- Inc(cptimg4,4);
- End;
- If o1=min2 Then
- Begin
- o2:=image[cptimg4+1];
- o3:=image[cptimg4+2];
- For i:=cptimg3 To cptimg3+o3-1 Do
- img2^[i]:=o2;
- Inc(cptimg3,o3);
- Inc(cptimg4,3);
- End;
- If ((o1<>min1) And (o1<>min2)) Then
- Begin
- img2^[cptimg3]:=o1;
- Inc(cptimg3);
- Inc(cptimg4);
- End;
- Until cptimg3>64767;
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {ROUTINE POUR ACTUALISER UNE PALETTE ENTIEREMENT NOIRE!}
- Procedure Init1;
- Var
- i : Word;
- Begin
- For i:=0 To 767 Do
- pal2[i]:=0;
- Repeat Until Odd(Port[$3DA] Div 8); {on attend la synchro verticale du CRT}
- Refresh_Palette(pal2[0],0,128);
- Repeat Until Odd(Port[$3DA] Div 8);
- Refresh_Palette(pal2[384],128,128);
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {ROUTINE POUR FAIRE APPARAITRE UNE IMAGE EN FADING PROGRESSIF PAR RAPPORT A
- UNE PALETTE SERVANT DE MODELE}
- Procedure Init2;
- Var i,j : Word;
- Begin
- For j:=0 To 63 Do
- Begin
- For i:=0 To 767 Do
- pal2[i]:=(palet[i]*j) Div 63;
- Repeat Until Odd(Port[$3DA] Div 8);
- Refresh_Palette(pal2[0],0,128);
- Repeat Until Odd(Port[$3DA] Div 8);
- Refresh_Palette(pal2[384],128,128);
- DelayT(30);
- End;
- DelayT(999);
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
-
- {ANIMATION GLOBALE DE LA PETITE DEMO}
- Procedure Animation_Globale;
- Var
- j,i,k :Word;
- code,z:Byte;
- Begin
-
- Init1; {palette noire}
-
- {on initialise des écrans virtuels et réels (non visible à l'écran car la
- palette est noire!)}
- FillChar(img3^[0],64000,0);
- Aff_Sprite_Norm(0,0,80,40,0,0,Seg(img2^)+Ofs(img2^),Seg(img3^)+Ofs(img3^));
- Aff_Sprite_Norm(0,0,80,40,120,80,Seg(img3^)+Ofs(img3^),$A000); {ECRAN}
- Aff_Sprite_Norm(0,188,82,9,119,71,Seg(img2^)+Ofs(img2^),$A000); {ECRAN}
-
- {on trace les lignes blanches (toujours invisible)}
- For i:=0 To 79 Do
- Begin
- Mem[$A000:$0+22840+i]:=15; {15=couleur blanche}
- Mem[$A000:$0+25400+i]:=15;
- Mem[$A000:$0+41080+i]:=15;
- Mem[$A000:$0+38520+i]:=15;
- End;
- For i:=1 To 7 Do
- FillChar(Mem[$A000:$0+38520+i*320],80,1);
- Aff_Sprite_Norm(120,121,80,7,20,179,$A000,Seg(img3^)+Ofs(img3^));
- For i:=80 To 128 Do
- Begin
- Mem[$A000:$0+i*320+119]:=15;
- Mem[$A000:$0+i*320+200]:=15;
- End;
-
- Init2; {apparition vraie palette}
-
- {le lemming apparaît progressivement (g --> d) à l'écran}
- Aff_Sprite_Norm(0,24,7,10,0,180,Seg(img2^)+Ofs(img2^),Seg(img3^)+Ofs(img3^));
- i:=1;
- Repeat
- Aff_Sprite_Norm(0,180,7,10,120,104,Seg(img3^)+Ofs(img3^),$A000); {ECRAN}
- Aff_Sprite_Mask(table[i]+6-i,163,i,10,120,104,Seg(img2^)+Ofs(img2^),$A000);
- DelayT(105);
- Inc(i);
- Until i=7;
-
- {le lemming continue sa marche vers le centre du décor}
- For j:=121 To 156 Do
- Begin
- Aff_Sprite_Norm(0,180,7,10,j-1,104,Seg(img3^)+Ofs(img3^),$A000); {ECRAN}
- Aff_Sprite_Norm(j-120,24,7,10,0,180,Seg(img2^)+Ofs(img2^),
- Seg(img3^)+Ofs(img3^));
- Aff_Sprite_Mask(table[i],163,6,10,j,104,Seg(img2^)+Ofs(img2^),$A000);{ECRAN}
- DelayT(103);
- Inc(i);
- If i>8 Then i:=1;
- End;
-
- {on ajuste l'étape d'animation et on initialise qques vars}
- If i=1 Then i:=8 Else Dec(i);
- k:=80; bande:=0;
- cpt:=0;
-
- {routine principale d'animation du lemming, de défilement du décor, et du
- cyclage des couleurs qui le nécessitent!!!}
- Repeat
- Inc(cpt);
- {VERIF DES LIMITES DU TEXTE (pour le bouclage)}
- If cpt>810 Then cpt:=1;
- code:=chaine[cpt]*4;
- For z:=0 To 3 Do
- Begin {GESTION DU SCROLL TEXTE}
- Aff_Sprite_Norm(21,180,79,5,20,190,Seg(img3^)+Ofs(img3^),
- Seg(img3^)+Ofs(img3^));
- Aff_Sprite_Norm(code+z,177,1,5,99,190,Seg(img2^)+Ofs(img2^),
- Seg(img3^)+Ofs(img3^));
- Aff_Sprite_Norm(20,190,80,5,20,180,Seg(img3^)+Ofs(img3^),
- Seg(img3^)+Ofs(img3^));
- If z=0 Then
- Begin {GESTION DU SCROLL DU PAYSAGE}
- Aff_Sprite_Norm(1,0,79,40,0,80,Seg(img3^)+Ofs(img3^),
- Seg(img3^)+Ofs(img3^));
- Aff_Sprite_Norm(k,bande,1,40,79,80,Seg(img2^)+Ofs(img2^),
- Seg(img3^)+Ofs(img3^));
- End;
- Aff_Sprite_Norm(0,80,80,40,0,40,Seg(img3^)+Ofs(img3^),
- Seg(img3^)+Ofs(img3^));
- Aff_Sprite_Norm(0,80,80,40,0,0,Seg(img3^)+Ofs(img3^),
- Seg(img3^)+Ofs(img3^));
- {GESTION DE L'ETAPE D'ANIMATION DU LEMMING}
- Aff_Sprite_Mask(table[i],163,6,10,37,64,Seg(img2^)+Ofs(img2^),
- Seg(img3^)+Ofs(img3^));
- If z=0 Then
- Begin
- Cyclage_Palette(128,133);
- Cyclage_Palette(126,127);
- End;
- Repeat Until Odd(Port[$3DA] Div 8);
- Refresh_Palette(palet[378],126,8);
- {ON ACTUALISE LES MODIFS A L'ECRAN}
- Aff_Sprite_Norm(0,40,80,40,120,80,Seg(img3^)+Ofs(img3^),$A000); {ECRAN}
- Aff_Sprite_Norm(20,190,80,5,120,122,Seg(img3^)+Ofs(img3^),$A000); {ECRAN}
- DelayT(15);
- {VERIFS DES LIMITES DU PAYSAGE (changement et fin de ligne)}
- If z=0 Then Inc(k);
- If ((k=296) And (bande=80)) Then
- Begin
- k:=0;
- bande:=0;
- End;
- If k=320 Then
- Begin
- k:=0;
- Inc(bande,40);
- End;
- If z=0 Then Inc(i);
- If i>8 Then i:=1;
- End;
- Until KeyPressed;
-
- {on fait disparaître en fading en secouant le lemming}
- z:=0;
- For j:=63 DownTo 0 Do
- Begin
- For i:=0 To 767 Do
- pal2[i]:=(palet[i]*j) Div 63;
- Inc(z);
- If z>12 Then z:=9;
- Aff_Sprite_Norm(0,80,80,40,0,40,Seg(img3^)+Ofs(img3^),
- Seg(img3^)+Ofs(img3^));
- Aff_Sprite_Mask(40+z*8,163,8,10,37,64,Seg(img2^)+Ofs(img2^),
- Seg(img3^)+Ofs(img3^));
- Aff_Sprite_Norm(0,40,80,40,120,80,Seg(img3^)+Ofs(img3^),$A000); {ECRAN}
- Repeat Until Odd(Port[$3DA] Div 8);
- Refresh_Palette(pal2[0],0,128);
- Repeat Until Odd(Port[$3DA] Div 8);
- Refresh_Palette(pal2[384],128,128);
- DelayT(30);
- End;
- End;
-
- {///////////////////////////////////////////////////////////////////////////}
- {///////////////////////////////////////////////////////////////////////////}
-
- {PROGRAMME PRINCIPAL}
- Begin
- Init_Mode(19); {mode MCGA 320X200 en 256c}
- InLine($FA); {CLI}
- GetIntVec($1B,old_int_truc); {on détourne CTRL-BRK}
- int_truc:=Ptr(Seg(Rien),Ofs(Rien));
- SetIntVec($1B,int_truc);
- InLine($FB); {STI}
- New(img2); {on alloue des pointeurs (il aurait}
- New(img3); {fallu contrôler la validité de l'o}
- New(virtuel); {pération avec $I+/- et IOResult...}
- Decompacte; {on décompacte}
- Move(img2^[64000],palet[0],768); {transfert de la palette}
-
- Animation_Globale;
-
- Dispose(img2); {on désalloue les pointeurs}
- Dispose(virtuel);
- Dispose(img3);
- InLine($FA); {on restaure l'ancien CTRL-BRK}
- SetIntVec($1B,old_int_truc);
- InLine($FB);
- Init_Mode(3); {mode texte}
- End.
-
- {///////////////////////////////////////////////////////////////////////////}
- {///////////////////////////////////////////////////////////////////////////}
-