1 ORG $4000 2 ; LST OFF 3 4 ********************************* 5 * * 6 * AFFICHAGE PAYSAGE MURYADEN 2 * 7 * (C)1989 BY DECKARD * 8 * * 9 ********************************* 10 11 * BANK 2 12 13 LIB_DESCRIPT EQU $F000 ; DESCRIPTIF DE LA LIBRAIRIE SPRITE 14 REF_BIT EQU $F00B ; BITS DE SOLIDITE/VISIBILITE 15 CETRE EQU $F110 16 COUIE EQU $F111 17 CSPECIAL EQU $F112 18 CSENTIR EQU $F113 19 NBPAS EQU $F114 ; NOMBRE DE PASSAGERS 20 NOIR_COM EQU $F124 ; NUMEROS DES COM VISIBLES DANS LE NOIR 21 TABLECOM EQU $F133 ; DEBUT DES ADR DE DEBUT DES COMMENTAIRES 22 23 ORDRE EQU $F880 24 CASES EQU $F8D1 25 KELPACK EQU $FB84 26 NOPACK EQU $FC74 27 MESSAGE EQU $FC87 28 29 ******************************** 30 31 BUF_RDOS EQU $B200 ; UTILISE LE BUFFER RWTS DU RDOS 32 33 ******************************** 34 35 * RAM 36 37 CARTEVAL EQU $1500 ; DATA CARTE (RENCONTRES) 38 CARTESP EQU $18C2 ; DATA CARTE (SPRITES) 39 DECALAGE EQU $92F 40 MUSICD EQU $CEA ; MUSIC DIRECT 41 CPTMUS EQU $D0A 42 SOUNDD EQU $D2C ; SOUND DIRECT 43 AD1 EQU $D93 44 AD3 EQU $D95 45 NOISED EQU $D9F 46 SPRITED EQU $E2C ; &SPRITE DIRECT 47 MULT EQU $E97 ; MODULE MULTIPLICATION 48 SPCPT EQU $B14 ; INDICE DE SWAP 49 SPMVT = SPCPT+1 ; NOMBRE DE SPRITES EN MVT 50 SPM = SPCPT+2 ; DEBUT STOCKAGE DES SPRITES EN MVT 51 SPMX = SPCPT+123 ; " " " " COORD. X 52 SPMY = SPCPT+244 ; " " " " COORD. Y 53 54 QUART EQU $33A 55 NMAP = QUART+1 ; NO DE LA NOUVELLE CARTE (ICI CARTE 2) 56 OMAP = QUART+2 ; OLD MAP (SERT POUR LE &DEL) 57 MONSTRE = QUART+3 58 CMD = QUART+4 59 LIEU = QUART+5 60 COPYLIEU = QUART+6 61 PROBA = QUART+7 62 PCOMB = QUART+8 ; POURCENTAGE DE PRESENCE DU MONSTRE 63 MBUTE = QUART+9 ; MONSTRE TUE=1/MONSTRE VIVANT=0 64 DIVERS = QUART+10 65 NATURE = QUART+11 66 POURCENT = QUART+12 67 68 SON EQU $1FF0 ; RAM SPECIAL 69 70 ******************************** 71 72 COMPX EQU $08 73 COMPY EQU $19 74 CY EQU $17 75 CX EQU $18 76 X EQU $09 77 Y EQU $1A 78 CH EQU $24 79 CV EQU $25 80 XCOPIE EQU $4C 81 YCOPIE EQU $4D 82 83 ******************************** 84 85 * ADR SYSTEME 86 87 RDKEY EQU $FD0C 88 OUTDO EQU $DB5C 89 STROUT EQU $DB3A 90 WAIT EQU $FCA8 91 POSITION EQU $FC22 92 MOVFM EQU $EAF9 93 RND EQU $EFAE 94 INT EQU $EC23 95 FMULT EQU $E97F 96 GETADR EQU $E752 97 LINPRT EQU $ED24 98 OUTSP EQU $DB57 99 LINNUM EQU $50 100 FAC EQU $9D 101 PTRGET EQU $DFE3 102 CHECKCOM EQU $DEBE 103 FRMNUM EQU $DD67 104 GETBYT EQU $E6F8 105 106 ******************************** 107 108 * ADRESSE GESTION RAM AUXILIAIRE 109 110 SWAP_AUX EQU $3A0 111 STRING EQU $349 ; DS 17,0 -> NOM DU MONSTRE 112 VALS EQU $35A ; DS 70,0 -> CARACTERISTIQUES DU MONSTRE 113 114 ******************************** 115 116 AJ MAC 117 INC ]1 118 BNE FAJ 119 INC ]2 120 FAJ <<< 121 122 ******************************** 123 4000: 4C 47 40 124 JMP START 4003: 4C AF 4D 125 JMP GAME0 126 ;LST ON 4006: 4C DB 45 127 RETOUR_MONS0 JMP RETOUR_MONS 4009: 4C 7A 4B 128 JMP TRAVERSE ; FAIT PASSER LE BATEAU D'UN RIVE A L'AUTRE 400C: 4C 30 4D 129 JMP IS_LUX? ; ON REGARDE SI LE LIEU EST ECLAIRE 400F: 4C 66 4B 130 JMP ENLEVOBJ ; POKE LA VALEUR 191 POUR ANNULER L'OBJET 4012: 4C 6B 4B 131 JMP COFFRVID ; MET UN SPRITE DE COFFRE VIDE 4015: 4C D8 4B 132 JMP QUITCHAOS ; SORTIE PAR TELEPORTATIN VERS L'EXTERIEUR 4018: 4C DD 4B 133 JMP BACK_MACRO ; RECOPIE LIBRARY.MACRO EN RAM PRINC 401B: 4C 47 4B 134 JMP REMPLAS191 401E: 4C E2 4B 135 JMP DOPIEGE 4021: 4C AC 4C 136 JMP RAMTOBK 4024: 4C 31 44 137 JMP SORTQUIT 4027: 4C 06 4D 138 JMP DOMARCH 402A: 4C 2D 4B 139 JMP OPENDOOR 140 ;LST OFF 402D: 4C FF FF 141 JMP $FFFF 142 143 ;LST ON 4030: 00 144 CLASSE HEX 00 ; 0=SORCIER/1=PRETRE/2=GUERRIER/3=VOLEUR 4031: 00 145 LUX? HEX 00 ; =0 SI LIEU NON ECLAIRE / =1 SI LIEU ECLAIRE 4032: 00 146 MESS_LUX HEX 00 ; SI = 1 ON A DEJA ECRIT LE MESSAGE LUMIERE 4033: 0F 147 MVTMAX DFB 15 ; NBRE DE MVTS SANS RENCONTRE (15 MINIMUM) 4034: 00 148 POISON_RND HEX 00 ; NOMBRE DE ROUNDS OU LE PERSO PERD -1 4035: 00 149 CPT_POISON HEX 00 ; NB DE ROUNDS EFFECTUES 4036: 00 150 POINT_VIE HEX 00 ; POINTS DE VIE DU PERSO 151 4037: 00 152 LUMIERE HEX 00 ; SI = 0 DANS DONJON -> ON NE VOIT PLUS 4038: 00 153 MVTACT HEX 00 ; NBRE RESTANT DE MVT SANS AVOIR DE RENCONTRE 4039: 00 154 PREMONITION HEX 00 ; NBR DE MOUVEMENTS OU LE MONSTRE OU PREVISIBLE 403A: 00 155 DETECTION HEX 00 ; IDEM POUR PIEGES 403B: 00 156 BRAVOURE HEX 00 ; POINT DE VIE SUPPLEMENTAIRES (SORT) 403C: 00 157 RGN_RND HEX 00 ; NBRE DE ROUNDS OU LE PERSO REGENERE 403D: 00 158 MAX_PV HEX 00 ; NBR DE POINTS DE VIE A NE PAS DEPASSER 159 ;LST OFF 403E: 00 160 HEX 00 403F: 00 161 HEX 00 4040: 00 162 HEX 00 4041: 00 163 HEX 00 4042: 00 164 HEX 00 4043: 00 165 HEX 00 4044: 00 166 HEX 00 4045: 00 167 SAVED_PACK HEX 00 ; SAUVEGARDE DU NUMERO PACK DERNIER COMBAT 4046: 00 168 NAVIRE HEX 00 169 ;LST OFF 170 4047: AD 3E 03 171 START LDA CMD 404A: C9 02 172 CMP #2 ; COMBAT 404C: D0 2F 173 BNE START2 174 ; ON ETAIT EN COMBAT 404E: 20 AF 4D 175 JSR GAME0 ; DEGAGE LA BESTIOLE DE L'ECRAN 4051: A9 00 176 LDA #0 4053: 8D 3E 03 177 STA CMD ; ON EST PLUS EN MODE COMBAT 178 ; 4056: AD 43 03 179 LDA MBUTE ; A-T-ON BUTER LE MONSTRE? 4059: C9 01 180 CMP #1 405B: D0 20 181 BNE START2 182 ; ON A TUE LE MONSTRE 405D: A9 00 183 LDA #0 405F: 8D 43 03 184 STA MBUTE 185 ; 4062: AD 42 03 186 LDA PCOMB 4065: C9 64 187 CMP #100 4067: D0 14 188 BNE START2 189 ; C'ETAIT UN MONSTRE UNIQUE A 100% 4069: AD 45 40 190 LDA SAVED_PACK 406C: C9 14 191 CMP #20 406E: 30 08 192 BMI GARDEPAS+1 193 4070: 18 194 CLC ; ON GARDE MONSTRE A 5% 4071: AD 45 40 195 LDA SAVED_PACK 4074: 69 50 196 ADC #80 4076: A8 197 TAY 198 4077: 2C 199 GARDEPAS DFB $2C ; BIT 4078: A0 BF 200 LDY #191 ; ON POKE 191 : PLUS DE MONSTRES ICI 407A: 20 47 48 201 JSR MNORMAL ; ON MET UN NOUVEAU POURCENTAGE:10% 202 203 407D: 20 2F 09 204 START2 JSR DECALAGE 4080: A9 BE 205 LDA #$BE ; AFFICHE '>' 4082: 20 5C DB 206 JSR OUTDO 4085: 20 0C FD 207 WAITKEY JSR RDKEY ; ATTENTE TOUCHE 208 4088: C9 00 209 CMP #0 ; AU CAS OU 408A: F0 F9 210 BEQ WAITKEY 408C: 85 EC 211 STA $EC 408E: A0 00 212 LDY #0 4090: B9 AD 40 213 WAITKEY2 LDA TOUCHES,Y 4093: F0 F0 214 BEQ WAITKEY ; COMMANDE INEXISTANTE 4095: C5 EC 215 CMP $EC ; CMP TOUCHE ENFONCEE 4097: F0 03 216 BEQ OK_KEY 4099: C8 217 INY 409A: D0 F4 218 BNE WAITKEY2 219 409C: 98 220 OK_KEY TYA 409D: 0A 221 ASL A ; *2 409E: AA 222 TAX 409F: BD BF 40 223 LDA BRANCHE_OU,X ; LOW 40A2: 85 EC 224 STA $EC 40A4: E8 225 INX 40A5: BD BF 40 226 LDA BRANCHE_OU,X ; HIGH 40A8: 85 ED 227 STA $ED 40AA: 6C EC 00 228 JMP ($00EC) 229 40AD: 95 88 8B 230 TOUCHES DFB $95,$88,$8B,$8A,"P","Q","I","U" 40B0: 8A D0 D1 C9 D5 40B5: D3 CA C5 231 DFB "S","J","E","O",$9B,"C"," ","D","B",0 40B8: CF 9B C3 A0 C4 C2 00 232 40BF: E1 40 F2 233 BRANCHE_OU DA MAIN1,MAIN2,MAIN3,MAIN4,ENTRER,QUIT 40C2: 40 FD 40 0E 41 69 42 8E 40CA: 43 40CB: 5F 42 4B 234 DA INVENTOR,UTILISER,SORT,JETER,EQUIPER 40CE: 42 55 42 41 42 37 42 40D5: 7F 41 3C 235 DA OUVRIR,SAUVEJEU,CHERCHER,LISTCAR 40D8: 41 19 41 45 44 40DD: 6B 44 46 236 DA MARCHAND,BRUITAGE 40E0: 41 237 238 ******************************** 239 * TOUCHES 240 ; FLECHE DROITE 40E1: A2 01 241 MAIN1 LDX #1 ; EST 40E3: 20 7A 4D 242 JSR PRINT_MESS 40E6: A6 18 243 LDX CX 40E8: E8 244 INX 40E9: 86 4C 245 MAIN0 STX XCOPIE 40EB: A5 17 246 LDA CY 40ED: 85 4D 247 STA YCOPIE 40EF: 4C F7 44 248 JMP NEXTIS 249 250 ; FLECHE GAUCHE 40F2: A2 02 251 MAIN2 LDX #2 ; OUEST 40F4: 20 7A 4D 252 JSR PRINT_MESS 40F7: A6 18 253 LDX CX 40F9: CA 254 DEX 40FA: 4C E9 40 255 JMP MAIN0 256 257 ; FLECHE HAUT 40FD: A2 03 258 MAIN3 LDX #3 40FF: 20 7A 4D 259 JSR PRINT_MESS 4102: A4 17 260 LDY CY 4104: 88 261 DEY 4105: 84 4D 262 MAIN00 STY YCOPIE 4107: A5 18 263 LDA CX 4109: 85 4C 264 STA XCOPIE 410B: 4C F7 44 265 JMP NEXTIS 266 267 ; FLECHE BAS 410E: A2 04 268 MAIN4 LDX #4 ; SUD 4110: 20 7A 4D 269 JSR PRINT_MESS 4113: A4 17 270 LDY CY 4115: C8 271 INY 4116: 4C 05 41 272 JMP MAIN00 273 274 ******************************** 275 * CHERCHER 276 4119: A2 2A 277 CHERCHER LDX #42 ; SEEK 411B: 20 7A 4D 278 JSR PRINT_MESS 411E: 20 DE 44 279 JSR HEREIS 4121: C9 C1 280 CMP #193 4123: 30 0F 281 BMI CHERCHE? ; <193 4125: C9 C6 282 CMP #198 4127: 10 0B 283 BPL CHERCHE? ; >197 284 ; 4129: 38 285 SEC 412A: E9 C0 286 SBC #192 ; NUMEROTES DE 1 A 5 412C: 8D 44 03 287 STA DIVERS 288 ; 412F: A9 0E 289 LDA #14 ; CMD=CHERCHER 4131: 4C 5F 4B 290 JMP GOBASIC 291 4134: A2 2B 292 CHERCHE? LDX #43 ; KEDAL 4136: 20 7A 4D 293 JSR PRINT_MESS 4139: 4C 47 40 294 JMP START 295 296 ******************************** 297 * SAUVEGARDE SCENARIO 298 413C: A2 29 299 SAUVEJEU LDX #41 ; SAVEGAME 413E: 20 7A 4D 300 JSR PRINT_MESS 4141: A9 0D 301 LDA #13 4143: 4C 5F 4B 302 JMP GOBASIC 303 304 ******************************** 305 * BRUITAGE 306 4146: A2 00 307 BRUITAGE LDX #0 4148: AD F0 1F 308 LDA SON 414B: D0 01 309 BNE BRUIT2 414D: E8 310 INX 414E: 8E F0 1F 311 BRUIT2 STX SON 4151: E0 01 312 CPX #1 4153: D0 07 313 BNE BRUIT3 4155: A9 66 314 LDA #MSG_ON 4159: 4C 60 41 316 JMP BRUIT4 317 415C: A9 72 318 BRUIT3 LDA #MSG_OFF 320 4160: 20 3A DB 321 BRUIT4 JSR STROUT 4163: 4C 7D 40 322 JMP START2 323 4166: C2 F2 F5 324 MSG_ON ASC "Bruitage ON"00 4169: E9 F4 E1 E7 E5 A0 CF CE 4171: 00 4172: C2 F2 F5 325 MSG_OFF ASC "Bruitage OFF"00 4175: E9 F4 E1 E7 E5 A0 CF C6 417D: C6 00 326 327 ******************************** 328 * OUVRIR 329 417F: A2 27 330 OUVRIR LDX #39 ; OPEN 4181: 20 7A 4D 331 JSR PRINT_MESS 4184: AD 45 03 332 LDA NATURE 4187: F0 27 333 BEQ OUVRE? ; ON OUVRE RIEN EN EXTERIEUR 4189: 20 DE 44 334 JSR HEREIS 418C: 10 22 335 BPL OUVRE? ; SI >0 418E: 29 7F 336 AND #$7F ; -$80 4190: C9 6A 337 CMP #106 4192: F0 1F 338 BEQ GOCAVERNE 4194: C9 75 339 CMP #117 4196: 30 18 340 BMI OUVRE? ; SI <117 4198: C9 7F 341 CMP #127 419A: 10 14 342 BPL OUVRE? ; SI >126 343 ; 419C: 38 344 SEC 419D: E9 75 345 SBC #117 419F: AA 346 TAX 41A0: BD DC 41 347 LDA IN_CHEST,X ; NUMERO DE L'OBJET DANS LA LISTE 41A3: 8D 44 03 348 STA DIVERS 349 41A6: A2 28 350 LDX #40 ; COFFRE 41A8: 20 7A 4D 351 JSR PRINT_MESS 41AB: A9 0C 352 LDA #12 41AD: 4C 5F 4B 353 JMP GOBASIC 354 41B0: 4C D3 43 355 OUVRE? JMP QUIT_QUOI ; OUVRIR QUOI? 356 41B3: A2 28 357 GOCAVERNE LDX #40 ; COFFRE 41B5: 20 7A 4D 358 JSR PRINT_MESS 41B8: 20 2F 09 359 JSR DECALAGE 41BB: A9 E6 360 LDA #TOBOGGAN 41BF: 20 3A DB 362 JSR STROUT 41C2: 20 20 4B 363 JSR HANDPASS 41C5: A9 08 364 LDA #8 ; NOUVELLE NATURE 41C7: 8D 45 03 365 STA NATURE 41CA: A9 01 366 LDA #1 ; CARTE UNIQUE 41CC: 8D 3B 03 367 STA NMAP 41CF: A9 0A 368 LDA #10 ; COORDONNEES DANS LA CAVERNE 41D1: 85 17 369 STA CY 41D3: A9 1F 370 LDA #31 41D5: 85 18 371 STA CX 41D7: A9 04 372 LDA #4 ; EQUIVALENT DU 'QUITTER' NORMAL 41D9: 4C 5F 4B 373 JMP GOBASIC 374 41DC: 80 81 5C 375 IN_CHEST DFB 128,129,92,98,120,104,18,105,64,49 41DF: 62 78 68 12 69 40 31 376 41E6: D5 EE E5 377 TOBOGGAN ASC "Une trappe s'ouvre sous vospieds! Vous" 41E9: A0 F4 F2 E1 F0 F0 E5 A0 41F1: A0 A0 A0 A0 A0 F3 A7 EF 41F9: F5 F6 F2 E5 A0 F3 EF F5 4201: F3 A0 F6 EF F3 F0 E9 E5 4209: E4 F3 A1 A0 D6 EF F5 F3 4211: A0 A0 A0 378 ASC " glissez alors sur un toboggan!"00 4214: A0 A0 E7 EC E9 F3 F3 E5 421C: FA A0 E1 EC EF F2 F3 A0 4224: A0 A0 F3 F5 F2 A0 F5 EE 422C: A0 F4 EF E2 EF E7 E7 E1 4234: EE A1 00 379 380 ******************************** 381 * EQUIPER 382 4237: A2 26 383 EQUIPER LDX #38 ; EQUIP 4239: 20 7A 4D 384 JSR PRINT_MESS 423C: A9 09 385 LDA #9 423E: 4C 5F 4B 386 JMP GOBASIC 387 388 ******************************** 389 * JETER OBJET 390 4241: A2 25 391 JETER LDX #37 ; JETTE 4243: 20 7A 4D 392 JSR PRINT_MESS 4246: A9 08 393 LDA #8 4248: 4C 5F 4B 394 JMP GOBASIC 395 396 ******************************** 397 * UTILISER OBJET 398 424B: A2 23 399 UTILISER LDX #35 ; OBJET 424D: 20 7A 4D 400 JSR PRINT_MESS 4250: A9 06 401 LDA #6 4252: 4C 5F 4B 402 JMP GOBASIC 403 404 ******************************** 405 * LANCER UN SORT 406 4255: A2 22 407 SORT LDX #34 ; SPELL 4257: 20 7A 4D 408 JSR PRINT_MESS 425A: A9 07 409 LDA #7 425C: 4C 5F 4B 410 JMP GOBASIC 411 412 ******************************** 413 * INVENTAIRE 414 425F: A2 24 415 INVENTOR LDX #36 ; INVEN 4261: 20 7A 4D 416 JSR PRINT_MESS 4264: A9 05 417 LDA #5 4266: 4C 5F 4B 418 JMP GOBASIC 419 420 ******************************** 421 * PENETRER DONJON/VILLE/VILLAGE/... 422 4269: A2 0C 423 ENTRER LDX #12 ; ENTRE 426B: 20 7A 4D 424 JSR PRINT_MESS 426E: 20 DE 44 425 JSR HEREIS 4271: 8D 80 4B 426 STA PEN+1 ; POUR TRAVERSE 4274: 48 427 PHA 4275: AD 45 03 428 LDA NATURE 4278: F0 25 429 BEQ ENTREXT 430 427A: 68 431 PLA ; PENETRE A PARTIR D'UN LIEU 427B: 10 0F 432 BPL ENTREROU 427D: 29 7F 433 AND #$7F 427F: C9 5E 434 CMP #94 4281: 30 09 435 BMI ENTREROU 4283: C9 62 436 CMP #98 4285: 10 0D 437 BPL ENTREAUTR 4287: 38 438 SEC 4288: E9 53 439 SBC #83 ; DE 11 A 14 428A: D0 30 440 BNE ENTRER4D 441 428C: A2 0D 442 ENTREROU LDX #13 428E: 20 7A 4D 443 JSR PRINT_MESS 4291: 4C 7D 40 444 JMP START2 445 4294: C9 70 446 ENTREAUTR CMP #112 4296: 30 F4 447 BMI ENTREROU 4298: C9 74 448 CMP #116 429A: 10 F0 449 BPL ENTREROU 429C: 4C 02 43 450 JMP GOTUNNEL 451 429F: 68 452 ENTREXT PLA ; PENETRE A PARTIR DE L'EXTERIEUR 42A0: 10 EA 453 BPL ENTREROU 42A2: 29 7F 454 AND #$7F 42A4: C9 6E 455 CMP #110 42A6: 30 E4 456 BMI ENTREROU 42A8: C9 74 457 CMP #116 42AA: 10 0D 458 BPL ENTRER4 459 ; ON RENTRE DANS UNE GUILDE DE NAVIGATEURS 42AC: 20 FC 42 460 JSR MDANS 42AF: A2 31 461 LDX #49 ; PORT 42B1: 20 7A 4D 462 JSR PRINT_MESS 42B4: A9 0A 463 LDA #10 42B6: 4C 5F 4B 464 JMP GOBASIC 465 42B9: 38 466 ENTRER4 SEC 42BA: E9 74 467 SBC #116 ; LIEU DE 0 A 10 42BC: 48 468 ENTRER4D PHA 42BD: 20 FC 42 469 JSR MDANS ; ENTRE DANS 42C0: 68 470 PLA 42C1: 48 471 PHA 42C2: AA 472 TAX 42C3: BD 37 43 473 LDA ENTRE_LIEU,X ; NUMERO DU MESSAGE 42C6: AA 474 TAX 42C7: 20 7A 4D 475 JSR PRINT_MESS 476 42CA: 68 477 PLA 42CB: C9 03 478 CMP #3 42CD: F0 22 479 BEQ CAS_TEREBAND 42CF: AA 480 TAX 42D0: 20 20 4B 481 JSR HANDPASS 42D3: BD 46 43 482 LDA NATURLIEU,X ; NOUVELLE NATURE 42D6: 8D 45 03 483 STA NATURE 42D9: BD 55 43 484 LDA QUARTLIEU,X ; NEW NUMERO DE CARTE 42DC: 8D 3B 03 485 STA NMAP 42DF: BD 64 43 486 LDA LIEUX,X 42E2: 85 18 487 STA CX 42E4: BD 73 43 488 LDA LIEUY,X 42E7: 85 17 489 STA CY 42E9: 20 88 48 490 JSR RAZMVT 42EC: A9 03 491 LDA #3 ; CMD = 3 (VILLES/CHATEAU/DONJON) 42EE: 4C 5F 4B 492 JMP GOBASIC 493 42F1: 20 2F 09 494 CAS_TEREBAND JSR DECALAGE 42F4: A2 15 495 LDX #21 ; NO_ACCESS 42F6: 20 7A 4D 496 JSR PRINT_MESS 42F9: 4C 7D 40 497 JMP START2 498 42FC: A2 0F 499 MDANS LDX #15 ; DANS 42FE: 20 7A 4D 500 JSR PRINT_MESS 4301: 60 501 RTS 502 4302: 38 503 GOTUNNEL SEC 4303: E9 70 504 SBC #112 4305: 48 505 PHA 4306: 20 FC 42 506 JSR MDANS 4309: A9 2D 507 LDA #TUNNEL 430D: 20 3A DB 509 JSR STROUT 4310: 68 510 PLA 4311: AA 511 TAX 4312: AD 3B 03 512 LDA NMAP 4315: 8D 3C 03 513 STA OMAP 4318: BD 82 43 514 LDA TMAP,X 431B: 8D 3B 03 515 STA NMAP 431E: BD 86 43 516 LDA XTUNNEL,X 4321: 85 18 517 STA CX 4323: BD 8A 43 518 LDA YTUNNEL,X 4326: 85 17 519 STA CY 4328: A9 01 520 LDA #1 432A: 4C 5F 4B 521 JMP GOBASIC ; SIMULE CHANGEMENT DE CARTE 522 432D: F5 EE A0 523 TUNNEL ASC "un tunnel"00 4330: F4 F5 EE EE E5 EC 00 524 4337: 11 12 13 525 ENTRE_LIEU DFB 17,18,19,20,22,23,24,25,26,27,28,32,33,29,30 433A: 14 16 17 18 19 1A 1B 1C 4342: 20 21 1D 1E 526 4346: 0A 0B 0C 527 NATURLIEU DFB 10,11,12,0,2,3,4,5,13,14,15,16,9,6,7 4349: 00 02 03 04 05 0D 0E 0F 4351: 10 09 06 07 4355: 03 04 03 528 QUARTLIEU DFB 3,4,3,0,1,1,1,3,3,1,1,1,1,1,1 4358: 00 01 01 01 03 03 01 01 4360: 01 01 01 01 4364: 06 15 07 529 LIEUX DFB 6,21,7,0,6,8,8,9,31,7,6,7,6,31,16 4367: 00 06 08 08 09 1F 07 06 436F: 07 06 1F 10 4373: 16 1F 0F 530 LIEUY DFB 22,31,15,0,18,20,7,32,31,18,23,6,18,6,32 4376: 00 12 14 07 20 1F 12 17 437E: 06 12 06 20 531 4382: 01 04 02 532 TMAP DFB 1,4,2,1 4385: 01 4386: 1A 0F 10 533 XTUNNEL DFB 26,15,16,16 4389: 10 438A: 07 0E 0E 534 YTUNNEL DFB 7,14,14,19 438D: 13 535 536 ******************************** 537 * QUITTER DONJON/CRYPTE/... 538 438E: A2 06 539 QUIT LDX #6 ; QUITTER 4390: 20 7A 4D 540 JSR PRINT_MESS 4393: 20 DE 44 541 JSR HEREIS 4396: 10 3B 542 BPL QUIT_QUOI 4398: 29 7F 543 AND #$7F 439A: C9 55 544 CMP #85 439C: 30 35 545 BMI QUIT_QUOI 439E: C9 5E 546 CMP #94 43A0: 10 31 547 BPL QUIT_QUOI 43A2: 38 548 SEC ; IL S'AGIT BIEN D'UNE ECHELLE 43A3: E9 55 549 SBC #85 ; DE 0 A 8 43A5: 48 550 PHA 43A6: 48 551 PHA 43A7: 20 2F 09 552 JSR DECALAGE 43AA: 68 553 PLA 43AB: AA 554 TAX 555 43AC: BD 04 44 556 LDA QUIT_LIEU,X 43AF: AA 557 TAX 43B0: 20 7A 4D 558 JSR PRINT_MESS 559 43B3: 68 560 PLA 43B4: AA 561 TAX 43B5: 20 20 4B 562 QUITDJN3 JSR HANDPASS 43B8: BD 0D 44 563 LDA QUITNATUR,X ; NOUVELLE NATURE 43BB: 8D 45 03 564 STA NATURE 43BE: BD 16 44 565 LDA QUITQUART,X 43C1: 8D 3B 03 566 STA NMAP 43C4: BD 1F 44 567 LDA QUITX,X 43C7: 85 18 568 STA CX 43C9: BD 28 44 569 LDA QUITY,X 43CC: 85 17 570 STA CY 43CE: A9 04 571 LDA #4 43D0: 4C 5F 4B 572 JMP GOBASIC 573 43D3: A2 0E 574 QUIT_QUOI LDX #14 ; QUITTER QUOI?? 43D5: 20 7A 4D 575 JSR PRINT_MESS 43D8: 4C 7D 40 576 JMP START2 577 43DB: 20 2F 09 578 QUITDJN JSR DECALAGE 43DE: A2 00 579 LDX #0 43E0: BD FA 43 580 QUITDJN4 LDA CANQUIT,X 43E3: C9 FF 581 CMP #255 43E5: F0 08 582 BEQ QUITDJN2 43E7: CD 45 03 583 CMP NATURE 43EA: F0 C9 584 BEQ QUITDJN3 43EC: E8 585 INX 43ED: D0 F1 586 BNE QUITDJN4 587 43EF: A2 05 588 QUITDJN2 LDX #5 ; INPOSSIBLE 43F1: 20 7A 4D 589 JSR PRINT_MESS 43F4: A9 00 590 LDA #0 43F6: 8D 3E 03 591 STA CMD 43F9: 60 592 RTS 593 43FA: 01 02 03 594 CANQUIT DFB 1,2,3,4,5,16,9,7,6,255 43FD: 04 05 10 09 07 06 FF 4404: 14 16 17 595 QUIT_LIEU DFB 20,22,23,24,25,32,33,30,29 4407: 18 19 20 21 1E 1D 440D: 00 00 00 596 QUITNATUR DFB 0,0,0,0,0,13,13,12,3 4410: 00 00 0D 0D 0C 03 4416: 12 10 19 597 QUITQUART DFB 18,16,25,35,19,1,3,2,1 4419: 23 13 01 03 02 01 441F: 16 1B 08 598 QUITX DFB 22,27,8,26,6,7,8,31,31 4422: 1A 06 07 08 1F 1F 4428: 0B 12 15 599 QUITY DFB 11,18,21,17,27,6,18,6,6 442B: 11 1B 06 12 06 06 600 601 ******************************** 602 * SORTIE DONJON PAR SORT 603 4431: AD 45 03 604 SORTQUIT LDA NATURE 4434: C9 0A 605 CMP #10 4436: 10 03 606 BPL SORTQUIT3 ; >9 4438: 4C DB 43 607 SORTQUIT2 JMP QUITDJN ; SORTIE IDEM ECHELLE 443B: C9 10 608 SORTQUIT3 CMP #16 443D: F0 F9 609 BEQ SORTQUIT2 443F: 20 2F 09 610 JSR DECALAGE ; SORTIE VILLE (QUITTER O/N) 4442: 4C 7F 4A 611 JMP BYEBYE2 612 613 ******************************** 614 * AFFICHAGE DES CARACTERISTIQUES 615 4445: A9 51 616 LISTCAR LDA #CARAC_PERSO 4449: 20 3A DB 618 JSR STROUT 444C: A9 13 619 LDA #19 444E: 4C 5F 4B 620 JMP GOBASIC 621 4451: C9 EE F3 622 CARAC_PERSO ASC "Inspecter le personnage"00 4454: F0 E5 E3 F4 E5 F2 A0 EC 445C: E5 A0 A0 A0 F0 E5 F2 F3 4464: EF EE EE E1 E7 E5 00 623 624 ******************************** 625 * TRANSACTION AVEC MARCHAND 626 446B: A9 BA 627 MARCHAND LDA #DISCUTER 446F: 20 3A DB 629 JSR STROUT 4472: 20 DE 44 630 JSR HEREIS 4475: 10 39 631 BPL NOMAN 4477: 29 7F 632 AND #$7F 4479: C9 35 633 CMP #53 447B: 30 33 634 BMI NOMAN 447D: C9 3F 635 CMP #63 447F: 10 2F 636 BPL NOMAN 4481: 38 637 SEC 4482: E9 35 638 SBC #53 ; MARCHAND (0 A 9) 4484: 8D 44 03 639 STA DIVERS 4487: 48 640 PHA 4488: 38 641 SEC 4489: AD 45 03 642 LDA NATURE 448C: E9 0A 643 SBC #10 ; 0 A 6 448E: 85 EC 644 STA $EC 4490: A9 0A 645 LDA #10 ; *10 4492: 85 ED 646 STA $ED 4494: 20 97 0E 647 JSR MULT 4497: 18 648 CLC 4498: 68 649 PLA 4499: 65 EF 650 ADC $EF ; LOW 449B: 0A 651 ASL A ; *2 POUR DA 449C: 48 652 PHA 449D: A9 CA 653 LDA #YAMAN 44A1: 20 3A DB 655 JSR STROUT 44A4: 68 656 PLA 44A5: A8 657 TAY ; VARIABLE PASSEE A SWAP 44A6: A2 06 658 LDX #6 44A8: 20 A0 03 659 JSR SWAP_AUX 44AB: A9 14 660 LDA #20 44AD: 4C 5F 4B 661 JMP GOBASIC 662 44B0: A9 D6 663 NOMAN LDA #QUI? 44B4: 20 3A DB 665 JSR STROUT 44B7: 4C 7D 40 666 JMP START2 667 44BA: C4 E9 F3 668 DISCUTER ASC "Discuter avec "00 44BD: E3 F5 F4 E5 F2 A0 E1 F6 44C5: E5 E3 A0 A0 00 44CA: F5 EE A0 669 YAMAN ASC "un marchand"00 44CD: ED E1 F2 E3 E8 E1 EE E4 44D5: 00 44D6: F1 F5 E9 670 QUI? ASC "qui ???"00 44D9: A0 BF BF BF 00 671 672 *<><><><><><><><><><><><><><><><><><><><><><> 673 674 ******************************** 675 * CHERCHE LA VALEUR DE LA CASE OU ON EST 676 44DE: A5 18 677 HEREIS LDA CX 44E0: 85 4C 678 STA XCOPIE 44E2: A5 17 679 LDA CY 44E4: 85 4D 680 STA YCOPIE 44E6: 20 2D 48 681 JSR ENLEVE 44E9: 8E F0 44 682 STX HEREIS2+1 44EC: 8C F1 44 683 STY HEREIS2+2 44EF: AE FF FF 684 HEREIS2 LDX $FFFF ; LDA $???? CHARGE 44F2: 20 1E 48 685 JSR RETABLIR 44F5: 8A 686 TXA ; LE TYPE DE TERRIN EST DANS L'ACC 44F6: 60 687 RTS 688 689 ******************************** 690 * NATURE DU LIEU OU ON VEUT ALLER 691 44F7: 20 2D 48 692 NEXTIS JSR ENLEVE 44FA: AD FF FF 693 b LDA $FFFF ; LDA #$???? 44FD: C9 BF 694 CMP #191 44FF: D0 03 695 BNE A1 696 ; AUCUN OBSTACLE 4501: 4C D8 46 697 JMP OK_MOVE 698 ; 4504: C9 FF 699 A1 CMP #$FF ; =255 4506: D0 19 700 BNE A2 701 ; SOLIDE 4508: A9 01 702 LDA #1 ; &MUSIC1,0,15 450A: 8D 0A 0D 703 STA CPTMUS 450D: A9 00 704 LDA #0 450F: 85 EC 705 STA $EC 4511: A2 0F 706 LDX #15 4513: 20 EA 0C 707 JSR MUSICD 708 ; 4516: 20 2F 09 709 JSR DECALAGE 4519: A2 05 710 LDX #5 451B: 20 7A 4D 711 JSR PRINT_MESS ; ?"IMPOSSIBLE" 451E: 4C 3F 48 712 JMP D 713 4521: C9 00 714 A2 CMP #0 4523: 10 0B 715 BPL A3 ; SI >=0 4525: AA 716 TAX 4526: 29 7F 717 AND #$7F ; -$80 4528: C9 0C 718 CMP #12 ; ET SI <140 452A: 30 03 719 BMI A4 452C: 4C 91 48 720 JMP COM ; SUITE RECHERCHE AVEC COMMENTAIRES 721 452F: 8A 722 A4 TXA ; RETABLIT 4530: 8D 40 03 723 A3 STA COPYLIEU ; UNE RENCONTRE EST POSSIBLE 724 ; 725 ; DETERMINE NOMBRE ALEATOIRE ENTRE 0 ET 100 726 ; 4533: 20 57 48 727 ALEA101 JSR RND1 4536: A9 83 728 LDA #PK101 453A: 20 62 48 730 JSR RNDFIN 731 453D: 8D 41 03 732 STA PROBA 4540: AD 40 03 733 LDA COPYLIEU 4543: 30 0E 734 BMI C5P ; PACK 5 % SI NEGATIF 4545: C9 64 735 CMP #100 4547: 10 0A 736 BPL C5P ; PACK 5 % SI >=100 4549: C9 3C 737 CMP #60 454B: 10 0B 738 BPL C15P ; PACK 15 % SI >=60 454D: C9 14 739 CMP #20 454F: 10 0C 740 BPL C100P ; PACK 100 % SI >=20 4551: 30 25 741 BMI A8 ; COMBAT CERTAIN (MONSTRE 100%) 742 4553: 38 743 C5P SEC ; TROUVE LE NUMERO DE PACK (0 A 39) 4554: E9 64 744 SBC #100 4556: 10 0E 745 BPL A7 4558: 38 746 C15P SEC 4559: E9 3C 747 SBC #60 455B: 10 06 748 BPL A6 455D: 38 749 C100P SEC 455E: E9 14 750 SBC #20 751 4560: A2 02 752 LDX #2 ; 100% 4562: 2C 753 HEX 2C ; BIT 4563: A2 01 754 A6 LDX #1 ; 15% 4565: 2C 755 HEX 2C ; BIT 4566: A2 00 756 A7 LDX #0 ; 5 % 757 4568: A8 758 TAY ; SAUVE NUMERO PACK 4569: 38 759 SEC 456A: BD 46 03 760 LDA POURCENT,X 456D: 8D 42 03 761 STA PCOMB ; SAUVE CE POURCENTAGE 4570: ED 41 03 762 SBC PROBA 4573: 10 18 763 BPL CCOMB? ; COMBAT (PROBA<=POURCENTAGE) 764 ; 4575: 4C AF 46 765 NO_COMB JMP A10 ; PAS DE COMBAT 766 767 * COMBAT (POURCENTAGE>=PROBA ALEATOIRE) 768 4578: A2 64 769 A8 LDX #100 ; MONSTRE A 100% (SANS PACK) 457A: 8E 42 03 770 STX PCOMB 457D: A8 771 TAY 457E: 8C 45 40 772 STY SAVED_PACK 4581: 8D 84 C0 773 STA $C084 ; LECTURE BK2 4584: B9 74 FC 774 LDA NOPACK,Y ; CHARGE LE NUMERO DU MONSTRE 4587: 8D 81 C0 775 STA $C081 458A: 4C CF 45 776 JMP CCOMB 777 458D: AD 42 03 778 CCOMB? LDA PCOMB ; SI C'EST UN PACK A 100% -> COMBAT CERTAIN 4590: C9 64 779 CMP #100 4592: F0 05 780 BEQ CCOMB0? 4594: AD 38 40 781 LDA MVTACT ; SINON ON REGARDE L'OCTET ROUTE CALME 4597: D0 DC 782 BNE NO_COMB ; LA DERNIERE RENCONTRE EST TROP FRAICHE 4599: AD 33 40 783 CCOMB0? LDA MVTMAX ; COMBAT: ON REINITIALISE MVTACT 459C: 8D 38 40 784 STA MVTACT 785 459F: 84 EC 786 CCOMB0 STY $EC ; TRAITEMENT D'UN PACK 45A1: AD 40 03 787 LDA COPYLIEU ; SAUVE LE NUMERO DU PACK D'ORIGINE 45A4: 8D 45 40 788 STA SAVED_PACK 45A7: A9 06 789 LDA #6 45A9: 85 ED 790 STA $ED 45AB: 20 97 0E 791 JSR MULT ; NUMERO DE PACK*6 45AE: 18 792 CLC 45AF: A9 84 793 LDA #KELPACK 45B7: 65 EE 797 ADC $EE ; HIGH 45B9: 85 ED 798 STA $ED 45BB: 20 6E 48 799 JSR ALEA6 ; CHOISIT UN MONSTRE DU PACK 45BE: A8 800 TAY 45BF: 8D 84 C0 801 STA $C084 ; LECTURE BK2 45C2: B1 EC 802 LDA ($EC),Y ; NUMERO DU MONSTRE (LISTE COMPLETE) 45C4: 8D 81 C0 803 STA $C081 45C7: 10 06 804 BPL CCOMB ; ON LE TIENT 45C9: 38 805 SEC ; C'EST UN NUMERO DE PACK 45CA: E9 8C 806 SBC #140 ; ON LE MET DE 0 A 39 45CC: A8 807 TAY 45CD: 10 D0 808 BPL CCOMB0 ; ON REMET CA 809 45CF: 8D 3D 03 810 CCOMB STA MONSTRE 45D2: 48 811 PHA ; LE PLA EST EFFECTUE EN RAM AUX 45D3: AC 45 03 812 LDY NATURE ; ARGUMENT = NATURE DU LIEU 45D6: A2 02 813 LDX #2 ; CMD=2 -> COPIE LE MONSTRE 45D8: 4C A0 03 814 JMP SWAP_AUX 815 45DB: 20 1E 48 816 RETOUR_MONS JSR RETABLIR 45DE: A5 18 817 LDA CX 45E0: C5 4C 818 CMP XCOPIE 45E2: D0 16 819 BNE HORIZ ; SOIT A GAUCHE SOIT A DROITE 820 45E4: A9 0B 821 LDA #$0B 45E6: 85 09 822 STA X 45E8: A5 17 823 LDA CY ; SOIT EN HAUT SOIT EN BAS 45EA: C5 4D 824 CMP YCOPIE 45EC: 30 07 825 BMI ENBAS 826 ; MONSTRE EN HAUT 45EE: A9 09 827 LDA #$09 45F0: 85 1A 828 STA Y 45F2: 4C 09 46 829 AFF_SP0 JMP AFF_SP 830 ; MONSTRE EN BAS 45F5: A9 0D 831 ENBAS LDA #$0D 45F7: 4C F0 45 832 JMP AFF_SP0-2 833 45FA: A2 0B 834 HORIZ LDX #$0B 45FC: 86 1A 835 STX Y 45FE: C5 4C 836 CMP XCOPIE 4600: 30 03 837 BMI ADROITE 838 ; MONSTRE A GAUCHE 4602: A9 09 839 LDA #9 4604: 2C 840 HEX 2C 841 ; 4605: A9 0D 842 ADROITE LDA #$0D 4607: 85 09 843 STA X 844 ; RETOUR BASIC 845 4609: AD 15 0B 846 AFF_SP LDA SPMVT ; ON VERIFIE QUE LE SOL EST INANIME 460C: F0 39 847 BEQ GO_AFFSP ; PAS DE SPRITES ANIMES 848 460E: A2 00 849 LDX #0 ; IL Y A DES SP ANIMES 4610: BD 8F 0B 850 IS_MOVING LDA SPMX,X ; COMPARE LES X 4613: C5 09 851 CMP X 4615: D0 2A 852 BNE BAD_SP 4617: BD 08 0C 853 LDA SPMY,X ; ET LES Y 461A: C5 1A 854 CMP Y 461C: D0 23 855 BNE BAD_SP 856 461E: E8 857 INX ; IL FAUT SUPPRIMER L'ANIMATION DU SOL 461F: EC 15 0B 858 CPX SPMVT 4622: F0 17 859 BEQ VIDEF_SP ; SI C LE DERNIER ON SE CONTENTE DE LE VIDER 860 4624: CA 861 DEX 4625: AC 15 0B 862 LDY SPMVT ; DETRUIT LE SP MOUVANT AFFICHE OU ON VA 4628: 88 863 DEY ; METTRE LE MONSTRE. ON LE REMPLACE PAR LE 4629: B9 16 0B 864 LDA SPM,Y ; DERNIER SP DE LA LISTE 462C: 9D 16 0B 865 STA SPM,X 462F: B9 8F 0B 866 LDA SPMX,Y 4632: 9D 8F 0B 867 STA SPMX,X 4635: B9 08 0C 868 LDA SPMY,Y 4638: 9D 08 0C 869 STA SPMY,X 463B: CE 15 0B 870 VIDEF_SP DEC SPMVT ; UN SPRITE DE MOINS 463E: 4C 47 46 871 JMP GO_AFFSP 872 4641: E8 873 BAD_SP INX 4642: EC 15 0B 874 CPX SPMVT ; ON VERIFIE TOUTE LA LISTE 4645: D0 C9 875 BNE IS_MOVING 876 ; BEQ=SOL IMMOBILE CAR HORS LISTE 877 4647: AD 5A 03 878 GO_AFFSP LDA VALS ; LE 1ER OCTET = NUMERO DU SPRITE 464A: 20 01 4F 879 JSR MVTSTAT ; AJOUTE SPRITE (FAIT AUSSI AFFICHAGE) 464D: AD 5A 03 880 LDA VALS 4650: 20 2C 0E 881 JSR SPRITED 882 ; ON FAIT BOUGER NOTRE PERSO AU CENTRE 4653: A9 0B 883 LDA #$0B 4655: 85 09 884 STA X 4657: 85 1A 885 STA Y ; COORDONNES MILIEU ECRAN 4659: A2 05 886 LDX #5 ; 1ER MONSTRE 465B: 8D 84 C0 887 STA $C084 ; BK2 LECTURE 465E: BD 00 F0 888 LDA LIB_DESCRIPT,X 4661: 8D 81 C0 889 STA $C081 ; ROM 4664: 18 890 CLC 4665: 6D 30 40 891 ADC CLASSE 4668: 20 01 4F 892 JSR MVTSTAT ; AJOUTE SPRITE 893 466B: 20 2F 09 894 JSR DECALAGE 466E: A2 00 895 LDX #0 ; MCOMBAT 4670: 20 7A 4D 896 JSR PRINT_MESS 4673: 20 2F 09 897 JSR DECALAGE 898 ; DECLIC DEBUT COMBAT 4676: A0 10 899 SOUNDCB LDY #$10 4678: 98 900 TYA 4679: 20 A8 FC 901 JSR WAIT 467C: 2C 30 C0 902 BIT $C030 467F: 88 903 DEY 4680: D0 F6 904 BNE SOUNDCB+2 905 4682: A9 49 906 LDA #STRING 4686: 20 3A DB 908 JSR STROUT 4689: 20 2F 09 909 JSR DECALAGE 910 ; AFFICHE NOM MONSTRE DANS LE CADRE HAUT 468C: A2 01 911 LDX #1 468E: A0 05 912 LDY #5 4690: 20 A7 46 913 JSR WINDPOS 4693: A9 49 914 LDA #STRING 4697: 20 3A DB 916 JSR STROUT 917 469A: A2 00 918 LDX #0 ; REPOSITIONNE EN BAS DE L'ECRAN 469C: A0 17 919 LDY #23 469E: 20 A7 46 920 JSR WINDPOS 921 46A1: A9 02 922 LDA #$02 ; = COMBAT 46A3: 8D 3E 03 923 STA CMD 46A6: 60 924 RTS 925 ; 46A7: 86 24 926 WINDPOS STX CH 46A9: 84 25 927 STY CV 46AB: 20 22 FC 928 JSR POSITION POSITIONNE DANS FENETRE 46AE: 60 929 RTS 930 46AF: 4C D8 46 931 A10 JMP OK_MOVE ; AUCUN OBSTACLE (DONC MOUVEMENT NORMAL) 932 933 *------------------------------------------ 934 935 ; CHARGE LE TYPE DE TERRAIN 936 46B2: A5 4D 937 LDTERRIN LDA YCOPIE 46B4: 85 EC 938 STA $EC 46B6: A9 1F 939 LDA #31 ; YCOPIE*31 46B8: 85 ED 940 STA $ED 46BA: 20 97 0E 941 JSR MULT 942 ; + XCOPIE 46BD: 18 943 CLC 46BE: A5 EF 944 LDA $EF 46C0: 65 4C 945 ADC XCOPIE 46C2: AA 946 TAX 46C3: A5 EE 947 LDA $EE 46C5: 69 00 948 ADC #$00 ; RETENUE 46C7: A8 949 TAY 950 ; + DEBUT 1ERE CARTE 46C8: 18 951 CLC 46C9: 8A 952 TXA 46CA: 69 00 953 ADC #CARTEVAL 46D3: 8D FC 44 958 STA b+2 ; HIGH 46D6: A8 959 TAY 46D7: 60 960 RTS 961 962 ******************************** 963 * 964 * MOUVEMENTS 965 46D8: 20 88 48 966 OK_MOVE JSR RAZMVT ; ANNULE LES SPRITES MOUVANTS ACTUELS 46DB: AD 38 40 967 LDA MVTACT ; DECREMENTE QUE SI ON PEUT ENCORE EVITER 46DE: F0 03 968 BEQ OK_MOVEB ; LE MONSTRE 46E0: CE 38 40 969 DEC MVTACT ; UNE CHANCE DE MOINS D'EVITER UN MONSTRE 970 46E3: AD 39 40 971 OK_MOVEB LDA PREMONITION 46E6: F0 03 972 BEQ END_PREMO 46E8: CE 39 40 973 DEC PREMONITION 974 46EB: AD 3A 40 975 END_PREMO LDA DETECTION 46EE: F0 03 976 BEQ END_DETEC 46F0: CE 3A 40 977 DEC DETECTION 978 46F3: AD 3B 40 979 END_DETEC LDA BRAVOURE 46F6: F0 0D 980 BEQ END_BRAV 46F8: CE 3B 40 981 DEC BRAVOURE 46FB: D0 08 982 BNE END_BRAV 46FD: AD 36 40 983 LDA POINT_VIE 4700: 10 03 984 BPL END_BRAV 4702: 4C 5A 47 985 JMP DEADMAN 986 4705: AD 3C 40 987 END_BRAV LDA RGN_RND 4708: F0 11 988 BEQ FIN_RGN 989 470A: CE 3C 40 990 DEC RGN_RND 470D: AD 36 40 991 LDA POINT_VIE ; ON REGARDE SI ON A DEJA TOUT RECUPERER 4710: CD 3D 40 992 CMP MAX_PV 4713: 10 06 993 BPL FIN_RGN ; OUI 4715: EE 36 40 994 INC POINT_VIE ; NON DONC PV+1 4718: 20 4F 4D 995 JSR NEWPV 996 471B: AD 34 40 997 FIN_RGN LDA POISON_RND 471E: F0 52 998 BEQ FIN_POISON ; LE PERSO N'EST PAS EMPOISONNE 999 4720: EE 35 40 1000 INC CPT_POISON 4723: AD 35 40 1001 LDA CPT_POISON 4726: CD 34 40 1002 CMP POISON_RND 4729: 10 02 1003 BPL PERD1 472B: 30 45 1004 BMI FIN_POISON ; LE NBRE DE ROUND N'EST PAS ENCORE ATTEINT 1005 472D: AD 36 40 1006 PERD1 LDA POINT_VIE ; ON REGARDE L'EFFET DU POISON SUR LES PV 4730: F0 0F 1007 BEQ TRT_PV0 ; PV=0 4732: 10 2B 1008 BPL PERD2 ; PV>0 1009 4734: 29 7F 1010 AND #$7F ; PV<0 DEVIENT PV PERDU>0 4736: CD 3B 40 1011 CMP BRAVOURE 4739: 10 14 1012 BPL CREVEPSN ; MORT CAR ON DOIT FAIRE PV=PV-1 ET |PV|>BRAVOR 473B: EE 36 40 1013 INC POINT_VIE ; PV=PV-1 (INC CAR NEGATIF) 473E: 4C 65 47 1014 JMP PERD3 1015 4741: A9 81 1016 TRT_PV0 LDA #129 ; PV = -1 4743: 8D 36 40 1017 STA POINT_VIE 4746: AD 3B 40 1018 LDA BRAVOURE 4749: C9 01 1019 CMP #1 474B: 30 02 1020 BMI CREVEPSN 474D: 10 16 1021 BPL PERD3 1022 474F: 20 2F 09 1023 CREVEPSN JSR DECALAGE 4752: A2 30 1024 LDX #48 ; AFFICHE LE POISON VOUS TERRASSE 4754: 20 7A 4D 1025 JSR PRINT_MESS 4757: 20 2F 09 1026 JSR DECALAGE 475A: A9 0B 1027 DEADMAN LDA #11 475C: 4C 5F 4B 1028 JMP GOBASIC ; MORT DUE AU POISON 1029 475F: CE 36 40 1030 PERD2 DEC POINT_VIE ; PERD 1 POINT DE VIE 4762: 20 4F 4D 1031 JSR NEWPV ; EFFACE NBRE DE PV ET MET LE NOUVEAU 4765: A9 00 1032 PERD3 LDA #0 ; REINITIALISE LE COMPTEUR POISON 4767: 8D 35 40 1033 STA CPT_POISON 476A: 20 2F 09 1034 JSR DECALAGE 476D: A2 2F 1035 LDX #47 ; AFFICHE LA PERTE 476F: 20 7A 4D 1036 JSR PRINT_MESS ; LOOSE1 1037 4772: AD 37 40 1038 FIN_POISON LDA LUMIERE 4775: F0 0A 1039 BEQ BBIS ; PAS DE LUX ARTIFICIELLE 4777: CE 37 40 1040 DEC LUMIERE ; LA SOURCE DE LUX FAIBLIT (MEME SI LUX NAT) 477A: D0 05 1041 BNE BBIS 477C: A9 00 1042 LDA #0 477E: 8D 32 40 1043 STA MESS_LUX 1044 4781: A9 01 1045 BBIS LDA #1 ; &MUSIC1,1,5 4783: 8D 0A 0D 1046 STA CPTMUS 4786: A9 01 1047 LDA #1 4788: 85 EC 1048 STA $EC 478A: A2 0F 1049 LDX #15 478C: 20 EA 0C 1050 JSR MUSICD 1051 ; 478F: 2C 1052 COM? DFB $2C ; BIT OU JSR 4790: D6 48 1053 DFB #F 4792: 20 1E 48 1054 JSR RETABLIR 1055 ; TESTS DE SORTIE DE LA CARTE DES SPRITES 1056 ; 1057 ; TESTS DE X 4795: A5 4C 1058 LDA XCOPIE 4797: C9 05 1059 CMP #$05 4799: 30 11 1060 BMI B1 ; SI X<5 (TOUCHE <-) 479B: C9 22 1061 CMP #$22 479D: 10 24 1062 BPL B2 ; SI X>=34 (TOUCHE ->) 1063 ; 1064 ; TESTS DE Y 479F: A5 4D 1065 LDA YCOPIE 47A1: C9 05 1066 CMP #$05 47A3: 30 2C 1067 BMI B3 ; SI Y<5 (FLECHE HAUT) 47A5: C9 22 1068 CMP #$22 47A7: 10 40 1069 BPL B4 ; SI Y>=34 (FLECHE BAS) 1070 ; 47A9: 4C 01 48 1071 JMP C ; OK ON CONTINUE 1072 ; 47AC: A9 21 1073 B1 LDA #$21 ; ON CHANGE X, ON GARDE Y 47AE: 85 18 1074 STA CX ; X=33 47B0: AE 3B 03 1075 LDX NMAP 47B3: 8E 3C 03 1076 STX OMAP 47B6: CA 1077 DEX 47B7: 8E 3B 03 1078 MAP STX NMAP 47BA: A9 01 1079 LDA #1 ; COMMANDE CHARGEMENT 47BC: 8D 3E 03 1080 STA CMD 47BF: 20 1E 48 1081 JSR RETABLIR 47C2: 60 1082 RTS 1083 ; 47C3: A9 05 1084 B2 LDA #$05 ; ON CHANGE X, ON GARDE Y 47C5: 85 18 1085 STA CX 47C7: AE 3B 03 1086 LDX NMAP 47CA: 8E 3C 03 1087 STX OMAP 47CD: E8 1088 INX 47CE: 4C B7 47 1089 JMP MAP 1090 ; 47D1: A9 21 1091 B3 LDA #$21 ; ON GARDE X, ON CHANGE Y 47D3: 85 17 1092 STA CY 47D5: AE 3B 03 1093 LDX NMAP 47D8: 8E 3C 03 1094 STX OMAP 47DB: AD 45 03 1095 LDA NATURE 47DE: D0 04 1096 BNE NOT_EXT 47E0: CA 1097 DEX ; EN EXTERIEUR ON FAIT NUMERO MAP-6 47E1: CA 1098 DEX 47E2: CA 1099 DEX 47E3: CA 1100 DEX 47E4: CA 1101 NOT_EXT DEX ; SINON NUMERO-2 47E5: CA 1102 DEX 47E6: 4C B7 47 1103 JMP MAP 1104 ; 47E9: A9 05 1105 B4 LDA #$05 ; ON GARDE X, ON CHANGE Y 47EB: 85 17 1106 STA CY 47ED: AE 3B 03 1107 LDX NMAP 47F0: 8E 3C 03 1108 STX OMAP 47F3: AD 45 03 1109 LDA NATURE 47F6: D0 04 1110 BNE NOT_EXT2 47F8: E8 1111 INX ; EN EXTERIEUR NUMERO MAP+6 47F9: E8 1112 INX 47FA: E8 1113 INX 47FB: E8 1114 INX 47FC: E8 1115 NOT_EXT2 INX ; SINON NUMERO+2 47FD: E8 1116 INX 47FE: 4C B7 47 1117 JMP MAP 1118 ; 1119 ; TRANSFERT XCOPIE->X ET YCOPIE->Y 4801: A5 4C 1120 C LDA XCOPIE 4803: 85 18 1121 STA CX 4805: A5 4D 1122 LDA YCOPIE 4807: 85 17 1123 STA CY 4809: 20 AF 4D 1124 JSR GAME0 1125 ; 480C: 2C 1126 TELEP? DFB $2C ; BIT 480D: EB 4A 1127 DA TELE 1128 ; 480F: 2C 1129 TRAP? DFB $2C ; BIT 4810: B9 4A 1130 DA PIEGE 1131 4812: 2C 1132 EXP? DFB $2C ; BIT 4813: DE 49 1133 DA EXPER 1134 4815: 2C 1135 MECHAOS? DFB $2C 4816: C1 49 1136 DA OUICHAOS 1137 4818: 2C 1138 OMB? DFB $2C 4819: FD 49 1139 DA OUIOMBRE 1140 481B: 4C 47 40 1141 JMP START 1142 1143 ******************************** 1144 481E: A5 4C 1145 RETABLIR LDA XCOPIE 4820: 18 1146 CLC 4821: 69 04 1147 ADC #$04 4823: 85 4C 1148 STA XCOPIE 4825: A5 4D 1149 LDA YCOPIE 4827: 18 1150 CLC 4828: 69 04 1151 ADC #$04 482A: 85 4D 1152 STA YCOPIE 482C: 60 1153 RTS 1154 482D: A5 4C 1155 ENLEVE LDA XCOPIE 482F: 38 1156 SEC 4830: E9 04 1157 SBC #$04 4832: 85 4C 1158 STA XCOPIE 4834: A5 4D 1159 LDA YCOPIE 4836: 38 1160 SEC 4837: E9 04 1161 SBC #$04 4839: 85 4D 1162 STA YCOPIE 483B: 20 B2 46 1163 JSR LDTERRIN 483E: 60 1164 RTS 1165 1166 ******************************** 1167 483F: 20 1E 48 1168 D JSR RETABLIR 4842: 4C 47 40 1169 JMP START 1170 1171 ******************************** 1172 * ENLEVE LE 100% DU MONSTRE 1173 4845: A0 00 1174 MNORMAL0 LDY #0 ; POUR LE CALL BASIC 4847: AD FB 44 1175 MNORMAL LDA b+1 484A: 8D 54 48 1176 STA MNORMAL2+1 484D: AD FC 44 1177 LDA b+2 4850: 8D 55 48 1178 STA MNORMAL2+2 4853: 8C FF FF 1179 MNORMAL2 STY $FFFF ; STY $???? 4856: 60 1180 RTS 1181 1182 ******************************** 1183 * GENERATEUR DE NOMBRE ALEATOIRE 1184 4857: A9 79 1185 RND1 LDA #PK1 ; FLOTTANTE 485B: 20 F9 EA 1187 JSR MOVFM 485E: 20 AE EF 1188 JSR RND ; EFFECTUE RND(1) 4861: 60 1189 RTS 1190 4862: 20 7F E9 1191 RNDFIN JSR FMULT ; ET ARG * FAC = FAC -> RND(1)*N 4865: 20 23 EC 1192 JSR INT ; INT(RND(1)*N) 4868: 20 52 E7 1193 JSR GETADR ; FAC -> ENTIER SUR 2 OCTETS DANS LINNUM 486B: A5 50 1194 LDA LINNUM ; LOW 486D: 60 1195 RTS 1196 1197 * TIRE NOMBRE ENTRE 0 ET 5 1198 486E: 20 57 48 1199 ALEA6 JSR RND1 4871: A9 7E 1200 LDA #PK6 4875: 20 62 48 1202 JSR RNDFIN 4878: 60 1203 RTS 1204 1205 * NOMBRE PACKE 1206 4879: 81 00 00 1207 PK1 HEX 8100000000 ; 1 487C: 00 00 487E: 83 40 00 1208 PK6 HEX 8340000000 ; 6 4881: 00 00 4883: 87 4A 00 1209 PK101 HEX 874A000000 ; 101 4886: 00 00 1210 1211 ******************************** 1212 * REMISE A ZERO DU NOMBRE DE SPRITES EN MVT 1213 4888: A9 00 1214 RAZMVT LDA #0 488A: 8D 15 0B 1215 STA SPMVT 488D: 8D 14 0B 1216 STA SPCPT 4890: 60 1217 RTS 1218 1219 ******************************** 1220 * COMMENTAIRES 1221 4891: C9 0D 1222 COM CMP #13 ; IL Y A EUT UN AND #$7F AVANT 4893: 10 03 1223 BPL COM2 ; SI LIEU>=13 4895: 4C 7C 49 1224 JMP DOORS? 4898: C9 35 1225 COM2 CMP #53 489A: 30 03 1226 BMI COM3 ; SI LIEU<53 (DONC SI LIEU<=52) 489C: 4C 7C 49 1227 JMP DOORS? 1228 1229 ; OK COMMENTAIRES 489F: 38 1230 COM3 SEC 48A0: E9 0D 1231 SBC #13 ; -13 ( LE 1ER COMMENTAIRE A LE NB:0) 48A2: 8D 40 03 1232 STA COPYLIEU 48A5: 8D BF 48 1233 STA COM_PARE+1 48A8: AD 31 40 1234 LDA LUX? ; ON REGARDE S'IL Y A DE LA LUMIERE 48AB: D0 1E 1235 BNE COM3B ; OK ON Y VOIT 48AD: AD 37 40 1236 LDA LUMIERE 48B0: D0 19 1237 BNE COM3B ; SOURCE DE LUX ARTIFICIEL 1238 ; ON REGARDE SI LE MESSAGE PEUT ETRE PERCU 48B2: 8D 84 C0 1239 STA $C084 ; LECTURE BK2 48B5: A0 00 1240 LDY #0 48B7: B9 24 F1 1241 COM_PARE0 LDA NOIR_COM,Y 48BA: C9 FF 1242 CMP #255 48BC: F0 07 1243 BEQ NO_COM 48BE: C9 FF 1244 COM_PARE CMP #$FF ; NUMERO DU COMMENTAIRE 48C0: F0 09 1245 BEQ COM3B ; LE COMMENTAIRE APPARAIT DANS LE NOIR 48C2: C8 1246 INY 48C3: D0 F2 1247 BNE COM_PARE0 1248 48C5: 8D 81 C0 1249 NO_COM STA $C081 ; ROM 48C8: 4C D8 46 1250 JMP OK_MOVE 1251 48CB: 8D 81 C0 1252 COM3B STA $C081 ; ROM 48CE: A9 20 1253 LDA #$20 ; REMPLACE LE BIT PAR LE JSR 48D0: 8D 8F 47 1254 STA COM? 48D3: 4C D8 46 1255 JMP OK_MOVE 1256 ; 48D6: A9 2C 1257 F LDA #$2C ; REMET LE BIT A LA PLACE DU JSR 48D8: 8D 8F 47 1258 STA COM? 48DB: 20 2F 09 1259 JSR DECALAGE 1260 ; ON DETERMINE LE NUMERO DU COMMENTAIRE 48DE: AD 40 03 1261 LDA COPYLIEU 48E1: 48 1262 PHA 48E2: 8D 84 C0 1263 STA $C084 ; LECTURE BK2 1264 1265 ; TESTS POUR DETERMINER LE DEBUT DU COM. 48E5: CD 13 F1 1266 CMP CSENTIR 48E8: 30 40 1267 BMI TESTCOM2 ; SI TABLECOM 48FE: 69 00 1280 ADC #0 4900: 85 3D 1281 STA $3D ; HIGH 1282 ; 4902: 8D 84 C0 1283 STA $C084 ; LECTURE BK2 4905: A0 00 1284 LDY #0 4907: B1 3C 1285 LDA ($3C),Y ; LOW 4909: 85 EC 1286 STA $EC 490B: C8 1287 INY 490C: B1 3C 1288 LDA ($3C),Y ; HIGH 490E: 85 ED 1289 STA $ED 1290 4910: A0 00 1291 LDY #0 ; RECOPIE LE COMMENTAIRE EN BUF_RDOS 4912: B1 EC 1292 RECOP_COM LDA ($EC),Y 4914: 99 00 B2 1293 STA BUF_RDOS,Y 4917: F0 03 1294 BEQ RECOP_COM2 4919: C8 1295 INY 491A: D0 F6 1296 BNE RECOP_COM 1297 491C: A9 00 1298 RECOP_COM2 LDA #BUF_RDOS 4920: 8D 81 C0 1300 STA $C081 ; ROM 4923: 20 3A DB 1301 JSR STROUT 1302 1303 ; SUITE DES COMMENTAIRES 4926: 20 48 49 1304 JSR VERIFPAS ; VERIFICATION SI PASSAGER 4929: 60 1305 RTS 1306 492A: CD 12 F1 1307 TESTCOM2 CMP CSPECIAL 492D: 10 C3 1308 BPL TESTCOM00 ; SI >=SPECIAL (ON SAUTE LE JSR STROUT) 1309 ; 492F: CD 11 F1 1310 CMP COUIE 4932: 30 05 1311 BMI TESTCOM3 ; SI FOUTLECAMP 4A64: 20 3A DB 1465 JSR STROUT 4A67: 20 0C FD 1466 JSR RDKEY 4A6A: C9 CF 1467 CMP #"O" 4A6C: F0 0A 1468 BEQ BYEBYE 4A6E: A9 43 1469 LDA #NON 4A72: 20 3A DB 1471 JSR STROUT 4A75: 4C 7D 40 1472 JMP START2 1473 4A78: A9 3F 1474 BYEBYE LDA #OUI 4A7C: 20 3A DB 1476 JSR STROUT 1477 4A7F: 38 1478 BYEBYE2 SEC 4A80: AD 45 03 1479 LDA NATURE 4A83: E9 0A 1480 SBC #10 4A85: AA 1481 TAX 4A86: 20 20 4B 1482 JSR HANDPASS 4A89: A9 00 1483 LDA #0 4A8B: 8D 45 03 1484 STA NATURE ; ON RETOURNE TOUJOURS A L'EXTERIEUR 4A8E: BD 47 4A 1485 LDA DEGAGECX,X ; NOUVELLES COORDONNEES 4A91: 85 18 1486 STA CX 4A93: BD 4D 4A 1487 LDA DEGAGECY,X 4A96: 85 17 1488 STA CY 4A98: BD 53 4A 1489 LDA DEGAGEQUART,X 4A9B: 8D 3B 03 1490 STA NMAP 1491 4A9E: A9 12 1492 LDA #18 4AA0: 4C 5F 4B 1493 JMP GOBASIC 1494 1495 ******************************** 1496 * ON TOMBE DANS UN PIEGE 1497 4AA3: C9 64 1498 PIEGER CMP #100 4AA5: 30 1F 1499 BMI TELEP0 4AA7: C9 6A 1500 CMP #106 4AA9: 10 1B 1501 BPL TELEP0 1502 4AAB: 38 1503 SEC 4AAC: E9 63 1504 SBC #99 ; RECUPERE LE NUMERO DU PIEGE (1 A 6) 4AAE: 8D 44 03 1505 STA DIVERS 4AB1: A9 4C 1506 LDA #$4C ; JMP 4AB3: 8D 0F 48 1507 STA TRAP? 4AB6: 4C D8 46 1508 JMP OK_MOVE 1509 1510 ; POINT D'ARRIVEE DE PIEGE 4AB9: A9 2C 1511 PIEGE LDA #$2C 4ABB: 8D 0F 48 1512 STA TRAP? ; RETABLIT LE BIT 4ABE: A9 0F 1513 LDA #15 ; CMD=PIEGE 4AC0: 4C 5F 4B 1514 JMP GOBASIC 1515 1516 ******************************** 1517 4AC3: 4C D8 46 1518 AUTRLIEU JMP OK_MOVE ; 1519 1520 * 1521 * TELEPORTATION 1522 * 1523 4AC6: C9 6B 1524 TELEP0 CMP #107 4AC8: 30 F9 1525 BMI AUTRLIEU 4ACA: C9 6F 1526 CMP #111 4ACC: 10 F5 1527 BPL AUTRLIEU 1528 4ACE: C9 6E 1529 CMP #110 4AD0: D0 05 1530 BNE FCAS110 4AD2: AE 45 03 1531 LDX NATURE 4AD5: F0 EC 1532 BEQ AUTRLIEU 1533 4AD7: 38 1534 FCAS110 SEC 4AD8: E9 6B 1535 SBC #107 ; DE 0 A 4 4ADA: AA 1536 TAX ; DETERMINE LES COORDONNEES D'ARRIVEE 4ADB: BD 1C 4B 1537 LDA CAVCY,X ; CY 4ADE: 48 1538 PHA 4ADF: BD 18 4B 1539 LDA CAVCX,X ; CX 4AE2: 48 1540 PHA 1541 4AE3: A9 4C 1542 LDA #$4C ; JMP 4AE5: 8D 0C 48 1543 STA TELEP? 4AE8: 4C D8 46 1544 JMP OK_MOVE 1545 4AEB: A9 2C 1546 TELE LDA #$2C ; RETABLI LE BIT 4AED: 8D 0C 48 1547 STA TELEP? 4AF0: 20 2F 09 1548 JSR DECALAGE 4AF3: A2 0B 1549 LDX #11 ; TELEPORT 4AF5: 20 7A 4D 1550 JSR PRINT_MESS 4AF8: 20 0A 4B 1551 JSR SONTEL 4AFB: 68 1552 PLA ; RECUPERE NOUVELLES COORDONNEES 4AFC: 85 18 1553 STA CX 4AFE: 68 1554 PLA 4AFF: 85 17 1555 STA CY 4B01: 20 AF 4D 1556 JSR GAME0 4B04: 20 0A 4B 1557 JSR SONTEL 4B07: 4C 47 40 1558 JMP START 1559 4B0A: A9 C8 1560 SONTEL LDA #200 ; SON TELEPORTATION (&SOUND200,10) 4B0C: 8D 93 0D 1561 STA AD1 4B0F: A9 14 1562 LDA #20 4B11: 8D 95 0D 1563 STA AD3 4B14: 4C 2C 0D 1564 JMP SOUNDD 4B17: 60 1565 RTS 1566 4B18: 07 07 20 1567 CAVCX DFB 7,7,32,31 4B1B: 1F 4B1C: 1F 12 13 1568 CAVCY DFB 31,18,19,10 4B1F: 0A 1569 1570 ******************************** 1571 4B20: AD 45 03 1572 HANDPASS LDA NATURE ; SAUVE LA NATURE ACTUELLE 4B23: 8D 3A 03 1573 STA QUART 4B26: AD 3B 03 1574 LDA NMAP ; SAUVE NUMERO MAP ACTUELLE 4B29: 8D 3C 03 1575 STA OMAP 4B2C: 60 1576 RTS 1577 1578 ******************************** 1579 * PASSE PAR LES PORTES SPECIALES 1580 4B2D: AD 44 03 1581 OPENDOOR LDA DIVERS ; LE NO DE PORTE EST CONSERVE 4B30: C9 04 1582 CMP #4 4B32: F0 0B 1583 BEQ OPEN1 4B34: C9 06 1584 CMP #6 4B36: F0 07 1585 BEQ OPEN1 4B38: C9 05 1586 CMP #5 4B3A: F0 06 1587 BEQ OPEN2 4B3C: E6 17 1588 INC CY 4B3E: 2C 1589 DFB $2C ; BIT 4B3F: E6 18 1590 OPEN1 INC CX 4B41: 2C 1591 DFB $2C ; BIT 4B42: C6 17 1592 OPEN2 DEC CY 1593 4B44: 20 AF 4D 1594 JSR GAME0 4B47: A0 BF 1595 REMPLAS191 LDY #191 ; AUCUN OBSTACLE 4B49: 20 47 48 1596 JSR MNORMAL 4B4C: 60 1597 RTS 1598 1599 ******************************** 1600 1601 * ECRIT UN NOUVEAU SPRITE SUR LA CARTE1 A 1602 * L'ENDROIT OU ON EST 1603 ; 4B4D: 48 1604 ICISPRIT PHA ; MET DE COTE LA VALEUR A POKER 4B4E: 20 15 4F 1605 JSR CALCOU? 4B51: 8E 59 4B 1606 STX ICISP2+1 4B54: 8C 5A 4B 1607 STY ICISP2+2 4B57: 68 1608 PLA ; RECUPERE LA VALEUR 4B58: 8D FF FF 1609 ICISP2 STA $FFFF ; STA $???? 4B5B: 20 47 4B 1610 JSR REMPLAS191 ; ET ON POKE 191 SUR CARTE2 4B5E: 60 1611 RTS 1612 1613 ******************************** 1614 4B5F: 8D 3E 03 1615 GOBASIC STA CMD 4B62: 20 2F 09 1616 JSR DECALAGE 4B65: 60 1617 RTS 1618 1619 ******************************** 1620 4B66: A9 01 1621 ENLEVOBJ LDA #1 4B68: 4C 4D 4B 1622 JMP ICISPRIT ; ON MET LE SPRITE CADRE VIDE 1623 1624 ******************************** 1625 4B6B: 20 DE 44 1626 COFFRVID JSR HEREIS 4B6E: C9 F5 1627 CMP #245 ; FRIC 1 DANS PETIT COFFRE 4B70: F0 03 1628 BEQ COFFRVID2 4B72: A9 06 1629 LDA #6 ; POKE COFFRE VIDE SUR CARTE1 4B74: 2C 1630 HEX 2C ; BIT 4B75: A9 07 1631 COFFRVID2 LDA #7 ; PETIT COFFRE VIDE 4B77: 4C 4D 4B 1632 JMP ICISPRIT 1633 1634 ******************************** 1635 4B7A: A9 00 1636 TRAVERSE LDA #0 4B7C: 8D D7 4B 1637 STA CPT_NAVIRE 4B7F: A9 FF 1638 PEN LDA #$FF ; NUMERO DU PORT 4B81: 29 7F 1639 AND #$7F 4B83: C9 71 1640 CMP #113 4B85: 10 1F 1641 BPL TRAVG 4B87: E6 18 1642 INC CX ; ON SE PLACE SUR LE PONT 4B89: AE D7 4B 1643 TRAVD LDX CPT_NAVIRE ; VA VERS LA DROITE 4B8C: BD CF 4B 1644 LDA NAVIRED,X 4B8F: 8D 46 40 1645 STA NAVIRE 4B92: 20 88 48 1646 JSR RAZMVT 4B95: 20 AF 4D 1647 JSR GAME0 4B98: E6 18 1648 INC CX 4B9A: EE D7 4B 1649 INC CPT_NAVIRE 4B9D: AD D7 4B 1650 LDA CPT_NAVIRE 4BA0: C9 04 1651 CMP #4 4BA2: D0 E5 1652 BNE TRAVD 4BA4: F0 1D 1653 BEQ END_TRAVERSE 1654 4BA6: C6 18 1655 TRAVG DEC CX ; SUR LE PONT 4BA8: AE D7 4B 1656 TRAVG2 LDX CPT_NAVIRE ; VA VERS LA GAUCHE 4BAB: BD D3 4B 1657 LDA NAVIREG,X 4BAE: 8D 46 40 1658 STA NAVIRE 4BB1: 20 88 48 1659 JSR RAZMVT 4BB4: 20 AF 4D 1660 JSR GAME0 4BB7: C6 18 1661 DEC CX 4BB9: EE D7 4B 1662 INC CPT_NAVIRE 4BBC: AD D7 4B 1663 LDA CPT_NAVIRE 4BBF: C9 04 1664 CMP #4 4BC1: D0 E5 1665 BNE TRAVG2 1666 4BC3: A9 00 1667 END_TRAVERSE LDA #0 ; ON QUITTE LE BATEAU 4BC5: 8D 46 40 1668 STA NAVIRE 4BC8: 20 88 48 1669 JSR RAZMVT 4BCB: 20 AF 4D 1670 JSR GAME0 4BCE: 60 1671 RTS 1672 4BCF: 37 47 4E 1673 NAVIRED DFB 55,71,78,55 4BD2: 37 4BD3: 39 49 50 1674 NAVIREG DFB 57,73,80,57 4BD6: 39 4BD7: 00 1675 CPT_NAVIRE HEX 00 1676 1677 ******************************** 1678 * TELEPORTATION VERS L'EXTERIEUR APRES BLABLA 1679 4BD8: A2 01 1680 QUITCHAOS LDX #1 ; SIMULE DEPART D'ILMLOKINI 4BDA: 4C B5 43 1681 JMP QUITDJN3 1682 1683 ******************************** 1684 * RETABLI LIBRARY.MACROS2 1685 4BDD: A2 04 1686 BACK_MACRO LDX #4 ; CMD = 4 -> RECOPIE LIBRARIE.MACROS2 EN PRINC 4BDF: 4C A0 03 1687 JMP SWAP_AUX 1688 1689 ******************************** 1690 * TRAITEMENT D'UN PIEGE 1691 4BE2: 20 F8 E6 1692 DOPIEGE JSR GETBYT ; LECTURE INDICE 4BE5: CA 1693 DEX 4BE6: 8A 1694 TXA 4BE7: 48 1695 PHA ; INDICE-1 4BE8: 0A 1696 ASL A 4BE9: 48 1697 PHA ; (INDICE-1)*2 4BEA: 20 BE DE 1698 JSR CHECKCOM 4BED: 20 E3 DF 1699 JSR PTRGET 4BF0: A0 01 1700 LDY #1 ; FAIT LE NOM 4BF2: 68 1701 PLA ; RECUPERE (INDICE-1)*2 4BF3: AA 1702 TAX 4BF4: BD 30 4C 1703 LDA PI0,X ; ADR LOW 4BF7: 91 83 1704 STA ($83),Y 4BF9: E8 1705 INX 4BFA: C8 1706 INY 4BFB: BD 30 4C 1707 LDA PI0,X ; ADR HIGH 4BFE: 91 83 1708 STA ($83),Y 1709 4C00: 68 1710 PLA ; RECUPERE INDICE-1 4C01: AA 1711 TAX 4C02: A0 00 1712 LDY #0 ; FAIT LA LONGUEUR 4C04: BD 8E 4C 1713 LDA LGPI,X 4C07: 91 83 1714 STA ($83),Y 1715 4C09: 8A 1716 TXA ; FAIT LES VALEURS 4C0A: 0A 1717 ASL A 4C0B: 0A 1718 ASL A 4C0C: 85 ED 1719 STA $ED ; (INDICE-1)*4 4C0E: A9 00 1720 LDA #0 4C10: 85 EC 1721 STA $EC 1722 4C12: 20 BE DE 1723 DOPIEGE2 JSR CHECKCOM 4C15: 20 E3 DF 1724 JSR PTRGET 4C18: A6 ED 1725 LDX $ED 4C1A: BD 94 4C 1726 LDA DATAPI,X 4C1D: A0 01 1727 LDY #1 4C1F: 91 83 1728 STA ($83),Y ; LOW 4C21: 88 1729 DEY 4C22: 98 1730 TYA ; HIGH=0 4C23: 91 83 1731 STA ($83),Y 4C25: E6 ED 1732 INC $ED ; VALEUR SUIVANTE DU PIEGE SELECTIONNE 4C27: E6 EC 1733 INC $EC 4C29: A5 EC 1734 LDA $EC 4C2B: C9 04 1735 CMP #4 4C2D: D0 E3 1736 BNE DOPIEGE2 4C2F: 60 1737 RTS 1738 4C30: 3C 4C 46 1739 PI0 DA PI1,PI2,PI3,PI4,PI5,PI6 4C33: 4C 55 4C 65 4C 6F 4C 7E 4C3B: 4C 1740 4C3C: 55 6E 65 1741 PI1 ASC 'Une fosse'00 4C3F: 20 66 6F 73 73 65 00 4C46: 55 6E 20 1742 PI2 ASC 'Un pi}ge @ feu'00 4C49: 70 69 7D 67 65 20 40 20 4C51: 66 65 75 00 4C55: 55 6E 20 1743 PI3 ASC 'Un pi}ge @ loup'00 4C58: 70 69 7D 67 65 20 40 20 4C60: 6C 6F 75 70 00 4C65: 44 65 73 1744 PI4 ASC 'Des dards'00 4C68: 20 64 61 72 64 73 00 4C6F: 44 65 73 1745 PI5 ASC 'Des gaz nocifs'00 4C72: 20 67 61 7A 20 6E 6F 63 4C7A: 69 66 73 00 4C7E: 55 6E 20 1746 PI6 ASC 'Un bloc broyeur'00 4C81: 62 6C 6F 63 20 62 72 6F 4C89: 79 65 75 72 00 1747 4C8E: 09 0E 0F 1748 LGPI DFB 9,14,15,9,14,15 4C91: 09 0E 0F 4C94: 0C 0A 0A 1749 DATAPI HEX 0C0A0A08 ; PIEGE 1 4C97: 08 4C98: 0A 0C 0C 1750 HEX 0A0C0C0A ; PIEGE 2 4C9B: 0A 4C9C: 0C 0A 0C 1751 HEX 0C0A0C06 ; PIEGE 3 4C9F: 06 4CA0: 0A 0A 0E 1752 HEX 0A0A0E06 ; PIEGE 4 4CA3: 06 4CA4: 0F 0F 0A 1753 HEX 0F0F0A0A ; PIEGE 5 4CA7: 0A 4CA8: 0A 0C 0C 1754 HEX 0A0C0C0F ; PIEGE 6 4CAB: 0F 1755 1756 ******************************** 1757 * RECOPIE RAM EN BK2 1758 4CAC: A9 00 1759 RAMTOBK LDA #<$900 ; ZONE A RECOPIER 4CAE: 85 EE 1760 STA $EE 4CB0: A9 09 1761 LDA #>$900 4CB2: 85 EF 1762 STA $EF 1763 4CB4: A6 EC 1764 LDX $EC 4CB6: CA 1765 DEX 4CB7: F0 13 1766 BEQ BKD000 4CB9: CA 1767 DEX 4CBA: F0 08 1768 BEQ BKE000 1769 4CBC: A9 80 1770 BKF000 LDA #<$0880 ; IL FAUT VERIFIER LE LOW 4CBE: A2 F0 1771 LDX #>$F000 4CC0: A0 F8 1772 LDY #>$F000+$0880 4CC2: D0 0E 1773 BNE DOBK 1774 4CC4: A9 00 1775 BKE000 LDA #0 4CC6: A2 E0 1776 LDX #>$E000 4CC8: A0 F0 1777 LDY #>$E000+$1000 4CCA: D0 06 1778 BNE DOBK 1779 4CCC: A9 00 1780 BKD000 LDA #0 4CCE: A2 D0 1781 LDX #>$D000 4CD0: A0 E0 1782 LDY #>$D000+$1000 1783 4CD2: 86 ED 1784 DOBK STX $ED 4CD4: A2 00 1785 LDX #0 ; LOW TOUJOURS NUL 4CD6: 86 EC 1786 STX $EC 4CD8: 8C FF 4C 1787 STY DOBKHMAX+1 4CDB: 8D F9 4C 1788 STA DOBKLMAX+1 1789 4CDE: AD 83 C0 1790 LDA $C083 ; BK2 4CE1: AD 83 C0 1791 LDA $C083 4CE4: A0 00 1792 DOBK2 LDY #0 4CE6: B1 EE 1793 LDA ($EE),Y 4CE8: 91 EC 1794 STA ($EC),Y 1795 AJ $EE;$EF 4CEA: E6 EE 1795 INC $EE 4CEC: D0 02 1795 BNE FAJ 4CEE: E6 EF 1795 INC $EF 1795 FAJ <<< 1796 AJ $EC;$ED 4CF0: E6 EC 1796 INC $EC 4CF2: D0 02 1796 BNE FAJ 4CF4: E6 ED 1796 INC $ED 1796 FAJ <<< 4CF6: A5 EC 1797 LDA $EC 4CF8: C9 FF 1798 DOBKLMAX CMP #$FF ; CMP LOWMAX 4CFA: D0 E8 1799 BNE DOBK2 4CFC: A5 ED 1800 LDA $ED 4CFE: C9 FF 1801 DOBKHMAX CMP #$FF ; CMP HIGHMAX 4D00: D0 E2 1802 BNE DOBK2 4D02: 8D 81 C0 1803 STA $C081 ; ROM 4D05: 60 1804 RTS 1805 1806 ******************************** 1807 4D06: A9 00 1808 DOMARCH LDA #0 4D08: 85 EC 1809 STA $EC ; COMPTEUR DE VARIABLES 1810 4D0A: 20 E3 DF 1811 DOMARCH2 JSR PTRGET 4D0D: A0 01 1812 LDY #1 4D0F: A6 EC 1813 LDX $EC 4D11: BD 5A 03 1814 LDA VALS,X ; NBRE D'OBJETS 4D14: 91 83 1815 STA ($83),Y ; - 4D16: 88 1816 DEY 4D17: 98 1817 TYA 4D18: 91 83 1818 STA ($83),Y ; +=0 4D1A: E6 EC 1819 INC $EC 4D1C: E8 1820 INX 4D1D: E0 0B 1821 CPX #11 ; NBRE D'OBJ+LES 10 OBJETS POSSIBLES 4D1F: F0 06 1822 BEQ DOMARCH3 4D21: 20 BE DE 1823 JSR CHECKCOM 4D24: 4C 0A 4D 1824 JMP DOMARCH2 4D27: 60 1825 DOMARCH3 RTS 1826 1827 ******************************** 1828 1829 * LIEU OU IL N'Y A PAS DE LUMIERE 1830 4D28: 02 04 05 1831 WHERENO_LUX DFB 2,4,5,6,7,8,9,255 4D2B: 06 07 08 09 FF 1832 4D30: A2 00 1833 IS_LUX? LDX #0 4D32: BD 28 4D 1834 IS_LUX2? LDA WHERENO_LUX,X 4D35: C9 FF 1835 CMP #255 ; FIN DE LA LISTE 4D37: F0 08 1836 BEQ IS_LUX ; DONC IL Y A DE LA LUMIERE 4D39: CD 45 03 1837 CMP NATURE 4D3C: F0 06 1838 BEQ IS_NO_LUX ; NATURE EST DANS LA LISTE DONC PAS DE LUX 4D3E: E8 1839 INX 4D3F: D0 F1 1840 BNE IS_LUX2? 1841 4D41: A9 01 1842 IS_LUX LDA #1 ; LIEU ECLAIRE 4D43: 2C 1843 HEX 2C 4D44: A9 00 1844 IS_NO_LUX LDA #0 ; LIEU DANS L'OMBRE 4D46: 8D 31 40 1845 STA LUX? 4D49: A9 00 1846 LDA #0 ; INITIALISE L'AFFICHAGE DU MESSAGE 4D4B: 8D 32 40 1847 STA MESS_LUX 4D4E: 60 1848 RTS 1849 1850 * AFFICHE LES PV DANS LA FENETRE HAUTE 1851 4D4F: 20 62 4D 1852 NEWPV JSR CLEARPV 4D52: A9 00 1853 LDA #0 ; AFFICHE LA NOUVELLE VALEUR DES PV 4D54: AE 36 40 1854 LDX POINT_VIE 4D57: 20 24 ED 1855 JSR LINPRT 4D5A: A2 00 1856 NEWPV2 LDX #0 ; REPOSITIONNE EN BAS DE L'ECRAN 4D5C: A0 17 1857 LDY #23 4D5E: 20 A7 46 1858 JSR WINDPOS 4D61: 60 1859 RTS 1860 4D62: A2 05 1861 CLEARPV LDX #5 4D64: A0 02 1862 LDY #2 4D66: 20 A7 46 1863 JSR WINDPOS 4D69: 20 57 DB 1864 JSR OUTSP ; AFFICHE 3 ESPACES 4D6C: 20 57 DB 1865 JSR OUTSP 4D6F: 20 57 DB 1866 JSR OUTSP 4D72: A2 05 1867 LDX #5 4D74: A0 02 1868 LDY #2 4D76: 20 A7 46 1869 JSR WINDPOS 4D79: 60 1870 RTS 1871 1872 ******************************** 1873 1874 * AFFICHE LE MESSAGE X (0 A ??) 1875 4D7A: 8A 1876 PRINT_MESS TXA ; ON SE POSITIONNE SUR L'ADRESSE 4D7B: 0A 1877 ASL A ; X*2 4D7C: 18 1878 CLC 4D7D: 69 87 1879 ADC #MESSAGE 4D83: 69 00 1882 ADC #0 4D85: 85 ED 1883 STA $ED 1884 4D87: AD 83 C0 1885 LDA $C083 ; BK2 4D8A: AD 83 C0 1886 LDA $C083 4D8D: A0 00 1887 LDY #0 ; LECTURE DE L'ADRESSE 4D8F: B1 EC 1888 LDA ($EC),Y ; LOW 4D91: 85 EE 1889 STA $EE 4D93: C8 1890 INY 4D94: B1 EC 1891 LDA ($EC),Y ; HIGH 4D96: 85 EF 1892 STA $EF 1893 4D98: A0 00 1894 LDY #0 ; RECOPIE LE MESSAGE DANS BUF_RDOS 4D9A: B1 EE 1895 PRINT_MESS2 LDA ($EE),Y 4D9C: 99 00 B2 1896 STA BUF_RDOS,Y 4D9F: F0 03 1897 BEQ END_PMESS 4DA1: C8 1898 INY 4DA2: D0 F6 1899 BNE PRINT_MESS2 1900 4DA4: 8D 81 C0 1901 END_PMESS STA $C081 ; ROM 4DA7: A9 00 1902 LDA #BUF_RDOS 4DAB: 20 3A DB 1904 JSR STROUT 4DAE: 60 1905 RTS 1906 1907 ************************************************ 1908 1909 ; INITIALISATION 4DAF: 20 88 48 1910 GAME0 JSR RAZMVT ; ANNULE LES SPRITES MOUVANTS ACTUELS 4DB2: A9 01 1911 LDA #$01 4DB4: 85 09 1912 STA X 4DB6: 85 1A 1913 STA Y ; LAISSE UNE PLACE POUR LE CADRE 1914 ; 4DB8: AD 31 40 1915 LDA LUX? 4DBB: D0 29 1916 BNE YA_LUM ; IL Y A DE LA LUMIERE NATURELLE DANS CE LIEU 1917 4DBD: AD 37 40 1918 LDA LUMIERE ; PAS DE LUMIERE NATURELLE 4DC0: D0 24 1919 BNE YA_LUM ; IL Y A DE LA LUMIERE ARTIFICIELLE 1920 4DC2: AD 32 40 1921 LDA MESS_LUX 4DC5: D0 11 1922 BNE NOLUX0 ; MESSAGE DEJA AFFICHE 1923 4DC7: 20 2F 09 1924 JSR DECALAGE 4DCA: A2 2E 1925 LDX #46 ; NO_LUX 4DCC: 20 7A 4D 1926 JSR PRINT_MESS 4DCF: A9 01 1927 LDA #1 ; SIGNALE L'AFFICHAGE 4DD1: 8D 32 40 1928 STA MESS_LUX 4DD4: 85 09 1929 STA X 4DD6: 85 1A 1930 STA Y ; LAISSE UNE PLACE POUR LE CADRE 1931 4DD8: A2 00 1932 NOLUX0 LDX #0 ; ON N'AFFICHE QUE DES CASES VIDES 4DDA: 8A 1933 TXA 4DDB: 9D 35 4F 1934 IS_NO_LUX2 STA WORK_TABLE,X 4DDE: E8 1935 INX 4DDF: E0 79 1936 CPX #121 4DE1: D0 F8 1937 BNE IS_NO_LUX2 4DE3: 4C 88 4E 1938 JMP FIN_OMBRE ; ON AFFICHE LES VIDES 1939 1940 ; IL Y A DE LA LUMIERE 4DE6: 20 15 4F 1941 YA_LUM JSR CALCOU? ; EXTRACTION DE LA CARTE DES SPRITES 4DE9: 38 1942 SEC 4DEA: 8A 1943 TXA 4DEB: E9 C8 1944 SBC #200 4DED: 85 EE 1945 STA $EE 4DEF: 98 1946 TYA 4DF0: E9 00 1947 SBC #0 4DF2: 85 EF 1948 STA $EF 1949 4DF4: A2 00 1950 LDX #0 4DF6: 8E 87 4E 1951 STX CPTBCL 4DF9: A0 00 1952 BCL1 LDY #0 4DFB: B1 EE 1953 BCL2 LDA ($EE),Y 4DFD: 9D 35 4F 1954 STA WORK_TABLE,X 4E00: E8 1955 INX 4E01: C8 1956 INY 4E02: C0 0B 1957 CPY #11 4E04: D0 F5 1958 BNE BCL2 1959 4E06: EE 87 4E 1960 INC CPTBCL 4E09: AD 87 4E 1961 LDA CPTBCL 4E0C: C9 0B 1962 CMP #11 4E0E: F0 10 1963 BEQ END_EXTRACT 4E10: 18 1964 CLC 4E11: A5 EE 1965 LDA $EE 4E13: 69 27 1966 ADC #39 4E15: 85 EE 1967 STA $EE 4E17: A5 EF 1968 LDA $EF 4E19: 69 00 1969 ADC #0 4E1B: 85 EF 1970 STA $EF 4E1D: 4C F9 4D 1971 JMP BCL1 1972 1973 * BOUCLE EFFECTUANT L'EFFET D'OMBRE 1974 * 0000000B -> B=BIT DE VISIBILITE 1975 * 0 = NE CACHE PAS ET 1 = CACHE 1976 4E20: A2 00 1977 END_EXTRACT LDX #0 4E22: 86 EE 1978 STX $EE 4E24: 8D 84 C0 1979 OMBRE STA $C084 ; LECTURE BK2 4E27: BD 80 F8 1980 LDA ORDRE,X ; POSITION A TRAITER 4E2A: 8D 81 C0 1981 STA $C081 4E2D: F0 59 1982 BEQ FIN_OMBRE ; FIN DE LA LISTE 4E2F: AA 1983 TAX ; DEVIENT INDICE 4E30: BD 35 4F 1984 LDA WORK_TABLE,X ; CHARGE LE NUMERO DE SPRITE 4E33: F0 1E 1985 BEQ NEXTSP ; SPRITE DU VIDE 1986 1987 ; LE SPRITE EST VISIBLE 4E35: A8 1988 TAY 4E36: 8D 84 C0 1989 STA $C084 ; LECTURE BK2 4E39: B9 0B F0 1990 LDA REF_BIT,Y ; ON REGARDE LE BIT DE VISIBILITE 4E3C: 8D 81 C0 1991 STA $C081 ; ROM 4E3F: 4A 1992 LSR A 4E40: 90 11 1993 BCC NEXTSP 1994 ; LE SPRITE PEUT EN CACHER D'AUTRES 4E42: 8A 1995 TXA 4E43: 38 1996 SEC ; DETERMINE LA TABLE DES CASES 4E44: E9 0C 1997 SBC #12 ; PAS PERDRE DE PLACE 4E46: 0A 1998 ASL A ; *2 (DA OBLIGE) 4E47: 18 1999 CLC ; +DEBUT TABLE ADRESSE 4E48: 69 D1 2000 ADC #CASES 4E4D: 69 00 2003 ADC #0 4E4F: A8 2004 TAY ; HIGH 4E50: 20 5A 4E 2005 JSR CACHER ; MET DES VIDES SUR LES SPRITES DERRIERE 2006 4E53: E6 EE 2007 NEXTSP INC $EE 4E55: A6 EE 2008 LDX $EE 4E57: 4C 24 4E 2009 JMP OMBRE 2010 2011 ; MET A BLANC 4E5A: 86 EC 2012 CACHER STX $EC ; TROUVE ADR DEBUT CASES A EFFACER 4E5C: 84 ED 2013 STY $ED 4E5E: AD 83 C0 2014 LDA $C083 ; BK2 4E61: AD 83 C0 2015 LDA $C083 4E64: A0 00 2016 LDY #0 4E66: B1 EC 2017 LDA ($EC),Y 4E68: 8D 74 4E 2018 STA CACHER2+1 4E6B: C8 2019 INY 4E6C: B1 EC 2020 LDA ($EC),Y 4E6E: 8D 75 4E 2021 STA CACHER2+2 2022 4E71: A2 00 2023 LDX #0 4E73: BD FF FF 2024 CACHER2 LDA $FFFF,X ; LDA CASE?,X 4E76: C9 FF 2025 CMP #$FF 4E78: F0 09 2026 BEQ FIN_CACHER 4E7A: A8 2027 TAY 4E7B: A9 00 2028 LDA #0 ; VIDE 4E7D: 99 35 4F 2029 STA WORK_TABLE,Y 4E80: E8 2030 INX 4E81: D0 F0 2031 BNE CACHER2 4E83: 8D 81 C0 2032 FIN_CACHER STA $C081 4E86: 60 2033 RTS 2034 4E87: 00 2035 CPTBCL HEX 00 2036 2037 * AFFICHE LES SPRITES SUR L'ECRAN 2038 4E88: A9 00 2039 FIN_OMBRE LDA #0 4E8A: 85 19 2040 STA COMPY ; COMPTEUR LECTURE WORK_TABLE 4E8C: A9 00 2041 AFFIC1 LDA #$00 4E8E: 85 08 2042 STA COMPX ; COMPTEUR DE CHANGEMENT DE LIGNE 4E90: A4 19 2043 AFFIC2 LDY COMPY 4E92: B9 35 4F 2044 LDA WORK_TABLE,Y 4E95: 20 F2 4E 2045 JSR IS_ANIM? 4E98: 90 05 2046 BCC FIN_MVT ; PAS D'ANIM 2047 2048 ; C'EST UN SPRITE MOBILE 4E9A: 48 2049 MVT2 PHA ; SAUVE NUMERO SPRITE 4E9B: 20 01 4F 2050 JSR MVTSTAT ; SIGNALE LE SPRITE A AFFICHER 4E9E: 68 2051 PLA ; RECUPERE NUMERO SPRITE POUR AFFICHAGE 2052 ; 4E9F: 20 2C 0E 2053 FIN_MVT JSR SPRITED ; SPRITE DIRECT 4EA2: E6 19 2054 INC COMPY 4EA4: E6 08 2055 INC COMPX 4EA6: A6 19 2056 LDX COMPY ; ON REGARDE SI ON EST AU CENTRE 4EA8: E0 3C 2057 CPX #60 4EAA: D0 27 2058 BNE PACENTRE 2059 ; ON EST AU CENTRE 4EAC: E6 19 2060 INC COMPY 4EAE: E6 08 2061 INC COMPX 4EB0: A9 0B 2062 LDA #11 4EB2: 85 09 2063 STA X 4EB4: 85 1A 2064 STA Y 4EB6: AD 46 40 2065 LDA NAVIRE 4EB9: F0 03 2066 BEQ NOT_NAVIRE 4EBB: 4C CD 4E 2067 JMP IS_NAVIRE ; ACC CONTIENT LE NUMERO DU SPRITE 2068 4EBE: A2 05 2069 NOT_NAVIRE LDX #5 4EC0: 8D 84 C0 2070 STA $C084 ; BK2 LECTURE 4EC3: BD 00 F0 2071 LDA LIB_DESCRIPT,X ; SPRITE BONHOMME 4EC6: 8D 81 C0 2072 STA $C081 ; ROM 4EC9: 18 2073 CLC 4ECA: 6D 30 40 2074 ADC CLASSE 4ECD: 20 2C 0E 2075 IS_NAVIRE JSR SPRITED 4ED0: 4C D9 4E 2076 JMP AFFIC3 2077 4ED3: A6 08 2078 PACENTRE LDX COMPX 4ED5: E0 0B 2079 CPX #11 ; EST-CE LA BORDURE DU CADRE? 4ED7: F0 09 2080 BEQ NEXTL 2081 ; 4ED9: E6 09 2082 AFFIC3 INC X ; REPLACE POUR SPRITE SUIVANT 4EDB: E6 09 2083 INC X 4EDD: C6 1A 2084 DEC Y 4EDF: 4C 90 4E 2085 JMP AFFIC2 2086 ; 2087 ; PASSE A LA LIGNE DE SPRITES SUIVANTE 4EE2: A4 19 2088 NEXTL LDY COMPY 4EE4: C0 79 2089 CPY #121 ; EST-CE LA BORDURE DU CADRE 4EE6: F0 09 2090 BEQ FINCADRE 2091 ; 4EE8: A9 01 2092 LDA #$01 4EEA: 85 09 2093 STA X ; REPOSITIONNE POUR CADRE 4EEC: E6 1A 2094 INC Y ; ON DESCEND DE 1 4EEE: 4C 8C 4E 2095 JMP AFFIC1 ; ON REFAIT 1 LIGNE DE SPRITES 2096 ; 4EF1: 60 2097 FINCADRE RTS 2098 2099 ******************************** 2100 4EF2: 8D 84 C0 2101 IS_ANIM? STA $C084 ; LECTURE BK2 4EF5: A8 2102 TAY ; PREND LE NUMERO SPRITE EN INDICE 4EF6: B9 0B F0 2103 LDA REF_BIT,Y 4EF9: 8D 81 C0 2104 STA $C081 ; ROM 4EFC: 4A 2105 LSR A ; ON REGARDE SI SPRITE ANIME 4EFD: 4A 2106 LSR A 4EFE: 4A 2107 LSR A ; REPONSE IN CARRY 4EFF: 98 2108 TYA ; RECUPERE NUMERO SPRITE 4F00: 60 2109 RTS 2110 2111 ******************************** 2112 2113 * SAUVE DONNEES POUR SPRITE MOUVANT 2114 4F01: AE 15 0B 2115 MVTSTAT LDX SPMVT 4F04: 9D 16 0B 2116 STA SPM,X ; SAUVE NUMERO SPRITE 4F07: A5 09 2117 LDA X 4F09: 9D 8F 0B 2118 STA SPMX,X ; SAUVE COORD. X 4F0C: A5 1A 2119 LDA Y 4F0E: 9D 08 0C 2120 STA SPMY,X ; SAUVE COORD. Y 4F11: EE 15 0B 2121 INC SPMVT ; 1 SPRITE MOUVANT EN PLUS 4F14: 60 2122 RTS 2123 2124 ******************************** 2125 2126 * CALCUL POSITION DU BONHOMME SUR LA CARTE DES SPRITES 2127 4F15: A5 17 2128 CALCOU? LDA CY ; DETERMINE XP 4F17: 85 EC 2129 STA $EC 4F19: A9 27 2130 LDA #39 4F1B: 85 ED 2131 STA $ED 4F1D: 20 97 0E 2132 JSR MULT ; CY*39 2133 4F20: 18 2134 CLC 4F21: A5 EF 2135 LDA $EF ; (-) 4F23: 65 18 2136 ADC CX 4F25: AA 2137 TAX 4F26: A5 EE 2138 LDA $EE ; (+) 4F28: 69 00 2139 ADC #$00 ; RETENUES 4F2A: A8 2140 TAY 2141 4F2B: 18 2142 CLC ; +ADR DEBUT CARTESP 4F2C: 8A 2143 TXA 4F2D: 69 C2 2144 ADC #CARTESP 4F33: A8 2148 TAY 4F34: 60 2149 RTS 2150 2151 ******************************** 2152 2153 * TABLE CONTENANT LES SPRITES A AFFICHER SUR ECRAN 2154 4F35: 00 00 00 2155 WORK_TABLE DS 121,0 ; 11*11 4F38: 00 00 00 00 00 00 00 00 4F40: 00 00 00 00 00 00 00 00 4F48: 00 00 00 00 00 00 00 00 4F50: 00 00 00 00 00 00 00 00 4F58: 00 00 00 00 00 00 00 00 4F60: 00 00 00 00 00 00 00 00 4F68: 00 00 00 00 00 00 00 00 4F70: 00 00 00 00 00 00 00 00 4F78: 00 00 00 00 00 00 00 00 4F80: 00 00 00 00 00 00 00 00 4F88: 00 00 00 00 00 00 00 00 4F90: 00 00 00 00 00 00 00 00 4F98: 00 00 00 00 00 00 00 00 4FA0: 00 00 00 00 00 00 00 00 4FA8: 00 00 00 00 00 00 2156 2157 SAV GAME2 Object saved as GAME2,A$4000,L$0FAE --End assembly, 4014 bytes, Errors: 0 Symbol table - alphabetical order: A1 =$4504 A10 =$46AF A2 =$4521 A3 =$4530 A4 =$452F A6 =$4563 A7 =$4566 A8 =$4578 AD1 =$0D93 AD3 =$0D95 ADROITE =$4605 AFFIC1 =$4E8C AFFIC2 =$4E90 AFFIC3 =$4ED9 AFF_SP =$4609 AFF_SP0 =$45F2 MD AJ =$8000 ? ALEA101 =$4533 ALEA6 =$486E AUTRLIEU =$4AC3 B1 =$47AC B2 =$47C3 B3 =$47D1 B4 =$47E9 BACK_MACRO =$4BDD BAD_SP =$4641 BBIS =$4781 BCL1 =$4DF9 BCL2 =$4DFB BKD000 =$4CCC BKE000 =$4CC4 ? BKF000 =$4CBC BRANCHE_OU =$40BF BRAVOURE =$403B BRUIT2 =$414E BRUIT3 =$415C BRUIT4 =$4160 BRUITAGE =$4146 BUF_RDOS =$B200 BYEBYE =$4A78 BYEBYE2 =$4A7F C =$4801 C100P =$455D C15P =$4558 C5P =$4553 CACHER =$4E5A CACHER2 =$4E73 CALCOU? =$4F15 CANQUIT =$43FA CARAC_PERSO =$4451 CARTESP =$18C2 CARTEVAL =$1500 CASES =$F8D1 CASE_QUIT =$4A59 CAS_TEREBAND =$42F1 CAVCX =$4B18 CAVCY =$4B1C CCOMB =$45CF CCOMB0 =$459F CCOMB0? =$4599 CCOMB? =$458D CETRE =$F110 CH =$24 CHAOS? =$49AB CHECKCOM =$DEBE CHERCHE? =$4134 CHERCHER =$4119 CLASSE =$4030 CLEARPV =$4D62 CMD =$033E COFFRVID =$4B6B COFFRVID2 =$4B75 COM =$4891 COM2 =$4898 COM3 =$489F COM3B =$48CB COM? =$478F COMPX =$08 COMPY =$19 COM_PARE =$48BE COM_PARE0 =$48B7 COPYLIEU =$0340 COUIE =$F111 CPTBCL =$4E87 CPTMUS =$0D0A CPT_NAVIRE =$4BD7 CPT_POISON =$4035 CREVEPSN =$474F CSENTIR =$F113 CSPECIAL =$F112 CV =$25 CX =$18 CY =$17 D =$483F DATAPI =$4C94 DEADMAN =$475A DECALAGE =$092F DEGAGECX =$4A47 DEGAGECY =$4A4D DEGAGEQUART =$4A53 DETECTION =$403A DISCUTER =$44BA DIVERS =$0344 DOBK =$4CD2 DOBK2 =$4CE4 DOBKHMAX =$4CFE DOBKLMAX =$4CF8 DOMARCH =$4D06 DOMARCH2 =$4D0A DOMARCH3 =$4D27 DOOR1 =$49A3 DOOR2 =$49A2 DOOR3 =$49A1 DOOR4 =$49A0 DOOR5 =$499F DOORS? =$497C DOPIEGE =$4BE2 DOPIEGE2 =$4C12 ENBAS =$45F5 END_BRAV =$4705 END_DETEC =$46F3 END_EXTRACT =$4E20 END_PMESS =$4DA4 END_PREMO =$46EB END_TRAVERSE =$4BC3 ENLEVE =$482D ENLEVOBJ =$4B66 ENTREAUTR =$4294 ENTRER =$4269 ENTRER4 =$42B9 ENTRER4D =$42BC ENTREROU =$428C ENTREXT =$429F ENTRE_LIEU =$4337 EQUIPER =$4237 EXP? =$4812 EXPER =$49DE EXPERIENCE? =$49CB F =$48D6 ? FAC =$9D M FAJ =$4CF6 FCAS110 =$4AD7 FINCADRE =$4EF1 FINPAS =$495C FIN_CACHER =$4E83 FIN_MVT =$4E9F FIN_OMBRE =$4E88 FIN_POISON =$4772 FIN_RGN =$471B FMULT =$E97F FOUTLECAMP =$4A18 ? FRMNUM =$DD67 GAME0 =$4DAF GARDEPAS =$4077 GETADR =$E752 GETBYT =$E6F8 GOBASIC =$4B5F GOCAVERNE =$41B3 GOTUNNEL =$4302 GO_AFFSP =$4647 HANDPASS =$4B20 HEREIS =$44DE HEREIS2 =$44EF HORIZ =$45FA ICISP2 =$4B58 ICISPRIT =$4B4D INT =$EC23 INVENTOR =$425F IN_CHEST =$41DC IS_ANIM? =$4EF2 IS_LUX =$4D41 IS_LUX2? =$4D32 IS_LUX? =$4D30 IS_MOVING =$4610 IS_NAVIRE =$4ECD IS_NO_LUX =$4D44 IS_NO_LUX2 =$4DDB JETER =$4241 KELPACK =$FB84 LDTERRIN =$46B2 LGPI =$4C8E LIB_DESCRIPT =$F000 ? LIEU =$033F LIEUX =$4364 LIEUY =$4373 LINNUM =$50 LINPRT =$ED24 LISTCAR =$4445 LUMIERE =$4037 LUX? =$4031 MAIN0 =$40E9 MAIN00 =$4105 MAIN1 =$40E1 MAIN2 =$40F2 MAIN3 =$40FD MAIN4 =$410E MAP =$47B7 MARCHAND =$446B MAX_PV =$403D MBUTE =$0343 MDANS =$42FC MECHAOS? =$4815 MESSAGE =$FC87 MESS_LUX =$4032 MNORMAL =$4847 ? MNORMAL0 =$4845 MNORMAL2 =$4853 MONSTRE =$033D MOVFM =$EAF9 MSG_OFF =$4172 MSG_ON =$4166 MULT =$0E97 MUSICD =$0CEA ? MVT2 =$4E9A MVTACT =$4038 MVTMAX =$4033 MVTSTAT =$4F01 NATURE =$0345 NATURLIEU =$4346 NAVIRE =$4046 NAVIRED =$4BCF NAVIREG =$4BD3 NBPAS =$F114 NEWPV =$4D4F ? NEWPV2 =$4D5A NEXTIS =$44F7 NEXTL =$4EE2 NEXTSP =$4E53 NMAP =$033B NOIR_COM =$F124 ? NOISED =$0D9F NOLUX0 =$4DD8 NOMAN =$44B0 NON =$4A43 NOPACK =$FC74 NOT_EXT =$47E4 NOT_EXT2 =$47FC NOT_NAVIRE =$4EBE NO_COM =$48C5 NO_COMB =$4575 OK_DOORS =$4989 OK_KEY =$409C OK_MOVE =$46D8 OK_MOVEB =$46E3 OMAP =$033C OMB? =$4818 OMBRE =$4E24 OPEN1 =$4B3F OPEN2 =$4B42 OPENDOOR =$4B2D ORDRE =$F880 OUI =$4A3F OUICHAOS =$49C1 OUIOMBRE =$49FD OUTDO =$DB5C OUTSP =$DB57 OUVRE? =$41B0 OUVRIR =$417F PACENTRE =$4ED3 PAS1 =$4960 PAS2 =$4962 PAS3 =$4973 PCOMB =$0342 PEN =$4B7F PERD1 =$472D PERD2 =$475F PERD3 =$4765 PI0 =$4C30 PI1 =$4C3C PI2 =$4C46 PI3 =$4C55 PI4 =$4C65 PI5 =$4C6F PI6 =$4C7E PIEGE =$4AB9 PIEGER =$4AA3 PK1 =$4879 PK101 =$4883 PK6 =$487E POINT_VIE =$4036 POISON_RND =$4034 POSITION =$FC22 POURCENT =$0346 PREMONITION =$4039 PRINT_MESS =$4D7A PRINT_MESS2 =$4D9A PROBA =$0341 PTRGET =$DFE3 QUART =$033A QUARTLIEU =$4355 QUI? =$44D6 QUIT =$438E QUITCHAOS =$4BD8 QUITDJN =$43DB QUITDJN2 =$43EF QUITDJN3 =$43B5 QUITDJN4 =$43E0 QUITNATUR =$440D QUITQUART =$4416 QUITX =$441F QUITY =$4428 QUIT_LIEU =$4404 QUIT_QUOI =$43D3 RAMTOBK =$4CAC RAZMVT =$4888 RDKEY =$FD0C RECOP_COM =$4912 RECOP_COM2 =$491C REF_BIT =$F00B REMPLAS191 =$4B47 RETABLIR =$481E RETOUR_MONS =$45DB ? RETOUR_MONS0 =$4006 RGN_RND =$403C RND =$EFAE RND1 =$4857 RNDFIN =$4862 SAUVEJEU =$413C SAVED_PACK =$4045 SON =$1FF0 SONTEL =$4B0A SORT =$4255 SORTQUIT =$4431 SORTQUIT2 =$4438 SORTQUIT3 =$443B SOUNDCB =$4676 SOUNDD =$0D2C SPCPT =$0B14 SPM =$0B16 SPMVT =$0B15 SPMX =$0B8F SPMY =$0C08 SPRITED =$0E2C START =$4047 START2 =$407D STRING =$0349 STROUT =$DB3A SWAP_AUX =$03A0 TABLECOM =$F133 TELE =$4AEB TELEP0 =$4AC6 TELEP? =$480C TESTCOM0 =$48EC TESTCOM00 =$48F2 TESTCOM2 =$492A TESTCOM3 =$4939 TESTCOM4 =$4943 TMAP =$4382 TOBOGGAN =$41E6 TORCHE_OUT =$49F1 TOUCHES =$40AD TRAP? =$480F TRAVD =$4B89 TRAVERSE =$4B7A TRAVG =$4BA6 TRAVG2 =$4BA8 TRT_PV0 =$4741 TUNNEL =$432D UTILISER =$424B VALS =$035A VERIFPAS =$4948 VIDEF_SP =$463B WAIT =$FCA8 WAITKEY =$4085 WAITKEY2 =$4090 WHERENO_LUX =$4D28 WINDPOS =$46A7 WORK_TABLE =$4F35 X =$09 XCOPIE =$4C XTUNNEL =$4386 Y =$1A YAMAN =$44CA YA_LUM =$4DE6 YCOPIE =$4D YTUNNEL =$438A b =$44FA d =$4975 Symbol table - numerical order: COMPX =$08 X =$09 CY =$17 CX =$18 COMPY =$19 Y =$1A CH =$24 CV =$25 XCOPIE =$4C YCOPIE =$4D LINNUM =$50 ? FAC =$9D QUART =$033A NMAP =$033B OMAP =$033C MONSTRE =$033D CMD =$033E ? LIEU =$033F COPYLIEU =$0340 PROBA =$0341 PCOMB =$0342 MBUTE =$0343 DIVERS =$0344 NATURE =$0345 POURCENT =$0346 STRING =$0349 VALS =$035A SWAP_AUX =$03A0 DECALAGE =$092F SPCPT =$0B14 SPMVT =$0B15 SPM =$0B16 SPMX =$0B8F SPMY =$0C08 MUSICD =$0CEA CPTMUS =$0D0A SOUNDD =$0D2C AD1 =$0D93 AD3 =$0D95 ? NOISED =$0D9F SPRITED =$0E2C MULT =$0E97 CARTEVAL =$1500 CARTESP =$18C2 SON =$1FF0 MD AJ =$8000 ? RETOUR_MONS0 =$4006 CLASSE =$4030 LUX? =$4031 MESS_LUX =$4032 MVTMAX =$4033 POISON_RND =$4034 CPT_POISON =$4035 POINT_VIE =$4036 LUMIERE =$4037 MVTACT =$4038 PREMONITION =$4039 DETECTION =$403A BRAVOURE =$403B RGN_RND =$403C MAX_PV =$403D SAVED_PACK =$4045 NAVIRE =$4046 START =$4047 GARDEPAS =$4077 START2 =$407D WAITKEY =$4085 WAITKEY2 =$4090 OK_KEY =$409C TOUCHES =$40AD BRANCHE_OU =$40BF MAIN1 =$40E1 MAIN0 =$40E9 MAIN2 =$40F2 MAIN3 =$40FD MAIN00 =$4105 MAIN4 =$410E CHERCHER =$4119 CHERCHE? =$4134 SAUVEJEU =$413C BRUITAGE =$4146 BRUIT2 =$414E BRUIT3 =$415C BRUIT4 =$4160 MSG_ON =$4166 MSG_OFF =$4172 OUVRIR =$417F OUVRE? =$41B0 GOCAVERNE =$41B3 IN_CHEST =$41DC TOBOGGAN =$41E6 EQUIPER =$4237 JETER =$4241 UTILISER =$424B SORT =$4255 INVENTOR =$425F ENTRER =$4269 ENTREROU =$428C ENTREAUTR =$4294 ENTREXT =$429F ENTRER4 =$42B9 ENTRER4D =$42BC CAS_TEREBAND =$42F1 MDANS =$42FC GOTUNNEL =$4302 TUNNEL =$432D ENTRE_LIEU =$4337 NATURLIEU =$4346 QUARTLIEU =$4355 LIEUX =$4364 LIEUY =$4373 TMAP =$4382 XTUNNEL =$4386 YTUNNEL =$438A QUIT =$438E QUITDJN3 =$43B5 QUIT_QUOI =$43D3 QUITDJN =$43DB QUITDJN4 =$43E0 QUITDJN2 =$43EF CANQUIT =$43FA QUIT_LIEU =$4404 QUITNATUR =$440D QUITQUART =$4416 QUITX =$441F QUITY =$4428 SORTQUIT =$4431 SORTQUIT2 =$4438 SORTQUIT3 =$443B LISTCAR =$4445 CARAC_PERSO =$4451 MARCHAND =$446B NOMAN =$44B0 DISCUTER =$44BA YAMAN =$44CA QUI? =$44D6 HEREIS =$44DE HEREIS2 =$44EF NEXTIS =$44F7 b =$44FA A1 =$4504 A2 =$4521 A4 =$452F A3 =$4530 ? ALEA101 =$4533 C5P =$4553 C15P =$4558 C100P =$455D A6 =$4563 A7 =$4566 NO_COMB =$4575 A8 =$4578 CCOMB? =$458D CCOMB0? =$4599 CCOMB0 =$459F CCOMB =$45CF RETOUR_MONS =$45DB AFF_SP0 =$45F2 ENBAS =$45F5 HORIZ =$45FA ADROITE =$4605 AFF_SP =$4609 IS_MOVING =$4610 VIDEF_SP =$463B BAD_SP =$4641 GO_AFFSP =$4647 SOUNDCB =$4676 WINDPOS =$46A7 A10 =$46AF LDTERRIN =$46B2 OK_MOVE =$46D8 OK_MOVEB =$46E3 END_PREMO =$46EB END_DETEC =$46F3 END_BRAV =$4705 FIN_RGN =$471B PERD1 =$472D TRT_PV0 =$4741 CREVEPSN =$474F DEADMAN =$475A PERD2 =$475F PERD3 =$4765 FIN_POISON =$4772 BBIS =$4781 COM? =$478F B1 =$47AC MAP =$47B7 B2 =$47C3 B3 =$47D1 NOT_EXT =$47E4 B4 =$47E9 NOT_EXT2 =$47FC C =$4801 TELEP? =$480C TRAP? =$480F EXP? =$4812 MECHAOS? =$4815 OMB? =$4818 RETABLIR =$481E ENLEVE =$482D D =$483F ? MNORMAL0 =$4845 MNORMAL =$4847 MNORMAL2 =$4853 RND1 =$4857 RNDFIN =$4862 ALEA6 =$486E PK1 =$4879 PK6 =$487E PK101 =$4883 RAZMVT =$4888 COM =$4891 COM2 =$4898 COM3 =$489F COM_PARE0 =$48B7 COM_PARE =$48BE NO_COM =$48C5 COM3B =$48CB F =$48D6 TESTCOM0 =$48EC TESTCOM00 =$48F2 RECOP_COM =$4912 RECOP_COM2 =$491C TESTCOM2 =$492A TESTCOM3 =$4939 TESTCOM4 =$4943 VERIFPAS =$4948 FINPAS =$495C PAS1 =$4960 PAS2 =$4962 PAS3 =$4973 d =$4975 DOORS? =$497C OK_DOORS =$4989 DOOR5 =$499F DOOR4 =$49A0 DOOR3 =$49A1 DOOR2 =$49A2 DOOR1 =$49A3 CHAOS? =$49AB OUICHAOS =$49C1 EXPERIENCE? =$49CB EXPER =$49DE TORCHE_OUT =$49F1 OUIOMBRE =$49FD FOUTLECAMP =$4A18 OUI =$4A3F NON =$4A43 DEGAGECX =$4A47 DEGAGECY =$4A4D DEGAGEQUART =$4A53 CASE_QUIT =$4A59 BYEBYE =$4A78 BYEBYE2 =$4A7F PIEGER =$4AA3 PIEGE =$4AB9 AUTRLIEU =$4AC3 TELEP0 =$4AC6 FCAS110 =$4AD7 TELE =$4AEB SONTEL =$4B0A CAVCX =$4B18 CAVCY =$4B1C HANDPASS =$4B20 OPENDOOR =$4B2D OPEN1 =$4B3F OPEN2 =$4B42 REMPLAS191 =$4B47 ICISPRIT =$4B4D ICISP2 =$4B58 GOBASIC =$4B5F ENLEVOBJ =$4B66 COFFRVID =$4B6B COFFRVID2 =$4B75 TRAVERSE =$4B7A PEN =$4B7F TRAVD =$4B89 TRAVG =$4BA6 TRAVG2 =$4BA8 END_TRAVERSE =$4BC3 NAVIRED =$4BCF NAVIREG =$4BD3 CPT_NAVIRE =$4BD7 QUITCHAOS =$4BD8 BACK_MACRO =$4BDD DOPIEGE =$4BE2 DOPIEGE2 =$4C12 PI0 =$4C30 PI1 =$4C3C PI2 =$4C46 PI3 =$4C55 PI4 =$4C65 PI5 =$4C6F PI6 =$4C7E LGPI =$4C8E DATAPI =$4C94 RAMTOBK =$4CAC ? BKF000 =$4CBC BKE000 =$4CC4 BKD000 =$4CCC DOBK =$4CD2 DOBK2 =$4CE4 M FAJ =$4CF6 DOBKLMAX =$4CF8 DOBKHMAX =$4CFE DOMARCH =$4D06 DOMARCH2 =$4D0A DOMARCH3 =$4D27 WHERENO_LUX =$4D28 IS_LUX? =$4D30 IS_LUX2? =$4D32 IS_LUX =$4D41 IS_NO_LUX =$4D44 NEWPV =$4D4F ? NEWPV2 =$4D5A CLEARPV =$4D62 PRINT_MESS =$4D7A PRINT_MESS2 =$4D9A END_PMESS =$4DA4 GAME0 =$4DAF NOLUX0 =$4DD8 IS_NO_LUX2 =$4DDB YA_LUM =$4DE6 BCL1 =$4DF9 BCL2 =$4DFB END_EXTRACT =$4E20 OMBRE =$4E24 NEXTSP =$4E53 CACHER =$4E5A CACHER2 =$4E73 FIN_CACHER =$4E83 CPTBCL =$4E87 FIN_OMBRE =$4E88 AFFIC1 =$4E8C AFFIC2 =$4E90 ? MVT2 =$4E9A FIN_MVT =$4E9F NOT_NAVIRE =$4EBE IS_NAVIRE =$4ECD PACENTRE =$4ED3 AFFIC3 =$4ED9 NEXTL =$4EE2 FINCADRE =$4EF1 IS_ANIM? =$4EF2 MVTSTAT =$4F01 CALCOU? =$4F15 WORK_TABLE =$4F35 BUF_RDOS =$B200 STROUT =$DB3A OUTSP =$DB57 OUTDO =$DB5C ? FRMNUM =$DD67 CHECKCOM =$DEBE PTRGET =$DFE3 GETBYT =$E6F8 GETADR =$E752 FMULT =$E97F MOVFM =$EAF9 INT =$EC23 LINPRT =$ED24 RND =$EFAE LIB_DESCRIPT =$F000 REF_BIT =$F00B CETRE =$F110 COUIE =$F111 CSPECIAL =$F112 CSENTIR =$F113 NBPAS =$F114 NOIR_COM =$F124 TABLECOM =$F133 ORDRE =$F880 CASES =$F8D1 KELPACK =$FB84 POSITION =$FC22 NOPACK =$FC74 MESSAGE =$FC87 WAIT =$FCA8 RDKEY =$FD0C