*******************************
*       1ST INTRO BY:         *
*           FEAR              *
*******************************
 SECTION TEXT
	
	JSR	SETSUPER
	JSR	SETSCREEN
	JSR	RESTOREPAL
	JSR	SETPIC
	
	MOVE.W	#0,BLOCKCOUNT
	MOVE.L	#0,BLOCKCOUNT2
	REPT	13
	JSR	SETBLOCK
	ADDQ.W	#8,BLOCKCOUNT
	ADD.L	#32*160,BLOCKCOUNT2
	ENDR

	JSR	STARTTRACK
	JSR	SETPAL
	MOVE.W	#$000,$FF8242
	MOVE.W	#$000,$FF8244
	MOVE.W	#$000,$FF8246
	MOVE.W	#$777,$FF8248
	MOVE.W	#$777,$FF824A
	MOVE.W	#$777,$FF824C
	MOVE.W	#$777,$FF824E
	MOVE.W	#0,BLOCKNR
	MOVE.W	#0,BLOCKROW
	MOVE.L	#BLXTAB+220,BLXPTR
	MOVE.L	#BLYTAB,BLYPTR
	MOVE.W	#1,CHARTYPE
	MOVE.L	#WRITERTEXT,WRITEPTR
	MOVE.L	#160*50,WRITEYPOS
	MOVE.W	#0,WRITECOUNT
	MOVE.W	#0,FLASHFLAG
	MOVE.L	#PAL,FLASHPTR
	MOVE.W	#6,FLASHCOUNT2
	MOVE.W	#350,COUNTER
DEMOLOOP:
	JSR	WAITVBL

	CMP.W	#1,FLASHFLAG
	BNE	NOFLASH
	JSR	FLASH
NOFLASH:

*	MOVE.W	#$700,$FF8240
	CMP.W	#5,WRITECOUNT
	BNE	NOWRITE
	JSR	WRITER
	MOVE.W	#0,WRITECOUNT
NOWRITE:
	ADD.W	#1,WRITECOUNT
	JSR	READBLOCKTAB
	JSR	PUTBLOCKS
*	MOVE.W	#$000,$FF8240

	CMP.W	#400,COUNTER
	BNE	NOCOUNTWRAP
	MOVE.W	#0,COUNTER
	MOVE.W	#1,FLASHFLAG
NOCOUNTWRAP:		
	ADDQ.W	#1,COUNTER

	JMP	DEMOLOOP
*******************************
SETSUPER:
	CLR.L	-(SP)
	MOVE.W	#$20,-(SP)
	TRAP	#1
	ADDQ.L	#6,SP
	MOVE.L	D0,SAVESUPER
	RTS
ENDSUPER:
	MOVE.L	SAVESUPER,-(SP)
	MOVE.W	#$20,-(SP)
	TRAP	#1
	ADDQ.L	#6,SP
	RTS
*******************************
SETSCREEN:
	MOVE.W	#0,-(SP)
	MOVE.L	#$78000,-(SP)
	MOVE.L	#$78000,-(SP)
	MOVE.W	#$5,-(SP)
	TRAP	#14
	ADD.L	#12,SP
	RTS
*******************************
INIT:
	MOVE.L	USP,A0
	MOVE.L	A0,SAVEUSP
	MOVE.B	$fffffA07.W,OLD07
	MOVE.B	$fffffA09.W,OLD09
	MOVE.B	$fffffA13.W,OLD13
	MOVE.B	$fffffA15.W,OLD15
	MOVE.B	$fffffA19.W,OLD19
	MOVE.B	$fffffA1F.W,OLD1f
	MOVE.L	$134,OLD134
	MOVE.L	$70.W,OLDVBL

	CLR.B	$fffffA09.W
	CLR.B	$fffffA15.W
	MOVE.W	MODULE+$90,D0
	LEA	MFP_FREQS,a0
	MOVE.B	(A0,D0.W),$fffffA1F.W
	MOVE.B	#2,$fffffA19.W
	MOVE.B	#32,$fffffA07.W
	MOVE.B	#32,$fffffA13.W
	BCLR	#3,$fffffA17.W
	MOVE.L	#REPLAY_ROT+$8918,$134
	MOVE.L	#NEWVBL,$70.W
	RTS
RETINIT:	
	MOVE.B	OLD07,$fffffA07.W
	MOVE.B	OLD09,$fffffA09.W
	MOVE.B	OLD13,$fffffA13.W
	MOVE.B	OLD15,$fffffA15.W
	MOVE.B	OLD19,$fffffA19.W
	MOVE.B	OLD1f,$fffffA1f.W
	MOVE.L	OLD134,$134
	MOVE.L	OLDVBL,$70.W

	MOVE.L	SAVEUSP,A0
	MOVE.L	A0,USP
	RTS
*******************************
STARTTRACK:
	LEA	MODULE,A0	
	MOVEQ	#-1,D0		
	JSR	REPLAY_ROT+$24	
	
	JSR	INIT	
	RTS
ENDTRACK:
	JSR	RETINIT
	RTS
*******************************
WAITVBL:
	CMP.W	#1,WFNC
	BNE.S	WAITVBL
	MOVE.W	#0,WFNC
	RTS
*******************************
SETPAL:
	MOVE.L	#PIC+2,A0
	MOVE.L	#$FF8240,A1
	REPT	8
	MOVE.L	(A0)+,(A1)+
	ENDR
	RTS
*******************************
RESTOREPAL:
	MOVE.L	#$FF8240,A0
	REPT	16
	MOVE.W	#$000,(A0)+
	ENDR
	RTS
*******************************
SETPIC:
	MOVE.L	#PIC+34,A0
	MOVE.L	#$78000,A1
	MOVE.W	#40*48,D0
SETPICLOOP:
	MOVE.L	(A0)+,(A1)+
	DBF.W	D0,SETPICLOOP	
	RTS
*******************************
*          MAINCODE           *
*******************************
FLASH:
	ADDQ.W	#1,FLASHCOUNT
	CMP.W	#5,FLASHCOUNT
	BEQ	FLASHIT
	RTS
FLASHIT:
	MOVE.W	#0,FLASHCOUNT
	MOVE.L	FLASHPTR,A0
	CMP.W	#-1,(A0)
	BEQ	WRAPFLASH
	ADDQ.W	#1,FLASHCOUNT2
	CMP.W	#6,FLASHCOUNT2
	BNE	NOCHANGEBLOCK
	ADD.L	#160*32,BLOCKADD
	CMP.L	#13*160*32,BLOCKADD
	BNE	NOCHANGEBLOCK
	MOVE.L	#0,BLOCKADD
NOCHANGEBLOCK:
	CMP.W	#13,FLASHCOUNT2
	BEQ	ENDFLASH
	JSR	SHIFTPAL
	MOVE.L	A0,FLASHPTR
	RTS				
ENDFLASH:
	MOVE.W	#0,FLASHCOUNT2
	MOVE.W	#0,FLASHFLAG
	RTS
WRAPFLASH:
	MOVE.L	#PAL,FLASHPTR
	RTS
SHIFTPAL:
	MOVE.L	#$FF8242,A1
	REPT	3
	MOVE.W	(A0)+,(A1)+
	ENDR
	RTS
*******************************
READBLOCKTAB:
	JSR	READXTAB
	JSR	READYTAB
	RTS
READXTAB:
	MOVE.L	BLXPTR,A0
	MOVE.W	(A0)+,D0
	CMP.W	#-1,D0
	BEQ	READXTABWRAP
	MOVE.L	A0,BLXPTR
	AND.W	#$000F,D0
	MULS	#8,D0
	MOVE.W	D0,BLOCKNR
	RTS
READXTABWRAP:	
	MOVE.L	#BLXTAB,BLXPTR
	JMP	READXTAB
READYTAB:
	MOVE.L	BLYPTR,A0
	MOVE.W	(A0)+,D0
	CMP.W	#-1,D0
	BEQ	READYTABWRAP
	MOVE.L	A0,BLYPTR
	AND.W	#$000F,D0
	MULS	#160,D0
	MOVE.W	D0,BLOCKROW
	RTS
READYTABWRAP:	
	MOVE.L	#BLYTAB,BLYPTR
	JMP	READYTAB
*******************************
PUTBLOCKS:
	LEA	BLOCKAREA,A0
	ADD.L	BLOCKADD,A0
	LEA	$78000+160*48,A1
	ADD.W	BLOCKNR,A0
	ADD.W	BLOCKROW,A0
	MOVEQ.W	#9,D0
PUTBLLOOP:	
        INCLUDE	A:\1STINTRO\PUTCODE.DAT
	ADD.W	#2560,A1
	DBF.W	D0,PUTBLLOOP
	RTS
*******************************
SETBLOCK:
	MOVE.L	#PIC+34+160*100,A0
	ADD.W	BLOCKCOUNT,A0
	MOVE.L	#SCROLLAREA,A1
	MOVE.W	#15,D0
SETBLOCKLOOP:
	REPT	20
	MOVE.L	(A0),(A1)+
	ADDQ.W	#4,A1
	ENDR
	ADD.W	#160,A0
	DBF.W	D0,SETBLOCKLOOP	

	MOVE.L	#BLOCKAREA,A3  
	ADD.L	BLOCKCOUNT2,A3
	MOVE.W	#16,D1
SCROLLBLOCKS:
	JSR	COPYBLOCKS
	MOVE.L	#SCROLLAREA,A0
	MOVE.W	#16,D0
SCROLLBLOCKLOOP1:
	REPT	20
	ROXR.W	(A0)
	ADDQ.W	#8,A0
	ENDR
	DBF.W	D0,SCROLLBLOCKLOOP1	

	MOVE.L	#SCROLLAREA,A0
	MOVE.W	#15,D0
SCROLLBLOCKLOOP2:
	REPT	21
	ROXR.W	2(A0)
	ADDQ.W	#8,A0
	ENDR
	DBF.W	D0,SCROLLBLOCKLOOP2	
	DBF.W	D1,SCROLLBLOCKS
DUPLICATE:
	MOVE.L	#BLOCKAREA,A0
	ADD.L	BLOCKCOUNT2,A0
	MOVE.L	#BLOCKAREA+16*160,A1
	ADD.L	BLOCKCOUNT2,A1
	MOVE.W	#15,D0
DUPLICATELOOP:
	REPT	20
	MOVE.L	(A0)+,(A1)+
	ADDQ.W	#4,A0
	ADDQ.W	#4,A1
	ENDR
	DBF.W	D0,DUPLICATELOOP	
	RTS
COPYBLOCKS:
	MOVE.L	#SCROLLAREA,A2
	MOVE.W	#15,D2
COPYBLOCKLOOP:
	MOVE.L	16(A2),(A3)
	ADD.W	#160,A2
	ADD.W	#160,A3
	DBF.W	D2,COPYBLOCKLOOP	
	SUB.W	#16*160,A3
	ADDQ.W	#8,A3
	RTS
*******************************
WRITER:
	MOVE.L	WRITEPTR,A1
	CLR.L	D1
	MOVE.B	(A1)+,D1
	CMP.W	#$FE,D1
	BEQ	NEWWRITEROW
	CMP.W	#$FF,D1
	BEQ	WRITEWRAP
	MOVE.L	A1,WRITEPTR
	
	SUB.W	#32,D1
	MULS	#2,D1
	MOVE.L	#FONTTAB,A1
	ADD.W	D1,A1
	MOVE.W	(A1),D1

	CMP.W	#1,CHARTYPE
	BNE	OTHERCHARTYPE

	MOVE.W	#2,CHARTYPE
	MOVE.L	#PIC+34+160*50,A0
	ADD.W	D1,A0
	MOVE.L	#$78000,A1
	ADD.W	WRITEXPOS,A1
	ADD.L	WRITEYPOS,A1
	REPT	7
	MOVE.B	(A0),4(A1)
	ADD.W	#160,A0
	ADD.W	#160,A1
	ENDR
	RTS
OTHERCHARTYPE:
	MOVE.W	#1,CHARTYPE
	MOVE.L	#PIC+34+160*50,A0
	ADD.W	D1,A0
	MOVE.L	#$78000,A1
	ADD.W	WRITEXPOS,A1
	ADD.L	WRITEYPOS,A1
	REPT	7
	MOVE.B	(A0),5(A1)
	ADD.W	#160,A0
	ADD.W	#160,A1
	ENDR

	ADDQ.W	#8,WRITEXPOS
	RTS		
NEWWRITEROW:
	MOVE.W	#0,WRITEXPOS
	ADD.L	#160*8,WRITEYPOS
	MOVE.L	A1,WRITEPTR
	JMP	WRITER
WRITEWRAP:
	RTS
*******************************
*            VBL              *
*******************************
NEWVBL:

	MOVEM.L	D0-D5/A0-A1,-(SP)	
	JSR	REPLAY_ROT+$28		
	MOVEM.L	(SP)+,D0-D5/A0-A1
	MOVE.W	#1,WFNC
	RTE
*******************************
  SECTION DATA  

MFP_FREQS:	DC.B	24	
		DC.B	29
SAVEUSP:	DC.L	0
OLD07:		DC.B	0
OLD09:		DC.B	0
OLD13:		DC.B	0
OLD15:		DC.B	0
OLD19:		DC.B	0
OLD1f:		DC.B	0
OLD134:		DC.L	0
OLDVBL:		DC.L	0
SAVESUPER:	DC.L	0
WFNC:		DC.W	0
CHARTYPE:	DC.W	0
FLASHFLAG:	DC.W	0
FLASHPTR:	DC.L	0
FLASHCOUNT:	DC.W	0
FLASHCOUNT2:	DC.W	0
COUNTER:	DC.W	0
WRITECOUNT:	DC.W	0
WRITEPTR:	DC.L	0
WRITEXPOS:	DC.W	0
WRITEYPOS:	DC.L	0
BLOCKADD:	DC.L	0
BLOCKNR:	DC.W	0
BLOCKROW:	DC.W	0
BLOCKCOUNT:	DC.W	0
BLOCKCOUNT2:	DC.L	0
BLXPTR:		DC.L	0
BLYPTR:		DC.L	0
BLXTAB:		INCLUDE A:\1STINTRO\SINTAB.DAT
		DC.W	-1
BLYTAB:		INCLUDE A:\1STINTRO\SINTAB.DAT
		DC.W	-1
PIC:		INCBIN	A:\1STINTRO\RES_LOGO.PI1
		EVEN
FONTTAB:	DC.W	0,8,16,24,32,40,48,56,64,72,80
		DC.W	88,96,104,112,120,128,136,144,152
		DC.W	2560,2568,2576,2584,2592,2600,2608
		DC.W	2616,2624,2632,2640,2648,2656,2664
		DC.W	2672,2680,2688,2696,2704,2712
		DC.W	5120,5128,5136,5144,5152,5160,5168
		DC.W	5176,5184,5192,5200,5208,5216,5224
		DC.W	5232,5240,5248,5256,5264,5272
		EVEN
WRITERTEXT:
		DC.B	$FE,'       CRYSTALIC PUKING PRESENTS',$FE
		DC.B	$FE,'               EVEN WORSE',$FE
		DC.B	$FE,'      THIS DEMO WAS RELEASED ON',$FE
		DC.B	$FE,'       THE 5TH OF SEPTEMBER 1992',$FE
		DC.B	$FE,'   COPY THIS DISK IN ANY COPYPROGRAM',$FE
		DC.B	$FE,'               2 SIDES',$FE
		DC.B	$FE,'              82 TRACKS',$FE
		DC.B	$FE,'             10 SECTORS',$FE
		DC.B	$FE,'        PRESS SPACE TO CONTINUE',$FF
		EVEN
*******************************
PAL:
		DC.W	$000,$000,$000 * BRUN 
		DC.W	$000,$000,$100
		DC.W	$000,$100,$210
		DC.W	$100,$210,$321
		DC.W	$210,$321,$432
		DC.W	$321,$432,$543  

		DC.W	$321,$432,$543  
		DC.W	$210,$321,$432
		DC.W	$100,$210,$321
		DC.W	$000,$100,$210
		DC.W	$000,$000,$100
		DC.W	$000,$000,$000

		DC.W	$000,$000,$000 * GRUN
		DC.W	$000,$000,$010
		DC.W	$000,$010,$020
		DC.W	$010,$020,$030
		DC.W	$020,$030,$040
		DC.W	$030,$040,$050 

		DC.W	$030,$040,$050 
		DC.W	$020,$030,$040
		DC.W	$010,$020,$030
		DC.W	$000,$010,$020
		DC.W	$000,$000,$010
		DC.W	$000,$000,$000

		DC.W	$000,$000,$000 * LILA 
		DC.W	$000,$000,$101
		DC.W	$000,$101,$202
		DC.W	$101,$202,$303
		DC.W	$202,$303,$404
		DC.W	$303,$404,$505  
 
		DC.W	$303,$404,$505  
		DC.W	$202,$303,$404
		DC.W	$101,$202,$303
		DC.W	$000,$101,$202
		DC.W	$000,$000,$101
		DC.W	$000,$000,$000

		DC.W	$000,$000,$000 * BLOP
		DC.W	$000,$000,$001
		DC.W	$000,$001,$002
		DC.W	$001,$002,$003
		DC.W	$002,$003,$004
		DC.W	$003,$004,$005 

		DC.W	$003,$004,$005
		DC.W	$002,$003,$004
		DC.W	$001,$002,$003
		DC.W	$000,$001,$002
		DC.W	$000,$000,$001
		DC.W	$000,$000,$000

		DC.W	$000,$000,$000 * AN GUL
		DC.W	$000,$000,$110
		DC.W	$000,$110,$220
		DC.W	$110,$220,$330
		DC.W	$220,$330,$440
		DC.W	$330,$440,$550  

		DC.W	$330,$440,$550 
		DC.W	$220,$330,$440
		DC.W	$110,$220,$330
		DC.W	$000,$110,$220
		DC.W	$000,$000,$110
		DC.W	$000,$000,$000

		DC.W	$000,$000,$000 * FLEPP 
		DC.W	$000,$000,$010
		DC.W	$000,$010,$120
		DC.W	$010,$120,$231
		DC.W	$120,$231,$342
		DC.W	$231,$342,$453  

		DC.W	$231,$342,$453  
		DC.W	$120,$231,$342
		DC.W	$010,$120,$231
		DC.W	$000,$010,$120
		DC.W	$000,$000,$010
		DC.W	$000,$000,$000

		DC.W	$000,$000,$000 * RED
		DC.W	$000,$000,$100
		DC.W	$000,$100,$200
		DC.W	$100,$200,$300
		DC.W	$200,$300,$400
		DC.W	$300,$400,$500 

		DC.W	$300,$400,$500 
		DC.W	$200,$300,$400
		DC.W	$100,$200,$300
		DC.W	$000,$100,$200
		DC.W	$000,$000,$100
		DC.W	$000,$000,$000

		DC.W	$000,$000,$000 * CYAN
		DC.W	$000,$000,$011
		DC.W	$000,$011,$022
		DC.W	$011,$022,$033
		DC.W	$022,$033,$044
		DC.W	$033,$044,$055  

		DC.W	$033,$044,$055 
		DC.W	$022,$033,$044
		DC.W	$011,$022,$033
		DC.W	$000,$011,$022
		DC.W	$000,$000,$011
		DC.W	$000,$000,$000

		DC.W	-1
*******************************
		EVEN
REPLAY_ROT:	INCBIN	A:\1STINTRO\TRACKER.ROT
		EVEN
MODULE:		INCBIN 	A:\1STINTRO\FREAKY.MOD
		EVEN
  SECTION BSS  

SCROLLAREA:	DS.B	160*17
		EVEN
BLOCKAREA:	DS.B	13*160*32
		EVEN
  END                     