antoine-source/cogito/Cogito.Main.s

2582 lines
84 KiB
ArmAsm

*
* Start Olivier
*
INITMOUS LDA #$0000
STA POSX
STA POSY
STA A1 ; INIT SOURIS
STA AP
JSR SAUV ; SAUVEGARDE DECOR
JSR DESS
LDY ptrMESSAGE+1 ; INIT ADRESSE EASTER EGGS
STY EAEGSP1+2
STY EAEGSP3+2
STY EAEGSP4+2
STY EAEGSP6+2
LDA fgDOC ; INIT LANGUE
BEQ INITMOU1
LDA #TEXTEUSD ; ANGLAIS
STA DOCADR
LDA #TEXTEUSA
STA ABOUADR
LDA #$0008 ; 9 PAGES DE DOC
STA ECR1012+1
LDA #$0008 ; 9 PAGES DE ABOUT
STA ECR1112+1
BRA INITMOU2
INITMOU1 LDA #TEXTEFRD ; FRANCAIS
STA DOCADR
LDA #TEXTEFRA
STA ABOUADR
LDA #$0007 ; 8 PAGES DE DOC
STA ECR1012+1
LDA #$0007 ; 8 PAGES DE ABOUT
STA ECR1112+1
INITMOU2 LDA #CADMMUF ; INIT MUSIC PATCH BUMPER : MUSIC
STA ECR07DAT
LDA #CADMSNC
STA ECR07DAT+8
JSR ECR08PATCH ; INIT GROUND PATCH BUMPER : RANDOM
LDA #CADGRRAF
STA ECR08DAT+32
LDA #$0002
JMP PICT ; IMAGE LUDY
asc 'Tinies & Cogito, copyright CACAlisto',8d
asc 'Atreid, Kalisto, Muad Dib... copyright Frank Herbert',8D
asc 'Taken from the book Dune...',8d
*****************************************************************************
**************************** MOUSE MANAGER ********************************
*****************************************************************************
SOURIS LDA BOUT ; ANCIEN BOUT=NOUVEAU BOUT
STA BOUT1
SOURIS0 JSR SLECT ; LECTURE SOURIS
CPY #$FFFF
BEQ SECR ; DONNEES NON DISPONIBLES
SOURIS1 LDA A1 ; A1 POSITION ACTUELLE
STA AP ; AP ANCIENNE POSITION
LDA POSX
LSR
STA SOURIS2+1
LDA POSY
ASL
TAX
LDA TABLE,X
CLC
SOURIS2 ADC #$0000 ; CALCUL DE A1 (160*POSY+POSX)
STA A1
JSR TRACE ; ON DESSINE LE POINTEUR
lda BON
inc
sta BON
cmp #1000
bne SECR
stz BON
LDA fgWHICH
BNE SECR
PHA
_NTUpdateSound ; SOUNDTRACK
PLA
*****
SECR JSR KEYBOARD ; TOUCHE ?
LDA ECRAN
DEC
ASL
TAX
LDA ECRTAB,X
TAY ; ADRESSE TABLEAU DES BOUTONS
DEC
DEC
TAX
SECR0 LDA\ $0000,X ; NB DE BUMPER DANS ECRAN
ASL
STA SECR8+1
LDX #$0000
LDA POSX
SECR1 CMP\ $0000,Y ; X0 ECR1, ECR2, ECR3 ...
BMI SECR4
INY
INY
SECR11 CMP\ $0000,Y ; X1
BPL SECR5
INY
INY
LDA POSY
SECR12 CMP\ $0000,Y ; Y0
BMI SECR6
INY
INY
SECR13 CMP\ $0000,Y ; Y1
BPL SECR7
STX SECR2+1 ; ON EST SUR UN BUMPER
LDA ECRAN
DEC
ASL
TAX
LDA ECRDESA,X
STA SECR20+1 ; ADRESSE DE L'ADRESSE EXECUTION
SECR2 LDX #$0000 ; NUMERO DU BUMPER TRAVERSE (*2)
SECR20 LDA $FFFF,X
STA SECR3+1
SECR3 JMP $A0A0 ;
SECR4 INY
INY
SECR5 INY
INY
SECR6 INY
INY ; BOUTON SUIVANT
SECR7 INY
INY
LDA POSX
INX
INX
SECR8 CPX #$0000 ; NB DE BOUTON
BMI SECR1
JSR BORD5 ; FORCE LA BORDURE NOIRE
JMP BUMPDEF ; AUCUN BOUTON DETECTE : TRAITEMENT PAR DEFAUT
BON ds 2
asc 'Steve Sebban: don t you need a french dictionary? :-)',8d
*******************************************************************************
*********************** TRAITEMENT DES BOUTONS ******************************
*******************************************************************************
KEYBOARD LDAL $00BFFF
BPL KEYBOAR1
STAL $00C010 ; BIT $C010
LDA ECRAN
CMP #$0005
BPL KEYBOAR1
PLA ; RECUPERE L'ADRESSE DE RETOUR DU JSR
LDA #$0005 ; SAUT AU CONTROL PANEL
JMP PICT
KEYBOAR1 RTS
BORD5 LDAL $00C034 ; ICI TRAITEMENT PAR DEFAUT
AND #$FFF0 ; BORDURE NOIRE
STAL $00C034
BORD55 RTS
BORD6 LDAL $00C034
AND #$FFF0
ORA #$0001 ; ROUGE
STAL $00C034
RTS
**************** COGITO JEU
ECRJEH1 LDX SECR2+1 ; FLECHES HAUT
LDA #ECRJEH10
STA BUMPER5+1
JMP BUMPER
ECRJEH10 LDA POSX
SEC
SBC #$0016 ; 22
TAX
LDA ECR01TA1,X
AND #$00FF
BEQ ECRJEH11 ; RIEN
DEC
PHA
JSR DESS1
PLA
JMP THIRD
ECRJEH11 JMP SOURIS
ECRJEB1 LDX SECR2+1 ; FLECHES BAS
LDA #ECRJEB10
STA BUMPER5+1
JMP BUMPER
ECRJEB10 LDA POSX
SEC
SBC #$0016 ; 22
TAX
LDA ECR01TA2,X
AND #$00FF
BEQ ECRJEB11 ; RIEN
PHA
JSR DESS1
PLA
JMP THIRD
ECRJEB11 JMP SOURIS
ECRJEG1 LDX SECR2+1 ; FLECHES GAUCHE
LDA #ECRJEG10
STA BUMPER5+1
JMP BUMPER
ECRJEG10 LDA POSY
SEC
SBC #$0026 ; 38
TAX
LDA ECR01TA3,X
AND #$00FF
BEQ ECRJEG11 ; RIEN
PHA
JSR DESS1
PLA
JMP THIRD
ECRJEG11 JMP SOURIS
ECRJED1 LDX SECR2+1 ; FLECHE DROITE 1
LDA #ECRJED10
STA BUMPER5+1
JMP BUMPER
ECRJED10 LDA POSY
SEC
SBC #$0026 ; 38
TAX
LDA ECR01TA4,X
AND #$00FF
BEQ ECRJED11 ; RIEN
PHA
JSR DESS1
PLA
JMP THIRD
ECRJED11 JMP SOURIS
ECREEHA LDA #ECREEHA1 ; EASTER EGGS HAPPY (SURFACE)
STA SURFACE5+1
JMP SURFACE
ECREEHA1 NOP
STZ noINTER ; ARRETE LE TEMPS
INC CTPNFLG ; INTERDIT L'ENTREE DANS LE CONTROL PANEL
JSR DESS1 ; ENLEVE LE POINTEUR
JSR CADEAEG ; CREATION DU CADRE ET DU BOUTON
LDA #$0000 ; SPRITE WOOD
JSR EAEGSPR
LDA #$0001 ; TEXTE WOOD
JSR EAEGSPR
LDA #$000D
JMP PICT1
ECREELU LDA #ECREELU1 ; EASTER EGGS LUDY (SURFACE)
STA SURFACE5+1
JMP SURFACE
ECREELU1 NOP
STZ noINTER ; ARRETE LE TEMPS
INC CTPNFLG ; INTERDIT L'ENTREE DANS LE CONTROL PANEL
JSR DESS1 ; ENLEVE LE POINTEUR
JSR CADEAEG ; CREATION CADRE ET BOUTON
LDA #$0004 ; SPRITE B&W
JSR EAEGSPR
LDA #$0005 ; TEXTE B&W
JSR EAEGSPR
LDA #$000D
JMP PICT1
ECREEPL LDA #ECREEPL1 ; EASTER EGGS PLANET (SURFACE)
STA SURFACE5+1
JMP SURFACE
ECREEPL1 NOP
STZ noINTER ; ARRETE LE TEMPS
INC CTPNFLG ; INTERDIT L'ENTREE DANS LE CONTROL PANEL
JSR DESS1 ; ENLEVE LE POINTEUR
JSR CADEAEG ; CREATION CADRE ET BOUTON
LDA #$0006 ; SPRITE FUTUR
JSR EAEGSPR
LDA #$0007 ; TEXTE FUTUR
JSR EAEGSPR
LDA #$000D
JMP PICT1
ECREEXE LDA #ECREEXE1 ; EASTER EGGS XENO (SURFACE)
STA SURFACE5+1
JMP SURFACE
ECREEXE1 NOP
STZ noINTER ; ARRETE LE TEMPS
INC CTPNFLG ; INTERDIT L'ENTREE DANS LE CONTROL PANEL
JSR DESS1 ; ENLEVE LE POINTEUR
JSR CADEAEG ; CREATION CADRE ET BOUTON
LDA #$0002 ; SPRITE BRUTAL
JSR EAEGSPR
LDA #$0003 ; TEXTE BRUTAL
JSR EAEGSPR
LDA #$000D
JMP PICT1
JAMAIS STZ noINTER ; ECRAN GAGNE !!
INC CTPNFLG
JSR DESS1
JSR CADRE
LDA #$0008 ; COUPE
JSR EAEGSPR
LDA #$0009 ; TEXTE
JSR EAEGSPR
JSR KBD ; ATTEND UNE TOUCHE
JSR RESTAUR
LDA #$0001
STA noINTER ; RETABLI LE TEMPS
STZ CTPNFLG ; ON AUTORISE L'ENTREE DANS LE CTPN
LDA OLDECR
STA ECRAN
RTS
************* CONTROL PANEL
ECR0500 LDX SECR2+1 ; GAME
LDA #ECR0501
STA BUMPER5+1
JMP BUMPER
ECR0501 NOP
LDA #$0006
JMP PICT
ECR0510 LDX SECR2+1 ; MUSIC
LDA #ECR0511
STA BUMPER5+1
JMP BUMPER
ECR0511 NOP
LDA #$0007
JMP PICT
ECR0520 LDX SECR2+1 ; GROUND
LDA #ECR0521
STA BUMPER5+1
JMP BUMPER
ECR0521 NOP
LDA #$0008
JMP PICT
ECR0530 LDX SECR2+1 ; LEVEL
LDA #ECR0531
STA BUMPER5+1
JMP BUMPER
ECR0531 NOP
LDA #$0009
JMP PICT
ECR0540 LDX SECR2+1 ; DOC
LDA #ECR0541
STA BUMPER5+1
JMP BUMPER
ECR0541 NOP
STZ AFTIND
LDA #$000A
JMP PICT
ECR0550 LDX SECR2+1 ; ABOUT
LDA #ECR0551
STA BUMPER5+1
JMP BUMPER
ECR0551 NOP
STZ AFTIND
LDA #$000B
JMP PICT
ECR0560 LDX SECR2+1 ; QUIT
LDA #ECR0561
STA BUMPER5+1
JMP BUMPER
ECR0561 NOP
LDA #$000C
JMP PICT
ECR0570 LDX SECR2+1 ; OK
LDA #ECR0571
STA BUMPER5+1
JMP BUMPER
ECR0571 NOP
JSR RESTAUR ; ENLEVE LE CONTROL PANEL
LDA #$0001
STA noINTER ; RETABLI LE TEMPS
STZ CTPNFLG ; ON AUTORISE LA CREATION DU CTPN
LDA GROUECR
JMP PICT1 ; EN REVIENT A L'ANCIEN ECRAN
*********** LOAD/SAVE GAME
ECR0600 LDX SECR2+1 ; LOAD
LDA #ECR0601
STA BUMPER5+1
JMP BUMPER
ECR0601 NOP
JSR TEMPload
LDA CHANGFLG ; ON DEMANDE UN CHANGEMENT PIECES/FLECHES
ORA #$0001 ; 0000.0000,0000.0001
STA CHANGFLG
JMP SOURIS1
ECR0610 LDX SECR2+1 ; SAVE
LDA #ECR0611
STA BUMPER5+1
JMP BUMPER
ECR0611 NOP
JSR saveFILE
JMP SOURIS1
ECR0620 LDX SECR2+1 ; OK
LDA #ECR0621
STA BUMPER5+1
JMP BUMPER
ECR0621 NOP
JSR CTPNCLNZ ; ENLEVE LES BOUTONS
LDA #$0005
JMP PICT1
************** MUSIC
ECR0700 LDX SECR2+1 ; MUSIC
LDA #ECR0701
STA BUMPER5+1
JMP BUMPER
ECR0701 NOP
LDA #CADMMUF ; PATCH BUMPER
STA ECR07DAT
LDA #CADMSNC
STA ECR07DAT+8
JSR CADMSNC ; SOUND FONCE
JSR CADMMUF ; MUSIC CLAIR
LDA MUSIFLAG
BEQ ECR07010 ; ON AVAIT DEJA SELECTIONNE LA ZIC
STZ MUSIFLAG
jsr stopSND ; ARRETE LES SONS
jsr startNT ; DEMARRE LA MUSIQUE
jsr startZIK
stz fgWHICH
ECR07010 JSR SAUV
JMP SOURIS1
ECR0710 LDX SECR2+1 ; SOUND
LDA #ECR0711
STA BUMPER5+1
JMP BUMPER
ECR0711 NOP
LDA #CADMMUC ; PATCH BUMPER
STA ECR07DAT
LDA #CADMSNF
STA ECR07DAT+8
JSR CADMMUC ; MUSIC FONCE
JSR CADMSNF ; SOUND CLAIR
LDA MUSIFLAG
BNE ECR07110 ; ON AVAIT DEJA
LDA #$0001
STA MUSIFLAG
JSR stopNT ; ARRETE MUSIQUE
JSR startSND ; DEMARRE LES SONS
lda #1
sta fgWHICH
ECR07110 JSR SAUV
JMP SOURIS1
ECR0720 LDX SECR2+1 ; OK
LDA #ECR0721
STA BUMPER5+1
JMP BUMPER
ECR0721 NOP
JSR CTPNCLNZ ; ENLEVE LES BOUTONS
LDA #$0005
JMP PICT1
MUSIFLAG HEX 0000 ; 0:MUSIC, 1:SOUND
****************** GROUND
ECR0800 LDX SECR2+1 ; HAPPY
LDA #ECR0801
STA BUMPER5+1
JMP BUMPER
ECR0801 NOP
JSR ECR08PATCH ; PATCH BUMPER
LDA #CADGRHAF
STA ECR08DAT
JSR CADGRLUC ; LUDY FONCE
JSR CADGRPLC ; PLANET FONCE
JSR CADGRXEC ; XENO FONCE
JSR CADGRRAC ; RANDOM FONCE
JSR CADGRHAF ; HAPPY CLAIR
STZ GROUFLAG ; DESIRE : HAPPY
STZ fgRANDOM ; RANDOM OFF
LDA CHANGFLG
ORA #$0002 ; DEMANDE UN CHANGEMENT DE DECOR
STA CHANGFLG
JSR SAUV
JMP SOURIS1
ECR0810 LDX SECR2+1 ; LUDY
LDA #ECR0811
STA BUMPER5+1
JMP BUMPER
ECR0811 NOP
JSR ECR08PATCH ; PATCH BUMPER
LDA #CADGRLUF
STA ECR08DAT+8
JSR CADGRHAC ; HAPPY FONCE
JSR CADGRPLC ; PLANET FONCE
JSR CADGRXEC ; XENO FONCE
JSR CADGRRAC ; RANDOM FONCE
JSR CADGRLUF ; LUDY CLAIR
LDA #$0001
STA GROUFLAG ; DESIRE : LUDY
STZ fgRANDOM ; RANDOM OFF
LDA CHANGFLG
ORA #$0002 ; DEMANDE UN CHANGEMENT DE DECOR
STA CHANGFLG
JSR SAUV
JMP SOURIS1
ECR0820 LDX SECR2+1 ; PLANET
LDA #ECR0821
STA BUMPER5+1
JMP BUMPER
ECR0821 NOP
JSR ECR08PATCH ; PATCH BUMPER
LDA #CADGRPLF
STA ECR08DAT+16
JSR CADGRHAC ; HAPPY FONCE
JSR CADGRLUC ; LUDY FONCE
JSR CADGRXEC ; XENO FONCE
JSR CADGRRAC ; RANDOM FONCE
JSR CADGRPLF ; PLANET CLAIR
LDA #$0002
STA GROUFLAG ; DESIRE : PLANET
STZ fgRANDOM ; RANDOM OFF
LDA CHANGFLG
ORA #$0002 ; DEMANDE UN CHANGEMENT DE DECOR
STA CHANGFLG
JSR SAUV
JMP SOURIS1
ECR0830 LDX SECR2+1 ; XENO
LDA #ECR0831
STA BUMPER5+1
JMP BUMPER
ECR0831 NOP
JSR ECR08PATCH ; PATCH BUMPER
LDA #CADGRXEF
STA ECR08DAT+24
JSR CADGRHAC ; HAPPY FONCE
JSR CADGRLUC ; LUDY FONCE
JSR CADGRPLC ; PLANET FONCE
JSR CADGRRAC ; RANDOM FONCE
JSR CADGRXEF ; XENO CLAIR
LDA #$0003
STA GROUFLAG ; DESIRE : XENO
STZ fgRANDOM ; RANDOM OFF
LDA CHANGFLG
ORA #$0002 ; DEMANDE UN CHANGEMENT DE DECOR
STA CHANGFLG
JSR SAUV
JMP SOURIS1
ECR0840 LDX SECR2+1 ; RANDOM
LDA #ECR0841
STA BUMPER5+1
JMP BUMPER
ECR0841 NOP
JSR ECR08PATCH ; PATCH BUMPER
LDA #CADGRRAF
STA ECR08DAT+32
JSR CADGRHAC ; HAPPY FONCE
JSR CADGRLUC ; LUDY FONCE
JSR CADGRPLC ; PLANET FONCE
JSR CADGRXEC ; XENO FONCE
JSR CADGRRAF ; RANDOM CLAIR
LDA #$0004
STA GROUFLAG
LDA #$0001 ; RAMDOM ON
STA fgRANDOM
LDA CHANGFLG
AND #$FFFD ; INTERDIT UN CHANGEMENT DE DECOR
STA CHANGFLG
JSR SAUV
JMP SOURIS1
ECR0850 LDX SECR2+1 ; OK
LDA #ECR0851
STA BUMPER5+1
JMP BUMPER
ECR0851 NOP
JSR CTPNCLNZ ; ENLEVE LES BOUTONS
LDA #$0005
JMP PICT1
ECR08PATCH LDA #CADGRHAC ; PATCH BUMPER
STA ECR08DAT
LDA #CADGRLUC
STA ECR08DAT+8
LDA #CADGRPLC
STA ECR08DAT+16
LDA #CADGRXEC
STA ECR08DAT+24
LDA #CADGRRAC
STA ECR08DAT+32
RTS
GROUFLAG HEX 0400 ; 0:HAPPY,1:LUDY,2:PLANET,3:XENO,4:RANDOM
GROUCONV HEX 0300,0100,0400,0200
GROUECR HEX 0000 ; NUMERO DE L'ECRAN PRECEDENT
**************** LEVEL
ECR0900 LDX SECR2+1 ; <<
LDA #ECR0901
STA BUMPER5+1
JMP BUMPER
ECR0901 NOP
JSR NUMMOID ; LEVEL - 10
JSR NUMVERIF ; COHERENCE 1-120
JSR NUMAFFI ; AFFICHAGE
LDA CHANGFLG
ORA #$0001 ; DEMANDE LE CHANGEMENT PIECES/FLECHES
STA CHANGFLG
JMP SOURIS1
ECR0910 LDX SECR2+1 ; <
LDA #ECR0911
STA BUMPER5+1
JMP BUMPER
ECR0911 NOP
JSR NUMMOIU ; LEVEL - 1
JSR NUMVERIF ; COHERENCE 1-120
JSR NUMAFFI ; AFFICHAGE
LDA CHANGFLG
ORA #$0001 ; DEMANDE LE CHANGEMENT PIECES/FLECHES
STA CHANGFLG
JMP SOURIS1
ECR0920 LDX SECR2+1 ; >
LDA #ECR0921
STA BUMPER5+1
JMP BUMPER
ECR0921 NOP
JSR NUMPLUU ; LEVEL + 1
JSR NUMVERIF ; COHERENCE 1-120
JSR NUMAFFI ; AFFICHAGE
LDA CHANGFLG
ORA #$0001 ; DEMANDE LE CHANGEMENT PIECES/FLECHES
STA CHANGFLG
JMP SOURIS1
ECR0930 LDX SECR2+1 ; >>
LDA #ECR0931
STA BUMPER5+1
JMP BUMPER
ECR0931 NOP
JSR NUMPLUD ; LEVEL + 10
JSR NUMVERIF ; COHERENCE 1-120
JSR NUMAFFI ; AFFICHAGE
LDA CHANGFLG
ORA #$0001 ; DEMANDE LE CHANGEMENT PIECES/FLECHES
STA CHANGFLG
JMP SOURIS1
ECR0940 LDX SECR2+1 ; OK
LDA #ECR0941
STA BUMPER5+1
JMP BUMPER
ECR0941 NOP
JSR CTPNCLNZ ; ENLEVE LES BOUTONS
LDA #$0005
JMP PICT1
*************** DOC
ECR1000 LDX SECR2+1 ; <
LDA #ECR1001
STA BUMPER5+1
JMP BUMPER
ECR1001 NOP
LDA AFTIND
BEQ ECR1002
DEC
STA AFTIND
JSR AFTPAG ; AFICHAGE PAGE PRECEDENTE
ECR1002 JMP SOURIS1
ECR1010 LDX SECR2+1 ; >
LDA #ECR1011
STA BUMPER5+1
JMP BUMPER
ECR1011 NOP
LDA AFTIND
ECR1012 CMP #$0007 ; NB DE PAGES MAXI
BEQ ECR1013
INC
STA AFTIND
JSR AFTPAG ; AFFICHAGE PAGE SUIVANTE
ECR1013 JMP SOURIS1
ECR1020 LDX SECR2+1 ; OK
LDA #ECR1021
STA BUMPER5+1
JMP BUMPER
ECR1021 NOP
JSR CTPNCLNZ ; ENLEVE LES BOUTONS
LDA #$0005
JMP PICT1
DOCADR HEX 0000 ; ADRESSE DU TEXTE DOCU (FRANCAIS/ANGLAIS)
************* ABOUT
ECR1100 LDX SECR2+1 ; <
LDA #ECR1101
STA BUMPER5+1
JMP BUMPER
ECR1101 NOP
LDA AFTIND
BEQ ECR1102
DEC
STA AFTIND
JSR AFTPAG ; AFICHAGE PAGE PRECEDENTE
ECR1102 JMP SOURIS1
ECR1110 LDX SECR2+1 ; >
LDA #ECR1111
STA BUMPER5+1
JMP BUMPER
ECR1111 NOP
LDA AFTIND
ECR1112 CMP #$0005 ; NB DE PAGES MAXI
BEQ ECR1113
INC
STA AFTIND
JSR AFTPAG ; AFFICHAGE PAGE SUIVANTE
ECR1113 JMP SOURIS1
ECR1120 LDX SECR2+1 ; OK
LDA #ECR1121
STA BUMPER5+1
JMP BUMPER
ECR1121 NOP
JSR CTPNCLNZ ; ENLEVE LES BOUTONS
LDA #$0005
JMP PICT1
ABOUADR HEX 0000 ; ADRESSE DU TEXTE ABOUT (FRANCAIS/ANGLAIS)
************ QUIT
ECR1200 LDX SECR2+1 ; QUIT
LDA #ECR1201
STA BUMPER5+1
JMP BUMPER
ECR1201 NOP
JMP keyEND ; FIN
ECR1210 LDX SECR2+1 ; OK
LDA #ECR1211
STA BUMPER5+1
JMP BUMPER
ECR1211 NOP
JSR CTPNCLNZ ; ENLEVE LES BOUTONS
LDA #$0005
JMP PICT1
************ EASTER EGG HAPPY,LUDY,PLANET,XENO
ECR1300 LDX SECR2+1 ; OK
LDA #ECR1301
STA BUMPER5+1
JMP BUMPER
ECR1301 NOP
JSR RESTAUR
LDA #$0001
STA noINTER ; RETABLI LE TEMPS
STZ CTPNFLG ; ON AUTORISE L'ENTREE DANS LE CTPN
LDA OLDECR
STA ECRAN
JSR SAUV
JMP SOURIS1
asc 'Hey! I am looking for the WATCHMEN comics number 5 and 6',8d
***************************************************************************
****************************** DATA *************************************
***************************************************************************
************ BUMPER MANAGER ************ PAVE
BUMPER LDA FLAGTAB,X
BEQ BUMPER2
LDA BOUT
BEQ BUMPER1
BUMPER0 JMP SOURIS
BUMPER1 STZ FLAGTAB,X ; RELEVE LE BUMPER ET EFFECTUE LE TRAITEMENT
STZ BMPFLG
JSR DESS1
JSR AFFSPRR
JSR SAUV
BUMPER5 JMP $FFFF ; TRAITEMENT A EFFECTUER
BUMPER2 STX BUMPER4+1 ; SAUVEGARDE TEMPORAIRE DE X
LDA BMPFLG
BEQ BUMPER3
LDX LAST ; FORCE LE REMONTEE DE L'ANCIEN
STZ FLAGTAB,X
STZ BMPFLG
STX SECR2+1
JSR DESS1
JSR AFFSPRR
JSR SAUV
BUMPER3 LDA BOUT
BEQ BUMPER0 ; JMP SOURIS
BUMPER4 LDX #$FFFF ; RECUPERE LA VALEUR DE X PERTURBEE PAR LA REMONTE FORCEE
STX LAST ; ENFONCE LE BUMPER SUR LEQUEL ON SE TROUVE
LDA #$0001
STA BMPFLG
STA FLAGTAB,X
STX SECR2+1
JSR DESS1
JSR AFFSPRE
JSR SAUV
JMP SOURIS1
************* SURFACE MANAGER ************* ZONE D'ECRAN
SURFACE LDA BMPFLG ; X CONTIENT LE NUMERO DU BOUTON
BEQ SURFACE1
LDX LAST ; ON FORCE SA RELEVE
STZ BMPFLG
STZ FLAGTAB,X
STX SECR2+1
JSR DESS1
JSR AFFSPRR
JSR SAUV
JMP SOURIS1
SURFACE1 LDA BOUT
BEQ SURFACE2
SURFACE5 JMP $FFFF ; TRAITEMENT A EFFECTUER
SURFACE2 JMP SOURIS
******** TRAITEMENT PAR DEFAUT *********
BUMPDEF LDA BMPFLG
BEQ BUMPDEF1
LDX LAST ; FORCE LE REMONTEE DE L'ANCIEN
STZ FLAGTAB,X
STZ BMPFLG
STX SECR2+1
JSR DESS1
JSR AFFSPRR
JSR SAUV
JMP SOURIS1
BUMPDEF1 JMP SOURIS
**********************************************
ECR01TA1 HEX 01,01,01,01,01,01,01,01,01,01,01,01,00,00,00,00 ; FLECHES HAUT
HEX 02,02,02,02,02,02,02,02,02,02,02,02,00,00,00,00
HEX 03,03,03,03,03,03,03,03,03,03,03,03,00,00,00,00
HEX 04,04,04,04,04,04,04,04,04,04,04,04,00,00,00,00
HEX 05,05,05,05,05,05,05,05,05,05,05,05,00,00,00,00
HEX 06,06,06,06,06,06,06,06,06,06,06,06,00,00,00,00
HEX 07,07,07,07,07,07,07,07,07,07,07,07,00,00,00,00
HEX 08,08,08,08,08,08,08,08,08,08,08,08,00,00,00,00
HEX 09,09,09,09,09,09,09,09,09,09,09,09,00,00,00,00
ECR01TA2 HEX 12,12,12,12,12,12,12,12,12,12,12,12,00,00,00,00 ; FLECHES BAS
HEX 13,13,13,13,13,13,13,13,13,13,13,13,00,00,00,00
HEX 14,14,14,14,14,14,14,14,14,14,14,14,00,00,00,00
HEX 15,15,15,15,15,15,15,15,15,15,15,15,00,00,00,00
HEX 16,16,16,16,16,16,16,16,16,16,16,16,00,00,00,00
HEX 17,17,17,17,17,17,17,17,17,17,17,17,00,00,00,00
HEX 18,18,18,18,18,18,18,18,18,18,18,18,00,00,00,00
HEX 19,19,19,19,19,19,19,19,19,19,19,19,00,00,00,00
HEX 1A,1A,1A,1A,1A,1A,1A,1A,1A,1A,1A,1A,00,00,00,00
ECR01TA3 HEX 1B,1B,1B,1B,1B,1B,1B,1B,1B,1B,1B,1B,00,00 ; FLECHES GAUCHE
HEX 1C,1C,1C,1C,1C,1C,1C,1C,1C,1C,1C,1C,00,00
HEX 1D,1D,1D,1D,1D,1D,1D,1D,1D,1D,1D,1D,00,00
HEX 1E,1E,1E,1E,1E,1E,1E,1E,1E,1E,1E,1E,00,00
HEX 1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,1F,00,00
HEX 20,20,20,20,20,20,20,20,20,20,20,20,00,00
HEX 21,21,21,21,21,21,21,21,21,21,21,21,00,00
HEX 22,22,22,22,22,22,22,22,22,22,22,22,00,00
HEX 23,23,23,23,23,23,23,23,23,23,23,23,00,00
ECR01TA4 HEX 09,09,09,09,09,09,09,09,09,09,09,09,00,00 ; FLECHES DROITE
HEX 0A,0A,0A,0A,0A,0A,0A,0A,0A,0A,0A,0A,00,00
HEX 0B,0B,0B,0B,0B,0B,0B,0B,0B,0B,0B,0B,00,00
HEX 0C,0C,0C,0C,0C,0C,0C,0C,0C,0C,0C,0C,00,00
HEX 0D,0D,0D,0D,0D,0D,0D,0D,0D,0D,0D,0D,00,00
HEX 0E,0E,0E,0E,0E,0E,0E,0E,0E,0E,0E,0E,00,00
HEX 0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,0F,00,00
HEX 10,10,10,10,10,10,10,10,10,10,10,10,00,00
HEX 11,11,11,11,11,11,11,11,11,11,11,11,00,00
HEX 0500 ; HAPPY NB DE BOUTONS DANS ECRAN1
ECR01TAB HEX 1600,A100,1B00,2300 ; HAUT TABLEAU DES BOUTONS POUR ECRAN1
HEX 1600,A100,A500,AD00 ; BAS X0,X1 Y0,Y1
HEX 0A00,1100,2600,A200 ; GAUCHE
HEX A700,AE00,2600,A200 ; DROITE
HEX E900,ED00,2500,2800 ; EASTER EGGS
HEX 0500 ; LUDY
ECR02TAB HEX 1600,A100,1B00,2300 ; HAUT
HEX 1600,A100,A500,AD00 ; BAS
HEX 0A00,1100,2600,A200 ; GAUCHE
HEX A700,AE00,2600,A200 ; DROITE
HEX 1D01,2301,2E00,3300 ; EASTER EGGS
HEX 0500 ; PLANET
ECR03TAB HEX 1600,A100,1B00,2300 ; HAUT
HEX 1600,A100,A500,AD00 ; BAS
HEX 0A00,1100,2600,A200 ; GAUCHE
HEX A700,AE00,2600,A200 ; DROITE
HEX 0D01,1101,6300,6700 ; EASTER EGGS
HEX 0500 ; XENO
ECR04TAB HEX 1600,A100,1B00,2300 ; HAUT
HEX 1600,A100,A500,AD00 ; BAS
HEX 0A00,1100,2600,A200 ; GAUCHE
HEX A700,AE00,2600,A200 ; DROITE
HEX 0801,0E01,1900,1E00 ; EASTER EGGS
ECR01DAT HEX 0000,0000,0000,0000 ; LONGUEUR (*4),HAUTEUR,@ ECRAN,@ SPRITE
HEX 0800 ; CONTROL PANEL
ECR05TAB HEX 1800,5700,2500,3500 ; GAME
HEX 1800,5700,3800,4800 ; MUSIC
HEX 1800,5700,4B00,5B00 ; GROUND
HEX 1800,5700,5E00,6E00 ; LEVEL
HEX 1800,5700,7100,8100 ; DOC
HEX 1800,5700,8400,9400 ; ABOUT
HEX 1800,5700,9700,A700 ; QUIT
HEX 8800,B800,AD00,BD00 ; OK
ECR05DAT DA CADGAMC,CADGAMF,CADGAMC,CADGAMF
DA CADMUSC,CADMUSF,CADMUSC,CADMUSF
DA CADGROC,CADGROF,CADGROC,CADGROF
DA CADLEVC,CADLEVF,CADLEVC,CADLEVF
DA CADDOCC,CADDOCF,CADDOCC,CADDOCF
DA CADABOC,CADABOF,CADABOC,CADABOF
DA CADQUIC,CADQUIF,CADQUIC,CADQUIF
DA CADOKC,CADOKF,CADOKC,CADOKF
HEX 0300 ; LOAD/SAVE GAME
ECR06TAB HEX BC00,1301,4B00,5B00 ; LOAD
HEX BC00,1301,5E00,6E00 ; SAVE
HEX D000,FF00,7B00,8B00 ; OK
ECR06DAT DA CADGLOC,CADGLOF,CADGLOC,CADGLOF
DA CADGSAC,CADGSAF,CADGSAC,CADGSAF
DA CADGOKC,CADGOKF,CADGOKC,CADGOKF
HEX 0300 ; MUSIC
ECR07TAB HEX C800,0701,4B00,5B00 ; MUSIC X0,X1,Y0,Y1
HEX C800,0701,5E00,6E00 ; SOUND
HEX D000,FF00,7B00,8B00 ; OK
ECR07DAT DA CADMMUC,CADMMUF,CADMMUC,CADMMUF
DA CADMSNC,CADMSNF,CADMSNC,CADMSNF
DA CADMOKC,CADMOKF,CADMOKC,CADMOKF
HEX 0600 ; GROUND
ECR08TAB HEX A200,E700,4100,5100 ; HAPPY
HEX EC00,3101,4100,5100 ; LUDY
HEX A200,E700,5400,6400 ; PLANET
HEX EC00,3101,5400,6400 ; XENO
HEX C800,0B01,6C00,7C00 ; RANDOM
HEX D200,0101,8900,9900 ; OK
ECR08DAT DA CADGRHAC,CADGRHAF,CADGRHAC,CADGRHAF
DA CADGRLUC,CADGRLUF,CADGRLUC,CADGRLUF
DA CADGRPLC,CADGRPLF,CADGRPLC,CADGRPLF
DA CADGRXEC,CADGRXEF,CADGRXEC,CADGRXEF
DA CADGRRAC,CADGRRAF,CADGRRAC,CADGRRAF
DA CADGROKC,CADGROKF,CADGROKC,CADGROKF
HEX 0500 ; LEVEL
ECR09TAB HEX B400,CB00,6800,7700 ; MOINS 10
HEX CE00,E500,6800,7700 ; MOINS 1
HEX E000,0101,6800,7700 ; PLUS 1
HEX 0401,1B01,6800,7700 ; PLUS 10
HEX D000,FF00,8400,9400 ; OK
ECR09DAT DA CADLMDC,CADLMDF,CADLMDC,CADLMDF
DA CADLMUC,CADLMUF,CADLMUC,CADLMUF
DA CADLPUC,CADLPUF,CADLPUC,CADLPUF
DA CADLPDC,CADLPDF,CADLPDC,CADLPDF
DA CADLOKC,CADLOKF,CADLOKC,CADLOKF
HEX 0300 ; DOC
ECR10TAB HEX 9600,AD00,9900,A800 ; MOINS UNE
HEX E600,FD00,9900,A800 ; PLUS UNE
HEX B200,E100,9900,A900 ; OK
ECR10DAT DA CADDMUC,CADDMUF,CADDMUC,CADDMUF
DA CADDPUC,CADDPUF,CADDPUC,CADDPUF
DA CADDOKC,CADDOKF,CADDOKC,CADDOKF
HEX 0300 ; ABOUT
ECR11TAB HEX 9600,AD00,9900,A800 ; MOINS UNE
HEX E600,FD00,9900,A800 ; PLUS UNE
HEX B200,E100,9900,A900 ; OK
ECR11DAT DA CADDMUC,CADDMUF,CADDMUC,CADDMUF
DA CADDPUC,CADDPUF,CADDPUC,CADDPUF
DA CADDOKC,CADDOKF,CADDOKC,CADDOKF
HEX 0200 ; QUIT
ECR12TAB HEX BC00,1101,5600,6600 ; QUIT
HEX CE00,FD00,7D00,8D00 ; OK
ECR12DAT DA CADQQUC,CADQQUF,CADQQUC,CADQQUF
DA CADQOKC,CADQOKF,CADQOKC,CADQOKF
HEX 0100 ; EASTER EGGS
ECR13TAB HEX 8800,B800,AD00,BD00 ; OK
ECR13DAT DA CADOKC,CADOKF,CADOKC,CADOKF
****************
ECRTAB DA ECR01TAB,ECR02TAB,ECR03TAB,ECR04TAB ; ADRESSES DES TABLEAUX
DA ECR05TAB,ECR06TAB,ECR07TAB,ECR08TAB
DA ECR09TAB,ECR10TAB,ECR11TAB,ECR12TAB
DA ECR13TAB
ECRDAT DA ECR01DAT,ECR01DAT,ECR01DAT,ECR01DAT ; ADRESSE DES DONNEES BUMPERS
DA ECR05DAT,ECR06DAT,ECR07DAT,ECR08DAT
DA ECR09DAT,ECR10DAT,ECR11DAT,ECR12DAT
DA ECR13DAT
ECRDESA DA ECRDES1,ECRDES2,ECRDES3,ECRDES4 ; ADRESSE POUR LES DESTINATIONS
DA ECRDES5,ECRDES6,ECRDES7,ECRDES8
DA ECRDES9,ECRDES10,ECRDES11,ECRDES12
DA ECRDES13
****
ECRDES1 DA ECRJEH1,ECRJEB1,ECRJEG1,ECRJED1,ECREEHA ; ECRAN JEU : HAPPY
ECRDES2 DA ECRJEH1,ECRJEB1,ECRJEG1,ECRJED1,ECREELU ; ECRAN JEU : LUDY
ECRDES3 DA ECRJEH1,ECRJEB1,ECRJEG1,ECRJED1,ECREEPL ; ECRAN JEU : PLANET
ECRDES4 DA ECRJEH1,ECRJEB1,ECRJEG1,ECRJED1,ECREEXE ; ECRAN JEU : XENO
ECRDES5 DA ECR0500,ECR0510,ECR0520,ECR0530,ECR0540 ; CONTROL PANEL
DA ECR0550,ECR0560,ECR0570
ECRDES6 DA ECR0600,ECR0610,ECR0620 ; LOAD/SAVE
ECRDES7 DA ECR0700,ECR0710,ECR0720 ; MUSIC
ECRDES8 DA ECR0800,ECR0810,ECR0820,ECR0830,ECR0840 ; GROUND
DA ECR0850
ECRDES9 DA ECR0900,ECR0910,ECR0920,ECR0930,ECR0940 ; LEVEL
ECRDES10 DA ECR1000,ECR1010,ECR1020 ; DOC
ECRDES11 DA ECR1100,ECR1110,ECR1120 ; ABOUT
ECRDES12 DA ECR1200,ECR1210 ; QUIT
ECRDES13 DA ECR1300 ; EASTER EGGS
********************* SOUS ROUTINES SOURIS **************************
DEC HEX 000000000000 ; DECOR SOUS LE POINTEUR
HEX 000000000000
HEX 000000000000
HEX 000000000000
HEX 000000000000
HEX 000000000000
PTPAI HEX FFFFFFFF0000
HEX 0F00000F0000 ; POINTEUR POSITION PAIRE
HEX 00F000F00000
HEX 000F00F00000
HEX 0000FF000000
HEX 00000F000000
PTPAIMA HEX 00000000FFFF
HEX F0000000FFFF ; MASQUE POSITION PAIRE
HEX FF00000FFFFF
HEX FFF0000FFFFF
HEX FFFF00FFFFFF
HEX FFFFF0FFFFFF
PTIMP HEX 0FFFFFFFF000
HEX 00F00000F000 ; POINTEUR POSITION IMPAIRE
HEX 000F000F0000
HEX 0000F00F0000
HEX 00000FF00000
HEX 000000F00000
PTIMPMA HEX F00000000FFF
HEX FF0000000FFF ; MASQUE POSITION IMPAIRE
HEX FFF00000FFFF
HEX FFFF0000FFFF
HEX FFFFF00FFFFF
HEX FFFFFF0FFFFF
POSX HEX 0000 ; 0-312
POSY HEX 0000 ; 0-194
A1 HEX 0000 ; POSITION ACTUELLE
AP HEX 0000 ; ANCIENNE POSITION
ECRAN HEX 0100 ; ECRAN 1,2,3...
OLDECR HEX 0000 ; ECRAN PRECEDENT
GO HEX 0000 ; CONTIENT LE NUMERO DU BOUTON ENFONCE (A RELACHER)
LAST HEX 0000 ; DERNIER BUMPER ENFONCE
BMPFLG HEX 0000 ; A 1 SI UN BUMPER EST DEJA ENFONCE
BOUT HEX 0000 ; BOUTON
BOUT1 HEX 0000 ;
DELX HEX 000000
DELY HEX 000000 ; DONNEES SOURIS
NEX HEX 0000
NEY HEX 0000
FLAGTAB HEX 0000000000000000000000000000000000000000 ; FLAGS : 1 SI BUMPER ENFONCE
HEX 0000000000000000000000000000000000000000 ; NB DE BUMPER/BOUTON DANS 1 ECRAN
HEX 0000000000000000000000000000000000000000
HEX 0000000000000000000000000000000000000000
HEX 0000000000000000000000000000000000000000
asc 'There are two ways to get rich:',8d
asc '- To be very strong',8d
asc '- To take advantage of people',8d
asc 'Isn t it, Gaumu?',8d
********************
SEXIT LDY #$FFFF
RTS
SLECT LDAL $00C026 ; $C027 LECTURE SOURIS
BPL SEXIT
AND #$0200
BEQ SLECT1
LDAL $00C024
BRA SLECT
SLECT1 LDA #$0000 ; BOUT,NEX,NEY A 0 PAR DEFAUT
STA BOUT
STA NEX
STA NEY
LDAL $00C023 ; $C024 : DELTA X
BIT #$4000 ; SIGNE ?
BNE SLECT3
AND #$3F00 ; POSITIF
STA DELX
BRA SLECT4
SLECT3 AND #$3F00 ; NEGATIF
STA SLECT33+1
INC NEX
LDA #$4000 ; 64
SEC
SLECT33 SBC #$0000
STA DELX
SLECT4 LDAL $00C023 ; $C024 : DELTA Y
BMI SLECT44 ; NO BOUT : LECTURE SUR Y DE BOUTON 1
INC BOUT ; BOUT=1
SLECT44 BIT #$4000 ; SIGNE ?
BNE SLECT5
AND #$3F00 ; POSITIF
STA DELY
BRA SLECT6
SLECT5 AND #$3F00 ; NEGATIF
STA SLECT55+1
INC NEY
LDA #$4000 ; 64
SEC
SLECT55 SBC #$0000
STA DELY
SLECT6 LDA NEX ; CALCUL DE POSX
BNE SLECT8
LDA POSX ; DELX > 0
CLC
ADC DELX+1
CMP #$0139 ; 313
BMI SLECT7
LDA #$0138 ; 312
SLECT7 STA POSX
BRA SLECT10
SLECT8 LDA POSX ; DELX < 0
SEC
SBC DELX+1
BPL SLECT9
LDA #$0000
SLECT9 STA POSX
SLECT10 LDA NEY ; CALCUL DE POSY
BNE SLECT12
LDA POSY ; DELY > 0
CLC
ADC DELY+1
CMP #$00C3 ; 195
BMI SLECT11
LDA #$00C2 ; 194
SLECT11 STA POSY
BRA SLECT14
SLECT12 LDA POSY ; DELY < 0
SEC
SBC DELY+1
BPL SLECT13
LDA #$0000
SLECT13 STA POSY
SLECT14 RTS
**********************
DESS1 LDA A1
BRA DESS2
DESS LDA AP ; DESSINE LE DECOR (LIE A AP), ANCIENNE POSITION
DESS2 CLC
ADC #$2000
STA DESS4+1
LDY #$0000
LDX #$0004 ; LARGEUR 3
DESS3 LDA DEC,Y
DESS4 STAL $E12000,X
INY
INY
DEX
DEX
BPL DESS3
CPY #$0024 ; NB CASES (36)
BPL DESS5
LDX #$0004 ; LARGEUR 3
LDA DESS4+1
CLC
ADC #$00A0
STA DESS4+1
BRA DESS3
DESS5 RTS
SAUV LDA A1 ; SAUVEGARDE LE DECOR (LIE A A1), NOUVELLE POSITION
CLC
ADC #$2000
STA SAUV1+1
LDY #$0000
LDX #$0004 ; LARGEUR 3
SAUV1 LDAL $E12000,X
STA DEC,Y
INY
INY
DEX
DEX
BPL SAUV1
CPY #$0024 ; NB CASES (36)
BPL SAUV2
LDX #$0004 ; LARGEUR 3
LDA SAUV1+1
CLC
ADC #$00A0
STA SAUV1+1
BRA SAUV1
SAUV2 RTS
TRACE JSR DESS ; OK
JSR SAUV
TRACE6 LDA A1 ; DESSINE LE POINTEUR POSITION PAIRE
CLC
ADC #$2000
STA TRACE1+1
STA TRACE4+1
LDA POSX
LSR
BCC TRACEP
LDX #PTIMP ; POSITION IMPAIRE
LDY #PTIMPMA
BRA TRACE0
TRACEP LDX #PTPAI ; POSITION PAIRE
LDY #PTPAIMA
TRACE0 STX TRACE3+1 ; MOTIF
STY TRACE2+1 ; MASQUE
LDY #$0000
LDX #$0000
TRACE1 LDAL $E12000,X
TRACE2 AND $A0A0,Y ; ET AVEC LE MASQUE
TRACE3 ORA $A0A0,Y ; OU AVEC LE MOTIF
TRACE4 STAL $E12000,X
INY
INY
INX
INX
CPX #$0006 ; LARGEUR 3
BNE TRACE1
CPY #$0024 ; NB CASES (36)
BEQ TRACE5
LDX #$0000
LDA TRACE1+1
CLC
ADC #$00A0
STA TRACE1+1
STA TRACE4+1
BRA TRACE1
TRACE5 RTS
*************************************************
AFFSPRR INC AFFSPRF ; BUMPER RELEVE
AFFSPRE LDA ECRAN ; BUMPER ENFONCE
CMP #$0005
BPL AFFSPR0
STZ AFFSPRF
RTS ; BOUTON DE JEUX : PAS DE POSITIONS RELEVES/ENFONCES
AFFSPR0 DEC
ASL
TAX
LDA ECRDAT,X ; ADRESSE DU TABLEAU DES DATA POUR L'ECRAN CONCERNE
STA AFFSPR1+1
LDA SECR2+1 ; CONTIENT LE NUMERO DU BUMPER (*2)
ASL
ASL ; *4
CLC
AFFSPR1 ADC #$0000 ; ADRESSE DATA BUMPER
TAX
LDA\ $0000,X ; ADRESSE RELEVE C
STA AFFSPR3+1
LDA\ $0002,X ; ADRESSE ENFONCE F
STA AFFSPR2+1
LDA AFFSPRF ; FLAG DE AFFSPR
BNE AFFSPR3 ; ON DESSINE LE SPRITE RELEVE
AFFSPR2 JSR $A0A0
STZ AFFSPRF
RTS
AFFSPR3 JSR $A0A0
STZ AFFSPRF
RTS
AFFSPRF HEX 0000 ; FLAG RELEVE/ENFONCE
******************** TRAITEMENT ET AFFICHAGE ECRANS *********************
PICT1 LDX ECRAN ; PASSAGE ECRAN SANS CHANGEMENT DE FOND
STX OLDECR
STA ECRAN
JSR SAUV
JMP PICT21
PICT PHA
JSR DESS1 ; ENLEVE LE POINTEUR
PLA
LDX ECRAN
STX OLDECR
STA ECRAN
PICT21 JSR CLNFLG ; LES FLAGS DE BUMPER A ZERO
STZ BMPFLG ; LES FLAGS A ZERO
LDA ECRAN ; AFFICHAGES LIE A CHAQUE ECRAN
DEC
ASL
TAX
LDA ECRANTAB,X
STA PICT20+1
PICT20 JMP $FFFF ; ON VA SUR LA ROUTINE CORRESPONDANTE
ECRANTAB DA ECRJEU1,ECRJEU2,ECRJEU3,ECRJEU4,ECRCTPN ; NOM DES ECRANS POUR INIT D'AFFICHAGE
DA ECRGAME,ECRMUSI,ECRGROU,ECRLEVE,ECRDOCU
DA ECRABOU,ECRQUIT,ECREAEG
CLNFLG LDX #$0062 ; ON MET TOUS LES FLAG DE BUMPER A 0
LDA #$0000
CLNFLG1 STA FLAGTAB,X
DEX
DEX
BPL CLNFLG1
RTS
CHANGFLG HEX 0000 ; 0 SI PAS DE CHANGEMENT D'ECRAN QUAND ON REVIENT DU CTPN
; 1 SI CHANGEMENT PIECES/FLECHES
; 2 SI CHANGEMENT DECOR
; 3 SI CHANGEMENT TOTAL : PIECES/FLECHES et DECOR
*********** TRAITEMENT INITIAL A L'AFFICHAGE D'UN ECRAN
ECRJEU1 LDA CHANGFLG ; ECRAN DE JEU HAPPYLAND
BEQ ECRJEU10
LDA #$0001 ; MODIFICATION ?
JSR CHANGSOM
ECRJEU10 STZ CHANGFLG
JSR SAUV
JMP SOURIS1
ECRJEU2 LDA CHANGFLG ; ECRAN DE JEU LUDYLAND
BEQ ECRJEU20
LDA #$0002 ; MODIFICATION ?
JSR CHANGSOM
ECRJEU20 STZ CHANGFLG
JSR SAUV
JMP SOURIS1
ECRJEU3 LDA CHANGFLG ; ECRAN DE JEU PLANETLAST
BEQ ECRJEU30
LDA #$0003 ; MODIFICATION ?
JSR CHANGSOM
ECRJEU30 STZ CHANGFLG
JSR SAUV
JMP SOURIS1
ECRJEU4 LDA CHANGFLG ; ECRAN DE JEU XENOLAST
BEQ ECRJEU40
LDA #$0004 ; MODIFICATION ?
JSR CHANGSOM
ECRJEU40 STZ CHANGFLG
JSR SAUV
JMP SOURIS1
CHANGSOM LDX GROUFLAG ; AIGUILLAGE VERS UN CHANGEMENT PIECES ET/OU DECOR
CPX #$0004
BEQ CHANGSO4 ; PAS BESOIN DE CHANGER LE DECOR
DEC
CMP GROUFLAG
BEQ CHANGSO4 ; PAS BESOIN DE CHANGER LE DECOR
LDA CHANGFLG
CMP #$0001 ; BESOIN DE CHANGER LES PIECES ?
BEQ CHANGSO1
CMP #$0002 ; BESOIN DE CHANGER LE DECOR
BEQ CHANGSO2
BRA CHANGSO3 ; BESOIN DE CHANGER LES DEUX
CHANGSO4 LDA CHANGFLG ; ON N'A PAS BESOIN DE MODIFIER LE DECOR
AND #$0001
BNE CHANGSO1
STZ CHANGFLG
RTS ; AUCUNE MODIF
CHANGSO1 PLX ; MODIFICATION PIECES/FLECHES
STZ CHANGFLG
LDA ECRAN ; NOUVEL ECRAN SOUHAITE
DEC
ASL
TAX
LDA GROUCONV,X
STA CurDecor
lda vivaTOINET
bne laRUSE
LDA NUMHEX
STA Niveau
stz ldFlag
bra ahlala
laRUSE stz vivaTOINET
lda #1
sta ldFlag
ahlala jsr fadeOUT
JMP FIRST
CHANGSO2 PLX ; MODIFICATION DECOR
STZ CHANGFLG
LDA GROUFLAG ; NOUVEL ECRAN SOUHAITE
ASL
TAX
LDA GROUCONV,X
STA CurDecor
LDA GROUFLAG
INC
STA ECRAN
JSR setDecor
LDA #$0001
STA ldFlag
JSR fadeOUT
JMP FIRST
CHANGSO3 PLX ; MODIFICATION TOTALE
STZ CHANGFLG
LDA NUMHEX
STA Niveau
LDA GROUFLAG ; NOUVEL ECRAN SOUHAITE
ASL
TAX
LDA GROUCONV,X
STA CurDecor
LDA GROUFLAG
INC
STA ECRAN
jsr setDecor
jsr fadeOUT
stz ldFlag
JMP FIRST
ECRCTPN LDA CTPNFLG
BNE ECRCTPN1
LDA OLDECR
STA GROUECR ; ON CONSERVE LE NUMERO DE L'ECRAN PRECEDENT L'ENTREE
STZ noINTER ; ARRETE LE TEMPS
STZ CHANGFLG ; AUCUN CHANGEMENT PREVU AU RETOUR
JSR CADRE ; CREATION CADRE PAGE
JSR CADCTPN ; CREATION CONTROL PANEL
INC CTPNFLG
ECRCTPN1 JSR CTPNCLNZ ; NETTOYAGE ZONE BOUTONS AUXILIAIRES
JSR SAUV
JMP SOURIS1
CTPNFLG HEX 0000
ECRGAME JSR CADGAME ; CREATION DE L'ECRAN
JSR SAUV
JMP SOURIS1
ECRMUSI JSR CADMUSI ; CREATION DE L'ECRAN
JSR SAUV
JMP SOURIS1
ECRGROU JSR CADGROU ; CREATION DE L'ECRAN
JSR SAUV
JMP SOURIS1
ECRLEVE JSR CADLEVE ; CREATION DE L'ECRAN
JSR NUMVNOC ; CONVERSION NIVEAU EN COURS
JSR NUMAFFI ; AFFICHAGE NIVEAU
JSR SAUV
JMP SOURIS1
ECRDOCU JSR CADDOCU ; CREATION DE L'ECRAN
LDA DOCADR
STA AFTLIG1+1
JSR AFTPAG ; AFFICHE 1 PAGE DE TEXTE
JSR SAUV
JMP SOURIS1
ECRABOU JSR CADABOU ; CREATION DE L'ECRAN
LDA ABOUADR
STA AFTLIG1+1
JSR AFTPAG ; AFFICHE 1 PAGE DE TEXTE
JSR SAUV
JMP SOURIS1
ECRQUIT JSR CADQUIT ; CREATION DE L'ECRAN
JSR SAUV
JMP SOURIS1
ECREAEG JSR SAUV ; EASTER EGGS (ECRAN DEJA CONSTRUIT)
JMP SOURIS1
asc 'Coming soon to a screen near you: Cogito for the TurboRez',8d
asc 'The colorful version of the legendary game',8d
*********************************************************************
AFTA HEX 00FF0F000FFF0F000F00F0000F00FF000F000F00 ; A
AFTB HEX 0FFF0F000FFF0F000FFFF0000F00F0000F00F000 ; B
AFTC HEX 00FF0F000F000F0000FFF0000F0000000F00F000 ; C
AFTD HEX 0FFF0F000F000F000FFFF0000F000F000F00F000 ; D
AFTE HEX 0FFF0F000FFF0F000FFFFF00000000000000FF00 ; E
AFTF HEX 0FFF0F000FFF0F000F00FF000000000000000000 ; F
AFTG HEX 00FF0F000F000F0000FFF0000000FF000F00F000 ; G
AFTH HEX 0F000F000FFF0F000F000F000F00FF000F000F00 ; H
AFTI HEX 0FFF000F000F000F0FFFFF00000000000000FF00 ; I
AFTJ HEX 000F000000000F0000FFFF00F000F000F0000000 ; J
AFTK HEX 0F000F000FFF0F000F000F00F0000000F0000F00 ; K
AFTL HEX 0F000F000F000F000FFF0000000000000000FF00 ; L
AFTM HEX 0F000FF00F0F0F000F000F00FF000F000F000F00 ; M
AFTN HEX 0F000FF00F0F0F000F000F000F000F00FF000F00 ; N
AFTO HEX 00FF0F000F000F0000FFF0000F000F000F00F000 ; O
AFTP HEX 0FFF0F000FFF0F000F00F0000F00F00000000000 ; P
AFTQ HEX 00FF0F000F000F0000FFF0000F000F00F0000F00 ; Q
AFTR HEX 0FFF0F000FFF0F000F00F0000F00F000F0000F00 ; R
AFTS HEX 00FF0F0000FF00000FFFFF000000F0000F00F000 ; S
AFTT HEX 0FFF000F000F000F000FFF000000000000000000 ; T
AFTU HEX 0F000F000F000F0000FF0F000F000F000F00F000 ; U
AFTV HEX 0F000F0000F000F0000F0F000F00F000F0000000 ; V
AFTW HEX 0F000F000F0F0FF00F000F000F000F00FF000F00 ; W
AFTX HEX 0F0000F0000F00F00F000F00F0000000F0000F00 ; X
AFTY HEX 0F000F0000F0000F000F0F000F00F00000000000 ; Y
AFTZ HEX 0FFF0000000F00F00FFFFF00F00000000000FF00 ; Z
AFT0 HEX 00FF0F000F000F0000FFF0000F000F000F00F000 ; 0
AFT1 HEX 000F00FF000F000F0FFF0000000000000000FF00 ; 1
AFT2 HEX 0FFF000000FF0F000FFFF0000F00F0000000FF00 ; 2
AFT3 HEX 0FFF0000000F00000FFFF0000F00F0000F00F000 ; 3
AFT4 HEX 0F000F000F000FFF00000000F000F000FF00F000 ; 4
AFT5 HEX 0FFF0F000FFF00000FFFFF000000F0000F00F000 ; 5
AFT6 HEX 00FF0F000FFF0F0000FFFF000000F0000F00F000 ; 6
AFT7 HEX 0FFF0000000F00F000F0FF00F000000000000000 ; 7
AFT8 HEX 00FF0F0000FF0F0000FFF0000F00F0000F00F000 ; 8
AFT9 HEX 00FF0F0000FF00000FFFF0000F00FF000F00F000 ; 9
AFTPL HEX 000F000F0FFF000F000F00000000FF0000000000 ; +
AFTMOI HEX 000000000FFF0000000000000000FF0000000000 ; -
AFTET HEX 0F0F00FF0FFF00FF0F0F0F00F000FF00F0000F00 ; *
AFTSL HEX 00000000000F00F00F000F00F000000000000000 ; /
AFTEG HEX 00000FFF00000FFF00000000FF000000FF000000 ; =
AFTSO HEX 00000000000000000FFF0000000000000000FF00 ; _
AFTPE HEX 000F000F000F0000000F00000000000000000000 ; !
AFTPI HEX 00FF0F00000F0000000FF0000F00F00000000000 ; ?
AFTSU HEX 00F0000F0000000F00F000000000F00000000000 ; >
AFTIN HEX 0000000F00F0000F0000F000000000000000F000 ; <
AFTPO HEX 000F00F000F000F0000F00000000000000000000 ; (
AFTPF HEX 000F000000000000000F0000F000F000F0000000 ; )
AFTDP HEX 0000000F0000000F000000000000000000000000 ; :
AFTPT HEX 0000000000000000000F00000000000000000000 ; .
AFTVI HEX 0000000000000000000F000000000000F0000000 ; ,
AFTRO HEX 00FF00F000FF00000000F000F000F00000000000 ; o
AFTGU HEX 00F000F0000000000000F000F000000000000000 ; "
AFTAP HEX 000F000F00000000000000000000000000000000 ; '
AFTPV HEX 0000000000000000000F0000F0000000F0000000 ; ;
AFTDI HEX 00F00FFF00F00FFF00F0F000FF00F000FF00F000 ; #
AFTDO HEX 00FF0F0F00FF000F0FFFFF000000F0000F00F000 ; $
AFTAC HEX 000F00F00F00000000000000F0000F0000000000 ; ^
AFTPC HEX 0FF00FF0000F00F00F000F00F0000000FF00FF00 ; %
AFTSP HEX 0000000000000000000000000000000000000000 ; SPACE
AFTRD HEX 00FF0FFF0FFF0FFF00FFF000FF00FF00FF00F000 ; o
AFTBA HEX 0FF0F0000F0000F0FF00FF00F0F0FF00F000F000 ; SP
AFTFD HEX 000F000F0FFF000F000F0000F000FF00F0000000 ; ->
AFTFG HEX 000F00FF0FFF00FF000F00000000FF0000000000 ; <-
AFTNS HEX 0FFF0FFF0FFF0FFF0FFFFF00FF00FF00FF00FF00 ; NO SE
AFTADR DA AFTA,AFTB,AFTC,AFTD,AFTE,AFTF,AFTG,AFTH,AFTI,AFTJ,AFTK,AFTL,AFTM,AFTN ; 0-13
DA AFTO,AFTP,AFTQ,AFTR,AFTS,AFTT,AFTU,AFTV,AFTW,AFTX,AFTY,AFTZ,AFT0 ; 14-26
DA AFT1,AFT2,AFT3,AFT4,AFT5,AFT6,AFT7,AFT8,AFT9,AFTPL,AFTMOI,AFTET,AFTSL,AFTEG ; 27-40
DA AFTSO,AFTPE,AFTPI,AFTSU,AFTIN,AFTPO,AFTPF,AFTDP,AFTPT,AFTVI,AFTRO ; 41-51
DA AFTGU,AFTAP,AFTPV,AFTDI,AFTDO,AFTAC,AFTPC,AFTSP ; 52-59
DA AFTA,AFTB,AFTC,AFTD,AFTE,AFTF,AFTG,AFTH,AFTI,AFTJ,AFTK,AFTL,AFTM,AFTN ; 60-73
DA AFTO,AFTP,AFTQ,AFTR,AFTS,AFTT,AFTU,AFTV,AFTW,AFTX,AFTY,AFTZ ; 74-85
DA AFTRD
AFTTBL HEX C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DA ; A-Z
HEX B0,B1,B2,B3,B4,B5,B6,B7,B8,B9 ; 0-9
HEX AB,AD,AA,AF,BD,DF,A1,BF,BE,BC,A8,A9,BA,AE,AC ; +-*/=_!?><():.,
HEX DB,A2,A7,BB,A3,A4,DE,A5,A0 ; o"';#$^%SPC
HEX E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FA ; a-z
**************************** AFFICHAGE TEXT **********************************
******** AFFICHE PAGE ************
AFTPAG JSR AFTNE ; NETTOY
LDA #$0000
AFTPAG1 JSR AFTLIG ; AFFICHE 16 LIGNES
INC
CMP #$0010
BNE AFTPAG1
RTS
******** AFFICHE LIGNE ************
AFTLIG PHA ; RECOIT DANS A LE NUMERO DE LA LIGNE
ASL
TAX
LDA AFTTADLI,X
STA AFTAE ; OFFSET ADRESSE ECRAN DEBUT LIGNE
LDA AFTTABM,X
STA AFTLIG0+1 ; OFFSET DU CARACTERE DANS SA PAGE
LDA AFTIND
ASL
TAX
LDA AFTTADPT,X ; OFFSET DE LA PAGE DANS LE TEXTE
CLC
AFTLIG0 ADC #$AAAA
TAY ; OFFSET DU CARACTERE DANS LE TEXTE
AFTLIG1 LDA TEXTEFRD,Y
AND #$00FF
CMP #$008D
BEQ AFTLIG5 ; FIN DE LIGNE DETECTE
STA AFTLIG3+1
LDX #$0000
AFTLIG2 LDA AFTTBL,X
AND #$00FF
AFTLIG3 CMP #$AAAA
BEQ AFTLIG4 ; CARACTERE TROUVE
INX
CPX #$0062
BNE AFTLIG2
LDX #$0056 ; PAS TROUVE : ON MET UN BLANC
AFTLIG4 JSR AFTCAR ; AFFICHE CARACTERE
LDA AFTAE ; ADRESSE ECRAN CARACTERE SUIVANT
CLC
ADC #$0003
STA AFTAE
INY
BRA AFTLIG1
AFTLIG5 PLA
RTS
******** AFFICHE CARACTERE ********
AFTCAR PHY ; RECOIT DANS X L'INDICE DU CARACTERE
TXA
ASL
TAX
LDA AFTADR,X
STA AFTCAR1+1
CLC
ADC #$000A
STA AFTCAR3+1
LDX AFTAE ; 1 ere COLONNE
LDY #$0000 ;
AFTCAR2 LDAL $E12000,X
AFTCAR1 ORA $AAAA,Y
STAL $E12000,X
TXA
CLC
ADC #$00A0
TAX ; LIGNE SUIVANTE
INY
INY
CPY #$000A
BNE AFTCAR2
LDX AFTAE ; 2 eme COLONNE
INX
INX
LDY #$0000
AFTCAR4 LDAL $E12000,X
AFTCAR3 ORA $AAAA,Y
STAL $E12000,X
TXA
CLC
ADC #$00A0
TAX ; LIGNE SUIVANTE
INY
INY
CPY #$000A
BNE AFTCAR4
PLY
RTS
******* NETTOYAGE ********
AFTNE LDA #$0064 ; NETTOYAGE DE LA ZONE D'AFFICHAGE
STA CADRX0
LDA #$0031
STA CADRY0
LDA #$012C
STA CADRX1
LDA #$0091
STA CADRY1
JSR CARETAB
RTS
*************** TABLES, VARIABLES ET FLAGS ******************
AFTAE HEX 0000 ; ADRESSE ECRAN ECRITURE
AFTIND HEX 0000 ; INDEX PAGES
AFTTADPT HEX 0000,2002,4004,6006,8008,A00A,C00C,E00E,0011,2013
HEX 4015,6017,8019,A01B,C01D,E01F,0022,2024,4026,6028
AFTTADLI HEX 731F,3323,F326,B32A,732E,3332,F335,B339,733D,3341,F344,B348,734C,3350,F353,B357
AFTTABM HEX 0000,2200,4400,6600,8800,AA00,CC00,EE00,1001,3201,5401,7601,9801,BA01,DC01,FE01
****************.. TEXTE ......................*****************
TEXTEFRD ASC " ",8D
ASC " DOCUMENTATION COGITO ",8D
ASC " ",8D
ASC " (C) 1992 ATREID CONCEPT. ",8D
ASC " ",8D
ASC " ",8D
ASC "CONCEPTION : JEROME CRETAUX ",8D
ASC " ",8D
ASC "GRAPHISMES : O. BAILLY-MAITRE",8D
ASC " ",8D
ASC "MUSIQUE : FREDERIC MOTTE ",8D
ASC " ",8D
ASC "EFFETS SONORES : O. BAILLY-MAITRE",8D
ASC " ",8D
ASC "DOCUMENTATION : T.P. HIBIKI ",8D
ASC " ",8D
ASC " ",8D
ASC " PRINCIPE DU JEU ",8D
ASC " --------------- ",8D
ASC " ",8D
ASC " LE BUT DU JEU EST DE",8D
ASC "RECONSTITUER UNE FIGURE MELANGEE",8D
ASC "PAR L'ORDINATEUR. UTILISEZ LES",8D
ASC "FLECHES DE CONTROLE POUR DEPLACER",8D
ASC "LES LIGNES OU LES COLONNES. ",8D
ASC " ",8D
ASC " MAIS ATTENTION, PLUS VOUS",8D
ASC "MONTEZ EN NIVEAU, PLUS LE MODE",8D
ASC "DE DEPLACEMENT DES LIGNES ET DES",8D
ASC "COLONNES DEVIENT COMPLEXE, ET,",8D
ASC "BIEN ENTENDU, PLUS LA FIGURE A",8D
ASC "RECONSTITUER EST SOPHISTIQUEE. ",8D
ASC " ",8D
ASC " DANS COGITO, LE TEMPS N'EST",8D
ASC "PAS LIMITE MAIS IL EST COMPTE.",8D
ASC "VOTRE ENJEU EST DONC DE LE",8D
ASC "REDUIRE AU MINIMUM. IL FAUT NOTER",8D
ASC "QUE LE CHRONOMETRE NE S'ARRETE",8D
ASC "PAS SI VOUS ENTREZ DANS LE",8D
ASC "CONTROL PANEL DU GS PENDANT LE",8D
ASC "JEU. ",8D
ASC " ",8D
ASC " CE JEU N'ETANT PAS ",8D
ASC "FONDAMENTALEMENT UNE COURSE",8D
ASC "CONTRE LA MONTRE, IL EST ",8D
ASC "IMPORTANT QUE VOUS PRENIEZ VOTRE",8D
ASC "TEMPS LA PREMIERE FOIS QUE VOUS",8D
ASC "DECOUVREZ UN TABLEAU POUR ",8D
ASC " ",8D
ASC "ANALYSER FINEMENT LES ACTIONS ",8D
ASC "DE TOUTES LES FLECHES. ",8D
ASC " ",8D
ASC " UNE FOIS QUE VOUS AUREZ ",8D
ASC "TERMINE UN TABLEAU POUR LA",8D
ASC "PREMIERE FOIS, ESSAYEZ ",8D
ASC "D'AMELIORER VOTRE SCORE EN ",8D
ASC "REDUISANT AUSSI BIEN LE TEMPS",8D
ASC "ECOULE QUE LE NOMBRE DE COUPS",8D
ASC "UTILISES. ",8D
ASC " ",8D
ASC " LE JEU COMPORTE 120 NIVEAUX ",8D
ASC "DE DIFFICULTE CROISSANTE. ",8D
ASC " ",8D
ASC " BON COURAGE ! ",8D
ASC " ",8D
ASC " LE MENU DE CONFIGURATION ",8D
ASC " ------------------------ ",8D
ASC " ",8D
ASC " L'ACCES AU MENU DEPUIS LE",8D
ASC "JEU S'EFFECTUE SIMPLEMENT EN",8D
ASC "APPUYANT SUR UNE TOUCHE DU",8D
ASC "CLAVIER. ",8D
ASC " ",8D
ASC " * GAME : SI VOUS VOULEZ ",8D
ASC "INTERROMPRE UN JEU EN COURS POUR ",8D
ASC "LE REPRENDRE PLUS TARD, IL VOUS",8D
ASC "SUFFIT D'ENREGISTRER LE JEU",8D
ASC "EN UTILISANT L'OPTION 'SAVE'. ",8D
ASC "VOUS POURREZ LE REPRENDRE DANS",8D
ASC "L'ETAT OU IL ETAIT AVEC 'LOAD'.",8D
ASC " * MUSIC : VOUS POUVEZ ACTIVER",8D
ASC "OU DESACTIVER LA MUSIQUE DE FOND.",8D
ASC "SI LA MUSIQUE EST DESACTIVEE, ",8D
ASC "VOUS AUREZ DROIT A UN SON A",8D
ASC "CHAQUE DEPLACEMENT D'UNE LIGNE OU",8D
ASC "D'UNE COLONNE. ",8D
ASC " SI TOUTEFOIS VOUS NE VOULEZ",8D
ASC "AUCUN BRUIT, L'ACCES AU CONTROL",8D
ASC "PANEL DU GS RESTE POSSIBLE POUR",8D
ASC "METTRE A ZERO LE VOLUME SONORE",8D
ASC "DU GS. ",8D
ASC " IL FAUT NOTER QUE ",8D
ASC "L'ACTIVATION OU NON DE LA MUSIQUE",8D
ASC "N'A AUCUNE INFLUENCE SUR LE ",8D
ASC "CHRONOMETRE DU JEU. ",8D
ASC " ",8D
ASC " * GROUND : CETTE OPTION PERMET",8D
ASC "DE CHANGER DE DECOR DE FOND.",8D
ASC "VOUS AVEZ LA POSSIBILITE DE ",8D
ASC "CHOISIR UN DES QUATRE DECORS ",8D
ASC "(HAPPY, LUDY, PLANET OU XENO) OU",8D
ASC "DE LAISSER L'ORDINATEUR CHOISIR",8D
ASC "ALEATOIREMENT UN DECOR DE FOND",8D
ASC "POUR CHAQUE TABLEAU. ",8D
ASC " LE CHOIX DU DECOR DE FOND",8D
ASC "N'A AUCUNE INCIDENCE SUR LA ",8D
ASC "DIFFICULTE DU TABLEAU. ",8D
ASC " ",8D
ASC " * LEVEL : DANS LES VERSIONS",8D
ASC "COMMERCIALES DU JEU (MAC ET PC),",8D
ASC "UN CODE PERMETTAIT D'ACCEDER AUX",8D
ASC "DIFFERENTS NIVEAUX DU JEU. DANS",8D
ASC "LA VERSION GS, NOUS AVONS DECIDE ",8D
ASC "DE VOUS LAISSER ACCEDER LIBREMENT",8D
ASC "A N'IMPORTE QUEL NIVEAU. ",8D
ASC " VOUS POUVEZ DONC CHOISIR LE",8D
ASC "NIVEAU EN INDIQUANT SON NUMERO. ",8D
ASC " ",8D
ASC " * DOC : VOUS Y ETES !!! TOUT CE",8D
ASC "QUE VOUS AVEZ BESOIN DE SAVOIR",8D
ASC "POUR UTILISER CE LOGICIEL DE LA",8D
ASC "MEILLEURE FACON. ",8D
ASC " ",8D
ASC " * ABOUT : INFORMATIONS DIVERSES",8D
ASC "SUR LES PROGRAMMEURS DE LA",8D
ASC "VERSION APPLE //GS DU JEU. ",8D
ASC " ",8D
ASC " * QUIT : QUITTER LE LOGICIEL. ",8D
TEXTEUSD ASC " ",8D
ASC " COGITO DOCUMENTATION ",8D
ASC " ",8D
ASC " (C) 1992 ATREID CONCEPT. ",8D
ASC " ",8D
ASC " ",8D
ASC "CONCEPT : JEROME CRETAUX ",8D
ASC " ",8D
ASC "GRAPHICS : O. BAILLY-MAITRE",8D
ASC " ",8D
ASC "MUSIC : FREDERIC MOTTE ",8D
ASC " ",8D
ASC "SOUND EFFECTS : O. BAILLY-MAITRE",8D
ASC " ",8D
ASC "DOCUMENTATION : T.P. HIBIKI ",8D
ASC " ",8D
ASC " ",8D
ASC " INTRODUCTION ",8D
ASC " ------------ ",8D
ASC " ",8D
ASC " A FURIOUS CLICKING SOUND ",8D
ASC "THAT DOES NOT QUITE DROWN OUT",8D
ASC "SOFT ENCHANTING MUSIC. PEARL-LIKE",8D
ASC "BALLS SMASH INTO EACH OTHER WITH ",8D
ASC "UNBELIEVABLE SPEED. ",8D
ASC "AND YET, ALREADY, IT IS CALM",8D
ASC "AGAIN. ALONE AGAINST AN EVER ",8D
ASC "CHANGING OPPONENT, YOU WILL HAVE",8D
ASC "TO FIND A WAY TO RECONSTRUCT A",8D
ASC "DIAGRAM THAT HAS BEEN SCRAMBLED",8D
ASC "BY THE COMPUTER. DON'T GET YOUR",8D
ASC "HOPES UP, HOWEVER : ANY VICTORY",8D
ASC " ",8D
ASC "WILL ONLY BE TEMPORARY, YOUR ",8D
ASC "FREEDOM OF CHOICE WILL CONSTANTLY",8D
ASC "BE CURTAILED, YOUR MOVEMENTS WILL",8D
ASC "BECOME CLUMSY AND CONFUSED, THE",8D
ASC "DIAGRAM WILL BE MORE COMPLEX...",8D
ASC "AND THUS BEGINS, FOR THE NOVICE",8D
ASC "AS FOR THE EXPERT, THE NEVER",8D
ASC "ENDING QUEST FOR THE BOUNDARIES",8D
ASC "OF THE HUMAN SPIRIT... ",8D
ASC " ",8D
ASC " ",8D
ASC " ",8D
ASC " ",8D
ASC " ",8D
ASC " ",8D
ASC " ",8D
ASC " OVERVIEW ",8D
ASC " -------- ",8D
ASC " ",8D
ASC " THE OBJECTIVE OF THE GAME IS",8D
ASC "TO RECONSTRUCT A DIAGRAM THAT HAS",8D
ASC "BEEN SCRAMBLED BY THE COMPUTER. ",8D
ASC "YOU WILL USE THE CONTROL ARROWS",8D
ASC "THAT SURROUND THE DIAGRAM TO MOVE",8D
ASC "THE ROWS AND COLUMNS. ",8D
ASC " BE CAREFUL, HOWEVER: AS YOU ",8D
ASC "PROGRESS, MOVING THE ROWS AND",8D
ASC "COLUMNS WILL BECOME MORE",8D
ASC "DIFFICULT AND, NATURALLY, THE ",8D
ASC "DIAGRAM ITSELF WILL BECOME MORE",8D
ASC "AND MORE SOPHISTICATED. ",8D
ASC " ",8D
ASC " THERE IS NO TIME LIMIT, BUT",8D
ASC "THE TIME ELAPSED IS DISPLAYED. ",8D
ASC "YOUR GOAL IS TO RECONSTRUCT THE",8D
ASC "DIAGRAM AS QUICKLY AS POSSIBLE. ",8D
ASC " ",8D
ASC " AS THIS GAME IS FUNDAMENTALLY",8D
ASC "NOT A RACE AGAINST THE CLOCK, WE ",8D
ASC "RECOMMEND THAT YOU TAKE YOUR TIME",8D
ASC "AT THE BEGINNING TO CLOSELY",8D
ASC "ANALYZE THE RESULTS OBTAINED WHEN",8D
ASC "USING THE VARIOUS CONTROL ARROWS.",8D
ASC " ONCE YOU HAVE SUCCESSFULLY",8D
ASC "COMPLETED A DIAGRAM, TRY TO",8D
ASC "IMPROVE YOUR SCORE BY REDUCING",8D
ASC "THE TIME AND NUMBER OF MOVES USED",8D
ASC " ",8D
ASC " CONFIGURATION PANEL ",8D
ASC " ------------------- ",8D
ASC " ",8D
ASC " TO ACCESS THE PANEL ",8D
ASC "CONFIGURATION FROM THE GAME, JUST",8D
ASC "HIT A KEY OF THE APPLE IIGS",8D
ASC "KEYBOARD. ",8D
ASC " ",8D
ASC " * GAME : IF YOU WANT TO END A",8D
ASC "CURRENT GAME TO COME BACK LATER,",8D
ASC "YOU JUST HAVE TO RECORD IT USING",8D
ASC "THE 'SAVE GAME' OPTION. ",8D
ASC "IF YOU NOW WANT TO LOAD YOUR",8D
ASC "SAVED GAME JUST USE THE",8D
ASC "'LOAD GAME' OPTION. ",8D
ASC " * MUSIC : YOU CAN ACTIVATE OR",8D
ASC "DESACTIVATE THE MUSIC. ",8D
ASC "IF THE MUSIC IS DESACTIVADED, YOU",8D
ASC "WILL HAVE A SOUND EACH TIME YOU",8D
ASC "MOVE A ROW OR A COLUMN. ",8D
ASC " IF YOU DON'T WANT ANY NOISE",8D
ASC "YOU CAN FREELY ACCESS THE ",8D
ASC "APPLE IIGS CONTROL PANEL DURING",8D
ASC "THE GAME TO MODIFY THE SPEAKER",8D
ASC "VOLUME. ",8D
ASC " ",8D
ASC " * GROUND : THIS OPTION LETS YOU",8D
ASC "CHOOSE THE BACKGROUND PICTURE.",8D
ASC "YOU CAN SELECT ONE FROM THE FOUR",8D
ASC "AVAILABLE (HAPPY, LUDY, PLANET OR",8D
ASC "XENO) OR LET THE COMPUTER ",8D
ASC "RANDOMLY CHOOSE A NEW BACKGROUND",8D
ASC "PICTURE FOR EACH NEW LEVEL. ",8D
ASC " THE CHOICE OF A BACKGROUND",8D
ASC "PICTURE HAS NO CONNEXION WITH THE",8D
ASC "DIFFICULTY OF THE LEVEL. ",8D
ASC " ",8D
ASC " * LEVEL : IN THE COMMERCIAL",8D
ASC "EDITIONS OF THIS GAME (MAC, PC),",8D
ASC "YOU HAD TO GIVE A CODE TO GAIN",8D
ASC "ACCESS TO A LEVEL. IN THE",8D
ASC "APPLE II GS VERSION, WE HAVE",8D
ASC "DECIDED TO LET YOU ACCESS",8D
ASC "FREELY ANY LEVEL. ",8D
ASC " THEN YOU CAN CHOOSE YOUR",8D
ASC "LEVEL JUST BY GIVING ITS NUMBER. ",8D
ASC " ",8D
ASC " ",8D
ASC " * DOC : HERE YOU ARE !!!",8D
ASC "EVERYTHING YOU NEED TO KNOW ABOUT",8D
ASC "THIS GAME TO USE IT AS THE BEST",8D
ASC "WAY. ",8D
ASC " ",8D
ASC " * ABOUT : INFORMATIONS ABOUT ",8D
ASC "THE PROGRAMMERS OF THE APPLE //GS",8D
ASC "VERSION OF THE GAME. ",8D
ASC " ",8D
ASC " * QUIT : TO QUIT THE GAME. ",8D
ASC " ",8D
ASC " ",8D
ASC " ",8D
ASC " GOOD LUCK WITH THE 120 LEVELS ! ",8D
ASC " ",8D
TEXTEFRA ASC " ",8D
ASC " *** *** * * ***** ** * ",8D
ASC " * * * * * * * * * * ",8D
ASC " *** *** * * * **** * ",8D
ASC " * * * * * * * * * * ",8D
ASC " *** * * *** * * * **** ",8D
ASC " ",8D
ASC " *** **** * * * * * **** ",8D
ASC " * * * * * * * * * ",8D
ASC " * * *** * * * * *** ",8D
ASC " * * * * * * * * * ",8D
ASC " *** **** **** *** * * **** ",8D
ASC " ",8D
ASC " ",8D
ASC " SEPTEMBRE 1994 ",8D
ASC " ",8D
ASC " ",8D
ASC " COGITO VERSION APPLE//GS ",8D
ASC " ",8D
ASC " ",8D
ASC " PROGRAMMATION : BRUTAL DELUXE ",8D
ASC " ",8D
ASC " DESIGN : BRUTAL DELUXE ",8D
ASC " ",8D
ASC "LES GRAPHIQUES ONT ETE CONVERTIS ",8D
ASC " A L'AIDE DE CONVERT 3200, ",8D
ASC " (C) 1993 BRUTAL DELUXE ",8D
ASC " ",8D
ASC " MUSIQUE : TOOL 220 ",8D
ASC " (C) 1991 FTA ",8D
ASC " ",8D
ASC "MERCI A J. CRETAUX POUR SON AIDE.",8D
ASC " ",8D
ASC " COGITO GS EST ",8D
ASC " ",8D
ASC " - INSTALLABLE SUR DISQUE DUR, ",8D
ASC " ",8D
ASC " - COMPATIBLE GS/OS 5.0 A 6.01,",8D
ASC " ",8D
ASC " - N'OCCUPE QUE 500 KO EN RAM, ",8D
ASC " ",8D
ASC " - UN LOGICIEL EN FREEWARE, ",8D
ASC " ",8D
ASC " - N'EST PAS CENSE FONCTIONNER ",8D
ASC "SOUS DES ENVIRONNEMENTS MULTI ",8D
ASC "TACHES OU MULTI APPLICATIONS ",8D
ASC "(THE MANAGER, SWITCH IT, GNO...).",8D
ASC "A VOS RISQUES ET PERILS... ",8D
ASC " ",8D
ASC " TOUTES NOS PRODUCTIONS : ",8D
ASC " ",8D
ASC " - BILLE ART ",8D
ASC " ",8D
ASC " - OPALE DEMO ",8D
ASC " ",8D
ASC " - SYSTEME GS/OS 6.01 FRANCAIS",8D
ASC " ",8D
ASC " - TINIES GS ",8D
ASC " ",8D
ASC " - COGITO GS ",8D
ASC " ",8D
ASC " SONT DISPONIBLES AUPRES DU",8D
ASC "GS CLUB. ",8D
ASC " ",8D
ASC " ",8D
ASC " PROCHAINS LOGICIELS DISPONIBLES ",8D
ASC " ",8D
ASC " - TINIES CONSTRUCTION KIT ",8D
ASC "EDITEZ VOUS MEME DES NOUVEAUX",8D
ASC "TABLEAUX POUR TINIES ET JOUEZ",8D
ASC "AVEC. ",8D
ASC " ",8D
ASC " - CONVERT 3200 ",8D
ASC "UN CONVERTISSEUR GRAPHIQUE. ",8D
ASC " ",8D
ASC " ",8D
ASC "VOUS POUVEZ NOUS CONTACTER SUR",8D
ASC "MINITEL : ",8D
ASC " ",8D
ASC " 3615 RTEL, BAL : BRUTAL DELUXE ",8D
ASC "UN GRAND COUCOU A NOS AMIS : ",8D
ASC " ",8D
ASC " ACHA, ANTONIO, ARAGORN GS,",8D
ASC "AZEBULON, BABAR, BANDIT II, BARBE",8D
ASC "BLEUE, BILBO BILOBA, J.M BOUILLY,",8D
ASC "BRAINSTORM SOFTWARE, J.A. CANAL,",8D
ASC "CGS, DIZZY, FLATLINER, GHERKIN,",8D
ASC "J.P GOURNAY, GRAND SOT, INDIANA,",8D
ASC "KRYPTON, LACAZE BROTHER, J.C",8D
ASC "LEDUCQ, FRED LEHIDEUX, LO44,",8D
ASC "NIBBLE, OTOMATIC, PERFECT BUGS,",8D
ASC "PILATUS, SAM IIGS, TEASER, TEDY,",8D
ASC "THE WHITE MAN... ",8D
ASC " ",8D
ASC " AINSI QU'AUX NOMBREUX ET FIDELES",8D
ASC "RTELIENS DE LA RUB GS. ",8D
ASC " NOUS N'OUBLIONS PAS NON PLUS NOS",8D
ASC "CONTACTS A L'ETRANGER : ",8D
ASC " ",8D
ASC " URS 'CODEBURGER', HENRIK GUDAT,",8D
ASC "FRANK M.LIN, JOE KOHN, WILLIAM",8D
ASC "ST PIERRE, KEN POPPLETON, STEVE",8D
ASC "SEBAN, SAM LATELLA... ",8D
ASC " ",8D
ASC " COGITO COMME TOUTES NOS AUTRES",8D
ASC "PRODUCTIONS EST GRATUIT. SI VOUS",8D
ASC "PENSEZ QUE VOUS AURIEZ ACHETE",8D
ASC "CES LOGICIELS S'ILS ETAIENT EN",8D
ASC "VENTE, LA CHOSE QUI NOUS FERAIT",8D
ASC "PLAISIR SERAIT QUE VOUS UTILISIEZ",8D
ASC "L'ARGENT AINSI ECONOMISE EN VOUS",8D
ASC "ABONNANT A DES REVUES EN FRANCAIS",8D
ASC "QUI PARLENT DU GS. VOICI LEURS",8D
ASC "ADRESSES. ",8D
ASC " ",8D
ASC " LA POMME ILLUSTREE : ",8D
ASC " ",8D
ASC " LA POMME ILLUSTREE ",8D
ASC " 20 IMPASSE SOUS LES PRES ",8D
ASC " 94110 ARCUEIL ",8D
ASC " FRANCE ",8D
ASC " ",8D
ASC " KISS FROM ISRAEL : ",8D
ASC " ",8D
ASC " KPL EDITION ",8D
ASC " PO BOX 2593 ",8D
ASC " NETANYA ",8D
ASC " ISRAEL ",8D
TEXTEUSA ASC " ",8D
ASC " *** *** * * ***** ** * ",8D
ASC " * * * * * * * * * * ",8D
ASC " *** *** * * * **** * ",8D
ASC " * * * * * * * * * * ",8D
ASC " *** * * *** * * * **** ",8D
ASC " ",8D
ASC " *** **** * * * * * **** ",8D
ASC " * * * * * * * * * ",8D
ASC " * * *** * * * * *** ",8D
ASC " * * * * * * * * * ",8D
ASC " *** **** **** *** * * **** ",8D
ASC " ",8D
ASC " SEPTEMBER 1994 ",8D
ASC " ",8D
ASC " WE'RE BACK ! ",8D
ASC " ",8D
ASC " COGITO APPLE//GS VERSION ",8D
ASC " ",8D
ASC " ",8D
ASC " PROGRAMMATION : BRUTAL DELUXE ",8D
ASC " ",8D
ASC " DESIGN : BRUTAL DELUXE ",8D
ASC " ",8D
ASC " GRAPHICS HAVE BEEN CONVERTED ",8D
ASC " USING CONVERT 3200, ",8D
ASC " (C) 1993 BRUTAL DELUXE ",8D
ASC " ",8D
ASC " MUSIC : TOOL 220 ",8D
ASC " (C) 1991 FTA ",8D
ASC " ",8D
ASC "THANKS TO J.CRETAUX FOR HIS HELP.",8D
ASC " ",8D
ASC " COGITO GS IS ",8D
ASC " ",8D
ASC " - INSTALLABLE ON HARD DRIVE ",8D
ASC " ",8D
ASC " - COMPATIBLE GS/OS 5.0 TO 6.01",8D
ASC " ",8D
ASC " - USE ONLY 500 KB OF MEMORY ",8D
ASC " ",8D
ASC " - A FREEWARE SOFTWARE ",8D
ASC " ",8D
ASC " - NOT SUPPOSED TO WORK UNDER",8D
ASC "MULTI TASKING ENVIRONMENTS OR",8D
ASC "MULTI APPLICATIONS ENVIRONMENTS",8D
ASC "(THE MANAGER, SWITCH IT, GNO...).",8D
ASC "YOU WILL USE IT AT YOUR OWN RISKS",8D
ASC " ",8D
ASC " ALL OUR PRODUCTIONS : ",8D
ASC " ",8D
ASC " - BILLE ART ",8D
ASC " ",8D
ASC " - TINIES GS ",8D
ASC " ",8D
ASC " - OPALE DEMO ",8D
ASC " ",8D
ASC " - COGITO GS ",8D
ASC " ",8D
ASC " ARE AVAILABLE ON FTP SITES LIKE",8D
ASC "CCOSUN.CALTECH.EDU OR IF YOU HAVE",8D
ASC "SUBSCRIBED TO SHAREWARE SOLUTIONS",8D
ASC "YOU CAN ASK THEM TO JOE KOHN. ",8D
ASC " ",8D
ASC " OUR NEXT SOFTWARES WILL BE : ",8D
ASC " ",8D
ASC " - TINIES CONSTRUCTION KIT ",8D
ASC "EDIT AND PLAY AT YOUR OWN LEVELS.",8D
ASC " ",8D
ASC " - CONVERT 3200 ",8D
ASC "A 16/256/3200 GRAPHIC CONVERTER ",8D
ASC " ",8D
ASC "YOU CAN JOIN US AT : ",8D
ASC " ",8D
ASC " BRUTAL DELUXE SOFTWARE ",8D
ASC " 11 RUE EMILE FOURCAND ",8D
ASC " 33000 BORDEAUX ",8D
ASC " FRANCE ",8D
ASC " INTERNET : ",8D
ASC " ZARDINI@IXL.U-BORDEAUX.FR ",8D
ASC " WE WOULD LIKE TO SAY HELLO TO ",8D
ASC "OUR FRIENDS AND PEOPLE WE HAVE",8D
ASC "MET ON INTERNET : ",8D
ASC " ",8D
ASC " JOE KOHN, FRANK M.LIN, MARC SIRA",8D
ASC "PAUL SCHULTZ, NATHAN MATES, DAVID",8D
ASC "ONG TAT-WEE, LIM THYE CHEAN, ",8D
ASC "DANIEL PFARRER, RANDY SHACKELFORD",8D
ASC "PETAR E PUSKARICH, SAM LATELLA,",8D
ASC "KEN RICHARSON, ELIAS KOUTOULAKIS,",8D
ASC "RICHARD KING, TOM WEISHAAR, STEVE",8D
ASC "SEBAN, WILLIAM ST PIERRE, KEN",8D
ASC "POPPLETON, URS 'CODEBURGER', ",8D
ASC "HENRIK GUDAT, IAN SCHMIDT... ",8D
ASC " ",8D
ASC "AND ALL THOSE WE HAVE FORGOTTEN..",8D
ASC " ",8D
ASC " SPECIAL HELLO TO ALL THE PEOPLE",8D
ASC "WHO HAVE WRITTEN TO US TO TELL US",8D
ASC "THEY HAD LOVED TINIES... ",8D
ASC " ",8D
ASC " BRUTAL DELUXE SUPPORTS THE ",8D
ASC " PHOENIX PROJECT ",8D
ASC " TURBO REZ GRAPHIC CARD ",8D
ASC " DSP CARD ",8D
ASC " ",8D
ASC " ",8D
ASC "BRUTAL DELUXE IS LOOKING FOR ",8D
ASC "GRAPHISTS TO END THE OPALE GAME, ",8D
ASC "JUST HAVE A LOOK TO THE OPALE ",8D
ASC "DEMO FOR MORE INFORMATIONS. ",8D
ASC " ",8D
ASC " BIG KISSES EVERYWHERE TO ",8D
ASC " CHARLOTTE HORSTMAN (OKLAHOMA), ",8D
ASC "MY PREFERED AMERICAN GIRL... ",8D
ASC " ",8D
ASC " ",8D
ASC " ALL OUR PRODUCTIONS ARE FREE.",8D
ASC "IF YOU THINK YOU HAD BOUGHT ",8D
ASC "THEM IF THEY HAD BEEN SOLD, WE",8D
ASC "WILL BE REALLY VERY HAPPY IF YOU",8D
ASC "COULD USE THE MONEY YOU HAVE KEPT",8D
ASC "TO SUBSCRIBE TO SHAREWARE SOL. II",8D
ASC "NEWSLETTER. IT IS A VERY GOOD",8D
ASC "BI-MONTHLY PAPER. SSII COMES WITH",8D
ASC "A PRO-RATED MONEY BACK GUARANTEE.",8D
ASC " PERHAPS YOU DON'T UNDERSTAND",8D
ASC "THE CONNEXION BETWEEN THE FACT",8D
ASC "THAT WE SPEND OUR TIME TO PROGRAM",8D
ASC "FREELY AND A NEWSLETTER, BUT IT",8D
ASC "EXISTS...THE SAME APPLE II SPIRIT",8D
ASC " ",8D
ASC " TO CONTACT JOE : ",8D
ASC " ",8D
ASC " SHAREWARE SOLUTIONS II ",8D
ASC " JOE KOHN ",8D
ASC " 166 ALPINE STREET ",8D
ASC " SAN RAFAEL, CA 94901-1008 ",8D
ASC " USA ",8D
ASC " ",8D
ASC "CIS : 76702,565 ",8D
ASC "GENIE : JOE.KOHN ",8D
ASC "INTERNET : JOKO@CRL.COM",8D
ASC "AMERICAN ONLINE : JOKO ",8D
**************************
KBD PHA
KBD1 LDAL $00BFFF
BPL KBD1
STAL $00C010
PLA
RTS
FADELINE1 PHX ; FADE OUT LIGNE Acc
PHY
LDY #$0000
FAD0 ASL
TAX
LDA TABLE,X
CLC
ADC #$2000
STA FAD5+1
STA FAD8+1
STA FAD6+1
STA FAD9+1
FAD4 LDX #$009F
FAD5 LDAL $E15E80,X
BIT #$00F0
BEQ FAD6
SEC
SBC #$0010
FAD8 STAL $E15E80,X
FAD6 LDAL $E15E80,X
BIT #$000F
BEQ FAD7
SEC
SBC #$0001
FAD9 STAL $E15E80,X
FAD7 DEX
BPL FAD5
DEY
BPL FAD4
PLY
PLX
RTS
FADELINE8 PHX ; FADE LINE Acc
PHY
ASL
TAX
LDA TABLE,X
CLC
ADC #$2000
STA FAD10+1
STA FAD12+1
STA FAD13+1
LDX #$009F
FAD10 LDAL $E12000,X
AND #$00FF
TAY
LDA TABLE2,Y
AND #$00FF
STA FAD11+1
FAD12 LDAL $E12000,X
AND #$FF00
FAD11 ORA #$0000
FAD13 STAL $E12000,X
DEX
BPL FAD10
PLY
PLX
RTS
TRAC1 PHA
PHX
PHY
LDA TRACFLAG
BEQ TRAC10
STZ TRACFLAG
BRA TRAC11
TRAC10 STZ LIFLAG
JSR TRACELI ; NETTOYAGE
DEC COOR1Y
DEC COOR1Y
INC COOR2Y
INC COOR2Y
INC LIFLAG
JSR TRACELI ; TRACE
INC TRACFLAG
TRAC11 PLY
PLX
PLA
RTS
TRAC2 PHA
PHX
PHY
LDA TRACFLAG
BEQ TRAC20
STZ TRACFLAG
BRA TRAC22
TRAC20 STZ LIFLAG
JSR TRACELI ; NETTOYAGE
INC COOR1X
INC COOR1X
INC COOR1X
INC COOR1X
INC COOR2Y
INC COOR2Y
INC LIFLAG
JSR TRACELI ; TRACE
INC TRACFLAG
TRAC22 PLY
PLX
PLA
RTS
TRAC3 PHA
PHX
PHY
LDA TRACFLAG
BEQ TRAC30
STZ TRACFLAG
BRA TRAC33
TRAC30 STZ LIFLAG
JSR TRACELI ; NETTOYAGE
INC COOR1X
INC COOR1X
INC COOR1X
INC COOR1X
DEC COOR2X
DEC COOR2X
DEC COOR2X
DEC COOR2X
INC LIFLAG
JSR TRACELI ; TRACE
INC TRACFLAG
TRAC33 PLY
PLX
PLA
RTS
TRAC4 PHA
PHX
PHY
LDA TRACFLAG
BEQ TRAC40
STZ TRACFLAG
BRA TRAC44
TRAC40 STZ LIFLAG
JSR TRACELI ; NETTOYAGE
INC COOR1Y
INC COOR1Y
DEC COOR2X
DEC COOR2X
DEC COOR2X
DEC COOR2X
INC LIFLAG
JSR TRACELI ; TRACE
INC TRACFLAG
TRAC44 PLY
PLX
PLA
RTS
TRAC5 PHA
PHX
PHY
LDA TRACFLAG
BEQ TRAC50
STZ TRACFLAG
BRA TRAC55
TRAC50 STZ LIFLAG
JSR TRACELI ; NETTOYAGE
LDA COOR1Y
CMP #$00C1
BEQ TRAC51
INC COOR1Y
INC COOR1Y
TRAC51 DEC COOR2Y
DEC COOR2Y
INC LIFLAG
JSR TRACELI ; TRACE
INC TRACFLAG
TRAC55 PLY
PLX
PLA
RTS
TRAC6 PHA
PHX
PHY
LDA TRACFLAG
BEQ TRAC60
STZ TRACFLAG
BRA TRAC66
TRAC60 STZ LIFLAG
JSR TRACELI ; NETTOYAGE
DEC COOR1X
DEC COOR1X
DEC COOR1X
DEC COOR1X
DEC COOR2Y
DEC COOR2Y
INC LIFLAG
JSR TRACELI ; TRACE
INC TRACFLAG
TRAC66 PLY
PLX
PLA
RTS
TRACEND PHX
PHY
STZ LIFLAG
JSR TRACELI ; NETTOYAGE
INC LIFLAG
PLY
PLX
RTS
TRACELI LDA COOR1X ; TRACE LES LIGNES DU CADRE
STA LIX1
LDA COOR1Y
STA LIY1
LDA #$00A0
STA LIX0
LDA #$0064
STA LIY0
JSR LIGNE
LDA COOR2X
STA LIX1
LDA COOR2Y
STA LIY1
LDA #$00A0
STA LIX0
LDA #$0064
STA LIY0
JSR LIGNE
RTS
TRACFLAG HEX 0000
COOR1X HEX 0000
COOR1Y HEX 0000
COOR2X HEX 0000
COOR2Y HEX 0000