* SOS *
org $7c000
load $7c000

;>extern "df0:s8chars.b",chars
;>extern "df0:pcult.b",logo
>extern "df0:mod.ghosts",$50000

m:
movem.l	a0-a6/d0-d7,-(a7)
clr.l	$dff0a8
clr.l	$dff0b8
clr.l	$dff0c8
clr.l	$dff0d8

lea	$7a000,a0
move	#$1000,d1
slette:
move.b	#$0,(a0)+
dbra	d1,slette

move.l	4,a6
move.l	156(a6),a1
move.l	38(a1),oldcop	;skrur av alle interrupts og setter inn
move	$dff01c,olden	;ny copperliste og lagrer den gamle
bset	#15,olden
move	#%0011111111110111,$dff09a
move	#%1000010111101111,$dff096

move.l	4,a6
jsr	-132(a6)

lea.l	lag1,a1
lea.l	xpos,a2
move.l	#$307f3d00,d3
move	#12,d1
clr.l	d4
init1:
lea.l	kule1,a0
move	#27,d2
copyk1:
move	(a0)+,(a1)+
dbra	d2,copyk1
move.l	d3,-56(a1)
add.l	#$10001000,d3
move.b	(a2)+,d4
rol.l	#8,d4
rol.l	#8,d4
and.l	#%11111111000000001111111111111111,d3
or.l	d4,d3
clr.l	d4
dbra	d1,init1

lea.l	lag2,a1
move.l	#$357f3e00,d3
move	#15,d1
clr.l	d4
init2:
lea.l	kule2,a0
move	#19,d2
copyk2:
move	(a0)+,(a1)+
dbra	d2,copyk2
move.l	d3,-40(a1)
add.l	#$0d000d00,d3
move.b	(a2)+,d4
rol.l	#8,d4
rol.l	#8,d4
and.l	#%11111111000000001111111111111111,d3
or.l	d4,d3
clr.l	d4
dbra	d1,init2

lea.l	lag3,a1
move.l	#$327f3700,d3
move	#15,d1
clr.l	d4
init3:
lea.l	kule3,a0
move	#11,d2
copyk3:
move	(a0)+,(a1)+
dbra	d2,copyk3
move.l	d3,-24(a1)
add.l	#$0d000d00,d3
move.b	(a2)+,d4
rol.l	#8,d4
rol.l	#8,d4
and.l	#%11111111000000001111111111111111,d3
or.l	d4,d3
clr.l	d4
dbra	d1,init3

lea.l	$71000,a1
lea.l	te-1,a2
move.l	#teend-te-1,d7
move	#38,$dff062
move	#38,$dff064
move	#38,$dff066
move.l	#0,$dff070
move	#0,$dff074
move	#%0000110111111100,d4
move	#0,$dff042
move.l	#-1,$dff044
lea.l	$dff000,a5
tloop:
clr.l	d2
lea.l	chars,a0
add	#1,a2
move.b	(a2),d2
sub	#32,d2
cmp	#20,d2
blt	ok
again:
sub	#20,d2
add	#[40*9],a0
cmp	#20,d2
bgt	again
ok:
mulu	#2,d2
add	d2,a0	;source address
move	#2,d6
nbpl:
move	#0,$42(a5)
move	d4,$40(a5)
move.l	a0,$50(a5)
move.l	a1,$4c(a5)
move.l	a1,$54(a5)
move	#[64*8]+1,$dff058
bnf:
btst	#2,$dff006
bne	bnf
add	#[40*28],a0
add	#$2800,a1
dbra	d6,nbpl
lea.l	$71000,a1
add	#1,merk
cmp	#2,merk
bne	van
move	#0,merk
move	#%0000110111111100,d4
add	#2,cp
bra	uvan
van:
move	#%1000110111111100,d4
uvan:
add	cp,a1
cmp	#40,cp
bne	no
add	#[40*9],poi
sub	#40,a1
move	#0,cp
no:
add	poi,a1
dbra	d7,tloop

move.l	#copper,$dff080
clr	$dff088

move.l	#0,$7f000
bset	#1,$bfe001
jsr	$50048

waitmouse:
	cmp.b	#255,$dff006
	bne	waitmouse
	;btst	#2,$dff016
	;beq	waitmouse
	;move #$0fff,$dff180	;rastertid
	jsr	action
	move.b	$dff006,tid
	;move #0,$dff180
	cmp	#0,$7f000
	bne	endit
	bra	waitmouse
	;btst	#6,$bfe001
	;bne	waitmouse
endit:	move	#$f,$dff096
	move	olden,$dff09a
	move.l	oldcop,$dff080
	move.l	4,a6
	jsr	-138(a6)
	movem.l	(a7)+,a0-a6/d0-d7
	rts

tid:dc.w 0
cp:dc.w 0
poi:dc.w 0
merk:dc.w 0

action:
	movem.l	a0-a6/d0-d7,-(a7)
	jsr	$500e8
	movem.l	(a7)+,a0-a6/d0-d7
	jsr	beastscroll
	jsr	taster
	lea.l	lag1,a0
	moveq	#12,d1
move1:	addq.b	#3,1(a0)
	add	#56,a0
	dbra	d1,move1

	lea.l	lag2,a0
	moveq	#15,d1
move2:	addq.b	#2,1(a0)
	add	#40,a0
	dbra	d1,move2

	lea.l	lag3,a0
	moveq	#15,d1
move3:	addq.b	#1,1(a0)
	add	#24,a0
	dbra	d1,move3
	rts

wrapscroll:
move	#0,ta
rts

beastscroll:
clr.l	d1
jsr	scrollarea
move.l	#0,a4
move.l	#0,a5
clr.l	d1
add	#1,scrollp
cmp	#4,scrollp	;scroll speed
beq	blittnewlett
bra	lettnf
blittnewlett:
move	#0,scrollp

lea.l	chars,a4
lea.l	text,a2
add	#1,ta
add	ta,a2
cmp	#txtend-text,ta
beq	wrapscroll
move.b	(a2),d1		;char
;cmp	#97,d1
;bge	thiswas

here:
sub	#32,d1
mulu	#2,d1
add	d1,a4
cmp	#40,d1
blt	okb
againb:
add.l	#[40*8],a4
sub	#40,d1
cmp	#40,d1
blt	okb
bra	againb
okb:
move	#38,$dff064
move	#40,$dff066
move	#0,$dff042
move.l	#0,$dff070
move.l	#0,$dff072
move.l	#-1,$dff044
move	#%0000100111111100,$dff040
move.l	#$7229e+40,a5
move	#2,d1
nypl:
move.l	a4,$dff050
move.l	a5,$dff054
move	#[64*9]+1,$dff058
bltnf:
btst	#6,$dff002
bne	bltnf
add.l	#[40*28],a4
add.l	#$2800,a5
dbra	d1,nypl
lettnf:
rts

scrollarea:
move	#0,$dff064
move	#0,$dff066
move	#0,$dff042
move.l	#0,$dff070
move.l	#0,$dff072
move.l	#-1,$dff044
move	#%1110100111111100,$dff040
move.l	#$7229e,a4
move.l	#$7229e-2,a5
move.l	#2,d1
nybpl:
move.l	a4,$dff050
move.l	a5,$dff054
move	#[64*9]+21,$dff058
bltnf2:
btst	#6,$dff002
bne	bltnf2
add.l	#$2800,a4
add.l	#$2800,a5
dbra	d1,nybpl
rts

text:	dc.b "                       YOU HAVE JUST BOOTED ANOTHER "
	DC.B "ACTION PACK INTO YOUR HOLY DRIVE!   ENJOY          "
	DC.B "ACTION PACK 25 !!!             "
	DC.B "   OKEI, SINCE I'M NOT IN THE MOOD OF WRITING SCROLLIES"
	DC.B " TODAY, I'LL JUST ASK IF SKELETOR HAS SOMETHING THAT "
	DC.B "MAKE SENSE TO SAY....  (IMPOSSIBLE!)               "
	DC.B "  WELL, AS I'VE JUST BEEN AT THE DENTIST I DON'T THINK"
	DC.B " WRITING SCROLLIES IS THE BEST THING TO DO, AND SINCE A"
	DC.B " BEAST IS SITTING NEXT TO ME, THE BEST THING TO DO IS "
	DC.B "PROBABLY TO RUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUNNNNNN!!!"
	DC.B " .......... ......        .............           BYE!!!"
        DC.B "  THERE HE DISAPPEARED BEYOND THE HORIZON, SO I'LL JUST"
	DC.B " SKIP YOU TO THE CREDITS BEFORE I RUN AFTER HIM (I LIKE "
	DC.B "MANSLAUGHTERING, YOU SEE!)  .............             "
	DC.B "        OK, THIS NEW MENU WAS AGAIN CODED BY "
	DC.B "YOUR NO.1 CODER,  ***  BEAST ***  AND THIS CHARSET "
	DC.B "BY SCOOPEX (I THINK...)       THE LOGO WAS PAINTED "
	DC.B "BY MY FRIEND,  *** THE PRIDE ***  OF FLASH PRODUCTION"
	DC.B " JUST FOR FRIENDSHIP... (GREAT ARTWORK MAN!)        "
	DC.B "           OK, SMASH SOME KEY TO SEE ANYTHING ELSE, "
	DC.B "BECAUSE I'M GOING TO WRAAAP THIS NOW......          "
	DC.B "                                         "
	DC.B "      THE SCROLLER WRAPPED.......             "
	DC.B "                                    "
txtend:
even

scrollp:dc.w 0
ta:	dc.w 0

taster:
btst	#0,$bfec01
bne	keypressed
rts
keypressed:
lea.l	fchars,a1
move.b	$bfec01,d3
ror.b	#1,d3
not.b	d3
cmp.b	#$50,d3
bne	nt1
move	#1,$7f000
nt1:
cmp.b	#$51,d3
bne	nt2
move	#2,$7f000
nt2:
cmp.b	#$52,d3
bne	nt3
move	#3,$7f000
nt3:
cmp.b	#$53,d3
bne	nt4
move	#4,$7f000
nt4:
cmp.b	#$54,d3
bne	nt5
move	#5,$7f000
nt5:
cmp.b	#$55,d3
bne	nt6
move	#6,$7f000
nt6:
cmp.b	#$56,d3
bne	nt7
move	#7,$7f000
nt7:
cmp.b	#$57,d3
bne	nt8
move	#8,$7f000
nt8:
cmp.b	#$58,d3
bne	nt9
move	#9,$7f000
nt9:
cmp.b	#$59,d3
bne	nt10
move	#10,$7f000
nt10:
rts

soppel:
dc.l	0

fchars:	dc.b "`1234567890-=\  "
	dc.b "QWERTYUIOP[]    "
	dc.b "ASDFGHJKL;'     "
	dc.b "<ZXCVBNM,./     "
	dc.b "                "
	dc.b "                "
	dc.b "                "
	dc.b "                "
	dc.b "                "
	dc.b "                "

te:	dc.b "         >  ACTION PACK 25  <           "
	dc.b "--------------------------------------- "
	dc.b " F1                          CAVE DEMO  "
	dc.b " F2                CINEFEX DESIGN DEMO  "
	dc.b " F3                        KYRIOS DEMO  "
	dc.b " F4                         AZURE DEMO  "
	dc.b " F5                         ALIVE DEMO  "
	dc.b " F6                      SCOOPEX INTRO  "
	dc.b " F7                         DOOM INTRO  "
	dc.b " F8                                     "
	dc.b " F9                                     "
	dc.b " F10    ***  BYTEPALACE COMMERCIAL ***  "
	dc.b "--------------------------------------- "
teend:

xpos:	dc.b $45,$22,$ae,$f0,$90,$10,$69,$ce,$dd,$ac,$30,$bb,$87
	dc.b $95,$12,$ce,$60,$d0,$50,$f9,$cc,$cd,$2c,$33,$b0,$b7
	dc.b $57,$18,$59,$c2,$91,$e3,$34,$65,$7b,$f1,$ed,$8c,$44
	dc.b $31,$99,$a0,$51,$93,$29,$11,$77,$10,$55
even

olden:
dc.w 0

oldcop:
dc.l 0

********************************************************************
COPPER:

	dc.w $0100,$1000,$0102,$0000
	dc.w $0108,$0000,$010a,$0000
	dc.w $0180,$0000,$0182,$0fff
	dc.w $008e,$2c70
	dc.w $0090,$2cc0
	dc.w $0092,$34
	dc.w $0094,$ce

	dc.w $01a0,$0000,$01a2,$01f1,$01a4,$00a0,$01a6,$0060
	dc.w $01a8,$0000,$01aa,$01f1,$01ac,$00a0,$01ae,$0060

	dc.w $0120,$0007,$0122,$b000
	dc.w $0124,$0007,$0126,$b300
	dc.w $0128,$0007,$012a,$b600
	dc.w $012c,$0007,$012e,$bc00
	dc.w $0130,$0007,$0132,$bc00
	dc.w $0134,$0007,$0136,$bc00
	dc.w $0138,$0007,$013a,$bc00
	dc.w $013c,$0007,$013e,$bc00
	dc.w $0104,%0000000000000000

	dc.w $00e0,$0007,$00e2,$a500

	dc.w $2a21,$fffe
	dc.w $0180,$033a
	dc.w $2b21,$fffe
	dc.w $0180,$0000

	dc.w $4501,$fffe
	dc.w $0100,$4000
	dc.w $00e0,$0007,$00e2,$8000
	dc.w $00e4,$0007,$00e6,$8000+[40*44]
	dc.w $00e8,$0007,$00ea,$8000+[40*88]
	dc.w $00ec,$0007,$00ee,$8000+[40*132]
	dc.w $0180,$0000,$0182,$0ddf,$0184,$0bbe,$0186,$0aad
	dc.w $0188,$088c,$018a,$077b,$018c,$066a,$018e,$0559
	dc.w $0190,$0448,$0192,$0338,$0194,$0227,$0196,$0116
	dc.w $0198,$0115,$019a,$0014,$019c,$0003,$019e,$0002

	dc.w $7001,$fffe
	dc.w $0100,$1000
	dc.w $00e0,$0007,$00e2,$a500

	dc.w $8001,$fffe
	dc.w $0100,$3000
	dc.w $0102,$44
	dc.w $00e0,$0007,$00e2,$1000
	dc.w $00e4,$0007,$00e6,$1000+[40*256]
	dc.w $00e8,$0007,$00ea,$1000+[40*512]
	dc.w $0180,$0000,$0182,$0fd3,$0184,$0f92,$0186,$0e72
	dc.w $0188,$0c50,$018a,$0a41,$018c,$0930,$018e,$0720
	dc.w $8801,$fffe
	dc.w $0180,$0000,$0182,$0fff,$0184,$0ccc,$0186,$0aaa
	dc.w $0188,$0888,$018a,$0777,$018c,$0666,$018e,$0555

	dc.w $9001,$fffe
	dc.w $0180,$0000,$0182,$055f,$0184,$055d,$0186,$044c
	dc.w $0188,$033b,$018a,$022a,$018c,$0119,$018e,$0008

	dc.w $ec01,$fffe
	dc.w $0180,$0000,$0182,$0fff,$0184,$0ccc,$0186,$0aaa
	dc.w $0188,$0888,$018a,$0777,$018c,$0666,$018e,$0555

	dc.w $f401,$fffe
	dc.w $0108,2,$010a,2
	dc.w $0102,$00
	dc.w $0180,$0000,$0182,$0fd3,$0184,$0f92,$0186,$0e72
	dc.w $0188,$0c50,$018a,$0a41,$018c,$0930,$018e,$0720

	dc.w $ffe1,$fffe
	dc.w $0501,$fffe
	dc.w $01a0,$0000,$01a2,$0000,$01a4,$0000,$01a6,$0000
	dc.w $01a8,$0000,$01aa,$0000,$01ac,$0000,$01ae,$0000

	dc.w $0621,$fffe
	dc.w $0180,$033a
	dc.w $0721,$fffe
	dc.w $0180,$0000

	dc.w $ffff,$fffe		 ; end of copper-shit
	dc.w $ffff,$fffe
	dc.w $ffff,$fffe
	dc.w $ffff,$fffe

*******************************************************************

kule1:
dc.w	$7f7f,$8c00
dc.w	$03e0,$03e0 ,$0dd8,$0e38 ,$1bec,$1c1c ,$1bec,$1c1c
dc.w	$3dde,$3e3e ,$3ffe,$3ffe ,$3ffe,$3ffe ,$1ffc,$3ffe
dc.w	$0ff8,$3ffe ,$37f6,$2ffa ,$0cc8,$13f4 ,$17f4,$180c
dc.w	$05d0,$0630

kule2:
dc.w	$7f7f,$8800
dc.w	$0380,$0380 ,$0d60,$0ee0 ,$0ba0,$0c60 ,$1d70,$1ef0
dc.w	$1ff0,$1ff0 ,$1ff0,$1ff0 ,$07c0,$0fe0 ,$0920,$0fe0
dc.w	$0740,$04c0

kule3:
dc.w	$7f7f,$8400
dc.w	$0380,$0380 ,$06c0,$0740 ,$0340,$07c0 ,$01c0,$07c0
dc.w	$0080,$0380
e:

org $50000
load $50000
;blk.b $ffff

org $70000
load $70000
chars:

org $71000
load $71000
blk.b $7000

org $78000
load $78000
logo:

org $7b000
load $7b000
lag1:blk.w $300,0

org $7b300
load $7b300
lag2:blk.w $300,0

org $7b600
load $7b600
lag3:blk.w $300,0
es:
