antoine-source/egerie/game.s

5968 lines
80 KiB
ArmAsm
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*
* L'ŽgŽrie
*
* (c) 1990, Fran<EFBFBD>ois Coulon & Laurent Cotton
* (c) 2021, Antoine Vignau & Olivier Zardini
*
mx %00
*-----------------------
* constantes
*-----------------------
NB_SALLES = 105
NB_INDICATEURS = 200
NB_TEXTES = 2000
NB_DEDICACES = 20*2 ; up to two lines per dŽdicace
NB_SOUSTITRES = 40*2 ; up to two lines per sous-titre
*-----------------------
* macros
*-----------------------
~t MAC
PHW ]1
PHW ]2
PHW ]3
PHW ]4
PHW ]5
PHW ]6
PHW ]7
jsr t
<<<
~dialogue MAC
PHW ]1
PHW ]2
PHW ]3
jsr dialogue
<<<
~addchar MAC
pea ]1 ; PHW
pea ]2 ; PHW
jsr add_char
<<<
~addstring MAC
pea ]1
pea ]2
jsr add_string
<<<
~setstring MAC
lda ]1
ora #$0100
xba
sta ]2
<<<
~charcmp MAC
pea ]1
pea ]2
jsr charcmp
IF ]0/4
beq ]3
brl ]4
ELSE
IF ]0/3
bne ]3
FIN
FIN
<<<
~strcmp MAC
pea ]1
pea ]2
jsr strcmp
IF ]0/3
bne ]3
FIN
<<<
~son MAC
pea ]1
pea ]2
pea ]3
jsr son
<<<
~texte MAC
lda ]1
jsr texte
<<<
~indic_diff MAC
ldx ]1
lda indicateur-1,x
and #$ff
cmp #]2
bne ]3
<<<
~indic_equal MAC
ldx ]1
lda indicateur-1,x
and #$ff
cmp #]2
beq ]3
<<<
~set_indic MAC
ldx #]1
sep #$20
lda #]2
sta indicateur-1,x
rep #$20
<<<
~set MAC
lda ]1
sta ]2
IF ]0/3
bra ]3
FIN
<<<
~ok MAC
lda ok
cmp ]1
bne ]2
<<<
*-----------------------
* les salles du jeu
*-----------------------
tblSALLE
da s00,s01,s02,s03,s04,s05,s06,s07,s08,s09
da s10,s11,s12,s13,s14,s15,s16,s17,s18,s19
da s20,s21,s22,s23,s24,s25,s26,s27,s28,s29
da s30,s31,s32,s33,s34,s35,s36,s37,s38,s39
da s40,s41,s42,s43,s44,s45,s46,s47,s48,s49
da s50,s51,s52,s53,s54,s55,s56,s57,s58,s59
da s60,s61,s62,s63,s64,s65,s66,s67,s68,s69
da s70,s71,s72,s73,s74,s75,s76,s77,s78,s79
da s80,s81,s82,s83,s84,s85,s86,s87,s88,s89
da s90,s91,s92,s93,s94,s95,s96,s97,s98,s99
da s100,s101,s102,s103,s104
*---
s00
rts
*---
s01
~t #8;#104;#53;#191;#1;#0;#184 ; amandine sac
~t #106;#5;#144;#59;#0;#2;#0 ; porte appartement
~t #104;#117;#143;#192;#3;#0;#185 ; porte voisine
rts
*---
s02
ldx #5
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s0201
~t #39;#29;#95;#63;#0;#6;#7 ; tele
bra s0202
s0201
~t #39;#29;#95;#63;#6;#3;#7 ; tele
s0202
~t #22;#124;#56;#142;#5;#0;#186 ; chat
*
~t #62;#95;#94;#111;#0;#0;#0 ; telephone
lda ok
cmp #TRUE
bne s0203
lda follow
bne s0203
lda #5
sta salle
*
s0203
~t #62;#95;#94;#111;#0;#0;#0 ; telephone
lda ok
cmp #TRUE
bne s0204
lda follow
beq s0204
jsr stop_son
lda #7
sta salle
*
s0204 ~t #88;#171;#155;#198;#4;#0;#187 ; magazine
~t #104;#28;#143;#73;#9;#-29;#0 ; tas de linge
~t #110;#106;#157;#134;#7;#-15;#26 ; laisse du chat
~t #0;#163;#78;#198;#8;#8;#14 ; lit
~t #0;#0;#32;#77;#10;#4;#4 ; fenetre
rts
*---
s03
ldx #2
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s0301
~t #60;#2;#219;#121;#13;#0;#3
*
s0301
~t #60;#2;#219;#121;#12;#0;#2
*
ldx #2 ; we could have made it 16-bit
lda indicateur-1,x
and #$ff ; but let's keep the logic of
cmp #TRUE
beq s0302 ; the code, please!
ldx #3
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s0302
~t #225;#89;#260;#121;#14;#2;#0
bra s0303
s0302
~t #225;#89;#260;#121;#0;#2;#0
s0303
rts
*---
s04
~t #174;#14;#212;#75;#16;#0;#5 ; antenne
lda ok
cmp #TRUE
beq s0401
ldx #7
sep #$20
lda #FALSE
sta indicateur-1,x
rep #$20
s0401
~t #172;#85;#264;#149;#17;#0;#0 ; amandine
~t #172;#156;#218;#193;#18;#2;#0 ; goutti<74>re
rts
*---
s05
stz chiffre
lda #78
sta i
s0501
lda #73
sta j
s0502
inc chiffre
ldy j
phy
ldx i
phx
tya
clc
adc #12
pha
txa
clc
adc #9
pha
lda #0
pha
pha
pha
jsr t
lda ok
cmp #TRUE
bne s0503
lda chiffre
ora #'0'
pha
pea numero
jsr add_char
~son #0;#1;FALSE
s0503
lda j
clc
adc #20
sta j
cmp #73+40
bcc s0502
beq s0502
lda i
clc
adc #13
sta i
cmp #78+26
bcc s0501
beq s0501
*---
~t #92;#117;#107;#127;#0;#0;#0
lda ok
cmp #TRUE
bne s0504
~addchar #'0';numero
~son #4000;#1;FALSE
*---
s0504
lda numero
and #$ff
cmp #6
bne s0505
lda #6
jsr charge_son
~son #5000;#30;FALSE
*---
s0505
~t #0;#159;#80;#199;#20;#0;#25 ; calepin
~t #27;#27;#186;#57;#0;#2;#0 ; combinŽ
~strcmp strNUM1;numero ; numŽro de mario
bne s0506
ldx #24
lda indicateur-1,x
and #$ff
cmp #FALSE
bne s0506
sep #$20
lda #TRUE
sta indicateur-1,x
inx
sta indicateur-1,x
rep #$20
~dialogue #13;#21;#23
stz numero
*---
s0506
~strcmp strNUM2;numero ; numŽro de la tŽlŽ
bne s0507
ldx #10
lda indicateur-1,x
and #$ff
cmp #FALSE
bne s0507
~t #0;#0;319;#199;#24;#2;#0
stz numero
ldx #10
sep #$20
lda #TRUE
sta indicateur-1,x ; 10=JEU TV OK
rep #$20
*---
s0507
lda numero
and #$ff
cmp #6
bne s0599
~texte #25
lda #2
sta salle
jsr attend_souris
s0599
rts
*---
i ds 2
j ds 2
strNUM1 str '498425'
strNUM2 str '402308'
*---
s06
~t #60;#2;#219;#121;#27;#0;#2 ; Žcran
ldx #27
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s0601
~t #225;#89;#260;#121;#0;#2;#0 ; bouton marche
bra s0602
s0601
~t #225;#89;#260;#121;#28;#2;#0 ; bouton marche
s0602
rts
*---
s07
ldx #11
sep #$20
lda #TRUE
sta indicateur-1,x
rep #$20
ldx #12
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s0701
~t #32;#10;#113;#82;#31;#0;#0 ; m<>re
~ok #TRUE;s0701
~addchar #'M';dial
s0701
~t #32;#10;#113;#82;#30;#0;#12 ; m<>re
~ok #TRUE;s0702
~addchar #'M';dial
s0702
ldx #12
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s0703
~t #22;#104;#69;#169;#33;#0;#0 ; amandine
~ok #TRUE;s0703
~addchar #'A';dial
s0703
~t #22;#104;#69;#169;#32;#0;#12 ; amandine
~ok #TRUE;s0704
~addchar #'A';dial
s0704
lda dial
and #$ff
cmp #2
bne s0705
jsr attend_souris
s0705
~strcmp strMM;dial;s0706
~dialogue #2;#35;#43
s0706
~strcmp strMA;dial;s0707
~dialogue #2;#46;#53
s0707
~strcmp strAM;dial;s0708
~dialogue #2;#57;#63
s0708
~strcmp strAA;dial;s0709
~dialogue #2;#66;#73
s0709
rts
strMM str 'MM'
strMA str 'MA'
strAM str 'AM'
strAA str 'AA'
*---
s08
~t #48;#102;#146;#144;#76;#0;#188 ; amandine
~t #8;#164;#33;#187;#0;#12;#0 ; lampe
* lda #9
lda #-9
sta salle2
ldx #18
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s0801
* lda #10
lda #-10
sta salle2
s0801
ldx #11
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s0802
* lda #11
lda #-11
sta salle2
s0802
* ~t #23;#5;#114;#78;#0;-salle2;#0 ; arbre reve
~t #23;#5;#114;#78;#0;salle2;#0 ; arbre reve
rts
*---
s09
~t #151;#58;#225;#199;#80;#0;#112 ; amandine
~t #278;#43;#319;#171;#81;#-12;#0 ; mario
~t #170;#15;#190;#55;#82;#0;#113 ; chat
~t #241;#9;#266;#50;#82;#0;#113 ; chat
rts
*---
s10
~t #92;#51;#157;#122;#84;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s1001
jsr attend_souris
lda #12
sta salle
lda #TRUE
sta fade
s1001
~t #0;#16;#91;#199;#85;#0;#0 ; mario
lda ok
cmp #TRUE
bne s1002
jsr attend_souris
lda #12
sta salle
lda #TRUE
sta fade
s1002
rts
*---
s11
~t #127;#107;#201;#192;#0;#-12;#0 ; Amandine
ldx #36
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s1101
~t #141;#0;#319;#94;#89;#0;#37 ; mere
s1101
ldx #35
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s1102
~t #141;#0;#319;#94;#88;#0;#36
s1102
~t #141;#0;#319;#94;#87;#0;#35
rts
*---
s12
~t #9;#57;#104;#144;#91;#0;#0
lda ok
cmp #TRUE
bne s1201
jsr attend_souris
s1201
lda #2
sta salle
rts
*---
s13
~charcmp #'A';dial;s1301
~t #102;#14;#136;#64;#0;#0;#0 ; amandine
~ok #TRUE;s1301
~dialogue #14;#95;#96
s1301
~charcmp #'A';dial;s1302
~t #146;#1;#188;#66;#0;#0;#0 ; mario
~ok #TRUE;s1302
~dialogue #14;#98;#99
s1302
~charcmp #'M';dial;s1303
~t #146;#1;#188;#66;#0;#0;#18 ; ********** indicateur 18: mario rompu
~ok #TRUE;s1303
~dialogue #2;#108;#112
s1303
~charcmp #'M';dial;s1304
~t #102;#14;#136;#64;#0;#0;#0 ; amandine
~ok #TRUE;s1304
~dialogue #14;#114;#116
s1304
lda dial
and #$ff
bne s1305
~t #102;#14;#136;#64;#0;#0;#0 ; amandine
~ok #TRUE;s1305
~dialogue #0;#92;#93
~addchar #'A';dial
s1305
lda dial
and #$ff
bne s1306
~t #146;#1;#188;#66;#0;#0;#0 ; mario
~ok #TRUE;s1306
~dialogue #0;#101;#106
~addchar #'M';dial
s1306
ldx #16
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s1307
~t #234;#5;#276;#64;#120;#0;#17 ; homme cheveux longs
s1307
ldx #15
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s1308
~t #234;#5;#276;#64;#119;#0;#15 ; homme cheveux longs
s1308
~t #234;#5;#276;#64;#118;#0;#15 ; homme cheveux longs
~t #43;#11;#80;#64;#121;#0;#38 ; gros
rts
*---
s14
* ---- replique de mario ou d'amandine
ldx #21
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s1401
brl s1403
s1401
~t #80;#83;#116;#111;#0;#0;#23 ; amandine
lda ok
cmp #TRUE
bne s1402
~dialogue #0;#131;#133
jsr attend_souris
~t #0;#0;#319;#199;#141;#-2;#0 ; retourne au dŽbut
s1402
~t #53;#48;#88;#77;#0;#0;#22 ; mario
lda ok
cmp #TRUE
bne s1403
~dialogue #0;#128;#129
jsr attend_souris
~t #0;#0;#319;#199;#141;#-2;#0 ; retourne au dŽbut
* ---- chat
s1403
~t #175;#133;#214;#171;#0;#0;#0 ; chat
lda ok
cmp #TRUE
bne s1404
~dialogue #2;#135;#139
* ------ premiere phrase
s1404
~t #80;#83;#116;#111;#126;#0;#21 ; amandine
~t #53;#48;#88;#77;#124;#2;#22 ; mario
rts
*---
s15
~t #142;#85;#191;#126;#143;#0;#0 ; chat
~t #75;#27;#134;#123;#144;#0;#0 ; amandine
~t #136;#0;#240;#51;#0;#16;#0 ; bac ˆ sable
~t #16;#10;#64;#129;#145;#17;#0 ; homme
rts
*--- bac ˆ sable
s16
~t #151;#42;#178;#74;#0;#0;#28 ; gosse1
lda ok
cmp #TRUE
bne s1601
lda texte_enfant
jsr texte
inc texte_enfant
s1601
~t #4;#97;#50;#129;#0;#0;#29 ; 2
lda ok
cmp #TRUE
bne s1602
lda texte_enfant
jsr texte
inc texte_enfant
s1602
~t #108;#21;#143;#65;#0;#0;#30
lda ok
cmp #TRUE
bne s1603
lda texte_enfant
jsr texte
inc texte_enfant
s1603
~t #64;#37;#99;#102;#0;#0;#31
lda ok
cmp #TRUE
bne s1604
lda texte_enfant
jsr texte
inc texte_enfant
s1604
lda texte_enfant
cmp #153
bne s1605
ldx #32 ; AMANDINE A ENVIE D'UN ENFANT
sep #$20
lda #TRUE
sta indicateur-1,x
rep #$20
s1605
~t #226;#25;#274;#96;#153;#-2;#0 ; amandine
rts
*---
s17
~t #6;#81;#61;#177;#0;#0;#0 ; homme
lda ok
cmp #TRUE
bne s1701
~dialogue #18;#156;#161
s1701
~t #74;#108;#110;#184;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s1702
~dialogue #19;#164;#170
s1702
rts
*---
s18
ldx #93
sep #$20
lda #TRUE
sta indicateur-1,x
rep #$20
~t #0;#76;#65;#199;#0;#0;#0 ; poubelle
lda ok
cmp #TRUE
bne s1801
ldx #93
sep #$20
lda #FALSE
sta indicateur-1,x
rep #$20
~texte #173
jsr attend_souris
lda #2
sta salle
lda #TRUE
sta fade
s1801
~t #0;#0;#319;#199;#174;#-2;#0
rts
*---
s19
~t #65;#0;#105;#41;#0;#0;#33 ; ordinateur
lda ok
cmp #TRUE
bne s1901
~dialogue #0;#177;#180
s1901
ldx #33
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s1903
~t #106;#34;#184;#127;#0;#0;#0 ; homme
lda ok
cmp #TRUE
bne s1902
~dialogue #20;#188;#188
s1902
~t #185;#59;#247;#128;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s1903
~dialogue #20;#183;#185
s1903
~t #106;#34;#184;#127;#0;#0;#0 ; homme
lda ok
cmp #TRUE
bne s1904
~dialogue #20;#191;#191
s1904
~t #185;#59;#247;#128;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s1905
~dialogue #20;#192;#193
s1905
rts
*---
s20
lda #TRUE
sta fade
~t #212;#104;#248;#134;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s2001
~dialogue #25;#196;#200
s2001
~t #212;#76;#242;#103;#0;#0;#0 ; homme
lda ok
cmp #TRUE
bne s2002
~dialogue #25;#203;#209
s2002
~t #255;#44;#294;#118;#0;#21;#0 ; salle de bain
rts
*---
s21
~t #89;#69;#133;#124;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s2103
inc salle_bain
lda salle_bain
cmp #1
bne s2101
~dialogue #0;#212;#215
s2101
lda salle_bain
cmp #2
bne s2102
~dialogue #0;#218;#221
s2102
lda salle_bain
cmp #3
bne s2103
~dialogue #0;#224;#226 ; balancer a la scene du reveil
s2103
~t #11;#0;#69;#84;#0;#0;#0 ; porte
lda ok
cmp #TRUE
bne s2106
lda salle_bain
bne s2104
lda #22
sta salle
s2104
lda salle_bain
cmp #1
bne s2105
lda #24
sta salle
s2105
lda salle_bain
cmp #2
bne s2106
lda #23
sta salle
s2106
rts
*---
s22
lda #TRUE
sta fade
lda #26
sta salle
rts
*---
s23
lda #TRUE
sta fade
lda #26
sta salle
rts
*---
s24
lda #TRUE
sta fade
lda #26
sta salle
rts
*---
s25
lda #TRUE
sta fade
~t #11;#168;#44;#191;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s2501
~dialogue #26;#234;#236
s2501
~t #31;#140;#67;#164;#0;#0;#0 ; homme
lda ok
cmp #TRUE
bne s2502
~dialogue #26;#239;#245
s2502
rts
*---
s26
ldx #18
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s2601
~t #54;#34;#138;#107;#247;#-27;#0 ; homme
~t #100;#114;#146;#199;#248;#-28;#0 ; amandine
rts
s2601
~t #100;#114;#146;#199;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s2602
~dialogue #27;#249;#258
s2602
~t #54;#34;#138;#107;#0;#0;#0 ; homme
lda ok
cmp #TRUE
bne s2603
~dialogue #28;#260;#269
s2603
rts
*---
s27
~t #33;#31;#74;#80;#272;salle_fin;#0 ; amandine
~t #120;#60;#161;#153;#0;#0;#40 ; vieille
lda ok
cmp #TRUE
bne s2701
~dialogue #0;#274;#283
s2701
~t #30;#122;#85;#199;#0;#0;#41 ; jeune
lda ok
cmp #TRUE
bne s2702
~dialogue #0;#287;#292
s2702
~t #0;#36;#28;#128;#285;#0;#42 ; grosse
rts
*---
s28
~t #258;#150;#319;#199;#294;#-2;#0 ; amandine
~t #166;#0;#319;#112;#295;#-2;#0 ; bouche
ldx #14
sep #$20
lda #TRUE
sta indicateur-1,x
rep #$20
rts
*---
s29
~t #36;#83;#91;#142;#0;#30;#0 ; peintre
~t #95;#90;#133;#142;#313;#0;#45 ; plongeur
~t #259;#58;#296;#128;#0;#0;#111 ; en calecon
~ok #TRUE;s2902
ldx #50
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s2901
~texte #342
bra s2902
s2901
~texte #341
s2902
~t #258;#22;#270;#33;#298;#0;#47 ; journal d'amandine
~ok #FALSE;s2903
~t #247;#7;#283;#44;#297;#0;#46 ; amandine
s2903
~t #179;#12;#203;#64;#0;#0;#0 ; fille 1
~ok #TRUE;s2904
~addchar #'1';dial
s2904
~t #204;#11;#222;#65;#0;#0;#0 ; fille 2
~ok #TRUE;s2905
~addchar #'2';dial
s2905
ldx #49
lda indicateur-1,x
and #$ff
bne s2907
~charcmp #'1';dial;s2906
~texte #315
s2906
~charcmp #'2';dial;s2907
~texte #325
lda dial
and #$ff
cmp #1
bne s2907
ldx #49
lda #TRUE
sep #$20
sta indicateur-1,x
rep #$20
ldx #50
lda indicateur-1,x
and #$ff
cmp #FALSE
bne s2910
~strcmp str291;dial;s2907
~texte #323
s2907
~strcmp str292;dial;s2908
~dialogue #0;#317;#321
s2908
~strcmp str293;dial;s2909
~dialogue #0;#334;#339
s2909
~strcmp str294;dial;s2910
~dialogue #0;#327;#332
s2910
lda dial
and #$ff
cmp #2
bne s2911
ldx #50
lda #TRUE
sep #$20
sta indicateur-1,x
rep #$20
s2911
~t #108;#9;#149;#65;#0;#0;#48 ; homme tache
~ok #TRUE;s2912
~dialogue #0;#300;#302
s2912
~t #151;#9;#178;#62;#0;#0;#48 ; fille tache
~ok #TRUE;s2913
~dialogue #0;#304;#311
s2913
rts
str291 str '11'
str292 str '12'
str293 str '22'
str294 str '21'
*---
s30
ldx #52
lda #FALSE
sep #$20
sta indicateur-1,x
rep #$20
~t #0;#70;#36;#146;#0;#0;#52 ; amandine
lda ok
cmp #TRUE
bne s3001
~addchar #'A';dial
s3001
~t #45;#21;#122;#107;#0;#0;#52 ; peintre
lda ok
cmp #TRUE
bne s3002
~addchar #'P';dial
s3002
ldx #52
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s3003
brl s3009
s3003
~charcmp #'P';dial
bne s3004
~texte #345
s3004
~charcmp #'A';dial
bne s3005
~texte #372
s3005
~strcmp str301;dial
bne s3006
~dialogue #31;#347;#357
s3006
~strcmp str302;dial
bne s3007
~dialogue #42;#359;#370
s3007
~strcmp str303;dial
bne s3008
~dialogue #41;#374;#387
s3008
~strcmp str304;dial
bne s3009
~dialogue #31;#389;#401
s3009
rts
str301 str 'PA'
str302 str 'PP'
str303 str 'AP'
str304 str 'AA'
*---
s31
ldx #53
lda #FALSE
sep #$20
sta indicateur-1,x
rep #$20
~t #250;#88;#310;#169;#0;#0;#53 ; amandine
lda ok
cmp #TRUE
bne s3101
~addchar #'A';dial
s3101
~t #168;#19;#236;#150;#0;#0;#53 ; homme
lda ok
cmp #TRUE
bne s3102
~addchar #'M';dial
s3102
ldx #53
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s3103
brl s3109
s3103
~charcmp #'A';dial
bne s3104
~texte #403
s3104
~charcmp #'M';dial
bne s3105
~texte #417
s3105
~strcmp str311;dial
bne s3106
~dialogue #32;#405;#406
s3106
~strcmp str312;dial
bne s3107
~dialogue #32;#419;#424
s3107
~strcmp str313;dial
bne s3108
~dialogue #32;#426;#433
s3108
~strcmp str314;dial
bne s3109
~dialogue #32;#408;#415
s3109
rts
str311 str 'AA'
str312 str 'MA'
str313 str 'MM'
str314 str 'AM'
*---
s32
~t #27;#0;#76;#40;#0;#0;#55 ; controleur
lda ok
cmp #TRUE
bne s3201
~dialogue #33;#436;#443
s3201
~t #77;#13;#101;#34;#0;#0;#55 ; vieille au ticket
lda ok
cmp #TRUE
bne s3202
~dialogue #33;#445;#450
s3202
~t #29;#45;#68;#78;#460;#0;#57 ; homme edentŽ
~t #128;#89;#155;#163;#459;#0;#58 ; pere noel
~t #102;#140;#127;#198;#458;#-33;#59 ; amandine
~t #42;#132;#85;#199;#0;#0;#59 ; vieille grincheuse
lda ok
cmp #TRUE
bne s3203
~dialogue #33;#452;#456
s3203
~t #88;#112;#107;#137;#461;#0;#60 ; homme ˆ lunettes
~t #7;#154;#38;#199;#462;#0;#61 ; homme ˆ casquette
rts
*---
s33
~t #49;#45;#85;#135;#463;#34;#0 ; frigo
~t #89;#64;#125;#114;#463;#35;#0 ; four
~t #127;#120;#158;#141;#463;#36;#0 ; grille pain
~t #185;#95;#237;#120;#463;#37;#0 ; machine ˆ Žcrire
~t #205;#0;#245;#90;#463;#38;#0 ; bain
~t #187;#130;#221;#150;#463;#39;#0 ; tiroir
~t #132;#60;#183;#92;#463;#40;#0 ; vin
rts
*---
s34
lda salle_fin
sta salle
rts
*---
s35
lda salle_fin
sta salle
rts
*---
s36
lda salle_fin
sta salle
rts
*---
s37
lda salle_fin
sta salle
rts
*---
s38
lda salle_fin
sta salle
lda #TRUE
sta fade
rts
*---
s39
lda salle_fin
sta salle
lda #TRUE
sta fade
rts
*---
s40
lda salle_fin
sta salle
lda #TRUE
sta fade
rts
*---
s41
~t #75;#25;#120;#58;#471;#-43;#62 ; amandine
~t #38;#81;#72;#148;#472;#-43;#63 ; amandine2
~t #17;#149;#69;#193;#473;#0;#64 ; chat
rts
*---
s42
~t #18;#28;#69;#126;#0;#0;#65 ; amandine
lda ok
cmp #TRUE
bne s4201
~dialogue #43;#493;#497
s4201
~t #74;#13;#128;#132;#0;#0;#65 ; vendeur
lda ok
cmp #TRUE
bne s4202
~dialogue #43;#480;#490
s4202
~t #175;#35;#200;#135;#475;#0;#66 ; main au fesses
~t #264;#73;#310;#142;#477;#0;#67 ; homme manteau
~t #155;#4;#174;#48;#476;#0;#68 ; clowm blanc
~t #253;#14;#277;#69;#478;#0;#69 ; gros
~t #283;#16;#307;#71;#479;#0;#70 ; femme mini jupe
~t #233;#0;#250;#26;#500;#0;#71 ; femme nue
rts
*---
s43
ldx #76
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s4302
~t #53;#28;#66;#40;#0;#0;#89 ; homme roploplo
lda ok
cmp #TRUE
bne s4301
~dialogue #0;#541;#542
s4301
~t #73;#15;#87;#33;#539;#0;#89 ; idem 2
s4302
ldx #73
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s4303
brl s4306
s4303
~t #133;#74;#159;#106;#0;#0;#86 ; amandine
lda ok
cmp #TRUE
bne s4304
~dialogue #48;#575;#578
s4304
~t #81;#59;#97;#107;#0;#0;#86 ; bob
lda ok
cmp #TRUE
bne s4305
~dialogue #46;#570;#573
s4305
~t #107;#50;#125;#68;#580;#0;#87 ; gros roux
bra s4307
s4306
~t #133;#74;#159;#106;#503;#0;#72 ; amandine
~t #81;#59;#97;#107;#0;#0;#73 ; bob
lda ok
cmp #TRUE
bne s4307
~dialogue #0;#567;#568
s4307
~t #218;#56;#236;#109;#535;#0;#74 ; a cotŽ de gabrielle
~t #239;#59;#260;#84;#0;#0;#0 ; gabrielle
lda ok
cmp #TRUE
bne s4308
~dialogue #47;#523;#527
s4308
~t #81;#33;#94;#49;#0;#0;#75 ; homme petits fours
lda ok
cmp #TRUE
bne s4309
~dialogue #0;#520;#521
s4309
~t #107;#50;#125;#68;#0;#0;#73 ;
lda ok
cmp #TRUE
bne s4310
~dialogue #0;#557;#564
ldx #90
lda #TRUE
sep #$20
sta indicateur-1,x
rep #$20
s4310
~t #53;#28;#66;#40;#537;#0;#76 ; homme roploplo
~t #73;#15;#87;#33;#537;#0;#76 ; idem 2
~t #127;#42;#164;#74;#504;#0;#77 ; serveur
~t #130;#11;#153;#41;#529;#0;#78 ; homme pres tableau
~t #207;#3;#278;#26;#0;#0;#79 ; homme queue de cheval
lda ok
cmp #TRUE
bne s4311
~dialogue #0;#530;#533
s4311
~t #4;#105;#31;#150;#0;#0;#80 ; homme gauche
lda ok
cmp #TRUE
bne s4312
~dialogue #0;#506;#509
s4312
~t #39;#101;#59;#150;#0;#0;#80 ; homme a cote 81
lda ok
cmp #TRUE
bne s4313
~dialogue #0;#515;#518
s4313
~t #82;#110;#106;#150;#0;#0;#80 ; homme a cote 82
lda ok
cmp #TRUE
bne s4314
~dialogue #0;#511;#513
s4314
~t #154;#108;#178;#150;#583;#0;#83 ; homme qui baille
* @T(179;#113;#195;#139;#0;#0;#0 ; ˆ lunettes
~t #198;#117;#222;#150;#0;#0;#84 ; gros ˆ cotŽ
lda ok
cmp #TRUE
bne s4315
~dialogue #0;#544;#545
s4315
* @T(283;#108;#313;#150;#0;#0;#0 ; barbu
~t #164;#7;#206;#36;#0;#0;#85 ; chevelu smith
lda ok
cmp #TRUE
bne s4316
~dialogue #0;#547;#553
s4316
~t #110;#98;#128;#124;#555;#0;#94 ; ou sont les camŽras
rts
*---
s44
~t #75;#81;#139;#152;#594;#0;#91 ; ivrogne
~t #36;#30;#77;#78;#587;#0;#92 ; garcon
~t #0;#113;#52;#199;#0;#0;#91 ; grosse
~ok #TRUE;s4401
~dialogue #0;#589;#592
s4401
ldx #93
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s4402
~t #78;#0;#119;#48;#595;#-27;#99 ; amandine epouse raoul
s4402
ldx #90
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s4403
~t #78;#0;#119;#48;#596;#-67;#99 ; amandine presse
s4403
~t #78;#0;#119;#48;#597;salle_fin;#99 ; amandine fin
rts
*---
s45
~t #174;#41;#241;#195;#0;#0;#0 ; amandine
~ok #TRUE;s4501
~addchar #'A';dial
s4501
~t #252;#48;#319;#180;#0;#0;#0 ; mario
~ok #TRUE;s4502
~addchar #'M';dial
s4502
~charcmp #'A';dial;s4503
~texte #614
s4503
~charcmp #'M';dial;s4504
~texte #600
s4504
~strcmp str451;dial;s4505
~dialogue salle_fin;#622;#626
s4505
~strcmp str452;dial;s4506
~dialogue salle_fin;#616;#620
s4506
~strcmp str453;dial;s4507
~dialogue salle_fin;#602;#606
s4507
~strcmp str454;dial;s4508
~dialogue salle_fin;#608;#612
s4508
rts
str451 str 'AA'
str452 str 'AM'
str453 str 'MA'
str454 str 'MM'
*---
s46
~t #29;#14;#68;#107;#0;#0;#0 ; blanc
lda ok
cmp #TRUE
bne s4601
~addchar #'B';dial
s4601
~t #0;#22;#27;#109;#0;#0;#0 ; black
lda ok
cmp #TRUE
bne s4602
~addchar #'N';dial
s4602
~charcmp #'B';dial
bne s4603
~texte #631
s4603
~charcmp #'N';dial
bne s4604
~texte #639
s4604
ldx #101
lda indicateur-1,x
and #$ff
cmp #FALSE
bne s4608
~strcmp str461;dial
bne s4605
~dialogue #0;#633;#634
s4605
~strcmp str462;dial
bne s4606
~dialogue #0;#636;#637
s4606
~strcmp str463;dial
bne s4607
~dialogue #0;#641;#642
s4607
~strcmp str464;dial
bne s4608
~dialogue #0;#644;#646
s4608
lda dial
and #$ff
cmp #2
bne s4609
ldx #101
lda #TRUE
sep #$20
sta indicateur-1,x
rep #$20
s4609
ldx #18 ; mario plaquŽ ou non
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s4610
~t #80;#32;#119;#138;#628;#-44;#100 ; amandine
bra s4611
s4610
~t #80;#32;#119;#138;#629;#-45;#100 ; amandine
s4611
rts
str461 str 'BN'
str462 str 'BB'
str463 str 'NB'
str464 str 'NN'
*---
s47
~t #213;#97;#252;#199;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s4701
~addchar #'A';dial
s4701
~t #259;#82;#310;#199;#0;#0;#0 ; gabrielle
lda ok
cmp #TRUE
bne s4702
~addchar #'G';dial
s4702
ldx #18
lda indicateur-1,x
and #$ff
cmp #FALSE
beq s4703
brl s4709
s4703
~charcmp #'A';dial
bne s4704
ldx #107
lda indicateur-1,x
and #$ff
cmp #FALSE
bne s4704
~dialogue #0;#649;#651
ldx #107
lda #TRUE
sep #$20
sta indicateur-1,x
rep #$20
s4704
~charcmp #'G';dial
bne s4705
ldx #107
lda indicateur-1,x
and #$ff
cmp #FALSE
bne s4705
~texte #662
ldx #107
lda #TRUE
sep #$20
sta indicateur-1,x
rep #$20
s4705
~strcmp str471;dial
bne s4706
~dialogue #63;#653;#657 ; oranges
s4706
~strcmp str472;dial
bne s4707
~dialogue #61;#659;#660 ; gym
s4707
~strcmp str473;dial
bne s4708
~dialogue #62;#664;#673 ; uva
s4708
~strcmp str474;dial
bne s4709
~dialogue #60;#675;#678 ; coiffeur
bra s4711
s4709 ; mario plaquŽ
~t #213;#97;#252;#199;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s4710
~dialogue #57;#681;#688
s4710
~t #259;#82;#310;#199;#0;#0;#0 ; gabrielle
lda ok
cmp #TRUE
bne s4711
~dialogue #64;#690;#692
s4711
~t #183;#13;#227;#94;#695;#0;#105 ; portier
~t #239;#40;#281;#77;#694;#0;#106 ; vieille
rts
str471 str 'AG'
str472 str 'AA'
str473 str 'GG'
str474 str 'GA'
*---
s48
~t #0;#93;#50;#197;#0;#0;#114 ; bob
lda ok
cmp #TRUE
bne s4801
~addchar #'P';dial
s4801
~t #51;#101;#86;#190;#0;#0;#114 ; amandine
lda ok
cmp #TRUE
bne s4802
~addchar #'A';dial
s4802
ldx #114
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s4802_bis
brl s4808
s4802_bis
ldx #114
lda #FALSE
sep #$20
sta indicateur-1,x
rep #$20
~charcmp #'P';dial
bne s4803
~texte #697
s4803
~strcmp str481;dial
bne s4804
~dialogue #46;#699;#703 ; amandine plaque bob
s4804
~strcmp str482;dial
bne s4805
~dialogue #49;#705;#706 ; baise
s4805
~charcmp #'A';dial
bne s4806
~texte #708
s4806
~strcmp str483;dial
bne s4807
~dialogue #52;#710;#713 ; rdv aspirateur
s4807
~strcmp str484;dial
bne s4808
~dialogue #49;#715;#717
s4808
rts
str481 str 'PA'
str482 str 'PP'
str483 str 'AP'
str484 str 'AA'
*---
s49
~t #251;#68;#307;#104;#0;#0;#0 ; le chat
~ok #TRUE;s4901
~dialogue #50;#743;#744
s4901
~t #43;#9;#91;#86;#0;#0;#0 ; statue
~ok #TRUE;s4902
~dialogue #50;#739;#741
s4902
~t #103;#0;#165;#104;#0;#0;#115 ; amandine
~ok #TRUE;s4903
~addchar #'A';dial
s4903
~t #191;#7;#229;#104;#0;#0;#115 ; bob
~ok #TRUE;s4904
~addchar #'P';dial
s4904
ldx #115
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s4905
brl s4911
s4905
ldx #115
lda #FALSE
sep #$20
sta indicateur-1,x
rep #$20
~charcmp #'P';dial;s4906
~texte #721
s4906
~strcmp str491;dial;s4907
~dialogue #50;#723;#725
s4907
~strcmp str492;dial;s4908
~dialogue #50;#727;#730
s4908
~charcmp #'A';dial;s4909
~texte #732
s4909
~strcmp str493;dial;s4910
~texte #734
~set #50;salle
jsr attend_souris
s4910
~strcmp str494;dial;s4911
~dialogue #50;#736;#737
s4911
rts
str491 str 'PA'
str492 str 'PP'
str493 str 'AP'
str494 str 'AA'
*---
s50 ~set_indic #119;#TRUE
~indic_diff #90;#TRUE;s5001
~set #67;salle2;s5002
s5001 ~set #51;salle2
s5002 ~t #118;#62;#151;#109;#0;#0;#19 ; amandine
~ok #TRUE;s5003
~addchar #'A';dial
s5003 ~t #156;#2;#213;#83;#0;#0;#19 ; bob
~ok #TRUE;s5004
~addchar #'P';dial
s5004 ~indic_diff #19;#FALSE;s5005
~t #272;#86;#309;#109;#778;#0;#20 ; le chat
s5005 ~indic_equal #19;#TRUE;s5006
brl s5012
s5006 ~set_indic #19;#FALSE
~charcmp #'P';dial;s5007
~texte #747
s5007 ~strcmp str501;dial;s5008
~dialogue salle2;#749;#754
s5008 ~strcmp str502;dial;s5009
~dialogue salle2;#756;#762
s5009 ~charcmp #'A';dial;s5010
~texte #764
s5010 ~strcmp str503;dial;s5011
~dialogue salle2;#766;#767
s5011 ~strcmp str504;dial;s5012
~dialogue salle2;#769;#776
s5012 rts
str501 str 'PA'
str502 str 'PP'
str503 str 'AA'
str504 str 'AP'
*---
s51
~t #0;#6;#52;#106;#780;salle_fin;#0 ; statue 1
~t #53;#3;#95;#106;#781;salle_fin;#0 ; statue 2
~t #105;#30;#157;#111;#782;salle_fin;#0 ; statue3
~t #159;#2;#219;#111;#783;salle_fin;#0 ; statue 4
~t #221;#11;#315;#111;#784;salle_fin;#0 ; statue 5+bob
~t #0;#110;#57;#132;#785;salle_fin;#0 ; chat
rts
*---
s52
lda #TRUE
sta fade
~t #10;#20;#73;#153;#0;#0;#0 ; amandine
~ok #TRUE;s5201
~texte #787
~set #53;salle
jsr attend_souris
s5201
~t #105;#134;#150;#174;#0;#0;#0 ; chat
~ok #TRUE;s5202
~texte #788
~set #55;salle
jsr attend_souris
s5202
rts
*---
s53
~set #54;salle
~set #TRUE;fade
rts
*---
s54
~t #61;#87;#122;#132;#809;#-49;#0 ; chat
~t #41;#15;#113;#81;#0;#0;#116 ; amandine
~ok #TRUE;s5401
~addchar #'A';dial
s5401
~t #125;#5;#252;#117;#0;#0;#116 ; veto
~ok #TRUE;s5402
~addchar #'V';dial
s5402
ldx #116
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s5403
brl s5409
s5403
ldx #116
lda #FALSE
sep #$20
sta indicateur-1,x
rep #$20
~charcmp #'A';dial;s5404
~texte #792
s5404
~strcmp str541;dial;s5405
~dialogue #49;#794;#797
s5405
~strcmp str542;dial;s5406
~dialogue #49;#799;#800
s5406
~charcmp #'V';dial;s5407
~texte #802
s5407
~strcmp str543;dial;s5408
~dialogue #49;#804;#805
s5408
~strcmp str544;dial;s5409
~texte #807
~set #49;salle
jsr attend_souris
s5409
rts
str541 str 'AV'
str542 str 'AA'
str543 str 'VA'
str544 str 'VV'
*---
s55
ldx #120
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s5501
~t #21;#66;#144;#126;#813;#56;#0 ; amandine
s5501
~t #21;#66;#144;#126;#812;#0;#120 ; amandine
~t #50;#125;#129;#163;#811;#0;#110 ; chat
rts
*---
s56
~set #49;salle
~set #TRUE;fade
rts
*---
s57
~t #76;#57;#110;#90;#0;#0;#117 ; amandine
~ok #TRUE;s5701
~addchar #'A';dial
s5701
~t #13;#74;#76;#147;#0;#0;#117 ; gaby
~ok #TRUE;s5702
~addchar #'G';dial
~indic_equal #117;#TRUE;s5702
brl s5708
s5702
~set_indic #117;#FALSE
~charcmp #'A';dial;s5703
~texte #816
s5703
~strcmp str571;dial;s5704
~dialogue #58;#818;#822
s5704
~strcmp str572;dial;s5705
~dialogue #58;#824;#826
s5705
~charcmp #'G';dial;s5706
~texte #828
s5706
~strcmp str573;dial;s5707
~dialogue #58;#830;#838
s5707
~strcmp str574;dial;s5708
~dialogue #58;#840;#842
s5708
rts
str571 str 'AA'
str572 str 'AG'
str573 str 'GG'
str574 str 'GA'
*---
s58
~indic_diff #90;#TRUE;s5801
~set #67;salle2;s5802
s5801 ~set #66;salle2
s5802
~t #10;#143;#34;#160;#0;#0;#0 ; chat
~ok #TRUE;s5803
~dialogue salle2;#854;#857
s5803
~indic_diff #150;#FALSE;s5805
~t #79;#185;#103;#197;#860;#0;#121 ; sexe d'amandine
~ok #FALSE;s5804
~t #69;#74;#120;#197;#859;#0;#151 ; amandine
s5804
~t #7;#55;#53;#102;#0;#0;#150 ; gaby
~ok #TRUE;s5805
~texte #845
bra s5807
s5805
~t #69;#74;#120;#197;#0;#0;#0 ; amandine
~ok #TRUE;s5806
~dialogue salle2;#847;#849
s5806
~t #7;#55;#53;#102;#0;#0;#0 ; gaby
~ok #TRUE;s5807
~dialogue salle2;#851;#852
s5807
rts
*---
s59
~t #204;#121;#255;#199;#0;#0;#118 ; amandine
~ok #TRUE;s5901
~addchar #'A';dial
s5901
~t #202;#0;#319;#119;#0;#0;#118 ; woody
~ok #TRUE;s5902
~addchar #'W';dial
s5902
~indic_equal #118;TRUE;s5903
brl s5909
s5903
~set_indic #118;FALSE
~charcmp #'A';dial;s5904
~texte #861
s5904
~strcmp str591;dial;s5905
~dialogue #65;#863;#864
s5905
~strcmp str592;dial;s5906
~dialogue #65;#866;#868
s5906
~charcmp #'W';dial;s5907
~texte #870
s5907
~strcmp str593;dial;s5908
~dialogue #65;#872;#875
s5908
~strcmp str594;dial;s5909
~dialogue #65;#877;#878
s5909
rts
str591 str 'AW'
str592 str 'AA'
str593 str 'WA'
str594 str 'WW'
*---
s60
~indic_equal #154;TRUE;s6001
brl s6007
s6001
~t #244;#122;#274;#147;#0;#0;#0 ; amandine
~ok #TRUE;s6002
~addchar #'A';dial
s6002
~t #228;#89;#252;#115;#0;#0;#0 ; coiffeur
~ok #TRUE;s6003
~addchar #'C';dial
s6003
~strcmp str601;dial;s6004
~texte #908
jsr attend_souris
~t #0;#0;#319;#199;#910;salle_fin2;#0
s6004
~strcmp str602;dial;s6005
~dialogue #0;#902;#906
jsr attend_souris
~t #0;#0;#319;#199;#910;salle_fin2;#0
s6005
~strcmp str603;dial;s6006
~dialogue #0;#893;#898
jsr attend_souris
~t #0;#0;#319;#199;#910;salle_fin2;#0
s6006
~strcmp str604;dial;s6007
~dialogue #0;#889;#891
jsr attend_souris
~t #0;#0;#319;#199;#910;salle_fin2;#0
s6007
*
* premiere phrase
~indic_equal #154;FALSE;s6008
brl s6012
s6008
~t #244;#122;#274;#147;#0;#0;#0 ; amandine
~ok #TRUE;s6009
~addchar #'A';dial
~set_indic #154;#TRUE
s6009
~t #228;#89;#252;#115;#0;#0;#0 ; coiffeur
~ok #TRUE;s6010
~addchar #'C';dial
~set_indic #154;#TRUE
s6010
~charcmp #'A';dial;s6011
~texte #900
s6011
~charcmp #'C';dial;s6012
~texte #887
s6012
*
~t #272;#95;#298;#128;#0;#0;#152 ; cliente
~ok #TRUE;s6013
~dialogue #0;#882;#885
s6013
~t #252;#55;#287;#81;#880;#0;#152 ; coiffeuse
rts
str601 str 'AA'
str602 str 'AC'
str603 str 'CC'
str604 str 'CA'
*---
s61
* @T(46,74,114,131,0,0,0)!amandine
~t #0;#0;#319;#199;#912;salle_fin2;#0
~set salle_fin2;salle
rts
*---
s62
~t #108;#45;#164;#106;#0;#0;#172 ; amandine
~ok #TRUE;s6201
~addchar #'A';dial
s6201
~t #187;#15;#248;#100;#0;#0;#172 ; homme
~ok #TRUE;s6202
~addchar #'M';dial
s6202
~indic_equal #172;TRUE;s6203
brl s6210
s6203
~charcmp #'A';dial;s6204
~dialogue #0;#914;#916
s6204
~strcmp str621;dial;s6205
~dialogue #0;#918;#919
s6205
~strcmp str622;dial;s6206
~texte #921
s6206
~charcmp #'M';dial;s6207
~dialogue #0;#923;#924
s6207
~strcmp str623;dial;s6208
~texte #926
s6208
~strcmp str624;dial;s6209
~texte #928
s6209
~set_indic #172;#FALSE
s6210
lda dial
and #$ff
cmp #2
bcc s6211
jsr attend_souris
~t #0;#0;#319;#199;#930;salle_fin2;#0
s6211
rts
str621 str 'AA'
str622 str 'AM'
str623 str 'MM'
str624 str 'MA'
*---
s63
~t #15;#58;#86;#131;#0;#0;#0 ; amandine
~ok #TRUE;s6301
~dialogue #0;#932;#937
jsr attend_souris
~t #0;#0;#319;#199;#941;salle_fin2;#0
s6301
~indic_diff #155;#TRUE;s6302
~t #90;#11;#174;#71;#940;#0;#156 ; vendeur
s6302
~t #90;#11;#174;#71;#939;#0;#155 ; vendeur
rts
*---
s64
~t #238;#76;#267;#131;#0;#0;#0 ; amandine
~ok #TRUE;s6401
~dialogue #58;#954;#958
s6401
~t #202;#63;#230;#114;#0;#0;#0 ; homme amandine
~ok #TRUE;s6402
~dialogue #65;#964;#969
s6402
~t #132;#93;#185;#114;#0;#0;#0 ; homme coke
~ok #TRUE;s6403
~dialogue #59;#943;#952
s6403
~t #81;#71;#121;#131;#0;#0;#0 ; gaby
~ok #TRUE;s6404
~dialogue #65;#960;#962
s6404
~t #206;#11;#259;#45;#0;#0;#157 ; couple
~ok #TRUE;s6405
~dialogue #0;#971;#975
s6405
rts
*---
s65
~t #92;#95;#146;#178;#0;#0;#0 ; amandine
~ok #TRUE;s6501
~addstring #'A';dial
s6501
~t #251;#92;#319;#199;#0;#0;#0 ; presentateur
~ok #TRUE;s6502
~addstring #'M';dial
s6502
~t #147;#92;#207;#119;#0;#0;#0 ; homme
~ok #TRUE;s6503
lda dial
and #$ff
bne s6503
~dialogue salle_fin2;#1011;#1022
s6503
~charcmp #'M';dial;s6504
~indic_diff #158;#FALSE;s6504
~dialogue #0;#978;#980
~set_indic #158;#TRUE
s6504
~strcmp str651;dial;s6505
~dialogue salle_fin2;#983;#993
s6505
~strcmp str652;dial;s6506
~dialogue salle_fin2;#995;#996
s6506
~charcmp #'A';dial;s6507
~indic_diff #158;#FALSE;s6507
~texte #998
~set_indic #158;#TRUE
s6507
~strcmp str653;dial;s6508
~dialogue salle_fin2;#1000;#1001
s6508
~strcmp str654;dial;s6509
~dialogue salle_fin2;#1003;#1009
s6509
rts
str651 str 'MM'
str652 str 'MA'
str653 str 'AM'
str654 str 'AA'
*---
s66
~t #13;#113;#65;#199;#0;#0;#96 ; mere
~ok #TRUE;s6601
~addchar #'M';dial
s6601
~t #254;#127;#319;#191;#0;#0;#96 ; amandine
~indic_equal #96;TRUE;s6602
brl s6609
s6602
~set_indic #96;FALSE
~ok #TRUE;s6603
~addchar #'A';dial
s6603
~charcmp #'A';dial;s6604
~texte #1033
s6604
~charcmp #'M';dial;s6605
~texte #1024
s6605
~strcmp str661;dial;s6606
~dialogue salle_fin2;#1035;#1042
s6606
~strcmp str662;dial;s6607
~dialogue salle_fin2;#1044;#1055
s6607
~strcmp str663;dial;s6608
~dialogue salle_fin2;#1026;#1029
s6608
~strcmp str664;dial;s6609
~texte #1031
jsr attend_souris
~set salle_fin2;salle
s6609
rts
str661 str 'AA'
str662 str 'AM'
str663 str 'MA'
str664 str 'MM'
*---
s67
~t #181;#0;#298;#72;#0;#0;#0 ; psy
~ok #TRUE;s6701
~indic_diff #11;TRUE;s6701
~dialogue #68;#1070;#1076
s6701
~ok #TRUE;s6702
~indic_diff #11;FALSE;s6702
~dialogue #68;#1065;#1068
s6702
~t #212;#81;#296;#197;#0;#0;#0 ; mere
~ok #TRUE;s6703
~indic_diff #11;TRUE;s6703
~dialogue #68;#1078;#1086
s6703
~ok #TRUE;s6704
~indic_diff #11;FALSE;s6704
~dialogue #68;#1057;#1063
s6704
rts
*---
s68
~t #181;#0;#319;#103;#1088;#-69;#0 ; immeuble
~t #97;#86;#173;#180;#1090;#-70;#0 ; photographe
~t #0;#0;#109;#75;#1089;#-71;#0 ; redacteur
~t #181;#109;#319;#199;#1091;#-72;#0 ; rotative
rts
*---
s69
~t #198;#123;#267;#170;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s6901
~dialogue #73;#1093;#1098
s6901
~t #162;#11;#210;#109;#0;#0;#0 ; secretaire
ldx #10
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s6902
lda #78
sta salle
bra s6903
s6902
lda #76
sta salle
s6903
lda ok
cmp #TRUE
bne s6904
~dialogue salle2;#1100;#1106
s6904
rts
*---
s70
~t #0;#86;#37;#199;#0;#0;#0 ; secretaire
~indic_diff #10;TRUE;s7001 ; jeu TV ok
~set #78;salle2;s7002
s7001
~set #76;salle2
s7002
~ok #TRUE;s7003
~dialogue #73;#1108;#1114
s7003
~t #53;#95;#133;#199;#0;#0;#0 ; redac chef
~ok #TRUE;s7004
~dialogue salle2;#1116;#1118
s7004
rts
*---
s71
~indic_diff #10;TRUE;s7101 ; jeu TV ok
~set #78;salle2;s7102
s7101
~set #76;salle2
s7102
~t #0;#0;#101;#89;#0;#0;#95 ; secretaire
~ok #TRUE;s7103
~addchar #'S';dial
s7103
~t #212;#0;#319;#89;#0;#0;#95 ; amandine
~ok #TRUE;s7104
~addchar #'A';dial
s7104
~indic_equal #95;TRUE;s7105
brl s7111
s7105
~set_indic #95;FALSE
~charcmp #'S';dial;s7106
~texte #1120
s7106
~strcmp str711;dial;s7107
~dialogue salle2;#1122;#1128
s7107
~strcmp str712;dial;s7108
~dialogue salle2;#1130;#1133
s7108
~charcmp #'A';dial;s7109
~texte #1135
s7109
~strcmp str713;dial;s7110
~dialogue #73;#1137;#1138
s7110
~strcmp str714;dial;s7111
~dialogue #73;#1140;#1142
s7111
rts
str711 str 'SA'
str712 str 'SS'
str713 str 'AS'
str714 str 'AA'
*---
s72
~indic_diff #10;TRUE;s7201 ; jeu TV ok
~set #78;salle2;s7202
s7201
~set #76;salle2
s7202
~t #9;#39;#86;#127;#0;#0;#0 ; journaliste gauche
~ok #TRUE;s7203
~dialogue salle2;#1144;#1148
s7203
~t #87;#47;#138;#128;#0;#0;#0 ; journaliste droit
~ok #TRUE;s7204
~dialogue #73;#1150;#1153
s7204
rts
*---
s73
~set_indic #160;FALSE
~t #135;#68;#208;#124;#0;#0;#0 ; redac chef
~ok #TRUE;s7301
~addchar #'R';dial
~set_indic #160;#TRUE
s7301 ~t #250;#88;#319;#199;#0;#0;#0 ; amandine
~ok #TRUE;s7302
~addchar #'A';dial
~set_indic #160;#TRUE
s7302 ~charcmp #'R';dial;s7303
~indic_diff #160;TRUE;s7303
~texte #1155
s7303 ~charcmp #'A';dial;s7304
~indic_diff #160;TRUE;s7304
~texte #1176
s7304 ~strcmp str731;dial;s7305
~indic_diff #160;TRUE;s7305
~dialogue #75;#1157;#1164
s7305 ~strcmp str732;dial;s7306
~indic_diff #160;TRUE;s7306
~dialogue #74;#1166;#1174
s7306 ~strcmp str733;dial;s7307
~indic_diff #160;TRUE;s7307
~dialogue #75;#1178;#1180
s7307 ~strcmp str734;dial;s7308
~indic_diff #160;TRUE;s7308
~dialogue #74;#1182;#1187
s7308 ~indic_diff #161;FALSE;s7309
~t #185;#136;#213;#155;#1189;#0;#161 ; journal
bra s7310
s7309 ~t 185;#136;#213;#155;#1190;#0;#162 ; journal
s7310 ~indic_diff #163;FALSE;s7311
~t #133;#132;#172;#163;#1191;#0;#163 ; journal
bra s7312
s7311 ~t #133;#132;#172;#163;#1192;#0;#164 ; journal
s7312 ~indic_diff #165;FALSE;s7313
~t #209;#107;#230;#133;#1193;#0;#165 ; journal
bra s7314
s7313 ~t #209;#107;#230;#133;#1194;#0;#166 ; journal
s7314 rts
str731 str 'RA'
str732 str 'RR'
str733 str 'AR'
str734 str 'AA'
*---
s74
~t #0;#0;#319;#199;#1196;salle_fin2;#0
rts
*---
s75
~t #0;#0;#319;#199;#1198;salle_fin2;#0
rts
*---
s76
~t #21;#113;#53;#149;#0;#0;#0 ; debile
~ok #TRUE;s7601
~texte #1200
s7601
~t #276;#106;#309;#143;#0;#0;#0 ; poivrot
~ok #TRUE;s7602
~dialogue salle_fin2;#1218;#1219
s7602
~t #89;#100;#127;#126;#0;#0;#0 ; barbu
~ok #TRUE;s7603
~dialogue salle_fin2;#1202;#1204
s7603
~t #131;#101;#153;#123;#0;#0;#0 ; fille
~ok #TRUE;s7604
~dialogue salle_fin2;#1206;#1208
s7604
~t #176;#94;#202;#113;#0;#0;#0 ; redac chef
~ok #TRUE;s7605
~texte #1210
jsr attend_souris
~set salle_fin2;salle
s7605
~t #219;#96;#234;#111;#0;#0;#0 ; noir
~ok #TRUE;s7606
~dialogue salle_fin2;#1212;#1213
s7606
~t #227;#112;#245;#125;#0;#0;#0 ; grincheux
~ok #TRUE;s7607
~dialogue salle_fin2;#1215;#1216
s7607
rts
*---
s77
~charcmp #'8';dial;s7701;s7703 ; derniere question
s7701
~t #97;#147;#154;#199;#0;#0;#170 ; odile
~t #247;#122;#306;#199;#0;#0;#170 ; jacques
~t #173;#129;#229;#199;#0;#0;#171 ; amandine
~indic_diff #170;TRUE;s7702
~dialogue #0;#1285;#1286 ; bonne rŽponse
~set #80;salle
s7702
~indic_diff #171;TRUE;s7703
~dialogue #0;#1285;#1286 ; bonne rŽponde amandine
~set #79;salle
jsr attend_souris
s7703
*
~charcmp #'7';dial;s7704;s7706 ; derniere question
s7704
~t #97;#147;#154;#199;#0;#0;#170 ; odile
~t #247;#122;#306;#199;#0;#0;#170 ; jacques
~t #173;#129;#229;#199;#0;#0;#171 ; amandine
ldx #170 ; some real asm code ;-)
lda indicateur-1,x
beq s7705
~dialogue #0;#1282;#1283
~set_indic #170;#FALSE
~setstring #'8';dial
s7705
~indic_diff #171;TRUE;s7706
~set #80;salle
jsr attend_souris
s7706
*
~charcmp #'6';dial;s7707;s7709 ; derniere question
s7707
~t #97;#147;#154;#199;#0;#0;#170 ; odile
~t #247;#122;#306;#199;#0;#0;#170 ; jacques
~t #173;#129;#229;#199;#0;#0;#171 ; amandine
ldx #170 ; some real asm code ;-)
lda indicateur-1,x
beq s7708
~dialogue #0;#1279;#1280
~set_indic #170;#FALSE
~setstring #'7';dial
s7708
~indic_diff #171;TRUE;s7709
~set #80;salle
jsr attend_souris
s7709
*
~charcmp #'5';dial;s7710;s7712 ; derniere question
s7710
~t #97;#147;#154;#199;#0;#0;#170 ; odile
~t #247;#122;#306;#199;#0;#0;#170 ; jacques
~t #173;#129;#229;#199;#0;#0;#171 ; amandine
ldx #170 ; some real asm code ;-)
lda indicateur-1,x
beq s7711
~dialogue #0;#1276;#1277
~set_indic #170;#FALSE
~setstring #'6';dial
s7711
~indic_diff #171;TRUE;s7712
~set #80;salle
jsr attend_souris
s7712
*
~charcmp #'4';dial;s7713;s7717 ; deuxieme question
s7713
~t #173;#129;#229;#199;#0;#0;#0 ; amandine
~ok #TRUE;s7714
~dialogue #0;#1268;#1269
jsr attend_souris
~set #80;salle ; sa m<>re la voit
s7714
~t #97;#147;#154;#199;#0;#0;#0 ; odile
~ok #TRUE;s7715
~setstring #'5';dial
~dialogue #0;#1265;#1266
s7715
~t #247;#122;#306;#199;#0;#0;#0 ; jacques
~ok #TRUE;s7716
~setstring #'5';dial
~dialogue #0;#1271;#1272
s7716
~charcmp #'5';dial;s7717 ; troisieme question
jsr attend_souris
~texte #1274
s7717
*
~charcmp #'3';dial;s7718;s7722 ; premiere question
s7718
~t #173;#129;#229;#199;#0;#0;#0 ; amandine
~ok #TRUE;s7719
~dialogue #0;#1256;#1257
jsr attend_souris
~set #80;salle ; sa mere la voit
s7719
~t #97;#147;#154;#199;#0;#0;#0 ; odile
~ok #TRUE;s7720
~setstring #'4';dial
~dialogue #0;#1253;#1254
s7720
~t #247;#122;#306;#199;#0;#0;#0 ; jacques
~ok #TRUE;s7721
~setstring #'4';dial
~dialogue #0;#1259;#1260
s7721
~charcmp #'4';dial;s7722 ; deuxieme question
jsr attend_souris
~texte #1263
s7722
*
~charcmp #'2';dial;s7723;s7727 ; presentation des candidats
s7723
~t #38;#111;#94;#199;#1228;#0;#182 ; presentateur
~t #173;#129;#229;#199;#0;#0;#0 ; amandine
~ok #TRUE;s7724
~setstring #'3';dial
~dialogue #0;#1236;#1241
s7724
~t #97;#147;#154;#199;#0;#0;#0 ; odile
~ok #TRUE;s7725
~setstring #'3';dial
~dialogue #0;#1230;#1234
s7725
~t #247;#122;#306;#199;#0;#0;#0 ; jacques
~ok #TRUE;s7726
~setstring #'3';dial
~dialogue #0;#1243;#1249
s7726
~charcmp #'3';dial;s7727 ; luc pose la premiere question
jsr attend_souris
~texte #1251
s7727
*
lda dial ; presentation pas encore faite
and #$ff
bne s7728
~t #38;#111;#94;#199;#0;#0;#170 ; presentateur
~ok #TRUE;s7728
~dialogue #0;#1224;#1226
~setstring #'2';dial
s7728
*
~t #0;#142;#29;#185;#0;#0;#0 ; machine ˆ applaudir
~ok #TRUE;s7729
~son #7500;#2;TRUE
s7729
rts
*---
s78
~t #0;#0;#319;#199;#1222;#77;#0
rts
*---
s79
~t #80;#39;#119;#102;#1306;#0;#122 ; jaune
~t #163;#27;#209;#69;#1288;#0;#123 ; luc
~t #131;#43;#162;#102;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s7901
~dialogue #82;#1290;#1296
s7901
~t #216;#62;#255;#102;#0;#0;#124 ; odile
lda ok
cmp #TRUE
bne s7902
~dialogue #0;#1298;#1304
s7902
ldx #124
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s7903
brl s7904
s7903
~t #264;#73;#284;#100;#1308;#0;#125 ; livre 1
~t #261;#107;#277;#112;#1309;#0;#126
~t #261;#114;#277;#119;#1310;#0;#127
~t #261;#121;#277;#126;#1311;#0;#128
~t #261;#128;#277;#133;#1312;#0;#129
~t #261;#135;#277;#140;#1313;#0;#130
~t #261;#142;#277;#147;#1314;#0;#131 ; livre7
s7904
rts
*---
s80
~set #81;salle
rts
*---
s81
~t #48;#22;#94;#45;#0;#0;#0 ; odile
lda ok
cmp #TRUE
bne s8101
~dialogue salle_fin2;#1316;#1319
s8101
~t #124;#31;#152;#45;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s8102
~dialogue salle_fin2;#1321;#1325
s8102
~t #110;#46;#162;#139;#0;#0;#0 ; luc
lda ok
cmp #TRUE
bne s8103
~dialogue salle_fin2;#1332;#1335
s8103
~t #10;#68;#106;#150;#0;#0;#0 ; mere
lda ok
cmp #TRUE
bne s8104
~dialogue salle_fin2;#1327;#1330
s8104
rts
*---
s82
~t #220;#12;#250;#62;#0;#0;#135 ; rap
lda ok
cmp #TRUE
bne s8201
~son #7100;#12;FALSE
s8201
ldx #119
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s8202
lda #83
sta salle2
bra s8203
s8202
lda #84
sta salle2
s8203
~t #0;#3;#27;#63;#1337;salle2;#0 ; hotesse
~t #98;#16;#128;#62;#1339;salle2;#0 ; amandine
~t #131;#22;#158;#61;#1338;salle2;#0 ; vieux
rts
*---
s83
~t #213;#13;#300;#95;#0;#0;#0 ; bob
lda ok
cmp #TRUE
bne s8301
ldx #134
lda #TRUE
sep #$20
sta indicateur-1,x
rep #$20
~addchar #'B';dial
s8301
~t #57;#26;#79;#88;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s8302
ldx #134
lda #TRUE
sep #$20
sta indicateur-1,x
rep #$20
~addchar #'A';dial
s8302
ldx #134
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s8303
brl s8309
s8303
ldx #134
lda #FALSE
sep #$20
sta indicateur-1,x
rep #$20
~charcmp #'A';dial
bne s8304
~texte #1355
s8304
~charcmp #'B';dial
bne s8305
~texte #1344
s8305
~strcmp dial;str831
bne s8306
~dialogue #84;#1346;#1349
s8306
~strcmp dial;str832
bne s8307
~dialogue #84;#1351;#1353
s8307
~strcmp dial;str833
bne s8308
~dialogue #84;#1357;#1365
s8308
~strcmp dial;str834
bne s8309
~dialogue #84;#1367;#1369
s8309
~t #84;#23;#195;#103;#1342;#0;#132 ; foule
~t #96;#0;#194;#20;#1341;#0;#133 ; aero
rts
str831 str 'BA'
str832 str 'BB'
str833 str 'AB'
str834 str 'AA'
*---
s84
~t #205;#96;#234;#163;#1371;#0;#169 ; amandine
~t #0;#124;#42;#199;#1373;#87;#0 ; plage
~t #85;#170;#261;#199;#1372;#-93;#0 ; hotel
~t #263;#87;#319;#178;#1374;#-85;#0 ; elastique
rts
*---
s85
~t #0;#107;#26;#130;#0;#86;#0 ; amandine
~t #13;#60;#39;#106;#1376;#0;#136 ; cadre
~t #66;#70;#100;#129;#1377;#0;#137 ; moniteur
~t #82;#22;#109;#49;#1378;#0;#138 ; aviateur
~t #227;#145;#255;#199;#0;#0;#139 ; homme 1
lda ok
cmp #TRUE
bne s8501
~dialogue #0;#1380;#1381
s8501
~t #52;#22;#76;#58;#0;#0;#140 ; matelas
lda ok
cmp #TRUE
bne s8502
~dialogue #0;#1383;#1384
s8502
~t #267;#121;#295;#146;#0;#0;#141 ; homme 2
lda ok
cmp #TRUE
bne s8503
~dialogue #0;#1386;#1391
s8503
rts
*---
s86
ldx #119
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s8601
ldx #32
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s8601
lda #-90 ; bob et amandine ensemble, veut un bŽbŽ, devient m<>re
sta salle2
s8601
ldx #119
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s8602
ldx #32
lda indicateur-1,x
and #$ff
cmp #FALSE
bne s8602
lda #-51 ; bob mais pas de bŽbŽ, statues
sta salle2
s8602
ldx #119
lda indicateur-1,x
and #$ff
cmp #FALSE
bne s8603
lda #-90 ; pas de bob, vieille fille
sta salle2
s8603
~t #0;#0;#319;#199;#1393;salle2;#0
rts
*---
s87
~t #12;#86;#30;#111;#1396;#92;#142 ; amandine
~t #122;#60;#149;#77;#1398;#0;#143 ; affiche plage
~t #183;#59;#211;#76;#1397;#0;#144 ; affiche lessive
~t #261;#60;#288;#76;#1399;#0;#145 ; affiche gŽnŽral
~t #159;#67;#182;#88;#0;#88;#0 ; soldats
~t #214;#59;#226;#83;#0;#0;#146 ; cabine 1
lda ok
cmp #TRUE
bne s8701
~dialogue #0;#1402;#1404
s8701
~t #227;#62;#243;#83;#0;#0;#147 ; cabine 2
lda ok
cmp #TRUE
bne s8702
~dialogue #0;#1406;#1407
s8702
~t #247;#69;#259;#87;#1395;#89;#0 ; m<>re
~t #68;#95;#85;#111;#1400;#0;#148 ; sss
rts
*---
s88
~t #2;#101;#66;#197;#0;#0;#0 ; flic1
lda ok
cmp #TRUE
bne s8801
~dialogue #92;#1412;#1419
s8801
~t #67;#105;#105;#147;#1410;#0;#173 ; flic2
~t #138;#122;#168;#194;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s8802
~dialogue #92;#1421;#1427
s8802
rts
*---
s89
~t #0;#0;#66;#199;#0;#0;#0 ; m<>re
lda ok
cmp #TRUE
bne s8901
~addchar #'M';dial
ldx #174
lda #TRUE
sep #$20
sta indicateur-1,x
rep #$20
s8901
~t #72;#125;#242;#199;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s8902
~addchar #'A';dial
ldx #174
lda #TRUE
sep #$20
sta indicateur-1,x
rep #$20
s8902
ldx #174
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s8903
brl s8909
s8903
ldx #174
lda #FALSE ; indicateur!=FALSE - LOGO
sep #$20
sta indicateur-1,x
rep #$20
~charcmp #'M';dial
bne s8904
~texte #1430
s8904
~strcmp dial;str891
bne s8905
~dialogue #92;#1432;#1439
s8905
~strcmp dial;str892
bne s8906
~dialogue #92;#1441;#1447
s8906
~charcmp #'A';dial
bne s8907
~texte #1449
s8907
~strcmp dial;str893
bne s8908
~dialogue #92;#1451;#1454
s8908
~strcmp dial;str894
bne s8909
~dialogue #92;#1456;#1463
s8909
~t #94;#98;#108;#107;#1465;#0;#175 ; disquette
~t #138;#16;#157;#46;#1466;#0;#176 ; vieux
rts
str891 str 'MM'
str892 str 'MA'
str893 str 'AM'
str894 str 'AA'
*---
s90
~t #183;#141;#199;#151;#1469;#0;#177 ; pancarte
~t #39;#88;#81;#175;#1470;#0;#178 ; m<>re
~t #201;#144;#265;#196;#1471;#0;#179 ; enfants bcbg
~t #277;#109;#319;#199;#1472;#0;#180 ; m<>re bcbg
~t #109;#148;#139;#183;#1473;#0;#181 ; enfant amandine
~t #140;#104;#182;#193;#1474;salle_fin;#0 ; amandine
rts
*---
s91
~t #165;#100;#189;#141;#1477;salle_fin;#0 ; chat
~t #194;#101;#262;#199;#1478;salle_fin;#0 ; amandine
rts
*---
s92
~t #0;#100;#57;#199;#0;#0;#0 ; brune
lda ok
cmp #TRUE
bne s9201
~dialogue salle_fin2;#1480;#1485
s9201
~t #24;#48;#62;#99;#1487;salle_fin2;#0 ; lunettes
~t #68;#41;#102;#72;#0;#0;#0 ; gaby
lda ok
cmp #TRUE
bne s9202
~dialogue salle_fin2;#1489;#1491
s9202
~t #103;#58;#135;#118;#1493;salle_fin2;#0 ; amandine
~t #124;#34;#164;#57;#0;#0;#0 ; brune
lda ok
cmp #TRUE
bne s9203
~dialogue salle_fin2;#1495;#1501
s9203
~t #165;#49;#201;#138;#0;#0;#0 ; blonde
lda ok
cmp #TRUE
bne s9204
~dialogue salle_fin2;#1503;#1507
s9204
~t #205;#70;#254;#156;#1509;salle_fin2;#0 ; chatain
rts
*---
s93
~t #39;#44;#110;#115;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s9301
~dialogue #95;#1512;#1520
s9301
~t #111;#34;#224;#115;#0;#0;#0 ; mike vincent
lda ok
cmp #TRUE
bne s9302
~dialogue #94;#1522;#1528
s9302
~t #244;#10;#286;#94;#0;#0;#167 ; homme en blanc
lda ok
cmp #TRUE
bne s9303
~dialogue #0;#1530;#1534
s9303
~t #294;#15;#319;#49;#0;#0;#167 ; femme
lda ok
cmp #TRUE
bne s9304
~dialogue #0;#1536;#1538
s9304
rts
*---
s94
~t #32;#88;#70;#199;#1542;salle_fin;#0 ; amandine
~t #71;#71;#122;#199;#1541;salle_fin;#0 ; mike
~t #125;#82;#174;#199;#1543;salle_fin;#0 ; danseuse
rts
*---
s95
~dialogue #96;#1546;#1551
rts
*---
s96
~t #252;#105;#319;#199;#0;#0;#0 ; nudiste
lda ok
cmp #TRUE
bne s9601
~dialogue #97;#1554;#1559
s9601
~t #160;#3;#235;#94;#0;#0;#0 ; ministre
lda ok
cmp #TRUE
bne s9602
~dialogue #97;#1561;#1567
s9602
~t #238;#0;#319;#80;#0;#0;#0 ; general
lda ok
cmp #TRUE
bne s9603
~dialogue #98;#1569;#1572
s9603
rts
*---
s97
* ~t #79;#34;#130;#101;#1587;salle_fin2;#0 ; fille
~t #79;#34;#130;#101;#0;#0;#0 ; fille
lda ok
cmp #TRUE
bne s9701
~dialogue salle_fin2;#1793;#1796
s9701
~t #185;#21;#237;#80;#0;#0;#0 ; journaliste
lda ok
cmp #TRUE
bne s9702
~dialogue salle_fin2;#1575;#1585
s9702
* ~t #131;#29;#180;#87;#1588;salle_fin2;#0 ; animateur
~t #131;#29;#180;#87;#0;#0;#0 ; animateur
lda ok
cmp #TRUE
bne s9703
~dialogue salle_fin2;#1588;#1590
s9703
rts
*---
s98
lda #TRUE
sta fade
lda #99
sta salle
rts
*---
s99
ldx #119
lda indicateur-1,x
and #$ff
cmp #TRUE
bne s9901
lda #100
sta salle2
bra s9902
s9901
lda #101
sta salle2
s9902
~t #18;#2;#100;#98;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s9903
~dialogue salle2;#1601;#1609
s9903
~t #182;#22;#277;#120;#0;#0;#0 ; redac chef
lda ok
cmp #TRUE
bne s9904
~dialogue salle2;#1591;#1599
s9904
rts
*---
s100
ldx #32 ; veut un enfant
lda indicateur-1,x
and #$ff
cmp #TRUE
beq s10001
brl s10009
s10001
~t #0;#11;#54;#137;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s10002
~addchar #'A';dial
s10002
~t #67;#25;#160;#137;#0;#0;#0 ; tom
lda ok
cmp #TRUE
bne s10003
~addchar #'T';dial
s10003
~charcmp #'A';dial
bne s10004
~texte #1615
s10004
~strcmp dial;str1001
bne s10005
~dialogue #102;#1617;#1625
s10005
~strcmp dial;str1002
bne s10006
~dialogue #102;#1627;#1629
s10006
~charcmp #'T';dial
bne s10007
~texte #1631
s10007
~strcmp dial;str1003
bne s10008
~dialogue #102;#1633;#1641
s10008
~strcmp dial;str1004
bne s10009
~dialogue #102;#1643;#1652
s10009
ldx #32
lda indicateur-1,x
and #$ff
cmp #FALSE
bne s10011
* ~t #0;#11;#54;#137;#1613;#51;#0 ; amandine
~t #0;#11;#54;#137;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s10010
~dialogue #51;#1799;#1800
s10010
* ~t #67;#25;#180;#137;#1612;#51;#0 ; tom
~t #67;#25;#180;#137;#0;#0;#0 ; tom
lda ok
cmp #TRUE
bne s10011
~dialogue #51;#1797;#1798
s10011
rts
str1001 str 'AT'
str1002 str 'AA'
str1003 str 'TT'
str1004 str 'TA'
*---
s101
~t #0;#20;#100;#105;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s10101
~addchar #'A';dial
s10101
~t #109;#26;#182;#105;#0;#0;#0 ; secretaire
lda ok
cmp #TRUE
bne s10102
~addchar #'S';dial
s10102
~charcmp #'S';dial
bne s10103
~texte #1655
s10103
~strcmp dial;str1011
bne s10104
~dialogue salle_fin2;#1657;#1671
s10104
~strcmp dial;str1012
bne s10105
~dialogue salle_fin2;#1673;#1680
s10105
~charcmp #'A';dial
bne s10106
~texte #1682
s10106
~strcmp dial;str1013
bne s10107
~dialogue salle_fin2;#1684;#1687
s10107
~strcmp dial;str1014
bne s10108
~dialogue salle_fin2;#1689;#1698
s10108
rts
str1011 str 'SS'
str1012 str 'SA'
str1013 str 'AS'
str1014 str 'AA'
*---
s102
* ~t #255;#11;#311;#98;#1789;#0;#183 ; presentateur
~t #255;#11;#311;#98;#0;#0;#183 ; presentateur
lda ok
cmp #TRUE
bne s10200
~dialogue salle_fin2;#1789;#1790
s10200
~t #192;#0;#239;#60;#0;#0;#0 ; gros
lda ok
cmp #TRUE
bne s10201
~dialogue salle_fin2;#1729;#1739
s10201
~t #37;#28;#76;#57;#0;#0;#0 ; chauve
lda ok
cmp #TRUE
bne s10202
~dialogue salle_fin2;#1714;#1727
s10202
~t #184;#64;#221;#104;#0;#0;#0 ; brun
lda ok
cmp #TRUE
bne s10203
~dialogue salle_fin2;#1741;#1759
s10203
~t #81;#57;#101;#77;#0;#0;#0 ; gros sourcils
lda ok
cmp #TRUE
bne s10204
~dialogue salle_fin2;#1774;#1787
s10204
~t #90;#12;#130;#53;#0;#0;#0 ; barbu
lda ok
cmp #TRUE
bne s10205
~dialogue salle_fin2;#1761;#1772
s10205
~t #137;#0;#188;#61;#0;#0;#0 ; amandine
lda ok
cmp #TRUE
bne s10206
~dialogue salle_fin2;#1701;#1712
s10206
rts
*--- Les deux perdus et le gagnŽ
s103
s104
jsr initialisation2
lda #1
sta salle
jmp attend_souris
*-----------------------
* t
*-----------------------
* F,s xx%
* D,s yy%
* B,s xx2%
* 9,s yy2%
* 7,s nouveau_texte%
* 5,s nouvelle_salle%
* 3,s indicateur%
* 1,s RTS
t
lda #FALSE
sta ok
lda taskWHERE+2
cmp 15,s
bcc t1
lda 11,s
cmp taskWHERE+2
bcc t1
lda taskWHERE
cmp 13,s
bcc t1
lda 9,s
cmp taskWHERE
bcs t2
t1 brl t9 ; wrong click
*--- Teste la fin du son
t2
brl t2_bis
lda follow
beq t2_bis
pha
PushWord #7
_FFGeneratorStatus
pla
and #%10000000_00000000
beq t2_bis
stz follow ; le son est fini
* lda seqPlay ; midi playing
* beq t2_bis ; nope
*
* _MSResume
*---
t2_bis
lda 3,s ; indicateur(indicateur)=0
beq t3
tax ; indicateur(indicateur)=false
lda indicateur-1,x
and #$ff
cmp #FALSE
bne t1
t3
sep #$20
lda #TRUE
sta indicateur-1,x
rep #$20
lda 7,s
sta nouveau_texte
lda 5,s ; if nouvelle_salle < 0
bpl t4 ; fade = true
ldx #TRUE
stx fade
eor #-1 ; set ABS(nouvelle_salle)
inc ; c'est le complŽment ˆ 2
t4
sta nouvelle_salle
bne t5 ; if nouveau_texte <> 0 and nouvelle_salle = 0
lda nouveau_texte
beq t5
jsr texte
lda #TRUE
sta ok
*---
t5
lda nouvelle_salle
beq t6
lda nouveau_texte
beq t6
jsr texte
jsr attend_souris
* while ... wend
lda nouvelle_salle
sta salle
* cmp #2 ; la chambre d'Amandine
* bne t5_bis
*
* lda #1
* sta follow
t5_bis
lda #TRUE
sta ok
*---
t6
lda nouvelle_salle
beq t7
lda nouveau_texte
bne t7
lda nouvelle_salle
sta salle
* cmp #2
* bne t7
*
* lda #1
* sta follow
*---
t7
lda #TRUE
sta ok
*---
t9
lda 1,s ; rŽcup<75>re RTS
plx ; dŽpile les param<61>tres
plx
plx
plx
plx
plx
plx
sta 1,s ; remet le RTS
*--- The following 6 bytes would have saved hundreds of others...
* lda ok
* cmp #TRUE
rts
*-----------------------
* touche
*-----------------------
*
*touche
* rts
*
*-----------------------
* charge
*-----------------------
*
*charge
* rts
*
*-----------------------
* ecrit
*-----------------------
*
*ecrit
* rts
*
*-----------------------
* changement_salle
*-----------------------
changement_salle
lda salle
bne changement_salle1
rts
changement_salle1
lda salle
cmp ancienne_salle
bne changement_salle2
rts
changement_salle2
jsr image
jsr sonorisation
jsr jingle
jsr fenetre
lda salle
sta ancienne_salle
stz dial
stz numero
rts
* jmp curseur
*-----------------------
* changement_texte
*-----------------------
*
*changement_texte
* rts
*
*-----------------------
* initialisation
*-----------------------
initialisation
sep #$20
ldx #NB_INDICATEURS
lda #FALSE
]lp sta indicateur-1,x
dex
bne ]lp
rep #$20
lda #1
sta salle
stz ancienne_salle
rts
*-----------------------
* init_resolution
*-----------------------
*
*init_resolution
* rts
*
*-----------------------
* init_constantes
*-----------------------
init_constantes
lda #NB_SALLES
sta nombre_salle
dec
sta salle_fin2
dec
sta salle_fin
rts
*-----------------------
* init_routine_tiny
*-----------------------
*
*init_routine_tiny
* rts
*
*-----------------------
* init_routine_son
*-----------------------
*
*init_routine_son
* rts
*
*-----------------------
* init_fondu
*-----------------------
*
*init_fondu
* rts
*
*-----------------------
* init_image_titre
*-----------------------
*
*init_image_titre
* lda #FALSE
* sta fade
* stz salle
* lda #TRUE
* sta fade
* jmp image
*
*-----------------------
* init_souris
*-----------------------
*
*init_souris
* rts
*
*-----------------------
* init_fenetres_texte
*-----------------------
*
*init_fenetres_texte
* rts
*
*-----------------------
* load_font
*-----------------------
load_font
jsr font_it
bcc lf_ok
pha
PushLong #fntSTR1
PushLong #fntSTR2
PushLong #errSTR3
PushLong #errSTR2
_TLTextMountVolume
pla
lf_ok
rts
*--- Really load the font
font_it
PushWord #$0900
PushWord #$0016 ; Courier.9
PushWord #0
_InstallFont
rts
*-----------------------
* set_texte
*-----------------------
set_texte
PushWord #0
PushWord #$29
_ReadBParam
pla
cmp #20
bcc st_ok
rts
* index
* TEXTES : +16
* DEDICACES : +16
* SOUSTITRES : +16
st_ok
jsr st_setit ; try IIgs language
bcc st_ok99
lda #0 ; if not, try EN US
jsr st_setit
bcc st_ok99
lda #2 ; it not, force FR - It always exists
jsr st_setit
st_ok99
rts
*---
st_setit ; set language code
sta saveLANGUAGE
asl
tax
lda tblLANG,x
sta pDEDICACES+16
sta pSOUSTITRES+16
sta pTEXTES+16
lda #pTEXTES ; check file exists
sta proOPEN+4
jsl GSOS
dw $2010
adrl proOPEN
bcs st_setit99
lda proOPEN+2
sta proCLOSE+2
jsl GSOS
dw $2014
adrl proCLOSE
st_setit99
rts
*---
tblLANG
asc 'us' ; 0
asc 'uk'
asc 'fr' ; 2
asc 'nl'
asc 'es'
asc 'it'
asc 'de'
asc 'se'
asc 'us'
asc 'ca'
asc 'nl' ; 10
asc 'he'
asc 'jp'
asc 'ar'
asc 'gr'
asc 'tr'
asc 'fi'
asc 'ta'
asc 'hi'
asc 'us' ; 19
*-----------------------
* load_texte
*-----------------------
load_texte
lda #pTEXTES
sta proOPEN+4
jsl GSOS
dw $2010
adrl proOPEN
bcs lt_err2
lda proOPEN+2
sta proREAD+2
sta proCLOSE+2
lda proEOF
sta proREAD+8
lda proEOF+2
sta proREAD+10
PushLong #0
PushLong proEOF
PushWord myID
PushWord #%11000000_00001100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta ptrTEXTES
sta proREAD+4
ldy #2
lda [3],y
sta ptrTEXTES+2
sta proREAD+6
pld
pla
pla
bcc lt_ok
lt_err
jsl GSOS
dw $2014
adrl proCLOSE
lt_err2
pha
PushLong #filSTR1
PushLong #errSTR2
PushLong #errSTR1
PushLong #errSTR2
_TLTextMountVolume
pla
brl meQUIT1
lt_ok
jsl GSOS
dw $2012
adrl proREAD
bcs lt_err
jsl GSOS
dw $2014
adrl proCLOSE
rts
*-----------------------
* load_dedicaces
*-----------------------
load_dedicaces
lda #pDEDICACES
sta proOPEN+4
jsl GSOS
dw $2010
adrl proOPEN
bcs ld_err2
lda proOPEN+2
sta proREAD+2
sta proCLOSE+2
lda proEOF
sta proREAD+8
lda proEOF+2
sta proREAD+10
PushLong #0
PushLong proEOF
PushWord myID
PushWord #%11000000_00001100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta ptrDEDICACES
sta proREAD+4
ldy #2
lda [3],y
sta ptrDEDICACES+2
sta proREAD+6
pld
pla
pla
bcc ld_ok
ld_err
jsl GSOS
dw $2014
adrl proCLOSE
ld_err2
stz ptrDEDICACES ; force reset
stz ptrDEDICACES+2
rts
ld_ok
jsl GSOS
dw $2012
adrl proREAD
bcs ld_err
jsl GSOS
dw $2014
adrl proCLOSE
rts
*-----------------------
* load_soustitres
*-----------------------
load_soustitres
lda #pSOUSTITRES
sta proOPEN+4
jsl GSOS
dw $2010
adrl proOPEN
bcs ls_err2
lda proOPEN+2
sta proREAD+2
sta proCLOSE+2
lda proEOF
sta proREAD+8
lda proEOF+2
sta proREAD+10
PushLong #0
PushLong proEOF
PushWord myID
PushWord #%11000000_00001100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta ptrSOUSTITRES
sta proREAD+4
ldy #2
lda [3],y
sta ptrSOUSTITRES+2
sta proREAD+6
pld
pla
pla
bcc ls_ok
ls_err
jsl GSOS
dw $2014
adrl proCLOSE
ls_err2
stz ptrSOUSTITRES
stz ptrSOUSTITRES+2
ls_ok
jsl GSOS
dw $2012
adrl proREAD
bcs ls_err
jsl GSOS
dw $2014
adrl proCLOSE
rts
*-----------------------
* init_texte
*-----------------------
init_texte
stz nbTEXTES ; 0 texts on entry
lda proEOF ; is file empty?
ora proEOF+2
bne it1
rts
it1
lda ptrTEXTES
sta dpFROM
clc
adc proEOF
sta dpTO
lda ptrTEXTES+2
sta dpFROM+2
adc proEOF+2
sta dpTO+2
it2
lda dpFROM+2 ; did we reach the end of the file?
cmp dpTO+2
bcc it3
lda dpFROM
cmp dpTO
bcc it3
rts ; we are done!
it3
lda [dpFROM]
and #$ff
cmp #'*' ; do we have a new string?
beq it4
* LOGO
* cmp #$0d ; return
* bne it3alt
* sep #$20
* lda #0
* sta [dpFROM]
* rep #$20
it3alt
inc dpFROM ; next char, please
bne it2
inc dpFROM+2
bra it2
it4 inc dpFROM ; we skip the *
bne it5
inc dpFROM+2
it5
lda nbTEXTES ; save the address of the string
asl
asl
tax
lda dpFROM
sta tblTEXTES,x
lda dpFROM+2
sta tblTEXTES+2,x
inc nbTEXTES ; increment the number of strings
lda nbTEXTES ; into our limit
cmp #NB_TEXTES
bcc it2
rts
*-----------------------
* init_dedicaces
*-----------------------
init_dedicaces
stz nbDEDICACES ; 0 texts on entry
lda proEOF ; is file empty?
ora proEOF+2
bne id1
rts
id1
lda ptrDEDICACES
sta dpFROM
clc
adc proEOF
sta dpTO
lda ptrDEDICACES+2
sta dpFROM+2
adc proEOF+2
sta dpTO+2
id2
lda dpFROM+2 ; did we reach the end of the file?
cmp dpTO+2
bcc id3
lda dpFROM
cmp dpTO
bcc id3
rts ; we are done!
id3
lda [dpFROM]
and #$ff
cmp #'*' ; do we have a new string?
beq id4
cmp #$0a ; le LF
beq id3bis
cmp #$0d ; le CR
bne id3alt
id3bis
sep #$20
lda #0
sta [dpFROM]
rep #$20
id3alt
inc dpFROM ; next char, please
bne id2
inc dpFROM+2
bra id2
id4 sep #$20 ; put a 00 for a C-string
lda #0
sta [dpFROM]
rep #$20
inc dpFROM ; we skip the *
bne id5
inc dpFROM+2
id5
lda nbDEDICACES ; save the address of the string
asl
asl
tax
lda dpFROM
sta tblDEDICACES,x
lda dpFROM+2
sta tblDEDICACES+2,x
inc nbDEDICACES ; increment the number of strings
lda nbDEDICACES ; into our limit
cmp #NB_DEDICACES
bcc id2
rts
*-----------------------
* init_soustitres
*-----------------------
init_soustitres
stz nbSOUSTITRES ; 0 texts on entry
lda proEOF ; is file empty?
ora proEOF+2
bne is1
rts
is1
lda ptrSOUSTITRES
sta dpFROM
clc
adc proEOF
sta dpTO
lda ptrSOUSTITRES+2
sta dpFROM+2
adc proEOF+2
sta dpTO+2
is2
lda dpFROM+2 ; did we reach the end of the file?
cmp dpTO+2
bcc is3
lda dpFROM
cmp dpTO
bcc is3
rts ; we are done!
is3
lda [dpFROM]
and #$ff
cmp #'*' ; do we have a new string?
beq is4
cmp #$0a ; le LF
beq is3bis
cmp #$0d ; le CR
bne is3alt
is3bis
sep #$20
lda #0
sta [dpFROM]
rep #$20
is3alt
inc dpFROM ; next char, please
bne is2
inc dpFROM+2
bra is2
is4 sep #$20 ; put a 00 for a C-string
lda #0
sta [dpFROM]
rep #$20
inc dpFROM ; we skip the *
bne is5
inc dpFROM+2
is5
lda nbSOUSTITRES ; save the address of the string
asl
asl
tax
lda dpFROM
sta tblSOUSTITRES,x
lda dpFROM+2
sta tblSOUSTITRES+2,x
inc nbSOUSTITRES ; increment the number of strings
lda nbSOUSTITRES ; into our limit
cmp #NB_SOUSTITRES
bcc is2
rts
*-----------------------
* initialisation2
*-----------------------
initialisation2
lda #1
sta salle
lda #149
sta texte_enfant
sep #$20
ldx #NB_INDICATEURS
]lp stz indicateur-1,x
dex
bne ]lp
rep #$20
stz numero
stz dial
stz ancienne_salle
stz salle_bain
rts
*-----------------------
* image
*-----------------------
*
*image
* jsr souris_off
* jsr tiny_load
* jsr tiny_disp
* jsr tiny_palette
* jmp souris_on
*
*-----------------------
* tiny_load
*-----------------------
*
*tiny_load
* rts
*
*-----------------------
* tiny_disp
*-----------------------
*
*tiny_disp
* rts
*
*-----------------------
* tiny_palette
*-----------------------
*
*tiny_palette
* rts
*
*-----------------------
* fade_image
*-----------------------
*
*fade_image
* rts
*
*-----------------------
* fadein
*-----------------------
*
*fadein
* rts
*
*-----------------------
* fadeout
*-----------------------
*
*fadeout
* rts
*
*-----------------------
* fenetre(a%, b%, c%, d%)
*-----------------------
fenetre
lda salle
beq fenetre9
dec
asl
asl
asl
tax
lda tblFENETRE+2,x
sta myRECT
lda tblFENETRE,x
sta myRECT+2
lda tblFENETRE+6,x
sta myRECT+4
lda tblFENETRE+4,x
sta myRECT+6
* PushLong #myRECT
* _FrameRect
fenetre9
rts
*-----------------------
* texte(texte_affiche%)
*-----------------------
texte
cmp #0
bne texte1
rts
texte1
cmp nbTEXTES
bcc texte2
beq texte2
rts
texte2
sta le_texte
dec
asl
asl
tax
lda tblTEXTES+2,x ; get pointer to string
pha
lda tblTEXTES,x
pha
lda tblTEXTES+4,x ; calculate length
sec
sbc tblTEXTES,x
dec
pha ; push length
PushLong #myRECT
PushWord #0 ; left justified
_LETextBox2
rts
myRECT dw 161
dw 2
dw 198
dw 317
*-----------------------
* dialogue
*-----------------------
* 7,s destination%
* 5,s debut%
* 3,s fin%
* 1,s RTS
dialogue
lda 7,s
sta temp_salle
lda 5,s
sta debut
lda 3,s
sta fin
]lp lda debut
jsr texte
jsr attend_souris
inc debut
lda debut
cmp fin
bcc ]lp
beq ]lp
lda temp_salle
beq dialogue9
sta salle
dialogue9
lda 1,s ; rŽcup<75>re RTS
plx ; dŽpile les param<61>tres
plx
plx
sta 1,s ; remet le RTS
rts
more_variables
debut ds 2
fin ds 2
temp_salle ds 2
*-----------------------
* curseur
*-----------------------
*
*curseur
* rts
*
*-----------------------
* attend_souris
*-----------------------
attend_souris
PushWord #0
PushWord #%00000000_00000100
PushLong #taskREC
_GetNextEvent
*---
lda follow
beq as_bis
pha
PushWord #7
_FFGeneratorStatus
pla
and #%10000000_00000000
beq as_bis
stz follow ; le son est fini
* lda seqPlay ; midi playing
* bne as_bis ; nope
*
* _MSResume
as_bis
*---
pla
beq attend_souris
rts
*-----------------------
* attend_souris_touche
*-----------------------
*
*attend_souris_touche
* PushWord #0
* PushWord #%00000000_00001100
* PushLong #taskREC
* _GetNextEvent
* pla
* beq attend_souris_touche
* rts
*
*-----------------------
* souris_off
*-----------------------
souris_off
_HideCursor
rts
*-----------------------
* souris_on
*-----------------------
souris_on
_ShowCursor
rts
*-----------------------
* sonorisation
*-----------------------
sonorisation
jsr stop_son
lda salle
cmp #5
beq sono1
cmp #10
beq sono1
cmp #11
beq sono1
cmp #28
beq sono1
cmp #44
beq sono1
cmp #45
beq sono1
cmp #77
beq sono1
cmp #79
beq sono1
cmp #82
beq sono1
cmp #86
beq sono1
cmp #87
beq sono1
cmp #89
beq sono1
cmp #95
beq sono1
cmp #98
bne sono2
sono1 jsr charge_son
sono2 lda salle
cmp #24+1
bcs sono4
cmp #22
bcc sono4
lda #22
jsr charge_son
sono4 lda salle
cmp #40+1
bcs sono6
cmp #34
bcc sono6
lda #34
jsr charge_son
sono6 lda salle ; telephone sonne
cmp #2
bne sono7
lda ancienne_salle
cmp #1
bne sono7
lda #2
jsr charge_son
~son #4200;#6;FALSE
sono7
lda salle ; restaurant brouhaha
cmp #13
bne sono8
jsr charge_son
~son #10000;#12;FALSE
sono8
lda salle ; marchŽ
cmp #27
bne sono9
jsr charge_son
~son #7500;#12;FALSE
sono9
lda salle ; vernissage
cmp #43
bne sono10
jsr charge_son
~son #7500;#12;FALSE
sono10
lda salle ; aspirateur
cmp #52
bne sono11
jsr charge_son
~son #7500;#12;FALSE
sono11
lda salle ; woody
cmp #59
bne sono12
jsr charge_son
~son #7500;#12;FALSE
sono12
lda salle ; soirŽe coke,cheb
cmp #64
bne sono13
jsr charge_son
~son #4915;#12;FALSE
sono13
lda salle ; tele erasure
cmp #65
bne sono14
jsr charge_son
~son #5600;#12;FALSE
sono14
lda salle ; Afrique
cmp #66
bne sono15
jsr charge_son
~son #10000;#12;FALSE
sono15
lda salle ; psy
cmp #67
bne sono16
jsr charge_son
~son #10000;#12;FALSE
sono16
lda salle ; groupe
cmp #78
bne sono17
jsr charge_son
~son #8000;#12;FALSE
sono17
lda salle ; danseuses
cmp #94
bne sono18
jsr charge_son
~son #9400;#12;FALSE
sono18
lda salle
cmp #103 ; fin 1
beq sono19
cmp #104 ; fin 2
bne sono20
sono19
jsr charge_son
~son #11025;#1;FALSE
sono20
rts
*-----------------------
* jingle
*-----------------------
jingle
lda salle
cmp #10
bne jingle1
~son #9400;#2;TRUE
jingle1
lda salle
cmp #11
bne jingle2
~son #10000;#2;TRUE
jingle2
lda salle
cmp #34
bcc jingle3
cmp #40+1
bcs jingle3
~son #9400;#2;TRUE
jingle3
lda salle
cmp #22
bcc jingle4
cmp #24+1
bcs jingle4
~son #14000;#2;TRUE
jingle4
lda salle
cmp #28
bne jingle5
~son #10000;#2;TRUE
jingle5
lda salle
cmp #44
bne jingle6
~son #7500;#2;TRUE
jingle6
lda salle
cmp #45
bne jingle7
~son #10000;#2;TRUE
jingle7
lda salle
cmp #79
bne jingle8
~son #7500;#2;TRUE
jingle8
lda salle
cmp #86
bne jingle9
~son #10000;#2;TRUE
jingle9
lda salle
cmp #87
bne jingle10
~son #5000;#2;TRUE
jingle10
lda salle
cmp #89
bne jingle11
~son #10000;#2;TRUE
jingle11
lda salle
cmp #95
bne jingle12
~son #10000;#2;TRUE
jingle12
lda salle
cmp #98
bne jingle13
~son #10000;#2;TRUE
jingle13
rts
*-----------------------
* son
*-----------------------
* 7,s frequence%
* 5,s repetition%
* 3,s anti_click
* 1,s RTS
son
lda fgSND ; sound load
bne son2 ; not ok, skip
lda #1
sta follow
* lda seqPlay ; midi playing
* beq son1 ; nope
*
* _MSSuspend
son1 PushWord #%0000_0000_1000_0000
_FFStopSound
PushWord #$0701
PushLong #waveSTART
_FFStartSound
* lda seqPlay ; midi playing
* beq son2 ; nope
*
* _MSResume
son2 lda 1,s ; rŽcup<75>re RTS
plx ; dŽpile les param<61>tres
plx
plx
sta 1,s ; remet le RTS
rts
*--- Donnees Sound Tool Set
waveSTART ds 4 ; waveStart
waveSIZE ds 2 ; waveSize
dw 214 ; freqOffset
dw $0000 ; docBuffer
dw $0000 ; bufferSize
ds 4 ; nextWavePtr
dw 255 ; volSetting
*-----------------------
* volume
*-----------------------
*
*volume
* rts
*
*-----------------------
* stop_son
*-----------------------
stop_son
stz follow
lda fgSND ; sound load
bne stop_son2 ; not ok, skip
* lda seqPlay ; midi playing
* beq stop_son1 ; nope
*
* _MSSuspend
stop_son1
PushWord #%0000_0000_1000_0000
_FFStopSound
* lda seqPlay ; midi playing
* beq stop_son2 ; nope
*
* _MSResume
stop_son2
rts
*-----------------------
* charge_son
*-----------------------
charge_son
pha ; set the sound filename
PushLong #tempSTR
PushWord #3
PushWord #0
_Int2Dec
lda tempSTR
ora #'00'
sta pSON+17
lda tempSTR+1
ora #'00'
sta pSON+18
*
lda #pSON ; load the sound now
sta proOPEN+4
stz fgSND ; flag for sound load
lda haSND ; do we have a sound handle?
ora haSND+2
beq cs_1
PushLong haSND ; yes, dispose it
_DisposeHandle
stz haSND ; and say we have
stz haSND+2 ; no sound handle
cs_1
jsl GSOS
dw $2010
adrl proOPEN
bcs cs_err
lda proOPEN+2
sta proREAD+2
sta proCLOSE+2
lda proEOF
sta proREAD+8
lda proEOF+2
sta proREAD+10
PushLong #0
PushLong proEOF
PushWord myID
PushWord #%11000000_00001100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta waveSTART
sta proREAD+4
ldy #2
lda [3],y
sta waveSTART+2
sta proREAD+6
pld
pla
sta haSND
pla
sta haSND+2
bcc cs_ok
cs_err
inc fgSND ; load KO
bra cs_end
cs_ok
jsl GSOS
dw $2012
adrl proREAD
bcs cs_err
lda proEOF+1 ; length is $00001F22
inc ; return is $0020
sta waveSIZE
cs_end
jsl GSOS
dw $2014
adrl proCLOSE
rts
*-----------------------
* fade_son
*-----------------------
*
*fade_son
* rts
*
*-----------------------
* titre
*-----------------------
titre
lda #2
jsr nowWAIT
pha
_GetBackColor
PullWord tempBG
pha
_GetForeColor
PullWord tempFG
pea $0000
_SetBackColor
pea $0fff
_SetForeColor
jsr titre_affichage
PushWord tempBG
_SetBackColor
PushWord tempFG
_SetForeColor
lda #2
jmp nowWAIT
tempFG ds 2
tempBG ds 2
*-----------------------
* titre_debut
*-----------------------
*
*titre_debut
* rts
*
*-----------------------
* titre_fin
*-----------------------
*
*titre_fin
* rts
*
*-----------------------
* titre_affichage
*-----------------------
titre_affichage
jsr fadeOUT
jsr cls
lda #1 ; L'EGERIE
ldy #9
jsr dedicace
lda #2 ; ou
ldy #11
jsr dedicace
]lp jsr Random
cmp #75
bcs ]lp
ora #1 ; pour l'impair
pha
ldy #13
jsr soustitre
pla
inc
ldy #14
jsr soustitre
jsr fadeIMAGE
lda #3
jsr nowWAIT
*---
jsr fadeOUT
jsr cls
lda #3 ; APP
ldy #9
jsr dedicace
lda #4 ; INPI
ldy #11
jsr dedicace
jsr fadeIMAGE
lda #2
jsr nowWAIT
*---
jsr fadeOUT
jsr cls
lda #5 ; RŽalisŽ par
ldy #9
jsr dedicace
lda #6 ; Coulon & Cotton
ldy #11
jsr dedicace
jsr fadeIMAGE
lda #2
jsr nowWAIT
*---
jsr fadeOUT
jsr cls
lda #7 ; Version IIgs
ldy #8
jsr dedicace
lda #8 ; BDS
ldy #10
jsr dedicace
lda #9 ; Vignau & Zardini
ldy #12
jsr dedicace
jsr fadeIMAGE
lda #3
jsr nowWAIT
*---
jsr fadeOUT
jsr cls
lda #10 ; Traduit par
ldy #9
jsr dedicace
lda #11 ; Coulon & Cotton
ldy #11
jsr dedicace
jsr fadeIMAGE
lda #2
jsr nowWAIT
*---
jsr fadeOUT
jsr cls
lda #1 ; L'EGERIE
ldy #9
jsr dedicace
lda #2 ; ou
ldy #11
jsr dedicace
]lp jsr Random
and #3 ; keep the last two bits
clc
adc #17
ora #1 ; pour l'impair
pha
ldy #11
jsr dedicace
pla
inc
ldy #12
jsr dedicace
jsr fadeIMAGE
lda #2
jsr nowWAIT
*---
jsr fadeOUT
jsr cls
jsr fadeIMAGE
lda #12 ; Bon...
ldy #8
jsr dedicace
lda #1
jsr nowWAIT
lda #13 ; Qu'est-ce...
ldy #10
jsr dedicace
lda #1
jsr nowWAIT
lda #14 ; Houhou
ldy #12
jsr dedicace
lda #1
jsr nowWAIT
lda #15 ; Bon
ldy #14
jsr dedicace
lda #1
jsr nowWAIT
lda #16 ; Bonsoir
ldy #16
jsr dedicace
lda #2
jsr nowWAIT
*---
jmp fadeOUT
*-----------------------
* titre_texte
*-----------------------
*
*titre_texte
* rts
*
*-----------------------
* dedicaces(texte_affiche%)
*-----------------------
dedicace
cmp #0
bne dedicace1
rts
dedicace1
cmp nbDEDICACES
bcc dedicace2
beq dedicace2
rts
dedicace2
dec
asl
asl
tax
lda tblDEDICACES,x
sta lenFROM
lda tblDEDICACES+2,x
sta lenFROM+2
lda tblDEDICACES+4,x
sec
sbc tblDEDICACES,x
dec
dec
sta lenTO
tya
asl
pha
asl
asl
clc
adc 1,s
sta lenTO+2
PushLong lenFROM ; space for result is above
PushWord lenTO
_TextWidth
lda #320
sec
sbc 1,s
lsr
sta 1,s
PushWord lenTO+2
_MoveTo
PushLong lenFROM
_DrawCString
rts
*-----------------------
* soustitre(texte_affiche%)
*-----------------------
soustitre
cmp #0
bne soustitre1
rts
soustitre1
cmp nbSOUSTITRES
bcc soustitre2
beq soustitre2
rts
soustitre2
dec
asl
asl
tax
lda tblSOUSTITRES,x
sta lenFROM
lda tblSOUSTITRES+2,x
sta lenFROM+2
lda tblSOUSTITRES+4,x
sec
sbc tblSOUSTITRES,x
dec
dec
sta lenTO
tya
asl
pha
asl
asl
clc
adc 1,s
sta lenTO+2
PushLong lenFROM ; space for result is above
PushWord lenTO
_TextWidth
lda #320
sec
sbc 1,s
lsr
sta 1,s
PushWord lenTO+2
_MoveTo
PushLong lenFROM
_DrawCString
rts
*-----------------------
* affiche
*-----------------------
*
*affiche
* rts
*
*-----------------------
* titre_pause
*-----------------------
*
*titre_pause
* rts
*
*-----------------------
* cls
*-----------------------
cls
ldx #$7d00-2
lda #0
]lp stal $e12000,x
stal $012000,x
dex
dex
bpl ]lp
rts
*-----------------------
* stop
*-----------------------
*
*stop
* rts
*
*-----------------------
* TEXT ROUTINES
*-----------------------
*-----------------------
* add_char
*-----------------------
* 5,s char to add
* 3,s pointer to string
* 1,s RTS
add_char
lda 3,s
sta dpTO
sep #$30 ; 02 AB
lda (dpTO) ; cannot exceed 255 chars
cmp #$ff
bcs add_char1
inc ; 03 AB
sta (dpTO) ; 03
tay
lda 5,s ; C
sta (dpTO),y ; 03 ABC
add_char1
rep #$30
lda 1,s ; rŽcup<75>re RTS
plx ; dŽpile les param<61>tres
plx
sta 1,s ; remet le RTS
rts
*-----------------------
* add_string
*-----------------------
* 5,s pointer to source string
* 3,s pointer to destination string
* 1,s RTS
add_string
lda 5,s
sta dpFROM
lda 3,s
sta dpTO
* check added length
sep #$30 ; cannot exceed 255 chars
lda (dpTO) ; get destination length
tay
lda (dpFROM)
tax ; get source length
clc
adc (dpTO)
bcs add_string1
sta (dpTO)
rep #$20
inc dpFROM ; from++
tya ; to += original length
inc
clc
adc dpTO
sta dpTO
]lp sep #$20
lda (dpFROM) ; recopie les caract<63>res
sta (dpTO)
rep #$20
inc dpFROM
inc dpTO
dex
bne ]lp
add_string1
rep #$30
lda 1,s ; rŽcup<75>re RTS
plx ; dŽpile les param<61>tres
plx
sta 1,s ; remet le RTS
rts
*-----------------------
* charcmp
*-----------------------
* 5,s character to compare
* 3,s pointer to string
* 1,s RTS
charcmp
lda 3,s
sta dpFROM
lda 5,s ; A
ora #$0100 ; 01 A
xba
sta dpTO
ldx #FALSE ; default value, les chanes sont diffŽrentes
lda (dpFROM)
cmp dpTO ; compare strings
bne charcmp1
ldx #TRUE ; m<EFBFBD>me chane
charcmp1
lda 1,s ; rŽcup<75>re RTS
ply ; dŽpile les param<61>tres
ply
sta 1,s ; remet le RTS
txa ; return value
cmp #TRUE ; met les valeurs de comparaison
rts
*-----------------------
* strcmp
*-----------------------
* 5,s pointer to string 1
* 3,s pointer to string 2
* 1,s RTS
strcmp
lda 3,s
sta dpFROM
lda 5,s
sta dpTO
ldx #FALSE ; default value, les chanes sont diffŽrentes
sep #$30
ldy #0 ; 02 AB
]lp lda (dpFROM),y
cmp (dpTO),y
bne strcmp2
iny
tya
cmp (dpFROM)
bcc ]lp
beq ]lp
strcmp1
ldx #TRUE ; m<EFBFBD>me chane
strcmp2
rep #$30
lda 1,s ; rŽcup<75>re RTS
ply ; dŽpile les param<61>tres
ply
sta 1,s ; remet le RTS
txa ; return value
cmp #TRUE ; met les valeurs de comparaison
rts
*-----------------------
* data
*-----------------------
tblFENETRE
*
* 1 Ë 10
*
dw 168,4,319,199
dw 163,0,319,199
dw 0,136,319,199
dw 0,0,165,199
* dw 143,61,319,199
dw 180,0,319,199 ; telephone
dw 0,136,319,199
dw 148,0,308,199
dw 104,4,310,82
dw 0,0,148,199
* dw 194,100,319,199
dw 220,80,319,199
*
* 11 Ë 20
*
dw 0,53,128,199
dw 97,3,311,99
dw 10,114,309,189
* dw 89,4,319,76
dw 89,0,319,76
dw 0,138,319,199
dw 0,130,319,199
dw 146,0,319,158
* dw 133,20,319,179
dw 166,20,319,179
dw 0,141,319,199
dw 0,0,159,199
*
* 21 Ë 30
*
* dw 142,0,319,199
dw 152,0,319,199
dw 0,0,0,0
dw 0,0,0,0
dw 0,0,0,0
dw 10,10,309,100
* dw 149,0,319,199
dw 169,0,319,199
dw 171,0,319,199
dw 0,0,166,199
dw 0,148,319,199
dw 162,0,319,199
*
* 31 Ë 40
*
dw 0,0,157,199
dw 165,0,319,199
dw 0,152,319,199
dw 0,0,0,0
dw 0,0,0,0
dw 0,0,0,0
dw 0,0,0,0
dw 0,0,0,0
dw 0,0,0,0
dw 0,0,0,0
*
* 41 Ë 50
*
dw 127,0,319,199
dw 0,149,319,199
dw 0,151,319,199
dw 163,0,319,199
dw 0,0,151,199
dw 173,0,319,199
dw 0,0,154,199
dw 155,0,319,199
dw 0,119,319,199
dw 0,119,319,199
*
* 51 Ë 60
*
dw 0,135,319,199
dw 170,0,319,199
dw 10,10,309,46
dw 0,145,319,199
dw 145,0,319,199
dw 0,0,0,0
dw 113,0,319,199
dw 130,0,319,199
dw 0,0,195,199
dw 0,0,155,199
*
* 61 Ë 70
*
dw 0,138,319,199
* dw 10,110,309,199
dw 10,154,309,199
dw 90,72,309,189
dw 0,138,319,199
dw 10,10,309,75
dw 67,64,250,199
dw 0,0,168,199
dw 68,118,319,199
dw 0,0,153,199
dw 140,31,309,189
*
*
* 71 Ë 80
*
dw 0,91,319,199
dw 162,0,319,199
dw 0,0,319,67
* dw 156,0,319,199
dw 160,0,319,199
* dw 158,0,319,199
dw 160,0,319,199
dw 10,10,309,80
dw 10,10,309,98
dw 80,106,319,199
dw 10,103,260,189
dw 0,0,0,0
*
* 81 Ë 90
*
* dw 163,0,319,199
dw 184,0,319,199
dw 0,139,319,199
dw 0,114,319,199
dw 0,0,319,72
dw 161,0,319,120
dw 171,0,319,199
dw 10,10,309,57
dw 10,10,309,96
dw 162,0,319,124
* dw 10,10,309,73
dw 10,0,309,88
*
* 91 Ë 100
*
dw 0,0,152,199
dw 10,130,309,192
dw 10,116,309,192
* dw 161,0,319,199
dw 164,0,319,199
dw 0,0,319,78
dw 0,0,159,199
dw 0,130,319,199
dw 0,0,0,0
* dw 0,121,319,199
dw 0,131,319,199
* dw 151,10,309,192
dw 160,0,320,200
*
* 101 Ë 105
*
dw 10,106,309,192
dw 10,106,309,192
dw 0,0,0,0
dw 0,0,0,0
dw 0,0,0,0
*-----------------------
* Variables
*-----------------------
*--- Variables du jeu
x1 ds 2
x2 ds 2
y1 ds 2
y2 ds 2
ok ds 2
follow ds 2
nombre_salle ds 2
salle_fin ds 2
salle_fin2 ds 2
salle2 ds 2
salle ds 2
ancienne_salle ds 2
nouvelle_salle ds 2
nouveau_texte ds 2
dial ds 3 ; 1 (len) + 2 lettres
*dial2 ds 3
numero ds 7 ; 1 (len) + 6 chiffres
le_texte ds 2 ; texte courant (pour le refresh)
*disquette ds 2
chiffre ds 2
fade ds 2
texte_enfant ds 2
salle_bain ds 2
indicateur ds NB_INDICATEURS
*--- Variables Apple IIgs
nbTEXTES ds 2
nbDEDICACES ds 2
nbSOUSTITRES ds 2
tblDEDICACES ds 4*NB_DEDICACES
tblSOUSTITRES ds 4*NB_SOUSTITRES
tblTEXTES ds 4*NB_TEXTES