org $27000
load $27000

; This showroutine and the picture was made by Sharp

o:	MOVE.W	#$4000,$00DFF09A
	MOVE.W	#$0020,$00DFF096
	CLR.L	$00DFF144
	MOVE.L	#copper,$00DFF080
	CLR.W	$00DFF088
wait:	CMP.B	#$FF,$00DFF006
	BNE.S	wait
	BSR	login
	BSR	setlog
	TST.W	tom
	BEQ.S	wait
	LEA	picture,A0
	MOVE.L	#$00003FFF,D0
clron:	CLR.L	(A0)+

	DBRA	D0,clron
	JMP     Exit

        DC.W	$0000
times:  DC.W    $0003
val:    DC.W    $0000
times2: DC.W    $00FF
times3: DC.W    $0003
times4:    DC.W    $0000

login:	CMP.W	#15,val
	BEQ.S	check
	TST.W	times
	BNE	check2
	MOVE.W	#2,times

	ADDQ.W	#1,val
	LEA	plane,A0
	LEA	tom+2,A1
	MOVEQ	#$1F,D0
ret:	MOVEQ	#0,D2
	MOVEQ	#0,D3
	MOVEQ	#0,D4
	MOVEQ	#0,D5
	MOVEQ	#0,D6
	MOVEQ	#0,D7
	MOVE.W	(A0)+,D5
	MOVE.W	(A1),D2
	MOVE.W	D5,D6
	MOVE.W	D5,D7
	MOVE.W	D2,D3
	MOVE.W	D2,D4
	AND.W	#$0F00,D2
	AND.W	#$00F0,D3
	AND.W	#15,D4
	AND.W	#$0F00,D5
	AND.W	#$00F0,D6
	AND.W	#15,D7
	CMP.W	D2,D5
	BEQ.S	rol1
	ADD.W	#$0100,D2
rol1:	CMP.W	D3,D6
	BEQ.S	rol2
	ADD.W	#$0010,D3
rol2:	CMP.W	D4,D7
	BEQ.S	rol3
	ADD.W	#1,D4
rol3:	ADD.W	D2,D4
	ADD.W	D3,D4
	MOVE.W	D4,(A1)+
	DBRA	D0,ret
	RTS	
 
check:	TST.W	times2
	BEQ.S	logout
	SUBQ.W	#1,times2
	RTS	
 
check2:	SUBQ.W	#1,times
	RTS	
 
logout:	CMP.W	#15,times4
	BEQ.S	check3
	TST.W	times3
	BNE.S	check4
	MOVE.W	#3,times3
	ADDQ.W	#1,times4
	LEA	tom+2,A0
	MOVEQ	#$1F,D0
ret2:	MOVEQ	#0,D5
	MOVEQ	#0,D6
	MOVEQ	#0,D7
	MOVE.W	(A0),D5
	MOVE.W	D5,D6
	MOVE.W	D5,D7
	AND.W	#$0F00,D5
	AND.W	#$00F0,D6
	AND.W	#15,D7
	TST.W	D5
	BEQ.S	rol4
	SUB.W	#$0100,D5
rol4:	TST.W	D6
	BEQ.S	rol5
	SUB.W	#$0010,D6
rol5:	TST.W	D7
	BEQ.S	rol6
	SUB.W	#1,D7
rol6:	ADD.W	D5,D7
	ADD.W	D6,D7
	MOVE.W	D7,(A0)+
	DBRA	D0,ret2
	RTS	
 
check4:	SUBQ.W	#1,times3
	RTS	
 
check3:	NOT.W	tom
	RTS	
	
tom:	DC.W	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	DC.W	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	DC.W	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	DC.W	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	DC.W	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000

setlog:	LEA	col,A0
	LEA	tom+2,A1
	MOVEQ	#$1F,D0
add:	MOVE.W	(A1)+,(A0)
	ADDQ.W	#4,A0
	DBRA	D0,add
	RTS	
	
copper:	DC.W	$008E,$3038,$0090,$30D0,$0092,$0038,$0094,$00D0
	DC.W	$0108,$0000,$010A,$0000,$0100,$6200,$0180
col:    DC.W    $0000
	DC.W	$0182,$0000,$0184,$0000,$0186,$0000,$0188,$0000
	DC.W	$018A,$0000,$018C,$0000,$018E,$0000,$0190,$0000
	DC.W	$0192,$0000,$0194,$0000,$0196,$0000,$0198,$0000
	DC.W	$019A,$0000,$019C,$0000,$019E,$0000,$01A0,$0000
	DC.W	$01A2,$0000,$01A4,$0000,$01A6,$0000,$01A8,$0000
	DC.W	$01AA,$0000,$01AC,$0000,$01AE,$0000,$01B0,$0000
	DC.W	$01B2,$0000,$01B4,$0000,$01B6,$0000,$01B8,$0000
	DC.W	$01BA,$0000,$01BC,$0000,$01BE,$0000,$00E0,$0006
	DC.W	$00E2,$8000,$00E4,$0006,$00E6,$A800,$00E8,$0006
	DC.W	$00EA,$D000,$00EC,$0006,$00EE,$F800,$00F0,$0007
	DC.W	$00F2,$2000,$00F4,$0007,$00F6,$4800,$FFFF,$FFFE

plane:	dc.w	$000,$FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999
	dc.w	$888,$777,$666,$555,$444,$333,$007,$A00
	dc.w	$EA6,$D95,$C84,$B73,$A62,$951,$840,$730
	dc.w	$FFF,$DEF,$CDF,$ACF,$9BF,$7AF,$69F,$48F

exit:
move.l #$7fff,$dff096
move.l 4,a6
clr.w  d0
lea    gfxname(pc),a1
jsr    -552(a6)
move.l d0,a0
move.l 38(a0),$dff080

move.w dmasaf,d0
move.w d0,$dff096
move.w #$c000,$dff09a
clr.w d0
rts

dmasaf:  dc.w 0
gfxname: dc.b 'graphics.library',0
even

picture = $68000

>extern "asmdisk2:logo/picture",picture

