;3DAM
;
;                    *****************************
;                     * TRASFORMAZIONE DI SCALA *
;                      *************************
;
;
;                       Author: Antonio Martini
;             Hardware support: Simone Rancitelli           
;
;                    Assembler: ASM-One V1.0
;
;
;
;                        [RESETTARE PER USCIRE]
;
;
;
;


bltddat	    EQU	  $000
dmaconr	    EQU	  $002
vposr	    EQU	  $004
vhposr	    EQU	  $006

bltcon0	    EQU	  $040
bltcon1	    EQU	  $042
bltafwm	    EQU	  $044
bltalwm	    EQU	  $046
bltcpt	    EQU	  $048
bltbpt	    EQU	  $04C
bltapt	    EQU	  $050
bltdpt	    EQU	  $054
bltsize	    EQU	  $058

bltcmod	    EQU	  $060
bltbmod	    EQU	  $062
bltamod	    EQU	  $064
bltdmod	    EQU	  $066

bltcdat	    EQU	  $070
bltbdat	    EQU	  $072
bltadat	    EQU	  $074

bplcon0	    EQU	  $100
bplcon1	    EQU	  $102
bplcon2	    EQU	  $104
bpl1mod	    EQU	  $108
bpl2mod	    EQU	  $10A




	SECTION	MAIN,CODE_C

MAIN_PRG
bt	move.l	4.w,a6
	jsr	-132(a6)	; Disabilita Multitasking

	lea.l	$dff000,a5

; attende Vertical Blank
waitvrt	move.w	$06(a5),d0
	and.w	#$000f,d0
	bne.s	waitvrt

; azzera puntatori sprites
	moveq	#0,d0
	move.l	d0,$144(a5)	
	move.l	d0,$140(a5)

; disabilita canali DMA
	move.w	#$01a0,$dff096

; imposta parametri bufferizzazione video
	lea.l	sc_cont,a0
	move.l	#$00070000,(a0)+
	move.w	#-1,(a0)+

; dirotta vettori IRQ livello 3 + imposta Copperlist
	move.l	#$7fff7fff,$9a(a5)
	move.l	#copperlist,$80(a5)
	move.l	#irq_prg,$6c.w

	move.l	#$c0207fff,$9a(a5)	; DMA enable
	move.w	#$83c0,$96(a5)

	move.w	d0,$88(a5)		; start Copperlist
	bra.s	main2

sc_cont		dc.b	0,7
change0		dc.w	0
change1		dc.w	-1

; indirizzi piani di bit

Y_max=255
lbp	equ	(y_max+1)*40
	
bplane1		dc.l	extmem+(lbp*0)	;1 bitmap
bplane2		dc.l	extmem+(lbp*1)	;2 bitmap
bplane3		dc.l	extmem+(lbp*2)	;3 bitmap

bmap		dc.l	extmem+(lbp*0)	; puntatore bitplane tracciamento

; ------------------
; GESTIONE 3o BUFFER
; ------------------

MAIN2	lea.l	change1(pc),a0		; contatore buffer
	move.w	(a0),d0
	addq.w	#1,d0
	cmp.w	#2,d0
	ble.s	NORS0
	sub.w	d0,d0
NORS0	move.w	d0,(a0)			; buffer counter

Waitblk	btst	d0,-3(a0)		; controlla se buffer libero
	bne.s	Waitblk
	move.w	d0,-(sp)

	add.w	d0,d0
	add.w	d0,d0
	move.l	2(a0,d0.w),d0		; 2
	move.l	d0,Bmap			; ^.l schermo

; CLEAR SCREEN
	lea.l	$dff000,a6
Wblt0	btst	#6,2(a6)
	bne.s	Wblt0

	move.l	d0,bltdpt(a6)		; ^ bitmap
	move.w	#0,bltdmod(a6)
	move.l	#$01000000,bltcon0(a6)
	move.w	#((y_max+1)<<6)!20,bltsize(a6)

; -----------------------------------------------------

	BSR.W	PROGRAM

; -----------------------------------------------------
ENDFRAME
	move.w	(sp)+,d0
	lea.l	sc_cont+1(pc),a0
	bset	d0,(a0)		; 1 = Buffer che puo' essere visualizzato

	btst	#6,$bfe001	
	bne.w	MAIN2	 
	ILLEGAL			; EXIT

; -----------------------------------------------------

; 	----------------------
;	     IRQ-Routine
;        (scambia bitplanes)
;       ----------------------

irq_prg movem.l	d0-a6,-(sp)
	lea.l	change0(pc),a0
	move.w	(a0),d0
	move.w	d0,d1
	addq.w	#1,d0
	cmp.w	#2,d0
	ble.s	lab_cd
	sub.w	d0,d0

lab_cd	btst	d0,-1(a0)
	beq.s	irq_esc
	move.w	d0,(a0)
	bclr	d1,-1(a0)

	add.w	d0,d0
	add.w	d0,d0		; *4
	lea.l	4(a0,d0.w),a0
	lea.l	bitplane1+2,a1
	
	move.w	(a0)+,(a1)
	move.w	(a0)+,4(a1)

irq_esc	movem.l	(sp)+,d0-a6
	move.w	#$4020,$dff09c
	rte

; -----------------------------------------------------

PROGRAM
	bsr.s	TRANSFORM		; -> esegue rotazione
	bsr.w	OBJ_TR			; -> disegna oggetto ruotato 

	rts

; ------------------------------
; RUOTA + PROIETTA PUNTI OGGETTO
; ------------------------------

; ----------------------------------------------------------------
; provare a cambiare i seguenti valori:

; fattori di scala iniziali:
SX	dc.w	0
SY	dc.w	0
SZ	dc.w	0

; valori di incremento fattori di scala:
INCX	dc.w	512
INCY	dc.w	512
INCZ	dc.w	512

; ----------------------------------------------------------------

TRANSFORM
	lea.l	centr_TAB-192*2,a4	; ^ tabella per proiezione 
	move.w	#320/2,a6
	move.w	#256/2,d6

	lea.l	points3d(pc),a0		; ^ punti da ruotare 
	lea.l	points2d(pc),a2		; ^ punti ruotati
	move.w	#-910,a1		; Tz traslazione in direzione Z
	move.w	#numpoint-1,d7		; n-1 punti da ruotare

; ----------------------------------------
; incrementa fattori di scala
	bra.s	noexg

EXFCT	neg.w	INCX
	neg.w	INCY
	neg.w	INCZ

noexg	movem.w	SX(pc),d3/d4/d5		; Sx,Sy,Sz
	add.w	INCX(pc),d3
	bmi.s	EXFCT
	bvs.s	EXFCT
	add.w	INCY(pc),d4
	bmi.s	EXFCT
	bvs.s	EXFCT
	add.w	INCZ(pc),d5
	bmi.s	EXFCT
	bvs.s	EXFCT
	movem.w	d3/d4/d5,SX
; ----------------------------------------

objaxi2	movem.w	(a0)+,d0/d1/d2	; x,y,z

; SCALA
	muls	d3,d0		; x*Sx
	muls	d4,d1		; y*Sy	
	muls	d5,d2		; z*Sz
	swap	d0		; x'= d0/2^16
	swap	d1		; y'= d1/2^16
	swap	d2		; z'= d2/2^16

; TRASLAZIONE
	add.w	a1,d2		; traslazione in direzione z

; PROIEZIONE  ( posizione osservatore = 256 )
; massimo valore z per punti = 192

	add.w	d2,d2		; proiezione
	move.w	0(a4,d2.w),d2
	muls	d2,d0
	muls	d2,d1
	asl.l	#3,d0
	asl.l	#3,d1
	swap	d0
	swap	d1
	add.w	a6,d0
	add.w	d6,d1
	move.w	d0,(a2)+	; x punto 2d
	move.w	d1,(a2)+	; y	

	dbra	d7,objaxi2

	rts

; ---------------
; DISEGNA OGGETTO 
; ---------------

OBJ_TR
	lea.l	$dff048,a6
	lea.l	$40-$48(a6),a2		; = $dff040
	lea.l	tabella2(pc),a5		; tabella calcolo (x*64)or2
	move.l	#$0bfa000f,d6

	move.l	Bmap(pc),d7		; bitplane tracciamento
	lea.l	lines(pc),a0
	lea.l	points2D(pc),a4

	moveq	#-1,d4
	moveq	#40,d0
wblt9	btst	#6,2-$48(a6)
	bne.s	wblt9

	move.l	d4,Bltafwm-$48(a6)
	move.l 	#$FFFF8000,Bltbdat-$48(a6)
	move.w 	d0,Bltcmod-$48(a6)
	move.w 	d0,Bltdmod-$48(a6)
	bra.s	trace1

trace2	movem.w	0(a4,d0.w),d0-d1 	; x1,y1
	movem.w	0(a4,d2.w),d2-d3  	; x2,y2	
	bsr.w	LINE		  	; -> traccia linea
trace1	move.w	(a0)+,d0   	  	; p0	
	move.w	(a0)+,d2          	; p1
	bpl.s	trace2

	rts

; -------------
; TRACCIA LINEA
; -------------
; d0,d1 = x1,y1
; d2,d3 = x2,y2
; d7    = ^ bitplane destinazione
; a2    = $dff040
; a4    = ^ tabella y*40
; a6    = $dff048

LINE	move.l	d7,a1 		; ^ bitplane

	sub.w 	d1,d3
	bpl.s 	uline1
	add.w	d3,d1
	neg.w	d3
	exg 	d0,d2
uline1	sub.w 	d0,d2
	bpl.s 	uline2
	neg.w 	d2
	moveq 	#9,d4
	cmp.w 	d3,d2
	bcs.s 	uline3
	moveq 	#21,d4
	bra.s 	ugne3
uline2	moveq 	#1,d4
	cmp.w 	d3,d2
	bcs.s 	uline3
	moveq 	#17,d4
ugne3	exg 	d2,d3

uline3	add.w 	d2,d2
	move.w	d2,d5
	sub.w 	d3,d2
	bpl.s 	gline4
	add.w	a2,d4

gline4	swap	d5
	move.w	d2,d5
	sub.w	d3,d5
	add.w	d3,d3

	add.w	d1,d1
	add.w	TABELLA(pc,d1.w),a1	 ; +y*40

	ror.l	#4,d0
	add.w	d0,d0		 ; bytes position
	add.w	d0,a1		 ; ^ primo punto
	or.l	d6,d0
	move.w	d4,d0

	lea.l	$52-$48(a6),a3
gwbl10	btst 	#6,2-$48(a6)
	bne.s	gwbl10

	move.l 	a1,(a6)		 ; bltcpt
	move.w	d2,(a3)+	 ; $48 - bltaptl
	move.l	a1,(a3)+ 	 ; $52 - bltdpt	
	move.l 	d5,$62-$48(a6)	 ; bltamod
	move.l 	d0,(a2)		 ; a2 = $dff040 bltcon0 / bltcon1
	move.w	0(a5,d3.w),(a3)  ; bltsize / traccia linea	
	rts

TABELLA
	dc.w $0,$28,$50,$78,$A0,$C8,$F0,$118,$140,$168,$190,$1B8
	dc.w $1E0,$208,$230,$258,$280,$2A8,$2D0,$2F8,$320,$348,$370,$398
	dc.w $3C0,$3E8,$410,$438,$460,$488,$4B0,$4D8,$500,$528,$550,$578
	dc.w $5A0,$5C8,$5F0,$618,$640,$668,$690,$6B8,$6E0,$708,$730,$758
	dc.w $780,$7A8,$7D0,$7F8,$820,$848,$870,$898,$8C0,$8E8,$910,$938
	dc.w $960,$988,$9B0,$9D8,$A00,$A28,$A50,$A78,$AA0,$AC8,$AF0,$B18
	dc.w $B40,$B68,$B90,$BB8,$BE0,$C08,$C30,$C58,$C80,$CA8,$CD0,$CF8
	dc.w $D20,$D48,$D70,$D98,$DC0,$DE8,$E10,$E38,$E60,$E88,$EB0,$ED8
	dc.w $F00,$F28,$F50,$F78,$FA0,$FC8,$FF0,$1018,$1040,$1068,$1090,$10B8
	dc.w $10E0,$1108,$1130,$1158,$1180,$11A8,$11D0,$11F8,$1220,$1248,$1270,$1298
	dc.w $12C0,$12E8,$1310,$1338,$1360,$1388,$13B0,$13D8,$1400,$1428,$1450,$1478
	dc.w $14A0,$14C8,$14F0,$1518,$1540,$1568,$1590,$15B8,$15E0,$1608,$1630,$1658
	dc.w $1680,$16A8,$16D0,$16F8,$1720,$1748,$1770,$1798,$17C0,$17E8,$1810,$1838
	dc.w $1860,$1888,$18B0,$18D8,$1900,$1928,$1950,$1978,$19A0,$19C8,$19F0,$1A18
	dc.w $1A40,$1A68,$1A90,$1AB8,$1AE0,$1B08,$1B30,$1B58,$1B80,$1BA8,$1BD0,$1BF8
	dc.w $1C20,$1C48,$1C70,$1C98,$1CC0,$1CE8,$1D10,$1D38,$1D60,$1D88,$1DB0,$1DD8
	dc.w $1E00,$1E28,$1E50,$1E78,$1EA0,$1EC8,$1EF0,$1F18,$1F40,$1F68,$1F90,$1FB8
	dc.w $1FE0,$2008,$2030,$2058,$2080,$20A8,$20D0,$20F8,$2120,$2148,$2170,$2198
	dc.w $21C0,$21E8,$2210,$2238,$2260,$2288,$22B0,$22D8,$2300,$2328,$2350,$2378
	dc.w $23A0,$23C8,$23F0,$2418,$2440,$2468,$2490,$24B8,$24E0,$2508,$2530,$2558
	dc.w $2580,$25A8,$25D0,$25F8,$2620,$2648,$2670,$2698,$26C0,$26E8,$2710,$2738
	dc.w $2760,$2788,$27B0,$27D8,$2800,$2828
	
; -----------------------------------------------

points2D	
	ds.w	140*2		  ; spazio per 100 punti 2d

; DATI OGGETTO:

lines
	DC.W 40*4,39*4
	DC.W 42*4,41*4
	DC.W 44*4,43*4
	DC.W 45*4,44*4
	DC.W 46*4,51*4
	DC.W 47*4,46*4
	DC.W 48*4,47*4
	DC.W 50*4,49*4
	DC.W 51*4,50*4
	DC.W 53*4,52*4
	DC.W 55*4,54*4
	DC.W 56*4,55*4
	DC.W 57*4,56*4
	DC.W 58*4,57*4
	DC.W 59*4,58*4
	DC.W 60*4,59*4
	DC.W 67*4,65*4
	DC.W 61*4,63*4
	DC.W 61*4,65*4
	DC.W 63*4,67*4
	DC.W 64*4,63*4
	DC.W 61*4,62*4
	DC.W 61*4,63*4
	DC.W 62*4,64*4
	DC.W 66*4,62*4
	DC.W 61*4,65*4
	DC.W 61*4,62*4
	DC.W 65*4,66*4
	DC.W 68*4,67*4
	DC.W 63*4,64*4
	DC.W 63*4,67*4
	DC.W 64*4,68*4
	DC.W 68*4,64*4
	DC.W 62*4,66*4
	DC.W 62*4,64*4
	DC.W 66*4,68*4
	DC.W 68*4,66*4
	DC.W 65*4,67*4
	DC.W 65*4,66*4
	DC.W 67*4,68*4
	DC.W 38*4,37*4
	DC.W 37*4,36*4
	DC.W 36*4,35*4
	DC.W 35*4,34*4
	DC.W 33*4,32*4
	DC.W 32*4,31*4
	DC.W 31*4,30*4
	DC.W 29*4,28*4
	DC.W 27*4,26*4
	DC.W 26*4,25*4
	DC.W 24*4,23*4
	DC.W 23*4,22*4
	DC.W 22*4,27*4
	DC.W 20*4,21*4
	DC.W 20*4,19*4
	DC.W 19*4,18*4
	DC.W 17*4,16*4
	DC.W 15*4,14*4
	DC.W 14*4,13*4
	DC.W 13*4,12*4
	DC.W 11*4,10*4
	DC.W 9*4,8*4
	DC.W 8*4,7*4
	DC.W 7*4,6*4
	DC.W 5*4,4*4
	DC.W 4*4,3*4
	DC.W 2*4,1*4
	DC.W 0*4,5*4
	DC.L -1		  ; -1 fine array

points3d
	DC.W 485*-2,220*-2,20*2
	DC.W 425*-2,160*-2,20*2
	DC.W 365*-2,160*-2,20*2
	DC.W 485*-2,100*-2,20*2
	DC.W 365*-2,100*-2,20*2
	DC.W 365*-2,220*-2,20*2
	DC.W 345*-2,100*-2,20*2
	DC.W 345*-2,220*-2,20*2
	DC.W 225*-2,100*-2,20*2
	DC.W 225*-2,220*-2,20*2
	DC.W 205*-2,100*-2,20*2
	DC.W 205*-2,220*-2,20*2
	DC.W 185*-2,220*-2,20*2
	DC.W 65*-2,220*-2,20*2
	DC.W 185*-2,100*-2,20*2
	DC.W 65*-2,100*-2,20*2
	DC.W 45*-2,160*-2,20*2
	DC.W -75*-2,160*-2,20*2
	DC.W 45*-2,220*-2,20*2
	DC.W 45*-2,100*-2,20*2
	DC.W -75*-2,100*-2,20*2
	DC.W -75*-2,220*-2,20*2
	DC.W -95*-2,220*-2,20*2
	DC.W -95*-2,160*-2,20*2
	DC.W -155*-2,160*-2,20*2
	DC.W -95*-2,100*-2,20*2
	DC.W -215*-2,100*-2,20*2
	DC.W -215*-2,220*-2,20*2
	DC.W -235*-2,160*-2,20*2
	DC.W -355*-2,160*-2,20*2
	DC.W -235*-2,220*-2,20*2
	DC.W -235*-2,100*-2,20*2
	DC.W -355*-2,100*-2,20*2
	DC.W -355*-2,220*-2,20*2
	DC.W -375*-2,220*-2,20*2
	DC.W -375*-2,100*-2,20*2
	DC.W -435*-2,140*-2,20*2
	DC.W -495*-2,100*-2,20*2
	DC.W -495*-2,220*-2,20*2
	DC.W -345*-2,-75*-2,-35*2
	DC.W -455*-2,-75*-2,-35*2
	DC.W 440*-2,-75*-2,-35*2
	DC.W 330*-2,-75*-2,-35*2
	DC.W 495*-2,40*-2,-35*2
	DC.W 385*-2,-185*-2,-35*2
	DC.W 270*-2,40*-2,-35*2
	DC.W 215*-2,40*-2,-35*2
	DC.W 215*-2,-75*-2,-35*2
	DC.W 160*-2,-75*-2,-35*2
	DC.W 215*-2,-185*-2,-35*2
	DC.W 50*-2,-185*-2,-35*2
	DC.W 50*-2,40*-2,-35*2
	DC.W -10*-2,-185*-2,-35*2
	DC.W -10*-2,40*-2,-35*2
	DC.W -65*-2,40*-2,-35*2
	DC.W -65*-2,-185*-2,-35*2
	DC.W -175*-2,-75*-2,-35*2
	DC.W -290*-2,-185*-2,-35*2
	DC.W -290*-2,40*-2,-35*2
	DC.W -400*-2,-185*-2,-35*2
	DC.W -510*-2,40*-2,-35*2
	DC.W 560*-2,280*-2,280*2
	DC.W -560*-2,280*-2,280*2
	DC.W 560*-2,280*-2,-280*2
	DC.W -560*-2,280*-2,-280*2
	DC.W 560*-2,-280*-2,280*2
	DC.W -560*-2,-280*-2,280*2
	DC.W 560*-2,-280*-2,-280*2
	DC.W -560*-2,-280*-2,-280*2

numpoint = (*-points3d)/6

; -----------------------------------------------

tabella2
	dc.w $42,$82,$C2,$102,$142,$182,$1C2,$202,$242,$282,$2C2
	dc.w $302,$342,$382,$3C2,$402,$442,$482,$4C2,$502,$542,$582,$5C2
	dc.w $602,$642,$682,$6C2,$702,$742,$782,$7C2,$802,$842,$882,$8C2
	dc.w $902,$942,$982,$9C2,$A02,$A42,$A82,$AC2,$B02,$B42,$B82,$BC2
	dc.w $C02,$C42,$C82,$CC2,$D02,$D42,$D82,$DC2,$E02,$E42,$E82,$EC2
	dc.w $F02,$F42,$F82,$FC2,$1002,$1042,$1082,$10C2,$1102,$1142,$1182,$11C2
	dc.w $1202,$1242,$1282,$12C2,$1302,$1342,$1382,$13C2,$1402,$1442,$1482,$14C2
	dc.w $1502,$1542,$1582,$15C2,$1602,$1642,$1682,$16C2,$1702,$1742,$1782,$17C2
	dc.w $1802,$1842,$1882,$18C2,$1902,$1942,$1982,$19C2,$1A02,$1A42,$1A82,$1AC2
	dc.w $1B02,$1B42,$1B82,$1BC2,$1C02,$1C42,$1C82,$1CC2,$1D02,$1D42,$1D82,$1DC2
	dc.w $1E02,$1E42,$1E82,$1EC2,$1F02,$1F42,$1F82,$1FC2,$2002,$2042,$2082,$20C2
	dc.w $2102,$2142,$2182,$21C2,$2202,$2242,$2282,$22C2,$2302,$2342,$2382,$23C2
	dc.w $2402,$2442,$2482,$24C2,$2502,$2542,$2582,$25C2,$2602,$2642,$2682,$26C2
	dc.w $2702,$2742,$2782,$27C2,$2802,$2842,$2882,$28C2,$2902,$2942,$2982,$29C2
	dc.w $2A02,$2A42,$2A82,$2AC2,$2B02,$2B42,$2B82,$2BC2,$2C02,$2C42,$2C82,$2CC2
	dc.w $2D02,$2D42,$2D82,$2DC2,$2E02,$2E42,$2E82,$2EC2,$2F02,$2F42,$2F82,$2FC2
	dc.w $3002,$3042,$3082,$30C2,$3102,$3142,$3182,$31C2,$3202,$3242,$3282,$32C2
	dc.w $3302,$3342,$3382,$33C2,$3402,$3442,$3482,$34C2,$3502,$3542,$3582,$35C2
	dc.w $3602,$3642,$3682,$36C2,$3702,$3742,$3782,$37C2,$3802,$3842,$3882,$38C2
	dc.w $3902,$3942,$3982,$39C2,$3A02,$3A42,$3A82,$3AC2,$3B02,$3B42,$3B82,$3BC2
	dc.w $3C02,$3C42,$3C82,$3CC2,$3D02,$3D42,$3D82,$3DC2,$3E02,$3E42,$3E82,$3EC2
	dc.w $3F02,$3F42,$3F82,$3FC2,$4002,$4042,$4082,$40C2,$4102,$4142,$4182,$41C2
	dc.w $4202,$4242,$4282,$42C2,$4302,$4342,$4382,$43C2,$4402,$4442,$4482,$44C2
	dc.w $4502,$4542,$4582,$45C2,$4602,$4642,$4682,$46C2,$4702,$4742,$4782,$47C2
	dc.w $4802,$4842,$4882,$48C2,$4902,$4942,$4982,$49C2,$4A02,$4A42,$4A82,$4AC2
	dc.w $4B02,$4B42,$4B82,$4BC2,$4C02,$4C42,$4C82,$4CC2,$4D02,$4D42,$4D82,$4DC2
	dc.w $4E02,$4E42,$4E82,$4EC2,$4F02,$4F42,$4F82,$4FC2,$5002,$5042,$5082,$50C2
	dc.w $5102,$5142,$5182,$51C2,$5202,$5242,$5282,$52C2,$5302,$5342,$5382,$53C2
	dc.w $5402,$5442,$5482,$54C2,$5502,$5542,$5582,$55C2,$5602,$5642,$5682,$56C2
	dc.w $5702,$5742,$5782,$57C2,$5802,$5842,$5882,$58C2,$5902,$5942,$5982,$59C2
	dc.w $5A02,$5A42,$5A82,$5AC2,$5B02,$5B42,$5B82,$5BC2,$5C02,$5C42,$5C82,$5CC2
	dc.w $5D02,$5D42,$5D82,$5DC2,$5E02,$5E42,$5E82,$5EC2,$5F02,$5F42,$5F82,$5FC2
	dc.w $6002,$6042,$6082,$60C2,$6102,$6142,$6182,$61C2,$6202,$6242,$6282,$62C2
	dc.w $6302,$6342,$6382,$63C2,$6402,$6442,$6482,$64C2,$6502,$6542,$6582,$65C2
	dc.w $6602,$6642,$6682,$66C2,$6702,$6742,$6782,$67C2,$6802,$6842,$6882,$68C2
	dc.w $6902,$6942,$6982,$69C2,$6A02,$6A42,$6A82,$6AC2,$6B02,$6B42,$6B82,$6BC2
	dc.w $6C02,$6C42,$6C82,$6CC2,$6D02,$6D42,$6D82,$6DC2,$6E02,$6E42,$6E82,$6EC2
	dc.w $6F02,$6F42,$6F82,$6FC2,$7002,$7042,$7082,$70C2,$7102,$7142,$7182,$71C2
	dc.w $7202,$7242,$7282,$72C2,$7302,$7342,$7382,$73C2,$7402,$7442,$7482,$74C2
	dc.w $7502,$7542,$7582,$75C2,$7602,$7642,$7682,$76C2,$7702,$7742,$7782,$77C2
	dc.w $7802,$7842,$7882,$78C2,$7902,$7942,$7982,$79C2,$7A02,$7A42,$7A82,$7AC2
	dc.w $7B02,$7B42,$7B82,$7BC2,$7C02,$7C42,$7C82,$7CC2,$7D02,$7D42,$7D82,$7DC2
	dc.w $7E02,$7E42,$7E82,$7EC2,$7F02,$7F42,$7F82,$7FC2,$8002,$8042,$8082,$80C2
	dc.w $8102,$8142,$8182,$81C2,$8202,$8242,$8282,$82C2,$8302,$8342,$8382,$83C2
	dc.w $8402,$8442,$8482,$84C2,$8502,$8542,$8582,$85C2,$8602,$8642,$8682,$86C2
	dc.w $8702,$8742,$8782,$87C2,$8802,$8842,$8882,$88C2,$8902,$8942,$8982,$89C2
	dc.w $8A02,$8A42,$8A82,$8AC2,$8B02,$8B42,$8B82,$8BC2,$8C02,$8C42,$8C82,$8CC2
	dc.w $8D02,$8D42,$8D82,$8DC2,$8E02,$8E42,$8E82,$8EC2,$8F02,$8F42,$8F82,$8FC2
	dc.w $9002,$9042,$9082,$90C2,$9102,$9142,$9182,$91C2,$9202,$9242,$9282,$92C2
	dc.w $9302,$9342,$9382,$93C2,$9402,$9442,$9482,$94C2,$9502,$9542,$9582,$95C2
	dc.w $9602,$9642,$9682,$96C2,$9702,$9742,$9782,$97C2,$9802,$9842,$9882,$98C2
	dc.w $9902,$9942,$9982,$99C2,$9A02,$9A42,$9A82,$9AC2,$9B02,$9B42,$9B82,$9BC2
	dc.w $9C02,$9C42,$9C82,$9CC2,$9D02,$9D42,$9D82,$9DC2,$9E02,$9E42,$9E82,$9EC2
	dc.w $9F02,$9F42,$9F82,$9FC2,$A002,$A042,$A082,$A0C2,$A102,$A142,$A182,$A1C2
	dc.w $A202,$A242,$A282,$A2C2,$A302,$A342,$A382,$A3C2,$A402,$A442,$A482,$A4C2
	dc.w $A502,$A542,$A582,$A5C2,$A602,$A642,$A682,$A6C2,$A702,$A742,$A782,$A7C2
	dc.w $A802,$A842,$A882,$A8C2,$A902,$A942,$A982,$A9C2,$AA02,$AA42,$AA82,$AAC2
	dc.w $AB02,$AB42,$AB82,$ABC2,$AC02,$AC42,$AC82,$ACC2,$AD02,$AD42,$AD82,$ADC2
	dc.w $AE02,$AE42,$AE82,$AEC2,$AF02,$AF42,$AF82,$AFC2,$B002,$B042,$B082,$B0C2
	dc.w $B102,$B142,$B182,$B1C2,$B202,$B242,$B282,$B2C2,$B302,$B342,$B382,$B3C2
	dc.w $B402,$B442,$B482,$B4C2,$B502,$B542,$B582,$B5C2,$B602,$B642,$B682,$B6C2
	dc.w $B702,$B742,$B782,$B7C2,$B802,$B842,$B882,$B8C2,$B902,$B942,$B982,$B9C2
	dc.w $BA02,$BA42,$BA82,$BAC2,$BB02,$BB42,$BB82,$BBC2,$BC02,$BC42,$BC82,$BCC2
	dc.w $BD02,$BD42,$BD82,$BDC2,$BE02,$BE42,$BE82,$BEC2,$BF02,$BF42,$BF82,$BFC2
	dc.w $C002,$C042,$C082,$C0C2,$C102,$C142,$C182,$C1C2,$C202,$C242,$C282,$C2C2
	dc.w $C302,$C342,$C382,$C3C2,$C402,$C442,$C482,$C4C2,$C502,$C542,$C582,$C5C2
	dc.w $C602,$C642,$C682,$C6C2,$C702,$C742,$C782,$C7C2,$C802,$C842,$C882,$C8C2
	dc.w $C902,$C942,$C982,$C9C2,$CA02,$CA42,$CA82,$CAC2,$CB02,$CB42,$CB82,$CBC2
	dc.w $CC02,$CC42,$CC82,$CCC2,$CD02,$CD42,$CD82,$CDC2,$CE02,$CE42,$CE82,$CEC2
	dc.w $CF02,$CF42,$CF82,$CFC2,$D002,$D042,$D082,$D0C2,$D102,$D142,$D182,$D1C2
	dc.w $D202,$D242,$D282,$D2C2,$D302,$D342,$D382,$D3C2,$D402,$D442,$D482,$D4C2
	dc.w $D502,$D542,$D582,$D5C2,$D602,$D642,$D682,$D6C2,$D702,$D742,$D782,$D7C2
	dc.w $D802,$D842,$D882,$D8C2,$D902,$D942,$D982,$D9C2,$DA02,$DA42,$DA82,$DAC2
	dc.w $DB02,$DB42,$DB82,$DBC2,$DC02,$DC42,$DC82,$DCC2,$DD02,$DD42,$DD82,$DDC2
	dc.w $DE02,$DE42,$DE82,$DEC2,$DF02,$DF42,$DF82,$DFC2,$E002,$E042,$E082,$E0C2
	dc.w $E102,$E142,$E182,$E1C2,$E202,$E242,$E282,$E2C2,$E302,$E342,$E382,$E3C2
	dc.w $E402,$E442,$E482,$E4C2,$E502,$E542,$E582,$E5C2,$E602,$E642,$E682,$E6C2
	dc.w $E702,$E742,$E782,$E7C2,$E802,$E842,$E882,$E8C2,$E902,$E942,$E982,$E9C2
	dc.w $EA02,$EA42,$EA82,$EAC2,$EB02,$EB42,$EB82,$EBC2,$EC02,$EC42,$EC82,$ECC2
	dc.w $ED02,$ED42,$ED82,$EDC2,$EE02,$EE42,$EE82,$EEC2,$EF02,$EF42,$EF82,$EFC2
	dc.w $F002,$F042,$F082,$F0C2,$F102,$F142,$F182,$F1C2,$F202,$F242,$F282,$F2C2
	dc.w $F302,$F342,$F382,$F3C2,$F402,$F442,$F482,$F4C2,$F502,$F542,$F582,$F5C2
	dc.w $F602,$F642,$F682,$F6C2,$F702,$F742,$F782,$F7C2,$F802,$F842,$F882,$F8C2
	dc.w $F902,$F942,$F982,$F9C2,$FA02,$FA42,$FA82,$FAC2,$FB02,$FB42,$FB82,$FBC2
	dc.w $FC02,$FC42,$FC82,$FCC2,$FD02,$FD42,$FD82,$FDC2,$FE02,$FE42,$FE82,$FEC2
	dc.w $FF02,$FF42,$FF82,$FFC2


; TABELLA PER PROIEZIONE CENTRALE

	incbin	"CT_TAB"
CENTR_TAB

; -------------------------------------

	SECTION	COPPER,DATA_C

CWAIT	EQU	$FFFE
CEND	EQU	$FFFFFFFE

COPPERLIST
; PALETTE

	DC.W	$0100,$0200
	
	dc.w	$0180,$000	; COLOR 0	
	dc.w	$0182,$0d9	; COLOR 1	

	dc.w	$0108,$0000		;MODULO
	dc.w	$010a,$0000		;MODULO 
	dc.w	$0102,$0000		;SCROLL
	dc.w	$0104,$0000
	dc.w	$008e,$2c81,$0090,$2cc1	;DIWSTART,DIWSTOP
	dc.w	$0092,$0038,$0094,$00d0	;DDFSTART,DDFSTOP
	dc.w	$2501,CWAIT

bitplane1
	dc.w	$00e0,$0005,$00e2,$0000

	dc.w	$0100,$1200		; 1 bitplanes 320*256
	dc.w	$FFDF,CWAIT
	dc.w	$Fe01,CWAIT
	dc.w	$0100,$0200
	dc.l	CEND			; END COPPERLIST

; ---------------------------------

	SECTION	extmem,BSS_C	

	ds.l	100
extmem	ds.b	lbp*4			; area bitplanes

; --------------------------------

