Le jeu est fini

This commit is contained in:
Antoine Vignau 2024-01-06 23:31:19 +01:00
parent 11ffa8be4f
commit c65e42f06a
11 changed files with 22168 additions and 44688 deletions

View File

@ -3014,7 +3014,7 @@ L50F6 DB $41
DB $01
ASC 'M'
DB $0C
dfb 154 ; $AD (174)
dfb 149 ; $AD (174)
ASC 'VOUS ETES DANS LE LABORATOIRE'00
DB $41
DB $96
@ -5148,7 +5148,7 @@ L5A21 DB $41
DB $00
ASC 'M'
dfb 8 ; $18
dfb 154 ; $AC (172)
dfb 149 ; $AC (172)
ASC 'IL Y A UN ROBINET TOUJOURS OUVERT'00
DB $41
DB $0C ; 12
@ -8392,11 +8392,11 @@ L65FF DB $41
ASC 'AUTO'00
ASC 'M'
DB $14 ; was $1E
dfb 145 ; was $A5 (165)
dfb 140 ; was $A5 (165)
ASC 'VOUS REMARQUEZ LE GENERATEUR'00
ASC 'M'
DB $14 ; was $1E
dfb 154 ; was $AD (173)
dfb 149 ; was $AD (173)
ASC 'D'27'OXYGENE DU VAISSEAU'00
* DB $41
* DB $C6
@ -11567,11 +11567,11 @@ L72CA DB $41
DB $05
ASC 'M'
dfb 8 ; $3C (60)
dfb 145 ; $95 (149)
dfb 140 ; $95 (149)
ASC 'LA CHAMBRE EST EQUIPEE D'27'UN'00
ASC 'M'
dfb 8 ; $18 (25)
dfb 154 ; $9D (157)
dfb 149 ; $9D (157)
ASC 'SYSTEME D'27'OXYGENATION AUTONOME'00
* DB $41
* DB $0C
@ -12210,7 +12210,7 @@ L74D2 DB $41
DB $02
ASC 'M'
DB $10 ; was $18
dfb 154 ; $A0 (160)
dfb 149 ; $A0 (160)
ASC 'VOUS ETES DANS LA BIBLIOTHEQUE'00
DB $4A
DB $06

View File

@ -366,7 +366,7 @@ resumeMUSIC9
*--------------------------------------
checkREPLAY
checkREPLAY rep #$30
lda fgMIDI
bne checkREPLAY99
@ -376,7 +376,7 @@ checkREPLAY
checkREPLAY99
rts
*--------------------------------------
replayMUSIC

View File

@ -10,12 +10,59 @@
*-----------------------------------
* LES PRIMITIVES 8-BITS EN 16-BITS
*-----------------------------------
*-----------------------------------
* ROUTINE TEMPS (MERCI THE TINIES)
*-----------------------------------
mx %11
intTIME ds 4
dw 60
dw $a55a
lda #60
stal intTIME+4
ldal fgTIME
beq intTIME1
lda switchENERGIE+1 ; switch is off
bne intTIME1
sed
ldal SECONDES
sec
sbc #1
stal SECONDES
cmp #$99
bne intTIME1
lda #$59
stal SECONDES
ldal MINUTES
sec
sbc #1
stal MINUTES
cmp #$99
bne intTIME1
lda #0
stal MINUTES ; on a perdu !!!
stal SECONDES
intTIME1 cld
clc
rtl
*-----------------------------------
mx %11
printNIVEAU ora #'0'
sta strNIVEAU+9
sta strNIVEAU+7
rep #$30
@ -31,16 +78,68 @@ printNIVEAU ora #'0'
mx %00
HGR rep #$30
* PushWord #0
* _ClearScreen
printTEMPS lda fgTIME
bne pt1
rts
pt1 sep #$30
lda MINUTES
and #%1111_0000
lsr
lsr
lsr
lsr
ora #'0'
sta strTEMPS
lda MINUTES
and #%0000_1111
ora #'0'
sta strTEMPS+1
lda SECONDES
and #%1111_0000
lsr
lsr
lsr
lsr
ora #'0'
sta strTEMPS+3
lda SECONDES
and #%0000_1111
ora #'0'
sta strTEMPS+4
rep #$30
PushWord #250
PushWord #20
_MoveTo
PushLong #strTEMPS
_DrawCString
rts
*-----------------------------------
mx %00
FULLHGR rep #$30
PushWord #0
_ClearScreen
sep #$30
rts
*-----------------------------------
mx %00
HGR rep #$30
lda ptrSCREEN
sta dpTO
lda ptrSCREEN+2
sta dpTO+2
ldy #160*160
ldy #160*160-2
lda #0
]lp sta [dpTO],y
dey
@ -54,13 +153,16 @@ HGR rep #$30
mx %11
RDKEY phx
jsr CURSOR ; shows the cursor
RDKEY jsr CURSOR ; shows the cursor
rep #$30
]lp inc VBLCounter0 ; for RND
jsr checkREPLAY
jsr printTEMPS
jsr testENERGIE
bcs RDKEY99
pha
PushWord #%00000000_00001000
PushLong #taskREC
@ -75,7 +177,10 @@ RDKEY phx
lda taskMESSAGE
sep #$30
plx
clc
rts
RDKEY99 sep #$30
sec
rts
*-----------------------------------
@ -102,9 +207,10 @@ eraseLINES sta pointerRECT
*-----------
pointerRECT adrl bottomRECT
bottomRECT dw row15+1,0,row19,319
lastlineRECT dw row18+1,0,row19,319
screenRECT dw 0,0,200,320
drawRECT dw 0,0,159,239 ; 319
bottomRECT dw 160,0,199,319
lastlineRECT dw 190,0,199,319
cursorRECT dw 0,0,0,0 ; y2 and x2 are y1+charWIDTH and x1+charWIDTH
*-----------------------------------
@ -112,7 +218,6 @@ cursorRECT dw 0,0,0,0 ; y2 and x2 are y1+charWIDTH and x1+charWIDTH
mx %11
CURSOR_ERASE
phx
rep #$30
lda textY
@ -137,9 +242,30 @@ CURSOR_ERASE
sta textX
sep #$30
plx
rts
*-----------------------------------
mx %11
WHITE_SPACE
rep #$30
lda textY
sta cursorRECT+4
sec
sbc #charWIDTH
sta cursorRECT
lda textX
sta cursorRECT+2
clc
adc #charWIDTH
sta cursorRECT+6
lda #cursorRECT
jmp eraseLINES ; retour en 8-bits
*-----------------------------------
mx %11
@ -181,8 +307,7 @@ GOTOXY stx textX
mx %11
COUT phx
phy
COUT
rep #$30
and #$ff
cmp #chrRET ; next line, please
@ -196,7 +321,7 @@ COUT phx
*----------- next X position
lda textX
COUT0 lda textX
clc
adc #charWIDTH
sta textX
@ -204,8 +329,6 @@ COUT phx
bcs COUT1
COUT99 sep #$30
ply
plx
rts
*----------- next Y position
@ -291,31 +414,6 @@ COUT2 lda #row19 ; on se remet sur la derni
jsr eraseLINES ; en 8-bits ˆ la sortie
brl COUT99
*----------- Exit
*
* De 160 ˆ 199, ce sont les lignes de texte
*
*text2shr dw 9 ; 0
* dw 19 ; 1
* dw 29 ; 2
* dw 39 ; 3
* dw 49 ; 4
* dw 59 ; 5
* dw 69 ; 6
* dw 79 ; 7
* dw 89 ; 8
* dw 99 ; 9
* dw 109 ; 10
* dw 119 ; 11
* dw 129 ; 12
* dw 139 ; 13
* dw 149 ; 14
* dw 159 ; 15
* dw 169 ; 16
* dw 179 ; 17
* dw 189 ; 18
* dw 199 ; 19
*
*-----------------------------------
mx %11
@ -542,23 +640,33 @@ BFF0 ds 16
mx %00
showPIC rep #$30
showPIC stz fgTIME
rep #$30
and #$00ff
asl
tax
lda tblIMAGES,x
bne L92A5
showPIC99 sep #$30
inc fgTIME
rts
mx %00
L92A5 sta dpFROM
PushLong #drawRECT
_FrameRect
PushLong #screenRECT
_GetPortRect
PushLong #drawRECT
_SetPortRect
L92A6 ldy #0
lda (dpFROM),y
and #$ff
beq showPIC99
bne L92A7
jmp drawEXIT
L92A7 CMP #'A' ; A $41 CURSET
BNE L92B1
@ -623,7 +731,7 @@ L930C CMP #'O' ; O $4F OUTPUT
L9313 lda #0
sep #$30
sta A2
rts
jmp drawEXIT
mx %00
@ -824,6 +932,14 @@ L94D8 iny
and #$ff
sep #$30
sta A2 ; the variable at $400
drawEXIT rep #$30
PushLong #screenRECT
_SetPortRect
sep #$30
inc fgTIME
rts
mx %00

View File

@ -10,10 +10,10 @@
*
strVOUSDETENEZ
asc 0D'Vous avez en votre possession : '00
asc 'Vous avez en votre possession : '00
strVOUSRIEN
asc 0D'Vous ne devez pas etre fatigue, vous'0D
asc 'Vous ne devez pas etre fatigue, vous'0D
asc 'n'27'avez rien sur vous'00
strPOINT
@ -34,7 +34,8 @@ strILFAITNOIR
strVOSYEUX asc 'Vos yeux ne voient plus rien.'0D00
strNIVEAU asc 'NIVEAU : 0'00 ; +9 pour le niveau
strNIVEAU asc 'NIVEAU 0'00 ; +7 pour le niveau
strTEMPS asc '00:00'00
strILYA asc 0D'Il y a aussi :'00
strCOMMA asc ','00
@ -44,7 +45,7 @@ strRETURN asc 0D00
strCOMMANDE asc 0D'Ordre ? '00
strJENECOMPRENDS
asc 0D'Je ne comprends pas'00
asc 'Je ne comprends pas'00
strIMPOSSIBLE
asc 0D'Impossible '00
@ -55,21 +56,24 @@ strEXCLAM
strREPLAY asc 0D'Voulez-vous rejouer ? '00
strPERDU
strPERDU asc 0d'Comme je le pensais, vous vous etes'0d
asc 'stupidement fait avoir, et votre cadavre'
asc '(ou ce qu'27'il en reste) reposera a jamais'
asc 'dans l'27'espace...'0d00
strGAGNE asc ' D'27'accord,'0D
asc 'vous m'27'avez battu, mais c'27'est un coup'0D
asc 'de chance, et la prochaine fois ma'0D
asc 'vengeance sera terrible.'0D
asc 'Prenez peur, car le jour ou je serai'0D
asc 'a nouveau la, ma puissance n'27'aura plus'0D
asc 'de limites, alors l'27'heure de la souf-'0D
asc '-france aura sonne...'0D
asc ' Dr GENIUS.'00
strGAGNE asc 'D'27'accord,'0d
asc 'vous m'27'avez battu, mais c'27'est un coup'0d
asc 'de chance, et la prochaine fois ma'0d
asc 'vengeance sera terrible.'0d
asc 'Prenez peur, car le jour ou je serai'0d
asc 'a nouveau la, ma puissance n'27'aura plus'0d
asc 'de limites, alors l'27'heure de la souf-'0d
asc '-france aura sonne...'0d
asc ' Dr GENIUS.'0d00
strINTRO asc ' LE RETOUR DU Dr GENIUS'0D
asc ' Vous avez 20 minutes et'0D
asc ' 400 unites de force pour'0D
strINTRO asc ' LE RETOUR DU Dr GENIUS'0d
asc ' Vous avez 20 minutes et'0d
asc ' 400 unites de force pour'0d
asc ' remplir votre mission...'00
*-----------------------------------
@ -253,14 +257,6 @@ refO dfb $bd
dfb 40,33,41,53,43,10,00,21,22,26
dfb 01,06,00,17,20,00,47,19,00
O dfb $bd
dfb 40,33,41,53,43,10,00,21,22,26
dfb 01,06,00,17,20,00,47,19,00
*refO$ da $bdbd
* da O$1,O$2,O$3,O$4,O$5,O$6,O$7,O$8,O$9,O$10
* da O$11,O$12,O$13,O$14,O$15,O$16,O$17,O$18,O$19
tblO$ da $bdbd
da O$1,O$2,O$3,O$4,O$5,O$6,O$7,O$8,O$9,O$10
da O$11,O$12,O$13,O$14,O$15,O$16,O$17,O$18,O$19
@ -370,7 +366,7 @@ MP$5 asc 'ARGON'
* on fera index-1 b/c 8-bits
*
V = 139+1
V = 139+2
tblVL$ dfb $bd
dfb <V$1,<V$2,<V$3,<V$4,<V$5,<V$6,<V$7,<V$8,<V$9,<V$10
@ -387,7 +383,7 @@ tblVL$ dfb $bd
dfb <V$111,<V$112,<V$113,<V$114,<V$115,<V$116,<V$117,<V$118,<V$119,<V$120
dfb <V$121,<V$122,<V$123,<V$124,<V$125,<V$126,<V$127,<V$128,<V$129,<V$130
dfb <V$131,<V$132,<V$133,<V$134,<V$135,<V$136,<V$137,<V$138,<V$139
dfb <V$200
dfb <V$200,<V$201
tblVH$ dfb $bd
dfb >V$1,>V$2,>V$3,>V$4,>V$5,>V$6,>V$7,>V$8,>V$9,>V$10
@ -404,7 +400,7 @@ tblVH$ dfb $bd
dfb >V$111,>V$112,>V$113,>V$114,>V$115,>V$116,>V$117,>V$118,>V$119,>V$120
dfb >V$121,>V$122,>V$123,>V$124,>V$125,>V$126,>V$127,>V$128,>V$129,>V$130
dfb >V$131,>V$132,>V$133,>V$134,>V$135,>V$136,>V$137,>V$138,>V$139
dfb >V$200
dfb >V$200,>V$201
tblV dfb $bd
dfb 01,01,02,02,03,03,04,04,05,05 ; 1
@ -421,7 +417,7 @@ tblV dfb $bd
dfb 75,76,77,77,78,78,79,80,80,80
dfb 81,81,82,83,83,84,84,84,85,85 ; 121
dfb 85,86,87,87,88,88,89,89,90 ; last was 00, now 90
dfb 200
dfb 200,201
V$1 str 'N'
V$2 str 'NORD'
@ -564,6 +560,7 @@ V$138 str 'TOTA'
V$139 str 'RANG' ; RANGER (TUBE DANS GLACE => RANG TUBE)
V$200 str 'TIME'
V$201 str 'MUSI'
*
* Les reponses (str7xxx)
@ -690,16 +687,12 @@ str4618_1 asc 'Mais, que se passe-t-il, vous avez du'0d
asc 'vaisseau de poche fonce sur le soleil.'00
str4618_2 asc 'Vous venez de realiser que Genius'0d
asc 'pleurait de JOIE...!'00
str4618_3 asc 'Comme je le pensais, vous vous etes'0d
asc 'stupidement fait avoir, et votre cadavre'
asc '(ou ce qu'27'il en reste) reposera a jamais'
asc 'dans l'27'espace...'00
str4620 asc 'La soucoupe a explose au decollage.'00
str4630 asc 'Energie restante :'00
str4640 asc 'Petit drole... Le chronometre est'0d
asc 'affiche en permanence'00
str4650 asc 'Le temps que vous aviez pour votre'0d
str4650 asc 0d'Le temps que vous aviez pour votre'0d
asc 'mission est ecoule, vous avez echoue.'00
str4660 asc 'Votre trajectoire est bonne, pourquoi la'
asc 'corriger ?'00
@ -713,7 +706,7 @@ str4700 asc 'Vous remarquez un boitier de radio-'0d
str4710 asc ''00
str4720 asc ''00
str4730 asc 'Que regardez vous ?'00
str4740 asc 'Le tube de nitroglycerine vient d'270d
str4740 asc 0d'Le tube de nitroglycerine vient d'270d
asc 'exploser, vous etes pulverise.'00
str4750 asc 'La bombe a retardement vient d'270d
asc 'exploser, vous etes pulverise.'00
@ -735,7 +728,7 @@ str4810 asc 'Vous auriez du corriger la trajectoire,'0d
asc 'vous avez percute le soleil.'00
str4820 asc 'A force de traverser les salles radio-'0d
asc '-actives, vous etes mort contamine.'00
str4830 asc 'Il fait de plus en plus chaud...'00
str4830 asc 0d'Il fait de plus en plus chaud...'00
str4840 asc 'L'27'ordinateur vient d'27'exploser!'00
str4845 asc 'Vous avez du le laisser allume.'00
str4850 asc 'Comment !!! Vous etes aveugle.'00

Binary file not shown.

View File

@ -72,7 +72,7 @@ maxTROW = 19
charHEIGHT = 10
charWIDTH = 8
row0 = charHEIGHT-1 ; 9
row0 = charHEIGHT-2 ; 9 - 1 partout...
row1 = row0+charHEIGHT ; 19
row2 = row1+charHEIGHT ; 29
row3 = row2+charHEIGHT ; 39
@ -115,6 +115,11 @@ ICI phk
tdc
sta myDP
lda #screenRECT
stal $300
lda #^screenRECT
stal $302
_TLStartUp
pha
_MMStartUp
@ -234,6 +239,10 @@ okSHADOW
* IL FAUT JOUER MAINTENANT
*-----------------------------------
sei
PushLong #intTIME
_SetHeartBeat
cli
jmp PLAY
*-----------------------------------
@ -242,6 +251,11 @@ okSHADOW
QUIT rep #$30
jsr stopMIDI
sei
PushLong #intTIME
_DelHeartBeat
cli
meQUIT PushWord #refIsPointer
PushLong ssREC
@ -313,7 +327,6 @@ loadBACK _HideCursor
PushLong #ptrE12000
PushLong #32768
_BlockMove
_ShowCursor
rts
*-----------------------------------
@ -322,9 +335,7 @@ loadBACK _HideCursor
*----------------------------------- Open
doLOAD rep #$30
jsr doSOUNDOFF
rep #$30
doLOAD jsr doSOUNDOFF
jsr saveBACK
PushWord #30
@ -337,7 +348,6 @@ doLOAD rep #$30
jsr loadBACK
jsr doSOUNDON
rep #$30
lda replyPTR
bne doLOAD1
@ -345,16 +355,13 @@ doLOAD rep #$30
doLOAD1 jsr copyPATH
jsr loadALL
sep #$30
rts
mx %
mx %00
*----------------------------------- Save
doSAVE rep #$30
jsr doSOUNDOFF
rep #$30
doSAVE jsr doSOUNDOFF
jsr saveBACK
PushWord #25
@ -367,7 +374,6 @@ doSAVE rep #$30
jsr loadBACK
jsr doSOUNDON
rep #$30
lda replyPTR
bne doSAVE1
@ -375,7 +381,6 @@ doSAVE rep #$30
doSAVE1 jsr copyPATH
jsr saveALL
sep #$30
rts
*--- Recopie le filename du fichier de sauvegarde

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -12,14 +12,10 @@
* SOFTSWITCHES AND FRIENDS
*-----------------------------------
CH = $24 ; cursor horizontal position
CV = CH+2 ; cursor vertical position
LINNUM = $50 ; result from GETADR
textX = $30 ; les X/Y pour afficher les
textY = textX+2 ; caracteres QuickDraw II
nbOaP = 10 ; on peut porter dix objets
LINNUM = $50 ; result from GETADR
chrLA = $08
chrRA = $15
@ -32,6 +28,7 @@ chrOUI = 'O'
chrNON = 'N'
idxTIMER = 200
idxMUSIC = 201
*-----------------------------------
@ -84,20 +81,14 @@ idxTIMER = 200
PLAY sep #$30
jsr initALL
REPLAY sep #$30
jsr HGR
* jsr HOME ; clear text screen
* lda #0 ; move cursor to 0,16 au lieu de 0,20
* sta CH
* lda #16 ; au lieu de 20 LoGo
* sta CV
* jsr TABV ; on a 20 lignes de 10 caract<63>res de haut
lda #0
sta textX
jsr FULLHGR
rep #$30 ; init 16-bits, c'est mieux
stz textX
lda #row16
sta textY
sep #$30
*-----------------------------------
* DU BASIC A L'ASSEMBLEUR (BEURK)
*-----------------------------------
@ -150,12 +141,11 @@ REPLAY sep #$30
:110 jmp :200
:130 jsr HGR
jsr setMIXEDON
@print #strILFAITNOIR
jsr :30000
jmp :500
:140 jsr HGR
jsr setMIXEDON
@print #strVOSYEUX
jmp :500
@ -163,7 +153,7 @@ REPLAY sep #$30
* 200 - description salle
*-----------------------------------
:200 jsr setHGR
:200 jsr HGR
@draw SALLE
lda A2 ; trace des dessins
@ -258,7 +248,7 @@ REPLAY sep #$30
bcc :310
beq :310
@print #strRETURN
* @print #strRETURN
*-----------------------------------
* 500 - ACCEPTATION COMMANDE
@ -305,11 +295,17 @@ REPLAY sep #$30
*-----------------------------------
:900 cmp #idxTIMER
bne :915
bne :905
jsr switchENERGIE
jmp :100
:905 cmp #idxMUSIC
bne :915
jsr switchMUSIC
jmp :100
*-----------------------------------
* 910 - CONTROLE MVT
*-----------------------------------
@ -914,7 +910,7 @@ tbl4000 da $bdbd,:4010,:4020,:4030,:4040,:4050,:4060,:4070,:4080,:4090
:4250 @print #str4250
rts
:4260 jsr setHGR
:4260 jsr HGR
@draw #57
lda #44
sta SALLE
@ -990,7 +986,7 @@ tbl4000 da $bdbd,:4010,:4020,:4030,:4040,:4050,:4060,:4070,:4080,:4090
bne :4481
jmp :500
:4481 @print #str4480
jmp :perdu
jmp :perdu_bis
:4490 @print #str4490
@print #str4491
@ -1011,7 +1007,7 @@ tbl4000 da $bdbd,:4010,:4020,:4030,:4040,:4050,:4060,:4070,:4080,:4090
:4540 @print #str4540
rts
:4550 jsr setHGR
:4550 jsr HGR
@draw #56 ; LOGO
jsr :12020
lda #21
@ -1087,11 +1083,20 @@ MDP$ asc 'MANOIR'
*----------- SAVE - LOGO
:4590 jmp doSAVE
:4590 stz fgTIME
rep #$30
jsr doSAVE
sep #$30
inc fgTIME
rts
*----------- LOAD - LOGO
:4600 jsr doLOAD
:4600 stz fgTIME
rep #$30
jsr doLOAD
sep #$30
inc fgTIME
jmp REPLAY
*----------- LE MOT DE PASSE FINAL
@ -1121,8 +1126,6 @@ MDP$ asc 'MANOIR'
@print #str4618_1
@wait #200
@print #str4618_2
@wait #200
@print #str4618_3
jmp :perdu
:4620 @explode
@ -1156,7 +1159,7 @@ MDP$ asc 'MANOIR'
:4710 lda SALLE
pha
jsr setHGR
jsr HGR
@draw #54
pla
sta SALLE
@ -1164,7 +1167,7 @@ MDP$ asc 'MANOIR'
:4720 lda SALLE
pha
jsr setHGR
jsr HGR
@draw #55
pla
sta SALLE
@ -1277,7 +1280,8 @@ MDP$ asc 'MANOIR'
*-----------
:5500 @print #str5500
:5500 stz fgTIME
@print #str5500
jsr GETLN1
cpx #1
bne :5500
@ -1287,7 +1291,8 @@ MDP$ asc 'MANOIR'
beq :5510
cmp #chrNON
bne :5500
:5510 rts
:5510 inc fgTIME
rts
*-----------------------------------
* 6000 - ANALYSE DU MOT
@ -1444,28 +1449,12 @@ MDP$ asc 'MANOIR'
* 8000 - CHARGEMENT VARIABLES
*-----------------------------------
initALL
ldx #FIN_DATA-DEBUT_DATA
initALL ldx #FIN_DATA-DEBUT_DATA
lda #0
]lp sta A1-1,x
dex
bne ]lp
*---
lda #11
sta SALLE
lda #<4000
sta FORCE
lda #>4000
sta FORCE+1
lda #20
sta MINUTES
lda #0
sta SECONDES
*--- ligne 51
ldx #8
@ -1527,6 +1516,24 @@ initALL
sta O,x
dex
bpl ]lp
*---
lda #11
sta SALLE
lda #<4000
sta FORCE
lda #>4000
sta FORCE+1
lda #$20
sta MINUTES
lda #$00
sta SECONDES
lda #1 ; le temps dŽmarre !
sta fgTIME
rts
*-----------------------------------
@ -1545,22 +1552,36 @@ initALL
:30000 rts
rep #$30
PushWord #12
PushWord #190
_MoveTo
PushLong #MP$
_DrawCString
sep #$30
rts
*-----------------------------------
* 20000 - PERDU
*-----------------------------------
:perdu @wait #200
:perdu stz fgTIME
@wait #200
@explode
jsr setTEXTFULL
@print #strPERDU
bra :20050
:20050 ; commun avec gagne
]lp @print #strREPLAY
:perdu_bis @wait #200
@explode
:20050 @print #strREPLAY ; commun avec gagne
jsr translateKEY
cmp #chrNON
beq :20001
cmp #chrOUI
bne ]lp
bne :20050
jmp PLAY
:20001 jmp QUIT ; return to the IIgs
@ -1569,7 +1590,9 @@ initALL
* 32000 - GAGNE
*-----------------------------------
:gagne
:gagne stz fgTIME
@wait #200
@explode
jsr setTEXTFULL
@print #strGAGNE
jmp :20050
@ -1582,13 +1605,23 @@ initALL
* setTEXTFULL
*----------------------
setTEXTFULL rts ; 40x24 text
mx %11
setTEXTFULL jsr HGR
rep #$30
stz textX
lda #row0
sta textY
sep #$30
rts ; 40x24 text
*----------------------
* setHGR
* LE TEMPS EST ECOULE
*----------------------
setHGR jmp HGR
nomoreTIME jmp :4650
*----------------------
* GETLEN1 par LoGo
@ -1597,7 +1630,10 @@ setHGR jmp HGR
mx %11
GETLN1 ldx #0
GETLN2 stx lenSTRING
]lp jsr RDKEY
bcs nomoreTIME
ldx lenSTRING
cmp #chrRET
beq doRET
cmp #chrDEL
@ -1606,25 +1642,35 @@ GETLN1 ldx #0
beq doBACK
cmp #chrSPC ; must not be another control character
bcc ]lp
beq doSPC
jsr testENERGIE
sta TEXTBUFFER,x
doIT sta TEXTBUFFER,x
jsr COUT
doNEXT inx
doNEXT ldx lenSTRING
inx
cpx #maxLEN
bcc ]lp
bcc GETLN2
doEXIT lda #chrRET
sta TEXTBUFFER,x
stx lenSTRING
jmp COUT
jsr CURSOR_ERASE
lda #chrRET
jsr COUT
ldx lenSTRING
rts
doSPC jsr WHITE_SPACE
ldx lenSTRING
lda #chrSPC
bra doIT
doBACK cpx #0
beq ]lp
jsr CURSOR_ERASE ; contains dec CH & TABV
jsr CURSOR_ERASE
ldx lenSTRING
dex
jmp ]lp
jmp GETLN2
doRET cpx #0
bne doEXIT
@ -1632,42 +1678,72 @@ doRET cpx #0
jsr switchVIDEO
jmp ]lp
*----------------------
* MUSIQUE
*----------------------
switchMUSIC
lda #0
eor #1
sta switchMUSIC+1
bne smoff
rep #$30
jsr doSOUNDON
sep #$30
rts
smoff rep #$30
jsr doSOUNDOFF
sep #$30
rts
*----------------------
* ENERGIE
*----------------------
mx %11
switchENERGIE
lda #0
eor #1
sta switchENERGIE+1
rts
testENERGIE rts
testENERGIE sep #$30
lda switchENERGIE+1 ; switch is off
bne te_ok
lda fgTIME
beq te_ok
lda fgPERDU
bne te_ok
lda MINUTES ; reste-t-il des minutes
ora SECONDES ; ou des secondes ?
bne te_ok
lda #1
sta fgPERDU
rep #$30
sec ; non, on a perdu
rts
te_ok rep #$30
clc
rts
mx %11
*----------------------
* switchVIDEO
*----------------------
switchVIDEO lda #0
eor #1
sta switchVIDEO+1
bne setMIXEDOFF
mx %00
*----------------------
* setMIXEDON
*----------------------
setMIXEDON ; HGR + 4 LINES OF TEXT
* rts
*----------------------
* setMIXEDOFF
*----------------------
setMIXEDOFF ; FULL HGR
* rts
rep #$30
switchVIDEO rep #$30
lda ptrSCREEN
sta dpTO
lda ptrSCREEN+2
@ -1695,6 +1771,8 @@ setMIXEDOFF ; FULL HGR
* printCSTR
*----------------------
mx %11
printCSTRING
sty pcs1+1
stx pcs1+2
@ -1715,6 +1793,8 @@ pcs3 rts
* waitMS
*----------------------
mx %11
switchWAIT lda waitMS+1
eor #1
sta waitMS+1
@ -1739,6 +1819,8 @@ waitMS9 rts
* rewriteSTRING (lower -> upper)
*-----------------------------------
mx %11
rewriteSTRING
ldx #0
]lp ldy TEXTBUFFER,x
@ -1753,9 +1835,13 @@ rewriteSTRING
* translateKEY (lower -> upper)
*-----------------------------------
mx %11
translateKEY
jsr RDKEY
tax
pha
jsr COUT
plx
lda tblKEY,x
rts
@ -1803,11 +1889,18 @@ SALLE ds 1
T ds 1
lenSTRING ds 1
MINUTES ds 2 ; 0..20 en dŽcimal
SECONDES ds 2 ; 0..59
fgTIME ds 2 ; 0: off, 1: on
fgPERDU ds 2 ; 1: perdu
MINUTES ds 1 ; 0..20 en dŽcimal
SECONDES ds 1 ; 0..59
MP$ ds 6 ; le mot de passe ˆ trouver (5 + 00)
O dfb $bd
dfb 40,33,41,53,43,10,00,21,22,26
dfb 01,06,00,17,20,00,47,19,00
C ds 32+1
E$ ds 32 ; the longest string
P ds 32+1

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.