Thread View: comp.bugs.2bsd
1 messages
1 total messages
Started by Steven M. Schultz
Wed, 27 Dec 1989 21:04
/lib/as2 can't be built shared or split +FIX
Author: Steven M. Schultz
Date: Wed, 27 Dec 1989 21:04
Date: Wed, 27 Dec 1989 21:04
1621 lines
26773 bytes
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