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

View File

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

View File

@ -10,12 +10,59 @@
*----------------------------------- *-----------------------------------
* LES PRIMITIVES 8-BITS EN 16-BITS * 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 mx %11
printNIVEAU ora #'0' printNIVEAU ora #'0'
sta strNIVEAU+9 sta strNIVEAU+7
rep #$30 rep #$30
@ -31,16 +78,68 @@ printNIVEAU ora #'0'
mx %00 mx %00
HGR rep #$30 printTEMPS lda fgTIME
* PushWord #0 bne pt1
* _ClearScreen 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 lda ptrSCREEN
sta dpTO sta dpTO
lda ptrSCREEN+2 lda ptrSCREEN+2
sta dpTO+2 sta dpTO+2
ldy #160*160 ldy #160*160-2
lda #0 lda #0
]lp sta [dpTO],y ]lp sta [dpTO],y
dey dey
@ -54,13 +153,16 @@ HGR rep #$30
mx %11 mx %11
RDKEY phx RDKEY jsr CURSOR ; shows the cursor
jsr CURSOR ; shows the cursor
rep #$30 rep #$30
]lp inc VBLCounter0 ; for RND ]lp inc VBLCounter0 ; for RND
jsr checkREPLAY
jsr printTEMPS
jsr testENERGIE
bcs RDKEY99
pha pha
PushWord #%00000000_00001000 PushWord #%00000000_00001000
PushLong #taskREC PushLong #taskREC
@ -75,7 +177,10 @@ RDKEY phx
lda taskMESSAGE lda taskMESSAGE
sep #$30 sep #$30
plx clc
rts
RDKEY99 sep #$30
sec
rts rts
*----------------------------------- *-----------------------------------
@ -102,9 +207,10 @@ eraseLINES sta pointerRECT
*----------- *-----------
pointerRECT adrl bottomRECT pointerRECT adrl bottomRECT
screenRECT dw 0,0,200,320
bottomRECT dw row15+1,0,row19,319 drawRECT dw 0,0,159,239 ; 319
lastlineRECT dw row18+1,0,row19,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 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 mx %11
CURSOR_ERASE CURSOR_ERASE
phx
rep #$30 rep #$30
lda textY lda textY
@ -137,9 +242,30 @@ CURSOR_ERASE
sta textX sta textX
sep #$30 sep #$30
plx
rts 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 mx %11
@ -181,8 +307,7 @@ GOTOXY stx textX
mx %11 mx %11
COUT phx COUT
phy
rep #$30 rep #$30
and #$ff and #$ff
cmp #chrRET ; next line, please cmp #chrRET ; next line, please
@ -196,7 +321,7 @@ COUT phx
*----------- next X position *----------- next X position
lda textX COUT0 lda textX
clc clc
adc #charWIDTH adc #charWIDTH
sta textX sta textX
@ -204,8 +329,6 @@ COUT phx
bcs COUT1 bcs COUT1
COUT99 sep #$30 COUT99 sep #$30
ply
plx
rts rts
*----------- next Y position *----------- next Y position
@ -291,31 +414,6 @@ COUT2 lda #row19 ; on se remet sur la derni
jsr eraseLINES ; en 8-bits ˆ la sortie jsr eraseLINES ; en 8-bits ˆ la sortie
brl COUT99 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 mx %11
@ -542,23 +640,33 @@ BFF0 ds 16
mx %00 mx %00
showPIC rep #$30 showPIC stz fgTIME
rep #$30
and #$00ff and #$00ff
asl asl
tax tax
lda tblIMAGES,x lda tblIMAGES,x
bne L92A5 bne L92A5
showPIC99 sep #$30 showPIC99 sep #$30
inc fgTIME
rts rts
mx %00 mx %00
L92A5 sta dpFROM L92A5 sta dpFROM
PushLong #drawRECT
_FrameRect
PushLong #screenRECT
_GetPortRect
PushLong #drawRECT
_SetPortRect
L92A6 ldy #0 L92A6 ldy #0
lda (dpFROM),y lda (dpFROM),y
and #$ff and #$ff
beq showPIC99 bne L92A7
jmp drawEXIT
L92A7 CMP #'A' ; A $41 CURSET L92A7 CMP #'A' ; A $41 CURSET
BNE L92B1 BNE L92B1
@ -623,7 +731,7 @@ L930C CMP #'O' ; O $4F OUTPUT
L9313 lda #0 L9313 lda #0
sep #$30 sep #$30
sta A2 sta A2
rts jmp drawEXIT
mx %00 mx %00
@ -824,6 +932,14 @@ L94D8 iny
and #$ff and #$ff
sep #$30 sep #$30
sta A2 ; the variable at $400 sta A2 ; the variable at $400
drawEXIT rep #$30
PushLong #screenRECT
_SetPortRect
sep #$30
inc fgTIME
rts rts
mx %00 mx %00

View File

@ -10,10 +10,10 @@
* *
strVOUSDETENEZ strVOUSDETENEZ
asc 0D'Vous avez en votre possession : '00 asc 'Vous avez en votre possession : '00
strVOUSRIEN 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 asc 'n'27'avez rien sur vous'00
strPOINT strPOINT
@ -34,7 +34,8 @@ strILFAITNOIR
strVOSYEUX asc 'Vos yeux ne voient plus rien.'0D00 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 strILYA asc 0D'Il y a aussi :'00
strCOMMA asc ','00 strCOMMA asc ','00
@ -44,7 +45,7 @@ strRETURN asc 0D00
strCOMMANDE asc 0D'Ordre ? '00 strCOMMANDE asc 0D'Ordre ? '00
strJENECOMPRENDS strJENECOMPRENDS
asc 0D'Je ne comprends pas'00 asc 'Je ne comprends pas'00
strIMPOSSIBLE strIMPOSSIBLE
asc 0D'Impossible '00 asc 0D'Impossible '00
@ -55,21 +56,24 @@ strEXCLAM
strREPLAY asc 0D'Voulez-vous rejouer ? '00 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 strGAGNE asc 'D'27'accord,'0d
asc 'vous m'27'avez battu, mais c'27'est un coup'0D asc 'vous m'27'avez battu, mais c'27'est un coup'0d
asc 'de chance, et la prochaine fois ma'0D asc 'de chance, et la prochaine fois ma'0d
asc 'vengeance sera terrible.'0D asc 'vengeance sera terrible.'0d
asc 'Prenez peur, car le jour ou je serai'0D asc 'Prenez peur, car le jour ou je serai'0d
asc 'a nouveau la, ma puissance n'27'aura plus'0D asc 'a nouveau la, ma puissance n'27'aura plus'0d
asc 'de limites, alors l'27'heure de la souf-'0D asc 'de limites, alors l'27'heure de la souf-'0d
asc '-france aura sonne...'0D asc '-france aura sonne...'0d
asc ' Dr GENIUS.'00 asc ' Dr GENIUS.'0d00
strINTRO asc ' LE RETOUR DU Dr GENIUS'0D strINTRO asc ' LE RETOUR DU Dr GENIUS'0d
asc ' Vous avez 20 minutes et'0D asc ' Vous avez 20 minutes et'0d
asc ' 400 unites de force pour'0D asc ' 400 unites de force pour'0d
asc ' remplir votre mission...'00 asc ' remplir votre mission...'00
*----------------------------------- *-----------------------------------
@ -253,14 +257,6 @@ refO dfb $bd
dfb 40,33,41,53,43,10,00,21,22,26 dfb 40,33,41,53,43,10,00,21,22,26
dfb 01,06,00,17,20,00,47,19,00 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 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$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 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 * on fera index-1 b/c 8-bits
* *
V = 139+1 V = 139+2
tblVL$ dfb $bd tblVL$ dfb $bd
dfb <V$1,<V$2,<V$3,<V$4,<V$5,<V$6,<V$7,<V$8,<V$9,<V$10 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$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$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$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 tblVH$ dfb $bd
dfb >V$1,>V$2,>V$3,>V$4,>V$5,>V$6,>V$7,>V$8,>V$9,>V$10 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$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$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$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 tblV dfb $bd
dfb 01,01,02,02,03,03,04,04,05,05 ; 1 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 75,76,77,77,78,78,79,80,80,80
dfb 81,81,82,83,83,84,84,84,85,85 ; 121 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 85,86,87,87,88,88,89,89,90 ; last was 00, now 90
dfb 200 dfb 200,201
V$1 str 'N' V$1 str 'N'
V$2 str 'NORD' V$2 str 'NORD'
@ -564,6 +560,7 @@ V$138 str 'TOTA'
V$139 str 'RANG' ; RANGER (TUBE DANS GLACE => RANG TUBE) V$139 str 'RANG' ; RANGER (TUBE DANS GLACE => RANG TUBE)
V$200 str 'TIME' V$200 str 'TIME'
V$201 str 'MUSI'
* *
* Les reponses (str7xxx) * 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 asc 'vaisseau de poche fonce sur le soleil.'00
str4618_2 asc 'Vous venez de realiser que Genius'0d str4618_2 asc 'Vous venez de realiser que Genius'0d
asc 'pleurait de JOIE...!'00 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 str4620 asc 'La soucoupe a explose au decollage.'00
str4630 asc 'Energie restante :'00 str4630 asc 'Energie restante :'00
str4640 asc 'Petit drole... Le chronometre est'0d str4640 asc 'Petit drole... Le chronometre est'0d
asc 'affiche en permanence'00 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 asc 'mission est ecoule, vous avez echoue.'00
str4660 asc 'Votre trajectoire est bonne, pourquoi la' str4660 asc 'Votre trajectoire est bonne, pourquoi la'
asc 'corriger ?'00 asc 'corriger ?'00
@ -713,7 +706,7 @@ str4700 asc 'Vous remarquez un boitier de radio-'0d
str4710 asc ''00 str4710 asc ''00
str4720 asc ''00 str4720 asc ''00
str4730 asc 'Que regardez vous ?'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 asc 'exploser, vous etes pulverise.'00
str4750 asc 'La bombe a retardement vient d'270d str4750 asc 'La bombe a retardement vient d'270d
asc 'exploser, vous etes pulverise.'00 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 asc 'vous avez percute le soleil.'00
str4820 asc 'A force de traverser les salles radio-'0d str4820 asc 'A force de traverser les salles radio-'0d
asc '-actives, vous etes mort contamine.'00 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 str4840 asc 'L'27'ordinateur vient d'27'exploser!'00
str4845 asc 'Vous avez du le laisser allume.'00 str4845 asc 'Vous avez du le laisser allume.'00
str4850 asc 'Comment !!! Vous etes aveugle.'00 str4850 asc 'Comment !!! Vous etes aveugle.'00

Binary file not shown.

View File

@ -72,7 +72,7 @@ maxTROW = 19
charHEIGHT = 10 charHEIGHT = 10
charWIDTH = 8 charWIDTH = 8
row0 = charHEIGHT-1 ; 9 row0 = charHEIGHT-2 ; 9 - 1 partout...
row1 = row0+charHEIGHT ; 19 row1 = row0+charHEIGHT ; 19
row2 = row1+charHEIGHT ; 29 row2 = row1+charHEIGHT ; 29
row3 = row2+charHEIGHT ; 39 row3 = row2+charHEIGHT ; 39
@ -115,6 +115,11 @@ ICI phk
tdc tdc
sta myDP sta myDP
lda #screenRECT
stal $300
lda #^screenRECT
stal $302
_TLStartUp _TLStartUp
pha pha
_MMStartUp _MMStartUp
@ -234,6 +239,10 @@ okSHADOW
* IL FAUT JOUER MAINTENANT * IL FAUT JOUER MAINTENANT
*----------------------------------- *-----------------------------------
sei
PushLong #intTIME
_SetHeartBeat
cli
jmp PLAY jmp PLAY
*----------------------------------- *-----------------------------------
@ -242,6 +251,11 @@ okSHADOW
QUIT rep #$30 QUIT rep #$30
jsr stopMIDI jsr stopMIDI
sei
PushLong #intTIME
_DelHeartBeat
cli
meQUIT PushWord #refIsPointer meQUIT PushWord #refIsPointer
PushLong ssREC PushLong ssREC
@ -313,7 +327,6 @@ loadBACK _HideCursor
PushLong #ptrE12000 PushLong #ptrE12000
PushLong #32768 PushLong #32768
_BlockMove _BlockMove
_ShowCursor
rts rts
*----------------------------------- *-----------------------------------
@ -322,9 +335,7 @@ loadBACK _HideCursor
*----------------------------------- Open *----------------------------------- Open
doLOAD rep #$30 doLOAD jsr doSOUNDOFF
jsr doSOUNDOFF
rep #$30
jsr saveBACK jsr saveBACK
PushWord #30 PushWord #30
@ -337,7 +348,6 @@ doLOAD rep #$30
jsr loadBACK jsr loadBACK
jsr doSOUNDON jsr doSOUNDON
rep #$30
lda replyPTR lda replyPTR
bne doLOAD1 bne doLOAD1
@ -345,16 +355,13 @@ doLOAD rep #$30
doLOAD1 jsr copyPATH doLOAD1 jsr copyPATH
jsr loadALL jsr loadALL
sep #$30
rts rts
mx % mx %00
*----------------------------------- Save *----------------------------------- Save
doSAVE rep #$30 doSAVE jsr doSOUNDOFF
jsr doSOUNDOFF
rep #$30
jsr saveBACK jsr saveBACK
PushWord #25 PushWord #25
@ -367,7 +374,6 @@ doSAVE rep #$30
jsr loadBACK jsr loadBACK
jsr doSOUNDON jsr doSOUNDON
rep #$30
lda replyPTR lda replyPTR
bne doSAVE1 bne doSAVE1
@ -375,7 +381,6 @@ doSAVE rep #$30
doSAVE1 jsr copyPATH doSAVE1 jsr copyPATH
jsr saveALL jsr saveALL
sep #$30
rts rts
*--- Recopie le filename du fichier de sauvegarde *--- 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 * 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 textX = $30 ; les X/Y pour afficher les
textY = textX+2 ; caracteres QuickDraw II textY = textX+2 ; caracteres QuickDraw II
nbOaP = 10 ; on peut porter dix objets LINNUM = $50 ; result from GETADR
chrLA = $08 chrLA = $08
chrRA = $15 chrRA = $15
@ -32,6 +28,7 @@ chrOUI = 'O'
chrNON = 'N' chrNON = 'N'
idxTIMER = 200 idxTIMER = 200
idxMUSIC = 201
*----------------------------------- *-----------------------------------
@ -84,20 +81,14 @@ idxTIMER = 200
PLAY sep #$30 PLAY sep #$30
jsr initALL jsr initALL
REPLAY sep #$30 REPLAY sep #$30
jsr HGR jsr FULLHGR
* jsr HOME ; clear text screen rep #$30 ; init 16-bits, c'est mieux
* lda #0 ; move cursor to 0,16 au lieu de 0,20 stz textX
* 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
lda #row16 lda #row16
sta textY sta textY
sep #$30
*----------------------------------- *-----------------------------------
* DU BASIC A L'ASSEMBLEUR (BEURK) * DU BASIC A L'ASSEMBLEUR (BEURK)
*----------------------------------- *-----------------------------------
@ -150,12 +141,11 @@ REPLAY sep #$30
:110 jmp :200 :110 jmp :200
:130 jsr HGR :130 jsr HGR
jsr setMIXEDON
@print #strILFAITNOIR @print #strILFAITNOIR
jsr :30000
jmp :500 jmp :500
:140 jsr HGR :140 jsr HGR
jsr setMIXEDON
@print #strVOSYEUX @print #strVOSYEUX
jmp :500 jmp :500
@ -163,7 +153,7 @@ REPLAY sep #$30
* 200 - description salle * 200 - description salle
*----------------------------------- *-----------------------------------
:200 jsr setHGR :200 jsr HGR
@draw SALLE @draw SALLE
lda A2 ; trace des dessins lda A2 ; trace des dessins
@ -258,7 +248,7 @@ REPLAY sep #$30
bcc :310 bcc :310
beq :310 beq :310
@print #strRETURN * @print #strRETURN
*----------------------------------- *-----------------------------------
* 500 - ACCEPTATION COMMANDE * 500 - ACCEPTATION COMMANDE
@ -305,11 +295,17 @@ REPLAY sep #$30
*----------------------------------- *-----------------------------------
:900 cmp #idxTIMER :900 cmp #idxTIMER
bne :915 bne :905
jsr switchENERGIE jsr switchENERGIE
jmp :100 jmp :100
:905 cmp #idxMUSIC
bne :915
jsr switchMUSIC
jmp :100
*----------------------------------- *-----------------------------------
* 910 - CONTROLE MVT * 910 - CONTROLE MVT
*----------------------------------- *-----------------------------------
@ -914,7 +910,7 @@ tbl4000 da $bdbd,:4010,:4020,:4030,:4040,:4050,:4060,:4070,:4080,:4090
:4250 @print #str4250 :4250 @print #str4250
rts rts
:4260 jsr setHGR :4260 jsr HGR
@draw #57 @draw #57
lda #44 lda #44
sta SALLE sta SALLE
@ -990,7 +986,7 @@ tbl4000 da $bdbd,:4010,:4020,:4030,:4040,:4050,:4060,:4070,:4080,:4090
bne :4481 bne :4481
jmp :500 jmp :500
:4481 @print #str4480 :4481 @print #str4480
jmp :perdu jmp :perdu_bis
:4490 @print #str4490 :4490 @print #str4490
@print #str4491 @print #str4491
@ -1011,7 +1007,7 @@ tbl4000 da $bdbd,:4010,:4020,:4030,:4040,:4050,:4060,:4070,:4080,:4090
:4540 @print #str4540 :4540 @print #str4540
rts rts
:4550 jsr setHGR :4550 jsr HGR
@draw #56 ; LOGO @draw #56 ; LOGO
jsr :12020 jsr :12020
lda #21 lda #21
@ -1087,11 +1083,20 @@ MDP$ asc 'MANOIR'
*----------- SAVE - LOGO *----------- SAVE - LOGO
:4590 jmp doSAVE :4590 stz fgTIME
rep #$30
jsr doSAVE
sep #$30
inc fgTIME
rts
*----------- LOAD - LOGO *----------- LOAD - LOGO
:4600 jsr doLOAD :4600 stz fgTIME
rep #$30
jsr doLOAD
sep #$30
inc fgTIME
jmp REPLAY jmp REPLAY
*----------- LE MOT DE PASSE FINAL *----------- LE MOT DE PASSE FINAL
@ -1121,8 +1126,6 @@ MDP$ asc 'MANOIR'
@print #str4618_1 @print #str4618_1
@wait #200 @wait #200
@print #str4618_2 @print #str4618_2
@wait #200
@print #str4618_3
jmp :perdu jmp :perdu
:4620 @explode :4620 @explode
@ -1156,7 +1159,7 @@ MDP$ asc 'MANOIR'
:4710 lda SALLE :4710 lda SALLE
pha pha
jsr setHGR jsr HGR
@draw #54 @draw #54
pla pla
sta SALLE sta SALLE
@ -1164,7 +1167,7 @@ MDP$ asc 'MANOIR'
:4720 lda SALLE :4720 lda SALLE
pha pha
jsr setHGR jsr HGR
@draw #55 @draw #55
pla pla
sta SALLE sta SALLE
@ -1277,7 +1280,8 @@ MDP$ asc 'MANOIR'
*----------- *-----------
:5500 @print #str5500 :5500 stz fgTIME
@print #str5500
jsr GETLN1 jsr GETLN1
cpx #1 cpx #1
bne :5500 bne :5500
@ -1287,7 +1291,8 @@ MDP$ asc 'MANOIR'
beq :5510 beq :5510
cmp #chrNON cmp #chrNON
bne :5500 bne :5500
:5510 rts :5510 inc fgTIME
rts
*----------------------------------- *-----------------------------------
* 6000 - ANALYSE DU MOT * 6000 - ANALYSE DU MOT
@ -1444,28 +1449,12 @@ MDP$ asc 'MANOIR'
* 8000 - CHARGEMENT VARIABLES * 8000 - CHARGEMENT VARIABLES
*----------------------------------- *-----------------------------------
initALL initALL ldx #FIN_DATA-DEBUT_DATA
ldx #FIN_DATA-DEBUT_DATA
lda #0 lda #0
]lp sta A1-1,x ]lp sta A1-1,x
dex dex
bne ]lp 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 *--- ligne 51
ldx #8 ldx #8
@ -1527,6 +1516,24 @@ initALL
sta O,x sta O,x
dex dex
bpl ]lp 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 rts
*----------------------------------- *-----------------------------------
@ -1545,22 +1552,36 @@ initALL
:30000 rts :30000 rts
rep #$30
PushWord #12
PushWord #190
_MoveTo
PushLong #MP$
_DrawCString
sep #$30
rts
*----------------------------------- *-----------------------------------
* 20000 - PERDU * 20000 - PERDU
*----------------------------------- *-----------------------------------
:perdu @wait #200 :perdu stz fgTIME
@wait #200
@explode @explode
jsr setTEXTFULL jsr setTEXTFULL
@print #strPERDU @print #strPERDU
bra :20050
:20050 ; commun avec gagne :perdu_bis @wait #200
]lp @print #strREPLAY @explode
:20050 @print #strREPLAY ; commun avec gagne
jsr translateKEY jsr translateKEY
cmp #chrNON cmp #chrNON
beq :20001 beq :20001
cmp #chrOUI cmp #chrOUI
bne ]lp bne :20050
jmp PLAY jmp PLAY
:20001 jmp QUIT ; return to the IIgs :20001 jmp QUIT ; return to the IIgs
@ -1569,7 +1590,9 @@ initALL
* 32000 - GAGNE * 32000 - GAGNE
*----------------------------------- *-----------------------------------
:gagne :gagne stz fgTIME
@wait #200
@explode
jsr setTEXTFULL jsr setTEXTFULL
@print #strGAGNE @print #strGAGNE
jmp :20050 jmp :20050
@ -1582,13 +1605,23 @@ initALL
* setTEXTFULL * 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 * GETLEN1 par LoGo
@ -1597,7 +1630,10 @@ setHGR jmp HGR
mx %11 mx %11
GETLN1 ldx #0 GETLN1 ldx #0
GETLN2 stx lenSTRING
]lp jsr RDKEY ]lp jsr RDKEY
bcs nomoreTIME
ldx lenSTRING
cmp #chrRET cmp #chrRET
beq doRET beq doRET
cmp #chrDEL cmp #chrDEL
@ -1606,25 +1642,35 @@ GETLN1 ldx #0
beq doBACK beq doBACK
cmp #chrSPC ; must not be another control character cmp #chrSPC ; must not be another control character
bcc ]lp bcc ]lp
beq doSPC
jsr testENERGIE doIT sta TEXTBUFFER,x
sta TEXTBUFFER,x
jsr COUT jsr COUT
doNEXT inx doNEXT ldx lenSTRING
inx
cpx #maxLEN cpx #maxLEN
bcc ]lp bcc GETLN2
doEXIT lda #chrRET doEXIT lda #chrRET
sta TEXTBUFFER,x sta TEXTBUFFER,x
stx lenSTRING 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 doBACK cpx #0
beq ]lp beq ]lp
jsr CURSOR_ERASE ; contains dec CH & TABV jsr CURSOR_ERASE
ldx lenSTRING
dex dex
jmp ]lp jmp GETLN2
doRET cpx #0 doRET cpx #0
bne doEXIT bne doEXIT
@ -1632,42 +1678,72 @@ doRET cpx #0
jsr switchVIDEO jsr switchVIDEO
jmp ]lp 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 * ENERGIE
*---------------------- *----------------------
mx %11
switchENERGIE switchENERGIE
lda #0 lda #0
eor #1 eor #1
sta switchENERGIE+1 sta switchENERGIE+1
rts 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
*---------------------- *----------------------
switchVIDEO lda #0 mx %00
eor #1
sta switchVIDEO+1
bne setMIXEDOFF
*---------------------- switchVIDEO rep #$30
* setMIXEDON
*----------------------
setMIXEDON ; HGR + 4 LINES OF TEXT
* rts
*----------------------
* setMIXEDOFF
*----------------------
setMIXEDOFF ; FULL HGR
* rts
rep #$30
lda ptrSCREEN lda ptrSCREEN
sta dpTO sta dpTO
lda ptrSCREEN+2 lda ptrSCREEN+2
@ -1695,6 +1771,8 @@ setMIXEDOFF ; FULL HGR
* printCSTR * printCSTR
*---------------------- *----------------------
mx %11
printCSTRING printCSTRING
sty pcs1+1 sty pcs1+1
stx pcs1+2 stx pcs1+2
@ -1715,6 +1793,8 @@ pcs3 rts
* waitMS * waitMS
*---------------------- *----------------------
mx %11
switchWAIT lda waitMS+1 switchWAIT lda waitMS+1
eor #1 eor #1
sta waitMS+1 sta waitMS+1
@ -1739,6 +1819,8 @@ waitMS9 rts
* rewriteSTRING (lower -> upper) * rewriteSTRING (lower -> upper)
*----------------------------------- *-----------------------------------
mx %11
rewriteSTRING rewriteSTRING
ldx #0 ldx #0
]lp ldy TEXTBUFFER,x ]lp ldy TEXTBUFFER,x
@ -1753,9 +1835,13 @@ rewriteSTRING
* translateKEY (lower -> upper) * translateKEY (lower -> upper)
*----------------------------------- *-----------------------------------
mx %11
translateKEY translateKEY
jsr RDKEY jsr RDKEY
tax pha
jsr COUT
plx
lda tblKEY,x lda tblKEY,x
rts rts
@ -1803,11 +1889,18 @@ SALLE ds 1
T ds 1 T ds 1
lenSTRING ds 1 lenSTRING ds 1
MINUTES ds 2 ; 0..20 en dŽcimal fgTIME ds 2 ; 0: off, 1: on
SECONDES ds 2 ; 0..59 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) 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 C ds 32+1
E$ ds 32 ; the longest string E$ ds 32 ; the longest string
P ds 32+1 P ds 32+1

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.