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