	.title	k11fix	fix attributes so rmscnv and pip can do ansi binaries
	.ident	/T9.0/

;	 Write  attribute entries for Kermit-11 tasks and save images
;	so that (1) F77 will read the files as fixed 512 direct files
;	and (2)  so RMSCNV and PIP can put them on ANSI tapes intact.
;	For RSTS/E only.
;
;
;	14-Nov-84  05:23:10  Brian Nelson

	.psect

list:	.word	10$,20$,30$,40$,50$,60$,70$,80$
10$:	.asciz	/in:k11.tsk/
20$:	.asciz	/in:k11nrs.tsk/
30$:	.asciz	/in:k11rsx.tsk/
40$:	.asciz	/in:k11pos.tsk/
50$:	.asciz	/in:k11xm.sav/
60$:	.asciz	/in:k11rt4.sav/
70$:	.asciz	/in:k11i31.tsk/
80$:	.asciz	/in:k11i32.tsk/
msg:	.asciz	/ updated/<15><12>
	.even


st:	mov	#list	,r4
10$:	tst	@r4
	beq	100$
	mov	(r4)+	,r0
	call	print
	call	fix
	tst	r0
	beq	20$
	movb	#errfq	,firqb+fqfun
	movb	r0	,firqb+4
	calfip
	clrb	firqb+37
	mov	#firqb+4,r0
	call	print
	br	30$
20$:	mov	#msg	,r0
	call	print
30$:	br	10$
100$:	.exit

fix:	mov	r0	,r1		; save address of string
10$:	tstb	(r0)+			; find the end of it
	bne	10$			; not yet
	sub	r1	,r0		; get the length
	dec	r0			; fix it
	mov	#xrb	,r2		; point to the xrb
	mov	r0	,(r2)+		; length
	mov	r0	,(r2)+		; length again
	mov	r1	,(r2)+		; address of the string
	clr	(r2)+			; not used
	clr	(r2)+			; not used
	clr	(r2)+			; not used
	clr	(r2)+			; not used
	call	clrfqb			; insure no defaults
	.fss				; parse it
	movb	firqb	,r0		; check for errors
	bne	100$			; oops
	movb	#opnfq	,firqb+fqfun	; open it up please
	movb	#2	,firqb+fqfil	; channel*2
	calfip				; do it
	movb	firqb	,r0		; success?
	bne	100$			; no
	mov	firqb+fqsiz,r3		; save file size
	call	clrfqb			; write attributes now
	mov	#firqb+fqfun,r0		; simple to do
	movb	#uu.atr	,(r0)+		; write attributes
	incb	(r0)+			; channel one
	movb	#6	,(r0)+		; word count
	mov	#1	,(r0)+		; FIXED
	mov	#1000	,(r0)+		; 512 byte records
	clr	(r0)+			;
	mov	r3	,(r0)+		; end of file mark
	clr	(r0)+			;
	mov	r3	,@r0		; next free block
	inc	@r0			;
	.uuo				; do it
	movb	firqb	,r0
	bne	100$
	call	clrfqb
	movb	#clsfq	,firqb+fqfun
	movb	#2	,firqb+fqfil
	calfip
	clr	r0
	
100$:	return



	

clrfqb:	mov	r0	,-(sp)
	mov	r1	,-(sp)
	mov	#40	,r0
	mov	#firqb	,r1
10$:	clrb	(r1)+
	sob	r0	,10$
	mov	(sp)+	,r1
	mov	(sp)+	,r0
	return

print:	mov	r0	,-(sp)
	mov	r1	,-(sp)
	mov	r2	,-(sp)
	mov	r0	,r1
10$:	tstb	(r0)+
	bne	10$
	sub	r1	,r0
	dec	r0
	mov	#xrb	,r2
	mov	r0	,(r2)+
	mov	r0	,(r2)+
	mov	r1	,(r2)+
	clr	(r2)+
	clr	(r2)+
	clr	(r2)+
	clr	(r2)+
	.write
	mov	(sp)+	,r2
	mov	(sp)+	,r1
	mov	(sp)+	,r0
	return


	.end	st
