/ / / a9 -- pdp-11 assembler pass 1 eae = 0 / key to types / 0 undefined / 1 absolute / 2 text / 3 data / 4 bss / 5 flop freg,dst (movfo, = stcfd) / 6 branch / 7 jsr / 10 rts / 11 sys / 12 movf (=ldf,stf) / 13 double operand (mov) / 14 flop fsrc,freg (addf) / 15 single operand (clr) / 16 .byte / 17 string (.ascii, "<") / 20 .even / 21 .if / 22 .endif / 23 .globl / 24 register / 25 .text / 26 .data / 27 .bss / 30 mul,div, etc / 31 sob / 32 .comm / 33 estimated text / 34 estimated data / 35 jbr / 36 jeq, jne, etc .data symtab: / special variables <.\0\0\0\0\0\0\0>; dotrel:02; dot:000000 <..\0\0\0\0\0\0>; 01; dotdot:000000 / register ; 24;000000 ; 24;000001 ; 24;000002 ; 24;000003 ; 24;000004 ; 24;000005 ; 24;000006 ; 24;000007 .if eae /eae & switches ; 01;177570 ; 01;177300 ; 01;177302 ; 01;177304 ; 01;177306 ; 01;177310 ; 01;177311 ; 01;177312 ; 01;177314 ; 01;177316 .endif / double operand ; 13;0010000 ; 13;0110000 ; 13;0020000 ; 13;0120000 ; 13;0030000 ; 13;0130000 ; 13;0040000 ; 13;0140000 ; 13;0050000 ; 13;0150000 ; 13;0060000 ; 13;0160000 / branch ; 06;0000400 ; 06;0001000 ; 06;0001400 ; 06;0002000 ; 06;0002400 ; 06;0003000 ; 06;0003400 ; 06;0100000 ; 06;0100400 ; 06;0101000 ; 06;0101400 ; 06;0102000 ; 06;0102400 ; 06;0103000 ; 06;0103000 ; 06;0103000 ; 06;0103400 ; 06;0103400 ; 06;0103400 / jump/branch type ; 35;0000400 ; 36;0001000 ; 36;0001400 ; 36;0002000 ; 36;0002400 ; 36;0003000 ; 36;0003400 ; 36;0100000 ; 36;0100400 ; 36;0101000 ; 36;0101400 ; 36;0102000 ; 36;0102400 ; 36;0103000 ; 36;0103000 ; 36;0103000 ; 36;0103400 ; 36;0103400 ; 36;0103400 / single operand ; 15;0005000 ; 15;0105000 ; 15;0005100 ; 15;0105100 ; 15;0005200 ; 15;0105200 ; 15;0005300 ; 15;0105300 ; 15;0005400 ; 15;0105400 ; 15;0005500 ; 15;0105500 ; 15;0005600 ; 15;0105600 ; 15;0005700 ; 15;0105700 ; 15;0006000 ; 15;0106000 ; 15;0006100 ; 15;0106100 ; 15;0006200 ; 15;0106200 ; 15;0006300 ; 15;0106300 ; 15;0000100 ; 15;0000300 / jsr ; 07;0004000 / rts ; 010;000200 / simple operand ; 011;104400 / flag-setting ; 01;0000241 ; 01;0000242 ; 01;0000244 ; 01;0000250 ; 01;0000261 ; 01;0000262 ; 01;0000264 ; 01;0000270 / floating point ops ; 01;170000 ; 01;170001 ; 01;170011 ; 01;170002 ; 01;170012 ; 15;170400 ; 15;170700 ; 15;170600 ; 15;170500 ; 12;172400 ; 14;177000 ; 05;175400 ; 14;177400 ; 05;176000 ; 14;172000 ; 14;173000 ; 14;171000 ; 14;174400 ; 14;173400 ; 14;171400 ; 14;176400 ; 05;175000 ; 15;170100 ; 15;170200 ; 24;000000 ; 24;000001 ; 24;000002 ; 24;000003 ; 24;000004 ; 24;000005 / 11/45 operations ; 30;072000 ; 30;073000 ; 30;070000 .if eae-1 ; 30;070000 ; 30;071000 ; 30;072000 ; 30;073000 .endif ; 30;071000 ; 07;074000 ; 15;006700 ; 11;006400 ; 31;077000 / specials <.byte\0\0\0>; 16;000000 <.even\0\0\0>; 20;000000 <.if\0\0\0\0\0>; 21;000000 <.endif\0\0>; 22;000000 <.globl\0\0>; 23;000000 <.text\0\0\0>; 25;000000 <.data\0\0\0>; 26;000000 <.bss\0\0\0\0>; 27;000000 <.comm\0\0\0>; 32;000000 ebsymtab: start: sys signal; 2; 1 ror r0 bcs 1f sys signal; 2; aexit 1: mov (sp)+,r0 tst (sp)+ 1: mov (sp),r1 cmpb (r1),$'- bne 1f tst (sp)+ dec r0 cmpb 1(r1),$'u bne 2f movb $'g,unglob br 1b 2: tstb 1(r1) bne 2f movb $'g,unglob br 1b 2: cmpb 1(r1),$'o bne 1f mov (sp),outfp tst (sp)+ dec r0 br 1b 1: movb r0,nargs tst -(sp) mov sp,curarg jsr r5,fcreat; a.tmp1 movb r0,pof jsr r5,fcreat; a.tmp2 movb r0,fbfil jsr pc,setup jmp go setup: mov $symtab,r1 1: clr r3 mov $8,r2 mov r1,-(sp) 2: movb (r1)+,r4 beq 2f add r4,r3 swab r3 sob r2,2b 2: clr r2 div $hshsiz,r2 ashc $1,r2 add $hshtab,r3 4: sub r2,r3 cmp r3,$hshtab bhi 3f add $2*hshsiz,r3 3: tst -(r3) bne 4b mov (sp)+,r1 mov r1,(r3) add $12.,r1 cmp r1,$ebsymtab blo 1b rts pc /overlay buffer inbuf = setup . =inbuf+512.