	section shit,code_c
	

z_max=-200

start:
	move.w #$4000,$dff09a
	lea $dff000,a6

	bsr	juggleinit	
	bsr init

vbiloop:
	tst.w vbi
	beq.s vbiloop
	bsr prg
	move.w #0,vbi
	btst #6,$bfe001
	bne.s  vbiloop
	bsr    wblt

; System "zurckholen"
	move.l 4.w,a6
	move.l pgsh,a1
	cmp.l  pghi,a1
	blt.s  cpg
	move.l pghi,a1
cpg:
	move.l #$10000,d0
	jsr    -210(a6)
	lea    gfxname(pc),a1
	jsr    -408(a6)
	move.l d0,a1
	move.l 38(a1),$dff080
	move.w #0,$dff088
	jsr    -414(a6)
	move.l oldvbi,$6c.w
	move.w #$7fff,$dff096
	move.w #$83f0,$dff096
	move.w #$7fff,$dff09c
	move.w intena,d0
	or.w   #$c000,d0
	move.w d0,$dff09a
	moveq  #0,d0
	rts


server:
; Interrupt-Server
	movem.l d0-d7/a0-a6,-(a7)
	move.l #copperlist,$dff080
	move.w d0,$dff088
	movem.l ci1,d0-d1
	move.l d0,ci2
	move.l d1,ci1
	move.w d1,ColInt1-6
	swap   d1
	move.w d1,ColInt1-10
	tst.w  vbi
; Mit Darstellung der B„lle fertig?
	bne    noflip
; Nein ? -> kein Page-Flipping!
	movem.l pgsh,d0-d1
; BitMap-Adressen ta-uschen ...
	move.l d0,pghi
; page hidden
	move.l d1,pgsh
; page shown
	move.l d0,a0
	lea    copperlist,a1
	move.w d1,18(a1)
; ... und in die Copperlist
	swap   d1
	move.w d1,14(a1)
	swap   d1
	add.l  #40*256,d1
	move.w d1,26(a1)
	swap   d1
	move.w d1,22(a1)
	swap   d1
	add.l  #40*256,d1
	move.w d1,34(a1)
	swap   d1
	move.w d1,30(a1)
	bsr    wblt
; starten des L”schvorgangs der
; versteckten Planes.
; Trotz voller Priorit„t des
; Blitters kaum Einschr„nkungen
; des 68000, da nur DMA-Kanal D
; benutzt wird!
; Inzwischen gepufferte
; Joystickbewegungen fr aktuell
; erkl„ren.
	move.w #0,$66(a6)      
	move.l #$1000000,$40(a6)
	move.l a0,$54(a6)
	move.w #768*64+20,$58(a6)
	movem.l rxb,d0-d1
	movem.l d0-d1,rx
noflip:
	move.w #1,vbi
	bsr    joy
; Joystick abfragen
	move.w #$20,$dff09c
	movem.l (a7)+,d0-d7/a0-a6
	rte

Prg:

; Animation der Arme und der drei B„lle
	bsr	juggle
	lea	$dff000,a6


	bsr    rotate

; Alle Punkte rotieren u. projizieren

	bsr    quicksort

; Punkte sortieren (ziemlich flott)

	lea    ptab(pc),a3
	move.w (a3),d7
	subq.w #1,d7
	lea    ttab(pc),a3

; Zeiger auf (nach Sortierung)
; hintersten Punkt (2D-Koords/z-Koords)

	lea    ztab(pc),a4
Prg1P:
	bsr.s  draw

; korrespondierenden Ball zeichnen

	addq.l #6,a3

; Zeiger auf Daten
; des nächstn„heren Punktes

	addq.l #2,a4
	dbf    d7,prg1p
	rts

draw:
	lea    bob-12(pc),a5

; "Eigengrösse" des Balles
; lassen

	move.w 4(a3),d0
eigenlp:
	lea    12(a5),a5
	dbf    d0,eigenlp
	lea    sizetab(pc),a0

; Bälle der Entfernung

	move.w (a0)+,d1
sizelp:
	move.w (a0)+,d0
	cmp.w  (a4),d0
	ble.s  ok
	tst.w  12(a5)

; kleinster Ball schon

	bmi.s  ok
	lea    12(a5),a5
	dbf    d1,sizelp
ok:
	movem.w (a3),d3-d4

; 2D-Koordinaten eines


	movem.w (a5),d5-d6

; Ball-Breite in Worten
; Pixel

	move.w d6,d2
	asr.w  #1,d2
	sub.w  d2,d3

; angegebene Ball-Koordinaten in d3/d@ von
; "oben rechts" in die Ball-Mitte schieben

	sub.w  d2,d4
	tst.w  d3  

; Clipping

	blt    nodraw
	tst.w  d4

; Clipping

	blt    nodraw
	move.w d6,d2
	add.w  d3,d2
	cmp.w  #320,d2

; Clipping

	bgt    nodraw
	move.w d4,d2
	add.w  d6,d2
	cmp.w  #256,d2

; Clipping

	bgt    nodraw
	bsr.s  trans
	
; Umrechnung der Koordinaten

	movem.l 4(a5),a0-a1
	
; Zeiger: BitMap-Dat + Mask-Dat

	move.w d6,d2

; Blitter-Fenster berechnen

	asl.w  #6,d2
	add.w  d5,d2
	asl.w  #1,d5
	moveq  #40,d0

; Modulo berechnen

	sub.w  d5,d0
	moveq  #0,d1
	bsr.s  wblt
	move.l #$ffff0000,$44(a6)
	move.w d0,$60(a6)
	move.w d1,$62(a6)
	move.w d1,$64(a6)
	move.w d0,$66(a6)
	move.l #$0fc20000,d0

; A-Shift u. B-Shift fr Reg. $q0/q2
; eintragen (in "trans" berechnet!)

	swap   d3
	or.w   d3,d0
	swap   d0
	or.w   d3,d0
	swap   d0
	swap   d3
	move.l d0,$40(a6)
	move.l d4,a2
	
; Startadressen ausrechnen

	ext.l  d3
	add.l  d3,a2
	move.l a0,$50(a6)
	moveq  #2,d1
	
; Blit-Schleife fr

blitlp:
	bsr.s  wblt
	move.l a2,$48(a6)
	move.l a1,$4c(a6)
	move.l a2,$54(a6)
	move.w d2,$58(a6)
	lea    256*40(a2),a2
	
; n„chste Plane

	dbf    d1,blitlp
nodraw:
	rts

wblt:
	btst   #14,$dff002
	bne.s  wblt
	rts

trans:

; Umrechnen der x-/y-Koordinaten
; in Adressen und Shift-Offsets

	move.w d4,d0
	asl.w  #5,d0
	asl.w  #3,d4
	add.w  d0,d4
	ext.l  d4
	add.l  pghi,d4
	move.w d3,d0
	asr.w  #4,d0
	asl.w  #4,d0
	sub.w  d0,d3
	ror.w  #4,d3
	swap   d3
	asr.w  #3,d0
	move.w d0,d3
	rts


quicksort:

; blicher Quicksort-Algorithmus

 move.l a6,-(a7)
 moveq  #0,d4
 move.l #ztab,d5
 lea    Irtab(pc),a0
 lea    ttab(pc),a1
 move.l d5,0(a0,d4.w)
 lea    zend-2(pc),a5
 move.l a5,4(a0,d4.w)
l20:
 move.l 0(a0,d4.w),d5
 move.l 4(a0,d4.w),a5
 subq.w #8,d4
l30:
 move.l d5,a2
 move.l a5,a3
 move.l a2,d1
 sub.l  #ztab,d1
 move.w d1,d0
 asl.w  #1,d1
 add.w  d0,d1
 move.l a3,d2
 sub.l  #ztab,d2
 move.w d2,d0
 asl.w  #1,d2
 add.w  d0,d2
 move.l d5,d0
 add.l  a5,d0
 asr.l  #2,d0
 asl.l  #1,d0
 move.l d0,a6
 move.w (a6),d3
l40:
 cmp.w  (a2),d3
 ble.s l41
 addq.l #2,a2
 addq.w #6,d1
 bra.s  l40
l41:
 cmp.w  (a3),d3
 bge.s  l42
 subq.l #2,a3
 subq.w #6,d2
 bra.s  l41
l42:
 cmp.l  a3,a2
 bgt.s  l50
 move.w (a3),d0
 move.w (a2),(a3)
 move.w d0,(a2)
 move.w 0(a1,d1.w),d0
 move.w 0(a1,d2.w),0(a1,d1.w)
 move.w d0,0(a1,d2.w)
 move.w 2(a1,d1.w),d0
 move.w 2(a1,d2.w),2(a1,d1.w)
 move.w d0,2(a1,d2.w)
 move.w 4(a1,d1.w),d0
 move.w 4(a1,d2.w),4(a1,d1.w)
 move.w d0,4(a1,d2.w)
 addq.l #2,a2
 subq.l #2,a3
 addq.w #6,d1
 subq.w #6,d2
 cmp.l  a3,a2
 ble.s  l40
l50:
 cmp.l  a5,a2
 blt.s  l52
l51:
 move.l a3,a5
 cmp.l  a5,d5
 blt    l30
 tst.w  d4
 bge    l20
 move.l (a7)+,a6
 rts
l52:
 addq.w #8,d4
 move.l a2,0(a0,d4.w)
 move.l a5,4(a0,d4.w)
 bra.s  l51

joy:

; Joystick-Abfrage
	move.w $dff00c,d0
	btst   #1,d0
	bne.s  right
	btst   #9,d0
	bne.s  left
testud:
	move.w d0,d1
	lsr.w  #1,d1
	eor.w  d1,d0
	btst   #0,d0
	bne.s  bckw
	btst   #8,d0
	bne    forw
	 rts
right:
	btst   #7,$bfe001
	bne.L  nfr1
	addq.w #8,rzb

; z-Winkel-Buffer

	cmp.w  #720,rzb
	blt.s  ok1
	move.w #0,rzb
ok1:
	bra.s  testud
nfr1:
	addq.w #8,ryb

; y-Winkel-Buffer

	cmp.w  #720,ryb
	blt.s  ok2
	move.w #0,ryb
ok2:
	bra.s  testud
left:
	btst   #7,$bfe001 ; Feuerknopf ?
	bne.s  nfr2
	subq.w #8,rzb

; z-Winkel-Buffer

	bge.s  ok3
	add.w  #720,rzb
ok3:
	bra.s  testud
nfr2:
	subq.w #8,ryb

; y-Winkel-Buffer

	bge.s  ok4
	add.w  #720,ryb
ok4:
	bra    testud

; wieder zurck, um

bckw:
	btst   #7,$bfe001 ; Feuerknopf ?
	bne.s  nfr3
	cmp.w  #z_max,addzb

; Grenze fr N„he

	bge.s  ok5
	add.w  #100,addzb

; ja -> B„lle um 100

ok5:
	rts

nfr3:
	subq.w #8,rxb

; nein -> x-Winkel-Buffer

	bge.s  ok6
	add.w  #720,rxb
ok6:
	 rts
forw:
	btst   #7,$bfe001 ; Feuerknopf ?
	bne.s  nfr4
	cmp.w  #-18000,addzb
; Grenze fr Ferne
	 ble.s  ok7
	sub.w  #100,addzb

; ja -> B„lle um 100 Punkte entfernen

ok7:
	 rts

nfr4:
	addq.w #8,rxb

; nein -> x-Winkel-Buffer  + 4 Grad

	cmp.w  #720,rxb
	blt.s  ok8
	move.w #0,rxb
ok8:
	 rts


;Init...

juggleinit:
	lea jpointers(pc),a0
	lea jongx(pc),a1
	lea jongy(pc),a2
	lea armjong(pc),a3
	lea jongxend(pc),a4
	move.l a1,(a0)
	move.l a2,4(a0)
	move.l a3,8(a0)
	move.l a4,12(a0)
	rts

;Animation...

juggle:	lea jpointers(pc),a0
	move.l (a0),a3
	move.l 4(a0),a1
	move.l 8(a0),a4
	lea jon(pc),a2
	lea jon2(pc),a5
	lea jon3(pc),a6
jongl:	move.w (a3),(a2)
	move.w 32(a3),8(a2)
	move.w 62(a3),16(a2)
	move.w 94(a3),24(a2)
	
	move.w (a1),2(a2)
	move.w 32(a1),8+2(a2)
	move.w 62(a1),16+2(a2)
	move.w 94(a1),24+2(a2)
	add.w #10,2(A2)
	add.w #10,8+2(a2)
	add.w #10,16+2(a2)
	add.w #10,24+2(A2)
	neg 2(a2)
	neg 8+2(a2)
	neg 16+2(a2)
	neg 24+2(a2)
	move.w (a4),2(a5)
	move.w (a4)+,2(a6)
	move.w (a4),8+2(a5)
	move.w (a4)+,8+2(a6)
	addq.l #2,a3
	addq.l #2,a1
	move.l a3,(a0)
	move.l a1,4(a0)
	move.l a4,8(a0)
	cmpi.l 12(a0),a3
	beq juggleinit
	rts

rotate:

; Rotation-+ Translation

 lea    ptab(pc),a2
 lea    ttab(pc),a3
 lea    ztab(pc),a4
 lea    sintab(pc),a0
 lea    costab(pc),a1
 move.w (a2)+,d5
 subq.w #1,d5
r1p:
 movem.w (a2)+,d0-d2
 bsr.s  x_ax

; Die drei Rotations-Formeln

 add.w  addz,d2

; Verschiebung hinzuaddieren

 move.w d2,(a4)+

; z-Koordinaten zwecks erleichterter
; Sortierung in gesonderter "ztab" merken


 bsr    project
 movem.w d0-d1,(a3)
 addq.l #4,a3
 move.w (a2)+,(a3)+

; "Eigengr”sse" der B„lle

 dbf    d5,r1p
 rts
x_ax:

; Drehung um x-Achse


 move.w rx,d3
 move.w d1,d4
 move.w d2,d7
 muls   0(a1,d3.w),d1

; r.eu y=y*cos(al)

 muls   0(a0,d3.w),d2

; neu z=z*sin(al)

 sub.l  d2,d1

; fertig y=neu y-neu_z

 asl.l  #4,d1

; "Heruntertransformieren"

 swap   d1
 muls   0(a0,d3.w),d4

; neu y=y*sin(a1)

 muls   0(a1,d3.w),d7

; neu z=z*cos(a1)

 add.l  d7,d4

; fertig z=neu y-neu z

 asl.l  #4,d4   
 swap   d4
 move.w d4,d2

; d2=z

y_ax:

; Drehung um y-Achse

 move.w ry,d3
 move.w d0,d4
 move.w d2,d7
 muls   0(a1,d3.w),d0

; nx=x*cos(be)

 muls   0(a0,d3.w),d2

; nz=z*sin(be)

 add.l  d2,d0

; fx=nx+nz

 asl.l  #4,d0
 swap   d0
 neg.w  d4

; d4=-x

 muls   0(a0,d3.w),d4

; nx=-x*sin(be)

 muls   0(a1,d3.w),d7

; ny=y*cos(be)


 add.l  d7,d4

; fz=nx+ny

 asl.l  #4,d4
 swap   d4
 move.w d4,d2
z_ax:

; Drehung z-Achse

 move.w rz,d3
 move.w d0,d4
 move.w d1,d7
 muls   0(a1,d3.w),d0

; nx=x*cos(ga)

 muls   0(a0,d3.w),d1

; ny=y*sin(ga)

 sub.l  d1,d0

; fx=nx-ny

 asl.l  #4,d0
 swap   d0
 muls   0(a0,d3.w),d4

; nx=x*sin(ga)

 muls   0(a1,d3.w),d7

; ny=y*cos(ga)

 add.l  d7,d4

; fy=nx+ny

 asl.l  #4,d4
 swap   d4
 move.w d4,d1
 rts

project:

; lentral Perspektive

 sub.w  #1024,d2

; ball z - Observer z (0z=1014)

 beq.s  pjtend
 moveq  #10,d3
 ext.l  d0
 ext.l  d1
 asl.l  d3,d0    ; bx*Oz
 asl.l  d3,d1    ; by*Oz
 divs   d2,d0    ; (bx*Oz)/bz
 divs   d2,d1    ; (by*Oz)/bz
 neg.w  d0
 add.w  #160,d0  ; lentrieren
 add.w  #128,d1
pjtend:
 rts


init:
; Initialisierung (CopperList,
	move.w #$7fff,$96(a6)
; Speicher belegen, ...)
	move.l #0,$144(a6)
	move.l #copperlist,$80(a6)
	move.w #0,$88(a6)
	move.l #$2c812cc1,$8e(a6)
	move.l #$3800d0,$92(a6)
	move.l #0,$102(a6)
	move.l #0,$108(a6)
	move.w #$3200,$100(a6)
	move.l 4.w,a6
	move.l #$10000,d0
	move.l #$10003,d1
	jsr    -198(a6)
	lea    $dff000,a6
	move.l d0,pgsh
	add.l  #$8000,d0
	move.l d0,pghi
	move.l pgsh,d0
	move.w d0,copperlist+18
	swap   d0      
	move.w d0,copperlist+14
	swap   d0
	add.l  #256*40,d0
	move.w d0,copperlist+26
	swap   d0
	move.w d0,copperlist+22
	swap   d0
	add.l  #256*40,d0
	move.w d0,copperlist+34
	swap   d0
	move.w d0,copperlist+30

	lea    bob(pc),a2
; Anlegen der Masken
maskloop:
	move.l 4(a2),a0
	moveq  #2,d2
mout:
	move.l 8(a2),a1
	move.w 2(a2),d1
	mulu   (a2),d1
	subq.w #1,d1
min:
	move.w (a0)+,d0
	or.w   d0,(a1)+
	dbf    d1,min
	dbf    d2,mout

	lea    12(a2),a2
	tst.w  (a2)
	bge.s  maskloop
	move.l #$4409fffe,d0
; Copperlisten fr Colorlnterlace
	move.l #$1800000,d1
	move.w #$660,d2
	move.w #$001,d3
	moveq  #1,d5
	lea    copperlist,a1
	move.w d2,6(a1)
	lea    ColInt1,a1
makecop:
	move.w d2,d1
	move.l d0,(a1)+
	move.l d1,(a1)+
	add.l  #$5000000,d0
	move.l d0,(a1)+
	move.l d1,(a1)+
	add.l  #$5000000,d0
	move.w d2,d4
	and.w  #$f,d4
	cmp.w  #$f,d4
	beq.s  endcop
	move.w d2,d4
	and.w  	#$f0,d4
	cmp.w  #$f0,d4
	beq.s  endcop
	move.w d2,d4
	and.w  #$f00,d4
	cmp.w  #$f00,d4
	beq.s  endcop
	add.w  d3,d2
	bra.s  makecop
endcop:
	move.l #$fffffffe,d0
	move.w d2,d1
	move.l d0,(a1)+
	move.l d1,(a1)+
	move.l d0,(a1)+
	move.l d1,(a1)+
	move.l #$4909fffe,d0
	move.l #$1800000,d1
	move.w #$660,d2
	move.w #$001,d3
	lea    ColInt2,a1
	dbf    d5,makecop
	
	move.w $dff01c,intena
; VBl-Server-Init
	move.w #$7fff,$dff09a
	move.w #$7fff,$dff09c
	move.l $6c.w,oldvbi
	move.l #server,$6c.w
	move.w #$c020,$9a(a6)
	move.w #$87c0,$96(a6)
	rts


pgsh:     dc.l 0
pghi:     dc.l 0
ci1:      dc.l ColInt1
ci2:      dc.l ColInt2
intena:   dc.w 0
oldvbi:   dc.l 0
vbi:      dc.w 0
cnt:      dc.w 0
rx:       dc.w 0
ry:       dc.w 0
rz:       dc.w 0
addz:     dc.w 0
rxb:      dc.w $170
ryb:      dc.w $170
rzb:      dc.w 0
addzb:    dc.w -200
lace:     dc.l $60016

num = 36

ptab:
; Hier stehen die Koordinaten
	dc.w num  ; x,y,z,Eigengr”sse
a=8
ballpoints:	;Punktstruktur...
	dc.w 0,-100,0,0
	dc.w -9,-103,17,8
	dc.w 5,-103,17,8
	dc.w 0,-80,0,7
	dc.w 0,-55,0,1
	dc.w 0,-20,0,1

	dc.w 28,-60,0,2
	dc.w 28,-45,4,3
	dc.w 28,-30,8,3
	dc.w 28,-20,12,4
jon2:
	dc.w 28,-20,22,5
	dc.w 28,-20,32,6

	dc.w -28,-60,0,2
	dc.w -28,-45,4,3
	dc.w -28,-30,8,3
	dc.w -28,-20,12,4
jon3:
	dc.w -28,-20,22,5
	dc.w -28,-20,32,6

	dc.w 20,-10,0,2
	dc.w 21,5,4,3
	dc.w 22,20,8,3
	dc.w 23,35,10,4
	dc.w 24,48,8,4
	dc.w 25,60,6,4
	dc.w 26,74,4,3

	dc.w -20,-10,0,2
	dc.w -21,5,4,3
	dc.w -22,20,8,3
	dc.w -23,35,10,4
	dc.w -24,48,8,4
	dc.w -25,60,6,4
	dc.w -26,74,4,3

jon:
	dc.w -28,-60,28,5
	dc.w -28,-50,28,7
	dc.w -28,-30,28,5
	dc.w -28,-20,28,7


ttab:


; Tabelle fr 2D-Ergebnis-Koordinaten

	blk.w num*3
tend:

ztab:

; z-Koordinaten-Tabelle zum einfacheren

	blk.w num
zend:

Irtab:

; Array-Tabelle

	blk.l 100


gfxname: dc.b "graphics.library",0

	even


sintab:
	dc.w 0,$47,$8E,$D6
	dc.w $11D,$164,$1AC,$1F3
	dc.w $23A,$280,$2C7,$30D
	dc.w $353,$399,$3DE,$424
	dc.w $469,$4AD,$4F1,$535
	dc.w $578,$5BB,$5FE,$640
	dc.w $681,$6c3,$703,$743
	dc.w $782,$7C1,$7FF,$83D
	dc.w $87A,$8B6,$8F2,$92D
	dc.w $967,$9A1,$9D9,$A11
	dc.w $A48,$A7F,$AB4,$AE9
	dc.w $b1D,$b50,$bB2,$bb3
	dc.w $BE3,$C13,$C41,$C6F
	dc.w $C9B,$CC7,$CF1,$D1B
	dc.w $D43,$D6B,$D91,$DB6
	dc.w $DDB,$DfE,$E20,$E41
	dc.w $E61,$E80,$E9D,$EBA
	dc.w $ED5,$EEF,$F08,$F20
	dc.w $F37,$F4D,$F61,$F74
	dc.w $F86,$F97,$FA6,$FB4
	dc.w $FC1,$FCD,$FD8,$FE1
	dc.w $FE9,$FF0,$FF6,$FFA
	dc.w $FFD,$FFF
costab:
	dc.w $1000,$FFF
	dc.w $FFD,$FFA,$FF6,$FF0
	dc.w $FE9,$FE1,$FD8,$FCD
	dc.w $FC1,$FB4,$FA6,$F97
	dc.w $F86,$F74,$F61,$F4D
	dc.w $F37,$F20,$F08,$EEF
	dc.w $ED5,$EBA,$E9D,$E80
	dc.w $E61,$E41,$E20,$DFE
	dc.w $DDB,$DB6,$D91,$D6B
	dc.w $D43,$D1B,$CF1,$CC7
	dc.w $C9B,$C6F,$C41,$C13
	dc.w $BE3,$BB3,$B82,$B50
	dc.w $B1D,$AE9,$AB4,$A7F
	dc.w $A48,$A11,$9D9,$9A1
	dc.w $967,$92D,$8F2,$8B6
	dc.w $87A,$83D,$800,$7C1
	dc.w $782,$743,$703,$6C3
	dc.w $682,$640,$5FE,$5BB
	dc.w $578,$535,$4f1,$4AD
	dc.w $469,$424,$3DE,$399
	dc.w $353,$30D,$2C7,$280
	dc.w $23A,$1F3,$1AC,$165
	dc.w $11D,$D6,$8E,$47
	dc.w 0,$ffb9,$ff72,$ff2a
	dc.w $FEE3,$FE9C,$FE54,$FE0D
	dc.w $FDC6,$FD80,$FD39,$FCF3
	dc.w $FCAD,$FC67,$FC22,$FBDC
	dc.w $FB98,$FB53,$FB0F,$FACB
	dc.w $FA88,$FA45,$FA02,$F9C0
	dc.w $F97F,$F93D,$F8FD,$F8BD
	dc.w $F87E,$F83F,$F801,$F7C3
	dc.w $F786,$F74A,$F70E,$F6D3
	dc.w $F699,$F65F,$F627,$F5EF
	dc.w $F5B8,$F581,$F54C,$F517
	dc.w $F4E3,$F4B0,$F47E,$F44D
	dc.w $F41D,$F3ED,$F3BF,$F391
	dc.w $F365,$F339,$F30F,$F2E5
	dc.w $F2BD,$F295,$F26F,$F24A
	dc.w $F225,$F202,$F1E0,$F1BF
	dc.w $F19F,$F180,$F163,$F146
	dc.w $F12B,$F111,$F0F8,$F0E0
	dc.w $F0C9,$F0B3,$F09F,$F08C
	dc.w $F07A,$F069,$F05A,$F04C
	dc.w $F03F,$F033,$F028,$F01F
	dc.w $F017,$F010,$F00A,$F006
	dc.w $F003,$F001,$f000,$F001
	dc.w $F003,$F006,$F00A,$F010
	dc.w $F017,$F01F,$F028,$F033
	dc.w $F03F,$F04C,$F05A,$F069
	dc.w $f07A,$F08C,$F09F,$F0B3
	dc.w $F0C9,$f0E0,$f0f7,$F111
	dc.w $f12B,$F146,$F163,$f180
	dc.w $F19F,$F1Bf,$F1E0,$F202
	dc.w $F225,$F24A,$F26F,$F295
	dc.w $F2BD,$F2E5,$F30F,$F339
	dc.w $F365,$F391,$F3BF,$F3ED
	dc.w $F41D,$F44D,$f47E,$f4B0
	dc.w $F4e3,$F517,$F54C,$F581
	dc.w $F5B8,$F5Ef,$F627,$F65F
	dc.w $F699,$F6D3,$F70E,$f74A
	dc.w $F786,$F7C3,$F800,$F83F
	dc.w $F87D,$F8BD,$f8FD,$F93D
	dc.w $F97E,$F9C0,$FA02,$FA45
	dc.w $FA88,$FACB,$FB0F,$FB53
	dc.w $FB97,$FBDC,$FC22,$FC67
	dc.w $FCAD,$FCF3,$FD39,$FD80
	dc.w $FDC6,$FE0D,$FE54,$FE9B
	dc.w $FEE3,$fF2A,$fF71,$FFB9
sinend:
	dc.w 0,$47,$8E,$D6
	dc.w $11D,$164,$1AC,$1F3
	dc.w $23A,$280,$2C7,$30D
	dc.w $353,$399,$3DE,$424
	dc.w $469,$4AD,$4F1,$535
	dc.w $578,$5BB,$5FE,$640
	dc.w $681,$6c3,$703,$743
	dc.w $782,$7C1,$7FF,$83D
	dc.w $87A,$8B6,$8F2,$92D
	dc.w $967,$9A1,$9D9,$A11
	dc.w $A48,$A7F,$AB4,$AE9
	dc.w $b1D,$b50,$bB2,$bb3
	dc.w $BE3,$C13,$C41,$C6F
	dc.w $C9B,$CC7,$CF1,$D1B
	dc.w $D43,$D6B,$D91,$DB6
	dc.w $DDB,$DfE,$E20,$E41
	dc.w $E61,$E80,$E9D,$EBA
	dc.w $ED5,$EEF,$F08,$F20
	dc.w $F37,$F4D,$F61,$F74
	dc.w $F86,$F97,$FA6,$FB4
	dc.w $FC1,$FCD,$FD8,$FE1
	dc.w $FE9,$FF0,$FF6,$FFA
	dc.w $FFD,$FFF,$1000
cosend:

bob:	dc.w 3,31
	dc.l b0dat,m0dat
	dc.w 3,25        ; Breite in Worten +l, Hohe in Zeilen
	dc.l b1dat,m1dat ; Zeiger bitMap-Daten, Zeiger Maske
 	dc.w 3,19
 	dc.l b2dat,m2dat
 	dc.w 2,15
 	dc.l b3dat,m3dat
 	dc.w 2,13
 	dc.l b4dat,m4dat
 	dc.w 2,11
 	dc.l b5dat,m5dat
 	dc.w 2,9
 	dc.l b6dat,m6dat
 	dc.w 2,7
 	dc.l b7dat,m7dat
 	dc.w 2,5
 	dc.l b8dat,m8dat
 	dc.w -1

sizetab:

; Tabelle zur festlegung, ab wann
; welche Ballgr”sse verwendet wird

 dc.w 8,-300,-1200,-1800,-2600,-3700,-4900,-6200,-7600,-9100

 

;
; ball-Bitmap-Daten
;

b0dat:
	DC.L	$000FE000,$0000007F
	DC.L	$FC000000,$01E07F00
	DC.L	$000003BF,$8F800000
	DC.L	$07C1EAC0,$00000D7C
	DC.L	$E5600000,$1A8E32F0
	DC.L	$00003547,$54B80000
	DC.L	$36EB1958,$00006A46
	DC.L	$ACAC0000,$620B1A5C
	DC.L	$00004B56,$ACAC0000
	DC.L	$D1AF1A5E,$0000B97D
	DC.L	$2C2E0000,$CEAA1A5E
	DC.L	$0000B454,$DC2E0000
	DC.L	$DE81385E,$0000E154
	DC.L	$F42E0000,$D2EBF05E
	DC.L	$0000695F,$D0AC0000
	DC.L	$70B5A2DC,$0000742A
	DC.L	$857C0000,$28000AF8
	DC.L	$00003680,$55F80000
	DC.L	$1D54AAF0,$00000EAB
	DC.L	$55E00000,$0754ABC0
	DC.L	$000003EB,$FF800000
	DC.L	$01FEFF00,$0000007F
	DC.L	$FC000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$0000001F
	DC.L	$80000000,$007FF000
	DC.L	$000000C1,$F5000000
	DC.L	$0300FA80,$00000670
	DC.L	$3D000000,$0CF85F40
	DC.L	$00000DF4,$1EA00000
	DC.L	$19F82F50,$000019F4
	DC.L	$1FA00000,$38A82F50
	DC.L	$00003850,$1FA00000
	DC.L	$58002FD0,$00003E00
	DC.L	$1FA00000,$5C00DFD0
	DC.L	$00002E81,$3FA00000
	DC.L	$1F54FFD0,$00002FEB
	DC.L	$FFA00000,$17FFFF50
	DC.L	$00000FFF,$FD200000
	DC.L	$0BFFFA80,$000017FF
	DC.L	$F5000000,$097FAA00
	DC.L	$000002AB,$55000000
	DC.L	$0154AA00,$000000AB
	DC.L	$54000000,$00140000
	DC.L	$00000001,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$003E0000
	DC.L	$000000FF,$00000000
	DC.L	$01FFC000,$000003FF
	DC.L	$A0000000,$03FFE000
	DC.L	$000007FF,$D0000000
	DC.L	$07FFE000,$000007FF
	DC.L	$D0000000,$07FFE000
	DC.L	$000007FF,$D0000000
	DC.L	$01FFE000,$000003FF
	DC.L	$20000000,$017EC000
	DC.L	$000000AB,$00000000
	DC.L	$00140000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000

b1dat:	DC.L	$007F0000,$00000180
	DC.L	$C0000000,$06FE3000
	DC.L	$00000B07,$98000000
	DC.L	$15C1CC00,$00002A70
	DC.L	$A6000000,$34195200
	DC.L	$000055CC,$75000000
	DC.L	$6CCCBB00,$0000AC5E
	DC.L	$71800000,$A60CAA80
	DC.L	$0000AB5E,$71800000
	DC.L	$A7B4BA80,$0000917A
	DC.L	$71800000,$B4A96A80
	DC.L	$00009A12,$E5800000
	DC.L	$4CA1D300,$00004357
	DC.L	$A5000000,$25FECA00
	DC.L	$00003B5D,$16000000
	DC.L	$14AA2C00,$00000A80
	DC.L	$58000000,$07453000
	DC.L	$000001AA,$C0000000
	DC.L	$007F0000,$00000000
	DC.L	$00000000,$007F0000
	DC.L	$000001FF,$C0000000
	DC.L	$0707E000,$00000C01
	DC.L	$F0000000,$1980F800
	DC.L	$000013E1,$7C000000
	DC.L	$33F07A00,$000023F0
	DC.L	$BC000000,$63E07E00
	DC.L	$000061F0,$BD000000
	DC.L	$60A07E00,$00006040
	DC.L	$BD000000,$70007E00
	DC.L	$00007401,$7D000000
	DC.L	$7A02FA00,$00003CA1
	DC.L	$FC000000,$3F57FA00
	DC.L	$00001FFF,$F4000000
	DC.L	$07FFE800,$00000BFF
	DC.L	$D0000000,$057FA000
	DC.L	$000000BA,$C0000000
	DC.L	$00550000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$000000F8
	DC.L	$00000000,$03FE0000
	DC.L	$000007FF,$00000000
	DC.L	$0FFE8000,$00000FFF
	DC.L	$80000000,$1FFF4000
	DC.L	$00001FFF,$80000000
	DC.L	$1FFF4000,$00001FFF
	DC.L	$80000000,$1FFF4000
	DC.L	$00000FFF,$80000000
	DC.L	$0BFE8000,$000005FD
	DC.L	$00000000,$035E0000
	DC.L	$000000A8,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
  
b2dat:
	DC.L	$03F80000,$00000806
	DC.L	$00000000,$17F10000
	DC.L	$00002A8C,$80000000
	DC.L	$526B4000,$00004F37
	DC.L	$40000000,$A273A000
	DC.L	$0000A8BB,$A0000000
	DC.L	$A572A000,$0000AEE9
	DC.L	$A0000000,$A3F2A000
	DC.L	$0000B547,$A0000000
	DC.L	$9A8B2000,$0000540F
	DC.L	$40000000,$4F564000
	DC.L	$000026BC,$80000000
	DC.L	$11F10000,$00000C06
	DC.L	$00000000,$03F80000
	DC.L	$00000000,$00000000
	DC.L	$07F80000,$00000FFE
	DC.L	$00000000,$190F0000
	DC.L	$0000378B,$80000000
	DC.L	$27C78000,$00006F83
	DC.L	$C0000000,$6743C000
	DC.L	$00006A82,$C0000000
	DC.L	$6101C000,$00006002
	DC.L	$C0000000,$7007C000
	DC.L	$0000780B,$C0000000
	DC.L	$340F8000,$00003F57
	DC.L	$80000000,$1EBF0000
	DC.L	$00000FFE,$00000000
	DC.L	$03F80000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$000007F0
	DC.L	$00000000,$0FF40000
	DC.L	$00001FF8,$00000000
	DC.L	$1FFC0000,$00001FFC
	DC.L	$00000000,$1FFD0000
	DC.L	$00001FFE,$00000000
	DC.L	$1FFD0000,$00000FF8
	DC.L	$00000000,$07F40000
	DC.L	$00000BF0,$00000000
	DC.L	$00A80000,$00000140
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000

	
b3dat:
	DC.L	$03E00000,$0C180000
	DC.L	$11C40000,$24720000
	DC.L	$2A9A0000,$47490000
	DC.L	$534D0000,$54CD0000
	DC.L	$538D0000,$48190000
	DC.L	$2C3A0000,$27F20000
	DC.L	$11C40000,$0C180000
	DC.L	$03E00000,$00000000
	DC.L	$03E00000,$0FF80000
	DC.L	$1C7C0000,$1B1C0000
	DC.L	$378E0000,$378E0000
	DC.L	$330E0000,$300E0000
	DC.L	$381E0000,$1C3C0000
	DC.L	$1FFC0000,$0FF80000
	DC.L	$03E00000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$03800000
	DC.L	$07E00000,$0FF00000
	DC.L	$0FF00000,$0FF00000
	DC.L	$0FF00000,$07E00000
	DC.L	$03C00000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000

	
b4dat:
	DC.L	$0F800000,$30600000
	DC.L	$6F300000,$46900000
	DC.L	$BAC80000,$AC680000
	DC.L	$A0E80000,$B5E80000
	DC.L	$9AC80000,$4F900000
	DC.L	$67300000,$30600000
	DC.L	$0F800000,$00000000
	DC.L	$0F800000,$1FC00000
	DC.L	$28E00000,$6CF00000
	DC.L	$60700000,$60F00000
	DC.L	$75F00000,$7AF00000
	DC.L	$3FE00000,$1FC00000
	DC.L	$0F800000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$1F000000
	DC.L	$1F000000,$1F800000
	DC.L	$1F000000,$0A000000
	DC.L	$05000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000

b5dat:
	DC.L	$1F000000,$3E800000
	DC.L	$7B400000,$EDA00000
	DC.L	$F5A00000,$DCA00000
	DC.L	$A1A00000,$ABA00000
	DC.L	$5F400000,$20800000
	DC.L	$1F000000,$00000000
	DC.L	$1F000000,$23800000
	DC.L	$51C00000,$59C00000
	DC.L	$40C00000,$61C00000
	DC.L	$6BC00000,$3F800000
	DC.L	$1F000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$1C000000,$3E000000
	DC.L	$3E000000,$3F000000
	DC.L	$1E000000,$14000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000

b6dat:  
	DC.L	$1C000000,$7F000000
	DC.L	$53000000,$AA800000
	DC.L	$D3800000,$86800000
	DC.L	$7F000000,$6B000000
	DC.L	$1C000000,$00000000
	DC.L	$1C000000,$02000000
	DC.L	$53000000,$43000000
	DC.L	$47000000,$3E000000
	DC.L	$1C000000,$00000000
	DC.L	$00000000,$00000000
	DC.L	$3C000000,$3C000000
	DC.L	$3C000000,$38000000
	DC.L	$00000000,$00000000
	DC.L	$00000000,$00000000
	
b7dat:  
	DC.L	$38000000,$6C000000
	DC.L	$D2000000,$A6000000
	DC.L	$CA000000,$54000000
	DC.L	$38000000,$00000000
	DC.L	$08000000,$24000000
	DC.L	$04000000,$4C000000
	DC.L	$38000000,$00000000
	DC.L	$00000000,$30000000
	DC.L	$78000000,$78000000
	DC.L	$30000000,$00000000
	DC.L	$00000000,$00000000

	
b8dat:  
	DC.L	$70000000,$D8000000
	DC.L	$B8000000,$E8000000
	DC.L	$70000000,$00000000
	DC.L	$10000000,$30000000
	DC.L	$70000000,$00000000
	DC.L	$00000000,$60000000
	DC.L	$40000000,$00000000
	DC.L	$00000000,$00000000


m0dat: 	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0

m1dat: 	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0

; Masken-Tabelle (Ausmasse wie

m2dat:  dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0


; Ebene der bitMap-Daten).


m3dat: 	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0


; Wird von init-Routine gefüllt

m4dat: 	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0


m5dat: 	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0

m6dat: 	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0


m7dat:	 dc.w	0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0

m8dat: 	 dc.w   0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0,0,0


copperlist:
 dc.w $1901,-2,$180,0
 dc.w $2a01,-2,$e0,0,$e2,0,$e4,0,$e6,0,$e8,0,$ea,0
 dc.w $182,$040,$184,$060,$186,$080,$188,$090
 dc.w $18a,$0b0,$18c,$0f0,$18e,$fff
 dc.w $80,0,$82,0,$88,0
ColInt1:
 blk.l 2*60
ColInt2:
 blk.l 2*60

jpointers:dc.l 0,0,0,0	;pointer


;Sinustabellen fuer Jonglieren...
	even
jongx:
	dc.w 2,5,8,10,13,15,18 
	dc.w 20,21,23,24,26,26,27,27 
	dc.w 27,27,27,26,25,24,22,20 
	dc.w 18,16,14,11,9,6,3,1 
	dc.w -1,-4,-7,-9,-12,-14,-17,-19 
	dc.w -21,-22,-24,-25,-26,-27,-27,-27 
	dc.w -27,-27,-26,-25,-24,-23,-21,-19 
	dc.w -17,-15,-13,-10,-7,-5,-2 
jongxend:
	dc.w 2,5,8,10,13,15,18 
	dc.w 20,21,23,24,26,26,27,27 
	dc.w 27,27,27,26,25,24,22,20 
	dc.w 18,16,14,11,9,6,3,1 
	dc.w -1,-4,-7,-9,-12,-14,-17,-19 
	dc.w -21,-22,-24,-25,-26,-27,-27,-27 
	dc.w -27,-27,-26,-25,-24,-23,-21,-19 
	dc.w -17,-15,-13,-10,-7,-5,-2 
jongy:
	dc.w 59 
	dc.w 59,59,58,57,56,54,52,49 
	dc.w 47,43,40,37,33,29,25
	dc.w 32,40,48,56,63,70,76 
	dc.w 82,87,92,96,99,102,103,104 
	dc.w 104,104,102,100,97,94,89,84 
	dc.w 79,72,66,59,51,44,36,28 
	dc.w 20,23,27,31,35,39,42,45 
	dc.w 48,51,53,55,57,58,59
jongyend:
	dc.w 59 
	dc.w 59,59,58,57,56,54,52,49 
	dc.w 47,43,40,37,33,29,25
	dc.w 32,40,48,56,63,70,76 
	dc.w 82,87,92,96,99,102,103,104 
	dc.w 104,104,102,100,97,94,89,84 
	dc.w 79,72,66,59,51,44,36,28 
	dc.w 20,23,27,31,35,39,42,45 
	dc.w 48,51,53,55,57,58,59

;Armbewegung...

armjong:
	dc.w -20,-20,-22,-24,-24,-28,-28,-32,-24,-28,-22,-24
	dc.w -20,-20,-20,-20,-20,-20,-20,-20,-20,-20

	dc.w -20,-20,-20,-20,-20,-20,-20,-20
	dc.w -20,-20,-22,-24,-24,-28,-28,-32,-24,-28,-22,-24
	dc.w -20,-20,-20,-20,-20,-20,-20,-20,-20,-20

	dc.w -20,-20,-20,-20,-20,-20,-20,-20
	dc.w -20,-20,-22,-24,-24,-28,-28,-32,-24,-28,-22,-24
	dc.w -20,-20,-20,-20,-20,-20,-20,-20,-20,-20

	dc.w -20,-20,-20,-20,-20,-20,-20,-20
	dc.w -20,-20,-22,-24,-24,-28,-28,-32,-24,-28,-22,-24
	dc.w -20,-20,-20,-20,-20,-20,-20,-20,-20,-20

	dc.w -20,-20,-20,-20,-20,-20,-20,-20
	dc.w -20,-20,-22,-24,-24,-28,-28,-32,-24,-28,-22,-24	
	dc.w -20,-20,-20,-20,-20,-20,-20,-20,-20,-20

	dc.w -20,-20,-20,-20,-20,-20,-20,-20
	dc.w -20,-20,-22,-24,-24,-28,-28,-32,-24,-28,-22,-24
	dc.w -20,-20,-20,-20,-20,-20,-20,-20,-20,-20
	

ballart:	;Ballarten...
	dc.w 44,1,1,2,40,41,25,24,24,23,22,21,25,24,24,23,22,21
	dc.w 25,24,24,23,23,23,24,25,24,24,23,23,23,24
	dc.w 7,7,7,7
end:
