;POUR CHARGER LES DATAS TAPEZ:
;
;RI		RETURN
;VECSIN		RETURN
;VSIN		RETURN RETURN
;
;PUIS TAPEZ
;G BEGIN	RETURN RETURN
;
;SUPPRIMEZ LES LIGNES SUIVANTES SI VOTRE VERSION DU SEKA
;NE COMPORTE PAS LA COMMANDE Y

>EXTERN "vecsin",vsin

org $30000	;EMPLACEMENT EN MEMOIRE
load $30000	;DE NOTRE PROGRAMME

BEGIN:
JMP START
;=====================================================================
EXECBASE=4
OPENLIBRARY=-408
CLOSELIBRARY=-414
SUPERSTATE=-150
USERSTATE=-156	
FORBID=-132
PERMIT=-138
ADDINTSERVER=-168
REMINTSERVER=-174
Open=-30
Close=-36
Read=-42

;=====================================================================
BLTCON0=$DFF040		
BLTCON1=$DFF042
BLTAFWM=$DFF044
BLTALWM=$DFF046
BLTCPTH=$DFF048
BLTCPTL=$DFF04A
BLTBPTH=$DFF04C
BLTBPTL=$DFF04E
BLTAPTH=$DFF050
BLTAPTL=$DFF052
BLTDPTH=$DFF054
BLTDPTL=$DFF056
BLTSIZE=$DFF058
BLTCMOD=$DFF060
BLTBMOD=$DFF062
BLTAMOD=$DFF064
BLTDMOD=$DFF066
BLTCDAT=$DFF070
BLTBDAT=$DFF072
BLTADAT=$DFF074
DMACONR=$DFF002
;==================================

;==================================
START:    
MOVEM.L D0-D7/A0-A6,-(A7)	;SAUVE REGISTRES
MOVE.L EXECBASE,A6		;CHARGE ADRESSE EXECBASE DANS A6
JSR FORBID(A6)    		;SAUTE SOUS PROGRAMME: INTERDIT MULTITACHE
JSR OPENLIB  			;SAUTE SOUS PROGRAMME: OUVERTURE LIBRAIRIES

BSR.L SETCOPPER			;SAUTE SOUS PROGRAMME: MET EN PLACE LISTE COPPER
BSR.L NEWIRQ3			;SAUTE SOUS PROGRAMME: MET EN PLACE ROUTINE D'INTERRRUPTION

WAIT:
CMP.B #$E0,$DFF006		;ATTENDANT 200 IEME LIGNE RASTER
BNE.S WAIT			;SINON RETOURNE A WAIT

LEA.L	BUFFER(PC),A0		;SWAPPING ECRANS
BCHG	#1,SWAP
BNE.S	SWAP1
MOVE.L	#$70000,(A0)
BRA.S	SWAP2
SWAP1:
MOVE.L	#$77800,(A0)
SWAP2:

LEA.L	$65510,A1		;COPIE OBJET DANS ECRAN
MOVE.L	A1,$DFF050
MOVE.L	(A0),D0
ADD.W	#16+[242*2*40],D0
MOVE.L	D0,$DFF054
MOVE.L	#$80008,$DFF064
MOVE.L	#$9F00012,$DFF040
MOVE.W	#[242*2*64]+16,$DFF058

BSR.L WAIT_BLITTER

LEA.L	$60000,A0		;EFFACE OBJET
MOVE.L	A0,$DFF054
MOVE.L	#$1000000,$DFF040
MOVE.W	#0,$DFF066
MOVE.W	#[272*2*64]+20,$DFF058

BSR.L	VECTOR			;VA A ROUTINE GESTION OBJET

BTST	#6,$BFE001		;ATTENDANT PRESSION SUR BOUTON GAUCHE SOURIS
BNE.L	WAIT			;SINON RETOURNE A WAIT
 				;SI OUI  FIN
END: 				;FIN:	
BSR.s STOPIRQ3			;SAUTE SOUS PROGRAMME: STOPPE INTERRUPTION
BSR.L CLRCOPPER			;SAUTE SOUS PROGRAMME: RESTAURE ANCIENNE LISTE COPPER
BSR.L CLOSELIB			;SAUTE SOUS PROGRAMME: FERME LIBRAIRIES 
MOVE.L EXECBASE,A6		;CHARGE ADRESSE EXECBASE DANS A6
JSR PERMIT(A6)			;AUTORISE MULTITACHE

MOVEM.L (A7)+,D0-D7/A0-A6	;RESTAURE REGISTRES
RTS
;========================
NEWIRQ3:			;MET EN PLACE NOTRE ROUTINE 
MOVE.L	EXECBASE,A6		;D'INTERRUPTION
lea	irqstr,a1
move.l	#5,d0
jsr	addintserver(a6)
move.l	d0,irq
beq.s	irqerror
rts
irqerror:
rts
;==========================
STOPIRQ3:			;RESTAURE ANCIENNE ROUTINE
movem.l	a0-a6/d0-d7,-(sp)	;D'INTERRUPTION
	tst.l	irq
	beq.s	irqoff1
	move.l	execbase,a6
	lea	irqstr,a1
	move.l	#32,d0
	jsr	remintserver(a6)
irqoff1:movem.l	(sp)+,a0-a6/d0-d7
	rts
irqstr:
	dc.l	0,0
	dc.b	2,-127
	dc.l	0,irqdat,interrupt
irqdat:	dc.l	0,0,0,0
irq:	dc.l	0
;============================
interrupt:			;NOTRE ROUTINE D'INTERRUPTION	
movem.l	a0-a6/d0-d7,-(sp)

Bsr.L	Anim_Vec		;VA A ROUTINE D'ANIMATION
Bsr.L	Affiche_Vec		;VA A ROUTINE D'AFFICHAGE

movem.l	(sp)+,a0-a6/d0-d7
rts
;============================
OPENLIB:  			;OUVERTURE DE LA LIBRAIRIE GRAPHIQUE
move.l execbase,a6      	;MET ADRESSE EXECBASE DANS A6
lea gfxname,a1			;MET NOM DE LA LIBRAIRIE DANS A1
move.l #$0,d0           	;MET 0 DANS D0
jsr openlibrary(a6)		;OUVRE LIBRAIRIE
tst d0				;TESTE D0
beq.s error			;SI = A 0   VA A ERROR = SORTIE
move.l d0,gfxbase       	;SI NON, MET ADRESSE D0 DANS GFXBASE
add.l #$32,d0			;AJOUTE $32 A CETTE ADRESSE
move.l d0,coppertr      	;MET D0=ADRESSE ACTUELLE LISTE COPPER
rts				;DANS COPPERTR
even
gfxname: dc.b 'graphics.library',0 	;NOM DE LA LIBRAIRIE
even
gfxbase: dc.l 0				;POINTEUR POUR LA GRAPHICS LIBRARY
coppertr: dc.l 0			;POINTEUR POUR ADRESSE LISTE COPPER
;====================
CLOSELIB: 			;FERMETURE LIBRAIRIE
move.l execbase,a6      	;MET ADRESSE EXECBASE DANS A6
move.l gfxbase,a1		;MET NOM DE LA LIBRAIRIE DANS A1
jsr closelibrary(a6)		;FERME LIBRAIRIE
rts
;====================
ERROR:				;SI ERREUR
illegal				;SORTIE
rts
;====================
SETCOPPER:			;MET EN PLACE NOTRE LISTE COPPER
move.l coppertr,a0		;MET ADRESSE ACTUEL COPPER DANS A0
move.l (a0),oldcopper		;MET CONTENU DANS OLDCOPPER
move.l #newcopper,(a0)		;MET NOTRE LISTE COPPER DANS A0
move.w #$81c0,$dff096		;ACTIVE LISTE COPPER
rts		
oldcopper: dc.l 0
;====================
CLRCOPPER:			;RESTAURE ANCIENNE LISTE COPPER
move.l coppertr,a0		;MET ANCIENNE ADRESSE DANS A0
move.l oldcopper,(a0)		;MET CONTENU DANS A0
move.w #$80a0,$dff096		;REACTIVE ANCIENNE COPPER
rts
;====================
WAIT_BLITTER:	
	BTST	#14,DMACONR
LOOP_WAIT_BLT:
	BTST	#14,DMACONR
	BNE.S	LOOP_WAIT_BLT
	RTS

;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ
; VECTOR Routine ญญญญญญญญญญญญญญญ
;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ

;CALCULS DES COORDONNEES ET DES FACES

VECTOR:			LEA.L	CONTROL(PC),A1
			LEA.L	OBJET(PC),A0
			LEA.L	VSIN(PC),A2
			LEA.L	SIN_COS(PC),A3
			MOVEQ	#3-1,D7
			MOVE.W	#$7FE,D1
			MOVE.W	#512,D2
COPY_SIN_COS:		MOVE.W	(A1)+,D0
			AND.W	D1,D0
			MOVE.W	(A2,D0.W),(A3)+	;SIN
			ADD.W	D2,D0
			AND.W	D1,D0
			MOVE.W	(A2,D0.W),(A3)+	;COS
			DBF	D7,COPY_SIN_COS
			MOVE.W	(A0)+,D7
			SUBQ.W	#1,D7
			LEA.L	COORDS(PC),A2
VEC_CALC:		MOVEM.W	(A0)+,D0-D2
			MOVE.W	(A1),D5		;OBSERVATEUR
			LEA.L	SIN_COS(PC),A3
			MOVE.W	D0,D3
			MOVE.W	D1,D4
			MULS	(A3),D0
			MULS	(A3)+,D4
			MULS	(A3),D1
			MULS	(A3)+,D3
			ADD.L	D0,D1
			SUB.L	D3,D4
			SWAP	D1
			SWAP	D4
			MOVE.W	D4,D0
			ASR.W	#1,D2
			MOVE.W	D2,D3
			MULS	(A3),D4
			MULS	(A3)+,D3
			MULS	(A3),D2
			MULS	(A3)+,D0
			ADD.L	D4,D2
			SUB.L	D3,D0
			ADD.L	D0,D0
			SWAP	D0
			MOVE.W	D1,D3
			MOVE.W	D0,D4
			MULS	(A3),D1
			MULS	(A3)+,D4
			MULS	(A3),D0
			MULS	(A3)+,D3
			ADD.L	D0,D1
			SUB.L	D4,D3
			SWAP	D3
			ASR.L	#8,D1
			ASR.L	#8,D2
			ADD.W	D3,D5		;OBJ DIST
			DIVS	D5,D1		;OBS DIST
			DIVS	D5,D2
			ADD.W	#336,D1
			ADD.W	#62,D2
			MOVE.W	D1,(A2)+	;RANGE X,Y,Z
			MOVE.W	D2,(A2)+
			MOVE.W	D5,(A2)+
			DBF	D7,VEC_CALC
			LEA.L	COORDS(PC),A1
			LEA.L	Z_BUFFER(PC),A2
			LEA.L	(A2),A3
			MOVE.W	(A0)+,D7
			SUBQ.W	#1,D7
			MOVE.W	#-1,COMPTEUR_FACES
PLACE_FACES:		CLR.W	D1
			MOVE.W	(A0)+,D0
			MOVE.L	(A1,D0.W),(A2)+
			ADD.W	4(A1,D0.W),D1
			MOVE.W	(A0)+,D0
			MOVE.L	(A1,D0.W),(A2)+
			ADD.W	4(A1,D0.W),D1
			MOVE.W	(A0)+,D0
			MOVE.L	(A1,D0.W),(A2)+
			ADD.W	4(A1,D0.W),D1
			MOVE.W	(A0)+,D0
			MOVE.L	(A1,D0.W),(A2)+
			ADD.W	4(A1,D0.W),D1
			MOVE.W	(A0)+,(A2)+
			MOVE.W	D1,(A2)+
			LEA.L	(A3),A2
			MOVEM.W	(A2),D0-D5
			SUB.W	D0,D2
			SUB.W	D1,D3
			SUB.W	D0,D4
			SUB.W	D1,D5
			MULS	D2,D5
			MULS	D3,D4
			SUB.L	D4,D5
			BMI.S	PAS_FACE
			LEA.L	20(A3),A3
			ADDQ.W	#1,COMPTEUR_FACES
PAS_FACE:		LEA.L	(A3),A2
			DBF	D7,PLACE_FACES
			BSR.L WAIT_BLITTER
			MOVEQ	#6,D0
			MOVE.W	D0,$DFF048
			MOVE.W	D0,$DFF050
			MOVE.W	D0,$DFF054
			MOVEQ	#40,D0
			MOVE.W	D0,$DFF060
			MOVE.W	D0,$DFF066
			MOVEQ	#-1,D0
			MOVE.L	D0,$DFF044	;$FFFFFFFF
			MOVE.W	#$8000,D0
			MOVE.L	D0,$DFF072	;$FFFF8000
			MOVE.W	COMPTEUR_FACES(PC),D6
			CMP.W	#-1,D6
			BEQ.S	PAS_FACES
COPY_FACES:		LEA.L	Z_BUFFER(PC),A0
			LEA.L	Z_BUFFER(PC),A1
			MOVE.W	COMPTEUR_FACES(PC),D0
			MOVEQ	#0,D5
CHECK_Z			CMP.W	18(A0),D5
			BGE.S	PAS_CHECK_Z
			TST.W	18(A0)
			BEQ.S	PAS_CHECK_Z
			MOVE.W	18(A0),D5
			LEA.L	(A0),A1
PAS_CHECK_Z:		LEA.L	20(A0),A0
			DBF	D0,CHECK_Z
			CLR.W	18(A1)
			MOVEM.W	(A1),D0-D3	;X1,Y1,X2,Y2
			BSR.W	TRACE_LIGNES
			MOVEM.W	4(A1),D0-D3	;X2,Y2,X3,Y3
			BSR.W	TRACE_LIGNES
			MOVEM.W	8(A1),D0-D3	;X3,Y3,X4,Y4
			BSR.W	TRACE_LIGNES
			MOVEM.W	12(A1),D0/D1	;X4,Y4,X1,Y1
			MOVEM.W	(A1),D2/D3
			BSR.W	TRACE_LIGNES
			DBF	D6,COPY_FACES

;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ
; SOURCE LIGHT V0.1 ญญญญญญญญญญญญ
;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ

;CALCUL DE LA COULEUR DES FACES

PAS_FACES:		LEA.L	COULEURS(PC),A0	;SUPPORT DES COULEURS
			LEA.L	COORDS(PC),A1	;CONTIENT X,Y,Z
			LEA.L	TABLE(PC),A2
			MOVE.W	4(A1),D0	;Z1
			MOVE.W	10(A1),D1	;Z2
			SUB.W	D1,D0		;Z2-Z1
			LSR.W	#5,D0		;Z1/32
			CMP.W	D0,D1		;Z1=Z2?
			BEQ.S	CENTRE1		;OUI:NE CHANGE RIEN
			CMP.W	D0,D1		;Z1>Z2?
			BHI.S	CT1		;OUI:LA FACE EST A DROITE
			NEG	D0		;NON:LA FACE EST A GAUCHE
						;DONC Z1=-Z1
CT1:			ROR.W	#8,D0		;Z1/256
			ADD.W	#$100,D0	;AU CAS OU D0=0
			AND.W	#$F00,D0	;$F00 EN VALEUR MAX
			ROR.W	#8,D0		;SINON TOUT SERAIT ROUGE
			NEG.W	D0
			ADD.W	D0,D0
			MOVE.W	28(A2,D0.W),2(A0)
CENTRE1:			LEA.L	TABLE(PC),A2
			MOVE.W	10(A1),D0	;Z3
			MOVE.W	16(A1),D1	;Z4
			SUB.W	D1,D0
			LSR.W	#5,D0
			CMP.W	D0,D1
			BEQ.S	CENTRE2
			CMP.W	D0,D1
			BHI.S	CT2
			NEG	D0
CT2:			ROR.W	#8,D0
			ADD.W	#$100,D0
			AND.W	#$F00,D0
			ROR.W	#8,D0
			ADD.W	D0,D0
			MOVE.W	(A2,D0.W),6(A0)
CENTRE2:		MOVE.W	28(A1),D0	;Z5
			MOVE.W	34(A1),D1	;Z6
			SUB.W	D1,D0
			LSR.W	#5,D0
			CMP.W	D0,D1
			BEQ.S	CENTRE3
			CMP.W	D0,D1
			BHI.S	CT3
			NEG	D0
CT3:			ROR.W	#8,D0
			ADD.W	#$100,D0
			AND.W	#$F00,D0
			ROR.W	#8,D0
			ADD.W	D0,D0
			MOVE.W	(A2,D0.W),10(A0)
CENTRE3:			RTS

;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ
; TRACE LES LIGNES ญญญญญญญญญญญญญ
;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ

TRACE_LIGNES:		LEA.L	VALEURS(PC),A2
			CMP.W	D1,D3
			BMI.S	TRACE1
			EXG	D3,D1
			EXG	D2,D0
TRACE1:			SUB.W	D3,D1
			MOVE.W 	D3,D7
			LSL.W 	#5,D3
			LSL.W 	#3,D7
			ADD.W 	D7,D3
			MOVEQ	#$F,D4
			AND.W	D2,D4
			SUB.W	D2,D0
			BLT.S	TRACE3
			CMP.W	D0,D1
			BGE.S	TRACE2
			MOVEQ	#19,D7
			BRA.S	TRACE5
TRACE2:			MOVEQ	#3,D7
			EXG	D0,D1
			BRA.S	TRACE5
TRACE3:			NEG.W	D0
			CMP.W	D0,D1
			BGE.S	TRACE4
			MOVEQ	#23,D7
			BRA.S	TRACE5
TRACE4:			MOVEQ	#11,D7
			EXG	D0,D1
TRACE5:			ADD.W	D1,D1
			LSR.W	#3,D2
			ADD.W	D2,D3
			CMP.W	#1,16(A1)
			BNE.S	PLAN2
			ADD.W	#[272*40],D3
PLAN2:			ADD.W	(A2)+,D3
			MOVE.W	D1,D2
			SUB.W	D0,D2
			MOVE.W	D2,D5
			SUB.W	D0,D2
			ROR.W	#4,D4
			OR.W	(A2)+,D4
			LSL.W	#6,D0
			ADD.W	(A2)+,D0
			OR.W	(A2)+,D7
			BSR.L WAIT_BLITTER
			MOVE.W	D1,$DFF062
			MOVE.W	D2,$DFF064
			MOVE.W	D4,$DFF040
			MOVE.W	D7,$DFF042
			MOVE.W	D5,$DFF052
			MOVE.W	D3,$DFF04A
			NOT.W	D3
			MOVE.W	D3,$DFF056
			MOVE.W	D0,$DFF058
			RTS

;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ
; ANIMATION DU VECTORIEL ญญญญญญญ
;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ

ANIM_VEC:		LEA.L	CONTROL(PC),A0
			MOVE.W	#$7FE,D0
			AND.W	D0,(A0)		;ROTATION X
			AND.W	D0,2(A0)	;ROTATION Y
			AND.W	D0,4(A0)	;ROTATION Y
			MOVE.W	#14,D0
			ADD.W	D0,2(A0)	;ROTATION X
			ADD.W	D0,4(A0)	;ROTATION Y
			CMP.W	#$330,6(A0)	;DISTANCE
			BLS.S	FIN_ZOOM
			SUBQ.W	#4,6(A0)	;DISTANCE
FIN_ZOOM:		RTS

;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ
; AFFICHAGE DU VECTORIEL ญญญญญญญ
;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ

;MET ADRESSE IMAGE DANS LISTE COPPER

AFFICHE_VEC:		MOVE.L	BUFFER(PC),D0
			LEA.L	VEC_BPS(PC),A1
			ADD.W	#22,D0
			MOVE.W	D0,6(A1)
			SWAP	D0
			MOVE.W	D0,2(A1)
			SWAP	D0
			ADD.W	#[272*40],D0
			MOVE.W	D0,14(A1)
			SWAP	D0
			MOVE.W	D0,10(A1)
			RTS
	
;TABLE DES COULEURS
TABLE:			DC.W	$100,$200,$300,$400,$500
			DC.W	$600,$700,$800,$900,$A00
			DC.W	$B00,$C00,$D00,$E00,$F00


VALEURS:			DC.W	$FA0,$A4A,66,64

SWAP:			DC.W	0

BUFFER:			DC.L	$70000

COMPTEUR_FACES:		DC.W	0

CONTROL:		DC.W	0	;X
			DC.W	0	;Y
			DC.W	0	;Z
			DC.W	$6A0	;DISTANCE

OBJET:

DC.W	8	;NOMBRE DE POINTS

DC.W	 800,-800, 800,
DC.W	-800,-800, 800	;COORDONEES X Y ET Z
DC.W	-800, 800, 800
DC.W	 800, 800, 800	;DE CHAQUE POINT
DC.W	 800,-800,-800
DC.W	-800,-800,-800
DC.W	-800, 800,-800
DC,W	 800, 800,-800

DC.W	8		;NOMBRE DE FACES

DC.W	0,6,12,18,0	;NUMEROS DES POINTS * 6

DC.W	42,36,30,24,0	; 0 = FACE DESSINEE DANS PLAN 1

DC.W	24,30,6,0,1	; 1 = FACE DESSINEE DANS PLAN 2

DC.W	18,12,36,42,1

DC.W	0,18,42,24,0	;CETTE FACE EST DESSINEE DANS LES 2 PLANS
DC.W	0,18,42,24,1	;

DC.W	30,36,12,6,0
DC.W	30,36,12,6,1

SIN_COS:			BLK.W	12

COORDS:			BLK.W	8*3

Z_BUFFER:		BLK.W	8*10

;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ
; DATAS ญญญญญญญญญญญญญญญญญญญญญญญญ
;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ

VSIN:			BLK.B 3000


;====================
EVEN				;NOTRE LISTE COPPER
NEWCOPPER:   
	DC.W	$008E,$2c81	;DIMENSIONS DE L'ECRAN
	DC.W	$0090,$f4D1	;200 LIGNES

	DC.W	$0092,$0038,$0094,$00D0

	;POINTEURS ADRESSE DES PLANS DE L'IMAGE

	VEC_BPS:
	DC.W $00E0,0
	DC.W $00E2,0   
	DC.W $00E4,0
	DC.W $00E6,0


	;REGISTRE POUR CHOISIR RESOLUTION	

	DC.W	$0100,$2200		;5 PLANS+MODE COULEURS

	;DECALAGE ECRAN - INUTILISE ICI

	DC.W	$0102,$0000

	;PRIORITE DES PLANS ET SPRITES - INUTILISE ICI

	DC.W 	$0104,$0000

	;MODULOS DES PLANS

	DC.W	$0108,$000	;MODULOS PLANS PAIRS
	DC.W 	$010A,$000	;MODULOS PLANS IMPAIRS

	;POINTEURS DES SPRITES - MIS A 0 SI PAS DE SPRITES

	DC.W	$0120,$0000,$0122,$0000
	DC.W	$0124,$0000,$0126,$0000
	DC.W	$0128,$0000,$012A,$0000	;PAS DE SPRITES
	DC.W	$012C,$0000,$012E,$0000
	DC.W	$0130,$0000,$0132,$0000
	DC.W	$0134,$0000,$0136,$0000
	DC.W	$0138,$0000,$013A,$0000
	DC.W	$013C,$0000,$013E,$0000

	;REGISTRES DES COULEURS

	
	DC.W	$0180,$0000	;COULEUR 00
	COULEURS:
	DC.W	$0182,$0FFF	;COULEUR 01
	DC.W	$0184,$0BDD	;COULEUR 02
	DC.W	$0186,$0899	;COULEUR 03

	DC.W	$0188,$0455	;COULEUR 04
	DC.W	$018A,$0333	;COULEUR 05
	DC.W	$018C,$0222	;COULEUR 06
	DC.W	$018E,$0111	;COULEUR 07
	DC.W	$0190,$0EEF	;COULEUR 08
	DC.W	$0192,$0CCF	;COULEUR 09
	DC.W	$0194,$099F	;COULEUR 10
	DC.W	$0196,$055F	;COULEUR 11
	DC.W	$0198,$000F	;COULEUR 12
	DC.W	$019A,$000A	;COULEUR 13
	DC.W	$019C,$0006	;COULEUR 14
	DC.W	$019E,$0003	;COULEUR 15
	DC.W	$01A0,$0DEF	;COULEUR 16	;LES COULEURS DE 16 A 31 SONT
	DC.W	$01A2,$0BEF	;COULEUR 17	;AUSSI CELLES DES SPRITES
	DC.W	$01A4,$0ADF	;COULEUR 18
	DC.W	$01A6,$07BD	;COULEUR 19	;LES COULEURS 16 A 31 NE SONT
	DC.W	$01A8,$058A	;COULEUR 20	;PAS UTILISEES DANS LE MODE
	DC.W	$01AA,$0357	;COULEUR 21	;HOLD AND MODIFY (HAM)
	DC.W	$01AC,$0234	;COULEUR 22
	DC.W	$01AE,$0011	;COULEUR 23
	DC.W	$01B0,$0FD0	;COULEUR 24
	DC.W	$01B2,$0FA0	;COULEUR 25
	DC.W	$01B4,$0E80	;COULEUR 26
	DC.W	$01B6,$0C60	;COULEUR 27
	DC.W	$01B8,$0A30	;COULEUR 28
	DC.W	$01BA,$0720	;COULEUR 29
	DC.W	$01BC,$0510	;COULEUR 30
	DC.W	$01BE,$0300	;COULEUR 31

	;INSTRUCTIONS POUR AVOIR UN ECRAN PAL (256 LIGNES DE HAUT)

;	DC.W $FFDF,$FFFE

DC.L $FFFFFFFE ;FIN LISTE COPPER
EVEN
FINDEMO:
