	jsr	r5,setup
	jsr	pc,symg
/	test	symmetry	program

	jsr	r5,sym
	mov	$'#,r0
	jsr	r5,putc
	mov	nilist,r0
	asr	r0
	mov	r0,nilist
	jsr	r5,decml
	mov	$'\n,r0
	jsr	r5,putc
	mov	$ilist,r2
	mov	nilist,r3
1:
	mov	(r2)+,r0
	asr	r0
	jsr	r5,decml
	mov	$'\n,r0
	jsr	r5,putc
	dec	r3
	bgt	1b
	sys	exit


setup:
	jsr	r5,mesg; <good:\n\0>; .even
1:
	jsr	r5,getnum; 2.
	br	1b
	jsr	r5,mesg; <bad:\n\0>; .even
1:
	jsr	r5,getnum; 8.
	br	1b
	rts	r5

getnum:
	mov	r3,-(sp)
	clr	r3
1:
	jsr	r5,getc
	br	1f
	cmp	r0,$'0
	blt	2f
	cmp	r0,$'9
	bgt	2f
	mpy	$10.,r3
	sub	$'0,r0
	add	r0,r3
	br	1b
1:
	cmp	(r5)+,(r5)+
	mov	(sp)+,r3
	rts	r5
2:
	mov	r3,r0
	asl	r0
	cmp	r0,$128.
	bhis	1b
	mov	(r5)+,board(r0)
	mov	(sp)+,r3
	rts	r5

mesg:
	movb	(r5)+,r0
	beq	1f
	jsr	r5,putc
	br	mesg
1:
	inc	r5
	bic	$1,r5
	rts	r5

putc:
	mov	r0,ch
	mov	$1,r0
	sys	write; ch; 1
	rts	r5

getc:
	clr	r0
	sys	read; ch; 1
	bes	1f
	cmp	r0,$1
	bne	1f
	mov	ch,r0
	tst	(r5)+
1:
	rts	r5

decml:
	mov	r1,-(sp)
	mov	r0,r1
	clr	r0
	dvd	$10.,r0
	add	$'0,r0
	jsr	r5,putc
	mov	r1,r0
	add	$'0,r0
	jsr	r5,putc
	mov	(sp)+,r1
	rts	r5

invert:
	mov	$board,r0
1:
	mov	(r0),r1
	beq	3f
	cmp	r1,$2.
	beq	2f
	mov	$2.,r1
	br	3f
2:
	mov	$8.,r1
3:
	mov	r1,(r0)+
	cmp	r0,$board+128.
	bne	1b
	rts	r5

.bss
ch:	.=.+2
board:	.=.+128.
nilist:	.=.+2
ilist:	.=.+128.
which:	.=.+2
.text
