/ a3 -- pdp-11 assembler pass 2 assem: jsr pc,readop jsr pc,checkeos br ealoop mov r4,-(sp) jsr pc,readop cmp (sp),$1 bne 1f mov $2,(sp) mov r4,numval jsr pc,readop 1: cmp r4,$'= beq 4f cmp r4,$': beq 1f mov r4,savop mov (sp)+,r4 jsr pc,opline br ealoop 1: mov (sp)+,r4 cmp r4,$200 bhis 1f cmp r4,$2 beq 3f jsr r5,error; 'x br assem 1: cmp dot,symtab+2(r4) beq assem jsr r5,error; 'p br assem 3: mov numval,r4 jsr pc,fbadv br assem 4: jsr pc,readop jsr pc,expres mov (sp)+,r1 cmp r1,$200 /test for dot bne 1f bic $40,r3 cmp r3,dot-2 / can't change relocation bne 2f mov r2,-(sp) jsr r5,flush; txtp jsr r5,flush; relp mov (sp)+,r2 sub dot,r2 add r2,dot mov *tseekp,r0 add r2,r0 mov r0,*tseekp jsr r5,oset; txtp mov *rseekp,r0 add r2,r0 mov r0,*rseekp jsr r5,oset; relp br ealoop 2: jsr r5,error; '. br ealoop 1: cmp r3,$40 bne 1f jsr r5,error; 'r 1: bic $37,symtab(r1) bic $!37,r3 bne 1f clr r2 1: bisb r3,symtab(r1) mov r2,symtab+2(r1) ealoop: cmp r4,$'\n beq 1f cmp r4,$'\e bne assem rts pc 1: inc line br assem checkeos: cmp r4,$'\n beq 1f cmp r4,$'; beq 1f cmp r4,$'\e beq 1f add $2,(sp) 1: rts pc fbadv: movb nxtfbr(r4),curfbr(r4) asl r4 mov nxtfb(r4),curfb(r4) mov nxtfbp(r4),r1 bne 1f mov fbbufp,r1 1: cmpb r4,(r1)+ beq 1f tstb (r1)+ bpl 2f dec r1 br 1f 2: tst (r1)+ br 1b 1: movb (r1)+,r0 mov (r1)+,nxtfb(r4) mov r1,nxtfbp(r4) asr r4 movb r0,nxtfbr(r4) rts pc