‡ 
                       STUNNING DEMO SOURCE PART IV
                    ---===========================---

by
Negativ and Zinkfloid
of TRSI

Demo Name: H A R D W I R E D  II
cont.

	move.w	#32,d3


	lea	fadetab(pc),a2
fader2
	move.l	bplcounter,a1
	move.l	a1,bplshower
	move.w	#$ffff,intwait
waitinfor4
	tst.w	intwait
	bne.s	waitint2
	add.l	#$c800,a1
	cmp.l	#bpl0+$c800*2,a1
	bne.s	noplanee2
	move.l	#bpl0,a1
noplanee2
	move.l	a1,bplcounter
	move.w	(a2,d3.w),d0
	move.w	#$a9,d1
	lea	enco,a0
	move.l	#$c8,d2
copymine2
	move.w	d0,$72(a6)
	move.l	#$09300000,$40(a6)
	move.l	#$ffffffff,$44(a6)
	clr.l	$64(a6)
	move.l	a0,$50(a6)
	move.l	a1,$54(a6)
	move.w	#$1901,$58(a6)
	add.l	d2,a0
	add.l	d2,a1
	ror	#6,d0
	dbf	d1,copyline2
	move.w	#$2000,d
	
copper-blitter nmi 7
--------------------


loop0f23: 

	bsr sin*3+def fnab(c^3+2*x^2+3*y)
	bpl loop0f23-(prgcnt*sin(x))
	define macro sprite500 ß1,ß*2,ß3#24,%11000111101234,$edcf hex 89 oct 66
	
	.if c<sin(x^23 xor dd04 xor cia1nmi) then
				.begin
				lda $zp,y,x,z
				eor (-sp-a7,a6,a3,a1)
				bpl loop0f23+(offset usr def fnab(sin(int(23)))
				.end 
				
	.else 			
		.begin
		mov ah,verylongword %011011101010101010101111000000000101010110
		int 21h
		or ah,(in al,61)
000000		mov ah,23
		mov al,00
		mov cl,23
		mov ch,%1011
		mov dl,%0011101h
		mov dh,"testloop"
		
		int 03   ; undokumentierter interrrupt 
	                   (undocumented interrupt)
		
morph_whole_screen: ;(320x256 with 8 planes)
; a0 ... Quellgfx
; a1 ... fiktive Destinationsgfx
         (fictive destinations gfx)
		move.l	#exep,$10.w

.286
.68881
		pusha
		mov	ax,64h
		xor	bx,bx
		
.c64.ad!fido.net!yudssawe.!!		;"incbin" ueber FidoNet

cache:		mov	cx,#max

		ldx	#$ff
		iny	
		sta	($30,x)
		loop	cache&(main/$10000)
		jsr	far:cache+2
		
		
		popa(er)
		
	jsr	$fcde000	; liefert rom version in a0
	move.l	a0,d0             (delivers rom version in a0)
	muls.l	#10,d0
	lea	rft(pc),a0
	jsr	0(a0,d0.l)	; geht fuer alle kicks
	                          (runs on all kicks)

		tst.w	d0		;ende wenn 0
		beq.s	r
		call	morph_whole_screen
r:		rts
		
		
exep:		push	a0
		subq.l	#2,2(a7)
		move.l	2(a7),a0
		addq	#2,2(a0)
		pop	a0
		rte
		
		
rft:	incbin	"romreferencetable"
		
		
init_gfx_mode_1200er:
	move.l	#$7fff7ffff,d0
	lea	$dff900,a0
	move.l	d0,(a0)+
	move.l	d0,(a0)+
	move.l	d0,(a0)+
igm_wait:
	subq.l	#2,d0
	bne.s	igm_wait	; screen braucht zeit zum initalisieren
	                          (screen needs time to initialise)
.68040	move.l	$865,-1(a0)
	rts
	
…