🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Steven M. Schultz Wed, 27 Dec 1989 21:04
/lib/as2 can't be built shared or split +FIX
#261
Author: Steven M. Schultz
Date: Wed, 27 Dec 1989 21:04
1621 lines
26773 bytes
Subject: /lib/as2 can't be built shared or split +FIX
Index:	bin/as/as2?.s 2.10BSD

Description:
	The second phase of the assembler (/lib/as2) can not be built
	either sharedtext (-n) or split-I/D (-i) due to intermixing
	of data and text, missing .text/.data directives, use of
	a subroutine calling convention which places arguments inline
	with text (jsr r5,xxx;arg rather than mov arg,-(sp);jsr pc,xxx),
	reusing text space as an I/O bufffer, ad nauseum.

	Building /lib/as2 either -n or -i allows the system to cache the
	text, speeding loading on subsequent use.

Repeat-By:
	Attempt to build /lib/as2 with either -n or -i set into SEPFLAGS,
	observe the resulting mess.

Fix:
	Apply the patches below.  There is one patch for as13.s, the earlier
	posting which fixed /bin/as missed a "jsr r5," call.

	Also, the I/O buffers have been increased from 512 to 1024 so as
	to match the filesystem block size.

	Happy New Year!

diff -c as.old/Makefile as/Makefile
*** as.old/Makefile	Wed Dec 13 16:42:56 1989
--- as/Makefile	Sun Dec 24 02:06:24 1989
***************
*** 16,22 ****
  
  as2: ${AS2SRC}
  	${AS} ${ASFLAGS} -o as2.o as2?.s
! 	ld -o $@ as2.o -lc
  
  install:
  	install -s as ${DESTDIR}/bin
--- 16,22 ----
  
  as2: ${AS2SRC}
  	${AS} ${ASFLAGS} -o as2.o as2?.s
! 	ld ${SEPFLAG} -o $@ as2.o -lc
  
  install:
  	install -s as ${DESTDIR}/bin
diff -c as.old/as13.s as/as13.s
*** as.old/as13.s	Wed Dec 13 16:43:11 1989
--- as/as13.s	Sun Dec 24 19:27:40 1989
***************
*** 42,48 ****
  1:
  	bitb	$37,(r4)
  	beq	1f
! 	jsr	r5,error; 'm
  1:
  	bisb	dot-2,(r4)
  	mov	dot,2(r4)
--- 42,49 ----
  1:
  	bitb	$37,(r4)
  	beq	1f
! 	mov	$'m,r5
! 	jsr	pc,error
  1:
  	bisb	dot-2,(r4)
  	mov	dot,2(r4)
diff -c as.old/as21.s as/as21.s
*** as.old/as21.s	Sun Feb  8 14:26:13 1987
--- as/as21.s	Wed Dec 27 12:35:36 1989
***************
*** 31,37 ****
  
  / read in symbol table
  
! 	mov	$usymtab,r1
  1:
  	jsr	pc,getw
  	bvs	1f
--- 31,37 ----
  
  / read in symbol table
  
! 	mov	usymtab,r1
  1:
  	jsr	pc,getw
  	bvs	1f
***************
*** 101,107 ****
  	tst	(sp)+			/	sys	close
  	mov	(sp)+,r1
  
! 	jsr	r5,ofile; a.tmp1
  	mov	r0,fin
  	clr	ibufc
  	jsr	pc,setup
--- 101,108 ----
  	tst	(sp)+			/	sys	close
  	mov	(sp)+,r1
  
! 	mov	a.tmp1,-(sp)
! 	jsr	pc,ofile
  	mov	r0,fin
  	clr	ibufc
  	jsr	pc,setup
***************
*** 141,147 ****
  	sbc	r0
  	mov	r0,datseek
  	mov	r3,datseek+2	/ txtsiz+20
! 	mov	$usymtab,r1
  1:
  	jsr	pc,doreloc
  	add	$4,r1
--- 142,148 ----
  	sbc	r0
  	mov	r0,datseek
  	mov	r3,datseek+2	/ txtsiz+20
! 	mov	usymtab,r1
  1:
  	jsr	pc,doreloc
  	add	$4,r1
***************
*** 149,163 ****
  	blo	1b
  	clr	r0
  	clr	r1
! 	jsr	r5,oset; txtp
  	mov	trelseek,r0
  	mov	trelseek+2,r1
! 	jsr	r5,oset; relp
  	mov	$8.,r2
  	mov	$txtmagic,r1
  1:
  	mov	(r1)+,r0
! 	jsr	r5,putw; txtp
  	dec	r2
  	bne	1b
  	jsr	pc,assem
--- 150,167 ----
  	blo	1b
  	clr	r0
  	clr	r1
! 	mov	$txtp,-(sp)
! 	jsr	pc,oset
  	mov	trelseek,r0
  	mov	trelseek+2,r1
! 	mov	$relp,-(sp)
! 	jsr	pc,oset
  	mov	$8.,r2
  	mov	$txtmagic,r1
  1:
  	mov	(r1)+,r0
! 	mov	$txtp,-(sp)
! 	jsr	pc,putw
  	dec	r2
  	bne	1b
  	jsr	pc,assem
***************
*** 164,171 ****
  
  /polish off text and relocation
  
! 	jsr	r5,flush; txtp
! 	jsr	r5,flush; relp
  
  / append full symbol table
  
--- 168,177 ----
  
  /polish off text and relocation
  
! 	mov	$txtp,-(sp)
! 	jsr	pc,flush
! 	mov	$relp,-(sp)
! 	jsr	pc,flush
  
  / append full symbol table
  
***************
*** 182,212 ****
  	clr	ibufc
  	mov	symseek,r0
  	mov	symseek+2,r1
! 	jsr	r5,oset; txtp
! 	mov	$usymtab,r1
  1:
  	jsr	pc,getw
  	bvs	1f
  	mov	r4,r0
! 	jsr	r5,putw; txtp
  	jsr	pc,getw
  	mov	r4,r0
! 	jsr	r5,putw; txtp
  	jsr	pc,getw
  	mov	r4,r0
! 	jsr	r5,putw; txtp
  	jsr	pc,getw
  	mov	r4,r0
! 	jsr	r5,putw; txtp
  	mov	(r1)+,r0
! 	jsr	r5,putw; txtp
  	mov	(r1)+,r0
! 	jsr	r5,putw; txtp
  	jsr	pc,getw
  	jsr	pc,getw
  	br	1b
  1:
! 	jsr	r5,flush; txtp
  	jmp	aexit
  
  saexit:
--- 188,226 ----
  	clr	ibufc
  	mov	symseek,r0
  	mov	symseek+2,r1
! 	mov	$txtp,-(sp)
! 	jsr	pc,oset
! 	mov	usymtab,r1
  1:
  	jsr	pc,getw
  	bvs	1f
  	mov	r4,r0
! 	mov	$txtp,-(sp)
! 	jsr	pc,putw
  	jsr	pc,getw
  	mov	r4,r0
! 	mov	$txtp,-(sp)
! 	jsr	pc,putw
  	jsr	pc,getw
  	mov	r4,r0
! 	mov	$txtp,-(sp)
! 	jsr	pc,putw
  	jsr	pc,getw
  	mov	r4,r0
! 	mov	$txtp,-(sp)
! 	jsr	pc,putw
  	mov	(r1)+,r0
! 	mov	$txtp,-(sp)
! 	jsr	pc,putw
  	mov	(r1)+,r0
! 	mov	$txtp,-(sp)
! 	jsr	pc,putw
  	jsr	pc,getw
  	jsr	pc,getw
  	br	1b
  1:
! 	mov	$txtp,-(sp)
! 	jsr	pc,flush
  	jmp	aexit
  
  saexit:
***************
*** 246,262 ****
  	jsr	pc,__exit		/ _exit(errflg ? 2 : 0)
  					/	sys	exit
  filerr:
! 	mov	*(r5),r5
! 	tst	-(sp)			/ write(1, r5, strlen(r5))
! 	mov	r5,-(sp)
  	mov	$1,-(sp)
- 	clr	r0
  1:
! 	tstb	(r5)+
! 	beq	2f
! 	inc	r0
! 	br	1b
! 2:
  	mov	r0,4(sp)
  	jsr	pc,_write
  	add	$6,sp
--- 260,274 ----
  	jsr	pc,__exit		/ _exit(errflg ? 2 : 0)
  					/	sys	exit
  filerr:
! 	mov	2(sp),r0		/ filename string.  no need to clean
! 	tst	-(sp)			/ stack, this routine goes to saexit.
! 	mov	r0,-(sp)
  	mov	$1,-(sp)
  1:
! 	tstb	(r0)+
! 	bne	1b
! 	sub	2(sp),r0
! 	dec	r0
  	mov	r0,4(sp)
  	jsr	pc,_write
  	add	$6,sp
***************
*** 297,303 ****
  	jsr	pc,_brk			/	sys	indir; 9f
  	tst	(sp)+			/	.data
  .data					/9:	sys	sbreak; 0: end
! 0:	end				/	.text
  .text
  1:
  	mov	(sp)+,r1
--- 309,315 ----
  	jsr	pc,_brk			/	sys	indir; 9f
  	tst	(sp)+			/	.data
  .data					/9:	sys	sbreak; 0: end
! 0:	_end				/	.text
  .text
  1:
  	mov	(sp)+,r1
***************
*** 321,336 ****
  
  ofile:
  	mov	r1,-(sp)		/ protect r1 from library
! 	clr	-(sp)			/ open(*(r5), O_RDONLY, 0)
! 	clr	-(sp)			/	mov	*(r5),0f
! 	mov	*(r5),-(sp)		/	sys	indir; 9f
! 	jsr	pc,_open		/	.data
! 	add	$6,sp			/9:	sys	open; 0:..; 0
! 	mov	(sp)+,r1		/	.text
! 	tst	r0			/	bes	1f
  	bmi	1f
! 
! 	tst	(r5)+
! 	rts	r5
  1:
  	jmp	filerr
--- 333,347 ----
  
  ofile:
  	mov	r1,-(sp)		/ protect r1 from library
! 	clr	-(sp)			/ open(r0, O_RDONLY, 0)
! 	clr	-(sp)
! 	mov	10(sp),-(sp)
! 	jsr	pc,_open
! 	add	$6,sp
! 	mov	(sp)+,r1
! 	tst	r0
  	bmi	1f
! 	mov	(sp)+,(sp)
! 	rts	pc
  1:
  	jmp	filerr
diff -c as.old/as22.s as/as22.s
*** as.old/as22.s	Sun Feb  8 14:26:13 1987
--- as/as22.s	Sun Dec 24 16:53:18 1989
***************
*** 20,26 ****
  / external references
  	mov	$666,outmod		/ make nonexecutable
  	mov	xsymbol,r3
! 	sub	$usymtab,r3
  	asl	r3
  	bis	$4,r3		/ external relocation
  	br	3f
--- 20,26 ----
  / external references
  	mov	$666,outmod		/ make nonexecutable
  	mov	xsymbol,r3
! 	sub	usymtab,r3
  	asl	r3
  	bis	$4,r3		/ external relocation
  	br	3f
***************
*** 33,39 ****
  	cmp	r3,$34
  	bne	7f
  6:
! 	jsr	r5,error; 'r
  7:
  	mov	$1,r3		/ make absolute
  4:
--- 33,40 ----
  	cmp	r3,$34
  	bne	7f
  6:
! 	mov	$'r,-(sp)
! 	jsr	pc,error
  7:
  	mov	$1,r3		/ make absolute
  4:
***************
*** 57,68 ****
  	asl	r3
  	bis	(sp)+,r3
  	mov	r2,r0
! 	jsr	r5,putw; txtp
  	mov	tseekp,r0
  	add	$2,2(r0)
  	adc	(r0)
  	mov	r3,r0
! 	jsr	r5,putw; relp
  	mov	rseekp,r0
  	add	$2,2(r0)
  	adc	(r0)
--- 58,71 ----
  	asl	r3
  	bis	(sp)+,r3
  	mov	r2,r0
! 	mov	$txtp,-(sp)
! 	jsr	pc,putw
  	mov	tseekp,r0
  	add	$2,2(r0)
  	adc	(r0)
  	mov	r3,r0
! 	mov	$relp,-(sp)
! 	jsr	pc,putw
  	mov	rseekp,r0
  	add	$2,2(r0)
  	adc	(r0)
***************
*** 69,81 ****
  8:
  	rts	pc
  1:
! 	jsr	r5,error; 'o
  	clr	r3
  	jsr	pc,outb
  	rts	pc
  
  9:
! 	jsr	r5,error; 'x
  	rts	pc
  
  outb:
--- 72,86 ----
  8:
  	rts	pc
  1:
! 	mov	$'o,-(sp)
! 	jsr	pc,error
  	clr	r3
  	jsr	pc,outb
  	rts	pc
  
  9:
! 	mov	$'x,-(sp)
! 	jsr	pc,error
  	rts	pc
  
  outb:
***************
*** 83,89 ****
  	beq	9b
  	cmp	r3,$1
  	blos	1f
! 	jsr	r5,error; 'r
  1:
  	tstb	passno
  	beq	2f
--- 88,95 ----
  	beq	9b
  	cmp	r3,$1
  	blos	1f
! 	mov	$'r,-(sp)
! 	jsr	pc,error
  1:
  	tstb	passno
  	beq	2f
***************
*** 90,98 ****
  	mov	r2,r0
  	bit	$1,dot
  	bne	1f
! 	jsr	r5,putw; txtp
  	clr	r0
! 	jsr	r5,putw; relp
  	mov	tseekp,r0
  	add	$2,2(r0)
  	adc	(r0)
--- 96,106 ----
  	mov	r2,r0
  	bit	$1,dot
  	bne	1f
! 	mov	$txtp,-(sp)
! 	jsr	pc,putw
  	clr	r0
! 	mov	$relp,-(sp)
! 	jsr	pc,putw
  	mov	tseekp,r0
  	add	$2,2(r0)
  	adc	(r0)
***************
*** 130,137 ****
  	jsr	pc,_write
  	add	$6,sp
  
! 	mov	(r5)+,r0
! 	movb	r0,0f
  	mov	line,r3
  	mov	$0f+6,r0
  	mov	$4,r1
--- 138,144 ----
  	jsr	pc,_write
  	add	$6,sp
  
! 	movb	12(sp),0f
  	mov	line,r3
  	mov	$0f+6,r0
  	mov	$4,r1
***************
*** 153,172 ****
  	mov	(sp)+,r1
  	mov	(sp)+,r2
  	mov	(sp)+,r3
! 	rts	r5
  
  	.data
  0:	<f xxxx\n>
  	.even
  	.text
- 
- betwen:
- 	cmp	r0,(r5)+
- 	blt	1f
- 	cmp	(r5)+,r0
- 	blt	2f
- 1:
- 	tst	(r5)+
- 2:
- 	rts	r5
- 
--- 160,169 ----
  	mov	(sp)+,r1
  	mov	(sp)+,r2
  	mov	(sp)+,r3
! 	mov	(sp)+,(sp)
! 	rts	pc
  
  	.data
  0:	<f xxxx\n>
  	.even
  	.text
diff -c as.old/as23.s as/as23.s
*** as.old/as23.s	Sun Feb  8 14:26:13 1987
--- as/as23.s	Sun Dec 24 02:04:13 1989
***************
*** 33,39 ****
  	movb	dotrel,r0
  	asl	r0
  	cmp	dot,txtsiz-4(r0)
! 	blos	ealoop
  	mov	dot,txtsiz-4(r0)
  eal1:
  	jmp	ealoop
--- 33,41 ----
  	movb	dotrel,r0
  	asl	r0
  	cmp	dot,txtsiz-4(r0)
! 	bhi	8f
! 	jmp	ealoop
! 8:
  	mov	dot,txtsiz-4(r0)
  eal1:
  	jmp	ealoop
***************
*** 43,49 ****
  	bhis	1f
  	cmp	r4,$2
  	beq	3f
! 	jsr	r5,error; 'x
  	br	assem
  1:
  	tstb	passno
--- 45,52 ----
  	bhis	1f
  	cmp	r4,$2
  	beq	3f
! 	mov	$'x,-(sp)
! 	jsr	pc,error
  	br	assem
  1:
  	tstb	passno
***************
*** 56,62 ****
  	cmp	r0,$34
  	ble	5f
  6:
! 	jsr	r5,error; 'm
  5:
  	bic	$37,(r4)
  	bis	dotrel,(r4)
--- 59,66 ----
  	cmp	r0,$34
  	ble	5f
  6:
! 	mov	$'m,-(sp)
! 	jsr	pc,error
  5:
  	bic	$37,(r4)
  	bis	dotrel,(r4)
***************
*** 67,73 ****
  2:
  	cmp	dot,2(r4)
  	beq	assem
! 	jsr	r5,error; 'p
  	br	assem
  3:
  	mov	numval,r4
--- 71,78 ----
  2:
  	cmp	dot,2(r4)
  	beq	assem
! 	mov	$'p,-(sp)
! 	jsr	pc,error
  	br	assem
  3:
  	mov	numval,r4
***************
*** 107,118 ****
  	tst	(sp)+
  	br	dotmax
  2:
! 	jsr	r5,error; '.
  	br	ealoop
  1:
  	cmp	r3,$40
  	bne	1f
! 	jsr	r5,error; 'r
  1:
  	bic	$37,(r1)
  	bic	$!37,r3
--- 112,125 ----
  	tst	(sp)+
  	br	dotmax
  2:
! 	mov	$'.,-(sp)
! 	jsr	pc,error
  	br	ealoop
  1:
  	cmp	r3,$40
  	bne	1f
! 	mov	$'r,-(sp)
! 	jsr	pc,error
  1:
  	bic	$37,(r1)
  	bic	$!37,r3
***************
*** 162,165 ****
  	mov	r1,nxtfb(r4)
  	asr	r4
  	rts	pc
- 
--- 169,171 ----
diff -c as.old/as24.s as/as24.s
*** as.old/as24.s	Sun Feb  8 14:26:13 1987
--- as/as24.s	Sun Dec 24 18:01:10 1989
***************
*** 6,30 ****
  oset:
  	mov	r2,-(sp)
  	mov	r3,-(sp)
! 	mov	(r5)+,r3
  	mov	r1,r2
! 	bic	$!777,r1
  	add	r3,r1
  	add	$8,r1
  	mov	r1,(r3)+	/ next slot
  	mov	r3,r1
! 	add	$1006,r1
  	mov	r1,(r3)+	/ buf max
  	mov	r0,(r3)+
  	mov	r2,(r3)+	/ seek addr
  	mov	(sp)+,r3
  	mov	(sp)+,r2
! 	rts	r5
  
  putw:
  	mov	r1,-(sp)
  	mov	r2,-(sp)
! 	mov	(r5)+,r2
  	mov	(r2)+,r1	/ slot
  	cmp	r1,(r2)		/ buf max
  	bhis	1f
--- 6,31 ----
  oset:
  	mov	r2,-(sp)
  	mov	r3,-(sp)
! 	mov	6(sp),r3
  	mov	r1,r2
! 	bic	$!1777,r1
  	add	r3,r1
  	add	$8,r1
  	mov	r1,(r3)+	/ next slot
  	mov	r3,r1
! 	add	$2006,r1
  	mov	r1,(r3)+	/ buf max
  	mov	r0,(r3)+
  	mov	r2,(r3)+	/ seek addr
  	mov	(sp)+,r3
  	mov	(sp)+,r2
! 	mov	(sp)+,(sp)
! 	rts	pc
  
  putw:
  	mov	r1,-(sp)
  	mov	r2,-(sp)
! 	mov	6(sp),r2
  	mov	(r2)+,r1	/ slot
  	cmp	r1,(r2)		/ buf max
  	bhis	1f
***************
*** 34,40 ****
  1:
  	tst	(r2)+
  	mov	r0,-(sp)
! 	jsr	r5,flush1
  	mov	(sp)+,r0
  	mov	r0,*(r2)+
  	add	$2,-(r2)
--- 35,41 ----
  1:
  	tst	(r2)+
  	mov	r0,-(sp)
! 	jsr	pc,flush1
  	mov	(sp)+,r0
  	mov	r0,*(r2)+
  	add	$2,-(r2)
***************
*** 41,50 ****
  2:
  	mov	(sp)+,r2
  	mov	(sp)+,r1
! 	rts	r5
  
  flush:
! 	mov	(r5)+,r2
  	cmp	(r2)+,(r2)+
  flush1:
  
--- 42,53 ----
  2:
  	mov	(sp)+,r2
  	mov	(sp)+,r1
! 	mov	(sp)+,(sp)
! 	rts	pc
  
  flush:
! 	mov	2(sp),r2
! 	mov	(sp)+,(sp)
  	cmp	(r2)+,(r2)+
  flush1:
  
***************
*** 51,57 ****
  	clr	-(sp)			/ lseek(fout, (r2)L+, L_SET)
  	mov	2(r2),-(sp)		/	mov	(r2)+,0f
  	mov	(r2)+,-(sp)		/	mov	(r2)+,r1
! 	tst	(r2)+			/	mov	r1,0f+2		/ seek address
  	mov	fout,-(sp)		/	mov	fout,r0
  	jsr	pc,_lseek		/	sys	indir; 9f
  	add	$8.,sp			/	.data
--- 54,60 ----
  	clr	-(sp)			/ lseek(fout, (r2)L+, L_SET)
  	mov	2(r2),-(sp)		/	mov	(r2)+,0f
  	mov	(r2)+,-(sp)		/	mov	(r2)+,r1
! 	tst	(r2)+			/	mov	r1,0f+2
  	mov	fout,-(sp)		/	mov	fout,r0
  	jsr	pc,_lseek		/	sys	indir; 9f
  	add	$8.,sp			/	.data
***************
*** 58,68 ****
  					/9:	sys	lseek; 0:..; ..; 0
  					/	.text
  	cmp	-(sp),-(sp)		/ write(fout, <buf>, <len>)
! 	bic	$!777,r1
  	add	r2,r1		/ write address
  	mov	r1,-(sp)		/ { <buf> }
  	mov	r2,r0
! 	bis	$777,-(r2)
  	add	$1,(r2)		/ new seek addr
  	adc	-(r2)
  	cmp	-(r2),-(r2)
--- 61,71 ----
  					/9:	sys	lseek; 0:..; ..; 0
  					/	.text
  	cmp	-(sp),-(sp)		/ write(fout, <buf>, <len>)
! 	bic	$!1777,r1
  	add	r2,r1		/ write address
  	mov	r1,-(sp)		/ { <buf> }
  	mov	r2,r0
! 	bis	$1777,-(r2)
  	add	$1,(r2)		/ new seek addr
  	adc	-(r2)
  	cmp	-(r2),-(r2)
***************
*** 78,86 ****
  	mov	(sp)+,r1
  	tst	r0
  	jmi	wrterr
  
- 	rts	r5
- 
  wrterr:
  	mov	$8f-9f,-(sp)		/ write(1, ERRMSG, strlen(ERRMSG))
  	mov	$9f,-(sp)		/	mov	$1,r0
--- 81,88 ----
  	mov	(sp)+,r1
  	tst	r0
  	jmi	wrterr
+ 	rts	pc
  
  wrterr:
  	mov	$8f-9f,-(sp)		/ write(1, ERRMSG, strlen(ERRMSG))
  	mov	$9f,-(sp)		/	mov	$1,r0
***************
*** 104,110 ****
  	blo	1f
  	cmp	r4,$4000
  	blo	2f
! 	add	$usymtab-4000,r4
  	rts	pc
  2:
  	add	$symtab-1000,r4
--- 106,113 ----
  	blo	1f
  	cmp	r4,$4000
  	blo	2f
! 	add	usymtab,r4
! 	sub	$4000,r4
  	rts	pc
  2:
  	add	$symtab-1000,r4
***************
*** 121,129 ****
  	bgt	1f
  
  	mov	r1,-(sp)		/ protect r1 from library
! 	mov	$512.,-(sp)		/ read(fin, inbuf, 512)
  	mov	$inbuf,-(sp)		/	movb	fin,r0
! 	mov	fin,-(sp)		/	sys	read; inbuf; 512.
  	jsr	pc,_read		/	bes	3f
  	add	$6,sp
  	mov	(sp)+,r1
--- 124,132 ----
  	bgt	1f
  
  	mov	r1,-(sp)		/ protect r1 from library
! 	mov	$1024.,-(sp)		/ read(fin, inbuf, 1024)
  	mov	$inbuf,-(sp)		/	movb	fin,r0
! 	mov	fin,-(sp)		/	sys	read; inbuf; 1024.
  	jsr	pc,_read		/	bes	3f
  	add	$6,sp
  	mov	(sp)+,r1
diff -c as.old/as26.s as/as26.s
*** as.old/as26.s	Sun Feb  8 14:26:14 1987
--- as/as26.s	Sun Dec 24 02:41:14 1989
***************
*** 5,12 ****
  
  opline:
  	mov	r4,r0
! 	jsr	r5,betwen; 0; 177
! 		br 2f
  	cmp	r4,$5
  	beq	opeof
  	cmp	r4,$'<
--- 5,13 ----
  
  opline:
  	mov	r4,r0
! 	bmi	2f
! 	cmp	r0,$177
! 	bgt	2f
  	cmp	r4,$5
  	beq	opeof
  	cmp	r4,$'<
***************
*** 26,33 ****
  	beq	xpr
  	cmp	r0,$34		/ est data
  	beq	xpr
! 	jsr	r5,betwen; 5; 36
! 		br xpr
  	mov	2(r4),-(sp)
  	mov	r0,-(sp)
  	jsr	pc,readop
--- 27,36 ----
  	beq	xpr
  	cmp	r0,$34		/ est data
  	beq	xpr
! 	cmp	r0,$5
! 	blt	xpr
! 	cmp	r0,$36
! 	bgt	xpr
  	mov	2(r4),-(sp)
  	mov	r0,-(sp)
  	jsr	pc,readop
***************
*** 37,43 ****
  	clr	swapf
  	mov	$-1,rlimit
  	jmp	*1f-10.(r0)
! 
  1:
  	opl5
  	opl6
--- 40,46 ----
  	clr	swapf
  	mov	$-1,rlimit
  	jmp	*1f-10.(r0)
! 	.data
  1:
  	opl5
  	opl6
***************
*** 65,70 ****
--- 68,74 ----
  	xxpr
  	opl35
  	opl36
+ 	.text
  
  opeof:
  	mov	$1,line
***************
*** 115,121 ****
  	asr	(sp)
  	cmp	(sp),rlimit
  	blo	1f
! 	jsr	r5,error; 'x
  1:
  	bis	(sp)+,r2
  	bis	(sp)+,r2
--- 119,126 ----
  	asr	(sp)
  	cmp	(sp),rlimit
  	blo	1f
! 	mov	$'x,-(sp)
! 	jsr	pc,error
  1:
  	bis	(sp)+,r2
  	bis	(sp)+,r2
***************
*** 203,210 ****
  	sub	dot,r2
  	neg	r2
  	mov	r2,r0
! 	jsr	r5,betwen; -2; 175
! 		br 2f
  	add	$4,r2
  	br	1f
  
--- 208,217 ----
  	sub	dot,r2
  	neg	r2
  	mov	r2,r0
! 	cmp	r0,$-2
! 	blt	2f
! 	cmp	r0,$175
! 	bgt	2f
  	add	$4,r2
  	br	1f
  
***************
*** 216,223 ****
  dobranch:
  	sub	dot,r2
  	mov	r2,r0
! 	jsr	r5,betwen; -254.; 256.
! 		br 2f
  1:
  	bit	$1,r2
  	bne	2f
--- 223,232 ----
  dobranch:
  	sub	dot,r2
  	mov	r2,r0
! 	cmp	r0,$-254.
! 	blt	2f
! 	cmp	r0,$256.
! 	bgt	2f
  1:
  	bit	$1,r2
  	bne	2f
***************
*** 232,238 ****
  	jsr	pc,outw
  	rts	pc
  2:
! 	jsr	r5,error; 'b
  	clr	r2
  	br	3b
  
--- 241,248 ----
  	jsr	pc,outw
  	rts	pc
  2:
! 	mov	$'b,-(sp)
! 	jsr	pc,error
  	clr	r2
  	br	3b
  
***************
*** 309,315 ****
  	tst	(sp)+
  	rts	pc
  
- 
  /.globl
  opl23:
  	cmp	r4,$200
--- 319,324 ----
***************
*** 336,343 ****
  	mov	dot,savdot-4(r1)
  	tstb	passno
  	beq	1f
! 	jsr	r5,flush; txtp
! 	jsr	r5,flush; relp
  	mov	(sp),r2
  	asl	r2
  	add	$txtseek-[4*25],r2
--- 345,354 ----
  	mov	dot,savdot-4(r1)
  	tstb	passno
  	beq	1f
! 	mov	$txtp,-(sp)
! 	jsr	pc,flush
! 	mov	$relp,-(sp)
! 	jsr	pc,flush
  	mov	(sp),r2
  	asl	r2
  	add	$txtseek-[4*25],r2
***************
*** 344,355 ****
  	mov	r2,tseekp
  	mov	(r2),r0
  	mov	2(r2),r1
! 	jsr	r5,oset; txtp
  	add	$trelseek-txtseek,r2
  	mov	(r2),r0
  	mov	2(r2),r1
  	mov	r2,rseekp
! 	jsr	r5,oset; relp
  1:
  	mov	(sp)+,r0
  	mov	savdot-[2*25](r0),dot
--- 355,368 ----
  	mov	r2,tseekp
  	mov	(r2),r0
  	mov	2(r2),r1
! 	mov	$txtp,-(sp)
! 	jsr	pc,oset
  	add	$trelseek-txtseek,r2
  	mov	(r2),r0
  	mov	2(r2),r1
  	mov	r2,rseekp
! 	mov	$relp,-(sp)
! 	jsr	pc,oset
  1:
  	mov	(sp)+,r0
  	mov	savdot-[2*25](r0),dot
***************
*** 478,484 ****
  astar:
  	tst	(sp)
  	beq	1f
! 	jsr	r5,error; '*
  1:
  	mov	$10,(sp)
  	jsr	pc,readop
--- 491,498 ----
  astar:
  	tst	(sp)
  	beq	1f
! 	mov	$'*,-(sp)
! 	jsr	pc,error
  1:
  	mov	$10,(sp)
  	jsr	pc,readop
***************
*** 485,491 ****
  	jmp	4b
  
  errora:
! 	jsr	r5,error; 'a
  	rts	pc
  
  checkreg:
--- 499,506 ----
  	jmp	4b
  
  errora:
! 	mov	$'a,-(sp)
! 	jsr	pc,error
  	rts	pc
  
  checkreg:
***************
*** 504,516 ****
  	rts	pc
  
  errore:
! 	jsr	r5,error; 'e
  	rts	pc
  
  checkrp:
  	cmp	r4,$')
  	beq	1f
! 	jsr	r5,error; ')
  	rts	pc
  1:
  	jsr	pc,readop
--- 519,533 ----
  	rts	pc
  
  errore:
! 	mov	$'e,-(sp)
! 	jsr	pc,error
  	rts	pc
  
  checkrp:
  	cmp	r4,$')
  	beq	1f
! 	mov	$'),-(sp)
! 	jsr	pc,error
  	rts	pc
  1:
  	jsr	pc,readop
***************
*** 529,537 ****
  	ble	1f
  	sub	brdelt,r0
  1:
! 	jsr	r5,betwen; -254.; 256.
! 		br 1f
! 	br	2f
  1:
  	mov	r1,-(sp)
  	bic	$!7,(sp)
--- 546,555 ----
  	ble	1f
  	sub	brdelt,r0
  1:
! 	cmp	r0,$-254.
! 	blt	1f
! 	cmp	r0,$256.
! 	ble	2f
  1:
  	mov	r1,-(sp)
  	bic	$!7,(sp)
diff -c as.old/as27.s as/as27.s
*** as.old/as27.s	Sun Feb  8 14:26:14 1987
--- as/as27.s	Sun Dec 24 21:29:19 1989
***************
*** 15,29 ****
  	jsr	pc,readop
  1:
  	mov	r4,r0
! 	jsr	r5,betwen; 0; 177
! 		br .+4
! 	br	7f
  	movb	(r4),r0
  	tst	r0
  	bne	1f
  	tstb	passno
  	beq	1f
! 	jsr	r5,error; 'u
  1:
  	tst	overlaid
  	beq	0f
--- 15,31 ----
  	jsr	pc,readop
  1:
  	mov	r4,r0
! 	blt	6f
! 	cmp	r0,$177
! 	ble	7f
! 6:
  	movb	(r4),r0
  	tst	r0
  	bne	1f
  	tstb	passno
  	beq	1f
! 	mov	$'u,-(sp)
! 	jsr	pc,error
  1:
  	tst	overlaid
  	beq	0f
***************
*** 67,73 ****
  	rts	pc
  1:
  	jmp	*(r1)
! 
  esw1:
  	'+;	binop
  	'-;	binop
--- 69,75 ----
  	rts	pc
  1:
  	jmp	*(r1)
! 	.data
  esw1:
  	'+;	binop
  	'-;	binop
***************
*** 84,90 ****
  	2;	exnum1
  	'!;	binop
  	200;	0
! 
  binop:
  	cmpb	(sp),$'+
  	beq	1f
--- 86,92 ----
  	2;	exnum1
  	'!;	binop
  	200;	0
! 	.text
  binop:
  	cmpb	(sp),$'+
  	beq	1f
***************
*** 111,117 ****
  	jsr	pc,expres1
  	cmp	r4,$']
  	beq	1f
! 	jsr	r5,error; ']
  1:
  	mov	r3,r0
  	mov	r2,r1
--- 113,120 ----
  	jsr	pc,expres1
  	cmp	r4,$']
  	beq	1f
! 	mov	$'],-(sp)
! 	jsr	pc,error
  1:
  	mov	r3,r0
  	mov	r2,r1
***************
*** 128,134 ****
  	br	eoprnd
  1:
  	jmp	*(r5)
! 
  exsw2:
  	'+; exadd
  	'-; exsub
--- 131,137 ----
  	br	eoprnd
  1:
  	jmp	*(r5)
! 	.data
  exsw2:
  	'+; exadd
  	'-; exsub
***************
*** 142,148 ****
  	'^; excmbin
  	'!; exnot
  	200;  0
! 
  excmbin:
  	mov	r0,r3
  	br	eoprnd
--- 145,151 ----
  	'^; excmbin
  	'!; exnot
  	200;  0
! 	.text
  excmbin:
  	mov	r0,r3
  	br	eoprnd
***************
*** 154,165 ****
  	clc
  	ror	r2
  exlsh:
! 	jsr	r5,combin; relte2
  	als	r1,r2
  	br	eoprnd
  
  exmod:
! 	jsr	r5,combin; relte2
  	mov	r3,r0
  	mov	r2,r3
  	clr	r2
--- 157,170 ----
  	clc
  	ror	r2
  exlsh:
! 	mov	$relte2,r5
! 	jsr	pc,combin
  	als	r1,r2
  	br	eoprnd
  
  exmod:
! 	mov	$relte2,r5
! 	jsr	pc,combin
  	mov	r3,r0
  	mov	r2,r3
  	clr	r2
***************
*** 169,202 ****
  	br	eoprnd
  
  exadd:
! 	jsr	r5,combin; reltp2
  	add	r1,r2
  	br	eoprnd
  
  exsub:
! 	jsr	r5,combin; reltm2
  	sub	r1,r2
  	br	eoprnd
  
  exand:
! 	jsr	r5,combin; relte2
  	com	r1
  	bic	r1,r2
  	br	eoprnd
  
  exor:
! 	jsr	r5,combin; relte2
  	bis	r1,r2
  	br	eoprnd
  
  exmul:
! 	jsr	r5,combin; relte2
  	mpy	r2,r1
  	mov	r1,r2
  	br	eoprnd
  
  exdiv:
! 	jsr	r5,combin; relte2
  	mov	r3,r0
  	mov	r2,r3
  	clr	r2
--- 174,213 ----
  	br	eoprnd
  
  exadd:
! 	mov	$reltp2,r5
! 	jsr	pc,combin
  	add	r1,r2
  	br	eoprnd
  
  exsub:
! 	mov	$reltm2,r5
! 	jsr	pc,combin
  	sub	r1,r2
  	br	eoprnd
  
  exand:
! 	mov	$relte2,r5
! 	jsr	pc,combin
  	com	r1
  	bic	r1,r2
  	br	eoprnd
  
  exor:
! 	mov	$relte2,r5
! 	jsr	pc,combin
  	bis	r1,r2
  	br	eoprnd
  
  exmul:
! 	mov	$relte2,r5
! 	jsr	pc,combin
  	mpy	r2,r1
  	mov	r1,r2
  	br	eoprnd
  
  exdiv:
! 	mov	$relte2,r5
! 	jsr	pc,combin
  	mov	r3,r0
  	mov	r2,r3
  	clr	r2
***************
*** 205,211 ****
  	br	eoprnd
  
  exnot:
! 	jsr	r5,combin; relte2
  	com	r1
  	add	r1,r2
  	br	eoprnd
--- 216,223 ----
  	br	eoprnd
  
  exnot:
! 	mov	$relte2,r5
! 	jsr	pc,combin
  	com	r1
  	add	r1,r2
  	br	eoprnd
***************
*** 230,236 ****
  1:
  	tst	r0
  	beq	1f
! 	cmp	(r5)+,$reltm2
  	bne	2f
  	cmp	r0,r3
  	bne	2f
--- 242,248 ----
  1:
  	tst	r0
  	beq	1f
! 	cmp	r5,$reltm2
  	bne	2f
  	cmp	r0,r3
  	bne	2f
***************
*** 237,247 ****
  	mov	$1,r3
  	br	2f
  1:
- 	tst	(r5)+
  	clr	r3
  2:
  	bis	(sp)+,r3
! 	rts	r5
  combin1:
  	mov	r1,-(sp)
  	clr	maxtyp
--- 249,258 ----
  	mov	$1,r3
  	br	2f
  1:
  	clr	r3
  2:
  	bis	(sp)+,r3
! 	rts	pc
  combin1:
  	mov	r1,-(sp)
  	clr	maxtyp
***************
*** 250,267 ****
  	mpy	$6,r1
  	mov	r3,r0
  	jsr	pc,maprel
! 	add	(r5)+,r0
  	add	r1,r0
  	movb	(r0),r3
  	bpl	1f
  	cmp	r3,$-1
  	beq	2f
! 	jsr	r5,error; 'r
  2:
  	mov	maxtyp,r3
  1:
  	mov	(sp)+,r1
! 	rts	r5
  
  maprel:
  	cmp	r0,$40
--- 261,279 ----
  	mpy	$6,r1
  	mov	r3,r0
  	jsr	pc,maprel
! 	add	r5,r0
  	add	r1,r0
  	movb	(r0),r3
  	bpl	1f
  	cmp	r3,$-1
  	beq	2f
! 	mov	$'r,-(sp)
! 	jsr	pc,error
  2:
  	mov	maxtyp,r3
  1:
  	mov	(sp)+,r1
! 	rts	pc
  
  maprel:
  	cmp	r0,$40
***************
*** 279,285 ****
  	mov	$1,r0
  1:
  	rts	pc
! 
  X = -2
  M = -1
  reltp2:
--- 291,297 ----
  	mov	$1,r0
  1:
  	rts	pc
! 	.data
  X = -2
  M = -1
  reltp2:
***************
*** 305,308 ****
  	.byte 0, X, X, X, X, X
  	.byte 0, X, X, X, X, X
  	.byte 0, X, X, X, X, X
! 
--- 317,320 ----
  	.byte 0, X, X, X, X, X
  	.byte 0, X, X, X, X, X
  	.byte 0, X, X, X, X, X
! 	.text
diff -c as.old/as28.s as/as28.s
*** as.old/as28.s	Sun Feb  8 14:26:14 1987
--- as/as28.s	Sun Dec 24 15:13:11 1989
***************
*** 2,12 ****
  /
  
  / as8 -- PDP-11 assembler pass 2
! 
  qnl:	<?\n>
  a.out:	<a.out\0>
  .even
- .data
  a.outp:	a.out
  
  a.tmp1:	0
--- 2,11 ----
  /
  
  / as8 -- PDP-11 assembler pass 2
! 	.data
  qnl:	<?\n>
  a.out:	<a.out\0>
  .even
  a.outp:	a.out
  
  a.tmp1:	0
***************
*** 67,79 ****
  maxtyp:	.=.+2
  relfil:	.=.+2
  ibufp:	.=.+2
! txtp:	.=.+8+512.
! relp:	.=.+8+512.
  swapf:	.=.+2
  rlimit:	.=.+2
  passno:	.=.+2
  endtable:.=.+2
! usymtab:.=.+20.
! end:
! 
  .text
--- 66,78 ----
  maxtyp:	.=.+2
  relfil:	.=.+2
  ibufp:	.=.+2
! txtp:	.=.+8+1024.
! relp:	.=.+8+1024.
  swapf:	.=.+2
  rlimit:	.=.+2
  passno:	.=.+2
  endtable:.=.+2
! inbuf:	.=.+1024.
! .data
! usymtab: _end
  .text
diff -c as.old/as29.s as/as29.s
*** as.old/as29.s	Tue Aug 22 17:12:29 1989
--- as/as29.s	Sun Dec 24 15:06:33 1989
***************
*** 229,234 ****
--- 229,235 ----
  27;000000 /.bss
  32;000000 /.comm
  
+ 	.text
  start:
  	mov	(sp)+,r0
  	tst	(sp)+
***************
*** 263,273 ****
  	mov	r1,a.tmp1
  	mov	(sp)+,a.tmp2
  	mov	(sp)+,a.tmp3
! 	jsr	r5,ofile; a.tmp1
  	mov	r0,txtfil
! 	jsr	r5,ofile; a.tmp2
  	mov	r0,fbfil
! 	jsr	r5,ofile; a.tmp3
  	mov	r0,symf
  	mov	r0,fin
  
--- 264,277 ----
  	mov	r1,a.tmp1
  	mov	(sp)+,a.tmp2
  	mov	(sp)+,a.tmp3
! 	mov	a.tmp1,-(sp)
! 	jsr	pc,ofile
  	mov	r0,txtfil
! 	mov	a.tmp2,-(sp)
! 	jsr	pc,ofile
  	mov	r0,fbfil
! 	mov	a.tmp3,-(sp)
! 	jsr	pc,ofile
  	mov	r0,symf
  	mov	r0,fin
  
***************
*** 279,292 ****
  	mov	(sp)+,r1
  	tst	r0
  	jpl	1f
! 
! 	jsr	r5,filerr; a.outp
  1:
  	mov	r0,fout
  	jmp	go
! 
  a.outp1:	a.out
! 
! / overlaid buffer
! inbuf	= start
! .	= inbuf+512.
--- 283,293 ----
  	mov	(sp)+,r1
  	tst	r0
  	jpl	1f
! 	mov	a.outp,-(sp)
! 	jsr	pc,filerr
  1:
  	mov	r0,fout
  	jmp	go
! 	.data
  a.outp1:	a.out
! 	.text
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads