;:sys36864
	*=$8000
	;.opt oo
tmp	=2
return	=$aad7
bsout	=$ffd2
setpar	=$ffba
setnam	=$ffbd
clrscr	=$e544
gra	=$2000
open	=$ffc0
close	=$ffc3
clrchn	=$ffcc
chkout	=$ffc9
buffer	=$cf00
chkin	=$ffc6
param	=$e219
komma	=$aefd
get	=65508
name	=$bb
namlen	=$b7
space	=$ab3f
tname	=247
	lda #29
	sta 53272
	lda #59
	sta 53265
	jsr clear
	jsr fetch
	jsr hardcopy
	jsr n
	lda #21
	sta 53272
	lda #27
	sta 53265
	jmp clrscr
me1	brk
tnamlen	brk
use	brk
flg	.word 0
xk	.word 0
yk	brk
axk	.word 0
mulh	.byt 0,1,2,3,5,6,7,8,10,11,12,13,15,16
	.byt 17,18,20,21,22,23,25,26,27,28,30,31
mull	.byt 0,$40,$80,$c0
n	lda #0
	jsr setnam
	tay
	lda #4
	tax
	jsr setpar
	jsr open
	ldx #4
	jsr chkout
	ldy #6
tab	jsr space
	dey
	bne tab
	ldy #3
nn	lda (tname),y
	jsr bsout
	iny
	cpy tnamlen
	bcc nn
	jsr return
	jsr return
	jmp sev7
fetch	jsr komma
	jsr param
	jsr open
	ldx #2
	jsr chkin
	jsr get
	jsr get
	ldx #8
	lda #<gra+32
	ldy #>gra
	sta tmp
	sty tmp+1
lp1	ldy #0
lp2	jsr get
	sta (tmp),y
	iny
	bne lp2
	lda tmp
	clc
	adc #64
	sta tmp
	lda tmp+1
	adc #1
	sta tmp+1
nocy	dex
	bne lp1
	jsr clrchn
	lda namlen
	sta tnamlen
	lda name
	ldy name+1
	sta tname
	sty tname+1
	lda #2
	jmp close
clear	ldx #32
	ldy #0
	sty tmp
	stx tmp+1
	tya
clr	sta (tmp),y
	iny
	bne clr
	inc tmp+1
	dex
	bne clr
	lda #1
	ldx #4
	stx tmp+1
clin	sta (tmp),y
	iny
	bne clin
	inc tmp+1
	dex
	bne clin
	rts
hardcopy	=*
	lda #0
	jsr setnam
	tay
	lda #4
	tax
	jsr setpar
	jsr open
	ldx #4
	jsr chkout
	lda #10
	sta flg
	lda #0
	sta me1
sev1	lda #40
	sta flg+1
	lda #8
	jsr bsout
	lda #0
	sta xk
	sta xk+1
sev2	lda me1
	sta yk
	lda #0
	sta use
sev3	lda xk
	ldx xk+1
	ldy yk
	jsr hposn
	ldy #0
	lda (tmp),y
	ldx use
	sta buffer,x
	inc yk
	inx
	stx use
	cpx #7
	bne sev3
	lda #0
	ldy #7
sev4	ldx #7
sev5	asl buffer,x
	rol
	dex
	bpl sev5
	ora #$80
	jsr bsout
	dey
	bpl sev4
	lda xk
	clc
	adc #8
	sta xk
	bcc sev6
	inc xk+1
sev6	dec flg+1
	bne sev2
	jsr return
	lda me1
	clc
	adc #7
	sta me1
	dec flg
	beq sev7
sev8	jmp sev1
sev7	lda #15
	jsr bsout
	jsr clrchn
	lda #4
	jmp close
hposn	sta axk
	stx axk+1
	tya
	lsr
	lsr
	lsr
	tax
	lda mulh,x
	ora #>gra
	sta tmp+1
	txa
	and #3
	tax
	lda mull,x
	sta tmp
	tya
	and #7
	clc
	adc tmp
	sta tmp
	lda axk
	and #$f8
	clc
	adc tmp
	sta tmp
	lda tmp+1
	adc axk+1
	sta tmp+1
	rts
