Commit | Line | Data |
---|---|---|
8d8c20ed DR |
1 | / |
2 | / | |
3 | ||
4 | / PDP-11 assembler pass 0 | |
5 | ||
6 | jmp start | |
7 | go: | |
8 | jsr pc,assem | |
9 | movb pof,r0 | |
10 | sys write; outbuf; 512. | |
11 | jes wrterr | |
12 | movb pof,r0 | |
13 | sys close | |
14 | movb fbfil,r0 | |
15 | sys close | |
16 | tstb errflg | |
17 | bne aexit | |
18 | jsr r5,fcreat; a.tmp3 | |
19 | mov r0,r1 | |
20 | mov symend,0f | |
21 | sub $usymtab,0f | |
22 | sys indir; 9f | |
23 | jes wrterr | |
24 | .data | |
25 | 9: sys write; usymtab; 0:.. | |
26 | .text | |
27 | mov r1,r0 | |
28 | sys close | |
29 | sys exec; fpass2; 1f | |
30 | mov $fpass2,r0 | |
31 | jsr r5,filerr; "?\n | |
32 | ||
33 | aexit: | |
34 | sys unlink; a.tmp1 | |
35 | sys unlink; a.tmp2 | |
36 | sys unlink; a.tmp3 | |
37 | mov $3,r0 | |
38 | sys exit | |
39 | .data | |
40 | 1: | |
41 | fpass2 | |
42 | globfl | |
43 | outfl | |
44 | outfp: | |
45 | outfile | |
46 | a.tmp1 | |
47 | a.tmp2 | |
48 | a.tmp3 | |
49 | 0 | |
50 | fpass2: | |
51 | </lib/as2\0> | |
52 | globfl: | |
53 | unglob=.+1 | |
54 | <-\0\0> | |
55 | outfl: | |
56 | <-o\0> | |
57 | outfile: | |
58 | <a.out\0> | |
59 | 3: | |
60 | <-g\0> | |
61 | .even | |
62 | .text | |
63 | ||
64 | filerr: | |
65 | mov r4,-(sp) | |
66 | mov r0,r4 | |
67 | mov r4,0f | |
68 | clr r0 | |
69 | 1: | |
70 | tstb (r4)+ | |
71 | beq 1f | |
72 | inc r0 | |
73 | br 1b | |
74 | 1: | |
75 | mov r0,1f | |
76 | mov $1,r0 | |
77 | sys indir; 9f | |
78 | .data | |
79 | 9: sys write; 0:0; 1:0 | |
80 | .text | |
81 | mov r5,0f | |
82 | mov $1,0f+2 | |
83 | tstb 1(r5) | |
84 | beq 1f | |
85 | mov $2,0f+2 | |
86 | 1: | |
87 | mov $1,r0 | |
88 | sys indir; 9f | |
89 | .data | |
90 | 9: sys write; 0:0; 1 | |
91 | .text | |
92 | tst (r5)+ | |
93 | mov (sp)+,r4 | |
94 | rts r5 | |
95 | ||
96 | fcreat: | |
97 | mov r4,-(sp) | |
98 | mov (r5)+,r4 | |
99 | mov r4,0f | |
100 | 1: | |
101 | sys indir; 9f | |
102 | .data | |
103 | 9: sys stat; 0:..; outbuf | |
104 | .text | |
105 | bec 2f | |
106 | mov r4,0f | |
107 | sys indir; 9f | |
108 | .data | |
109 | 9: sys creat; 0:..; 444 | |
110 | .text | |
111 | bes 2f | |
112 | mov (sp)+,r4 | |
113 | rts r5 | |
114 | 2: | |
115 | incb 9.(r4) | |
116 | cmpb 9.(r4),$'z | |
117 | blos 1b | |
118 | mov r4,r0 | |
119 | jsr r5,filerr; "?\n | |
120 | mov $3,r0 | |
121 | sys exit | |
122 | ||
123 | .=.+2 | |
124 | wrterr: | |
125 | mov $1,r0 | |
126 | sys write; 9f; 9f-8f | |
127 | inc errflg | |
128 | jbr aexit | |
129 | 9: <as: Write error on temp file.\n>; 8: |