A large commit.
[pdp8.git] / sw / rescue / lab8e_goettingen / disk2_11 / rkb / paroff / hppw.ra
1 / -+-+-+-+-+ \ e H P P W . R A \ e -+-+-+-+-+
2 SECT #PARTW
3 ENTRY S1
4 ENTRY S2
5 ENTRY S3
6 ENTRY S4
7 ENTRY S5
8 ENTRY S6
9 ENTRY T1
10 ENTRY T2
11 ENTRY T3
12 ENTRY Q1
13 ENTRY Q2
14 ENTRY Q3
15 ENTRY Q4
16 ENTRY H1
17 ENTRY H2
18 ENTRY LOC / RETURNS ADR. OF PARAMETER FLOATED
19 ENTRY IATX / CONVERT FRACTION INTO 12 BIT INTEGER R.J.Z.F.
20 ENTRY IXTA / INTEGER --> FRACTIONAL CONVERSION
21 BASE 0 / STAY ON CALLERS BASE
22 ORG .
23 BSW= 7002
24 /
25 S1, STARTD
26 FLDA ADOS1
27 JA PARTW
28 S2, STARTD
29 FLDA ADOS2
30 JA PARTW
31 S3, STARTD
32 FLDA ADOS3
33 JA PARTW
34 S4, STARTD
35 FLDA ADOS4
36 JA PARTW
37 S5, STARTD
38 FLDA ADOS5
39 JA PARTW
40 S6, STARTD
41 FLDA ADOS6
42 JA PARTW
43 Q1, STARTD
44 FLDA ADOQ1
45 JA PARTW
46 Q2, STARTD
47 FLDA ADOQ2
48 JA PARTW
49 Q3, STARTD
50 FLDA ADOQ3
51 JA PARTW
52 Q4, STARTD
53 FLDA ADOQ4
54 JA PARTW
55 T1, STARTD
56 FLDA ADOT1
57 JA PARTW
58 T2, STARTD
59 FLDA ADOT2
60 JA PARTW
61 T3, STARTD
62 FLDA ADOT3
63 JA PARTW
64 H1, STARTD
65 FLDA ADOH1
66 JA PARTW
67 H2, STARTD
68 FLDA ADOH2
69 JA PARTW
70 /
71 /
72 IXTA, STARTD
73 FLDA IN0
74 JA CON1
75 IATX,
76 STARTD
77 FLDA IN1 / INSERT THE CORRECT INSTRUCTION
78 JA CON1 / AND CONTINUE
79 LOC,
80 STARTD
81 FLDA IN2
82 JA CON1
83 /
84 IN0, JA AXTA
85 IN1, FNOP
86 FNOP
87 IN2, JA ALOC
88 /
89 CON1,
90 FSTA INS / INSERT THE CORRECT INSTRUCTION INTO INS
91 FLDA 10*3 / GET RETURN ADR.
92 FSTA RETS
93 FLDA 0 / GET FIRST PARAMETER
94 FADD TWO
95 FSTA 3
96 FCLA / CLEAR EXP. FOR LOC FUNCTION
97 FLDA% 3 / ADR. OF FIRST PARAMETER --> FAC
98 FSTA 3 / STORE ADR. OF PARAMETER
99 INS, .-.
100 .-.
101 FCLA / CLEAR ARG,ARG+1
102 FSTA ARG
103 STARTF
104 FLDA% 3 / PARAMETER --> FAC
105 SETX ARG+1 / CONVERSION OUTPUT ADR.
106 ATX 1 / CONVERT INTO INTEGER AND STORE INTO ARG+2
107 FLDA ARG
108 RETURN, STARTF
109 RETS, JA .-.
110 AXTA,
111 STARTF
112 FLDA% 3 / THIRD WORD OF PARAMETER --> X1
113 FSTA ARG
114 SETX ARG+1 / MAKE ARG+2 TO X1
115 XTA 1
116 JA RETS
117 ANORM, 27 / FAC EXPONENT FOR NORMALISATION
118 ORG .+2
119 DJA, JA 0 / CONSTANT TO GET THE CORRECT LOC
120 /
121 ALOC,
122 FSUB DJA / SUBTRACT JA FROM THE ADR. TO GET THE LOCATION
123 FSTA ANORM+1
124 STARTF
125 FLDA ANORM
126 FNORM
127 JA RETS
128 /
129 /
130 /
131 PARTW,
132 FSTA REMI / INSERT THE CORRECT REMOTE INSTRUCTION
133 FLDA 10*3 / RET. ADR. --> FAC
134 FSTA GOBAK / AND STORE INTO RETURN LOCATION
135 FLDA 0 / LOAD ADR. OF ARGUMENT LIST --> FAC
136 FADD TWO / INCREMENT FOR FIRST ARGUMENT
137 FSTA 3 / TEMPORARY FOR SECOND INDIRECT REF.
138 FLDA% 3
139 FSTA 3
140 STARTF
141 FLDA% 3 / FIRST PARAMETER
142 FSTA ARG / --> ARG
143 TRAP4 DOIT8 / EXECUTE THE SHIFT & STORE INSTRUCTION WITH PDP8
144 FLDA ARG / LOAD THE RESULT --> FAC
145 GOBAK, JA .-. / HOME TO MAMA
146 TWO, 0
147 2
148 /
149 / PDP 8 TASK
150 /
151 SECT8 DOIT
152 ADOS1, JMP DOS1
153 ADOS2, JMP DOS2
154 ADOS3, JMP DOS3
155 ADOS4, JMP DOS4
156 ADOS5, JMP DOS5
157 ADOS6, JMP DOS6
158 ADOQ1, JMP DOQ1
159 ADOQ2, JMP DOQ2
160 ADOQ3, JMP DOQ3
161 ADOQ4, JMP DOQ4
162 ADOT1, JMP DOT1
163 ADOT2, JMP DOT2
164 ADOT3, JMP DOT3
165 ADOH1, JMP DOH1
166 ADOH2, JMP DOH2
167 NOP / SHOULD BE HERE SINCE FPP PICKS UP 2 WORDS
168 ARG, ORG .+3
169 /
170 /
171 CLEROT, JMS CLEAR / CLEAR ARG, ROTATE AC 6 BITS AND JMP STARG2
172 JMS SSL6
173 JMP STARG2
174 /
175 /
176 CLBROT, JMS CLEAR / CLEARS ARG, SWAP BYTES, ROTATE AC 6 BITS AND JMP STARG2
177 AND RHALF / CLEAR LEFT HALF OF AC
178 JMP STARG2
179 /
180 /
181 TMP1, ORG .+1 / STORAGE FOR AC
182 CLEAR, .-.
183 DCA TMP1
184 DCA ARG+1
185 DCA ARG
186 TAD TMP1
187 JMP% CLEAR
188 /
189 /
190 SSL6, .-. / LOGICAL SHIFT 6 BITS TO THE RIGHT
191 BSW
192 AND RHALF / CLEAR LEFT HALF OF AC
193 JMP% SSL6
194 RHALF, 0077
195 /
196 /
197 DOS1, TAD ARG
198 JMP CLEROT
199 DOS2, TAD ARG
200 JMP CLBROT
201 DOS3, TAD ARG+1
202 JMP CLEROT
203 DOS4, TAD ARG+1
204 JMP CLBROT
205 DOS5, TAD ARG+2
206 JMP CLEROT
207 DOS6, TAD ARG+2
208 JMP CLBROT
209 DOT1, TAD ARG
210 JMS CLEAR
211 JMP STARG2
212 DOT2, TAD ARG+1
213 JMS CLEAR
214 JMP STARG2
215 DOT3, TAD ARG+2
216 JMS CLEAR
217 JMP STARG2
218 DOQ1, / QUARTERS NOT YET IMPLEMENTED
219 DOQ2,
220 DOQ3,
221 DOQ4,
222 DOH1,
223 CLA CLL
224 TAD ARG+1
225 JMS SSL6
226 DCA ARG+2
227 TAD ARG+0
228 JMS SSL6
229 DCA ARG+1
230 TAD ARG
231 AND RHALF
232 BSW
233 TAD ARG+2
234 DCA ARG+2
235 DCA ARG
236 JMP HOME
237 DOH2,
238 CLA CLL
239 DCA ARG
240 TAD ARG+1
241 AND RHALF
242 DCA ARG+1
243 JMP HOME
244 /
245 /
246 DOIT8, .-.
247 REMI, JMP .-.
248 NOP / MUST BE HERE SINCE FPP STORES 2 WORDS INTO REMI
249 STARG2, DCA ARG+2
250 HOME,
251 CDF CIF
252 JMP% DOIT8 / HOME TO FPP12
253 END
254 \1a