mirror of
https://github.com/antoinevignau/source.git
synced 2024-11-15 13:05:18 +00:00
33f00570f0
Antoine's Cogito & Cogito 2 (for the Second Sight) source code
2582 lines
84 KiB
ArmAsm
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
|