1 "  ******************************************************
  2 "  *                                                    *
  3 "  *                                                    *
  4 "  * Copyright (c) 1972 by Massachusetts Institute of   *
  5 "  * Technology and Honeywell Information Systems, Inc. *
  6 "  *                                                    *
  7 "  *                                                    *
  8 "  ******************************************************
  9 
 10 "
 11 " Modified 770617 by PG to add clock, vclock, and stacq.
 12 " Modified 780329 by PCK to add stackframeptr, stackbaseptr, environmentptr, & codeptr builtins
 13 " Modified 780828 by PG to delete pos_dif_fun
 14 " Modified 25 Apr 1979 by PCK to implement 4-bit decimal.  digit_to_bit was added.
 15 " Modified 25 Jul 1979 by PCK to implement rank and byte builtins.
 16 " Modified 790807 by PG to delete jump_three_way.
 17 " Modified 820726 BIM wordno, segno
 18 "
 19 " Format of opcode_info entries:
 20 "
 21 " dcl     1 op_info           aligned based,
 22 "         2 action1           bit (6) unal,
 23 "         2 action2           bit (6) unal,
 24 "         2 macro             bit (18) unal,
 25 "         2 delta             bit (2) unal,
 26 "         2 call_code         bit (4) unal;
 27 "
 28 "
 29           name      opcode_info
 30           segdef    opcode_info
 31           segdef    last_opcode
 32           segdef    table
 33 "
 34 opcode_info:
 35 "
 36 class_0:
 37 class_1:
 38           vfd       6/5                 zero opcode
 39           vfd       6/3,6/1             add
 40           vfd       6/3,6/1             sub
 41           vfd       6/3,6/1             mult
 42           vfd       6/3,6/1             div
 43           vfd       6/3,6/1             negate
 44           vfd       6/3,6/2             exp
 45 "
 46 class_2:
 47           vfd       6/5                 unused
 48           vfd       6/3,6/3             and_bits
 49           vfd       6/3,6/3             or_bits
 50           vfd       6/3,6/3             xor_bits
 51           vfd       6/3,6/3             not_bits
 52           vfd       6/3,6/14            cat_string
 53           vfd       6/3,6/33,18/470     bool_fun
 54 "
 55 class_3:
 56           vfd       6/5                 unused
 57           vfd       6/1                 assign
 58           vfd       6/1                 assign_size_ck
 59           vfd       6/3,6/18,18/308     assign_zero
 60           vfd       6/4                 copy_words
 61           vfd       6/4                 copy_string
 62           vfd       6/4                 make_desc
 63           vfd       6/1                 assign_round
 64           vfd       6/1                 pack
 65           vfd       6/1                 unpack
 66 "
 67 class_4:
 68           vfd       6/5                 unused
 69           vfd       6/5                 unused
 70           vfd       6/5                 unused
 71           vfd       6/5                 unused
 72           vfd       6/3,6/4             less_than
 73           vfd       6/3,6/4             greater_than
 74           vfd       6/3,6/4             equal
 75           vfd       6/3,6/4             not_equal
 76           vfd       6/3,6/4             less_or_equal
 77           vfd       6/3,6/4             greater_or_equal
 78 "
 79 class_5:
 80           vfd       6/5                 unused
 81           vfd       6/4                 jump
 82           vfd       6/4                 jump_true
 83           vfd       6/4                 jump_false
 84           vfd       6/4                 jump_if_lt
 85           vfd       6/4                 jump_if_gt
 86           vfd       6/4                 jump_if_eq
 87           vfd       6/4                 jump_if_ne
 88           vfd       6/4                 jump_if_le
 89           vfd       6/4                 jump_if_ge
 90 "
 91 class_6:
 92           vfd       6/5                 unused
 93           vfd       6/4                 std_arg_list
 94           vfd       6/4                 unused
 95           vfd       6/4                 std_call
 96           vfd       6/4                 unused
 97           vfd       6/4                 std_entry
 98           vfd       6/4                 unused
 99           vfd       6/4                 ex_prologue
100           vfd       6/4                 allot_auto
101           vfd       6/6                 param_ptr
102           vfd       6/6                 param_desc_ptr
103           vfd       6/4                 std_return
104           vfd       6/4                 allot_ctl
105           vfd       6/4                 free_ctl
106 "
107 class_7:
108           vfd       6/5                 mod_bit
109           vfd       6/5                 mod_byte
110           vfd       6/5                 mod_half
111           vfd       6/4                 mod_word
112 "
113 class_8:
114           vfd       6/3,6/6,18/108      bit_to_char
115           vfd       6/3,6/6,18/109      bit_to_word
116           vfd       6/3,6/6,18/112      char_to_word
117           vfd       6/3,6/6,18/404      half_to_word
118           vfd       6/3,6/6,18/116      word_to_mod2
119           vfd       6/3,6/6,18/117      word_to_mod4
120           vfd       6/3,6/6,18/118      word_to_mod8
121           vfd       6/3,6/5,18/1        rel_fun
122           vfd       6/3,6/5,18/10       baseno_fun
123           vfd       6/3,6/19,18/284     desc_size
124           vfd       6/5                 bit_pointer
125           vfd       6/3,6/15            index_before_fun
126           vfd       6/3,6/15            index_after_fun
127           vfd       6/3,6/25,18/710     verify_ltrim_fun
128           vfd       6/3,6/25,18/711     verify_rtrim_fun
129           vfd       6/3,6/6,18/738      digit_to_bit
130 "
131 class_9:
132           vfd       6/3,6/20,18/522,2/0,4/6       ceil_fun  01001 0000
133           vfd       6/3,6/20,18/525,2/0,4/7       floor_fun       0001
134           vfd       6/3,6/22,18/529,2/0,4/8       round_fun       0010
135           vfd       6/3,6/31,18/209,2/0,4/9       sign_fun        0011
136           vfd       6/3,6/7,18/0,2/0,4/10         abs_fun         0100
137           vfd       6/3,6/8,18/520,2/0,4/11       trunc_fun       0101
138           vfd       6/3,6/37                      byte_fun        0110
139           vfd       6/3,6/38                      rank_fun        0111
140           vfd       6/3,6/15,18/256               index_rev_fun   1000
141           vfd       6/3,6/25,18/369               search_rev_fun  1001
142           vfd       6/3,6/25,18/368               verify_rev_fun  1010
143           vfd       6/3,6/5,18/2                  wordno_fun      1011
144           vfd       6/3,6/5,18/9                  segno_fun       1100
145           vfd       6/3,6/5,18/4                  bitno_fun       1101
146           vfd       6/3,6/5,18/3                  charno_fun      1110
147 "
148 class_10:
149           vfd       6/3,6/15            index_fun
150           vfd       6/3,6/17            off_fun
151           vfd       6/3,6/29,18/399,2/0,4/9       complex_fun
152           vfd       6/3,6/29,18/400,2/0,4/11      conjg_fun
153           vfd       6/3,6/9,18/387,2/1  mod_fun
154           vfd       6/3,6/24,18/534     repeat_fun
155           vfd       6/3,6/25,18/539     verify_fun
156           vfd       6/3,6/26,18/104     translate_fun
157           vfd       6/4                 unused
158           vfd       6/3,6/30,18/401,2/0,4/6       real_fun
159           vfd       6/3,6/30,18/402,2/0,4/7       imag_fun
160           vfd       6/3,6/16            length_fun
161           vfd       6/3,6/21,18/271,2/0,4/12      pl1_mod_fun
162           vfd       6/3,6/25,18/540     search_fun
163           vfd       6/3,6/32,18/614     allocation_fun
164           vfd       6/3,6/24,18/547     reverse_fun
165 "
166 class_11:
167           vfd       6/6                 addr_fun
168           vfd       6/6                 addr_fun_bits
169           vfd       6/6                 ptr_fun
170           vfd       6/6                 baseptr_fun
171           vfd       6/6                 addrel_fun
172           vfd       6/6                 codeptr_fun
173           vfd       6/6                 environmentptr_fun
174           vfd       6/6                 stackbaseptr_fun
175           vfd       6/6                 stackframeptr_fun
176           vfd       6/6,6/1             setcharno_fun
177           vfd       6/6,6/2             addcharno_fun
178           vfd       6/6,6/3             setbitno_fun
179           vfd       6/6,6/4             addbitno_fun
180 "
181 class_12:
182           vfd       6/2                 min_fun
183           vfd       6/2                 max_fun
184 "
185 class_13:
186           vfd       6/4                 unused
187           vfd       6/3,6/18,18/533     stack_ptr
188           vfd       6/4                 empty_area
189           vfd       6/5                 unused
190           vfd       6/4                 enable_on
191           vfd       6/4                 revert_on
192           vfd       6/4                 signal_on
193           vfd       6/3,6/27,18/208     lock_fun
194           vfd       6/3,6/35,18/722     stacq_fun
195           vfd       6/3,6/36,18/723     clock_fun
196           vfd       6/3,6/36,18/724     vclock_fun
197 "
198 class_14:
199           vfd       6/3,6/10,18/246     bound_ck
200           vfd       6/3,6/10,18/263     range_ck
201           vfd       6/4                 loop
202           vfd       6/4                 join
203           vfd       6/4                 allot_based
204           vfd       6/4                 free_based
205 "
206 class_15:
207           vfd       6/5                 unused
208           vfd       6/4                 r_parn
209           vfd       6/4                 l_parn
210           vfd       6/4                 r_format
211           vfd       6/4                 c_format
212           vfd       6/4                 f_format
213           vfd       6/4                 e_format
214           vfd       6/4                 b_format
215           vfd       6/4                 a_format
216           vfd       6/4                 x_format
217           vfd       6/4                 skip_format
218           vfd       6/4                 column_format
219           vfd       6/4                 page_format
220           vfd       6/4                 line_format
221           vfd       6/4                 bn_format
222 "
223 class_16:
224           vfd       6/4                 get_list_trans
225           vfd       6/4                 get_edit_trans
226           vfd       6/4                 get_data_trans
227           vfd       6/4                 put_list_trans
228           vfd       6/4                 put_edit_trans
229           vfd       6/4                 put_data_trans
230           vfd       6/4                 terminate_trans
231           vfd       6/4                 stream_prep
232           vfd       6/4                 record_io
233           vfd       6/4                 fortran_read
234           vfd       6/4                 fortran_write
235           vfd       6/4                 ftn_file_manip
236           vfd       6/4                 ftn_trans_loop
237           vfd       6/4                 put_control
238           vfd       6/4                 put_field
239           vfd       6/4                 put_field_chk
240 "
241 class_17:
242           vfd       6/5                 unused
243           vfd       6/4                 return_value
244           vfd       6/4                 allot_var
245           vfd       6/4                 free_var
246           vfd       6/4                 get_file
247           vfd       6/4                 get_string
248           vfd       6/4                 put_file
249           vfd       6/4                 put_string
250           vfd       6/4                 open_file
251           vfd       6/4                 close_file
252           vfd       6/4                 read_file
253           vfd       6/4                 write_file
254           vfd       6/4                 locate_file
255           vfd       6/4                 do_fun
256           vfd       6/4                 do_spec
257 "
258 class_18:
259           vfd       6/4                 rewrite_file
260           vfd       6/4                 delete_file
261           vfd       6/4                 unlock_file
262           vfd       6/4                 lock_file
263           vfd       6/4                 unused
264           vfd       6/4                 refer
265           vfd       6/4                 prefix_plus
266           vfd       6/4                 nop
267 "
268 class_19:
269           vfd       6/3,6/34,18/94      sqrt_fun
270           vfd       6/3,6/34,18/227     sin_fun
271           vfd       6/3,6/34,18/265     sind_fun
272           vfd       6/3,6/34,18/329     cos_fun
273           vfd       6/3,6/34,18/336     cosd_fun
274           vfd       6/3,6/34,18/342     tan_fun
275           vfd       6/3,6/34,18/422     tand_fun
276           vfd       6/3,6/34,18/424     asin_fun
277           vfd       6/3,6/34,18/426     asind_fun
278           vfd       6/3,6/34,18/428     acos_fun
279           vfd       6/3,6/34,18/430     acosd_fun
280           vfd       6/3,6/34,18/432     atan_fun
281           vfd       6/3,6/34,18/434     atand_fun
282           vfd       6/3,6/34,18/477     log2_fun
283           vfd       6/3,6/34,18/482     log_fun
284           vfd       6/3,6/34,18/496     log10_fun
285 "
286 class_20:
287           vfd       6/3,6/34,18/500     exp_fun
288 "
289 last_opcode:
290           vfd       36/*                all of opcode_info before this line
291 "
292 table:
293           zero      0,class_0-class_0
294           zero      0,class_1-class_0
295           zero      0,class_2-class_0
296           zero      0,class_3-class_0
297           zero      0,class_4-class_0
298           zero      0,class_5-class_0
299           zero      0,class_6-class_0
300           zero      0,class_7-class_0
301           zero      0,class_8-class_0
302           zero      0,class_9-class_0
303           zero      0,class_10-class_0
304           zero      0,class_11-class_0
305           zero      0,class_12-class_0
306           zero      0,class_13-class_0
307           zero      0,class_14-class_0
308           zero      0,class_15-class_0
309           zero      0,class_16-class_0
310           zero      0,class_17-class_0
311           zero      0,class_18-class_0
312           zero      0,class_19-class_0
313           zero      0,class_20-class_0
314 "
315           end