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