	include macros.s
	clr.l -(sp)
	move.w #32,-(sp)
	trap #1
	move.l d0,ssp
	bsr tiny
	move.l $70,xx70
	move.l #int70,$70
	move.w #0,-(sp)
	pea fnmae2
	move.w #$3d,-(sp)
	trap #1
	move.w d0,d5
	move.l #$a570,-(sp)
	move.l #$19cf4,-(sp)
	move.w d5,-(sp)
	move.w #$3f,-(sp)
	trap #1
	move.w #$4eb9,$bab8
	move.l #read0,$baba
	move.l #$28601,-(sp)
	move.l #$1fdf,-(sp)
	move.w d5,-(sp)
	move.w #$3f,-(sp)
	trap #1
	move.l #$47000,-(sp)
	move.l #$28e10,-(sp)
	move.w d5,-(sp)
	move.w #$3f,-(sp)
	trap #1
	move.l #$7fa00,-(sp)
	move.l #$600,-(sp)
	move.w d5,-(sp)
	move.w #$3f,-(sp)
	trap #1
	move.w d5,-(sp)
	move.w #$3e,-(sp)
	trap #1
	move.l xx70,$70
	move.w #$777,$ff8240
	move.l #$22b2c,a7
	jmp $a640
int70	move.w $ff8242,$a304
	move.w $ff8244,$ff8242
	move.w $ff8246,$ff8244
	move.w $ff8248,$ff8246
	move.w $ff824a,$ff8248
	move.w $ff824c,$ff824a
	move.w $ff824e,$ff824c
	move.w $ff8250,$ff824e
	move.w $ff8252,$ff8250
	move.w $ff8254,$ff8252
	move.w $ff8256,$ff8254
	move.w $ff8258,$ff8256
	move.w $ff825a,$ff8258
	move.w $ff825c,$ff825a
	move.w $ff825e,$ff825c
	move.w $a304,$ff825e
	rte
xx70	dc.l $0 
ssp	dc.l $0
fnmae2	dc.b "g.dat",$0
fffl	dc.b "j",$0
read0	move.w d1,d2
	sub.w #$23c,d2
	clr.w -(sp)
	pea fffl
	move.w #$3d,-(sp)
	trap #1
	move.w d0,d3
	add.l #8,sp	
ld7	move.l #$231e0,-(sp)
	move.l #$200,-(sp)
	move.w d3,-(sp)
	move.w #$3f,-(sp)
	trap #1
	dc.b $5c,$8f,$5c,$8f
	subq.w #1,d2
	cmpi.w #$ffff,d2
	bne.s ld7
	move.w d3,-(sp)
	move.w #$3e,-(sp)
	trap #1
	addq.l #4,sp
ret2	rts
minus	jsr $a5bc
	move.w d0,$a5c0
	move.w #$23b,sec
	bra.s read0
sec	dc.w $23b
tiny	HIDEMOUSE
	PHYSBASE
	move.l	d0,screen
	OPEN	#0,fname,handle
	READ	rez,#1,handle
	READ	pal,#$20,handle
	READ	count1,#2,handle
	READ	count2,#2,handle
	lea	bss(PC),a6
	move.w	count1,d0
	READ	buff1(a6),d0,handle		
	clr.l	d0
	move.w	count2,d0
	asl.l	#1,d0
	READ	buff2(a6),d0,handle
	CLOSE	handle
	SETPALETTE pal
	clr.l	d0
	clr.l	d2
	clr.l	d3
	lea	buff1(a6),a2
	movea.l	(screen),a3
	lea	buff2(a6),a4
	bra.s	lab4
lab1:	bsr	uncomp1
	tst.w	d1
	bge.s	lab3
	neg.w	d1
	bra.s	lab2
loop1:	move.w	0(a4,d2.w),0(a3,d0.w)
	addq.w	#2,d2
	bsr	chkend
lab2:	dbf	d1,loop1
	bra.s	lab4
loop2:	move.w	0(a4,d2.w),0(a3,d0.w)
	bsr	chkend
lab3:	dbf	d1,loop2
	addq.w	#2,d2
lab4:	cmp.w	count1,d3
	blt.s	lab1
	rts
uncomp1:
	clr.l	d1
	tst.b	0(a2,d3.w)
	beq.s	lun1
	cmpi.b	#1,0(a2,d3.w)
	beq.s	lun1
	move.b	0(a2,d3.w),d1
	ext.w	d1
	addq.w	#1,d3
	bra.s	end_uncom1
lun1:	lea	0(a2,d3.w),a0
	move.b	(a0)+,d1
	move.b	(a0)+,store1
	move.b	(a0)+,store2
	addq.w	#3,d3
	cmp.b	#1,d1
	bne.s	skip1
	neg.w	store1
skip1:	move.w	store1,d1
end_uncom1:
	rts

chkend:
	add.l	#$a0,d0
	cmp.l	#$7d00,d0
	blt.s	end_chk
	sub.l	#$7cf8,d0
	cmp.l	#$a0,d0
	blt.s	end_chk
	sub.l	#$9e,d0
end_chk:
	rts



fname:	dc.b	"g1.dat",0
	EVEN
store1:	ds.b	1
store2:	ds.b	1
screen:	ds.l	1
handle:	ds.w	1
rez:	ds.w	1
pal:	ds.w	$20
count1:	ds.w	1
count2:	ds.w	1
stack:	ds.l	$50

bss:
buff1:	rs.b	$7d00
buff2:	rs.b	$8000

end: