************************************************;
;						;	
; CLI Stars V1.0 				;
;						;
;			von Robert Babicz	;
;						;	
************************************************;
START:
 movem.l d0-d7/a0-a6,-(a7)
 move.l 4,a6
 move.l #2,d1
 move.l #$2000,d0
 jsr -$c6(a6)		;allocmem $2000 bytes
 move.l d0,SPEICHERADR	;startaddresse retten   
;
 move.l SPEICHERADR,a0	;prog. in den reservierten
 lea STARSPRG,a1	;speicher copieren
 move.w #$800,d0
COPYLOOP:
 move.l (a1)+,(a0)+
 subi.w #1,d0
 bne.s COPYLOOP
;
 move.l SPEICHERADR,a5	;prog. anspringen
 jmp (a5)
;
STARSPRG:
 lea SPRITEMEM(pc),a0	;sprites initialisieren
 move.b #$30,d0
SPRINIT1:
 move.b d0,(a0)+
 move.b d2,(a0)+
 addi.b #1,d0
 move.b d0,(a0)+
 clr.b (a0)+
 move.l #$10001000,(a0)+
 addi.b #1,d0
 add.l a0,d2
 sub.b d0,D2
 tst.b d0
 bne.s SPRINIT1
SPRINIT2:
 move.b d0,(a0)+
 move.b d2,(a0)+
 addi.b #1,d0
 move.b d0,(a0)+
 move.b #6,(a0)+
 move.l #$10001000,(a0)+
 addi.b #1,d0
 add.l a0,d2
 sub.b d0,d2
 cmpi.b #$30,d0
 bne.s SPRINIT2
;
 move.l $4,a6
 lea GFXNAME(pc),a1
 jsr -$198(a6)		;gfx.lib oeffnen
 lea GFXBASE(pc),a1
 move.l d0,(a1)		;gfxbase retten
 addi.l #38,d0		;zeiger auf system copperliste
 move.l d0,a0
 move.l (a0),a1
 adda.l #$12,a1
 lea SPRITEMEM(pc),a0
 move.l a0,d0
 move.w d0,4(a1)
 swap d0
 move.w d0,(a1)
 clr.b $bfde00		;stop timer a
			;set timer a 
 move.b #-$7e,$bfd400	;low register
 move.b #$37,$bfd500	;high register
 move.b #-$7f,$bfdd00	;irq controll reg. setzen	
 move.b #$11,$bfde00	;start timer a
; 
 lea OLDIRQ(pc),a0
 move.l $78,(a0)	;alten irq retten	
 lea NEWIRQ(pc),a0
 move.l a0,$78		;auf neuen irq zeigen
 movem.l (a7)+,d0-d7/a0-a6
 rts
;
NEWIRQ:
 movem.l a0-a7/d0-d7,-(a7)
 lea SPRITEMEM(pc),a0 
 move.b #$20,d0
LOLLYLOOP:
 add.b #1,$1(a0)
 add.b #2,$9(a0)
 add.b #3,$11(a0)
 add.b #4,$19(a0)
 add.l #$20,a0
 sub.b #1,d0
 bne LOLLYLOOP
 move.b $bfdd00,d0	
 movem.l (a7)+,a0-a7/d0-d7
 move.w #$2000,$dff09c  ;loesche irq request flags
 rte			;raus aus supervisormode 
 move.b #1,$bfdd00	;underflow von timer a 
 lea OLDIRQ(pc),a0
 move.l (a0),$78	;zurueck zum alten irq
 rts 
;
OLDIRQ:
 dc.l 0
GFXBASE:
 dc.l 0
GFXNAME:
 dc.b 'graphics.library',0,0
SPEICHERADR:
 dc.l 0
SPRITEMEM:
 blk.b 30,0
