1 ************************* 2 * * 3 * INPUT/OUTPUT HGR CHAR * 4 * (C)1989 BY DECKARD * 5 * * 6 ************************* 7 * 8 CARAC EQU $0801 ; DEBUT DATAS CARACTERES 9 ; 10 CURSOR EQU $09F1 ; 1ER DATA DU CURSEUR (= '^') (+$1F0) 11 CARAC2 EQU $0B01 ; STOCKAGE JEU EXTRA PRESENTATION (+$300) 12 DATASP EQU $0BC1 ; STOCKAGE DATA SPRITE 13 COUT1 EQU $FDF0 14 WAIT EQU $FCA8 15 KEYBRD EQU $C000 16 ZKEYBRD EQU $C010 17 ; 18 ; 19 ; PAGE ZERO 20 ; 21 CSWL EQU $36 ; POINTE NORMALEMENT SUR COUT1 22 CSWH EQU $37 23 KSWL EQU $38 ; POINTE NORMALEMENT SUR KEYIN 24 KSWH EQU $39 25 GBASL EQU $26 26 GBASH EQU $27 27 BASL EQU $28 28 BASH EQU $29 29 BAS2L EQU $2A 30 BAS2H EQU $2B 31 CH EQU $24 32 CV EQU $25 33 INVFLG EQU $32 ; MASQUE POUR NORMAL/INVERSE 34 LARGEUR EQU $21 35 MARGEG EQU $20 36 MARGEH EQU $22 37 MARGEB EQU $23 38 XMAX EQU $1C 39 Y EQU $1A 40 X EQU $09 41 ETAT2 EQU $E7 ; ON N'UTILISE PAS SCALE 42 ; 43 ; 44 ; 45 ORG $16E1 46 ; 47 ; --------- 48 ; I N P U T 49 ; --------- 50 ; 51 * 52 * BUT: AFFICHER UN CURSEUR QUI CHANGE SANS ARRET 53 * 54 ; 55 ; 56 * ON AFFICHE LE CURSEUR 57 ; 16E1: 48 58 INPUT PHA ; MET DE COTE LE CURSEUR ACTUEL 16E2: 8C 7B 17 59 INPUT2 STY INSTORE 16E5: 8E 7C 17 60 STX INSTORE+1 16E8: A9 DE 61 LDA #$DE ; CODE ASCII DE '^' 16EA: 20 8E 17 62 JSR SCREEN 63 ; 64 * ON FAIT UNE ROTATION DE BAS EN HAUT 65 ; 16ED: AD F1 09 66 LDA CURSOR 16F0: AA 67 TAX ; SAUVEGARDE 1ER OCTET 16F1: A0 00 68 LDY #0 16F3: B9 F2 09 69 ROTATION LDA CURSOR+1,Y 16F6: 99 F1 09 70 STA CURSOR,Y 16F9: C8 71 INY 16FA: C0 07 72 CPY #7 ; ON EN FAIT 7 16FC: D0 F5 73 BNE ROTATION 16FE: 8A 74 TXA ; RECUPERE 1ER OCTET 16FF: 8D F8 09 75 STA CURSOR+7 ; ACCOMPLI LA ROTATION (1ER = DERNIER) 76 ; 77 * AFFICHAGE DES SPRITES MOBILES+GENERATEUR ALEATOIRE 78 ; 1702: 20 DA 1C 79 JSR SPMOBIL0 80 ; RESTAURE 1705: AC 7B 17 81 LDY INSTORE 1708: AE 7C 17 82 LDX INSTORE+1 83 ; 84 * CONTINUE 85 ; 170B: 20 11 17 86 JSR SUITE 170E: 4C E2 16 87 JMP INPUT2 88 ; 1711: AD 00 C0 89 SUITE LDA KEYBRD 1714: 30 05 90 BMI SUITE2 1716: A9 B0 91 LDA #$B0 1718: 4C A8 FC 92 JMP WAIT 171B: 68 93 SUITE2 PLA ; RECUPERE LE CURSEUR SAUVE 171C: 68 94 PLA ; 2 PLA EN + CAR IL Y A EUT UN JSR 171D: 68 95 PLA 171E: 91 28 96 STA (BASL),Y 1720: AD 00 C0 97 LDA KEYBRD 1723: 2C 10 C0 98 BIT ZKEYBRD 1726: 60 99 RTS 100 ; 101 ; ----------- 102 ; O U T P U T 103 ; ----------- 104 ; 105 * 106 * BUT: ECRIRE A LA FOIS SUR ECRAN TEXT ET SUR ECRAN HGR 107 * 108 ; 1727: C9 A0 109 OUTPUT CMP #$A0 ; = ESPACE 1729: 90 24 110 BCC OTHER ; POUR LES CARACTERES < A L'ESPACE 172B: 8D 78 17 111 STA OUTSTORE ; SAUVE POUR ECRAN TEXTE 172E: 8C 79 17 112 STY OUTSTORE+1 1731: 8E 7A 17 113 STX OUTSTORE+2 1734: A4 E7 114 VASY LDY ETAT2 1736: F0 05 115 BEQ VASY2 1738: 48 116 PHA 1739: 20 EF 17 117 JSR OKDECAL 173C: 68 118 PLA 173D: 20 8E 17 119 VASY2 JSR SCREEN 1740: 2C 120 BITJSR DFB #$2C ; BIT OU JSR 1741: 7E 17 121 DFB #TRT_RTN 1743: AD 78 17 122 LDA OUTSTORE ; RECUPERE POUR ECRAN TEXTE 1746: AC 79 17 123 LDY OUTSTORE+1 1749: AE 7A 17 124 LDX OUTSTORE+2 174C: 4C 73 17 125 JMP BYE2 126 ; 174F: 48 127 OTHER PHA 1750: AD 7D 17 128 LDA ETAT 1753: F0 1F 129 BEQ BYE2+1 ; SI 0 RTN ET FLECHE NON AUTORISEE 1755: 68 130 PLA 1756: C9 8D 131 CMP #$8D ; RETURN? 1758: D0 15 132 BNE OTHER2 175A: 48 133 PHA 175B: A9 20 134 LDA #$20 175D: 8D 40 17 135 STA BITJSR ; BRANCHE LE JSR 1760: 68 136 PLA ; RECUPERE ACC 1761: 8D 78 17 137 IDEM STA OUTSTORE ; SAUVE POUR ECRAN TEXTE 1764: 8C 79 17 138 STY OUTSTORE+1 1767: 8E 7A 17 139 STX OUTSTORE+2 176A: A9 A0 140 LDA #$A0 176C: 4C 34 17 141 JMP VASY 176F: C9 88 142 OTHER2 CMP #$88 ; FLECHE GAUCHE? 1771: F0 EE 143 BEQ IDEM 144 ; 145 * SAUT A LA SUBROUTINE NORMALE 146 ; 1773: 24 68 147 BYE2 BIT $68 ; FAUX BIT. C'EST : PLA 1775: 4C F0 FD 148 JMP COUT1 149 ; 1778: 00 00 00 150 OUTSTORE DFB 0,0,0 177B: 00 00 151 INSTORE DFB 0,0 177D: 00 152 ETAT DFB 0 153 ; 154 ; TRAITEMENT RETURN EN LIGNE 24 155 ; 177E: A9 2C 156 TRT_RTN LDA #$2C 1780: 8D 40 17 157 STA BITJSR ; RETABLI LE BIT 1783: 20 DE 17 158 JSR TESTY 1786: A5 E7 159 LDA ETAT2 1788: F0 03 160 BEQ RTNFIN 178A: 4C EF 17 161 JMP OKDECAL 178D: 60 162 RTNFIN RTS 163 ; 164 ; 165 ; 166 ; AFFICHE SUR ECRAN HGR 167 ; 178E: 38 168 SCREEN SEC 178F: E9 A0 169 SBC #$A0 ; OBTIENT LE NUMERO DU CARACTERE 1791: A0 00 170 LDY #$00 1793: 84 27 171 STY GBASH 1795: 0A 172 ASL 1796: 0A 173 ASL 1797: 26 27 174 ROL GBASH 1799: 0A 175 ASL 179A: 26 27 176 ROL GBASH 179C: 69 01 177 C1 ADC #CARAC 17A4: 85 27 181 STA GBASH 182 ; 17A6: 18 183 CLC 17A7: A5 28 184 LDA BASL 17A9: 65 24 185 ADC CH ; POSITION HORIZONTALE DU CURSEUR 17AB: 85 2A 186 STA BAS2L 17AD: A5 29 187 LDA BASH 17AF: 69 1C 188 MODE ADC #$1C ; POUR AVOIR HGR 17B1: 85 2B 189 STA BAS2H 190 ; 191 ; ECRITURE 192 ; 17B3: B1 26 193 WRITE LDA (GBASL),Y ; DATA CARAC 17B5: A6 32 194 LDX INVFLG 17B7: E0 FF 195 CPX #$FF 17B9: F0 02 196 BEQ AFFIC 17BB: 49 FF 197 EOR #$FF ; AFFICHE EN INVERSE 17BD: 91 2A 198 AFFIC STA (BAS2L),Y 17BF: 18 199 CLC 17C0: A5 2A 200 LDA BAS2L 17C2: 69 FF 201 ADC #$FF 17C4: 85 2A 202 STA BAS2L ; POSITIONNE POUR OCTET SUIVANT 17C6: A5 2B 203 LDA BAS2H 17C8: 69 03 204 ADC #$03 17CA: 85 2B 205 STA BAS2H 17CC: C8 206 INY 17CD: C0 08 207 CPY #$08 ; A-T-ON FAIT LES 8 OCTETS (= 1 CARACTERE) 17CF: D0 E2 208 BNE WRITE 209 ; 210 * OPERATIONS VIRTUELLES DE TESTS POUR DECALAGE 211 ; 17D1: AD 78 17 212 LDA OUTSTORE 17D4: 90 14 213 BCC AUTRECAR ; AUTRES TOUCHES ENFONCEES 17D6: A4 24 214 LDY CH ; TEST DE X 17D8: C8 215 INY 17D9: C4 21 216 CPY LARGEUR 17DB: 10 01 217 BPL TESTY 17DD: 60 218 RTS 17DE: A4 25 219 TESTY LDY CV ; CHANGEMENT DE LIGNE 17E0: C8 220 INY 17E1: C4 23 221 CPY MARGEB 17E3: D0 F8 222 BNE TESTY-1 ; ON EST PAS EN BAS DE L'ECRAN 223 ; 17E5: A9 01 224 LDA #1 ; ON FORCE L'ETAT2 A 1 17E7: 85 E7 225 STA ETAT2 17E9: 60 226 RTS 227 ; 228 ; 17EA: C9 8D 229 AUTRECAR CMP #$8D ; RETURN? 17EC: F0 F0 230 BEQ TESTY 17EE: 60 231 RTS 232 ; 233 ; 17EF: 20 FA 17 234 OKDECAL JSR DECALAGE 17F2: A9 00 235 LDA #0 ; RETABLI ETAT POUR NE PLUS DECALER 17F4: 85 E7 236 STA ETAT2 17F6: 60 237 RTS 238 ; 17F7: EA EA EA 239 DS 3,$EA 240 ; 241 ; DECALAGE 242 ; 17FA: A5 22 243 DECALAGE LDA MARGEH 17FC: 85 1A 244 STA Y 17FE: A5 20 245 LDA MARGEG 1800: 85 09 246 STA X 1802: A9 00 247 LDA #$00 ; POSITION DU CURSEUR TOUJOURS NULLE 1804: 85 24 248 STA CH 1806: A5 21 249 LDA LARGEUR 1808: 8D 40 18 250 STA LECPX+1 180B: 20 9D 18 251 FOLLOW1 JSR CALC 180E: AD B7 18 252 LDA DATAL 1811: 8D 3C 18 253 STA POKE+1 1814: AD B8 18 254 LDA DATAH 1817: 8D 3D 18 255 STA POKE+2 181A: E6 1A 256 INC Y 181C: 20 9D 18 257 JSR CALC 181F: AD B7 18 258 LDA DATAL 1822: 8D 39 18 259 STA PEEK+1 1825: AD B8 18 260 LDA DATAH 1828: 8D 3A 18 261 STA PEEK+2 262 ; BOUCLE 182B: A9 00 263 LDA #$00 182D: 8D 4E 18 264 STA CPT 1830: 20 36 18 265 JSR PEEK-2 1833: 4C 64 18 266 JMP INCR 1836: A2 00 267 LDX #$00 1838: BD FF FF 268 PEEK LDA $FFFF,X ; LDA $????,X 183B: 9D FF FF 269 POKE STA $FFFF,X ; STA $????,X 183E: E8 270 INX 183F: E0 00 271 LECPX CPX #$00 ; CPX #$?? 1841: D0 F5 272 BNE PEEK 1843: EE 4E 18 273 INC CPT 1846: AC 4E 18 274 LDY CPT 1849: C0 08 275 CPY #$08 ; LES 8 OCTETS SONT AFFICHES? 184B: D0 02 276 WHERE BNE NEXTOCT 184D: 60 277 RTS 278 ; 184E: 00 279 CPT DFB 0 280 ; LIGNE D'OCTETS SUIVANTE 184F: 18 281 NEXTOCT CLC 1850: AD 3A 18 282 LDA PEEK+2 1853: 69 04 283 ADC #$04 1855: 8D 3A 18 284 STA PEEK+2 1858: 18 285 NEXTOCT2 CLC 1859: AD 3D 18 286 LDA POKE+2 185C: 69 04 287 ADC #$04 185E: 8D 3D 18 288 STA POKE+2 1861: 4C 36 18 289 JMP PEEK-2 ; FAIT UNE AUTRE LIGNE D'OCTETS 290 ; INCREMENTE LIGNE DE CARACTERES 1864: A5 23 291 INCR LDA MARGEB 1866: AA 292 TAX 1867: CA 293 DEX 1868: E4 1A 294 CPX Y 186A: D0 9F 295 BNE FOLLOW1 296 ; AFFICHE DES BLANCS SUR LA DERNIERE LIGNE 186C: A9 EA 297 LDA #$EA ; ON MET UN NOP 186E: 8D 38 18 298 STA PEEK 1871: A9 A9 299 LDA #$A9 ; LDA #$00 1873: 8D 39 18 300 STA PEEK+1 1876: A9 00 301 LDA #$00 1878: 8D 3A 18 302 STA PEEK+2 187B: 8D 4E 18 303 STA CPT 187E: AD B7 18 304 LDA DATAL ; REPOSITIONNE SUR LA 1ERE LIGNE D'OCTETS 1881: 8D 3C 18 305 STA POKE+1 1884: AD B8 18 306 LDA DATAH 1887: 8D 3D 18 307 STA POKE+2 308 ; EMPECHE L'INCREMENTATION DU LDA $????,X 188A: A9 0B 309 LDA #$0B ; SAUTE DIRECTEMENT EN NEXTOCT2 188C: 8D 4C 18 310 STA WHERE+1 188F: 20 36 18 311 JSR PEEK-2 ; REMPLISSAGE DE BLANCS 312 ; RESTAURE LE LDA $????,X 1892: A9 BD 313 LDA #$BD 1894: 8D 38 18 314 STA PEEK 315 ; RESTAURE LE BNE NEXTOCT 1897: A9 02 316 LDA #$02 1899: 8D 4C 18 317 STA WHERE+1 189C: 60 318 RTS 319 ; 320 ; CALCUL LA POSITION ECRAN 321 ; 189D: A6 1A 322 CALC LDX Y 189F: BD B9 18 323 LDA DATA1,X 18A2: 48 324 PHA 18A3: BD D1 18 325 LDA DATA2,X 18A6: 45 E6 326 EOR $E6 ; PAGE ECRAN ($20 OU $40) 18A8: A8 327 TAY 18A9: 18 328 CLC 18AA: 68 329 PLA 18AB: 65 09 330 ADC X 18AD: 8D B7 18 331 STA DATAL 18B0: 98 332 TYA 18B1: 69 00 333 ADC #$00 ; RETENUES 18B3: 8D B8 18 334 STA DATAH 18B6: 60 335 RTS 336 ; 18B7: 00 337 DATAL DFB 0 18B8: 00 338 DATAH DFB 0 339 ; 340 ; DATAS GRAPHIQUES 341 ; 18B9: 00 80 00 342 DATA1 HEX 0080008000800080 18BC: 80 00 80 00 80 18C1: 28 A8 28 343 HEX 28A828A828A828A8 18C4: A8 28 A8 28 A8 18C9: 50 D0 50 344 HEX 50D050D050D050D0 18CC: D0 50 D0 50 D0 18D1: 00 00 01 345 DATA2 HEX 0000010102020303 18D4: 01 02 02 03 03 18D9: 00 00 01 346 HEX 0000010102020303 18DC: 01 02 02 03 03 18E1: 00 00 01 347 HEX 0000010102020303 18E4: 01 02 02 03 03 348 ; 18E9: EA EA EA 349 DS 7,$EA 18EC: EA EA EA EA 350 ; 351 ; 352 *********************** 353 * * 354 * COMMANDES ANNEXES & * 355 * (C)1989 BY DECKARD * 356 * * 357 *********************** 358 * 359 ; 360 ERROR EQU $DEC9 ; SYNTAX ERROR 361 ADDON EQU $D998 362 GETBYT EQU $E6F8 363 CHECKCOM EQU $DEBE 364 SPEAK EQU $C030 365 CPTL EQU $06 366 CPTX EQU $07 367 ; 368 ; 18F0: A2 00 369 LDX #$00 18F2: 8E 4E 18 370 STX CPT 18F5: A0 00 371 D1 LDY #$00 18F7: BD 2A 19 372 D2 LDA NEWCMD,X 18FA: F0 1B 373 BEQ D5 18FC: C9 FF 374 CMP #$FF 18FE: F0 08 375 BEQ D3 1900: D1 B8 376 CMP ($B8),Y 1902: D0 07 377 BNE D4 1904: C8 378 INY 1905: E8 379 INX 1906: D0 EF 380 BNE D2 1908: 4C C9 DE 381 D3 JMP ERROR 190B: E8 382 D4 INX 190C: BD 2A 19 383 LDA NEWCMD,X 190F: D0 FA 384 BNE D4 1911: E8 385 INX 1912: EE 4E 18 386 INC CPT 1915: D0 DE 387 BNE D1 1917: 20 98 D9 388 D5 JSR ADDON ; Y=Y+1 191A: 0E 4E 18 389 ASL CPT 191D: AE 4E 18 390 LDX CPT 1920: BD 66 19 391 LDA ADRCMD+1,X 1923: 48 392 PHA 1924: BD 65 19 393 LDA ADRCMD,X 1927: 48 394 PHA 1928: 60 395 RTS 396 ; 1929: 00 397 CPT2 DFB 0 398 ; 399 * 400 * LISTE DES COMMANDES 401 * 402 ; 403 NEWCMD ; &MUSIC 192A: 4D 55 53 404 HEX 4D5553494300 192D: 49 43 00 405 ; &SOUND 1930: 53 4F 55 406 HEX 534F554E4400 1933: 4E 44 00 407 ; &WINDOW 1936: 57 49 4E 408 HEX 57494E444F5700 1939: 44 4F 57 00 409 ; &NOISE 193D: 4E 4F 49 410 HEX 4E4F49534500 1940: 53 45 00 411 ; &SCRN 1943: 53 43 52 412 HEX 5343524E00 1946: 4E 00 413 ; &SPRITE 1948: 53 50 52 414 HEX 53505249544500 194B: 49 54 45 00 415 ; &SET 194F: 53 45 54 416 HEX 53455400 1952: 00 417 ; &CLS 1953: 43 4C 53 418 HEX 434C5300 1956: 00 419 ; &CADRE 1957: 43 41 44 420 HEX 434144524500 195A: 52 45 00 421 ; &RELIRE 195D: 52 45 4C 422 HEX 52454C49524500 1960: 49 52 45 00 423 ; 424 ; ERROR 1964: FF 425 HEX FF 426 ; 427 * 428 * LISTE DES ADRESSES 429 * 430 ; 431 ADRCMD ; &MUSIC 1965: 78 19 432 DFB #MUSIC 433 ; &SOUND 1967: CB 19 434 DFB #SOUND 435 ; &WINDOW 1969: AD 19 436 DFB #WINDOW 437 ; &NOISE 196B: 33 1A 438 DFB #NOISE 439 ; &SCRN 196D: 68 1A 440 DFB #SCRN 441 ; &SPRITE 196F: A2 1A 442 DFB #SPRITE 443 ; &SET 1971: 34 1B 444 DFB #SET 445 ; &CLS 1973: 4D 1B 446 DFB #CLS 447 ; &CADRE 1975: B0 1B 448 DFB #CADRE 449 ; &RELIRE 1977: B8 1C 450 DFB #RELIRE 451 ; 452 * 453 * MUSIQUE 454 * 455 ; 1979: 20 F8 E6 456 MUSIC JSR GETBYT ; LIRE LE NOMBRE DE NOTE 197C: 8E AD 19 457 STX CPTMUS 197F: AD AD 19 458 AGAIN LDA CPTMUS 1982: F0 28 459 BEQ FINMUS 1984: 20 BE DE 460 JSR CHECKCOM 1987: 20 F8 E6 461 JSR GETBYT ; LECTURE SON 198A: 86 EC 462 STX $EC 198C: 20 BE DE 463 JSR CHECKCOM 198F: 20 F8 E6 464 JSR GETBYT ; LECTURE DUREE 1992: 86 ED 465 MUSICD STX $ED 1994: AD 30 C0 466 MUS1 LDA $C030 1997: 88 467 MUS2 DEY 1998: D0 04 468 BNE MUS3 199A: C6 ED 469 DEC $ED 199C: F0 08 470 BEQ MUS4 199E: CA 471 MUS3 DEX 199F: D0 F6 472 BNE MUS2 19A1: A6 EC 473 LDX $EC 19A3: 4C 94 19 474 JMP MUS1 19A6: CE AD 19 475 MUS4 DEC CPTMUS 19A9: 4C 7F 19 476 JMP AGAIN 19AC: 60 477 FINMUS RTS 19AD: 00 478 CPTMUS DFB 0 479 ; 480 * 481 * WINDOW 482 * 483 ; 19AE: 20 F8 E6 484 WINDOW JSR GETBYT 19B1: 86 20 485 STX $20 19B3: 20 BE DE 486 JSR CHECKCOM 19B6: 20 F8 E6 487 JSR GETBYT 19B9: 86 21 488 STX $21 19BB: 20 BE DE 489 JSR CHECKCOM 19BE: 20 F8 E6 490 JSR GETBYT 19C1: 86 22 491 STX $22 19C3: 20 BE DE 492 JSR CHECKCOM 19C6: 20 F8 E6 493 JSR GETBYT 19C9: 86 23 494 STX $23 19CB: 60 495 RTS 496 ; 497 * 498 * SOUND 499 * 500 ; 19CC: 20 21 1A 501 SOUND JSR STOCK 19CF: A9 01 502 SOUNDD LDA #$01 19D1: 8D 32 1A 503 STA AD2 19D4: A0 00 504 LDY #$00 505 ; 19D6: AD 33 1A 506 DEBUT LDA AD3 19D9: 48 507 PHA 19DA: AE 31 1A 508 LDX AD1 19DD: CA 509 DEX1 DEX 19DE: D0 FD 510 BNE DEX1 19E0: 2C 30 C0 511 BIT SPEAK 19E3: AE 32 1A 512 LDX AD2 19E6: CA 513 DEX2 DEX 19E7: D0 FD 514 BNE DEX2 19E9: 2C 30 C0 515 BIT SPEAK 19EC: 68 516 PLA 19ED: AA 517 TAX 19EE: CA 518 DEX 19EF: 8A 519 TXA 19F0: D0 E7 520 BNE DEBUT+3 19F2: C0 01 521 CPY #$01 19F4: F0 17 522 BEQ LA 523 ; 19F6: AD 32 1A 524 ICI LDA AD2 19F9: 18 525 CLC 19FA: 69 01 526 ADC #$01 19FC: C9 1B 527 CMP #$1B 19FE: F0 09 528 BEQ CHANGE 1A00: 8D 32 1A 529 STA AD2 1A03: CE 31 1A 530 DEC AD1 1A06: 4C D6 19 531 JMP DEBUT 1A09: C8 532 CHANGE INY 1A0A: 4C D6 19 533 JMP DEBUT 534 ; 1A0D: AD 32 1A 535 LA LDA AD2 1A10: 38 536 SEC 1A11: E9 01 537 SBC #$01 1A13: C9 01 538 CMP #$01 1A15: F0 09 539 BEQ FINSOUND 1A17: 8D 32 1A 540 STA AD2 1A1A: EE 31 1A 541 INC AD1 1A1D: 4C D6 19 542 JMP DEBUT 543 ; 1A20: 60 544 FINSOUND RTS 545 ; 1A21: 20 F8 E6 546 STOCK JSR GETBYT 1A24: 8E 31 1A 547 STX AD1 1A27: 20 BE DE 548 JSR CHECKCOM 1A2A: 20 F8 E6 549 JSR GETBYT 1A2D: 8E 33 1A 550 STX AD3 1A30: 60 551 RTS 552 ; 1A31: 00 553 AD1 DFB $00 1A32: 00 554 AD2 DFB $00 1A33: 00 555 AD3 DFB $00 556 ; 557 * 558 * NOISE 559 * 560 ; 561 ; NB EN AD1 562 ; COMPT EN AD3 563 ; FREQ EN AD2 564 ; 1A34: 20 21 1A 565 NOISE JSR STOCK 1A37: 20 BE DE 566 JSR CHECKCOM 1A3A: 20 F8 E6 567 JSR GETBYT 1A3D: 8E 32 1A 568 NOISED STX AD2 569 ; 1A40: A9 00 570 LDA #0 1A42: 8D 29 19 571 STA CPT2 572 ; 1A45: AE 32 1A 573 BCL1 LDX AD2 1A48: AD 29 19 574 BCL2 LDA CPT2 1A4B: 6D 33 1A 575 ADC AD3 1A4E: 8D 29 19 576 STA CPT2 1A51: A8 577 TAY 1A52: 88 578 BCL3 DEY 1A53: D0 FD 579 BNE BCL3 1A55: AD 30 C0 580 LDA SPEAK 1A58: 8A 581 TXA 1A59: A8 582 TAY 1A5A: 88 583 BCL4 DEY 1A5B: D0 FD 584 BNE BCL4 1A5D: AD 30 C0 585 LDA SPEAK 1A60: CA 586 DEX 1A61: D0 E5 587 BNE BCL2 1A63: CE 31 1A 588 DEC AD1 1A66: D0 DD 589 BNE BCL1 1A68: 60 590 RTS 591 ; 592 * 593 * SCRN 594 * 595 ; 1A69: A9 00 596 SCRN LDA #0 ; TESTEUR DE DECALAGE 1A6B: 85 E7 597 STA ETAT2 1A6D: 20 21 1A 598 JSR STOCK ; LECTURE DES DONNEES 599 ; BRANCHE CSWL/CSWH 1A70: AD 31 1A 600 LDA AD1 1A73: F0 07 601 BEQ CSWNORM 1A75: A9 27 602 LDA #OUTPUT 1A79: 4C 80 1A 604 JMP FOLLOW2 1A7C: A9 F0 605 CSWNORM LDA #$F0 1A7E: A2 FD 606 LDX #$FD 1A80: 85 36 607 FOLLOW2 STA CSWL 1A82: 86 37 608 STX CSWH 1A84: AE 33 1A 609 LDX AD3 1A87: F0 11 610 BEQ KSWNORM 1A89: CA 611 DEX 1A8A: F0 07 612 BEQ FOLLOW10 1A8C: A9 5F 613 LDA #INPUT_2 1A90: 4C 9E 1A 615 JMP FOLLOW3 1A93: A9 E1 616 FOLLOW10 LDA #INPUT 1A97: 4C 9E 1A 618 JMP FOLLOW3 1A9A: A9 1B 619 KSWNORM LDA #$1B 1A9C: A2 FD 620 LDX #$FD 1A9E: 85 38 621 FOLLOW3 STA KSWL 1AA0: 86 39 622 STX KSWH 1AA2: 60 623 RTS 624 ; 625 * 626 * SPRITE 627 * 628 ; 1AA3: 20 21 1A 629 SPRITE JSR STOCK 1AA6: 20 BE DE 630 JSR CHECKCOM 1AA9: 20 F8 E6 631 JSR GETBYT 1AAC: 86 1A 632 STX Y 1AAE: AD 33 1A 633 LDA AD3 1AB1: 85 09 634 STA X 635 ; NO SPRITE*(4*8) 1AB3: AD 31 1A 636 LDA AD1 1AB6: 85 EC 637 SPRITED STA $EC 1AB8: A9 20 638 LDA #32 1ABA: 85 ED 639 STA $ED 1ABC: 20 1B 1B 640 JSR MULT 641 ; +DEBUT DATA SPRITE 1ABF: 18 642 CLC 1AC0: A5 EF 643 LDA $EF ; RESULTAT(-) 1AC2: 69 C1 644 ADC #DATASP 1ACB: 8D EE 1A 648 STA LOAD+2 649 ; 1ACE: A9 00 650 LDA #0 1AD0: 85 06 651 STA CPTL ; ON SE POSITIONNE POUR LE BLOC (=2 CARAC) 1AD2: 85 07 652 STA CPTX ; COMPTEUR LECTURE DATA SPRITE 1AD4: A9 10 653 LDA #16 1AD6: 8D F9 1A 654 STA NBF+1 655 ; 1AD9: 20 9D 18 656 FOLLOW4 JSR CALC 1ADC: AD B7 18 657 LDA DATAL 1ADF: 8D F0 1A 658 STA ECRIT+1 1AE2: AD B8 18 659 LDA DATAH 1AE5: 8D F1 1A 660 STA ECRIT+2 1AE8: A6 07 661 LDX CPTX 662 ; 1AEA: A0 00 663 FOLLOW5 LDY #$00 1AEC: BD FF FF 664 LOAD LDA $FFFF,X ; LDA $????,X 1AEF: 99 FF FF 665 ECRIT STA $FFFF,Y ; STA $????,Y 1AF2: E8 666 INX 1AF3: C8 667 INY 1AF4: C0 02 668 CPY #$02 1AF6: D0 F4 669 BNE LOAD 1AF8: E0 10 670 NBF CPX #16 1AFA: F0 0C 671 BEQ FOLLOW6 672 ; +$400 POUR LIGNE SUIVANTE 1AFC: 18 673 CLC 1AFD: AD F1 1A 674 LDA ECRIT+2 1B00: 69 04 675 ADC #$04 1B02: 8D F1 1A 676 STA ECRIT+2 1B05: 4C EA 1A 677 JMP FOLLOW5 678 ; 1B08: E6 06 679 FOLLOW6 INC CPTL 1B0A: A5 06 680 LDA CPTL 1B0C: C9 02 681 CMP #$02 1B0E: F0 0A 682 BEQ ENDSP ; ON A ECRIT 2 BLOC L'1 AU DESSUS DE L'AUTRE 683 ; 1B10: 86 07 684 STX CPTX 1B12: E6 1A 685 INC Y ; POUR ECRIRE LE SECOND BLOC 1B14: 0E F9 1A 686 ASL NBF+1 1B17: 4C D9 1A 687 JMP FOLLOW4 ; RECOMMENCE PR 2EME BLOC 688 ; 1B1A: 60 689 ENDSP RTS ; FIN AFFICHAGE SPRITE 690 ; 691 * 692 * MODULE MULTIPLICATION 693 * 694 ; 1B1B: A9 00 695 MULT LDA #$00 1B1D: 85 EE 696 STA $EE 1B1F: A2 08 697 LDX #$08 1B21: 0A 698 FOLLOW7 ASL 1B22: 26 EE 699 ROL $EE 1B24: 06 ED 700 ASL $ED 1B26: 90 07 701 BCC FOLLOW8 1B28: 18 702 CLC 1B29: 65 EC 703 ADC $EC 1B2B: 90 02 704 BCC FOLLOW8 1B2D: E6 EE 705 INC $EE 1B2F: CA 706 FOLLOW8 DEX 1B30: D0 EF 707 BNE FOLLOW7 1B32: 85 EF 708 STA $EF 1B34: 60 709 RTS 710 ; 711 * 712 * SET 713 * 714 ; 1B35: 20 F8 E6 715 SET JSR GETBYT 1B38: E0 01 716 CPX #$01 1B3A: D0 07 717 BNE FOLLOW9 718 ; BRANCHE SUR L'EXTRA SET 1B3C: A9 01 719 SET1D LDA #CARAC2 1B40: 4C 47 1B 721 JMP SETEND 722 ; MET LE SET NORMAL 1B43: A9 01 723 FOLLOW9 LDA #CARAC 1B47: 8D 9D 17 725 SETEND STA C1+1 1B4A: 8E A3 17 726 STX C2+1 1B4D: 60 727 RTS 728 ; 729 * 730 * &CLS 731 * 732 ; 1B4E: A5 22 733 CLS LDA MARGEH 1B50: 85 1A 734 STA Y 1B52: A5 20 735 LDA MARGEG 1B54: 85 09 736 STA X 1B56: A5 21 737 LDA LARGEUR 1B58: 8D 7E 1B 738 STA LECPX2+1 1B5B: 20 9D 18 739 CLS2 JSR CALC 1B5E: AD B7 18 740 LDA DATAL 1B61: 8D 7A 1B 741 STA POKE2+1 1B64: AD B8 18 742 LDA DATAH 1B67: 8D 7B 1B 743 STA POKE2+2 1B6A: A9 00 744 LDA #0 1B6C: 8D 4E 18 745 STA CPT 1B6F: 20 75 1B 746 JSR PEEK2-2 1B72: 4C 98 1B 747 JMP INCR2 1B75: A2 00 748 LDX #0 1B77: A9 00 749 PEEK2 LDA #0 1B79: 9D FF FF 750 POKE2 STA $FFFF,X ; STA $????,X 1B7C: E8 751 INX 1B7D: E0 00 752 LECPX2 CPX #$00 ; CPX #$?? 1B7F: D0 F6 753 BNE PEEK2 1B81: EE 4E 18 754 INC CPT 1B84: AC 4E 18 755 LDY CPT 1B87: C0 08 756 CPY #$08 1B89: D0 01 757 BNE NEXTOCTT 1B8B: 60 758 RTS 759 ; 1B8C: 18 760 NEXTOCTT CLC 1B8D: AD 7B 1B 761 LDA POKE2+2 1B90: 69 04 762 ADC #$04 1B92: 8D 7B 1B 763 STA POKE2+2 1B95: 4C 75 1B 764 JMP PEEK2-2 765 ; 1B98: A5 23 766 INCR2 LDA MARGEB 1B9A: AA 767 TAX 1B9B: CA 768 DEX 1B9C: E4 1A 769 CPX Y 1B9E: F0 05 770 BEQ FINCLS 1BA0: E6 1A 771 INC Y 1BA2: 4C 5B 1B 772 JMP CLS2 1BA5: A9 00 773 FINCLS LDA #0 1BA7: 85 24 774 STA CH 1BA9: A5 22 775 LDA MARGEH 1BAB: 85 25 776 STA CV 1BAD: 20 22 FC 777 JSR POSITION 1BB0: 60 778 RTS 779 ; 780 * 781 * &CADRE 782 * 783 ; 784 HCLR EQU $F3F2 ; EFFACE ECRAN GRAPHIQUE (FOND NOIR) 785 HOME EQU $FC58 786 OUTDO EQU $DB5C 787 STROUT EQU $DB3A 788 POSITION EQU $FC22 789 ; 790 ; 1BB1: 20 3C 1B 791 CADRE JSR SET1D ; BRANCHE LE JEU DE CARACTERES ANNEXE 1BB4: 20 58 FC 792 JSR HOME 1BB7: 2C 51 C0 793 BIT $C051 ; ON PASSE EN TXT POUR PAS VOIR L'EFFACEMENT 1BBA: 20 F2 F3 794 JSR HCLR ; EFFACE ECRAN HGR 1BBD: 2C 50 C0 795 BIT $C050 ; REPASSE EN MODE GRAPHIQUE 1BC0: 2C 54 C0 796 BIT $C054 1BC3: 2C 57 C0 797 BIT $C057 1BC6: 2C 52 C0 798 BIT $C052 799 ; 800 ; ECRITURE DU CADRE 801 ; 1BC9: A9 00 802 LDA #0 1BCB: 85 24 803 STA CH 1BCD: 85 25 804 STA CV 1BCF: 20 22 FC 805 JSR POSITION 1BD2: A9 66 806 LDA #TRAIT_1 1BD6: 20 3A DB 808 JSR STROUT 1BD9: A9 18 809 LDA #24 1BDB: 85 24 810 STA CH 1BDD: A9 07 811 LDA #7 1BDF: 85 25 812 STA CV 1BE1: 20 22 FC 813 JSR POSITION 1BE4: A9 A8 814 LDA #TRAIT_3 1BE8: 20 3A DB 816 JSR STROUT 1BEB: A9 00 817 LDA #0 1BED: 85 24 818 STA CH 1BEF: A9 17 819 LDA #23 1BF1: 85 25 820 STA CV 1BF3: 20 22 FC 821 JSR POSITION 1BF6: A9 8F 822 LDA #TRAIT_2 1BFA: 20 3A DB 824 JSR STROUT 825 ; AFFICHE TRAITS VERTICAUX CADRE PERSO 1BFD: A9 18 826 LDA #24 1BFF: A2 A4 827 LDX #$A4 ; '$' 1C01: 20 51 1C 828 JSR MODPRES 1C04: A9 27 829 LDA #39 1C06: A2 A3 830 LDX #$A3 ; '#' 1C08: 20 51 1C 831 JSR MODPRES 832 ; TRAITS VERTICAUX CADRE ECRAN 1C0B: A9 0B 833 LDA #11 1C0D: 8D 50 1C 834 STA CPTPRES 1C10: A9 01 835 LDA #1 1C12: 85 25 836 STA CV 1C14: A9 00 837 PRESBCL LDA #0 1C16: 85 24 838 STA CH 1C18: 20 22 FC 839 JSR POSITION 1C1B: A2 AC 840 LDX #$AC ; ',' 1C1D: A0 AD 841 LDY #$AD ; '-' 1C1F: 8A 842 TXA 1C20: 20 5C DB 843 JSR OUTDO 1C23: E6 25 844 INC CV 1C25: C6 24 845 DEC CH 1C27: 20 22 FC 846 JSR POSITION 1C2A: 98 847 TYA 1C2B: 20 5C DB 848 JSR OUTDO 1C2E: C6 25 849 DEC CV 1C30: A9 17 850 LDA #23 1C32: 85 24 851 STA CH 1C34: 20 22 FC 852 JSR POSITION 1C37: 98 853 TYA 1C38: 20 5C DB 854 JSR OUTDO 1C3B: E6 25 855 INC CV 1C3D: C6 24 856 DEC CH 1C3F: 20 22 FC 857 JSR POSITION 1C42: 8A 858 TXA 1C43: 20 5C DB 859 JSR OUTDO 1C46: E6 25 860 INC CV 1C48: CE 50 1C 861 DEC CPTPRES 1C4B: D0 C7 862 BNE PRESBCL 1C4D: 4C 43 1B 863 JMP FOLLOW9 ; RETABLIT JEU CARAC NORMAL+FIN 864 ; 1C50: 00 865 CPTPRES DFB 0 866 ; 867 ; 868 ; 1C51: 85 24 869 MODPRES STA CH 1C53: A0 06 870 LDY #6 1C55: 48 871 CONTPRES PHA 1C56: 84 25 872 STY CV 1C58: 20 22 FC 873 JSR POSITION 1C5B: 8A 874 TXA 1C5C: 20 5C DB 875 JSR OUTDO 1C5F: 68 876 PLA 1C60: 85 24 877 STA CH 1C62: 88 878 DEY 1C63: D0 F0 879 BNE CONTPRES 1C65: 60 880 RTS 881 ; 882 ; 1C66: A8 A9 A9 883 TRAIT_1 ASC "()))))))01234567*******+ !!!!!!!!!!!!!!&" 1C69: A9 A9 A9 A9 A9 B0 B1 B2 1C71: B3 B4 B5 B6 B7 AA AA AA 1C79: AA AA AA AA AB A0 A1 A1 1C81: A1 A1 A1 A1 A1 A1 A1 A1 1C89: A1 A1 A1 A1 A6 1C8E: 00 884 DFB 0 1C8F: AE A9 A9 885 TRAIT_2 ASC ".)))))))))))***********/" 1C92: A9 A9 A9 A9 A9 A9 A9 A9 1C9A: A9 AA AA AA AA AA AA AA 1CA2: AA AA AA AA AF 1CA7: 00 886 DFB 0 1CA8: A2 887 TRAIT_3 DFB $A2 1CA9: A7 A7 A7 888 ASC "''''''''''''''%" 1CAC: A7 A7 A7 A7 A7 A7 A7 A7 1CB4: A7 A7 A7 A5 1CB8: 00 889 DFB 0 890 ; 891 ; &RELIRE 892 ; 1CB9: 20 67 DD 893 RELIRE JSR $DD67 1CBC: 20 52 E7 894 JSR $E752 1CBF: 18 895 CLC 1CC0: 20 1A D6 896 JSR $D61A 1CC3: B0 05 897 BCS RELIRE2 1CC5: A2 5A 898 LDX #$5A 1CC7: 4C 12 D4 899 JMP $D412 900 ; 1CCA: A5 9B 901 RELIRE2 LDA $9B 1CCC: E9 01 902 SBC #$01 1CCE: A4 9C 903 LDY $9C 1CD0: B0 01 904 BCS RELIRE3 1CD2: 88 905 DEY 1CD3: 85 7D 906 RELIRE3 STA $7D 1CD5: 84 7E 907 STY $7E 1CD7: 4C B7 00 908 JMP $00B7 909 ; 910 ; 911 ; 912 ************************************************** 913 * 914 * MISE EN MOUVEMENT DES SPRITES MOBILES 915 * 916 ; 1CDA: C6 4E 917 SPMOBIL0 DEC $4E 1CDC: E6 4F 918 INC $4F 919 ; 1CDE: AE 2F 1D 920 SPMOBIL LDX SPMVT 1CE1: F0 47 921 BEQ FINMVT ; PAS DE SPRITE EN MOUVEMENT 1CE3: 8E 30 1D 922 STX COPSPMVT ; SAUVEGARDE COMME COMPTEUR 923 ; 1CE6: AE 30 1D 924 SPMOBIL2 LDX COPSPMVT 1CE9: F0 26 925 BEQ FINSPM ; ON A FAIT TOUS LES SPRITES 1CEB: AD 31 1D 926 LDA FILTRE 1CEE: F0 09 927 BEQ SPMOBIL3 ; FILTRE: (=0 SI SPRITE NORMAL/=1 PR COMPLEM.) 1CF0: BD 32 1D 928 LDA SPM-1,X ; PRENDS LE NUMERO DU SPRITE 1CF3: 18 929 CLC 1CF4: 69 1E 930 ADC #$1E ; +30 POUR AVOIR LE COMPLEMENTAIRE 1CF6: 4C FC 1C 931 JMP SPMOBIL4 1CF9: BD 32 1D 932 SPMOBIL3 LDA SPM-1,X 1CFC: 48 933 SPMOBIL4 PHA 1CFD: BD 96 1D 934 LDA SPMX-1,X ; PRENDS COORDONNEE X DU SPRITE A POKER 1D00: 85 09 935 STA X 1D02: BD FA 1D 936 LDA SPMY-1,X ; PRENDS COORDONNEE Y DU SPRITE A POKER 1D05: 85 1A 937 STA Y 1D07: 68 938 PLA ; RECUPERE LE NUMERO DU SPRITE 1D08: 20 B6 1A 939 JSR SPRITED ; AFFICHE SPRITE 1D0B: CE 30 1D 940 DEC COPSPMVT ; PASSE AU SPRITE PRECEDENT 1D0E: 4C E6 1C 941 JMP SPMOBIL2 ; ON RECOMMENCE 942 ; 1D11: AD 32 1D 943 FINSPM LDA SPCPT ; COMPTEUR (0 A 3:FILTRE NON MODIFIE/4:MODIF) 1D14: C9 03 944 CMP #$03 1D16: D0 13 945 BNE FINMVT0 1D18: A9 00 946 LDA #0 ; REPOSITIONNE COMPTEUR 1D1A: 8D 32 1D 947 STA SPCPT 1D1D: AD 31 1D 948 LDA FILTRE ; CHANGE ETAT DU FILTRE 1D20: F0 03 949 BEQ FINSPM2 1D22: A9 00 950 LDA #0 ; NOUVEAU FILTRE = 0 1D24: 2C 951 DFB $2C ; FAUX BIT 1D25: A9 01 952 FINSPM2 LDA #1 ; NOUVEAU FILTRE = 1 1D27: 8D 31 1D 953 STA FILTRE 1D2A: 60 954 FINMVT RTS 955 ; 1D2B: EE 32 1D 956 FINMVT0 INC SPCPT ; AUGMENTE COMPTEUR 1D2E: 60 957 RTS 958 ; 1D2F: 00 959 SPMVT DFB 0 1D30: 00 960 COPSPMVT DFB 0 1D31: 00 961 FILTRE DFB 0 1D32: 00 962 SPCPT DFB 0 963 ; 964 ; DATAS SPRITES/X/Y 965 ; 1D33: 00 00 00 966 SPM DS 100 ; 100 SPRITES ACCUEILLABLES 1D36: 00 00 00 00 00 00 00 00 1D3E: 00 00 00 00 00 00 00 00 1D46: 00 00 00 00 00 00 00 00 1D4E: 00 00 00 00 00 00 00 00 1D56: 00 00 00 00 00 00 00 00 1D5E: 00 00 00 00 00 00 00 00 1D66: 00 00 00 00 00 00 00 00 1D6E: 00 00 00 00 00 00 00 00 1D76: 00 00 00 00 00 00 00 00 1D7E: 00 00 00 00 00 00 00 00 1D86: 00 00 00 00 00 00 00 00 1D8E: 00 00 00 00 00 00 00 00 1D96: 00 1D97: 00 00 00 967 SPMX DS 100 ; COORD. X CORRESPONDANTES 1D9A: 00 00 00 00 00 00 00 00 1DA2: 00 00 00 00 00 00 00 00 1DAA: 00 00 00 00 00 00 00 00 1DB2: 00 00 00 00 00 00 00 00 1DBA: 00 00 00 00 00 00 00 00 1DC2: 00 00 00 00 00 00 00 00 1DCA: 00 00 00 00 00 00 00 00 1DD2: 00 00 00 00 00 00 00 00 1DDA: 00 00 00 00 00 00 00 00 1DE2: 00 00 00 00 00 00 00 00 1DEA: 00 00 00 00 00 00 00 00 1DF2: 00 00 00 00 00 00 00 00 1DFA: 00 1DFB: 00 00 00 968 SPMY DS 100 ; COORD. Y CORRESPONDANTES 1DFE: 00 00 00 00 00 00 00 00 1E06: 00 00 00 00 00 00 00 00 1E0E: 00 00 00 00 00 00 00 00 1E16: 00 00 00 00 00 00 00 00 1E1E: 00 00 00 00 00 00 00 00 1E26: 00 00 00 00 00 00 00 00 1E2E: 00 00 00 00 00 00 00 00 1E36: 00 00 00 00 00 00 00 00 1E3E: 00 00 00 00 00 00 00 00 1E46: 00 00 00 00 00 00 00 00 1E4E: 00 00 00 00 00 00 00 00 1E56: 00 00 00 00 00 00 00 00 1E5E: 00 969 ; 970 ; INPUT2 971 ; 1E5F: 48 972 INPUT_2 PHA 1E60: 8C 7B 17 973 STY INSTORE 1E63: 8E 7C 17 974 STX INSTORE+1 1E66: 20 DA 1C 975 JSR SPMOBIL0 1E69: AE 7C 17 976 LDX INSTORE+1 1E6C: AC 7B 17 977 LDY INSTORE 1E6F: 20 11 17 978 JSR SUITE 1E72: 4C 60 1E 979 JMP INPUT_2+1 980 ; 981 SAV CMD Object saved as CMD,A$16E1,L$0794 --End assembly, 1940 bytes, Errors: 0 Symbol table - alphabetical order: AD1 =$1A31 AD2 =$1A32 AD3 =$1A33 ADDON =$D998 ADRCMD =$1965 AFFIC =$17BD AGAIN =$197F AUTRECAR =$17EA BAS2H =$2B BAS2L =$2A BASH =$29 BASL =$28 BCL1 =$1A45 BCL2 =$1A48 BCL3 =$1A52 BCL4 =$1A5A BITJSR =$1740 BYE2 =$1773 C1 =$179C C2 =$17A2 CADRE =$1BB1 CALC =$189D CARAC =$0801 CARAC2 =$0B01 CH =$24 CHANGE =$1A09 CHECKCOM =$DEBE CLS =$1B4E CLS2 =$1B5B CONTPRES =$1C55 COPSPMVT =$1D30 COUT1 =$FDF0 CPT =$184E CPT2 =$1929 CPTL =$06 CPTMUS =$19AD CPTPRES =$1C50 CPTX =$07 CSWH =$37 CSWL =$36 CSWNORM =$1A7C CURSOR =$09F1 CV =$25 D1 =$18F5 D2 =$18F7 D3 =$1908 D4 =$190B D5 =$1917 DATA1 =$18B9 DATA2 =$18D1 DATAH =$18B8 DATAL =$18B7 DATASP =$0BC1 DEBUT =$19D6 DECALAGE =$17FA DEX1 =$19DD DEX2 =$19E6 ECRIT =$1AEF ENDSP =$1B1A ERROR =$DEC9 ETAT =$177D ETAT2 =$E7 FILTRE =$1D31 FINCLS =$1BA5 FINMUS =$19AC FINMVT =$1D2A FINMVT0 =$1D2B FINSOUND =$1A20 FINSPM =$1D11 FINSPM2 =$1D25 FOLLOW1 =$180B FOLLOW10 =$1A93 FOLLOW2 =$1A80 FOLLOW3 =$1A9E FOLLOW4 =$1AD9 FOLLOW5 =$1AEA FOLLOW6 =$1B08 FOLLOW7 =$1B21 FOLLOW8 =$1B2F FOLLOW9 =$1B43 GBASH =$27 GBASL =$26 GETBYT =$E6F8 HCLR =$F3F2 HOME =$FC58 ? ICI =$19F6 IDEM =$1761 INCR =$1864 INCR2 =$1B98 INPUT =$16E1 INPUT2 =$16E2 INPUT_2 =$1E5F INSTORE =$177B INVFLG =$32 KEYBRD =$C000 KSWH =$39 KSWL =$38 KSWNORM =$1A9A LA =$1A0D LARGEUR =$21 LECPX =$183F LECPX2 =$1B7D LOAD =$1AEC MARGEB =$23 MARGEG =$20 MARGEH =$22 ? MODE =$17AF MODPRES =$1C51 MULT =$1B1B MUS1 =$1994 MUS2 =$1997 MUS3 =$199E MUS4 =$19A6 MUSIC =$1979 ? MUSICD =$1992 NBF =$1AF8 NEWCMD =$192A NEXTOCT =$184F ? NEXTOCT2 =$1858 NEXTOCTT =$1B8C NOISE =$1A34 ? NOISED =$1A3D OKDECAL =$17EF OTHER =$174F OTHER2 =$176F OUTDO =$DB5C OUTPUT =$1727 OUTSTORE =$1778 PEEK =$1838 PEEK2 =$1B77 POKE =$183B POKE2 =$1B79 POSITION =$FC22 PRESBCL =$1C14 RELIRE =$1CB9 RELIRE2 =$1CCA RELIRE3 =$1CD3 ROTATION =$16F3 RTNFIN =$178D SCREEN =$178E SCRN =$1A69 SET =$1B35 SET1D =$1B3C SETEND =$1B47 SOUND =$19CC ? SOUNDD =$19CF SPCPT =$1D32 SPEAK =$C030 SPM =$1D33 ? SPMOBIL =$1CDE SPMOBIL0 =$1CDA SPMOBIL2 =$1CE6 SPMOBIL3 =$1CF9 SPMOBIL4 =$1CFC SPMVT =$1D2F SPMX =$1D97 SPMY =$1DFB SPRITE =$1AA3 SPRITED =$1AB6 STOCK =$1A21 STROUT =$DB3A SUITE =$1711 SUITE2 =$171B TESTY =$17DE TRAIT_1 =$1C66 TRAIT_2 =$1C8F TRAIT_3 =$1CA8 TRT_RTN =$177E VASY =$1734 VASY2 =$173D WAIT =$FCA8 WHERE =$184B WINDOW =$19AE WRITE =$17B3 X =$09 ? XMAX =$1C Y =$1A ZKEYBRD =$C010 Symbol table - numerical order: CPTL =$06 CPTX =$07 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 ETAT2 =$E7 CARAC =$0801 CURSOR =$09F1 CARAC2 =$0B01 DATASP =$0BC1 INPUT =$16E1 INPUT2 =$16E2 ROTATION =$16F3 SUITE =$1711 SUITE2 =$171B OUTPUT =$1727 VASY =$1734 VASY2 =$173D BITJSR =$1740 OTHER =$174F IDEM =$1761 OTHER2 =$176F BYE2 =$1773 OUTSTORE =$1778 INSTORE =$177B ETAT =$177D TRT_RTN =$177E RTNFIN =$178D SCREEN =$178E C1 =$179C C2 =$17A2 ? MODE =$17AF WRITE =$17B3 AFFIC =$17BD TESTY =$17DE AUTRECAR =$17EA OKDECAL =$17EF DECALAGE =$17FA FOLLOW1 =$180B PEEK =$1838 POKE =$183B LECPX =$183F WHERE =$184B CPT =$184E NEXTOCT =$184F ? NEXTOCT2 =$1858 INCR =$1864 CALC =$189D DATAL =$18B7 DATAH =$18B8 DATA1 =$18B9 DATA2 =$18D1 D1 =$18F5 D2 =$18F7 D3 =$1908 D4 =$190B D5 =$1917 CPT2 =$1929 NEWCMD =$192A ADRCMD =$1965 MUSIC =$1979 AGAIN =$197F ? MUSICD =$1992 MUS1 =$1994 MUS2 =$1997 MUS3 =$199E MUS4 =$19A6 FINMUS =$19AC CPTMUS =$19AD WINDOW =$19AE SOUND =$19CC ? SOUNDD =$19CF DEBUT =$19D6 DEX1 =$19DD DEX2 =$19E6 ? ICI =$19F6 CHANGE =$1A09 LA =$1A0D FINSOUND =$1A20 STOCK =$1A21 AD1 =$1A31 AD2 =$1A32 AD3 =$1A33 NOISE =$1A34 ? NOISED =$1A3D BCL1 =$1A45 BCL2 =$1A48 BCL3 =$1A52 BCL4 =$1A5A SCRN =$1A69 CSWNORM =$1A7C FOLLOW2 =$1A80 FOLLOW10 =$1A93 KSWNORM =$1A9A FOLLOW3 =$1A9E SPRITE =$1AA3 SPRITED =$1AB6 FOLLOW4 =$1AD9 FOLLOW5 =$1AEA LOAD =$1AEC ECRIT =$1AEF NBF =$1AF8 FOLLOW6 =$1B08 ENDSP =$1B1A MULT =$1B1B FOLLOW7 =$1B21 FOLLOW8 =$1B2F SET =$1B35 SET1D =$1B3C FOLLOW9 =$1B43 SETEND =$1B47 CLS =$1B4E CLS2 =$1B5B PEEK2 =$1B77 POKE2 =$1B79 LECPX2 =$1B7D NEXTOCTT =$1B8C INCR2 =$1B98 FINCLS =$1BA5 CADRE =$1BB1 PRESBCL =$1C14 CPTPRES =$1C50 MODPRES =$1C51 CONTPRES =$1C55 TRAIT_1 =$1C66 TRAIT_2 =$1C8F TRAIT_3 =$1CA8 RELIRE =$1CB9 RELIRE2 =$1CCA RELIRE3 =$1CD3 SPMOBIL0 =$1CDA ? SPMOBIL =$1CDE SPMOBIL2 =$1CE6 SPMOBIL3 =$1CF9 SPMOBIL4 =$1CFC FINSPM =$1D11 FINSPM2 =$1D25 FINMVT =$1D2A FINMVT0 =$1D2B SPMVT =$1D2F COPSPMVT =$1D30 FILTRE =$1D31 SPCPT =$1D32 SPM =$1D33 SPMX =$1D97 SPMY =$1DFB INPUT_2 =$1E5F KEYBRD =$C000 ZKEYBRD =$C010 SPEAK =$C030 ADDON =$D998 STROUT =$DB3A OUTDO =$DB5C CHECKCOM =$DEBE ERROR =$DEC9 GETBYT =$E6F8 HCLR =$F3F2 POSITION =$FC22 HOME =$FC58 WAIT =$FCA8 COUT1 =$FDF0