2 ************************* 3 * * 4 * LIBRAIRIE DE MACROS 2 * 5 * (C)1990 BY DECKARD * 6 * * 7 ************************* 8 * 9 10 O = 1 11 N = 0 12 13 *PR? KBD "LST OFF (O/N)" 14 * DO PR? 15 * LST OFF 16 *LS = 1 17 * ELSE 18 * LST ON 19 *LS = 0 20 * FIN 21 22 RDOS KBD "Assemblage pour RDOS (O/N)" 23 DO RDOS 24 LS2 = 1 25 ELSE 26 LS2 = 0 27 FIN 28 29 ******************************** 30 31 AJ MAC 32 INC ]1 33 BNE FAJ 34 INC ]2 35 FAJ <<< 36 37 ******************************** 38 * MODULE RECOPIANT LIB.MACROS2 EN RAM AUX 39 40 ORG $1000 41 42 CPTAUX EQU $6 ; ET $7 43 CPT2AUX EQU $8 ; ET $9 44 STORE_LIB EQU $6803 ; EQUIVALENCE LIB EN AUX 45 1000: A9 38 46 LDA #LIB_MACROS2 1004: 85 06 48 STA CPTAUX 1006: 84 07 49 STY CPTAUX+1 1008: A9 03 50 LDA #STORE_LIB 100C: 85 08 52 STA CPT2AUX 100E: 84 09 53 STY CPT2AUX+1 54 1010: 8D 08 C0 55 STA $C008 ; PILE ET P0 PRINC 1013: 8D 05 C0 56 STA $C005 ; ECRITURE EN AUX 1016: A0 00 57 LDY #0 1018: B1 06 58 RECOP LDA (CPTAUX),Y 101A: 91 08 59 STA (CPT2AUX),Y 60 AJ CPTAUX;CPTAUX+1 101C: E6 06 60 INC CPTAUX 101E: D0 02 60 BNE FAJ 1020: E6 07 60 INC CPTAUX+1 60 FAJ <<< 61 AJ CPT2AUX;CPT2AUX+1 1022: E6 08 61 INC CPT2AUX 1024: D0 02 61 BNE FAJ 1026: E6 09 61 INC CPT2AUX+1 61 FAJ <<< 1028: A5 08 62 TEST_FIN LDA CPT2AUX ; COMPARE LOW 102A: C9 03 63 CMP #STORE_LIB+$1000 1032: D0 E4 67 BNE RECOP ; PAS FINI 68 1034: 8D 04 C0 69 STA $C004 1037: 60 70 RTS 71 72 LIB_MACROS2 73 74 DO LS2 75 ORG $803 76 ELSE 77 ORG $8000 78 FIN 79 80 ******************************** 81 82 * BANK 1 83 84 CARAC EQU $D004 ; DEBUT DATAS CARACTERES SET 0 85 CURSOR EQU $D1F4 ; 1ER DATA DU CURSEUR (= '^') (+$1F0) 86 SPELL EQU $D39C ; CONNAISSANCE DES SORTS 87 SPELL2 EQU $D3B0 ; POSSIBILITE DES SORTS 88 VAL_ST EQU $D3EC ; SITUATION 89 VAL_MO EQU $D416 ; MORT 90 VAL_CRT EQU $D55F ; CREVE 91 VAL_ACR EQU $D83B ; DOMAGE 92 VAL_ACR0 EQU $D86B ; 'VOUS LUI ' 93 VAL_LOC EQU $DA38 ; LOCALISATION 94 VAL_MAG EQU $DAAD ; DATAS SPELL 95 VAL_MAG2 EQU $DB25 ; IDEM 96 VAL_BL EQU $DB9D ; BLESSURE 97 VAL_SMAG EQU $DBF2 ; NOMS DES SORTS 98 VAL_CH EQU $DF92 ; ATTENDRE/COMBAT/... 99 100 * BANK 2 101 102 DATASP EQU $D000 ; STOCKAGE DATA SPRITE 103 LIB_DESCRIPT EQU $F000 ; DESCRIPTIF LIBRARIE 104 REF_BIT EQU $F00B ; BITS DES SPRITES 105 106 * GERE LA RAM AUXILIAIRE 107 108 SWAP_AUX EQU $03A0 109 STRING EQU $0349 110 VALS EQU $035A 111 112 * GAME2 113 114 PIEGE EQU $401E 115 DOMARCH EQU $4027 116 117 * RAM SPECIAL 118 119 SON EQU $1FF0 120 ETAT EQU $1FF1 121 122 * 123 ******************************** 124 125 CRDO EQU $DAFB 126 OUTDO EQU $DB5C 127 COUT1 EQU $FDF0 128 WAIT EQU $FCA8 129 KEYBRD EQU $C000 130 ZKEYBRD EQU $C010 131 ; 132 ; PAGE ZERO 133 ; 134 CSWL EQU $36 ; POINTE NORMALEMENT SUR COUT1 135 CSWH EQU $37 136 KSWL EQU $38 ; POINTE NORMALEMENT SUR KEYIN 137 KSWH EQU $39 138 GBASL EQU $26 139 GBASH EQU $27 140 BASL EQU $28 141 BASH EQU $29 142 BAS2L EQU $2A 143 BAS2H EQU $2B 144 CH EQU $24 145 CV EQU $25 146 INVFLG EQU $32 ; MASQUE POUR NORMAL/INVERSE 147 LARGEUR EQU $21 148 MARGEG EQU $20 149 MARGEH EQU $22 150 MARGEB EQU $23 151 XMAX EQU $1C 152 Y EQU $1A 153 X EQU $09 154 ETAT2 EQU $E7 ; ON N'UTILISE PAS SCALE 155 ; 156 0803: 4C 97 0C 157 JMP MACROCMD 158 159 ******************************** 160 * I N P U T * 161 ******************************** 162 * 163 * BUT: AFFICHER UN CURSEUR QUI CHANGE SANS ARRET 164 * 165 ; 166 * ON AFFICHE LE CURSEUR 167 ; 168 ;LST ON 0806: 48 169 INPUT PHA ; MET DE COTE LE CURSEUR ACTUEL 170 ;LST OFF 0807: 8C AD 08 171 INPUT2 STY INSTORE 080A: 8E AE 08 172 STX INSTORE+1 080D: A9 DE 173 LDA #$DE ; CODE ASCII DE '^' 080F: 20 C0 08 174 JSR SCREEN 175 ; 176 * ON FAIT UNE ROTATION DE BAS EN HAUT 177 ; 0812: AD 8B C0 178 LDA $C08B ; BANK1 : LECTURE ET ECRITURE MEV 0815: AD 8B C0 179 LDA $C08B 0818: AD F4 D1 180 LDA CURSOR 081B: 49 80 181 EOR #$80 ; CHANGE COULEUR 081D: AA 182 TAX ; SAUVEGARDE 1ER OCTET 081E: A0 00 183 LDY #0 0820: B9 F5 D1 184 ROTATION LDA CURSOR+1,Y 0823: 49 80 185 EOR #$80 ; BIT COULEUR VARIABLE 0825: 99 F4 D1 186 STA CURSOR,Y 0828: C8 187 INY 0829: C0 07 188 CPY #7 ; ON EN FAIT 7 082B: D0 F3 189 BNE ROTATION 082D: 8A 190 TXA ; RECUPERE 1ER OCTET 082E: 8D FB D1 191 STA CURSOR+7 ; ACCOMPLI LA ROTATION (1ER = DERNIER) 0831: AD 81 C0 192 LDA $C081 ; BANK 2 : LECTURE MEM ET ECRITURE MEV 193 194 ; 195 * AFFICHAGE DES SPRITES MOBILES+GENERATEUR ALEATOIRE 196 ; 0834: 20 1E 0A 197 JSR SPMOBIL0 198 ; RESTAURE 0837: AC AD 08 199 LDY INSTORE 083A: AE AE 08 200 LDX INSTORE+1 201 ; 202 * CONTINUE 203 ; 083D: 20 43 08 204 JSR SUITE 0840: 4C 07 08 205 JMP INPUT2 206 ; 0843: AD 00 C0 207 SUITE LDA KEYBRD 0846: 30 05 208 BMI SUITE2 0848: A9 B0 209 LDA #$B0 084A: 4C A8 FC 210 JMP WAIT 084D: 68 211 SUITE2 PLA ; RECUPERE LE CURSEUR SAUVE 084E: 68 212 PLA ; 2 PLA EN + CAR IL Y A EUT UN JSR 084F: 68 213 PLA 0850: 91 28 214 STA (BASL),Y 0852: AD 00 C0 215 LDA KEYBRD 0855: 2C 10 C0 216 BIT ZKEYBRD 0858: 60 217 RTS 218 219 ******************************** 220 * O U T P U T * 221 ******************************** 222 * 223 * BUT: ECRIRE A LA FOIS SUR ECRAN TEXT ET SUR ECRAN HGR 224 * 225 ; 0859: C9 A0 226 OUTPUT CMP #$A0 ; = ESPACE 085B: 90 24 227 BCC OTHER ; POUR LES CARACTERES < A L'ESPACE 085D: 8D AA 08 228 STA OUTSTORE ; SAUVE POUR ECRAN TEXTE 0860: 8C AB 08 229 STY OUTSTORE+1 0863: 8E AC 08 230 STX OUTSTORE+2 0866: A4 E7 231 VASY LDY ETAT2 0868: F0 05 232 BEQ VASY2 086A: 48 233 PHA 086B: 20 27 09 234 JSR OKDECAL 086E: 68 235 PLA 086F: 20 C0 08 236 VASY2 JSR SCREEN 0872: 2C 237 BITJSR DFB #$2C ; BIT OU JSR 0873: B0 08 238 DFB #TRT_RTN 0875: AD AA 08 239 LDA OUTSTORE ; RECUPERE POUR ECRAN TEXTE 0878: AC AB 08 240 LDY OUTSTORE+1 087B: AE AC 08 241 LDX OUTSTORE+2 087E: 4C A5 08 242 JMP BYE2 243 ; 0881: 48 244 OTHER PHA 0882: AD F1 1F 245 LDA ETAT 0885: F0 1F 246 BEQ BYE2+1 ; SI 0 RTN ET FLECHE NON AUTORISEE 0887: 68 247 PLA 0888: C9 8D 248 CMP #$8D ; RETURN? 088A: D0 15 249 BNE OTHER2 088C: 48 250 PHA 088D: A9 20 251 LDA #$20 088F: 8D 72 08 252 STA BITJSR ; BRANCHE LE JSR 0892: 68 253 PLA ; RECUPERE ACC 0893: 8D AA 08 254 IDEM STA OUTSTORE ; SAUVE POUR ECRAN TEXTE 0896: 8C AB 08 255 STY OUTSTORE+1 0899: 8E AC 08 256 STX OUTSTORE+2 089C: A9 A0 257 LDA #$A0 089E: 4C 66 08 258 JMP VASY 08A1: C9 88 259 OTHER2 CMP #$88 ; FLECHE GAUCHE? 08A3: F0 EE 260 BEQ IDEM 261 ; 262 * SAUT A LA SUBROUTINE NORMALE 263 ; 08A5: 24 68 264 BYE2 BIT $68 ; FAUX BIT. C'EST : PLA 08A7: 4C F0 FD 265 JMP COUT1 266 ; 08AA: 00 00 00 267 OUTSTORE DFB 0,0,0 08AD: 00 00 268 INSTORE DFB 0,0 269 08AF: 00 270 HEX 00 ; ANCIENNE PLACE DE 'ETAT' 271 272 ******************************** 273 274 ; 275 ; TRAITEMENT RETURN EN LIGNE 24 276 ; 08B0: A9 2C 277 TRT_RTN LDA #$2C 08B2: 8D 72 08 278 STA BITJSR ; RETABLI LE BIT 08B5: 20 16 09 279 JSR TESTY 08B8: A5 E7 280 LDA ETAT2 08BA: F0 03 281 BEQ RTNFIN 08BC: 4C 27 09 282 JMP OKDECAL 08BF: 60 283 RTNFIN RTS 284 ; 285 ; 286 ; 287 ; AFFICHE SUR ECRAN HGR 288 ; 08C0: 38 289 SCREEN SEC 08C1: E9 A0 290 SBC #$A0 ; OBTIENT LE NUMERO DU CARACTERE 08C3: A0 00 291 LDY #$00 08C5: 84 27 292 STY GBASH 08C7: 0A 293 ASL 08C8: 0A 294 ASL 08C9: 26 27 295 ROL GBASH 08CB: 0A 296 ASL 08CC: 26 27 297 ROL GBASH 08CE: 69 04 298 C1 ADC #CARAC 08D6: 85 27 302 STA GBASH 303 ; 08D8: 18 304 CLC 08D9: A5 28 305 LDA BASL 08DB: 65 24 306 ADC CH ; POSITION HORIZONTALE DU CURSEUR 08DD: 85 2A 307 STA BAS2L 08DF: A5 29 308 LDA BASH 08E1: 69 1C 309 MODE ADC #$1C ; POUR AVOIR HGR 08E3: 85 2B 310 STA BAS2H 311 ; 312 ; ECRITURE 313 ; 08E5: AD 88 C0 314 LDA $C088 ; BANK 1 : LECTURE MEV ONLY 08E8: B1 26 315 WRITE LDA (GBASL),Y ; DATA CARAC 08EA: A6 32 316 LDX INVFLG 08EC: E0 FF 317 CPX #$FF 08EE: F0 02 318 BEQ AFFIC 08F0: 49 FF 319 EOR #$FF ; AFFICHE EN INVERSE 08F2: 91 2A 320 AFFIC STA (BAS2L),Y 08F4: 18 321 CLC 08F5: A5 2A 322 LDA BAS2L 08F7: 69 FF 323 ADC #$FF 08F9: 85 2A 324 STA BAS2L ; POSITIONNE POUR OCTET SUIVANT 08FB: A5 2B 325 LDA BAS2H 08FD: 69 03 326 ADC #$03 08FF: 85 2B 327 STA BAS2H 0901: C8 328 INY 0902: C0 08 329 CPY #$08 ; A-T-ON FAIT LES 8 OCTETS (= 1 CARACTERE) 0904: D0 E2 330 BNE WRITE 0906: AD 81 C0 331 LDA $C081 ; RTOUR BANK2 : LECTURE MEM ET ECRITURE MEV 332 ; 333 * OPERATIONS VIRTUELLES DE TESTS POUR DECALAGE 334 ; 0909: AD AA 08 335 LDA OUTSTORE 090C: 90 14 336 BCC AUTRECAR ; AUTRES TOUCHES ENFONCEES 090E: A4 24 337 LDY CH ; TEST DE X 0910: C8 338 INY 0911: C4 21 339 CPY LARGEUR 0913: 10 01 340 BPL TESTY 0915: 60 341 RTS 0916: A4 25 342 TESTY LDY CV ; CHANGEMENT DE LIGNE 0918: C8 343 INY 0919: C4 23 344 CPY MARGEB 091B: D0 F8 345 BNE TESTY-1 ; ON EST PAS EN BAS DE L'ECRAN 346 ; 091D: A9 01 347 LDA #1 ; ON FORCE L'ETAT2 A 1 091F: 85 E7 348 STA ETAT2 0921: 60 349 RTS 350 ; 351 ; 0922: C9 8D 352 AUTRECAR CMP #$8D ; RETURN? 0924: F0 F0 353 BEQ TESTY 0926: 60 354 RTS 355 ; 356 ; 0927: 20 2F 09 357 OKDECAL JSR DECALAGE 092A: A9 00 358 LDA #0 ; RETABLI ETAT POUR NE PLUS DECALER 092C: 85 E7 359 STA ETAT2 092E: 60 360 RTS 361 ; 362 ; DECALAGE 363 ; 364 ;LST ON 092F: A5 22 365 DECALAGE LDA MARGEH 366 ;LST OFF 0931: 85 1A 367 STA Y 0933: A5 20 368 LDA MARGEG 0935: 85 09 369 STA X 0937: A9 00 370 LDA #$00 ; POSITION DU CURSEUR TOUJOURS NULLE 0939: 85 24 371 STA CH 093B: A5 21 372 LDA LARGEUR 093D: 8D 75 09 373 STA LECPX+1 0940: 20 D2 09 374 FOLLOW1 JSR CALC 0943: AD EC 09 375 LDA DATAL 0946: 8D 71 09 376 STA POKE+1 0949: AD ED 09 377 LDA DATAH 094C: 8D 72 09 378 STA POKE+2 094F: E6 1A 379 INC Y 0951: 20 D2 09 380 JSR CALC 0954: AD EC 09 381 LDA DATAL 0957: 8D 6E 09 382 STA PEEK+1 095A: AD ED 09 383 LDA DATAH 095D: 8D 6F 09 384 STA PEEK+2 385 ; BOUCLE 0960: A9 00 386 LDA #$00 0962: 8D 83 09 387 STA CPT 0965: 20 6B 09 388 JSR PEEK-2 0968: 4C 99 09 389 JMP INCR 096B: A2 00 390 LDX #$00 096D: BD FF FF 391 PEEK LDA $FFFF,X ; LDA $????,X 0970: 9D FF FF 392 POKE STA $FFFF,X ; STA $????,X 0973: E8 393 INX 0974: E0 00 394 LECPX CPX #$00 ; CPX #$?? 0976: D0 F5 395 BNE PEEK 0978: EE 83 09 396 INC CPT 097B: AC 83 09 397 LDY CPT 097E: C0 08 398 CPY #$08 ; LES 8 OCTETS SONT AFFICHES? 0980: D0 02 399 WHERE BNE NEXTOCT 0982: 60 400 RTS 401 ; 0983: 00 402 CPT DFB 0 403 ; LIGNE D'OCTETS SUIVANTE 0984: 18 404 NEXTOCT CLC 0985: AD 6F 09 405 LDA PEEK+2 0988: 69 04 406 ADC #$04 098A: 8D 6F 09 407 STA PEEK+2 098D: 18 408 NEXTOCT2 CLC 098E: AD 72 09 409 LDA POKE+2 0991: 69 04 410 ADC #$04 0993: 8D 72 09 411 STA POKE+2 0996: 4C 6B 09 412 JMP PEEK-2 ; FAIT UNE AUTRE LIGNE D'OCTETS 413 ; INCREMENTE LIGNE DE CARACTERES 0999: A5 23 414 INCR LDA MARGEB 099B: AA 415 TAX 099C: CA 416 DEX 099D: E4 1A 417 CPX Y 099F: D0 9F 418 BNE FOLLOW1 419 ; AFFICHE DES BLANCS SUR LA DERNIERE LIGNE 09A1: A9 EA 420 LDA #$EA ; ON MET UN NOP 09A3: 8D 6D 09 421 STA PEEK 09A6: A9 A9 422 LDA #$A9 ; LDA #$00 09A8: 8D 6E 09 423 STA PEEK+1 09AB: A9 00 424 LDA #$00 09AD: 8D 6F 09 425 STA PEEK+2 09B0: 8D 83 09 426 STA CPT 09B3: AD EC 09 427 LDA DATAL ; REPOSITIONNE SUR LA 1ERE LIGNE D'OCTETS 09B6: 8D 71 09 428 STA POKE+1 09B9: AD ED 09 429 LDA DATAH 09BC: 8D 72 09 430 STA POKE+2 431 ; EMPECHE L'INCREMENTATION DU LDA $????,X 09BF: A9 0B 432 LDA #$0B ; SAUTE DIRECTEMENT EN NEXTOCT2 09C1: 8D 81 09 433 STA WHERE+1 09C4: 20 6B 09 434 JSR PEEK-2 ; REMPLISSAGE DE BLANCS 435 ; RESTAURE LE LDA $????,X 09C7: A9 BD 436 LDA #$BD 09C9: 8D 6D 09 437 STA PEEK 438 ; RESTAURE LE BNE NEXTOCT 09CC: A9 02 439 LDA #$02 09CE: 8D 81 09 440 STA WHERE+1 09D1: 60 441 RTS 442 ; 443 ; CALCUL LA POSITION ECRAN 444 ; 09D2: A6 1A 445 CALC LDX Y 09D4: BD EE 09 446 LDA DATA1,X 09D7: 48 447 PHA 09D8: BD 06 0A 448 LDA DATA2,X 09DB: 45 E6 449 EOR $E6 ; PAGE ECRAN ($20 OU $40) 09DD: A8 450 TAY 09DE: 18 451 CLC 09DF: 68 452 PLA 09E0: 65 09 453 ADC X 09E2: 8D EC 09 454 STA DATAL 09E5: 98 455 TYA 09E6: 69 00 456 ADC #$00 ; RETENUES 09E8: 8D ED 09 457 STA DATAH 09EB: 60 458 RTS 459 ; 09EC: 00 460 DATAL DFB 0 09ED: 00 461 DATAH DFB 0 462 ; 463 ; DATAS GRAPHIQUES 464 ; 09EE: 00 80 00 465 DATA1 HEX 0080008000800080 09F1: 80 00 80 00 80 09F6: 28 A8 28 466 HEX 28A828A828A828A8 09F9: A8 28 A8 28 A8 09FE: 50 D0 50 467 HEX 50D050D050D050D0 0A01: D0 50 D0 50 D0 0A06: 00 00 01 468 DATA2 HEX 0000010102020303 0A09: 01 02 02 03 03 0A0E: 00 00 01 469 HEX 0000010102020303 0A11: 01 02 02 03 03 0A16: 00 00 01 470 HEX 0000010102020303 0A19: 01 02 02 03 03 471 472 ******************************** 473 * 474 * MISE EN MOUVEMENT DES SPRITES MOBILES 475 * 476 ; 0A1E: C6 4E 477 SPMOBIL0 DEC $4E 0A20: E6 4F 478 INC $4F 479 ; 0A22: AE 15 0B 480 SPMOBIL LDX SPMVT 0A25: D0 01 481 BNE NO_FINMVT 0A27: 60 482 RTS 483 0A28: 8E 11 0B 484 NO_FINMVT STX COPSPMVT ; SAUVEGARDE COMME COMPTEUR 0A2B: E0 10 485 CPX #16 0A2D: 30 0B 486 BMI LESS16 0A2F: E0 29 487 CPX #41 0A31: 30 0A 488 BMI LESS41 0A33: E0 4C 489 CPX #76 0A35: 30 09 490 BMI LESS76 0A37: A9 00 491 LDA #0 ; SI SUP>75 -> PAS D'ATTENTE 0A39: 2C 492 HEX 2C 0A3A: A9 03 493 LESS16 LDA #3 ; DE 1 A 15 -> 3 D'ATTENTE 0A3C: 2C 494 HEX 2C 0A3D: A9 02 495 LESS41 LDA #2 ; DE 16 A 40 -> 2 D'ATTENTE 0A3F: 2C 496 HEX 2C 0A40: A9 01 497 LESS76 LDA #1 ; DE 41 A 75 -> 1 D'ATTENTE 0A42: 8D C3 0A 498 STA CPT_SWAP+1 499 500 ; 0A45: AE 11 0B 501 SPMOBIL2 LDX COPSPMVT 0A48: F0 75 502 BEQ FINSPM ; ON A FAIT TOUS LES SPRITES 0A4A: BD 15 0B 503 LDA SPM-1,X ; PREND LE NUMERO DU SPRITE SAUVE 0A4D: 48 504 PHA 0A4E: 20 F2 0A 505 JSR KEL_TYPE? 0A51: 90 30 506 BCC ANIM1 507 ; 2 ANIMS 0A53: AC 13 0B 508 ANIM2 LDY FILTRE2 0A56: F0 50 509 BEQ SPMOBIL3 ; FILTRE: (=0 SP NORMAL/=1 DOUBLE/=2 TRIPLE) 0A58: 88 510 DEY 0A59: F0 14 511 BEQ SPMOBIL4 512 0A5B: 68 513 PLA 0A5C: 20 FC 0A 514 JSR IS_MONS? 0A5F: 90 07 515 BCC PAS_MONS3 0A61: A2 0A 516 LDX #10 ; MONSTRE A 3 MVT (TRIPLE) 0A63: A0 07 517 LDY #7 0A65: 4C 99 0A 518 JMP LIT_DESCR 519 0A68: A2 04 520 PAS_MONS3 LDX #4 ; SP DECOR A 3 MVT (TRIPLE) 0A6A: A0 01 521 LDY #1 0A6C: 4C 99 0A 522 JMP LIT_DESCR 523 0A6F: 68 524 SPMOBIL4 PLA 0A70: 20 FC 0A 525 JSR IS_MONS? 0A73: 90 07 526 BCC PAS_MONS2 527 0A75: A2 09 528 LDX #9 ; MONSTRE A 3 MVT (DOUBLE) 0A77: A0 07 529 LDY #7 0A79: 4C 99 0A 530 JMP LIT_DESCR 531 0A7C: A2 03 532 PAS_MONS2 LDX #3 ; SP DECOR A 3 MVT (DOUBLE) 0A7E: A0 01 533 LDY #1 0A80: 4C 99 0A 534 JMP LIT_DESCR 535 536 537 ; UNE SEULE ANIMATION 0A83: AD 12 0B 538 ANIM1 LDA FILTRE 0A86: F0 20 539 BEQ SPMOBIL3 ; FILTRE: (=0 SI SPRITE NORMAL/=1 PR COMPLEM.) 0A88: 68 540 PLA 0A89: 20 FC 0A 541 JSR IS_MONS? 0A8C: 90 07 542 BCC PAS_MONS 543 0A8E: A2 08 544 LDX #8 ; MONSTRE A 2 MVT 0A90: A0 06 545 LDY #6 0A92: 4C 99 0A 546 JMP LIT_DESCR 547 0A95: A2 02 548 PAS_MONS LDX #2 ; SP DECOR A 2 MVT 0A97: A0 00 549 LDY #0 0A99: 38 550 LIT_DESCR SEC 0A9A: 8D 80 C0 551 STA $C080 ; LIRE BK 2 0A9D: F9 00 F0 552 SBC LIB_DESCRIPT,Y ; TROUVE LE NUMERO DANS LA SERIE IMMOBILE 0AA0: 18 553 CLC 0AA1: 7D 00 F0 554 ADC LIB_DESCRIPT,X ; TROUVE LE NUM DANS DOUBLE OU TRIPLE 0AA4: 48 555 PHA 0AA5: 8D 81 C0 556 STA $C081 557 0AA8: AE 11 0B 558 SPMOBIL3 LDX COPSPMVT 0AAB: BD 8E 0B 559 LDA SPMX-1,X ; PRENDS COORDONNEE X DU SPRITE A POKER 0AAE: 85 09 560 STA X 0AB0: BD 07 0C 561 LDA SPMY-1,X ; PRENDS COORDONNEE Y DU SPRITE A POKER 0AB3: 85 1A 562 STA Y 0AB5: 68 563 PLA ; RECUPERE LE NUMERO DU SPRITE 0AB6: 20 2C 0E 564 JSR SPRITED ; AFFICHE SPRITE 0AB9: CE 11 0B 565 DEC COPSPMVT ; PASSE AU SPRITE PRECEDENT 0ABC: 4C 45 0A 566 JMP SPMOBIL2 ; ON RECOMMENCE 567 ; 0ABF: AD 14 0B 568 FINSPM LDA SPCPT ; COMPTEUR (0 A 3:FILTRE NON MODIFIE/4:MODIF) 0AC2: C9 00 569 CPT_SWAP CMP #0 ; CMP #0 OU #1 OU #2 OU #3 0AC4: 10 02 570 BPL NOFINMVT0 0AC6: 30 26 571 BMI FINMVT0 0AC8: A9 00 572 NOFINMVT0 LDA #0 ; REPOSITIONNE COMPTEUR 0ACA: 8D 14 0B 573 STA SPCPT 0ACD: AD 12 0B 574 LDA FILTRE ; CHANGE ETAT DU FILTRE 0AD0: F0 03 575 BEQ FINSPM2 0AD2: A9 00 576 LDA #0 ; NOUVEAU FILTRE = 0 0AD4: 2C 577 DFB $2C ; FAUX BIT 0AD5: A9 01 578 FINSPM2 LDA #1 ; NOUVEAU FILTRE = 1 0AD7: 8D 12 0B 579 STA FILTRE 0ADA: AE 13 0B 580 LDX FILTRE2 0ADD: F0 06 581 BEQ FINSPM3 0ADF: CA 582 DEX 0AE0: F0 06 583 BEQ FINSPM4 0AE2: A9 00 584 LDA #0 ; NOUVEAU FILTRE2 = 0 0AE4: 2C 585 HEX 2C 0AE5: A9 01 586 FINSPM3 LDA #1 0AE7: 2C 587 HEX 2C 0AE8: A9 02 588 FINSPM4 LDA #2 0AEA: 8D 13 0B 589 STA FILTRE2 0AED: 60 590 RTS 591 ; 0AEE: EE 14 0B 592 FINMVT0 INC SPCPT ; AUGMENTE COMPTEUR 0AF1: 60 593 RTS 594 0AF2: 20 06 0B 595 KEL_TYPE? JSR TAKE_REF 0AF5: 29 08 596 AND #%00001000 0AF7: 4A 597 LSR A 0AF8: 4A 598 LSR A 0AF9: 4A 599 LSR A 0AFA: 4A 600 LSR A 0AFB: 60 601 RTS 602 0AFC: 48 603 IS_MONS? PHA 0AFD: 20 06 0B 604 JSR TAKE_REF 0B00: 29 02 605 AND #%00000010 0B02: 4A 606 LSR A 0B03: 4A 607 LSR A ; RECUPERE BIT IN CARRY 0B04: 68 608 PLA ; RECUPERE SP 0B05: 60 609 RTS 610 0B06: 8D 84 C0 611 TAKE_REF STA $C084 ; LECTURE BK2 0B09: A8 612 TAY 0B0A: B9 0B F0 613 LDA REF_BIT,Y ; CHARGE VALEUR CORRESPONDANTE 0B0D: 8D 81 C0 614 STA $C081 ; BK2 NORM 0B10: 60 615 RTS 616 0B11: 00 617 COPSPMVT DFB 0 0B12: 00 618 FILTRE DFB 0 0B13: 00 619 FILTRE2 DFB 0 620 ;LST ON 0B14: 00 621 SPCPT DFB 0 622 ;LST OFF 0B15: 00 623 SPMVT DFB 0 624 ; 625 ; DATAS SPRITES/X/Y 626 ; 627 0B16: 00 00 00 628 SPM DS 121 ; 121 SPRITES ACCUEILLABLES 0B19: 00 00 00 00 00 00 00 00 0B21: 00 00 00 00 00 00 00 00 0B29: 00 00 00 00 00 00 00 00 0B31: 00 00 00 00 00 00 00 00 0B39: 00 00 00 00 00 00 00 00 0B41: 00 00 00 00 00 00 00 00 0B49: 00 00 00 00 00 00 00 00 0B51: 00 00 00 00 00 00 00 00 0B59: 00 00 00 00 00 00 00 00 0B61: 00 00 00 00 00 00 00 00 0B69: 00 00 00 00 00 00 00 00 0B71: 00 00 00 00 00 00 00 00 0B79: 00 00 00 00 00 00 00 00 0B81: 00 00 00 00 00 00 00 00 0B89: 00 00 00 00 00 00 0B8F: 00 00 00 629 SPMX DS 121 ; COORD. X CORRESPONDANTES 0B92: 00 00 00 00 00 00 00 00 0B9A: 00 00 00 00 00 00 00 00 0BA2: 00 00 00 00 00 00 00 00 0BAA: 00 00 00 00 00 00 00 00 0BB2: 00 00 00 00 00 00 00 00 0BBA: 00 00 00 00 00 00 00 00 0BC2: 00 00 00 00 00 00 00 00 0BCA: 00 00 00 00 00 00 00 00 0BD2: 00 00 00 00 00 00 00 00 0BDA: 00 00 00 00 00 00 00 00 0BE2: 00 00 00 00 00 00 00 00 0BEA: 00 00 00 00 00 00 00 00 0BF2: 00 00 00 00 00 00 00 00 0BFA: 00 00 00 00 00 00 00 00 0C02: 00 00 00 00 00 00 0C08: 00 00 00 630 SPMY DS 121 ; COORD. Y CORRESPONDANTES 0C0B: 00 00 00 00 00 00 00 00 0C13: 00 00 00 00 00 00 00 00 0C1B: 00 00 00 00 00 00 00 00 0C23: 00 00 00 00 00 00 00 00 0C2B: 00 00 00 00 00 00 00 00 0C33: 00 00 00 00 00 00 00 00 0C3B: 00 00 00 00 00 00 00 00 0C43: 00 00 00 00 00 00 00 00 0C4B: 00 00 00 00 00 00 00 00 0C53: 00 00 00 00 00 00 00 00 0C5B: 00 00 00 00 00 00 00 00 0C63: 00 00 00 00 00 00 00 00 0C6B: 00 00 00 00 00 00 00 00 0C73: 00 00 00 00 00 00 00 00 0C7B: 00 00 00 00 00 00 631 632 ; 633 ; INPUT2 634 ; 0C81: 48 635 INPUT_2 PHA 0C82: 8C AD 08 636 STY INSTORE 0C85: 8E AE 08 637 STX INSTORE+1 0C88: 20 1E 0A 638 JSR SPMOBIL0 0C8B: AE AE 08 639 LDX INSTORE+1 0C8E: AC AD 08 640 LDY INSTORE 0C91: 20 43 08 641 JSR SUITE 0C94: 4C 82 0C 642 JMP INPUT_2+1 643 644 645 *********************** 646 * * 647 * COMMANDES ANNEXES & * 648 * (C)1990 BY DECKARD * 649 * * 650 *********************** 651 * 652 ; 653 ERROR EQU $DEC9 ; SYNTAX ERROR 654 ADDON EQU $D998 655 GETBYT EQU $E6F8 656 CHECKCOM EQU $DEBE 657 SPEAK EQU $C030 658 CPTL EQU $06 659 CPTX EQU $07 660 661 ; 0C97: A2 00 662 MACROCMD LDX #$00 0C99: 8E 83 09 663 STX CPT 0C9C: A0 00 664 D1 LDY #$00 0C9E: BD 76 13 665 D2 LDA NEWCMD,X 0CA1: F0 1B 666 BEQ D5 0CA3: C9 FF 667 CMP #$FF 0CA5: F0 08 668 BEQ D3 0CA7: D1 B8 669 CMP ($B8),Y 0CA9: D0 07 670 BNE D4 0CAB: C8 671 INY 0CAC: E8 672 INX 0CAD: D0 EF 673 BNE D2 0CAF: 4C C9 DE 674 D3 JMP ERROR 0CB2: E8 675 D4 INX 0CB3: BD 76 13 676 LDA NEWCMD,X 0CB6: D0 FA 677 BNE D4 0CB8: E8 678 INX 0CB9: EE 83 09 679 INC CPT 0CBC: D0 DE 680 BNE D1 0CBE: 20 98 D9 681 D5 JSR ADDON ; Y=Y+1 0CC1: 0E 83 09 682 ASL CPT 0CC4: AE 83 09 683 LDX CPT 0CC7: BD 28 14 684 LDA ADRCMD+1,X 0CCA: 48 685 PHA 0CCB: BD 27 14 686 LDA ADRCMD,X 0CCE: 48 687 PHA 0CCF: 60 688 RTS 689 ; 0CD0: 00 690 CPT2 DFB 0 691 692 * 693 * MUSIQUE 694 * 695 ; 0CD1: 20 F8 E6 696 MUSIC JSR GETBYT ; LIRE LE NOMBRE DE NOTE 0CD4: 8E 0A 0D 697 STX CPTMUS 0CD7: AD 0A 0D 698 AGAIN LDA CPTMUS 0CDA: F0 2D 699 BEQ FINMUS 0CDC: 20 BE DE 700 JSR CHECKCOM 0CDF: 20 F8 E6 701 JSR GETBYT ; LECTURE SON 0CE2: 86 EC 702 STX $EC 0CE4: 20 BE DE 703 JSR CHECKCOM 0CE7: 20 F8 E6 704 JSR GETBYT ; LECTURE DUREE 705 ;LST ON 0CEA: 86 ED 706 MUSICD STX $ED 707 ;LST OFF 0CEC: AD F0 1F 708 LDA SON 0CEF: F0 12 709 BEQ MUS4 ; SON OFF 0CF1: AD 30 C0 710 MUS1 LDA $C030 0CF4: 88 711 MUS2 DEY 0CF5: D0 04 712 BNE MUS3 0CF7: C6 ED 713 DEC $ED 0CF9: F0 08 714 BEQ MUS4 0CFB: CA 715 MUS3 DEX 0CFC: D0 F6 716 BNE MUS2 0CFE: A6 EC 717 LDX $EC 0D00: 4C F1 0C 718 JMP MUS1 0D03: CE 0A 0D 719 MUS4 DEC CPTMUS 0D06: 4C D7 0C 720 JMP AGAIN 0D09: 60 721 FINMUS RTS 722 ;LST ON 0D0A: 00 723 CPTMUS DFB 0 724 ;LST OFF 725 ; 726 * 727 * WINDOW 728 * 729 ; 0D0B: 20 F8 E6 730 WINDOW JSR GETBYT 0D0E: 86 20 731 STX $20 0D10: 20 BE DE 732 JSR CHECKCOM 0D13: 20 F8 E6 733 JSR GETBYT 0D16: 86 21 734 STX $21 0D18: 20 BE DE 735 JSR CHECKCOM 0D1B: 20 F8 E6 736 JSR GETBYT 0D1E: 86 22 737 STX $22 0D20: 20 BE DE 738 JSR CHECKCOM 0D23: 20 F8 E6 739 JSR GETBYT 0D26: 86 23 740 STX $23 0D28: 60 741 RTS 742 ; 743 * 744 * SOUND 745 * 746 ; 0D29: 20 83 0D 747 SOUND JSR STOCK 748 ;LST ON 0D2C: A9 01 749 SOUNDD LDA #$01 750 ;LST OFF 0D2E: 8D 94 0D 751 STA AD2 0D31: A0 00 752 LDY #$00 0D33: AD F0 1F 753 LDA SON 0D36: F0 4A 754 BEQ FINSOUND 755 ; 0D38: AD 95 0D 756 DEBUT LDA AD3 0D3B: 48 757 PHA 0D3C: AE 93 0D 758 LDX AD1 0D3F: CA 759 DEX1 DEX 0D40: D0 FD 760 BNE DEX1 0D42: 2C 30 C0 761 BIT SPEAK 0D45: AE 94 0D 762 LDX AD2 0D48: CA 763 DEX2 DEX 0D49: D0 FD 764 BNE DEX2 0D4B: 2C 30 C0 765 BIT SPEAK 0D4E: 68 766 PLA 0D4F: AA 767 TAX 0D50: CA 768 DEX 0D51: 8A 769 TXA 0D52: D0 E7 770 BNE DEBUT+3 0D54: C0 01 771 CPY #$01 0D56: F0 17 772 BEQ LA 773 ; 0D58: AD 94 0D 774 ICI LDA AD2 0D5B: 18 775 CLC 0D5C: 69 01 776 ADC #$01 0D5E: C9 1B 777 CMP #$1B 0D60: F0 09 778 BEQ CHANGE 0D62: 8D 94 0D 779 STA AD2 0D65: CE 93 0D 780 DEC AD1 0D68: 4C 38 0D 781 JMP DEBUT 0D6B: C8 782 CHANGE INY 0D6C: 4C 38 0D 783 JMP DEBUT 784 ; 0D6F: AD 94 0D 785 LA LDA AD2 0D72: 38 786 SEC 0D73: E9 01 787 SBC #$01 0D75: C9 01 788 CMP #$01 0D77: F0 09 789 BEQ FINSOUND 0D79: 8D 94 0D 790 STA AD2 0D7C: EE 93 0D 791 INC AD1 0D7F: 4C 38 0D 792 JMP DEBUT 793 ; 0D82: 60 794 FINSOUND RTS 795 ; 0D83: 20 F8 E6 796 STOCK JSR GETBYT 0D86: 8E 93 0D 797 STX AD1 0D89: 20 BE DE 798 JSR CHECKCOM 0D8C: 20 F8 E6 799 JSR GETBYT 0D8F: 8E 95 0D 800 STX AD3 0D92: 60 801 RTS 802 ; 803 ;LST ON 0D93: 00 804 AD1 DFB $00 805 ;LST OFF 0D94: 00 806 AD2 DFB $00 807 ;LST ON 0D95: 00 808 AD3 DFB $00 809 ;LST OFF 810 ; 811 * 812 * NOISE 813 * 814 ; 815 ; NB EN AD1 816 ; COMPT EN AD3 817 ; FREQ EN AD2 818 ; 0D96: 20 83 0D 819 NOISE JSR STOCK 0D99: 20 BE DE 820 JSR CHECKCOM 0D9C: 20 F8 E6 821 JSR GETBYT 822 ;LST ON 0D9F: 8E 94 0D 823 NOISED STX AD2 824 ;LST OFF 0DA2: AD F0 1F 825 LDA SON 0DA5: F0 28 826 BEQ FIN_NOISE 827 ; 0DA7: A9 00 828 LDA #0 0DA9: 8D D0 0C 829 STA CPT2 830 ; 0DAC: AE 94 0D 831 BCL1 LDX AD2 0DAF: AD D0 0C 832 BCL2 LDA CPT2 0DB2: 6D 95 0D 833 ADC AD3 0DB5: 8D D0 0C 834 STA CPT2 0DB8: A8 835 TAY 0DB9: 88 836 BCL3 DEY 0DBA: D0 FD 837 BNE BCL3 0DBC: AD 30 C0 838 LDA SPEAK 0DBF: 8A 839 TXA 0DC0: A8 840 TAY 0DC1: 88 841 BCL4 DEY 0DC2: D0 FD 842 BNE BCL4 0DC4: AD 30 C0 843 LDA SPEAK 0DC7: CA 844 DEX 0DC8: D0 E5 845 BNE BCL2 0DCA: CE 93 0D 846 DEC AD1 0DCD: D0 DD 847 BNE BCL1 0DCF: 60 848 FIN_NOISE RTS 849 ; 850 * 851 * &MODE (0=NORMAL 1=OUTPUT 3=OUTPUT SUR DOS3.3),(0,1 OU 2) 852 * 853 ; 854 CSWDOS EQU $AA53 855 0DD0: A9 00 856 MODECR LDA #0 ; TESTEUR DE DECALAGE 0DD2: 85 E7 857 STA ETAT2 0DD4: 20 83 0D 858 JSR STOCK ; LECTURE DES DONNEES 859 ; BRANCHE CSWL/CSWH 0DD7: AD 93 0D 860 LDA AD1 0DDA: F0 16 861 BEQ CSWNORM ; &MODE0,... 0DDC: C9 01 862 CMP #1 0DDE: F0 0B 863 BEQ OUTCSW ; &MODE1,... 864 0DE0: A9 59 865 LDA #OUTPUT 0DE4: 8D 53 AA 867 STA CSWDOS 0DE7: 8E 54 AA 868 STX CSWDOS+1 0DEA: 60 869 RTS ; ON NE TOUCHE PAS A KSW 870 0DEB: A9 59 871 OUTCSW LDA #OUTPUT 0DEF: 4C F6 0D 873 JMP FOLLOW2 0DF2: A9 F0 874 CSWNORM LDA #$F0 0DF4: A2 FD 875 LDX #$FD 0DF6: 85 36 876 FOLLOW2 STA CSWL 0DF8: 86 37 877 STX CSWH 0DFA: AE 95 0D 878 MODECR2 LDX AD3 0DFD: F0 11 879 BEQ KSWNORM 0DFF: CA 880 DEX 0E00: F0 07 881 BEQ FOLLOW10 0E02: A9 81 882 LDA #INPUT_2 0E06: 4C 14 0E 884 JMP FOLLOW3 0E09: A9 06 885 FOLLOW10 LDA #INPUT 0E0D: 4C 14 0E 887 JMP FOLLOW3 0E10: A9 1B 888 KSWNORM LDA #$1B 0E12: A2 FD 889 LDX #$FD 0E14: 85 38 890 FOLLOW3 STA KSWL 0E16: 86 39 891 STX KSWH 0E18: 60 892 RTS 893 894 * 895 * SPRITE 896 * 897 ; 0E19: 20 83 0D 898 SPRITE JSR STOCK 0E1C: 20 BE DE 899 JSR CHECKCOM 0E1F: 20 F8 E6 900 JSR GETBYT 0E22: 86 1A 901 STX Y 0E24: AD 95 0D 902 LDA AD3 0E27: 85 09 903 STA X 904 ; NO SPRITE*(4*8) 0E29: AD 93 0D 905 LDA AD1 906 ;LST ON 0E2C: 85 EC 907 SPRITED STA $EC 908 ;LST OFF 0E2E: A9 20 909 LDA #32 0E30: 85 ED 910 STA $ED 0E32: 20 97 0E 911 JSR MULT 912 ; +DEBUT DATA SPRITE 0E35: 18 913 CLC 0E36: A5 EF 914 LDA $EF ; RESULTAT(-) 0E38: 69 00 915 ADC #DATASP 0E41: 8D 67 0E 919 STA LOAD+5 920 ; 0E44: A9 00 921 LDA #0 0E46: 85 06 922 STA CPTL ; ON SE POSITIONNE POUR LE BLOC (=2 CARAC) 0E48: 85 07 923 STA CPTX ; COMPTEUR LECTURE DATA SPRITE 0E4A: A9 10 924 LDA #16 0E4C: 8D 75 0E 925 STA NBF+1 926 ; 0E4F: 20 D2 09 927 FOLLOW4 JSR CALC 0E52: AD EC 09 928 LDA DATAL 0E55: 8D 6C 0E 929 STA ECRIT+1 0E58: AD ED 09 930 LDA DATAH 0E5B: 8D 6D 0E 931 STA ECRIT+2 0E5E: A6 07 932 LDX CPTX 933 ; 0E60: A0 00 934 FOLLOW5 LDY #$00 0E62: 8D 84 C0 935 LOAD STA $C084 ; LECTURE BK2 0E65: BD FF FF 936 LDA $FFFF,X ; LDA $????,X 0E68: 8D 81 C0 937 STA $C081 ; ROM 0E6B: 99 FF FF 938 ECRIT STA $FFFF,Y ; STA $????,Y 0E6E: E8 939 INX 0E6F: C8 940 INY 0E70: C0 02 941 CPY #$02 0E72: D0 EE 942 BNE LOAD 0E74: E0 10 943 NBF CPX #16 0E76: F0 0C 944 BEQ FOLLOW6 945 ; +$400 POUR LIGNE SUIVANTE 0E78: 18 946 CLC 0E79: AD 6D 0E 947 LDA ECRIT+2 0E7C: 69 04 948 ADC #$04 0E7E: 8D 6D 0E 949 STA ECRIT+2 0E81: 4C 60 0E 950 JMP FOLLOW5 951 ; 0E84: E6 06 952 FOLLOW6 INC CPTL 0E86: A5 06 953 LDA CPTL 0E88: C9 02 954 CMP #$02 0E8A: F0 0A 955 BEQ ENDSP ; ON A ECRIT 2 BLOC L'1 AU DESSUS DE L'AUTRE 956 ; 0E8C: 86 07 957 STX CPTX 0E8E: E6 1A 958 INC Y ; POUR ECRIRE LE SECOND BLOC 0E90: 0E 75 0E 959 ASL NBF+1 0E93: 4C 4F 0E 960 JMP FOLLOW4 ; RECOMMENCE PR 2EME BLOC 961 ; 0E96: 60 962 ENDSP RTS ; FIN AFFICHAGE SPRITE 963 ; 964 * 965 * MODULE MULTIPLICATION 966 * 967 * $EC*$ED= $EE(+) ET $EF(-) 968 ; 969 ;LST ON 0E97: A9 00 970 MULT LDA #$00 971 ;LST OFF 0E99: 85 EE 972 STA $EE 0E9B: A2 08 973 LDX #$08 0E9D: 0A 974 FOLLOW7 ASL 0E9E: 26 EE 975 ROL $EE 0EA0: 06 ED 976 ASL $ED 0EA2: 90 07 977 BCC FOLLOW8 0EA4: 18 978 CLC 0EA5: 65 EC 979 ADC $EC 0EA7: 90 02 980 BCC FOLLOW8 0EA9: E6 EE 981 INC $EE 0EAB: CA 982 FOLLOW8 DEX 0EAC: D0 EF 983 BNE FOLLOW7 0EAE: 85 EF 984 STA $EF 0EB0: 60 985 RTS 986 ; 987 * 988 * SET 989 * 990 ; 0EB1: 20 F8 E6 991 SET JSR GETBYT 0EB4: AD 8C C0 992 LDA $C08C ; BANK 1 : LECTURE MEV ONLY 0EB7: E0 00 993 CPX #0 0EB9: D0 09 994 BNE FOLLOW9 995 ; JEU DE CARATERES NORMAL 0EBB: AD 00 D0 996 SET1D LDA CARAC-4 ; L 0EBE: AE 01 D0 997 LDX CARAC-3 ; H 0EC1: 4C CA 0E 998 JMP SETEND 999 ; BRANCHE SUR LE SET COMPLEMENTAIRE 0EC4: AD 02 D0 1000 FOLLOW9 LDA CARAC-2 ; L 0EC7: AE 03 D0 1001 LDX CARAC-1 ; H 0ECA: 8D CF 08 1002 SETEND STA C1+1 0ECD: 8E D5 08 1003 STX C2+1 0ED0: AD 81 C0 1004 LDA $C081 ; RETOUR BANK2 : LECTURE MEM ET ECRITURE MEV 0ED3: 60 1005 RTS 1006 ; 1007 * 1008 * &CLS 1009 * 1010 ; 0ED4: A5 22 1011 CLS LDA MARGEH 0ED6: 85 1A 1012 STA Y 0ED8: A5 20 1013 LDA MARGEG 0EDA: 85 09 1014 STA X 0EDC: A5 21 1015 LDA LARGEUR 0EDE: 8D 04 0F 1016 STA LECPX2+1 0EE1: 20 D2 09 1017 CLS2 JSR CALC 0EE4: AD EC 09 1018 LDA DATAL 0EE7: 8D 00 0F 1019 STA POKE2+1 0EEA: AD ED 09 1020 LDA DATAH 0EED: 8D 01 0F 1021 STA POKE2+2 0EF0: A9 00 1022 LDA #0 0EF2: 8D 83 09 1023 STA CPT 0EF5: 20 FB 0E 1024 JSR PEEK2-2 0EF8: 4C 1E 0F 1025 JMP INCR2 0EFB: A2 00 1026 LDX #0 0EFD: A9 00 1027 PEEK2 LDA #0 0EFF: 9D FF FF 1028 POKE2 STA $FFFF,X ; STA $????,X 0F02: E8 1029 INX 0F03: E0 00 1030 LECPX2 CPX #$00 ; CPX #$?? 0F05: D0 F6 1031 BNE PEEK2 0F07: EE 83 09 1032 INC CPT 0F0A: AC 83 09 1033 LDY CPT 0F0D: C0 08 1034 CPY #$08 0F0F: D0 01 1035 BNE NEXTOCTT 0F11: 60 1036 RTS 1037 ; 0F12: 18 1038 NEXTOCTT CLC 0F13: AD 01 0F 1039 LDA POKE2+2 0F16: 69 04 1040 ADC #$04 0F18: 8D 01 0F 1041 STA POKE2+2 0F1B: 4C FB 0E 1042 JMP PEEK2-2 1043 ; 0F1E: A5 23 1044 INCR2 LDA MARGEB 0F20: AA 1045 TAX 0F21: CA 1046 DEX 0F22: E4 1A 1047 CPX Y 0F24: F0 05 1048 BEQ FINCLS 0F26: E6 1A 1049 INC Y 0F28: 4C E1 0E 1050 JMP CLS2 0F2B: A9 00 1051 FINCLS LDA #0 0F2D: 85 24 1052 STA CH 0F2F: A5 22 1053 LDA MARGEH 0F31: 85 25 1054 STA CV 0F33: 20 22 FC 1055 JSR POSITION 0F36: 60 1056 RTS 1057 ; 1058 * 1059 * &OU COORDONNEE X, COORDONNEE Y 1060 * 1061 ; 1062 POSITION EQU $FC22 1063 ; 1064 ; 0F37: 20 F8 E6 1065 OU JSR GETBYT 0F3A: 8A 1066 TXA 0F3B: 48 1067 PHA 0F3C: 20 BE DE 1068 JSR CHECKCOM 0F3F: 20 F8 E6 1069 JSR GETBYT 0F42: 86 25 1070 STX CV 0F44: 68 1071 PLA 0F45: 85 24 1072 STA CH 0F47: 20 22 FC 1073 JSR POSITION 0F4A: 60 1074 RTS 1075 1076 * &BIP X,Y NOUVELLE ROUTINE DE SON 1077 0F4B: 20 83 0D 1078 BIP JSR STOCK 0F4E: AE 93 0D 1079 LDX AD1 0F51: AC 95 0D 1080 BIP3 LDY AD3 0F54: 98 1081 BIP2 TYA 0F55: 20 A8 FC 1082 JSR WAIT 0F58: 2C 30 C0 1083 BIT $C030 0F5B: 88 1084 DEY 0F5C: D0 F6 1085 BNE BIP2 0F5E: CA 1086 DEX 0F5F: D0 F0 1087 BNE BIP3 0F61: 60 1088 RTS 1089 1090 * 1091 * &SCRN COORDONNEE X, COORDONNEE Y, VARIABLE ENTIERE (%) 1092 * 1093 1094 PTRGET EQU $DFE3 1095 0F62: 20 F8 E6 1096 SCRN JSR GETBYT ; RECUPERE X 0F65: 8A 1097 TXA 0F66: 48 1098 PHA 0F67: 20 BE DE 1099 JSR CHECKCOM 0F6A: 20 F8 E6 1100 JSR GETBYT ; RECUPERE Y 1101 ; LOCALISE LA VALEUR SUR L'ECRAN 0F6D: BD 8D 0F 1102 LDA DATA3,X ; CHARGE LE HIGH 0F70: 8D 89 0F 1103 STA SCRN2+2 ; STOCKE L'ADR HI 0F73: 18 1104 CLC 0F74: 68 1105 PLA 0F75: 7D EE 09 1106 ADC DATA1,X 0F78: 8D 88 0F 1107 STA SCRN2+1 ; STOCKE L'ADR LO 0F7B: 20 BE DE 1108 JSR CHECKCOM 0F7E: 20 E3 DF 1109 JSR PTRGET ; LECTURE ET POSITIONNE SUR VARIABLE (%) 1110 0F81: A0 00 1111 LDY #0 0F83: 98 1112 TYA 0F84: 91 83 1113 STA ($83),Y ; MET A ZERO LA PARTIE HIGH DE LA VALEUR 0F86: C8 1114 INY 0F87: AD FF FF 1115 SCRN2 LDA $FFFF ; LDA $???? 0F8A: 91 83 1116 STA ($83),Y ; MET LA VALEUR LU DANS LA PARTIE LOW 0F8C: 60 1117 RTS 1118 0F8D: 04 04 05 1119 DATA3 HEX 0404050506060707 ; DATA HIGH POUR ECRAN TEXT 0F90: 05 06 06 07 07 0F95: 04 04 05 1120 HEX 0404050506060707 0F98: 05 06 06 07 07 0F9D: 04 04 05 1121 HEX 0404050506060707 0FA0: 05 06 06 07 07 1122 1123 ; 1124 ; &RELIRE 1125 ; 0FA5: 20 67 DD 1126 RELIRE JSR $DD67 0FA8: 20 52 E7 1127 JSR $E752 0FAB: 18 1128 CLC 0FAC: 20 1A D6 1129 JSR $D61A 0FAF: B0 05 1130 BCS RELIRE2 0FB1: A2 5A 1131 LDX #$5A 0FB3: 4C 12 D4 1132 JMP $D412 1133 ; 0FB6: A5 9B 1134 RELIRE2 LDA $9B 0FB8: E9 01 1135 SBC #$01 0FBA: A4 9C 1136 LDY $9C 0FBC: B0 01 1137 BCS RELIRE3 0FBE: 88 1138 DEY 0FBF: 85 7D 1139 RELIRE3 STA $7D 0FC1: 84 7E 1140 STY $7E 0FC3: 4C B7 00 1141 JMP $00B7 1142 ; 1143 * &GOSUB TOKEN 1144 1145 CHKMEM = $D3D6 1146 NEWSTT = $D7D2 1147 1148 CHRGOT = $00B7 1149 TXTPTR = $B8 1150 CURLIN = $75 1151 1152 CGOSUB = 176 ; #$B0 1153 1154 0FC6: A9 03 1155 GOSUB LDA #$03 0FC8: 20 D6 D3 1156 JSR CHKMEM 0FCB: A5 B9 1157 LDA TXTPTR+1 0FCD: 48 1158 PHA 0FCE: A5 B8 1159 LDA TXTPTR 0FD0: 48 1160 PHA 0FD1: A5 76 1161 LDA CURLIN+1 0FD3: 48 1162 PHA 0FD4: A5 75 1163 LDA CURLIN 0FD6: 48 1164 PHA 0FD7: A9 B0 1165 LDA #CGOSUB 0FD9: 48 1166 PHA 1167 0FDA: 20 B7 00 1168 GOLINE JSR CHRGOT 0FDD: 20 E3 0F 1169 JSR GOTO 0FE0: 4C D2 D7 1170 JMP NEWSTT 1171 1172 * &GOTO TOKEN 1173 1174 GOTOD = $D941 1175 FRMNUM = $DD67 1176 GETADR = $E752 1177 1178 0FE3: 20 67 DD 1179 GOTO JSR FRMNUM 0FE6: 20 52 E7 1180 JSR GETADR 0FE9: 4C 41 D9 1181 JMP GOTOD ; GOTO DIRECT SANS JSR LINGET 1182 1183 * &CH 1-9,A$ 1184 0FEC: 20 CD 11 1185 MENU_CH JSR VAR_PREMIS0 0FEF: 48 1186 PHA 0FF0: 20 BE DE 1187 JSR CHECKCOM 0FF3: 20 E3 DF 1188 JSR PTRGET 0FF6: 68 1189 PLA 0FF7: A8 1190 TAY 0FF8: A9 92 1191 LDA #VAL_CH 0FFC: 4C A0 12 1193 JMP RECOP_STRING 1194 1195 * &LOBJ NUM,A$,A%,B%,C%,D%,E%,F%,G%,PRIX% 1196 0FFF: 20 F8 E6 1197 LOBJ JSR GETBYT ; LIT NUMERO D'OBJET 1002: 8A 1198 TXA 1003: A8 1199 TAY ; Y=ARGUMENT 1004: A2 00 1200 LDX #0 ; CMD=0 -> LECTURE OBJET 1006: 4C A0 03 1201 JMP SWAP_AUX 1202 ;LST ON 1009: 20 BE DE 1203 RETOUR_OBJ JSR CHECKCOM 1204 ;LST OFF 100C: 20 E3 DF 1205 JSR PTRGET 100F: A0 01 1206 LDY #1 1011: B1 83 1207 LDA ($83),Y ; POINTEUR ADR (-) 1013: 85 EC 1208 STA $EC 1015: C8 1209 INY 1016: B1 83 1210 LDA ($83),Y ; IDEM (+) 1018: 85 ED 1211 STA $ED 1212 101A: A0 00 1213 LDY #0 ; RECOPIE NOM OBJ DE BUFF A L'ADR TROUVEE 101C: B9 49 03 1214 RETOUR_OBJ3 LDA STRING,Y 101F: F0 05 1215 BEQ RETOUR_OBJ2 1021: 91 EC 1216 STA ($EC),Y 1023: C8 1217 INY 1024: D0 F6 1218 BNE RETOUR_OBJ3 1026: 98 1219 RETOUR_OBJ2 TYA ; PLACE LA LONGUEUR 1027: A0 00 1220 LDY #0 1029: 91 83 1221 STA ($83),Y 1222 102B: A9 00 1223 LDA #0 ; FAIT LES 7 PREMIERS OBJETS 102D: 85 EC 1224 STA $EC 102F: 20 BE DE 1225 RETOUR_OBJ4 JSR CHECKCOM 1032: 20 E3 DF 1226 JSR PTRGET 1035: A0 01 1227 LDY #1 1037: A6 EC 1228 LDX $EC 1039: BD 5A 03 1229 LDA VALS,X 103C: 91 83 1230 STA ($83),Y ; LOW 103E: 88 1231 DEY 103F: A9 00 1232 LDA #0 1041: 91 83 1233 STA ($83),Y ; HIGH 1043: E6 EC 1234 INC $EC 1045: A5 EC 1235 LDA $EC 1047: C9 07 1236 CMP #7 1049: D0 E4 1237 BNE RETOUR_OBJ4 1238 104B: 20 BE DE 1239 JSR CHECKCOM ; FAIT LE PRIX (SUR 2 OCTETS) 104E: 20 E3 DF 1240 JSR PTRGET 1051: A0 00 1241 LDY #0 1053: A2 07 1242 LDX #7 1055: BD 5A 03 1243 LDA VALS,X ; HIGH 1058: 91 83 1244 STA ($83),Y 105A: C8 1245 INY 105B: E8 1246 INX 105C: BD 5A 03 1247 LDA VALS,X ; LOW 105F: 91 83 1248 STA ($83),Y 1061: 60 1249 RTS 1250 1251 * &LSPELL = LECTURE SORT 1252 1062: 20 F8 E6 1253 LSPELL JSR GETBYT ; LECTURE SPECIALITE 1065: AD 88 C0 1254 LDA $C088 ; BANK 1 : LECTURE MEV ONLY 1068: CA 1255 DEX ; DE 0 A 14 1069: BD 9C D3 1256 LDA SPELL,X ; CHARGE L'OCTET DE LA SPECIALITE 106C: 8D AB 10 1257 UTOBJ2 STA VARBIT 106F: AD 81 C0 1258 LDA $C081 ; RETOUR BANK 2 : LECTURE MEM ET ECRITURE MEV 1259 1072: 20 BE DE 1260 JSR CHECKCOM 1075: 20 E3 DF 1261 JSR PTRGET ; LECTURE VARIABLE 1078: AD AB 10 1262 LDA VARBIT 107B: 29 0F 1263 AND #%00001111 ; RECUPERE LA PUISSANCE 107D: 20 6A 11 1264 JSR AFFECTE 1080: AD AB 10 1265 LDA VARBIT ; POSITIONNE POUR LECTURE 1083: 4A 1266 LSR A 1084: 4A 1267 LSR A 1085: 4A 1268 LSR A 1086: 8D AB 10 1269 STA VARBIT 1270 1089: A2 00 1271 LDX #0 108B: 86 EE 1272 STX $EE ; COMPTEUR DE LA BOUCLE 108D: 20 99 10 1273 ENCORE_SORT JSR SORT_BIT 1090: E6 EE 1274 INC $EE 1092: A6 EE 1275 LDX $EE 1094: E0 04 1276 CPX #4 ; 4 BITS DE SORT 1096: D0 F5 1277 BNE ENCORE_SORT 1098: 60 1278 RTS 1279 1099: 20 BE DE 1280 SORT_BIT JSR CHECKCOM 109C: 20 E3 DF 1281 JSR PTRGET ; LECTURE VARIABLE 109F: AD AB 10 1282 LDA VARBIT 10A2: 4A 1283 LSR A ; RECUPERE BIT CONNAISSANCE SORT EN BIT 0 10A3: 8D AB 10 1284 STA VARBIT ; GARDE LE DECALAGE ACTUEL POUR LE SUIVANT 10A6: 29 01 1285 AND #%00000001 ; GARDE QUE CE BIT 10A8: 4C 6A 11 1286 JMP AFFECTE ; RTS COMPRIS 1287 10AB: 00 1288 VARBIT HEX 00 1289 1290 * &ESPELL = ECRITURE SORT 1291 10AC: 20 F8 E6 1292 ESPELL JSR GETBYT ; LECTURE SPECIALITE 10AF: CA 1293 DEX ; DE 0 A 14 SUR LA TABLE 10B0: 86 EE 1294 STX $EE ; GARDE LA SPECIALITE 10B2: 20 BE DE 1295 JSR CHECKCOM ; VIRGULE PLEASE 10B5: 20 F8 E6 1296 JSR GETBYT ; LECTURE PUISSANCE 10B8: 86 EF 1297 STX $EF ; SAUVE LA PUISSANCE 1298 ; NORMALEMENT 0000YYYY 10BA: A2 00 1299 LDX #0 ; MISE EN PLACE DES 4 BITS DE SORT 10BC: 8E AB 10 1300 STX VARBIT ; MODELE 10BF: 86 ED 1301 STX $ED ; COMPTEUR 10C1: 20 DD 10 1302 ENCORE_SORT2 JSR MET_BIT 10C4: E6 ED 1303 INC $ED 10C6: A6 ED 1304 LDX $ED 10C8: E0 04 1305 CPX #4 10CA: D0 F5 1306 BNE ENCORE_SORT2 1307 ; ON A OBTENU XXXX0000 10CC: AD 89 C0 1308 LDA $C089 ; BANK 1 : ECRITURE MEV ET LECTURE MEM 10CF: AD AB 10 1309 LDA VARBIT 10D2: 45 EF 1310 EOR $EF ; MELANGE AVEC LA PUISSANCE XXXXYYYY 10D4: A4 EE 1311 LDY $EE ; RECHARGE L'INDICE DU TABLEAU DES SORTS 10D6: 99 9C D3 1312 STA SPELL,Y 10D9: AD 81 C0 1313 LDA $C081 ; RETOUR BANK 2 : LECTURE MEM ET ECRITURE MEV 10DC: 60 1314 RTS 1315 1316 10DD: 20 BE DE 1317 MET_BIT JSR CHECKCOM 10E0: 20 F8 E6 1318 JSR GETBYT ; LECTURE VALEUR SORT (0 OU 1) 10E3: 8A 1319 TXA ; RECUPERE LA VALEUR SUR 1 BIT 10E4: 4A 1320 LSR A ; ENVOIE LE BIT DANS CARRY 10E5: AD AB 10 1321 LDA VARBIT ; CHARGE LE FUTUR OCTET DE LA SPECIALITE 10E8: 6A 1322 ROR A ; COLLE LE BIT 10E9: 8D AB 10 1323 STA VARBIT ; SAUVE LA FUTUR SPECIALITE 10EC: 60 1324 RTS 1325 1326 * &UTOBJ OCTET,A%,B%,C%,D%,E% 1327 10ED: 20 F8 E6 1328 UTOBJ JSR GETBYT ; LECTURE OCTET 10F0: 8A 1329 TXA 10F1: 4C 6C 10 1330 JMP UTOBJ2 ; REUTILISE LA ROUTINE DE LSPELL 1331 1332 * &UTSPELL SPECIALITE, NUMERO SORT,A%,B%,C%,D% 1333 10F4: 20 F8 E6 1334 UTSPELL JSR GETBYT ; LECTURE SPECIALITE 10F7: CA 1335 DEX ; DE 0 A 14 10F8: 8A 1336 TXA 10F9: 0A 1337 ASL A ; *4 POUR POSTIONNER SUR LE 1ER SORT 10FA: 0A 1338 ASL A 10FB: 8D AB 10 1339 STA VARBIT 10FE: 20 BE DE 1340 JSR CHECKCOM 1101: 20 F8 E6 1341 JSR GETBYT ; LECTURE NUMERO DU SORT 1104: CA 1342 DEX ; POUR AVOIR DE 0 A 3 1105: 8A 1343 TXA 1106: 18 1344 CLC 1107: 6D AB 10 1345 ADC VARBIT ; POSITIONNE SUR L'OCTET DU SORT DESIRE 110A: A8 1346 TAY ; VA SERVIR D'INDICE 110B: 8D 88 C0 1347 STA $C088 ; BK1 LECTURE 110E: B9 B0 D3 1348 LDA SPELL2,Y ; CHARGE L'OCTET 1111: 8D 81 C0 1349 STA $C081 1114: 8D AB 10 1350 STA VARBIT 1351 1117: A2 00 1352 LDX #0 1119: 86 EE 1353 STX $EE 111B: 20 BE DE 1354 BCL_UTSPELL JSR CHECKCOM 111E: 20 E3 DF 1355 JSR PTRGET 1121: AD AB 10 1356 LDA VARBIT 1124: 4A 1357 LSR A ; BIT DANS CARRY 1125: 8D AB 10 1358 STA VARBIT ; SAUVE OCTET DECALE 1128: A9 00 1359 LDA #0 ; VIDE L'OCTET 112A: 2A 1360 ROL A ; RECASE LE BIT 112B: 20 6A 11 1361 JSR AFFECTE ; DONNE LA VALEUR A LA VARIABLE 112E: E6 EE 1362 INC $EE 1130: A5 EE 1363 LDA $EE 1132: C9 04 1364 CMP #4 1134: D0 E5 1365 BNE BCL_UTSPELL 1136: 60 1366 RTS 1367 1368 * &LARME = LECTURE ARME 1369 1137: 20 F8 E6 1370 LARME JSR GETBYT ; LECTURE DE L'OCTET CODE 113A: 8A 1371 TXA 113B: 0A 1372 ASL A ; POUR UTILISER LA BOUCLE AVEC 1ERE VALEUR 113C: 0A 1373 ASL A 113D: 8D AB 10 1374 STA VARBIT ; SAUVE CARACTERISTIQUE DE L'ARME 1375 1140: A2 00 1376 LDX #0 1142: 86 EE 1377 STX $EE ; COMPTEUR BOUCLE 1144: 20 50 11 1378 ENCORE_ARME JSR LIRE_ARME ; RECUPERE UN DOUBLET (ORDRE CROISSANT) 1147: E6 EE 1379 INC $EE 1149: A6 EE 1380 LDX $EE 114B: E0 03 1381 CPX #3 ; 3 DOUBLETS POUR BROYER/COUPER/PERCER 114D: D0 F5 1382 BNE ENCORE_ARME 114F: 60 1383 RTS 1384 1150: 20 BE DE 1385 LIRE_ARME JSR CHECKCOM 1153: 20 E3 DF 1386 JSR PTRGET 1156: AD AB 10 1387 LDA VARBIT 1159: 4A 1388 LSR A 115A: 4A 1389 LSR A 115B: 8D AB 10 1390 STA VARBIT ; SAUVE L'OCTET DECALE POUR NEXT DOUBLET 115E: 29 03 1391 AND #%00000011 ; GARDE QUE LES 2 PREMIERS BITS 1160: A0 01 1392 LDY #1 1162: 18 1393 CLC 1163: 71 83 1394 ADC ($83),Y ; ADDITIONNE AVEC VALEUR ACTUELLE DE LA VAR 1165: 91 83 1395 STA ($83),Y 1167: 4C 6E 11 1396 JMP AFFECTE2 1397 1398 116A: A0 01 1399 AFFECTE LDY #1 116C: 91 83 1400 STA ($83),Y ; COLLE LA VALEUR EN LOW 116E: 88 1401 AFFECTE2 DEY 116F: 98 1402 TYA 1170: 91 83 1403 STA ($83),Y ; ANNULE LA HIGH 1172: 60 1404 RTS 1405 1406 ******************************** 1407 1408 * EXTRAIT LES CARACTERISTIQUES DU MONSTRE 1409 1173: 20 A2 11 1410 MM JSR MOD_BEAST 1176: BD 5B 03 1411 LDA VALS+1,X 1179: 4C 6A 11 1412 JMP AFFECTE 1413 117C: 20 A2 11 1414 MLOC JSR MOD_BEAST 117F: BD 6B 03 1415 LDA VALS+17,X 1182: 4C 6A 11 1416 JMP AFFECTE 1417 1185: 20 A2 11 1418 MTAC JSR MOD_BEAST 1188: BD 75 03 1419 LDA VALS+27,X 118B: 4C 6A 11 1420 JMP AFFECTE 1421 118E: 20 A2 11 1422 MRES JSR MOD_BEAST 1191: 0A 1423 ASL A ; INDICE * 2 1192: AA 1424 TAX 1193: BD 83 03 1425 LDA VALS+41,X 1196: A0 01 1426 LDY #1 1198: 91 83 1427 STA ($83),Y ; LOW 119A: 88 1428 DEY 119B: E8 1429 INX 119C: BD 83 03 1430 LDA VALS+41,X 119F: 91 83 1431 STA ($83),Y ; HIGH 11A1: 60 1432 RTS 1433 11A2: 20 F8 E6 1434 MOD_BEAST JSR GETBYT ; RECOIT L'INDICE DU TABLEAU 11A5: CA 1435 DEX ; POUR COMMENCER A 0 11A6: 8A 1436 TXA 11A7: 48 1437 PHA 11A8: 20 BE DE 1438 JSR CHECKCOM 11AB: 20 E3 DF 1439 JSR PTRGET 11AE: 68 1440 PLA 11AF: AA 1441 TAX 11B0: 60 1442 RTS 1443 1444 * &S = DETERMINE LE FLAG MUSICAL 1445 * S=0 PAS DE SON / S=1 SON 1446 11B1: 20 F8 E6 1447 S JSR GETBYT ; LECTURE FLAG 11B4: 8E F0 1F 1448 STX SON 11B7: 60 1449 RTS 1450 1451 * &ST$ NB (1 A 3), A$ 1452 11B8: 20 CD 11 1453 SITUATION JSR VAR_PREMIS0 11BB: A9 EC 1454 LDA #VAL_ST 11BF: 20 D5 11 1456 PAS_CR JSR VAR_PREMIS 11C2: 20 E9 11 1457 JSR TRT_VAR 11C5: A9 00 1458 LDA #0 11C7: 8D 15 12 1459 STA CPT_CR 11CA: 4C 23 12 1460 JMP ST4 1461 11CD: 20 F8 E6 1462 VAR_PREMIS0 JSR GETBYT 11D0: CA 1463 DEX 11D1: 8A 1464 TXA 11D2: 0A 1465 ASL A ; *2 11D3: A8 1466 TAY 11D4: 60 1467 RTS 1468 11D5: 85 EC 1469 VAR_PREMIS STA $EC 11D7: 86 ED 1470 STX $ED 11D9: 8D 88 C0 1471 STA $C088 ; BK1 11DC: B1 EC 1472 LDA ($EC),Y ; LOW ADR DEBUT CHAINE CONCERNEE 11DE: 85 EE 1473 STA $EE 11E0: C8 1474 INY 11E1: B1 EC 1475 LDA ($EC),Y ; HIGH 11E3: 8D 81 C0 1476 STA $C081 11E6: 85 EF 1477 STA $EF 11E8: 60 1478 RTS 1479 11E9: A9 00 1480 TRT_VAR LDA #0 11EB: 8D 15 12 1481 STA CPT_CR 11EE: A0 00 1482 TRT_VARD LDY #0 ; SAUTE ICI POUR PAS INIT APRES 'VOUS LUI' 11F0: 84 EC 1483 STY $EC 11F2: 8D 88 C0 1484 TRT_VAR2 STA $C088 ; BK1 11F5: B1 EE 1485 LDA ($EE),Y 11F7: 8D 81 C0 1486 STA $C081 ; ROM 11FA: F0 18 1487 BEQ END_TRT_VAR 11FC: 20 5C DB 1488 JSR OUTDO 11FF: EE 15 12 1489 INC CPT_CR 1202: AD 15 12 1490 LDA CPT_CR 1205: C9 10 1491 CMP #16 1207: D0 05 1492 BNE NO_CR 1209: A9 00 1493 LDA #0 120B: 8D 15 12 1494 STA CPT_CR 120E: E6 EC 1495 NO_CR INC $EC 1210: A4 EC 1496 LDY $EC 1212: D0 DE 1497 BNE TRT_VAR2 1214: 60 1498 END_TRT_VAR RTS 1499 1215: 00 1500 CPT_CR HEX 00 1501 1502 * &BL$ (1 A 5) 1503 1216: 20 CD 11 1504 BLESSURE JSR VAR_PREMIS0 1219: A9 9D 1505 LDA #VAL_BL 121D: 20 D5 11 1507 ST2 JSR VAR_PREMIS 1220: 20 E9 11 1508 JSR TRT_VAR 1223: 20 FB DA 1509 ST4 JSR CRDO ; SAUTE 1 LIGNE 1226: AD 15 12 1510 LDA CPT_CR 1229: F0 03 1511 BEQ ST3 122B: 20 FB DA 1512 JSR CRDO 122E: 60 1513 ST3 RTS 1514 1515 * &MO$ 1516 122F: 20 CD 11 1517 MORT JSR VAR_PREMIS0 1232: A9 16 1518 LDA #VAL_MO 1236: 4C 1D 12 1520 JMP ST2 1521 1522 * &LOC$ 1523 1239: 20 CD 11 1524 LOCALISATION JSR VAR_PREMIS0 123C: A9 38 1525 LDA #VAL_LOC 1240: 4C BF 11 1527 JMP PAS_CR 1528 1529 * &CRT$ 1530 1243: 20 F8 E6 1531 CREVE JSR GETBYT 1246: CA 1532 DEX 1247: F0 03 1533 BEQ CRT2 1249: A9 09 1534 LDA #9 124B: 24 1535 HEX 24 ; BIT 124C: 8A 1536 CRT2 TXA 124D: 85 EC 1537 STA $EC ; INDICE 1 124F: 20 BE DE 1538 JSR CHECKCOM 1252: 20 F8 E6 1539 JSR GETBYT 1255: CA 1540 DEX 1256: F0 09 1541 BEQ CRT3 1258: CA 1542 DEX 1259: F0 03 1543 BEQ CRT4 125B: A9 06 1544 LDA #6 125D: 2C 1545 HEX 2C ; BIT 125E: A9 03 1546 CRT4 LDA #3 1260: 24 1547 HEX 24 ; BIT 1261: 8A 1548 CRT3 TXA ; INDICE 2 1262: 18 1549 CLC 1263: 65 EC 1550 ADC $EC ; INDICE4=(INDICE1*9)+(INDICE2*3) 1265: 85 EC 1551 STA $EC 1267: 20 BE DE 1552 JSR CHECKCOM 126A: 20 F8 E6 1553 JSR GETBYT 126D: CA 1554 DEX 126E: 8A 1555 TXA 126F: 18 1556 CLC 1270: 65 EC 1557 ADC $EC ; INDICE4+INDICE1 1272: 0A 1558 ASL A ; *2 1273: A8 1559 TAY 1274: A9 5F 1560 LDA #VAL_CRT 1278: 4C 1D 12 1562 JMP ST2 1563 1564 * &SMAG (1 A 15, 0 A 4),A$ 1565 127B: 20 F8 E6 1566 SMAGIE JSR GETBYT 127E: CA 1567 DEX 127F: 86 EC 1568 STX $EC 1281: A9 05 1569 LDA #5 1283: 85 ED 1570 STA $ED 1285: 20 97 0E 1571 JSR MULT ; INDICE 1*5 1288: 20 BE DE 1572 JSR CHECKCOM 128B: 20 F8 E6 1573 JSR GETBYT 128E: 8A 1574 TXA ; INDICE 2 128F: 18 1575 CLC 1290: 65 EF 1576 ADC $EF 1292: 0A 1577 ASL A ; *2 1293: 48 1578 PHA 1294: 20 BE DE 1579 JSR CHECKCOM 1297: 20 E3 DF 1580 JSR PTRGET 129A: 68 1581 PLA 129B: A8 1582 TAY 129C: A9 F2 1583 LDA #VAL_SMAG 1585 12A0: 20 D5 11 1586 RECOP_STRING JSR VAR_PREMIS 12A3: A0 01 1587 LDY #1 12A5: B1 83 1588 LDA ($83),Y ; LOW CHAINE ACTUELLE 12A7: 85 EC 1589 STA $EC 12A9: C8 1590 INY 12AA: B1 83 1591 LDA ($83),Y 12AC: 85 ED 1592 STA $ED ; HIGH CHAINE ACTUELLE 12AE: A0 00 1593 LDY #0 ; TRANSFERT BANK 1 ->BUFFER 12B0: 8D 88 C0 1594 STA $C088 ; BK1 12B3: B1 EE 1595 SMAGIE3 LDA ($EE),Y 12B5: F0 05 1596 BEQ SMAGIE2 12B7: 91 EC 1597 STA ($EC),Y 12B9: C8 1598 INY 12BA: D0 F7 1599 BNE SMAGIE3 12BC: 8D 81 C0 1600 SMAGIE2 STA $C081 ; ROM 12BF: 98 1601 TYA ; RECUPERE LONGUEUR 12C0: A0 00 1602 LDY #0 12C2: 91 83 1603 STA ($83),Y ; LONGUEUR 12C4: 60 1604 RTS 1605 1606 * &ACR$ 1607 12C5: A9 6B 1608 DOMAGE LDA #VAL_ACR0 12CB: 85 EF 1611 STA $EF 12CD: 20 E9 11 1612 JSR TRT_VAR 1613 12D0: 20 F8 E6 1614 JSR GETBYT 12D3: CA 1615 DEX 12D4: 86 EC 1616 STX $EC 12D6: A9 03 1617 LDA #3 12D8: 85 ED 1618 STA $ED 12DA: 20 97 0E 1619 JSR MULT ; INDICE1*3 12DD: 20 BE DE 1620 JSR CHECKCOM 12E0: 20 F8 E6 1621 JSR GETBYT 12E3: CA 1622 DEX 12E4: 8A 1623 TXA ; INDICE 2 12E5: 18 1624 CLC 12E6: 65 EF 1625 ADC $EF 12E8: 0A 1626 ASL A ; *2 12E9: A8 1627 TAY 12EA: A9 3B 1628 LDA #VAL_ACR 12EE: 20 D5 11 1630 JSR VAR_PREMIS 12F1: 20 EE 11 1631 JSR TRT_VARD ; ON NE REMET PAS A ZERO LE COMPTEUR 12F4: 4C 23 12 1632 JMP ST4 1633 1634 * &MAG% 1635 12F7: 20 F8 E6 1636 MAGIE JSR GETBYT 12FA: CA 1637 DEX 12FB: 8A 1638 TXA 12FC: 0A 1639 ASL A ; INDICE1*4 12FD: 0A 1640 ASL A 12FE: 85 EF 1641 STA $EF 1300: 20 BE DE 1642 JSR CHECKCOM 1303: 20 F8 E6 1643 JSR GETBYT 1306: CA 1644 DEX ; INDICE2 1307: 8A 1645 TXA 1308: 18 1646 CLC 1309: 65 EF 1647 ADC $EF 130B: 48 1648 PHA 130C: 20 BE DE 1649 JSR CHECKCOM 130F: 20 F8 E6 1650 JSR GETBYT 1312: CA 1651 DEX 1313: 86 EC 1652 STX $EC 1315: A9 3C 1653 LDA #60 1317: 85 ED 1654 STA $ED 1319: 20 97 0E 1655 JSR MULT ; INDICE3*60 131C: 68 1656 PLA 131D: 18 1657 CLC 131E: 65 EF 1658 ADC $EF 1320: 48 1659 PHA 1660 1321: 20 BE DE 1661 JSR CHECKCOM 1324: 20 E3 DF 1662 JSR PTRGET 1327: 68 1663 PLA 1328: 48 1664 PHA 1329: 38 1665 SEC 132A: E9 3C 1666 SBC #60 132C: 10 18 1667 BPL MAG2 1668 132E: 68 1669 PLA ; SUR 2 OCTETS 132F: 0A 1670 ASL A ; *2 CAR 'DA' 1330: AA 1671 TAX 1331: 8D 88 C0 1672 STA $C088 ; BK1 1334: BD AD DA 1673 LDA VAL_MAG,X 1337: A0 01 1674 LDY #1 1339: 91 83 1675 STA ($83),Y ; LOW 133B: 88 1676 DEY 133C: E8 1677 INX 133D: BD AD DA 1678 LDA VAL_MAG,X 1340: 8D 81 C0 1679 STA $C081 1343: 91 83 1680 STA ($83),Y 1345: 60 1681 RTS 1682 1346: AA 1683 MAG2 TAX ; SUR 1 OCTET 1347: 68 1684 PLA 1348: 8D 88 C0 1685 STA $C088 ; BK1 134B: BD 25 DB 1686 LDA VAL_MAG2,X 134E: 8D 81 C0 1687 STA $C081 1351: 4C 6A 11 1688 JMP AFFECTE 1689 1690 * TROUVE QUELLE FACE RECHERCHER 1691 1354: 20 F8 E6 1692 FACE JSR GETBYT 1357: BD 65 13 1693 LDA KELFACE,X 135A: 48 1694 PHA 135B: 20 BE DE 1695 JSR CHECKCOM 135E: 20 E3 DF 1696 JSR PTRGET 1361: 68 1697 PLA 1362: 4C 6A 11 1698 JMP AFFECTE ; RTS INCLU 1699 1365: 05 03 03 1700 KELFACE DFB 5,3,3,3,3,3,3,3,5,5,4,4,4,4,4,4,4 1368: 03 03 03 03 03 05 05 04 1370: 04 04 04 04 04 04 1701 1702 * 1703 * LISTE DES COMMANDES 1704 * 1705 ; 1706 NEWCMD 1376: 4D 55 53 1707 ASC 'MUSIC'00 1379: 49 43 00 137C: 53 4F 55 1708 ASC 'SOUND'00 137F: 4E 44 00 1382: 57 49 4E 1709 ASC 'WINDOW'00 1385: 44 4F 57 00 1389: 4E 4F 49 1710 ASC 'NOISE'00 138C: 53 45 00 138F: 4D 4F 44 1711 ASC 'MODE'00 1392: 45 00 1394: 53 50 52 1712 ASC 'SPRITE'00 1397: 49 54 45 00 139B: 53 45 54 1713 ASC 'SET'00 139E: 00 139F: 43 4C 53 1714 ASC 'CLS'00 13A2: 00 13A3: 52 45 4C 1715 ASC 'RELIRE'00 13A6: 49 52 45 00 13AA: 4F 55 00 1716 ASC 'OU'00 13AD: 53 43 52 1717 ASC 'SCRN'00 13B0: 4E 00 13B2: 47 54 00 1718 ASC 'GT'00 13B5: 47 53 00 1719 ASC 'GS'00 13B8: 4C 53 50 1720 ASC 'LSPELL'00 13BB: 45 4C 4C 00 13BF: 45 53 50 1721 ASC 'ESPELL'00 13C2: 45 4C 4C 00 13C6: 4C 41 52 1722 ASC 'LARME'00 13C9: 4D 45 00 13CC: 55 54 53 1723 ASC 'UTSPELL'00 13CF: 50 45 4C 4C 00 13D4: 4F 42 4A 1724 ASC 'OBJ'00 13D7: 00 13D8: 4C 4F 42 1725 ASC 'LOBJ'00 13DB: 4A 00 13DD: 53 54 00 1726 ASC 'ST'00 13E0: 4D 4F 00 1727 ASC 'MO'00 13E3: 43 52 54 1728 ASC 'CRT'00 13E6: 00 13E7: 41 43 52 1729 ASC 'ACR'00 13EA: 00 13EB: 4C 4F 43 1730 ASC 'LOC'00 13EE: 00 13EF: 4D 41 47 1731 ASC 'MAG'00 13F2: 00 13F3: 42 4C 00 1732 ASC 'BL'00 13F6: 53 4D 41 1733 ASC 'SMAG'00 13F9: 47 00 13FB: 4D 4D 00 1734 ASC 'MM'00 13FE: 4D 52 45 1735 ASC 'MRES'00 1401: 53 00 1403: 4D 4C 4F 1736 ASC 'MLOC'00 1406: 43 00 1408: 4D 54 41 1737 ASC 'MTAC'00 140B: 43 00 140D: 53 48 4F 1738 ASC 'SHOP'00 1410: 50 00 1412: 53 00 1739 ASC 'S'00 1414: 42 49 50 1740 ASC 'BIP'00 1417: 00 1418: 43 48 00 1741 ASC 'CH'00 141B: 50 49 45 1742 ASC 'PIEGE'00 141E: 47 45 00 1421: 46 41 43 1743 ASC 'FACE'00 1424: 45 00 1744 ; 1745 ; ERROR 1426: FF 1746 HEX FF 1747 ; 1748 * 1749 * LISTE DES ADRESSES 1750 * 1751 ; 1752 ADRCMD ; &MUSIC 1427: D0 0C 1753 DA MUSIC-1 1429: 28 0D 1754 DA SOUND-1 142B: 0A 0D 1755 DA WINDOW-1 142D: 95 0D 1756 DA NOISE-1 142F: CF 0D 1757 DA MODECR-1 1431: 18 0E 1758 DA SPRITE-1 1433: B0 0E 1759 DA SET-1 1435: D3 0E 1760 DA CLS-1 1437: A4 0F 1761 DA RELIRE-1 1439: 36 0F 1762 DA OU-1 143B: 61 0F 1763 DA SCRN-1 143D: E2 0F 1764 DA GOTO-1 143F: C5 0F 1765 DA GOSUB-1 1441: 61 10 1766 DA LSPELL-1 1443: AB 10 1767 DA ESPELL-1 1445: 36 11 1768 DA LARME-1 1447: F3 10 1769 DA UTSPELL-1 1449: EC 10 1770 DA UTOBJ-1 144B: FE 0F 1771 DA LOBJ-1 144D: B7 11 1772 DA SITUATION-1 144F: 2E 12 1773 DA MORT-1 1451: 42 12 1774 DA CREVE-1 1453: C4 12 1775 DA DOMAGE-1 1455: 38 12 1776 DA LOCALISATION-1 1457: F6 12 1777 DA MAGIE-1 1459: 15 12 1778 DA BLESSURE-1 145B: 7A 12 1779 DA SMAGIE-1 145D: 72 11 1780 DA MM-1 145F: 8D 11 1781 DA MRES-1 1461: 7B 11 1782 DA MLOC-1 1463: 84 11 1783 DA MTAC-1 1465: 26 40 1784 DA DOMARCH-1 1467: B0 11 1785 DA S-1 1469: 4A 0F 1786 DA BIP-1 146B: EB 0F 1787 DA MENU_CH-1 146D: 1D 40 1788 DA PIEGE-1 1789 ;LST ON 146F: 53 13 1790 DA FACE-1 1791 ;LST OFF --End assembly, 3238 bytes, Errors: 0 Symbol table - alphabetical order: AD1 =$0D93 AD2 =$0D94 AD3 =$0D95 ADDON =$D998 ADRCMD =$1427 AFFECTE =$116A AFFECTE2 =$116E AFFIC =$08F2 AGAIN =$0CD7 MD AJ =$8000 ANIM1 =$0A83 ? ANIM2 =$0A53 AUTRECAR =$0922 BAS2H =$2B BAS2L =$2A BASH =$29 BASL =$28 BCL1 =$0DAC BCL2 =$0DAF BCL3 =$0DB9 BCL4 =$0DC1 BCL_UTSPELL =$111B BIP =$0F4B BIP2 =$0F54 BIP3 =$0F51 BITJSR =$0872 BLESSURE =$1216 BYE2 =$08A5 C1 =$08CE C2 =$08D4 CALC =$09D2 CARAC =$D004 CGOSUB =$B0 CH =$24 CHANGE =$0D6B CHECKCOM =$DEBE CHKMEM =$D3D6 CHRGOT =$B7 CLS =$0ED4 CLS2 =$0EE1 COPSPMVT =$0B11 COUT1 =$FDF0 CPT =$0983 CPT2 =$0CD0 CPT2AUX =$08 CPTAUX =$06 CPTL =$06 CPTMUS =$0D0A CPTX =$07 CPT_CR =$1215 CPT_SWAP =$0AC2 CRDO =$DAFB CREVE =$1243 CRT2 =$124C CRT3 =$1261 CRT4 =$125E CSWDOS =$AA53 CSWH =$37 CSWL =$36 CSWNORM =$0DF2 CURLIN =$75 CURSOR =$D1F4 CV =$25 D1 =$0C9C D2 =$0C9E D3 =$0CAF D4 =$0CB2 D5 =$0CBE DATA1 =$09EE DATA2 =$0A06 DATA3 =$0F8D DATAH =$09ED DATAL =$09EC DATASP =$D000 DEBUT =$0D38 DECALAGE =$092F DEX1 =$0D3F DEX2 =$0D48 DOMAGE =$12C5 DOMARCH =$4027 ECRIT =$0E6B ENCORE_ARME =$1144 ENCORE_SORT =$108D ENCORE_SORT2 =$10C1 ENDSP =$0E96 END_TRT_VAR =$1214 ERROR =$DEC9 ESPELL =$10AC ETAT =$1FF1 ETAT2 =$E7 FACE =$1354 M FAJ =$1028 FILTRE =$0B12 FILTRE2 =$0B13 FINCLS =$0F2B FINMUS =$0D09 FINMVT0 =$0AEE FINSOUND =$0D82 FINSPM =$0ABF FINSPM2 =$0AD5 FINSPM3 =$0AE5 FINSPM4 =$0AE8 FIN_NOISE =$0DCF FOLLOW1 =$0940 FOLLOW10 =$0E09 FOLLOW2 =$0DF6 FOLLOW3 =$0E14 FOLLOW4 =$0E4F FOLLOW5 =$0E60 FOLLOW6 =$0E84 FOLLOW7 =$0E9D FOLLOW8 =$0EAB FOLLOW9 =$0EC4 FRMNUM =$DD67 GBASH =$27 GBASL =$26 GETADR =$E752 GETBYT =$E6F8 ? GOLINE =$0FDA GOSUB =$0FC6 GOTO =$0FE3 GOTOD =$D941 ? ICI =$0D58 IDEM =$0893 INCR =$0999 INCR2 =$0F1E INPUT =$0806 INPUT2 =$0807 INPUT_2 =$0C81 INSTORE =$08AD INVFLG =$32 IS_MONS? =$0AFC KELFACE =$1365 KEL_TYPE? =$0AF2 KEYBRD =$C000 KSWH =$39 KSWL =$38 KSWNORM =$0E10 LA =$0D6F LARGEUR =$21 LARME =$1137 LECPX =$0974 LECPX2 =$0F03 LESS16 =$0A3A LESS41 =$0A3D LESS76 =$0A40 LIB_DESCRIPT =$F000 LIB_MACROS2 =$1038 LIRE_ARME =$1150 LIT_DESCR =$0A99 LOAD =$0E62 LOBJ =$0FFF LOCALISATION =$1239 LS2 =$01 LSPELL =$1062 MACROCMD =$0C97 MAG2 =$1346 MAGIE =$12F7 MARGEB =$23 MARGEG =$20 MARGEH =$22 MENU_CH =$0FEC MET_BIT =$10DD MLOC =$117C MM =$1173 ? MODE =$08E1 MODECR =$0DD0 ? MODECR2 =$0DFA MOD_BEAST =$11A2 MORT =$122F MRES =$118E MTAC =$1185 MULT =$0E97 MUS1 =$0CF1 MUS2 =$0CF4 MUS3 =$0CFB MUS4 =$0D03 MUSIC =$0CD1 ? MUSICD =$0CEA ? N =$00 NBF =$0E74 NEWCMD =$1376 NEWSTT =$D7D2 NEXTOCT =$0984 ? NEXTOCT2 =$098D NEXTOCTT =$0F12 NOFINMVT0 =$0AC8 NOISE =$0D96 ? NOISED =$0D9F NO_CR =$120E NO_FINMVT =$0A28 ? O =$01 OKDECAL =$0927 OTHER =$0881 OTHER2 =$08A1 OU =$0F37 OUTCSW =$0DEB OUTDO =$DB5C OUTPUT =$0859 OUTSTORE =$08AA PAS_CR =$11BF PAS_MONS =$0A95 PAS_MONS2 =$0A7C PAS_MONS3 =$0A68 PEEK =$096D PEEK2 =$0EFD PIEGE =$401E POKE =$0970 POKE2 =$0EFF POSITION =$FC22 PTRGET =$DFE3 RDOS =$01 RECOP =$1018 RECOP_STRING =$12A0 REF_BIT =$F00B RELIRE =$0FA5 RELIRE2 =$0FB6 RELIRE3 =$0FBF ? RETOUR_OBJ =$1009 RETOUR_OBJ2 =$1026 RETOUR_OBJ3 =$101C RETOUR_OBJ4 =$102F ROTATION =$0820 RTNFIN =$08BF S =$11B1 SCREEN =$08C0 SCRN =$0F62 SCRN2 =$0F87 SET =$0EB1 ? SET1D =$0EBB SETEND =$0ECA SITUATION =$11B8 SMAGIE =$127B SMAGIE2 =$12BC SMAGIE3 =$12B3 SON =$1FF0 SORT_BIT =$1099 SOUND =$0D29 ? SOUNDD =$0D2C SPCPT =$0B14 SPEAK =$C030 SPELL =$D39C SPELL2 =$D3B0 SPM =$0B16 ? SPMOBIL =$0A22 SPMOBIL0 =$0A1E SPMOBIL2 =$0A45 SPMOBIL3 =$0AA8 SPMOBIL4 =$0A6F SPMVT =$0B15 SPMX =$0B8F SPMY =$0C08 SPRITE =$0E19 SPRITED =$0E2C ST2 =$121D ST3 =$122E ST4 =$1223 STOCK =$0D83 STORE_LIB =$6803 STRING =$0349 SUITE =$0843 SUITE2 =$084D SWAP_AUX =$03A0 TAKE_REF =$0B06 TESTY =$0916 ? TEST_FIN =$1028 TRT_RTN =$08B0 TRT_VAR =$11E9 TRT_VAR2 =$11F2 TRT_VARD =$11EE TXTPTR =$B8 UTOBJ =$10ED UTOBJ2 =$106C UTSPELL =$10F4 VALS =$035A VAL_ACR =$D83B VAL_ACR0 =$D86B VAL_BL =$DB9D VAL_CH =$DF92 VAL_CRT =$D55F VAL_LOC =$DA38 VAL_MAG =$DAAD VAL_MAG2 =$DB25 VAL_MO =$D416 VAL_SMAG =$DBF2 VAL_ST =$D3EC VARBIT =$10AB VAR_PREMIS =$11D5 VAR_PREMIS0 =$11CD VASY =$0866 VASY2 =$086F WAIT =$FCA8 WHERE =$0980 WINDOW =$0D0B WRITE =$08E8 X =$09 ? XMAX =$1C Y =$1A ZKEYBRD =$C010 Symbol table - numerical order: ? N =$00 ? O =$01 RDOS =$01 LS2 =$01 CPTAUX =$06 CPTL =$06 CPTX =$07 CPT2AUX =$08 X =$09 Y =$1A ? XMAX =$1C MARGEG =$20 LARGEUR =$21 MARGEH =$22 MARGEB =$23 CH =$24 CV =$25 GBASL =$26 GBASH =$27 BASL =$28 BASH =$29 BAS2L =$2A BAS2H =$2B INVFLG =$32 CSWL =$36 CSWH =$37 KSWL =$38 KSWH =$39 CURLIN =$75 CGOSUB =$B0 CHRGOT =$B7 TXTPTR =$B8 ETAT2 =$E7 STRING =$0349 VALS =$035A SWAP_AUX =$03A0 INPUT =$0806 INPUT2 =$0807 ROTATION =$0820 SUITE =$0843 SUITE2 =$084D OUTPUT =$0859 VASY =$0866 VASY2 =$086F BITJSR =$0872 OTHER =$0881 IDEM =$0893 OTHER2 =$08A1 BYE2 =$08A5 OUTSTORE =$08AA INSTORE =$08AD TRT_RTN =$08B0 RTNFIN =$08BF SCREEN =$08C0 C1 =$08CE C2 =$08D4 ? MODE =$08E1 WRITE =$08E8 AFFIC =$08F2 TESTY =$0916 AUTRECAR =$0922 OKDECAL =$0927 DECALAGE =$092F FOLLOW1 =$0940 PEEK =$096D POKE =$0970 LECPX =$0974 WHERE =$0980 CPT =$0983 NEXTOCT =$0984 ? NEXTOCT2 =$098D INCR =$0999 CALC =$09D2 DATAL =$09EC DATAH =$09ED DATA1 =$09EE DATA2 =$0A06 SPMOBIL0 =$0A1E ? SPMOBIL =$0A22 NO_FINMVT =$0A28 LESS16 =$0A3A LESS41 =$0A3D LESS76 =$0A40 SPMOBIL2 =$0A45 ? ANIM2 =$0A53 PAS_MONS3 =$0A68 SPMOBIL4 =$0A6F PAS_MONS2 =$0A7C MD AJ =$8000 ANIM1 =$0A83 PAS_MONS =$0A95 LIT_DESCR =$0A99 SPMOBIL3 =$0AA8 FINSPM =$0ABF CPT_SWAP =$0AC2 NOFINMVT0 =$0AC8 FINSPM2 =$0AD5 FINSPM3 =$0AE5 FINSPM4 =$0AE8 FINMVT0 =$0AEE KEL_TYPE? =$0AF2 IS_MONS? =$0AFC TAKE_REF =$0B06 COPSPMVT =$0B11 FILTRE =$0B12 FILTRE2 =$0B13 SPCPT =$0B14 SPMVT =$0B15 SPM =$0B16 SPMX =$0B8F SPMY =$0C08 INPUT_2 =$0C81 MACROCMD =$0C97 D1 =$0C9C D2 =$0C9E D3 =$0CAF D4 =$0CB2 D5 =$0CBE CPT2 =$0CD0 MUSIC =$0CD1 AGAIN =$0CD7 ? MUSICD =$0CEA MUS1 =$0CF1 MUS2 =$0CF4 MUS3 =$0CFB MUS4 =$0D03 FINMUS =$0D09 CPTMUS =$0D0A WINDOW =$0D0B SOUND =$0D29 ? SOUNDD =$0D2C DEBUT =$0D38 DEX1 =$0D3F DEX2 =$0D48 ? ICI =$0D58 CHANGE =$0D6B LA =$0D6F FINSOUND =$0D82 STOCK =$0D83 AD1 =$0D93 AD2 =$0D94 AD3 =$0D95 NOISE =$0D96 ? NOISED =$0D9F BCL1 =$0DAC BCL2 =$0DAF BCL3 =$0DB9 BCL4 =$0DC1 FIN_NOISE =$0DCF MODECR =$0DD0 OUTCSW =$0DEB CSWNORM =$0DF2 FOLLOW2 =$0DF6 ? MODECR2 =$0DFA FOLLOW10 =$0E09 KSWNORM =$0E10 FOLLOW3 =$0E14 SPRITE =$0E19 SPRITED =$0E2C FOLLOW4 =$0E4F FOLLOW5 =$0E60 LOAD =$0E62 ECRIT =$0E6B NBF =$0E74 FOLLOW6 =$0E84 ENDSP =$0E96 MULT =$0E97 FOLLOW7 =$0E9D FOLLOW8 =$0EAB SET =$0EB1 ? SET1D =$0EBB FOLLOW9 =$0EC4 SETEND =$0ECA CLS =$0ED4 CLS2 =$0EE1 PEEK2 =$0EFD POKE2 =$0EFF LECPX2 =$0F03 NEXTOCTT =$0F12 INCR2 =$0F1E FINCLS =$0F2B OU =$0F37 BIP =$0F4B BIP3 =$0F51 BIP2 =$0F54 SCRN =$0F62 SCRN2 =$0F87 DATA3 =$0F8D RELIRE =$0FA5 RELIRE2 =$0FB6 RELIRE3 =$0FBF GOSUB =$0FC6 ? GOLINE =$0FDA GOTO =$0FE3 MENU_CH =$0FEC LOBJ =$0FFF ? RETOUR_OBJ =$1009 RECOP =$1018 RETOUR_OBJ3 =$101C RETOUR_OBJ2 =$1026 M FAJ =$1028 ? TEST_FIN =$1028 RETOUR_OBJ4 =$102F LIB_MACROS2 =$1038 LSPELL =$1062 UTOBJ2 =$106C ENCORE_SORT =$108D SORT_BIT =$1099 VARBIT =$10AB ESPELL =$10AC ENCORE_SORT2 =$10C1 MET_BIT =$10DD UTOBJ =$10ED UTSPELL =$10F4 BCL_UTSPELL =$111B LARME =$1137 ENCORE_ARME =$1144 LIRE_ARME =$1150 AFFECTE =$116A AFFECTE2 =$116E MM =$1173 MLOC =$117C MTAC =$1185 MRES =$118E MOD_BEAST =$11A2 S =$11B1 SITUATION =$11B8 PAS_CR =$11BF VAR_PREMIS0 =$11CD VAR_PREMIS =$11D5 TRT_VAR =$11E9 TRT_VARD =$11EE TRT_VAR2 =$11F2 NO_CR =$120E END_TRT_VAR =$1214 CPT_CR =$1215 BLESSURE =$1216 ST2 =$121D ST4 =$1223 ST3 =$122E MORT =$122F LOCALISATION =$1239 CREVE =$1243 CRT2 =$124C CRT4 =$125E CRT3 =$1261 SMAGIE =$127B RECOP_STRING =$12A0 SMAGIE3 =$12B3 SMAGIE2 =$12BC DOMAGE =$12C5 MAGIE =$12F7 MAG2 =$1346 FACE =$1354 KELFACE =$1365 NEWCMD =$1376 ADRCMD =$1427 SON =$1FF0 ETAT =$1FF1 PIEGE =$401E DOMARCH =$4027 STORE_LIB =$6803 CSWDOS =$AA53 KEYBRD =$C000 ZKEYBRD =$C010 SPEAK =$C030 DATASP =$D000 CARAC =$D004 CURSOR =$D1F4 SPELL =$D39C SPELL2 =$D3B0 CHKMEM =$D3D6 VAL_ST =$D3EC VAL_MO =$D416 VAL_CRT =$D55F NEWSTT =$D7D2 VAL_ACR =$D83B VAL_ACR0 =$D86B GOTOD =$D941 ADDON =$D998 VAL_LOC =$DA38 VAL_MAG =$DAAD CRDO =$DAFB VAL_MAG2 =$DB25 OUTDO =$DB5C VAL_BL =$DB9D VAL_SMAG =$DBF2 FRMNUM =$DD67 CHECKCOM =$DEBE ERROR =$DEC9 VAL_CH =$DF92 PTRGET =$DFE3 GETBYT =$E6F8 GETADR =$E752 LIB_DESCRIPT =$F000 REF_BIT =$F00B POSITION =$FC22 WAIT =$FCA8 COUT1 =$FDF0