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