;BALL NACH $50280
;GCC INC. 88
STARTUP:
MOVEM.L	 D0-D7/A0-A6,-(A7)	
LEA	 $60000,A0
MOVE.W	 #$3000,D1
CLEAR:	 MOVE.W #$0000,(A0)+
	 DBRA D1,CLEAR
LEA	$50000,A0
MOVE.W	#$280/2,D0
GCCCLX:
MOVE.W	#$00,(A0)+
DBF	D0,GCCCLX
MOVE.L	 $4,A6		
LEA	 GFXNAME,A1		 	
JSR	 -408(A6)		
MOVE.L	 D0,GFXBASE		
MOVE.L	 $4,A6		
MOVE.L	 GFXBASE,A0		
ADD.L	 #$32,A0			
MOVE.L	 (A0),OLDCOPPER		
MOVE.L	 #LISTE,(A0)
MOVE.W	 #$0020,$DFF096 
MOVE.L	 #$8010,$DFF09A
MOVE.L	 $4,A6
LEA	 GFXNAME,A1
JSR	 -408(A6)
MOVE.L	 D0,GFXBASE
MOVE.L	 $4,A6
JSR	 -132(A6)
MOVE.W	 #$0020,$DFF09A
MOVE.L	 $6C,OLDIRQ
MOVE.L   $68,OLDTASTIRQ
MOVE.L   #NEWTASTIRQ,$68
MOVE.L	 #IRQNEW,$6C
MOVE.W	 #$8020,$DFF09A
BRA	 MOUSE

IRQNEW:
MOVEM.L		D0-D7/A0-A6,-(SP)
BSR.L		BLITOBJECT
JSR		SCROLL
JSR		RASTER
MOVEM.L		(SP)+,D0-D7/A0-A6
DC.W		$4EF9
OLDIRQ:
DC.L	0

NEWTASTIRQ:
MOVEM.L		D0-D7/A0-A6,-(SP)
MOVEM.L		(SP)+,D0-D7/A0-A6
DC.W		$4EF9
OLDTASTIRQ:
DC.L	0
MOD: DC.L 0
MOUSE:
CMP.B	 #$7F,$BFEC01
BNE.S	 MOUSE
MOVE.L	 $4,A6
MOVE.L	 GFXBASE,A1
JSR	 -414(A6)
MOVE.L	 GFXBASE,A0	
ADD.L    #$32,A0		
MOVE.W	 #$0080,$DFF096	
MOVE.L	 OLDCOPPER,(A0)	
MOVE.W	 #$8080,$DFF096	
MOVE.L	 OLDIRQ,$6C
MOVE.L   OLDTASTIRQ,$68
MOVEM.L	 (A7)+,D0-D7/A0-A6
RTS
LISTE:
DC.W $0180,$0000
DC.W $2B01,$FFFE,$0102,
REG: DC.W $00FF
DC.W $008E,$2C80,$0090,$24C1,    
DC.W $0092,$0030,$0094,$00D8	 
DC.W $0100,$2200,$0186,$0F00
DC.W $00E0,$0006,$00E2,
P1:  DC.W $0000
DC.W $00E4,$0006,$00E6,
P2:  DC.W $0028
DC.W $0182,$0FFF,$0184,$0FFF
DC.W $0108,$0024,$010A,$0024
COPPI: BLK.W 20*4
DC.W $FFFF,$FFFE 
OLDCOPPER: DC.L 0
GFXNAME: DC.B "graphics.library",0
EVEN
GFXBASE: DC.L 0
POSX:   DC.L 0
ADDIT:  DC.L 0
CHANGEPOS:
	MOVE.L	ZEIGER,$DFF050
	MOVE.L	D1,$DFF054 
	MOVE.L	#$FFFFFFFF,$DFF044	 
	MOVE.L	#$09F00000,$DFF040
	MOVE.L	#$00200020,$DFF064
                     	   ;123456
	MOVE.W	#%0001111100000100,$DFF058
BLT4:	BTST	#$06,$DFF002
	BNE.S	BLT4
	RTS
	CMP.W	#$FFFF,MODE
	BEQ     DOWN
	ADD.L	#[16*80],ZEIGER
	ADD.B	#1,COUNT
	CMP.B	#10,COUNT
	BNE.S	EXIT199
	MOVE.W	#$FFFF,MODE
	MOVE.B	#0,COUNT
	RTS
DOWN:	
	SUB.L	#[16*80],ZEIGER
	MOVE.L  #$50000,D1
	CMP.L	ZEIGER,D1
	BNE.S	EXIT199
	MOVE.W	#$0000,MODE
EXIT199:RTS
ZEIGER:	DC.L	$50000
MODE:	DC.W	0
COUNT:	DC.B	0
EVEN
DELAY:	DC.W	0
POS:	DC.L	0
POSX2:	DC.L 	0
OVERPOS: DC.L $60004-[2*80]
BLITOBJECT:
	MOVE.L	OVERPOS,A0
	CLR.L	D0
	CLR.L	D1
	CLR.L	D2
	MOVE.L  A0,D1
	LEA	SINTAB,A1
	ADD.L	POS,A1
	MOVE.B	(A1),D0
	MOVE.B	#80,D2
	MULU	D0,D2
	MOVE.L  #[80*100],D4
	SUB.L	D2,D4
	ADD.L	D4,D1
NOCONT:	BSR.L	CONT2
	BSR.L	CHANGEPOS

	MOVE.L	OVERPOS,A0
	CLR.L	D0
	CLR.L	D1
	CLR.L	D2
	MOVE.L  A0,D1
	LEA	SINTAB,A1
	ADD.L	DPOS,A1
	MOVE.B	(A1),D0
	MOVE.B	#80,D2
	MULU	D0,D2
	MOVE.L  #[80*100],D4
	SUB.L	D2,D4
	ADD.L	D4,D1
	ADD.L	#8,D1
	BSR.L	CHANGEPOS
	BSR.L	CONT3

	MOVE.L	OVERPOS,A0
	CLR.L	D0
	CLR.L	D1
	CLR.L	D2
	MOVE.L  A0,D1
	LEA	SINTAB,A1
	ADD.L	DPO,A1
	MOVE.B	(A1),D0
	MOVE.B	#80,D2
	MULU	D0,D2
	MOVE.L  #[80*100],D4
	SUB.L	D2,D4
	ADD.L	D4,D1
	ADD.L	#16,D1
	BSR.L	CHANGEPOS
	BSR.L	CONT4
	MOVE.L	OVERPOS,A0
	CLR.L	D0
	CLR.L	D1
	CLR.L	D2
	MOVE.L  A0,D1
	LEA	SINTAB,A1
	ADD.L	POS4,A1
	MOVE.B	(A1),D0
	MOVE.B	#80,D2
	MULU	D0,D2
	MOVE.L  #[80*100],D4
	SUB.L	D2,D4
	ADD.L	D4,D1
	ADD.L	#24,D1
	BSR.L	CHANGEPOS
	BSR.L	CONT5
	RTS

CONT2:	CMP.W	#0,UPN
	BEQ.S	PP1
	CMP.W	#1,UPN
	BEQ.S	PP2
PP1:	ADD.L	#2,POS
	CMP.L	#60,POS
	BEQ	PP1C
	RTS
PP1C:	MOVE.W	#1,UPN
	RTS
PP2:	SUB.L	#2,POS
	CMP.L	#2,POS
	BEQ	PP2C
	RTS
PP2C:	MOVE.W  #0,UPN
	RTS
UPN:	DC.W 0

CONT3:	CMP.W	#0,DUPN
	BEQ.S	DPP1
	CMP.W	#1,DUPN
	BEQ.S	DPP2
DPP1:	ADD.L	#2,DPOS
	CMP.L	#60,DPOS
	BEQ	DPP1C
	RTS
DPP1C:	MOVE.W	#1,DUPN
	RTS
DPP2:	SUB.L	#2,DPOS
	CMP.L	#2,DPOS
	BEQ	DPP2C
	RTS
DPP2C:	MOVE.W  #0,DUPN
	RTS
DUPN:	DC.W 1
DPOS:   DC.L 20

CONT4:	CMP.W	#0,DUP
	BEQ.S	DPP
	CMP.W	#1,DUP
	BEQ.S	DPP22
DPP:	ADD.L	#2,DPO
	CMP.L	#60,DPO
	BEQ	DPP4
	RTS
DPP4:	MOVE.W	#1,DUP
	RTS
DPP22:	SUB.L	#2,DPO
	CMP.L	#2,DPO
	BEQ	DPP22C
	RTS
DPP22C:	MOVE.W  #0,DUP
	RTS
DUP:	DC.W 1
DPO:    DC.L 40

CONT5:	CMP.W	#0,DUP5
	BEQ.S	DPP5
	CMP.W	#1,DUP5
	BEQ.S	DPP225
DPP5:	ADD.L	#2,POS4
	CMP.L	#60,POS4
	BEQ	DPP45
	RTS
DPP45:	MOVE.W	#1,DUP5
	RTS
DPP225:	SUB.L	#2,POS4
	CMP.L	#2,POS4
	BEQ	DPP22C5
	RTS
DPP22C5:MOVE.W  #0,DUP5
	RTS
DUP5:	DC.W 1
POS4:    DC.L 60
COUNT22: DC.W 0
SCROLL:	SUB.W	#$0033,REG
	CMP.W	#$0000,REG
	BEQ.S	OVERS
	RTS
OVERS:  ADD.W	#1,COUNT22
	CMP.W	#20,COUNT22
	BNE	OVER22
	MOVE.W  #0,COUNT22
	MOVE.W	#0,P1
	MOVE.W	#$28,P2
OVER22:	ADD.W	#2,P1
	ADD.W	#2,P2
	MOVE.W  #$00FF,REG
	RTS
RASTER: LEA	COPPI,A0
	LEA	COLORS,A1
	MOVE.W  #14,D0
	MOVE.W  #$7C01,D1
GCC1:	MOVE.W  D1,(A0)+
	MOVE.W	#$FFFE,(A0)+
	MOVE.W  #$0180,(A0)+
	MOVE.W  (A1)+,(A0)+
	ADD.W   D3,D1
	ADD.W	#$0100,D3
	DBRA	D0,GCC1
	RTS

SINTAB: 
DC.B $68,$68,$68,$68,$68,$68,$67,$67,$66,$66
DC.B $65,$64,$64,$63,$62,$61,$60,$5F,$5E,$5D
DC.B $5B,$5A,$59,$57,$56,$54,$53,$51,$4F,$4E
DC.B $4C,$4A,$48,$46,$45,$43,$41,$3E,$3C,$3A
DC.B $38,$36,$34,$31,$2F,$2D,$2A,$28
DC.B $26,$23,$21,$1E,$1C,$19,$14,$12,$0F,$0C
DC.B $0A,$07,$05,$02,$00,
EVEN
COLORS: DC.W 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

