org  $40000
load $40000

s:
movem.l a0-a6/d0-d7,-(sp)
bsr	Start				; Init screen stuff
bsr	MAIN				; Do main stuff
bsr	Reset				; Reset screen stuff
movem.l (sp)+,a0-a6/d0-d7
clr.l   d0
rts
***********************************************************

Start:
lea 	$5a000,a0
lea	$7f000,a1
RAMclear:
clr.l   (A0)+
cmpa.l  A1,A0
bne.s   RAMclear

	lea	cpwait,a0		; Temporary ptr
	move.w	#$2c01,d0
	move.w	d0,(a0)+        ; $ff01
	move.w	#$0001,(a0)+	; $2b01,$ff01 = jump to this row

	move.w	#210,d1
	move.l	a0,copptr
	coplp:
	move.w	#$0180,(a0)+
	move.w	#0,(a0)+
	add.w	#$0100,d0
	move.w	d0,(a0)+
	move.w	#$fffe,(a0)+
	dbf	d1,coplp

move.l	$4,a6
lea	GfxName(pc),a1
moveq	#0,d0
jsr	-408(a6)			; Open Gfx Library
move.l	d0,GfxBase

move.l	d0,a6
move.w  #$03e0,$dff096
move.l	$32(a6),OldCop
move.l	#Coplist,$32(a6)		; Set coplist pointer
move.w  #$83c0,$dff096
rts

Reset:
move.l	GfxBase,a6
;move.w  #$0100,$dff096 ; nur beim BOOT 
move.l	OldCop,$32(a6)
move.l  gfxbase,a1
move.l	$4,a6
jsr     -414(a6)
rts

CopList:
dc.w $00e0
hibmptr:
dc.w	$0007,$00e2
lowbmptr:
dc.w	$0000
dc.w $00e4,$0006,$00e6,$2000
dc.w $00e8,$0006,$00ea,$5000
dc.w $00ec,$0006,$00ee,$8000
dc.w $00f0,$0005,$00f2,$b870
dc.w $00f4,$0005,$00f6,$b898

dc.w $0180,$0000
dc.w $0182,$0fff
dc.w $0184,$0244
dc.w $0186,$0455
dc.w $0188,$08aa
dc.w $018a,$0ddd
dc.w $018c,$0000
dc.w $018e,$0000
dc.w $0190,$0000
dc.w $0192,$0000
dc.w $0194,$0000
dc.w $0196,$0000
dc.w $0198,$0000
dc.w $019a,$0000
dc.w $019c,$0000
dc.w $019e,$0000
dc.w $01a0,$0f30
dc.w $01a2,$002c
dc.w $01a4,$0000
dc.w $01a6,$0000
dc.w $01a8,$0000
dc.w $01aa,$0000
dc.w $01ac,$0000
dc.w $01ae,$0000
dc.w $01b0,$0000
dc.w $01b2,$0000
dc.w $01b4,$0000
dc.w $01b6,$0000
dc.w $01b8,$0000
dc.w $01ba,$0000
dc.w $01bc,$0000
dc.w $01be,$0000

dc.w $0100,$6200,$0102,$0001
dc.w $0108,$0000,$010a,$0000
dc.w $008e,$2981 
dc.w $0090,$29c1
dc.w $0092,$0038
dc.w $0094,$00d0
dc.w $2901,$fffe

cpwait: blk.w 846,0

dc.w $ffff,$fffe

GfxName:
dc	"graphics.library",0
even

GfxBase:dc.l	0

OldCop:dc.l	0

Main:
bsr	boot
bsr	Sternevorbereiten

clr.b   $bfec01

mainlop1:
nob:
cmpi.b	#240,$dff006
bne.s	nob

bsr	bars
bsr	starsmove

clr.l   D0
move.b  $bfec01,D0
not.b   D0
lsr.b   #1,D0
cmpi.b  #$4f,D0
bls.s   mainlop1
cmpi.b  #$55,D0
bhi.s   mainlop1
subi.w  #$0050,D0
move.l  D0,$0080

mainend:
bsr	mist1
rts

starsmove:
lea	starmovement1,A4
move.w  #$0075,D3
lea	starmovement2,A5
ROUTINE2:
move.w  (A4)+,D4
move.w  (A4)+,D5
move.w  (A4),D6
subi.w  #$0006,(A4)+
tst.w   D6
ble.l   CALC2
ext.l   D4
divs    D6,D4
addi.w  #$00a0,D4
ext.l   D5
divs    D6,D5
addi.w  #$0070,D5
tst.w   D4
blt.l   CALC2
tst.w   D5
blt.l   CALC2
cmpi.w  #$013f,D4
bgt.l   CALC2
cmpi.w  #$00ff,D5
bgt.l   CALC2
move.w  (A5),D0
move.w  D4,(A5)+
move.w  (A5),D1
move.w  D5,(A5)+
bsr.l   star_clear
move.w  D4,D0
move.w  D5,D1
mulu    #$0028,D1
move.w  D0,D2
asr.w   #3,D2
add.w   D2,D1
asl.w   #3,D2
sub.w   D0,D2
subq.b  #1,D2
cmpi.w  #$0150,D6
bgt.s   sprung1
cmpi.w  #$010c,D6
bgt.s   sprung2
bra.s   sprung3
sprung1:
move.l  #$00062000,A1
adda.l  D1,A1
bset    D2,(A1)
bra.s   R2_ende
sprung2:
move.l  #$00065000,A1
adda.l  D1,A1
bset    D2,(A1)
bra.s   R2_ende
sprung3:
move.l  #$00062000,A1
adda.l  D1,A1
bset    D2,(A1)
move.l  #$00065000,A1
adda.l  D1,A1
bset    D2,(A1)
R2_ende:
dbf     D3,ROUTINE2
rts

star_clear:
mulu    #$0028,D1
move.w  D0,D2
asr.w   #3,D2
add.w   D2,D1
asl.w   #3,D2
sub.w   D0,D2
subq.b  #1,D2
move.l  #$00062000,A1
adda.l  D1,A1
bclr    D2,(A1)
move.l  #$00065000,A1
adda.l  D1,A1
bclr    D2,(A1)
rts

STERNEvorbereiten:
move.w  #$0075,D3
lea     starmovement1,A0
schreiben:			; Sternwerte in
bsr.l   CALC1			; 
move.w  D0,(A0)+		;
bsr.l   CALC1			;
move.w  D0,(A0)+		; in starmovement1 speichern	
bsr.l   CALC1			;		
andi.w  #$01ff,D0		;	
move.w  D0,(A0)+		;
dbf     D3,schreiben
rts
CALC1:
move.w  $dff006,D0
lea     VHPOSR_speicher(PC),A3
muls    (A3),D0
addi.w  #$249,D0
ext.l   D0
lea     VHPOSR_speicher(PC),A3
move.w  D0,(A3)
rts

CALC2:
suba.l  #$00000006,A4
bsr.l   CALC1
move.w  D0,(A4)+
bsr.l   CALC1
move.w  D0,(A4)+
move.w  #$0258,(A4)+
bra.l   R2_ende

Starmovement1:
blk.b $800,0
Starmovement2:
blk.b $800,0

VHPOSR_speicher:
blk.b  2,0


BOOT:
lea     $07e000,A0
move.l  #$00000001,D0
move.l  #$00000280,D1
move.l  #$00000100,D2
jsr     -390(A6)
move.l  #$0005b000,$07e008
lea     $07e100,A1
jsr     -198(A6)
move.l  #$0007e000,$07e104
lea     $07e100,A1
move.w  #$0001,D0
jsr     -342(A6)
lea     TEXTANFANG,A5
DEPP2:
lea     $07e100,A1
clr.l   D4
move.l  #$0000004,D3     ;Zeilenanfang
move.b  (A5)+,D4
beq.s   RETURN
bsr.s   DEPP1
addi.l  #$00000140,D3
bsr.s   DEPP1
adda.l  #$000001f,A5
bra.l   DEPP2
RETURN:
rts

DEPP1:
lea     $07e100,A1
move.l  D3,D0
move.l  D4,D1
jsr     -240(A6)
lea     $07e100,A1
move.l  A5,A0
move.l  #$0000001f,D0
jsr     -60(A6)
rts

TEXTANFANG:
dc.b $30," --- >>> THE PANTIES <<< ---   "
dc.b $90,"     Compactings  No. 02       "
dc.b $50," [ F1 ]  --- PANZERFAUST ---   "
dc.b $58," [ F2 ]   -- FIRST INTRO --    "
dc.b $60," [ F3 ]    -- SCANNERS --      "
dc.b $68," [ F4 ]      - EXAACT -        "
dc.b $70," [ F5 ]       - BAND -         "
dc.b $78," [ F6 ]    ECLIPSE   INTRO     "
dc.b 0,0

MIST1:
clr.l   d0
move.l	$80.w,d0
mulu	#$0004,d0
rts

bars:
move.l	copptr,a0
move.w	#210,d0
clearlp:
clr.w	2(a0)
addq.w	#8,a0
dbf	d0,clearlp

lea	infront,a6
lea	intable,a5
lea	thycols,a4
lea	sine,a3
moveq	#0,d0				; First bar
blp:
move.l	copptr,a2
move.w	(a5)+,d7
tst.b	(a6)+
bne.s	nonow
addq.b	#3,-1(a5)
move.b	(a3,d7.w),d1			; Y Position
and.w	#$ff,d1
asl.w	#3,d1				;*8(each coplist entry=8bytes)
move.w	d0,d6
asl.w	#5,d6				; *16 each colorlist e = 16
moveq	#7,d5
mclp:
move.w	(a4,d6.w),2(a2,d1.w)
addq.l	#8,a2
addq.l	#2,d6
dbf	d5,mclp
nonow:
addq.l	#1,d0
cmpi.b	#8,d0
bne.s	blp
lea	infront,a6
lea	intable,a5
lea	thycols,a4
lea	sine,a3
moveq	#0,d0				; First bar
blp2:
move.l	copptr,a2
move.w	(a5)+,d7
tst.b	(a6)+
beq.s	nonow2
addq.b	#3,-1(a5)
move.b	(a3,d7.w),d1			; Y Position
and.w	#$ff,d1
asl.w	#3,d1				;*8(each coplist entry=8bytes)
move.w	d0,d6
asl.w	#5,d6				; *16 each colorlist e = 16
moveq	#7,d5
mclp2:
move.w	(a4,d6.w),2(a2,d1.w)
addq.l	#8,a2
addq.l	#2,d6
dbf	d5,mclp2
nonow2:
addq.l	#1,d0
cmpi.b	#8,d0
bne.s	blp2
rts

intable:dc.w 5,10,15,20,125,130,135,140
infront:dc.b 0,0,0,0,0,0,0,1 
thycols:
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004
dc.w  $0004,$0016,$022a,$033e,$033e,$022a,$0016,$0004

sine:
dc.b 95,97,99,101,104,106,108,111,113,115,118,120,122,124,127
dc.b 129,131,133,135,137,139,141,143,145,147,149,151,153,155,157
dc.b 158,160,162,163,165,166,168,169,171,172,173,175,176,177,178
dc.b 179,180,181,182,183,184,185,185,186,187,187,188,188,188,189
dc.b 189,189,189,189,190,189,189,189,189,189,188,188,188,187,187
dc.b 186,185,185,184,183,182,181,180,179,178,177,176,175,173,172
dc.b 171,169,168,166,165,163,162,160,158,157,155,153,151,149,147
dc.b 145,143,141,139,137,135,133,131,129,127,124,122,120,118,115
dc.b 113,111,108,106,104,101,99,97,94,92,90,88,85,83,81
dc.b 78,76,74,71,69,67,65,62,60,58,56,54,52,50,48
dc.b 46,44,42,40,38,36,34,32,31,29,27,26,24,23,21
dc.b 20,18,17,16,14,13,12,11,10,9,8,7,6,5,4
dc.b 4,3,2,2,1,1,1,0,0,0,0,0,0,0,0
dc.b 0,0,0,1,1,1,2,2,3,4,4,5,6,7,8
dc.b 9,10,11,12,13,14,16,17,18,20,21,23,24,26,27
dc.b 29,31,32,34,36,38,40,42,44,46,48,50,52,54,56
dc.b 58,60,62,65,67,69,71,74,76,78,81,83,85,88,90
dc.b 92

copptr:dc.l 0
