;Intro coded by ... Corto 
;Exclusively for Angels members (already said it ?!?)

;as always... A,  Jrun for testing
;WI  filename  run  end  for saving
;'Ltext1:'  'Ltext:'  to go to texts
;'L***'  to see all the comments

org $40000
load $40000
run:
;movem.L d0-d7/a0-a6,-(sp)
bsr.L save_all
lea $50000,a0
move #24575,d7
run1:
move.b #$ff,(a0)+
dbra d7,run1
lea $56000,a1
move #37887,d7
run2:clr.l (a1)+
dbra d7,run2
move sin+$200,sin200+2
move cos+$200,cos200+2
move sin+$200,sin200b+2
move cos+$200,cos200b+2
move sin+$600,sin600+2
move cos+$600,cos600+2
move sin+$600,sin600b+2
move cos+$600,cos600b+2
bsr.L makecopper
lea $dff000,a6
move #$3fff,$9a(a6)
move #$3fff,$96(a6)
move #$83c0,$96(a6)
move.l #irq,$6c
move.L #%111101111011100111101111,$56000+9982+38
move.L #%100001001010100011001001,$56000+9982+46+38
move.L #%100001001011100011001001,$56000+9982+92+38
move.l #%100001001010010011001001,$56000+9982+138+38
move.l #%111101111010010011001111,$56000+9982+184+38
bsr.L makmask
bsr.L suite

affiche:
tst.b count1
bne.s affiche1
lea fonts,a1
move.l bpp,a2
clr.w d0
lettre:
move.L text1c,a0
move.l (a0),a0
lea quelle(pc),a3
add.w (a3),a0
move.b (a0),d0
addq.w #1,(a3)
nextline:
cmpi.b #$fe,d0
bne.s dernier
addi.l #[46*8]-40,a2
bra.s lettre
dernier:
tst.b	d0
beq.s	suit
espace:
cmpi.b	#$20,d0
bne.s	noespace
add.w	#96,a1
bra.s	affichelettre
noespace:
sub.b	#$2b,d0
add.b	d0,d0
add.w	d0,a1
affichelettre:
bsr.l	affichefont
addq.l	#1,a2
move.L a2,bpp
rts

affiche1:
subq.b #1,count1
beq.s affiche2
rts
affiche2:
move.L text1c,a0
addq.l #4,a0
cmpi #$7777,(a0)
bne.s affiche2a
lea textlist,a0
affiche2a:
move.L a0,text1c
clr quelle
rts

affichefont:
move.b	(a1),(a2)
move.b	[$62*1](a1),[46*1](a2)
move.b	[$62*2](a1),[46*2](a2)
move.b	[$62*3](a1),[46*3](a2)
move.b	[$62*4](a1),[46*4](a2)
move.b	[$62*5](a1),[46*5](a2)
rts
suit:lea $56000+[46*70]+2,a2
move.L a2,bpp
clr quelle
move.b #-1,count1
rts

bpp:dc.L $56000+[46*70]+2

;	*** ici la liste des textes successifs	

textlist:dc.l text1,text2,text3,text4,text5

dc.L $77777777
text1c:dc.l textlist

text1:;		*** chaque texte doit faire
		;imperativement  12 lignes de 40 caracteres !

dc.b "             --- ANGELS ---             ",$FE
dc.b "                                        ",$fe
DC.B "                PRESENTS                ",$FE
DC.B "                                        ",$FE
dc.b "                                        ",$fe
dc.b "                                        ",$fe
DC.B "          XXXXXX FINAL VERSION          ",$fe
dc.b "                                        ",$fe
dc.b "                                        ",$fe
dc.b "                                        ",$fe
dc.b "        PRESS RIGHT MOUSE-BUTTON        ",$fe
dc.b "         TO HID/SHOW SCROLLTEXT         ",0
even

text2:
dc.b "            CALL OUR BOARDS:            ",$FE
dc.b "                                        ",$FE
DC.B "        AMIGA EAST: 804-499-2266        ",$FE
DC.B "                WORLD HQ                ",$FE
dc.b "                                        ",$FE
dc.b "                                        ",$FE
DC.B "      INSIDER BBS: +39-564-415-697      ",$FE
DC.B "                EURO. HQ                ",$FE
dc.b "                                        ",$FE
dc.b "                                        ",$FE
DC.B "   WORLD TRADE CENTER: +41-170-11323    ",$FE
DC.B "                SWISS HQ                ",0
even

text3:
dc.b "                                        ",$FE
dc.b "                                        ",$FE
DC.B "      SKYFOX BBS: +49-911-353-571       ",$FE
DC.B "               GERMAN  HQ               ",$FE
dc.b "                                        ",$fe
dc.b "                                        ",$FE
DC.B "     CITY LIMITS: +44-704-501-091       ",$FE
DC.B "               ENGLAND HQ               ",$FE
dc.b "                                        ",$FE
dc.b "                                        ",$FE
DC.B "   THE DUTCH PIRATE: +31-011-723-666    ",$FE
DC.B "               HOLLAND HQ               ",0
EVEN

TEXT4:
DC.B "       ESCAPE ZONE: 704-254-6448        ",$FE
dc.b "                                        ",$FE
DC.B "   DIGITAL EXPRESSION: 813-398-7393     ",$FE
dc.b "                                        ",$FE
DC.B "       WRECK HOUSE: 201-751-2175        ",$FE
dc.b "                                        ",$FE
DC.B "   REIGN IN BLOOD: +49-202-406-0981     ",$FE
dc.b "                                        ",$FE
DC.B "   HOUSE OF INSANITY: 813-584-6089      ",$FE
dc.b "                                        ",$FE
dc.b "                                        ",$FE
DC.B "  OR WRITE TO THE FOLLOWING ADDRESSES:  ",0
EVEN

text5:
dc.b "                                        ",$fe
dc.b "    - P.O. BOX 10 - 4504  OBERCORN -    ",$FE
DC.B "             - LUXEMBURG -              ",$FE
dc.b "                                        ",$fe
DC.B "      - P.O. BOX 3 - 6040  JUMET -      ",$FE
DC.B "              - BELGIUM -               ",$FE
dc.b "                                        ",$fe
DC.B "   - P.O. BOX 31 - 9910  MARIAKERKE -   ",$FE
DC.B "              - BELGIUM -               ",$FE
dc.b "                                        ",$fe
DC.B "    - P.O. BOX 2568 - 4300 SANDNES -    ",$FE
DC.B "              - NORWAY -                ",0
even

;	*** voici le big-scrolltext:
text:
dc.B "      GREETINGS TO ALL OUR FRIENDS AND CONTACTS !"
DC.B " THIS INTRO WAS CODED BY CORTO",0
even
textptr:dc.l text

quelle:dc.w 0
count1:dc.b 0
even

rout1:move d0,6(a0)
swap d0
move d0,2(a0)
addq.L #8,a0
rts

suite:
lea copspr,a0
move.L #set1,d0
bsr.s rout1
move.l #set2,d0
bsr.s rout1
move.l #set3,d0
bsr.s rout1
move.l #set4,d0
bsr.s rout1
move.l #set5,d0
bsr.s rout1
move.l #set6,d0
bsr.s rout1
move.l #setf,d0
bsr.s rout1
move.l #setf,d0
bsr.s rout1

lea $dff000,a6
move.L #$217937c9,$8e(a6)
move.l #$3000d8,$92(a6)
move.L #copperlist,$80(a6)
clr $88(a6)
move #$c010,$9a(a6)
wait:
tst flag1
bne.s wait1
;bsr moveball
bsr.L bras
move #1,flag1
wait1:
btst #6,$bfe001
bne.s wait
wb:btst #$e,2(a6)
bne.s wb
bsr.L restore_all
;movem.L (sp)+,d0-d7/a0-a6
rts
flag:dc.w -1
flag1:dc.w 0
juga:dc.w 0
jugw:dc.w 50

makmask:
lea bob1,a0
lea mask1,a1
bsr.s masque1
lea bob2,a0
lea mask2,a1
bsr.s masque1
lea bob8,a0
lea mask8,a1
bsr.s masque1
move #4,d6
lea bob3,a0
lea mask3,a1
masl1:
bsr.s masque2
dbra d6,masl1
lea bob9,a0
lea mask9,a1
bsr.s masque2
rts

masque1:
move #31,d7
masq1:
move.L (a0),d0
addq.L #6,a0
or.l (a0),d0
addq.l #6,a0
or.l (a0),d0
addq.L #6,a0
move.l d0,(a1)+
clr (a1)+
move.l d0,(a1)+
clr (a1)+
move.l d0,(a1)+
clr (a1)+
dbra d7,masq1
rts

masque2:
move #15,d7
masq2:
move (a0),d0
addq.L #4,a0
or.w (a0),d0
addq.l #4,a0
or.w (a0),d0
addq.L #4,a0
move d0,(a1)+
clr (a1)+
move d0,(a1)+
clr (a1)+
move d0,(a1)+
clr (a1)+
dbra d7,masq2
rts

irq:
movem.L d0-d7/a0-a6,-(a7)
lea $dff000,a6
bsr.L altern
tst jugw
beq.s juga00
subq #1,jugw
bra.s juga0
juga00:
btst #$a,$16(a6)
bne.s juga0
bchg #0,juga
move #50,jugw
juga0:
tst juga
bne.s juga1
move.L #bp1,d0
sub.L scrval,d0
move d0,copbpl1+6
swap d0
move d0,copbpl1+2
move.l #$1820003,bar1
move.L #$1820002,bar2
move.l #$1820001,bar3
move.l #$1820000,bar4
move.l #$1820000,bar5
bsr.L print
bsr.L cycle
bsr.L scroll
bra.s juga2
juga1:move #$b000,copbpl1+6
move #6,copbpl1+2
move.l #$1800002,bar1
move.l #$1800004,bar2
move.l #$1800007,bar3
move.l #$1800004,bar4
move.l #$1800002,bar5
juga2:
bsr.L stars
lea $dff000,a6
bsr.L affiche
move #$8400,$96(a6)
cyc:btst #$e,2(a6)
bne.s cyc
move #$400,$96(a6)
tst flag
bne.s irq1
bsr.L clear
bsr.L copscroll
move #$8400,$96(a6)
cyc2:btst #$e,2(a6)
bne.s cyc2
move #$400,$96(a6)
move #1,flag
irq4:move #$10,$9c(a6)
movem.L (a7)+,d0-d7/a0-a6
rte

irq1:
tst flag1
beq.s irq4
move #$8400,$96(a6)
cyc4:btst #$e,2(a6)
bne.s cyc4
move #$400,$96(a6)
bsr.L bob
;move #$f00,$180(a6)
move #$8400,$96(a6)
cyc3:btst #$e,2(a6)
bne.s cyc3
move #$400,$96(a6)
;move #$ff0,$180(a6)
move #$10,$9c(a6)
clr flag
clr flag1
movem.L (a7)+,d0-d7/a0-a6
rte
t1:dc.l 0
t2:dc.l 0
altern:
tst flag
bne.s alt1
move.L bpw1,d0
move.L bpa1,bpw1
move.l d0,bpa1
move d0,copbpl3+6
swap d0
move d0,copbpl3+2
swap d0
addi.L #64,d0
move d0,copbpl3+14
swap d0
move d0,copbpl3+10
swap d0
addi.L #64,d0
move d0,copbpl3+22
swap d0
move d0,copbpl3+18
alt1:rts

stars:
lea set5+1,a0
move #15,d7
spriteloop:
subq.B #5,(a0)
add.l #8,a0
dbra d7,spriteloop
lea set6+1,a0
move #15,d7
spriteloopa:
subq.B #6,(a0)
add.l #8,a0
dbra d7,spriteloopa
lea set3+1,a0
move #21,d7
spriteloop2:
subq.b #3,(a0)
add.l #8,a0
dbra d7,spriteloop2
lea set4+1,a0
move #21,d7
sprite2loopa:
subq.B #4,(a0)
add.L #8,a0
dbra d7,sprite2loopa
lea set1+1,a0
move #31,d7
spriteloop3:
subq.b #1,(a0)
add.l #8,a0
dbra d7,spriteloop3
lea set2+1,a0
move #31,d7
spriteloop3a:
subq.b #2,(a0)
add.l #8,a0
dbra d7,spriteloop3a
rts

scroll:
move.L scrollc,a0
move.B (a0)+,d0
cmpi.b #$77,(a0)
bne.s scroll1
lea scrol,a0
scroll1:move.L a0,scrollc
ext d0
muls #46,d0
subi.L #1426,d0
move.l d0,scrval
rts

scrval:dc.l 1426
scrol:
dc.b 0,0,0,0,0,0
dc.b 1,1,1
dc.b 2,2
dc.b 3,4,5,7,9,11,13,16,19,23,27,31
dc.b 27,23,19,16,13,11,9,7,5,4,3,2,2,1,1,1
dc.b 0,0,0,0,0,0,$77
even
scrollc:dc.l scroll

clear:move #$34,$66(a6)
move.l bpw1,d0
addi.L #[10*3*64]+16,d0
move.l d0,$54(a6)
move.L #$1000000,$40(a6)
move #[199*3*64]+6,$58(a6)
rts



spball:dc.w 0
balls:dc.w 0

moveball:
lea boules+2,a0
tst balls
bne.s mb1
add #12,spball
move spball,d0
sub d0,(a0)
cmpi #-1400,(a0)
blo.s mb2
rts
mb2:move #-1,balls
add d0,(a0)
rts
mb1:
sub #12,spball
move spball,d0
add d0,(a0)
tst spball
beq.s mb3
rts
mb3:clr balls
move #$200,bra1
rts

bras:
bsr.s moveball
lea sin,a0
lea cos,a1
lea hand+2,a2
move bra1,d6
addi #72,d6
andi #$7fe,d6
move d6,bra1
move.L #38*8,d0
muls (a1,d6.w),d0
asr.L #5,d0
asr.l #8,d0
addi #12,d0
move d0,18(a2)
addq.l #6,a2

move.L #75*8,d0
muls (a1,d6.w),d0
asr.L #5,d0
asr.l #8,d0
subi #25,d0
move d0,18(a2)
addq.L #6,a2

move.L #100*8,d0
muls (a1,d6.w),d0
asr.L #5,d0
asr.l #8,d0
subi #50,d0
move d0,18(a2)

;*** La variable speed contient la vitesse de rotation (paire)

speed=32

calcule:
addi #speed,z+2
andi #$7fe,z+2
lea jug,a2
lea coord,a3
lea val,a4
sub.l a5,a5
movem.L vide,d0-d7
calculoop:
movem.w (a2)+,d0/d1/d2
move d0,d5
move d1,d6
sin200:muls #,d0	
cos200:muls #,d1
sub.l d1,d0
cos200b:muls #,d5
move d6,d1
sin200b:muls #,d1
add.l d5,d1
asr.l #8,d0
asr.l #2,d0
asr.l #8,d1
asr.l #2,d1
y:move #$600,d3
move d1,d5
move d2,d6
sin600:muls #,d1
cos600:muls #,d2
sub.l d2,d1
cos600b:muls #,d5
move d6,d2
sin600b:muls #,d2
add.l d5,d2
asr.l #2,d1
asr.l #8,d2
asr.l #2,d2
z:move #$200,d3
move d2,d5
move d0,d6
muls (a0,d3),d2
muls (a1,d3),d0
sub.l d0,d2
muls (a1,d3),d5
move d6,d0
muls (a0,d3),d0
add.l d5,d0
asr.l #2,d0
asr.l #8,d2
asr.l #6,d2

add #300,d2
divs d2,d0
divs d2,d1
move d2,(a4)+
cmpi #3,a5
blo.s cal0
addi #[41*64]+16,d0
addi #[111*16],d1
bra.s cal1
cal0:addi #[40*64]-48,d0
addi #[111*16],d1
cal1:
asr #4,d0
asr #4,d1
move d0,d2
lsr #3,d0
bclr #0,d0
and #$f,d2
lsl #6,d1
move d1,d6
add d6,d1
add d6,d1
add d1,d0
swap d0
clr d0
swap d0
move.l d0,(a3)+
ror #4,d2
move d2,(a3)+
or #$fca,d2
move d2,(a3)+
add #1,a5
cmpi #$7777,(a2)
bne.L calculoop
move #$7777,(a3)
move #$7777,(a4)

lea ordre,a0
lea val,a1
clr.L d0
loop1:
move.L d0,d1
add.l #2,d1
loop2:
move (a0,d0.w),d2
move (a0,d1.w),d3
lsl #1,d2
lsl #1,d3
move (a1,d2.w),d4
move (a1,d3.w),d5
cmp d5,d4
bge.s noexg
lsr #1,d2
lsr #1,d3
move d2,(a0,d1.w)
move d3,(a0,d0.w)
noexg:
addq.L #2,d1
cmpi #$7777,(a0,d1.w)
bne.s loop2
add.l #2,d0
cmpi #$7777,2(a0,d0.w)
bne.s loop1
clr.l d0
rts

bob:
lea ordre,a1
lea bo,a4
lea coord,a3
move.l #$ffff0000,$44(a6)
clr.L $62(a6)
move #$8400,$96(a6)
move.l bpw1,d0
bobl1:
btst #$e,2(a6)
bne.s bobl1
move (a1)+,d2
lsl #3,d2
move.l (a3,d2.w),d1
add.L d0,d1
move.l (a4,d2.w),d4
move.l d4,$4c(a6)
move.L 4(a4,d2.w),$50(a6)
move.l d1,$48(a6)
move.L d1,$54(a6)
cmpi.L #bob1,d4
beq.s bobb2
cmpi.L #bob2,d4
beq.s bobb2
cmpi.l #bob8,d4
beq.s bobb2
move #$3c,$60(a6)
move #$3c,$66(a6)
move 4(a3,d2.w),$42(a6)
move 6(a3,d2.w),$40(a6)
move #3074,$58(a6)
cmpi #$7777,(a1)
bne.s bobl1
rts

bobb2:
move #$3a,$60(a6)
move #$3a,$66(a6)
move 4(a3,d2.w),$42(a6)
move 6(a3,d2.w),$40(a6)
move #6147,$58(a6)
cmpi #$7777,(a1)
bne.L bobl1
rts

var1:dc.w 15
print:
move #$8400,$96(a6)
printwb:btst #6,2(a6)
bne.s printwb
move #$400,$96(a6)
move.L #$9f00000,$40(a6)
move.l #-1,$44(a6)
clr $64(a6)
move #44,$66(a6)
lea fonte,a1
move.L #bp1,d2
add.L #44+1426,d2
clr.l d0
move.l textptr,a0
move.b (a0),d0
sub.b #$20,d0
lsl.b #1,d0
add.l d0,a1
move #15,d6
print1:
move (a1),d0
add.l #120,a1
move var1,d7
move.L d2,d1
btst d7,d0
beq.s print2
move #$8400,$96(a6)
wbl:btst #6,2(a6)
bne.s wbl
move.L #carre,$50(a6)
move.L d1,$54(a6)
move #769,$58(a6)
move #$400,$96(a6)
bra.s print03
print2:
move #$8400,$96(a6)
wbl4:btst #6,2(a6)
bne.s wbl4
move.L #carre1,$50(a6)
move.L d1,$54(a6)
move #769,$58(a6)
move #$400,$96(a6)
print03:
add.L #552,d2	;13*46
dbra d6,print1
subq #1,var1
cmpi #-1,var1
bne.s print3
move #15,var1
move.L textptr,a0
addq.L #1,a0
move.L a0,textptr
tst.B (a0)
beq.s fini
cmpi.b #"s",(a0)
beq.s chspeed
print3:rts
fini:
move.l #text,textptr
rts
chspeed:
addq.L #1,textptr
cmpi.B #$49,delai2+2
beq.s chsp1
move.l #$49f00000,delai2+2
rts
chsp1:
move.L #$9f00000,delai2+2
rts

cycle:
btst #$e,$2(a6)
bne.s cycle
move.l #bp1,d0
add.l #1426,d0
move.L d0,$54(a6)
addq.L #2,d0
move.l d0,$50(a6)
delai2:move.l #$9f00000,$40(a6)
move.l #$ffffffff,$44(a6)
move #2,$64(a6)
move #2,$66(a6)
move.w #14230,$58(a6)
rts

copscroll:
lea cop1+6,a0
move #94,d7
move (a0),d0
cops1:
move 20(a0),(a0)
move 20(a0),4(a0)
move 20(a0),8(a0)
move 20(a0),12(a0)
add.L #20,a0
dbra d7,cops1
move d0,(a0)
move d0,4(a0)
move d0,8(a0)
move d0,12(a0)
rts

fonte:
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
dc.l $000003E0,$0E380000,$03800004,$000001C0,$00F80F80,$008003C0
dc.l $00000000,$00000008,$00000000,$00000000,$00000000,$00000000
dc.l $00000000,$00000000,$00000000,$00000FF0,$00000000,$00000000
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
dc.l $000003E0,$1F7C0000,$03801C0E,$0FF003E0,$01F007C0,$008003C0
dc.l $00000000,$0000001C,$0FF00180,$0FF03FF8,$781E7FFE,$0FF07FF0
dc.l $0FF007F0,$00000000,$00000000,$00003FFC,$00000FF0,$7FF00FF0
dc.l $7FF00FFE,$0FFE0FF0,$781E3FFC,$001E781E,$78007C3E,$7FF00FF0
dc.l $7FF00FF0,$7FF00FFE,$7FF8781E,$781E781E,$781E7878,$7FFE0000
dc.l $000003E0,$1F7C0000,$1FF03E1F,$3FFC03E0,$03E003E0,$01C003C0
dc.l $00000000,$0000003E,$3FFC0780,$3FFC3FFE,$781E7FFE,$3FFC7FFC
dc.l $3FFC3FFC,$01C001C0,$00000000,$00003FFC,$00003FFC,$7FFC3FFC
dc.l $7FFC3FFE,$3FFE3FFC,$781E3FFC,$001E783E,$78007E7E,$7FFC3FFC
dc.l $7FFC3FFC,$7FFC3FFE,$7FF8781E,$781E781E,$781E7878,$7FFE0000
dc.l $000003E0,$1F7C0080,$3FF83E3E,$3C3C03E0,$03E003E0,$01C003C0
dc.l $00000000,$0000007F,$3C3C1F80,$3C3C001E,$781E7800,$3C3C7FFC
dc.l $3C3C3C3C,$03E003E0,$00007FFF,$00007FFE,$00003C3C,$783C3C3C
dc.l $783C3C00,$3C003C3C,$781E03C0,$001E787C,$78007FFE,$783C3C3C
dc.l $783C3C3C,$783C3C00,$0780781E,$781E781E,$7C3E7878,$001E0000
dc.l $000003E0,$0F3C0140,$3FF83E7C,$781E01E0,$07C001F0,$03E003C0
dc.l $00000000,$000000FE,$781E0780,$781E000F,$781E7800,$781E7FFE
dc.l $781E781E,$03E003E0,$00007FFF,$0000783E,$0000781E,$781E781E
dc.l $781E7800,$7800781E,$781E03C0,$001E78F8,$78007BDE,$781E781E
dc.l $781E781E,$781E7800,$0780781E,$781E781E,$3C3C7878,$001E0000
dc.l $000003E0,$06180220,$3B801CF8,$781E00C0,$07C001F0,$7FFF03C0
dc.l $00007FFF,$000001FC,$781E0780,$001E000F,$781E7800,$7800003E
dc.l $781E781E,$03E003E0,$00007FFF,$0000003C,$0000781E,$781E781E
dc.l $781E7800,$7800781E,$781E03C0,$001E79F0,$7800799E,$781E781E
dc.l $781E781E,$781E7800,$0780781E,$781E781E,$3E7C7878,$001E0000
dc.l $000003E0,$0C3007F0,$3FF001F0,$7C3E0180,$07C001F0,$3FFE7FFF
dc.l $00007FFF,$000003F8,$781E0780,$003C001F,$781E7800,$7C00001E
dc.l $7C3E3C3E,$01C001C0,$00007FFF,$0000007C,$0000781E,$783E781E
dc.l $781E7800,$78007800,$781E03C0,$001E7BE0,$7800781E,$781E781E
dc.l $783C781E,$783C3C00,$0780781E,$781E781E,$1FF87CF8,$003C0000
dc.l $000003E0,$00000A28,$3FF803E0,$3FFC0000,$07C001F0,$1FFC7FFF
dc.l $00007FFF,$000007F0,$7C1E0780,$0FFC03FE,$7FFE7FF0,$7FF0001E
dc.l $3FFC3FFE,$00000000,$00000000,$000001F8,$00007FFE,$7FFC7C00
dc.l $7C1E7FE0,$7FE07C7E,$7FFE07C0,$003E7FF0,$7C007C1E,$7C1E7C1E
dc.l $7FFC7C1E,$7FFC3FF0,$0F807C1E,$7C3E799E,$0FF03FF0,$0FFC0000
dc.l $000003E0,$00001144,$1FF807C0,$3FFC0000,$07C001F0,$0FF87FFF
dc.l $01C07FFF,$00000FE0,$7E1E0780,$3FF003FE,$7FFE7FFC,$7FFC003E
dc.l $3FFC0FFE,$01C001C0,$00007FFF,$000003E0,$00007FFE,$7FFC7E00
dc.l $7E1E7FE0,$7FE07E7E,$7FFE0FC0,$007E7FF0,$7E007E1E,$7E1E7E1E
dc.l $7FF07E1E,$7FF80FFC,$1F807E1E,$3E7C7BDE,$1FF83FF0,$3FF00000
dc.l $00000000,$00003FFE,$03B80F9C,$781E0000,$07C001F0,$0FF87FFF
dc.l $03E00000,$00001FC0,$7E1E0780,$3E00003F,$007E007C,$783C007E
dc.l $781E001E,$03E003E0,$00007FFF,$000003C0,$00007E1E,$7E1E7E1E
dc.l $7E1E7E00,$7E007E1E,$7E1E0FC0,$787E7EF8,$7E007E1E,$7E1E7E1E
dc.l $7E007E1E,$7E3C003C,$1F807E1E,$3FFC7FFE,$3FFC1FE0,$3E000000
dc.l $000001C0,$00000000,$3FF81F3E,$781E0000,$07C001F0,$1FFC03C0
dc.l $03E00000,$01C03F80,$7E3E0780,$7C00003F,$007E003E,$783E007E
dc.l $781E783E,$03E003E0,$00007FFF,$00000000,$00007E1E,$7E1E7E3E
dc.l $7E3E7E00,$7E007E3E,$7E1E0FC0,$7E7E7EF8,$7E007E1E,$7E1E7E3E
dc.l $7E007E3E,$7E1E003E,$1F807E3E,$1FF87FFE,$3FFC0780,$7C000000
dc.l $000003E0,$00000000,$3FF83E3E,$7FFE0000,$03E003E0,$1E3C03C0
dc.l $03E00000,$03E07F00,$7FFE7FF8,$7FFE3FFF,$007E7FFE,$7FFE007E
dc.l $7FFE7FFE,$03E003E0,$00007FFF,$00000180,$00007E1E,$7FFE7FFE
dc.l $7FFE7FFE,$7E007FFE,$7E1E3FFC,$7FFE7E7C,$7FFE7E1E,$7E1E7FFE
dc.l $7E007FFE,$7E1E7FFE,$1F807FFE,$0FF07FFE,$7E7E0780,$7FFE0000
dc.l $000003E0,$00000000,$1FF07C3E,$3FFF0000,$03E003E0,$380E03C0
dc.l $01E00000,$03E03E00,$3FFC7FF8,$7FFE3FFE,$007E7FFC,$3FFC007E
dc.l $3FFC3FFC,$01C001E0,$00000000,$000003C0,$00007E1E,$7FFC3FFC
dc.l $7FFC3FFE,$7E003FFC,$7E1E3FFC,$3FFC7E7C,$3FFE7E1E,$7E1E3FFC
dc.l $7E003FF8,$7E1E7FFC,$1F803FFC,$07E07FFE,$7E7E0780,$7FFE0000
dc.l $000003E0,$00000000,$0380381C,$3FFE0000,$01F007C0,$200203C0
dc.l $00C00000,$03E01C00,$3FFC7FF8,$7FFE3FFE,$007E7FFC,$3FFC007E
dc.l $3FFC3FFC,$000000C0,$00000000,$000003C0,$00007E1E,$7FFC3FFC
dc.l $7FFC3FFE,$7E003FFC,$7E1E3FFC,$3FFC7E3E,$3FFE7E1E,$7E1E3FFC
dc.l $7E003FFE,$7E1E7FFC,$1F803FFC,$03C07E7E,$7C3E0780,$7FFE0000
dc.l $000001C0,$00000000,$03801000,$0FF40000,$00F80F80,$000003C0
dc.l $01800000,$01C00800,$0FF07FF8,$7FFE3FF8,$007E7FF0,$0FF0007E
dc.l $0FF00FF0,$00000180,$00000000,$00000180,$00007E1E,$7FF00FF0
dc.l $7FF00FFE,$7E000FF0,$7E1E3FFC,$0FF07E3E,$0FFE7E1E,$7E1E0FF0
dc.l $7E000FE6,$7E1E7FF0,$1F800FF0,$01807C3E,$7C3E0780,$7FFE0000

save_all:
move.L 4,a6
jsr -132(a6)
move.b #%10000111,$bfd100
move.l $6c,save_vecteur_irq
move.w $dff01c,save_intena
or.w #$c000,save_intena
move.w $dff002,save_dmacon
or.w #$8100,save_dmacon
rts
restore_all:
move.l save_vecteur_irq,$6c
move.w #$7fff,$dff09a
move.w save_intena,$dff09a
move.w #$7fff,$dff096
move.w save_dmacon,$dff096
move.l 4,a6
lea name_glib,a1
moveq #0,d0
jsr -552(a6)
move.l d0,a0
move.l 38(a0),$dff080
clr.w $dff088
move.L 4,a6
jsr -138(a6)
rts
save_intena:dc.w 0
save_dmacon:dc.w 0
save_vecteur_irq:dc.l 0
name_glib:dc.b "graphics.library",0
even

makecopper:
lea cop1,a0
move.L #$670ffffe,d0
move #95,d6
mcl0:
move.l d0,(a0)+
move.L #$1840000,(a0)+
move.l #$1860000,(a0)+
move.l #$18c0000,(a0)+
move.l #$18e0000,(a0)+
add.L #$1000000,d0
dbra d6,mcl0

lea cop1+6,a0
lea deg,a1
move #5,d6
mcl5:
move (a1)+,d0
move (a1)+,d1
move (a1),d2
move #15,d7
mcl6:
move d0,(a0)
move d0,4(a0)
move d0,8(a0)
move d0,12(a0)
add.L #20,a0
add d1,d0
dbra d7,mcl6
dbra d6,mcl5

lea copbpl2,a0
move.L #logo0b,d0
move d0,6(a0)
swap d0
move d0,2(a0)
swap d0
addi.L #36*44,d0
move d0,14(a0)
swap d0
move d0,10(a0)
swap d0
addi.L #36*44,d0
move d0,22(a0)
swap d0
move d0,18(a0)
rts
mcs1:dc.w 0

deg:dc.W $f00,$10,$ff0,-$100,$f0,1,$ff,-$10,$f,$100,$f0f,-1,$f00

copperlist:		;quel bordel !
dc.L $10ffffe,$920030,$9400d8
copspr:dc.L $1200000,$1220000,$1240000,$1260000,$1280000,$12a0000
dc.L $12c0000,$12e0000,$1300000,$1320000,$1340000,$1360000,$1380000
dc.l $13a0000,$13c0000,$13e0000
dc.l $1020000,$1040000,$1080002,$10a0094,$1000200
dc.w	$0180,$0000 ,$0182,$0000
dc.L $1880888,$18a0888
dc.w	$0190,$0000 ,$0192,$0eca ,$0194,$035e ,$0196,$023a
dc.w	$0198,$0126 ,$019a,$0cc0 ,$019c,$0c80 ,$019e,$0c50

dc.w	$01a0,$0000 ,$01a2,$0334 ,$01a4,$0778 ,$01a6,$099a
dc.w	$01a8,$0000 ,$01aa,$0223 ,$01ac,$0445 ,$01ae,$0667
dc.w	$01b0,$0000 ,$01b2,$0666 ,$01b4,$0aaa ,$01b6,$0fff
dc.L $1b80000,$1ba0000,$1bc0000,$1be0000
dc.L $200ffffe,$9683e0
copbpl1:dc.W $e0,5,$e2,$0000,$e8,5,$ea,$6000,$f0,5,$f2,$602e
copbpl3:dc.w $e4,6,$e6,$b000,$ec,6,$ee,$b000,$f4,6,$f6,$b000
copscr1:dc.L $210ffffe,$1006600
dc.L $250ffffe,$1820001
dc.L $260ffffe,$1820002
dc.L $270ffffe,$1820003
dc.L $280ffffe,$1820004
dc.L $290ffffe,$1820005

cop1:blk.b 96*20

dc.L $f90ffffe,$9c8010,$1004600,$1840fff,$1860fff,$1820004;,$960020,$9683c0
dc.l $1a20000,$1a40000,$1a60000,$1aa0000,$1ac0000,$1ae0000
dc.l $1b20000,$1b40000,$1b60000
dc.L $fa0ffffe,$1840eee,$1860eee
bar1:dc.L $1820003
dc.L $fb0ffffe,$1840ddd,$1860ddd
bar2:dc.l $1820002
dc.L $fc0ffffe,$1840ccc,$1860ccc
bar3:dc.L $1820001
dc.L $fd0ffffe,$1840bbb,$1860bbb
bar4:dc.L $1820000
dc.l $fe0ffffe
bar5:dc.L $1820000

dc.L $ff0ffffe
dc.L $1000200,$1820000,$1800000
dc.L $ffdffffe
copbpl2:dc.l $e00006,$e2b000,$e40006,$e6b000,$e80006,$eab000
logdec:dc.L $1020000,$1080000,$10a0000	;,$920028,$9400d8

dc.w	$0180,$0000 ,$0182,$0fff ,$0184,$0bcd ,$0186,$07ab
dc.w	$0188,$0589 ,$018a,$0257 ,$018c,$0145 ,$018e,$0023

dc.L $20ffffe,$1003200
dc.l $250ffffe,$108ff7c,$10aff7c
dc.w	$0180,$0000 ,$0182,$0888 ,$0184,$0566 ,$0186,$0455
dc.w	$0188,$0344 ,$018a,$0134 ,$018c,$0023 ,$018e,$0012
dc.L $280ffffe,$1020011
dc.l $2a0ffffe,$1020022
dc.l $2c0ffffe,$1020033
dc.L $2e0ffffe,$1020044
dc.L $300ffffe,$1020055
dc.L $320ffffe,$1020066
dc.L $340ffffe,$1020077
dc.L $360ffffe,$1020088
dc.l $370ffffe,$1000200
dc.L -2

bpa1:dc.L bp3
bpw1:dc.L bp4

setf:blk.b 4,0
set:
incbin "set"
set1=set
set2=set1+256
set3=set2+256
set4=set3+$b0
set5=set4+$b0
set6=set5+$80

carre:blk.b 32,0
carre1:blk.b 32,$ff
fonts:
incbin "fonts"

sin:
incbin "sincos"
cos=sin+$200
vide:blk.b 32,0


jug:
dc.w 0,500,0,0,0,0
dc.w 0,1180,0
dc.W 0,700,0
dc.w 350,550,0,500,380,0,650,220,0
dc.w -350,550,0,-400,300,0,-400,50,0
dc.W 300,-250,100,-300,-250,100
dc.W 300,-480,100,300,-710,100
dc.W -300,-480,100,-300,-710,100
dc.w 300,-940,90,300,-1170,60
dc.w -300,-940,90,-300,-1170,60
dc.W 300,-1400,20,-300,-1400,20
hand:dc.w 520,100,0,370,25,0,220,-50,0
dc.w -400,-25,200,-400,-100,350,-400,-150,470
boules:dc.w -400,-250,470
dc.w 110,1070,190,-110,1070,190
dc.w $7777

coord:blk.w 138,0
ordre:dc.w 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
dc.w 15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,$7777

bra1:dc.w $200

bo:dc.L bob1,mask1,bob2,mask2
dc.l bob8,mask8
dc.L bob3,mask3
dc.l bob5,mask5,bob5,mask5,bob5,mask5
dc.l bob5,mask5,bob5,mask5,bob5,mask5
dc.l bob4,mask4,bob4,mask4
dc.l bob5,mask5,bob5,mask5
dc.l bob5,mask5,bob5,mask5
dc.l bob5,mask5,bob5,mask5
dc.l bob5,mask5,bob5,mask5
dc.l bob5,mask5,bob5,mask5
dc.l bob5,mask5,bob6,mask6,bob7,mask7
dc.l bob5,mask5,bob6,mask6,bob7,mask7
dc.L bob9,mask9	;boules
dc.L bob7,mask7,bob7,mask7
val:blk.w 35
bobs:
incbin "bobs"
bob1=bobs
bob2=bob1+576
bob3=bob2+576
bob4=bob3+192
bob5=bob4+192
bob6=bob5+192
bob7=bob6+192
bob8=bob7+192
bob9=bob8+576

logo0b:
incbin "logo44"

end:
masks:
mask1=masks
mask2=mask1+576
mask3=mask2+576
mask4=mask3+192
mask5=mask4+192
mask6=mask5+192
mask7=mask6+192
mask8=mask7+192
mask9=mask8+576
bp1=$50000
bp5=$56000
bp3=$60000
bp4=$70000
bpv=$6b000
