ASSEMBLY LISTING OF SEGMENT >special_ldd>install>1178>pl1_operators_.alm ASSEMBLED ON: 10/22/88 1141.5 mst Sat OPTIONS USED: list symbols ASSEMBLED BY: ALM Version 8.13 September 1988 ASSEMBLER CREATED: 10/17/88 1015.1 mst Mon 1 " *********************************************************** 2 " * * 3 " * Copyright, (C) Honeywell Bull Inc., 1987 * 4 " * * 5 " * Copyright, (C) Honeywell Limited, 1984 * 6 " * * 7 " * Copyright, (C) Honeywell Information Systems Inc., 1983 * 8 " * * 9 " * Copyright (c) 1972 by Massachusetts Institute of * 10 " * Technology and Honeywell Information Systems, Inc. * 11 " * * 12 " *********************************************************** 13 14 " HISTORY COMMENTS: 15 " 1) change(87-03-05,Huen), approve(87-03-05,MCR7629), 16 " audit(87-04-15,RWaters), install(87-05-14,MR12.1-1029): 17 " Fix PL/1 error 2138 - 18 " Update the comments in "call_ent_var_desc" and "call_ext_in_desc" to 19 " indicate the offset of the argument list is in x1. Fix PL/1 error 2122 - 20 " Allow Ceiling function work with negative fixed bin scaled numbers. 21 " 2) change(87-06-26,Huen), approve(87-06-26,MCR7732), 22 " audit(87-07-10,RWaters), install(87-11-30,MR12.2-1004): 23 " Fix bug2121 24 " 3) change(88-06-24,Huen), approve(88-06-24,MCR7916), 25 " audit(88-07-11,RWaters), install(88-07-15,MR12.2-1057): 26 " Fix high priority fortran error 510 - 27 " Fix bug causing fortran inquire statement gives incorrect response after 28 " the call to the condition handler. 29 " END HISTORY COMMENTS 30 31 32 " NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE 33 " 34 " pl1_operators_ MUST be bound with conversion program any_to_any_, put_format_, put_field_, 35 " and ALL of the math routines referenced from transfer vector 36 " 37 " NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE 38 " 39 " Operator Segment for PL/I Version II 40 " Barry Wolman 41 " March, 1969 42 " 43 " Modified: 19 October, 1971 by BLW 44 " Modified: 27 January, 1972 by BLW 45 " Modified: 2 April, 1972 by BLW 46 " Modified: 1 July, 1972 by RBSnyder for follow-on 47 " Modified: 21 July, 1972 by BLW to fix mod operators 48 " Modified: 21 November, 1972 by BLW to add controlled operators 49 " Modified: 28 February, 1973 by BLW for odd base register saving 50 " Modified: 2 June, 1973 by BLW to use EIS for string operations 51 " Modified: 7 April, 1974 by BLW to fix bug 1078 52 " Modified: 10 April, 1974 by BLW to fix bug 1083 53 " Modified: 15 August, 1974 by BLW to fix bugs 1170, 1171, 1201, and 1202 54 " Modified: 1 November, 1974 by RAB to fix bug 1245 55 " Modified: 4 November, 1974 by RAB to add ldi to return_words 56 " Modified: 6 November, 1974 by SHW for new call/push/return sequences 57 " Modified: 14 November, 1974 by RAB to fix bug 1254 58 " Modified: 3 January, 1975 by RHS to support quick record i/o 59 " Modified: 1 February, 1975 by RAB to fix bug 1318 60 " Modified: 5 May, 1975 by RAB for separate static and new trace 61 " Modified: 22 May, 1975 by RAB to fix bug 1348 62 " Modified: 25 June, 1975 by RAB for new segdefs 63 " Modified: 5 November 1975 by RAB for new area package 64 " Modified: 29 December 1975 by RAB to fix bug 1449 65 " Modified: 27 February, 1976 by GDC for DFAST new entries 66 " Modified: 2 March, 1976 by RHS for quick "put list"s, a subset of quick stream i/o 67 " Modified: 1 June, 1976 by RAB to use free_|free_ for alloc_storage 68 " Modified: 6 June, 1976 by RHS for quick "put edit"s 69 " Modified: 12 October 1976 by RAB to have signal ops save and restore ALL regs properly 70 " Modified: 3 December 1976 by RAB to implement long_profile 71 " Modified: 16 December 1976 by RAB to fix 1564 (pointer and offset operators) 72 " Modified: 23 December 1976 by RAB for after, before, ltrim, rtrim 73 " Modified: 24 March 1977 by RAB for new complex divide algorithm 74 " Modified: 10 May 1977 by MBW to use user free area instead of free_ 75 " Modified 770619 by PG to implement clock, vclock, and stacq 76 " Modified: 23 June 1977 by S. Webber to add ftn_open_element, ftn_file_manip_term 77 " operators 78 " Modified: 7/7/77 D. Levin change ftn_file_manip_term to ftn_get_area_ptr 79 " Modified: 7/7/77 by RAB to partially fix bug 1642. This partially 80 " removes formline_ code put in to fix bug 1074. 81 " Modified: 16 August 1977 by RAB to complete removal of formline_ code in 82 " returns(char(*)) 83 " Modified: 16 August 1977 by RAB to speed up long_profile operator 84 " Modified: 09/20/77 to extend trace interface to ALM and COBOL by P. Krupp. 85 " Modified: 19 December 1977 by DSL - implement "static" stack frame for fortran I/O. 86 " Refer to comments immediately preceding the label "fortran_read". 87 " Modified: 15 Feb 1978 by PCK to implement stop, return_main, set_main_flag and 88 " begin_return_main operators 89 " Modified: 21 March 1978 by DSL stack_frame.incl.alm changes. stack_frame.fio_ps_ptr 90 " changed to stack_frame.support_ptr. 91 " Modified: 15 June 1978 by PCK to implement size_check_uns_fx1 and size_check_uns_fx2 92 " operators 93 " Modified: 28 July 1978 by RAB to fix Fortran bug 169 in which amod failed if 2nd arg 94 " was negative 95 " Modified 781127 by PG to fix 1800 in which size_check_fx1 and size_check_uns_fx1 96 " changed the indicators 97 " Modified 790223 by PG to fix 1821 (many, many operators were using signed arithmetic 98 " on addresses in the upper when extending the stack!). Also removed 99 " a lot of unused labels and names. 100 " Modified 790608 by PG to add TCT tables. 101 " Modified 790705 by PG to fix 1846 (eaa,neg sequence used by many 102 " operators took faults on stacks = 128K. 103 " Modified 9 July 1979 by CRD to add new operator fortran_end. 104 " Modified 7 August 1979 by CRD to add new operator fort_dmod to fix 105 " bug 221 and to bring dmod into inline ALM code. 106 " Modified 791205 by PG to fix bug in TCT tables that caused code compiled by 25b 107 " to fail if trace was used, due to misplaced even pseudo-op. 108 " Modified 6 December 1979 by BSG for ix_rev_chars 109 " Modified 12 February 1980 by CRD to add to fort_math_names table. 110 " Modified 28 February 1980 by CRD to fix after/before for bit strings. (Bug 1915) 111 " Modified 28 February 1980 by CRD to change the way many operators restore pr0. 112 " Many operators did eppap operator_table, which doesn't work if trace 113 " is being used. Since the entry sequences store the operator pointer, 114 " these instructions were changed to eppap sp|stack_frame.operator_ptr,*. 115 " Modified 6 March 1980 by CRD to add three new operators: shorten_stack_protect_ind, 116 " save_stack_quick, and restore_stack_quick. 117 " Modified 22 October 1980 by CRD to add new operators for new Fortran 118 " intrinsic functions. 119 " Modified 7 November 1980 by M. N. Davidoff to fix bug 2033 in which longbs_to_bs18 120 " always returned zero. 121 " Modified 7 November 1980 by M. N. Davidoff to fix bug 2030 in which longbs_to_fx2 122 " didn't work for bit strings longer than 71 bits. 123 " Modified 8 February 1980 by M. N. Davidoff to fix bug 2041 in which ix_rev_chars 124 " failed when length(arg2)=1. 125 " Modified 27 February 1981 by PCK to make the alm entry operators 126 " preserve the contents of the lisp linkage pointer (pr1) 127 " when trace is active 128 " Modified 28 July by PCK to fix bug 2068 in which the current stack 129 " gets trashed if an asynchronous fault such as an alarm 130 " signal or page fault occurs when the stack is being extended 131 " by any of the divide operators. 132 " Modified 31 August 1981 by C R Davis to fix trans_sign_fl to set the 133 " indicators properly, and to add the blank field to 134 " ftn_open_element. 135 " Modified 27 October 1981 by C R Davis to add ftn_inquire_element. 136 " Modified 1 April 1982 by T G Oke to add fortran INTRINSICs for external reference 137 " Modified 10 May 1982 by H Hoover to add 'mpy_overflow_check'. 138 " Modified 27 August 1982 by T Oke to add 'fort_cleanup' and 139 " 'fort_return_mac'. 140 " Modified September 1982 by C. Hornig to have long_profile work with 141 " separate_static. 142 " Modified 21 September 1982 by T Oke to add 'fort_storage'. 143 " Modified 5 Novemeber 1982 by T Oke to add 'VLA_words_per_seg' to 144 " pl1_operators_ pointer referenced, and 'VLA_words_per_seg_' 145 " entry. 146 " Modified 14 January 1983 by T Oke to ensure indicator storage is 147 " is done in stack_frame.return_ptr+1 on all out-calls. 148 " References to PR6 changed to 'sp' for consistency. 149 " Internal operator calls to pl1_support routines also save 150 " and restore the indicators, using a new location 151 " 'temp_indicators'. 152 " Modified 23 November 1983 by H. Hoover to support Hexadecimal 153 " Floating Point (HFP). 154 " Modified 22 June 1984 by M. Mabey to add the fortran bit-shifting 155 " functions to the fort_math_names and hfp_fort_math_names 156 " tables. 157 " Modified 14 February 1985 by M. Mabey to change the transfers to 158 " the double precision arc_sine and arc_cosine routines to 159 " reference the new routine 'double_arc_sine_' 160 " Modified 10 April 1985 by M. Mabey to change the transfers to the 161 " double precision tangent routine to reference the new 162 " routine 'double_tangent_' 163 " Modified: 15 January, 1987 by SH to correct the comments in routines 164 " "call_ent_var_desc" and "call_ent_in_desc" to indicate 165 " the offset of the argument list is in x1. 166 " Modified: 16 January,1987 by SH & RW to allow ceiling function work 167 " with negative fixed bin scaled numbers. 168 " Modified: 24 June,1987 by SH to remove the 48 words extension instead 169 " of all stack extension upon return from the 'call_signal_' 170 " routine. 171 " Modified: 24 June, 1988 by SH to adjust the next_stackframe_ptr and 172 " perm_extension_ptr in the "ft_fast_call" routine. 173 000000 174 name pl1_operators_ 175 176 include stack_header 1-1 " BEGIN INCLUDE FILE ... stack_header.incl.alm 3/72 Bill Silver 1-2 " 1-3 " modified 7/76 by M. Weaver for *system links and more system use of areas 1-4 " modified 3/77 by M. Weaver to add rnt_ptr 1-5 " modified 7/77 by S. Webber to add run_unit_depth and assign_linkage_ptr 1-6 " modified 6/83 by J. Ives to add trace_frames and in_trace. 1-7 1-8 " HISTORY COMMENTS: 1-9 " 1) change(86-06-24,DGHowe), approve(86-06-24,MCR7396), 1-10 " audit(86-08-05,Schroth), install(86-11-03,MR12.0-1206): 1-11 " added the heap_header_ptr definition 1-12 " 2) change(86-08-12,Kissel), approve(86-08-12,MCR7473), 1-13 " audit(86-10-10,Fawcett), install(86-11-03,MR12.0-1206): 1-14 " Modified to support control point management. These changes were 1-15 " actually made in February 1985 by G. Palter. 1-16 " 3) change(86-10-22,Fawcett), approve(86-10-22,MCR7473), 1-17 " audit(86-10-22,Farley), install(86-11-03,MR12.0-1206): 1-18 " Remove the old_lot pointer and replace it with cpm_data_ptr. Use the 18 1-19 " bit pad after cur_lot_size for the cpm_enabled. This was done to save 1-20 " some space int the stack header and change the cpd_ptr unal to 1-21 " cpm_data_ptr (ITS pair). 1-22 " END HISTORY COMMENTS 1-23 000004 1-24 equ stack_header.cpm_data_ptr,4 ptr to control point for this stack 000006 1-25 equ stack_header.combined_stat_ptr,6 ptr to separate static area 1-26 000010 1-27 equ stack_header.clr_ptr,8 ptr to area containing linkage sections 000012 1-28 equ stack_header.max_lot_size,10 number of words allowed in lot (DU) 000012 1-29 equ stack_header.main_proc_invoked,10 nonzero if main proc was invoked in run unit (DL) 000012 1-30 equ stack_header.run_unit_depth,10 number of active run units stacked (DL) 000013 1-31 equ stack_header.cur_lot_size,11 DU number of words (entries) in lot 000013 1-32 equ stack_header.cpm_enabled,11 DL non-zero if control point management is enabled 000014 1-33 equ stack_header.system_free_ptr,12 ptr to system storage area 000016 1-34 equ stack_header.user_free_ptr,14 ptr to user storage area 1-35 000020 1-36 equ stack_header.parent_ptr,16 ptr to parent stack or null 000022 1-37 equ stack_header.stack_begin_ptr,18 ptr to first stack frame 000024 1-38 equ stack_header.stack_end_ptr,20 ptr to next useable stack frame 000026 1-39 equ stack_header.lot_ptr,22 ptr to the lot for the current ring 1-40 000030 1-41 equ stack_header.signal_ptr,24 ptr to signal proc for current ring 000032 1-42 equ stack_header.bar_mode_sp,26 value of sp before entering bar mode 000034 1-43 equ stack_header.pl1_operators_ptr,28 ptr: pl1_operators_$operator_table 000036 1-44 equ stack_header.call_op_ptr,30 ptr to standard call operator 1-45 000040 1-46 equ stack_header.push_op_ptr,32 ptr to standard push operator 000042 1-47 equ stack_header.return_op_ptr,34 ptr to standard return operator 000044 1-48 equ stack_header.ret_no_pop_op_ptr,36 ptr: stand. return/ no pop operator 000046 1-49 equ stack_header.entry_op_ptr,38 ptr to standard entry operator 1-50 000050 1-51 equ stack_header.trans_op_tv_ptr,40 ptr to table of translator operator ptrs 000052 1-52 equ stack_header.isot_ptr,42 pointer to ISOT 000054 1-53 equ stack_header.sct_ptr,44 pointer to System Condition Table 000056 1-54 equ stack_header.unwinder_ptr,46 pointer to unwinder for current ring 1-55 000060 1-56 equ stack_header.sys_link_info_ptr,48 ptr to *system link name table 000062 1-57 equ stack_header.rnt_ptr,50 ptr to reference name table 000064 1-58 equ stack_header.ect_ptr,52 ptr to event channel table 000066 1-59 equ stack_header.assign_linkage_ptr,54 ptr to area for hcs_$assign_linkage calls 000070 1-60 equ stack_header.heap_header_ptr,56 ptr to heap header. 000072 1-61 equ stack_header.trace_frames,58 stack of trace_catch_ frames 000073 1-62 equ stach_header.trace_top_ptr,59 trace pointer 000074 1-63 equ stack_header.in_trace,60 trace antirecurse bit 000100 1-64 equ stack_header_end,64 length of stack header 1-65 1-66 1-67 1-68 000000 1-69 equ trace_frames.count,0 number of trace frames on stack 000001 1-70 equ trace_frames.top_ptr,1 packed pointer to top one 1-71 1-72 " The following constant is an offset within the pl1 operators table. 1-73 " It references a transfer vector table. 1-74 000551 1-75 bool tv_offset,551 1-76 1-77 1-78 " The following constants are offsets within this transfer vector table. 1-79 001170 1-80 equ call_offset,tv_offset+271 001171 1-81 equ push_offset,tv_offset+272 001172 1-82 equ return_offset,tv_offset+273 001173 1-83 equ return_no_pop_offset,tv_offset+274 001174 1-84 equ entry_offset,tv_offset+275 1-85 1-86 1-87 " END INCLUDE FILE stack_header.incl.alm 177 178 " We are attempting to set a standard for the storage and return of 179 " indicators for a program. On call-out the operators will store the 180 " indicator register in the low 18-bits of stack_frame.return_ptr+1, 181 " the upper 18-bits are the return word offset, and are stored from 182 " X0 typically. On return the operators will restore the indicators 183 " from this low 18-bit portion. 184 185 include stack_frame 2-1 " 2-2 " BEGIN INCLUDE FILE ... stack_frame.incl.alm 6/72 RBS 2-3 " 2-4 " Modified: 16 Dec 1977, D. Levin - to add fio_ps_ptr 2-5 " Modified: 3 Feb 1978, P. Krupp - to add run_unit_manager_bit & main_proc_bit 2-6 " Modified: 21 March 1978, D. Levin - change fio_ps_ptr to support_ptr 2-7 " 000020 2-8 equ stack_frame.prev_sp,16 000020 2-9 equ stack_frame.condition_word,16 000022 2-10 equ stack_frame.next_sp,18 000022 2-11 equ stack_frame.signaller_word,18 000024 2-12 equ stack_frame.return_ptr,20 000026 2-13 equ stack_frame.entry_ptr,22 000030 2-14 equ stack_frame.operator_ptr,24 000030 2-15 equ stack_frame.lp_ptr,24 000032 2-16 equ stack_frame.arg_ptr,26 000034 2-17 equ stack_frame.static_ptr,28 000035 2-18 equ stack_frame.support_ptr,29 " only used by fortran I/O 000036 2-19 equ stack_frame.on_unit_rel_ptrs,30 000037 2-20 equ stack_frame.operator_ret_ptr,31 000037 2-21 equ stack_frame.translator_id,31 000040 2-22 equ stack_frame.regs,32 000060 2-23 equ stack_frame.min_length,48 000020 2-24 equ stack_frame.flag_word,16 020000 2-25 bool stack_frame.main_proc_bit,020000 (DL) 010000 2-26 bool stack_frame.run_unit_manager,010000 (DL) 004000 2-27 bool stack_frame.signal_bit,004000 (DL) 002000 2-28 bool stack_frame.crawl_out_bit,002000 (DL) 001000 2-29 bool stack_frame.signaller_bit,001000 (DL) 000400 2-30 bool stack_frame.link_trap_bit,000400 (DL) 000200 2-31 bool stack_frame.support_bit,000200 (DL) 000100 2-32 bool stack_frame.condition_bit,000100 (DL) 2-33 2-34 " 2-35 " END INCLUDE FILE ... stack_frame.incl.alm 2-36 " 186 include eis_bits 000100 3-1 bool ar,100 000040 3-2 bool rl,40 000020 3-3 bool id,20 3-4 " 000001 3-5 bool au,01 000002 3-6 bool qu,02 000003 3-7 bool du,03 000004 3-8 bool ic,04 000005 3-9 bool a,05 000005 3-10 bool al,05 000006 3-11 bool q,06 000006 3-12 bool ql,06 000010 3-13 bool x0,10 000011 3-14 bool x1,11 000012 3-15 bool x2,12 000013 3-16 bool x3,13 000014 3-17 bool x4,14 000015 3-18 bool x5,15 000016 3-19 bool x6,16 000017 3-20 bool x7,17 3-21 " 000003 3-22 bool move,03 000001 3-23 bool and,01 000007 3-24 bool or,07 000016 3-25 bool nand,16 000006 3-26 bool xor,6 000000 3-27 bool clear,0 000014 3-28 bool invert,14 3-29 " 000001 3-30 equ round,1 000001 3-31 equ truncate,1 187 include iocbx 4-1 4-2 4-3 "BEGIN INCLUDE FILE iocbx.incl.alm 4-4 4-5 4-6 "Created 01/28/83 1429.8 est Fri by convert_include_file, 4-7 " Version of 11/07/82 1445.1 est Sun. 4-8 4-9 "Made from >user_dir_dir>Multics>SKrupp>work>s>iocbx.incl.pl1, 4-10 " modified 01/28/83 1427.0 est Fri 4-11 4-12 " 4-13 " Structure iocb 4-14 " 000156 4-15 equ iocb_size,110 4-16 4-17 000000 4-18 equ iocb.version,0 000001 4-19 equ iocb.name,1 000012 4-20 equ iocb.actual_iocb_ptr,10 000014 4-21 equ iocb.attach_descrip_ptr,12 000016 4-22 equ iocb.attach_data_ptr,14 000020 4-23 equ iocb.open_descrip_ptr,16 000022 4-24 equ iocb.open_data_ptr,18 000024 4-25 equ iocb.event_channel,20 " DOUBLE 000026 4-26 equ iocb.detach_iocb,22 000032 4-27 equ iocb.open,26 000036 4-28 equ iocb.close,30 000042 4-29 equ iocb.get_line,34 000046 4-30 equ iocb.get_chars,38 000052 4-31 equ iocb.put_chars,42 000056 4-32 equ iocb.modes,46 000062 4-33 equ iocb.position,50 000066 4-34 equ iocb.control,54 000072 4-35 equ iocb.read_record,58 000076 4-36 equ iocb.write_record,62 000102 4-37 equ iocb.rewrite_record,66 000106 4-38 equ iocb.delete_record,70 000112 4-39 equ iocb.seek_key,74 000116 4-40 equ iocb.read_key,78 000122 4-41 equ iocb.read_length,82 000126 4-42 equ iocb.open_file,86 000132 4-43 equ iocb.close_file,90 000136 4-44 equ iocb.detach,94 000142 4-45 equ iocb.ios_compatibility,98 000144 4-46 equ iocb.syn_inhibits,100 000146 4-47 equ iocb.syn_father,102 000150 4-48 equ iocb.syn_brother,104 000152 4-49 equ iocb.syn_son,106 000154 4-50 equ iocb.hash_chain_ptr,108 4-51 4-52 "END INCLUDE FILE iocbx.incl.alm 188 include plio2_fsb 5-1 5-2 5-3 "BEGIN INCLUDE FILE plio2_fsb.incl.alm 5-4 5-5 "Created 06/27/77 1703.1 edt Mon by convert_include_file, 5-6 " Version of 03/21/77 1355.7 edt Mon. 5-7 5-8 "Made from >exl>include>plio2_fsb.incl.pl1, 5-9 " modified 05/19/77 1743.9 edt Thu 5-10 5-11 " 5-12 " Structure fsb 5-13 " 000442 5-14 equ fsb_size,290 5-15 5-16 000000 5-17 equ fsb.switch,0 "LEVEL 2 5-18 400000 5-19 bool fsb.zot,400000 "DU 100000 5-20 bool fsb.version_2,100000 "DU 040000 5-21 bool fsb.open,040000 "DU 020000 5-22 bool fsb.print,020000 "DU 010000 5-23 bool fsb.input,010000 "DU 004000 5-24 bool fsb.output,004000 "DU 002000 5-25 bool fsb.update,002000 "DU 001000 5-26 bool fsb.stream,001000 "DU 000400 5-27 bool fsb.notkeyed,000400 "DU 000200 5-28 bool fsb.record,000200 "DU 000100 5-29 bool fsb.sequential,000100 "DU 000040 5-30 bool fsb.direct,000040 "DU 000020 5-31 bool fsb.interactive,000020 "DU 000010 5-32 bool fsb.not_used_1,000010 "DU 000004 5-33 bool fsb.not_used_2,000004 "DU 000002 5-34 bool fsb.stringvalue,000002 "DU 000001 5-35 bool fsb.keyed,000001 "DU 400000 5-36 bool fsb.namelist,400000 "DL 200000 5-37 bool fsb.implementation,200000 "DL 100000 5-38 bool fsb.not_used_4,100000 "DL 040000 5-39 bool fsb.transmit_error,040000 "DL 020000 5-40 bool fsb.buffer_in_use,020000 "DL 010000 5-41 bool fsb.copy,010000 "DL 004000 5-42 bool fsb.detach,004000 "DL 002000 5-43 bool fsb.te_hold,002000 "DL 001000 5-44 bool fsb.not_used_5,001000 "DL 000400 5-45 bool fsb.internal,000400 "DL 000200 5-46 bool fsb.threaded,000200 "DL 000100 5-47 bool fsb.fsb_in_use,000100 "DL 000040 5-48 bool fsb.console,000040 "DL 000020 5-49 bool fsb.emptyline,000020 "DL 000010 5-50 bool fsb.iox_close,000010 "DL 000004 5-51 bool fsb.xxx4,000004 "DL 000002 5-52 bool fsb.xxx5,000002 "DL 000001 5-53 bool fsb.xxx6,000001 "DL 5-54 000001 5-55 equ fsb.nono,1 "LEVEL 2 5-56 400000 5-57 bool fsb.bit_string,400000 "DU 200000 5-58 bool fsb.not_used_3,200000 "DU 100000 5-59 bool fsb.read,100000 "DU 040000 5-60 bool fsb.write,040000 "DU 020000 5-61 bool fsb.rewrite,020000 "DU 010000 5-62 bool fsb.delete,010000 "DU 004000 5-63 bool fsb.locate,004000 "DU 002000 5-64 bool fsb.key,002000 "DU 001000 5-65 bool fsb.keyto,001000 "DU 000400 5-66 bool fsb.keyfrom,000400 "DU 000200 5-67 bool fsb.set,000200 "DU 000100 5-68 bool fsb.into,000100 "DU 000040 5-69 bool fsb.ignore,000040 "DU 000020 5-70 bool fsb.from,000020 "DU 000010 5-71 bool fsb.nofrom,000010 "DU 000004 5-72 bool fsb.nokey,000004 "DU 000002 5-73 bool fsb.nokeyfrom,000002 "DU 000001 5-74 bool fsb.nolock,000001 "DU 5-75 000002 5-76 equ fsb.lsep,2 000003 5-77 equ fsb.iocb_p,3 000004 5-78 equ fsb.blc,4 000005 5-79 equ fsb.bsize,5 000006 5-80 equ fsb.bptr,6 000010 5-81 equ fsb.bnc,8 000011 5-82 equ fsb.kol,9 000012 5-83 equ fsb.lsize,10 000013 5-84 equ fsb.lineno,11 000014 5-85 equ fsb.psize,12 000015 5-86 equ fsb.pageno,13 000016 5-87 equ fsb.limit,14 000017 5-88 equ fsb.lnzc,15 000020 5-89 equ fsb.filename,16 "DOUBLE 000030 5-90 equ fsb.title,24 "DOUBLE 000040 5-91 equ fsb.fsb_thread,32 000042 5-92 equ fsb.buffer,34 000366 5-93 equ fsb.path_name,246 "DOUBLE 000440 5-94 equ fsb.declared_attributes,288 5-95 5-96 " The following declarations were not created by cif: 400000 5-97 bool fsb.zot1,400000 "DU 200000 5-98 bool fsb.zot2,200000 "DU 5-99 5-100 "END INCLUDE FILE plio2_fsb.incl.alm 189 include plio2_ps 6-1 6-2 6-3 "BEGIN INCLUDE FILE plio2_ps.incl.alm 6-4 6-5 "Created 07/08/77 1352.7 edt Fri by convert_include_file, 6-6 " Version of 03/21/77 1355.7 edt Mon. 6-7 6-8 "Made from >exl>include>plio2_ps.incl.pl1, 6-9 " modified 07/08/77 1352.7 edt Fri 6-10 6-11 " 6-12 " Structure ps 6-13 " 000060 6-14 equ ps_size,48 6-15 6-16 000000 6-17 equ ps.stack_frame_p,0 000002 6-18 equ ps.ST_top_p,2 000004 6-19 equ ps.ST_block_p,4 000006 6-20 equ ps.format_area_p,6 000010 6-21 equ ps.ss_list_p,8 000012 6-22 equ ps.ab_return,10 "LEVEL 2 6-23 000012 6-24 equ ps.abret,10 000020 6-25 equ ps.source_p,16 000022 6-26 equ ps.special_list_p,18 000024 6-27 equ ps.copy_file_p,20 000026 6-28 equ ps.job,22 "LEVEL 2 6-29 400000 6-30 bool ps.explicit_file,400000 "DU 200000 6-31 bool ps.string,200000 "DU 100000 6-32 bool ps.varying_string,100000 "DU 040000 6-33 bool ps.data,040000 "DU 020000 6-34 bool ps.edit,020000 "DU 010000 6-35 bool ps.list,010000 "DU 004000 6-36 bool ps.get,004000 "DU 002000 6-37 bool ps.put,002000 "DU 001000 6-38 bool ps.page,001000 "DU 000400 6-39 bool ps.line,000400 "DU 000200 6-40 bool ps.skip,000200 "DU 000100 6-41 bool ps.copy,000100 "DU 000040 6-42 bool ps.p1p2,000040 "DU 000020 6-43 bool ps.bit_string,000020 "DU 000010 6-44 bool ps.char_string,000010 "DU 000004 6-45 bool ps.read,000004 "DU 000002 6-46 bool ps.write,000002 "DU 000001 6-47 bool ps.rewrite,000001 "DU 400000 6-48 bool ps.delete,400000 "DL 200000 6-49 bool ps.locate,200000 "DL 100000 6-50 bool ps.key,100000 "DL 040000 6-51 bool ps.keyto,040000 "DL 020000 6-52 bool ps.keyfrom,020000 "DL 010000 6-53 bool ps.set,010000 "DL 004000 6-54 bool ps.into,004000 "DL 002000 6-55 bool ps.ignore,002000 "DL 001000 6-56 bool ps.from,001000 "DL 000003 6-57 equ ps.version_shift,3 000077 6-58 bool ps.version_mask,000077 000004 6-59 bool ps.not_byte_buffer,000004 "DL 000001 6-60 bool ps.packed_ptr,000001 "DL 6-61 000027 6-62 equ ps.number,23 000030 6-63 equ ps.value_p,24 000032 6-64 equ ps.descriptor,26 000033 6-65 equ ps.length,27 6-66 000034 6-67 equ ps.top_half,28 "UPPER 000034 6-68 equ ps.offset,28 "LOWER 6-69 000035 6-70 equ ps.prep,29 000036 6-71 equ ps.new_format,30 000037 6-72 equ ps.switch,31 "LEVEL 2 6-73 400000 6-74 bool ps.first_field,400000 "DU 200000 6-75 bool ps.file,200000 "DU 100000 6-76 bool ps.transmit_error,100000 "DU 040000 6-77 bool ps.semi_sep,040000 "DU 6-78 000040 6-79 equ ps.file_p,32 000042 6-80 equ ps.fsbp,34 000044 6-81 equ ps.auxp,36 000046 6-82 equ ps.fabp,38 000050 6-83 equ ps.fab2p,40 000052 6-84 equ ps.vp,42 000054 6-85 equ ps.descr,44 000055 6-86 equ ps.start_copy,45 000056 6-87 equ ps.quick_stream_storage,46 "LEVEL 2 6-88 000056 6-89 equ ps.a_stored,46 000057 6-90 equ ps.q_stored,47 6-91 " The following declaration was not created by cif: 007700 6-92 bool ps.version_mask_inplace,0007700 "don't shift with this mask 6-93 6-94 "END INCLUDE FILE plio2_ps.incl.alm 190 include fortran_ps 7-1 "BEGIN INCLUDE FILE fortran_ps.incl.alm 7-2 " 7-3 " Created: 16 Dec 1977, D. Levin 7-4 " 7-5 " 7-6 " Fields in the user's ps. 7-7 " 000010 7-8 equ ft_ps.unit,8 000024 7-9 equ ft_ps.job_bits,20 000026 7-10 equ ft_ps.ele_desc_and_count,22 000026 7-11 equ ft_ps.element_desc,22 000027 7-12 equ ft_ps.element_count,23 000030 7-13 equ ft_ps.element_ptr,24 000034 7-14 equ ft_ps.data_words,28 7-15 " 7-16 " Fields in fortran I/O's ps. 7-17 " 000000 7-18 equ fio_ps.label_addr,0 000002 7-19 equ fio_ps.stack_frame_p,2 000004 7-20 equ fio_ps.label_index_addr,4 000006 7-21 equ fio_ps.job_bits_and_file,6 000006 7-22 equ fio_ps.job_bits,6 000007 7-23 equ fio_ps.file_number,7 000010 7-24 equ fio_ps.ele_desc_and_count,8 000010 7-25 equ fio_ps.element_desc,8 000011 7-26 equ fio_ps.element_count,9 000012 7-27 equ fio_ps.element_ptr,10 7-28 " 7-29 " END INCLUDE FILE fortran_ps.incl.alm 191 include fortran_open_data 8-1 " BEGIN INCLUDE FILE fortran_open_data.incl.alm 6/23/77 SHW 8-2 " 8-3 " Modified: 21 August 1981, CRD - insert blank field 8-4 " Modified: 7/7/77 D. Levin - insert status field 8-5 " 000000 8-6 equ fortran_open_data.specified,0 000001 8-7 equ fortran_open_data.status,1 000002 8-8 equ fortran_open_data.io_switch,2 000003 8-9 equ fortran_open_data.attach_desc,3 000004 8-10 equ fortran_open_data.filename,4 000005 8-11 equ fortran_open_data.mode,5 000006 8-12 equ fortran_open_data.access,6 000007 8-13 equ fortran_open_data.form,7 000010 8-14 equ fortran_open_data.max_rec_len,8 000011 8-15 equ fortran_open_data.binary,9 000012 8-16 equ fortran_open_data.prompt,10 000013 8-17 equ fortran_open_data.carriage,11 000014 8-18 equ fortran_open_data.defer,12 000015 8-19 equ fortran_open_data.blank,13 000016 8-20 equ fortran_open_data.char_str,14 8-21 8-22 " END INCLUDE FILE fortran_open_data.incl.alm 192 include fortran_inquire_data 9-1 " BEGIN INCLUDE FILE fortran_inquire_data.incl.alm 9-2 9-3 " This include file describes the information passed between a fortran program 9-4 " and fortran_io_. See also fortran_inquire_data.incl.pl1. 9-5 " 9-6 " Written 23 October 1981 by C R Davis. 9-7 000000 9-8 equ ftn_inquire_data.specified,0 000001 9-9 equ ftn_inquire_data.unit,1 000002 9-10 equ ftn_inquire_data.filename,2 000054 9-11 equ ftn_inquire_data.access,44 000056 9-12 equ ftn_inquire_data.form,46 000060 9-13 equ ftn_inquire_data.recl,48 000061 9-14 equ ftn_inquire_data.blank,49 000063 9-15 equ ftn_inquire_data.exist,51 000064 9-16 equ ftn_inquire_data.opened,52 000065 9-17 equ ftn_inquire_data.number,53 000066 9-18 equ ftn_inquire_data.named,54 000067 9-19 equ ftn_inquire_data.name,55 000071 9-20 equ ftn_inquire_data.sequential,57 000073 9-21 equ ftn_inquire_data.formatted,59 000075 9-22 equ ftn_inquire_data.unformatted,61 000077 9-23 equ ftn_inquire_data.nextrec,63 000100 9-24 equ ftn_inquire_data.direct,64 9-25 9-26 " END INCLUDE FILE fortran_inquire_data.incl.alm 193 " 003162 194 segdef alloc 007727 195 segdef alm_call 007747 196 segdef alm_entry 007727 197 segdef alm_operators_begin 007771 198 segdef alm_operators_end 007733 199 segdef alm_push 007757 200 segdef alm_return 007765 201 segdef alm_return_no_pop 024722 202 segdef alm_trace_operators_begin 024743 203 segdef alm_trace_operators_end 000000 204 segdef begin_pl1_operators 011243 205 segdef call_signal_ 012510 206 segdef end_pl1_operators 002473 207 segdef entry_operators 012426 208 segdef entry_operators_end 011357 209 segdef fort_math_names 016000 210 segdef hfp_fort_math_names 005633 211 segdef forward_call 011323 212 segdef get_our_lp 014140 213 segdef hfp_operator_table 001426 214 segdef operator_table 010432 215 segdef plio4 010446 216 segdef put_return 000243 217 segdef tct_byte_0 000443 218 segdef tct_byte_1 000643 219 segdef tct_byte_2 001043 220 segdef tct_byte_3 000233 221 segdef tct_octal_040 000227 222 segdef tct_octal_060 024722 223 segdef trace_alm_entry 020703 224 segdef trace_entry_operators 021562 225 segdef trace_entry_operators_end 017636 226 segdef trace_operator_table 023210 227 segdef trace_hfp_operator_table 005622 228 segdef var_call 001243 229 segdef VLA_words_per_seg_ 230 " 231 " Definitions of variables used by operators. Since all 232 " of the operators execute using the stack frame of the 233 " pl/1 program for their temporary storage, locations 8-15 & 32-63 234 " of the pl/1 stack frame are reserved for operator use. 235 " 236 " sp|6 has been reserved for probe. 237 " 000040 238 equ display_ptr,32 000042 239 equ descriptor_ptr,34 000044 240 equ linkage_ptr,36 000046 241 equ text_base_ptr,38 000046 242 equ tbp,38 000050 243 equ temp_pt,40 string register 000052 244 equ ps_ptr,42 000054 245 equ page,44 000055 246 equ temp_indicators,45 000056 247 equ double_temp,46 000056 248 equ cpu,46 000056 249 equ remainder,46 000060 250 equ temp_size,48 000061 251 equ extend_size,49 000062 252 equ bit_lg1,50 string register 000063 253 equ char_lg1,51 string register 000063 254 equ t3,51 000064 255 equ bit_or_char,52 string register 000064 256 equ t1,52 000065 257 equ bit_op,53 000065 258 equ t5,53 000066 259 equ cat_lg1,54 000066 260 equ t2,54 000067 261 equ qmask,55 000070 262 equ arg_list,56 000070 263 equ save_regs,56 000070 264 equ save_x01,56 000070 265 equ label_var,56 000070 266 equ complex,56 complex AQ 000072 267 equ temp2,58 000074 268 equ lv,60 000074 269 equ num,60 000075 270 equ lg2,61 000076 271 equ temp,62 000077 272 equ t4,63 000077 273 equ count,63 274 " 275 " following locations used in stack extension by divide subroutine 276 " 000040 277 equ divide_extension_size,32 000000 278 equ qhat,0 000001 279 equ rhat,1 000002 280 equ carry,2 000003 281 equ carrya,3 000004 282 equ shift,4 000005 283 equ norm_shift,5 000006 284 equ div_temp,6 000010 285 equ dividend,8 000016 286 equ divisor,14 000022 287 equ quotient,18 000030 288 equ divide_lp,24 289 " 001400 290 bool rpd_bits,001400 bits for RPD instruction (A,B) 291 " 000040 292 bool blank,40 293 " 294 " Definitions related to Hexadecimal Floating Point (HFP) mode: 295 " 000010 296 bool HFP_mask,000010 mask for bit in IR that sets HFP mode 003700 297 bool M2.0H,003700 yields HFP -2.0 under 'du' modification 001400 298 bool M0.5H,001400 yields HFP -0.5 under 'du' modification 400000 299 bool P0.0H,400000 yields HFP +0.0 under 'du' modification 000400 300 bool P0.5H,000400 yields HFP +0.5 under 'du' modification 002040 301 bool P1.0H,002040 yields HFP +1.0 under 'du' modification 002100 302 bool P2.0H,002100 yields HFP +2.0 under 'du' modification 303 " 304 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 305 " 306 " MACROS USED IN THIS PROGRAM 307 " 308 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 309 310 " Macro to load PR4 with ptr to linkage section of pl1_operators_. 311 " PR7 is set to the base of the stack. The AQ is effectively clobbered. 312 " A subroutine of the same name also exists, when speed is not critical. 313 " 314 macro get_our_lp 1 315 epbpsb sp|0 make sure sb is set up 2 316 epaq * get ptr to ourselves 3 317 lprplp sb|stack_header.lot_ptr,*au get packed ptr to linkage from lot 4 318 &end 319 " 320 " Macro to load AU with the complement of the stack frame offset. 321 " 322 macro get_stack_offset 1 323 eaa sp|0 get offset of stack frame in au 2 324 era mask_bit_one form 2's complement of whole a-reg 3 325 adla 1,dl w/o overflow 4 326 &end 327 " 328 " The following macro (transfer_vector) is used to duplicate the transfer vector 329 " and the constants and code which preceed it for the trace programs. All labels 330 " in the macro should be preceeded by "&1" in order to eliminate duplicate labels. 331 " 332 " Any operators which are to be different for the trace vector should have 333 " the target of the transfer preceeded by "&1". 334 " 335 336 macro transfer_vector 1 337 " 2 338 " Due to the presence of double-word constants (at bit_mask and mask_bit) 3 339 " these instructions must presently begin on an even-word boundary. 4 340 " Note that if an odd number of words is added to the front of the 5 341 " operator_table region, then the following even pseudo-op must be 6 342 " changed to an odd pseudo-op. If you forget, an assembly error will 7 343 " result (due to clever divide-by-zero, below). 8 344 " 9 345 even 10 346 " 11 347 " The following section, from location 0 to label operator_table, is referenced 12 348 " directly from PL/1 programs by means of offsets of the form ap|-n (ap pointing 13 349 " at pl1_operators_$operator_table). For this reason, the order of the 14 350 " following instructions must not be changed. Any new coding must be placed at 15 351 " the FRONT of the segment. 16 352 " 17 353 " This table translates a bit number between 0 and 35 to a char number 18 354 " between 0 and 3. 19 355 " 20 356 even 21 357 &1&2bitno_to_charno_table: 22 358 dup 9 23 359 dec 0 24 360 dupend 25 361 dup 9 26 362 dec 1 27 363 dupend 28 364 dup 9 29 365 dec 2 30 366 dupend 31 367 dup 9 32 368 dec 3 33 369 dupend 34 370 " 35 371 " The following tables are for use with the TCT instruction. 36 372 " Any single, given, character can be searched for using these 37 373 " tables. 38 374 " 39 375 dup 115 40 376 dec -1 41 377 dupend 42 378 " 43 379 &1&2tct_octal_060: 44 380 dup 4 45 381 dec -1 46 382 dupend 47 383 " 48 384 &1&2tct_octal_040: 49 385 dup 8 50 386 dec -1 51 387 dupend 52 388 &1&2tct_byte_0: 53 389 vfd 9/0,9/-1,9/-1,9/-1 54 390 dup 127 55 391 dec -1 56 392 dupend 57 393 " 58 394 &1&2tct_byte_1: 59 395 vfd 9/-1,9/0,9/-1,9/-1 60 396 dup 127 61 397 dec -1 62 398 dupend 63 399 " 64 400 &1&2tct_byte_2: 65 401 vfd 9/-1,9/-1,9/0,9/-1 66 402 dup 127 67 403 dec -1 68 404 dupend 69 405 " 70 406 &1&2tct_byte_3: 71 407 vfd 9/-1,9/-1,9/-1,9/0 72 408 dup 127 73 409 dec -1 74 410 dupend 75 411 " 76 412 " The number of words per segment of a FORTRAN Very Large Array. 77 413 " 78 414 &1&2VLA_words_per_seg_: 79 415 vfd 36/256*1024 80 416 " 81 417 " table of csl's for use by bool builtin function 82 418 " 83 419 &1&2csl_vector: 84 420 csl (pr,rl),(pr,rl),bool(0) 85 421 csl (pr,rl),(pr,rl),bool(1) 86 422 csl (pr,rl),(pr,rl),bool(2) 87 423 csl (pr,rl),(pr,rl),bool(3) 88 424 csl (pr,rl),(pr,rl),bool(4) 89 425 csl (pr,rl),(pr,rl),bool(5) 90 426 csl (pr,rl),(pr,rl),bool(6) 91 427 csl (pr,rl),(pr,rl),bool(7) 92 428 csl (pr,rl),(pr,rl),bool(10) 93 429 csl (pr,rl),(pr,rl),bool(11) 94 430 csl (pr,rl),(pr,rl),bool(12) 95 431 csl (pr,rl),(pr,rl),bool(13) 96 432 csl (pr,rl),(pr,rl),bool(14) 97 433 csl (pr,rl),(pr,rl),bool(15) 98 434 csl (pr,rl),(pr,rl),bool(16) 99 435 csl (pr,rl),(pr,rl),bool(17) 100 436 " 101 437 " shift table for character offset 102 438 " 103 439 &1&2co_to_bo: dec 0,9b17,18b17,27b17 104 440 " 105 441 " shift table for half word offset 106 442 " 107 443 &1&2ho_to_bo: dec 0,18b17 108 444 " 109 445 " store table from a, 9 bit bytes, character offset 110 446 " OFFSET SIZE 111 447 " 112 448 &1&2store_a9_co: 113 449 stba bp|0,40 0 1 114 450 stba bp|0,20 1 115 451 stba bp|0,10 2 116 452 stba bp|0,04 3 117 453 stba bp|0,60 0 2 118 454 stba bp|0,30 1 119 455 stba bp|0,14 2 120 456 stba bp|0,04 3 121 457 stba bp|0,70 0 3 122 458 stba bp|0,34 1 123 459 stba bp|0,14 2 124 460 stba bp|0,04 3 125 461 sta bp|0 0 4 126 462 stba bp|0,34 1 127 463 stba bp|0,14 2 128 464 stba bp|0,04 3 129 465 sta bp|0 0 5 130 466 stba bp|0,34 1 131 467 stba bp|0,14 2 132 468 stba bp|0,04 3 133 469 " 134 470 " store table from q, 9 bit bytes, character offset 135 471 " OFFSET SIZE 136 472 " 137 473 &1&2store_q9_co: 138 474 nop 0,dl 0 2 139 475 nop 0,dl 1 140 476 nop 0,dl 2 141 477 stbq bp|1,40 3 142 478 nop 0,dl 0 3 143 479 nop 0,dl 1 144 480 stbq bp|1,40 2 145 481 stbq bp|1,60 3 146 482 nop 0,dl 0 4 147 483 stbq bp|1,40 1 148 484 stbq bp|1,60 2 149 485 stbq bp|1,70 3 150 486 stbq bp|1,40 0 5 151 487 stbq bp|1,60 1 152 488 stbq bp|1,70 2 153 489 stq bp|1 3 154 490 " 155 491 " store table from a, 9 bit bytes, half word offset 156 492 " OFFSET SIZE 157 493 " 158 494 &1&2store_a9_ho: 159 495 stba bp|0,40 0 1 160 496 stba bp|0,10 1 161 497 stba bp|0,60 0 2 162 498 stba bp|0,14 1 163 499 stba bp|0,70 0 3 164 500 stba bp|0,14 1 165 501 sta bp|0 0 4 166 502 stba bp|0,14 1 167 503 sta bp|0 0 5 168 504 stba bp|0,14 1 169 505 sta bp|0 0 6 170 506 stba bp|0,14 1 171 507 " 172 508 " store table from q, 9 bit bytes, half word offset 173 509 " OFFSET SIZE 174 510 " 175 511 &1&2store_q9_ho: 176 512 nop 0,dl 0 2 177 513 nop 0,dl 1 178 514 nop 0,dl 0 3 179 515 stbq bp|1,40 1 180 516 nop 0,dl 0 4 181 517 stbq bp|1,60 1 182 518 stbq bp|1,40 0 5 183 519 stbq bp|1,70 1 184 520 stbq bp|1,60 0 6 185 521 stq bp|1 1 186 522 " 187 523 " store table from a, 6 bit bytes, half word offset 188 524 " OFFSET SIZE 189 525 " 190 526 &1&2store_a6_ho: 191 527 stca bp|0,40 0 1 192 528 stca bp|0,04 1 193 529 stca bp|0,60 0 2 194 530 stca bp|0,06 1 195 531 stca bp|0,70 0 3 196 532 stca bp|0,07 1 197 533 stca bp|0,74 0 4 198 534 stca bp|0,07 1 199 535 stca bp|0,76 0 5 200 536 stca bp|0,07 1 201 537 sta bp|0 0 6 202 538 stca bp|0,07 1 203 539 sta bp|0 0 7 204 540 stca bp|0,07 1 205 541 sta bp|0 0 8 206 542 stca bp|0,07 1 207 543 sta bp|0 0 9 208 544 stca bp|0,07 1 209 545 " 210 546 " store table from q, 6 bit bytes, half word offset 211 547 " OFFSET SIZE 212 548 " 213 549 &1&2store_q6_ho: 214 550 nop 0,dl 0 2 215 551 nop 0,dl 1 216 552 nop 0,dl 0 3 217 553 nop 0,dl 1 218 554 nop 0,dl 0 4 219 555 stcq bp|1,40 1 220 556 nop 0,dl 0 5 221 557 stcq bp|1,60 1 222 558 nop 0,dl 0 6 223 559 stcq bp|1,70 1 224 560 stcq bp|1,40 0 7 225 561 stcq bp|1,74 1 226 562 stcq bp|1,60 0 8 227 563 stcq bp|1,76 1 228 564 stcq bp|1,70 0 9 229 565 stq bp|1 1 230 566 " 231 567 " THE FOLLOWING SECTION IS DIRECTLY REFERENCED FROM PL/1 PROGRAMS BY MEANS OF 232 568 " ap|offset. FOR THIS REASON, THE ORDER OF THE FOLLOWING INSTRUCTIONS MUST 233 569 " NOT BE CHANGED. 234 570 " 235 571 &1&2operator_table: 236 572 &1&2bit_mask: 237 573 vfd 0/-1,72/0 238 574 vfd 1/-1,71/0 239 575 vfd 2/-1,70/0 240 576 vfd 3/-1,69/0 241 577 vfd 4/-1,68/0 242 578 vfd 5/-1,67/0 243 579 vfd 6/-1,66/0 244 580 vfd 7/-1,65/0 245 581 vfd 8/-1,64/0 246 582 vfd 9/-1,63/0 247 583 vfd 10/-1,62/0 248 584 vfd 11/-1,61/0 249 585 vfd 12/-1,60/0 250 586 vfd 13/-1,59/0 251 587 vfd 14/-1,58/0 252 588 vfd 15/-1,57/0 253 589 vfd 16/-1,56/0 254 590 vfd 17/-1,55/0 255 591 vfd 18/-1,54/0 256 592 vfd 19/-1,53/0 257 593 vfd 20/-1,52/0 258 594 vfd 21/-1,51/0 259 595 vfd 22/-1,50/0 260 596 vfd 23/-1,49/0 261 597 vfd 24/-1,48/0 262 598 vfd 25/-1,47/0 263 599 vfd 26/-1,46/0 264 600 vfd 27/-1,45/0 265 601 vfd 28/-1,44/0 266 602 vfd 29/-1,43/0 267 603 vfd 30/-1,42/0 268 604 vfd 31/-1,41/0 269 605 vfd 32/-1,40/0 270 606 vfd 33/-1,39/0 271 607 vfd 34/-1,38/0 272 608 vfd 35/-1,37/0 273 609 &1&2ones: vfd 36/-1,36/0 274 610 vfd 36/-1,1/-1,35/0 275 611 vfd 36/-1,2/-1,34/0 276 612 vfd 36/-1,3/-1,33/0 277 613 vfd 36/-1,4/-1,32/0 278 614 vfd 36/-1,5/-1,31/0 279 615 vfd 36/-1,6/-1,30/0 280 616 vfd 36/-1,7/-1,29/0 281 617 vfd 36/-1,8/-1,28/0 282 618 vfd 36/-1,9/-1,27/0 283 619 vfd 36/-1,10/-1,26/0 284 620 vfd 36/-1,11/-1,25/0 285 621 vfd 36/-1,12/-1,24/0 286 622 vfd 36/-1,13/-1,23/0 287 623 vfd 36/-1,14/-1,22/0 288 624 vfd 36/-1,15/-1,21/0 289 625 vfd 36/-1,16/-1,20/0 290 626 vfd 36/-1,17/-1,19/0 291 627 vfd 36/-1,18/-1,18/0 292 628 vfd 36/-1,19/-1,17/0 293 629 vfd 36/-1,20/-1,16/0 294 630 vfd 36/-1,21/-1,15/0 295 631 vfd 36/-1,22/-1,14/0 296 632 vfd 36/-1,23/-1,13/0 297 633 vfd 36/-1,24/-1,12/0 298 634 vfd 36/-1,25/-1,11/0 299 635 vfd 36/-1,26/-1,10/0 300 636 vfd 36/-1,27/-1,9/0 301 637 vfd 36/-1,28/-1,8/0 302 638 vfd 36/-1,29/-1,7/0 303 639 vfd 36/-1,30/-1,6/0 304 640 vfd 36/-1,31/-1,5/0 305 641 vfd 36/-1,32/-1,4/0 306 642 vfd 36/-1,33/-1,3/0 307 643 vfd 36/-1,34/-1,2/0 308 644 vfd 36/-1,35/-1,1/0 309 645 " 310 646 &1&2mask_bit: 311 647 vfd 0/0,36/-1,36/-1 312 648 vfd 1/0,35/-1,36/-1 313 649 vfd 2/0,34/-1,36/-1 314 650 vfd 3/0,33/-1,36/-1 315 651 vfd 4/0,32/-1,36/-1 316 652 vfd 5/0,31/-1,36/-1 317 653 vfd 6/0,30/-1,36/-1 318 654 vfd 7/0,29/-1,36/-1 319 655 vfd 8/0,28/-1,36/-1 320 656 vfd 9/0,27/-1,36/-1 321 657 vfd 10/0,26/-1,36/-1 322 658 vfd 11/0,25/-1,36/-1 323 659 vfd 12/0,24/-1,36/-1 324 660 vfd 13/0,23/-1,36/-1 325 661 vfd 14/0,22/-1,36/-1 326 662 vfd 15/0,21/-1,36/-1 327 663 vfd 16/0,20/-1,36/-1 328 664 vfd 17/0,19/-1,36/-1 329 665 vfd 18/0,18/-1,36/-1 330 666 vfd 19/0,17/-1,36/-1 331 667 vfd 20/0,16/-1,36/-1 332 668 vfd 21/0,15/-1,36/-1 333 669 vfd 22/0,14/-1,36/-1 334 670 vfd 23/0,13/-1,36/-1 335 671 vfd 24/0,12/-1,36/-1 336 672 vfd 25/0,11/-1,36/-1 337 673 vfd 26/0,10/-1,36/-1 338 674 vfd 27/0,9/-1,36/-1 339 675 vfd 28/0,8/-1,36/-1 340 676 vfd 29/0,7/-1,36/-1 341 677 vfd 30/0,6/-1,36/-1 342 678 vfd 31/0,5/-1,36/-1 343 679 vfd 32/0,4/-1,36/-1 344 680 vfd 33/0,3/-1,36/-1 345 681 vfd 34/0,2/-1,36/-1 346 682 vfd 35/0,1/-1,36/-1 347 683 vfd 36/0,36/-1 348 684 &1&2max_single_value: 349 685 vfd 37/0,35/-1 350 686 vfd 38/0,34/-1 351 687 vfd 39/0,33/-1 352 688 vfd 40/0,32/-1 353 689 vfd 41/0,31/-1 354 690 vfd 42/0,30/-1 355 691 vfd 43/0,29/-1 356 692 vfd 44/0,28/-1 357 693 vfd 45/0,27/-1 358 694 vfd 46/0,26/-1 359 695 vfd 47/0,25/-1 360 696 vfd 48/0,24/-1 361 697 vfd 49/0,23/-1 362 698 vfd 50/0,22/-1 363 699 vfd 51/0,21/-1 364 700 vfd 52/0,20/-1 365 701 vfd 53/0,19/-1 366 702 vfd 54/0,18/-1 367 703 vfd 55/0,17/-1 368 704 vfd 56/0,16/-1 369 705 vfd 57/0,15/-1 370 706 vfd 58/0,14/-1 371 707 vfd 59/0,13/-1 372 708 vfd 60/0,12/-1 373 709 vfd 61/0,11/-1 374 710 vfd 62/0,10/-1 375 711 vfd 63/0,9/-1 376 712 vfd 64/0,8/-1 377 713 vfd 65/0,7/-1 378 714 vfd 66/0,6/-1 379 715 vfd 67/0,5/-1 380 716 vfd 68/0,4/-1 381 717 vfd 69/0,3/-1 382 718 vfd 70/0,2/-1 383 719 vfd 71/0,1/-1 384 720 " 385 721 &1&2blanks: oct 040040040040,040040040040 386 722 oct 000040040040,040040040040 387 723 oct 000000040040,040040040040 388 724 oct 000000000040,040040040040 389 725 oct 000000000000,040040040040 390 726 oct 000000000000,000040040040 391 727 oct 000000000000,000000040040 392 728 oct 000000000000,000000000040 393 729 " 394 730 &1&2ptr_mask: oct 077777000077,777777077077 mask for use in ptr comparisions 395 731 " 396 732 " operator to convert single fixed to double fixed 397 733 " 398 734 even 399 735 &1&2fx1_to_fx2: 400 736 llr 36 401 737 lrs 36 402 738 " 403 739 " operators to convert fixed to float 404 740 " 405 741 odd 406 742 &1&2fx1_to_fl2: 407 743 xed &1&2fx1_to_fx2 408 744 " 409 745 even 410 746 &1&2fx2_to_fl2: 411 747 ife &2,hfp_ 412 748 lde =18b25,du EAQ = unnormalized 2*float(number) 413 749 fad P0.0H,du EAQ = 2*float(number) 414 750 fmp P0.5H,du EAQ = float(number) 415 751 tra sp|tbp,*x0 return 416 752 ifend 417 753 418 754 ine &2,hfp_ 419 755 lde =71b25,du 420 756 fad =0.,du 421 757 tra sp|tbp,*0 422 758 ifend 423 759 " 424 760 " operator to reset next stack pointer 425 761 " 426 762 even 427 763 &1&2reset_stack: 428 764 ldx0 sp|5 429 765 stx0 sp|stack_frame.next_sp+1 430 766 " 431 767 " operators to convert indicators into relations 432 768 " 433 769 &1&2r_l_a: tmi true 434 770 lda 0,dl 435 771 tra sp|tbp,*0 436 772 " 437 773 &1&2r_g_s: tze 2,ic 438 774 trc true 439 775 lda 0,dl 440 776 tra sp|tbp,*0 441 777 " 442 778 &1&2r_g_a: tze 2,ic 443 779 tpl true 444 780 lda 0,dl 445 781 tra sp|tbp,*0 446 782 " 447 783 &1&2r_l_s: tnc true 448 784 lda 0,dl 449 785 tra sp|tbp,*0 450 786 " 451 787 &1&2r_e_as: tze true 452 788 lda 0,dl 453 789 tra sp|tbp,*0 454 790 " 455 791 &1&2r_ne_as: tnz true 456 792 lda 0,dl 457 793 tra sp|tbp,*0 458 794 " 459 795 &1&2r_le_a: tmi true 460 796 tze true 461 797 lda 0,dl 462 798 tra sp|tbp,*0 463 799 " 464 800 &1&2r_ge_s: trc true 465 801 lda 0,dl 466 802 tra sp|tbp,*0 467 803 " 468 804 &1&2r_ge_a: tpl true 469 805 lda 0,dl 470 806 tra sp|tbp,*0 471 807 " 472 808 &1&2r_le_s: tnc true 473 809 tze true 474 810 lda 0,dl 475 811 tra sp|tbp,*0 476 812 " 477 813 &1&2true: lda =o400000,du 478 814 tra sp|tbp,*0 479 815 " 480 816 " operator to set stack ptr to that of block N static 481 817 " levels above the current block. Entered with N in q. 482 818 " (should not be called with N = 0, but will work anyway.) 483 819 " 484 820 &1&2set_stack: 485 821 tsx1 display_chase get ptr to proper frame 486 822 eppsp bp|0 into sp 487 823 tra set_stack_extend do three more instructions (added later 488 824 " and since compiled code knows offsets in this 489 825 " area, couldn't add the code inline) 490 826 " 491 827 " tables to convert to bit offset ready to be ORed into pointer 492 828 " 493 829 &1&2mod2_tab: dec 0,18b26 494 830 " 495 831 &1&2mod4_tab: dec 0,9b26,18b26,27b26 496 832 " 497 833 " transfer vector for operators not referenced directly 498 834 " by the pl/1 program. new operators may be added at the 499 835 " end of the list only. 500 836 " 501 837 &1&2op_vector: 502 838 tra alloc_char_temp 0 503 839 tra alloc_bit_temp 1 504 840 tra alloc_temp 2 505 841 tra realloc_char_temp 3 506 842 tra realloc_bit_temp 4 507 843 tra save_string 5 obsolete 508 844 tra pk_to_unpk 6 509 845 tra unpk_to_pk 7 510 846 tra move_chars 8 obsolete 511 847 tra move_chars_aligned 9 obsolete 512 848 tra move_bits 10 obsolete 513 849 tra move_bits_aligned 11 obsolete 514 850 tra chars_move 12 obsolete 515 851 tra chars_move_aligned 13 obsolete 516 852 tra bits_move 14 obsolete 517 853 tra bits_move_aligned 15 obsolete 518 854 tra move_not_bits 16 obsolete 519 855 tra move_not_bits_aligned 17 obsolete 520 856 tra ext_and_1 18 521 857 tra ext_and_2 19 522 858 tra comp_bits 20 523 859 tra cpbs3 21 obsolete 524 860 tra cpbs3_aligned 22 obsolete 525 861 tra cpbs4 23 obsolete 526 862 tra cpcs_ext1 24 527 863 tra cpcs_ext2 25 528 864 tra cpbs_ext1 26 529 865 tra cpbs_ext2 27 530 866 tra store_string 28 531 867 tra cat_realloc_chars 29 532 868 tra cat_realloc_bits 30 533 869 tra cp_chars 31 obsolete 534 870 tra cp_chars_aligned 32 obsolete 535 871 tra cp_bits 33 obsolete 536 872 tra cp_bits_aligned 34 obsolete 537 873 tra enter_begin_block 35 538 874 tra leave_begin_block 36 539 875 tra call_ent_var_desc 37 540 876 tra call_ent_var 38 541 877 tra call_ext_in_desc 39 542 878 tra call_ext_in 40 543 879 tra call_ext_out_desc 41 544 880 tra call_ext_out 42 545 881 tra call_int_this_desc 43 546 882 tra call_int_this 44 547 883 tra call_int_other_desc 45 548 884 tra call_int_other 46 549 885 tra begin_return_mac 47 550 886 tra return_mac 48 551 887 tra cat_move_chars 49 obsolete 552 888 tra cat_move_chars_aligned 50 obsolete 553 889 tra cat_move_bits 51 obsolete 554 890 tra cat_move_bits_aligned 52 obsolete 555 891 tra cat_chars 53 obsolete 556 892 tra cat_chars_aligned 54 obsolete 557 893 tra cat_bits 55 obsolete 558 894 tra cat_bits_aligned 56 obsolete 559 895 tra set_chars 57 obsolete 560 896 tra set_chars_aligned 58 obsolete 561 897 tra set_bits 59 obsolete 562 898 tra set_bits_aligned 60 obsolete 563 899 tra and_bits 61 obsolete 564 900 tra and_bits_aligned 62 obsolete 565 901 tra or_bits 63 obsolete 566 902 tra or_bits_aligned 64 obsolete 567 903 tra move_label_var 65 568 904 tra make_label_var 66 569 905 tra &2fl2_to_fx1 67 570 906 tra &2fl2_to_fx2 68 571 907 tra longbs_to_fx2 69 572 908 tra tra_ext_1 70 573 909 tra tra_ext_2 71 574 910 tra alloc_auto_adj 72 575 911 tra longbs_to_bs18 73 576 912 tra stac_mac 74 577 913 tra sign_mac 75 578 914 tra bound_ck_signal 76 579 915 tra trans_sign_fx1 77 580 916 tra trans_sign_fl 78 581 917 tra copy_words 79 obsolete 582 918 tra mpfx2 80 583 919 tra mpfx3 81 584 920 tra copy_const 82 obsolete 585 921 tra copy_const_vt 83 obsolete 586 922 tra sr_check 84 obsolete 587 923 tra chars_move_vt 85 obsolete 588 924 tra chars_move_vta 86 obsolete 589 925 tra bits_move_vt 87 obsolete 590 926 tra bits_move_vta 88 obsolete 591 927 tra &2mdfl1 89 592 928 tra &2mdfl2 90 593 929 tra mdfx1 91 594 930 tra mdfx2 92 595 931 tra mdfx3 93 596 932 tra mdfx4 94 597 933 tra copy_double 95 obsolete 598 934 tra string_store 96 obsolete 599 935 tra get_chars 97 obsolete 600 936 tra get_bits 98 obsolete 601 937 tra pad_chars 99 602 938 tra pad_bits 100 603 939 tra signal_op 101 604 940 tra enable_op 102 605 941 tra index_chars 103 obsolete 606 942 tra index_chars_aligned 104 obsolete 607 943 tra index_bits 105 obsolete 608 944 tra index_bits_aligned 106 obsolete 609 945 tra exor_bits 107 obsolete 610 946 tra exor_bits_aligned 108 obsolete 611 947 tra set_bits_co 109 obsolete 612 948 tra set_bits_ho 110 obsolete 613 949 tra set_chars_co 111 obsolete 614 950 tra set_chars_ho 112 obsolete 615 951 tra string_store_co 113 obsolete 616 952 tra string_store_ho 114 obsolete 617 953 tra get_chars_co 115 obsolete 618 954 tra get_chars_ho 116 obsolete 619 955 tra get_bits_co 117 obsolete 620 956 tra get_bits_ho 118 obsolete 621 957 tra and_bits_co 119 obsolete 622 958 tra and_bits_ho 120 obsolete 623 959 tra or_bits_co 121 obsolete 624 960 tra or_bits_ho 122 obsolete 625 961 tra exor_bits_co 123 obsolete 626 962 tra exor_bits_ho 124 obsolete 627 963 tra cat_move_bits_co 125 obsolete 628 964 tra cat_move_bits_ho 126 obsolete 629 965 tra move_not_bits_co 127 obsolete 630 966 tra move_not_bits_ho 128 obsolete 631 967 tra move_bits_co 129 obsolete 632 968 tra move_bits_ho 130 obsolete 633 969 tra move_chars_co 131 obsolete 634 970 tra move_chars_ho 132 obsolete 635 971 tra cat_move_chars_co 133 obsolete 636 972 tra cat_move_chars_ho 134 obsolete 637 973 tra cat_chars_co 135 obsolete 638 974 tra cat_chars_ho 136 obsolete 639 975 tra cat_bits_co 137 obsolete 640 976 tra cat_bits_ho 138 obsolete 641 977 tra io_signal 139 642 978 tra index_cs_1 140 obsolete 643 979 tra index_cs_1_aligned 141 obsolete 644 980 tra &2fort_mdfl1 142 645 981 tra rfb1_to_cflb1 143 646 982 tra &2rfb2_to_cflb1 144 647 983 tra mpcfl1_1 145 648 984 tra mpcfl1_2 146 649 985 tra dvcfl1_1 147 650 986 tra dvcfl1_2 148 651 987 tra chars_move_vt_co 149 obsolete 652 988 tra chars_move_vt_ho 150 obsolete 653 989 tra chars_move_co 151 obsolete 654 990 tra chars_move_ho 152 obsolete 655 991 tra bits_move_vt_co 153 obsolete 656 992 tra bits_move_vt_ho 154 obsolete 657 993 tra bits_move_co 155 obsolete 658 994 tra bits_move_ho 156 obsolete 659 995 tra cp_chars_co 157 obsolete 660 996 tra cp_chars_ho 158 obsolete 661 997 tra cp_bits_co 159 obsolete 662 998 tra cp_bits_ho 160 obsolete 663 999 tra cpbs3_co 161 obsolete 664 1000 tra cpbs3_ho 162 obsolete 665 1001 tra shorten_stack 163 666 1002 tra zero_bits 164 obsolete 667 1003 tra zero_bits_aligned 165 obsolete 668 1004 tra zero_bits_co 166 obsolete 669 1005 tra zero_bits_ho 167 obsolete 670 1006 tra blank_chars 168 obsolete 671 1007 tra blank_chars_aligned 169 obsolete 672 1008 tra blank_chars_co 170 obsolete 673 1009 tra blank_chars_ho 171 obsolete 674 1010 tra index_chars_co 172 obsolete 675 1011 tra index_chars_ho 173 obsolete 676 1012 tra index_bits_co 174 obsolete 677 1013 tra index_bits_ho 175 obsolete 678 1014 tra index_cs_1_co 176 obsolete 679 1015 tra index_cs_1_ho 177 obsolete 680 1016 tra index_bs_1 178 obsolete 681 1017 tra index_bs_1_aligned 179 obsolete 682 1018 tra index_bs_1_co 180 obsolete 683 1019 tra index_bs_1_ho 181 obsolete 684 1020 arg shift_bo 182 obsolete 685 1021 tra return_words 183 686 1022 tra return_bits 184 obsolete 687 1023 tra return_bits_co 185 obsolete 688 1024 tra return_bits_ho 186 obsolete 689 1025 tra return_bits_al 187 obsolete 690 1026 &1&2entry_operators: 691 1027 tra &1ext_entry 188 692 1028 tra &1ext_entry_desc 189 693 1029 tra int_entry 190 694 1030 tra int_entry_desc 191 695 1031 tra val_entry 192 696 1032 tra val_entry_desc 193 697 1033 tra get_chars_aligned 194 obsolete 698 1034 tra get_bits_aligned 195 obsolete 699 1035 tra fetch_chars 196 700 1036 tra fetch_bits 197 701 1037 tra get_terminate 198 702 1038 tra |[put_terminate] 199 703 1039 tra put_data_aligned 200 obsolete 704 1040 tra get_list_aligned 201 obsolete 705 1041 tra get_edit_aligned 202 obsolete 706 1042 tra put_list_aligned 203 obsolete 707 1043 tra put_edit_aligned 204 obsolete 708 1044 tra |[stream_prep] 205 709 1045 tra |[record_io] 206 710 1046 tra open_file 207 711 1047 tra close_file 208 712 1048 tra put_data 209 obsolete 713 1049 tra put_data_co 210 obsolete 714 1050 tra put_data_ho 211 obsolete 715 1051 tra get_list 212 obsolete 716 1052 tra get_list_co 213 obsolete 717 1053 tra get_list_ho 214 obsolete 718 1054 tra get_edit 215 obsolete 719 1055 tra get_edit_co 216 obsolete 720 1056 tra get_edit_ho 217 obsolete 721 1057 tra put_list 218 obsolete 722 1058 tra put_list_co 219 obsolete 723 1059 tra put_list_ho 220 obsolete 724 1060 tra put_edit 221 obsolete 725 1061 tra put_edit_co 222 obsolete 726 1062 tra put_edit_ho 223 obsolete 727 1063 tra suffix_cs 224 obsolete 728 1064 tra suffix_bs 225 obsolete 729 1065 tra &2fl2_to_fxscaled 226 730 1066 tra trunc_fx1 227 731 1067 tra trunc_fx2 228 732 1068 tra ceil_fx1 229 733 1069 tra ceil_fx2 230 734 1070 tra &2ceil_fl 231 735 1071 tra floor_fx1 232 736 1072 tra floor_fx2 233 737 1073 tra &2floor_fl 234 738 1074 tra &2trunc_fl 235 739 1075 tra round_fx1 236 740 1076 tra round_fx2 237 741 1077 tra repeat 238 742 1078 tra make_bit_table 239 obsolete 743 1079 tra make_bit_table_al 240 obsolete 744 1080 tra make_bit_table_co 241 obsolete 745 1081 tra make_bit_table_ho 242 obsolete 746 1082 tra verify 243 obsolete 747 1083 tra verify_al 244 obsolete 748 1084 tra verify_co 245 obsolete 749 1085 tra verify_ho 246 obsolete 750 1086 tra const_verify 247 obsolete 751 1087 tra const_verify_al 248 obsolete 752 1088 tra const_verify_co 249 obsolete 753 1089 tra const_verify_ho 250 obsolete 754 1090 tra reverse_cs 251 755 1091 tra reverse_bs 252 756 1092 tra form_bit_table 253 obsolete 757 1093 tra form_bit_table_co 254 obsolete 758 1094 tra form_bit_table_ho 255 obsolete 759 1095 tra form_bit_table_al 256 obsolete 760 1096 tra chars_move_ck 257 obsolete 761 1097 tra chars_move_ck_co 258 obsolete 762 1098 tra chars_move_ck_ho 259 obsolete 763 1099 tra chars_move_ck_al 260 obsolete 764 1100 tra bits_move_ck 261 obsolete 765 1101 tra bits_move_ck_co 262 obsolete 766 1102 tra bits_move_ck_ho 263 obsolete 767 1103 tra bits_move_ck_al 264 obsolete 768 1104 tra size_check_fx1 265 769 1105 tra size_check_fx2 266 770 1106 tra signal_stringsize 267 771 1107 tra suffix_cs_ck 268 obsolete 772 1108 tra suffix_bs_ck 269 obsolete 773 1109 tra pointer_hard 270 774 1110 tra alm_call 271 special for alm 775 1111 tra alm_push 272 special for alm 776 1112 tra alm_return 273 special for alm 777 1113 tra alm_return_no_pop 274 special for alm 778 1114 tra &1alm_entry 275 special for alm 779 1115 tra packed_to_bp 276 obsolete 780 1116 tra return_chars 277 obsolete 781 1117 tra return_chars_co 278 obsolete 782 1118 tra return_chars_ho 279 obsolete 783 1119 tra return_chars_aligned 280 obsolete 784 1120 tra rpd_odd_lp_bp 281 obsolete 785 1121 tra rpd_odd_bp_lp 282 obsolete 786 1122 tra rpd_even_lp_bp 283 obsolete 787 1123 tra rpd_even_bp_lp 284 obsolete 788 1124 tra offset_easy 285 789 1125 tra offset_easy_pk 286 790 1126 tra offset_hard 287 791 1127 tra offset_hard_pk 288 792 1128 tra pointer_hard_pk 289 793 1129 tra pointer_easy 290 794 1130 tra pointer_easy_pk 291 795 1131 tra round_fl 292 796 1132 tra enable_file 293 797 1133 tra revert_file 294 798 1134 tra alloc_block 295 799 1135 tra free_block 296 800 1136 tra push_ctl_data 297 801 1137 tra push_ctl_desc 298 802 1138 tra pop_ctl_data 299 803 1139 tra pop_ctl_desc 300 804 1140 tra allocation 301 805 1141 tra set_chars_eis 302 806 1142 tra set_bits_eis 303 807 1143 tra index_chars_eis 304 808 1144 tra index_bits_eis 305 809 1145 tra index_cs_1_eis 306 810 1146 tra index_bs_1_eis 307 811 1147 tra return_chars_eis 308 812 1148 tra return_bits_eis 309 813 1149 tra put_data_eis 310 814 1150 tra |[put_edit_eis] 311 815 1151 tra put_list_eis 312 816 1152 tra |[get_edit_eis] 313 817 1153 tra get_list_eis 314 818 1154 tra verify_eis 315 819 1155 tra search_eis 316 820 1156 tra fortran_read 317 821 1157 tra fortran_write 318 822 1158 tra fortran_manip 319 823 1159 tra fortran_scalar_xmit 320 824 1160 tra fortran_array_xmit 321 825 1161 tra fortran_terminate 322 826 1162 tra |[real_to_real_round_] 323 827 1163 tra |[real_to_real_truncate_] 324 828 1164 tra |[any_to_any_round_] 325 829 1165 tra |[any_to_any_truncate_] 326 830 1166 tra unpack_picture 327 831 1167 tra pack_picture 328 832 1168 tra divide_fx1 329 833 1169 tra divide_fx2 330 834 1170 tra divide_fx3 331 835 1171 tra divide_fx4 332 836 1172 tra scaled_mod_fx1 333 837 1173 tra scaled_mod_fx2 334 838 1174 tra scaled_mod_fx3 335 839 1175 tra scaled_mod_fx4 336 840 1176 tra translate_2 337 841 1177 tra translate_3 338 842 1178 tra |[&2square_root_] 339 843 1179 tra |[&2sine_radians_] 340 844 1180 tra |[&2sine_degrees_] 341 845 1181 tra |[&2cosine_radians_] 342 846 1182 tra |[&2cosine_degrees_] 343 847 1183 tra |[&2tangent_radians_] 344 848 1184 tra |[&2tangent_degrees_] 345 849 1185 tra |[&2arc_sine_radians_] 346 850 1186 tra |[&2arc_sine_degrees_] 347 851 1187 tra |[&2arc_cosine_radians_] 348 852 1188 tra |[&2arc_cosine_degrees_] 349 853 1189 tra |[&2arc_tangent_radians_] 350 854 1190 tra |[&2arc_tangent_degrees_] 351 855 1191 tra |[&2log_base_2_] 352 856 1192 tra |[&2log_base_e_] 353 857 1193 tra |[&2log_base_10_] 354 858 1194 tra |[&2exponential_] 355 859 1195 tra |[&2double_square_root_] 356 860 1196 tra |[&2double_sine_radians_] 357 861 1197 tra |[&2double_sine_degrees_] 358 862 1198 tra |[&2double_cosine_radians_] 359 863 1199 tra |[&2double_cosine_degrees_] 360 864 1200 tra |[&2double_tangent_radians_] 361 865 1201 tra |[&2double_tangent_degrees_] 362 866 1202 tra |[&2double_arc_sine_radians_] 363 867 1203 tra |[&2double_arc_sine_degrees_] 364 868 1204 tra |[&2double_arc_cosine_radians_] 365 869 1205 tra |[&2double_arc_cosine_degrees_] 366 870 1206 tra |[&2double_arc_tan_radians_] 367 871 1207 tra |[&2double_arc_tan_degrees_] 368 872 1208 tra |[&2double_log_base_2_] 369 873 1209 tra |[&2double_log_base_e_] 370 874 1210 tra |[&2double_log_base_10_] 371 875 1211 tra |[&2double_exponential_] 372 876 1212 tra |[&2arc_tangent_radians_2_] 373 877 1213 tra |[&2arc_tangent_degrees_2_] 374 878 1214 tra |[&2double_arc_tan_radians_2_] 375 879 1215 tra |[&2double_arc_tan_degrees_2_] 376 880 1216 tra |[&2integer_power_single_] 377 881 1217 tra |[&2integer_power_double_] 378 882 1218 tra |[&2double_power_single_] 379 883 1219 tra |[&2double_power_double_] 380 884 1220 tra |[&2double_power_integer_] 381 885 1221 tra |[&2single_power_single_] 382 886 1222 tra |[&2single_power_integer_] 383 887 1223 tra |[integer_power_integer_] 384 888 1224 tra signal_size 385 889 1225 tra &1ss_ext_entry 386 890 1226 tra &1ss_ext_entry_desc 387 891 1227 tra ss_int_entry 388 892 1228 tra ss_int_entry_desc 389 893 1229 tra ss_val_entry 390 894 1230 tra ss_val_entry_desc 391 895 1231 tra |[mpcdec] 392 896 1232 tra |[dvcdec] 393 897 1233 tra |[dvrcdec] 394 898 1234 tra |[ceil] 395 899 1235 tra |[floor] 396 900 1236 tra |[sign] 397 901 1237 tra |[cabs] 398 902 1238 tra |[truncate] 399 903 1239 tra |[mod] 400 904 1240 tra set_support 401 905 1241 tra div_4_cplx_ops 402 906 1242 tra fetch_chars_eis 403 907 1243 tra signal_stringrange 404 908 1244 tra ss_enter_begin_block 405 909 1245 tra |[put_field] 406 910 1246 tra |[put_field_chk] 407 911 1247 tra |[put_control] 408 912 1248 tra |[op_alloc_] 409 913 1249 tra alloc_storage 410 914 1250 tra |[op_freen_] 411 915 1251 tra |[op_empty_] 412 916 1252 tra |[&2cabs] 413 fortran only 917 1253 tra |[&2ccos] 414 fortran only 918 1254 tra |[&2cexp] 415 fortran only 919 1255 tra |[&2clog] 416 fortran only 920 1256 tra |[&2csin] 417 fortran only 921 1257 tra |[&2csqrt] 418 fortran only 922 1258 tra |[&2tanh] 419 fortran only 923 1259 tra |[&2dmod] 420 fortran only (obsolete) 924 1260 tra |[&2cmpx_p_cmpx] 421 fortran only 925 1261 tra &2get_math_entry 422 fortran only 926 1262 tra fortran_pause 423 fortran only 927 1263 tra fortran_stop 424 fortran only 928 1264 tra fortran_chain 425 fortran only 929 1265 tra long_profile 426 930 1266 tra index_before_cs 427 931 1267 tra index_before_bs 428 932 1268 tra index_after_cs 429 933 1269 tra index_after_bs 430 934 1270 tra index_before_bs_1 431 935 1271 tra index_after_bs_1 432 936 1272 tra verify_for_ltrim 433 937 1273 tra verify_for_rtrim 434 938 1274 tra stacq_mac 435 939 1275 tra clock_mac 436 940 1276 tra vclock_mac 437 941 1277 tra ftn_open_element 438 fortran only 942 1278 tra ftn_get_area_ptr 439 fortran only 943 1279 tra stop 440 944 1280 tra return_main 441 945 1281 tra set_main_flag 442 946 1282 tra begin_return_main 443 947 1283 tra size_check_uns_fx1 444 948 1284 tra size_check_uns_fx2 445 949 1285 tra fortran_end 446 fortran only 950 1286 tra &2fort_dmod 447 fortran only 951 1287 tra ix_rev_chars 448 952 1288 tra verify_rev_chars 449 953 1289 tra search_rev_chars 450 954 1290 tra shorten_stack_protect_ind 451 955 1291 tra save_stack_quick 452 956 1292 tra restore_stack_quick 453 957 1293 tra |[&2dtanh] 454 fortran only 958 1294 tra |[&2sinh] 455 fortran only 959 1295 tra |[&2dsinh] 456 fortran only 960 1296 tra |[&2cosh] 457 fortran only 961 1297 tra |[&2dcosh] 458 fortran only 962 1298 tra &2nearest_whole_number 459 fortran only 963 1299 tra &2nearest_integer 460 fortran only 964 1300 tra ftn_inquire_element 461 fortran only 965 1301 tra mpy_overflow_check 462 fortran only 966 1302 tra fort_return_mac 463 fortran only 967 1303 tra fort_cleanup 464 fortran only 968 1304 tra fort_storage 465 fortran only 969 1305 tra &1enter_BFP_mode 466 970 1306 tra &1enter_HFP_mode 467 971 1307 tra unimp 468 future expansion 972 1308 tra unimp 469 future expansion 973 1309 tra unimp 470 future expansion 974 1310 tra unimp 471 future expansion 975 1311 tra unimp 472 future expansion 976 1312 tra unimp 473 future expansion 977 1313 tra unimp 474 future expansion 978 1314 tra unimp 475 future expansion 979 1315 tra unimp 476 future expansion 980 1316 tra unimp 477 future expansion 981 1317 tra unimp 478 future expansion 982 1318 tra unimp 479 future expansion 983 1319 tra unimp 480 future expansion 984 1320 &end 1321 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 1322 " 1323 " END OF MACROS 1324 " 1325 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 1326 " 000000 1327 begin_pl1_operators: 1328 transfer_vector " " Due to the presence of double-word constants (at bit_mask and mask_bit) " these instructions must presently begin on an even-word boundary. " Note that if an odd number of words is added to the front of the " operator_table region, then the following even pseudo-op must be " changed to an odd pseudo-op. If you forget, an assembly error will " result (due to clever divide-by-zero, below). " even " " The following section, from location 0 to label operator_table, is referenced " directly from PL/1 programs by means of offsets of the form ap|-n (ap pointing " at pl1_operators_$operator_table). For this reason, the order of the " following instructions must not be changed. Any new coding must be placed at " the FRONT of the segment. " " This table translates a bit number between 0 and 35 to a char number " between 0 and 3. " even 000000 bitno_to_charno_table: 000011 dup 9 000000 aa 000000 000000 dec 0 dupend 000001 aa 000000 000000 dec 0 000002 aa 000000 000000 dec 0 000003 aa 000000 000000 dec 0 000004 aa 000000 000000 dec 0 000005 aa 000000 000000 dec 0 000006 aa 000000 000000 dec 0 000007 aa 000000 000000 dec 0 000010 aa 000000 000000 dec 0 000011 dup 9 000011 aa 000000 000001 dec 1 dupend 000012 aa 000000 000001 dec 1 000013 aa 000000 000001 dec 1 000014 aa 000000 000001 dec 1 000015 aa 000000 000001 dec 1 000016 aa 000000 000001 dec 1 000017 aa 000000 000001 dec 1 000020 aa 000000 000001 dec 1 000021 aa 000000 000001 dec 1 000011 dup 9 000022 aa 000000 000002 dec 2 dupend 000023 aa 000000 000002 dec 2 000024 aa 000000 000002 dec 2 000025 aa 000000 000002 dec 2 000026 aa 000000 000002 dec 2 000027 aa 000000 000002 dec 2 000030 aa 000000 000002 dec 2 000031 aa 000000 000002 dec 2 000032 aa 000000 000002 dec 2 000011 dup 9 000033 aa 000000 000003 dec 3 dupend 000034 aa 000000 000003 dec 3 000035 aa 000000 000003 dec 3 000036 aa 000000 000003 dec 3 000037 aa 000000 000003 dec 3 000040 aa 000000 000003 dec 3 000041 aa 000000 000003 dec 3 000042 aa 000000 000003 dec 3 000043 aa 000000 000003 dec 3 " " The following tables are for use with the TCT instruction. " Any single, given, character can be searched for using these " tables. " 000163 dup 115 000044 aa 777777 777777 dec -1 dupend 000045 aa 777777 777777 dec -1 000046 aa 777777 777777 dec -1 000047 aa 777777 777777 dec -1 000050 aa 777777 777777 dec -1 000051 aa 777777 777777 dec -1 000052 aa 777777 777777 dec -1 000053 aa 777777 777777 dec -1 000054 aa 777777 777777 dec -1 000055 aa 777777 777777 dec -1 000056 aa 777777 777777 dec -1 000057 aa 777777 777777 dec -1 000060 aa 777777 777777 dec -1 000061 aa 777777 777777 dec -1 000062 aa 777777 777777 dec -1 000063 aa 777777 777777 dec -1 000064 aa 777777 777777 dec -1 000065 aa 777777 777777 dec -1 000066 aa 777777 777777 dec -1 000067 aa 777777 777777 dec -1 000070 aa 777777 777777 dec -1 000071 aa 777777 777777 dec -1 000072 aa 777777 777777 dec -1 000073 aa 777777 777777 dec -1 000074 aa 777777 777777 dec -1 000075 aa 777777 777777 dec -1 000076 aa 777777 777777 dec -1 000077 aa 777777 777777 dec -1 000100 aa 777777 777777 dec -1 000101 aa 777777 777777 dec -1 000102 aa 777777 777777 dec -1 000103 aa 777777 777777 dec -1 000104 aa 777777 777777 dec -1 000105 aa 777777 777777 dec -1 000106 aa 777777 777777 dec -1 000107 aa 777777 777777 dec -1 000110 aa 777777 777777 dec -1 000111 aa 777777 777777 dec -1 000112 aa 777777 777777 dec -1 000113 aa 777777 777777 dec -1 000114 aa 777777 777777 dec -1 000115 aa 777777 777777 dec -1 000116 aa 777777 777777 dec -1 000117 aa 777777 777777 dec -1 000120 aa 777777 777777 dec -1 000121 aa 777777 777777 dec -1 000122 aa 777777 777777 dec -1 000123 aa 777777 777777 dec -1 000124 aa 777777 777777 dec -1 000125 aa 777777 777777 dec -1 000126 aa 777777 777777 dec -1 000127 aa 777777 777777 dec -1 000130 aa 777777 777777 dec -1 000131 aa 777777 777777 dec -1 000132 aa 777777 777777 dec -1 000133 aa 777777 777777 dec -1 000134 aa 777777 777777 dec -1 000135 aa 777777 777777 dec -1 000136 aa 777777 777777 dec -1 000137 aa 777777 777777 dec -1 000140 aa 777777 777777 dec -1 000141 aa 777777 777777 dec -1 000142 aa 777777 777777 dec -1 000143 aa 777777 777777 dec -1 000144 aa 777777 777777 dec -1 000145 aa 777777 777777 dec -1 000146 aa 777777 777777 dec -1 000147 aa 777777 777777 dec -1 000150 aa 777777 777777 dec -1 000151 aa 777777 777777 dec -1 000152 aa 777777 777777 dec -1 000153 aa 777777 777777 dec -1 000154 aa 777777 777777 dec -1 000155 aa 777777 777777 dec -1 000156 aa 777777 777777 dec -1 000157 aa 777777 777777 dec -1 000160 aa 777777 777777 dec -1 000161 aa 777777 777777 dec -1 000162 aa 777777 777777 dec -1 000163 aa 777777 777777 dec -1 000164 aa 777777 777777 dec -1 000165 aa 777777 777777 dec -1 000166 aa 777777 777777 dec -1 000167 aa 777777 777777 dec -1 000170 aa 777777 777777 dec -1 000171 aa 777777 777777 dec -1 000172 aa 777777 777777 dec -1 000173 aa 777777 777777 dec -1 000174 aa 777777 777777 dec -1 000175 aa 777777 777777 dec -1 000176 aa 777777 777777 dec -1 000177 aa 777777 777777 dec -1 000200 aa 777777 777777 dec -1 000201 aa 777777 777777 dec -1 000202 aa 777777 777777 dec -1 000203 aa 777777 777777 dec -1 000204 aa 777777 777777 dec -1 000205 aa 777777 777777 dec -1 000206 aa 777777 777777 dec -1 000207 aa 777777 777777 dec -1 000210 aa 777777 777777 dec -1 000211 aa 777777 777777 dec -1 000212 aa 777777 777777 dec -1 000213 aa 777777 777777 dec -1 000214 aa 777777 777777 dec -1 000215 aa 777777 777777 dec -1 000216 aa 777777 777777 dec -1 000217 aa 777777 777777 dec -1 000220 aa 777777 777777 dec -1 000221 aa 777777 777777 dec -1 000222 aa 777777 777777 dec -1 000223 aa 777777 777777 dec -1 000224 aa 777777 777777 dec -1 000225 aa 777777 777777 dec -1 000226 aa 777777 777777 dec -1 " 000227 tct_octal_060: 000004 dup 4 000227 aa 777777 777777 dec -1 dupend 000230 aa 777777 777777 dec -1 000231 aa 777777 777777 dec -1 000232 aa 777777 777777 dec -1 " 000233 tct_octal_040: 000010 dup 8 000233 aa 777777 777777 dec -1 dupend 000234 aa 777777 777777 dec -1 000235 aa 777777 777777 dec -1 000236 aa 777777 777777 dec -1 000237 aa 777777 777777 dec -1 000240 aa 777777 777777 dec -1 000241 aa 777777 777777 dec -1 000242 aa 777777 777777 dec -1 000243 tct_byte_0: 000243 aa 000777 777777 vfd 9/0,9/-1,9/-1,9/-1 000177 dup 127 000244 aa 777777 777777 dec -1 dupend 000245 aa 777777 777777 dec -1 000246 aa 777777 777777 dec -1 000247 aa 777777 777777 dec -1 000250 aa 777777 777777 dec -1 000251 aa 777777 777777 dec -1 000252 aa 777777 777777 dec -1 000253 aa 777777 777777 dec -1 000254 aa 777777 777777 dec -1 000255 aa 777777 777777 dec -1 000256 aa 777777 777777 dec -1 000257 aa 777777 777777 dec -1 000260 aa 777777 777777 dec -1 000261 aa 777777 777777 dec -1 000262 aa 777777 777777 dec -1 000263 aa 777777 777777 dec -1 000264 aa 777777 777777 dec -1 000265 aa 777777 777777 dec -1 000266 aa 777777 777777 dec -1 000267 aa 777777 777777 dec -1 000270 aa 777777 777777 dec -1 000271 aa 777777 777777 dec -1 000272 aa 777777 777777 dec -1 000273 aa 777777 777777 dec -1 000274 aa 777777 777777 dec -1 000275 aa 777777 777777 dec -1 000276 aa 777777 777777 dec -1 000277 aa 777777 777777 dec -1 000300 aa 777777 777777 dec -1 000301 aa 777777 777777 dec -1 000302 aa 777777 777777 dec -1 000303 aa 777777 777777 dec -1 000304 aa 777777 777777 dec -1 000305 aa 777777 777777 dec -1 000306 aa 777777 777777 dec -1 000307 aa 777777 777777 dec -1 000310 aa 777777 777777 dec -1 000311 aa 777777 777777 dec -1 000312 aa 777777 777777 dec -1 000313 aa 777777 777777 dec -1 000314 aa 777777 777777 dec -1 000315 aa 777777 777777 dec -1 000316 aa 777777 777777 dec -1 000317 aa 777777 777777 dec -1 000320 aa 777777 777777 dec -1 000321 aa 777777 777777 dec -1 000322 aa 777777 777777 dec -1 000323 aa 777777 777777 dec -1 000324 aa 777777 777777 dec -1 000325 aa 777777 777777 dec -1 000326 aa 777777 777777 dec -1 000327 aa 777777 777777 dec -1 000330 aa 777777 777777 dec -1 000331 aa 777777 777777 dec -1 000332 aa 777777 777777 dec -1 000333 aa 777777 777777 dec -1 000334 aa 777777 777777 dec -1 000335 aa 777777 777777 dec -1 000336 aa 777777 777777 dec -1 000337 aa 777777 777777 dec -1 000340 aa 777777 777777 dec -1 000341 aa 777777 777777 dec -1 000342 aa 777777 777777 dec -1 000343 aa 777777 777777 dec -1 000344 aa 777777 777777 dec -1 000345 aa 777777 777777 dec -1 000346 aa 777777 777777 dec -1 000347 aa 777777 777777 dec -1 000350 aa 777777 777777 dec -1 000351 aa 777777 777777 dec -1 000352 aa 777777 777777 dec -1 000353 aa 777777 777777 dec -1 000354 aa 777777 777777 dec -1 000355 aa 777777 777777 dec -1 000356 aa 777777 777777 dec -1 000357 aa 777777 777777 dec -1 000360 aa 777777 777777 dec -1 000361 aa 777777 777777 dec -1 000362 aa 777777 777777 dec -1 000363 aa 777777 777777 dec -1 000364 aa 777777 777777 dec -1 000365 aa 777777 777777 dec -1 000366 aa 777777 777777 dec -1 000367 aa 777777 777777 dec -1 000370 aa 777777 777777 dec -1 000371 aa 777777 777777 dec -1 000372 aa 777777 777777 dec -1 000373 aa 777777 777777 dec -1 000374 aa 777777 777777 dec -1 000375 aa 777777 777777 dec -1 000376 aa 777777 777777 dec -1 000377 aa 777777 777777 dec -1 000400 aa 777777 777777 dec -1 000401 aa 777777 777777 dec -1 000402 aa 777777 777777 dec -1 000403 aa 777777 777777 dec -1 000404 aa 777777 777777 dec -1 000405 aa 777777 777777 dec -1 000406 aa 777777 777777 dec -1 000407 aa 777777 777777 dec -1 000410 aa 777777 777777 dec -1 000411 aa 777777 777777 dec -1 000412 aa 777777 777777 dec -1 000413 aa 777777 777777 dec -1 000414 aa 777777 777777 dec -1 000415 aa 777777 777777 dec -1 000416 aa 777777 777777 dec -1 000417 aa 777777 777777 dec -1 000420 aa 777777 777777 dec -1 000421 aa 777777 777777 dec -1 000422 aa 777777 777777 dec -1 000423 aa 777777 777777 dec -1 000424 aa 777777 777777 dec -1 000425 aa 777777 777777 dec -1 000426 aa 777777 777777 dec -1 000427 aa 777777 777777 dec -1 000430 aa 777777 777777 dec -1 000431 aa 777777 777777 dec -1 000432 aa 777777 777777 dec -1 000433 aa 777777 777777 dec -1 000434 aa 777777 777777 dec -1 000435 aa 777777 777777 dec -1 000436 aa 777777 777777 dec -1 000437 aa 777777 777777 dec -1 000440 aa 777777 777777 dec -1 000441 aa 777777 777777 dec -1 000442 aa 777777 777777 dec -1 " 000443 tct_byte_1: 000443 aa 777000 777777 vfd 9/-1,9/0,9/-1,9/-1 000177 dup 127 000444 aa 777777 777777 dec -1 dupend 000445 aa 777777 777777 dec -1 000446 aa 777777 777777 dec -1 000447 aa 777777 777777 dec -1 000450 aa 777777 777777 dec -1 000451 aa 777777 777777 dec -1 000452 aa 777777 777777 dec -1 000453 aa 777777 777777 dec -1 000454 aa 777777 777777 dec -1 000455 aa 777777 777777 dec -1 000456 aa 777777 777777 dec -1 000457 aa 777777 777777 dec -1 000460 aa 777777 777777 dec -1 000461 aa 777777 777777 dec -1 000462 aa 777777 777777 dec -1 000463 aa 777777 777777 dec -1 000464 aa 777777 777777 dec -1 000465 aa 777777 777777 dec -1 000466 aa 777777 777777 dec -1 000467 aa 777777 777777 dec -1 000470 aa 777777 777777 dec -1 000471 aa 777777 777777 dec -1 000472 aa 777777 777777 dec -1 000473 aa 777777 777777 dec -1 000474 aa 777777 777777 dec -1 000475 aa 777777 777777 dec -1 000476 aa 777777 777777 dec -1 000477 aa 777777 777777 dec -1 000500 aa 777777 777777 dec -1 000501 aa 777777 777777 dec -1 000502 aa 777777 777777 dec -1 000503 aa 777777 777777 dec -1 000504 aa 777777 777777 dec -1 000505 aa 777777 777777 dec -1 000506 aa 777777 777777 dec -1 000507 aa 777777 777777 dec -1 000510 aa 777777 777777 dec -1 000511 aa 777777 777777 dec -1 000512 aa 777777 777777 dec -1 000513 aa 777777 777777 dec -1 000514 aa 777777 777777 dec -1 000515 aa 777777 777777 dec -1 000516 aa 777777 777777 dec -1 000517 aa 777777 777777 dec -1 000520 aa 777777 777777 dec -1 000521 aa 777777 777777 dec -1 000522 aa 777777 777777 dec -1 000523 aa 777777 777777 dec -1 000524 aa 777777 777777 dec -1 000525 aa 777777 777777 dec -1 000526 aa 777777 777777 dec -1 000527 aa 777777 777777 dec -1 000530 aa 777777 777777 dec -1 000531 aa 777777 777777 dec -1 000532 aa 777777 777777 dec -1 000533 aa 777777 777777 dec -1 000534 aa 777777 777777 dec -1 000535 aa 777777 777777 dec -1 000536 aa 777777 777777 dec -1 000537 aa 777777 777777 dec -1 000540 aa 777777 777777 dec -1 000541 aa 777777 777777 dec -1 000542 aa 777777 777777 dec -1 000543 aa 777777 777777 dec -1 000544 aa 777777 777777 dec -1 000545 aa 777777 777777 dec -1 000546 aa 777777 777777 dec -1 000547 aa 777777 777777 dec -1 000550 aa 777777 777777 dec -1 000551 aa 777777 777777 dec -1 000552 aa 777777 777777 dec -1 000553 aa 777777 777777 dec -1 000554 aa 777777 777777 dec -1 000555 aa 777777 777777 dec -1 000556 aa 777777 777777 dec -1 000557 aa 777777 777777 dec -1 000560 aa 777777 777777 dec -1 000561 aa 777777 777777 dec -1 000562 aa 777777 777777 dec -1 000563 aa 777777 777777 dec -1 000564 aa 777777 777777 dec -1 000565 aa 777777 777777 dec -1 000566 aa 777777 777777 dec -1 000567 aa 777777 777777 dec -1 000570 aa 777777 777777 dec -1 000571 aa 777777 777777 dec -1 000572 aa 777777 777777 dec -1 000573 aa 777777 777777 dec -1 000574 aa 777777 777777 dec -1 000575 aa 777777 777777 dec -1 000576 aa 777777 777777 dec -1 000577 aa 777777 777777 dec -1 000600 aa 777777 777777 dec -1 000601 aa 777777 777777 dec -1 000602 aa 777777 777777 dec -1 000603 aa 777777 777777 dec -1 000604 aa 777777 777777 dec -1 000605 aa 777777 777777 dec -1 000606 aa 777777 777777 dec -1 000607 aa 777777 777777 dec -1 000610 aa 777777 777777 dec -1 000611 aa 777777 777777 dec -1 000612 aa 777777 777777 dec -1 000613 aa 777777 777777 dec -1 000614 aa 777777 777777 dec -1 000615 aa 777777 777777 dec -1 000616 aa 777777 777777 dec -1 000617 aa 777777 777777 dec -1 000620 aa 777777 777777 dec -1 000621 aa 777777 777777 dec -1 000622 aa 777777 777777 dec -1 000623 aa 777777 777777 dec -1 000624 aa 777777 777777 dec -1 000625 aa 777777 777777 dec -1 000626 aa 777777 777777 dec -1 000627 aa 777777 777777 dec -1 000630 aa 777777 777777 dec -1 000631 aa 777777 777777 dec -1 000632 aa 777777 777777 dec -1 000633 aa 777777 777777 dec -1 000634 aa 777777 777777 dec -1 000635 aa 777777 777777 dec -1 000636 aa 777777 777777 dec -1 000637 aa 777777 777777 dec -1 000640 aa 777777 777777 dec -1 000641 aa 777777 777777 dec -1 000642 aa 777777 777777 dec -1 " 000643 tct_byte_2: 000643 aa 777777 000777 vfd 9/-1,9/-1,9/0,9/-1 000177 dup 127 000644 aa 777777 777777 dec -1 dupend 000645 aa 777777 777777 dec -1 000646 aa 777777 777777 dec -1 000647 aa 777777 777777 dec -1 000650 aa 777777 777777 dec -1 000651 aa 777777 777777 dec -1 000652 aa 777777 777777 dec -1 000653 aa 777777 777777 dec -1 000654 aa 777777 777777 dec -1 000655 aa 777777 777777 dec -1 000656 aa 777777 777777 dec -1 000657 aa 777777 777777 dec -1 000660 aa 777777 777777 dec -1 000661 aa 777777 777777 dec -1 000662 aa 777777 777777 dec -1 000663 aa 777777 777777 dec -1 000664 aa 777777 777777 dec -1 000665 aa 777777 777777 dec -1 000666 aa 777777 777777 dec -1 000667 aa 777777 777777 dec -1 000670 aa 777777 777777 dec -1 000671 aa 777777 777777 dec -1 000672 aa 777777 777777 dec -1 000673 aa 777777 777777 dec -1 000674 aa 777777 777777 dec -1 000675 aa 777777 777777 dec -1 000676 aa 777777 777777 dec -1 000677 aa 777777 777777 dec -1 000700 aa 777777 777777 dec -1 000701 aa 777777 777777 dec -1 000702 aa 777777 777777 dec -1 000703 aa 777777 777777 dec -1 000704 aa 777777 777777 dec -1 000705 aa 777777 777777 dec -1 000706 aa 777777 777777 dec -1 000707 aa 777777 777777 dec -1 000710 aa 777777 777777 dec -1 000711 aa 777777 777777 dec -1 000712 aa 777777 777777 dec -1 000713 aa 777777 777777 dec -1 000714 aa 777777 777777 dec -1 000715 aa 777777 777777 dec -1 000716 aa 777777 777777 dec -1 000717 aa 777777 777777 dec -1 000720 aa 777777 777777 dec -1 000721 aa 777777 777777 dec -1 000722 aa 777777 777777 dec -1 000723 aa 777777 777777 dec -1 000724 aa 777777 777777 dec -1 000725 aa 777777 777777 dec -1 000726 aa 777777 777777 dec -1 000727 aa 777777 777777 dec -1 000730 aa 777777 777777 dec -1 000731 aa 777777 777777 dec -1 000732 aa 777777 777777 dec -1 000733 aa 777777 777777 dec -1 000734 aa 777777 777777 dec -1 000735 aa 777777 777777 dec -1 000736 aa 777777 777777 dec -1 000737 aa 777777 777777 dec -1 000740 aa 777777 777777 dec -1 000741 aa 777777 777777 dec -1 000742 aa 777777 777777 dec -1 000743 aa 777777 777777 dec -1 000744 aa 777777 777777 dec -1 000745 aa 777777 777777 dec -1 000746 aa 777777 777777 dec -1 000747 aa 777777 777777 dec -1 000750 aa 777777 777777 dec -1 000751 aa 777777 777777 dec -1 000752 aa 777777 777777 dec -1 000753 aa 777777 777777 dec -1 000754 aa 777777 777777 dec -1 000755 aa 777777 777777 dec -1 000756 aa 777777 777777 dec -1 000757 aa 777777 777777 dec -1 000760 aa 777777 777777 dec -1 000761 aa 777777 777777 dec -1 000762 aa 777777 777777 dec -1 000763 aa 777777 777777 dec -1 000764 aa 777777 777777 dec -1 000765 aa 777777 777777 dec -1 000766 aa 777777 777777 dec -1 000767 aa 777777 777777 dec -1 000770 aa 777777 777777 dec -1 000771 aa 777777 777777 dec -1 000772 aa 777777 777777 dec -1 000773 aa 777777 777777 dec -1 000774 aa 777777 777777 dec -1 000775 aa 777777 777777 dec -1 000776 aa 777777 777777 dec -1 000777 aa 777777 777777 dec -1 001000 aa 777777 777777 dec -1 001001 aa 777777 777777 dec -1 001002 aa 777777 777777 dec -1 001003 aa 777777 777777 dec -1 001004 aa 777777 777777 dec -1 001005 aa 777777 777777 dec -1 001006 aa 777777 777777 dec -1 001007 aa 777777 777777 dec -1 001010 aa 777777 777777 dec -1 001011 aa 777777 777777 dec -1 001012 aa 777777 777777 dec -1 001013 aa 777777 777777 dec -1 001014 aa 777777 777777 dec -1 001015 aa 777777 777777 dec -1 001016 aa 777777 777777 dec -1 001017 aa 777777 777777 dec -1 001020 aa 777777 777777 dec -1 001021 aa 777777 777777 dec -1 001022 aa 777777 777777 dec -1 001023 aa 777777 777777 dec -1 001024 aa 777777 777777 dec -1 001025 aa 777777 777777 dec -1 001026 aa 777777 777777 dec -1 001027 aa 777777 777777 dec -1 001030 aa 777777 777777 dec -1 001031 aa 777777 777777 dec -1 001032 aa 777777 777777 dec -1 001033 aa 777777 777777 dec -1 001034 aa 777777 777777 dec -1 001035 aa 777777 777777 dec -1 001036 aa 777777 777777 dec -1 001037 aa 777777 777777 dec -1 001040 aa 777777 777777 dec -1 001041 aa 777777 777777 dec -1 001042 aa 777777 777777 dec -1 " 001043 tct_byte_3: 001043 aa 777777 777000 vfd 9/-1,9/-1,9/-1,9/0 000177 dup 127 001044 aa 777777 777777 dec -1 dupend 001045 aa 777777 777777 dec -1 001046 aa 777777 777777 dec -1 001047 aa 777777 777777 dec -1 001050 aa 777777 777777 dec -1 001051 aa 777777 777777 dec -1 001052 aa 777777 777777 dec -1 001053 aa 777777 777777 dec -1 001054 aa 777777 777777 dec -1 001055 aa 777777 777777 dec -1 001056 aa 777777 777777 dec -1 001057 aa 777777 777777 dec -1 001060 aa 777777 777777 dec -1 001061 aa 777777 777777 dec -1 001062 aa 777777 777777 dec -1 001063 aa 777777 777777 dec -1 001064 aa 777777 777777 dec -1 001065 aa 777777 777777 dec -1 001066 aa 777777 777777 dec -1 001067 aa 777777 777777 dec -1 001070 aa 777777 777777 dec -1 001071 aa 777777 777777 dec -1 001072 aa 777777 777777 dec -1 001073 aa 777777 777777 dec -1 001074 aa 777777 777777 dec -1 001075 aa 777777 777777 dec -1 001076 aa 777777 777777 dec -1 001077 aa 777777 777777 dec -1 001100 aa 777777 777777 dec -1 001101 aa 777777 777777 dec -1 001102 aa 777777 777777 dec -1 001103 aa 777777 777777 dec -1 001104 aa 777777 777777 dec -1 001105 aa 777777 777777 dec -1 001106 aa 777777 777777 dec -1 001107 aa 777777 777777 dec -1 001110 aa 777777 777777 dec -1 001111 aa 777777 777777 dec -1 001112 aa 777777 777777 dec -1 001113 aa 777777 777777 dec -1 001114 aa 777777 777777 dec -1 001115 aa 777777 777777 dec -1 001116 aa 777777 777777 dec -1 001117 aa 777777 777777 dec -1 001120 aa 777777 777777 dec -1 001121 aa 777777 777777 dec -1 001122 aa 777777 777777 dec -1 001123 aa 777777 777777 dec -1 001124 aa 777777 777777 dec -1 001125 aa 777777 777777 dec -1 001126 aa 777777 777777 dec -1 001127 aa 777777 777777 dec -1 001130 aa 777777 777777 dec -1 001131 aa 777777 777777 dec -1 001132 aa 777777 777777 dec -1 001133 aa 777777 777777 dec -1 001134 aa 777777 777777 dec -1 001135 aa 777777 777777 dec -1 001136 aa 777777 777777 dec -1 001137 aa 777777 777777 dec -1 001140 aa 777777 777777 dec -1 001141 aa 777777 777777 dec -1 001142 aa 777777 777777 dec -1 001143 aa 777777 777777 dec -1 001144 aa 777777 777777 dec -1 001145 aa 777777 777777 dec -1 001146 aa 777777 777777 dec -1 001147 aa 777777 777777 dec -1 001150 aa 777777 777777 dec -1 001151 aa 777777 777777 dec -1 001152 aa 777777 777777 dec -1 001153 aa 777777 777777 dec -1 001154 aa 777777 777777 dec -1 001155 aa 777777 777777 dec -1 001156 aa 777777 777777 dec -1 001157 aa 777777 777777 dec -1 001160 aa 777777 777777 dec -1 001161 aa 777777 777777 dec -1 001162 aa 777777 777777 dec -1 001163 aa 777777 777777 dec -1 001164 aa 777777 777777 dec -1 001165 aa 777777 777777 dec -1 001166 aa 777777 777777 dec -1 001167 aa 777777 777777 dec -1 001170 aa 777777 777777 dec -1 001171 aa 777777 777777 dec -1 001172 aa 777777 777777 dec -1 001173 aa 777777 777777 dec -1 001174 aa 777777 777777 dec -1 001175 aa 777777 777777 dec -1 001176 aa 777777 777777 dec -1 001177 aa 777777 777777 dec -1 001200 aa 777777 777777 dec -1 001201 aa 777777 777777 dec -1 001202 aa 777777 777777 dec -1 001203 aa 777777 777777 dec -1 001204 aa 777777 777777 dec -1 001205 aa 777777 777777 dec -1 001206 aa 777777 777777 dec -1 001207 aa 777777 777777 dec -1 001210 aa 777777 777777 dec -1 001211 aa 777777 777777 dec -1 001212 aa 777777 777777 dec -1 001213 aa 777777 777777 dec -1 001214 aa 777777 777777 dec -1 001215 aa 777777 777777 dec -1 001216 aa 777777 777777 dec -1 001217 aa 777777 777777 dec -1 001220 aa 777777 777777 dec -1 001221 aa 777777 777777 dec -1 001222 aa 777777 777777 dec -1 001223 aa 777777 777777 dec -1 001224 aa 777777 777777 dec -1 001225 aa 777777 777777 dec -1 001226 aa 777777 777777 dec -1 001227 aa 777777 777777 dec -1 001230 aa 777777 777777 dec -1 001231 aa 777777 777777 dec -1 001232 aa 777777 777777 dec -1 001233 aa 777777 777777 dec -1 001234 aa 777777 777777 dec -1 001235 aa 777777 777777 dec -1 001236 aa 777777 777777 dec -1 001237 aa 777777 777777 dec -1 001240 aa 777777 777777 dec -1 001241 aa 777777 777777 dec -1 001242 aa 777777 777777 dec -1 " " The number of words per segment of a FORTRAN Very Large Array. " 001243 VLA_words_per_seg_: 001243 aa 000001 000000 vfd 36/256*1024 " " table of csl's for use by bool builtin function " 001244 csl_vector: 001244 aa 0 00140 0605 40 csl (pr,rl),(pr,rl),bool(0) 001245 aa 0 01140 0605 40 csl (pr,rl),(pr,rl),bool(1) 001246 aa 0 02140 0605 40 csl (pr,rl),(pr,rl),bool(2) 001247 aa 0 03140 0605 40 csl (pr,rl),(pr,rl),bool(3) 001250 aa 0 04140 0605 40 csl (pr,rl),(pr,rl),bool(4) 001251 aa 0 05140 0605 40 csl (pr,rl),(pr,rl),bool(5) 001252 aa 0 06140 0605 40 csl (pr,rl),(pr,rl),bool(6) 001253 aa 0 07140 0605 40 csl (pr,rl),(pr,rl),bool(7) 001254 aa 0 10140 0605 40 csl (pr,rl),(pr,rl),bool(10) 001255 aa 0 11140 0605 40 csl (pr,rl),(pr,rl),bool(11) 001256 aa 0 12140 0605 40 csl (pr,rl),(pr,rl),bool(12) 001257 aa 0 13140 0605 40 csl (pr,rl),(pr,rl),bool(13) 001260 aa 0 14140 0605 40 csl (pr,rl),(pr,rl),bool(14) 001261 aa 0 15140 0605 40 csl (pr,rl),(pr,rl),bool(15) 001262 aa 0 16140 0605 40 csl (pr,rl),(pr,rl),bool(16) 001263 aa 0 17140 0605 40 csl (pr,rl),(pr,rl),bool(17) " " shift table for character offset " 001264 aa 000000 000000 co_to_bo: dec 0,9b17,18b17,27b17 001265 aa 000011 000000 001266 aa 000022 000000 001267 aa 000033 000000 " " shift table for half word offset " 001270 aa 000000 000000 ho_to_bo: dec 0,18b17 001271 aa 000022 000000 " " store table from a, 9 bit bytes, character offset " OFFSET SIZE " 001272 store_a9_co: 001272 aa 2 00000 5511 40 stba bp|0,40 0 1 001273 aa 2 00000 5511 20 stba bp|0,20 1 001274 aa 2 00000 5511 10 stba bp|0,10 2 001275 aa 2 00000 5511 04 stba bp|0,04 3 001276 aa 2 00000 5511 60 stba bp|0,60 0 2 001277 aa 2 00000 5511 30 stba bp|0,30 1 001300 aa 2 00000 5511 14 stba bp|0,14 2 001301 aa 2 00000 5511 04 stba bp|0,04 3 001302 aa 2 00000 5511 70 stba bp|0,70 0 3 001303 aa 2 00000 5511 34 stba bp|0,34 1 001304 aa 2 00000 5511 14 stba bp|0,14 2 001305 aa 2 00000 5511 04 stba bp|0,04 3 001306 aa 2 00000 7551 00 sta bp|0 0 4 001307 aa 2 00000 5511 34 stba bp|0,34 1 001310 aa 2 00000 5511 14 stba bp|0,14 2 001311 aa 2 00000 5511 04 stba bp|0,04 3 001312 aa 2 00000 7551 00 sta bp|0 0 5 001313 aa 2 00000 5511 34 stba bp|0,34 1 001314 aa 2 00000 5511 14 stba bp|0,14 2 001315 aa 2 00000 5511 04 stba bp|0,04 3 " " store table from q, 9 bit bytes, character offset " OFFSET SIZE " 001316 store_q9_co: 001316 aa 000000 0110 07 nop 0,dl 0 2 001317 aa 000000 0110 07 nop 0,dl 1 001320 aa 000000 0110 07 nop 0,dl 2 001321 aa 2 00001 5521 40 stbq bp|1,40 3 001322 aa 000000 0110 07 nop 0,dl 0 3 001323 aa 000000 0110 07 nop 0,dl 1 001324 aa 2 00001 5521 40 stbq bp|1,40 2 001325 aa 2 00001 5521 60 stbq bp|1,60 3 001326 aa 000000 0110 07 nop 0,dl 0 4 001327 aa 2 00001 5521 40 stbq bp|1,40 1 001330 aa 2 00001 5521 60 stbq bp|1,60 2 001331 aa 2 00001 5521 70 stbq bp|1,70 3 001332 aa 2 00001 5521 40 stbq bp|1,40 0 5 001333 aa 2 00001 5521 60 stbq bp|1,60 1 001334 aa 2 00001 5521 70 stbq bp|1,70 2 001335 aa 2 00001 7561 00 stq bp|1 3 " " store table from a, 9 bit bytes, half word offset " OFFSET SIZE " 001336 store_a9_ho: 001336 aa 2 00000 5511 40 stba bp|0,40 0 1 001337 aa 2 00000 5511 10 stba bp|0,10 1 001340 aa 2 00000 5511 60 stba bp|0,60 0 2 001341 aa 2 00000 5511 14 stba bp|0,14 1 001342 aa 2 00000 5511 70 stba bp|0,70 0 3 001343 aa 2 00000 5511 14 stba bp|0,14 1 001344 aa 2 00000 7551 00 sta bp|0 0 4 001345 aa 2 00000 5511 14 stba bp|0,14 1 001346 aa 2 00000 7551 00 sta bp|0 0 5 001347 aa 2 00000 5511 14 stba bp|0,14 1 001350 aa 2 00000 7551 00 sta bp|0 0 6 001351 aa 2 00000 5511 14 stba bp|0,14 1 " " store table from q, 9 bit bytes, half word offset " OFFSET SIZE " 001352 store_q9_ho: 001352 aa 000000 0110 07 nop 0,dl 0 2 001353 aa 000000 0110 07 nop 0,dl 1 001354 aa 000000 0110 07 nop 0,dl 0 3 001355 aa 2 00001 5521 40 stbq bp|1,40 1 001356 aa 000000 0110 07 nop 0,dl 0 4 001357 aa 2 00001 5521 60 stbq bp|1,60 1 001360 aa 2 00001 5521 40 stbq bp|1,40 0 5 001361 aa 2 00001 5521 70 stbq bp|1,70 1 001362 aa 2 00001 5521 60 stbq bp|1,60 0 6 001363 aa 2 00001 7561 00 stq bp|1 1 " " store table from a, 6 bit bytes, half word offset " OFFSET SIZE " 001364 store_a6_ho: 001364 aa 2 00000 7511 40 stca bp|0,40 0 1 001365 aa 2 00000 7511 04 stca bp|0,04 1 001366 aa 2 00000 7511 60 stca bp|0,60 0 2 001367 aa 2 00000 7511 06 stca bp|0,06 1 001370 aa 2 00000 7511 70 stca bp|0,70 0 3 001371 aa 2 00000 7511 07 stca bp|0,07 1 001372 aa 2 00000 7511 74 stca bp|0,74 0 4 001373 aa 2 00000 7511 07 stca bp|0,07 1 001374 aa 2 00000 7511 76 stca bp|0,76 0 5 001375 aa 2 00000 7511 07 stca bp|0,07 1 001376 aa 2 00000 7551 00 sta bp|0 0 6 001377 aa 2 00000 7511 07 stca bp|0,07 1 001400 aa 2 00000 7551 00 sta bp|0 0 7 001401 aa 2 00000 7511 07 stca bp|0,07 1 001402 aa 2 00000 7551 00 sta bp|0 0 8 001403 aa 2 00000 7511 07 stca bp|0,07 1 001404 aa 2 00000 7551 00 sta bp|0 0 9 001405 aa 2 00000 7511 07 stca bp|0,07 1 " " store table from q, 6 bit bytes, half word offset " OFFSET SIZE " 001406 store_q6_ho: 001406 aa 000000 0110 07 nop 0,dl 0 2 001407 aa 000000 0110 07 nop 0,dl 1 001410 aa 000000 0110 07 nop 0,dl 0 3 001411 aa 000000 0110 07 nop 0,dl 1 001412 aa 000000 0110 07 nop 0,dl 0 4 001413 aa 2 00001 7521 40 stcq bp|1,40 1 001414 aa 000000 0110 07 nop 0,dl 0 5 001415 aa 2 00001 7521 60 stcq bp|1,60 1 001416 aa 000000 0110 07 nop 0,dl 0 6 001417 aa 2 00001 7521 70 stcq bp|1,70 1 001420 aa 2 00001 7521 40 stcq bp|1,40 0 7 001421 aa 2 00001 7521 74 stcq bp|1,74 1 001422 aa 2 00001 7521 60 stcq bp|1,60 0 8 001423 aa 2 00001 7521 76 stcq bp|1,76 1 001424 aa 2 00001 7521 70 stcq bp|1,70 0 9 001425 aa 2 00001 7561 00 stq bp|1 1 " " THE FOLLOWING SECTION IS DIRECTLY REFERENCED FROM PL/1 PROGRAMS BY MEANS OF " ap|offset. FOR THIS REASON, THE ORDER OF THE FOLLOWING INSTRUCTIONS MUST " NOT BE CHANGED. " 001426 operator_table: 001426 bit_mask: 001426 aa 000000 000000 vfd 0/-1,72/0 001427 aa 000000 000000 001430 aa 400000 000000 vfd 1/-1,71/0 001431 aa 000000 000000 001432 aa 600000 000000 vfd 2/-1,70/0 001433 aa 000000 000000 001434 aa 700000 000000 vfd 3/-1,69/0 001435 aa 000000 000000 001436 aa 740000 000000 vfd 4/-1,68/0 001437 aa 000000 000000 001440 aa 760000 000000 vfd 5/-1,67/0 001441 aa 000000 000000 001442 aa 770000 000000 vfd 6/-1,66/0 001443 aa 000000 000000 001444 aa 774000 000000 vfd 7/-1,65/0 001445 aa 000000 000000 001446 aa 776000 000000 vfd 8/-1,64/0 001447 aa 000000 000000 001450 aa 777000 000000 vfd 9/-1,63/0 001451 aa 000000 000000 001452 aa 777400 000000 vfd 10/-1,62/0 001453 aa 000000 000000 001454 aa 777600 000000 vfd 11/-1,61/0 001455 aa 000000 000000 001456 aa 777700 000000 vfd 12/-1,60/0 001457 aa 000000 000000 001460 aa 777740 000000 vfd 13/-1,59/0 001461 aa 000000 000000 001462 aa 777760 000000 vfd 14/-1,58/0 001463 aa 000000 000000 001464 aa 777770 000000 vfd 15/-1,57/0 001465 aa 000000 000000 001466 aa 777774 000000 vfd 16/-1,56/0 001467 aa 000000 000000 001470 aa 777776 000000 vfd 17/-1,55/0 001471 aa 000000 000000 001472 aa 777777 000000 vfd 18/-1,54/0 001473 aa 000000 000000 001474 aa 777777 400000 vfd 19/-1,53/0 001475 aa 000000 000000 001476 aa 777777 600000 vfd 20/-1,52/0 001477 aa 000000 000000 001500 aa 777777 700000 vfd 21/-1,51/0 001501 aa 000000 000000 001502 aa 777777 740000 vfd 22/-1,50/0 001503 aa 000000 000000 001504 aa 777777 760000 vfd 23/-1,49/0 001505 aa 000000 000000 001506 aa 777777 770000 vfd 24/-1,48/0 001507 aa 000000 000000 001510 aa 777777 774000 vfd 25/-1,47/0 001511 aa 000000 000000 001512 aa 777777 776000 vfd 26/-1,46/0 001513 aa 000000 000000 001514 aa 777777 777000 vfd 27/-1,45/0 001515 aa 000000 000000 001516 aa 777777 777400 vfd 28/-1,44/0 001517 aa 000000 000000 001520 aa 777777 777600 vfd 29/-1,43/0 001521 aa 000000 000000 001522 aa 777777 777700 vfd 30/-1,42/0 001523 aa 000000 000000 001524 aa 777777 777740 vfd 31/-1,41/0 001525 aa 000000 000000 001526 aa 777777 777760 vfd 32/-1,40/0 001527 aa 000000 000000 001530 aa 777777 777770 vfd 33/-1,39/0 001531 aa 000000 000000 001532 aa 777777 777774 vfd 34/-1,38/0 001533 aa 000000 000000 001534 aa 777777 777776 vfd 35/-1,37/0 001535 aa 000000 000000 001536 aa 777777 777777 ones: vfd 36/-1,36/0 001537 aa 000000 000000 001540 aa 777777 777777 vfd 36/-1,1/-1,35/0 001541 aa 400000 000000 001542 aa 777777 777777 vfd 36/-1,2/-1,34/0 001543 aa 600000 000000 001544 aa 777777 777777 vfd 36/-1,3/-1,33/0 001545 aa 700000 000000 001546 aa 777777 777777 vfd 36/-1,4/-1,32/0 001547 aa 740000 000000 001550 aa 777777 777777 vfd 36/-1,5/-1,31/0 001551 aa 760000 000000 001552 aa 777777 777777 vfd 36/-1,6/-1,30/0 001553 aa 770000 000000 001554 aa 777777 777777 vfd 36/-1,7/-1,29/0 001555 aa 774000 000000 001556 aa 777777 777777 vfd 36/-1,8/-1,28/0 001557 aa 776000 000000 001560 aa 777777 777777 vfd 36/-1,9/-1,27/0 001561 aa 777000 000000 001562 aa 777777 777777 vfd 36/-1,10/-1,26/0 001563 aa 777400 000000 001564 aa 777777 777777 vfd 36/-1,11/-1,25/0 001565 aa 777600 000000 001566 aa 777777 777777 vfd 36/-1,12/-1,24/0 001567 aa 777700 000000 001570 aa 777777 777777 vfd 36/-1,13/-1,23/0 001571 aa 777740 000000 001572 aa 777777 777777 vfd 36/-1,14/-1,22/0 001573 aa 777760 000000 001574 aa 777777 777777 vfd 36/-1,15/-1,21/0 001575 aa 777770 000000 001576 aa 777777 777777 vfd 36/-1,16/-1,20/0 001577 aa 777774 000000 001600 aa 777777 777777 vfd 36/-1,17/-1,19/0 001601 aa 777776 000000 001602 aa 777777 777777 vfd 36/-1,18/-1,18/0 001603 aa 777777 000000 001604 aa 777777 777777 vfd 36/-1,19/-1,17/0 001605 aa 777777 400000 001606 aa 777777 777777 vfd 36/-1,20/-1,16/0 001607 aa 777777 600000 001610 aa 777777 777777 vfd 36/-1,21/-1,15/0 001611 aa 777777 700000 001612 aa 777777 777777 vfd 36/-1,22/-1,14/0 001613 aa 777777 740000 001614 aa 777777 777777 vfd 36/-1,23/-1,13/0 001615 aa 777777 760000 001616 aa 777777 777777 vfd 36/-1,24/-1,12/0 001617 aa 777777 770000 001620 aa 777777 777777 vfd 36/-1,25/-1,11/0 001621 aa 777777 774000 001622 aa 777777 777777 vfd 36/-1,26/-1,10/0 001623 aa 777777 776000 001624 aa 777777 777777 vfd 36/-1,27/-1,9/0 001625 aa 777777 777000 001626 aa 777777 777777 vfd 36/-1,28/-1,8/0 001627 aa 777777 777400 001630 aa 777777 777777 vfd 36/-1,29/-1,7/0 001631 aa 777777 777600 001632 aa 777777 777777 vfd 36/-1,30/-1,6/0 001633 aa 777777 777700 001634 aa 777777 777777 vfd 36/-1,31/-1,5/0 001635 aa 777777 777740 001636 aa 777777 777777 vfd 36/-1,32/-1,4/0 001637 aa 777777 777760 001640 aa 777777 777777 vfd 36/-1,33/-1,3/0 001641 aa 777777 777770 001642 aa 777777 777777 vfd 36/-1,34/-1,2/0 001643 aa 777777 777774 001644 aa 777777 777777 vfd 36/-1,35/-1,1/0 001645 aa 777777 777776 " 001646 mask_bit: 001646 aa 777777 777777 vfd 0/0,36/-1,36/-1 001647 aa 777777 777777 001650 aa 377777 777777 vfd 1/0,35/-1,36/-1 001651 aa 777777 777777 001652 aa 177777 777777 vfd 2/0,34/-1,36/-1 001653 aa 777777 777777 001654 aa 077777 777777 vfd 3/0,33/-1,36/-1 001655 aa 777777 777777 001656 aa 037777 777777 vfd 4/0,32/-1,36/-1 001657 aa 777777 777777 001660 aa 017777 777777 vfd 5/0,31/-1,36/-1 001661 aa 777777 777777 001662 aa 007777 777777 vfd 6/0,30/-1,36/-1 001663 aa 777777 777777 001664 aa 003777 777777 vfd 7/0,29/-1,36/-1 001665 aa 777777 777777 001666 aa 001777 777777 vfd 8/0,28/-1,36/-1 001667 aa 777777 777777 001670 aa 000777 777777 vfd 9/0,27/-1,36/-1 001671 aa 777777 777777 001672 aa 000377 777777 vfd 10/0,26/-1,36/-1 001673 aa 777777 777777 001674 aa 000177 777777 vfd 11/0,25/-1,36/-1 001675 aa 777777 777777 001676 aa 000077 777777 vfd 12/0,24/-1,36/-1 001677 aa 777777 777777 001700 aa 000037 777777 vfd 13/0,23/-1,36/-1 001701 aa 777777 777777 001702 aa 000017 777777 vfd 14/0,22/-1,36/-1 001703 aa 777777 777777 001704 aa 000007 777777 vfd 15/0,21/-1,36/-1 001705 aa 777777 777777 001706 aa 000003 777777 vfd 16/0,20/-1,36/-1 001707 aa 777777 777777 001710 aa 000001 777777 vfd 17/0,19/-1,36/-1 001711 aa 777777 777777 001712 aa 000000 777777 vfd 18/0,18/-1,36/-1 001713 aa 777777 777777 001714 aa 000000 377777 vfd 19/0,17/-1,36/-1 001715 aa 777777 777777 001716 aa 000000 177777 vfd 20/0,16/-1,36/-1 001717 aa 777777 777777 001720 aa 000000 077777 vfd 21/0,15/-1,36/-1 001721 aa 777777 777777 001722 aa 000000 037777 vfd 22/0,14/-1,36/-1 001723 aa 777777 777777 001724 aa 000000 017777 vfd 23/0,13/-1,36/-1 001725 aa 777777 777777 001726 aa 000000 007777 vfd 24/0,12/-1,36/-1 001727 aa 777777 777777 001730 aa 000000 003777 vfd 25/0,11/-1,36/-1 001731 aa 777777 777777 001732 aa 000000 001777 vfd 26/0,10/-1,36/-1 001733 aa 777777 777777 001734 aa 000000 000777 vfd 27/0,9/-1,36/-1 001735 aa 777777 777777 001736 aa 000000 000377 vfd 28/0,8/-1,36/-1 001737 aa 777777 777777 001740 aa 000000 000177 vfd 29/0,7/-1,36/-1 001741 aa 777777 777777 001742 aa 000000 000077 vfd 30/0,6/-1,36/-1 001743 aa 777777 777777 001744 aa 000000 000037 vfd 31/0,5/-1,36/-1 001745 aa 777777 777777 001746 aa 000000 000017 vfd 32/0,4/-1,36/-1 001747 aa 777777 777777 001750 aa 000000 000007 vfd 33/0,3/-1,36/-1 001751 aa 777777 777777 001752 aa 000000 000003 vfd 34/0,2/-1,36/-1 001753 aa 777777 777777 001754 aa 000000 000001 vfd 35/0,1/-1,36/-1 001755 aa 777777 777777 001756 aa 000000 000000 vfd 36/0,36/-1 001757 aa 777777 777777 001760 max_single_value: 001760 aa 000000 000000 vfd 37/0,35/-1 001761 aa 377777 777777 001762 aa 000000 000000 vfd 38/0,34/-1 001763 aa 177777 777777 001764 aa 000000 000000 vfd 39/0,33/-1 001765 aa 077777 777777 001766 aa 000000 000000 vfd 40/0,32/-1 001767 aa 037777 777777 001770 aa 000000 000000 vfd 41/0,31/-1 001771 aa 017777 777777 001772 aa 000000 000000 vfd 42/0,30/-1 001773 aa 007777 777777 001774 aa 000000 000000 vfd 43/0,29/-1 001775 aa 003777 777777 001776 aa 000000 000000 vfd 44/0,28/-1 001777 aa 001777 777777 002000 aa 000000 000000 vfd 45/0,27/-1 002001 aa 000777 777777 002002 aa 000000 000000 vfd 46/0,26/-1 002003 aa 000377 777777 002004 aa 000000 000000 vfd 47/0,25/-1 002005 aa 000177 777777 002006 aa 000000 000000 vfd 48/0,24/-1 002007 aa 000077 777777 002010 aa 000000 000000 vfd 49/0,23/-1 002011 aa 000037 777777 002012 aa 000000 000000 vfd 50/0,22/-1 002013 aa 000017 777777 002014 aa 000000 000000 vfd 51/0,21/-1 002015 aa 000007 777777 002016 aa 000000 000000 vfd 52/0,20/-1 002017 aa 000003 777777 002020 aa 000000 000000 vfd 53/0,19/-1 002021 aa 000001 777777 002022 aa 000000 000000 vfd 54/0,18/-1 002023 aa 000000 777777 002024 aa 000000 000000 vfd 55/0,17/-1 002025 aa 000000 377777 002026 aa 000000 000000 vfd 56/0,16/-1 002027 aa 000000 177777 002030 aa 000000 000000 vfd 57/0,15/-1 002031 aa 000000 077777 002032 aa 000000 000000 vfd 58/0,14/-1 002033 aa 000000 037777 002034 aa 000000 000000 vfd 59/0,13/-1 002035 aa 000000 017777 002036 aa 000000 000000 vfd 60/0,12/-1 002037 aa 000000 007777 002040 aa 000000 000000 vfd 61/0,11/-1 002041 aa 000000 003777 002042 aa 000000 000000 vfd 62/0,10/-1 002043 aa 000000 001777 002044 aa 000000 000000 vfd 63/0,9/-1 002045 aa 000000 000777 002046 aa 000000 000000 vfd 64/0,8/-1 002047 aa 000000 000377 002050 aa 000000 000000 vfd 65/0,7/-1 002051 aa 000000 000177 002052 aa 000000 000000 vfd 66/0,6/-1 002053 aa 000000 000077 002054 aa 000000 000000 vfd 67/0,5/-1 002055 aa 000000 000037 002056 aa 000000 000000 vfd 68/0,4/-1 002057 aa 000000 000017 002060 aa 000000 000000 vfd 69/0,3/-1 002061 aa 000000 000007 002062 aa 000000 000000 vfd 70/0,2/-1 002063 aa 000000 000003 002064 aa 000000 000000 vfd 71/0,1/-1 002065 aa 000000 000001 " 002066 aa 040040 040040 blanks: oct 040040040040,040040040040 002067 aa 040040 040040 002070 aa 000040 040040 oct 000040040040,040040040040 002071 aa 040040 040040 002072 aa 000000 040040 oct 000000040040,040040040040 002073 aa 040040 040040 002074 aa 000000 000040 oct 000000000040,040040040040 002075 aa 040040 040040 002076 aa 000000 000000 oct 000000000000,040040040040 002077 aa 040040 040040 002100 aa 000000 000000 oct 000000000000,000040040040 002101 aa 000040 040040 002102 aa 000000 000000 oct 000000000000,000000040040 002103 aa 000000 040040 002104 aa 000000 000000 oct 000000000000,000000000040 002105 aa 000000 000040 " 002106 aa 077777 000077 ptr_mask: oct 077777000077,777777077077 mask for use in ptr comparisions 002107 aa 777777 077077 " " operator to convert single fixed to double fixed " even 002110 fx1_to_fx2: 002110 aa 000044 7770 00 llr 36 002111 aa 000044 7330 00 lrs 36 " " operators to convert fixed to float " 002112 aa 000000 0110 03 odd 002113 fx1_to_fl2: 002113 0a 002110 7170 00 xed fx1_to_fx2 " even 002114 fx2_to_fl2: 002114 aa 216000 4110 03 lde =71b25,du 002115 aa 400000 4750 03 fad =0.,du 002116 aa 6 00046 7101 70 tra sp|tbp,*0 " " operator to reset next stack pointer " 002117 aa 000000 0110 03 even 002120 reset_stack: 002120 aa 6 00005 2201 00 ldx0 sp|5 002121 aa 6 00023 7401 00 stx0 sp|stack_frame.next_sp+1 " " operators to convert indicators into relations " 002122 0a 002164 6040 00 r_l_a: tmi true 002123 aa 000000 2350 07 lda 0,dl 002124 aa 6 00046 7101 70 tra sp|tbp,*0 " 002125 aa 000002 6000 04 r_g_s: tze 2,ic 002126 0a 002164 6030 00 trc true 002127 aa 000000 2350 07 lda 0,dl 002130 aa 6 00046 7101 70 tra sp|tbp,*0 " 002131 aa 000002 6000 04 r_g_a: tze 2,ic 002132 0a 002164 6050 00 tpl true 002133 aa 000000 2350 07 lda 0,dl 002134 aa 6 00046 7101 70 tra sp|tbp,*0 " 002135 0a 002164 6020 00 r_l_s: tnc true 002136 aa 000000 2350 07 lda 0,dl 002137 aa 6 00046 7101 70 tra sp|tbp,*0 " 002140 0a 002164 6000 00 r_e_as: tze true 002141 aa 000000 2350 07 lda 0,dl 002142 aa 6 00046 7101 70 tra sp|tbp,*0 " 002143 0a 002164 6010 00 r_ne_as: tnz true 002144 aa 000000 2350 07 lda 0,dl 002145 aa 6 00046 7101 70 tra sp|tbp,*0 " 002146 0a 002164 6040 00 r_le_a: tmi true 002147 0a 002164 6000 00 tze true 002150 aa 000000 2350 07 lda 0,dl 002151 aa 6 00046 7101 70 tra sp|tbp,*0 " 002152 0a 002164 6030 00 r_ge_s: trc true 002153 aa 000000 2350 07 lda 0,dl 002154 aa 6 00046 7101 70 tra sp|tbp,*0 " 002155 0a 002164 6050 00 r_ge_a: tpl true 002156 aa 000000 2350 07 lda 0,dl 002157 aa 6 00046 7101 70 tra sp|tbp,*0 " 002160 0a 002164 6020 00 r_le_s: tnc true 002161 0a 002164 6000 00 tze true 002162 aa 000000 2350 07 lda 0,dl 002163 aa 6 00046 7101 70 tra sp|tbp,*0 " 002164 aa 400000 2350 03 true: lda =o400000,du 002165 aa 6 00046 7101 70 tra sp|tbp,*0 " " operator to set stack ptr to that of block N static " levels above the current block. Entered with N in q. " (should not be called with N = 0, but will work anyway.) " 002166 set_stack: 002166 0a 005674 7010 00 tsx1 display_chase get ptr to proper frame 002167 aa 2 00000 3721 00 eppsp bp|0 into sp 002170 0a 003276 7100 00 tra set_stack_extend do three more instructions (added later " and since compiled code knows offsets in this " area, couldn't add the code inline) " " tables to convert to bit offset ready to be ORed into pointer " 002171 aa 000000 000000 mod2_tab: dec 0,18b26 002172 aa 000000 022000 " 002173 aa 000000 000000 mod4_tab: dec 0,9b26,18b26,27b26 002174 aa 000000 011000 002175 aa 000000 022000 002176 aa 000000 033000 " " transfer vector for operators not referenced directly " by the pl/1 program. new operators may be added at the " end of the list only. " 002177 op_vector: 002177 0a 003140 7100 00 tra alloc_char_temp 0 002200 0a 003152 7100 00 tra alloc_bit_temp 1 002201 0a 003161 7100 00 tra alloc_temp 2 002202 0a 003217 7100 00 tra realloc_char_temp 3 002203 0a 003207 7100 00 tra realloc_bit_temp 4 002204 0a 003304 7100 00 tra save_string 5 obsolete 002205 0a 007646 7100 00 tra pk_to_unpk 6 002206 0a 007655 7100 00 tra unpk_to_pk 7 002207 0a 003633 7100 00 tra move_chars 8 obsolete 002210 0a 003641 7100 00 tra move_chars_aligned 9 obsolete 002211 0a 003604 7100 00 tra move_bits 10 obsolete 002212 0a 003612 7100 00 tra move_bits_aligned 11 obsolete 002213 0a 003727 7100 00 tra chars_move 12 obsolete 002214 0a 003740 7100 00 tra chars_move_aligned 13 obsolete 002215 0a 003755 7100 00 tra bits_move 14 obsolete 002216 0a 003766 7100 00 tra bits_move_aligned 15 obsolete 002217 0a 003573 7100 00 tra move_not_bits 16 obsolete 002220 0a 003601 7100 00 tra move_not_bits_aligned 17 obsolete 002221 0a 003676 7100 00 tra ext_and_1 18 002222 0a 003677 7100 00 tra ext_and_2 19 002223 0a 003717 7100 00 tra comp_bits 20 002224 0a 004371 7100 00 tra cpbs3 21 obsolete 002225 0a 004401 7100 00 tra cpbs3_aligned 22 obsolete 002226 0a 004377 7100 00 tra cpbs4 23 obsolete 002227 0a 004357 7100 00 tra cpcs_ext1 24 002230 0a 004360 7100 00 tra cpcs_ext2 25 002231 0a 004364 7100 00 tra cpbs_ext1 26 002232 0a 004365 7100 00 tra cpbs_ext2 27 002233 0a 003354 7100 00 tra store_string 28 002234 0a 003215 7100 00 tra cat_realloc_chars 29 002235 0a 003177 7100 00 tra cat_realloc_bits 30 002236 0a 004320 7100 00 tra cp_chars 31 obsolete 002237 0a 004326 7100 00 tra cp_chars_aligned 32 obsolete 002240 0a 004340 7100 00 tra cp_bits 33 obsolete 002241 0a 004346 7100 00 tra cp_bits_aligned 34 obsolete 002242 0a 012364 7100 00 tra enter_begin_block 35 002243 0a 005552 7100 00 tra leave_begin_block 36 002244 0a 005607 7100 00 tra call_ent_var_desc 37 002245 0a 005610 7100 00 tra call_ent_var 38 002246 0a 005623 7100 00 tra call_ext_in_desc 39 002247 0a 005624 7100 00 tra call_ext_in 40 002250 0a 005623 7100 00 tra call_ext_out_desc 41 002251 0a 005624 7100 00 tra call_ext_out 42 002252 0a 005634 7100 00 tra call_int_this_desc 43 002253 0a 005635 7100 00 tra call_int_this 44 002254 0a 005645 7100 00 tra call_int_other_desc 45 002255 0a 005646 7100 00 tra call_int_other 46 002256 0a 005572 7100 00 tra begin_return_mac 47 002257 0a 005600 7100 00 tra return_mac 48 002260 0a 003654 7100 00 tra cat_move_chars 49 obsolete 002261 0a 003662 7100 00 tra cat_move_chars_aligned 50 obsolete 002262 0a 003552 7100 00 tra cat_move_bits 51 obsolete 002263 0a 003560 7100 00 tra cat_move_bits_aligned 52 obsolete 002264 0a 004040 7100 00 tra cat_chars 53 obsolete 002265 0a 004046 7100 00 tra cat_chars_aligned 54 obsolete 002266 0a 004063 7100 00 tra cat_bits 55 obsolete 002267 0a 004071 7100 00 tra cat_bits_aligned 56 obsolete 002270 0a 003321 7100 00 tra set_chars 57 obsolete 002271 0a 003327 7100 00 tra set_chars_aligned 58 obsolete 002272 0a 003342 7100 00 tra set_bits 59 obsolete 002273 0a 003350 7100 00 tra set_bits_aligned 60 obsolete 002274 0a 003517 7100 00 tra and_bits 61 obsolete 002275 0a 003525 7100 00 tra and_bits_aligned 62 obsolete 002276 0a 003530 7100 00 tra or_bits 63 obsolete 002277 0a 003536 7100 00 tra or_bits_aligned 64 obsolete 002300 0a 005660 7100 00 tra move_label_var 65 002301 0a 005666 7100 00 tra make_label_var 66 002302 0a 006532 7100 00 tra fl2_to_fx1 67 002303 0a 006532 7100 00 tra fl2_to_fx2 68 002304 0a 007620 7100 00 tra longbs_to_fx2 69 002305 0a 007265 7100 00 tra tra_ext_1 70 002306 0a 007273 7100 00 tra tra_ext_2 71 002307 0a 007301 7100 00 tra alloc_auto_adj 72 002310 0a 007636 7100 00 tra longbs_to_bs18 73 002311 0a 006553 7100 00 tra stac_mac 74 002312 0a 006642 7100 00 tra sign_mac 75 002313 0a 010206 7100 00 tra bound_ck_signal 76 002314 0a 006650 7100 00 tra trans_sign_fx1 77 002315 0a 006660 7100 00 tra trans_sign_fl 78 002316 0a 007023 7100 00 tra copy_words 79 obsolete 002317 0a 007035 7100 00 tra mpfx2 80 002320 0a 007104 7100 00 tra mpfx3 81 002321 0a 004445 7100 00 tra copy_const 82 obsolete 002322 0a 004444 7100 00 tra copy_const_vt 83 obsolete 002323 0a 007205 7100 00 tra sr_check 84 obsolete 002324 0a 003726 7100 00 tra chars_move_vt 85 obsolete 002325 0a 003737 7100 00 tra chars_move_vta 86 obsolete 002326 0a 003754 7100 00 tra bits_move_vt 87 obsolete 002327 0a 003765 7100 00 tra bits_move_vta 88 obsolete 002330 0a 007314 7100 00 tra mdfl1 89 002331 0a 007335 7100 00 tra mdfl2 90 002332 0a 005701 7100 00 tra mdfx1 91 002333 0a 005716 7100 00 tra mdfx2 92 002334 0a 005742 7100 00 tra mdfx3 93 002335 0a 005720 7100 00 tra mdfx4 94 002336 0a 007033 7100 00 tra copy_double 95 obsolete 002337 0a 003371 7100 00 tra string_store 96 obsolete 002340 0a 003421 7100 00 tra get_chars 97 obsolete 002341 0a 003455 7100 00 tra get_bits 98 obsolete 002342 0a 003474 7100 00 tra pad_chars 99 002343 0a 003506 7100 00 tra pad_bits 100 002344 0a 010202 7100 00 tra signal_op 101 002345 0a 010107 7100 00 tra enable_op 102 002346 0a 004453 7100 00 tra index_chars 103 obsolete 002347 0a 004461 7100 00 tra index_chars_aligned 104 obsolete 002350 0a 004611 7100 00 tra index_bits 105 obsolete 002351 0a 004617 7100 00 tra index_bits_aligned 106 obsolete 002352 0a 003541 7100 00 tra exor_bits 107 obsolete 002353 0a 003547 7100 00 tra exor_bits_aligned 108 obsolete 002354 0a 003344 7100 00 tra set_bits_co 109 obsolete 002355 0a 003346 7100 00 tra set_bits_ho 110 obsolete 002356 0a 003323 7100 00 tra set_chars_co 111 obsolete 002357 0a 003325 7100 00 tra set_chars_ho 112 obsolete 002360 0a 003373 7100 00 tra string_store_co 113 obsolete 002361 0a 003402 7100 00 tra string_store_ho 114 obsolete 002362 0a 003423 7100 00 tra get_chars_co 115 obsolete 002363 0a 003425 7100 00 tra get_chars_ho 116 obsolete 002364 0a 003457 7100 00 tra get_bits_co 117 obsolete 002365 0a 003461 7100 00 tra get_bits_ho 118 obsolete 002366 0a 003521 7100 00 tra and_bits_co 119 obsolete 002367 0a 003523 7100 00 tra and_bits_ho 120 obsolete 002370 0a 003532 7100 00 tra or_bits_co 121 obsolete 002371 0a 003534 7100 00 tra or_bits_ho 122 obsolete 002372 0a 003543 7100 00 tra exor_bits_co 123 obsolete 002373 0a 003545 7100 00 tra exor_bits_ho 124 obsolete 002374 0a 003554 7100 00 tra cat_move_bits_co 125 obsolete 002375 0a 003556 7100 00 tra cat_move_bits_ho 126 obsolete 002376 0a 003575 7100 00 tra move_not_bits_co 127 obsolete 002377 0a 003577 7100 00 tra move_not_bits_ho 128 obsolete 002400 0a 003606 7100 00 tra move_bits_co 129 obsolete 002401 0a 003610 7100 00 tra move_bits_ho 130 obsolete 002402 0a 003635 7100 00 tra move_chars_co 131 obsolete 002403 0a 003637 7100 00 tra move_chars_ho 132 obsolete 002404 0a 003656 7100 00 tra cat_move_chars_co 133 obsolete 002405 0a 003660 7100 00 tra cat_move_chars_ho 134 obsolete 002406 0a 004042 7100 00 tra cat_chars_co 135 obsolete 002407 0a 004044 7100 00 tra cat_chars_ho 136 obsolete 002410 0a 004065 7100 00 tra cat_bits_co 137 obsolete 002411 0a 004067 7100 00 tra cat_bits_ho 138 obsolete 002412 0a 011327 7100 00 tra io_signal 139 002413 0a 004650 7100 00 tra index_cs_1 140 obsolete 002414 0a 004656 7100 00 tra index_cs_1_aligned 141 obsolete 002415 0a 006670 7100 00 tra fort_mdfl1 142 002416 0a 006724 7100 00 tra rfb1_to_cflb1 143 002417 0a 006726 7100 00 tra rfb2_to_cflb1 144 002420 0a 006734 7100 00 tra mpcfl1_1 145 002421 0a 006735 7100 00 tra mpcfl1_2 146 002422 0a 006755 7100 00 tra dvcfl1_1 147 002423 0a 006756 7100 00 tra dvcfl1_2 148 002424 0a 003731 7100 00 tra chars_move_vt_co 149 obsolete 002425 0a 003734 7100 00 tra chars_move_vt_ho 150 obsolete 002426 0a 003732 7100 00 tra chars_move_co 151 obsolete 002427 0a 003735 7100 00 tra chars_move_ho 152 obsolete 002430 0a 003757 7100 00 tra bits_move_vt_co 153 obsolete 002431 0a 003762 7100 00 tra bits_move_vt_ho 154 obsolete 002432 0a 003760 7100 00 tra bits_move_co 155 obsolete 002433 0a 003763 7100 00 tra bits_move_ho 156 obsolete 002434 0a 004322 7100 00 tra cp_chars_co 157 obsolete 002435 0a 004324 7100 00 tra cp_chars_ho 158 obsolete 002436 0a 004342 7100 00 tra cp_bits_co 159 obsolete 002437 0a 004344 7100 00 tra cp_bits_ho 160 obsolete 002440 0a 004373 7100 00 tra cpbs3_co 161 obsolete 002441 0a 004375 7100 00 tra cpbs3_ho 162 obsolete 002442 0a 003254 7100 00 tra shorten_stack 163 002443 0a 004426 7100 00 tra zero_bits 164 obsolete 002444 0a 004434 7100 00 tra zero_bits_aligned 165 obsolete 002445 0a 004430 7100 00 tra zero_bits_co 166 obsolete 002446 0a 004432 7100 00 tra zero_bits_ho 167 obsolete 002447 0a 004407 7100 00 tra blank_chars 168 obsolete 002450 0a 004415 7100 00 tra blank_chars_aligned 169 obsolete 002451 0a 004411 7100 00 tra blank_chars_co 170 obsolete 002452 0a 004413 7100 00 tra blank_chars_ho 171 obsolete 002453 0a 004455 7100 00 tra index_chars_co 172 obsolete 002454 0a 004457 7100 00 tra index_chars_ho 173 obsolete 002455 0a 004613 7100 00 tra index_bits_co 174 obsolete 002456 0a 004615 7100 00 tra index_bits_ho 175 obsolete 002457 0a 004652 7100 00 tra index_cs_1_co 176 obsolete 002460 0a 004654 7100 00 tra index_cs_1_ho 177 obsolete 002461 0a 004673 7100 00 tra index_bs_1 178 obsolete 002462 0a 004701 7100 00 tra index_bs_1_aligned 179 obsolete 002463 0a 004675 7100 00 tra index_bs_1_co 180 obsolete 002464 0a 004677 7100 00 tra index_bs_1_ho 181 obsolete 002465 0a 012444 0000 00 arg shift_bo 182 obsolete 002466 0a 005422 7100 00 tra return_words 183 002467 0a 005442 7100 00 tra return_bits 184 obsolete 002470 0a 005444 7100 00 tra return_bits_co 185 obsolete 002471 0a 005446 7100 00 tra return_bits_ho 186 obsolete 002472 0a 005450 7100 00 tra return_bits_al 187 obsolete 002473 entry_operators: 002473 0a 012054 7100 00 tra ext_entry 188 002474 0a 012100 7100 00 tra ext_entry_desc 189 002475 0a 012121 7100 00 tra int_entry 190 002476 0a 012137 7100 00 tra int_entry_desc 191 002477 0a 012156 7100 00 tra val_entry 192 002500 0a 012154 7100 00 tra val_entry_desc 193 002501 0a 003427 7100 00 tra get_chars_aligned 194 obsolete 002502 0a 003463 7100 00 tra get_bits_aligned 195 obsolete 002503 0a 003416 7100 00 tra fetch_chars 196 002504 0a 003451 7100 00 tra fetch_bits 197 002505 0a 010501 7100 00 tra get_terminate 198 002506 4a 4 00010 7101 20 tra |[put_terminate] 199 002507 0a 010333 7100 00 tra put_data_aligned 200 obsolete 002510 0a 010346 7100 00 tra get_list_aligned 201 obsolete 002511 0a 010357 7100 00 tra get_edit_aligned 202 obsolete 002512 0a 010411 7100 00 tra put_list_aligned 203 obsolete 002513 0a 010422 7100 00 tra put_edit_aligned 204 obsolete 002514 4a 4 00012 7101 20 tra |[stream_prep] 205 002515 4a 4 00014 7101 20 tra |[record_io] 206 002516 0a 010505 7100 00 tra open_file 207 002517 0a 010507 7100 00 tra close_file 208 002520 0a 010325 7100 00 tra put_data 209 obsolete 002521 0a 010327 7100 00 tra put_data_co 210 obsolete 002522 0a 010331 7100 00 tra put_data_ho 211 obsolete 002523 0a 010340 7100 00 tra get_list 212 obsolete 002524 0a 010342 7100 00 tra get_list_co 213 obsolete 002525 0a 010344 7100 00 tra get_list_ho 214 obsolete 002526 0a 010351 7100 00 tra get_edit 215 obsolete 002527 0a 010353 7100 00 tra get_edit_co 216 obsolete 002530 0a 010355 7100 00 tra get_edit_ho 217 obsolete 002531 0a 010403 7100 00 tra put_list 218 obsolete 002532 0a 010405 7100 00 tra put_list_co 219 obsolete 002533 0a 010407 7100 00 tra put_list_ho 220 obsolete 002534 0a 010414 7100 00 tra put_edit 221 obsolete 002535 0a 010416 7100 00 tra put_edit_co 222 obsolete 002536 0a 010420 7100 00 tra put_edit_ho 223 obsolete 002537 0a 004236 7100 00 tra suffix_cs 224 obsolete 002540 0a 004254 7100 00 tra suffix_bs 225 obsolete 002541 0a 006542 7100 00 tra fl2_to_fxscaled 226 002542 0a 007363 7100 00 tra trunc_fx1 227 002543 0a 007375 7100 00 tra trunc_fx2 228 002544 0a 007444 7100 00 tra ceil_fx1 229 002545 0a 007500 7100 00 tra ceil_fx2 230 002546 0a 007415 7100 00 tra ceil_fl 231 002547 0a 007425 7100 00 tra floor_fx1 232 002550 0a 007463 7100 00 tra floor_fx2 233 002551 0a 007405 7100 00 tra floor_fl 234 002552 0a 007354 7100 00 tra trunc_fl 235 002553 0a 007515 7100 00 tra round_fx1 236 002554 0a 007536 7100 00 tra round_fx2 237 002555 0a 004103 7100 00 tra repeat 238 002556 0a 005052 7100 00 tra make_bit_table 239 obsolete 002557 0a 005060 7100 00 tra make_bit_table_al 240 obsolete 002560 0a 005054 7100 00 tra make_bit_table_co 241 obsolete 002561 0a 005056 7100 00 tra make_bit_table_ho 242 obsolete 002562 0a 005147 7100 00 tra verify 243 obsolete 002563 0a 005155 7100 00 tra verify_al 244 obsolete 002564 0a 005151 7100 00 tra verify_co 245 obsolete 002565 0a 005153 7100 00 tra verify_ho 246 obsolete 002566 0a 005161 7100 00 tra const_verify 247 obsolete 002567 0a 005167 7100 00 tra const_verify_al 248 obsolete 002570 0a 005163 7100 00 tra const_verify_co 249 obsolete 002571 0a 005165 7100 00 tra const_verify_ho 250 obsolete 002572 0a 004212 7100 00 tra reverse_cs 251 002573 0a 004166 7100 00 tra reverse_bs 252 002574 0a 005110 7100 00 tra form_bit_table 253 obsolete 002575 0a 005112 7100 00 tra form_bit_table_co 254 obsolete 002576 0a 005114 7100 00 tra form_bit_table_ho 255 obsolete 002577 0a 005116 7100 00 tra form_bit_table_al 256 obsolete 002600 0a 004002 7100 00 tra chars_move_ck 257 obsolete 002601 0a 004004 7100 00 tra chars_move_ck_co 258 obsolete 002602 0a 004006 7100 00 tra chars_move_ck_ho 259 obsolete 002603 0a 004010 7100 00 tra chars_move_ck_al 260 obsolete 002604 0a 004021 7100 00 tra bits_move_ck 261 obsolete 002605 0a 004023 7100 00 tra bits_move_ck_co 262 obsolete 002606 0a 004025 7100 00 tra bits_move_ck_ho 263 obsolete 002607 0a 004027 7100 00 tra bits_move_ck_al 264 obsolete 002610 0a 007771 7100 00 tra size_check_fx1 265 002611 0a 010013 7100 00 tra size_check_fx2 266 002612 0a 010053 7100 00 tra signal_stringsize 267 002613 0a 004272 7100 00 tra suffix_cs_ck 268 obsolete 002614 0a 004312 7100 00 tra suffix_bs_ck 269 obsolete 002615 0a 011032 7100 00 tra pointer_hard 270 002616 0a 007727 7100 00 tra alm_call 271 special for alm 002617 0a 007733 7100 00 tra alm_push 272 special for alm 002620 0a 007757 7100 00 tra alm_return 273 special for alm 002621 0a 007765 7100 00 tra alm_return_no_pop 274 special for alm 002622 0a 007747 7100 00 tra alm_entry 275 special for alm 002623 0a 007663 7100 00 tra packed_to_bp 276 obsolete 002624 0a 005466 7100 00 tra return_chars 277 obsolete 002625 0a 005470 7100 00 tra return_chars_co 278 obsolete 002626 0a 005472 7100 00 tra return_chars_ho 279 obsolete 002627 0a 005474 7100 00 tra return_chars_aligned 280 obsolete 002630 0a 007667 7100 00 tra rpd_odd_lp_bp 281 obsolete 002631 0a 007677 7100 00 tra rpd_odd_bp_lp 282 obsolete 002632 0a 007707 7100 00 tra rpd_even_lp_bp 283 obsolete 002633 0a 007717 7100 00 tra rpd_even_bp_lp 284 obsolete 002634 0a 011060 7100 00 tra offset_easy 285 002635 0a 011074 7100 00 tra offset_easy_pk 286 002636 0a 011060 7100 00 tra offset_hard 287 002637 0a 011074 7100 00 tra offset_hard_pk 288 002640 0a 011045 7100 00 tra pointer_hard_pk 289 002641 0a 011032 7100 00 tra pointer_easy 290 002642 0a 011045 7100 00 tra pointer_easy_pk 291 002643 0a 007553 7100 00 tra round_fl 292 002644 0a 010222 7100 00 tra enable_file 293 002645 0a 010275 7100 00 tra revert_file 294 002646 0a 011107 7100 00 tra alloc_block 295 002647 0a 011134 7100 00 tra free_block 296 002650 0a 011151 7100 00 tra push_ctl_data 297 002651 0a 011147 7100 00 tra push_ctl_desc 298 002652 0a 011173 7100 00 tra pop_ctl_data 299 002653 0a 011173 7100 00 tra pop_ctl_desc 300 002654 0a 011213 7100 00 tra allocation 301 002655 0a 003315 7100 00 tra set_chars_eis 302 002656 0a 003336 7100 00 tra set_bits_eis 303 002657 0a 004464 7100 00 tra index_chars_eis 304 002660 0a 004606 7100 00 tra index_bits_eis 305 002661 0a 004645 7100 00 tra index_cs_1_eis 306 002662 0a 004670 7100 00 tra index_bs_1_eis 307 002663 0a 005477 7100 00 tra return_chars_eis 308 002664 0a 005453 7100 00 tra return_bits_eis 309 002665 0a 010323 7100 00 tra put_data_eis 310 002666 4a 4 00016 7101 20 tra |[put_edit_eis] 311 002667 0a 010362 7100 00 tra put_list_eis 312 002670 4a 4 00020 7101 20 tra |[get_edit_eis] 313 002671 0a 010336 7100 00 tra get_list_eis 314 002672 0a 005245 7100 00 tra verify_eis 315 002673 0a 005223 7100 00 tra search_eis 316 002674 0a 010511 7100 00 tra fortran_read 317 002675 0a 010511 7100 00 tra fortran_write 318 002676 0a 010554 7100 00 tra fortran_manip 319 002677 0a 010547 7100 00 tra fortran_scalar_xmit 320 002700 0a 010547 7100 00 tra fortran_array_xmit 321 002701 0a 010556 7100 00 tra fortran_terminate 322 002702 4a 4 00022 7101 20 tra |[real_to_real_round_] 323 002703 4a 4 00024 7101 20 tra |[real_to_real_truncate_] 324 002704 4a 4 00026 7101 20 tra |[any_to_any_round_] 325 002705 4a 4 00030 7101 20 tra |[any_to_any_truncate_] 326 002706 0a 011226 7100 00 tra unpack_picture 327 002707 0a 011231 7100 00 tra pack_picture 328 002710 0a 006042 7100 00 tra divide_fx1 329 002711 0a 006061 7100 00 tra divide_fx2 330 002712 0a 006044 7100 00 tra divide_fx3 331 002713 0a 006063 7100 00 tra divide_fx4 332 002714 0a 006027 7100 00 tra scaled_mod_fx1 333 002715 0a 005757 7100 00 tra scaled_mod_fx2 334 002716 0a 006031 7100 00 tra scaled_mod_fx3 335 002717 0a 005761 7100 00 tra scaled_mod_fx4 336 002720 0a 005322 7100 00 tra translate_2 337 002721 0a 005360 7100 00 tra translate_3 338 002722 4a 4 00032 7101 20 tra |[square_root_] 339 002723 4a 4 00034 7101 20 tra |[sine_radians_] 340 002724 4a 4 00036 7101 20 tra |[sine_degrees_] 341 002725 4a 4 00040 7101 20 tra |[cosine_radians_] 342 002726 4a 4 00042 7101 20 tra |[cosine_degrees_] 343 002727 4a 4 00044 7101 20 tra |[tangent_radians_] 344 002730 4a 4 00046 7101 20 tra |[tangent_degrees_] 345 002731 4a 4 00050 7101 20 tra |[arc_sine_radians_] 346 002732 4a 4 00052 7101 20 tra |[arc_sine_degrees_] 347 002733 4a 4 00054 7101 20 tra |[arc_cosine_radians_] 348 002734 4a 4 00056 7101 20 tra |[arc_cosine_degrees_] 349 002735 4a 4 00060 7101 20 tra |[arc_tangent_radians_] 350 002736 4a 4 00062 7101 20 tra |[arc_tangent_degrees_] 351 002737 4a 4 00064 7101 20 tra |[log_base_2_] 352 002740 4a 4 00066 7101 20 tra |[log_base_e_] 353 002741 4a 4 00070 7101 20 tra |[log_base_10_] 354 002742 4a 4 00072 7101 20 tra |[exponential_] 355 002743 4a 4 00074 7101 20 tra |[double_square_root_] 356 002744 4a 4 00076 7101 20 tra |[double_sine_radians_] 357 002745 4a 4 00100 7101 20 tra |[double_sine_degrees_] 358 002746 4a 4 00102 7101 20 tra |[double_cosine_radians_] 359 002747 4a 4 00104 7101 20 tra |[double_cosine_degrees_] 360 002750 4a 4 00106 7101 20 tra |[double_tangent_radians_] 361 002751 4a 4 00110 7101 20 tra |[double_tangent_degrees_] 362 002752 4a 4 00112 7101 20 tra |[double_arc_sine_radians_] 363 002753 4a 4 00114 7101 20 tra |[double_arc_sine_degrees_] 364 002754 4a 4 00116 7101 20 tra |[double_arc_cosine_radians_] 365 002755 4a 4 00120 7101 20 tra |[double_arc_cosine_degrees_] 366 002756 4a 4 00122 7101 20 tra |[double_arc_tan_radians_] 367 002757 4a 4 00124 7101 20 tra |[double_arc_tan_degrees_] 368 002760 4a 4 00126 7101 20 tra |[double_log_base_2_] 369 002761 4a 4 00130 7101 20 tra |[double_log_base_e_] 370 002762 4a 4 00132 7101 20 tra |[double_log_base_10_] 371 002763 4a 4 00134 7101 20 tra |[double_exponential_] 372 002764 4a 4 00136 7101 20 tra |[arc_tangent_radians_2_] 373 002765 4a 4 00140 7101 20 tra |[arc_tangent_degrees_2_] 374 002766 4a 4 00142 7101 20 tra |[double_arc_tan_radians_2_] 375 002767 4a 4 00144 7101 20 tra |[double_arc_tan_degrees_2_] 376 002770 4a 4 00146 7101 20 tra |[integer_power_single_] 377 002771 4a 4 00150 7101 20 tra |[integer_power_double_] 378 002772 4a 4 00152 7101 20 tra |[double_power_single_] 379 002773 4a 4 00154 7101 20 tra |[double_power_double_] 380 002774 4a 4 00156 7101 20 tra |[double_power_integer_] 381 002775 4a 4 00160 7101 20 tra |[single_power_single_] 382 002776 4a 4 00162 7101 20 tra |[single_power_integer_] 383 002777 4a 4 00164 7101 20 tra |[integer_power_integer_] 384 003000 0a 010050 7100 00 tra signal_size 385 003001 0a 012214 7100 00 tra ss_ext_entry 386 003002 0a 012242 7100 00 tra ss_ext_entry_desc 387 003003 0a 012264 7100 00 tra ss_int_entry 388 003004 0a 012303 7100 00 tra ss_int_entry_desc 389 003005 0a 012323 7100 00 tra ss_val_entry 390 003006 0a 012321 7100 00 tra ss_val_entry_desc 391 003007 4a 4 00166 7101 20 tra |[mpcdec] 392 003010 4a 4 00170 7101 20 tra |[dvcdec] 393 003011 4a 4 00172 7101 20 tra |[dvrcdec] 394 003012 4a 4 00174 7101 20 tra |[ceil] 395 003013 4a 4 00176 7101 20 tra |[floor] 396 003014 4a 4 00200 7101 20 tra |[sign] 397 003015 4a 4 00202 7101 20 tra |[cabs] 398 003016 4a 4 00204 7101 20 tra |[truncate] 399 003017 4a 4 00206 7101 20 tra |[mod] 400 003020 0a 011351 7100 00 tra set_support 401 003021 0a 006071 7100 00 tra div_4_cplx_ops 402 003022 0a 003441 7100 00 tra fetch_chars_eis 403 003023 0a 007247 7100 00 tra signal_stringrange 404 003024 0a 012404 7100 00 tra ss_enter_begin_block 405 003025 4a 4 00210 7101 20 tra |[put_field] 406 003026 4a 4 00212 7101 20 tra |[put_field_chk] 407 003027 4a 4 00214 7101 20 tra |[put_control] 408 003030 4a 4 00216 7101 20 tra |[op_alloc_] 409 003031 0a 011104 7100 00 tra alloc_storage 410 003032 4a 4 00220 7101 20 tra |[op_freen_] 411 003033 4a 4 00222 7101 20 tra |[op_empty_] 412 003034 4a 4 00224 7101 20 tra |[cabs] 413 fortran only 003035 4a 4 00226 7101 20 tra |[ccos] 414 fortran only 003036 4a 4 00230 7101 20 tra |[cexp] 415 fortran only 003037 4a 4 00232 7101 20 tra |[clog] 416 fortran only 003040 4a 4 00234 7101 20 tra |[csin] 417 fortran only 003041 4a 4 00236 7101 20 tra |[csqrt] 418 fortran only 003042 4a 4 00240 7101 20 tra |[tanh] 419 fortran only 003043 4a 4 00242 7101 20 tra |[dmod] 420 fortran only (obsolete) 003044 4a 4 00244 7101 20 tra |[cmpx_p_cmpx] 421 fortran only 003045 0a 011354 7100 00 tra get_math_entry 422 fortran only 003046 0a 011463 7100 00 tra fortran_pause 423 fortran only 003047 0a 011465 7100 00 tra fortran_stop 424 fortran only 003050 0a 011506 7100 00 tra fortran_chain 425 fortran only 003051 0a 024743 7100 00 tra long_profile 426 003052 0a 004714 7100 00 tra index_before_cs 427 003053 0a 005004 7100 00 tra index_before_bs 428 003054 0a 004720 7100 00 tra index_after_cs 429 003055 0a 005010 7100 00 tra index_after_bs 430 003056 0a 005035 7100 00 tra index_before_bs_1 431 003057 0a 005041 7100 00 tra index_after_bs_1 432 003060 0a 005271 7100 00 tra verify_for_ltrim 433 003061 0a 005304 7100 00 tra verify_for_rtrim 434 003062 0a 006557 7100 00 tra stacq_mac 435 003063 0a 006563 7100 00 tra clock_mac 436 003064 0a 006571 7100 00 tra vclock_mac 437 003065 0a 010561 7100 00 tra ftn_open_element 438 fortran only 003066 0a 011025 7100 00 tra ftn_get_area_ptr 439 fortran only 003067 0a 006577 7100 00 tra stop 440 003070 0a 006610 7100 00 tra return_main 441 003071 0a 006626 7100 00 tra set_main_flag 442 003072 0a 006614 7100 00 tra begin_return_main 443 003073 0a 010023 7100 00 tra size_check_uns_fx1 444 003074 0a 010031 7100 00 tra size_check_uns_fx2 445 003075 0a 011455 7100 00 tra fortran_end 446 fortran only 003076 0a 006706 7100 00 tra fort_dmod 447 fortran only 003077 0a 004540 7100 00 tra ix_rev_chars 448 003100 0a 005247 7100 00 tra verify_rev_chars 449 003101 0a 005251 7100 00 tra search_rev_chars 450 003102 0a 003261 7100 00 tra shorten_stack_protect_ind 451 003103 0a 003270 7100 00 tra save_stack_quick 452 003104 0a 003274 7100 00 tra restore_stack_quick 453 003105 4a 4 00246 7101 20 tra |[dtanh] 454 fortran only 003106 4a 4 00250 7101 20 tra |[sinh] 455 fortran only 003107 4a 4 00252 7101 20 tra |[dsinh] 456 fortran only 003110 4a 4 00254 7101 20 tra |[cosh] 457 fortran only 003111 4a 4 00256 7101 20 tra |[dcosh] 458 fortran only 003112 0a 007576 7100 00 tra nearest_whole_number 459 fortran only 003113 0a 007607 7100 00 tra nearest_integer 460 fortran only 003114 0a 010714 7100 00 tra ftn_inquire_element 461 fortran only 003115 0a 010037 7100 00 tra mpy_overflow_check 462 fortran only 003116 0a 005557 7100 00 tra fort_return_mac 463 fortran only 003117 0a 010140 7100 00 tra fort_cleanup 464 fortran only 003120 0a 010065 7100 00 tra fort_storage 465 fortran only 003121 0a 011526 7100 00 tra enter_BFP_mode 466 003122 0a 011532 7100 00 tra enter_HFP_mode 467 003123 0a 011623 7100 00 tra unimp 468 future expansion 003124 0a 011623 7100 00 tra unimp 469 future expansion 003125 0a 011623 7100 00 tra unimp 470 future expansion 003126 0a 011623 7100 00 tra unimp 471 future expansion 003127 0a 011623 7100 00 tra unimp 472 future expansion 003130 0a 011623 7100 00 tra unimp 473 future expansion 003131 0a 011623 7100 00 tra unimp 474 future expansion 003132 0a 011623 7100 00 tra unimp 475 future expansion 003133 0a 011623 7100 00 tra unimp 476 future expansion 003134 0a 011623 7100 00 tra unimp 477 future expansion 003135 0a 011623 7100 00 tra unimp 478 future expansion 003136 0a 011623 7100 00 tra unimp 479 future expansion 003137 0a 011623 7100 00 tra unimp 480 future expansion 1329 1330 " 1331 " The following section is not referenced directly by 1332 " the compiled pl/1 program and may be changed as 1333 " desired. 1334 " 1335 " THE FOLLOWING CONVENTIONS APPLY TO STRING OPERATORS 1336 " 1. Unless specified otherwise, a unit size is in the q register 1337 " 2. Operators whose names end in "_aligned" or "vta" deal 1338 " with aligned strings having no fractional offset. 1339 " 3. Operators whose names end in "_co" have a character offset in x7. 1340 " 4. Operators whose names end in "_ho" have a half-word offset in x7. 1341 " 5. If not one of the above, the offset is a bit offset in x7. 1342 " 6. A pointer to the string is transmitted in the bp. 1343 " 7. If name of operator ends in "_eis", the bit offset is correct in bp 1344 " and index register 7 is not used. 1345 " 1346 " allocation operators 1347 " The char and bit allocation operators reserve two extra words 1348 " the temporary is stored in the second of these. 1349 " 003140 1350 alloc_char_temp: 003140 aa 6 00063 7561 00 1351 stq sp|char_lg1 save char length 003141 aa 6 00064 4501 00 1352 stz sp|bit_or_char indicate char temp 003142 aa 000013 0760 07 1353 adq 3+8,dl compute number of words with 2 more 003143 aa 000002 7320 00 1354 qrs 2 003144 0a 003162 7010 00 1355 tsx1 alloc allocate space 003145 aa 6 00063 2361 00 1356 ldq sp|char_lg1 restore char length 1357 " 003146 aa 2 00002 3521 00 1358 act: eppbp bp|2 skip over extra 2 words 003147 aa 2 77777 7561 00 1359 stq bp|-1 save length of temp 003150 aa 6 00050 2521 00 1360 abt: spribp sp|temp_pt save pointer to temp 003151 aa 6 00046 7101 70 1361 tra sp|tbp,*0 and return to pl/1 program 1362 " 003152 1363 alloc_bit_temp: 003152 aa 6 00062 7561 00 1364 stq sp|bit_lg1 save bit length 003153 aa 6 00064 5541 00 1365 stc1 sp|bit_or_char indicate bit temp 003154 aa 000153 0760 07 1366 adq 35+72,dl compute number of words (2 extra) 003155 aa 000044 5060 07 1367 div 36,dl 003156 0a 003162 7010 00 1368 tsx1 alloc allocate space 003157 aa 6 00062 2361 00 1369 ldq sp|bit_lg1 restore bit length 003160 0a 003146 7100 00 1370 tra act and go fill in length 1371 " 003161 1372 alloc_temp: 003161 0a 003150 6210 00 1373 eax1 abt alloc N words and go save ptr 1374 " fall into alloc coding 1375 " 1376 " routine to allocate N words at end of stack. 1377 " entered with N in ql. 1378 " 003162 aa 000022 7360 00 1379 alloc: qls 18 shift number to qu 003163 aa 6 00060 7561 00 1380 stq sp|temp_size save number of words 1381 get_stack_offset 003164 aa 6 00000 6351 00 eaa sp|0 get offset of stack frame in au 003165 0a 011677 6750 00 era mask_bit_one form 2's complement of whole a-reg 003166 aa 000001 0350 07 adla 1,dl w/o overflow 003167 aa 6 00024 3521 21 1382 eppbp sp|stack_header.stack_end_ptr,au* get ptr to extension 003170 aa 000017 0360 03 1383 adlq 15,du make size a multiple of 16 003171 aa 777760 3760 03 1384 anq =o777760,du .. 003172 aa 6 00061 7561 00 1385 stq sp|extend_size 003173 aa 6 00023 0361 00 1386 adlq sp|stack_frame.next_sp+1 compute new end of stack frame 003174 aa 6 00023 7561 00 1387 stq sp|stack_frame.next_sp+1 bump next ptr 003175 aa 6 00025 7561 01 1388 stq sp|stack_header.stack_end_ptr+1,au bump stack end pointer 003176 aa 000000 7100 11 1389 tra 0,1 return to operator 1390 " 1391 " reallocation operators 1392 " allowance is made for the two words at the head of the string 1393 " 003177 1394 cat_realloc_bits: 003177 aa 6 00062 2351 00 1395 lda sp|bit_lg1 set up for concatenation 003200 aa 6 00066 7551 00 1396 sta sp|cat_lg1 003201 aa 6 00062 7561 00 1397 stq sp|bit_lg1 set new bit length 003202 aa 000153 0760 07 1398 adq 35+72,dl compute new length of temp 003203 aa 000044 5060 07 1399 div 36,dl 003204 aa 6 00062 2351 00 1400 lda sp|bit_lg1 restore bit length 003205 0a 003225 7010 00 1401 tsx1 realloc extend stack again 003206 aa 6 00046 7101 70 1402 tra sp|tbp,*0 an return to caller 1403 " 003207 1404 realloc_bit_temp: 003207 aa 6 00062 7551 00 1405 sta sp|bit_lg1 set new length 003210 aa 000153 0760 07 1406 adq 35+72,dl compute new word length 003211 aa 000044 5060 07 1407 div 36,dl 003212 aa 6 00062 2351 00 1408 lda sp|bit_lg1 restore bit length 003213 0a 003225 7010 00 1409 tsx1 realloc extend stack 003214 0a 003703 7100 00 1410 tra zero_it and go zero new space 1411 " 003215 1412 cat_realloc_chars: 003215 aa 6 00063 2351 00 1413 lda sp|char_lg1 set up for concatenation 003216 aa 6 00066 7551 00 1414 sta sp|cat_lg1 1415 " 003217 1416 realloc_char_temp: 003217 aa 6 00063 7561 00 1417 stq sp|char_lg1 set new char length 003220 aa 000013 0760 07 1418 adq 3+8,dl compute new word length 003221 aa 000002 7320 00 1419 qrs 2 003222 aa 6 00063 2351 00 1420 lda sp|char_lg1 restore char lenth 003223 0a 003225 7010 00 1421 tsx1 realloc extend stack 003224 aa 6 00046 7101 70 1422 tra sp|tbp,*0 and exit 1423 " 003225 aa 6 00070 7411 00 1424 realloc: stx1 sp|save_x01 003226 aa 6 00060 2211 00 1425 ldx1 sp|temp_size save end position of current temp 003227 aa 6 00050 3521 20 1426 eppbp sp|temp_pt,* get ptr to temp 003230 aa 2 77777 7551 00 1427 sta bp|-1 003231 aa 6 00070 2351 00 1428 lda sp|save_x01 restore return offset 003232 aa 000022 7360 00 1429 qls 18 shift word size to qu 003233 aa 6 00060 7561 00 1430 stq sp|temp_size set new size of temp 003234 aa 6 00061 1361 00 1431 sblq sp|extend_size subtract size of extension 003235 aa 000000 6040 01 1432 tmi 0,au return if no extension needed 003236 aa 000017 0360 03 1433 adlq 15,du make increment a multiple of 16 003237 aa 777760 3760 03 1434 anq =o777760,du .. 003240 aa 6 00076 7561 00 1435 stq sp|temp save increment momentarily 003241 aa 6 00061 0361 00 1436 adlq sp|extend_size update extension size 003242 aa 6 00061 7561 00 1437 stq sp|extend_size .. 1438 get_stack_offset 003243 aa 6 00000 6351 00 eaa sp|0 get offset of stack frame in au 003244 0a 011677 6750 00 era mask_bit_one form 2's complement of whole a-reg 003245 aa 000001 0350 07 adla 1,dl w/o overflow 003246 aa 6 00076 2361 00 1439 ldq sp|temp get extension increment 003247 aa 6 00023 0361 00 1440 adlq sp|stack_frame.next_sp+1 compute new end of stack frame 003250 aa 6 00023 7561 00 1441 stq sp|stack_frame.next_sp+1 bump next sp pointer 003251 aa 6 00025 7561 01 1442 stq sp|stack_header.stack_end_ptr+1,au bump stack end pointer 003252 aa 6 00070 2351 00 1443 lda sp|save_x01 restore return offset 003253 aa 000000 7100 01 1444 tra 0,au return to caller 1445 " 1446 " this operator shortens the stack frame to its original length 1447 " 003254 1448 shorten_stack: 003254 aa 6 00000 3511 00 1449 epbpab sp|0 get ptr to base of stack 003255 aa 6 00005 2211 00 1450 ldx1 sp|5 003256 aa 6 00023 7411 00 1451 stx1 sp|stack_frame.next_sp+1 003257 aa 1 00025 7411 00 1452 stx1 ab|stack_header.stack_end_ptr+1 1453 003260 aa 6 00046 7101 70 1454 tra sp|tbp,*0 1455 " 1456 " This operator is the same as shorten_stack above, but does not change the indicators. 1457 " 003261 1458 shorten_stack_protect_ind: 003261 aa 6 00076 7541 00 1459 sti sp|temp Save indicators 003262 aa 6 00000 3505 00 1460 epbpap sp|0 Get ptr to base of stack 003263 aa 6 00005 2211 00 1461 ldx1 sp|5 003264 aa 6 00023 7411 00 1462 stx1 sp|stack_frame.next_sp+1 003265 aa 1 00025 7411 00 1463 stx1 ab|stack_header.stack_end_ptr+1 003266 aa 6 00076 6341 00 1464 ldi sp|temp Restore indicators 1465 003267 aa 6 00046 7101 70 1466 tra sp|tbp,*0 1467 " 1468 " This operator makes the current extension permanent, 1469 " and returns the old permanent extent in the q. 1470 " 003270 1471 save_stack_quick: 003270 aa 6 00005 2361 00 1472 ldq sp|5 Get permanent extent 003271 aa 6 00023 2211 00 1473 ldx1 sp|stack_frame.next_sp+1 003272 aa 6 00005 7411 00 1474 stx1 sp|5 Change it 003273 aa 6 00046 7101 70 1475 tra sp|tbp,*0 1476 " 1477 " This operator is the inverse of save_stack_quick above. 1478 " It takes a stack offset in the Q, and makes it the permanent 1479 " stack extent. 1480 " 003274 1481 restore_stack_quick: 003274 aa 6 00005 7561 00 1482 stq sp|5 Change permanent extent 003275 aa 6 00046 7101 70 1483 tra sp|tbp,*0 1484 " 1485 " code added here to handle 2 extra instructions needed at set_stack 1486 " 003276 1487 set_stack_extend: 1488 get_stack_offset 003276 aa 6 00000 6351 00 eaa sp|0 get offset of stack frame in au 003277 0a 011677 6750 00 era mask_bit_one form 2's complement of whole a-reg 003300 aa 000001 0350 07 adla 1,dl w/o overflow 003301 aa 6 00022 3521 20 1489 eppbp sp|stack_frame.next_sp,* set up stack end ptr correctly 003302 aa 6 00024 2521 01 1490 spribp sp|stack_header.stack_end_ptr,au .. 003303 aa 6 00046 7101 70 1491 tra sp|tbp,*0 and return to pl1 program 1492 " 1493 " operator to save the string in the aq in stack so it is 1494 " accessable to long string operators. entered with bit_size 1495 " in x6 and string in aq 1496 " 003304 1497 save_string: 003304 aa 6 00056 7571 00 1498 staq sp|double_temp save the string 003305 aa 6 00056 3521 00 1499 eppbp sp|double_temp load ptr to string 003306 aa 000000 6360 16 1500 eaq 0,6 move bit size to ql 003307 aa 000022 7720 00 1501 qrl 18 003310 aa 6 00050 2521 00 1502 spribp sp|temp_pt save ptr to string 003311 aa 6 00062 7561 00 1503 stq sp|bit_lg1 save bit length 003312 aa 000011 5060 07 1504 div 9,dl compute char length 003313 aa 6 00063 7561 00 1505 stq sp|char_lg1 and save that 003314 aa 6 00046 7101 70 1506 tra sp|tbp,*0 1507 " 1508 " operators to save info about a string in the stack. 1509 " 003315 1510 set_chars_eis: 003315 aa 6 00063 7561 00 1511 stq sp|char_lg1 save char length 003316 aa 6 00064 4501 00 1512 stz sp|bit_or_char indicate char string 003317 aa 6 00050 2521 00 1513 spribp sp|temp_pt save ptr (with bit offset) 003320 aa 6 00046 7101 70 1514 tra sp|tbp,*0 and return 1515 " 003321 1516 set_chars: 003321 aa 000000 6210 17 1517 eax1 0,7 get bit offset 003322 0a 003330 7100 00 1518 tra sca 1519 " 003323 1520 set_chars_co: 003323 0a 001264 2210 17 1521 ldx1 co_to_bo,7 convert to bit offset 003324 0a 003330 7100 00 1522 tra sca 1523 " 003325 1524 set_chars_ho: 003325 0a 001270 2210 17 1525 ldx1 ho_to_bo,7 convert to bit offset 003326 0a 003330 7100 00 1526 tra sca 1527 " 003327 1528 set_chars_aligned: 003327 aa 000000 6210 00 1529 eax1 0 get zero offset 003330 aa 6 00063 7561 00 1530 sca: stq sp|char_lg1 save char length 003331 aa 6 00064 4501 00 1531 stz sp|bit_or_char indicate char string 1532 " 003332 aa 6 00050 2521 00 1533 sca1: spribp sp|temp_pt save ptr to string 003333 0a 012444 7210 11 1534 lxl1 shift_bo,1 shift bit offset to left 003334 aa 6 00051 4411 00 1535 sxl1 sp|temp_pt+1 and overwrite former bit offset 003335 aa 6 00046 7101 70 1536 tra sp|tbp,*0 1537 " 003336 1538 set_bits_eis: 003336 aa 6 00062 7561 00 1539 stq sp|bit_lg1 save bit length 003337 aa 6 00064 5541 00 1540 stc1 sp|bit_or_char indicate bit string 003340 aa 6 00050 2521 00 1541 spribp sp|temp_pt save ptr (with bit offset) 003341 aa 6 00046 7101 70 1542 tra sp|tbp,*0 and return 1543 " 003342 1544 set_bits: 003342 aa 000000 6210 17 1545 eax1 0,7 get bit offset 003343 0a 003351 7100 00 1546 tra sba 1547 " 003344 1548 set_bits_co: 003344 0a 001264 2210 17 1549 ldx1 co_to_bo,7 convert to bit offset 003345 0a 003351 7100 00 1550 tra sba 1551 " 003346 1552 set_bits_ho: 003346 0a 001270 2210 17 1553 ldx1 ho_to_bo,7 convert to bit offset 003347 0a 003351 7100 00 1554 tra sba 1555 " 003350 1556 set_bits_aligned: 003350 aa 000000 6210 00 1557 eax1 0 get zero offset 1558 " 003351 aa 6 00062 7561 00 1559 sba: stq sp|bit_lg1 save bit length 003352 aa 6 00064 5541 00 1560 stc1 sp|bit_or_char indicate bit temp 003353 0a 003332 7100 00 1561 tra sca1 1562 " 1563 " operator to store a string when size+offset > 72 1564 " entered with string to be stored in aq, bit_size+offset-72 in x6, 1565 " bit offset in x7, and ptr to destination in bp 1566 " 003354 1567 store_string: 003354 aa 6 00076 7561 00 1568 stq sp|temp save right part of string 003355 aa 000000 7730 17 1569 lrl 0,7 shift to proper position 003356 aa 2 00000 6751 00 1570 era bp|0 insert in first two words 003357 aa 2 00001 7561 00 1571 stq bp|1 of destination 003360 0a 011677 3750 17 1572 ana mask_bit_one,7 mask has no trailing zeros 003361 aa 2 00000 6551 00 1573 ersa bp|0 003362 aa 6 00076 2351 00 1574 lda sp|temp get right part of string 003363 aa 000000 2360 07 1575 ldq 0,dl clear q register 003364 aa 000000 7730 17 1576 lrl 0,7 shift into position 003365 aa 2 00002 6761 00 1577 erq bp|2 insert into third word 003366 0a 011633 3760 16 1578 anq bit_mask_one,6 mask has no leading zeros 003367 aa 2 00002 6561 00 1579 ersq bp|2 003370 aa 6 00046 7101 70 1580 tra sp|tbp,*0 return to pl1 program 1581 " 1582 " operator to store a string with an adjustable bit offset. 1583 " entered with bit size in x6. 1584 " 003371 1585 string_store: 003371 aa 000000 6210 17 1586 eax1 0,7 bit offset to x1 003372 0a 003410 7100 00 1587 tra ss_0 1588 " 003373 1589 string_store_co: 003373 aa 000000 6210 17 1590 eax1 0,7 char offset to x1 003374 aa 000004 1010 03 1591 cmpx1 4,du is offset >= 36 bits 003375 aa 000003 6040 04 1592 tmi 3,ic no 003376 aa 2 00001 3521 00 1593 eppbp bp|1 yes, adjust destination pointer 003377 aa 777774 6210 11 1594 eax1 -4,1 and offset 003400 0a 001264 2210 11 1595 ldx1 co_to_bo,1 convert to bit offset 003401 0a 003410 7100 00 1596 tra ss_0 1597 " 003402 1598 string_store_ho: 003402 aa 000000 6210 17 1599 eax1 0,7 half word offset to x1 003403 aa 000002 1010 03 1600 cmpx1 2,du is offset >= 36 bits 003404 aa 000003 6040 04 1601 tmi 3,ic no 003405 aa 2 00001 3521 00 1602 eppbp bp|1 yes, adjust destination pointer 003406 aa 777776 6210 11 1603 eax1 -2,1 and offset 003407 0a 001270 2210 11 1604 ldx1 ho_to_bo,1 convert to bit offset 1605 " 003410 aa 000000 0520 03 1606 ss_0: adwpbp 0,du erase bit offset 003411 aa 6 00056 7571 00 1607 staq sp|double_temp save in aligned temp 003412 aa 0 03151 0605 40 1608 csl (ar+rl),(ar+rl+x1),bool(move) move into target 003413 aa 600056 000016 1609 descb sp|double_temp,x6 003414 aa 200000 000016 1610 descb bp|0,x6 003415 aa 6 00046 7101 70 1611 tra sp|tbp,*0 1612 " 1613 " operator to return in aq the first 72 bits of the char string 1614 " specified by string_aq. if the length if less than 72 bits, string is padded 1615 " with blanks 1616 " 003416 1617 fetch_chars: 003416 aa 6 00063 2361 00 1618 ldq sp|char_lg1 load char length 003417 aa 6 00050 3501 20 1619 eppap sp|temp_pt,* get ptr to temp 003420 0a 003433 7100 00 1620 tra gc_1 join common case 1621 " 1622 " operator to return in aq the first 72 bits of an adjustable char 1623 " string. if length is less than 72 bits, string is padded. 1624 " note: compiled code expects bp not to be changed 1625 " 003421 1626 get_chars: 003421 aa 000000 6210 17 1627 eax1 0,7 load offset 003422 0a 003430 7100 00 1628 tra gc_0 1629 " 003423 1630 get_chars_co: 003423 0a 001264 2210 17 1631 ldx1 co_to_bo,7 convert offset to bits 003424 0a 003430 7100 00 1632 tra gc_0 1633 " 003425 1634 get_chars_ho: 003425 0a 001270 2210 17 1635 ldx1 ho_to_bo,7 convert offset to bits 003426 0a 003430 7100 00 1636 tra gc_0 1637 " 003427 1638 get_chars_aligned: 003427 aa 000000 6210 00 1639 eax1 0 get zero offset 1640 " 003430 aa 2 00000 3501 00 1641 gc_0: eppap bp|0 copy ptr to string 003431 aa 000000 0500 03 1642 adwpap 0,du erase bit offset 003432 aa 0 00000 5035 11 1643 abd ap|0,1 add new bit offset 1644 " 003433 aa 0 40100 1005 40 1645 gc_1: mlr (ar+rl),(ar),fill(blank) move to aligned temp 003434 aa 000000 000006 1646 desc9a ap|0,ql 003435 aa 600076 000010 1647 desc9a sp|temp,8 003436 aa 6 00030 3501 20 1648 eppap sp|stack_frame.operator_ptr,* 003437 aa 6 00076 2371 00 1649 ldaq sp|temp 003440 aa 6 00046 7101 70 1650 tra sp|tbp,*0 1651 " 1652 " operator to return in aq the first 72 bits of the char string 1653 " specified by string aq. if the length is less than 72 bits, string 1654 " is padded with binary zeroes. 1655 " 003441 1656 fetch_chars_eis: 003441 aa 6 00063 2361 00 1657 ldq sp|char_lg1 load char length 003442 aa 6 00050 3501 20 1658 eppap sp|temp_pt,* get ptr to temp 003443 aa 0 00100 1005 40 1659 mlr (ar+rl),(ar),fill(0) move to aligned temp 003444 aa 000000 000006 1660 desc9a ap|0,ql 003445 aa 600076 000010 1661 desc9a sp|temp,8 003446 aa 6 00030 3501 20 1662 eppap sp|stack_frame.operator_ptr,* 003447 aa 6 00076 2371 00 1663 ldaq sp|temp 003450 aa 6 00046 7101 70 1664 tra sp|tbp,*0 1665 " 1666 " operator to return in aq the first 72 bits of the bit string 1667 " specified by string_aq. if length is less than 72 bits, 1668 " string is padded. 1669 " 003451 1670 fetch_bits: "eis comes here, too 003451 aa 6 00050 3501 20 1671 eppap sp|temp_pt,* get ptr to temp 003452 aa 6 00062 2361 00 1672 ldq sp|bit_lg1 get bit length 003453 aa 000000 6210 00 1673 eax1 0 use 0 bit offset 003454 0a 003466 7100 00 1674 tra gb_1 1675 " 1676 " operator to return in aq the first 72 bits of an adjustable bit 1677 " string. if length is less than 72 bits, string is padded. 1678 " note: compiled code expects bp not to be changed 1679 " 003455 1680 get_bits: 003455 aa 000000 6210 17 1681 eax1 0,7 load offset 003456 0a 003464 7100 00 1682 tra gb_0 1683 " 003457 1684 get_bits_co: 003457 0a 001264 2210 17 1685 ldx1 co_to_bo,7 convert offset to bits 003460 0a 003464 7100 00 1686 tra gb_0 1687 " 003461 1688 get_bits_ho: 003461 0a 001270 2210 17 1689 ldx1 ho_to_bo,7 convert offset to bits 003462 0a 003464 7100 00 1690 tra gb_0 1691 " 003463 1692 get_bits_aligned: 003463 aa 000000 6210 00 1693 eax1 0 get zero offset 1694 " 003464 aa 2 00000 3501 00 1695 gb_0: eppap bp|0 copy ptr to string 003465 aa 000000 0500 03 1696 adwpap 0,du erase bit offset 1697 " 003466 aa 0 03100 0605 51 1698 gb_1: csl (ar+rl+x1),(ar),bool(move) move to aligned temp 003467 aa 000000 000006 1699 descb ap|0,ql 003470 aa 600076 000110 1700 descb sp|temp,72 003471 aa 6 00030 3501 20 1701 eppap sp|stack_frame.operator_ptr,* 003472 aa 6 00076 2371 00 1702 ldaq sp|temp 003473 aa 6 00046 7101 70 1703 tra sp|tbp,*0 1704 " 1705 " operator to pad the char string temporary to 8 chars. 1706 " 003474 1707 pad_chars: 003474 aa 000010 2360 07 1708 ldq 8,dl compute number of chars left 003475 aa 6 00063 1761 00 1709 sbq sp|char_lg1 003476 aa 6 00046 6045 70 1710 tmoz sp|tbp,*0 003477 aa 6 00063 2351 00 1711 lda sp|char_lg1 get offset 003500 aa 6 00050 3501 20 1712 eppap sp|temp_pt,* get ptr to temp 003501 aa 040145 1004 00 1713 mlr (0),(ar+rl+a),fill(blank) put fill(blank)s at end 003502 aa 000000 000000 1714 vfd 36/0 003503 aa 000000 000006 1715 desc9a ap|0,ql 003504 aa 6 00030 3501 20 1716 eppap sp|stack_frame.operator_ptr,* 003505 aa 6 00046 7101 70 1717 tra sp|tbp,*0 1718 " 1719 " operator to pad the bit string temporary to 72 bits. 1720 " 003506 1721 pad_bits: 003506 aa 6 00062 2361 00 1722 ldq sp|bit_lg1 get bit length of temp 003507 aa 000111 1160 07 1723 cmpq 73,dl is it already long enough 003510 aa 6 00046 6031 70 1724 trc sp|tbp,*0 yes, return 003511 aa 6 00062 0761 00 1725 adq sp|bit_lg1 no, form 2*bit_length 003512 aa 000001 6210 06 1726 eax1 1,ql and place in index reg 003513 aa 6 00050 2371 20 1727 ldaq sp|temp_pt,* mask string 003514 0a 001426 3770 11 1728 anaq bit_mask,1 003515 aa 6 00050 7571 20 1729 staq sp|temp_pt,* replace padded string 003516 aa 6 00046 7101 70 1730 tra sp|tbp,*0 and return to pl/1 program 1731 " 1732 " operators to AND a string into the string 1733 " temporary pointed at by sp|temp_pt. the string being ANDED 1734 " is guaranteed to be no bigger than the space in the stack. 1735 " 003517 1736 and_bits: 003517 aa 000000 6210 17 1737 eax1 0,7 load offset 003520 0a 003526 7100 00 1738 tra and_1 1739 " 003521 1740 and_bits_co: 003521 0a 001264 2210 17 1741 ldx1 co_to_bo,7 convert to bit offset 003522 0a 003526 7100 00 1742 tra and_1 1743 " 003523 1744 and_bits_ho: 003523 0a 001270 2210 17 1745 ldx1 ho_to_bo,7 convert to bit offset 003524 0a 003526 7100 00 1746 tra and_1 1747 " 003525 1748 and_bits_aligned: 003525 aa 000000 6210 00 1749 eax1 0 1750 " 003526 0a 003627 2350 00 1751 and_1: lda ana_op pickup logical function to do 003527 0a 003614 7100 00 1752 tra logical join common section 1753 " 1754 " operators to OR a string into the string 1755 " temporary pointed at by sp|temp_pt. the string being ORED 1756 " is guaranteed to be no bigger and the space in the stack. 1757 " 003530 1758 or_bits: 003530 aa 000000 6210 17 1759 eax1 0,7 load offset 003531 0a 003537 7100 00 1760 tra or_1 1761 " 003532 1762 or_bits_co: 003532 0a 001264 2210 17 1763 ldx1 co_to_bo,7 convert to bit offset 003533 0a 003537 7100 00 1764 tra or_1 1765 " 003534 1766 or_bits_ho: 003534 0a 001270 2210 17 1767 ldx1 ho_to_bo,7 convert to bit offset 003535 0a 003537 7100 00 1768 tra or_1 1769 " 003536 1770 or_bits_aligned: 003536 aa 000000 6210 00 1771 eax1 0 zero offset 1772 " 003537 0a 003630 2350 00 1773 or_1: lda ora_op pickup logical function to do 003540 0a 003614 7100 00 1774 tra logical join common section 1775 " 1776 " operators to EXCLUSIVE OR a string into the string 1777 " temporary pointed at by sp|temp_pt. the string being EXORed 1778 " is guaranteed to be no bigger than the space in the stack. 1779 " 003541 1780 exor_bits: 003541 aa 000000 6210 17 1781 eax1 0,7 load offset 003542 0a 003550 7100 00 1782 tra exor_1 1783 " 003543 1784 exor_bits_co: 003543 0a 001264 2210 17 1785 ldx1 co_to_bo,7 convert to bit offset 003544 0a 003550 7100 00 1786 tra exor_1 1787 " 003545 1788 exor_bits_ho: 003545 0a 001270 2210 17 1789 ldx1 ho_to_bo,7 convert to bit offset 003546 0a 003550 7100 00 1790 tra exor_1 1791 " 003547 1792 exor_bits_aligned: 003547 aa 000000 6210 00 1793 eax1 0 zero offset 1794 " 003550 0a 003631 2350 00 1795 exor_1: lda era_op pickup logical function to do 003551 0a 003614 7100 00 1796 tra logical join common section 1797 " 1798 " operators to MOVE a string into the string 1799 " temporary pointed at by sp|temp_pt. the string being MOVED 1800 " is guaranteed to be no bigger than the space in the stack. 1801 " since this operator is always followed by concatenation, no 1802 " padding is done. 1803 " 003552 1804 cat_move_bits: 003552 aa 000000 6210 17 1805 eax1 0,7 load offset 003553 0a 003561 7100 00 1806 tra cmb_1 1807 " 003554 1808 cat_move_bits_co: 003554 0a 001264 2210 17 1809 ldx1 co_to_bo,7 convert to bit offset 003555 0a 003561 7100 00 1810 tra cmb_1 1811 " 003556 1812 cat_move_bits_ho: 003556 0a 001270 2210 17 1813 ldx1 ho_to_bo,7 convert to bit offset 003557 0a 003561 7100 00 1814 tra cmb_1 1815 " 003560 1816 cat_move_bits_aligned: 003560 aa 000000 6210 00 1817 eax1 0 zero bit offset 1818 " 003561 aa 6 00066 7561 00 1819 cmb_1: stq sp|cat_lg1 save for later cat operator 003562 aa 000000 1160 07 1820 cmpq 0,dl return if nothing to move (prevent IPR) 003563 aa 6 00046 6001 70 1821 tze sp|tbp,*0 003564 aa 000000 0520 03 1822 adwpbp 0,du clear bit offset 003565 aa 6 00050 3501 20 1823 eppap sp|temp_pt,* get ptr to target 003566 aa 0 03140 0605 51 1824 csl (ar+rl+x1),(ar+rl),bool(move) move source into temp 003567 aa 200000 000006 1825 descb bp|0,ql 003570 aa 000000 000006 1826 descb ap|0,ql 003571 aa 6 00030 3501 20 1827 eppap sp|stack_frame.operator_ptr,* 003572 aa 6 00046 7101 70 1828 tra sp|tbp,*0 1829 " 1830 " operators to MOVE the COMPLEMENT of astring into 1831 " the string temporary pointed at by sp|temp_pt. the string 1832 " being moved is guaranteed to be the same size as the 1833 " destination. 1834 " 003573 1835 move_not_bits: 003573 aa 000000 6210 17 1836 eax1 0,7 load offset 003574 0a 003602 7100 00 1837 tra move_not_1 1838 " 003575 1839 move_not_bits_co: 003575 0a 001264 2210 17 1840 ldx1 co_to_bo,7 convert to bit offset 003576 0a 003602 7100 00 1841 tra move_not_1 1842 " 003577 1843 move_not_bits_ho: 003577 0a 001270 2210 17 1844 ldx1 ho_to_bo,7 convert to bit offset 003600 0a 003602 7100 00 1845 tra move_not_1 1846 " 003601 1847 move_not_bits_aligned: 003601 aa 000000 6210 00 1848 eax1 0 zero offset 1849 " 003602 1850 move_not_1: 003602 0a 003632 2350 00 1851 lda not_op pickup logical function to do 003603 0a 003614 7100 00 1852 tra logical join common section 1853 " 1854 " operators to MOVE a string into the string 1855 " temporary pointed at by sp|temp_pt. the string being MOVED 1856 " is guaranteed to be no bigger than the size of the destination. 1857 " 003604 1858 move_bits: 003604 aa 000000 6210 17 1859 eax1 0,7 load offset 003605 0a 003613 7100 00 1860 tra mb_1 1861 " 003606 1862 move_bits_co: 003606 0a 001264 2210 17 1863 ldx1 co_to_bo,7 convert to bit offset 003607 0a 003613 7100 00 1864 tra mb_1 1865 " 003610 1866 move_bits_ho: 003610 0a 001270 2210 17 1867 ldx1 ho_to_bo,7 convert to bit offset 003611 0a 003613 7100 00 1868 tra mb_1 1869 " 003612 1870 move_bits_aligned: 003612 aa 000000 6210 00 1871 eax1 0 zero offset 1872 " 003613 0a 003626 2350 00 1873 mb_1: lda nop_op pickup logical function to do 1874 " 003614 aa 6 00065 7551 00 1875 logical: sta sp|bit_op save operator to perform 003615 aa 6 00062 2351 00 1876 lda sp|bit_lg1 get length of temp 003616 aa 6 00046 6001 70 1877 tze sp|tbp,*0 exit if zero (prevent IPR) 003617 aa 000000 0520 03 1878 adwpbp 0,du clear bit offset 003620 aa 6 00050 3501 20 1879 eppap sp|temp_pt,* get ptr to temp 003621 aa 6 00065 7161 00 1880 xec sp|bit_op do the operation 003622 aa 200000 000006 1881 descb bp|0,ql 003623 aa 000000 000005 1882 descb ap|0,al 003624 1883 log_exit: 003624 aa 6 00030 3501 20 1884 eppap sp|stack_frame.operator_ptr,* 003625 aa 6 00046 7101 70 1885 tra sp|tbp,*0 1886 " 1887 " logical functions... 1888 " 003626 aa 0 03140 0605 51 1889 nop_op: csl (ar+rl+x1),(ar+rl),bool(move) 003627 aa 0 01140 0605 51 1890 ana_op: csl (ar+rl+x1),(ar+rl),bool(and) 003630 aa 0 07140 0605 51 1891 ora_op: csl (ar+rl+x1),(ar+rl),bool(or) 003631 aa 0 06140 0605 51 1892 era_op: csl (ar+rl+x1),(ar+rl),bool(xor) 003632 aa 0 14140 0605 51 1893 not_op: csl (ar+rl+x1),(ar+rl),bool(invert) 1894 " 1895 " operators to MOVE a string into the string 1896 " temporary pointed at by sp|temp_pt. the string being MOVED 1897 " is guaranteed to be no bigger than the space in the stack. 1898 " if this is cat_move_chars, no padding will be done since 1899 " operator is always followed by concat. 1900 " 003633 1901 move_chars: 003633 aa 000000 6210 17 1902 eax1 0,7 load offset 003634 0a 003642 7100 00 1903 tra mc_1 1904 " 003635 1905 move_chars_co: 003635 0a 001264 2210 17 1906 ldx1 co_to_bo,7 convert to bit offset 003636 0a 003642 7100 00 1907 tra mc_1 1908 " 003637 1909 move_chars_ho: 003637 0a 001270 2210 17 1910 ldx1 ho_to_bo,7 convert to bit offset 003640 0a 003642 7100 00 1911 tra mc_1 1912 " 003641 1913 move_chars_aligned: 003641 aa 000000 6210 00 1914 eax1 0 1915 " 003642 aa 000000 0520 03 1916 mc_1: adwpbp 0,du clear bit offset 003643 aa 2 00000 5035 11 1917 abd bp|0,1 add new bit offset 003644 aa 6 00063 2351 00 1918 lda sp|char_lg1 get length of target 003645 aa 6 00046 6001 70 1919 tze sp|tbp,*0 exit if zero (prevent IPR) 003646 aa 6 00050 3501 20 1920 eppap sp|temp_pt,* get ptr to target 003647 aa 0 40140 1005 40 1921 mlr (ar+rl),(ar+rl),fill(blank) 003650 aa 200000 000006 1922 desc9a bp|0,ql 003651 aa 000000 000005 1923 desc9a ap|0,al 003652 aa 6 00030 3501 20 1924 eppap sp|stack_frame.operator_ptr,* 003653 aa 6 00046 7101 70 1925 tra sp|tbp,*0 1926 " 003654 1927 cat_move_chars: 003654 aa 000000 6210 17 1928 eax1 0,7 load offset 003655 0a 003663 7100 00 1929 tra cmc_1 1930 " 003656 1931 cat_move_chars_co: 003656 0a 001264 2210 17 1932 ldx1 co_to_bo,7 convert to bit offset 003657 0a 003663 7100 00 1933 tra cmc_1 1934 " 003660 1935 cat_move_chars_ho: 003660 0a 001270 2210 17 1936 ldx1 ho_to_bo,7 convert to bit offset 003661 0a 003663 7100 00 1937 tra cmc_1 1938 " 003662 1939 cat_move_chars_aligned: 003662 aa 000000 6210 00 1940 eax1 0 zero bit offset 1941 " 003663 aa 000000 0520 03 1942 cmc_1: adwpbp 0,du clear bit offset 003664 aa 2 00000 5035 11 1943 abd bp|0,1 add new bit oofset 003665 aa 6 00066 7561 00 1944 stq sp|cat_lg1 save for following cat 003666 aa 000000 1160 07 1945 cmpq 0,dl exit if nothing to move (prevent IPR) 003667 aa 6 00046 6001 70 1946 tze sp|tbp,*0 003670 aa 6 00050 3501 20 1947 eppap sp|temp_pt,* get ptr to target 003671 aa 0 00140 1005 40 1948 mlr (ar+rl),(ar+rl) 003672 aa 200000 000006 1949 desc9a bp|0,ql 003673 aa 000000 000006 1950 desc9a ap|0,ql 003674 aa 6 00030 3501 20 1951 eppap sp|stack_frame.operator_ptr,* 003675 aa 6 00046 7101 70 1952 tra sp|tbp,*0 1953 " 1954 " operator to AND a single length bit string into the string 1955 " temporary pointed at by sp|temp_pt. words 1,2,3,... of the 1956 " temporary are cleared. 1957 " 003676 1958 ext_and_1: 003676 aa 000000 2360 07 1959 ldq 0,dl clear q and join ext_and_2 1960 " 1961 " operator to AND a double length bit string into the string 1962 " temporary pointed at by sp|temp_pt. words 2,3,... of the 1963 " temporary are cleared. 1964 " 003677 1965 ext_and_2: 003677 aa 6 00050 3521 20 1966 eppbp sp|temp_pt,* get ptr to string 003700 aa 2 00000 3551 00 1967 ansa bp|0 AND in the string 003701 aa 2 00001 3561 00 1968 ansq bp|1 .. 003702 aa 000002 6210 00 1969 eax1 2 clear starting at word 2 1970 " 1971 " routine to zero rest of string temp 1972 " this routine returns directly to pl/1 program 1973 " at entry: 1974 " bp|0,1 points at first word to be cleared 1975 " sp|temp_size holds total size of temporary 1976 " 003703 aa 000000 6350 11 1977 zero_it: eaa 0,1 get current position 003704 0a 011677 6750 00 1978 era mask_bit_one form 2's complement of whole a-reg 003705 aa 000001 0350 07 1979 adla 1,dl w/o overflow 003706 aa 6 00060 0351 00 1980 adla sp|temp_size .. 003707 aa 6 00046 6045 70 1981 tmoz sp|tbp,*0 return if none 003710 aa 2 00000 3521 11 1982 eppbp bp|0,1 get ptr to starting pos 003711 aa 000020 7710 00 1983 arl 18-2 get number of chars 003712 aa 000140 1004 00 1984 mlr (0),(ar+rl) clear the area 003713 aa 000000 000000 1985 vfd 36/0 003714 aa 200000 000005 1986 desc9a bp|0,al 003715 aa 6 00050 3521 20 1987 eppbp sp|temp_pt,* restore ptr to tem (just in case) 003716 aa 6 00046 7101 70 1988 tra sp|tbp,*0 return to pl/1 program 1989 " 1990 " 1991 " operator to complement the bit string temporary pointed 1992 " at by sp|temp_pt 1993 " 003717 1994 comp_bits: 003717 aa 6 00062 2361 00 1995 ldq sp|bit_lg1 get bit length 003720 aa 6 00046 6001 70 1996 tze sp|tbp,*0 exit if zero length (prevent IPR) 003721 aa 6 00050 3521 20 1997 eppbp sp|temp_pt,* get ptr to temp 003722 aa 0 14140 0605 40 1998 csl (ar+rl),(ar+rl),bool(invert) negate 003723 aa 200000 000006 1999 descb bp|0,ql 003724 aa 200000 000006 2000 descb bp|0,ql 003725 0a 003624 7100 00 2001 tra log_exit 2002 " 2003 " operator to move string_1 into string_2 2004 " source string_1 was previously setup 2005 " 003726 2006 chars_move_vt: 003726 aa 2 77777 7561 00 2007 stq bp|-1 store size of string 2008 " 003727 2009 chars_move: 003727 aa 000000 6210 17 2010 eax1 0,7 load offset 003730 0a 003741 7100 00 2011 tra cm_1 2012 " 003731 2013 chars_move_vt_co: 003731 aa 2 77777 7561 00 2014 stq bp|-1 store size of string 2015 " 003732 2016 chars_move_co: 003732 0a 001264 2210 17 2017 ldx1 co_to_bo,7 convert to bit offset 003733 0a 003741 7100 00 2018 tra cm_1 2019 " 003734 2020 chars_move_vt_ho: 003734 aa 2 77777 7561 00 2021 stq bp|-1 store size of string 2022 " 003735 2023 chars_move_ho: 003735 0a 001270 2210 17 2024 ldx1 ho_to_bo,7 convert to bit offset 003736 0a 003741 7100 00 2025 tra cm_1 2026 " 003737 2027 chars_move_vta: 003737 aa 2 77777 7561 00 2028 stq bp|-1 store size of string 2029 " 003740 2030 chars_move_aligned: 003740 aa 000000 6210 00 2031 eax1 0 zero offset 2032 " 003741 aa 000000 1160 07 2033 cm_1: cmpq 0,dl return if target zero length 003742 aa 6 00046 6001 70 2034 tze sp|tbp,*0 003743 aa 000000 0520 03 2035 adwpbp 0,du clear bit offset 003744 aa 2 00000 5035 11 2036 abd bp|0,1 003745 aa 6 00050 3501 20 2037 eppap sp|temp_pt,* get ptr to source 003746 aa 6 00063 2351 00 2038 lda sp|char_lg1 get length of source 003747 aa 0 40140 1005 40 2039 mlr (ar+rl),(ar+rl),fill(blank) 003750 aa 000000 000005 2040 desc9a ap|0,al 003751 aa 200000 000006 2041 desc9a bp|0,ql 003752 aa 6 00030 3501 20 2042 eppap sp|stack_frame.operator_ptr,* 003753 aa 6 00046 7101 70 2043 tra sp|tbp,*0 2044 " 003754 2045 bits_move_vt: 003754 aa 2 77777 7561 00 2046 stq bp|-1 store size of string 2047 " 003755 2048 bits_move: 003755 aa 000000 6210 17 2049 eax1 0,7 load offset 003756 0a 003767 7100 00 2050 tra bm_1 2051 " 003757 2052 bits_move_vt_co: 003757 aa 2 77777 7561 00 2053 stq bp|-1 store size of string 2054 " 003760 2055 bits_move_co: 003760 0a 001264 2210 17 2056 ldx1 co_to_bo,7 convert to bit offset 003761 0a 003767 7100 00 2057 tra bm_1 2058 " 003762 2059 bits_move_vt_ho: 003762 aa 2 77777 7561 00 2060 stq bp|-1 store size of string 2061 " 003763 2062 bits_move_ho: 003763 0a 001270 2210 17 2063 ldx1 ho_to_bo,7 003764 0a 003767 7100 00 2064 tra bm_1 2065 " 003765 2066 bits_move_vta: 003765 aa 2 77777 7561 00 2067 stq bp|-1 store siqe of string 2068 " 003766 2069 bits_move_aligned: 003766 aa 000000 6210 00 2070 eax1 0 zero bit offset 2071 " 003767 aa 000000 1160 07 2072 bm_1: cmpq 0,dl return if zerolength target 003770 aa 6 00046 6001 70 2073 tze sp|tbp,*0 003771 aa 000000 0520 03 2074 adwpbp 0,du clear target bit offset 003772 aa 2 00000 5035 11 2075 abd bp|0,1 add new bit offset 003773 aa 6 00050 3501 20 2076 eppap sp|temp_pt,* get ptr to source 003774 aa 6 00062 2351 00 2077 lda sp|bit_lg1 003775 aa 0 03140 0605 40 2078 csl (ar+rl),(ar+rl),bool(move) 003776 aa 000000 000005 2079 descb ap|0,al 003777 aa 200000 000006 2080 descb bp|0,ql 004000 aa 6 00030 3501 20 2081 eppap sp|stack_frame.operator_ptr,* 004001 aa 6 00046 7101 70 2082 tra sp|tbp,*0 2083 " 2084 " operators to move string_1 into string_2 2085 " when the size prefix is enabled 2086 " 004002 2087 chars_move_ck: 004002 aa 000000 6210 17 2088 eax1 0,7 get offset 004003 0a 004011 7100 00 2089 tra cmk_1 2090 " 004004 2091 chars_move_ck_co: 004004 0a 001264 2210 17 2092 ldx1 co_to_bo,7 convert to bit offset 004005 0a 004011 7100 00 2093 tra cmk_1 2094 " 004006 2095 chars_move_ck_ho: 004006 0a 001270 2210 17 2096 ldx1 ho_to_bo,7 convert to bit offset 004007 0a 004011 7100 00 2097 tra cmk_1 2098 " 004010 2099 chars_move_ck_al: 004010 aa 000000 6210 00 2100 eax1 0 zero offset 2101 " 004011 aa 000000 0520 03 2102 cmk_1: adwpbp 0,du erase bit offset 004012 aa 2 00000 5035 11 2103 abd bp|0,1 add new offset 004013 aa 6 00050 3501 20 2104 eppap sp|temp_pt,* get ptr to source 004014 aa 6 00063 2351 00 2105 lda sp|char_lg1 get length of source 004015 aa 0 40540 1005 40 2106 mlr (ar+rl),(ar+rl),fill(blank),enablefault 004016 aa 000000 000005 2107 desc9a ap|0,al 004017 aa 200000 000006 2108 desc9a bp|0,ql 004020 0a 003624 7100 00 2109 tra log_exit 2110 " 004021 2111 bits_move_ck: 004021 aa 000000 6210 17 2112 eax1 0,7 get offset 004022 0a 004030 7100 00 2113 tra bmk_1 2114 " 004023 2115 bits_move_ck_co: 004023 0a 001264 2210 17 2116 ldx1 co_to_bo,7 convert to bit offset 004024 0a 004030 7100 00 2117 tra bmk_1 2118 " 004025 2119 bits_move_ck_ho: 004025 0a 001270 2210 17 2120 ldx1 ho_to_bo,7 convert to bit offset 004026 0a 004030 7100 00 2121 tra bmk_1 2122 " 004027 2123 bits_move_ck_al: 004027 aa 000000 6210 00 2124 eax1 0 zero offset 2125 " 004030 aa 000000 0520 03 2126 bmk_1: adwpbp 0,du erase bit offset 004031 aa 2 00000 5035 11 2127 abd bp|0,1 add new offset 004032 aa 6 00050 3501 20 2128 eppap sp|temp_pt,* get ptr to source 004033 aa 6 00062 2351 00 2129 lda sp|bit_lg1 get length of source 004034 aa 0 03540 0605 40 2130 csl (ar+rl),(ar+rl),bool(move),enablefault 004035 aa 000000 000005 2131 desc9a ap|0,al 004036 aa 200000 000006 2132 desc9a bp|0,ql 004037 0a 003624 7100 00 2133 tra log_exit 2134 " 2135 " operators to perform concatenation. this is done by moving 2136 " the second string into the stack just after the first string. 2137 " length of first string is given by sp|cat_lg1 which is set 2138 " by a previous cat_move_... operator or by a previous cat_realloc_... 2139 " 004040 2140 cat_chars: 004040 aa 000000 6210 17 2141 eax1 0,7 save offset 004041 0a 004047 7100 00 2142 tra cat_chars_aligned+1 2143 " 004042 2144 cat_chars_co: 004042 0a 001264 2210 17 2145 ldx1 co_to_bo,7 convert to bit offset 004043 0a 004047 7100 00 2146 tra cat_chars_aligned+1 2147 " 004044 2148 cat_chars_ho: 004044 0a 001270 2210 17 2149 ldx1 ho_to_bo,7 convert to bit offset 004045 0a 004047 7100 00 2150 tra cat_chars_aligned+1 2151 " 004046 2152 cat_chars_aligned: 004046 aa 000000 6210 00 2153 eax1 0 zero offset 004047 aa 000000 1160 07 2154 cmpq 0,dl return if nothing to concat 004050 0a 004061 6000 00 2155 tze cat_done 004051 aa 000000 0520 03 2156 adwpbp 0,du clear bit offset 004052 aa 2 00000 5035 11 2157 abd bp|0,1 add new bit offset 004053 aa 6 00066 2351 00 2158 lda sp|cat_lg1 get offset for concat 004054 aa 6 00050 3501 20 2159 eppap sp|temp_pt,* get ptr to temp 004055 aa 0 00145 1005 40 2160 mlr (ar+rl),(ar+rl+a) 004056 aa 200000 000006 2161 desc9a bp|0,ql 004057 aa 000000 000006 2162 desc9a ap|0,ql 004060 aa 6 00030 3501 20 2163 eppap sp|stack_frame.operator_ptr,* 004061 2164 cat_done: 004061 aa 6 00050 3521 20 2165 eppbp sp|temp_pt,* 004062 aa 6 00046 7101 70 2166 tra sp|tbp,*0 2167 " 004063 2168 cat_bits: 004063 aa 000000 6210 17 2169 eax1 0,7 save offset 004064 0a 004072 7100 00 2170 tra cat_bits_aligned+1 2171 " 004065 2172 cat_bits_co: 004065 0a 001264 2210 17 2173 ldx1 co_to_bo,7 convert to bit offset 004066 0a 004072 7100 00 2174 tra cat_bits_aligned+1 2175 " 004067 2176 cat_bits_ho: 004067 0a 001270 2210 17 2177 ldx1 ho_to_bo,7 convert to bit offset 004070 0a 004072 7100 00 2178 tra cat_bits_aligned+1 2179 " 004071 2180 cat_bits_aligned: 004071 aa 000000 6210 00 2181 eax1 0 zero offset 004072 aa 000000 1160 07 2182 cmpq 0,dl 004073 0a 004061 6000 00 2183 tze cat_done return if none to concat 004074 aa 000000 0520 03 2184 adwpbp 0,du erase bit offset 004075 aa 6 00066 2351 00 2185 lda sp|cat_lg1 get offset in temp 004076 aa 6 00050 3501 20 2186 eppap sp|temp_pt,* get ptr to temp 004077 aa 0 03145 0605 51 2187 csl (ar+rl+x1),(ar+rl+a),bool(move) 004100 aa 200000 000006 2188 descb bp|0,ql 004101 aa 000000 000006 2189 descb ap|0,ql 004102 0a 004060 7100 00 2190 tra cat_done-1 2191 " 2192 " operator to perform repeat function (copy builtin) on char string in the string AQ. 2193 " entered with number of copies desired in q 2194 " 004103 2195 repeat: 004103 aa 000000 1160 07 2196 cmpq 0,dl take max(n_copies,0) 004104 aa 000002 6050 04 2197 tpl 2,ic 004105 aa 000000 2360 07 2198 ldq 0,dl 004106 aa 6 00077 7561 00 2199 stq sp|count save number of copies desired 004107 aa 6 00050 3501 20 2200 eppap sp|temp_pt,* get ptr to string 004110 aa 6 00064 2341 00 2201 szn sp|bit_or_char which case is this 004111 0a 004143 6010 00 2202 tnz repeat_bs 004112 aa 6 00063 2361 00 2203 ldq sp|char_lg1 get length of string 004113 aa 6 00077 4021 00 2204 mpy sp|count compute length of result 004114 aa 6 00075 7561 00 2205 stq sp|lg2 and save for later 004115 aa 000013 0760 07 2206 adq 3+8,dl compute number of words (2 extra) 004116 aa 000002 7320 00 2207 qrs 2 004117 0a 003162 7010 00 2208 tsx1 alloc allocate new temp 004120 aa 2 00002 3521 00 2209 eppbp bp|2 skip over 2 words at front 004121 aa 6 00050 2521 00 2210 spribp sp|temp_pt save ptr to result 004122 aa 6 00077 7211 00 2211 lxl1 sp|count init loop 004123 0a 004135 6000 00 2212 tze repeat_exit+1 skip if nothing to do 004124 aa 6 00063 2361 00 2213 ldq sp|char_lg1 get back length of input 004125 0a 004136 6000 00 2214 tze repeat_exit+2 skip if nothing to do 004126 2215 repeat_cs_loop: 004126 aa 0 00140 1005 40 2216 mlr (ar+rl),(ar+rl) move string 004127 aa 000000 000006 2217 desc9a ap|0,ql 004130 aa 200000 000006 2218 desc9a bp|0,ql 004131 aa 2 00000 5005 06 2219 a9bd bp|0,ql add char length 004132 aa 000001 1610 03 2220 sbx1 1,du 004133 0a 004126 6010 00 2221 tnz repeat_cs_loop repeat until done 004134 2222 repeat_exit: 004134 aa 6 00050 3521 20 2223 eppbp sp|temp_pt,* get ptr to result 004135 aa 6 00075 2361 00 2224 ldq sp|lg2 get length of result 004136 aa 2 77777 7561 00 2225 stq bp|-1 save 004137 aa 6 00063 7561 00 2226 stq sp|char_lg1 004140 aa 6 00062 7561 00 2227 stq sp|bit_lg1 004141 aa 6 00030 3501 20 2228 eppap sp|stack_frame.operator_ptr,* 004142 aa 6 00046 7101 70 2229 tra sp|tbp,*0 and return 2230 " 2231 " operator to perform repeat function (copy builtin) on bit string in the string AQ. 2232 " entered with number of copies desired in q 2233 " 004143 2234 repeat_bs: 004143 aa 6 00062 2361 00 2235 ldq sp|bit_lg1 get length of string 004144 aa 6 00077 4021 00 2236 mpy sp|count compute length of result 004145 aa 6 00075 7561 00 2237 stq sp|lg2 and save for later 004146 aa 000153 0760 07 2238 adq 35+72,dl compute number of words (2 extra) 004147 aa 000044 5060 07 2239 div 36,dl 004150 0a 003162 7010 00 2240 tsx1 alloc allocate new temp 004151 aa 2 00002 3521 00 2241 eppbp bp|2 skip over 2 extra words 004152 aa 6 00050 2521 00 2242 spribp sp|temp_pt save ptr to result 004153 aa 6 00077 7211 00 2243 lxl1 sp|count init loop 004154 0a 004135 6000 00 2244 tze repeat_exit+1 skip if nothing to do 004155 aa 6 00062 2361 00 2245 ldq sp|bit_lg1 get back length of input 004156 0a 004136 6000 00 2246 tze repeat_exit+2 exit now if nothing to do 004157 2247 repeat_bs_loop: 004157 aa 0 03140 0605 40 2248 csl (ar+rl),(ar+rl),bool(move) 004160 aa 000000 000006 2249 descb ap|0,ql 004161 aa 200000 000006 2250 descb bp|0,ql 004162 aa 2 00000 5035 06 2251 abd bp|0,ql add bit length of string 004163 aa 000001 1610 03 2252 sbx1 1,du repeat until done 004164 0a 004157 6010 00 2253 tnz repeat_bs_loop 004165 0a 004134 7100 00 2254 tra repeat_exit 2255 " 2256 " operator to reverse bit string in the string AQ. 2257 " 004166 2258 reverse_bs: 004166 aa 6 00050 3501 20 2259 eppap sp|temp_pt,* get ptr to source 004167 aa 6 00062 2361 00 2260 ldq sp|bit_lg1 get bit length 004170 aa 000153 0760 07 2261 adq 35+72,dl compute word length needed (2 extra) 004171 aa 000044 5060 07 2262 div 36,dl 004172 0a 003162 7010 00 2263 tsx1 alloc extend stack 004173 aa 2 00002 3521 00 2264 eppbp bp|2 skip over 2 words at front 004174 aa 6 00050 2521 00 2265 spribp sp|temp_pt save ptr to result 004175 aa 6 00062 2361 00 2266 ldq sp|bit_lg1 get back bit length 004176 aa 2 77777 7561 00 2267 stq bp|-1 save 004177 0a 003624 6000 00 2268 tze log_exit exit if nothing to do 004200 aa 000000 2350 07 2269 lda 0,dl init offset 004201 2270 reverse_bs_loop: 004201 aa 000001 1760 07 2271 sbq 1,dl 004202 0a 004210 6040 00 2272 tmi reverse_bs_exit done, exit 004203 aa 0 03105 0605 06 2273 csl (ar+q),(ar+a),bool(move) move 1 bit 004204 aa 000000 000001 2274 descb ap|0,1 004205 aa 200000 000001 2275 descb bp|0,1 004206 aa 000001 0750 07 2276 ada 1,dl update offset 004207 0a 004201 7100 00 2277 tra reverse_bs_loop 004210 2278 reverse_bs_exit: 004210 aa 6 00062 2361 00 2279 ldq sp|bit_lg1 get back length 004211 0a 003624 7100 00 2280 tra log_exit 2281 " 2282 " operator to reverse character string in the string AQ. 2283 " 004212 2284 reverse_cs: 004212 aa 6 00050 3501 20 2285 eppap sp|temp_pt,* get ptr to source 004213 aa 6 00063 2361 00 2286 ldq sp|char_lg1 get char length 004214 aa 000013 0760 07 2287 adq 3+8,dl compute word length needed (2 extra) 004215 aa 000002 7320 00 2288 qrs 2 004216 0a 003162 7010 00 2289 tsx1 alloc extend stack 004217 aa 2 00002 3521 00 2290 eppbp bp|2 skip over 2 words at front 004220 aa 6 00050 2521 00 2291 spribp sp|temp_pt save ptr to result 004221 aa 6 00063 2361 00 2292 ldq sp|char_lg1 get back char length 004222 aa 2 77777 7561 00 2293 stq bp|-1 save 004223 0a 003624 6000 00 2294 tze log_exit return if nothing to do 004224 aa 000000 2350 07 2295 lda 0,dl init offset 004225 2296 reverse_cs_loop: 004225 aa 000001 1760 07 2297 sbq 1,dl 004226 0a 004234 6040 00 2298 tmi reverse_cs_exit done, exit 004227 aa 0 00105 1005 06 2299 mlr (ar+q),(ar+a) move 1 char 004230 aa 000000 000001 2300 desc9a ap|0,1 004231 aa 200000 000001 2301 desc9a bp|0,1 004232 aa 000001 0750 07 2302 ada 1,dl update offset 004233 0a 004225 7100 00 2303 tra reverse_cs_loop 004234 2304 reverse_cs_exit: 004234 aa 6 00063 2361 00 2305 ldq sp|char_lg1 004235 0a 003624 7100 00 2306 tra log_exit 2307 " 2308 " operator to suffix the string previously set up to a varying string. 2309 " entered with pointer to varying string in bp, max length in q 2310 " 004236 2311 suffix_cs: 004236 aa 2 77777 1761 00 2312 sbq bp|-1 get number of chars left in string 004237 aa 6 00046 6001 70 2313 tze sp|tbp,*0 return if string is full 004240 aa 6 00063 1161 00 2314 cmpq sp|char_lg1 get min(number left,number set up) 004241 aa 000002 6040 04 2315 tmi 2,ic 004242 2316 suffix_cs_1: 004242 aa 6 00063 2361 00 2317 ldq sp|char_lg1 get length of suffix 004243 aa 6 00046 6001 70 2318 tze sp|tbp,*0 exit if zero (prevent IPR) 004244 aa 6 00050 3501 20 2319 eppap sp|temp_pt,* get ptr to suffix 004245 aa 2 77777 2351 00 2320 lda bp|-1 get offset of end 004246 aa 0 00145 1005 40 2321 mlr (ar+rl),(ar+rl+a) suffix string 004247 aa 000000 000006 2322 desc9a ap|0,ql 004250 aa 200000 000006 2323 desc9a bp|0,ql 004251 aa 2 77777 0561 00 2324 asq bp|-1 update string length 004252 aa 6 00030 3501 20 2325 eppap sp|stack_frame.operator_ptr,* 004253 aa 6 00046 7101 70 2326 tra sp|tbp,*0 and return 2327 " 2328 " operator to suffix to varying bit string. 2329 " 004254 2330 suffix_bs: 004254 aa 2 77777 1761 00 2331 sbq bp|-1 get number of bits left in string 004255 aa 6 00046 6001 70 2332 tze sp|tbp,*0 return if string full 004256 aa 6 00062 1161 00 2333 cmpq sp|bit_lg1 get min(number left,number set up) 004257 aa 000002 6040 04 2334 tmi 2,ic 004260 2335 suffix_bs_1: 004260 aa 6 00062 2361 00 2336 ldq sp|bit_lg1 get length of suffix 004261 aa 6 00046 6001 70 2337 tze sp|tbp,*0 exit if zero (prevent IPR) 004262 aa 6 00050 3501 20 2338 eppap sp|temp_pt,* get ptr to suffix 004263 aa 2 77777 2351 00 2339 lda bp|-1 get offset of last bit available 004264 aa 0 03145 0605 40 2340 csl (ar+rl),(ar+rl+a),bool(move) 004265 aa 000000 000006 2341 descb ap|0,ql 004266 aa 200000 000006 2342 descb bp|0,ql 004267 aa 2 77777 0561 00 2343 asq bp|-1 update string length 004270 aa 6 00030 3501 20 2344 eppap sp|stack_frame.operator_ptr,* 004271 aa 6 00046 7101 70 2345 tra sp|tbp,*0 and return 2346 " 2347 " operators to suffix the string previously set up to a varying string 2348 " when the stringsize condition is enabled. entered with pointer 2349 " to string in bp, max length in q 2350 " 004272 2351 suffix_cs_ck: 004272 aa 2 77777 1761 00 2352 sbq bp|-1 get number of chars left 004273 aa 000003 6000 04 2353 tze 3,ic 004274 aa 6 00063 1161 00 2354 cmpq sp|char_lg1 get min(number left,number set up) 004275 0a 004242 6050 00 2355 tpl suffix_cs_1 004276 0a 004242 6350 00 2356 eaa suffix_cs_1 error, signal stringsize 2357 " 004277 2358 suffix_error: 004277 aa 6 00037 4401 00 2359 sxl0 sp|stack_frame.operator_ret_ptr no, signal stringsize 004300 aa 6 00056 2521 00 2360 spribp sp|double_temp 004301 aa 6 00076 7571 00 2361 staq sp|temp 004302 0a 010062 3520 00 2362 eppbp stringsize_name 004303 aa 000012 6260 00 2363 eax6 stringsize_length 004304 aa 001276 2360 07 2364 ldq =702,dl get oncode value 004305 0a 011243 7010 00 2365 tsx1 call_signal_ 004306 aa 6 00037 7201 00 2366 lxl0 sp|stack_frame.operator_ret_ptr 004307 aa 6 00056 3521 20 2367 eppbp sp|double_temp,* 004310 aa 6 00076 2371 00 2368 ldaq sp|temp 004311 aa 000001 7100 01 2369 tra 1,au join standard section 2370 " 004312 2371 suffix_bs_ck: 004312 aa 2 77777 1761 00 2372 sbq bp|-1 004313 aa 000003 6000 04 2373 tze 3,ic 004314 aa 6 00062 1161 00 2374 cmpq sp|bit_lg1 004315 0a 004260 6050 00 2375 tpl suffix_bs_1 004316 0a 004260 6350 00 2376 eaa suffix_bs_1 004317 0a 004277 7100 00 2377 tra suffix_error 2378 " 2379 " operator to compare string_2 with previously setup string_1 2380 " 004320 2381 cp_chars: 004320 aa 000000 6210 17 2382 eax1 0,7 save offset 004321 0a 004327 7100 00 2383 tra cp_chars_aligned+1 2384 " 004322 2385 cp_chars_co: 004322 0a 001264 2210 17 2386 ldx1 co_to_bo,7 convert to bit offset 004323 0a 004327 7100 00 2387 tra cp_chars_aligned+1 2388 " 004324 2389 cp_chars_ho: 004324 0a 001270 2210 17 2390 ldx1 ho_to_bo,7 convert to bit offset 004325 0a 004327 7100 00 2391 tra cp_chars_aligned+1 2392 " 004326 2393 cp_chars_aligned: 004326 aa 000000 6210 00 2394 eax1 0 zero offset 004327 aa 000000 0520 03 2395 adwpbp 0,du 004330 aa 2 00000 5035 11 2396 abd bp|0,1 add new bit offset 004331 aa 6 00050 3501 20 2397 cpcs_1: eppap sp|temp_pt,* get ptr to string_1 004332 aa 6 00063 2351 00 2398 lda sp|char_lg1 get length(string_1) 004333 aa 0 40140 1065 40 2399 cmpc (ar+rl),(ar+rl),fill(blank) 004334 aa 200000 000006 2400 desc9a bp|0,ql string_2 004335 aa 000000 000005 2401 desc9a ap|0,al string_1 004336 aa 6 00030 3501 20 2402 eppap sp|stack_frame.operator_ptr,* 004337 aa 6 00046 7101 70 2403 tra sp|tbp,*0 2404 " 004340 2405 cp_bits: 004340 aa 000000 6210 17 2406 eax1 0,7 save offset 004341 0a 004347 7100 00 2407 tra cp_bits_aligned+1 2408 " 004342 2409 cp_bits_co: 004342 0a 001264 2210 17 2410 ldx1 co_to_bo,7 convert to bit offset 004343 0a 004347 7100 00 2411 tra cp_bits_aligned+1 2412 " 004344 2413 cp_bits_ho: 004344 0a 001270 2210 17 2414 ldx1 ho_to_bo,7 convert to bit offset 004345 0a 004347 7100 00 2415 tra cp_bits_aligned+1 2416 " 004346 2417 cp_bits_aligned: 004346 aa 000000 6210 00 2418 eax1 0 zero ofset 004347 aa 000000 0520 03 2419 adwpbp 0,du erase bit offset 004350 aa 6 00050 3501 20 2420 cpbs_1: eppap sp|temp_pt,* get ptr to string_1 004351 aa 6 00062 2351 00 2421 lda sp|bit_lg1 004352 aa 0 00140 0665 51 2422 cmpb (ar+rl+x1),(ar+rl) 004353 aa 200000 000006 2423 descb bp|0,ql string_2 004354 aa 000000 000005 2424 descb ap|0,al string 1 004355 aa 6 00030 3501 20 2425 eppap sp|stack_frame.operator_ptr,* 004356 aa 6 00046 7101 70 2426 tra sp|tbp,*0 2427 " 2428 " operators to compare single (double) word string in a-reg (aq_reg) 2429 " with string previously setup 2430 " 004357 2431 cpcs_ext1: 004357 0a 002066 2360 00 2432 ldq blanks convert to double length string 2433 " 004360 2434 cpcs_ext2: 004360 aa 6 00056 7571 00 2435 staq sp|double_temp save string in aq 004361 aa 000010 2360 07 2436 ldq 8,dl get length 004362 aa 6 00056 3521 00 2437 eppbp sp|double_temp get ptr to string 004363 0a 004331 7100 00 2438 tra cpcs_1 2439 " 004364 2440 cpbs_ext1: 004364 aa 000000 2360 07 2441 ldq 0,dl convert to double length string 2442 " 004365 2443 cpbs_ext2: 004365 aa 6 00056 7571 00 2444 staq sp|double_temp save string in aq 004366 aa 000110 2360 07 2445 ldq 72,dl 004367 aa 6 00056 3521 00 2446 eppbp sp|double_temp 004370 0a 004350 7100 00 2447 tra cpbs_1 2448 " 2449 " operator to check an unaligned string for any non-zero bits. 2450 " 004371 2451 cpbs3: 004371 aa 000000 6210 17 2452 eax1 0,7 load offset 004372 0a 004402 7100 00 2453 tra cpbs3a 2454 " 004373 2455 cpbs3_co: 004373 0a 001264 2210 17 2456 ldx1 co_to_bo,7 convert to bit offset 004374 0a 004402 7100 00 2457 tra cpbs3a 2458 " 004375 2459 cpbs3_ho: 004375 0a 001270 2210 17 2460 ldx1 ho_to_bo,7 convert to bit offset 004376 0a 004402 7100 00 2461 tra cpbs3a 2462 " 2463 " operator to check the aligned string temp pointed at by 2464 " temp_pt for any non_zero bits 2465 " 004377 aa 6 00062 2361 00 2466 cpbs4: ldq sp|bit_lg1 get bit length 004400 aa 6 00050 3521 20 2467 eppbp sp|temp_pt,* get ptr to string 2468 " 004401 2469 cpbs3_aligned: 004401 aa 000000 6210 00 2470 eax1 0 zero offset 2471 " 004402 aa 000000 0520 03 2472 cpbs3a: adwpbp 0,du erase bit offset 004403 aa 0 00000 0665 51 2473 cmpb (ar+rl+x1),(0) 004404 aa 200000 000006 2474 descb bp|0,ql 004405 aa 000000 000000 2475 vfd 36/0 004406 aa 6 00046 7101 70 2476 tra sp|tbp,*0 2477 " 2478 " operators to blank out a character string 2479 " 004407 2480 blank_chars: 004407 aa 000000 6210 17 2481 eax1 0,7 get offset 004410 0a 004416 7100 00 2482 tra bc_1 2483 " 004411 2484 blank_chars_co: 004411 0a 001264 2210 17 2485 ldx1 co_to_bo,7 convert to bit offset 004412 0a 004416 7100 00 2486 tra bc_1 2487 " 004413 2488 blank_chars_ho: 004413 0a 001270 2210 17 2489 ldx1 ho_to_bo,7 convert to bit offset 004414 0a 004416 7100 00 2490 tra bc_1 2491 " 004415 2492 blank_chars_aligned: 004415 aa 000000 6210 00 2493 eax1 0 zero offset 2494 " 004416 aa 000000 1160 07 2495 bc_1: cmpq 0,dl return if string zero length 004417 aa 6 00046 6001 70 2496 tze sp|tbp,*0 004420 aa 000000 0520 03 2497 adwpbp 0,du erase bit offset 004421 aa 2 00000 5035 11 2498 abd bp|0,1 add new offset 004422 aa 040140 1004 00 2499 mlr (0),(ar+rl),fill(blank) 004423 aa 000000 000000 2500 vfd 36/0 004424 aa 200000 000006 2501 desc9a bp|0,ql 004425 aa 6 00046 7101 70 2502 tra sp|tbp,*0 2503 " 2504 " operators to zero out a bit string 2505 " 004426 2506 zero_bits: 004426 aa 000000 6210 17 2507 eax1 0,7 get bit offset 004427 0a 004435 7100 00 2508 tra zb_1 2509 " 004430 2510 zero_bits_co: 004430 0a 001264 2210 17 2511 ldx1 co_to_bo,7 convert to bit offset 004431 0a 004435 7100 00 2512 tra zb_1 2513 " 004432 2514 zero_bits_ho: 004432 0a 001270 2210 17 2515 ldx1 ho_to_bo,7 convert to bit offset 004433 0a 004435 7100 00 2516 tra zb_1 2517 " 004434 2518 zero_bits_aligned: 004434 aa 000000 6210 00 2519 eax1 0 get zero offset 2520 " 004435 aa 000000 1160 07 2521 zb_1: cmpq 0,dl return if string zero length 004436 aa 6 00046 6001 70 2522 tze sp|tbp,*0 004437 aa 000000 0520 03 2523 adwpbp 0,du erase bit offset 004440 aa 003151 0604 00 2524 csl (0),(ar+rl+x1),bool(move) 004441 0a 001426 000000 2525 descb bit_mask,0 (avoid csl bug by using real address) 004442 aa 200000 000006 2526 descb bp|0,ql 004443 aa 6 00046 7101 70 2527 tra sp|tbp,*0 2528 " 2529 " operators to copy a constant into a temporary of the same size 2530 " entered with destination in bp, length in q, and text location of 2531 " constant in x1 2532 " 004444 2533 copy_const_vt: 004444 aa 2 77777 7561 00 2534 stq bp|-1 set size 2535 " 004445 2536 copy_const: 004445 aa 6 00046 3501 71 2537 eppap sp|tbp,*1 get ptr to constant 004446 aa 0 00140 1005 40 2538 mlr (ar+rl),(ar+rl) 004447 aa 000000 000006 2539 desc9a ap|0,ql 004450 aa 200000 000006 2540 desc9a bp|0,ql 004451 aa 6 00030 3501 20 2541 eppap sp|stack_frame.operator_ptr,* 004452 aa 6 00046 7101 70 2542 tra sp|tbp,*0 2543 " 2544 " operator to compute index(str1,str2). entered with str1 specified 2545 " by previous set operator. 2546 " 2547 " 004453 2548 index_chars: 004453 aa 000000 6210 17 2549 eax1 0,7 get bit offset 004454 0a 004462 7100 00 2550 tra ixc 2551 " 004455 2552 index_chars_co: 004455 0a 001264 2210 17 2553 ldx1 co_to_bo,7 convert to bit offset 004456 0a 004462 7100 00 2554 tra ixc 2555 " 004457 2556 index_chars_ho: 004457 0a 001270 2210 17 2557 ldx1 ho_to_bo,7 convert to bit offset 004460 0a 004462 7100 00 2558 tra ixc 2559 " 004461 2560 index_chars_aligned: 004461 aa 000000 6210 00 2561 eax1 0 get zero offset 2562 " 004462 aa 000000 0520 03 2563 ixc: adwpbp 0,du erase bit offset 004463 aa 2 00000 5035 11 2564 abd bp|0,1 add new bit offset 2565 2566 " General entry 2567 004464 2568 index_chars_eis: 004464 aa 6 00050 3501 20 2569 ixc2: eppap sp|temp_pt,* get ptr to string_1 004465 aa 6 00063 2351 00 2570 lda sp|char_lg1 Get length 1 004466 aa 6 00063 1161 00 2571 cmpq sp|char_lg1 Too long? 004467 0a 004504 6054 00 2572 tpnz zix 004470 aa 000001 1160 07 2573 cmpq 1,dl are we looking for single char 004471 0a 004507 6054 00 2574 tpnz ixcs_long Big string 004472 0a 004504 6040 00 2575 tmi zix 0-length is failure. 004473 aa 0 00100 1245 40 2576 ixc1: scm (ar+rl),(ar) 004474 aa 000000 000005 2577 desc9a ap|0,al 004475 aa 200000 000000 2578 desc9a bp|0,0 004476 aa 6 00076 0001 00 2579 arg sp|temp 004477 0a 004504 6064 00 2580 ttn zix tally runout means not found 004500 2581 ixc_ret_ok: 004500 aa 6 00076 2361 00 2582 ldq sp|temp get index 004501 aa 000001 0760 07 2583 adq 1,dl convert to pl1 index value 004502 aa 6 00030 3501 20 2584 eppap sp|stack_frame.operator_ptr,* 004503 aa 6 00046 7101 70 2585 tra sp|tbp,*0 2586 " 2587 " index failed 2588 " 004504 aa 000000 2360 07 2589 zix: ldq 0,dl 004505 aa 6 00030 3501 20 2590 eppap sp|stack_frame.operator_ptr,* 004506 aa 6 00046 7101 70 2591 tra sp|tbp,*0 2592 " 2593 " string_2 is more than 1 character 2594 " 004507 2595 ixcs_long: 004507 aa 6 00075 7561 00 2596 stq sp|lg2 save length of string_2 004510 aa 000044 7730 00 2597 lrl 36 l(string1) =>q, 0 => a 004511 aa 6 00075 1361 00 2598 sblq sp|lg2 Don't search last l(string2) 004512 aa 6 00066 7561 00 2599 stq sp|t2 save lg(s1) - lg (s2) 004513 2600 ixcs_loop: 004513 aa 000002 0360 07 2601 adlq 2,dl ok to match 2 more 004514 aa 0 00100 1205 45 2602 scd (ar+rl+a),(ar) Look for prefix 004515 aa 000000 000006 2603 desc9a ap|0,ql 004516 aa 200000 000000 2604 desc9a bp|0 004517 aa 6 00076 0001 00 2605 arg sp|temp 004520 0a 004504 6064 00 2606 ttn zix Fails. 2607 " 2608 " See if string really won. 2609 " 004521 aa 000001 0350 07 2610 adla 1,dl add 1 both for pl1 result and new offs 004522 aa 6 00076 0351 00 2611 adla sp|temp This gonna be real offset. 004523 aa 6 00076 7551 00 2612 sta sp|temp Leave in a and temp 004524 aa 6 00075 2361 00 2613 ldq sp|lg2 Compare whole string 004525 aa 0 00140 1065 45 2614 cmpc (ar+rl+a),(ar+rl) 004526 aa 077777 600006 2615 desc9a ap|-1(3),ql ql = length 004527 aa 200000 000006 2616 desc9a bp|0,ql string 2 length 004530 0a 004535 6000 00 2617 tze ixc_ret_ok_1 answer in a 004531 aa 6 00066 2361 00 2618 ldq sp|t2 charlg1 - lg2 004532 aa 6 00076 1361 00 2619 sblq sp|temp 004533 0a 004513 6050 00 2620 tpl ixcs_loop 004534 0a 004504 7100 00 2621 tra zix Nothing left to search 2622 004535 2623 ixc_ret_ok_1: 004535 aa 000044 7730 00 2624 lrl 36 004536 aa 6 00030 3501 20 2625 eppap sp|stack_frame.operator_ptr,* 004537 aa 6 00046 7101 70 2626 tra sp|tbp,*0 2627 2628 " Operator to compute index (rev(string1),rev(string2)) 2629 " Same conventions as ix_chars. 2630 004540 2631 ix_rev_chars: 004540 aa 6 00063 1161 00 2632 cmpq sp|char_lg1 String 2 bigger than 1? 004541 0a 004504 6054 00 2633 tpnz zix Quick failure. 004542 aa 6 00050 3501 20 2634 eppap sp|temp_pt,* Get searchee ptr 004543 aa 6 00063 2351 00 2635 lda sp|char_lg1 Load up searchee length 004544 aa 000001 1160 07 2636 cmpq 1,dl Search for 0, 1, or 2? 004545 0a 004504 6040 00 2637 tmi zix Immediate failure for 0. 004546 0a 004555 6054 00 2638 tpnz ix_rev_long 2 or more chars 2639 2640 " Search for 1 char. Searchee guaranteed to be at least 1 long. 2641 " 2642 " ap = ptr to string1 2643 " bp = ptr to string2 2644 " a = length(string1) 2645 " q = length(string2) = 1 2646 " x0 = return offset 2647 004547 aa 0 00100 1255 40 2648 scmr (pr,rl),(pr) 004550 aa 000000 000005 2649 desc9a ap|0,al 004551 aa 200000 000000 2650 desc9a bp|0 004552 aa 6 00076 0001 00 2651 arg sp|temp 004553 0a 004504 6064 00 2652 ttn zix " Was string2 found in string1? 004554 0a 004500 7100 00 2653 tra ixc_ret_ok " Yes: return 1-origin index 2654 2655 " Now known to be 2 or more characters to search for 2656 " in string guaranteed 2 or more long. Note that a leading 2657 " prefix of the searchee of length (length (searchstring)-2) 2658 " need not be searched. 2659 " 004555 2660 ix_rev_long: 004555 aa 6 00075 7561 00 2661 stq sp|lg2 length (searchstring) 004556 aa 6 00075 1351 00 2662 sbla sp|lg2 Deduct l(ss)-2 from searchable len 004557 aa 000002 0350 07 2663 adla 2,dl 004560 2664 ix_rev_loop: 004560 aa 0 00106 1215 46 2665 scdr (ar+rl+q),(ar+q) q is l(searchstring) 004561 aa 077777 400005 2666 desc9a ap|-1(2),al a is searchable length of searchee 004562 aa 277777 400000 2667 desc9a bp|-1(2) Gets last 2 chars 004563 aa 6 00076 0001 00 2668 arg sp|temp Answer 004564 0a 004504 6064 00 2669 ttn zix Clear and present failure 2670 " 2671 " See if we really found the string. This algebra 2672 " really, really works. 2673 " 004565 aa 000002 1350 07 2674 sbla 2,dl 004566 aa 6 00076 1351 00 2675 sbla sp|temp 2676 " 2677 " Compare the full string. Length still in q, offset now in a. 2678 " 004567 aa 0 00140 1065 45 2679 cmpc (ar+rl+a),(ar+rl) 004570 aa 000000 000006 2680 desc9a ap|0,ql 004571 aa 200000 000006 2681 desc9a bp|0,ql 004572 0a 004602 6010 00 2682 tnz ix_rev_more Nope. Try some more. 2683 " 2684 " String found. Find how many chars left on other side. 2685 " 004573 aa 6 00075 0351 00 2686 adla sp|lg2 length(searchstring) 004574 aa 6 00063 1351 00 2687 sbla sp|char_lg1 this is negative 004575 aa 000000 5310 00 2688 neg 0 004576 aa 000001 0350 07 2689 adla 1,dl for PL/I convention 004577 aa 000044 7730 00 2690 lrl 36 004600 aa 6 00030 3501 20 2691 eppap sp|stack_frame.operator_ptr,* 004601 aa 6 00046 7101 70 2692 tra sp|tbp,*0 return. 004602 2693 ix_rev_more: 004602 aa 000001 0350 07 2694 adla 1,dl This is right. 004603 aa 000002 1150 07 2695 cmpa 2,dl Still left to search? 004604 0a 004504 6040 00 2696 tmi zix Search fails if not 004605 0a 004560 7100 00 2697 tra ix_rev_loop New stuff in a. 2698 " 2699 " Bit index operators 2700 " 2701 004606 2702 index_bits_eis: 004606 aa 000000 1160 07 2703 cmpq 0,dl exit now if string_2 zero length 004607 aa 6 00046 6001 70 2704 tze sp|tbp,*0 004610 0a 004624 7100 00 2705 tra ixb2 join common case 2706 " 004611 2707 index_bits: 004611 aa 000000 6210 17 2708 eax1 0,7 get bit offset 004612 0a 004620 7100 00 2709 tra ixb 2710 " 004613 2711 index_bits_co: 004613 0a 001264 2210 17 2712 ldx1 co_to_bo,7 convert to bit offset 004614 0a 004620 7100 00 2713 tra ixb 2714 " 004615 2715 index_bits_ho: 004615 0a 001270 2210 17 2716 ldx1 ho_to_bo,7 convert to bit offset 004616 0a 004620 7100 00 2717 tra ixb 2718 " 004617 2719 index_bits_aligned: 004617 aa 000000 6210 00 2720 eax1 0 get zero offset 2721 " 004620 aa 000000 1160 07 2722 ixb: cmpq 0,dl exit if string 2 zero length 004621 aa 6 00046 6001 70 2723 tze sp|tbp,*0 004622 aa 000000 0520 03 2724 adwpbp 0,du erase bit offset 004623 aa 2 00000 5035 11 2725 abd bp|0,1 use new bit offset 004624 aa 6 00050 3501 20 2726 ixb2: eppap sp|temp_pt,* get ptr to string_1 004625 aa 6 00075 7561 00 2727 ixb1: stq sp|lg2 save length of string_2 004626 aa 000000 2360 07 2728 ldq 0,dl init loop 004627 2729 ixbs_loop: 004627 aa 6 00077 7561 00 2730 stq sp|count 004630 aa 6 00062 2351 00 2731 lda sp|bit_lg1 compute number of remaining bits in 1 004631 aa 6 00077 1751 00 2732 sba sp|count 004632 aa 6 00075 1151 00 2733 cmpa sp|lg2 must be >= length 2 004633 0a 004504 6040 00 2734 tmi zix 004634 aa 6 00075 2351 00 2735 lda sp|lg2 get length 2 004635 aa 000001 0760 07 2736 adq 1,dl convert skip count to pl1 index 004636 aa 0 00146 0665 40 2737 cmpb (ar+rl),(ar+rl+q) 004637 aa 200000 000005 2738 descb bp|0,al 004640 aa 077777 700005 2739 descb ap|-1(35),al 004641 0a 004627 6010 00 2740 tnz ixbs_loop failed, try next value 004642 aa 000000 1160 07 2741 cmpq 0,dl set indicators 004643 aa 6 00030 3501 20 2742 eppap sp|stack_frame.operator_ptr,* index in q, exit 004644 aa 6 00046 7101 70 2743 tra sp|tbp,*0 2744 " 2745 " operator to compute index(str1,str2) when str2 is a single char. 2746 " entered with value of str2 in a register. 2747 " 004645 2748 index_cs_1_eis: 004645 aa 000000 1160 07 2749 cmpq 0,dl exit now if string 1 zero length 004646 aa 6 00046 6001 70 2750 tze sp|tbp,*0 004647 0a 004663 7100 00 2751 tra ixcs1_b join common cae 004650 2752 index_cs_1: 004650 aa 000000 6210 17 2753 eax1 0,7 convert to bit offset 004651 0a 004657 7100 00 2754 tra ixcs1_a join common section 2755 " 004652 2756 index_cs_1_co: 004652 0a 001264 2210 17 2757 ldx1 co_to_bo,7 get bit offset 004653 0a 004657 7100 00 2758 tra ixcs1_a 2759 " 004654 2760 index_cs_1_ho: 004654 0a 001270 2210 17 2761 ldx1 ho_to_bo,7 convert to bit offset 004655 0a 004657 7100 00 2762 tra ixcs1_a 2763 " 004656 2764 index_cs_1_aligned: 004656 aa 000000 6210 00 2765 eax1 0 get zero offset 2766 " 004657 aa 000000 1160 07 2767 ixcs1_a: cmpq 0,dl return immediately if string 1 zero length 004660 aa 6 00046 6001 70 2768 tze sp|tbp,*0 004661 aa 000000 0520 03 2769 adwpbp 0,du clear bit offset 004662 aa 2 00000 5035 11 2770 abd bp|0,1 use new bit offset 004663 aa 2 00000 3501 00 2771 ixcs1_b: eppap bp|0 put ptr to string 1 in proper register 004664 aa 6 00072 7551 00 2772 sta sp|temp2 save the character 004665 aa 6 00072 3521 00 2773 eppbp sp|temp2 get ptr to it as string 2 004666 aa 000044 7370 00 2774 lls 36 Needed in a 004667 0a 004473 7100 00 2775 tra ixc1 2776 " 2777 " operators to search a bit string for a single bit 2778 " 004670 2779 index_bs_1_eis: 004670 aa 000000 1160 07 2780 cmpq 0,dl exit now if string 1 zero length 004671 aa 6 00046 6001 70 2781 tze sp|tbp,*0 004672 0a 004706 7100 00 2782 tra ixbs1_b join common case 2783 " 004673 2784 index_bs_1: 004673 aa 000000 6210 17 2785 eax1 0,7 save bit offset 004674 0a 004702 7100 00 2786 tra ixbs1_a 2787 " 004675 2788 index_bs_1_co: 004675 0a 001264 2210 17 2789 ldx1 co_to_bo,7 convert to bit offset 004676 0a 004702 7100 00 2790 tra ixbs1_a 2791 " 004677 2792 index_bs_1_ho: 004677 0a 001270 2210 17 2793 ldx1 ho_to_bo,7 convert to bit offset 004700 0a 004702 7100 00 2794 tra ixbs1_a 2795 " 004701 2796 index_bs_1_aligned: 004701 aa 000000 6210 00 2797 eax1 0 get zero offset 2798 " 004702 aa 000000 1160 07 2799 ixbs1_a: cmpq 0,dl return immediately if string 1 zero length 004703 aa 6 00046 6001 70 2800 tze sp|tbp,*0 004704 aa 000000 0520 03 2801 adwpbp 0,du clear bit offset 004705 aa 2 00000 5035 11 2802 abd bp|0,1 add new bit offset 004706 aa 2 00000 3501 00 2803 ixbs1_b: eppap bp|0 put ptr to string 1 in proper register 004707 aa 6 00062 7561 00 2804 stq sp|bit_lg1 save length of string_1 004710 aa 6 00072 7551 00 2805 sta sp|temp2 save the bit 004711 aa 6 00072 3521 00 2806 eppbp sp|temp2 get ptr to it as string 2 004712 aa 000001 2360 07 2807 ldq 1,dl get length of string 2 004713 0a 004625 7100 00 2808 tra ixb1 2809 " 2810 " index operators used with before and after. entered 2811 " with str1 specified by previous set operator 2812 " 004714 2813 index_before_cs: 004714 aa 000000 1160 07 2814 cmpq 0,dl exit now if str2 zero length 004715 aa 6 00046 6001 70 2815 tze sp|tbp,*0 004716 aa 000000 6210 00 2816 eax1 0 set flag 004717 0a 004723 7100 00 2817 tra ixba 2818 " 004720 2819 index_after_cs: 004720 aa 000000 1160 07 2820 cmpq 0,dl exit now if str2 zero length 004721 aa 6 00046 6001 70 2821 tze sp|tbp,*0 004722 aa 000001 6210 00 2822 eax1 1 set flag 004723 aa 6 00050 3501 20 2823 ixba: eppap sp|temp_pt,* get ptr to str1 004724 aa 000001 1160 07 2824 cmpq 1,dl are we looking for single char 004725 0a 004750 6010 00 2825 tnz ixba_long no, skip 004726 aa 6 00063 2361 00 2826 ldq sp|char_lg1 get length of str1 004727 aa 0 00100 1245 40 2827 scm (ar+rl),(ar) 004730 aa 000000 000006 2828 desc9a ap|0,ql 004731 aa 200000 000001 2829 desc9a bp|0,1 004732 aa 6 00076 0001 00 2830 arg sp|temp 004733 0a 004741 6064 00 2831 ttn ixba_fail+1 004734 aa 6 00076 2361 00 2832 ldq sp|temp get result 004735 0a 004746 7160 11 2833 xec nop_adq_dl,1 004736 aa 6 00030 3501 20 2834 eppap sp|stack_frame.operator_ptr,* 004737 aa 6 00046 7101 70 2835 tra sp|tbp,*0 2836 " 2837 " index failed 2838 " 004740 2839 ixba_fail: 004740 aa 6 00063 2361 00 2840 ldq sp|char_lg1 004741 aa 6 00030 3501 20 2841 eppap sp|stack_frame.operator_ptr,* 004742 aa 6 00046 7101 70 2842 tra sp|tbp,*0 2843 " 004743 2844 ixba_bs_fail: 004743 aa 6 00062 2361 00 2845 ldq sp|bit_lg1 004744 aa 6 00030 3501 20 2846 eppap sp|stack_frame.operator_ptr,* 004745 aa 6 00046 7101 70 2847 tra sp|tbp,*0 2848 " 004746 2849 nop_adq_dl: 004746 aa 000000 0110 07 2850 nop 0,dl before 004747 aa 000001 0760 07 2851 adq 1,dl after 2852 " 2853 " str2 is more than 1 char 2854 " 004750 2855 ixba_long: 004750 aa 6 00075 7561 00 2856 stq sp|lg2 save length(str2) 004751 aa 000000 2360 07 2857 ldq 0,dl init loop 004752 2858 ixba_loop: 004752 aa 6 00077 7561 00 2859 stq sp|count 004753 aa 6 00063 2351 00 2860 lda sp|char_lg1 get number remaining in str1 004754 aa 6 00077 1751 00 2861 sba sp|count 004755 aa 6 00075 1151 00 2862 cmpa sp|lg2 failed if < length(str2) 004756 0a 004740 6040 00 2863 tmi ixba_fail 004757 aa 0 00100 1205 46 2864 scd (ar+rl+q),(ar) check for first 2 chars of str2 004760 aa 000000 000005 2865 desc9a ap|0,al 004761 aa 200000 000002 2866 desc9a bp|0,2 004762 aa 6 00076 0001 00 2867 arg sp|temp 004763 0a 004740 6064 00 2868 ttn ixba_fail tally runout means failure 004764 aa 6 00076 1751 00 2869 sba sp|temp compute length of hit 004765 aa 6 00075 1151 00 2870 cmpa sp|lg2 must be >= length(str2) 004766 0a 004740 6040 00 2871 tmi ixba_fail 004767 aa 6 00076 0761 00 2872 adq sp|temp update 004770 aa 000001 0760 07 2873 adq 1,dl prepare to bump past hit 004771 aa 6 00075 2351 00 2874 lda sp|lg2 check full str2 004772 aa 0 00140 1065 46 2875 cmpc (ar+rl+q),(ar+rl) 004773 aa 077777 600005 2876 desc9a ap|-1(3),al 004774 aa 200000 000005 2877 desc9a bp|0,al 004775 0a 004752 6010 00 2878 tnz ixba_loop 004776 aa 000001 1760 07 2879 sbq 1,dl we want offset, NOT pl1 index 004777 0a 005002 7160 11 2880 xec nop_adq,1 005000 aa 6 00030 3501 20 2881 eppap sp|stack_frame.operator_ptr,* 005001 aa 6 00046 7101 70 2882 tra sp|tbp,*0 2883 " 005002 2884 nop_adq: 005002 aa 000000 0110 07 2885 nop 0,dl before 005003 aa 6 00075 0761 00 2886 adq sp|lg2 after 2887 " 005004 2888 index_before_bs: 005004 aa 000000 1160 07 2889 cmpq 0,dl exit now if str2 zero length 005005 aa 6 00046 6001 70 2890 tze sp|tbp,*0 005006 aa 000000 6210 00 2891 eax1 0 005007 0a 005013 7100 00 2892 tra ixba_bs 2893 " 005010 2894 index_after_bs: 005010 aa 000000 1160 07 2895 cmpq 0,dl exit now if str2 zero length 005011 aa 6 00046 6001 70 2896 tze sp|tbp,*0 005012 aa 000001 6210 00 2897 eax1 1 005013 aa 6 00050 3501 20 2898 ixba_bs: eppap sp|temp_pt,* get ptr to str1 005014 aa 6 00075 7561 00 2899 ixba_bs1: stq sp|lg2 save length(str2) 005015 aa 000000 2360 07 2900 ldq 0,dl init loop 005016 2901 ixba_bs_loop: 005016 aa 6 00077 7561 00 2902 stq sp|count 005017 aa 6 00062 2351 00 2903 lda sp|bit_lg1 compute remaining bits in str1 005020 aa 6 00077 1751 00 2904 sba sp|count 005021 aa 6 00075 1151 00 2905 cmpa sp|lg2 must be >= length(str2) 005022 0a 004743 6040 00 2906 tmi ixba_bs_fail 005023 aa 6 00075 2351 00 2907 lda sp|lg2 get length(str2) 005024 aa 000001 0760 07 2908 adq 1,dl prepare to skip past the bit 005025 aa 0 00146 0665 40 2909 cmpb (ar+rl),(ar+rl+q) 005026 aa 200000 000005 2910 descb bp|0,al 005027 aa 077777 700005 2911 descb ap|-1(35),al 005030 0a 005016 6010 00 2912 tnz ixba_bs_loop 005031 aa 000001 1760 07 2913 sbq 1,dl want offset, not pl1 index 005032 0a 005002 7160 11 2914 xec nop_adq,1 005033 aa 6 00030 3501 20 2915 eppap sp|stack_frame.operator_ptr,* 005034 aa 6 00046 7101 70 2916 tra sp|tbp,*0 2917 " 005035 2918 index_before_bs_1: 005035 aa 000000 1160 07 2919 cmpq 0,dl exit now if str1 zero len 005036 aa 6 00046 6001 70 2920 tze sp|tbp,*0 005037 aa 000000 6210 00 2921 eax1 0 005040 0a 005044 7100 00 2922 tra ixba_bs2 2923 " 005041 2924 index_after_bs_1: 005041 aa 000000 1160 07 2925 cmpq 0,dl exit now if str1 zero length 005042 aa 6 00046 6001 70 2926 tze sp|tbp,*0 005043 aa 000001 6210 00 2927 eax1 1 005044 aa 2 00000 3501 00 2928 ixba_bs2: eppap bp|0 put ptr to str1 in proper register 005045 aa 6 00062 7561 00 2929 stq sp|bit_lg1 save length(str1) 005046 aa 6 00072 7551 00 2930 sta sp|temp2 save the bit 005047 aa 6 00072 3521 00 2931 eppbp sp|temp2 get ptr to it as str2 005050 aa 000001 2360 07 2932 ldq 1,dl get length of str2 005051 0a 005014 7100 00 2933 tra ixba_bs1 2934 " 2935 " operators to make bit table for use with verify operator. 2936 " entered with pointer to string in bp, offset in x7, size in q, and 2937 " stack offset of bit table in au. 2938 " 005052 2939 make_bit_table: 005052 aa 000000 6210 17 2940 eax1 0,7 get offset 005053 0a 005061 7100 00 2941 tra mbt 2942 " 005054 2943 make_bit_table_co: 005054 0a 001264 2210 17 2944 ldx1 co_to_bo,7 convert offset to bits 005055 0a 005061 7100 00 2945 tra mbt 2946 " 005056 2947 make_bit_table_ho: 005056 0a 001270 2210 17 2948 ldx1 ho_to_bo,7 convert offset to bits 005057 0a 005061 7100 00 2949 tra mbt 2950 " 005060 2951 make_bit_table_al: 005060 aa 000000 6210 00 2952 eax1 0 zero offset 2953 " 005061 aa 6 00000 3505 00 2954 mbt: epbpap sp|0 get ptr to base of stack 005062 aa 000000 3100 01 2955 eawpap 0,au get ptr to bit table 005063 aa 6 00063 7561 00 2956 stq sp|char_lg1 save - length of string 005064 aa 000000 4310 07 2957 fld 0,dl zero out the bit table 005065 aa 0 00000 7571 00 2958 staq ap|0 005066 aa 0 00002 7571 00 2959 staq ap|2 005067 aa 6 00063 3361 00 2960 lcq sp|char_lg1 005070 0a 003624 6000 00 2961 tze log_exit return if zero length string 005071 aa 6 00063 7561 00 2962 stq sp|char_lg1 005072 aa 2 00000 2361 00 2963 mbt_1: ldq bp|0 get current word of string 005073 aa 000004 7370 11 2964 lls 4,1 shift char to straddle aq, i.e. 00xx|yyyyy 005074 aa 000015 7720 00 2965 qrl 4+9 put 5 bit index in qu 005075 aa 000003 3750 07 2966 ana 3,dl get 2 bit word index in al 005076 0a 011743 2360 02 2967 ldq single_bit,qu get single bit at right position 005077 aa 0 00000 2561 05 2968 orsq ap|0,al insert in bit table 005100 aa 6 00063 0541 00 2969 aos sp|char_lg1 count down 005101 0a 003624 6000 00 2970 tze log_exit zero means we're done 005102 aa 000011 0610 03 2971 adx1 9,du update offset 005103 aa 000044 1010 03 2972 cmpx1 36,du do we need another word 005104 0a 005072 6040 00 2973 tmi mbt_1 no, finish this one 005105 aa 000000 6210 00 2974 eax1 0 yes, set offset to zero 005106 aa 2 00001 3521 00 2975 eppbp bp|1 update for next word 005107 0a 005072 7100 00 2976 tra mbt_1 and repeat 2977 " 2978 " operators to make bit table for use by search builtin function 2979 " entered with point to string in bp, offset in x7, size in q, and 2980 " stack offset of bit table in au. The bit table constructed by 2981 " these operators are the complement of that constructed by 2982 " the make_bit_temp operator. 2983 " 005110 2984 form_bit_table: 005110 aa 000000 6210 17 2985 eax1 0,7 get offset 005111 0a 005117 7100 00 2986 tra fbt 2987 " 005112 2988 form_bit_table_co: 005112 0a 001264 2210 17 2989 ldx1 co_to_bo,7 convert offset to bits 005113 0a 005117 7100 00 2990 tra fbt 2991 " 005114 2992 form_bit_table_ho: 005114 0a 001270 2210 17 2993 ldx1 ho_to_bo,7 convert offset to bits 005115 0a 005117 7100 00 2994 tra fbt 2995 " 005116 2996 form_bit_table_al: 005116 aa 000000 6210 00 2997 eax1 0 zero offset 2998 " 005117 aa 6 00000 3505 00 2999 fbt: epbpap sp|0 get ptr to base of stack 005120 aa 000000 3100 01 3000 eawpap 0,au get ptr to bit table 005121 aa 6 00063 7561 00 3001 stq sp|char_lg1 save - length of string 005122 0a 001646 2370 00 3002 ldaq mask_bit 005123 aa 0 00000 7571 00 3003 staq ap|0 init table to all 1s 005124 aa 0 00002 7571 00 3004 staq ap|2 005125 aa 6 00063 3361 00 3005 lcq sp|char_lg1 005126 0a 003624 6000 00 3006 tze log_exit return of zero length string 005127 aa 6 00063 7561 00 3007 stq sp|char_lg1 005130 aa 2 00000 2361 00 3008 fbt_1: ldq bp|0 get current word of string 005131 aa 000004 7370 11 3009 lls 4,1 shift char to straddle aq, i.e. 00xx|yyyyy 005132 aa 000015 7720 00 3010 qrl 4+9 put 5 bit index in qu 005133 aa 000003 3750 07 3011 ana 3,dl get 2 bit word index in al 005134 0a 011743 2360 02 3012 ldq single_bit,qu get single 1 bit at right position 005135 0a 001536 6760 00 3013 erq ones convert to single 0 in right position 005136 aa 0 00000 3561 05 3014 ansq ap|0,al erase bit in bit table 005137 aa 6 00063 0541 00 3015 aos sp|char_lg1 cont down 005140 0a 003624 6000 00 3016 tze log_exit zero means done 005141 aa 000011 0610 03 3017 adx1 9,du update offset 005142 aa 000044 1010 03 3018 cmpx1 36,du do we need another word 005143 0a 005130 6040 00 3019 tmi fbt_1 no, ifnish this one 005144 aa 000000 6210 00 3020 eax1 0 yes, set offset to zero 005145 aa 2 00001 3521 00 3021 eppbp bp|1 update for next word 005146 0a 005130 7100 00 3022 tra fbt_1 and repeat 3023 " 3024 " operators to verify|search a string with bit table stored in stack. 3025 " entered with pointer to string in bp, offset in x7, size in q, 3026 " and tack offset of bit table in au. 3027 " 005147 aa 000000 6210 17 3028 verify: eax1 0,7 get offset 005150 0a 005156 7100 00 3029 tra ver_1 3030 " 005151 3031 verify_co: 005151 0a 001264 2210 17 3032 ldx1 co_to_bo,7 convert to bit offset 005152 0a 005156 7100 00 3033 tra ver_1 3034 " 005153 3035 verify_ho: 005153 0a 001270 2210 17 3036 ldx1 ho_to_bo,7 convert to bit offset 005154 0a 005156 7100 00 3037 tra ver_1 3038 " 005155 3039 verify_al: 005155 aa 000000 6210 00 3040 eax1 0 zero offset 005156 aa 6 00000 3505 00 3041 ver_1: epbpap sp|0 get ptr to bit table 005157 aa 000000 3100 01 3042 eawpap 0,au .. 005160 0a 005171 7100 00 3043 tra ver_3 join common section 3044 " 3045 " operators to verify|search a string with constant bit table. 3046 " entered with pointer to string in bp, offset in x7, size in q, 3047 " and text offset of bit table in au. 3048 " 005161 3049 const_verify: 005161 aa 000000 6210 17 3050 eax1 0,7 get offset 005162 0a 005170 7100 00 3051 tra ver_2 3052 " 005163 3053 const_verify_co: 005163 0a 001264 2210 17 3054 ldx1 co_to_bo,7 convert to bit offset 005164 0a 005170 7100 00 3055 tra ver_2 3056 " 005165 3057 const_verify_ho: 005165 0a 001270 2210 17 3058 ldx1 ho_to_bo,7 convert to bit offset 005166 0a 005170 7100 00 3059 tra ver_2 3060 " 005167 3061 const_verify_al: 005167 aa 000000 6210 00 3062 eax1 0 zero offset 005170 aa 6 00046 3501 61 3063 ver_2: eppap sp|tbp,*au get ptr to bit table 3064 " 005171 aa 6 00063 7561 00 3065 ver_3: stq sp|char_lg1 save - length of string 005172 aa 6 00063 3361 00 3066 lcq sp|char_lg1 005173 0a 003624 6000 00 3067 tze log_exit return zero if zero length 005174 aa 6 00075 7561 00 3068 stq sp|lg2 005175 aa 2 00000 2361 00 3069 ver_4: ldq bp|0 get current word of string 005176 aa 000004 7370 11 3070 lls 4,1 shift char to straddle aq, i.e. 00xx|yyyyy 005177 aa 000015 7720 00 3071 qrl 4+9 put 5 bit index yyyyy in qu 005200 aa 000003 3750 07 3072 ana 3,dl get 2 bit word index in al 005201 aa 0 00000 2351 05 3073 lda ap|0,al get word from bit table 005202 aa 000000 7350 02 3074 als 0,qu shift to get bit into sign position 005203 0a 005216 6050 00 3075 tpl ver_fail plus means char from string not in class 005204 aa 6 00075 0541 00 3076 aos sp|lg2 char ok, update for next 005205 0a 005214 6000 00 3077 tze ver_done 005206 aa 000011 0610 03 3078 adx1 9,du update shift amount 005207 aa 000044 1010 03 3079 cmpx1 36,du do we need another word 005210 0a 005175 6040 00 3080 tmi ver_4 no, repeat 005211 aa 000000 6210 00 3081 eax1 0 yes, zero shift 005212 aa 2 00001 3521 00 3082 eppbp bp|1 update word pointer 005213 0a 005175 7100 00 3083 tra ver_4 and repeat 005214 aa 000000 2360 07 3084 ver_done: ldq 0,dl all chars in class, return zero 005215 0a 003624 7100 00 3085 tra log_exit 005216 aa 6 00030 3501 20 3086 ver_fail: eppap sp|stack_frame.operator_ptr,* restore ptr to operator table 005217 aa 6 00075 2361 00 3087 ldq sp|lg2 exit with index of char that failed 005220 aa 6 00063 0761 00 3088 adq sp|char_lg1 005221 aa 000001 0760 07 3089 adq 1,dl 005222 aa 6 00046 7101 70 3090 tra sp|tbp,*0 3091 " 3092 " operators to do search|verify(s1,s2) 3093 " entered with bp -> s1, ab -> s2, length(s1) in q, length(s2) in a 3094 " 005223 3095 search_eis: 005223 aa 000000 6210 00 3096 eax1 0 set to do ttf 005224 aa 6 00063 7561 00 3097 stq sp|char_lg1 save length of s1 005225 aa 000001 2360 07 3098 ldq 1,dl init loop 005226 3099 search_loop: 005226 aa 6 00063 1161 00 3100 cmpq sp|char_lg1 are we done 005227 0a 005237 6054 00 3101 tpnz search_fail yes, return 005230 aa 0 00106 1245 40 3102 scm (ar+rl),(ar+q) 005231 aa 100000 000005 3103 desc9a ab|0,al 005232 aa 277777 600000 3104 desc9a bp|-1(3),0 005233 aa 6 00077 0001 00 3105 arg sp|t4 005234 0a 005243 7160 11 3106 xec ttf_ttn,1 did we hit char 005235 aa 000001 0760 07 3107 adq 1,dl keep looking 005236 0a 005226 7100 00 3108 tra search_loop 005237 3109 search_fail: 005237 aa 000000 2360 07 3110 ldq 0,dl return 0 005240 aa 6 00046 7101 70 3111 tra sp|tbp,*0 005241 3112 search_done: 005241 aa 000000 1160 07 3113 cmpq 0,dl set indicators 005242 aa 6 00046 7101 70 3114 tra sp|tbp,*0 and exit 3115 " 005243 3116 ttf_ttn: 005243 0a 005241 6070 00 3117 ttf search_done 005244 0a 005241 6064 00 3118 ttn search_done 3119 " 005245 3120 verify_eis: 005245 aa 000001 6210 00 3121 eax1 1 005246 0a 005224 7100 00 3122 tra search_eis+1 3123 " 3124 " Reverse versions of above 3125 " 005247 3126 verify_rev_chars: 005247 aa 000001 6210 00 3127 eax1 1 005250 0a 005252 7100 00 3128 tra *+2 005251 3129 search_rev_chars: 005251 aa 000000 6210 00 3130 eax1 0 005252 aa 6 00075 7561 00 3131 stq sp|lg2 for later computation 005253 3132 search_rev_loop: 005253 aa 000001 1360 07 3133 sblq 1,dl 005254 0a 005237 6040 00 3134 tmi search_fail 005255 aa 0 00106 1245 40 3135 scm (ar+rl),(ar+q) 005256 aa 100000 000005 3136 desc9a ab|0,al 005257 aa 200000 000000 3137 desc9a bp|0 005260 aa 6 00077 0001 00 3138 arg sp|t4 005261 0a 005263 7160 11 3139 xec rev_ttf_ttn,1 005262 0a 005253 7100 00 3140 tra search_rev_loop 3141 005263 3142 rev_ttf_ttn: 005263 0a 005265 6070 00 3143 ttf rev_search_done 005264 0a 005265 6064 00 3144 ttn rev_search_done 005265 3145 rev_search_done: 005265 aa 6 00076 7561 00 3146 stq sp|temp 005266 aa 6 00075 2361 00 3147 ldq sp|lg2 005267 aa 6 00076 1361 00 3148 sblq sp|temp 005270 aa 6 00046 7101 70 3149 tra sp|tbp,*0 3150 " 3151 " verify operators for trim bifs entered as above 3152 " 005271 3153 verify_for_ltrim: "returns offset of 1st char not in str2 scanning from left 005271 aa 6 00063 7561 00 3154 stq sp|char_lg1 save length of str1 005272 aa 000000 2360 07 3155 ldq 0,dl init loop (we want offset, rather than pl1 verify index) 005273 3156 vfl_loop: 005273 aa 6 00063 1161 00 3157 cmpq sp|char_lg1 are we done? 005274 0a 005241 6050 00 3158 tpl search_done yes, return 005275 aa 0 00106 1245 40 3159 scm (ar+rl),(ar+q) 005276 aa 100000 000005 3160 desc9a ab|0,al 005277 aa 200000 000001 3161 desc9a bp|0,1 005300 aa 6 00077 0001 00 3162 arg sp|t4 005301 0a 005241 6064 00 3163 ttn search_done are we past chars to be trimmed? 005302 aa 000001 0760 07 3164 adq 1,dl no, keep looking 005303 0a 005273 7100 00 3165 tra vfl_loop 3166 " 005304 3167 verify_for_rtrim: "equivalent to verify_for_ltrim(reverse(... 005304 aa 000000 1160 07 3168 cmpq 0,dl exit if zero 005305 aa 6 00046 6001 70 3169 tze sp|tbp,*0 005306 aa 6 00063 7561 00 3170 stq sp|char_lg1 save length(str1) 005307 3171 vfr_loop: 005307 aa 0 00106 1245 40 3172 scm (ar+rl),(ar+q) 005310 aa 100000 000005 3173 desc9a ab|0,al 005311 aa 277777 600001 3174 desc9a bp|-1(3),1 005312 aa 6 00077 0001 00 3175 arg sp|t4 005313 0a 005316 6064 00 3176 ttn vfr_done have we gone past chars to be trimmed? 005314 aa 000001 1760 07 3177 sbq 1,dl no, keep looking 005315 0a 005307 6054 00 3178 tpnz vfr_loop 005316 3179 vfr_done: 005316 0a 001536 6760 00 3180 erq ones subtract from length(str1) 005317 aa 000001 0760 07 3181 adq 1,dl .. 005320 aa 6 00063 0761 00 3182 adq sp|char_lg1 .. 005321 aa 6 00046 7101 70 3183 tra sp|tbp,*0 3184 " 3185 " operator to perform translate(s,r) with string s previously set up 3186 " entered with pr2 -> r and length(r) in q 3187 " 005322 3188 translate_2: 005322 aa 6 00076 7561 00 3189 stq sp|temp save length of r 005323 aa 6 00072 2535 00 3190 spri3 sp|temp2 005324 aa 2 00000 3535 00 3191 epp3 bp|0 save ptr to r 005325 aa 6 00063 2361 00 3192 ldq sp|char_lg1 get length(s) 005326 aa 000013 0760 07 3193 adq 3+8,dl allocate temp of proper size 005327 aa 000002 7320 00 3194 qrs 2 005330 0a 003162 7010 00 3195 tsx1 alloc 005331 aa 6 00050 3501 20 3196 eppap sp|temp_pt,* get ptr to s 005332 aa 2 00002 3521 00 3197 eppbp bp|2 skip over temp header 005333 aa 6 00050 2521 00 3198 spribp sp|temp_pt save ptr to temp 005334 aa 6 00063 2361 00 3199 ldq sp|char_lg1 get length(s) 005335 3200 trans2_loop: 005335 aa 000001 1760 07 3201 sbq 1,dl do next char (backwards) 005336 0a 005355 6040 00 3202 tmi trans_done exit if done 005337 aa 0 00100 1015 06 3203 mrl (ar+ql),(ar) isolate next character with leading zeros 005340 aa 000000 000001 3204 desc9a ap|0,1 005341 aa 600074 000004 3205 desc9a sp|num,4 005342 aa 6 00074 2351 00 3206 lda sp|num get character from s 005343 aa 6 00076 1151 00 3207 cmpa sp|temp check against length of r 005344 0a 005351 6050 00 3208 tpl trans2_blank use blank if out of string 005345 aa 0 00106 1005 05 3209 mlr (ar+al),(ar+ql) move replacement to target 005346 aa 300000 000001 3210 desc9a bb|0,1 005347 aa 200000 000001 3211 desc9a bp|0,1 005350 0a 005335 7100 00 3212 tra trans2_loop 005351 3213 trans2_blank: 005351 aa 040106 1004 00 3214 mlr (0),(ar+ql),fill(blank) move in fill(blank) 005352 aa 000000 000000 3215 zero 005353 aa 200000 000001 3216 desc9a bp|0,1 005354 0a 005335 7100 00 3217 tra trans2_loop 005355 3218 trans_done: 005355 aa 6 00072 3535 20 3219 epp3 sp|temp2,* 005356 aa 6 00030 3501 20 3220 eppap sp|stack_frame.operator_ptr,* 005357 aa 6 00046 7101 70 3221 tra sp|tbp,*0 3222 " 3223 " operator to perform translate(s,r,p) with string s previously set up 3224 " entered with pr1 -> p, pr2 -> r, length(p) in a, and length(r) in q 3225 " 005360 3226 translate_3: 005360 aa 6 00076 7571 00 3227 staq sp|temp save lengths 005361 aa 6 00072 2535 00 3228 spri3 sp|temp2 005362 aa 2 00000 3535 00 3229 epp3 bp|0 save ptr to r 005363 aa 6 00063 2361 00 3230 ldq sp|char_lg1 get length(s) 005364 aa 000013 0760 07 3231 adq 3+8,dl allocate temp of proper size 005365 aa 000002 7320 00 3232 qrs 2 005366 0a 003162 7010 00 3233 tsx1 alloc 005367 aa 6 00050 3501 20 3234 eppap sp|temp_pt,* get ptr to s 005370 aa 2 00002 3521 00 3235 eppbp bp|2 skip over temp header 005371 aa 6 00050 2521 00 3236 spribp sp|temp_pt save ptr to temp 005372 aa 6 00063 2361 00 3237 ldq sp|char_lg1 get length(s) 005373 3238 trans3_loop: 005373 aa 000001 1760 07 3239 sbq 1,dl do next char (backwards) 005374 0a 005355 6040 00 3240 tmi trans_done exit if done 005375 aa 6 00076 2351 00 3241 lda sp|temp get length(p) 005376 aa 0 00106 1245 40 3242 scm (ar+rl),(ar+ql) is this char of s in p? 005377 aa 100000 000005 3243 desc9a ab|0,al 005400 aa 000000 000000 3244 desc9a ap|0,0 005401 aa 6 00074 0001 00 3245 arg sp|num 005402 0a 005416 6064 00 3246 ttn trans3_same tally on means not found, use same char 005403 aa 6 00074 2351 00 3247 lda sp|num get number of chars skipped 005404 aa 6 00077 1151 00 3248 cmpa sp|temp+1 check against length(r) 005405 0a 005412 6050 00 3249 tpl trans3_blank use blank if out of range 005406 aa 0 00106 1005 05 3250 mlr (ar+al),(ar+ql) replace with char from r 005407 aa 300000 000001 3251 desc9a bb|0,1 005410 aa 200000 000001 3252 desc9a bp|0,1 005411 0a 005373 7100 00 3253 tra trans3_loop 005412 3254 trans3_blank: 005412 aa 040106 1004 00 3255 mlr (0),(ar+ql),fill(blank) move in fill(blank) 005413 aa 000000 000000 3256 zero 005414 aa 200000 000001 3257 desc9a bp|0,1 005415 0a 005373 7100 00 3258 tra trans3_loop 005416 3259 trans3_same: 005416 aa 0 00106 1005 06 3260 mlr (ar+ql),(ar+ql) move in char from s 005417 aa 000000 000001 3261 desc9a ap|0,1 005420 aa 200000 000001 3262 desc9a bp|0,1 005421 0a 005373 7100 00 3263 tra trans3_loop 3264 " 3265 " operator to implement return(*) for unpacked values 3266 " entered with pointer to return value in bp, number of 3267 " words to return in q, and number of begin blocks to 3268 " skip over in x0 3269 " 005422 3270 return_words: 005422 0a 005506 7020 00 3271 tsx2 return_pop pop stack back 3272 " 3273 " the sp has now been put back to old frame to which we are returning, 3274 " ap points at the destination of the data being returned. The old stack 3275 " frame has been extended to include the stack frame from which we are 3276 " returning. 3277 " 005423 aa 000002 7360 00 3278 rw_0: qls 2 get number of chars to move 005424 0a 005430 6000 00 3279 tze rw_1 skip if zero (prevent IPR) 005425 aa 0 00140 1005 40 3280 mlr (ar+rl),(ar+rl) 005426 aa 200000 000006 3281 desc9a bp|0,ql 005427 aa 000000 000006 3282 desc9a ap|0,ql 005430 aa 6 00077 2361 00 3283 rw_1: ldq sp|count get back number of words 005431 aa 000022 7360 00 3284 qls 18 in upper 005432 aa 000021 0360 03 3285 adlq 17,du make a multiple of 16 (allow for extra words) 005433 aa 777760 3760 03 3286 anq =o777760,du 005434 aa 0 77776 6201 02 3287 eax0 ap|-2,qu get offset of end of stack 005435 aa 6 00023 7401 00 3288 stx0 sp|stack_frame.next_sp+1 and update old frame 005436 aa 7 00025 7401 00 3289 stx0 sb|stack_header.stack_end_ptr+1 and stack end ptr 005437 aa 6 00030 3501 20 3290 eppap sp|stack_frame.operator_ptr,* reset pointer to caller's operators 005440 aa 6 00025 6341 00 3291 ldi sp|stack_frame.return_ptr+1 restore indicators 005441 aa 6 00024 6101 00 3292 rtcd sp|stack_frame.return_ptr now return to old procedure 3293 " 3294 " operator to implement return(*) for packed values and bit strings 3295 " entered with pointer to return value in bp, number of 3296 " bits to move in q, and offset in x7, and number of begin 3297 " blocks to skip over in x0 3298 " 005442 3299 return_bits: 005442 aa 000000 6210 17 3300 eax1 0,7 get bit offset 005443 0a 005451 7100 00 3301 tra rba 3302 " 005444 3303 return_bits_co: 005444 0a 001264 2210 17 3304 ldx1 co_to_bo,7 get bit offset 005445 0a 005451 7100 00 3305 tra rba 3306 " 005446 3307 return_bits_ho: 005446 0a 001270 2210 17 3308 ldx1 ho_to_bo,7 get bit offset 005447 0a 005451 7100 00 3309 tra rba 3310 " 005450 3311 return_bits_al: 005450 aa 000000 6210 00 3312 eax1 0 get zero offset 3313 " 005451 aa 000000 0520 03 3314 rba: adwpbp 0,du erase bit offset 005452 aa 2 00000 5035 11 3315 abd bp|0,1 add new bit offset 3316 " 005453 3317 return_bits_eis: 005453 aa 6 00062 7561 00 3318 stq sp|bit_lg1 save number of bits to move 005454 aa 000043 0760 07 3319 adq 35,dl compute number of words 005455 aa 000044 5060 07 3320 div 36,dl 005456 aa 6 00062 2351 00 3321 lda sp|bit_lg1 get number of units moved 005457 0a 005506 7020 00 3322 tsx2 return_pop pop stack back 3323 " 3324 " the sp now points at stack frame to which we are returning, this frame 3325 " has been extended to include the frame we are leaving. ap points at 3326 " destination of return value. 3327 " 005460 aa 0 77777 2361 00 3328 ldq ap|-1 get back bit length 005461 0a 005430 6000 00 3329 tze rw_1 skip if zero (prevent IPR) 005462 aa 0 03140 0605 40 3330 csl (ar+rl),(ar+rl),bool(move) 005463 aa 200000 000006 3331 descb bp|0,ql 005464 aa 000000 000006 3332 descb ap|0,ql 005465 0a 005430 7100 00 3333 tra rw_1 3334 " 3335 " operator to implement return(*) for char strings 3336 " entered with pointer to return value in bp, number of chars in q, 3337 " offset in x7, and number of begin blocks to skip over in x0 3338 " 005466 3339 return_chars: 005466 aa 000000 6210 17 3340 eax1 0,7 get bit offset 005467 0a 005475 7100 00 3341 tra rca 3342 " 005470 3343 return_chars_co: 005470 0a 001264 2210 17 3344 ldx1 co_to_bo,7 get bit offset 005471 0a 005475 7100 00 3345 tra rca 3346 " 005472 3347 return_chars_ho: 005472 0a 001270 2210 17 3348 ldx1 ho_to_bo,7 get bit offset 005473 0a 005475 7100 00 3349 tra rca 3350 " 005474 3351 return_chars_aligned: 005474 aa 000000 6210 00 3352 eax1 0 get zero offset 3353 " 005475 aa 000000 0520 03 3354 rca: adwpbp 0,du erase bit offset 005476 aa 2 00000 5035 11 3355 abd bp|0,1 add neew bit offset 3356 " 005477 3357 return_chars_eis: 005477 aa 6 00063 7561 00 3358 stq sp|char_lg1 save number of chars to move 005500 aa 000003 0760 07 3359 adq 3,dl compute number of words 005501 aa 000002 7320 00 3360 qrs 2 005502 aa 6 00063 2351 00 3361 lda sp|char_lg1 get number of units moved 005503 0a 005506 7020 00 3362 tsx2 return_pop 005504 aa 0 77777 2361 00 3363 ldq ap|-1 get back number of chars 005505 0a 005424 7100 00 3364 tra rw_0+1 and go move them 3365 " 3366 " subroutine to reset stack frame for return(*) operators 3367 " entered with number of words in q 3368 " and number of units (bits|chars) in a 3369 " 005506 3370 return_pop: 005506 aa 6 00000 3701 00 3371 epplp sp|0 get ptr to frame of proc from which 005507 aa 000000 1000 03 3372 cmpx0 0,du we are returning 005510 aa 000004 6000 04 3373 tze 4,ic 005511 aa 4 00020 3701 20 3374 epplp lp|stack_frame.prev_sp,* 005512 aa 000001 1600 03 3375 sbx0 1,du 005513 aa 777776 6054 04 3376 tpnz -2,ic 3377 " 005514 aa 4 00032 3515 20 3378 eppab lp|stack_frame.arg_ptr,* get ptr to our arglist 005515 aa 1 00000 2231 00 3379 ldx3 ab|0 get head, 2*n_args 3380 " 005516 aa 1 00000 3515 33 3381 eppab ab|0,3* get ptr to return arg 3382 " 005517 aa 4 00020 3701 20 3383 epplp lp|stack_frame.prev_sp,* get ptr to frame to which we are going 3384 " 005520 aa 6 00077 7561 00 3385 stq sp|count save # words in old frame 005521 aa 4 00022 3501 20 3386 eppap lp|stack_frame.next_sp,* get ptr to destination 005522 aa 0 00002 3501 00 3387 eppap ap|2 skip 2 words to allow for varying return value 005523 aa 1 00000 2501 00 3388 spriap ab|0 set return ptr for last arg 005524 aa 0 77777 7551 00 3389 sta ap|-1 set varying length 005525 aa 6 00000 2131 00 3390 epaq sp|0 get seg no of current stack 005526 aa 6 00076 7551 00 3391 sta sp|temp save it 005527 aa 4 00000 2131 00 3392 epaq lp|0 get seg no of stack we are returning to 005530 aa 6 00076 1151 00 3393 cmpa sp|temp same stack? 005531 0a 005543 6000 00 3394 tze same_stack yes 005532 aa 6 00077 2351 00 3395 lda sp|count get # of words to move 005533 aa 000022 7350 00 3396 als 18 in upper 005534 aa 000021 0350 03 3397 adla 17,du make 0 mod 16 (allow for 2 extra words) 005535 aa 777760 3750 03 3398 ana =o777760,du .. 005536 aa 0 77776 6201 01 3399 eax0 ap|-2,au get offset of new stack frame end 005537 aa 4 00023 7401 00 3400 stx0 lp|stack_frame.next_sp+1 update next sp of the frame 005540 aa 4 00000 3711 00 3401 epbplb lp|0 get pointer to base of stack we are returning to 005541 aa 5 00025 7401 00 3402 stx0 lb|stack_header.stack_end_ptr+1 update stack end pointer 005542 0a 005545 7100 00 3403 tra different_stack join rest of code 005543 3404 same_stack: 005543 aa 6 00022 2371 00 3405 ldaq sp|stack_frame.next_sp get next ptr of frame we're leaving 005544 aa 4 00022 7571 00 3406 staq lp|stack_frame.next_sp set next of old to include all of this frame 005545 3407 different_stack: 005545 aa 6 00077 2361 00 3408 ldq sp|count get back # of words to move 005546 aa 4 00000 3721 00 3409 eppsp lp|0 pop stack 005547 aa 6 00000 3731 00 3410 epbpsb sp|0 set up stack base in case we switched stacks 005550 aa 6 00077 7561 00 3411 stq sp|count save of words in new stack frame 005551 aa 000000 7100 12 3412 tra 0,2 return with ap -> dest, # units in q 3413 3414 " 3415 " operator to leave a begin block. 3416 " 005552 3417 leave_begin_block: 005552 aa 000000 0110 03 3418 odd 005553 aa 6 00000 3731 00 3419 epbpsb sp|0 get ptr to base of stack 3420 even "see note at label 'alm_return' 005554 aa 7 00024 6521 00 3421 sprisp sb|stack_header.stack_end_ptr reset stack end ptr 005555 aa 6 00020 3721 20 3422 eppsp sp|stack_frame.prev_sp,* pop the stack 005556 aa 6 00046 7101 70 3423 tra sp|tbp,*0 return to pl1 program 3424 " 3425 " operator to free fortran storage and then do a procedure return 3426 " 005557 3427 fort_return_mac: 005557 aa 6 00056 6521 00 3428 spri6 sp|double_temp save sp as owner to fortran_storage_manager_ 005560 aa 6 00056 3521 00 3429 epp2 sp|double_temp 005561 aa 6 00072 2521 00 3430 spri2 sp|arg_list+2 argument 1 - stack pointer 005562 aa 000002 2350 03 3431 lda 2,du nargs = 1, quick call (no enviptr) 005563 aa 000000 2360 07 3432 ldq 0,dl no descriptors 005564 aa 6 00070 7571 00 3433 staq sp|arg_list 005565 aa 6 00070 3501 00 3434 epp0 sp|arg_list get argument list header 005566 0a 005600 3520 00 3435 epp2 return_mac return to return 005567 aa 6 00024 2521 00 3436 spri2 sp|stack_frame.return_ptr save return point 005570 0a 011323 7010 00 3437 tsx1 get_our_lp 005571 4a 4 00260 7131 20 3438 callsp fortran_storage_manager_$free 3439 " 3440 " operator to do a procedure return from inside a begin block. 3441 " entered with number of nested begin blocks in ql. 3442 " 005572 3443 begin_return_mac: 005572 0a 005600 6000 00 3444 tze return_mac skip if begin block is quick 005573 aa 6 00000 3731 00 3445 epbpsb sp|0 get ptr to base of stack 005574 3446 inhibit on 005574 aa 7 00024 6523 00 3447 sprisp sb|stack_header.stack_end_ptr keep updating end ptr 005575 aa 6 00020 3723 20 3448 eppsp sp|stack_frame.prev_sp,* pop stack 005576 3449 inhibit off 005576 aa 000001 1760 07 3450 sbq 1,dl count down number of blocks 005577 aa 777775 6010 04 3451 tnz -3,ic repeat until all done 3452 " 3453 " operator to do a procedure return 3454 " 005600 3455 return_mac: 005600 aa 6 00000 3731 00 3456 epbpsb sp|0 get ptr to base of stack 005601 3457 inhibit on 005601 aa 7 00024 6523 00 3458 sprisp sb|stack_header.stack_end_ptr reset stack end pointer 005602 aa 6 00020 3723 20 3459 eppsp sp|stack_frame.prev_sp,* pop stack 005603 3460 inhibit off 005603 aa 6 00000 3731 00 3461 epbpsb sp|0 set sb up in case we just switched stacks 005604 aa 6 00030 3501 20 3462 eppap sp|stack_frame.operator_ptr,* set up operator pointer 005605 aa 6 00025 6341 00 3463 ldi sp|stack_frame.return_ptr+1 restore indicators for caller 005606 aa 6 00024 6101 00 3464 rtcd sp|stack_frame.return_ptr continue execution after call 3465 " 3466 " operators to call an entry variable 3467 " entered with pointer to entry in bp and number 3468 " of arguments in position in a, offset of arg list is in x1 3469 " 005607 3470 call_ent_var_desc: 005607 aa 000000 6360 01 3471 eaq 0,au there are descriptors 3472 " 005610 3473 call_ent_var: 005610 aa 6 00025 7541 00 3474 sti sp|stack_frame.return_ptr+1 save indicators 005611 aa 000010 2750 07 3475 ora 8,dl insert pl1 code 005612 aa 6 00000 3731 00 3476 epbpsb sp|0 get ptr to base of stack 005613 aa 7 00000 7571 11 3477 staq sb|0,1 save at head of list 005614 aa 6 00025 7401 00 3478 stx0 sp|stack_frame.return_ptr+1 set offset of return point 005615 aa 2 00002 3701 20 3479 epplp bp|2,* get display pointer 005616 aa 2 00000 3521 20 3480 eppbp bp|0,* and ptr to entry 005617 3481 save_display: 005617 aa 7 00000 3501 11 3482 eppap sb|0,1 get ptr to arg list 005620 aa 0 00002 6501 01 3483 sprilp ap|2,au store display ptr at end 005621 aa 6 00044 3701 20 3484 epplp sp|linkage_ptr,* restore ptr to linkage segment 005622 3485 var_call: 005622 aa 2 00000 7131 00 3486 callsp bp|0 and transfer to entry 3487 " 3488 " operator to call an external procedure (same or diff seg). 3489 " entered with pointer to entry in bp and number of args 3490 " in position in a, offset of arg list is in x1 3491 " 005623 3492 call_ext_in_desc: 005623 3493 call_ext_out_desc: 005623 aa 000000 6360 01 3494 eaq 0,au there are descriptors 3495 " 005624 3496 call_ext_in: 005624 3497 call_ext_out: 005624 aa 6 00025 7541 00 3498 sti sp|stack_frame.return_ptr+1 save indicators 005625 aa 6 00000 3731 00 3499 epbpsb sp|0 get ptr to base of stack 005626 aa 000004 2750 07 3500 ora 4,dl insert pl1 code (do this for now) 005627 aa 7 00000 7571 11 3501 staq sb|0,1 save at head of list 005630 aa 6 00025 7401 00 3502 stx0 sp|stack_frame.return_ptr+1 set offset of return point 005631 aa 7 00000 3501 11 3503 eppap sb|0,1 get pointer to arg list 005632 aa 6 00044 3701 20 3504 epplp sp|linkage_ptr,* reload ptr to linkage segment 3505 " 3506 " This label is 'segdef'ed but is never transfered to directly. The segdef is 3507 " merely to allow default_error_handler to see if a fault occured as a result 3508 " of this particular instruction so that it can print a more informative 3509 " error message. 3510 " 005633 3511 forward_call: 005633 aa 2 00000 7131 00 3512 callsp bp|0 transfer to entry 3513 " 3514 " operator to call an internal procedure defined in the 3515 " same block as the call. entered with pointer to entry in 3516 " bp and number of args in position in a. 3517 " 005634 3518 call_int_this_desc: 005634 aa 000000 6360 01 3519 eaq 0,au there are descriptors 3520 " 005635 3521 call_int_this: 005635 aa 6 00025 7541 00 3522 sti sp|stack_frame.return_ptr+1 save indicators 005636 aa 000010 2750 07 3523 ora 8,dl insert pl1 code 005637 aa 6 00000 3731 00 3524 epbpsb sp|0 get ptr to base of stack 005640 aa 7 00000 7571 11 3525 staq sb|0,1 save at head of list 005641 aa 6 00025 7401 00 3526 stx0 sp|stack_frame.return_ptr+1 save offset of return point 005642 aa 7 00000 3501 11 3527 eppap sb|0,1 get pointer to arg list 005643 aa 0 00002 6521 01 3528 sprisp ap|2,au save display pointer 005644 aa 2 00000 7101 00 3529 tra bp|0 transfer to entry 3530 " 3531 " operator to call an interal procedure defined K blocks 3532 " above the call. entered with pointer to entry in bp, 3533 " K in x7, and number of args in position in aq. 3534 " 005645 3535 call_int_other_desc: 005645 aa 000000 6360 01 3536 eaq 0,au there are descriptors 3537 " 005646 3538 call_int_other: 005646 aa 6 00025 7541 00 3539 sti sp|stack_frame.return_ptr+1 save indicators 005647 aa 000010 2750 07 3540 ora 8,dl insert pl1 code 005650 aa 6 00000 3731 00 3541 epbpsb sp|0 get ptr to base of stack 005651 aa 7 00000 7571 11 3542 staq sb|0,1 save at head of list 005652 aa 6 00025 7401 00 3543 stx0 sp|stack_frame.return_ptr+1 save return point 005653 aa 6 00040 3701 20 3544 epplp sp|display_ptr,* walk back K levels 005654 aa 777777 6270 17 3545 eax7 -1,7 .. 005655 0a 005617 6000 00 3546 tze save_display then go save display 005656 aa 4 00040 3701 20 3547 epplp lp|display_ptr,* take another step 005657 aa 777775 7100 04 3548 tra -3,ic and check again 3549 " 3550 " operator to move the label variable pointed at by sp|temp_pt 3551 " into the label variable pointed at by bp 3552 " 005660 3553 move_label_var: 005660 aa 6 00050 2371 20 3554 ldaq sp|temp_pt,* move first two words 005661 aa 2 00000 7571 00 3555 staq bp|0 .. 005662 aa 000002 6210 00 3556 eax1 2 and second two words 005663 aa 6 00050 2371 71 3557 ldaq sp|temp_pt,*1 .. 005664 aa 2 00002 7571 00 3558 staq bp|2 .. 005665 aa 6 00046 7101 70 3559 tra sp|tbp,*0 return to pl1 program 3560 " 3561 " operator to make a label variable in the stack. entered 3562 " with pointer to label in bp, number of static blocks to walk 3563 " back in q. sp|temp_pt is set to point to the label variable 3564 " 005666 3565 make_label_var: 005666 aa 6 00070 2521 00 3566 spribp sp|label_var save pointer to label 005667 0a 005674 7010 00 3567 tsx1 display_chase get pointer to stack frame 005670 aa 6 00072 2521 00 3568 spribp sp|label_var+2 and save in label var 005671 aa 6 00070 3521 00 3569 eppbp sp|label_var get pointer to label var 005672 aa 6 00050 2521 00 3570 spribp sp|temp_pt set temp_pt 005673 aa 6 00046 7101 70 3571 tra sp|tbp,*0 return to pl1 program 3572 " 3573 " subroutine to walk N levels back along the display chain. 3574 " entered with N in q register, exit with pointer in bp. 3575 " NB: indicators must be set from q register at time of entry. 3576 " 005674 3577 display_chase: 005674 aa 6 00000 3521 00 3578 eppbp sp|0 get pointer to current frame 005675 aa 000000 6000 11 3579 tze 0,1 return if N = 0 005676 aa 2 00040 3521 20 3580 eppbp bp|display_ptr,* take a step back the chain 005677 aa 000001 1760 07 3581 sbq 1,dl and decrease count 005700 aa 777775 7100 04 3582 tra -3,ic and check again 3583 " 3584 " operator to form mod(fx1,fx1) 3585 " entered with first arg in q, bp pointing at second 3586 " 005701 aa 2 00000 2341 00 3587 mdfx1: szn bp|0 if divisor is zero, return with dividend 005702 0a 005241 6000 00 3588 tze search_done go set indicators from q and exit 005703 aa 6 00076 7561 00 3589 stq sp|temp save first arg 005704 aa 2 00000 5061 00 3590 div bp|0 get remainder 005705 aa 000003 6010 04 3591 tnz 3,ic skip if quotient non-zero 005706 aa 6 00076 2361 00 3592 ldq sp|temp zero quotient, set q to sign of 005707 aa 2 00000 6761 00 3593 erq bp|0 quotient 005710 0a 005714 6050 00 3594 tpl mdfx1a skip if quotient sign + 005711 aa 000000 1150 07 3595 cmpa 0,dl don't correct if remainder 0 005712 0a 005714 6000 00 3596 tze mdfx1a 005713 aa 2 00000 0751 00 3597 ada bp|0 negative quotient, correct remainder 005714 aa 000044 7330 00 3598 mdfx1a: lrs 36 shift remainder to q 005715 aa 6 00046 7101 70 3599 tra sp|tbp,*0 and return 3600 " 3601 " operator to form mod(fx1,fx2) 3602 " entered with first arg in q, bp pointing at second 3603 " 005716 aa 000044 7370 00 3604 mdfx2: lls 36 convert to double precision 005717 aa 000044 7330 00 3605 lrs 36 and join mdfx4 3606 " 3607 " operator to form mod(fx2,fx2) 3608 " entered with first arg in q, bp pointing at second 3609 " 005720 aa 6 00070 7531 00 3610 mdfx4: sreg sp|save_regs save registers including aq 005721 aa 2 00000 2371 00 3611 ldaq bp|0 return 1st arg if second is zero 005722 0a 007202 6000 00 3612 tze use_first 005723 aa 6 00050 2515 00 3613 spri1 sp|temp_pt save ab 005724 aa 6 00074 3515 00 3614 epp1 sp|save_regs+4 get ptr to first arg 005725 aa 000000 2360 07 3615 ldq 0,dl load scaling amount 005726 0a 006112 7070 00 3616 tsx7 divide2 generate remainder 005727 aa 000000 1010 03 3617 cmpx1 0,du check sign of quotient 005730 0a 005735 6000 00 3618 tze mdfx4a+1 skip if quotient + 005731 aa 6 00056 2371 00 3619 ldaq sp|remainder correct remainder if it is non-zero 005732 aa 000002 6000 04 3620 tze 2,ic 005733 aa 2 00000 0771 00 3621 adaq bp|0 005734 aa 6 00056 7571 00 3622 mdfx4a: staq sp|remainder 005735 aa 6 00070 0731 00 3623 lreg sp|save_regs restore registers 005736 aa 6 00050 3515 20 3624 epp1 sp|temp_pt,* restore ab 005737 aa 6 00056 2371 00 3625 ldaq sp|remainder get result 005740 aa 6 00030 3501 20 3626 eppap sp|stack_frame.operator_ptr,* 005741 aa 6 00046 7101 70 3627 tra sp|tbp,*0 and exit 3628 " 3629 " operator to form mod(fx2,fx1) 3630 " entered with first arg in q, bp pointing at second 3631 " 005742 aa 6 00070 7531 00 3632 mdfx3: sreg sp|save_regs save registers, including aq 005743 aa 2 00000 2351 00 3633 lda bp|0 get divisor 005744 0a 007202 6000 00 3634 tze use_first use first arg as result if divisor zero 005745 aa 6 00050 2515 00 3635 spri1 sp|temp_pt 005746 aa 6 00074 3515 00 3636 epp1 sp|save_regs+4 get ptr to dividend 005747 aa 000000 2360 07 3637 ldq 0,dl get scale amount 005750 0a 006102 7070 00 3638 tsx7 divide1 get remainder 005751 aa 000000 1010 03 3639 cmpx1 0,du check sign of quotient 005752 0a 005735 6000 00 3640 tze mdfx4a+1 005753 aa 6 00056 2371 00 3641 ldaq sp|remainder correct remainder when quotient neg 005754 aa 000002 6000 04 3642 tze 2,ic and remainder non-zero 005755 aa 2 00000 0331 00 3643 adl bp|0 005756 0a 005734 7100 00 3644 tra mdfx4a 3645 " 3646 " operator to form mod(fx1,fx2) with non-zero scales 3647 " entered with dividend in q, pr2 -> divisor, and 3648 " scales following tsx0 3649 " 005757 3650 scaled_mod_fx2: 005757 aa 000044 7370 00 3651 lls 36 convert to double precision 005760 aa 000044 7330 00 3652 lrs 36 and join scaled_mod_fx4 3653 " 3654 " operator to form mod(fx2,fx2) with non-zero scales 3655 " entered with dividend in aq, pr2 -> divisor, and 3656 " scale(dividend) & scale(divisor) following tsx0 3657 " 005761 3658 scaled_mod_fx4: 005761 aa 000002 0600 03 3659 adx0 2,du skip over the two scale words 005762 aa 6 00070 7531 00 3660 sreg sp|save_regs save all registers 005763 aa 2 00000 2371 00 3661 ldaq bp|0 get divisor 005764 0a 007202 6000 00 3662 tze use_first zero means use dividend as value 005765 aa 6 00051 5421 00 3663 sprp2 sp|temp_pt+1 3664 " 005766 3665 sc_mod_common: 005766 aa 6 00050 5411 00 3666 sprp1 sp|temp_pt 005767 aa 6 00046 3501 70 3667 eppap sp|tbp,*0 get ptr to just after scale words 005770 aa 0 77777 2361 00 3668 ldq ap|-1 get scale of divisor 005771 aa 0 77776 1761 00 3669 sbq ap|-2 - scale of dividend 005772 0a 006010 6040 00 3670 tmi scmd3 skip if scale(divisor) < scale(dividend) 3671 " 3672 " scale of dividend <= scale of divisor. let the divide routine 3673 " shift the dividend left by the amount in the q register. 3674 " 005773 aa 6 00074 3515 00 3675 scmd1: epp1 sp|save_regs+4 get ptr to dividend 005774 0a 006112 7070 00 3676 tsx7 divide2 divide 005775 aa 000000 1010 03 3677 cmpx1 0,du check quotient sign 005776 0a 006003 6000 00 3678 tze scmd2 skip if positive 005777 aa 6 00056 2371 00 3679 ldaq sp|remainder dont't correct remainder if it is zero 006000 0a 006003 6000 00 3680 tze scmd2 006001 aa 2 00000 0771 00 3681 adaq bp|0 add divisor to correct remainder 006002 aa 6 00056 7571 00 3682 staq sp|remainder 006003 aa 6 00050 7611 00 3683 scmd2: lprp1 sp|temp_pt restore pointers 006004 aa 6 00051 7621 00 3684 lprp2 sp|temp_pt+1 006005 aa 6 00070 0731 00 3685 lreg sp|save_regs and registers 006006 aa 6 00056 2371 00 3686 ldaq sp|remainder get remainder from the division 006007 0a 003624 7100 00 3687 tra log_exit and exit 3688 " 3689 " scale of divisor < scale of dividend, shift divisor 3690 " left by negative of number of places in q register. 3691 " if the carry indicator is on at the end of the shift, the 3692 " division would yield a zero quotient, so the remainder 3693 " is the dividend with appropriate sign consideration. 3694 " 006010 aa 6 00077 7561 00 3695 scmd3: stq sp|count get positive shift amount 006011 aa 6 00077 3361 00 3696 lcq sp|count 006012 aa 000000 6210 06 3697 eax1 0,ql 006013 aa 2 00000 2371 00 3698 ldaq bp|0 get back the divisor 006014 aa 000000 7370 11 3699 lls 0,1 shift it 006015 0a 006022 6030 00 3700 trc scmd4 skip if divisor too big 006016 aa 6 00062 7571 00 3701 staq sp|bit_lg1 save value temporarily 006017 aa 6 00062 3521 00 3702 epp2 sp|bit_lg1 get ptr to shifted divisor 006020 aa 000000 2360 07 3703 ldq 0,dl don't shift dividend 006021 0a 005773 7100 00 3704 tra scmd1 go do the division 3705 " 3706 " the division (with both args treated as integers since the scales 3707 " are now lined up), would give a zero quotient. if the signs of 3708 " the two arguments are the same, the value of the function is the 3709 " value of the dividend--otherwise, we have to signal fixedoverflow 3710 " 006022 aa 6 00074 6751 00 3711 scmd4: era sp|save_regs+4 check signs of two arguments 006023 aa 400000 3750 03 3712 ana =o400000,du 006024 0a 007202 6000 00 3713 tze use_first zero means signs the same 006025 0a 006367 7070 00 3714 tsx7 signal_overflow 006026 0a 007202 7100 00 3715 tra use_first 3716 " 3717 " operator to form mod(fx1,fx1) with non-zero scales 3718 " entered with dividend in aq, pr2 -> divisor, and scales 3719 " following tsx0 3720 " 006027 3721 scaled_mod_fx1: 006027 aa 000044 7370 00 3722 lls 36 convert to double precision 006030 aa 000044 7330 00 3723 lrs 36 and join scaled_mod_fx3 3724 " 3725 " operator to form mod(fx2,fx1) with non-zero scales 3726 " entered with dividend in q, pr2 -> divisior, and scales 3727 " following tsx0 3728 " 006031 3729 scaled_mod_fx3: 006031 aa 000002 0600 03 3730 adx0 2,du skip over the two scale words 006032 aa 6 00070 7531 00 3731 sreg sp|save_regs save all registers 006033 aa 2 00000 2351 00 3732 lda bp|0 get divisor 006034 0a 007202 6000 00 3733 tze use_first zero means use dividend as value 006035 aa 6 00051 5421 00 3734 sprp2 sp|temp_pt+1 006036 aa 000044 7330 00 3735 lrs 36 form double precision divisor 006037 aa 6 00062 7571 00 3736 staq sp|bit_lg1 save new divisior 006040 aa 6 00062 3521 00 3737 epp2 sp|bit_lg1 and get ptr to it 006041 0a 005766 7100 00 3738 tra sc_mod_common 3739 " 3740 " operator to divide single precision by single precision 3741 " entered with dividend in q and pr2 -> divisor, and amount 3742 " to scale result following tsx0 3743 " 006042 3744 divide_fx1: 006042 aa 000044 7370 00 3745 lls 36 convert to double precision 006043 aa 000044 7330 00 3746 lrs 36 and join divide_fx3 3747 " 3748 " 3749 " operator to divide double precision by single precision 3750 " entered with dividend in aq, pr2 -> divisor, and amount 3751 " to scale result (+ left, - right) following tsx0 3752 " 006044 3753 divide_fx3: 006044 aa 6 00070 7531 00 3754 sreg sp|save_regs 006045 aa 6 00050 2515 00 3755 spri1 sp|temp_pt save ab 006046 aa 6 00074 3515 00 3756 epp1 sp|save_regs+4 get ptr to dividend 006047 aa 2 00000 2351 00 3757 lda bp|0 load divisor 006050 aa 6 00046 2361 70 3758 ldq sp|tbp,*0 load scale amount 006051 0a 006102 7070 00 3759 tsx7 divide1 do the division 006052 3760 dv_done: 006052 aa 6 00074 7571 00 3761 staq sp|save_regs+4 save quotient 006053 aa 6 00070 0731 00 3762 lreg sp|save_regs restore registers 006054 aa 000001 0600 03 3763 adx0 1,du update return pt 006055 aa 6 00050 3515 20 3764 epp1 sp|temp_pt,* restore ab 006056 aa 6 00030 3501 20 3765 eppap sp|stack_frame.operator_ptr,* 006057 0a 001426 1170 00 3766 cmpaq bit_mask set indicators 006060 aa 6 00046 7101 70 3767 tra sp|tbp,*0 and exit 3768 " 3769 " operator to divide single precision by double precision 3770 " entered with dividend in q, pr2 -> divisor, and 3771 " amount to scale result following tsx0 3772 " 006061 3773 divide_fx2: 006061 aa 000044 7370 00 3774 lls 36 convert to double precision 006062 aa 000044 7330 00 3775 lrs 36 and join divide_fx3 3776 " 3777 " 3778 " operator to divide double precision by double precision 3779 " entered with dividend in aq, pr2 -> divisor, and amount 3780 " to scale result following tsx0 3781 " 006063 3782 divide_fx4: 006063 aa 6 00070 7531 00 3783 sreg sp|save_regs 006064 aa 6 00050 2515 00 3784 spri1 sp|temp_pt save ab 006065 aa 6 00074 3515 00 3785 epp1 sp|save_regs+4 get ptr to dividend 006066 aa 6 00046 2361 70 3786 ldq sp|tbp,*0 006067 0a 006112 7070 00 3787 tsx7 divide2 006070 0a 006052 7100 00 3788 tra dv_done 3789 " 3790 " operator to divide double precision by double precision 3791 " same calling sequence as divide_fx4 except scale is 3792 " in index 1. Called from fixed_ops_. 3793 " 006071 3794 div_4_cplx_ops: 006071 aa 6 00070 7531 00 3795 sreg sp|save_regs save regs 006072 aa 6 00074 3515 00 3796 epp1 sp|save_regs+4 get ptr to dividend 006073 aa 000000 6360 11 3797 eaq 0,1 get scale into q 006074 aa 000022 7320 00 3798 qrs 18 "" 006075 0a 006112 7070 00 3799 tsx7 divide2 perform division 006076 aa 6 00074 7571 00 3800 staq sp|save_regs+4 save quotient 006077 aa 6 00070 0731 00 3801 lreg sp|save_regs restore regs 006100 aa 6 00030 3501 20 3802 eppap sp|stack_frame.operator_ptr,* 006101 aa 6 00046 7101 70 3803 tra sp|tbp,*0 3804 " 3805 " internal procedure to divide double precision integer by 3806 " single precision integer. entered with divisor in a, 3807 " pr1 -> dividend, and scale in q 3808 " returns quotient in aq and remainder in sp|remainder 3809 " 006102 0a 006431 7010 00 3810 divide1: tsx1 divide_extension extend stack 006103 aa 0 00004 7561 00 3811 stq ap|shift save scaling amount 006104 aa 000000 6210 00 3812 eax1 0 save sign of divisor 006105 aa 000044 7330 00 3813 lrs 36 006106 aa 000003 6050 04 3814 tpl 3,ic 006107 aa 000000 5330 00 3815 negl 0 006110 aa 000001 6610 03 3816 erx1 1,du 006111 0a 006406 7100 00 3817 tra div_single 3818 " 3819 " internal procedure to divide two double precision integers 3820 " entered with pr1 -> dividend, pr2 -> divisor, scale amount in q 3821 " returns quotient in aq and remainder in sp|remainder 3822 " 006112 0a 006431 7010 00 3823 divide2: tsx1 divide_extension extend stack 006113 aa 0 00004 7561 00 3824 stq ap|shift save scaling amount 006114 aa 000000 6210 00 3825 eax1 0 assume positive result 006115 aa 2 00000 2371 00 3826 ldaq bp|0 get divisor 006116 aa 000003 6050 04 3827 tpl 3,ic 006117 aa 000000 5330 00 3828 negl 0 006120 aa 000001 6610 03 3829 erx1 1,du 006121 0a 001760 1170 00 3830 cmpaq max_single_value 006122 0a 006406 6044 00 3831 tmoz div_single 006123 aa 200000 3150 03 3832 cana =o200000,du is high bit of divisor on 006124 0a 006144 6010 00 3833 tnz divisor_3 yes, need 3 words 3834 " 3835 " divisor only needs 2 words 3836 " 006125 aa 6 00055 7541 00 3837 sti sp|temp_indicators save indicators 006126 aa 000000 6340 07 3838 ldi 0,dl clear HFP mode if it's set 006127 aa 000000 4110 03 3839 lde =0,du count leading zeros 006130 aa 400000 4750 03 3840 fad =0.0,du 006131 aa 6 00055 6341 00 3841 ldi sp|temp_indicators restore indicators 006132 aa 000001 7720 00 3842 qrl 1 split number into two parts 006133 aa 0 00017 7561 00 3843 stq ap|divisor+1 006134 aa 0 00020 7551 00 3844 sta ap|divisor+2 006135 aa 0 00006 4561 00 3845 ste ap|div_temp get number of leading zeros 006136 aa 0 00006 2351 00 3846 lda ap|div_temp 006137 aa 000034 7310 00 3847 ars 28 006140 aa 000000 5310 00 3848 neg 0 make it positive 006141 aa 000001 1750 07 3849 sba 1,dl 006142 aa 000002 6240 00 3850 eax4 2 set length of number 006143 0a 006154 7100 00 3851 tra prepare_dividend 3852 " 3853 " divisor requires 3 words 3854 " 006144 3855 divisor_3: 006144 aa 0 00021 7551 00 3856 sta ap|divisor+3 store high order word 006145 aa 000043 7370 00 3857 lls 34+1 shift other parts 34 bits 006146 aa 000001 7720 00 3858 qrl 1 and save 006147 aa 0 00017 7561 00 3859 stq ap|divisor+1 006150 0a 001761 3750 00 3860 ana max_single_value+1 006151 aa 0 00020 7551 00 3861 sta ap|divisor+2 006152 aa 000042 2350 07 3862 lda 34,dl shift is 34 006153 aa 000003 6240 00 3863 eax4 3 and length is 3 3864 " 006154 3865 prepare_dividend: 006154 aa 0 00005 7551 00 3866 sta ap|norm_shift save scaling count 006155 aa 0 00004 0551 00 3867 asa ap|shift update shift by number of leading zeros 006156 aa 0 00016 7441 00 3868 stx4 ap|divisor save length of divisor 006157 aa 1 00000 2371 00 3869 ldaq ab|0 006160 aa 000003 6050 04 3870 tpl 3,ic 006161 aa 000000 5330 00 3871 negl 0 006162 aa 000001 6610 03 3872 erx1 1,du 006163 0a 006443 7030 00 3873 tsx3 shift_dividend 006164 aa 000001 0650 03 3874 adx5 1,du 006165 aa 0 00010 4501 15 3875 stz ap|dividend,5 add zero chunk at front 006166 aa 0 00010 7451 00 3876 stx5 ap|dividend save number of chunks 006167 aa 000000 4310 07 3877 fld 0,dl 006170 aa 0 00022 7571 00 3878 staq ap|quotient 006171 aa 0 00024 7571 00 3879 staq ap|quotient+2 006172 aa 0 00026 7571 00 3880 staq ap|quotient+4 006173 aa 000000 6260 15 3881 eax6 0,5 quotient length = 006174 aa 0 00016 1661 00 3882 sbx6 ap|divisor dividend_length - divisor_length 006175 0a 006327 6000 00 3883 tze done skip if zero quotient length 3884 " 006176 3885 get_qhat: 006176 aa 0 00010 2251 00 3886 ldx5 ap|dividend calculate quotient guess 006177 aa 0 00010 2351 15 3887 lda ap|dividend,5 006200 aa 0 00016 1151 14 3888 cmpa ap|divisor,4 006201 0a 006215 6040 00 3889 tmi div_less 006202 0a 001761 2360 00 3890 ldq max_single_value+1 =o377777777777 006203 aa 0 00007 2351 15 3891 lda ap|dividend-1,5 006204 0a 006210 7100 00 3892 tra l3h 006205 3893 dec_qhat: 006205 aa 0 00000 2361 00 3894 ldq ap|qhat 006206 aa 000001 1760 07 3895 sbq 1,dl 006207 aa 0 00001 2351 00 3896 lda ap|rhat 006210 aa 0 00000 7561 00 3897 l3h: stq ap|qhat 006211 aa 0 00016 0351 14 3898 adla ap|divisor,4 006212 0a 006234 6040 00 3899 tmi got_qhat 006213 aa 0 00001 7551 00 3900 sta ap|rhat 006214 0a 006222 7100 00 3901 tra got_rhat 006215 3902 div_less: 006215 aa 0 00007 2361 15 3903 ldq ap|dividend-1,5 006216 aa 000001 7360 00 3904 qls 1 006217 aa 0 00016 5071 14 3905 dvf ap|divisor,4 006220 aa 0 00000 7551 00 3906 sta ap|qhat 006221 aa 0 00001 7561 00 3907 stq ap|rhat 006222 3908 got_rhat: 006222 aa 0 00000 2361 00 3909 ldq ap|qhat 006223 aa 0 00015 4021 14 3910 mpy ap|divisor-1,4 006224 aa 000001 7370 00 3911 lls 1 006225 aa 0 00001 1151 00 3912 cmpa ap|rhat 006226 0a 006234 6040 00 3913 tmi got_qhat 006227 0a 006205 6010 00 3914 tnz dec_qhat 006230 aa 000001 7720 00 3915 qrl 1 006231 aa 0 00006 1161 15 3916 cmpq ap|dividend-2,5 006232 0a 006234 6040 00 3917 tmi got_qhat 006233 0a 006205 6010 00 3918 tnz dec_qhat 006234 3919 got_qhat: 006234 aa 000000 6230 00 3920 eax3 0 do multiply and subtract 006235 aa 0 00002 4501 00 3921 stz ap|carry 006236 aa 0 00003 4501 00 3922 stz ap|carrya 006237 aa 0 00016 1651 00 3923 sbx5 ap|divisor 006240 aa 0 00010 3701 15 3924 epplp ap|dividend,5 006241 3925 div_loop: 006241 aa 000001 6230 13 3926 eax3 1,3 006242 aa 0 00016 2361 13 3927 ldq ap|divisor,3 006243 aa 0 00000 4021 00 3928 mpy ap|qhat 006244 aa 0 00002 0331 00 3929 adl ap|carry 006245 aa 000001 7370 00 3930 lls 1 006246 aa 000001 7720 00 3931 qrl 1 006247 aa 0 00006 7561 00 3932 stq ap|div_temp 006250 aa 0 00002 7551 00 3933 sta ap|carry 006251 aa 4 77777 2361 13 3934 ldq lp|-1,3 006252 aa 0 00003 1361 00 3935 sblq ap|carrya 006253 aa 0 00006 1361 00 3936 sblq ap|div_temp 006254 aa 000000 2350 07 3937 lda 0,dl 006255 aa 000001 7370 00 3938 lls 1 006256 aa 000001 7720 00 3939 qrl 1 006257 aa 4 77777 7561 13 3940 stq lp|-1,3 006260 aa 0 00003 7551 00 3941 sta ap|carrya 006261 aa 0 00016 1031 00 3942 cmpx3 ap|divisor 006262 0a 006241 6010 00 3943 tnz div_loop 006263 aa 000001 6230 13 3944 eax3 1,3 006264 aa 4 77777 2361 13 3945 ldq lp|-1,3 006265 aa 0 00003 1361 00 3946 sblq ap|carrya 006266 aa 0 00002 1361 00 3947 sblq ap|carry 006267 aa 000000 2350 07 3948 lda 0,dl 006270 aa 000001 7370 00 3949 lls 1 006271 aa 000001 7720 00 3950 qrl 1 006272 aa 4 77777 7561 13 3951 stq lp|-1,3 006273 aa 000000 1150 07 3952 cmpa 0,dl 006274 0a 006321 6000 00 3953 tze store_q 006275 aa 000001 3360 07 3954 lcq 1,dl 006276 aa 0 00000 0561 00 3955 asq ap|qhat 006277 aa 000000 6230 00 3956 eax3 0 006300 aa 000000 2350 07 3957 lda 0,dl 006301 3958 div_loop1: 006301 aa 000001 6230 13 3959 eax3 1,3 add back in 006302 aa 4 77777 2361 13 3960 ldq lp|-1,3 006303 0a 006526 0360 05 3961 adlq zero_one,al 006304 aa 0 00016 0361 13 3962 adlq ap|divisor,3 006305 aa 000000 2350 03 3963 lda 0,du 006306 aa 000001 7370 00 3964 lls 1 006307 aa 000001 7720 00 3965 qrl 1 006310 aa 4 77777 7561 13 3966 stq lp|-1,3 006311 aa 0 00016 1031 00 3967 cmpx3 ap|divisor 006312 0a 006301 6010 00 3968 tnz div_loop1 006313 aa 000001 6230 13 3969 eax3 1,3 006314 aa 4 77777 2361 13 3970 ldq lp|-1,3 006315 0a 006526 0360 05 3971 adlq zero_one,al 006316 aa 000001 7370 00 3972 lls 1 006317 aa 000001 7720 00 3973 qrl 1 006320 aa 4 77777 7561 13 3974 stq lp|-1,3 3975 " 006321 3976 store_q: 006321 aa 0 00000 2351 00 3977 lda ap|qhat 006322 aa 0 00022 7551 16 3978 sta ap|quotient,6 006323 aa 777777 6230 00 3979 eax3 -1 006324 aa 0 00010 0431 00 3980 asx3 ap|dividend 006325 aa 777777 6260 16 3981 eax6 -1,6 006326 0a 006176 6054 00 3982 tpnz get_qhat 3983 " 3984 " done 3985 " 006327 aa 0 00012 2361 00 3986 done: ldq ap|dividend+2 assemble remainder 006330 aa 000001 7360 00 3987 qls 1 006331 aa 0 00013 2351 00 3988 lda ap|dividend+3 006332 aa 000043 7370 00 3989 lls 35 006333 aa 0 00011 2361 00 3990 ldq ap|dividend+1 006334 aa 000001 7360 00 3991 qls 1 006335 aa 000001 7730 00 3992 lrl 1 006336 aa 0 00005 7261 00 3993 lxl6 ap|norm_shift get amount we scaled divisor 006337 aa 000000 7730 16 3994 lrl 0,6 shift back remainder 006340 aa 1 00000 2341 00 3995 l2: szn ab|0 set remainder sign to sign of dividend 006341 aa 000002 6050 04 3996 tpl 2,ic 006342 aa 000000 5330 00 3997 negl 0 006343 aa 6 00056 7571 00 3998 staq sp|remainder 006344 aa 0 00026 2361 00 3999 ldq ap|quotient+4 assemble quotient 006345 aa 0 00027 0761 00 4000 adq ap|quotient+5 006346 0a 006367 6010 00 4001 tnz signal_overflow 006347 aa 0 00024 2361 00 4002 ldq ap|quotient+2 006350 aa 000001 7360 00 4003 qls 1 006351 aa 0 00025 2351 00 4004 lda ap|quotient+3 006352 aa 000043 7370 00 4005 lls 35 006353 0a 006367 6030 00 4006 trc signal_overflow 006354 aa 0 00023 2361 00 4007 ldq ap|quotient+1 006355 aa 000001 7360 00 4008 qls 1 006356 aa 000001 7730 00 4009 lrl 1 006357 0a 006530 7160 11 4010 xec sign_change,1 006360 aa 0 00030 3701 20 4011 epplp ap|divide_lp,* restore lp 006361 aa 6 00067 3221 00 4012 lcx2 sp|qmask return stack extension 006362 aa 6 00023 2231 00 4013 ldx3 sp|stack_frame.next_sp+1 006363 aa 000040 1230 03 4014 sblx3 divide_extension_size,du 006364 aa 6 00023 7431 00 4015 stx3 sp|stack_frame.next_sp+1 006365 aa 6 00025 7431 12 4016 stx3 sp|stack_header.stack_end_ptr+1,2 006366 aa 000000 7100 17 4017 tra 0,7 4018 " 006367 4019 signal_overflow: 006367 aa 6 00056 2521 00 4020 spribp sp|double_temp 006370 0a 006402 3520 00 4021 eppbp overflow_name 006371 aa 000015 6260 00 4022 eax6 overflow_length 006372 aa 001307 2360 07 4023 ldq =711,dl 006373 aa 6 00037 4401 00 4024 sxl0 sp|stack_frame.operator_ret_ptr 006374 0a 011243 7010 00 4025 tsx1 call_signal_ 006375 aa 6 00056 3521 20 4026 eppbp sp|double_temp,* 006376 aa 6 00037 7201 00 4027 lxl0 sp|stack_frame.operator_ret_ptr 006377 aa 6 00037 4501 00 4028 stz sp|stack_frame.operator_ret_ptr 006400 0a 001650 2370 00 4029 ldaq mask_bit+2 006401 aa 000000 7100 17 4030 tra 0,7 4031 " 006402 4032 overflow_name: 006402 aa 146 151 170 145 4033 aci "fixedoverflow" 006403 aa 144 157 166 145 006404 aa 162 146 154 157 006405 aa 167 000 000 000 4034 " 000015 4035 equ overflow_length,13 4036 4037 " 006406 4038 div_single: 006406 aa 0 00016 7561 00 4039 stq ap|divisor 006407 aa 1 00000 2371 00 4040 ldaq ab|0 006410 aa 000003 6050 04 4041 tpl 3,ic 006411 aa 000000 5330 00 4042 negl 0 006412 aa 000001 6610 03 4043 erx1 1,du 006413 0a 006443 7030 00 4044 tsx3 shift_dividend 006414 aa 000000 4310 07 4045 fld 0,dl 006415 aa 0 00024 7571 00 4046 staq ap|quotient+2 006416 aa 0 00026 7571 00 4047 staq ap|quotient+4 006417 aa 0 00010 2361 15 4048 l1: ldq ap|dividend,5 006420 aa 000001 7360 00 4049 qls 1 006421 aa 0 00016 5071 00 4050 dvf ap|divisor 006422 aa 0 00022 7551 15 4051 sta ap|quotient,5 006423 aa 777777 6250 15 4052 eax5 -1,5 006424 0a 006427 6000 00 4053 tze thru 006425 aa 000044 7770 00 4054 llr 36 006426 0a 006417 7100 00 4055 tra l1 006427 aa 000000 2350 07 4056 thru: lda 0,dl 006430 0a 006340 7100 00 4057 tra l2 4058 " 4059 " internal procedure to extend stack for divide operators 4060 " 006431 4061 divide_extension: 006431 aa 6 00000 6221 00 4062 eax2 sp|0 get offset of stack frame 006432 aa 6 00067 7421 00 4063 stx2 sp|qmask 006433 aa 6 00067 3221 00 4064 lcx2 sp|qmask get - offset 006434 aa 6 00024 3501 32 4065 eppap sp|stack_header.stack_end_ptr,2* get ptr to extension 006435 aa 000040 6230 00 4066 eax3 divide_extension_size 006436 aa 6 00023 0231 00 4067 adlx3 sp|stack_frame.next_sp+1 006437 aa 6 00025 7431 12 4068 stx3 sp|stack_header.stack_end_ptr+1,2 006440 aa 6 00023 7431 00 4069 stx3 sp|stack_frame.next_sp+1 006441 aa 0 00030 6501 00 4070 sprilp ap|divide_lp save lp 006442 aa 000000 7100 11 4071 tra 0,1 4072 " 4073 " This procedure shifts the dividend left (+) or right (-) the 4074 " number of places specified by variable shift. It splits the shifted 4075 " value into chunks which are stored in dividend+1, dividend+2, ... 4076 " The number of chunks stored (which can never exceed 5) is returned in x5. 4077 " The routine is entered with |dividend| in AQ 4078 " 006443 4079 shift_dividend: 006443 aa 0 00004 7221 00 4080 lxl2 ap|shift 006444 0a 006522 6040 00 4081 tmi right_shift 006445 aa 0 00006 7571 00 4082 staq ap|div_temp 006446 aa 000000 7370 12 4083 lls 0,2 006447 0a 006466 6030 00 4084 trc hard_shift carry means lost a bit on left 006450 aa 000001 7370 00 4085 split: lls 1 006451 aa 000001 7720 00 4086 qrl 1 split into chunks 006452 aa 0 00011 7561 00 4087 stq ap|dividend+1 006453 aa 000001 6250 00 4088 eax5 1 006454 aa 000043 7730 00 4089 lrl 35 006455 aa 000000 6000 13 4090 tze 0,3 006456 aa 000001 7720 00 4091 qrl 1 006457 aa 0 00012 7561 00 4092 stq ap|dividend+2 006460 aa 000002 6250 00 4093 eax5 2 006461 aa 000000 1150 07 4094 cmpa 0,dl 006462 aa 000000 6000 13 4095 tze 0,3 006463 aa 0 00013 7551 00 4096 sta ap|dividend+3 006464 aa 000003 6250 00 4097 eax5 3 006465 aa 000000 7100 13 4098 tra 0,3 006466 4099 hard_shift: 006466 aa 000001 7370 00 4100 lls 1 006467 aa 000001 7720 00 4101 qrl 1 store lower 2 chunks 006470 aa 0 00011 7561 00 4102 stq ap|dividend+1 006471 aa 000043 7730 00 4103 lrl 35 006472 aa 000001 7720 00 4104 qrl 1 006473 aa 0 00012 7561 00 4105 stq ap|dividend+2 006474 aa 0 00006 2371 00 4106 ldaq ap|div_temp get back original value 006475 aa 000106 1620 03 4107 sbx2 70,du shift 70 places fewer 006476 0a 006503 6050 00 4108 tpl sl 006477 aa 0 00006 7421 00 4109 stx2 ap|div_temp 006500 aa 0 00006 3221 00 4110 lcx2 ap|div_temp 006501 aa 000000 7730 12 4111 lrl 0,2 006502 0a 006504 7100 00 4112 tra sl+1 006503 aa 000000 7370 12 4113 sl: lls 0,2 006504 aa 000001 7370 00 4114 lls 1 006505 aa 000001 7720 00 4115 qrl 1 006506 aa 0 00013 7561 00 4116 stq ap|dividend+3 will always be 3rd chunk 006507 aa 000003 6250 00 4117 eax5 3 006510 aa 000043 7730 00 4118 lrl 35 006511 aa 000000 6000 13 4119 tze 0,3 006512 aa 000001 7720 00 4120 qrl 1 006513 aa 0 00014 7561 00 4121 stq ap|dividend+4 006514 aa 000004 6250 00 4122 eax5 4 006515 aa 000000 1150 07 4123 cmpa 0,dl 006516 aa 000000 6000 13 4124 tze 0,3 006517 aa 0 00015 7551 00 4125 sta ap|dividend+5 006520 aa 000005 6250 00 4126 eax5 5 006521 aa 000000 7100 13 4127 tra 0,3 006522 4128 right_shift: 006522 aa 0 00006 7421 00 4129 stx2 ap|div_temp 006523 aa 0 00006 3221 00 4130 lcx2 ap|div_temp 006524 aa 000000 7730 12 4131 lrl 0,2 006525 0a 006450 7100 00 4132 tra split 4133 " 006526 aa 000000 000000 4134 zero_one: dec 0,1 006527 aa 000000 000001 4135 " 006530 4136 sign_change: 006530 aa 000000 0110 03 4137 nop 0,du 006531 aa 000000 5330 00 4138 negl 0 4139 " 4140 " operator to convert floating to fixed 4141 " 006532 4142 fl2_to_fx1: 006532 4143 fl2_to_fx2: 006532 aa 400000 4750 03 4144 fad =0.,du 006533 aa 000003 6040 04 4145 tmi 3,ic 006534 aa 216000 4350 03 4146 ufa =71b25,du 006535 aa 6 00046 7101 70 4147 tra sp|tbp,*0 006536 aa 000000 5130 00 4148 fneg 006537 aa 216000 4350 03 4149 ufa =71b25,du 006540 aa 000000 5330 00 4150 negl 006541 aa 6 00046 7101 70 4151 tra sp|tbp,*0 4152 " 4153 " operator to convert float to fixed scaled. the word following 4154 " the tsx0 is the encoded scale of the target 4155 " 006542 4156 fl2_to_fxscaled: 006542 aa 400000 4750 03 4157 fad =0.,du 006543 aa 000004 6040 04 4158 tmi 4,ic 006544 aa 6 00046 4351 70 4159 ufa sp|tbp,*0 006545 aa 000001 0600 03 4160 adx0 1,du 006546 aa 6 00046 7101 70 4161 tra sp|tbp,*0 006547 aa 000000 5130 00 4162 fneg 006550 aa 6 00046 4351 70 4163 ufa sp|tbp,*0 006551 aa 000000 5330 00 4164 negl 006552 aa 777773 7100 04 4165 tra -5,ic 4166 " 4167 " stac operator. entered with word in a and pointer 4168 " to destination in bp. 4169 " 006553 aa 2 00000 3541 00 4170 stac_mac: stac bp|0 store a conditionally 006554 0a 002164 6000 00 4171 tze true 006555 aa 000000 2350 07 4172 lda 0,dl .. 006556 aa 6 00046 7101 70 4173 tra sp|tbp,*0 and return 4174 " 4175 " stacq operator. entered with old value in Q, new value in A, 4176 " and pointer to destination in pr2. 4177 " 006557 4178 stacq_mac: 006557 aa 2 00000 6541 00 4179 stacq pr2|0 store A conditional C(storage) = Q 006560 0a 002164 6000 00 4180 tze true stored OK, return "1"b 006561 aa 000000 2350 07 4181 lda 0,dl not stored, return "0"b 006562 aa 6 00046 7101 70 4182 tra sp|tbp,*0 return 4183 " 4184 " clock operator. no arguments...returns with value of 4185 " calendar clock in AQ. 4186 " 006563 4187 clock_mac: 4188 get_our_lp 006563 aa 6 00000 3731 00 epbpsb sp|0 make sure sb is set up 006564 0a 006564 2130 00 epaq * get ptr to ourselves 006565 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get packed ptr to linkage from lot 006566 4a 4 00262 6331 20 4189 rccl sys_info$clock_,* read clock into AQ 006567 0a 001426 1170 00 4190 cmpaq bit_mask set indicators 006570 aa 6 00046 7101 70 4191 tra sp|tbp,*0 return 4192 " 4193 " virtual clock operator. no arguments...returns with value 4194 " of virtual cpu time in AQ. 4195 " 006571 4196 vclock_mac: 4197 get_our_lp 006571 aa 6 00000 3731 00 epbpsb sp|0 make sure sb is set up 006572 0a 006572 2130 00 epaq * get ptr to ourselves 006573 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get packed ptr to linkage from lot 006574 aa 6 00025 7401 00 4198 stx0 sp|stack_frame.return_ptr+1 setup to return directly to user prog 006575 aa 6 00025 7541 00 4199 sti sp|stack_frame.return_ptr+1 save indicators 006576 4a 4 00264 7131 20 4200 callsp virtual_cpu_time_op_$virtual_cpu_time_op_ invoke supervisor to do work 4201 " 4202 " 4203 " stop operator, terminates a run unit by calling stop_run 4204 " 006577 4205 stop: 006577 aa 6 00056 3501 00 4206 eppap sp|46 get pointer to argument list 006600 aa 000000 4310 07 4207 fld 0,dl create null argument list 006601 aa 000004 2750 07 4208 ora 4,dl and insert PL/I code 006602 aa 6 00056 7571 00 4209 staq sp|46 4210 get_our_lp 006603 aa 6 00000 3731 00 epbpsb sp|0 make sure sb is set up 006604 0a 006604 2130 00 epaq * get ptr to ourselves 006605 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get packed ptr to linkage from lot 006606 aa 6 00024 3571 00 4211 stcd sp|stack_frame.return_ptr store pointer to caller 006607 4a 4 00266 7131 20 4212 callsp stop_run$stop_run 4213 " 4214 " return_main - terminates a run unit by calling stop_run if the procedure is a main procedure, 4215 " otherwise it performs a normal return 4216 " 006610 4217 return_main: 006610 aa 6 00020 2351 00 4218 lda sp|stack_frame.flag_word 006611 aa 020000 3750 07 4219 ana stack_frame.main_proc_bit,dl 006612 0a 005600 6000 00 4220 tze return_mac 006613 0a 006577 7100 00 4221 tra stop 4222 " 4223 " return from a begin block in a main procedure 4224 " 006614 4225 begin_return_main: 006614 0a 006610 6000 00 4226 tze return_main skip if begin block is quick 006615 aa 6 00000 3731 00 4227 epbpsb sp|0 get ptr to base of stack 006616 4228 inhibit on 006616 aa 7 00024 6523 00 4229 sprisp sb|stack_header.stack_end_ptr keep updating end ptr 006617 aa 6 00020 3723 20 4230 eppsp sp|stack_frame.prev_sp,* pop stack 006620 4231 inhibit off 006620 aa 000001 1760 07 4232 sbq 1,dl count down number of blocks 006621 aa 777775 6010 04 4233 tnz -3,ic repeat until all done 006622 aa 6 00020 2351 00 4234 lda sp|stack_frame.flag_word 006623 aa 020000 3750 07 4235 ana stack_frame.main_proc_bit,dl is this the first main procedure invoked in the run unit? 006624 0a 005600 6000 00 4236 tze return_mac no - do a normal return from a begin block 006625 0a 006577 7100 00 4237 tra stop yes - do a stop run 4238 " 4239 " set_main_flag - sets a bit in the stack_frame if this is the first procedure in the run unit and has options(main) 4240 " 006626 4241 set_main_flag: 006626 aa 6 00000 3731 00 4242 epbp7 sp|0 pointer to stack_header 006627 aa 7 00012 7211 00 4243 lxl1 sb|stack_header.main_proc_invoked 006630 aa 000001 1010 03 4244 cmpx1 1,du first main procedure in run unit? 006631 0a 006637 6010 00 4245 tnz zero_main_flag no 006632 aa 400000 2610 03 4246 orx1 =o400000,du then this is the first main procedure 006633 aa 7 00012 4411 00 4247 sxl1 sb|stack_header.main_proc_invoked indicate main procedure has been invoked 006634 aa 020000 2350 07 4248 lda stack_frame.main_proc_bit,dl flag stack frame of first main procedure 006635 aa 6 00020 2551 00 4249 orsa sp|stack_frame.flag_word 006636 aa 6 00046 7101 70 4250 tra sp|tbp,*0 return 006637 4251 zero_main_flag: 006637 aa 020001 3350 07 4252 lca stack_frame.main_proc_bit+1,dl generate mask to turn off main_proc bit 006640 aa 6 00020 3551 00 4253 ansa sp|stack_frame.flag_word indicate that this is not the first main procedure 006641 aa 6 00046 7101 70 4254 tra sp|tbp,*0 return 4255 " 4256 " sign operator. entered with indicators set via load 4257 006642 aa 6 00046 6001 70 4258 sign_mac: tze sp|tbp,*0 return zero if zero 006643 aa 000003 6040 04 4259 tmi 3,ic skip if negative 006644 aa 000001 2360 07 4260 ldq 1,dl return +1 006645 aa 6 00046 7101 70 4261 tra sp|tbp,*0 .. 006646 aa 000001 3360 07 4262 lcq 1,dl return -1 006647 aa 6 00046 7101 70 4263 tra sp|tbp,*0 .. 4264 " 4265 " operator to transfer sign of number pointed to by bp to integer in q 4266 " 006650 4267 trans_sign_fx1: 006650 aa 000044 7370 00 4268 lls 36 form abs value of Q in A 006651 aa 000002 6050 04 4269 tpl 2,ic 006652 aa 000000 5310 00 4270 neg 0 006653 aa 2 00000 2341 00 4271 szn bp|0 if second number is negative 006654 aa 000002 6050 04 4272 tpl 2,ic 006655 aa 000000 5310 00 4273 neg 0 set A negative too 006656 aa 000044 7330 00 4274 lrs 36 shift back to Q 006657 aa 6 00046 7101 70 4275 tra sp|tbp,*0 and return 4276 " 4277 " operator to transfer sign of floating number pointed to by bp 4278 " to floating number in EAQ 4279 " 006660 4280 trans_sign_fl: 006660 aa 000002 6050 04 4281 tpl 2,ic set first number positive 006661 aa 000000 5130 00 4282 fneg 0 006662 aa 2 00000 4301 00 4283 fszn bp|0 if second number is positive 006663 aa 000003 6050 04 4284 tpl 3,ic value is OK 006664 aa 000000 5130 00 4285 fneg 0 otherwise, set first negative 006665 aa 6 00046 7101 70 4286 tra sp|tbp,*0 and return 006666 aa 400000 5150 03 4287 fcmp =0.0,du restore indicators 006667 aa 6 00046 7101 70 4288 tra sp|tbp,*0 and return 4289 " 4290 " opearator to perform Fortran type mod function 4291 " 006670 4292 fort_mdfl1: 006670 aa 2 00000 4301 00 4293 fszn bp|0 return if B zero 006671 aa 6 00046 6001 70 4294 tze sp|tbp,*0 006672 aa 6 00076 4701 00 4295 fstr sp|temp save A 006673 aa 2 00000 5651 00 4296 fdv bp|0 form A/B 006674 aa 000003 6040 04 4297 tmi 3,ic 006675 aa 216000 4750 03 4298 fad =71b25,du truncate towards 0 006676 aa 000004 7100 04 4299 tra 4,ic 006677 aa 000000 5130 00 4300 fneg 006700 aa 216000 4750 03 4301 fad =71b25,du truncate towards 0 006701 aa 000000 5130 00 4302 fneg 006702 aa 2 00000 4611 00 4303 fmp bp|0 006703 aa 000000 5130 00 4304 fneg 0 006704 aa 6 00076 4751 00 4305 fad sp|temp form A - [A/B]*B 006705 aa 6 00046 7101 70 4306 tra sp|tbp,*0 and return 4307 " 4308 " Fortran double precision mod 4309 " dmod (A,B) = A - INT(A/B) * B 4310 " A in eaq, bp|0 -> B, result in eaq 4311 " 006706 4312 fort_dmod: 006706 aa 2 00000 4301 00 4313 fszn bp|0 this only works on normalized numbers! 006707 aa 6 00046 6001 70 4314 tze sp|tbp,*0 return A if B is zero 006710 aa 6 00076 4721 00 4315 dfstr sp|temp save A 006711 aa 2 00000 5671 00 4316 dfdv bp|0 form A/B 006712 aa 000003 6040 04 4317 tmi 3,ic 006713 0a 012442 4770 00 4318 dfad k71b25 truncate toward zero 006714 aa 000004 7100 04 4319 tra 4,ic 006715 aa 000000 5130 00 4320 fneg 006716 0a 012442 4770 00 4321 dfad k71b25 truncate toward zero 006717 aa 000000 5130 00 4322 fneg 006720 aa 2 00000 4631 00 4323 dfmp bp|0 form [A/B]*B 006721 aa 000000 5130 00 4324 fneg 006722 aa 6 00076 4771 00 4325 dfad sp|temp form A-[A/B]*B 006723 aa 6 00046 7101 70 4326 tra sp|tbp,*0 and return it 4327 " 4328 " operators to convert from fixed point to single float complex 4329 " 006724 4330 rfb1_to_cflb1: 006724 aa 000044 7370 00 4331 lls 36 convert to double fixed first 006725 aa 000044 7330 00 4332 lrs 36 4333 " 006726 4334 rfb2_to_cflb1: 006726 aa 216000 4110 03 4335 lde =71b25,du convert to float 006727 aa 400000 4750 03 4336 fad =0.,du 006730 aa 6 00076 4551 00 4337 fst sp|temp and save 006731 aa 6 00076 2351 00 4338 lda sp|temp get real part 006732 aa 400000 2360 03 4339 ldq =0.,du and imag part of zero 006733 aa 6 00046 7101 70 4340 tra sp|tbp,*0 and return 4341 " 4342 " operator to perform complex multiplication, defined as 4343 " (a+ib)*(c+id) -> a*c - b*d +i(b*c + a*d) 4344 " entered with bp pointing at multiplier and multiplicand in AQ 4345 " or in complex AQ 4346 " 006734 aa 6 00070 2371 00 4347 mpcfl1_1: ldaq sp|complex get a+ib 4348 " 006735 aa 6 00076 7571 00 4349 mpcfl1_2: staq sp|temp and save 006736 aa 6 00077 4311 00 4350 fld sp|temp+1 form b*d 006737 aa 2 00001 4611 00 4351 fmp bp|1 006740 aa 6 00070 4551 00 4352 fst sp|complex 006741 aa 6 00076 4311 00 4353 fld sp|temp form a*c 006742 aa 2 00000 4611 00 4354 fmp bp|0 006743 aa 6 00070 5751 00 4355 fsb sp|complex form a*c - b * d 006744 aa 6 00070 4551 00 4356 fst sp|complex 006745 aa 6 00076 4311 00 4357 fld sp|temp form a*d 006746 aa 2 00001 4611 00 4358 fmp bp|1 006747 aa 6 00071 4551 00 4359 fst sp|complex+1 006750 aa 6 00077 4311 00 4360 fld sp|temp+1 form b*c 006751 aa 2 00000 4611 00 4361 fmp bp|0 006752 aa 6 00071 4751 00 4362 fad sp|complex+1 form b*c + a*d 006753 aa 6 00071 4551 00 4363 fst sp|complex+1 006754 aa 6 00046 7101 70 4364 tra sp|tbp,*0 and return 4365 " 4366 " operator to perform complex division entered with 4367 " bp pointing at divisor, dividend in AQ or complex AQ. 4368 " This code, written by R. A. Barnes, is based on 4369 " Algorithm 116 in Collected Algorithms from CACM 4370 " written by Robert L. Smith from Stanford University. 4371 " Following is the algorithm written in pseudo PL/I 4372 " to do (a+ib)/(c+id) = (e+if) 4373 " 4374 " if abs(c) >= abs(d) 4375 " then do; 4376 " r = d/c; 4377 " den = c + r*d; 4378 " e = (a + b*r)/den; 4379 " f = (b - a*r)/den; 4380 " end; 4381 " else do; 4382 " r = c/d; 4383 " den = d + r*c; 4384 " e = (a*r + b)/den; 4385 " f = (b*r - a)/den; 4386 " end; 4387 " 006755 aa 6 00070 2371 00 4388 dvcfl1_1: ldaq sp|complex get a+ib 4389 " 006756 aa 6 00076 7571 00 4390 dvcfl1_2: staq sp|temp and save 006757 aa 2 00000 4311 00 4391 fld bp|0 get c 006760 aa 2 00001 4251 00 4392 fcmg bp|1 compare with d 006761 0a 007003 6040 00 4393 tmi dvcfl1_else 4394 " 006762 aa 2 00001 5251 00 4395 fdi bp|1 get d/c 006763 aa 6 00074 4551 00 4396 fst sp|num save as r 006764 aa 2 00001 4611 00 4397 fmp bp|1 form r*d 006765 aa 2 00000 4751 00 4398 fad bp|0 c + r*d 006766 aa 6 00072 4551 00 4399 fst sp|temp2 save as den 006767 aa 6 00077 4311 00 4400 fld sp|temp+1 get b 006770 aa 6 00074 4611 00 4401 fmp sp|num form b*r 006771 aa 6 00076 4751 00 4402 fad sp|temp a + b*r 006772 aa 6 00072 5651 00 4403 fdv sp|temp2 (a + b*r)/den 006773 aa 6 00070 4551 00 4404 fst sp|complex store e 006774 aa 6 00076 4311 00 4405 fld sp|temp get a 006775 aa 6 00074 4611 00 4406 fmp sp|num form a*r 006776 aa 000000 5130 00 4407 fneg 0 - a*r 006777 aa 6 00077 4751 00 4408 fad sp|temp+1 b - a*r 007000 aa 6 00072 5651 00 4409 fdv sp|temp2 (b - a*r)/den 007001 aa 6 00071 4551 00 4410 fst sp|complex+1 store f 007002 aa 6 00046 7101 70 4411 tra sp|tbp,*0 return 4412 " 007003 4413 dvcfl1_else: 007003 aa 2 00001 5651 00 4414 fdv bp|1 get c/d 007004 aa 6 00074 4551 00 4415 fst sp|num save as r 007005 aa 2 00000 4611 00 4416 fmp bp|0 form r*c 007006 aa 2 00001 4751 00 4417 fad bp|1 d + r*c 007007 aa 6 00072 4551 00 4418 fst sp|temp2 save as den 007010 aa 6 00076 4311 00 4419 fld sp|temp get a 007011 aa 6 00074 4611 00 4420 fmp sp|num form a*r 007012 aa 6 00077 4751 00 4421 fad sp|temp+1 a*r + b 007013 aa 6 00072 5651 00 4422 fdv sp|temp2 (a*r + b)/den 007014 aa 6 00070 4551 00 4423 fst sp|complex store e 007015 aa 6 00077 4311 00 4424 fld sp|temp+1 get b 007016 aa 6 00074 4611 00 4425 fmp sp|num form b*r 007017 aa 6 00076 5751 00 4426 fsb sp|temp (b*r - a) 007020 aa 6 00072 5651 00 4427 fdv sp|temp2 (b*r - a)/den 007021 aa 6 00071 4551 00 4428 fst sp|complex+1 store f 007022 aa 6 00046 7101 70 4429 tra sp|tbp,*0 return 4430 " 4431 " operator to perform block copy. entered 4432 " with block size in ql, ptr to destination in sp|temp_pt and ptr 4433 " to source in bp. 4434 " 007023 4435 copy_words: 007023 aa 000002 7360 00 4436 qls 2 compute number of chars to move 007024 aa 6 00046 6001 70 4437 tze sp|tbp,*0 skip if zero (prevent IPR) 007025 aa 6 00050 3501 20 4438 eppap sp|temp_pt,* get ptr to destination 007026 aa 0 00140 1005 40 4439 mlr (ar+rl),(ar+rl) 007027 aa 200000 000006 4440 desc9a bp|0,ql 007030 aa 000000 000006 4441 desc9a ap|0,ql 007031 aa 6 00030 3501 20 4442 eppap sp|stack_frame.operator_ptr,* 007032 aa 6 00046 7101 70 4443 tra sp|tbp,*0 4444 " 4445 " operator to perform block copy from even boundary to even boundary. 4446 " same conventions as copy_words. 4447 " 007033 4448 copy_double: 007033 aa 000001 7360 00 4449 qls 1 get number of chars 007034 0a 007024 7100 00 4450 tra copy_words+1 join copy_words case 4451 " 4452 " operator to multiply single precision fixed number in q 4453 " by double precision fixed number pointed at by bp 4454 " 007035 aa 000000 6210 00 4455 mpfx2: eax1 0 set for positive sign 007036 aa 000044 7770 00 4456 llr 36 shift multiplier to a 007037 aa 000003 6050 04 4457 tpl 3,ic skip if positive 007040 aa 000000 5310 00 4458 neg 0 neg, force positive 007041 aa 000001 6210 00 4459 eax1 1 flip sign of result 007042 aa 6 00076 7551 00 4460 sta sp|temp save multiplier 007043 aa 2 00000 2371 00 4461 ldaq bp|0 get multiplicand 007044 aa 000003 6050 04 4462 tpl 3,ic skip if positive 007045 aa 000000 5330 00 4463 negl 0 neg, force positive 007046 aa 000001 6610 03 4464 erx1 1,du flip sign of answer 007047 aa 200000 3150 03 4465 cana =o200000,du remember high order bit 007050 aa 000002 6000 04 4466 tze 2,ic 007051 aa 000002 2610 03 4467 orx1 2,du 007052 aa 000001 7770 00 4468 llr 1 get high order bit of q into q 007053 aa 000001 7720 00 4469 qrl 1 get zero in s bit of q 007054 0a 001650 3750 00 4470 ana mask_bit+2 and zero in s bit of a 007055 aa 6 00065 7551 00 4471 sta sp|t5 save upper half 007056 aa 6 00076 4021 00 4472 mpy sp|temp form lower product 007057 aa 6 00074 7571 00 4473 staq sp|lv save for later 007060 aa 6 00065 2361 00 4474 ldq sp|t5 get upper half 007061 aa 6 00076 4021 00 4475 mpy sp|temp form upper product 007062 aa 000000 1150 07 4476 cmpa 0,dl a should be clear 007063 0a 007200 6010 00 4477 tnz mult_overflow 007064 aa 000043 7370 00 4478 lls 35 and shift to position 007065 aa 6 00074 0771 00 4479 adaq sp|lv add lower product 007066 aa 6 00074 7571 00 4480 staq sp|lv and save 007067 0a 001426 2370 00 4481 ldaq bit_mask multiply lower by high order bit 007070 aa 000002 3010 03 4482 canx1 2,du 007071 aa 000002 6000 04 4483 tze 2,ic 007072 aa 6 00076 2361 00 4484 ldq sp|temp 007073 aa 000106 7370 00 4485 lls 70 shift to position (should give only 1 bit) 007074 0a 007200 6030 00 4486 trc mult_overflow 007075 aa 6 00074 0771 00 4487 adaq sp|lv add back rest of number 007076 aa 000001 3010 03 4488 canx1 1,du check result of answer 007077 aa 000003 6010 04 4489 tnz 3,ic jump if - 007100 0a 001426 1170 00 4490 cmpaq bit_mask set indicators 007101 aa 6 00046 7101 70 4491 tra sp|tbp,*0 return 007102 aa 000000 5330 00 4492 negl 0 negate 007103 aa 6 00046 7101 70 4493 tra sp|tbp,*0 and return to pl/1 program 4494 " 4495 " operator to multiply double precison fixed integer in aq 4496 " by double precsion fixed number pointed at by bp. 4497 " 007104 aa 000000 6210 00 4498 mpfx3: eax1 0 set positive sign 007105 aa 000000 1150 03 4499 cmpa 0,du skip if number positive 007106 aa 000003 6050 04 4500 tpl 3,ic 007107 aa 000000 5330 00 4501 negl 0 neg, force positive 007110 aa 000001 6210 00 4502 eax1 1 flip sign of answer 007111 aa 200000 3150 03 4503 cana =o200000,du remember high order bit 007112 aa 000002 6000 04 4504 tze 2,ic 007113 aa 000002 2610 03 4505 orx1 2,du 007114 aa 000001 7770 00 4506 llr 1 split into 2 35 bit pos numbers 007115 aa 000001 7720 00 4507 qrl 1 007116 0a 001650 3750 00 4508 ana mask_bit+2 007117 aa 6 00064 7551 00 4509 sta sp|t1 save for later 007120 aa 6 00066 7561 00 4510 stq sp|t2 007121 aa 2 00000 2371 00 4511 ldaq bp|0 get multplier 007122 aa 000003 6050 04 4512 tpl 3,ic force positive 007123 aa 000000 5330 00 4513 negl 0 007124 aa 000001 6610 03 4514 erx1 1,du and set answer sign 007125 aa 200000 3150 03 4515 cana =o200000,du remember high order bit 007126 aa 000002 6000 04 4516 tze 2,ic 007127 aa 000004 2610 03 4517 orx1 4,du 007130 aa 000001 7770 00 4518 llr 1 split 007131 aa 000001 7720 00 4519 qrl 1 007132 0a 001650 3750 00 4520 ana mask_bit+2 007133 aa 6 00063 7551 00 4521 sta sp|t3 save for later 007134 aa 6 00077 7561 00 4522 stq sp|t4 007135 aa 6 00066 4021 00 4523 mpy sp|t2 form lower product 007136 aa 6 00074 7571 00 4524 staq sp|lv and save 007137 aa 6 00063 2361 00 4525 ldq sp|t3 form first upper product 007140 aa 6 00066 4021 00 4526 mpy sp|t2 007141 aa 000000 1150 07 4527 cmpa 0,dl a should be clear 007142 0a 007200 6010 00 4528 tnz mult_overflow 007143 aa 000043 7370 00 4529 lls 35 and add to lower 007144 aa 6 00074 0771 00 4530 adaq sp|lv 007145 aa 6 00074 7571 00 4531 staq sp|lv save partial answer 007146 aa 6 00064 2361 00 4532 ldq sp|t1 form second upper product 007147 aa 6 00077 4021 00 4533 mpy sp|t4 007150 aa 000000 1150 07 4534 cmpa 0,dl 007151 0a 007200 6010 00 4535 tnz mult_overflow 007152 aa 000043 7370 00 4536 lls 35 shift to position 007153 aa 6 00074 0771 00 4537 adaq sp|lv add previous part 007154 aa 6 00074 7571 00 4538 staq sp|lv and save again 007155 aa 6 00063 2361 00 4539 ldq sp|t3 form upper upper product 007156 aa 6 00064 4021 00 4540 mpy sp|t1 which may only give one bit 007157 aa 000002 3010 03 4541 canx1 2,du 007160 aa 000002 6000 04 4542 tze 2,ic 007161 aa 6 00077 0761 00 4543 adq sp|t4 007162 aa 000004 3010 03 4544 canx1 4,du 007163 aa 000002 6000 04 4545 tze 2,ic 007164 aa 6 00066 0761 00 4546 adq sp|t2 007165 aa 000000 1150 07 4547 cmpa 0,dl a should be clear 007166 0a 007200 6010 00 4548 tnz mult_overflow 007167 aa 000106 7370 00 4549 lls 70 shift to position 007170 0a 007200 6030 00 4550 trc mult_overflow 007171 aa 6 00074 0771 00 4551 adaq sp|lv and add it in 007172 aa 000001 3010 03 4552 canx1 1,du should answer be neg 007173 aa 000003 6010 04 4553 tnz 3,ic yes, jump 007174 0a 001426 1170 00 4554 cmpaq bit_mask set indicators 007175 aa 6 00046 7101 70 4555 tra sp|tbp,*0 return 007176 aa 000000 5330 00 4556 negl 0 set minus sign 007177 aa 6 00046 7101 70 4557 tra sp|tbp,*0 and return 4558 " 007200 4559 mult_overflow: 007200 aa 6 00070 7531 00 4560 sreg sp|save_regs 007201 0a 006367 7070 00 4561 tsx7 signal_overflow 007202 4562 use_first: 007202 aa 6 00070 0731 00 4563 lreg sp|save_regs 007203 0a 001426 1170 00 4564 cmpaq bit_mask set indicators properly 007204 aa 6 00046 7101 70 4565 tra sp|tbp,*0 4566 " 4567 " operator to perform string range check. entered with 4568 " length of string (k) in q 4569 " bp|0 pointing at i (2nd arg of substr) 4570 " bp|1 pointing at j (3rd arg of substr) 4571 " exit with new value of j in q 4572 " 007205 4573 sr_check: 007205 aa 6 00037 4401 00 4574 sxl0 sp|stack_frame.operator_ret_ptr 007206 aa 6 00062 7561 00 4575 stq sp|bit_lg1 save k 007207 aa 2 00000 2361 00 4576 ldq bp|0 form i' = i - 1 007210 aa 000001 1760 07 4577 sbq 1,dl 007211 aa 2 00000 7561 00 4578 stq bp|0 and save 007212 0a 007244 6040 00 4579 tmi sr_2 signal if i' < 0 007213 aa 6 00062 1161 00 4580 cmpq sp|bit_lg1 signal if i' >= k 007214 0a 007244 6050 00 4581 tpl sr_2 007215 aa 2 00001 2361 00 4582 ldq bp|1 get j 007216 0a 007232 6040 00 4583 tmi sr_3 signal if j < 0 007217 aa 6 00062 1161 00 4584 cmpq sp|bit_lg1 signal if j > k 007220 aa 000002 6040 04 4585 tmi 2,ic 007221 0a 007232 6010 00 4586 tnz sr_3 007222 aa 2 00000 0761 00 4587 adq bp|0 form i' + j 007223 aa 6 00062 1161 00 4588 cmpq sp|bit_lg1 return if i' + j <= k 007224 aa 000002 6000 04 4589 tze 2,ic 007225 0a 007232 6050 00 4590 tpl sr_3 007226 aa 2 00001 2361 00 4591 ldq bp|1 exit with value of j 007227 aa 6 00037 7201 00 4592 z_done: lxl0 sp|stack_frame.operator_ret_ptr restore return offset 007230 aa 6 00037 4501 00 4593 stz sp|stack_frame.operator_ret_ptr and clear record 007231 aa 6 00046 7101 70 4594 tra sp|tbp,*0 4595 " 007232 0a 007251 7000 00 4596 sr_3: tsx0 string_signal 007233 aa 6 00062 2361 00 4597 ldq sp|bit_lg1 get min(k-i+1,j) 007234 aa 2 00000 1761 00 4598 sbq bp|0 007235 aa 2 00001 1161 00 4599 cmpq bp|1 007236 aa 000002 6040 04 4600 tmi 2,ic 007237 aa 2 00001 2361 00 4601 ldq bp|1 007240 aa 000000 1160 07 4602 cmpq 0,dl use zero if q < 0 007241 aa 000002 6050 04 4603 tpl 2,ic 007242 aa 000000 2360 07 4604 ldq 0,dl 007243 0a 007227 7100 00 4605 tra z_done return 4606 " 007244 0a 007251 7000 00 4607 sr_2: tsx0 string_signal 007245 aa 000000 2360 07 4608 ldq 0,dl use j = 0 007246 0a 007227 7100 00 4609 tra z_done return 4610 " 007247 4611 signal_stringrange: 007247 aa 6 00037 4401 00 4612 sxl0 sp|stack_frame.operator_ret_ptr 007250 0a 007227 6200 00 4613 eax0 z_done set return ptr and fall into string_signal 4614 " 007251 4615 string_signal: 007251 aa 6 00076 7401 00 4616 stx0 sp|temp save x0 007252 aa 6 00074 2521 00 4617 spribp sp|lv and bp 007253 aa 000013 7260 07 4618 lxl6 11,dl get length of condition 007254 0a 007262 3520 00 4619 eppbp strg get ptr to condition name 007255 aa 001275 2360 07 4620 ldq =701,dl load oncode value 007256 0a 011243 7010 00 4621 tsx1 call_signal_ signal "stringrange" 007257 aa 6 00076 2201 00 4622 ldx0 sp|temp restore x0 007260 aa 6 00074 3521 20 4623 eppbp sp|lv,* and bp 007261 aa 000000 7100 10 4624 tra 0,0 and return 007262 aa 163 164 162 151 4625 strg: aci "stringrange" 007263 aa 156 147 162 141 007264 aa 156 147 145 000 4626 " 4627 " non-local transfer operator. entered with bp pointing 4628 " at destination and number of stack levels to pop in x7. 4629 " 007265 4630 tra_ext_1: 007265 aa 000000 6360 17 4631 eaq 0,7 move number of levels to ql 007266 aa 000022 7720 00 4632 qrl 18 007267 aa 6 00074 2521 00 4633 spribp sp|lv save ptr to destination 007270 0a 005674 7010 00 4634 tsx1 display_chase get ptr to stack frame 007271 aa 6 00076 2521 00 4635 spribp sp|lv+2 finish the label variable 007272 aa 6 00074 3521 00 4636 eppbp sp|lv fall into unwinder_ call 4637 " 4638 " non-local transfer operator. entered with bp pointing 4639 " at a label variable. 4640 " 007273 4641 tra_ext_2: 007273 aa 6 00072 2521 00 4642 spribp sp|arg_list+2 save ptr to label var 007274 aa 004000 4310 07 4643 fld 2*1024,dl there are 2 args 007275 aa 6 00070 7571 00 4644 staq sp|arg_list .. 007276 aa 6 00070 3501 00 4645 eppap sp|arg_list get ptr to arg_list 007277 0a 011323 7010 00 4646 tsx1 get_our_lp get ptr to our linkage 007300 4a 4 00270 7101 20 4647 tra |[unwinder_] go unwind stack 4648 " 4649 " operator to assign auto adjustable variables at end of stack 4650 " frame. entered with number of words in q, exit with pointer 4651 " to storage in bp. 4652 " 007301 4653 alloc_auto_adj: 007301 aa 000017 6360 06 4654 eaq 15,ql make size a multiple of 16 007302 aa 777760 3760 03 4655 anq =o777760,du .. 4656 get_stack_offset 007303 aa 6 00000 6351 00 eaa sp|0 get offset of stack frame in au 007304 0a 011677 6750 00 era mask_bit_one form 2's complement of whole a-reg 007305 aa 000001 0350 07 adla 1,dl w/o overflow 007306 aa 6 00004 3521 20 4657 eppbp sp|4,* get ptr to storage 007307 aa 6 00005 0361 00 4658 adlq sp|5 get new end of stackframe 007310 aa 6 00023 7561 00 4659 stq sp|stack_frame.next_sp+1 update next sp ptr 007311 aa 6 00025 7561 01 4660 stq sp|stack_header.stack_end_ptr+1,au update stack end ptr also 007312 aa 6 00005 7561 00 4661 stq sp|5 and set to remember this storage 007313 aa 6 00046 7101 70 4662 tra sp|tbp,*0 return to caller 4663 " 4664 " floating point mod operators entered with x in eaq and 4665 " bp pointing at y. mod(x,y) = if y = 0 then x else x - floor(x/y)*y 4666 " 007314 aa 2 00000 4301 00 4667 mdfl1: fszn bp|0 return x if y = 0 007315 0a 007333 6000 00 4668 tze mdfl1a 007316 aa 6 00076 4551 00 4669 fst sp|temp save x 007317 aa 2 00000 5651 00 4670 fdv bp|0 divide x/y 007320 aa 000003 6040 04 4671 tmi 3,ic get floor 007321 aa 216000 4750 03 4672 fad =71b25,du 007322 aa 000005 7100 04 4673 tra 5,ic 007323 aa 000000 5130 00 4674 fneg 007324 0a 012440 4750 00 4675 fad almost_one 007325 aa 216000 4750 03 4676 fad =71b25,du 007326 aa 000000 5130 00 4677 fneg 007327 aa 2 00000 4611 00 4678 fmp bp|0 form floor(x/y)*y 007330 aa 000000 5130 00 4679 fneg 007331 aa 6 00076 4751 00 4680 fad sp|temp form answer 007332 aa 6 00046 7101 70 4681 tra sp|tbp,*0 and return 007333 aa 400000 5150 03 4682 mdfl1a: fcmp =0.0,du set indicators properly 007334 aa 6 00046 7101 70 4683 tra sp|tbp,*0 4684 " 007335 aa 6 00076 4571 00 4685 mdfl2: dfst sp|temp save x 007336 aa 2 00000 4331 00 4686 dfld bp|0 get y 007337 0a 007352 6000 00 4687 tze mdfl2a return x if y = 0 007340 aa 6 00076 5271 00 4688 dfdi sp|temp divide x/y 007341 aa 000003 6040 04 4689 tmi 3,ic form floor 007342 0a 012442 4770 00 4690 dfad k71b25 007343 aa 000005 7100 04 4691 tra 5,ic 007344 aa 000000 5130 00 4692 fneg 007345 0a 012440 4770 00 4693 dfad almost_one 007346 0a 012442 4770 00 4694 dfad k71b25 007347 aa 000000 5130 00 4695 fneg 007350 aa 2 00000 4631 00 4696 dfmp bp|0 form floor(x/y)*y 007351 aa 000000 5130 00 4697 fneg 007352 aa 6 00076 4771 00 4698 mdfl2a: dfad sp|temp form answer 007353 aa 6 00046 7101 70 4699 tra sp|tbp,*0 and return 4700 " 4701 " real truncation operator 4702 " 007354 4703 trunc_fl: 007354 aa 000003 6040 04 4704 tmi 3,ic 007355 aa 216000 4750 03 4705 fad =71b25,du 007356 aa 6 00046 7101 70 4706 tra sp|tbp,*0 007357 aa 000000 5130 00 4707 fneg 007360 aa 216000 4750 03 4708 fad =71b25,du 007361 aa 000000 5130 00 4709 fneg 007362 aa 6 00046 7101 70 4710 tra sp|tbp,*0 4711 " 4712 " single precision fixed truncate, entered with scale in x2 4713 " 007363 4714 trunc_fx1: 007363 aa 000000 1160 07 4715 cmpq 0,dl 007364 aa 000003 6040 04 4716 tmi 3,ic 007365 aa 000000 7320 12 4717 qrs 0,2 007366 aa 6 00046 7101 70 4718 tra sp|tbp,*0 007367 aa 6 00076 7561 00 4719 stq sp|temp 007370 aa 6 00076 3361 00 4720 lcq sp|temp 007371 aa 000000 7320 12 4721 qrs 0,2 007372 aa 6 00076 7561 00 4722 stq sp|temp 007373 aa 6 00076 3361 00 4723 lcq sp|temp 007374 aa 6 00046 7101 70 4724 tra sp|tbp,*0 4725 " 4726 " double precision fixed truncate, entered with scale in x2 4727 " 007375 4728 trunc_fx2: 007375 0a 001426 1170 00 4729 cmpaq bit_mask 007376 aa 000003 6040 04 4730 tmi 3,ic 007377 aa 000000 7330 12 4731 lrs 0,2 007400 aa 6 00046 7101 70 4732 tra sp|tbp,*0 007401 aa 000000 5330 00 4733 negl 007402 aa 000000 7330 12 4734 lrs 0,2 007403 aa 000000 5330 00 4735 negl 007404 aa 6 00046 7101 70 4736 tra sp|tbp,*0 4737 " 4738 " operators to do floating point floor and ceiling functions 4739 " these use the relations 4740 " floor(-x) = -ceil(|x|) 4741 " ceil(-x) = -floor(|x|) 4742 " 007405 4743 floor_fl: 007405 aa 000003 6040 04 4744 tmi 3,ic 007406 aa 216000 4750 03 4745 fad =71b25,du 007407 aa 6 00046 7101 70 4746 tra sp|tbp,*0 007410 aa 000000 5130 00 4747 fneg 007411 0a 012440 4770 00 4748 dfad almost_one 007412 aa 216000 4750 03 4749 fad =71b25,du 007413 aa 000000 5130 00 4750 fneg 007414 aa 6 00046 7101 70 4751 tra sp|tbp,*0 4752 " 007415 4753 ceil_fl: 007415 aa 000004 6040 04 4754 tmi 4,ic 007416 0a 012440 4770 00 4755 dfad almost_one 007417 aa 216000 4750 03 4756 fad =71b25,du 007420 aa 6 00046 7101 70 4757 tra sp|tbp,*0 007421 aa 000000 5130 00 4758 fneg 007422 aa 216000 4750 03 4759 fad =71b25,du 007423 aa 000000 5130 00 4760 fneg 007424 aa 6 00046 7101 70 4761 tra sp|tbp,*0 4762 " 4763 " operators to do single precision fixed floor and ceiling functions 4764 " entered with argument in q register and scale in index 2 4765 007425 4766 floor_fx1: 007425 aa 000000 1160 07 4767 cmpq 0,dl 007426 aa 000003 6040 04 4768 tmi 3,ic 007427 aa 000000 7320 12 4769 qrs 0,2 007430 aa 6 00046 7101 70 4770 tra sp|tbp,*0 007431 aa 6 00076 7561 00 4771 stq sp|temp 007432 aa 6 00076 3361 00 4772 lcq sp|temp 007433 aa 000044 1020 03 4773 cmpx2 36,du 007434 aa 000003 6044 04 4774 tmoz 3,ic 007435 0a 012053 0760 00 4775 adq floor_ceil_mask+36 007436 aa 000002 7100 04 4776 tra 2,ic 007437 0a 012007 0760 12 4777 adq floor_ceil_mask,2 007440 aa 000000 7320 12 4778 qrs 0,2 007441 aa 6 00076 7561 00 4779 stq sp|temp 007442 aa 6 00076 3361 00 4780 lcq sp|temp 007443 aa 6 00046 7101 70 4781 tra sp|tbp,*0 4782 " 007444 4783 ceil_fx1: 007444 aa 000000 1160 07 4784 cmpq 0,dl 007445 aa 000010 6040 04 4785 tmi 8,ic 007446 aa 000044 1020 03 4786 cmpx2 36,du 007447 aa 000003 6044 04 4787 tmoz 3,ic 007450 0a 012053 0760 00 4788 adq floor_ceil_mask+36 007451 aa 000002 7100 04 4789 tra 2,ic 007452 0a 012007 0760 12 4790 adq floor_ceil_mask,2 007453 aa 000000 7320 12 4791 qrs 0,2 007454 aa 6 00046 7101 70 4792 tra sp|tbp,*0 007455 aa 6 00076 7561 00 4793 stq sp|temp 007456 aa 6 00076 3361 00 4794 lcq sp|temp 007457 aa 000000 7320 12 4795 qrs 0,2 007460 aa 6 00076 7561 00 4796 stq sp|temp 007461 aa 6 00076 3361 00 4797 lcq sp|temp 007462 aa 6 00046 7101 70 4798 tra sp|tbp,*0 4799 " 4800 " operators do double precision fixed floor and ceiling functions 4801 " entered with argument in aq register, scale in index 2, and -2*scale 4802 " in index 3 4803 " 007463 4804 floor_fx2: 007463 0a 001426 1170 00 4805 cmpaq bit_mask 007464 aa 000003 6040 04 4806 tmi 3,ic 007465 aa 000000 7330 12 4807 lrs 0,2 007466 aa 6 00046 7101 70 4808 tra sp|tbp,*0 007467 aa 000000 5330 00 4809 negl 007470 aa 777560 1030 03 4810 cmpx3 -144,du 007471 aa 000003 6050 04 4811 tpl 3,ic 007472 0a 001646 0770 00 4812 adaq mask_bit 007473 aa 000002 7100 04 4813 tra 2,ic 007474 0a 002066 0770 13 4814 adaq mask_bit+144,3 007475 aa 000000 7330 12 4815 lrs 0,2 007476 aa 000000 5330 00 4816 negl 007477 aa 6 00046 7101 70 4817 tra sp|tbp,*0 4818 " 007500 4819 ceil_fx2: 007500 0a 001426 1170 00 4820 cmpaq bit_mask 007501 aa 000010 6040 04 4821 tmi 8,ic 007502 aa 777560 1030 03 4822 cmpx3 -144,du 007503 aa 000003 6050 04 4823 tpl 3,ic 007504 0a 001646 0770 00 4824 adaq mask_bit 007505 aa 000002 7100 04 4825 tra 2,ic 007506 0a 002066 0770 13 4826 adaq mask_bit+144,3 007507 aa 000000 7330 12 4827 lrs 0,2 007510 aa 6 00046 7101 70 4828 tra sp|tbp,*0 007511 aa 000000 5330 00 4829 negl 007512 aa 000000 7330 12 4830 lrs 0,2 007513 aa 000000 5330 00 4831 negl 007514 aa 6 00046 7101 70 4832 tra sp|tbp,*0 4833 " 4834 " operator to round single fixed binary 4835 " entered with (scale - k) in index 7 4836 " 007515 4837 round_fx1: 007515 aa 000000 1160 07 4838 cmpq 0,dl set indicators 007516 0a 007532 6040 00 4839 tmi round_fx1b skip if negative 007517 aa 000000 6210 00 4840 eax1 0 remember was positive 007520 4841 round_fx1a: 007520 aa 6 00076 7561 00 4842 stq sp|temp save abs(arg) 007521 aa 000001 2360 07 4843 ldq 1,dl form 1/2 at proper scale 007522 aa 777777 7360 17 4844 qls -1,7 007523 aa 6 00076 0761 00 4845 adq sp|temp add abs(arg) 007524 aa 000000 7320 17 4846 qrs 0,7 drop bits to right 007525 aa 000000 1010 03 4847 cmpx1 0,du was arg positive 007526 aa 6 00046 6001 70 4848 tze sp|tbp,*0 yes, can return 007527 aa 6 00076 7561 00 4849 stq sp|temp arg was negative, negate result 007530 aa 6 00076 3361 00 4850 lcq sp|temp 007531 aa 6 00046 7101 70 4851 tra sp|tbp,*0 before returning 007532 4852 round_fx1b: 007532 aa 6 00076 7561 00 4853 stq sp|temp get abs(arg) 007533 aa 6 00076 3361 00 4854 lcq sp|temp 007534 aa 000001 6210 00 4855 eax1 1 remember arg was negative 007535 0a 007520 7100 00 4856 tra round_fx1a and join positive case 4857 " 4858 " operator to round double fixed binary 4859 " entered with (scale - k) in index 7 4860 " 007536 4861 round_fx2: 007536 0a 001426 1170 00 4862 cmpaq bit_mask set indicators 007537 0a 007550 6040 00 4863 tmi round_fx2b skip if negative 007540 aa 000000 6210 00 4864 eax1 0 remember arg was positive 007541 4865 round_fx2a: 007541 aa 6 00076 7571 00 4866 staq sp|temp save abs(arg) 007542 0a 012436 2370 00 4867 ldaq one form 1/2 at proper scale 007543 aa 777777 7370 17 4868 lls -1,7 007544 aa 6 00076 0771 00 4869 adaq sp|temp add abs(arg) 007545 aa 000000 7330 17 4870 lrs 0,7 drop bits to right 007546 0a 006530 7160 11 4871 xec sign_change,1 put back proper sign 007547 aa 6 00046 7101 70 4872 tra sp|tbp,*0 and return 007550 4873 round_fx2b: 007550 aa 000000 5330 00 4874 negl 0 take abs(arg) 007551 aa 000001 6210 00 4875 eax1 1 remember arg was negative 007552 0a 007541 7100 00 4876 tra round_fx2a join positive case 4877 " 4878 " operator to compute round(x,k) for floating point values. 4879 " entered with x in eaq and k immediately following tsx0 4880 " 007553 4881 round_fl: 007553 aa 000000 6210 00 4882 eax1 0 assume sign + 007554 aa 6 00046 3521 70 4883 eppbp sp|tbp,*0 get ptr to K in lhs 007555 aa 400000 5150 03 4884 fcmp =0.0,du 007556 aa 2 00001 6001 00 4885 tze bp|1 return if 0 007557 aa 000003 6050 04 4886 tpl 3,ic 007560 aa 000000 5130 00 4887 fneg 0 get abs value 007561 aa 000001 6210 00 4888 eax1 1 007562 aa 2 00000 2201 00 4889 ldx0 bp|0 load k 007563 aa 6 00076 4571 00 4890 dfst sp|temp save value 007564 aa 200000 2350 03 4891 lda =o200000,du get bit in proper position 007565 aa 000000 2360 07 4892 ldq 0,dl 007566 aa 000000 7330 10 4893 lrs 0,0 shift 007567 aa 6 00076 4771 00 4894 dfad sp|temp perform rounding 007570 aa 2 00000 0601 00 4895 adx0 bp|0 get 2*k 007571 0a 001430 3770 10 4896 anaq bit_mask+2,0 erase low order bits 007572 0a 007574 7160 11 4897 xec fl_sign_change,1 put back correct sign 007573 aa 2 00001 7101 00 4898 tra bp|1 and return 4899 " 007574 4900 fl_sign_change: 007574 aa 000000 0110 00 4901 nop 0 007575 aa 000000 5130 00 4902 fneg 0 4903 " 4904 " Operator to round a floating point number to the nearest whole 4905 " number. Entered with value in EAQ and indicators set. Result in 4906 " EAQ. 4907 " 007576 4908 nearest_whole_number: 007576 0a 007602 6040 00 4909 tmi nearest_whole_negative 007577 aa 000400 4750 03 4910 fad =0.5,du 007600 aa 216000 4750 03 4911 fad =71b25,du 007601 aa 6 00046 7101 70 4912 tra sp|tbp,*0 4913 007602 4914 nearest_whole_negative: 007602 aa 000000 5130 00 4915 fneg 007603 aa 000400 4750 03 4916 fad =0.5,du 007604 aa 216000 4750 03 4917 fad =71b25,du 007605 aa 000000 5130 00 4918 fneg 007606 aa 6 00046 7101 70 4919 tra sp|tbp,*0 4920 " 4921 " Operator to round a floating point number to the nearest integer. 4922 " Entered with value in EAQ and indicators set. Result in Q. 4923 " 007607 4924 nearest_integer: 007607 0a 007613 6040 00 4925 tmi nearest_integer_negative 007610 aa 000400 4750 03 4926 fad =0.5,du 007611 aa 216000 4350 03 4927 ufa =71b25,du 007612 aa 6 00046 7101 70 4928 tra sp|tbp,*0 4929 007613 4930 nearest_integer_negative: 007613 aa 000000 5130 00 4931 fneg 007614 aa 000400 4750 03 4932 fad =0.5,du 007615 aa 216000 4350 03 4933 ufa =71b25,du 007616 aa 000000 5330 00 4934 negl 007617 aa 6 00046 7101 70 4935 tra sp|tbp,*0 4936 4937 " Operator to convert a long bit string to double precision fixed binary. 4938 " Entered with bit string previously setup. 4939 007620 4940 longbs_to_fx2: 007620 aa 6 00050 3521 20 4941 epp2 sp|temp_pt,* " pr2 = ptr to string 007621 aa 6 00062 2361 00 4942 ldq sp|bit_lg1 " q = length of string in bits 007622 aa 6 00076 4501 00 4943 stz sp|temp " clear high order bit of result 007623 aa 0 03100 0615 40 4944 csr (pr,rl),(pr),bool(move),fill(0) 007624 aa 200000 000006 4945 descb pr2|0,ql 007625 aa 600076 010107 4946 descb sp|temp(1),71 007626 0a 007634 6014 00 4947 trtf longbs_to_fx2_short " Was string longer than 71 bits? 007627 aa 000107 1760 07 4948 sbq 71,dl " Yes: Remove last 71 bits from string length 007630 aa 0 00000 0665 40 4949 cmpb (pr,rl),(),fill(0) " Make sure the leading bits are zero. 007631 aa 200000 000006 4950 descb pr2|0,ql 007632 aa 000000 000000 4951 descb 0,0 007633 0a 007775 6010 00 4952 tnz signal_size_condition 007634 4953 longbs_to_fx2_short: 007634 aa 6 00076 2371 00 4954 ldaq sp|temp " aq = result 007635 aa 6 00046 7101 70 4955 tra sp|tbp,*x0 " return 4956 4957 " Operator to convert a long bit string to bit 18 (used for ptr built-ins). 4958 " Entered with bit string previously setup. 4959 007636 4960 longbs_to_bs18: 007636 aa 6 00050 3521 20 4961 epp2 sp|temp_pt,* " pr2 = ptr to string 007637 aa 6 00062 2351 00 4962 lda sp|bit_lg1 " a = length of string in bits 007640 aa 0 03100 0605 40 4963 csl (pr,rl),(pr),bool(move),fill(0) 007641 aa 200000 000005 4964 descb pr2|0,al 007642 aa 600076 000022 4965 descb sp|temp,18 007643 aa 6 00076 2351 00 4966 lda sp|temp " au = first 18 bits of string 007644 0a 001472 3770 00 4967 anaq bit_mask+2*18 " al, q = 0 007645 aa 6 00046 7101 70 4968 tra sp|tbp,*x0 " return 4969 4970 " operator to convert a packed (single word) ptr to unpacked (its) 4971 " enter with packed pointer in q, exit with its pair in aq 4972 " 007646 4973 pk_to_unpk: 007646 aa 6 00074 7561 00 4974 stq sp|lv save packed ptr 007647 aa 6 00072 2521 00 4975 spribp sp|temp2 007650 aa 6 00074 7621 00 4976 lprpbp sp|lv load packed ptr (get ring no right) 007651 aa 6 00070 2521 00 4977 spribp sp|save_regs store as unpacked ptr 007652 aa 6 00070 2371 00 4978 ldaq sp|save_regs load ITS pair into aq 007653 aa 6 00072 3521 20 4979 eppbp sp|temp2,* restore original bp 007654 aa 6 00046 7101 70 4980 tra sp|tbp,*0 4981 " 4982 " operator to convert an unpacked (its) ptr to packed (single word) 4983 " enter with its pair in aq, exit with packed pointer in q 4984 " 007655 4985 unpk_to_pk: 007655 aa 000022 7710 00 4986 arl 18 007656 aa 000022 7370 00 4987 lls 18 007657 aa 000003 7360 00 4988 qls 3 007660 aa 000036 7730 00 4989 lrl 30 007661 aa 000036 7760 00 4990 qlr 30 007662 aa 6 00046 7101 70 4991 tra sp|tbp,*0 4992 " 4993 " operator to load the packed pointer in q register into bp register 4994 " 007663 4995 packed_to_bp: 007663 aa 6 00076 7561 00 4996 stq sp|temp 007664 aa 6 00076 7621 00 4997 lprpbp sp|temp 007665 aa 6 00046 7101 70 4998 tra sp|tbp,*0 and return 4999 " 5000 " The following operators are used to move a block of <= 256 elements 5001 " They are entered with lp and bp pointing to source and destination 5002 " and au holding value for x0 during rpd loop. 5003 " 5004 " Single word items, lp -> source, bp -> destination 5005 " 007666 aa 000000 0110 03 5006 odd "to force rpd odd 007667 5007 rpd_odd_lp_bp: 007667 aa 6 00037 4401 00 5008 sxl0 sp|stack_frame.operator_ret_ptr 007670 aa 001400 6200 01 5009 eax0 rpd_bits,au init rpd loop 007671 aa 000000 6210 00 5010 eax1 0 007672 aa 000000 6220 00 5011 eax2 0 007673 aa 000000 5602 01 5012 rpdx 0,1 007674 aa 4 00000 2351 11 5013 lda lp|0,1 007675 aa 2 00000 7551 12 5014 sta bp|0,2 007676 0a 007227 7100 00 5015 tra z_done return 5016 " 5017 " Single word items, bp -> source, lp -> destination 5018 " 5019 odd "to force rpd odd 007677 5020 rpd_odd_bp_lp: 007677 aa 6 00037 4401 00 5021 sxl0 sp|stack_frame.operator_ret_ptr 007700 aa 001400 6200 01 5022 eax0 rpd_bits,au 007701 aa 000000 6210 00 5023 eax1 0 007702 aa 000000 6220 00 5024 eax2 0 007703 aa 000000 5602 01 5025 rpdx 0,1 007704 aa 2 00000 2351 11 5026 lda bp|0,1 007705 aa 4 00000 7551 12 5027 sta lp|0,2 007706 0a 007227 7100 00 5028 tra z_done return 5029 " 5030 " Double word items, lp -> source, bp -> destination 5031 " 5032 odd "to force rpd odd 007707 5033 rpd_even_lp_bp: 007707 aa 6 00037 4401 00 5034 sxl0 sp|stack_frame.operator_ret_ptr 007710 aa 001400 6200 01 5035 eax0 rpd_bits,au init rpd loop 007711 aa 000000 6210 00 5036 eax1 0 007712 aa 000000 6220 00 5037 eax2 0 007713 aa 000000 5602 02 5038 rpdx 0,2 007714 aa 4 00000 2371 11 5039 ldaq lp|0,1 007715 aa 2 00000 7571 12 5040 staq bp|0,2 007716 0a 007227 7100 00 5041 tra z_done return 5042 " 5043 " Double word items, bp -> source, lp -> destination 5044 " 5045 odd "to force rpd odd 007717 5046 rpd_even_bp_lp: 007717 aa 6 00037 4401 00 5047 sxl0 sp|stack_frame.operator_ret_ptr 007720 aa 001400 6200 01 5048 eax0 rpd_bits,au init rpd loop 007721 aa 000000 6210 00 5049 eax1 0 007722 aa 000000 6220 00 5050 eax2 0 007723 aa 000000 5602 02 5051 rpdx 0,2 007724 aa 2 00000 2371 11 5052 ldaq bp|0,1 007725 aa 4 00000 7571 12 5053 staq lp|0,2 007726 0a 007227 7100 00 5054 tra z_done return 5055 " 5056 " 5057 " The following macro is the trace macro. It contains the calling 5058 " sequence to trace. 5059 " 5060 macro trace 1 5061 ife &1,trace_ 2 5062 epaq * get segment number of pl1_operators_ 3 5063 lprplp sb|stack_header.lot_ptr,*au get our linkage ptr 4 5064 sprpbp sb|stack_header.stack_end_ptr,* save entry ptr as packed ptr 5 5065 eppbp sb|stack_header.stack_end_ptr,* 6 5066 sprpab bp|1 save lisp linkage ptr (might be lisp environment) 7 5067 tspbp trace_catch_$catch_pl1_ 8 5068 eppab sb|stack_header.stack_end_ptr,* 9 5069 lprpbp ab|0 restore entry ptr 10 5070 lprpab ab|1 restore lisp linkage ptr 11 5071 ifend 12 5072 &end 5073 " 5074 " Macro to generate the ALM entry operator with or without the calling sequence for 5075 " trace_catch_$catch_pl1_. When the ALM entry operator with the calling sequence for 5076 " trace is invoked it will allow trace to meter the ALM program and print its arguments 5077 " on entrance and exit. (P. Krupp 09/20/77) 5078 5079 macro alm_entry_op 1 5080 " BEGIN MACRO alm_entry_op 2 5081 &1alm_entry: 3 5082 eppbp bp|-1 generate pointer to entry structure 4 5083 trace &1 5 5084 epplp sb|stack_header.stack_end_ptr,* get a pointer to the next stack frame 6 5085 spribp lp|stack_frame.entry_ptr 7 5086 epaq bp|0 get seg no of object in a 8 5087 lprplb sb|stack_header.isot_ptr,*au get packed ptr to static from isot 9 5088 sprplb lp|stack_frame.static_ptr save in next stack frame 10 5089 lprplp sb|stack_header.lot_ptr,*au get packed ptr to linkage from lot 11 5090 tra bp|1 return to alm prog 12 5091 " END MACRO alm_entry_op 13 5092 &end 5093 5094 " The following operators are used by ALM 5095 " The order of the following operators must be maintained because of 5096 " coding of default_error_handler_ 5097 " 007727 5098 alm_operators_begin: 007727 5099 alm_call: 007727 aa 6 00024 6501 00 5100 sprilp sp|stack_frame.return_ptr save return pointer 007730 aa 6 00025 7541 00 5101 sti sp|stack_frame.return_ptr+1 save indicators 007731 aa 6 00030 3701 20 5102 epplp sp|stack_frame.lp_ptr,* set up our lp 007732 aa 2 00000 7131 00 5103 callsp bp|0 do the call 5104 " 007733 5105 alm_push: 007733 aa 7 00024 2521 20 5106 spribp sb|stack_header.stack_end_ptr,* save return from operator 007734 aa 7 00024 3521 20 5107 eppbp sb|stack_header.stack_end_ptr,* get pointer to new stack frame 007735 aa 2 00020 6521 00 5108 sprisp bp|stack_frame.prev_sp save previous ptr in new frame 007736 aa 2 00032 2501 00 5109 spriap bp|stack_frame.arg_ptr save argument ptr 007737 aa 2 00030 6501 00 5110 sprilp bp|stack_frame.lp_ptr save linkage ptr 007740 aa 2 00000 3721 00 5111 eppsp bp|0 move up to new frame 007741 aa 6 00000 3521 17 5112 eppbp sp|0,7 get pointer to end of this new frame 007742 aa 7 00024 2521 00 5113 spribp sb|stack_header.stack_end_ptr and update stack end pointer 007743 aa 6 00022 2521 00 5114 spribp sp|stack_frame.next_sp and set next sp of new frame 007744 aa 000001 6270 00 5115 eax7 1 set ALM translator ID for debugging 007745 aa 6 00037 7471 00 5116 stx7 sp|stack_frame.translator_id 007746 aa 6 00000 7101 20 5117 tra sp|0,* return to alm program 5118 " 5119 alm_entry_op " BEGIN MACRO alm_entry_op 007747 alm_entry: 007747 aa 2 77777 3521 00 eppbp bp|-1 generate pointer to entry structure trace 007750 aa 7 00024 3701 20 epplp sb|stack_header.stack_end_ptr,* get a pointer to the next stack frame 007751 aa 4 00026 2521 00 spribp lp|stack_frame.entry_ptr 007752 aa 2 00000 2131 00 epaq bp|0 get seg no of object in a 007753 aa 7 00052 7651 61 lprplb sb|stack_header.isot_ptr,*au get packed ptr to static from isot 007754 aa 4 00034 5451 00 sprplb lp|stack_frame.static_ptr save in next stack frame 007755 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get packed ptr to linkage from lot 007756 aa 2 00001 7101 00 tra bp|1 return to alm prog " END MACRO alm_entry_op 5120 " 007757 5121 alm_return: 007757 5122 inhibit on 007757 aa 7 00024 6523 00 5123 sprisp sb|stack_header.stack_end_ptr update stack end ptr 007760 aa 6 00020 3723 20 5124 eppsp sp|stack_frame.prev_sp,* pop stack 007761 5125 inhibit off 007761 aa 6 00000 3731 00 5126 epbpsb sp|0 set up stack base in case we just switched stacks 007762 aa 6 00030 3501 20 5127 eppap sp|stack_frame.operator_ptr,* set op ptr of frame being returned to 007763 aa 6 00025 6341 00 5128 ldi sp|stack_frame.return_ptr+1 restore indicators for caller 007764 aa 6 00024 6101 00 5129 rtcd sp|stack_frame.return_ptr return to calling program 5130 " 007765 5131 alm_return_no_pop: 007765 aa 6 00000 3731 00 5132 epbpsb sp|0 set up stack base in case returning to outer ring 007766 aa 6 00030 3501 20 5133 eppap sp|stack_frame.operator_ptr,* set up operator ptr of frame being returned to 007767 aa 6 00025 6341 00 5134 ldi sp|stack_frame.return_ptr+1 restore indicators for caller 007770 aa 6 00024 6101 00 5135 rtcd sp|stack_frame.return_ptr return to calling program 5136 " 007771 5137 alm_operators_end: 5138 " 5139 " 5140 " operator to check size condition for single fixed binary 5141 " entered with number in q and -precision in x7 5142 " Registers modified: none 5143 " 007771 5144 size_check_fx1: 007771 aa 6 00076 7571 00 5145 staq sp|temp save aq 007772 aa 000044 7370 00 5146 lls 36 shift number to a 007773 0a 011743 4050 17 5147 cmg mask_bit_one+36,7 compare magnitude with max allowed 007774 0a 010010 6044 00 5148 tmoz size_ok_fx1 skip if in range 007775 5149 signal_size_condition: 007775 aa 6 00056 2521 00 5150 spribp sp|double_temp 007776 0a 010052 3520 00 5151 eppbp size_name get ptr to name of condition 007777 aa 6 00072 7461 00 5152 stx6 sp|temp2 save x6 010000 aa 000004 6260 00 5153 eax6 size_length and load size 010001 aa 001277 2360 07 5154 ldq =703,dl load oncode value 010002 aa 6 00037 4401 00 5155 ssc: sxl0 sp|stack_frame.operator_ret_ptr save return offset 010003 0a 011243 7010 00 5156 tsx1 call_signal_ 010004 aa 6 00072 2261 00 5157 ldx6 sp|temp2 restore x6 010005 aa 6 00056 3521 20 5158 eppbp sp|double_temp,* restore bp 010006 aa 6 00037 7201 00 5159 lxl0 sp|stack_frame.operator_ret_ptr 010007 aa 6 00037 4501 00 5160 stz sp|stack_frame.operator_ret_ptr 010010 5161 size_ok_fx1: 010010 aa 6 00076 2351 00 5162 lda sp|temp restore A 010011 aa 6 00077 2361 00 5163 ldq sp|temp+1 restore Q and its indicators 010012 aa 6 00046 7101 70 5164 tra sp|tbp,*0 and return 5165 " 5166 " operator to check size condition for double fixed binary 5167 " entered with number in aq and -2*precision in x7 5168 " Registers modified: none 5169 " 010013 5170 size_check_fx2: 010013 0a 001426 1170 00 5171 cmpaq bit_mask set indicators 010014 aa 6 00076 7571 00 5172 staq sp|temp save aq 010015 aa 000002 6050 04 5173 tpl 2,ic get absolute value 010016 aa 000000 5330 00 5174 negl 0 010017 0a 002066 1170 17 5175 cmpaq mask_bit+144,7 compare with max allowed 010020 0a 007775 6054 00 5176 tpnz signal_size_condition 010021 5177 size_ok_fx2: 010021 aa 6 00076 2371 00 5178 ldaq sp|temp restore AQ and its indicators 010022 aa 6 00046 7101 70 5179 tra sp|tbp,*0 and return 5180 " 5181 " operator to check size condition for unsigned single fixed binary 5182 " entered with number in q and -precision in x7 5183 " Registers modified: none 5184 " 010023 5185 size_check_uns_fx1: 010023 aa 6 00076 7571 00 5186 staq sp|temp save aq 010024 aa 000000 1160 07 5187 cmpq 0,dl is it negative? 010025 0a 007775 6040 00 5188 tmi signal_size_condition yes - raise size condition 010026 0a 011743 1160 17 5189 cmpq mask_bit_one+36,7 is its value allowed by its precision? 010027 0a 010010 6044 00 5190 tmoz size_ok_fx1 yes - go back 010030 0a 007775 7100 00 5191 tra signal_size_condition no - raise size condition 5192 " 5193 " operator to check size condition for unsigned double fixed binary 5194 " entered with number in aq and -2*precision in x7 5195 " Registers modified: none 5196 " 010031 5197 size_check_uns_fx2: 010031 aa 6 00076 7571 00 5198 staq sp|temp save aq 010032 0a 001426 1170 00 5199 cmpaq bit_mask is it negative? 010033 0a 007775 6040 00 5200 tmi signal_size_condition yes - raise size condition 010034 0a 002066 1170 17 5201 cmpaq mask_bit+144,7 is its value allowed by its precision? 010035 0a 010021 6044 00 5202 tmoz size_ok_fx2 yes - go back 010036 0a 007775 7100 00 5203 tra signal_size_condition no - raise size condition 5204 " 5205 " operator to check if result of an 'mpy' exceeds one word. 5206 " entered with result of 'mpy' in AQ. 5207 " 010037 5208 mpy_overflow_check: 010037 aa 6 00076 7571 00 5209 staq sp|temp save AQ 010040 aa 000044 7370 00 5210 lls 36 sets carry flag if result too big 010041 0a 010021 6020 00 5211 tnc size_ok_fx2 restore AQ and return 010042 aa 6 00056 2521 00 5212 spribp sp|double_temp signal "fixedoverflow" 010043 0a 006402 3520 00 5213 eppbp overflow_name 010044 aa 6 00072 7461 00 5214 stx6 sp|temp2 010045 aa 000015 6260 00 5215 eax6 overflow_length 010046 aa 001307 2360 07 5216 ldq =711,dl 010047 0a 010002 7100 00 5217 tra ssc 5218 " 5219 " operator to signal "size" condition 5220 " 010050 5221 signal_size: 010050 aa 6 00076 7571 00 5222 staq sp|temp 010051 0a 007775 7100 00 5223 tra signal_size_condition 5224 " 010052 5225 size_name: 010052 aa 163 151 172 145 5226 aci "size" 000004 5227 equ size_length,4 5228 " 5229 " operator to signal "stringsize" condition 5230 " 010053 5231 signal_stringsize: 010053 aa 6 00076 7571 00 5232 staq sp|temp 010054 aa 6 00056 2521 00 5233 spribp sp|double_temp 010055 aa 6 00072 7461 00 5234 stx6 sp|temp2 010056 0a 010062 3520 00 5235 eppbp stringsize_name 010057 aa 000012 6260 00 5236 eax6 stringsize_length 010060 aa 001276 2360 07 5237 ldq =702,dl 010061 0a 010002 7100 00 5238 tra ssc 5239 " 010062 5240 stringsize_name: 010062 aa 163 164 162 151 5241 aci "stringsize" 010063 aa 156 147 163 151 010064 aa 172 145 000 000 000012 5242 equ stringsize_length,10 5243 " 5244 " operator to request fortran external storage allocation and/or 5245 " initialization. 5246 " 010065 5247 fort_storage: 010065 aa 6 00056 6521 00 5248 spri6 sp|double_temp stack frame pointer 010066 aa 6 00056 3521 00 5249 epp2 sp|double_temp 010067 aa 6 00072 2521 00 5250 spri2 sp|arg_list+2 argument 1 - stack pointer 010070 aa 6 00044 3521 00 5251 epp2 sp|linkage_ptr linkage pointer 010071 aa 6 00074 2521 00 5252 spri2 sp|arg_list+4 argument 2 - linkage pointer 010072 aa 6 00046 3521 70 5253 epp2 sp|tbp,*0 text pointer to arg_list 010073 aa 6 00050 2521 00 5254 spri2 sp|temp_pt 010074 aa 6 00050 3521 00 5255 epp2 sp|temp_pt 010075 aa 6 00076 2521 00 5256 spri2 sp|arg_list+6 argument 3 - argument pointer 010076 aa 000006 2350 03 5257 lda 6,du nargs = 3, quick call (no enviptr) 010077 aa 000000 2360 07 5258 ldq 0,dl no descriptors 010100 aa 6 00070 7571 00 5259 staq sp|arg_list 010101 aa 6 00070 3501 00 5260 epp0 sp|arg_list get argument list header 010102 aa 000001 0600 03 5261 adx0 1,du 010103 aa 6 00025 7401 00 5262 stx0 sp|stack_frame.return_ptr+1 save return point 010104 aa 6 00025 7541 00 5263 sti sp|stack_frame.return_ptr+1 save indicators 010105 0a 011323 7010 00 5264 tsx1 get_our_lp 010106 4a 4 00272 7131 20 5265 callsp fortran_storage_$create 5266 " 5267 " operator to enable a condition. calling sequence is: 5268 " eppbp name 5269 " lxl6 name_size 5270 " tsx0 ap|enable 5271 " tra on_unit_body 5272 " arg on_unit (snap & system flags in RHS if used) 5273 " tra skip_around_body 5274 " body of on unit starts here 5275 " 5276 include on_unit 10-1 " 10-2 " BEGIN INCLUDE FILE --- on_unit.incl.alm 5/75 RAB 10-3 " 000000 10-4 equ on_unit.name,0 000002 10-5 equ on_unit.body,2 000004 10-6 equ on_unit.size,4 000005 10-7 equ on_unit.next,5 upper offset relative to stack FRAME 000005 10-8 equ on_unit.flags,5 lower 000006 10-9 equ on_unit.file,6 000010 10-10 equ on_unit.file_copy,8 10-11 " 10-12 " END INCLUDE FILE --- on_unit.incl.alm 10-13 " 010107 5277 enable_op: 010107 aa 6 00037 4401 00 5278 sxl0 sp|stack_frame.operator_ret_ptr 010110 aa 6 00046 3701 70 5279 epplp sp|tbp,*0 010111 aa 000100 2350 07 5280 lda =o100,dl is there a valid on_unit_list 010112 aa 6 00020 3151 00 5281 cana sp|stack_frame.prev_sp check bit 29 of sp|stack_frame.prev_sp 010113 aa 000003 6010 04 5282 tnz 3,ic non-zero means ok 010114 aa 6 00036 4501 00 5283 stz sp|stack_frame.on_unit_rel_ptrs init ptr 010115 aa 6 00020 2551 00 5284 orsa sp|stack_frame.prev_sp and set bit 5285 " 010116 aa 6 00036 2211 00 5286 ldx1 sp|stack_frame.on_unit_rel_ptrs get rel ptr to first enabled unit 010117 0a 010124 6000 00 5287 tze add_on zero means chain empty 010120 aa 4 00001 1011 00 5288 on_1: cmpx1 lp|1 is this the unit we want 010121 0a 010130 6000 00 5289 tze have_on yes, go process 010122 aa 6 00005 2211 11 5290 ldx1 sp|on_unit.next,1 no, get ptr to next on chain 010123 0a 010120 6010 00 5291 tnz on_1 and repeat if end not reached 010124 aa 4 00001 2211 00 5292 add_on: ldx1 lp|1 get rel ptr to new unit 010125 aa 6 00036 2201 00 5293 ldx0 sp|stack_frame.on_unit_rel_ptrs get rel ptr to first unit 010126 aa 6 00005 7401 11 5294 stx0 sp|on_unit.next,1 set next ptr of new unit 010127 aa 6 00036 7411 00 5295 stx1 sp|stack_frame.on_unit_rel_ptrs make new unit first on chain 010130 aa 6 00000 2521 11 5296 have_on: spribp sp|on_unit.name,1 set name of new unit 010131 aa 6 00002 6501 11 5297 sprilp sp|on_unit.body,1 set ptr to body 010132 aa 6 00004 4501 11 5298 stz sp|on_unit.size,1 clear size field 010133 aa 6 00004 4461 11 5299 sxl6 sp|on_unit.size,1 set size of unit name 010134 aa 4 00001 7201 00 5300 lxl0 lp|1 get snap & system flags 010135 aa 6 00005 4401 11 5301 sxl0 sp|on_unit.flags,1 and save in on unit 010136 aa 6 00037 4501 00 5302 stz sp|stack_frame.operator_ret_ptr 010137 aa 4 00002 7101 00 5303 tra lp|2 return to pl1 program 5304 " 5305 " 5306 " operator to create and enable a cleanup handler for a fortran 5307 " program. calling sequence is: 5308 " tsx0 ap|fort_cleanup 5309 " arg on_unit_body (snap & system flags in RHS if used) 5310 " Uses pr2 (bp) and pr4 (lp) - restores pr4 (lp) from stack 5311 " 010140 5312 fort_cleanup: 010140 aa 6 00037 4401 00 5313 sxl0 sp|stack_frame.operator_ret_ptr 010141 aa 6 00046 3521 70 5314 eppbp sp|tbp,*0 010142 aa 000100 2350 07 5315 lda =o100,dl is there a valid on_unit_list 010143 aa 6 00020 3151 00 5316 cana sp|stack_frame.prev_sp check bit 29 of sp|stack_frame.prev_sp 010144 aa 000003 6010 04 5317 tnz 3,ic non-zero means ok 010145 aa 6 00036 4501 00 5318 stz sp|stack_frame.on_unit_rel_ptrs init ptr 010146 aa 6 00020 2551 00 5319 orsa sp|stack_frame.prev_sp and set bit 5320 " 010147 aa 6 00036 2211 00 5321 ldx1 sp|stack_frame.on_unit_rel_ptrs get rel ptr to first enabled unit 010150 0a 010155 6000 00 5322 tze add_fort_cleanup zero means chain empty 010151 5323 fort_cleanup_1: 010151 aa 2 00000 1011 00 5324 cmpx1 bp|0 is this the unit we want 010152 0a 010161 6000 00 5325 tze have_fort_cleanup yes, go process 010153 aa 6 00005 2211 11 5326 ldx1 sp|on_unit.next,1 no, get ptr to next on chain 010154 0a 010151 6010 00 5327 tnz fort_cleanup_1 and repeat if end not reached 010155 5328 add_fort_cleanup: 010155 aa 2 00000 2211 00 5329 ldx1 bp|0 get rel ptr to new unit 010156 aa 6 00036 2201 00 5330 ldx0 sp|stack_frame.on_unit_rel_ptrs get rel ptr to first unit 010157 aa 6 00005 7401 11 5331 stx0 sp|on_unit.next,1 set next ptr of new unit 010160 aa 6 00036 7411 00 5332 stx1 sp|stack_frame.on_unit_rel_ptrs make new unit first on chain 010161 5333 have_fort_cleanup: 5334 " Point to our cleanup handler and our name and length 010161 0a 010200 3700 00 5335 epplp fort_cleanup_name 010162 aa 6 00000 6501 11 5336 sprilp sp|on_unit.name,1 set name of new unit 5337 get_our_lp " need our linkage section 010163 aa 6 00000 3731 00 epbpsb sp|0 make sure sb is set up 010164 0a 010164 2130 00 epaq * get ptr to ourselves 010165 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get packed ptr to linkage from lot 010166 4a 4 00274 3701 20 5338 epplp |[fort_cleanup_] 010167 aa 6 00002 6501 11 5339 sprilp sp|on_unit.body,1 set ptr to body 010170 aa 6 00044 3701 20 5340 epplp sp|linkage_ptr,* restore ptr to linkage segment 010171 aa 000007 7200 07 5341 lxl0 fort_cleanup_length,dl 010172 aa 6 00004 4501 11 5342 stz sp|on_unit.size,1 clear size field 010173 aa 6 00004 4401 11 5343 sxl0 sp|on_unit.size,1 set size of unit name 010174 aa 2 00000 7201 00 5344 lxl0 bp|0 get snap & system flags 010175 aa 6 00005 4401 11 5345 sxl0 sp|on_unit.flags,1 and save in on unit 010176 aa 6 00037 4501 00 5346 stz sp|stack_frame.operator_ret_ptr 010177 aa 2 00001 7101 00 5347 tra bp|1 return to fortran program 5348 010200 5349 fort_cleanup_name: 010200 aa 143 154 145 141 5350 aci "cleanup" 010201 aa 156 165 160 000 5351 000007 5352 equ fort_cleanup_length,7 5353 5354 " 5355 " operator to signal a condition. entered with ptr to name in bp 5356 " and size of name in x6. 5357 " 010202 5358 signal_op: 010202 aa 6 00037 4401 00 5359 sxl0 sp|stack_frame.operator_ret_ptr 010203 aa 001750 2360 07 5360 ldq =1000,dl load oncode value 010204 0a 011243 7010 00 5361 tsx1 call_signal_ call signal_ 010205 0a 007227 7100 00 5362 tra z_done and return 5363 " 5364 " operator to signal "subscriptrange" condition 5365 " 010206 5366 bound_ck_signal: 010206 aa 6 00037 4401 00 5367 sxl0 sp|stack_frame.operator_ret_ptr 010207 aa 6 00076 7461 00 5368 stx6 sp|temp save x6 010210 aa 000016 7260 07 5369 lxl6 14,dl get size of condition 010211 0a 010216 3520 00 5370 eppbp subrg get ptr to name 010212 aa 001300 2360 07 5371 ldq =704,dl load oncode value 010213 0a 011243 7010 00 5372 tsx1 call_signal_ call signal_ 010214 aa 6 00076 2261 00 5373 ldx6 sp|temp restore x6 010215 0a 007227 7100 00 5374 tra z_done and return 010216 aa 163 165 142 163 5375 subrg: aci "subscriptrange" 010217 aa 143 162 151 160 010220 aa 164 162 141 156 010221 aa 147 145 000 000 5376 " 5377 " operator to enable a condition with file specified, usage is 5378 " eppbp file 5379 " eaa name (in text) 5380 " ora flags,dl snap & system flags (optional) 5381 " lxl6 name_size 5382 " tsx0 ap|enable_file 5383 " 010222 5384 enable_file: 010222 aa 6 00037 4401 00 5385 sxl0 sp|stack_frame.operator_ret_ptr save return point 010223 aa 6 00076 2521 00 5386 spribp sp|temp save pointer to file 010224 aa 6 00046 3521 61 5387 eppbp sp|tbp,*au get pointer to name 010225 aa 6 00056 7551 00 5388 sta sp|double_temp save snap & system flags 010226 aa 000100 2350 07 5389 lda =o100,dl check for existence of condition list 010227 aa 6 00020 3151 00 5390 cana sp|stack_frame.condition_word 010230 0a 010271 6010 00 5391 tnz ef_1 if we have list, go check it 010231 aa 6 00036 4501 00 5392 stz sp|stack_frame.on_unit_rel_ptrs no list, initialize it 010232 aa 6 00020 2551 00 5393 orsa sp|stack_frame.condition_word .. 5394 " 010233 5395 make_unit: 5396 get_stack_offset 010233 aa 6 00000 6351 00 eaa sp|0 get offset of stack frame in au 010234 0a 011677 6750 00 era mask_bit_one form 2's complement of whole a-reg 010235 aa 000001 0350 07 adla 1,dl w/o overflow 010236 aa 6 00024 3701 21 5397 epplp sp|stack_header.stack_end_ptr,au* get ptr to next stack frame 010237 aa 000020 6200 00 5398 eax0 16 extend stack by 16 words 010240 aa 6 00023 0201 00 5399 adlx0 sp|stack_frame.next_sp+1 .. 010241 aa 6 00023 7401 00 5400 stx0 sp|stack_frame.next_sp+1 .. 010242 aa 6 00025 7401 01 5401 stx0 sp|stack_header.stack_end_ptr+1,au .. 010243 aa 6 00005 7401 00 5402 stx0 sp|5 make extension "permanent" 010244 aa 4 00000 6211 01 5403 eax1 lp|0,au into x1 5404 " 010245 aa 6 00036 2201 00 5405 ldx0 sp|stack_frame.on_unit_rel_ptrs get rel ptr to first unit 010246 aa 6 00005 7401 11 5406 stx0 sp|on_unit.next,1 and save as next of new unit 010247 aa 6 00036 7411 00 5407 stx1 sp|stack_frame.on_unit_rel_ptrs make new unit first unit 5408 " 010250 aa 6 00000 2521 11 5409 spribp sp|on_unit.name,1 save ptr to name 010251 aa 6 00076 3701 20 5410 epplp sp|temp,* get back ptr to file 010252 aa 4 00000 2371 00 5411 ldaq lp|0 copy file into stack 010253 aa 6 00010 7571 11 5412 staq sp|on_unit.file_copy,1 010254 aa 4 00002 2371 00 5413 ldaq lp|2 010255 aa 6 00012 7571 11 5414 staq sp|on_unit.file_copy+2,1 010256 aa 6 00010 3701 11 5415 epplp sp|on_unit.file_copy,1 get ptr to copy of file 010257 aa 6 00006 6501 11 5416 sprilp sp|on_unit.file,1 and save as ptr to file 010260 aa 6 00004 4501 11 5417 stz sp|on_unit.size,1 clear size field 5418 " 010261 5419 init_unit: 010261 aa 6 00004 4461 11 5420 sxl6 sp|on_unit.size,1 set size of name 010262 aa 6 00056 7201 00 5421 lxl0 sp|double_temp get snap & system flags 010263 aa 6 00005 4401 11 5422 sxl0 sp|on_unit.flags,1 store them 010264 aa 6 00037 7201 00 5423 lxl0 sp|stack_frame.operator_ret_ptr restore return 010265 aa 6 00037 4501 00 5424 stz sp|stack_frame.operator_ret_ptr 010266 aa 6 00046 3701 70 5425 epplp sp|tbp,*0 get ptr to entry point of unit 010267 aa 6 00002 6501 11 5426 sprilp sp|on_unit.body,1 and save it 010270 aa 4 00001 7101 00 5427 tra lp|1 and then return 5428 " 010271 0a 010306 7000 00 5429 ef_1: tsx0 find_unit go search for unit 010272 0a 010261 7100 00 5430 tra init_unit found it 010273 aa 6 00072 3521 20 5431 eppbp sp|temp2,* restore ptr to name 010274 0a 010233 7100 00 5432 tra make_unit not found, must go make it 5433 " 5434 " operator to revert a condition with file specified, usage is 5435 " eppbp file 5436 " eaa name (in text) 5437 " lxl6 name_size 5438 " tsx0 ap|revert_file 5439 " 010275 5440 revert_file: 010275 aa 000100 2360 07 5441 ldq =o100,dl do we have any conditions enabled 010276 aa 6 00020 3161 00 5442 canq sp|stack_frame.condition_word 010277 aa 6 00046 6001 70 5443 tze sp|tbp,*0 no, return immediately 010300 aa 6 00037 4401 00 5444 sxl0 sp|stack_frame.operator_ret_ptr yes, save return 010301 aa 6 00076 2521 00 5445 spribp sp|temp save pointer to file 010302 aa 6 00046 3521 61 5446 eppbp sp|tbp,*au get ptr to name 010303 0a 010306 7000 00 5447 tsx0 find_unit go search for unit 010304 aa 6 00004 4501 11 5448 stz sp|on_unit.size,1 found it, zero size 010305 0a 007227 7100 00 5449 tra z_done ok to return now 5450 " 5451 " subroutine to search for enabled condition, entered with 5452 " bp pointing at name in text 5453 " x6 holding size of name 5454 " sp|temp holding ptr to file 5455 " returns 0,0 if condition found 5456 " 1,0 if condition not found 5457 " 5458 " N.B. we assume that we only have to compare ptrs to check if name 5459 " is the same because of constant pooling done by compiler 5460 " 010306 5461 find_unit: 010306 aa 6 00072 2521 00 5462 spribp sp|temp2 save ptr to name 010307 aa 6 00076 3521 20 5463 eppbp sp|temp,* get ptr to file 010310 aa 6 00036 2211 00 5464 ldx1 sp|stack_frame.on_unit_rel_ptrs get offset of first unit 010311 aa 000002 7100 04 5465 tra 2,ic and enter loop 5466 " 010312 aa 6 00005 2211 11 5467 fu_1: ldx1 sp|on_unit.next,1 get off of next unit 010313 aa 000001 6000 10 5468 tze 1,0 none means we failed 010314 aa 6 00000 2371 11 5469 ldaq sp|on_unit.name,1 get name in on unit 010315 aa 6 00072 1171 00 5470 cmpaq sp|temp2 compare with name we want 010316 0a 010312 6010 00 5471 tnz fu_1 if not same keep looking 010317 aa 6 00012 2371 11 5472 ldaq sp|on_unit.file_copy+2,1 get second ptr in file 010320 aa 2 00002 1171 00 5473 cmpaq bp|2 compare with file we want 010321 0a 010312 6010 00 5474 tnz fu_1 keep looking if different 010322 aa 000000 7100 10 5475 tra 0,0 found it 5476 " 5477 " operators for put data 5478 " entered with pointer to datum in bp, offset in x7, symtab offset in a 5479 " 010323 5480 put_data_eis: 010323 aa 000002 6260 00 5481 eax6 2 set procedure to call 010324 0a 010376 7100 00 5482 tra plio_eis join common section 5483 " 010325 5484 put_data: 010325 aa 000000 6210 17 5485 eax1 0,7 get offset 010326 0a 010334 7100 00 5486 tra pd_1 5487 " 010327 5488 put_data_co: 010327 0a 001264 2210 17 5489 ldx1 co_to_bo,7 convert offset to bits 010330 0a 010334 7100 00 5490 tra pd_1 5491 " 010331 5492 put_data_ho: 010331 0a 001270 2210 17 5493 ldx1 ho_to_bo,7 convert offset to bits 010332 0a 010334 7100 00 5494 tra pd_1 5495 " 010333 5496 put_data_aligned: 010333 aa 000000 6210 00 5497 eax1 0 zero offset 5498 " 010334 aa 000002 6260 00 5499 pd_1: eax6 2 set procedure to call 010335 0a 010424 7100 00 5500 tra plio join common section 5501 " 5502 " operators for get list 5503 " entered with pointer to datum in bp, offset in x7, descriptor in q 5504 " 010336 5505 get_list_eis: 010336 aa 000003 6260 00 5506 eax6 3 set procedure to call 010337 0a 010376 7100 00 5507 tra plio_eis join common section 5508 " 010340 5509 get_list: 010340 aa 000000 6210 17 5510 eax1 0,7 get offset 010341 0a 010347 7100 00 5511 tra gl_1 5512 " 010342 5513 get_list_co: 010342 0a 001264 2210 17 5514 ldx1 co_to_bo,7 convert offset to bits 010343 0a 010347 7100 00 5515 tra gl_1 5516 " 010344 5517 get_list_ho: 010344 0a 001270 2210 17 5518 ldx1 ho_to_bo,7 convert offset to bits 010345 0a 010347 7100 00 5519 tra gl_1 5520 " 010346 5521 get_list_aligned: 010346 aa 000000 6210 00 5522 eax1 0 zero offset 5523 " 010347 aa 000003 6260 00 5524 gl_1: eax6 3 set procedure to call 010350 0a 010424 7100 00 5525 tra plio join common section 5526 " 5527 " operators for get edit 5528 " entered with pointer to datum in bp, offset in x7, descriptor in q 5529 " 010351 5530 get_edit: 010351 aa 000000 6210 17 5531 eax1 0,7 get offset 010352 0a 010360 7100 00 5532 tra ge_1 5533 " 010353 5534 get_edit_co: 010353 0a 001264 2210 17 5535 ldx1 co_to_bo,7 convert offset to bits 010354 0a 010360 7100 00 5536 tra ge_1 5537 " 010355 5538 get_edit_ho: 010355 0a 001270 2210 17 5539 ldx1 ho_to_bo,7 convert offset to bits 010356 0a 010360 7100 00 5540 tra ge_1 5541 " 010357 5542 get_edit_aligned: 010357 aa 000000 6210 00 5543 eax1 0 zero offset 5544 " 010360 aa 000004 6260 00 5545 ge_1: eax6 4 set procedure to call 010361 0a 010424 7100 00 5546 tra plio join common section 5547 " 5548 " 5549 " 5550 " operator for put list 5551 " entered with pointer to datum in bp, offset in x7, descriptor in q 5552 " 010362 5553 put_list_eis: 010362 aa 000005 6260 00 5554 eax6 5 set procedure to call 010363 aa 6 00076 7561 00 5555 stq sp|temp save descriptor 010364 aa 374000 3760 03 5556 anq =o374000,du 010365 aa 114000 1160 03 5557 cmpq =o114000,du bit_str_desc 010366 4a 4 00276 6001 20 5558 tze |[put_field_str] 010367 aa 120000 1160 03 5559 cmpq =o120000,du var_bit_str_desc 010370 4a 4 00276 6001 20 5560 tze |[put_field_str] 010371 aa 124000 1160 03 5561 cmpq =o124000,du char_str_desc 010372 4a 4 00276 6001 20 5562 tze |[put_field_str] 010373 aa 130000 1160 03 5563 cmpq =o130000,du var_char_str_desc 010374 4a 4 00276 6001 20 5564 tze |[put_field_str] 010375 aa 6 00076 2361 00 5565 ldq sp|temp 5566 " 010376 5567 plio_eis: 010376 aa 6 00052 3501 20 5568 eppap sp|ps_ptr,* get ptr to ps 010377 aa 0 00032 7561 00 5569 stq ap|ps.descriptor set descriptor 010400 aa 0 00034 7551 00 5570 sta ap|ps.offset store offset or picture constant loc 010401 aa 0 00030 2521 00 5571 spribp ap|ps.value_p set ptr to datum 010402 0a 010432 7100 00 5572 tra plio4 5573 " 010403 5574 put_list: 010403 aa 000000 6210 17 5575 eax1 0,7 get offset 010404 0a 010412 7100 00 5576 tra pl_1 5577 " 010405 5578 put_list_co: 010405 0a 001264 2210 17 5579 ldx1 co_to_bo,7 convert offset to bits 010406 0a 010412 7100 00 5580 tra pl_1 5581 " 010407 5582 put_list_ho: 010407 0a 001270 2210 17 5583 ldx1 ho_to_bo,7 convert offset to bits 010410 0a 010412 7100 00 5584 tra pl_1 5585 " 010411 5586 put_list_aligned: 010411 aa 000000 6210 00 5587 eax1 0 zero offset 5588 " 010412 aa 000005 6260 00 5589 pl_1: eax6 5 set procedure to call 010413 0a 010424 7100 00 5590 tra plio join common section 5591 " 5592 " operators for put edit 5593 " entered with pointer to datum in bp, offset in x7, descriptor in q 5594 " 010414 5595 put_edit: 010414 aa 000000 6210 17 5596 eax1 0,7 get offset 010415 0a 010423 7100 00 5597 tra pe_1 5598 " 010416 5599 put_edit_co: 010416 0a 001264 2210 17 5600 ldx1 co_to_bo,7 convert offset to bits 010417 0a 010423 7100 00 5601 tra pe_1 5602 " 010420 5603 put_edit_ho: 010420 0a 001270 2210 17 5604 ldx1 ho_to_bo,7 convert offset to bits 010421 0a 010423 7100 00 5605 tra pe_1 5606 " 010422 5607 put_edit_aligned: 010422 aa 000000 6210 00 5608 eax1 0 zero offset 5609 " 010423 aa 000006 6260 00 5610 pe_1: eax6 6 set procedure to call 5611 " 010424 aa 6 00052 3501 20 5612 plio: eppap sp|ps_ptr,* get ptr to ps 010425 aa 0 00032 7561 00 5613 stq ap|ps.descriptor set descriptor 010426 aa 0 00034 7551 00 5614 sta ap|ps.offset store offset or picture constant loc 010427 aa 0 00030 2521 00 5615 spribp ap|ps.value_p set ptr to datum 010430 0a 012444 7210 11 5616 lxl1 shift_bo,1 shift bit offset to position 010431 aa 0 00031 4411 00 5617 sxl1 ap|ps.value_p+1 and set bit offset of pointer 5618 " 010432 aa 6 00052 3521 00 5619 plio4: eppbp sp|ps_ptr save pointer to ps as arg 010433 aa 6 00072 2521 00 5620 spribp sp|arg_list+2 010434 aa 6 00010 7531 00 5621 sreg sp|8 save registers 010435 aa 004000 4310 07 5622 fld 2*1024,dl 010436 aa 6 00070 7571 00 5623 staq sp|arg_list 010437 aa 6 00070 3501 00 5624 eppap sp|arg_list get ptr to arg list 010440 0a 011323 7010 00 5625 tsx1 get_our_lp get ptr to our linkage section 010441 aa 000004 3514 04 5626 epp1 4,ic store return address and indicators 010442 aa 6 00024 2515 00 5627 spri1 sp|stack_frame.return_ptr 010443 aa 6 00025 7541 00 5628 sti sp|stack_frame.return_ptr+1 010444 0a 010452 7100 16 5629 tra plio2,6 jump to appropriate proc 010445 aa 6 00010 0731 00 5630 lreg sp|8 restore registers 010446 5631 put_return: 010446 aa 6 00046 3501 20 5632 eppap sp|tbp,* get ptr to object 010447 aa 6 00024 2501 00 5633 spriap sp|stack_frame.return_ptr reset return ptr 010450 aa 6 00030 3501 20 5634 eppap sp|stack_frame.operator_ptr,* restore ptr to operators 010451 aa 6 00046 7101 70 5635 tra sp|tbp,*0 and return 5636 " 010452 4a 4 00300 7131 20 5637 plio2: callsp |[get_terminate_] 010453 4a 4 00302 7131 20 5638 callsp |[put_terminate_] 010454 4a 4 00304 7131 20 5639 callsp |[put_value_data_] 010455 4a 4 00306 7131 20 5640 callsp |[get_value_list_] 010456 0a 025015 7100 00 5641 tra signal_error_missing 010457 4a 4 00310 7131 20 5642 callsp |[put_value_list_] 010460 4a 4 00312 7131 20 5643 callsp |[put_value_edit_] 010461 4a 4 00314 7131 20 5644 callsp |[plio2_recio_] 010462 4a 4 00316 7131 20 5645 callsp |[open_explicit_] 010463 4a 4 00320 7131 20 5646 callsp |[close_] 010464 4a 4 00322 7131 20 5647 callsp |[get_prep_] 010465 4a 4 00324 7131 20 5648 callsp |[put_prep_] 010466 4a 4 00326 7131 20 5649 callsp |[read_or_write] 010467 4a 4 00330 7131 20 5650 callsp |[file_control] 010470 4a 4 00332 7131 20 5651 callsp |[terminate] 010471 4a 4 00334 7131 20 5652 callsp |[element] 010472 4a 4 00336 7131 20 5653 callsp |[put_field_] 010473 0a 025015 7100 00 5654 tra signal_error_missing 010474 0a 025015 7100 00 5655 tra signal_error_missing 010475 0a 025015 7100 00 5656 tra signal_error_missing 010476 0a 025015 7100 00 5657 tra signal_error_missing 010477 4a 4 00340 7131 20 5658 callsp |[put_blanks_] 010500 4a 4 00342 7131 20 5659 callsp |[get_io_area_ptr] 5660 " 5661 " operator to terminate a get 5662 " 010501 5663 get_terminate: 010501 aa 000000 6260 00 5664 eax6 0 set proc to call 010502 0a 010432 7100 00 5665 tra plio4 5666 " 5667 " operator to terminate a put 5668 " 010503 5669 put_terminate: 010503 aa 000001 6260 00 5670 eax6 1 set proc to call 010504 0a 010432 7100 00 5671 tra plio4 5672 " 5673 " operator to open a file 5674 " 010505 5675 open_file: 010505 aa 000010 6260 00 5676 eax6 8 set proc to call 010506 0a 010432 7100 00 5677 tra plio4 5678 " 5679 " operator to close a file 5680 " 010507 5681 close_file: 010507 aa 000011 6260 00 5682 eax6 9 set proc to call 010510 0a 010432 7100 00 5683 tra plio4 5684 " 5685 " operators for doing FORTRAN I/O 5686 " 5687 " WARNING WARNING WARNING WARNING WARNING WARNING 5688 " 5689 " The following code was modified on 19 Dec 1977, by D. Levin to allow 5690 " fortran I/O's stack frame to remain active after control returns to the user's 5691 " program. This is accomplished by a coordinated effort on the parts of: 5692 " 5693 " 1. this operator segment 5694 " 2. fortran_io_.pl1 (in bound_fort_runtime_) 5695 " 3. return_to_user.alm (in bound_fort_runtime_) 5696 " 5697 " The first time a user program references fortran_io_ from its stack frame, 5698 " the high-order bit of stack_frame.ps_ptr is zero. This implementation takes advantage 5699 " of that fact and uses the high-order bit of stack_frame.ps_ptr as a flag to 5700 " indicate whether or not a stack frame exists for fortran_io_. 5701 " 5702 " The first time fortran_io_ is referenced from a stack frame, the high-order 5703 " bit is zero, so a standard PL/I call is made to the appropriate entry point in 5704 " fortran_io_, with the user's stack_frame.return_ptr set to return 5705 " to the word after the operator call. Once within fortran_io_, the 5706 " user's stack frame is modified as follows: 5707 " 5708 " 1. Copy fortran_io_'s stack_frame|4 to the user's frame. This field is used 5709 " by PL/I to determine the true end of the stack frame after a stack 5710 " extension. 5711 " 2. Store a packed ptr to fio_ps at stack_frame.support_ptr. See next 5712 " paragraph. 5713 " 3. Set high-order bit of stack_frame.ps_ptr to "1"b. 5714 " 5715 " The structure "fio_ps" is in fortran_io_'s stack frame and contains all the 5716 " necessary fields to allow communication between the user program and fortran_io_. 5717 " It includes: 5718 " 1. The address of a location within fortran_io_ to which control is passed 5719 " instead of performing a PL/I call. 5720 " 2. The address of fortran_io_'s stack frame. 5721 " 3. The address of a variable in fortran_io_'s stack frame into which the value 5722 " of xr7 is stored. This value identifies the entry point desired. 5723 " 5724 " When fortran_io_ returns to the user program, return_to_user$special_return 5725 " is called. This routine copies fortran_io_'s stack_frame.next_sp into the user's 5726 " stack_frame.next_sp, sets sp to the user's frame, and does a short_return. 5727 " Fortran_io_'s stack frame is now part of the user's frame and remains so until 5728 " the next I/O operation. Each fortran program frame has its own fortran_io_ frame. 5729 " This causes the user frame to "absorb" fortran_io_'s frame. 5730 " 5731 " NOTE - The procedure fortran_io_ must never perform a return_mac or 5732 " fortran_io_'s frame will go away although the flag in the user's frame claims 5733 " that it is still there. 5734 " 5735 " Setup operators entered with unit number in q, job_bits in a. Read previous page 5736 " of comments before modifying any FORTRAN I/O operators. 5737 " 010511 5738 fortran_read: 010511 5739 fortran_write: 010511 aa 000014 6260 00 5740 eax6 12 5741 " 010512 aa 6 00052 2341 00 5742 ft_io: szn sp|ps_ptr " <0 if fortran_io_ already has a stack frame 010513 0a 010531 6040 00 5743 tmi ft_fast_read_or_write 010514 aa 6 00052 3501 20 5744 eppap sp|ps_ptr,* " load ptr to user's ps 010515 aa 0 00010 7561 00 5745 stq ap|ft_ps.unit 010516 aa 0 00024 7551 00 5746 sta ap|ft_ps.job_bits 5747 010517 aa 6 00052 3521 00 5748 ft_io1: eppbp sp|ps_ptr " save pointer to ps as arg 010520 aa 6 00072 2521 00 5749 spribp sp|arg_list+2 010521 aa 6 00010 7531 00 5750 sreg sp|8 " save registers 010522 aa 004000 4310 07 5751 fld 2*1024,dl 010523 aa 6 00070 7571 00 5752 staq sp|arg_list 010524 aa 6 00070 3501 00 5753 eppap sp|arg_list " get ptr to arg list 010525 0a 011323 7010 00 5754 tsx1 get_our_lp " get ptr to our linkage section 010526 aa 6 00025 7401 00 5755 stx0 sp|stack_frame.return_ptr+1 " save offset into user's segment 010527 aa 6 00025 7541 00 5756 sti sp|stack_frame.return_ptr+1 " save indicators 010530 0a 010452 7100 16 5757 tra plio2,x6 " jump to appropriate proc 5758 " 010531 5759 ft_fast_read_or_write: 010531 aa 6 00035 7631 00 5760 lprpbb sp|stack_frame.support_ptr " load ptr to fortran_io_'s fio_ps 010532 aa 3 00006 7571 00 5761 staq bb|fio_ps.job_bits_and_file 010533 5762 ft_fast_call: 010533 aa 6 00025 7401 00 5763 stx0 sp|stack_frame.return_ptr+1 " save offset into user's segment 010534 aa 6 00025 7541 00 5764 sti sp|stack_frame.return_ptr+1 " save indicators 010535 aa 6 00010 7531 00 5765 sreg sp|8 010536 aa 3 00002 3521 20 5766 eppbp bb|fio_ps.stack_frame_p,* " load ptr to fortran_io_'s static stack frame 010537 aa 6 00022 3715 20 5767 epp5 sp|stack_frame.next_sp,* " use parents next_sp 010540 aa 2 00022 6515 00 5768 spri5 bp|stack_frame.next_sp " for fortran_io_'s next_sp 010541 aa 2 00004 6515 00 5769 spri5 bp|4 " & for fortran_io_'s perm extension 010542 aa 6 00022 2521 00 5770 spribp sp|stack_frame.next_sp " store as next sp for user frame 010543 aa 2 00000 3721 00 5771 eppsp bp|0 " activate fortran_io_'s stack frame 010544 aa 3 00004 4461 20 5772 sxl6 bb|fio_ps.label_index_addr,* " store index value for fortran_io_'s transfer 010545 aa 000000 6340 07 5773 ldi 0,dl " force binary floating point mode 010546 aa 3 00000 7101 20 5774 tra bb|fio_ps.label_addr,* " transfer directly into fortran_io_ 5775 " 5776 " Transmission operators entered with pointer to element in pr2, descriptor in a, 5777 " and count in q. Read comments preceding the label "fortran_read" before modifying 5778 " this operator. 5779 " 5780 010547 5781 fortran_scalar_xmit: 010547 5782 fortran_array_xmit: 010547 aa 000017 6260 00 5783 eax6 15 5784 010550 5785 ft_fast_xmit: 010550 aa 6 00035 7631 00 5786 lprpbb sp|stack_frame.support_ptr " load ptr to fortran_io_'s fio_ps 010551 aa 3 00012 2521 00 5787 spribp bb|fio_ps.element_ptr 010552 aa 3 00010 7571 00 5788 staq bb|fio_ps.ele_desc_and_count 010553 0a 010533 7100 00 5789 tra ft_fast_call 5790 " 5791 " File control operator entered with unit number in q, job_bits in a. Read comments 5792 " preceding the label "fortran_read" before modifying this operator. 5793 " 010554 5794 fortran_manip: 010554 aa 000015 6260 00 5795 eax6 13 010555 0a 010512 7100 00 5796 tra ft_io 5797 " 5798 " Termination operator, no registers. Read comments preceding the label 5799 " "fortran_read" before modifying this operator. 5800 " 010556 5801 fortran_terminate: 010556 aa 000016 6260 00 5802 eax6 14 010557 aa 6 00035 7631 00 5803 lprpbb sp|stack_frame.support_ptr " load ptr to fortran_io_'s fio_ps 010560 0a 010533 7100 00 5804 tra ft_fast_call 5805 " 5806 " fortran open element 5807 " 5808 " Called with: 5809 " a-reg = bit string (boolean value) 5810 " q-reg = integer (string length, etc.) 5811 " x1 = case selector 5812 " pr2 = string pointer 5813 " pr3 = PS.buffer_p 5814 " 010561 5815 ftn_open_element: 010561 0a 010562 7100 31 5816 tra *+1,1* 010562 0a 010600 0000 00 5817 arg ftn_open_indicators " 0 010563 0a 010602 0000 00 5818 arg ftn_open_status " 1 010564 0a 010612 0000 00 5819 arg ftn_open_io_switch " 2 010565 0a 010622 0000 00 5820 arg ftn_open_attach_desc " 3 010566 0a 010632 0000 00 5821 arg ftn_open_filename " 4 010567 0a 010642 0000 00 5822 arg ftn_open_mode " 5 010570 0a 010652 0000 00 5823 arg ftn_open_access " 6 010571 0a 010662 0000 00 5824 arg ftn_open_form " 7 010572 0a 010702 0000 00 5825 arg ftn_open_max_rec_len " 8 010573 0a 010704 0000 00 5826 arg ftn_open_binary " 9 010574 0a 010706 0000 00 5827 arg ftn_open_prompt " 10 010575 0a 010710 0000 00 5828 arg ftn_open_carriage " 11 010576 0a 010712 0000 00 5829 arg ftn_open_defer " 12 010577 0a 010672 0000 00 5830 arg ftn_open_blank " 13 5831 010600 5832 ftn_open_indicators: 010600 aa 3 00000 7551 00 5833 sta pr3|fortran_open_data.specified 010601 aa 6 00046 7101 70 5834 tra sp|tbp,*0 5835 5836 macro ftn_open_string 1 5837 ftn_open_&1: 2 5838 stq pr3|fortran_open_data.&1 3 5839 lxl1 pr3|fortran_open_data.char_str 4 5840 stx1 pr3|fortran_open_data.&1 5 5841 mlr (pr,rl),(pr,x1,rl) 6 5842 desc9a pr2|0,ql 7 5843 desc9a pr3|fortran_open_data.char_str+1,ql 8 5844 asq pr3|fortran_open_data.char_str 9 5845 tra sp|tbp,*0 10 5846 &end 5847 5848 ftn_open_string status 010602 ftn_open_status: 010602 aa 3 00001 7561 00 stq pr3|fortran_open_data.status 010603 aa 3 00016 7211 00 lxl1 pr3|fortran_open_data.char_str 010604 aa 3 00001 7411 00 stx1 pr3|fortran_open_data.status 010605 aa 0 00151 1005 40 mlr (pr,rl),(pr,x1,rl) 010606 aa 200000 000006 desc9a pr2|0,ql 010607 aa 300017 000006 desc9a pr3|fortran_open_data.char_str+1,ql 010610 aa 3 00016 0561 00 asq pr3|fortran_open_data.char_str 010611 aa 6 00046 7101 70 tra sp|tbp,*0 5849 5850 ftn_open_string io_switch 010612 ftn_open_io_switch: 010612 aa 3 00002 7561 00 stq pr3|fortran_open_data.io_switch 010613 aa 3 00016 7211 00 lxl1 pr3|fortran_open_data.char_str 010614 aa 3 00002 7411 00 stx1 pr3|fortran_open_data.io_switch 010615 aa 0 00151 1005 40 mlr (pr,rl),(pr,x1,rl) 010616 aa 200000 000006 desc9a pr2|0,ql 010617 aa 300017 000006 desc9a pr3|fortran_open_data.char_str+1,ql 010620 aa 3 00016 0561 00 asq pr3|fortran_open_data.char_str 010621 aa 6 00046 7101 70 tra sp|tbp,*0 5851 5852 ftn_open_string attach_desc 010622 ftn_open_attach_desc: 010622 aa 3 00003 7561 00 stq pr3|fortran_open_data.attach_desc 010623 aa 3 00016 7211 00 lxl1 pr3|fortran_open_data.char_str 010624 aa 3 00003 7411 00 stx1 pr3|fortran_open_data.attach_desc 010625 aa 0 00151 1005 40 mlr (pr,rl),(pr,x1,rl) 010626 aa 200000 000006 desc9a pr2|0,ql 010627 aa 300017 000006 desc9a pr3|fortran_open_data.char_str+1,ql 010630 aa 3 00016 0561 00 asq pr3|fortran_open_data.char_str 010631 aa 6 00046 7101 70 tra sp|tbp,*0 5853 5854 ftn_open_string filename 010632 ftn_open_filename: 010632 aa 3 00004 7561 00 stq pr3|fortran_open_data.filename 010633 aa 3 00016 7211 00 lxl1 pr3|fortran_open_data.char_str 010634 aa 3 00004 7411 00 stx1 pr3|fortran_open_data.filename 010635 aa 0 00151 1005 40 mlr (pr,rl),(pr,x1,rl) 010636 aa 200000 000006 desc9a pr2|0,ql 010637 aa 300017 000006 desc9a pr3|fortran_open_data.char_str+1,ql 010640 aa 3 00016 0561 00 asq pr3|fortran_open_data.char_str 010641 aa 6 00046 7101 70 tra sp|tbp,*0 5855 5856 ftn_open_string mode 010642 ftn_open_mode: 010642 aa 3 00005 7561 00 stq pr3|fortran_open_data.mode 010643 aa 3 00016 7211 00 lxl1 pr3|fortran_open_data.char_str 010644 aa 3 00005 7411 00 stx1 pr3|fortran_open_data.mode 010645 aa 0 00151 1005 40 mlr (pr,rl),(pr,x1,rl) 010646 aa 200000 000006 desc9a pr2|0,ql 010647 aa 300017 000006 desc9a pr3|fortran_open_data.char_str+1,ql 010650 aa 3 00016 0561 00 asq pr3|fortran_open_data.char_str 010651 aa 6 00046 7101 70 tra sp|tbp,*0 5857 5858 ftn_open_string access 010652 ftn_open_access: 010652 aa 3 00006 7561 00 stq pr3|fortran_open_data.access 010653 aa 3 00016 7211 00 lxl1 pr3|fortran_open_data.char_str 010654 aa 3 00006 7411 00 stx1 pr3|fortran_open_data.access 010655 aa 0 00151 1005 40 mlr (pr,rl),(pr,x1,rl) 010656 aa 200000 000006 desc9a pr2|0,ql 010657 aa 300017 000006 desc9a pr3|fortran_open_data.char_str+1,ql 010660 aa 3 00016 0561 00 asq pr3|fortran_open_data.char_str 010661 aa 6 00046 7101 70 tra sp|tbp,*0 5859 5860 ftn_open_string form 010662 ftn_open_form: 010662 aa 3 00007 7561 00 stq pr3|fortran_open_data.form 010663 aa 3 00016 7211 00 lxl1 pr3|fortran_open_data.char_str 010664 aa 3 00007 7411 00 stx1 pr3|fortran_open_data.form 010665 aa 0 00151 1005 40 mlr (pr,rl),(pr,x1,rl) 010666 aa 200000 000006 desc9a pr2|0,ql 010667 aa 300017 000006 desc9a pr3|fortran_open_data.char_str+1,ql 010670 aa 3 00016 0561 00 asq pr3|fortran_open_data.char_str 010671 aa 6 00046 7101 70 tra sp|tbp,*0 5861 5862 ftn_open_string blank 010672 ftn_open_blank: 010672 aa 3 00015 7561 00 stq pr3|fortran_open_data.blank 010673 aa 3 00016 7211 00 lxl1 pr3|fortran_open_data.char_str 010674 aa 3 00015 7411 00 stx1 pr3|fortran_open_data.blank 010675 aa 0 00151 1005 40 mlr (pr,rl),(pr,x1,rl) 010676 aa 200000 000006 desc9a pr2|0,ql 010677 aa 300017 000006 desc9a pr3|fortran_open_data.char_str+1,ql 010700 aa 3 00016 0561 00 asq pr3|fortran_open_data.char_str 010701 aa 6 00046 7101 70 tra sp|tbp,*0 5863 010702 5864 ftn_open_max_rec_len: 010702 aa 3 00010 7561 00 5865 stq pr3|fortran_open_data.max_rec_len 010703 aa 6 00046 7101 70 5866 tra sp|tbp,*0 5867 5868 macro ftn_open_flag 1 5869 ftn_open_&1: 2 5870 sta pr3|fortran_open_data.&1 3 5871 tra sp|tbp,*0 4 5872 &end 5873 5874 ftn_open_flag binary 010704 ftn_open_binary: 010704 aa 3 00011 7551 00 sta pr3|fortran_open_data.binary 010705 aa 6 00046 7101 70 tra sp|tbp,*0 5875 5876 ftn_open_flag prompt 010706 ftn_open_prompt: 010706 aa 3 00012 7551 00 sta pr3|fortran_open_data.prompt 010707 aa 6 00046 7101 70 tra sp|tbp,*0 5877 5878 ftn_open_flag carriage 010710 ftn_open_carriage: 010710 aa 3 00013 7551 00 sta pr3|fortran_open_data.carriage 010711 aa 6 00046 7101 70 tra sp|tbp,*0 5879 5880 ftn_open_flag defer 010712 ftn_open_defer: 010712 aa 3 00014 7551 00 sta pr3|fortran_open_data.defer 010713 aa 6 00046 7101 70 tra sp|tbp,*0 5881 " 5882 " 5883 " ftn_inquire_element 5884 " 5885 " Called with: 5886 " a = bit mask 5887 " q = string length or unit number 5888 " pr2 = data pointer 5889 " pr3 = area pointer 5890 " x1 = case selector 5891 " 010714 5892 ftn_inquire_element: 010714 0a 010715 7100 31 5893 tra *+1,x1* 010715 0a 010750 0000 00 5894 arg ftn_inquire_indicators " 0 010716 0a 010752 0000 00 5895 arg ftn_inquire_noop " 1 010717 0a 010752 0000 00 5896 arg ftn_inquire_noop " 2 010720 0a 010752 0000 00 5897 arg ftn_inquire_noop " 3 010721 0a 010753 0000 00 5898 arg ftn_inquire_filename " 4 010722 0a 010752 0000 00 5899 arg ftn_inquire_noop " 5 010723 0a 010761 0000 00 5900 arg ftn_inquire_access " 6 010724 0a 010764 0000 00 5901 arg ftn_inquire_form " 7 010725 0a 011011 0000 00 5902 arg ftn_inquire_recl " 8 010726 0a 010752 0000 00 5903 arg ftn_inquire_noop " 9 010727 0a 010752 0000 00 5904 arg ftn_inquire_noop " 10 010730 0a 010752 0000 00 5905 arg ftn_inquire_noop " 11 010731 0a 010752 0000 00 5906 arg ftn_inquire_noop " 12 010732 0a 010767 0000 00 5907 arg ftn_inquire_blank " 13 010733 0a 010757 0000 00 5908 arg ftn_inquire_unit " 14 010734 0a 010752 0000 00 5909 arg ftn_inquire_noop " 15 010735 0a 010752 0000 00 5910 arg ftn_inquire_noop " 16 010736 0a 011013 0000 00 5911 arg ftn_inquire_exist " 17 010737 0a 011015 0000 00 5912 arg ftn_inquire_opened " 18 010740 0a 011017 0000 00 5913 arg ftn_inquire_number " 19 010741 0a 011021 0000 00 5914 arg ftn_inquire_named " 20 010742 0a 010772 0000 00 5915 arg ftn_inquire_name " 21 010743 0a 010775 0000 00 5916 arg ftn_inquire_sequential " 22 010744 0a 011000 0000 00 5917 arg ftn_inquire_formatted " 23 010745 0a 011003 0000 00 5918 arg ftn_inquire_unformatted " 24 010746 0a 011023 0000 00 5919 arg ftn_inquire_nextrec " 25 010747 0a 011006 0000 00 5920 arg ftn_inquire_direct " 26 5921 5922 010750 5923 ftn_inquire_indicators: 010750 aa 3 00000 7551 00 5924 sta pr3|ftn_inquire_data.specified 010751 aa 6 00046 7101 70 5925 tra sp|tbp,*x0 5926 010752 5927 ftn_inquire_noop: 010752 aa 6 00046 7101 70 5928 tra sp|tbp,*x0 5929 010753 5930 ftn_inquire_filename: 010753 aa 0 40100 1005 40 5931 mlr (pr,rl),(pr),fill(040) 010754 aa 200000 000006 5932 desc9a pr2|0,ql 010755 aa 300002 000250 5933 desc9a pr3|ftn_inquire_data.filename,168 010756 aa 6 00046 7101 70 5934 tra sp|tbp,*x0 5935 010757 5936 ftn_inquire_unit: 010757 aa 3 00001 7561 00 5937 stq pr3|ftn_inquire_data.unit 010760 aa 6 00046 7101 70 5938 tra sp|tbp,*x0 5939 5940 macro ftn_inquire_string 1 5941 ftn_inquire_&1: 2 5942 sprp2 pr3|ftn_inquire_data.&1 3 5943 stq pr3|ftn_inquire_data.&1+1 4 5944 tra sp|tbp,*x0 5 5945 &end 5946 5947 ftn_inquire_string access 010761 ftn_inquire_access: 010761 aa 3 00054 5421 00 sprp2 pr3|ftn_inquire_data.access 010762 aa 3 00055 7561 00 stq pr3|ftn_inquire_data.access+1 010763 aa 6 00046 7101 70 tra sp|tbp,*x0 5948 5949 ftn_inquire_string form 010764 ftn_inquire_form: 010764 aa 3 00056 5421 00 sprp2 pr3|ftn_inquire_data.form 010765 aa 3 00057 7561 00 stq pr3|ftn_inquire_data.form+1 010766 aa 6 00046 7101 70 tra sp|tbp,*x0 5950 5951 ftn_inquire_string blank 010767 ftn_inquire_blank: 010767 aa 3 00061 5421 00 sprp2 pr3|ftn_inquire_data.blank 010770 aa 3 00062 7561 00 stq pr3|ftn_inquire_data.blank+1 010771 aa 6 00046 7101 70 tra sp|tbp,*x0 5952 5953 ftn_inquire_string name 010772 ftn_inquire_name: 010772 aa 3 00067 5421 00 sprp2 pr3|ftn_inquire_data.name 010773 aa 3 00070 7561 00 stq pr3|ftn_inquire_data.name+1 010774 aa 6 00046 7101 70 tra sp|tbp,*x0 5954 5955 ftn_inquire_string sequential 010775 ftn_inquire_sequential: 010775 aa 3 00071 5421 00 sprp2 pr3|ftn_inquire_data.sequential 010776 aa 3 00072 7561 00 stq pr3|ftn_inquire_data.sequential+1 010777 aa 6 00046 7101 70 tra sp|tbp,*x0 5956 5957 ftn_inquire_string formatted 011000 ftn_inquire_formatted: 011000 aa 3 00073 5421 00 sprp2 pr3|ftn_inquire_data.formatted 011001 aa 3 00074 7561 00 stq pr3|ftn_inquire_data.formatted+1 011002 aa 6 00046 7101 70 tra sp|tbp,*x0 5958 5959 ftn_inquire_string unformatted 011003 ftn_inquire_unformatted: 011003 aa 3 00075 5421 00 sprp2 pr3|ftn_inquire_data.unformatted 011004 aa 3 00076 7561 00 stq pr3|ftn_inquire_data.unformatted+1 011005 aa 6 00046 7101 70 tra sp|tbp,*x0 5960 5961 ftn_inquire_string direct 011006 ftn_inquire_direct: 011006 aa 3 00100 5421 00 sprp2 pr3|ftn_inquire_data.direct 011007 aa 3 00101 7561 00 stq pr3|ftn_inquire_data.direct+1 011010 aa 6 00046 7101 70 tra sp|tbp,*x0 5962 5963 macro ftn_inquire_word 1 5964 ftn_inquire_&1: 2 5965 sprp2 pr3|ftn_inquire_data.&1 3 5966 tra sp|tbp,*x0 4 5967 &end 5968 5969 ftn_inquire_word recl 011011 ftn_inquire_recl: 011011 aa 3 00060 5421 00 sprp2 pr3|ftn_inquire_data.recl 011012 aa 6 00046 7101 70 tra sp|tbp,*x0 5970 5971 ftn_inquire_word exist 011013 ftn_inquire_exist: 011013 aa 3 00063 5421 00 sprp2 pr3|ftn_inquire_data.exist 011014 aa 6 00046 7101 70 tra sp|tbp,*x0 5972 5973 ftn_inquire_word opened 011015 ftn_inquire_opened: 011015 aa 3 00064 5421 00 sprp2 pr3|ftn_inquire_data.opened 011016 aa 6 00046 7101 70 tra sp|tbp,*x0 5974 5975 ftn_inquire_word number 011017 ftn_inquire_number: 011017 aa 3 00065 5421 00 sprp2 pr3|ftn_inquire_data.number 011020 aa 6 00046 7101 70 tra sp|tbp,*x0 5976 5977 ftn_inquire_word named 011021 ftn_inquire_named: 011021 aa 3 00066 5421 00 sprp2 pr3|ftn_inquire_data.named 011022 aa 6 00046 7101 70 tra sp|tbp,*x0 5978 5979 ftn_inquire_word nextrec 011023 ftn_inquire_nextrec: 011023 aa 3 00077 5421 00 sprp2 pr3|ftn_inquire_data.nextrec 011024 aa 6 00046 7101 70 tra sp|tbp,*x0 5980 " 5981 " 5982 " get address of I/O area operator, no registers. Read comments preceding the label 5983 " "fortran_read" before modifying this operator. 5984 " 011025 5985 ftn_get_area_ptr: 011025 aa 000026 6260 00 5986 eax6 22 011026 aa 6 00052 2341 00 5987 szn sp|ps_ptr " <0 if fortran_io_ already has a stack frame 011027 0a 010517 6050 00 5988 tpl ft_io1 011030 aa 6 00035 7631 00 5989 lprpbb sp|stack_frame.support_ptr " load ptr to fortran_io_'s fio_ps 011031 0a 010533 7100 00 5990 tra ft_fast_call 5991 5992 " 5993 " operators to do pl1 pointer function, entered with pointer to area in bp 5994 " and offset in q. 5995 " 011032 5996 pointer_easy: 011032 5997 pointer_hard: 011032 0a 012435 1160 00 5998 cmpq nullo are we converting null offset 011033 aa 000004 6010 04 5999 tnz 4,ic no, do conversion 011034 0a 012430 2370 00 6000 ldaq null yes, get null ptr 011035 0a 012430 3520 20 6001 eppbp null,* and in bp 011036 aa 6 00046 7101 70 6002 tra sp|tbp,*0 and return 011037 aa 6 00076 2521 00 6003 spribp sp|temp 011040 aa 6 00077 0361 00 6004 adlq sp|temp+1 add in word and bit offset 011041 aa 6 00077 7561 00 6005 stq sp|temp+1 .. 011042 aa 6 00076 3521 20 6006 eppbp sp|temp,* load ptr into bp 011043 aa 6 00076 2371 00 6007 ldaq sp|temp and into aq 011044 aa 6 00046 7101 70 6008 tra sp|tbp,*0 and return 6009 " 6010 " operator to do pl1 pointer function when packed ptr should be returned 6011 " 011045 6012 pointer_easy_pk: 011045 6013 pointer_hard_pk: 011045 0a 012435 1160 00 6014 cmpq nullo return null if null input 011046 aa 000004 6010 04 6015 tnz 4,ic 011047 0a 012434 2360 00 6016 ldq null_pk 011050 0a 012430 3520 20 6017 eppbp null,* 011051 aa 6 00046 7101 70 6018 tra sp|tbp,*0 011052 aa 6 00076 2521 00 6019 spribp sp|temp 011053 aa 6 00077 0361 00 6020 adlq sp|temp+1 add in word and bit offset 011054 aa 6 00077 7561 00 6021 stq sp|temp+1 .. 011055 aa 6 00076 3521 20 6022 eppbp sp|temp,* load ptr into bp 011056 aa 6 00076 2371 00 6023 ldaq sp|temp and into aq 011057 0a 007655 7100 00 6024 tra unpk_to_pk go return packed value 6025 " 6026 " operators for doing pl1 offset function. entered with pointer to area in bp 6027 " and pointer value in aq or q 6028 " 011060 6029 offset_easy: 011060 6030 offset_hard: 011060 0a 002106 3770 00 6031 anaq ptr_mask is input null 011061 0a 012432 1170 00 6032 cmpaq nullx 011062 aa 000003 6010 04 6033 tnz 3,ic no, do conversion 011063 0a 012435 2360 00 6034 oe: ldq nullo return null offset 011064 aa 6 00046 7101 70 6035 tra sp|tbp,*0 011065 aa 6 00072 7561 00 6036 oe1: stq sp|temp2 save word and bit offset 011066 aa 2 00000 6351 00 6037 eaa bp|0 get offset of area in au 011067 0a 011677 6750 00 6038 era mask_bit_one form 2's complement of whole a-reg 011070 aa 000001 0350 07 6039 adla 1,dl w/o overflow 011071 aa 6 00072 0351 00 6040 adla sp|temp2 subtract area origin from word offset 011072 aa 000044 7730 00 6041 lrl 36 shift into q 011073 aa 6 00046 7101 70 6042 tra sp|tbp,*0 and return 6043 " 011074 6044 offset_easy_pk: 011074 6045 offset_hard_pk: 011074 0a 012434 1160 00 6046 cmpq null_pk is input null 011075 0a 011063 6000 00 6047 tze oe yes, go return null offset 011076 aa 000006 7760 00 6048 qlr 6 no, convert to proper form 011077 aa 000014 7360 00 6049 qls 12 011100 aa 000022 7370 00 6050 lls 18 011101 aa 000003 7720 00 6051 qrl 3 011102 aa 000022 7730 00 6052 lrl 18 011103 0a 011065 7100 00 6053 tra oe1 go subtract area origin 6054 " 6055 " operator to alloc block of N words in the user storage area 6056 " as defined by the stack header 6057 " entered with N in q, returns with pointer to block 6058 " in bp. 6059 " 011104 6060 alloc_storage: 011104 aa 6 00000 3731 00 6061 epbpsb sp|0 011105 aa 7 00016 3521 20 6062 eppbp sb|stack_header.user_free_ptr,* 011106 4a 4 00344 7101 20 6063 tra |[op_storage_] 6064 " 6065 " operator to alloc block of N words in user storage area 6066 " entered with N in q and bp pointing at where to put ptr 6067 " 011107 6068 alloc_block: 011107 aa 6 00037 4401 00 6069 sxl0 sp|stack_frame.operator_ret_ptr save return 011110 0a 007227 6200 00 6070 eax0 z_done load index with return 6071 " 011111 6072 call_alloc: 011111 aa 6 00010 7531 00 6073 sreg sp|8 save registers include size of block in Q 011112 aa 6 00076 2521 00 6074 spribp sp|arg_list+6 save address of ptr 011113 aa 6 00015 3521 00 6075 eppbp sp|8+5 get address of saved size 011114 aa 6 00072 2521 00 6076 spribp sp|arg_list+2 and use as 1st arg 011115 aa 6 00000 3731 00 6077 epbpsb sp|0 get ptr to our stack header 011116 aa 7 00016 3521 00 6078 eppbp sb|stack_header.user_free_ptr and pass user free ptr as 2nd arg 011117 aa 6 00074 2521 00 6079 spribp sp|arg_list+4 011120 aa 014000 4310 07 6080 fld 3*2048,dl 011121 4a 4 00346 3521 20 6081 eppbp |[storage_] call alloc_|storage_ 6082 " 011122 6083 call_alloc_free: 011122 aa 6 00070 7571 00 6084 staq sp|arg_list save head of arg list 011123 aa 6 00070 3501 00 6085 eppap sp|arg_list get ptr to arg list 011124 aa 000004 3514 04 6086 epp1 4,ic store return address and indicators 011125 aa 6 00024 2515 00 6087 spri1 sp|stack_frame.return_ptr 011126 aa 6 00025 7541 00 6088 sti sp|stack_frame.return_ptr+1 011127 aa 2 00000 7131 00 6089 callsp bp|0 011130 aa 6 00010 0731 00 6090 lreg sp|8 restore registers 011131 aa 6 00046 3521 20 6091 eppbp sp|tbp,* restore ptr in sp|stack_frame.return_ptr 011132 aa 6 00024 2521 00 6092 spribp sp|stack_frame.return_ptr 011133 aa 000000 7100 10 6093 tra 0,0 return to caller 6094 " 6095 " operator to free block pointed at by pointer pointed at by bp 6096 " 011134 6097 free_block: 011134 aa 2 00000 2371 00 6098 ldaq bp|0 return if there is nothing to free 011135 0a 012430 6770 00 6099 eraq null 011136 0a 002106 3770 00 6100 anaq ptr_mask 011137 aa 6 00046 6001 70 6101 tze sp|tbp,*0 011140 aa 6 00037 4401 00 6102 sxl0 sp|stack_frame.operator_ret_ptr save return 011141 0a 007227 6200 00 6103 eax0 z_done load index with return 6104 " 011142 6105 call_free: 011142 aa 6 00010 7531 00 6106 sreg sp|8 save registers 011143 aa 6 00072 2521 00 6107 spribp sp|arg_list+2 save address of pointer 011144 4a 4 00350 3521 20 6108 eppbp |[freen_] get ptr to proc 011145 aa 004000 4310 07 6109 fld 1*2048,dl 011146 0a 011122 7100 00 6110 tra call_alloc_free go call proc 6111 " 6112 " operator to allocate controlled generation given size of descriptor in q 6113 " and pointer to controlled block in bp 6114 " 011147 6115 push_ctl_desc: 011147 aa 000002 6210 00 6116 eax1 2 init offset 011150 0a 011152 7100 00 6117 tra push_ctl_data+1 6118 " 6119 " operator to allocate controlled generation given size of data in q 6120 " and pointer to controlled block in bp 6121 " 011151 6122 push_ctl_data: 011151 aa 000000 6210 00 6123 eax1 0 init offset 6124 " 011152 aa 6 00037 4401 00 6125 sxl0 sp|stack_frame.operator_ret_ptr 011153 aa 6 00050 2521 00 6126 spribp sp|temp_pt save ptr to ctl variable 011154 aa 000006 0760 07 6127 adq 6,dl add in size of ctl block 011155 aa 6 00056 3521 00 6128 eppbp sp|double_temp get ptr to temp 011156 0a 011111 7000 00 6129 tsx0 call_alloc go allocate space 011157 aa 6 00050 3521 20 6130 eppbp sp|temp_pt,* get back ptr to ctl block 011160 aa 6 00056 3701 20 6131 epplp sp|double_temp,* get ptr to allocated space 011161 aa 2 00000 2371 00 6132 ldaq bp|0 copy current generation 011162 aa 4 00000 7571 00 6133 staq lp|0 011163 aa 2 00002 2371 00 6134 ldaq bp|2 011164 aa 4 00002 7571 00 6135 staq lp|2 011165 aa 2 00004 2371 00 6136 ldaq bp|4 011166 aa 4 00004 7571 00 6137 staq lp|4 011167 aa 2 00004 6501 00 6138 sprilp bp|4 store ptr to old generation 011170 aa 4 00006 3701 00 6139 epplp lp|6 get ptr to data|desc 011171 aa 2 00000 6501 11 6140 sprilp bp|0,1 store ptr to data|desc 011172 0a 007227 7100 00 6141 tra z_done and return 6142 " 6143 " operators to free a controlled generation, entered with 6144 " pointer to controlled block in bp 6145 " 011173 6146 pop_ctl_data: 011173 6147 pop_ctl_desc: 011173 aa 2 00004 2371 00 6148 ldaq bp|4 return if there is nothing to free 011174 0a 012430 6770 00 6149 eraq null 011175 0a 002106 3770 00 6150 anaq ptr_mask 011176 aa 6 00046 6001 70 6151 tze sp|tbp,*0 011177 aa 6 00037 4401 00 6152 sxl0 sp|stack_frame.operator_ret_ptr 011200 aa 2 00004 3701 20 6153 epplp bp|4,* get ptr to previous generation 011201 aa 6 00050 6501 00 6154 sprilp sp|temp_pt save for freeing 011202 aa 4 00000 2371 00 6155 ldaq lp|0 copy old generation into current 011203 aa 2 00000 7571 00 6156 staq bp|0 011204 aa 4 00002 2371 00 6157 ldaq lp|2 011205 aa 2 00002 7571 00 6158 staq bp|2 011206 aa 4 00004 2371 00 6159 ldaq lp|4 011207 aa 2 00004 7571 00 6160 staq bp|4 011210 aa 6 00050 3521 00 6161 eppbp sp|temp_pt get ptr to block to be freed 011211 0a 011142 7000 00 6162 tsx0 call_free free it 011212 0a 007227 7100 00 6163 tra z_done and then return 6164 " 6165 " operator to return number of allocated generation of contrlled 6166 " variable specified by bp 6167 " 011213 6168 allocation: 011213 aa 000000 6210 00 6169 eax1 0 init count 011214 aa 2 00004 2371 00 6170 ldaq bp|4 get ptr to previous generation 011215 0a 012430 6770 00 6171 eraq null check for null 011216 0a 002106 3770 00 6172 anaq ptr_mask 011217 0a 011223 6000 00 6173 tze allocation_done null means done 011220 aa 2 00004 3521 20 6174 eppbp bp|4,* not null, step backwards 011221 aa 000001 0210 03 6175 adlx1 1,du update count 011222 0a 011214 7100 00 6176 tra allocation+1 011223 6177 allocation_done: 011223 aa 000000 6360 11 6178 eaq 0,1 move count to ql 011224 aa 000022 7720 00 6179 qrl 18 011225 aa 6 00046 7101 70 6180 tra sp|tbp,*0 and return 6181 " 6182 " operators for unpacking|packing pictured values 6183 " entered with pr1 -> target, pr3 -> picture, pr5 -> source 6184 " 011226 6185 unpack_picture: 011226 0a 011323 7010 00 6186 tsx1 get_our_lp 011227 4a 4 00352 3521 20 6187 eppbp |[unpack_picture_] 011230 0a 011233 7100 00 6188 tra picture_common 6189 " 011231 6190 pack_picture: 011231 0a 011323 7010 00 6191 tsx1 get_our_lp 011232 4a 4 00354 3521 20 6192 eppbp |[pack_picture_] 6193 " 011233 6194 picture_common: 011233 aa 6 00037 4401 00 6195 sxl0 sp|stack_frame.operator_ret_ptr 011234 0a 007227 6200 00 6196 eax0 z_done 011235 aa 6 00010 7531 00 6197 sreg sp|8 011236 aa 6 00072 2515 00 6198 spri1 sp|arg_list+2 011237 aa 6 00074 2535 00 6199 spri3 sp|arg_list+4 011240 aa 6 00076 6515 00 6200 spri5 sp|arg_list+6 011241 aa 014000 4310 07 6201 fld 3*2048,dl 011242 0a 011122 7100 00 6202 tra call_alloc_free 6203 " 6204 " internal subroutine to signal a condition. entered with 6205 " bp pointing at name and x6 holding size of name 6206 " 011243 6207 call_signal_: 011243 aa 6 00010 7531 00 6208 sreg sp|8 save registers for call 6209 get_stack_offset 011244 aa 6 00000 6351 00 eaa sp|0 get offset of stack frame in au 011245 0a 011677 6750 00 era mask_bit_one form 2's complement of whole a-reg 011246 aa 000001 0350 07 adla 1,dl w/o overflow 011247 aa 6 00024 3501 21 6210 eppap sp|stack_header.stack_end_ptr,au* get ptr to end of stack frame 011250 aa 000060 6200 00 6211 eax0 48 increase stack frame by 48 words 011251 aa 6 00023 0201 00 6212 adlx0 sp|stack_frame.next_sp+1 .. 011252 aa 6 00023 7401 00 6213 stx0 sp|stack_frame.next_sp+1 011253 aa 6 00025 7401 01 6214 stx0 sp|stack_header.stack_end_ptr+1,au adjust stack end pointer too 011254 aa 0 00000 2541 00 6215 spri ap|0 save bases 011255 aa 0 00030 3501 00 6216 eppap ap|24 get ptr to arg list 011256 aa 0 00002 2521 00 6217 spribp ap|2 save ptr to condition name as 1st arg 011257 0a 012430 3520 00 6218 eppbp null get ptr to null file 011260 aa 0 00012 2521 00 6219 spribp ap|10 save as 5th arg 011261 6220 signal_common: 011261 aa 0 00016 7561 00 6221 stq ap|14 store oncode value 011262 aa 0 00016 3521 00 6222 eppbp ap|14 use oncode value 011263 aa 0 00010 2521 00 6223 spribp ap|8 as 4th arg 011264 aa 0 00017 4501 00 6224 stz ap|15 save string length of condition name 011265 aa 0 00017 4461 00 6225 sxl6 ap|15 011266 aa 0 00017 3521 00 6226 eppbp ap|15 pass name length 011267 aa 0 00004 2521 00 6227 spribp ap|4 as 2nd arg 011270 aa 6 00037 7271 00 6228 lxl7 sp|stack_frame.operator_ret_ptr get ptr to entry into pl1_operators_ 011271 aa 000001 1670 03 6229 sbx7 1,du 011272 aa 6 00046 3521 77 6230 eppbp sp|tbp,*7 and save for use 011273 aa 0 00014 2521 00 6231 spribp ap|12 as 3rd arg 011274 aa 0 00014 3521 00 6232 eppbp ap|12 011275 aa 0 00006 2521 00 6233 spribp ap|6 011276 aa 024000 4310 07 6234 fld 5*2048,dl set number of args 011277 aa 0 00000 7571 00 6235 staq ap|0 011300 0a 011323 7010 00 6236 tsx1 get_our_lp get ptr to our linkage 011301 aa 000004 3514 04 6237 epp1 4,ic store return address and indicators 011302 aa 6 00024 2515 00 6238 spri1 sp|stack_frame.return_ptr 011303 aa 6 00025 7541 00 6239 sti sp|stack_frame.return_ptr+1 011304 4a 4 00356 7101 20 6240 tra |[pl1_signal_from_ops_] 011305 aa 6 00022 3501 20 6241 eppap sp|stack_frame.next_sp,* point 48 words past stack extension 011306 aa 0 77720 1731 00 6242 lpri ap|-48 restore pointer regs 6243 get_stack_offset 011307 aa 6 00000 6351 00 eaa sp|0 get offset of stack frame in au 011310 0a 011677 6750 00 era mask_bit_one form 2's complement of whole a-reg 011311 aa 000001 0350 07 adla 1,dl w/o overflow 011312 aa 6 00023 2201 00 6244 ldx0 sp|stack_frame.next_sp+1 reset the stack frame size 011313 aa 000060 1200 03 6245 sblx0 48,du by subtracting the 48 words we added. 011314 aa 6 00023 7401 00 6246 stx0 sp|stack_frame.next_sp+1 update next sp pointer 011315 aa 6 00025 7401 01 6247 stx0 sp|stack_header.stack_end_ptr+1,au update stack end too 011316 aa 6 00010 0731 00 6248 lreg sp|8 restore machine registers 011317 aa 6 00046 3505 70 6249 epbpap sp|tbp,*0 restore return word pair 011320 aa 6 00024 2501 00 6250 spriap sp|stack_frame.return_ptr segment number 011321 aa 6 00030 3501 20 6251 eppap sp|stack_frame.operator_ptr,* and pointer to operators 011322 aa 000000 7100 11 6252 tra 0,1 and return 6253 " 6254 " Subroutine to load PR4 with a pointer to linkage of 6255 " pl1_operators_. Also sets PR7 to stack|0. Calling sequence: 6256 " tsx1 get_our_lp 6257 " 011323 6258 get_our_lp: 6259 get_our_lp 011323 aa 6 00000 3731 00 epbpsb sp|0 make sure sb is set up 011324 0a 011324 2130 00 epaq * get ptr to ourselves 011325 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get packed ptr to linkage from lot 011326 aa 000000 7100 11 6260 tra 0,1 return with lp loaded to our linkage 6261 " 6262 " operator to signal io condition, same as signal except sp|40 holds 6263 " pointer to file name. 6264 " 011327 6265 io_signal: 011327 0a 007227 6210 00 6266 eax1 z_done get return_pt for call to signal_common 011330 aa 6 00010 7531 00 6267 sreg sp|8 save register for call 6268 get_stack_offset 011331 aa 6 00000 6351 00 eaa sp|0 get offset of stack frame in au 011332 0a 011677 6750 00 era mask_bit_one form 2's complement of whole a-reg 011333 aa 000001 0350 07 adla 1,dl w/o overflow 011334 aa 6 00037 4401 00 6269 sxl0 sp|stack_frame.operator_ret_ptr 011335 aa 6 00024 3501 21 6270 eppap sp|stack_header.stack_end_ptr,au* get pointer to end of stack frame 011336 aa 000060 6200 00 6271 eax0 48 increase stack frame by 48 words 011337 aa 6 00023 0201 00 6272 adlx0 sp|stack_frame.next_sp+1 .. 011340 aa 6 00023 7401 00 6273 stx0 sp|stack_frame.next_sp+1 .. 011341 aa 6 00025 7401 01 6274 stx0 sp|stack_header.stack_end_ptr+1,au don't forget stack end ptr 011342 aa 0 00000 2541 00 6275 spri ap|0 store bases 011343 aa 0 00030 3501 00 6276 eppap ap|24 get ptr to arg list 011344 aa 001750 2360 07 6277 ldq =1000,dl get oncode value 011345 aa 0 00002 2521 00 6278 spribp ap|2 store ptr to cond name as 1st arg 011346 aa 6 00050 3521 00 6279 eppbp sp|40 store ptr to file 011347 aa 0 00012 2521 00 6280 spribp ap|10 as 5th arg 011350 0a 011261 7100 00 6281 tra signal_common jump into common section to signal and return 6282 " 6283 " operator to set support bit in stack frame 6284 " 011351 6285 set_support: 011351 aa 000200 2350 07 6286 lda stack_frame.support_bit,dl 011352 aa 6 00020 2551 00 6287 orsa sp|stack_frame.flag_word 011353 aa 6 00046 7101 70 6288 tra sp|tbp,*0 6289 " 011354 6290 get_math_entry: 011354 0a 011323 7010 00 6291 tsx1 get_our_lp 011355 0a 011356 7160 12 6292 xec fort_math_names-1,2 get entry 011356 aa 6 00046 7101 70 6293 tra sp|tbp,*0 return 6294 6295 011357 6296 fort_math_names: 011357 4a 4 00360 3521 20 6297 epp2 |[exp_] 1 011360 4a 4 00362 3521 20 6298 epp2 |[alog_] 2 011361 4a 4 00364 3521 20 6299 epp2 |[alog10_] 3 011362 4a 4 00366 3521 20 6300 epp2 |[atan_] 4 011363 4a 4 00370 3521 20 6301 epp2 |[atan2_] 5 011364 4a 4 00372 3521 20 6302 epp2 |[sin_] 6 011365 4a 4 00374 3521 20 6303 epp2 |[cos_] 7 011366 4a 4 00376 3521 20 6304 epp2 |[tanh_] 8 011367 4a 4 00400 3521 20 6305 epp2 |[sqrt_] 9 011370 4a 4 00402 3521 20 6306 epp2 |[dmod_] 10 011371 4a 4 00404 3521 20 6307 epp2 |[dexp_] 11 011372 4a 4 00406 3521 20 6308 epp2 |[dlog_] 12 011373 4a 4 00410 3521 20 6309 epp2 |[dlog10_] 13 011374 4a 4 00412 3521 20 6310 epp2 |[datan_] 14 011375 4a 4 00414 3521 20 6311 epp2 |[datan2_] 15 011376 4a 4 00416 3521 20 6312 epp2 |[dsin_] 16 011377 4a 4 00420 3521 20 6313 epp2 |[dcos_] 17 011400 4a 4 00422 3521 20 6314 epp2 |[dsqrt_] 18 011401 4a 4 00424 3521 20 6315 epp2 |[cabs_] 19 011402 4a 4 00426 3521 20 6316 epp2 |[cexp_] 20 011403 4a 4 00430 3521 20 6317 epp2 |[clog_] 21 011404 4a 4 00432 3521 20 6318 epp2 |[csin_] 22 011405 4a 4 00434 3521 20 6319 epp2 |[ccos_] 23 011406 4a 4 00436 3521 20 6320 epp2 |[csqrt_] 24 011407 4a 4 00440 3521 20 6321 epp2 |[cxp2_] 25 011410 4a 4 00442 3521 20 6322 epp2 |[tan_] 26 011411 4a 4 00444 3521 20 6323 epp2 |[dtan_] 27 011412 4a 4 00446 3521 20 6324 epp2 |[asin_] 28 011413 4a 4 00450 3521 20 6325 epp2 |[dasin_] 29 011414 4a 4 00452 3521 20 6326 epp2 |[acos_] 30 011415 4a 4 00454 3521 20 6327 epp2 |[dacos_] 31 011416 4a 4 00456 3521 20 6328 epp2 |[index_] 32 011417 4a 4 00460 3521 20 6329 epp2 |[dtanh_] 33 011420 4a 4 00462 3521 20 6330 epp2 |[sinh_] 34 011421 4a 4 00464 3521 20 6331 epp2 |[dsinh_] 35 011422 4a 4 00466 3521 20 6332 epp2 |[cosh_] 36 011423 4a 4 00470 3521 20 6333 epp2 |[dcosh_] 37 011424 4a 4 00472 3521 20 6334 epp2 |[abs_] 38 011425 4a 4 00474 3521 20 6335 epp2 |[iabs_] 39 011426 4a 4 00476 3521 20 6336 epp2 |[dabs_] 40 011427 4a 4 00500 3521 20 6337 epp2 |[dim_] 41 011430 4a 4 00502 3521 20 6338 epp2 |[idim_] 42 011431 4a 4 00504 3521 20 6339 epp2 |[ddim_] 43 011432 4a 4 00506 3521 20 6340 epp2 |[sign_] 44 011433 4a 4 00510 3521 20 6341 epp2 |[isign_] 45 011434 4a 4 00512 3521 20 6342 epp2 |[dsign_] 46 011435 4a 4 00514 3521 20 6343 epp2 |[aint_] 47 011436 4a 4 00516 3521 20 6344 epp2 |[aimag_] 48 011437 4a 4 00520 3521 20 6345 epp2 |[conjg_] 49 011440 4a 4 00522 3521 20 6346 epp2 |[len_] 50 011441 4a 4 00524 3521 20 6347 epp2 |[dint_] 51 011442 4a 4 00526 3521 20 6348 epp2 |[anint_] 52 011443 4a 4 00530 3521 20 6349 epp2 |[dnint_] 53 011444 4a 4 00532 3521 20 6350 epp2 |[nint_] 54 011445 4a 4 00534 3521 20 6351 epp2 |[idnint_] 55 011446 4a 4 00536 3521 20 6352 epp2 |[dprod_] 56 011447 4a 4 00540 3521 20 6353 epp2 |[mod_] 57 011450 4a 4 00542 3521 20 6354 epp2 |[amod_] 58 011451 4a 4 00544 3521 20 6355 epp2 |[ilr_] 59 011452 4a 4 00546 3521 20 6356 epp2 |[ils_] 60 011453 4a 4 00550 3521 20 6357 epp2 |[irl_] 61 011454 4a 4 00552 3521 20 6358 epp2 |[irs_] 62 6359 011455 6360 fortran_end: 011455 aa 000004 2360 07 6361 ldq 4,dl 011456 aa 6 00070 7561 00 6362 stq sp|arg_list 011457 aa 6 00071 4501 00 6363 stz sp|arg_list+1 011460 aa 6 00070 3501 00 6364 epp0 sp|arg_list 011461 0a 011323 7010 00 6365 tsx1 get_our_lp 011462 4a 4 00554 7131 20 6366 callsp |[fortran_end] 6367 6368 011463 6369 fortran_pause: 011463 aa 000000 6220 00 6370 eax2 0 011464 0a 011466 7100 00 6371 tra pause_stop 6372 011465 6373 fortran_stop: 011465 aa 000001 6220 00 6374 eax2 1 6375 011466 6376 pause_stop: 011466 aa 6 00072 2521 00 6377 spri2 sp|arg_list+2 argument 1 011467 aa 524000 2760 03 6378 orq =o524000,du 011470 aa 6 00076 7561 00 6379 stq sp|temp 011471 aa 6 00076 3521 00 6380 epp2 sp|temp 011472 aa 6 00074 2521 00 6381 spri2 sp|arg_list+4 descriptor 1 011473 aa 004000 4310 07 6382 fld 1*2048,dl one argument 011474 aa 000000 6360 01 6383 eaq 0,au there are descriptors 011475 aa 6 00070 7571 00 6384 staq sp|arg_list 011476 aa 6 00070 3501 00 6385 epp0 sp|arg_list get argument list header 011477 aa 6 00025 7401 00 6386 stx0 sp|stack_frame.return_ptr+1 save return point 011500 aa 6 00025 7541 00 6387 sti sp|stack_frame.return_ptr+1 save indicators 011501 0a 011323 7010 00 6388 tsx1 get_our_lp 011502 0a 011504 7160 12 6389 xec pause_stop_names,2 011503 aa 2 00000 7131 00 6390 callsp pr2|0 6391 011504 6392 pause_stop_names: 011504 4a 4 00556 3521 20 6393 epp2 |[fortran_pause_] 011505 4a 4 00560 3521 20 6394 epp2 |[fortran_stop_] 6395 011506 6396 fortran_chain: 011506 aa 6 00072 2521 00 6397 spri2 sp|arg_list+2 argument 1 6398 011507 0a 011523 2370 00 6399 ldaq old_sys_name old system name 011510 aa 2 00053 7571 00 6400 staq pr2|43 6401 011511 0a 011323 7010 00 6402 tsx1 get_our_lp 011512 4a 4 00562 3521 20 6403 epp2 |[chain_entry] 6404 011513 aa 004000 4310 07 6405 fld 1*2048,dl one argument 011514 aa 6 00070 7571 00 6406 staq sp|arg_list 011515 aa 6 00070 3501 00 6407 epp0 sp|arg_list get argument list header 6408 011516 aa 2 00002 3535 20 6409 epp3 pr2|2,* get display pointer 011517 aa 0 00002 2535 01 6410 spri3 pr0|2,au store at the end of the argument list 6411 011520 aa 6 00025 7401 00 6412 stx0 sp|stack_frame.return_ptr+1 save return point 011521 aa 6 00025 7541 00 6413 sti sp|stack_frame.return_ptr+1 save indicators 011522 aa 2 00000 7131 20 6414 callsp pr2|0,* make the call 6415 011523 6416 old_sys_name: 011523 aa 000000 0110 03 6417 even 011524 aa 146 157 162 164 6418 aci "fortran " 011525 aa 162 141 156 040 6419 6420 " 6421 " Function: enter Binary Floating Point (BFP) mode 6422 " 6423 " Entry: X0 = offset in caller's text section of return point 6424 " 6425 " Exit: PR0, (sp|stack_frame.operator_ptr) -> operator_table 6426 " 011526 6427 enter_BFP_mode: 011526 aa 000000 6340 07 6428 ldi 0,dl clear HFP mode if it's set 011527 0a 001426 3500 00 6429 epp0 operator_table change to BFP operators 011530 aa 6 00030 2501 00 6430 spri0 sp|stack_frame.operator_ptr 011531 aa 6 00046 7101 70 6431 tra sp|tbp,*x0 6432 6433 " 6434 " Function: enter Hexadecimal Floating Point (HFP) mode 6435 " 6436 " Entry: X0 = offset in caller's text section of return point 6437 " 6438 " Exit: PR0, (sp|stack_frame.operator_ptr) = hfp_operator_table 6439 " 6440 " Note: It is not sufficient to just request HFP mode. We must 6441 " check that our request has been honoured, since if HFP 6442 " mode has not been enabled (or if it is not supported), a 6443 " request to enter HFP mode is simply ignored. If we find 6444 " that our request to enter HFP mode has not been honoured, 6445 " we attempt to enable HFP mode. If we are unsuccessful, 6446 " we signal the condition 'cannot_enable_HFP_mode'. If we 6447 " are restarted after signalling this condition, we repeat 6448 " all the above steps. 6449 " 011532 6450 enter_HFP_mode: 011532 aa 000010 6340 07 6451 ldi HFP_mask,dl request HFP mode 011533 aa 002040 4310 03 6452 fld P1.0H,du check if request honoured 011534 aa 400000 4750 03 6453 fad P0.0H,du 011535 aa 020000 1750 03 6454 sba =o020000,du 011536 0a 011554 6000 00 6455 tze enter_HFP_mode.entered 011537 aa 600000 2350 03 6456 lda =o600000,du try to enable HFP mode 011540 0a 011557 7010 00 6457 tsx1 call_set_hexfp_control 011541 aa 000010 6340 07 6458 ldi HFP_mask,dl check if successful 011542 aa 002040 4310 03 6459 fld P1.0H,du 011543 aa 400000 4750 03 6460 fad P0.0H,du 011544 aa 020000 1750 03 6461 sba =o020000,du 011545 0a 011554 6000 00 6462 tze enter_HFP_mode.entered 011546 aa 000000 6340 07 6463 ldi =0,dl clear HFP mode request 011547 0a 025026 3520 00 6464 eppbp =22acannot_enable_HFP_mode 011550 aa 000026 6260 00 6465 eax6 22 011551 aa 001750 2360 07 6466 ldq =1000,dl 011552 0a 011243 7010 00 6467 tsx1 call_signal_ signal 'cannot_enable_HFP_mode' condition 011553 0a 011532 7100 00 6468 tra enter_HFP_mode try again 6469 011554 6470 enter_HFP_mode.entered: 011554 0a 014140 3500 00 6471 epp0 hfp_operator_table change to HFP operators 011555 aa 6 00030 2501 00 6472 spri0 sp|stack_frame.operator_ptr 011556 aa 6 00046 7101 70 6473 tra sp|tbp,*x0 6474 6475 " 6476 " Function: call 'hcs_$set_hexfp_control'. 6477 " 6478 " Entry: A = desired value for 1st argument: 6479 " 1b2 => retain current mode 6480 " 2b2 => disable HFP mode 6481 " 3b2 => enable HFP mode 6482 " X1 = offset of return address 6483 " 6484 " Exit: A = returned value of 2nd argument: 6485 " 2b2 => HFP mode was disabled before call 6486 " 3b2 => HFP mode was enabled before call 6487 " Q = returned value of 3rd argument: 6488 " a standard system status code. 6489 " 6490 " Alters: A, Q, (sp|8:sp|15). 6491 " 011557 6492 call_set_hexfp_control: 011557 aa 6 00010 7531 00 6493 sreg sp|8 save X0:X7, AQ and E 6494 get_stack_offset 011560 aa 6 00000 6351 00 eaa sp|0 get offset of stack frame in au 011561 0a 011677 6750 00 era mask_bit_one form 2's complement of whole a-reg 011562 aa 000001 0350 07 adla 1,dl w/o overflow 011563 aa 6 00024 3501 21 6495 eppap sp|stack_header.stack_end_ptr,au* get ptr to end of stack frame 011564 aa 000040 6200 00 6496 eax0 32 increase stack frame by 32 words 011565 aa 6 00023 0201 00 6497 adlx0 sp|stack_frame.next_sp+1 .. 011566 aa 6 00023 7401 00 6498 stx0 sp|stack_frame.next_sp+1 011567 aa 6 00025 7401 01 6499 stx0 sp|stack_header.stack_end_ptr+1,au adjust stack end pointer too 011570 aa 0 00000 2541 00 6500 spri ap|0 save PR0:PR7 011571 aa 0 00020 3501 00 6501 eppap ap|16 form argument list 011572 aa 014000 4310 07 6502 fld 3*2048,dl 011573 aa 0 00000 7571 00 6503 staq ap|0 there are 3 arguments 011574 aa 6 00014 3515 00 6504 epp1 sp|8+4 011575 aa 0 00002 2515 00 6505 spri1 ap|2 1st argument is cache for A 011576 aa 0 00004 2515 00 6506 spri1 ap|4 2nd argument is cache for A 011577 aa 6 00015 3515 00 6507 epp1 sp|8+5 011600 aa 0 00006 2515 00 6508 spri1 ap|6 3rd argument is cache for Q 011601 0a 011323 7010 00 6509 tsx1 get_our_lp 011602 aa 000004 3514 04 6510 epp1 4,ic make the call: 011603 aa 6 00024 2515 00 6511 spri1 sp|stack_frame.return_ptr 011604 aa 6 00025 7541 00 6512 sti sp|stack_frame.return_ptr+1 011605 4a 4 00564 7131 20 6513 callsp |[set_hexfp_control] 011606 aa 6 00022 3501 20 6514 eppap sp|stack_frame.next_sp,* point 32 words past stack extension 011607 aa 0 77740 1731 00 6515 lpri ap|-32 restore pointer regs 6516 get_stack_offset 011610 aa 6 00000 6351 00 eaa sp|0 get offset of stack frame in au 011611 0a 011677 6750 00 era mask_bit_one form 2's complement of whole a-reg 011612 aa 000001 0350 07 adla 1,dl w/o overflow 011613 aa 6 00005 2201 00 6517 ldx0 sp|5 get offset of original end of frame 011614 aa 6 00023 7401 00 6518 stx0 sp|stack_frame.next_sp+1 update next sp pointer 011615 aa 6 00025 7401 01 6519 stx0 sp|stack_header.stack_end_ptr+1,au update stack end too 011616 aa 6 00010 0731 00 6520 lreg sp|8 restore machine registers 011617 aa 6 00046 3505 70 6521 epbpap sp|tbp,*0 restore return word pair 011620 aa 6 00024 2501 00 6522 spriap sp|stack_frame.return_ptr segment number 011621 aa 6 00030 3501 20 6523 eppap sp|stack_frame.operator_ptr,* and pointer to operators 011622 aa 000000 7100 11 6524 tra 0,x1 return 6525 6526 " 6527 " this code execute for unimplemented operators 6528 " 011623 aa 6 00056 2521 00 6529 unimp: spribp sp|double_temp save bp 011624 aa 6 00072 7461 00 6530 stx6 sp|temp2 011625 0a 011631 3520 00 6531 eppbp error_name signal error condition 011626 aa 000005 6260 00 6532 eax6 error_length 011627 aa 001306 2360 07 6533 ldq =710,dl with oncode = 710 011630 0a 010002 7100 00 6534 tra ssc 011631 6535 error_name: 011631 aa 145 162 162 157 6536 aci "error" 011632 aa 162 000 000 000 000005 6537 equ error_length,5 6538 " 6539 " Single word mask arrays are used only by operators 6540 " 011633 6541 bit_mask_one: 011633 aa 000000 000000 6542 vfd 0/-1,36/0 011634 aa 400000 000000 6543 vfd 1/-1,35/0 011635 aa 600000 000000 6544 vfd 2/-1,34/0 011636 aa 700000 000000 6545 vfd 3/-1,33/0 011637 aa 740000 000000 6546 vfd 4/-1,32/0 011640 aa 760000 000000 6547 vfd 5/-1,31/0 011641 aa 770000 000000 6548 vfd 6/-1,30/0 011642 aa 774000 000000 6549 vfd 7/-1,29/0 011643 aa 776000 000000 6550 vfd 8/-1,28/0 011644 aa 777000 000000 6551 vfd 9/-1,27/0 011645 aa 777400 000000 6552 vfd 10/-1,26/0 011646 aa 777600 000000 6553 vfd 11/-1,25/0 011647 aa 777700 000000 6554 vfd 12/-1,24/0 011650 aa 777740 000000 6555 vfd 13/-1,23/0 011651 aa 777760 000000 6556 vfd 14/-1,22/0 011652 aa 777770 000000 6557 vfd 15/-1,21/0 011653 aa 777774 000000 6558 vfd 16/-1,20/0 011654 aa 777776 000000 6559 vfd 17/-1,19/0 011655 aa 777777 000000 6560 vfd 18/-1,18/0 011656 aa 777777 400000 6561 vfd 19/-1,17/0 011657 aa 777777 600000 6562 vfd 20/-1,16/0 011660 aa 777777 700000 6563 vfd 21/-1,15/0 011661 aa 777777 740000 6564 vfd 22/-1,14/0 011662 aa 777777 760000 6565 vfd 23/-1,13/0 011663 aa 777777 770000 6566 vfd 24/-1,12/0 011664 aa 777777 774000 6567 vfd 25/-1,11/0 011665 aa 777777 776000 6568 vfd 26/-1,10/0 011666 aa 777777 777000 6569 vfd 27/-1,9/0 011667 aa 777777 777400 6570 vfd 28/-1,8/0 011670 aa 777777 777600 6571 vfd 29/-1,7/0 011671 aa 777777 777700 6572 vfd 30/-1,6/0 011672 aa 777777 777740 6573 vfd 31/-1,5/0 011673 aa 777777 777760 6574 vfd 32/-1,4/0 011674 aa 777777 777770 6575 vfd 33/-1,3/0 011675 aa 777777 777774 6576 vfd 34/-1,2/0 011676 aa 777777 777776 6577 vfd 35/-1,1/0 6578 " 011677 6579 mask_bit_one: 011677 aa 777777 777777 6580 vfd 0/0,36/-1 011700 aa 377777 777777 6581 vfd 1/0,35/-1 011701 aa 177777 777777 6582 vfd 2/0,34/-1 011702 aa 077777 777777 6583 vfd 3/0,33/-1 011703 aa 037777 777777 6584 vfd 4/0,32/-1 011704 aa 017777 777777 6585 vfd 5/0,31/-1 011705 aa 007777 777777 6586 vfd 6/0,30/-1 011706 aa 003777 777777 6587 vfd 7/0,29/-1 011707 aa 001777 777777 6588 vfd 8/0,28/-1 011710 aa 000777 777777 6589 vfd 9/0,27/-1 011711 aa 000377 777777 6590 vfd 10/0,26/-1 011712 aa 000177 777777 6591 vfd 11/0,25/-1 011713 aa 000077 777777 6592 vfd 12/0,24/-1 011714 aa 000037 777777 6593 vfd 13/0,23/-1 011715 aa 000017 777777 6594 vfd 14/0,22/-1 011716 aa 000007 777777 6595 vfd 15/0,21/-1 011717 aa 000003 777777 6596 vfd 16/0,20/-1 011720 aa 000001 777777 6597 vfd 17/0,19/-1 011721 aa 000000 777777 6598 vfd 18/0,18/-1 011722 aa 000000 377777 6599 vfd 19/0,17/-1 011723 aa 000000 177777 6600 vfd 20/0,16/-1 011724 aa 000000 077777 6601 vfd 21/0,15/-1 011725 aa 000000 037777 6602 vfd 22/0,14/-1 011726 aa 000000 017777 6603 vfd 23/0,13/-1 011727 aa 000000 007777 6604 vfd 24/0,12/-1 011730 aa 000000 003777 6605 vfd 25/0,11/-1 011731 aa 000000 001777 6606 vfd 26/0,10/-1 011732 aa 000000 000777 6607 vfd 27/0,9/-1 011733 aa 000000 000377 6608 vfd 28/0,8/-1 011734 aa 000000 000177 6609 vfd 29/0,7/-1 011735 aa 000000 000077 6610 vfd 30/0,6/-1 011736 aa 000000 000037 6611 vfd 31/0,5/-1 011737 aa 000000 000017 6612 vfd 32/0,4/-1 011740 aa 000000 000007 6613 vfd 33/0,3/-1 011741 aa 000000 000003 6614 vfd 34/0,2/-1 011742 aa 000000 000001 6615 vfd 35/0,1/-1 6616 " 011743 6617 single_bit: 6618 " 011743 aa 400000 000000 6619 vfd 0/0,1/1 011744 aa 200000 000000 6620 vfd 1/0,1/1 011745 aa 100000 000000 6621 vfd 2/0,1/1 011746 aa 040000 000000 6622 vfd 3/0,1/1 011747 aa 020000 000000 6623 vfd 4/0,1/1 011750 aa 010000 000000 6624 vfd 5/0,1/1 011751 aa 004000 000000 6625 vfd 6/0,1/1 011752 aa 002000 000000 6626 vfd 7/0,1/1 011753 aa 001000 000000 6627 vfd 8/0,1/1 011754 aa 000400 000000 6628 vfd 9/0,1/1 011755 aa 000200 000000 6629 vfd 10/0,1/1 011756 aa 000100 000000 6630 vfd 11/0,1/1 011757 aa 000040 000000 6631 vfd 12/0,1/1 011760 aa 000020 000000 6632 vfd 13/0,1/1 011761 aa 000010 000000 6633 vfd 14/0,1/1 011762 aa 000004 000000 6634 vfd 15/0,1/1 011763 aa 000002 000000 6635 vfd 16/0,1/1 011764 aa 000001 000000 6636 vfd 17/0,1/1 011765 aa 000000 400000 6637 vfd 18/0,1/1 011766 aa 000000 200000 6638 vfd 19/0,1/1 011767 aa 000000 100000 6639 vfd 20/0,1/1 011770 aa 000000 040000 6640 vfd 21/0,1/1 011771 aa 000000 020000 6641 vfd 22/0,1/1 011772 aa 000000 010000 6642 vfd 23/0,1/1 011773 aa 000000 004000 6643 vfd 24/0,1/1 011774 aa 000000 002000 6644 vfd 25/0,1/1 011775 aa 000000 001000 6645 vfd 26/0,1/1 011776 aa 000000 000400 6646 vfd 27/0,1/1 011777 aa 000000 000200 6647 vfd 28/0,1/1 012000 aa 000000 000100 6648 vfd 29/0,1/1 012001 aa 000000 000040 6649 vfd 30/0,1/1 012002 aa 000000 000020 6650 vfd 31/0,1/1 012003 aa 000000 000010 6651 vfd 32/0,1/1 012004 aa 000000 000004 6652 vfd 33/0,1/1 012005 aa 000000 000002 6653 vfd 34/0,1/1 012006 aa 000000 000001 6654 vfd 35/0,1/1 6655 " 012007 6656 floor_ceil_mask: 6657 " 012007 aa 000000 000000 6658 vfd 36/0,0/-1 012010 aa 000000 000001 6659 vfd 35/0,1/-1 012011 aa 000000 000003 6660 vfd 34/0,2/-1 012012 aa 000000 000007 6661 vfd 33/0,3/-1 012013 aa 000000 000017 6662 vfd 32/0,4/-1 012014 aa 000000 000037 6663 vfd 31/0,5/-1 012015 aa 000000 000077 6664 vfd 30/0,6/-1 012016 aa 000000 000177 6665 vfd 29/0,7/-1 012017 aa 000000 000377 6666 vfd 28/0,8/-1 012020 aa 000000 000777 6667 vfd 27/0,9/-1 012021 aa 000000 001777 6668 vfd 26/0,10/-1 012022 aa 000000 003777 6669 vfd 25/0,11/-1 012023 aa 000000 007777 6670 vfd 24/0,12/-1 012024 aa 000000 017777 6671 vfd 23/0,13/-1 012025 aa 000000 037777 6672 vfd 22/0,14/-1 012026 aa 000000 077777 6673 vfd 21/0,15/-1 012027 aa 000000 177777 6674 vfd 20/0,16/-1 012030 aa 000000 377777 6675 vfd 19/0,17/-1 012031 aa 000000 777777 6676 vfd 18/0,18/-1 012032 aa 000001 777777 6677 vfd 17/0,19/-1 012033 aa 000003 777777 6678 vfd 16/0,20/-1 012034 aa 000007 777777 6679 vfd 15/0,21/-1 012035 aa 000017 777777 6680 vfd 14/0,22/-1 012036 aa 000037 777777 6681 vfd 13/0,23/-1 012037 aa 000077 777777 6682 vfd 12/0,24/-1 012040 aa 000177 777777 6683 vfd 11/0,25/-1 012041 aa 000377 777777 6684 vfd 10/0,26/-1 012042 aa 000777 777777 6685 vfd 9/0,27/-1 012043 aa 001777 777777 6686 vfd 8/0,28/-1 012044 aa 003777 777777 6687 vfd 7/0,29/-1 012045 aa 007777 777777 6688 vfd 6/0,30/-1 012046 aa 017777 777777 6689 vfd 5/0,31/-1 012047 aa 037777 777777 6690 vfd 4/0,32/-1 012050 aa 077777 777777 6691 vfd 3/0,33/-1 012051 aa 177777 777777 6692 vfd 2/0,34/-1 012052 aa 377777 777777 6693 vfd 1/0,35/-1 012053 aa 777777 777777 6694 vfd 0/0,36/-1 6695 " 6696 " 6697 " Entry operators, entered by following sequence in text section 6698 " 6699 " eax7 stack_size 6700 " eppbp sb|stack_header.pl1_operators_ptr,* 6701 " tspbp bp|n (bp points at segdef operator_table) 6702 " vfd 18/n_args,18/unused 6703 " vfd 18/link,18/block 6704 " 6705 " 6706 " 6707 " 6708 " The following macro is the ext_entry macro. It conditionally expands the 6709 " trace code if the first argument is "trace_". It conditionally sets 6710 " the static ptr if the second argument is "ss_". 6711 " 6712 6713 macro ext_entry 1 6714 &1&2ext_entry: 2 6715 eppbp bp|-3 get correct entry pointer value 3 6716 trace &1 4 6717 epaq bp|0 get segment number in a 5 6718 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 6 6719 ife &2,ss_ 7 6720 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static from packed ptr 8 6721 ifend 9 6722 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 10 6723 sprisp bb|stack_frame.prev_sp set back ptr of new frame 11 6724 spriap bb|stack_frame.arg_ptr save arg pointer 12 6725 eppab bb|0,7 get pointer to end of new frame 13 6726 spriab bb|stack_frame.next_sp set next pointer of new frame 14 6727 spriab sb|stack_header.stack_end_ptr update stack end ptr 15 6728 eppsp bb|0 update sp 16 6729 &1&2save_link: 17 6730 sprilp sp|linkage_ptr save ptr to linkage in stack head 18 6731 ife &2,ss_ 19 6732 sprplb sp|stack_frame.static_ptr save static ptr 20 6733 ifend 21 6734 spribp sp|stack_frame.entry_ptr save ptr to entry point 22 6735 &1&2init_stack_join: 23 6736 spbpbp sp|text_base_ptr save ptr to base of text segment 24 6737 spbpbp sp|stack_frame.return_ptr init procedure call return point 25 6738 stz sp|stack_frame.operator_ret_ptr init operator return offset 26 6739 " 27 6740 eppap &1operator_table and pointer to operators 28 6741 spriap sp|stack_frame.operator_ptr save pointer to operator segment 29 6742 spriab sp|4 save pointer to end of frame for temp extensions 30 6743 ldi 0,dl reset all indicators (overflow mask in particular) 31 6744 tra bp|5 and return to user program 32 6745 &end 6746 6747 ext_entry 012054 ext_entry: 012054 aa 2 77775 3521 00 eppbp bp|-3 get correct entry pointer value trace 012055 aa 2 00000 2131 00 epaq bp|0 get segment number in a 012056 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 012057 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012060 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 012061 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 012062 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012063 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012064 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr update stack end ptr 012065 aa 3 00000 3721 00 eppsp bb|0 update sp 012066 save_link: 012066 aa 6 00044 6501 00 sprilp sp|linkage_ptr save ptr to linkage in stack head 012067 aa 6 00026 2521 00 spribp sp|stack_frame.entry_ptr save ptr to entry point 012070 init_stack_join: 012070 aa 6 00046 2525 00 spbpbp sp|text_base_ptr save ptr to base of text segment 012071 aa 6 00024 2525 00 spbpbp sp|stack_frame.return_ptr init procedure call return point 012072 aa 6 00037 4501 00 stz sp|stack_frame.operator_ret_ptr init operator return offset " 012073 0a 001426 3500 00 eppap operator_table and pointer to operators 012074 aa 6 00030 2501 00 spriap sp|stack_frame.operator_ptr save pointer to operator segment 012075 aa 6 00004 2515 00 spriab sp|4 save pointer to end of frame for temp extensions 012076 aa 000000 6340 07 ldi 0,dl reset all indicators (overflow mask in particular) 012077 aa 2 00005 7101 00 tra bp|5 and return to user program 6748 " 6749 " The following macro is analogous to ext_entry except for entries which expect 6750 " descriptors. 6751 " 6752 macro ext_entry_desc 1 6753 &1&2ext_entry_desc: 2 6754 eppbp bp|-3 get correct entry pointer value 3 6755 trace &1 4 6756 epaq bp|0 get segment number of text 5 6757 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 6 6758 ife &2,ss_ 7 6759 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static from packed ptr 8 6760 ifend 9 6761 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 10 6762 sprisp bb|stack_frame.prev_sp set back ptr of new frame 11 6763 spriap bb|stack_frame.arg_ptr save arg pointer 12 6764 eppab bb|0,7 get pointer to end of new frame 13 6765 spriab bb|stack_frame.next_sp set next pointer of new frame 14 6766 spriab sb|stack_header.stack_end_ptr set new stack end ptr 15 6767 eppsp bb|0 update sp 16 6768 " 17 6769 &1&2eed: 18 6770 lda ap|0 get 2*n_args in au, code in al 19 6771 cana 8,dl is there an extra arg 20 6772 tze 2,ic no 21 6773 ada 2,du yes, allow for it 22 6774 eppbb ap|2,au get ptr to descriptors 23 6775 spribb sp|descriptor_ptr set ptr in stack frame 24 6776 tra &1&2save_link join common section 25 6777 &end 6778 " 6779 ext_entry_desc 012100 ext_entry_desc: 012100 aa 2 77775 3521 00 eppbp bp|-3 get correct entry pointer value trace 012101 aa 2 00000 2131 00 epaq bp|0 get segment number of text 012102 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 012103 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012104 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 012105 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 012106 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012107 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012110 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set new stack end ptr 012111 aa 3 00000 3721 00 eppsp bb|0 update sp " 012112 eed: 012112 aa 0 00000 2351 00 lda ap|0 get 2*n_args in au, code in al 012113 aa 000010 3150 07 cana 8,dl is there an extra arg 012114 aa 000002 6000 04 tze 2,ic no 012115 aa 000002 0750 03 ada 2,du yes, allow for it 012116 aa 0 00002 3535 01 eppbb ap|2,au get ptr to descriptors 012117 aa 6 00042 2535 00 spribb sp|descriptor_ptr set ptr in stack frame 012120 0a 012066 7100 00 tra save_link join common section 6780 6781 " 6782 " The following macro is the other_entries macro. It conditionally 6783 " sets the static ptr if the first argument is "ss_". 6784 " 6785 macro other_entries 1 6786 &1int_entry: 2 6787 epaq bp|0 get segment number of text 3 6788 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 4 6789 ife &1,ss_ 5 6790 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static from packed ptr 6 6791 ifend 7 6792 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 8 6793 sprisp bb|stack_frame.prev_sp set back ptr of new frame 9 6794 spriap bb|stack_frame.arg_ptr save arg pointer 10 6795 eppab bb|0,7 get pointer to end of new frame 11 6796 spriab bb|stack_frame.next_sp set next pointer of new frame 12 6797 spriab sb|stack_header.stack_end_ptr set new stack end ptr 13 6798 eppsp bb|0 update sp 14 6799 " 15 6800 lda ap|0 get 2*n_args in au 16 6801 " 17 6802 &1set_display: 18 6803 eppbb ap|2,au* get display ptr 19 6804 spribb sp|display_ptr and save in stack frame 20 6805 eppbp bp|-3 set correct entry pointer value 21 6806 tra &1save_link join common section 22 6807 " 23 6808 &1int_entry_desc: 24 6809 epaq bp|0 get segment number of text 25 6810 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 26 6811 ife &1,ss_ 27 6812 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static from packed ptr 28 6813 ifend 29 6814 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 30 6815 sprisp bb|stack_frame.prev_sp set back ptr of new frame 31 6816 spriap bb|stack_frame.arg_ptr save arg pointer 32 6817 eppab bb|0,7 get pointer to end of new frame 33 6818 spriab bb|stack_frame.next_sp set next pointer of new frame 34 6819 spriab sb|stack_header.stack_end_ptr set new stack end ptr 35 6820 eppsp bb|0 update sp 36 6821 " 37 6822 lda ap|0 get 2*n_args in au, code in al 38 6823 eppbb ap|4,au get ptr to descriptors 39 6824 spribb sp|descriptor_ptr set ptr in stack frame 40 6825 tra &1set_display go set display ptr 41 6826 " 42 6827 &1val_entry_desc: 43 6828 eax0 &1eed get final destination 44 6829 tra &1val_entry+1 join common validate code 45 6830 " 46 6831 &1val_entry: 47 6832 eax0 &1save_link get final destination 48 6833 " 49 6834 spribp sb|stack_header.stack_end_ptr,* save entry pointer 50 6835 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 51 6836 sprisp bb|stack_frame.prev_sp set back ptr of new frame 52 6837 spriap bb|stack_frame.arg_ptr save arg pointer 53 6838 eppab bb|0,7 get pointer to end of new frame 54 6839 spriab bb|stack_frame.next_sp set next pointer of new frame 55 6840 spriab sb|stack_header.stack_end_ptr set up new end ptr 56 6841 eppsp bb|0 update sp 57 6842 " 58 6843 epaq bp|0 get segment number of text 59 6844 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage 60 6845 ife &1,ss_ 61 6846 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static 62 6847 ifend 63 6848 eppap operator_table 64 6849 spriap sp|stack_frame.operator_ptr 65 6850 eppap sp|stack_frame.arg_ptr get ptr to arglist 66 6851 spriap sp|arg_list+2 save as arg of validate call 67 6852 fld 2*1024,dl 68 6853 staq sp|arg_list 69 6854 eppap sp|arg_list get ptr to arglist for validate call 70 6855 sprplp sp|4 save lp - we need it at save_link 71 6856 ife &1,ss_ 72 6857 sprplb sp|5 save lb 73 6858 ifend 74 6859 stx0 sp|8 save x0 for eventual exit 75 6860 ldx1 bp|2 get link offset of validate proc 76 6861 stcd sp|stack_frame.return_ptr call the validate proc 77 6862 tra lp|0,1* 78 6863 ldx0 sp|8 restore x0 79 6864 lprplp sp|4 and lp 80 6865 ife &1,ss_ 81 6866 lprplb sp|5 and lb 82 6867 ifend 83 6868 eppab sb|stack_header.stack_end_ptr,* 84 6869 eppap sp|stack_frame.arg_ptr,* restore argument list pointer 85 6870 eppbp sp|0,* restore entry return pointer 86 6871 eppbp bp|-3 set correct entry pointer value 87 6872 tra 0,0 and re-enter main stream 88 6873 &end 6874 " 6875 other_entries 012121 int_entry: 012121 aa 2 00000 2131 00 epaq bp|0 get segment number of text 012122 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 012123 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012124 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 012125 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 012126 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012127 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012130 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set new stack end ptr 012131 aa 3 00000 3721 00 eppsp bb|0 update sp " 012132 aa 0 00000 2351 00 lda ap|0 get 2*n_args in au " 012133 set_display: 012133 aa 0 00002 3535 21 eppbb ap|2,au* get display ptr 012134 aa 6 00040 2535 00 spribb sp|display_ptr and save in stack frame 012135 aa 2 77775 3521 00 eppbp bp|-3 set correct entry pointer value 012136 0a 012066 7100 00 tra save_link join common section " 012137 int_entry_desc: 012137 aa 2 00000 2131 00 epaq bp|0 get segment number of text 012140 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 012141 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012142 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 012143 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 012144 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012145 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012146 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set new stack end ptr 012147 aa 3 00000 3721 00 eppsp bb|0 update sp " 012150 aa 0 00000 2351 00 lda ap|0 get 2*n_args in au, code in al 012151 aa 0 00004 3535 01 eppbb ap|4,au get ptr to descriptors 012152 aa 6 00042 2535 00 spribb sp|descriptor_ptr set ptr in stack frame 012153 0a 012133 7100 00 tra set_display go set display ptr " 012154 val_entry_desc: 012154 0a 012112 6200 00 eax0 eed get final destination 012155 0a 012157 7100 00 tra val_entry+1 join common validate code " 012156 val_entry: 012156 0a 012066 6200 00 eax0 save_link get final destination " 012157 aa 7 00024 2521 20 spribp sb|stack_header.stack_end_ptr,* save entry pointer 012160 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012161 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 012162 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 012163 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012164 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012165 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set up new end ptr 012166 aa 3 00000 3721 00 eppsp bb|0 update sp " 012167 aa 2 00000 2131 00 epaq bp|0 get segment number of text 012170 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage 012171 0a 001426 3500 00 eppap operator_table 012172 aa 6 00030 2501 00 spriap sp|stack_frame.operator_ptr 012173 aa 6 00032 3501 00 eppap sp|stack_frame.arg_ptr get ptr to arglist 012174 aa 6 00072 2501 00 spriap sp|arg_list+2 save as arg of validate call 012175 aa 004000 4310 07 fld 2*1024,dl 012176 aa 6 00070 7571 00 staq sp|arg_list 012177 aa 6 00070 3501 00 eppap sp|arg_list get ptr to arglist for validate call 012200 aa 6 00004 5441 00 sprplp sp|4 save lp - we need it at save_link 012201 aa 6 00010 7401 00 stx0 sp|8 save x0 for eventual exit 012202 aa 2 00002 2211 00 ldx1 bp|2 get link offset of validate proc 012203 aa 6 00024 3571 00 stcd sp|stack_frame.return_ptr call the validate proc 012204 aa 4 00000 7101 31 tra lp|0,1* 012205 aa 6 00010 2201 00 ldx0 sp|8 restore x0 012206 aa 6 00004 7641 00 lprplp sp|4 and lp 012207 aa 7 00024 3515 20 eppab sb|stack_header.stack_end_ptr,* 012210 aa 6 00032 3501 20 eppap sp|stack_frame.arg_ptr,* restore argument list pointer 012211 aa 6 00000 3521 20 eppbp sp|0,* restore entry return pointer 012212 aa 2 77775 3521 00 eppbp bp|-3 set correct entry pointer value 012213 aa 000000 7100 10 tra 0,0 and re-enter main stream 6876 " 6877 ext_entry ,ss_ 012214 ss_ext_entry: 012214 aa 2 77775 3521 00 eppbp bp|-3 get correct entry pointer value trace 012215 aa 2 00000 2131 00 epaq bp|0 get segment number in a 012216 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 012217 aa 7 00052 7651 61 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static from packed ptr 012220 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012221 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 012222 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 012223 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012224 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012225 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr update stack end ptr 012226 aa 3 00000 3721 00 eppsp bb|0 update sp 012227 ss_save_link: 012227 aa 6 00044 6501 00 sprilp sp|linkage_ptr save ptr to linkage in stack head 012230 aa 6 00034 5451 00 sprplb sp|stack_frame.static_ptr save static ptr 012231 aa 6 00026 2521 00 spribp sp|stack_frame.entry_ptr save ptr to entry point 012232 ss_init_stack_join: 012232 aa 6 00046 2525 00 spbpbp sp|text_base_ptr save ptr to base of text segment 012233 aa 6 00024 2525 00 spbpbp sp|stack_frame.return_ptr init procedure call return point 012234 aa 6 00037 4501 00 stz sp|stack_frame.operator_ret_ptr init operator return offset " 012235 0a 001426 3500 00 eppap operator_table and pointer to operators 012236 aa 6 00030 2501 00 spriap sp|stack_frame.operator_ptr save pointer to operator segment 012237 aa 6 00004 2515 00 spriab sp|4 save pointer to end of frame for temp extensions 012240 aa 000000 6340 07 ldi 0,dl reset all indicators (overflow mask in particular) 012241 aa 2 00005 7101 00 tra bp|5 and return to user program 6878 " 6879 ext_entry_desc ,ss_ 012242 ss_ext_entry_desc: 012242 aa 2 77775 3521 00 eppbp bp|-3 get correct entry pointer value trace 012243 aa 2 00000 2131 00 epaq bp|0 get segment number of text 012244 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 012245 aa 7 00052 7651 61 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static from packed ptr 012246 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012247 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 012250 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 012251 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012252 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012253 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set new stack end ptr 012254 aa 3 00000 3721 00 eppsp bb|0 update sp " 012255 ss_eed: 012255 aa 0 00000 2351 00 lda ap|0 get 2*n_args in au, code in al 012256 aa 000010 3150 07 cana 8,dl is there an extra arg 012257 aa 000002 6000 04 tze 2,ic no 012260 aa 000002 0750 03 ada 2,du yes, allow for it 012261 aa 0 00002 3535 01 eppbb ap|2,au get ptr to descriptors 012262 aa 6 00042 2535 00 spribb sp|descriptor_ptr set ptr in stack frame 012263 0a 012227 7100 00 tra ss_save_link join common section 6880 " 6881 other_entries ss_ 012264 ss_int_entry: 012264 aa 2 00000 2131 00 epaq bp|0 get segment number of text 012265 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 012266 aa 7 00052 7651 61 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static from packed ptr 012267 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012270 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 012271 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 012272 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012273 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012274 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set new stack end ptr 012275 aa 3 00000 3721 00 eppsp bb|0 update sp " 012276 aa 0 00000 2351 00 lda ap|0 get 2*n_args in au " 012277 ss_set_display: 012277 aa 0 00002 3535 21 eppbb ap|2,au* get display ptr 012300 aa 6 00040 2535 00 spribb sp|display_ptr and save in stack frame 012301 aa 2 77775 3521 00 eppbp bp|-3 set correct entry pointer value 012302 0a 012227 7100 00 tra ss_save_link join common section " 012303 ss_int_entry_desc: 012303 aa 2 00000 2131 00 epaq bp|0 get segment number of text 012304 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 012305 aa 7 00052 7651 61 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static from packed ptr 012306 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012307 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 012310 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 012311 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012312 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012313 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set new stack end ptr 012314 aa 3 00000 3721 00 eppsp bb|0 update sp " 012315 aa 0 00000 2351 00 lda ap|0 get 2*n_args in au, code in al 012316 aa 0 00004 3535 01 eppbb ap|4,au get ptr to descriptors 012317 aa 6 00042 2535 00 spribb sp|descriptor_ptr set ptr in stack frame 012320 0a 012277 7100 00 tra ss_set_display go set display ptr " 012321 ss_val_entry_desc: 012321 0a 012255 6200 00 eax0 ss_eed get final destination 012322 0a 012324 7100 00 tra ss_val_entry+1 join common validate code " 012323 ss_val_entry: 012323 0a 012227 6200 00 eax0 ss_save_link get final destination " 012324 aa 7 00024 2521 20 spribp sb|stack_header.stack_end_ptr,* save entry pointer 012325 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012326 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 012327 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 012330 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012331 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012332 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set up new end ptr 012333 aa 3 00000 3721 00 eppsp bb|0 update sp " 012334 aa 2 00000 2131 00 epaq bp|0 get segment number of text 012335 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage 012336 aa 7 00052 7651 61 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static 012337 0a 001426 3500 00 eppap operator_table 012340 aa 6 00030 2501 00 spriap sp|stack_frame.operator_ptr 012341 aa 6 00032 3501 00 eppap sp|stack_frame.arg_ptr get ptr to arglist 012342 aa 6 00072 2501 00 spriap sp|arg_list+2 save as arg of validate call 012343 aa 004000 4310 07 fld 2*1024,dl 012344 aa 6 00070 7571 00 staq sp|arg_list 012345 aa 6 00070 3501 00 eppap sp|arg_list get ptr to arglist for validate call 012346 aa 6 00004 5441 00 sprplp sp|4 save lp - we need it at save_link 012347 aa 6 00005 5451 00 sprplb sp|5 save lb 012350 aa 6 00010 7401 00 stx0 sp|8 save x0 for eventual exit 012351 aa 2 00002 2211 00 ldx1 bp|2 get link offset of validate proc 012352 aa 6 00024 3571 00 stcd sp|stack_frame.return_ptr call the validate proc 012353 aa 4 00000 7101 31 tra lp|0,1* 012354 aa 6 00010 2201 00 ldx0 sp|8 restore x0 012355 aa 6 00004 7641 00 lprplp sp|4 and lp 012356 aa 6 00005 7651 00 lprplb sp|5 and lb 012357 aa 7 00024 3515 20 eppab sb|stack_header.stack_end_ptr,* 012360 aa 6 00032 3501 20 eppap sp|stack_frame.arg_ptr,* restore argument list pointer 012361 aa 6 00000 3521 20 eppbp sp|0,* restore entry return pointer 012362 aa 2 77775 3521 00 eppbp bp|-3 set correct entry pointer value 012363 aa 000000 7100 10 tra 0,0 and re-enter main stream 6882 " 6883 " 6884 " operator to enter a begin block 6885 " calling sequence is: 6886 " 6887 " eax7 stack_size 6888 " tspbp ap|enter_begin_block 6889 " vfd 18/link,18/block for symbol table 6890 " 6891 macro enter_begin 1 6892 &1enter_begin_block: 2 6893 epplp sp|linkage_ptr,* get linkage pointer from parent frame 3 6894 ife &1,ss_ 4 6895 lprplb sp|stack_frame.static_ptr get static pointer from parent frame 5 6896 ifend 6 6897 epbpsb sp|0 get ptr to base of stack 7 6898 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 8 6899 sprisp bb|stack_frame.prev_sp set back pointer of new frame 9 6900 eppab bb|0,7 get pointer to end of new frame 10 6901 spriab bb|stack_frame.next_sp set next pointer of new frame 11 6902 spriab sb|stack_header.stack_end_ptr set stack end pointer 12 6903 sprisp bb|display_ptr set display pointer 13 6904 eppsp bb|0 update sp 14 6905 " 15 6906 ldaq null set arg list pointer to null 16 6907 staq sp|stack_frame.arg_ptr .. 17 6908 sprilp sp|linkage_ptr save linkage ptr 18 6909 ife &1,ss_ 19 6910 sprplb sp|stack_frame.static_ptr save static ptr 20 6911 ifend 21 6912 eppbp bp|-2 22 6913 spribp sp|stack_frame.entry_ptr 23 6914 eppbp bp|-2 get correct entry pointer 24 6915 tra init_stack_join go init stack frame 25 6916 &end 6917 " 6918 enter_begin 012364 enter_begin_block: 012364 aa 6 00044 3701 20 epplp sp|linkage_ptr,* get linkage pointer from parent frame 012365 aa 6 00000 3731 00 epbpsb sp|0 get ptr to base of stack 012366 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012367 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back pointer of new frame 012370 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012371 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012372 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set stack end pointer 012373 aa 3 00040 6521 00 sprisp bb|display_ptr set display pointer 012374 aa 3 00000 3721 00 eppsp bb|0 update sp " 012375 0a 012430 2370 00 ldaq null set arg list pointer to null 012376 aa 6 00032 7571 00 staq sp|stack_frame.arg_ptr .. 012377 aa 6 00044 6501 00 sprilp sp|linkage_ptr save linkage ptr 012400 aa 2 77776 3521 00 eppbp bp|-2 012401 aa 6 00026 2521 00 spribp sp|stack_frame.entry_ptr 012402 aa 2 77776 3521 00 eppbp bp|-2 get correct entry pointer 012403 0a 012070 7100 00 tra init_stack_join go init stack frame 6919 " 6920 enter_begin ss_ 012404 ss_enter_begin_block: 012404 aa 6 00044 3701 20 epplp sp|linkage_ptr,* get linkage pointer from parent frame 012405 aa 6 00034 7651 00 lprplb sp|stack_frame.static_ptr get static pointer from parent frame 012406 aa 6 00000 3731 00 epbpsb sp|0 get ptr to base of stack 012407 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 012410 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back pointer of new frame 012411 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 012412 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 012413 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set stack end pointer 012414 aa 3 00040 6521 00 sprisp bb|display_ptr set display pointer 012415 aa 3 00000 3721 00 eppsp bb|0 update sp " 012416 0a 012430 2370 00 ldaq null set arg list pointer to null 012417 aa 6 00032 7571 00 staq sp|stack_frame.arg_ptr .. 012420 aa 6 00044 6501 00 sprilp sp|linkage_ptr save linkage ptr 012421 aa 6 00034 5451 00 sprplb sp|stack_frame.static_ptr save static ptr 012422 aa 2 77776 3521 00 eppbp bp|-2 012423 aa 6 00026 2521 00 spribp sp|stack_frame.entry_ptr 012424 aa 2 77776 3521 00 eppbp bp|-2 get correct entry pointer 012425 0a 012070 7100 00 tra init_stack_join go init stack frame 6921 " 6922 " 012426 6923 entry_operators_end: 012426 a0 000000 012426 6924 zero 0,* marks end of entry operators 6925 " 6926 " 012427 aa 000000 0110 03 6927 even 012430 aa 077777 000043 6928 null: its -1,1,n 012431 aa 000001 000000 012432 aa 077777 000043 6929 nullx: oct 077777000043,000001000000 012433 aa 000001 000000 012434 aa 007777 000001 6930 null_pk: oct 007777000001 012435 aa 777777 777777 6931 nullo: oct 777777777777 012436 aa 000000 000000 6932 one: dec 0,1 012437 aa 000000 000001 012440 6933 almost_one: 012440 6934 hfp_almost_one: 012440 aa 000777 777777 6935 oct 000777777777,777777777777 012441 aa 777777 777777 012442 aa 216000 000000 6936 k71b25: oct 216000000000,000000000000 012443 aa 000000 000000 6937 " 012444 aa 000000 000000 6938 shift_bo: dec 0b26,1b26,2b26,3b26,4b26,5b26,6b26,7b26,8b26,9b26 012445 aa 000000 001000 012446 aa 000000 002000 012447 aa 000000 003000 012450 aa 000000 004000 012451 aa 000000 005000 012452 aa 000000 006000 012453 aa 000000 007000 012454 aa 000000 010000 012455 aa 000000 011000 012456 aa 000000 012000 6939 dec 10b26,11b26,12b26,13b26,14b26,15b26,16b26,17b26,18b26,19b26 012457 aa 000000 013000 012460 aa 000000 014000 012461 aa 000000 015000 012462 aa 000000 016000 012463 aa 000000 017000 012464 aa 000000 020000 012465 aa 000000 021000 012466 aa 000000 022000 012467 aa 000000 023000 012470 aa 000000 024000 6940 dec 20b26,21b26,22b26,23b26,24b26,25b26,26b26,27b26,28b26,29b26 012471 aa 000000 025000 012472 aa 000000 026000 012473 aa 000000 027000 012474 aa 000000 030000 012475 aa 000000 031000 012476 aa 000000 032000 012477 aa 000000 033000 012500 aa 000000 034000 012501 aa 000000 035000 012502 aa 000000 036000 6941 dec 30b26,31b26,32b26,33b26,34b26,35b26 012503 aa 000000 037000 012504 aa 000000 040000 012505 aa 000000 041000 012506 aa 000000 042000 012507 aa 000000 043000 6942 6943 " 6944 " The follow line must appear after everything else in text segment 6945 " 012510 6946 end_pl1_operators: 012510 a0 000000 012510 6947 zero 0,* marks end of pl1_operators 6948 " 6949 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 6950 " " 6951 " END OF WIRED SECTION " 6952 " " 6953 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 6954 " 6955 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 6956 " " 6957 " START OF PAGED SECTION " 6958 " " 6959 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 6960 " 6961 " The following code is used when hexadecimal floating point mode has been 6962 "selected via a call to the 'enter_HFP_mode' operator. 6963 " 6964 transfer_vector ,hfp_ " " Due to the presence of double-word constants (at bit_mask and mask_bit) " these instructions must presently begin on an even-word boundary. " Note that if an odd number of words is added to the front of the " operator_table region, then the following even pseudo-op must be " changed to an odd pseudo-op. If you forget, an assembly error will " result (due to clever divide-by-zero, below). " 012511 aa 000000 0110 03 even " " The following section, from location 0 to label operator_table, is referenced " directly from PL/1 programs by means of offsets of the form ap|-n (ap pointing " at pl1_operators_$operator_table). For this reason, the order of the " following instructions must not be changed. Any new coding must be placed at " the FRONT of the segment. " " This table translates a bit number between 0 and 35 to a char number " between 0 and 3. " even 012512 hfp_bitno_to_charno_table: 000011 dup 9 012512 aa 000000 000000 dec 0 dupend 012513 aa 000000 000000 dec 0 012514 aa 000000 000000 dec 0 012515 aa 000000 000000 dec 0 012516 aa 000000 000000 dec 0 012517 aa 000000 000000 dec 0 012520 aa 000000 000000 dec 0 012521 aa 000000 000000 dec 0 012522 aa 000000 000000 dec 0 000011 dup 9 012523 aa 000000 000001 dec 1 dupend 012524 aa 000000 000001 dec 1 012525 aa 000000 000001 dec 1 012526 aa 000000 000001 dec 1 012527 aa 000000 000001 dec 1 012530 aa 000000 000001 dec 1 012531 aa 000000 000001 dec 1 012532 aa 000000 000001 dec 1 012533 aa 000000 000001 dec 1 000011 dup 9 012534 aa 000000 000002 dec 2 dupend 012535 aa 000000 000002 dec 2 012536 aa 000000 000002 dec 2 012537 aa 000000 000002 dec 2 012540 aa 000000 000002 dec 2 012541 aa 000000 000002 dec 2 012542 aa 000000 000002 dec 2 012543 aa 000000 000002 dec 2 012544 aa 000000 000002 dec 2 000011 dup 9 012545 aa 000000 000003 dec 3 dupend 012546 aa 000000 000003 dec 3 012547 aa 000000 000003 dec 3 012550 aa 000000 000003 dec 3 012551 aa 000000 000003 dec 3 012552 aa 000000 000003 dec 3 012553 aa 000000 000003 dec 3 012554 aa 000000 000003 dec 3 012555 aa 000000 000003 dec 3 " " The following tables are for use with the TCT instruction. " Any single, given, character can be searched for using these " tables. " 000163 dup 115 012556 aa 777777 777777 dec -1 dupend 012557 aa 777777 777777 dec -1 012560 aa 777777 777777 dec -1 012561 aa 777777 777777 dec -1 012562 aa 777777 777777 dec -1 012563 aa 777777 777777 dec -1 012564 aa 777777 777777 dec -1 012565 aa 777777 777777 dec -1 012566 aa 777777 777777 dec -1 012567 aa 777777 777777 dec -1 012570 aa 777777 777777 dec -1 012571 aa 777777 777777 dec -1 012572 aa 777777 777777 dec -1 012573 aa 777777 777777 dec -1 012574 aa 777777 777777 dec -1 012575 aa 777777 777777 dec -1 012576 aa 777777 777777 dec -1 012577 aa 777777 777777 dec -1 012600 aa 777777 777777 dec -1 012601 aa 777777 777777 dec -1 012602 aa 777777 777777 dec -1 012603 aa 777777 777777 dec -1 012604 aa 777777 777777 dec -1 012605 aa 777777 777777 dec -1 012606 aa 777777 777777 dec -1 012607 aa 777777 777777 dec -1 012610 aa 777777 777777 dec -1 012611 aa 777777 777777 dec -1 012612 aa 777777 777777 dec -1 012613 aa 777777 777777 dec -1 012614 aa 777777 777777 dec -1 012615 aa 777777 777777 dec -1 012616 aa 777777 777777 dec -1 012617 aa 777777 777777 dec -1 012620 aa 777777 777777 dec -1 012621 aa 777777 777777 dec -1 012622 aa 777777 777777 dec -1 012623 aa 777777 777777 dec -1 012624 aa 777777 777777 dec -1 012625 aa 777777 777777 dec -1 012626 aa 777777 777777 dec -1 012627 aa 777777 777777 dec -1 012630 aa 777777 777777 dec -1 012631 aa 777777 777777 dec -1 012632 aa 777777 777777 dec -1 012633 aa 777777 777777 dec -1 012634 aa 777777 777777 dec -1 012635 aa 777777 777777 dec -1 012636 aa 777777 777777 dec -1 012637 aa 777777 777777 dec -1 012640 aa 777777 777777 dec -1 012641 aa 777777 777777 dec -1 012642 aa 777777 777777 dec -1 012643 aa 777777 777777 dec -1 012644 aa 777777 777777 dec -1 012645 aa 777777 777777 dec -1 012646 aa 777777 777777 dec -1 012647 aa 777777 777777 dec -1 012650 aa 777777 777777 dec -1 012651 aa 777777 777777 dec -1 012652 aa 777777 777777 dec -1 012653 aa 777777 777777 dec -1 012654 aa 777777 777777 dec -1 012655 aa 777777 777777 dec -1 012656 aa 777777 777777 dec -1 012657 aa 777777 777777 dec -1 012660 aa 777777 777777 dec -1 012661 aa 777777 777777 dec -1 012662 aa 777777 777777 dec -1 012663 aa 777777 777777 dec -1 012664 aa 777777 777777 dec -1 012665 aa 777777 777777 dec -1 012666 aa 777777 777777 dec -1 012667 aa 777777 777777 dec -1 012670 aa 777777 777777 dec -1 012671 aa 777777 777777 dec -1 012672 aa 777777 777777 dec -1 012673 aa 777777 777777 dec -1 012674 aa 777777 777777 dec -1 012675 aa 777777 777777 dec -1 012676 aa 777777 777777 dec -1 012677 aa 777777 777777 dec -1 012700 aa 777777 777777 dec -1 012701 aa 777777 777777 dec -1 012702 aa 777777 777777 dec -1 012703 aa 777777 777777 dec -1 012704 aa 777777 777777 dec -1 012705 aa 777777 777777 dec -1 012706 aa 777777 777777 dec -1 012707 aa 777777 777777 dec -1 012710 aa 777777 777777 dec -1 012711 aa 777777 777777 dec -1 012712 aa 777777 777777 dec -1 012713 aa 777777 777777 dec -1 012714 aa 777777 777777 dec -1 012715 aa 777777 777777 dec -1 012716 aa 777777 777777 dec -1 012717 aa 777777 777777 dec -1 012720 aa 777777 777777 dec -1 012721 aa 777777 777777 dec -1 012722 aa 777777 777777 dec -1 012723 aa 777777 777777 dec -1 012724 aa 777777 777777 dec -1 012725 aa 777777 777777 dec -1 012726 aa 777777 777777 dec -1 012727 aa 777777 777777 dec -1 012730 aa 777777 777777 dec -1 012731 aa 777777 777777 dec -1 012732 aa 777777 777777 dec -1 012733 aa 777777 777777 dec -1 012734 aa 777777 777777 dec -1 012735 aa 777777 777777 dec -1 012736 aa 777777 777777 dec -1 012737 aa 777777 777777 dec -1 012740 aa 777777 777777 dec -1 " 012741 hfp_tct_octal_060: 000004 dup 4 012741 aa 777777 777777 dec -1 dupend 012742 aa 777777 777777 dec -1 012743 aa 777777 777777 dec -1 012744 aa 777777 777777 dec -1 " 012745 hfp_tct_octal_040: 000010 dup 8 012745 aa 777777 777777 dec -1 dupend 012746 aa 777777 777777 dec -1 012747 aa 777777 777777 dec -1 012750 aa 777777 777777 dec -1 012751 aa 777777 777777 dec -1 012752 aa 777777 777777 dec -1 012753 aa 777777 777777 dec -1 012754 aa 777777 777777 dec -1 012755 hfp_tct_byte_0: 012755 aa 000777 777777 vfd 9/0,9/-1,9/-1,9/-1 000177 dup 127 012756 aa 777777 777777 dec -1 dupend 012757 aa 777777 777777 dec -1 012760 aa 777777 777777 dec -1 012761 aa 777777 777777 dec -1 012762 aa 777777 777777 dec -1 012763 aa 777777 777777 dec -1 012764 aa 777777 777777 dec -1 012765 aa 777777 777777 dec -1 012766 aa 777777 777777 dec -1 012767 aa 777777 777777 dec -1 012770 aa 777777 777777 dec -1 012771 aa 777777 777777 dec -1 012772 aa 777777 777777 dec -1 012773 aa 777777 777777 dec -1 012774 aa 777777 777777 dec -1 012775 aa 777777 777777 dec -1 012776 aa 777777 777777 dec -1 012777 aa 777777 777777 dec -1 013000 aa 777777 777777 dec -1 013001 aa 777777 777777 dec -1 013002 aa 777777 777777 dec -1 013003 aa 777777 777777 dec -1 013004 aa 777777 777777 dec -1 013005 aa 777777 777777 dec -1 013006 aa 777777 777777 dec -1 013007 aa 777777 777777 dec -1 013010 aa 777777 777777 dec -1 013011 aa 777777 777777 dec -1 013012 aa 777777 777777 dec -1 013013 aa 777777 777777 dec -1 013014 aa 777777 777777 dec -1 013015 aa 777777 777777 dec -1 013016 aa 777777 777777 dec -1 013017 aa 777777 777777 dec -1 013020 aa 777777 777777 dec -1 013021 aa 777777 777777 dec -1 013022 aa 777777 777777 dec -1 013023 aa 777777 777777 dec -1 013024 aa 777777 777777 dec -1 013025 aa 777777 777777 dec -1 013026 aa 777777 777777 dec -1 013027 aa 777777 777777 dec -1 013030 aa 777777 777777 dec -1 013031 aa 777777 777777 dec -1 013032 aa 777777 777777 dec -1 013033 aa 777777 777777 dec -1 013034 aa 777777 777777 dec -1 013035 aa 777777 777777 dec -1 013036 aa 777777 777777 dec -1 013037 aa 777777 777777 dec -1 013040 aa 777777 777777 dec -1 013041 aa 777777 777777 dec -1 013042 aa 777777 777777 dec -1 013043 aa 777777 777777 dec -1 013044 aa 777777 777777 dec -1 013045 aa 777777 777777 dec -1 013046 aa 777777 777777 dec -1 013047 aa 777777 777777 dec -1 013050 aa 777777 777777 dec -1 013051 aa 777777 777777 dec -1 013052 aa 777777 777777 dec -1 013053 aa 777777 777777 dec -1 013054 aa 777777 777777 dec -1 013055 aa 777777 777777 dec -1 013056 aa 777777 777777 dec -1 013057 aa 777777 777777 dec -1 013060 aa 777777 777777 dec -1 013061 aa 777777 777777 dec -1 013062 aa 777777 777777 dec -1 013063 aa 777777 777777 dec -1 013064 aa 777777 777777 dec -1 013065 aa 777777 777777 dec -1 013066 aa 777777 777777 dec -1 013067 aa 777777 777777 dec -1 013070 aa 777777 777777 dec -1 013071 aa 777777 777777 dec -1 013072 aa 777777 777777 dec -1 013073 aa 777777 777777 dec -1 013074 aa 777777 777777 dec -1 013075 aa 777777 777777 dec -1 013076 aa 777777 777777 dec -1 013077 aa 777777 777777 dec -1 013100 aa 777777 777777 dec -1 013101 aa 777777 777777 dec -1 013102 aa 777777 777777 dec -1 013103 aa 777777 777777 dec -1 013104 aa 777777 777777 dec -1 013105 aa 777777 777777 dec -1 013106 aa 777777 777777 dec -1 013107 aa 777777 777777 dec -1 013110 aa 777777 777777 dec -1 013111 aa 777777 777777 dec -1 013112 aa 777777 777777 dec -1 013113 aa 777777 777777 dec -1 013114 aa 777777 777777 dec -1 013115 aa 777777 777777 dec -1 013116 aa 777777 777777 dec -1 013117 aa 777777 777777 dec -1 013120 aa 777777 777777 dec -1 013121 aa 777777 777777 dec -1 013122 aa 777777 777777 dec -1 013123 aa 777777 777777 dec -1 013124 aa 777777 777777 dec -1 013125 aa 777777 777777 dec -1 013126 aa 777777 777777 dec -1 013127 aa 777777 777777 dec -1 013130 aa 777777 777777 dec -1 013131 aa 777777 777777 dec -1 013132 aa 777777 777777 dec -1 013133 aa 777777 777777 dec -1 013134 aa 777777 777777 dec -1 013135 aa 777777 777777 dec -1 013136 aa 777777 777777 dec -1 013137 aa 777777 777777 dec -1 013140 aa 777777 777777 dec -1 013141 aa 777777 777777 dec -1 013142 aa 777777 777777 dec -1 013143 aa 777777 777777 dec -1 013144 aa 777777 777777 dec -1 013145 aa 777777 777777 dec -1 013146 aa 777777 777777 dec -1 013147 aa 777777 777777 dec -1 013150 aa 777777 777777 dec -1 013151 aa 777777 777777 dec -1 013152 aa 777777 777777 dec -1 013153 aa 777777 777777 dec -1 013154 aa 777777 777777 dec -1 " 013155 hfp_tct_byte_1: 013155 aa 777000 777777 vfd 9/-1,9/0,9/-1,9/-1 000177 dup 127 013156 aa 777777 777777 dec -1 dupend 013157 aa 777777 777777 dec -1 013160 aa 777777 777777 dec -1 013161 aa 777777 777777 dec -1 013162 aa 777777 777777 dec -1 013163 aa 777777 777777 dec -1 013164 aa 777777 777777 dec -1 013165 aa 777777 777777 dec -1 013166 aa 777777 777777 dec -1 013167 aa 777777 777777 dec -1 013170 aa 777777 777777 dec -1 013171 aa 777777 777777 dec -1 013172 aa 777777 777777 dec -1 013173 aa 777777 777777 dec -1 013174 aa 777777 777777 dec -1 013175 aa 777777 777777 dec -1 013176 aa 777777 777777 dec -1 013177 aa 777777 777777 dec -1 013200 aa 777777 777777 dec -1 013201 aa 777777 777777 dec -1 013202 aa 777777 777777 dec -1 013203 aa 777777 777777 dec -1 013204 aa 777777 777777 dec -1 013205 aa 777777 777777 dec -1 013206 aa 777777 777777 dec -1 013207 aa 777777 777777 dec -1 013210 aa 777777 777777 dec -1 013211 aa 777777 777777 dec -1 013212 aa 777777 777777 dec -1 013213 aa 777777 777777 dec -1 013214 aa 777777 777777 dec -1 013215 aa 777777 777777 dec -1 013216 aa 777777 777777 dec -1 013217 aa 777777 777777 dec -1 013220 aa 777777 777777 dec -1 013221 aa 777777 777777 dec -1 013222 aa 777777 777777 dec -1 013223 aa 777777 777777 dec -1 013224 aa 777777 777777 dec -1 013225 aa 777777 777777 dec -1 013226 aa 777777 777777 dec -1 013227 aa 777777 777777 dec -1 013230 aa 777777 777777 dec -1 013231 aa 777777 777777 dec -1 013232 aa 777777 777777 dec -1 013233 aa 777777 777777 dec -1 013234 aa 777777 777777 dec -1 013235 aa 777777 777777 dec -1 013236 aa 777777 777777 dec -1 013237 aa 777777 777777 dec -1 013240 aa 777777 777777 dec -1 013241 aa 777777 777777 dec -1 013242 aa 777777 777777 dec -1 013243 aa 777777 777777 dec -1 013244 aa 777777 777777 dec -1 013245 aa 777777 777777 dec -1 013246 aa 777777 777777 dec -1 013247 aa 777777 777777 dec -1 013250 aa 777777 777777 dec -1 013251 aa 777777 777777 dec -1 013252 aa 777777 777777 dec -1 013253 aa 777777 777777 dec -1 013254 aa 777777 777777 dec -1 013255 aa 777777 777777 dec -1 013256 aa 777777 777777 dec -1 013257 aa 777777 777777 dec -1 013260 aa 777777 777777 dec -1 013261 aa 777777 777777 dec -1 013262 aa 777777 777777 dec -1 013263 aa 777777 777777 dec -1 013264 aa 777777 777777 dec -1 013265 aa 777777 777777 dec -1 013266 aa 777777 777777 dec -1 013267 aa 777777 777777 dec -1 013270 aa 777777 777777 dec -1 013271 aa 777777 777777 dec -1 013272 aa 777777 777777 dec -1 013273 aa 777777 777777 dec -1 013274 aa 777777 777777 dec -1 013275 aa 777777 777777 dec -1 013276 aa 777777 777777 dec -1 013277 aa 777777 777777 dec -1 013300 aa 777777 777777 dec -1 013301 aa 777777 777777 dec -1 013302 aa 777777 777777 dec -1 013303 aa 777777 777777 dec -1 013304 aa 777777 777777 dec -1 013305 aa 777777 777777 dec -1 013306 aa 777777 777777 dec -1 013307 aa 777777 777777 dec -1 013310 aa 777777 777777 dec -1 013311 aa 777777 777777 dec -1 013312 aa 777777 777777 dec -1 013313 aa 777777 777777 dec -1 013314 aa 777777 777777 dec -1 013315 aa 777777 777777 dec -1 013316 aa 777777 777777 dec -1 013317 aa 777777 777777 dec -1 013320 aa 777777 777777 dec -1 013321 aa 777777 777777 dec -1 013322 aa 777777 777777 dec -1 013323 aa 777777 777777 dec -1 013324 aa 777777 777777 dec -1 013325 aa 777777 777777 dec -1 013326 aa 777777 777777 dec -1 013327 aa 777777 777777 dec -1 013330 aa 777777 777777 dec -1 013331 aa 777777 777777 dec -1 013332 aa 777777 777777 dec -1 013333 aa 777777 777777 dec -1 013334 aa 777777 777777 dec -1 013335 aa 777777 777777 dec -1 013336 aa 777777 777777 dec -1 013337 aa 777777 777777 dec -1 013340 aa 777777 777777 dec -1 013341 aa 777777 777777 dec -1 013342 aa 777777 777777 dec -1 013343 aa 777777 777777 dec -1 013344 aa 777777 777777 dec -1 013345 aa 777777 777777 dec -1 013346 aa 777777 777777 dec -1 013347 aa 777777 777777 dec -1 013350 aa 777777 777777 dec -1 013351 aa 777777 777777 dec -1 013352 aa 777777 777777 dec -1 013353 aa 777777 777777 dec -1 013354 aa 777777 777777 dec -1 " 013355 hfp_tct_byte_2: 013355 aa 777777 000777 vfd 9/-1,9/-1,9/0,9/-1 000177 dup 127 013356 aa 777777 777777 dec -1 dupend 013357 aa 777777 777777 dec -1 013360 aa 777777 777777 dec -1 013361 aa 777777 777777 dec -1 013362 aa 777777 777777 dec -1 013363 aa 777777 777777 dec -1 013364 aa 777777 777777 dec -1 013365 aa 777777 777777 dec -1 013366 aa 777777 777777 dec -1 013367 aa 777777 777777 dec -1 013370 aa 777777 777777 dec -1 013371 aa 777777 777777 dec -1 013372 aa 777777 777777 dec -1 013373 aa 777777 777777 dec -1 013374 aa 777777 777777 dec -1 013375 aa 777777 777777 dec -1 013376 aa 777777 777777 dec -1 013377 aa 777777 777777 dec -1 013400 aa 777777 777777 dec -1 013401 aa 777777 777777 dec -1 013402 aa 777777 777777 dec -1 013403 aa 777777 777777 dec -1 013404 aa 777777 777777 dec -1 013405 aa 777777 777777 dec -1 013406 aa 777777 777777 dec -1 013407 aa 777777 777777 dec -1 013410 aa 777777 777777 dec -1 013411 aa 777777 777777 dec -1 013412 aa 777777 777777 dec -1 013413 aa 777777 777777 dec -1 013414 aa 777777 777777 dec -1 013415 aa 777777 777777 dec -1 013416 aa 777777 777777 dec -1 013417 aa 777777 777777 dec -1 013420 aa 777777 777777 dec -1 013421 aa 777777 777777 dec -1 013422 aa 777777 777777 dec -1 013423 aa 777777 777777 dec -1 013424 aa 777777 777777 dec -1 013425 aa 777777 777777 dec -1 013426 aa 777777 777777 dec -1 013427 aa 777777 777777 dec -1 013430 aa 777777 777777 dec -1 013431 aa 777777 777777 dec -1 013432 aa 777777 777777 dec -1 013433 aa 777777 777777 dec -1 013434 aa 777777 777777 dec -1 013435 aa 777777 777777 dec -1 013436 aa 777777 777777 dec -1 013437 aa 777777 777777 dec -1 013440 aa 777777 777777 dec -1 013441 aa 777777 777777 dec -1 013442 aa 777777 777777 dec -1 013443 aa 777777 777777 dec -1 013444 aa 777777 777777 dec -1 013445 aa 777777 777777 dec -1 013446 aa 777777 777777 dec -1 013447 aa 777777 777777 dec -1 013450 aa 777777 777777 dec -1 013451 aa 777777 777777 dec -1 013452 aa 777777 777777 dec -1 013453 aa 777777 777777 dec -1 013454 aa 777777 777777 dec -1 013455 aa 777777 777777 dec -1 013456 aa 777777 777777 dec -1 013457 aa 777777 777777 dec -1 013460 aa 777777 777777 dec -1 013461 aa 777777 777777 dec -1 013462 aa 777777 777777 dec -1 013463 aa 777777 777777 dec -1 013464 aa 777777 777777 dec -1 013465 aa 777777 777777 dec -1 013466 aa 777777 777777 dec -1 013467 aa 777777 777777 dec -1 013470 aa 777777 777777 dec -1 013471 aa 777777 777777 dec -1 013472 aa 777777 777777 dec -1 013473 aa 777777 777777 dec -1 013474 aa 777777 777777 dec -1 013475 aa 777777 777777 dec -1 013476 aa 777777 777777 dec -1 013477 aa 777777 777777 dec -1 013500 aa 777777 777777 dec -1 013501 aa 777777 777777 dec -1 013502 aa 777777 777777 dec -1 013503 aa 777777 777777 dec -1 013504 aa 777777 777777 dec -1 013505 aa 777777 777777 dec -1 013506 aa 777777 777777 dec -1 013507 aa 777777 777777 dec -1 013510 aa 777777 777777 dec -1 013511 aa 777777 777777 dec -1 013512 aa 777777 777777 dec -1 013513 aa 777777 777777 dec -1 013514 aa 777777 777777 dec -1 013515 aa 777777 777777 dec -1 013516 aa 777777 777777 dec -1 013517 aa 777777 777777 dec -1 013520 aa 777777 777777 dec -1 013521 aa 777777 777777 dec -1 013522 aa 777777 777777 dec -1 013523 aa 777777 777777 dec -1 013524 aa 777777 777777 dec -1 013525 aa 777777 777777 dec -1 013526 aa 777777 777777 dec -1 013527 aa 777777 777777 dec -1 013530 aa 777777 777777 dec -1 013531 aa 777777 777777 dec -1 013532 aa 777777 777777 dec -1 013533 aa 777777 777777 dec -1 013534 aa 777777 777777 dec -1 013535 aa 777777 777777 dec -1 013536 aa 777777 777777 dec -1 013537 aa 777777 777777 dec -1 013540 aa 777777 777777 dec -1 013541 aa 777777 777777 dec -1 013542 aa 777777 777777 dec -1 013543 aa 777777 777777 dec -1 013544 aa 777777 777777 dec -1 013545 aa 777777 777777 dec -1 013546 aa 777777 777777 dec -1 013547 aa 777777 777777 dec -1 013550 aa 777777 777777 dec -1 013551 aa 777777 777777 dec -1 013552 aa 777777 777777 dec -1 013553 aa 777777 777777 dec -1 013554 aa 777777 777777 dec -1 " 013555 hfp_tct_byte_3: 013555 aa 777777 777000 vfd 9/-1,9/-1,9/-1,9/0 000177 dup 127 013556 aa 777777 777777 dec -1 dupend 013557 aa 777777 777777 dec -1 013560 aa 777777 777777 dec -1 013561 aa 777777 777777 dec -1 013562 aa 777777 777777 dec -1 013563 aa 777777 777777 dec -1 013564 aa 777777 777777 dec -1 013565 aa 777777 777777 dec -1 013566 aa 777777 777777 dec -1 013567 aa 777777 777777 dec -1 013570 aa 777777 777777 dec -1 013571 aa 777777 777777 dec -1 013572 aa 777777 777777 dec -1 013573 aa 777777 777777 dec -1 013574 aa 777777 777777 dec -1 013575 aa 777777 777777 dec -1 013576 aa 777777 777777 dec -1 013577 aa 777777 777777 dec -1 013600 aa 777777 777777 dec -1 013601 aa 777777 777777 dec -1 013602 aa 777777 777777 dec -1 013603 aa 777777 777777 dec -1 013604 aa 777777 777777 dec -1 013605 aa 777777 777777 dec -1 013606 aa 777777 777777 dec -1 013607 aa 777777 777777 dec -1 013610 aa 777777 777777 dec -1 013611 aa 777777 777777 dec -1 013612 aa 777777 777777 dec -1 013613 aa 777777 777777 dec -1 013614 aa 777777 777777 dec -1 013615 aa 777777 777777 dec -1 013616 aa 777777 777777 dec -1 013617 aa 777777 777777 dec -1 013620 aa 777777 777777 dec -1 013621 aa 777777 777777 dec -1 013622 aa 777777 777777 dec -1 013623 aa 777777 777777 dec -1 013624 aa 777777 777777 dec -1 013625 aa 777777 777777 dec -1 013626 aa 777777 777777 dec -1 013627 aa 777777 777777 dec -1 013630 aa 777777 777777 dec -1 013631 aa 777777 777777 dec -1 013632 aa 777777 777777 dec -1 013633 aa 777777 777777 dec -1 013634 aa 777777 777777 dec -1 013635 aa 777777 777777 dec -1 013636 aa 777777 777777 dec -1 013637 aa 777777 777777 dec -1 013640 aa 777777 777777 dec -1 013641 aa 777777 777777 dec -1 013642 aa 777777 777777 dec -1 013643 aa 777777 777777 dec -1 013644 aa 777777 777777 dec -1 013645 aa 777777 777777 dec -1 013646 aa 777777 777777 dec -1 013647 aa 777777 777777 dec -1 013650 aa 777777 777777 dec -1 013651 aa 777777 777777 dec -1 013652 aa 777777 777777 dec -1 013653 aa 777777 777777 dec -1 013654 aa 777777 777777 dec -1 013655 aa 777777 777777 dec -1 013656 aa 777777 777777 dec -1 013657 aa 777777 777777 dec -1 013660 aa 777777 777777 dec -1 013661 aa 777777 777777 dec -1 013662 aa 777777 777777 dec -1 013663 aa 777777 777777 dec -1 013664 aa 777777 777777 dec -1 013665 aa 777777 777777 dec -1 013666 aa 777777 777777 dec -1 013667 aa 777777 777777 dec -1 013670 aa 777777 777777 dec -1 013671 aa 777777 777777 dec -1 013672 aa 777777 777777 dec -1 013673 aa 777777 777777 dec -1 013674 aa 777777 777777 dec -1 013675 aa 777777 777777 dec -1 013676 aa 777777 777777 dec -1 013677 aa 777777 777777 dec -1 013700 aa 777777 777777 dec -1 013701 aa 777777 777777 dec -1 013702 aa 777777 777777 dec -1 013703 aa 777777 777777 dec -1 013704 aa 777777 777777 dec -1 013705 aa 777777 777777 dec -1 013706 aa 777777 777777 dec -1 013707 aa 777777 777777 dec -1 013710 aa 777777 777777 dec -1 013711 aa 777777 777777 dec -1 013712 aa 777777 777777 dec -1 013713 aa 777777 777777 dec -1 013714 aa 777777 777777 dec -1 013715 aa 777777 777777 dec -1 013716 aa 777777 777777 dec -1 013717 aa 777777 777777 dec -1 013720 aa 777777 777777 dec -1 013721 aa 777777 777777 dec -1 013722 aa 777777 777777 dec -1 013723 aa 777777 777777 dec -1 013724 aa 777777 777777 dec -1 013725 aa 777777 777777 dec -1 013726 aa 777777 777777 dec -1 013727 aa 777777 777777 dec -1 013730 aa 777777 777777 dec -1 013731 aa 777777 777777 dec -1 013732 aa 777777 777777 dec -1 013733 aa 777777 777777 dec -1 013734 aa 777777 777777 dec -1 013735 aa 777777 777777 dec -1 013736 aa 777777 777777 dec -1 013737 aa 777777 777777 dec -1 013740 aa 777777 777777 dec -1 013741 aa 777777 777777 dec -1 013742 aa 777777 777777 dec -1 013743 aa 777777 777777 dec -1 013744 aa 777777 777777 dec -1 013745 aa 777777 777777 dec -1 013746 aa 777777 777777 dec -1 013747 aa 777777 777777 dec -1 013750 aa 777777 777777 dec -1 013751 aa 777777 777777 dec -1 013752 aa 777777 777777 dec -1 013753 aa 777777 777777 dec -1 013754 aa 777777 777777 dec -1 " " The number of words per segment of a FORTRAN Very Large Array. " 013755 hfp_VLA_words_per_seg_: 013755 aa 000001 000000 vfd 36/256*1024 " " table of csl's for use by bool builtin function " 013756 hfp_csl_vector: 013756 aa 0 00140 0605 40 csl (pr,rl),(pr,rl),bool(0) 013757 aa 0 01140 0605 40 csl (pr,rl),(pr,rl),bool(1) 013760 aa 0 02140 0605 40 csl (pr,rl),(pr,rl),bool(2) 013761 aa 0 03140 0605 40 csl (pr,rl),(pr,rl),bool(3) 013762 aa 0 04140 0605 40 csl (pr,rl),(pr,rl),bool(4) 013763 aa 0 05140 0605 40 csl (pr,rl),(pr,rl),bool(5) 013764 aa 0 06140 0605 40 csl (pr,rl),(pr,rl),bool(6) 013765 aa 0 07140 0605 40 csl (pr,rl),(pr,rl),bool(7) 013766 aa 0 10140 0605 40 csl (pr,rl),(pr,rl),bool(10) 013767 aa 0 11140 0605 40 csl (pr,rl),(pr,rl),bool(11) 013770 aa 0 12140 0605 40 csl (pr,rl),(pr,rl),bool(12) 013771 aa 0 13140 0605 40 csl (pr,rl),(pr,rl),bool(13) 013772 aa 0 14140 0605 40 csl (pr,rl),(pr,rl),bool(14) 013773 aa 0 15140 0605 40 csl (pr,rl),(pr,rl),bool(15) 013774 aa 0 16140 0605 40 csl (pr,rl),(pr,rl),bool(16) 013775 aa 0 17140 0605 40 csl (pr,rl),(pr,rl),bool(17) " " shift table for character offset " 013776 aa 000000 000000 hfp_co_to_bo: dec 0,9b17,18b17,27b17 013777 aa 000011 000000 014000 aa 000022 000000 014001 aa 000033 000000 " " shift table for half word offset " 014002 aa 000000 000000 hfp_ho_to_bo: dec 0,18b17 014003 aa 000022 000000 " " store table from a, 9 bit bytes, character offset " OFFSET SIZE " 014004 hfp_store_a9_co: 014004 aa 2 00000 5511 40 stba bp|0,40 0 1 014005 aa 2 00000 5511 20 stba bp|0,20 1 014006 aa 2 00000 5511 10 stba bp|0,10 2 014007 aa 2 00000 5511 04 stba bp|0,04 3 014010 aa 2 00000 5511 60 stba bp|0,60 0 2 014011 aa 2 00000 5511 30 stba bp|0,30 1 014012 aa 2 00000 5511 14 stba bp|0,14 2 014013 aa 2 00000 5511 04 stba bp|0,04 3 014014 aa 2 00000 5511 70 stba bp|0,70 0 3 014015 aa 2 00000 5511 34 stba bp|0,34 1 014016 aa 2 00000 5511 14 stba bp|0,14 2 014017 aa 2 00000 5511 04 stba bp|0,04 3 014020 aa 2 00000 7551 00 sta bp|0 0 4 014021 aa 2 00000 5511 34 stba bp|0,34 1 014022 aa 2 00000 5511 14 stba bp|0,14 2 014023 aa 2 00000 5511 04 stba bp|0,04 3 014024 aa 2 00000 7551 00 sta bp|0 0 5 014025 aa 2 00000 5511 34 stba bp|0,34 1 014026 aa 2 00000 5511 14 stba bp|0,14 2 014027 aa 2 00000 5511 04 stba bp|0,04 3 " " store table from q, 9 bit bytes, character offset " OFFSET SIZE " 014030 hfp_store_q9_co: 014030 aa 000000 0110 07 nop 0,dl 0 2 014031 aa 000000 0110 07 nop 0,dl 1 014032 aa 000000 0110 07 nop 0,dl 2 014033 aa 2 00001 5521 40 stbq bp|1,40 3 014034 aa 000000 0110 07 nop 0,dl 0 3 014035 aa 000000 0110 07 nop 0,dl 1 014036 aa 2 00001 5521 40 stbq bp|1,40 2 014037 aa 2 00001 5521 60 stbq bp|1,60 3 014040 aa 000000 0110 07 nop 0,dl 0 4 014041 aa 2 00001 5521 40 stbq bp|1,40 1 014042 aa 2 00001 5521 60 stbq bp|1,60 2 014043 aa 2 00001 5521 70 stbq bp|1,70 3 014044 aa 2 00001 5521 40 stbq bp|1,40 0 5 014045 aa 2 00001 5521 60 stbq bp|1,60 1 014046 aa 2 00001 5521 70 stbq bp|1,70 2 014047 aa 2 00001 7561 00 stq bp|1 3 " " store table from a, 9 bit bytes, half word offset " OFFSET SIZE " 014050 hfp_store_a9_ho: 014050 aa 2 00000 5511 40 stba bp|0,40 0 1 014051 aa 2 00000 5511 10 stba bp|0,10 1 014052 aa 2 00000 5511 60 stba bp|0,60 0 2 014053 aa 2 00000 5511 14 stba bp|0,14 1 014054 aa 2 00000 5511 70 stba bp|0,70 0 3 014055 aa 2 00000 5511 14 stba bp|0,14 1 014056 aa 2 00000 7551 00 sta bp|0 0 4 014057 aa 2 00000 5511 14 stba bp|0,14 1 014060 aa 2 00000 7551 00 sta bp|0 0 5 014061 aa 2 00000 5511 14 stba bp|0,14 1 014062 aa 2 00000 7551 00 sta bp|0 0 6 014063 aa 2 00000 5511 14 stba bp|0,14 1 " " store table from q, 9 bit bytes, half word offset " OFFSET SIZE " 014064 hfp_store_q9_ho: 014064 aa 000000 0110 07 nop 0,dl 0 2 014065 aa 000000 0110 07 nop 0,dl 1 014066 aa 000000 0110 07 nop 0,dl 0 3 014067 aa 2 00001 5521 40 stbq bp|1,40 1 014070 aa 000000 0110 07 nop 0,dl 0 4 014071 aa 2 00001 5521 60 stbq bp|1,60 1 014072 aa 2 00001 5521 40 stbq bp|1,40 0 5 014073 aa 2 00001 5521 70 stbq bp|1,70 1 014074 aa 2 00001 5521 60 stbq bp|1,60 0 6 014075 aa 2 00001 7561 00 stq bp|1 1 " " store table from a, 6 bit bytes, half word offset " OFFSET SIZE " 014076 hfp_store_a6_ho: 014076 aa 2 00000 7511 40 stca bp|0,40 0 1 014077 aa 2 00000 7511 04 stca bp|0,04 1 014100 aa 2 00000 7511 60 stca bp|0,60 0 2 014101 aa 2 00000 7511 06 stca bp|0,06 1 014102 aa 2 00000 7511 70 stca bp|0,70 0 3 014103 aa 2 00000 7511 07 stca bp|0,07 1 014104 aa 2 00000 7511 74 stca bp|0,74 0 4 014105 aa 2 00000 7511 07 stca bp|0,07 1 014106 aa 2 00000 7511 76 stca bp|0,76 0 5 014107 aa 2 00000 7511 07 stca bp|0,07 1 014110 aa 2 00000 7551 00 sta bp|0 0 6 014111 aa 2 00000 7511 07 stca bp|0,07 1 014112 aa 2 00000 7551 00 sta bp|0 0 7 014113 aa 2 00000 7511 07 stca bp|0,07 1 014114 aa 2 00000 7551 00 sta bp|0 0 8 014115 aa 2 00000 7511 07 stca bp|0,07 1 014116 aa 2 00000 7551 00 sta bp|0 0 9 014117 aa 2 00000 7511 07 stca bp|0,07 1 " " store table from q, 6 bit bytes, half word offset " OFFSET SIZE " 014120 hfp_store_q6_ho: 014120 aa 000000 0110 07 nop 0,dl 0 2 014121 aa 000000 0110 07 nop 0,dl 1 014122 aa 000000 0110 07 nop 0,dl 0 3 014123 aa 000000 0110 07 nop 0,dl 1 014124 aa 000000 0110 07 nop 0,dl 0 4 014125 aa 2 00001 7521 40 stcq bp|1,40 1 014126 aa 000000 0110 07 nop 0,dl 0 5 014127 aa 2 00001 7521 60 stcq bp|1,60 1 014130 aa 000000 0110 07 nop 0,dl 0 6 014131 aa 2 00001 7521 70 stcq bp|1,70 1 014132 aa 2 00001 7521 40 stcq bp|1,40 0 7 014133 aa 2 00001 7521 74 stcq bp|1,74 1 014134 aa 2 00001 7521 60 stcq bp|1,60 0 8 014135 aa 2 00001 7521 76 stcq bp|1,76 1 014136 aa 2 00001 7521 70 stcq bp|1,70 0 9 014137 aa 2 00001 7561 00 stq bp|1 1 " " THE FOLLOWING SECTION IS DIRECTLY REFERENCED FROM PL/1 PROGRAMS BY MEANS OF " ap|offset. FOR THIS REASON, THE ORDER OF THE FOLLOWING INSTRUCTIONS MUST " NOT BE CHANGED. " 014140 hfp_operator_table: 014140 hfp_bit_mask: 014140 aa 000000 000000 vfd 0/-1,72/0 014141 aa 000000 000000 014142 aa 400000 000000 vfd 1/-1,71/0 014143 aa 000000 000000 014144 aa 600000 000000 vfd 2/-1,70/0 014145 aa 000000 000000 014146 aa 700000 000000 vfd 3/-1,69/0 014147 aa 000000 000000 014150 aa 740000 000000 vfd 4/-1,68/0 014151 aa 000000 000000 014152 aa 760000 000000 vfd 5/-1,67/0 014153 aa 000000 000000 014154 aa 770000 000000 vfd 6/-1,66/0 014155 aa 000000 000000 014156 aa 774000 000000 vfd 7/-1,65/0 014157 aa 000000 000000 014160 aa 776000 000000 vfd 8/-1,64/0 014161 aa 000000 000000 014162 aa 777000 000000 vfd 9/-1,63/0 014163 aa 000000 000000 014164 aa 777400 000000 vfd 10/-1,62/0 014165 aa 000000 000000 014166 aa 777600 000000 vfd 11/-1,61/0 014167 aa 000000 000000 014170 aa 777700 000000 vfd 12/-1,60/0 014171 aa 000000 000000 014172 aa 777740 000000 vfd 13/-1,59/0 014173 aa 000000 000000 014174 aa 777760 000000 vfd 14/-1,58/0 014175 aa 000000 000000 014176 aa 777770 000000 vfd 15/-1,57/0 014177 aa 000000 000000 014200 aa 777774 000000 vfd 16/-1,56/0 014201 aa 000000 000000 014202 aa 777776 000000 vfd 17/-1,55/0 014203 aa 000000 000000 014204 aa 777777 000000 vfd 18/-1,54/0 014205 aa 000000 000000 014206 aa 777777 400000 vfd 19/-1,53/0 014207 aa 000000 000000 014210 aa 777777 600000 vfd 20/-1,52/0 014211 aa 000000 000000 014212 aa 777777 700000 vfd 21/-1,51/0 014213 aa 000000 000000 014214 aa 777777 740000 vfd 22/-1,50/0 014215 aa 000000 000000 014216 aa 777777 760000 vfd 23/-1,49/0 014217 aa 000000 000000 014220 aa 777777 770000 vfd 24/-1,48/0 014221 aa 000000 000000 014222 aa 777777 774000 vfd 25/-1,47/0 014223 aa 000000 000000 014224 aa 777777 776000 vfd 26/-1,46/0 014225 aa 000000 000000 014226 aa 777777 777000 vfd 27/-1,45/0 014227 aa 000000 000000 014230 aa 777777 777400 vfd 28/-1,44/0 014231 aa 000000 000000 014232 aa 777777 777600 vfd 29/-1,43/0 014233 aa 000000 000000 014234 aa 777777 777700 vfd 30/-1,42/0 014235 aa 000000 000000 014236 aa 777777 777740 vfd 31/-1,41/0 014237 aa 000000 000000 014240 aa 777777 777760 vfd 32/-1,40/0 014241 aa 000000 000000 014242 aa 777777 777770 vfd 33/-1,39/0 014243 aa 000000 000000 014244 aa 777777 777774 vfd 34/-1,38/0 014245 aa 000000 000000 014246 aa 777777 777776 vfd 35/-1,37/0 014247 aa 000000 000000 014250 aa 777777 777777 hfp_ones: vfd 36/-1,36/0 014251 aa 000000 000000 014252 aa 777777 777777 vfd 36/-1,1/-1,35/0 014253 aa 400000 000000 014254 aa 777777 777777 vfd 36/-1,2/-1,34/0 014255 aa 600000 000000 014256 aa 777777 777777 vfd 36/-1,3/-1,33/0 014257 aa 700000 000000 014260 aa 777777 777777 vfd 36/-1,4/-1,32/0 014261 aa 740000 000000 014262 aa 777777 777777 vfd 36/-1,5/-1,31/0 014263 aa 760000 000000 014264 aa 777777 777777 vfd 36/-1,6/-1,30/0 014265 aa 770000 000000 014266 aa 777777 777777 vfd 36/-1,7/-1,29/0 014267 aa 774000 000000 014270 aa 777777 777777 vfd 36/-1,8/-1,28/0 014271 aa 776000 000000 014272 aa 777777 777777 vfd 36/-1,9/-1,27/0 014273 aa 777000 000000 014274 aa 777777 777777 vfd 36/-1,10/-1,26/0 014275 aa 777400 000000 014276 aa 777777 777777 vfd 36/-1,11/-1,25/0 014277 aa 777600 000000 014300 aa 777777 777777 vfd 36/-1,12/-1,24/0 014301 aa 777700 000000 014302 aa 777777 777777 vfd 36/-1,13/-1,23/0 014303 aa 777740 000000 014304 aa 777777 777777 vfd 36/-1,14/-1,22/0 014305 aa 777760 000000 014306 aa 777777 777777 vfd 36/-1,15/-1,21/0 014307 aa 777770 000000 014310 aa 777777 777777 vfd 36/-1,16/-1,20/0 014311 aa 777774 000000 014312 aa 777777 777777 vfd 36/-1,17/-1,19/0 014313 aa 777776 000000 014314 aa 777777 777777 vfd 36/-1,18/-1,18/0 014315 aa 777777 000000 014316 aa 777777 777777 vfd 36/-1,19/-1,17/0 014317 aa 777777 400000 014320 aa 777777 777777 vfd 36/-1,20/-1,16/0 014321 aa 777777 600000 014322 aa 777777 777777 vfd 36/-1,21/-1,15/0 014323 aa 777777 700000 014324 aa 777777 777777 vfd 36/-1,22/-1,14/0 014325 aa 777777 740000 014326 aa 777777 777777 vfd 36/-1,23/-1,13/0 014327 aa 777777 760000 014330 aa 777777 777777 vfd 36/-1,24/-1,12/0 014331 aa 777777 770000 014332 aa 777777 777777 vfd 36/-1,25/-1,11/0 014333 aa 777777 774000 014334 aa 777777 777777 vfd 36/-1,26/-1,10/0 014335 aa 777777 776000 014336 aa 777777 777777 vfd 36/-1,27/-1,9/0 014337 aa 777777 777000 014340 aa 777777 777777 vfd 36/-1,28/-1,8/0 014341 aa 777777 777400 014342 aa 777777 777777 vfd 36/-1,29/-1,7/0 014343 aa 777777 777600 014344 aa 777777 777777 vfd 36/-1,30/-1,6/0 014345 aa 777777 777700 014346 aa 777777 777777 vfd 36/-1,31/-1,5/0 014347 aa 777777 777740 014350 aa 777777 777777 vfd 36/-1,32/-1,4/0 014351 aa 777777 777760 014352 aa 777777 777777 vfd 36/-1,33/-1,3/0 014353 aa 777777 777770 014354 aa 777777 777777 vfd 36/-1,34/-1,2/0 014355 aa 777777 777774 014356 aa 777777 777777 vfd 36/-1,35/-1,1/0 014357 aa 777777 777776 " 014360 hfp_mask_bit: 014360 aa 777777 777777 vfd 0/0,36/-1,36/-1 014361 aa 777777 777777 014362 aa 377777 777777 vfd 1/0,35/-1,36/-1 014363 aa 777777 777777 014364 aa 177777 777777 vfd 2/0,34/-1,36/-1 014365 aa 777777 777777 014366 aa 077777 777777 vfd 3/0,33/-1,36/-1 014367 aa 777777 777777 014370 aa 037777 777777 vfd 4/0,32/-1,36/-1 014371 aa 777777 777777 014372 aa 017777 777777 vfd 5/0,31/-1,36/-1 014373 aa 777777 777777 014374 aa 007777 777777 vfd 6/0,30/-1,36/-1 014375 aa 777777 777777 014376 aa 003777 777777 vfd 7/0,29/-1,36/-1 014377 aa 777777 777777 014400 aa 001777 777777 vfd 8/0,28/-1,36/-1 014401 aa 777777 777777 014402 aa 000777 777777 vfd 9/0,27/-1,36/-1 014403 aa 777777 777777 014404 aa 000377 777777 vfd 10/0,26/-1,36/-1 014405 aa 777777 777777 014406 aa 000177 777777 vfd 11/0,25/-1,36/-1 014407 aa 777777 777777 014410 aa 000077 777777 vfd 12/0,24/-1,36/-1 014411 aa 777777 777777 014412 aa 000037 777777 vfd 13/0,23/-1,36/-1 014413 aa 777777 777777 014414 aa 000017 777777 vfd 14/0,22/-1,36/-1 014415 aa 777777 777777 014416 aa 000007 777777 vfd 15/0,21/-1,36/-1 014417 aa 777777 777777 014420 aa 000003 777777 vfd 16/0,20/-1,36/-1 014421 aa 777777 777777 014422 aa 000001 777777 vfd 17/0,19/-1,36/-1 014423 aa 777777 777777 014424 aa 000000 777777 vfd 18/0,18/-1,36/-1 014425 aa 777777 777777 014426 aa 000000 377777 vfd 19/0,17/-1,36/-1 014427 aa 777777 777777 014430 aa 000000 177777 vfd 20/0,16/-1,36/-1 014431 aa 777777 777777 014432 aa 000000 077777 vfd 21/0,15/-1,36/-1 014433 aa 777777 777777 014434 aa 000000 037777 vfd 22/0,14/-1,36/-1 014435 aa 777777 777777 014436 aa 000000 017777 vfd 23/0,13/-1,36/-1 014437 aa 777777 777777 014440 aa 000000 007777 vfd 24/0,12/-1,36/-1 014441 aa 777777 777777 014442 aa 000000 003777 vfd 25/0,11/-1,36/-1 014443 aa 777777 777777 014444 aa 000000 001777 vfd 26/0,10/-1,36/-1 014445 aa 777777 777777 014446 aa 000000 000777 vfd 27/0,9/-1,36/-1 014447 aa 777777 777777 014450 aa 000000 000377 vfd 28/0,8/-1,36/-1 014451 aa 777777 777777 014452 aa 000000 000177 vfd 29/0,7/-1,36/-1 014453 aa 777777 777777 014454 aa 000000 000077 vfd 30/0,6/-1,36/-1 014455 aa 777777 777777 014456 aa 000000 000037 vfd 31/0,5/-1,36/-1 014457 aa 777777 777777 014460 aa 000000 000017 vfd 32/0,4/-1,36/-1 014461 aa 777777 777777 014462 aa 000000 000007 vfd 33/0,3/-1,36/-1 014463 aa 777777 777777 014464 aa 000000 000003 vfd 34/0,2/-1,36/-1 014465 aa 777777 777777 014466 aa 000000 000001 vfd 35/0,1/-1,36/-1 014467 aa 777777 777777 014470 aa 000000 000000 vfd 36/0,36/-1 014471 aa 777777 777777 014472 hfp_max_single_value: 014472 aa 000000 000000 vfd 37/0,35/-1 014473 aa 377777 777777 014474 aa 000000 000000 vfd 38/0,34/-1 014475 aa 177777 777777 014476 aa 000000 000000 vfd 39/0,33/-1 014477 aa 077777 777777 014500 aa 000000 000000 vfd 40/0,32/-1 014501 aa 037777 777777 014502 aa 000000 000000 vfd 41/0,31/-1 014503 aa 017777 777777 014504 aa 000000 000000 vfd 42/0,30/-1 014505 aa 007777 777777 014506 aa 000000 000000 vfd 43/0,29/-1 014507 aa 003777 777777 014510 aa 000000 000000 vfd 44/0,28/-1 014511 aa 001777 777777 014512 aa 000000 000000 vfd 45/0,27/-1 014513 aa 000777 777777 014514 aa 000000 000000 vfd 46/0,26/-1 014515 aa 000377 777777 014516 aa 000000 000000 vfd 47/0,25/-1 014517 aa 000177 777777 014520 aa 000000 000000 vfd 48/0,24/-1 014521 aa 000077 777777 014522 aa 000000 000000 vfd 49/0,23/-1 014523 aa 000037 777777 014524 aa 000000 000000 vfd 50/0,22/-1 014525 aa 000017 777777 014526 aa 000000 000000 vfd 51/0,21/-1 014527 aa 000007 777777 014530 aa 000000 000000 vfd 52/0,20/-1 014531 aa 000003 777777 014532 aa 000000 000000 vfd 53/0,19/-1 014533 aa 000001 777777 014534 aa 000000 000000 vfd 54/0,18/-1 014535 aa 000000 777777 014536 aa 000000 000000 vfd 55/0,17/-1 014537 aa 000000 377777 014540 aa 000000 000000 vfd 56/0,16/-1 014541 aa 000000 177777 014542 aa 000000 000000 vfd 57/0,15/-1 014543 aa 000000 077777 014544 aa 000000 000000 vfd 58/0,14/-1 014545 aa 000000 037777 014546 aa 000000 000000 vfd 59/0,13/-1 014547 aa 000000 017777 014550 aa 000000 000000 vfd 60/0,12/-1 014551 aa 000000 007777 014552 aa 000000 000000 vfd 61/0,11/-1 014553 aa 000000 003777 014554 aa 000000 000000 vfd 62/0,10/-1 014555 aa 000000 001777 014556 aa 000000 000000 vfd 63/0,9/-1 014557 aa 000000 000777 014560 aa 000000 000000 vfd 64/0,8/-1 014561 aa 000000 000377 014562 aa 000000 000000 vfd 65/0,7/-1 014563 aa 000000 000177 014564 aa 000000 000000 vfd 66/0,6/-1 014565 aa 000000 000077 014566 aa 000000 000000 vfd 67/0,5/-1 014567 aa 000000 000037 014570 aa 000000 000000 vfd 68/0,4/-1 014571 aa 000000 000017 014572 aa 000000 000000 vfd 69/0,3/-1 014573 aa 000000 000007 014574 aa 000000 000000 vfd 70/0,2/-1 014575 aa 000000 000003 014576 aa 000000 000000 vfd 71/0,1/-1 014577 aa 000000 000001 " 014600 aa 040040 040040 hfp_blanks: oct 040040040040,040040040040 014601 aa 040040 040040 014602 aa 000040 040040 oct 000040040040,040040040040 014603 aa 040040 040040 014604 aa 000000 040040 oct 000000040040,040040040040 014605 aa 040040 040040 014606 aa 000000 000040 oct 000000000040,040040040040 014607 aa 040040 040040 014610 aa 000000 000000 oct 000000000000,040040040040 014611 aa 040040 040040 014612 aa 000000 000000 oct 000000000000,000040040040 014613 aa 000040 040040 014614 aa 000000 000000 oct 000000000000,000000040040 014615 aa 000000 040040 014616 aa 000000 000000 oct 000000000000,000000000040 014617 aa 000000 000040 " 014620 aa 077777 000077 hfp_ptr_mask: oct 077777000077,777777077077 mask for use in ptr comparisions 014621 aa 777777 077077 " " operator to convert single fixed to double fixed " even 014622 hfp_fx1_to_fx2: 014622 aa 000044 7770 00 llr 36 014623 aa 000044 7330 00 lrs 36 " " operators to convert fixed to float " 014624 aa 000000 0110 03 odd 014625 hfp_fx1_to_fl2: 014625 0a 014622 7170 00 xed hfp_fx1_to_fx2 " even 014626 hfp_fx2_to_fl2: 014626 aa 044000 4110 03 lde =18b25,du EAQ = unnormalized 2*float(number) 014627 aa 400000 4750 03 fad P0.0H,du EAQ = 2*float(number) 014630 aa 000400 4610 03 fmp P0.5H,du EAQ = float(number) 014631 aa 6 00046 7101 70 tra sp|tbp,*x0 return " " operator to reset next stack pointer " even 014632 hfp_reset_stack: 014632 aa 6 00005 2201 00 ldx0 sp|5 014633 aa 6 00023 7401 00 stx0 sp|stack_frame.next_sp+1 " " operators to convert indicators into relations " 014634 0a 002164 6040 00 hfp_r_l_a: tmi true 014635 aa 000000 2350 07 lda 0,dl 014636 aa 6 00046 7101 70 tra sp|tbp,*0 " 014637 aa 000002 6000 04 hfp_r_g_s: tze 2,ic 014640 0a 002164 6030 00 trc true 014641 aa 000000 2350 07 lda 0,dl 014642 aa 6 00046 7101 70 tra sp|tbp,*0 " 014643 aa 000002 6000 04 hfp_r_g_a: tze 2,ic 014644 0a 002164 6050 00 tpl true 014645 aa 000000 2350 07 lda 0,dl 014646 aa 6 00046 7101 70 tra sp|tbp,*0 " 014647 0a 002164 6020 00 hfp_r_l_s: tnc true 014650 aa 000000 2350 07 lda 0,dl 014651 aa 6 00046 7101 70 tra sp|tbp,*0 " 014652 0a 002164 6000 00 hfp_r_e_as: tze true 014653 aa 000000 2350 07 lda 0,dl 014654 aa 6 00046 7101 70 tra sp|tbp,*0 " 014655 0a 002164 6010 00 hfp_r_ne_as: tnz true 014656 aa 000000 2350 07 lda 0,dl 014657 aa 6 00046 7101 70 tra sp|tbp,*0 " 014660 0a 002164 6040 00 hfp_r_le_a: tmi true 014661 0a 002164 6000 00 tze true 014662 aa 000000 2350 07 lda 0,dl 014663 aa 6 00046 7101 70 tra sp|tbp,*0 " 014664 0a 002164 6030 00 hfp_r_ge_s: trc true 014665 aa 000000 2350 07 lda 0,dl 014666 aa 6 00046 7101 70 tra sp|tbp,*0 " 014667 0a 002164 6050 00 hfp_r_ge_a: tpl true 014670 aa 000000 2350 07 lda 0,dl 014671 aa 6 00046 7101 70 tra sp|tbp,*0 " 014672 0a 002164 6020 00 hfp_r_le_s: tnc true 014673 0a 002164 6000 00 tze true 014674 aa 000000 2350 07 lda 0,dl 014675 aa 6 00046 7101 70 tra sp|tbp,*0 " 014676 aa 400000 2350 03 hfp_true: lda =o400000,du 014677 aa 6 00046 7101 70 tra sp|tbp,*0 " " operator to set stack ptr to that of block N static " levels above the current block. Entered with N in q. " (should not be called with N = 0, but will work anyway.) " 014700 hfp_set_stack: 014700 0a 005674 7010 00 tsx1 display_chase get ptr to proper frame 014701 aa 2 00000 3721 00 eppsp bp|0 into sp 014702 0a 003276 7100 00 tra set_stack_extend do three more instructions (added later " and since compiled code knows offsets in this " area, couldn't add the code inline) " " tables to convert to bit offset ready to be ORed into pointer " 014703 aa 000000 000000 hfp_mod2_tab: dec 0,18b26 014704 aa 000000 022000 " 014705 aa 000000 000000 hfp_mod4_tab: dec 0,9b26,18b26,27b26 014706 aa 000000 011000 014707 aa 000000 022000 014710 aa 000000 033000 " " transfer vector for operators not referenced directly " by the pl/1 program. new operators may be added at the " end of the list only. " 014711 hfp_op_vector: 014711 0a 003140 7100 00 tra alloc_char_temp 0 014712 0a 003152 7100 00 tra alloc_bit_temp 1 014713 0a 003161 7100 00 tra alloc_temp 2 014714 0a 003217 7100 00 tra realloc_char_temp 3 014715 0a 003207 7100 00 tra realloc_bit_temp 4 014716 0a 003304 7100 00 tra save_string 5 obsolete 014717 0a 007646 7100 00 tra pk_to_unpk 6 014720 0a 007655 7100 00 tra unpk_to_pk 7 014721 0a 003633 7100 00 tra move_chars 8 obsolete 014722 0a 003641 7100 00 tra move_chars_aligned 9 obsolete 014723 0a 003604 7100 00 tra move_bits 10 obsolete 014724 0a 003612 7100 00 tra move_bits_aligned 11 obsolete 014725 0a 003727 7100 00 tra chars_move 12 obsolete 014726 0a 003740 7100 00 tra chars_move_aligned 13 obsolete 014727 0a 003755 7100 00 tra bits_move 14 obsolete 014730 0a 003766 7100 00 tra bits_move_aligned 15 obsolete 014731 0a 003573 7100 00 tra move_not_bits 16 obsolete 014732 0a 003601 7100 00 tra move_not_bits_aligned 17 obsolete 014733 0a 003676 7100 00 tra ext_and_1 18 014734 0a 003677 7100 00 tra ext_and_2 19 014735 0a 003717 7100 00 tra comp_bits 20 014736 0a 004371 7100 00 tra cpbs3 21 obsolete 014737 0a 004401 7100 00 tra cpbs3_aligned 22 obsolete 014740 0a 004377 7100 00 tra cpbs4 23 obsolete 014741 0a 004357 7100 00 tra cpcs_ext1 24 014742 0a 004360 7100 00 tra cpcs_ext2 25 014743 0a 004364 7100 00 tra cpbs_ext1 26 014744 0a 004365 7100 00 tra cpbs_ext2 27 014745 0a 003354 7100 00 tra store_string 28 014746 0a 003215 7100 00 tra cat_realloc_chars 29 014747 0a 003177 7100 00 tra cat_realloc_bits 30 014750 0a 004320 7100 00 tra cp_chars 31 obsolete 014751 0a 004326 7100 00 tra cp_chars_aligned 32 obsolete 014752 0a 004340 7100 00 tra cp_bits 33 obsolete 014753 0a 004346 7100 00 tra cp_bits_aligned 34 obsolete 014754 0a 012364 7100 00 tra enter_begin_block 35 014755 0a 005552 7100 00 tra leave_begin_block 36 014756 0a 005607 7100 00 tra call_ent_var_desc 37 014757 0a 005610 7100 00 tra call_ent_var 38 014760 0a 005623 7100 00 tra call_ext_in_desc 39 014761 0a 005624 7100 00 tra call_ext_in 40 014762 0a 005623 7100 00 tra call_ext_out_desc 41 014763 0a 005624 7100 00 tra call_ext_out 42 014764 0a 005634 7100 00 tra call_int_this_desc 43 014765 0a 005635 7100 00 tra call_int_this 44 014766 0a 005645 7100 00 tra call_int_other_desc 45 014767 0a 005646 7100 00 tra call_int_other 46 014770 0a 005572 7100 00 tra begin_return_mac 47 014771 0a 005600 7100 00 tra return_mac 48 014772 0a 003654 7100 00 tra cat_move_chars 49 obsolete 014773 0a 003662 7100 00 tra cat_move_chars_aligned 50 obsolete 014774 0a 003552 7100 00 tra cat_move_bits 51 obsolete 014775 0a 003560 7100 00 tra cat_move_bits_aligned 52 obsolete 014776 0a 004040 7100 00 tra cat_chars 53 obsolete 014777 0a 004046 7100 00 tra cat_chars_aligned 54 obsolete 015000 0a 004063 7100 00 tra cat_bits 55 obsolete 015001 0a 004071 7100 00 tra cat_bits_aligned 56 obsolete 015002 0a 003321 7100 00 tra set_chars 57 obsolete 015003 0a 003327 7100 00 tra set_chars_aligned 58 obsolete 015004 0a 003342 7100 00 tra set_bits 59 obsolete 015005 0a 003350 7100 00 tra set_bits_aligned 60 obsolete 015006 0a 003517 7100 00 tra and_bits 61 obsolete 015007 0a 003525 7100 00 tra and_bits_aligned 62 obsolete 015010 0a 003530 7100 00 tra or_bits 63 obsolete 015011 0a 003536 7100 00 tra or_bits_aligned 64 obsolete 015012 0a 005660 7100 00 tra move_label_var 65 015013 0a 005666 7100 00 tra make_label_var 66 015014 0a 015664 7100 00 tra hfp_fl2_to_fx1 67 015015 0a 015664 7100 00 tra hfp_fl2_to_fx2 68 015016 0a 007620 7100 00 tra longbs_to_fx2 69 015017 0a 007265 7100 00 tra tra_ext_1 70 015020 0a 007273 7100 00 tra tra_ext_2 71 015021 0a 007301 7100 00 tra alloc_auto_adj 72 015022 0a 007636 7100 00 tra longbs_to_bs18 73 015023 0a 006553 7100 00 tra stac_mac 74 015024 0a 006642 7100 00 tra sign_mac 75 015025 0a 010206 7100 00 tra bound_ck_signal 76 015026 0a 006650 7100 00 tra trans_sign_fx1 77 015027 0a 006660 7100 00 tra trans_sign_fl 78 015030 0a 007023 7100 00 tra copy_words 79 obsolete 015031 0a 007035 7100 00 tra mpfx2 80 015032 0a 007104 7100 00 tra mpfx3 81 015033 0a 004445 7100 00 tra copy_const 82 obsolete 015034 0a 004444 7100 00 tra copy_const_vt 83 obsolete 015035 0a 007205 7100 00 tra sr_check 84 obsolete 015036 0a 003726 7100 00 tra chars_move_vt 85 obsolete 015037 0a 003737 7100 00 tra chars_move_vta 86 obsolete 015040 0a 003754 7100 00 tra bits_move_vt 87 obsolete 015041 0a 003765 7100 00 tra bits_move_vta 88 obsolete 015042 0a 016076 7100 00 tra hfp_mdfl1 89 015043 0a 016120 7100 00 tra hfp_mdfl2 90 015044 0a 005701 7100 00 tra mdfx1 91 015045 0a 005716 7100 00 tra mdfx2 92 015046 0a 005742 7100 00 tra mdfx3 93 015047 0a 005720 7100 00 tra mdfx4 94 015050 0a 007033 7100 00 tra copy_double 95 obsolete 015051 0a 003371 7100 00 tra string_store 96 obsolete 015052 0a 003421 7100 00 tra get_chars 97 obsolete 015053 0a 003455 7100 00 tra get_bits 98 obsolete 015054 0a 003474 7100 00 tra pad_chars 99 015055 0a 003506 7100 00 tra pad_bits 100 015056 0a 010202 7100 00 tra signal_op 101 015057 0a 010107 7100 00 tra enable_op 102 015060 0a 004453 7100 00 tra index_chars 103 obsolete 015061 0a 004461 7100 00 tra index_chars_aligned 104 obsolete 015062 0a 004611 7100 00 tra index_bits 105 obsolete 015063 0a 004617 7100 00 tra index_bits_aligned 106 obsolete 015064 0a 003541 7100 00 tra exor_bits 107 obsolete 015065 0a 003547 7100 00 tra exor_bits_aligned 108 obsolete 015066 0a 003344 7100 00 tra set_bits_co 109 obsolete 015067 0a 003346 7100 00 tra set_bits_ho 110 obsolete 015070 0a 003323 7100 00 tra set_chars_co 111 obsolete 015071 0a 003325 7100 00 tra set_chars_ho 112 obsolete 015072 0a 003373 7100 00 tra string_store_co 113 obsolete 015073 0a 003402 7100 00 tra string_store_ho 114 obsolete 015074 0a 003423 7100 00 tra get_chars_co 115 obsolete 015075 0a 003425 7100 00 tra get_chars_ho 116 obsolete 015076 0a 003457 7100 00 tra get_bits_co 117 obsolete 015077 0a 003461 7100 00 tra get_bits_ho 118 obsolete 015100 0a 003521 7100 00 tra and_bits_co 119 obsolete 015101 0a 003523 7100 00 tra and_bits_ho 120 obsolete 015102 0a 003532 7100 00 tra or_bits_co 121 obsolete 015103 0a 003534 7100 00 tra or_bits_ho 122 obsolete 015104 0a 003543 7100 00 tra exor_bits_co 123 obsolete 015105 0a 003545 7100 00 tra exor_bits_ho 124 obsolete 015106 0a 003554 7100 00 tra cat_move_bits_co 125 obsolete 015107 0a 003556 7100 00 tra cat_move_bits_ho 126 obsolete 015110 0a 003575 7100 00 tra move_not_bits_co 127 obsolete 015111 0a 003577 7100 00 tra move_not_bits_ho 128 obsolete 015112 0a 003606 7100 00 tra move_bits_co 129 obsolete 015113 0a 003610 7100 00 tra move_bits_ho 130 obsolete 015114 0a 003635 7100 00 tra move_chars_co 131 obsolete 015115 0a 003637 7100 00 tra move_chars_ho 132 obsolete 015116 0a 003656 7100 00 tra cat_move_chars_co 133 obsolete 015117 0a 003660 7100 00 tra cat_move_chars_ho 134 obsolete 015120 0a 004042 7100 00 tra cat_chars_co 135 obsolete 015121 0a 004044 7100 00 tra cat_chars_ho 136 obsolete 015122 0a 004065 7100 00 tra cat_bits_co 137 obsolete 015123 0a 004067 7100 00 tra cat_bits_ho 138 obsolete 015124 0a 011327 7100 00 tra io_signal 139 015125 0a 004650 7100 00 tra index_cs_1 140 obsolete 015126 0a 004656 7100 00 tra index_cs_1_aligned 141 obsolete 015127 0a 015756 7100 00 tra hfp_fort_mdfl1 142 015130 0a 006724 7100 00 tra rfb1_to_cflb1 143 015131 0a 016167 7100 00 tra hfp_rfb2_to_cflb1 144 015132 0a 006734 7100 00 tra mpcfl1_1 145 015133 0a 006735 7100 00 tra mpcfl1_2 146 015134 0a 006755 7100 00 tra dvcfl1_1 147 015135 0a 006756 7100 00 tra dvcfl1_2 148 015136 0a 003731 7100 00 tra chars_move_vt_co 149 obsolete 015137 0a 003734 7100 00 tra chars_move_vt_ho 150 obsolete 015140 0a 003732 7100 00 tra chars_move_co 151 obsolete 015141 0a 003735 7100 00 tra chars_move_ho 152 obsolete 015142 0a 003757 7100 00 tra bits_move_vt_co 153 obsolete 015143 0a 003762 7100 00 tra bits_move_vt_ho 154 obsolete 015144 0a 003760 7100 00 tra bits_move_co 155 obsolete 015145 0a 003763 7100 00 tra bits_move_ho 156 obsolete 015146 0a 004322 7100 00 tra cp_chars_co 157 obsolete 015147 0a 004324 7100 00 tra cp_chars_ho 158 obsolete 015150 0a 004342 7100 00 tra cp_bits_co 159 obsolete 015151 0a 004344 7100 00 tra cp_bits_ho 160 obsolete 015152 0a 004373 7100 00 tra cpbs3_co 161 obsolete 015153 0a 004375 7100 00 tra cpbs3_ho 162 obsolete 015154 0a 003254 7100 00 tra shorten_stack 163 015155 0a 004426 7100 00 tra zero_bits 164 obsolete 015156 0a 004434 7100 00 tra zero_bits_aligned 165 obsolete 015157 0a 004430 7100 00 tra zero_bits_co 166 obsolete 015160 0a 004432 7100 00 tra zero_bits_ho 167 obsolete 015161 0a 004407 7100 00 tra blank_chars 168 obsolete 015162 0a 004415 7100 00 tra blank_chars_aligned 169 obsolete 015163 0a 004411 7100 00 tra blank_chars_co 170 obsolete 015164 0a 004413 7100 00 tra blank_chars_ho 171 obsolete 015165 0a 004455 7100 00 tra index_chars_co 172 obsolete 015166 0a 004457 7100 00 tra index_chars_ho 173 obsolete 015167 0a 004613 7100 00 tra index_bits_co 174 obsolete 015170 0a 004615 7100 00 tra index_bits_ho 175 obsolete 015171 0a 004652 7100 00 tra index_cs_1_co 176 obsolete 015172 0a 004654 7100 00 tra index_cs_1_ho 177 obsolete 015173 0a 004673 7100 00 tra index_bs_1 178 obsolete 015174 0a 004701 7100 00 tra index_bs_1_aligned 179 obsolete 015175 0a 004675 7100 00 tra index_bs_1_co 180 obsolete 015176 0a 004677 7100 00 tra index_bs_1_ho 181 obsolete 015177 0a 012444 0000 00 arg shift_bo 182 obsolete 015200 0a 005422 7100 00 tra return_words 183 015201 0a 005442 7100 00 tra return_bits 184 obsolete 015202 0a 005444 7100 00 tra return_bits_co 185 obsolete 015203 0a 005446 7100 00 tra return_bits_ho 186 obsolete 015204 0a 005450 7100 00 tra return_bits_al 187 obsolete 015205 hfp_entry_operators: 015205 0a 012054 7100 00 tra ext_entry 188 015206 0a 012100 7100 00 tra ext_entry_desc 189 015207 0a 012121 7100 00 tra int_entry 190 015210 0a 012137 7100 00 tra int_entry_desc 191 015211 0a 012156 7100 00 tra val_entry 192 015212 0a 012154 7100 00 tra val_entry_desc 193 015213 0a 003427 7100 00 tra get_chars_aligned 194 obsolete 015214 0a 003463 7100 00 tra get_bits_aligned 195 obsolete 015215 0a 003416 7100 00 tra fetch_chars 196 015216 0a 003451 7100 00 tra fetch_bits 197 015217 0a 010501 7100 00 tra get_terminate 198 015220 4a 4 00010 7101 20 tra |[put_terminate] 199 015221 0a 010333 7100 00 tra put_data_aligned 200 obsolete 015222 0a 010346 7100 00 tra get_list_aligned 201 obsolete 015223 0a 010357 7100 00 tra get_edit_aligned 202 obsolete 015224 0a 010411 7100 00 tra put_list_aligned 203 obsolete 015225 0a 010422 7100 00 tra put_edit_aligned 204 obsolete 015226 4a 4 00012 7101 20 tra |[stream_prep] 205 015227 4a 4 00014 7101 20 tra |[record_io] 206 015230 0a 010505 7100 00 tra open_file 207 015231 0a 010507 7100 00 tra close_file 208 015232 0a 010325 7100 00 tra put_data 209 obsolete 015233 0a 010327 7100 00 tra put_data_co 210 obsolete 015234 0a 010331 7100 00 tra put_data_ho 211 obsolete 015235 0a 010340 7100 00 tra get_list 212 obsolete 015236 0a 010342 7100 00 tra get_list_co 213 obsolete 015237 0a 010344 7100 00 tra get_list_ho 214 obsolete 015240 0a 010351 7100 00 tra get_edit 215 obsolete 015241 0a 010353 7100 00 tra get_edit_co 216 obsolete 015242 0a 010355 7100 00 tra get_edit_ho 217 obsolete 015243 0a 010403 7100 00 tra put_list 218 obsolete 015244 0a 010405 7100 00 tra put_list_co 219 obsolete 015245 0a 010407 7100 00 tra put_list_ho 220 obsolete 015246 0a 010414 7100 00 tra put_edit 221 obsolete 015247 0a 010416 7100 00 tra put_edit_co 222 obsolete 015250 0a 010420 7100 00 tra put_edit_ho 223 obsolete 015251 0a 004236 7100 00 tra suffix_cs 224 obsolete 015252 0a 004254 7100 00 tra suffix_bs 225 obsolete 015253 0a 015675 7100 00 tra hfp_fl2_to_fxscaled 226 015254 0a 007363 7100 00 tra trunc_fx1 227 015255 0a 007375 7100 00 tra trunc_fx2 228 015256 0a 007444 7100 00 tra ceil_fx1 229 015257 0a 007500 7100 00 tra ceil_fx2 230 015260 0a 015652 7100 00 tra hfp_ceil_fl 231 015261 0a 007425 7100 00 tra floor_fx1 232 015262 0a 007463 7100 00 tra floor_fx2 233 015263 0a 015725 7100 00 tra hfp_floor_fl 234 015264 0a 016176 7100 00 tra hfp_trunc_fl 235 015265 0a 007515 7100 00 tra round_fx1 236 015266 0a 007536 7100 00 tra round_fx2 237 015267 0a 004103 7100 00 tra repeat 238 015270 0a 005052 7100 00 tra make_bit_table 239 obsolete 015271 0a 005060 7100 00 tra make_bit_table_al 240 obsolete 015272 0a 005054 7100 00 tra make_bit_table_co 241 obsolete 015273 0a 005056 7100 00 tra make_bit_table_ho 242 obsolete 015274 0a 005147 7100 00 tra verify 243 obsolete 015275 0a 005155 7100 00 tra verify_al 244 obsolete 015276 0a 005151 7100 00 tra verify_co 245 obsolete 015277 0a 005153 7100 00 tra verify_ho 246 obsolete 015300 0a 005161 7100 00 tra const_verify 247 obsolete 015301 0a 005167 7100 00 tra const_verify_al 248 obsolete 015302 0a 005163 7100 00 tra const_verify_co 249 obsolete 015303 0a 005165 7100 00 tra const_verify_ho 250 obsolete 015304 0a 004212 7100 00 tra reverse_cs 251 015305 0a 004166 7100 00 tra reverse_bs 252 015306 0a 005110 7100 00 tra form_bit_table 253 obsolete 015307 0a 005112 7100 00 tra form_bit_table_co 254 obsolete 015310 0a 005114 7100 00 tra form_bit_table_ho 255 obsolete 015311 0a 005116 7100 00 tra form_bit_table_al 256 obsolete 015312 0a 004002 7100 00 tra chars_move_ck 257 obsolete 015313 0a 004004 7100 00 tra chars_move_ck_co 258 obsolete 015314 0a 004006 7100 00 tra chars_move_ck_ho 259 obsolete 015315 0a 004010 7100 00 tra chars_move_ck_al 260 obsolete 015316 0a 004021 7100 00 tra bits_move_ck 261 obsolete 015317 0a 004023 7100 00 tra bits_move_ck_co 262 obsolete 015320 0a 004025 7100 00 tra bits_move_ck_ho 263 obsolete 015321 0a 004027 7100 00 tra bits_move_ck_al 264 obsolete 015322 0a 007771 7100 00 tra size_check_fx1 265 015323 0a 010013 7100 00 tra size_check_fx2 266 015324 0a 010053 7100 00 tra signal_stringsize 267 015325 0a 004272 7100 00 tra suffix_cs_ck 268 obsolete 015326 0a 004312 7100 00 tra suffix_bs_ck 269 obsolete 015327 0a 011032 7100 00 tra pointer_hard 270 015330 0a 007727 7100 00 tra alm_call 271 special for alm 015331 0a 007733 7100 00 tra alm_push 272 special for alm 015332 0a 007757 7100 00 tra alm_return 273 special for alm 015333 0a 007765 7100 00 tra alm_return_no_pop 274 special for alm 015334 0a 007747 7100 00 tra alm_entry 275 special for alm 015335 0a 007663 7100 00 tra packed_to_bp 276 obsolete 015336 0a 005466 7100 00 tra return_chars 277 obsolete 015337 0a 005470 7100 00 tra return_chars_co 278 obsolete 015340 0a 005472 7100 00 tra return_chars_ho 279 obsolete 015341 0a 005474 7100 00 tra return_chars_aligned 280 obsolete 015342 0a 007667 7100 00 tra rpd_odd_lp_bp 281 obsolete 015343 0a 007677 7100 00 tra rpd_odd_bp_lp 282 obsolete 015344 0a 007707 7100 00 tra rpd_even_lp_bp 283 obsolete 015345 0a 007717 7100 00 tra rpd_even_bp_lp 284 obsolete 015346 0a 011060 7100 00 tra offset_easy 285 015347 0a 011074 7100 00 tra offset_easy_pk 286 015350 0a 011060 7100 00 tra offset_hard 287 015351 0a 011074 7100 00 tra offset_hard_pk 288 015352 0a 011045 7100 00 tra pointer_hard_pk 289 015353 0a 011032 7100 00 tra pointer_easy 290 015354 0a 011045 7100 00 tra pointer_easy_pk 291 015355 0a 007553 7100 00 tra round_fl 292 015356 0a 010222 7100 00 tra enable_file 293 015357 0a 010275 7100 00 tra revert_file 294 015360 0a 011107 7100 00 tra alloc_block 295 015361 0a 011134 7100 00 tra free_block 296 015362 0a 011151 7100 00 tra push_ctl_data 297 015363 0a 011147 7100 00 tra push_ctl_desc 298 015364 0a 011173 7100 00 tra pop_ctl_data 299 015365 0a 011173 7100 00 tra pop_ctl_desc 300 015366 0a 011213 7100 00 tra allocation 301 015367 0a 003315 7100 00 tra set_chars_eis 302 015370 0a 003336 7100 00 tra set_bits_eis 303 015371 0a 004464 7100 00 tra index_chars_eis 304 015372 0a 004606 7100 00 tra index_bits_eis 305 015373 0a 004645 7100 00 tra index_cs_1_eis 306 015374 0a 004670 7100 00 tra index_bs_1_eis 307 015375 0a 005477 7100 00 tra return_chars_eis 308 015376 0a 005453 7100 00 tra return_bits_eis 309 015377 0a 010323 7100 00 tra put_data_eis 310 015400 4a 4 00016 7101 20 tra |[put_edit_eis] 311 015401 0a 010362 7100 00 tra put_list_eis 312 015402 4a 4 00020 7101 20 tra |[get_edit_eis] 313 015403 0a 010336 7100 00 tra get_list_eis 314 015404 0a 005245 7100 00 tra verify_eis 315 015405 0a 005223 7100 00 tra search_eis 316 015406 0a 010511 7100 00 tra fortran_read 317 015407 0a 010511 7100 00 tra fortran_write 318 015410 0a 010554 7100 00 tra fortran_manip 319 015411 0a 010547 7100 00 tra fortran_scalar_xmit 320 015412 0a 010547 7100 00 tra fortran_array_xmit 321 015413 0a 010556 7100 00 tra fortran_terminate 322 015414 4a 4 00022 7101 20 tra |[real_to_real_round_] 323 015415 4a 4 00024 7101 20 tra |[real_to_real_truncate_] 324 015416 4a 4 00026 7101 20 tra |[any_to_any_round_] 325 015417 4a 4 00030 7101 20 tra |[any_to_any_truncate_] 326 015420 0a 011226 7100 00 tra unpack_picture 327 015421 0a 011231 7100 00 tra pack_picture 328 015422 0a 006042 7100 00 tra divide_fx1 329 015423 0a 006061 7100 00 tra divide_fx2 330 015424 0a 006044 7100 00 tra divide_fx3 331 015425 0a 006063 7100 00 tra divide_fx4 332 015426 0a 006027 7100 00 tra scaled_mod_fx1 333 015427 0a 005757 7100 00 tra scaled_mod_fx2 334 015430 0a 006031 7100 00 tra scaled_mod_fx3 335 015431 0a 005761 7100 00 tra scaled_mod_fx4 336 015432 0a 005322 7100 00 tra translate_2 337 015433 0a 005360 7100 00 tra translate_3 338 015434 4a 4 00566 7101 20 tra |[hfp_square_root_] 339 015435 4a 4 00570 7101 20 tra |[hfp_sine_radians_] 340 015436 4a 4 00572 7101 20 tra |[hfp_sine_degrees_] 341 015437 4a 4 00574 7101 20 tra |[hfp_cosine_radians_] 342 015440 4a 4 00576 7101 20 tra |[hfp_cosine_degrees_] 343 015441 4a 4 00600 7101 20 tra |[hfp_tangent_radians_] 344 015442 4a 4 00602 7101 20 tra |[hfp_tangent_degrees_] 345 015443 4a 4 00604 7101 20 tra |[hfp_arc_sine_radians_] 346 015444 4a 4 00606 7101 20 tra |[hfp_arc_sine_degrees_] 347 015445 4a 4 00610 7101 20 tra |[hfp_arc_cosine_radians_] 348 015446 4a 4 00612 7101 20 tra |[hfp_arc_cosine_degrees_] 349 015447 4a 4 00614 7101 20 tra |[hfp_arc_tangent_radians_] 350 015450 4a 4 00616 7101 20 tra |[hfp_arc_tangent_degrees_] 351 015451 4a 4 00620 7101 20 tra |[hfp_log_base_2_] 352 015452 4a 4 00622 7101 20 tra |[hfp_log_base_e_] 353 015453 4a 4 00624 7101 20 tra |[hfp_log_base_10_] 354 015454 4a 4 00626 7101 20 tra |[hfp_exponential_] 355 015455 4a 4 00630 7101 20 tra |[hfp_double_square_root_] 356 015456 4a 4 00632 7101 20 tra |[hfp_double_sine_radians_] 357 015457 4a 4 00634 7101 20 tra |[hfp_double_sine_degrees_] 358 015460 4a 4 00636 7101 20 tra |[hfp_double_cosine_radians_] 359 015461 4a 4 00640 7101 20 tra |[hfp_double_cosine_degrees_] 360 015462 4a 4 00642 7101 20 tra |[hfp_double_tangent_radians_] 361 015463 4a 4 00644 7101 20 tra |[hfp_double_tangent_degrees_] 362 015464 4a 4 00646 7101 20 tra |[hfp_double_arc_sine_radians_] 363 015465 4a 4 00650 7101 20 tra |[hfp_double_arc_sine_degrees_] 364 015466 4a 4 00652 7101 20 tra |[hfp_double_arc_cosine_radians_] 365 015467 4a 4 00654 7101 20 tra |[hfp_double_arc_cosine_degrees_] 366 015470 4a 4 00656 7101 20 tra |[hfp_double_arc_tan_radians_] 367 015471 4a 4 00660 7101 20 tra |[hfp_double_arc_tan_degrees_] 368 015472 4a 4 00662 7101 20 tra |[hfp_double_log_base_2_] 369 015473 4a 4 00664 7101 20 tra |[hfp_double_log_base_e_] 370 015474 4a 4 00666 7101 20 tra |[hfp_double_log_base_10_] 371 015475 4a 4 00670 7101 20 tra |[hfp_double_exponential_] 372 015476 4a 4 00672 7101 20 tra |[hfp_arc_tangent_radians_2_] 373 015477 4a 4 00674 7101 20 tra |[hfp_arc_tangent_degrees_2_] 374 015500 4a 4 00676 7101 20 tra |[hfp_double_arc_tan_radians_2_] 375 015501 4a 4 00700 7101 20 tra |[hfp_double_arc_tan_degrees_2_] 376 015502 4a 4 00702 7101 20 tra |[hfp_integer_power_single_] 377 015503 4a 4 00704 7101 20 tra |[hfp_integer_power_double_] 378 015504 4a 4 00706 7101 20 tra |[hfp_double_power_single_] 379 015505 4a 4 00710 7101 20 tra |[hfp_double_power_double_] 380 015506 4a 4 00712 7101 20 tra |[hfp_double_power_integer_] 381 015507 4a 4 00714 7101 20 tra |[hfp_single_power_single_] 382 015510 4a 4 00716 7101 20 tra |[hfp_single_power_integer_] 383 015511 4a 4 00164 7101 20 tra |[integer_power_integer_] 384 015512 0a 010050 7100 00 tra signal_size 385 015513 0a 012214 7100 00 tra ss_ext_entry 386 015514 0a 012242 7100 00 tra ss_ext_entry_desc 387 015515 0a 012264 7100 00 tra ss_int_entry 388 015516 0a 012303 7100 00 tra ss_int_entry_desc 389 015517 0a 012323 7100 00 tra ss_val_entry 390 015520 0a 012321 7100 00 tra ss_val_entry_desc 391 015521 4a 4 00166 7101 20 tra |[mpcdec] 392 015522 4a 4 00170 7101 20 tra |[dvcdec] 393 015523 4a 4 00172 7101 20 tra |[dvrcdec] 394 015524 4a 4 00174 7101 20 tra |[ceil] 395 015525 4a 4 00176 7101 20 tra |[floor] 396 015526 4a 4 00200 7101 20 tra |[sign] 397 015527 4a 4 00202 7101 20 tra |[cabs] 398 015530 4a 4 00204 7101 20 tra |[truncate] 399 015531 4a 4 00206 7101 20 tra |[mod] 400 015532 0a 011351 7100 00 tra set_support 401 015533 0a 006071 7100 00 tra div_4_cplx_ops 402 015534 0a 003441 7100 00 tra fetch_chars_eis 403 015535 0a 007247 7100 00 tra signal_stringrange 404 015536 0a 012404 7100 00 tra ss_enter_begin_block 405 015537 4a 4 00210 7101 20 tra |[put_field] 406 015540 4a 4 00212 7101 20 tra |[put_field_chk] 407 015541 4a 4 00214 7101 20 tra |[put_control] 408 015542 4a 4 00216 7101 20 tra |[op_alloc_] 409 015543 0a 011104 7100 00 tra alloc_storage 410 015544 4a 4 00220 7101 20 tra |[op_freen_] 411 015545 4a 4 00222 7101 20 tra |[op_empty_] 412 015546 4a 4 00720 7101 20 tra |[hfp_cabs] 413 fortran only 015547 4a 4 00722 7101 20 tra |[hfp_ccos] 414 fortran only 015550 4a 4 00724 7101 20 tra |[hfp_cexp] 415 fortran only 015551 4a 4 00726 7101 20 tra |[hfp_clog] 416 fortran only 015552 4a 4 00730 7101 20 tra |[hfp_csin] 417 fortran only 015553 4a 4 00732 7101 20 tra |[hfp_csqrt] 418 fortran only 015554 4a 4 00734 7101 20 tra |[hfp_tanh] 419 fortran only 015555 4a 4 00736 7101 20 tra |[hfp_dmod] 420 fortran only (obsolete) 015556 4a 4 00740 7101 20 tra |[hfp_cmpx_p_cmpx] 421 fortran only 015557 0a 015775 7100 00 tra hfp_get_math_entry 422 fortran only 015560 0a 011463 7100 00 tra fortran_pause 423 fortran only 015561 0a 011465 7100 00 tra fortran_stop 424 fortran only 015562 0a 011506 7100 00 tra fortran_chain 425 fortran only 015563 0a 024743 7100 00 tra long_profile 426 015564 0a 004714 7100 00 tra index_before_cs 427 015565 0a 005004 7100 00 tra index_before_bs 428 015566 0a 004720 7100 00 tra index_after_cs 429 015567 0a 005010 7100 00 tra index_after_bs 430 015570 0a 005035 7100 00 tra index_before_bs_1 431 015571 0a 005041 7100 00 tra index_after_bs_1 432 015572 0a 005271 7100 00 tra verify_for_ltrim 433 015573 0a 005304 7100 00 tra verify_for_rtrim 434 015574 0a 006557 7100 00 tra stacq_mac 435 015575 0a 006563 7100 00 tra clock_mac 436 015576 0a 006571 7100 00 tra vclock_mac 437 015577 0a 010561 7100 00 tra ftn_open_element 438 fortran only 015600 0a 011025 7100 00 tra ftn_get_area_ptr 439 fortran only 015601 0a 006577 7100 00 tra stop 440 015602 0a 006610 7100 00 tra return_main 441 015603 0a 006626 7100 00 tra set_main_flag 442 015604 0a 006614 7100 00 tra begin_return_main 443 015605 0a 010023 7100 00 tra size_check_uns_fx1 444 015606 0a 010031 7100 00 tra size_check_uns_fx2 445 015607 0a 011455 7100 00 tra fortran_end 446 fortran only 015610 0a 015737 7100 00 tra hfp_fort_dmod 447 fortran only 015611 0a 004540 7100 00 tra ix_rev_chars 448 015612 0a 005247 7100 00 tra verify_rev_chars 449 015613 0a 005251 7100 00 tra search_rev_chars 450 015614 0a 003261 7100 00 tra shorten_stack_protect_ind 451 015615 0a 003270 7100 00 tra save_stack_quick 452 015616 0a 003274 7100 00 tra restore_stack_quick 453 015617 4a 4 00742 7101 20 tra |[hfp_dtanh] 454 fortran only 015620 4a 4 00744 7101 20 tra |[hfp_sinh] 455 fortran only 015621 4a 4 00746 7101 20 tra |[hfp_dsinh] 456 fortran only 015622 4a 4 00750 7101 20 tra |[hfp_cosh] 457 fortran only 015623 4a 4 00752 7101 20 tra |[hfp_dcosh] 458 fortran only 015624 0a 016152 7100 00 tra hfp_nearest_whole_number 459 fortran only 015625 0a 016140 7100 00 tra hfp_nearest_integer 460 fortran only 015626 0a 010714 7100 00 tra ftn_inquire_element 461 fortran only 015627 0a 010037 7100 00 tra mpy_overflow_check 462 fortran only 015630 0a 005557 7100 00 tra fort_return_mac 463 fortran only 015631 0a 010140 7100 00 tra fort_cleanup 464 fortran only 015632 0a 010065 7100 00 tra fort_storage 465 fortran only 015633 0a 011526 7100 00 tra enter_BFP_mode 466 015634 0a 011532 7100 00 tra enter_HFP_mode 467 015635 0a 011623 7100 00 tra unimp 468 future expansion 015636 0a 011623 7100 00 tra unimp 469 future expansion 015637 0a 011623 7100 00 tra unimp 470 future expansion 015640 0a 011623 7100 00 tra unimp 471 future expansion 015641 0a 011623 7100 00 tra unimp 472 future expansion 015642 0a 011623 7100 00 tra unimp 473 future expansion 015643 0a 011623 7100 00 tra unimp 474 future expansion 015644 0a 011623 7100 00 tra unimp 475 future expansion 015645 0a 011623 7100 00 tra unimp 476 future expansion 015646 0a 011623 7100 00 tra unimp 477 future expansion 015647 0a 011623 7100 00 tra unimp 478 future expansion 015650 0a 011623 7100 00 tra unimp 479 future expansion 015651 0a 011623 7100 00 tra unimp 480 future expansion 6965 6966 6967 " 6968 " Function: ceiling of a float hex (71) number 6969 " 6970 " Entry: EAQ = number 6971 " X0 = offset in caller's text section of return point 6972 " 6973 " Exit: EAQ = ceil(number) 6974 " 015652 6975 hfp_ceil_fl: 015652 aa 000006 6040 04 6976 tmi 6,ic if number +ve then: 015653 0a 012440 4770 00 6977 dfad hfp_almost_one EAQ = number + almost_one 015654 aa 002100 4610 03 6978 fmp P2.0H,du EAQ = 2*(number + almost_one) 015655 aa 044000 4750 03 6979 fad =18b25,du EAQ = 2*ceil(number) 015656 aa 000400 4610 03 6980 fmp P0.5H,du EAQ = ceil(number) 015657 aa 6 00046 7101 70 6981 tra sp|tbp,*x0 return 6982 " else: 015660 aa 003700 4610 03 6983 fmp M2.0H,du EAQ = 2*abs(number) 015661 aa 044000 4750 03 6984 fad =18b25,du EAQ = 2*floor(abs(number)) 015662 aa 001400 4610 03 6985 fmp M0.5H,du EAQ = -floor(abs(number)) 015663 aa 6 00046 7101 70 6986 tra sp|tbp,*x0 return 6987 6988 6989 " 6990 " Function: convert a float hex (71) number to fixed bin (71) 6991 " 6992 " Entry: EAQ = number 6993 " X0 = offset in caller's text section of return point 6994 " 6995 " Exit: AQ = fixed (number, 71) 6996 " 015664 6997 hfp_fl2_to_fx1: 015664 6998 hfp_fl2_to_fx2: 015664 aa 400000 4750 03 6999 fad P0.0H,du 015665 aa 000004 6040 04 7000 tmi 4,ic if number +ve then: 015666 aa 002100 4610 03 7001 fmp P2.0H,du EAQ = 2*number 015667 aa 044000 4350 03 7002 ufa =18b25,du AQ = floor(number) 015670 aa 6 00046 7101 70 7003 tra sp|tbp,*x0 return 7004 " else: 015671 aa 003700 4610 03 7005 fmp M2.0H,du EAQ = 2*abs(number) 015672 aa 044000 4350 03 7006 ufa =18b25,du AQ = floor (abs (number)) 015673 aa 000000 5330 00 7007 negl 0 AQ = -floor(abs(number)) 015674 aa 6 00046 7101 70 7008 tra sp|tbp,*x0 return 7009 7010 7011 " 7012 " Function: convert a float hex (71) number to fixed bin 7013 " (71, scale) 7014 " 7015 " Entry: EAQ = number 7016 " X0 = offset in caller's text section of the word 7017 " containing the scale factor in the format 7018 " 8/71-scale,28/0 7019 " 7020 " Exit: to word after scale factor word with: 7021 " AQ = floor(number * 2**scale) 7022 " 7023 " Note: The format of the word containing the scale factor is the 7024 " same as that used when converting float bin (71) to fixed 7025 " bin (71, scale). THIS IS NOT THE BEST FORMAT FOR 7026 " CONVERTING HEX NUMBERS. It is used because that is what 7027 " the current PL/I compiler generates. If float hex is ever 7028 " added as a proper 'pl1' data type, it would be wise to 7029 " change the format of the scale word to contain the float 7030 " hex (27) representation of 2**(scale-1). This would 7031 " shorten the conversion code to: 7032 " 7033 "hfp_fl2_to_fxscaled: 7034 " fad P0.0H,du 7035 " tmi 4,ic if number +ve then: 7036 " fmp sp|tbp,*x0 EAQ = 2*number * 2**scale 7037 " ufa =18b25,du AQ = floor(number * 2**scale) 7038 " tra 5,ic else: 7039 " fneg 0 EAQ = abs(number) 7040 " fmp sp|tbp,*x0 EAQ = 2*abs(number) * 2**scale 7041 " ufa =18b25,du AQ = floor(abs(number) * 2**scale) 7042 " negl 0 AQ = -floor(abs(number) * 2**scale) 7043 " adx0 =1,du skip scale word 7044 " tra sp|tbp,*x0 return 7045 " 015675 7046 hfp_fl2_to_fxscaled: 015675 aa 6 00076 7571 00 7047 staq sp|temp save mantissa of number 015676 aa 6 00046 2351 70 7048 lda sp|tbp,*x0 A = 8/71-scale,28/0 015677 aa 000034 7310 00 7049 ars 28 A = 71-scale 015700 aa 000000 5310 00 7050 neg 0 A = scale-71 015701 aa 000110 0750 07 7051 ada =72,dl A = scale+1 015702 aa 000002 7330 00 7052 lrs 2 A = floor((scale+1)/4) 015703 aa 000042 7720 00 7053 qrl 34 Q = (scale+1) - 4*floor((scale+1)/4) 015704 aa 000000 6210 06 7054 eax1 0,ql X1 = (scale+1) - 4*floor((scale+1)/4) 015705 aa 000001 0750 07 7055 ada =1,dl A = floor((scale+1)/4) + 1 015706 aa 000001 2360 07 7056 ldq =1,dl Q = 2**0 015707 aa 000037 7360 11 7057 qls 31,x1 Q = 2**(X1+31) 015710 aa 000034 7370 00 7058 lls 28 A = HFP representation of 2**(scale+1) 015711 aa 6 00072 7551 00 7059 sta sp|temp2 save scale factor 015712 aa 6 00076 2371 00 7060 ldaq sp|temp restore mantissa of number 015713 aa 000004 6040 04 7061 tmi 4,ic if number +ve then: 015714 aa 6 00072 4611 00 7062 fmp sp|temp2 EAQ = 2*number * 2**scale 015715 aa 044000 4350 03 7063 ufa =18b25,du AQ = floor(number * 2**scale) 015716 aa 000005 7100 04 7064 tra 5,ic else: 015717 aa 000000 5130 00 7065 fneg 0 EAQ = abs(number) 015720 aa 6 00072 4611 00 7066 fmp sp|temp2 EAQ = 2*abs(number) * 2**scale 015721 aa 044000 4350 03 7067 ufa =18b25,du AQ = floor(abs(number) * 2**scale) 015722 aa 000000 5330 00 7068 negl 0 AQ = -floor(abs(number) * 2**scale) 015723 aa 000001 0600 03 7069 adx0 =1,du skip scale word 015724 aa 6 00046 7101 70 7070 tra sp|tbp,*x0 return 7071 7072 7073 7074 " 7075 " Function: floor of a float hex (71) number 7076 " 7077 " Entry: EAQ = number 7078 " X0 = offset in caller's text section of return point 7079 " 7080 " Exit: EAQ = floor(number) 7081 " 015725 7082 hfp_floor_fl: 015725 aa 000005 6040 04 7083 tmi 5,ic if number +ve then: 015726 aa 002100 4610 03 7084 fmp P2.0H,du EAQ = 2*number 015727 aa 044000 4750 03 7085 fad =18b25,du EAQ = 2*floor(number) 015730 aa 000400 4610 03 7086 fmp P0.5H,du EAQ = floor(number) 015731 aa 6 00046 7101 70 7087 tra sp|tbp,*x0 return 7088 " else: 015732 0a 012440 5770 00 7089 dfsb hfp_almost_one EAQ = -(abs(number) + almost_one) 015733 aa 003700 4610 03 7090 fmp M2.0H,du EAQ = 2*(abs(number) + almost_one) 015734 aa 044000 4750 03 7091 fad =18b25,du EAQ = 2*ceil(abs(number)) 015735 aa 001400 4610 03 7092 fmp M0.5H,du EAQ = -ceil(abs(number)) 015736 aa 6 00046 7101 70 7093 tra sp|tbp,*x0 return 7094 7095 7096 " 7097 " Function: FORTRAN float hex (63) modulus: dmod(x, y) 7098 " 7099 " Entry: EAQ = x 7100 " bp|0 -> y 7101 " X0 = offset in caller's text section of return point 7102 7103 " Exit: EAQ = if y=0 then 0 else x - trunc(x/y)*y 7104 " 015737 7105 hfp_fort_dmod: 015737 aa 2 00000 4301 00 7106 fszn bp|0 return 0 if y is 0 015740 aa 6 00046 6001 70 7107 tze sp|tbp,*x0 015741 aa 6 00076 4721 00 7108 dfstr sp|temp save x 015742 aa 2 00000 5671 00 7109 dfdv bp|0 EAQ = x/y 015743 aa 000005 6040 04 7110 tmi 5,ic if EAQ >= 0 then: 015744 aa 002100 4610 03 7111 fmp P2.0H,du EAQ = 2*x/y 015745 aa 044000 4750 03 7112 fad =18b25,du EAQ = 2*floor(x/y) 015746 aa 001400 4610 03 7113 fmp M0.5H,du EAQ = -trunc(x/y) 015747 aa 000004 7100 04 7114 tra 4,ic else: 015750 aa 003700 4610 03 7115 fmp M2.0H,du EAQ = 2*abs(x/y) 015751 aa 044000 4750 03 7116 fad =18b25,du EAQ = 2*floor(abs(x/y)) 015752 aa 000400 4610 03 7117 fmp P0.5H,du EAQ = -trunc(x/y) 015753 aa 2 00000 4631 00 7118 dfmp bp|0 EAQ = -trunc(x/y)*y 015754 aa 6 00076 4771 00 7119 dfad sp|temp EAQ = x - trunc(x/y)*y 015755 aa 6 00046 7101 70 7120 tra sp|tbp,*x0 return 7121 7122 7123 " 7124 " Function: FORTRAN float hex (27) modulus: amod(x, y) 7125 " 7126 " Entry: EAQ = x 7127 " bp|0 -> y 7128 " X0 = offset in caller's text section of return point 7129 " 7130 " Exit: EAQ = if y=0 then 0 else x - trunc(x/y)*y 7131 " 015756 7132 hfp_fort_mdfl1: 015756 aa 2 00000 4301 00 7133 fszn bp|0 return 0 if y is 0 015757 aa 6 00046 6001 70 7134 tze sp|tbp,*x0 015760 aa 6 00076 4701 00 7135 fstr sp|temp save x 015761 aa 2 00000 5651 00 7136 fdv bp|0 EAQ = x/y 015762 aa 000005 6040 04 7137 tmi 5,ic if EAQ >= 0 then: 015763 aa 002100 4610 03 7138 fmp P2.0H,du EAQ = 2*x/y 015764 aa 044000 4750 03 7139 fad =18b25,du EAQ = 2*floor(x/y) 015765 aa 001400 4610 03 7140 fmp M0.5H,du EAQ = -trunc(x/y) 015766 aa 000004 7100 04 7141 tra 4,ic else: 015767 aa 003700 4610 03 7142 fmp M2.0H,du EAQ = 2*abs(x/y) 015770 aa 044000 4750 03 7143 fad =18b25,du EAQ = 2*floor(abs(x/y)) 015771 aa 000400 4610 03 7144 fmp P0.5H,du EAQ = -trunc(x/y) 015772 aa 2 00000 4611 00 7145 fmp bp|0 EAQ = -trunc(x/y)*y 015773 aa 6 00076 4751 00 7146 fad sp|temp EAQ = x - trunc(x/y)*y 015774 aa 6 00046 7101 70 7147 tra sp|tbp,*x0 return 7148 7149 7150 " 7151 " Function: Get address of a specified FORTRAN intrinsic function. 7152 " 7153 " Entry: X0 = offset in caller's text section of return point. 7154 " X2 = index of the intrinsic function. 7155 " 7156 " Exit: PR2 = address of entry point of specified intrinsic. 7157 " 015775 7158 hfp_get_math_entry: 015775 0a 011323 7010 00 7159 tsx1 get_our_lp 015776 0a 015777 7160 12 7160 xec hfp_fort_math_names-1,2 get entry 015777 aa 6 00046 7101 70 7161 tra sp|tbp,*0 return 7162 7163 016000 7164 hfp_fort_math_names: 016000 4a 4 00754 3521 20 7165 epp2 |[exp_] 1 016001 4a 4 00756 3521 20 7166 epp2 |[alog_] 2 016002 4a 4 00760 3521 20 7167 epp2 |[alog10_] 3 016003 4a 4 00762 3521 20 7168 epp2 |[atan_] 4 016004 4a 4 00764 3521 20 7169 epp2 |[atan2_] 5 016005 4a 4 00766 3521 20 7170 epp2 |[sin_] 6 016006 4a 4 00770 3521 20 7171 epp2 |[cos_] 7 016007 4a 4 00772 3521 20 7172 epp2 |[tanh_] 8 016010 4a 4 00774 3521 20 7173 epp2 |[sqrt_] 9 016011 4a 4 00776 3521 20 7174 epp2 |[dmod_] 10 016012 4a 4 01000 3521 20 7175 epp2 |[dexp_] 11 016013 4a 4 01002 3521 20 7176 epp2 |[dlog_] 12 016014 4a 4 01004 3521 20 7177 epp2 |[dlog10_] 13 016015 4a 4 01006 3521 20 7178 epp2 |[datan_] 14 016016 4a 4 01010 3521 20 7179 epp2 |[datan2_] 15 016017 4a 4 01012 3521 20 7180 epp2 |[dsin_] 16 016020 4a 4 01014 3521 20 7181 epp2 |[dcos_] 17 016021 4a 4 01016 3521 20 7182 epp2 |[dsqrt_] 18 016022 4a 4 01020 3521 20 7183 epp2 |[cabs_] 19 016023 4a 4 01022 3521 20 7184 epp2 |[cexp_] 20 016024 4a 4 01024 3521 20 7185 epp2 |[clog_] 21 016025 4a 4 01026 3521 20 7186 epp2 |[csin_] 22 016026 4a 4 01030 3521 20 7187 epp2 |[ccos_] 23 016027 4a 4 01032 3521 20 7188 epp2 |[csqrt_] 24 016030 4a 4 01034 3521 20 7189 epp2 |[cxp2_] 25 016031 4a 4 01036 3521 20 7190 epp2 |[tan_] 26 016032 4a 4 01040 3521 20 7191 epp2 |[dtan_] 27 016033 4a 4 01042 3521 20 7192 epp2 |[asin_] 28 016034 4a 4 01044 3521 20 7193 epp2 |[dasin_] 29 016035 4a 4 01046 3521 20 7194 epp2 |[acos_] 30 016036 4a 4 01050 3521 20 7195 epp2 |[dacos_] 31 016037 4a 4 00456 3521 20 7196 epp2 |[index_] 32 016040 4a 4 01052 3521 20 7197 epp2 |[dtanh_] 33 016041 4a 4 01054 3521 20 7198 epp2 |[sinh_] 34 016042 4a 4 01056 3521 20 7199 epp2 |[dsinh_] 35 016043 4a 4 01060 3521 20 7200 epp2 |[cosh_] 36 016044 4a 4 01062 3521 20 7201 epp2 |[dcosh_] 37 016045 4a 4 01064 3521 20 7202 epp2 |[abs_] 38 016046 4a 4 00474 3521 20 7203 epp2 |[iabs_] 39 016047 4a 4 01066 3521 20 7204 epp2 |[dabs_] 40 016050 4a 4 01070 3521 20 7205 epp2 |[dim_] 41 016051 4a 4 00502 3521 20 7206 epp2 |[idim_] 42 016052 4a 4 01072 3521 20 7207 epp2 |[ddim_] 43 016053 4a 4 01074 3521 20 7208 epp2 |[sign_] 44 016054 4a 4 00510 3521 20 7209 epp2 |[isign_] 45 016055 4a 4 01076 3521 20 7210 epp2 |[dsign_] 46 016056 4a 4 01100 3521 20 7211 epp2 |[aint_] 47 016057 4a 4 01102 3521 20 7212 epp2 |[aimag_] 48 016060 4a 4 01104 3521 20 7213 epp2 |[conjg_] 49 016061 4a 4 00522 3521 20 7214 epp2 |[len_] 50 016062 4a 4 01106 3521 20 7215 epp2 |[dint_] 51 016063 4a 4 01110 3521 20 7216 epp2 |[anint_] 52 016064 4a 4 01112 3521 20 7217 epp2 |[dnint_] 53 016065 4a 4 01114 3521 20 7218 epp2 |[nint_] 54 016066 4a 4 01116 3521 20 7219 epp2 |[idnint_] 55 016067 4a 4 01120 3521 20 7220 epp2 |[dprod_] 56 016070 4a 4 00540 3521 20 7221 epp2 |[mod_] 57 016071 4a 4 01122 3521 20 7222 epp2 |[amod_] 58 016072 4a 4 00544 3521 20 7223 epp2 |[ilr_] 59 016073 4a 4 00546 3521 20 7224 epp2 |[ils_] 60 016074 4a 4 00550 3521 20 7225 epp2 |[irl_] 61 016075 4a 4 00552 3521 20 7226 epp2 |[irs_] 62 7227 7228 " 7229 " Function: PL/I float hex (27) modulus: mod(x, y) 7230 " 7231 " Entry: EAQ = x 7232 " bp|0 -> y 7233 " X0 = offset in caller's text section of return point 7234 " 7235 " Exit: EAQ = if y=0 then x else x - floor(x/y)*y 7236 " 016076 7237 hfp_mdfl1: 016076 aa 2 00000 4301 00 7238 fszn bp|0 return x if y = 0 016077 0a 016116 6000 00 7239 tze hfp_mdfl1a 016100 aa 6 00076 4551 00 7240 fst sp|temp save x 016101 aa 2 00000 5651 00 7241 fdv bp|0 EAQ = x/y 016102 aa 000005 6040 04 7242 tmi 5,ic if EAQ >= 0 then: 016103 aa 002100 4610 03 7243 fmp P2.0H,du EAQ = 2*(x/y) 016104 aa 044000 4750 03 7244 fad =18b25,du EAQ = 2*floor(x/y) 016105 aa 001400 4610 03 7245 fmp M0.5H,du EAQ = -floor(x/y) 016106 aa 000005 7100 04 7246 tra 5,ic else: 016107 0a 012440 5770 00 7247 dfsb hfp_almost_one EAQ = -(abs(x/y) + almost_one) 016110 aa 003700 4610 03 7248 fmp M2.0H,du EAQ = 2*(abs(x/y) + almost_one) 016111 aa 044000 4750 03 7249 fad =18b25,du EAQ = 2*floor(abs(x/y) + almost_one) 016112 aa 000400 4610 03 7250 fmp P0.5H,du EAQ = -floor(x/y) 016113 aa 2 00000 4611 00 7251 fmp bp|0 EAQ = -floor(x/y)*y 016114 aa 6 00076 4751 00 7252 fad sp|temp EAQ = x - floor(x/y)*y 016115 aa 6 00046 7101 70 7253 tra sp|tbp,*x0 return 7254 016116 7255 hfp_mdfl1a: 016116 aa 400000 5150 03 7256 fcmp P0.0H,du set indicators properly 016117 aa 6 00046 7101 70 7257 tra sp|tbp,*x0 return 7258 7259 7260 " 7261 " Function: PL/I float hex (63) modulus: mod(x, y) 7262 " 7263 " Entry: EAQ = x 7264 " bp|0 -> y 7265 " X0 = offset in caller's text section of return point 7266 " 7267 " Exit: EAQ = if y=0 then x else x - floor(x/y) 7268 " 016120 7269 hfp_mdfl2: 016120 aa 6 00076 4571 00 7270 dfst sp|temp save x 016121 aa 2 00000 4331 00 7271 dfld bp|0 load y 016122 0a 016136 6000 00 7272 tze hfp_mdfl2a return x if y = 0 016123 aa 2 00000 5271 00 7273 dfdi bp|0 EAQ = x/y 016124 aa 000005 6040 04 7274 tmi 5,ic if EAQ >= 0 then: 016125 aa 002100 4610 03 7275 fmp P2.0H,du EAQ = 2*(x/y) 016126 aa 044000 4750 03 7276 fad =18b25,du EAQ = 2*floor(x/y) 016127 aa 001400 4610 03 7277 fmp M0.5H,du EAQ = -floor(x/y) 016130 aa 000005 7100 04 7278 tra 5,ic else: 016131 0a 012440 5770 00 7279 dfsb hfp_almost_one EAQ = -(abs(x/y) + almost_one) 016132 aa 003700 4610 03 7280 fmp M2.0H,du EAQ = 2*(abs(x/y) + almost_one) 016133 aa 044000 4750 03 7281 fad =18b25,du EAQ = 2*floor(abs(x/y) + almost_one) 016134 aa 000400 4610 03 7282 fmp P0.5H,du EAQ = -floor(x/y) 016135 aa 2 00000 4631 00 7283 dfmp bp|0 EAQ = -floor(x/y)*y 7284 016136 7285 hfp_mdfl2a: 016136 aa 6 00076 4771 00 7286 dfad sp|temp EAQ = if y=0 then x else x-floor(x/y)*y 016137 aa 6 00046 7101 70 7287 tra sp|tbp,*x0 return 7288 7289 7290 " 7291 " Function: round a float hex (71) number to fixed bin (71) 7292 " 7293 " Entry: EAQ = number 7294 " X0 = offset in caller's text section of return point 7295 " 7296 " Exit: AQ = nearest fixed bin (71) number 7297 " 016140 7298 hfp_nearest_integer: 016140 aa 000005 6040 04 7299 tmi 5,ic if number +ve then: 016141 aa 000400 4750 03 7300 fad P0.5H,du EAQ = number + 0.5 016142 aa 002100 4610 03 7301 fmp P2.0H,du EAQ = 2*(number + 0.5) 016143 aa 044000 4350 03 7302 ufa =18b25,du AQ = floor(number + 0.5) 016144 aa 6 00046 7101 70 7303 tra sp|tbp,*x0 return 7304 " else: 016145 aa 001400 4750 03 7305 fad M0.5H,du EAQ = -(abs(number) + 0.5) 016146 aa 003700 4610 03 7306 fmp M2.0H,du EAQ = 2*(abs(number) + 0.5) 016147 aa 044000 4350 03 7307 ufa =18b25,du AQ = floor(abs(number) + 0.5) 016150 aa 000000 5330 00 7308 negl 0 AQ = -floor(abs(number) + 0.5) 016151 aa 6 00046 7101 70 7309 tra sp|tbp,*x0 return 7310 7311 7312 " 7313 " Function: round off a float hex (71) number 7314 " 7315 " Entry: EAQ = number 7316 " X0 = offset in caller's text section of return point 7317 " 7318 " Exit: EAQ = nearest whole float hex (71) number 7319 " 016152 7320 hfp_nearest_whole_number: 016152 aa 000006 6040 04 7321 tmi 6,ic if number +ve then: 016153 aa 000400 4750 03 7322 fad P0.5H,du EAQ = number + 0.5 016154 aa 002100 4610 03 7323 fmp P2.0H,du EAQ = 2*(number + 0.5) 016155 aa 044000 4750 03 7324 fad =18b25,du EAQ = 2*floor(number + 0.5) 016156 aa 000400 4610 03 7325 fmp P0.5H,du EAQ = floor(number + 0.5) 016157 aa 6 00046 7101 70 7326 tra sp|tbp,*x0 return 7327 " else: 016160 aa 001400 4750 03 7328 fad M0.5H,du EAQ = -(abs(number) + 0.5) 016161 aa 003700 4610 03 7329 fmp M2.0H,du EAQ = 2*(abs(number) + 0.5) 016162 aa 044000 4750 03 7330 fad =18b25,du EAQ = 2*floor(abs(number) + 0.5) 016163 aa 001400 4610 03 7331 fmp M0.5H,du EAQ = -floor(abs(number) + 0.5) 016164 aa 6 00046 7101 70 7332 tra sp|tbp,*x0 return 7333 7334 7335 " 7336 " Function: convert a fixed bin (35) number to complex float hex (27) 7337 " 7338 " Entry: Q = number 7339 " X0 = offset in caller's text section of return point 7340 " 7341 " Exit: EAQ = complex float hex (27) result 7342 " 016165 7343 hfp_rfb1_to_cflb1: 016165 aa 000044 7370 00 7344 lls 36 convert to fixed bin (71) first 016166 aa 000044 7330 00 7345 lrs 36 7346 7347 7348 " 7349 " Function: convert from fixed bin (71) to complex float hex (27) 7350 " 7351 " Entry: AQ = number 7352 " X0 = offset in caller's text section of return point 7353 " 7354 " Exit: EAQ = complex float hex (27) result 7355 " 016167 7356 hfp_rfb2_to_cflb1: 016167 aa 044000 4110 03 7357 lde =18b25,du EAQ = unnormalized 2*float(source) 016170 aa 400000 4750 03 7358 fad P0.0H,du EAQ = 2*float(source) 016171 aa 000400 4610 03 7359 fmp P0.5H,du EAQ = float(source) 016172 aa 6 00076 4551 00 7360 fst sp|temp 016173 aa 6 00076 2351 00 7361 lda sp|temp load real part 016174 aa 400000 2360 03 7362 ldq P0.0H,du load imaginary part 016175 aa 6 00046 7101 70 7363 tra sp|tbp,*x0 return 7364 7365 7366 " 7367 " Function: truncate a float hex (71) number 7368 " 7369 " Entry: EAQ = number 7370 " X0 = offset in caller's text section of return point 7371 " 7372 " Exit: EAQ = trunc (number) 7373 " 016176 7374 hfp_trunc_fl: 016176 aa 000005 6040 04 7375 tmi 5,ic if number +ve then: 016177 aa 002100 4610 03 7376 fmp P2.0H,du EAQ = 2*number 016200 aa 044000 4750 03 7377 fad =18b25,du EAQ = 2*trunc(number) 016201 aa 000400 4610 03 7378 fmp P0.5H,du EAQ = trunc(number) 016202 aa 6 00046 7101 70 7379 tra sp|tbp,*x0 return 7380 " else: 016203 aa 003700 4610 03 7381 fmp M2.0H,du EAQ = 2*abs(number) 016204 aa 044000 4750 03 7382 fad =18b25,du EAQ = 2*trunc(abs(number)) 016205 aa 001400 4610 03 7383 fmp M0.5H,du EAQ = trunc(number) 016206 aa 6 00046 7101 70 7384 tra sp|tbp,*x0 return 7385 7386 " 7387 " The following code is used by trace to gain control of PL/I and FORTRAN programs. 7388 " 7389 transfer_vector trace_ " " Due to the presence of double-word constants (at bit_mask and mask_bit) " these instructions must presently begin on an even-word boundary. " Note that if an odd number of words is added to the front of the " operator_table region, then the following even pseudo-op must be " changed to an odd pseudo-op. If you forget, an assembly error will " result (due to clever divide-by-zero, below). " 016207 aa 000000 0110 03 even " " The following section, from location 0 to label operator_table, is referenced " directly from PL/1 programs by means of offsets of the form ap|-n (ap pointing " at pl1_operators_$operator_table). For this reason, the order of the " following instructions must not be changed. Any new coding must be placed at " the FRONT of the segment. " " This table translates a bit number between 0 and 35 to a char number " between 0 and 3. " even 016210 trace_bitno_to_charno_table: 000011 dup 9 016210 aa 000000 000000 dec 0 dupend 016211 aa 000000 000000 dec 0 016212 aa 000000 000000 dec 0 016213 aa 000000 000000 dec 0 016214 aa 000000 000000 dec 0 016215 aa 000000 000000 dec 0 016216 aa 000000 000000 dec 0 016217 aa 000000 000000 dec 0 016220 aa 000000 000000 dec 0 000011 dup 9 016221 aa 000000 000001 dec 1 dupend 016222 aa 000000 000001 dec 1 016223 aa 000000 000001 dec 1 016224 aa 000000 000001 dec 1 016225 aa 000000 000001 dec 1 016226 aa 000000 000001 dec 1 016227 aa 000000 000001 dec 1 016230 aa 000000 000001 dec 1 016231 aa 000000 000001 dec 1 000011 dup 9 016232 aa 000000 000002 dec 2 dupend 016233 aa 000000 000002 dec 2 016234 aa 000000 000002 dec 2 016235 aa 000000 000002 dec 2 016236 aa 000000 000002 dec 2 016237 aa 000000 000002 dec 2 016240 aa 000000 000002 dec 2 016241 aa 000000 000002 dec 2 016242 aa 000000 000002 dec 2 000011 dup 9 016243 aa 000000 000003 dec 3 dupend 016244 aa 000000 000003 dec 3 016245 aa 000000 000003 dec 3 016246 aa 000000 000003 dec 3 016247 aa 000000 000003 dec 3 016250 aa 000000 000003 dec 3 016251 aa 000000 000003 dec 3 016252 aa 000000 000003 dec 3 016253 aa 000000 000003 dec 3 " " The following tables are for use with the TCT instruction. " Any single, given, character can be searched for using these " tables. " 000163 dup 115 016254 aa 777777 777777 dec -1 dupend 016255 aa 777777 777777 dec -1 016256 aa 777777 777777 dec -1 016257 aa 777777 777777 dec -1 016260 aa 777777 777777 dec -1 016261 aa 777777 777777 dec -1 016262 aa 777777 777777 dec -1 016263 aa 777777 777777 dec -1 016264 aa 777777 777777 dec -1 016265 aa 777777 777777 dec -1 016266 aa 777777 777777 dec -1 016267 aa 777777 777777 dec -1 016270 aa 777777 777777 dec -1 016271 aa 777777 777777 dec -1 016272 aa 777777 777777 dec -1 016273 aa 777777 777777 dec -1 016274 aa 777777 777777 dec -1 016275 aa 777777 777777 dec -1 016276 aa 777777 777777 dec -1 016277 aa 777777 777777 dec -1 016300 aa 777777 777777 dec -1 016301 aa 777777 777777 dec -1 016302 aa 777777 777777 dec -1 016303 aa 777777 777777 dec -1 016304 aa 777777 777777 dec -1 016305 aa 777777 777777 dec -1 016306 aa 777777 777777 dec -1 016307 aa 777777 777777 dec -1 016310 aa 777777 777777 dec -1 016311 aa 777777 777777 dec -1 016312 aa 777777 777777 dec -1 016313 aa 777777 777777 dec -1 016314 aa 777777 777777 dec -1 016315 aa 777777 777777 dec -1 016316 aa 777777 777777 dec -1 016317 aa 777777 777777 dec -1 016320 aa 777777 777777 dec -1 016321 aa 777777 777777 dec -1 016322 aa 777777 777777 dec -1 016323 aa 777777 777777 dec -1 016324 aa 777777 777777 dec -1 016325 aa 777777 777777 dec -1 016326 aa 777777 777777 dec -1 016327 aa 777777 777777 dec -1 016330 aa 777777 777777 dec -1 016331 aa 777777 777777 dec -1 016332 aa 777777 777777 dec -1 016333 aa 777777 777777 dec -1 016334 aa 777777 777777 dec -1 016335 aa 777777 777777 dec -1 016336 aa 777777 777777 dec -1 016337 aa 777777 777777 dec -1 016340 aa 777777 777777 dec -1 016341 aa 777777 777777 dec -1 016342 aa 777777 777777 dec -1 016343 aa 777777 777777 dec -1 016344 aa 777777 777777 dec -1 016345 aa 777777 777777 dec -1 016346 aa 777777 777777 dec -1 016347 aa 777777 777777 dec -1 016350 aa 777777 777777 dec -1 016351 aa 777777 777777 dec -1 016352 aa 777777 777777 dec -1 016353 aa 777777 777777 dec -1 016354 aa 777777 777777 dec -1 016355 aa 777777 777777 dec -1 016356 aa 777777 777777 dec -1 016357 aa 777777 777777 dec -1 016360 aa 777777 777777 dec -1 016361 aa 777777 777777 dec -1 016362 aa 777777 777777 dec -1 016363 aa 777777 777777 dec -1 016364 aa 777777 777777 dec -1 016365 aa 777777 777777 dec -1 016366 aa 777777 777777 dec -1 016367 aa 777777 777777 dec -1 016370 aa 777777 777777 dec -1 016371 aa 777777 777777 dec -1 016372 aa 777777 777777 dec -1 016373 aa 777777 777777 dec -1 016374 aa 777777 777777 dec -1 016375 aa 777777 777777 dec -1 016376 aa 777777 777777 dec -1 016377 aa 777777 777777 dec -1 016400 aa 777777 777777 dec -1 016401 aa 777777 777777 dec -1 016402 aa 777777 777777 dec -1 016403 aa 777777 777777 dec -1 016404 aa 777777 777777 dec -1 016405 aa 777777 777777 dec -1 016406 aa 777777 777777 dec -1 016407 aa 777777 777777 dec -1 016410 aa 777777 777777 dec -1 016411 aa 777777 777777 dec -1 016412 aa 777777 777777 dec -1 016413 aa 777777 777777 dec -1 016414 aa 777777 777777 dec -1 016415 aa 777777 777777 dec -1 016416 aa 777777 777777 dec -1 016417 aa 777777 777777 dec -1 016420 aa 777777 777777 dec -1 016421 aa 777777 777777 dec -1 016422 aa 777777 777777 dec -1 016423 aa 777777 777777 dec -1 016424 aa 777777 777777 dec -1 016425 aa 777777 777777 dec -1 016426 aa 777777 777777 dec -1 016427 aa 777777 777777 dec -1 016430 aa 777777 777777 dec -1 016431 aa 777777 777777 dec -1 016432 aa 777777 777777 dec -1 016433 aa 777777 777777 dec -1 016434 aa 777777 777777 dec -1 016435 aa 777777 777777 dec -1 016436 aa 777777 777777 dec -1 " 016437 trace_tct_octal_060: 000004 dup 4 016437 aa 777777 777777 dec -1 dupend 016440 aa 777777 777777 dec -1 016441 aa 777777 777777 dec -1 016442 aa 777777 777777 dec -1 " 016443 trace_tct_octal_040: 000010 dup 8 016443 aa 777777 777777 dec -1 dupend 016444 aa 777777 777777 dec -1 016445 aa 777777 777777 dec -1 016446 aa 777777 777777 dec -1 016447 aa 777777 777777 dec -1 016450 aa 777777 777777 dec -1 016451 aa 777777 777777 dec -1 016452 aa 777777 777777 dec -1 016453 trace_tct_byte_0: 016453 aa 000777 777777 vfd 9/0,9/-1,9/-1,9/-1 000177 dup 127 016454 aa 777777 777777 dec -1 dupend 016455 aa 777777 777777 dec -1 016456 aa 777777 777777 dec -1 016457 aa 777777 777777 dec -1 016460 aa 777777 777777 dec -1 016461 aa 777777 777777 dec -1 016462 aa 777777 777777 dec -1 016463 aa 777777 777777 dec -1 016464 aa 777777 777777 dec -1 016465 aa 777777 777777 dec -1 016466 aa 777777 777777 dec -1 016467 aa 777777 777777 dec -1 016470 aa 777777 777777 dec -1 016471 aa 777777 777777 dec -1 016472 aa 777777 777777 dec -1 016473 aa 777777 777777 dec -1 016474 aa 777777 777777 dec -1 016475 aa 777777 777777 dec -1 016476 aa 777777 777777 dec -1 016477 aa 777777 777777 dec -1 016500 aa 777777 777777 dec -1 016501 aa 777777 777777 dec -1 016502 aa 777777 777777 dec -1 016503 aa 777777 777777 dec -1 016504 aa 777777 777777 dec -1 016505 aa 777777 777777 dec -1 016506 aa 777777 777777 dec -1 016507 aa 777777 777777 dec -1 016510 aa 777777 777777 dec -1 016511 aa 777777 777777 dec -1 016512 aa 777777 777777 dec -1 016513 aa 777777 777777 dec -1 016514 aa 777777 777777 dec -1 016515 aa 777777 777777 dec -1 016516 aa 777777 777777 dec -1 016517 aa 777777 777777 dec -1 016520 aa 777777 777777 dec -1 016521 aa 777777 777777 dec -1 016522 aa 777777 777777 dec -1 016523 aa 777777 777777 dec -1 016524 aa 777777 777777 dec -1 016525 aa 777777 777777 dec -1 016526 aa 777777 777777 dec -1 016527 aa 777777 777777 dec -1 016530 aa 777777 777777 dec -1 016531 aa 777777 777777 dec -1 016532 aa 777777 777777 dec -1 016533 aa 777777 777777 dec -1 016534 aa 777777 777777 dec -1 016535 aa 777777 777777 dec -1 016536 aa 777777 777777 dec -1 016537 aa 777777 777777 dec -1 016540 aa 777777 777777 dec -1 016541 aa 777777 777777 dec -1 016542 aa 777777 777777 dec -1 016543 aa 777777 777777 dec -1 016544 aa 777777 777777 dec -1 016545 aa 777777 777777 dec -1 016546 aa 777777 777777 dec -1 016547 aa 777777 777777 dec -1 016550 aa 777777 777777 dec -1 016551 aa 777777 777777 dec -1 016552 aa 777777 777777 dec -1 016553 aa 777777 777777 dec -1 016554 aa 777777 777777 dec -1 016555 aa 777777 777777 dec -1 016556 aa 777777 777777 dec -1 016557 aa 777777 777777 dec -1 016560 aa 777777 777777 dec -1 016561 aa 777777 777777 dec -1 016562 aa 777777 777777 dec -1 016563 aa 777777 777777 dec -1 016564 aa 777777 777777 dec -1 016565 aa 777777 777777 dec -1 016566 aa 777777 777777 dec -1 016567 aa 777777 777777 dec -1 016570 aa 777777 777777 dec -1 016571 aa 777777 777777 dec -1 016572 aa 777777 777777 dec -1 016573 aa 777777 777777 dec -1 016574 aa 777777 777777 dec -1 016575 aa 777777 777777 dec -1 016576 aa 777777 777777 dec -1 016577 aa 777777 777777 dec -1 016600 aa 777777 777777 dec -1 016601 aa 777777 777777 dec -1 016602 aa 777777 777777 dec -1 016603 aa 777777 777777 dec -1 016604 aa 777777 777777 dec -1 016605 aa 777777 777777 dec -1 016606 aa 777777 777777 dec -1 016607 aa 777777 777777 dec -1 016610 aa 777777 777777 dec -1 016611 aa 777777 777777 dec -1 016612 aa 777777 777777 dec -1 016613 aa 777777 777777 dec -1 016614 aa 777777 777777 dec -1 016615 aa 777777 777777 dec -1 016616 aa 777777 777777 dec -1 016617 aa 777777 777777 dec -1 016620 aa 777777 777777 dec -1 016621 aa 777777 777777 dec -1 016622 aa 777777 777777 dec -1 016623 aa 777777 777777 dec -1 016624 aa 777777 777777 dec -1 016625 aa 777777 777777 dec -1 016626 aa 777777 777777 dec -1 016627 aa 777777 777777 dec -1 016630 aa 777777 777777 dec -1 016631 aa 777777 777777 dec -1 016632 aa 777777 777777 dec -1 016633 aa 777777 777777 dec -1 016634 aa 777777 777777 dec -1 016635 aa 777777 777777 dec -1 016636 aa 777777 777777 dec -1 016637 aa 777777 777777 dec -1 016640 aa 777777 777777 dec -1 016641 aa 777777 777777 dec -1 016642 aa 777777 777777 dec -1 016643 aa 777777 777777 dec -1 016644 aa 777777 777777 dec -1 016645 aa 777777 777777 dec -1 016646 aa 777777 777777 dec -1 016647 aa 777777 777777 dec -1 016650 aa 777777 777777 dec -1 016651 aa 777777 777777 dec -1 016652 aa 777777 777777 dec -1 " 016653 trace_tct_byte_1: 016653 aa 777000 777777 vfd 9/-1,9/0,9/-1,9/-1 000177 dup 127 016654 aa 777777 777777 dec -1 dupend 016655 aa 777777 777777 dec -1 016656 aa 777777 777777 dec -1 016657 aa 777777 777777 dec -1 016660 aa 777777 777777 dec -1 016661 aa 777777 777777 dec -1 016662 aa 777777 777777 dec -1 016663 aa 777777 777777 dec -1 016664 aa 777777 777777 dec -1 016665 aa 777777 777777 dec -1 016666 aa 777777 777777 dec -1 016667 aa 777777 777777 dec -1 016670 aa 777777 777777 dec -1 016671 aa 777777 777777 dec -1 016672 aa 777777 777777 dec -1 016673 aa 777777 777777 dec -1 016674 aa 777777 777777 dec -1 016675 aa 777777 777777 dec -1 016676 aa 777777 777777 dec -1 016677 aa 777777 777777 dec -1 016700 aa 777777 777777 dec -1 016701 aa 777777 777777 dec -1 016702 aa 777777 777777 dec -1 016703 aa 777777 777777 dec -1 016704 aa 777777 777777 dec -1 016705 aa 777777 777777 dec -1 016706 aa 777777 777777 dec -1 016707 aa 777777 777777 dec -1 016710 aa 777777 777777 dec -1 016711 aa 777777 777777 dec -1 016712 aa 777777 777777 dec -1 016713 aa 777777 777777 dec -1 016714 aa 777777 777777 dec -1 016715 aa 777777 777777 dec -1 016716 aa 777777 777777 dec -1 016717 aa 777777 777777 dec -1 016720 aa 777777 777777 dec -1 016721 aa 777777 777777 dec -1 016722 aa 777777 777777 dec -1 016723 aa 777777 777777 dec -1 016724 aa 777777 777777 dec -1 016725 aa 777777 777777 dec -1 016726 aa 777777 777777 dec -1 016727 aa 777777 777777 dec -1 016730 aa 777777 777777 dec -1 016731 aa 777777 777777 dec -1 016732 aa 777777 777777 dec -1 016733 aa 777777 777777 dec -1 016734 aa 777777 777777 dec -1 016735 aa 777777 777777 dec -1 016736 aa 777777 777777 dec -1 016737 aa 777777 777777 dec -1 016740 aa 777777 777777 dec -1 016741 aa 777777 777777 dec -1 016742 aa 777777 777777 dec -1 016743 aa 777777 777777 dec -1 016744 aa 777777 777777 dec -1 016745 aa 777777 777777 dec -1 016746 aa 777777 777777 dec -1 016747 aa 777777 777777 dec -1 016750 aa 777777 777777 dec -1 016751 aa 777777 777777 dec -1 016752 aa 777777 777777 dec -1 016753 aa 777777 777777 dec -1 016754 aa 777777 777777 dec -1 016755 aa 777777 777777 dec -1 016756 aa 777777 777777 dec -1 016757 aa 777777 777777 dec -1 016760 aa 777777 777777 dec -1 016761 aa 777777 777777 dec -1 016762 aa 777777 777777 dec -1 016763 aa 777777 777777 dec -1 016764 aa 777777 777777 dec -1 016765 aa 777777 777777 dec -1 016766 aa 777777 777777 dec -1 016767 aa 777777 777777 dec -1 016770 aa 777777 777777 dec -1 016771 aa 777777 777777 dec -1 016772 aa 777777 777777 dec -1 016773 aa 777777 777777 dec -1 016774 aa 777777 777777 dec -1 016775 aa 777777 777777 dec -1 016776 aa 777777 777777 dec -1 016777 aa 777777 777777 dec -1 017000 aa 777777 777777 dec -1 017001 aa 777777 777777 dec -1 017002 aa 777777 777777 dec -1 017003 aa 777777 777777 dec -1 017004 aa 777777 777777 dec -1 017005 aa 777777 777777 dec -1 017006 aa 777777 777777 dec -1 017007 aa 777777 777777 dec -1 017010 aa 777777 777777 dec -1 017011 aa 777777 777777 dec -1 017012 aa 777777 777777 dec -1 017013 aa 777777 777777 dec -1 017014 aa 777777 777777 dec -1 017015 aa 777777 777777 dec -1 017016 aa 777777 777777 dec -1 017017 aa 777777 777777 dec -1 017020 aa 777777 777777 dec -1 017021 aa 777777 777777 dec -1 017022 aa 777777 777777 dec -1 017023 aa 777777 777777 dec -1 017024 aa 777777 777777 dec -1 017025 aa 777777 777777 dec -1 017026 aa 777777 777777 dec -1 017027 aa 777777 777777 dec -1 017030 aa 777777 777777 dec -1 017031 aa 777777 777777 dec -1 017032 aa 777777 777777 dec -1 017033 aa 777777 777777 dec -1 017034 aa 777777 777777 dec -1 017035 aa 777777 777777 dec -1 017036 aa 777777 777777 dec -1 017037 aa 777777 777777 dec -1 017040 aa 777777 777777 dec -1 017041 aa 777777 777777 dec -1 017042 aa 777777 777777 dec -1 017043 aa 777777 777777 dec -1 017044 aa 777777 777777 dec -1 017045 aa 777777 777777 dec -1 017046 aa 777777 777777 dec -1 017047 aa 777777 777777 dec -1 017050 aa 777777 777777 dec -1 017051 aa 777777 777777 dec -1 017052 aa 777777 777777 dec -1 " 017053 trace_tct_byte_2: 017053 aa 777777 000777 vfd 9/-1,9/-1,9/0,9/-1 000177 dup 127 017054 aa 777777 777777 dec -1 dupend 017055 aa 777777 777777 dec -1 017056 aa 777777 777777 dec -1 017057 aa 777777 777777 dec -1 017060 aa 777777 777777 dec -1 017061 aa 777777 777777 dec -1 017062 aa 777777 777777 dec -1 017063 aa 777777 777777 dec -1 017064 aa 777777 777777 dec -1 017065 aa 777777 777777 dec -1 017066 aa 777777 777777 dec -1 017067 aa 777777 777777 dec -1 017070 aa 777777 777777 dec -1 017071 aa 777777 777777 dec -1 017072 aa 777777 777777 dec -1 017073 aa 777777 777777 dec -1 017074 aa 777777 777777 dec -1 017075 aa 777777 777777 dec -1 017076 aa 777777 777777 dec -1 017077 aa 777777 777777 dec -1 017100 aa 777777 777777 dec -1 017101 aa 777777 777777 dec -1 017102 aa 777777 777777 dec -1 017103 aa 777777 777777 dec -1 017104 aa 777777 777777 dec -1 017105 aa 777777 777777 dec -1 017106 aa 777777 777777 dec -1 017107 aa 777777 777777 dec -1 017110 aa 777777 777777 dec -1 017111 aa 777777 777777 dec -1 017112 aa 777777 777777 dec -1 017113 aa 777777 777777 dec -1 017114 aa 777777 777777 dec -1 017115 aa 777777 777777 dec -1 017116 aa 777777 777777 dec -1 017117 aa 777777 777777 dec -1 017120 aa 777777 777777 dec -1 017121 aa 777777 777777 dec -1 017122 aa 777777 777777 dec -1 017123 aa 777777 777777 dec -1 017124 aa 777777 777777 dec -1 017125 aa 777777 777777 dec -1 017126 aa 777777 777777 dec -1 017127 aa 777777 777777 dec -1 017130 aa 777777 777777 dec -1 017131 aa 777777 777777 dec -1 017132 aa 777777 777777 dec -1 017133 aa 777777 777777 dec -1 017134 aa 777777 777777 dec -1 017135 aa 777777 777777 dec -1 017136 aa 777777 777777 dec -1 017137 aa 777777 777777 dec -1 017140 aa 777777 777777 dec -1 017141 aa 777777 777777 dec -1 017142 aa 777777 777777 dec -1 017143 aa 777777 777777 dec -1 017144 aa 777777 777777 dec -1 017145 aa 777777 777777 dec -1 017146 aa 777777 777777 dec -1 017147 aa 777777 777777 dec -1 017150 aa 777777 777777 dec -1 017151 aa 777777 777777 dec -1 017152 aa 777777 777777 dec -1 017153 aa 777777 777777 dec -1 017154 aa 777777 777777 dec -1 017155 aa 777777 777777 dec -1 017156 aa 777777 777777 dec -1 017157 aa 777777 777777 dec -1 017160 aa 777777 777777 dec -1 017161 aa 777777 777777 dec -1 017162 aa 777777 777777 dec -1 017163 aa 777777 777777 dec -1 017164 aa 777777 777777 dec -1 017165 aa 777777 777777 dec -1 017166 aa 777777 777777 dec -1 017167 aa 777777 777777 dec -1 017170 aa 777777 777777 dec -1 017171 aa 777777 777777 dec -1 017172 aa 777777 777777 dec -1 017173 aa 777777 777777 dec -1 017174 aa 777777 777777 dec -1 017175 aa 777777 777777 dec -1 017176 aa 777777 777777 dec -1 017177 aa 777777 777777 dec -1 017200 aa 777777 777777 dec -1 017201 aa 777777 777777 dec -1 017202 aa 777777 777777 dec -1 017203 aa 777777 777777 dec -1 017204 aa 777777 777777 dec -1 017205 aa 777777 777777 dec -1 017206 aa 777777 777777 dec -1 017207 aa 777777 777777 dec -1 017210 aa 777777 777777 dec -1 017211 aa 777777 777777 dec -1 017212 aa 777777 777777 dec -1 017213 aa 777777 777777 dec -1 017214 aa 777777 777777 dec -1 017215 aa 777777 777777 dec -1 017216 aa 777777 777777 dec -1 017217 aa 777777 777777 dec -1 017220 aa 777777 777777 dec -1 017221 aa 777777 777777 dec -1 017222 aa 777777 777777 dec -1 017223 aa 777777 777777 dec -1 017224 aa 777777 777777 dec -1 017225 aa 777777 777777 dec -1 017226 aa 777777 777777 dec -1 017227 aa 777777 777777 dec -1 017230 aa 777777 777777 dec -1 017231 aa 777777 777777 dec -1 017232 aa 777777 777777 dec -1 017233 aa 777777 777777 dec -1 017234 aa 777777 777777 dec -1 017235 aa 777777 777777 dec -1 017236 aa 777777 777777 dec -1 017237 aa 777777 777777 dec -1 017240 aa 777777 777777 dec -1 017241 aa 777777 777777 dec -1 017242 aa 777777 777777 dec -1 017243 aa 777777 777777 dec -1 017244 aa 777777 777777 dec -1 017245 aa 777777 777777 dec -1 017246 aa 777777 777777 dec -1 017247 aa 777777 777777 dec -1 017250 aa 777777 777777 dec -1 017251 aa 777777 777777 dec -1 017252 aa 777777 777777 dec -1 " 017253 trace_tct_byte_3: 017253 aa 777777 777000 vfd 9/-1,9/-1,9/-1,9/0 000177 dup 127 017254 aa 777777 777777 dec -1 dupend 017255 aa 777777 777777 dec -1 017256 aa 777777 777777 dec -1 017257 aa 777777 777777 dec -1 017260 aa 777777 777777 dec -1 017261 aa 777777 777777 dec -1 017262 aa 777777 777777 dec -1 017263 aa 777777 777777 dec -1 017264 aa 777777 777777 dec -1 017265 aa 777777 777777 dec -1 017266 aa 777777 777777 dec -1 017267 aa 777777 777777 dec -1 017270 aa 777777 777777 dec -1 017271 aa 777777 777777 dec -1 017272 aa 777777 777777 dec -1 017273 aa 777777 777777 dec -1 017274 aa 777777 777777 dec -1 017275 aa 777777 777777 dec -1 017276 aa 777777 777777 dec -1 017277 aa 777777 777777 dec -1 017300 aa 777777 777777 dec -1 017301 aa 777777 777777 dec -1 017302 aa 777777 777777 dec -1 017303 aa 777777 777777 dec -1 017304 aa 777777 777777 dec -1 017305 aa 777777 777777 dec -1 017306 aa 777777 777777 dec -1 017307 aa 777777 777777 dec -1 017310 aa 777777 777777 dec -1 017311 aa 777777 777777 dec -1 017312 aa 777777 777777 dec -1 017313 aa 777777 777777 dec -1 017314 aa 777777 777777 dec -1 017315 aa 777777 777777 dec -1 017316 aa 777777 777777 dec -1 017317 aa 777777 777777 dec -1 017320 aa 777777 777777 dec -1 017321 aa 777777 777777 dec -1 017322 aa 777777 777777 dec -1 017323 aa 777777 777777 dec -1 017324 aa 777777 777777 dec -1 017325 aa 777777 777777 dec -1 017326 aa 777777 777777 dec -1 017327 aa 777777 777777 dec -1 017330 aa 777777 777777 dec -1 017331 aa 777777 777777 dec -1 017332 aa 777777 777777 dec -1 017333 aa 777777 777777 dec -1 017334 aa 777777 777777 dec -1 017335 aa 777777 777777 dec -1 017336 aa 777777 777777 dec -1 017337 aa 777777 777777 dec -1 017340 aa 777777 777777 dec -1 017341 aa 777777 777777 dec -1 017342 aa 777777 777777 dec -1 017343 aa 777777 777777 dec -1 017344 aa 777777 777777 dec -1 017345 aa 777777 777777 dec -1 017346 aa 777777 777777 dec -1 017347 aa 777777 777777 dec -1 017350 aa 777777 777777 dec -1 017351 aa 777777 777777 dec -1 017352 aa 777777 777777 dec -1 017353 aa 777777 777777 dec -1 017354 aa 777777 777777 dec -1 017355 aa 777777 777777 dec -1 017356 aa 777777 777777 dec -1 017357 aa 777777 777777 dec -1 017360 aa 777777 777777 dec -1 017361 aa 777777 777777 dec -1 017362 aa 777777 777777 dec -1 017363 aa 777777 777777 dec -1 017364 aa 777777 777777 dec -1 017365 aa 777777 777777 dec -1 017366 aa 777777 777777 dec -1 017367 aa 777777 777777 dec -1 017370 aa 777777 777777 dec -1 017371 aa 777777 777777 dec -1 017372 aa 777777 777777 dec -1 017373 aa 777777 777777 dec -1 017374 aa 777777 777777 dec -1 017375 aa 777777 777777 dec -1 017376 aa 777777 777777 dec -1 017377 aa 777777 777777 dec -1 017400 aa 777777 777777 dec -1 017401 aa 777777 777777 dec -1 017402 aa 777777 777777 dec -1 017403 aa 777777 777777 dec -1 017404 aa 777777 777777 dec -1 017405 aa 777777 777777 dec -1 017406 aa 777777 777777 dec -1 017407 aa 777777 777777 dec -1 017410 aa 777777 777777 dec -1 017411 aa 777777 777777 dec -1 017412 aa 777777 777777 dec -1 017413 aa 777777 777777 dec -1 017414 aa 777777 777777 dec -1 017415 aa 777777 777777 dec -1 017416 aa 777777 777777 dec -1 017417 aa 777777 777777 dec -1 017420 aa 777777 777777 dec -1 017421 aa 777777 777777 dec -1 017422 aa 777777 777777 dec -1 017423 aa 777777 777777 dec -1 017424 aa 777777 777777 dec -1 017425 aa 777777 777777 dec -1 017426 aa 777777 777777 dec -1 017427 aa 777777 777777 dec -1 017430 aa 777777 777777 dec -1 017431 aa 777777 777777 dec -1 017432 aa 777777 777777 dec -1 017433 aa 777777 777777 dec -1 017434 aa 777777 777777 dec -1 017435 aa 777777 777777 dec -1 017436 aa 777777 777777 dec -1 017437 aa 777777 777777 dec -1 017440 aa 777777 777777 dec -1 017441 aa 777777 777777 dec -1 017442 aa 777777 777777 dec -1 017443 aa 777777 777777 dec -1 017444 aa 777777 777777 dec -1 017445 aa 777777 777777 dec -1 017446 aa 777777 777777 dec -1 017447 aa 777777 777777 dec -1 017450 aa 777777 777777 dec -1 017451 aa 777777 777777 dec -1 017452 aa 777777 777777 dec -1 " " The number of words per segment of a FORTRAN Very Large Array. " 017453 trace_VLA_words_per_seg_: 017453 aa 000001 000000 vfd 36/256*1024 " " table of csl's for use by bool builtin function " 017454 trace_csl_vector: 017454 aa 0 00140 0605 40 csl (pr,rl),(pr,rl),bool(0) 017455 aa 0 01140 0605 40 csl (pr,rl),(pr,rl),bool(1) 017456 aa 0 02140 0605 40 csl (pr,rl),(pr,rl),bool(2) 017457 aa 0 03140 0605 40 csl (pr,rl),(pr,rl),bool(3) 017460 aa 0 04140 0605 40 csl (pr,rl),(pr,rl),bool(4) 017461 aa 0 05140 0605 40 csl (pr,rl),(pr,rl),bool(5) 017462 aa 0 06140 0605 40 csl (pr,rl),(pr,rl),bool(6) 017463 aa 0 07140 0605 40 csl (pr,rl),(pr,rl),bool(7) 017464 aa 0 10140 0605 40 csl (pr,rl),(pr,rl),bool(10) 017465 aa 0 11140 0605 40 csl (pr,rl),(pr,rl),bool(11) 017466 aa 0 12140 0605 40 csl (pr,rl),(pr,rl),bool(12) 017467 aa 0 13140 0605 40 csl (pr,rl),(pr,rl),bool(13) 017470 aa 0 14140 0605 40 csl (pr,rl),(pr,rl),bool(14) 017471 aa 0 15140 0605 40 csl (pr,rl),(pr,rl),bool(15) 017472 aa 0 16140 0605 40 csl (pr,rl),(pr,rl),bool(16) 017473 aa 0 17140 0605 40 csl (pr,rl),(pr,rl),bool(17) " " shift table for character offset " 017474 aa 000000 000000 trace_co_to_bo: dec 0,9b17,18b17,27b17 017475 aa 000011 000000 017476 aa 000022 000000 017477 aa 000033 000000 " " shift table for half word offset " 017500 aa 000000 000000 trace_ho_to_bo: dec 0,18b17 017501 aa 000022 000000 " " store table from a, 9 bit bytes, character offset " OFFSET SIZE " 017502 trace_store_a9_co: 017502 aa 2 00000 5511 40 stba bp|0,40 0 1 017503 aa 2 00000 5511 20 stba bp|0,20 1 017504 aa 2 00000 5511 10 stba bp|0,10 2 017505 aa 2 00000 5511 04 stba bp|0,04 3 017506 aa 2 00000 5511 60 stba bp|0,60 0 2 017507 aa 2 00000 5511 30 stba bp|0,30 1 017510 aa 2 00000 5511 14 stba bp|0,14 2 017511 aa 2 00000 5511 04 stba bp|0,04 3 017512 aa 2 00000 5511 70 stba bp|0,70 0 3 017513 aa 2 00000 5511 34 stba bp|0,34 1 017514 aa 2 00000 5511 14 stba bp|0,14 2 017515 aa 2 00000 5511 04 stba bp|0,04 3 017516 aa 2 00000 7551 00 sta bp|0 0 4 017517 aa 2 00000 5511 34 stba bp|0,34 1 017520 aa 2 00000 5511 14 stba bp|0,14 2 017521 aa 2 00000 5511 04 stba bp|0,04 3 017522 aa 2 00000 7551 00 sta bp|0 0 5 017523 aa 2 00000 5511 34 stba bp|0,34 1 017524 aa 2 00000 5511 14 stba bp|0,14 2 017525 aa 2 00000 5511 04 stba bp|0,04 3 " " store table from q, 9 bit bytes, character offset " OFFSET SIZE " 017526 trace_store_q9_co: 017526 aa 000000 0110 07 nop 0,dl 0 2 017527 aa 000000 0110 07 nop 0,dl 1 017530 aa 000000 0110 07 nop 0,dl 2 017531 aa 2 00001 5521 40 stbq bp|1,40 3 017532 aa 000000 0110 07 nop 0,dl 0 3 017533 aa 000000 0110 07 nop 0,dl 1 017534 aa 2 00001 5521 40 stbq bp|1,40 2 017535 aa 2 00001 5521 60 stbq bp|1,60 3 017536 aa 000000 0110 07 nop 0,dl 0 4 017537 aa 2 00001 5521 40 stbq bp|1,40 1 017540 aa 2 00001 5521 60 stbq bp|1,60 2 017541 aa 2 00001 5521 70 stbq bp|1,70 3 017542 aa 2 00001 5521 40 stbq bp|1,40 0 5 017543 aa 2 00001 5521 60 stbq bp|1,60 1 017544 aa 2 00001 5521 70 stbq bp|1,70 2 017545 aa 2 00001 7561 00 stq bp|1 3 " " store table from a, 9 bit bytes, half word offset " OFFSET SIZE " 017546 trace_store_a9_ho: 017546 aa 2 00000 5511 40 stba bp|0,40 0 1 017547 aa 2 00000 5511 10 stba bp|0,10 1 017550 aa 2 00000 5511 60 stba bp|0,60 0 2 017551 aa 2 00000 5511 14 stba bp|0,14 1 017552 aa 2 00000 5511 70 stba bp|0,70 0 3 017553 aa 2 00000 5511 14 stba bp|0,14 1 017554 aa 2 00000 7551 00 sta bp|0 0 4 017555 aa 2 00000 5511 14 stba bp|0,14 1 017556 aa 2 00000 7551 00 sta bp|0 0 5 017557 aa 2 00000 5511 14 stba bp|0,14 1 017560 aa 2 00000 7551 00 sta bp|0 0 6 017561 aa 2 00000 5511 14 stba bp|0,14 1 " " store table from q, 9 bit bytes, half word offset " OFFSET SIZE " 017562 trace_store_q9_ho: 017562 aa 000000 0110 07 nop 0,dl 0 2 017563 aa 000000 0110 07 nop 0,dl 1 017564 aa 000000 0110 07 nop 0,dl 0 3 017565 aa 2 00001 5521 40 stbq bp|1,40 1 017566 aa 000000 0110 07 nop 0,dl 0 4 017567 aa 2 00001 5521 60 stbq bp|1,60 1 017570 aa 2 00001 5521 40 stbq bp|1,40 0 5 017571 aa 2 00001 5521 70 stbq bp|1,70 1 017572 aa 2 00001 5521 60 stbq bp|1,60 0 6 017573 aa 2 00001 7561 00 stq bp|1 1 " " store table from a, 6 bit bytes, half word offset " OFFSET SIZE " 017574 trace_store_a6_ho: 017574 aa 2 00000 7511 40 stca bp|0,40 0 1 017575 aa 2 00000 7511 04 stca bp|0,04 1 017576 aa 2 00000 7511 60 stca bp|0,60 0 2 017577 aa 2 00000 7511 06 stca bp|0,06 1 017600 aa 2 00000 7511 70 stca bp|0,70 0 3 017601 aa 2 00000 7511 07 stca bp|0,07 1 017602 aa 2 00000 7511 74 stca bp|0,74 0 4 017603 aa 2 00000 7511 07 stca bp|0,07 1 017604 aa 2 00000 7511 76 stca bp|0,76 0 5 017605 aa 2 00000 7511 07 stca bp|0,07 1 017606 aa 2 00000 7551 00 sta bp|0 0 6 017607 aa 2 00000 7511 07 stca bp|0,07 1 017610 aa 2 00000 7551 00 sta bp|0 0 7 017611 aa 2 00000 7511 07 stca bp|0,07 1 017612 aa 2 00000 7551 00 sta bp|0 0 8 017613 aa 2 00000 7511 07 stca bp|0,07 1 017614 aa 2 00000 7551 00 sta bp|0 0 9 017615 aa 2 00000 7511 07 stca bp|0,07 1 " " store table from q, 6 bit bytes, half word offset " OFFSET SIZE " 017616 trace_store_q6_ho: 017616 aa 000000 0110 07 nop 0,dl 0 2 017617 aa 000000 0110 07 nop 0,dl 1 017620 aa 000000 0110 07 nop 0,dl 0 3 017621 aa 000000 0110 07 nop 0,dl 1 017622 aa 000000 0110 07 nop 0,dl 0 4 017623 aa 2 00001 7521 40 stcq bp|1,40 1 017624 aa 000000 0110 07 nop 0,dl 0 5 017625 aa 2 00001 7521 60 stcq bp|1,60 1 017626 aa 000000 0110 07 nop 0,dl 0 6 017627 aa 2 00001 7521 70 stcq bp|1,70 1 017630 aa 2 00001 7521 40 stcq bp|1,40 0 7 017631 aa 2 00001 7521 74 stcq bp|1,74 1 017632 aa 2 00001 7521 60 stcq bp|1,60 0 8 017633 aa 2 00001 7521 76 stcq bp|1,76 1 017634 aa 2 00001 7521 70 stcq bp|1,70 0 9 017635 aa 2 00001 7561 00 stq bp|1 1 " " THE FOLLOWING SECTION IS DIRECTLY REFERENCED FROM PL/1 PROGRAMS BY MEANS OF " ap|offset. FOR THIS REASON, THE ORDER OF THE FOLLOWING INSTRUCTIONS MUST " NOT BE CHANGED. " 017636 trace_operator_table: 017636 trace_bit_mask: 017636 aa 000000 000000 vfd 0/-1,72/0 017637 aa 000000 000000 017640 aa 400000 000000 vfd 1/-1,71/0 017641 aa 000000 000000 017642 aa 600000 000000 vfd 2/-1,70/0 017643 aa 000000 000000 017644 aa 700000 000000 vfd 3/-1,69/0 017645 aa 000000 000000 017646 aa 740000 000000 vfd 4/-1,68/0 017647 aa 000000 000000 017650 aa 760000 000000 vfd 5/-1,67/0 017651 aa 000000 000000 017652 aa 770000 000000 vfd 6/-1,66/0 017653 aa 000000 000000 017654 aa 774000 000000 vfd 7/-1,65/0 017655 aa 000000 000000 017656 aa 776000 000000 vfd 8/-1,64/0 017657 aa 000000 000000 017660 aa 777000 000000 vfd 9/-1,63/0 017661 aa 000000 000000 017662 aa 777400 000000 vfd 10/-1,62/0 017663 aa 000000 000000 017664 aa 777600 000000 vfd 11/-1,61/0 017665 aa 000000 000000 017666 aa 777700 000000 vfd 12/-1,60/0 017667 aa 000000 000000 017670 aa 777740 000000 vfd 13/-1,59/0 017671 aa 000000 000000 017672 aa 777760 000000 vfd 14/-1,58/0 017673 aa 000000 000000 017674 aa 777770 000000 vfd 15/-1,57/0 017675 aa 000000 000000 017676 aa 777774 000000 vfd 16/-1,56/0 017677 aa 000000 000000 017700 aa 777776 000000 vfd 17/-1,55/0 017701 aa 000000 000000 017702 aa 777777 000000 vfd 18/-1,54/0 017703 aa 000000 000000 017704 aa 777777 400000 vfd 19/-1,53/0 017705 aa 000000 000000 017706 aa 777777 600000 vfd 20/-1,52/0 017707 aa 000000 000000 017710 aa 777777 700000 vfd 21/-1,51/0 017711 aa 000000 000000 017712 aa 777777 740000 vfd 22/-1,50/0 017713 aa 000000 000000 017714 aa 777777 760000 vfd 23/-1,49/0 017715 aa 000000 000000 017716 aa 777777 770000 vfd 24/-1,48/0 017717 aa 000000 000000 017720 aa 777777 774000 vfd 25/-1,47/0 017721 aa 000000 000000 017722 aa 777777 776000 vfd 26/-1,46/0 017723 aa 000000 000000 017724 aa 777777 777000 vfd 27/-1,45/0 017725 aa 000000 000000 017726 aa 777777 777400 vfd 28/-1,44/0 017727 aa 000000 000000 017730 aa 777777 777600 vfd 29/-1,43/0 017731 aa 000000 000000 017732 aa 777777 777700 vfd 30/-1,42/0 017733 aa 000000 000000 017734 aa 777777 777740 vfd 31/-1,41/0 017735 aa 000000 000000 017736 aa 777777 777760 vfd 32/-1,40/0 017737 aa 000000 000000 017740 aa 777777 777770 vfd 33/-1,39/0 017741 aa 000000 000000 017742 aa 777777 777774 vfd 34/-1,38/0 017743 aa 000000 000000 017744 aa 777777 777776 vfd 35/-1,37/0 017745 aa 000000 000000 017746 aa 777777 777777 trace_ones: vfd 36/-1,36/0 017747 aa 000000 000000 017750 aa 777777 777777 vfd 36/-1,1/-1,35/0 017751 aa 400000 000000 017752 aa 777777 777777 vfd 36/-1,2/-1,34/0 017753 aa 600000 000000 017754 aa 777777 777777 vfd 36/-1,3/-1,33/0 017755 aa 700000 000000 017756 aa 777777 777777 vfd 36/-1,4/-1,32/0 017757 aa 740000 000000 017760 aa 777777 777777 vfd 36/-1,5/-1,31/0 017761 aa 760000 000000 017762 aa 777777 777777 vfd 36/-1,6/-1,30/0 017763 aa 770000 000000 017764 aa 777777 777777 vfd 36/-1,7/-1,29/0 017765 aa 774000 000000 017766 aa 777777 777777 vfd 36/-1,8/-1,28/0 017767 aa 776000 000000 017770 aa 777777 777777 vfd 36/-1,9/-1,27/0 017771 aa 777000 000000 017772 aa 777777 777777 vfd 36/-1,10/-1,26/0 017773 aa 777400 000000 017774 aa 777777 777777 vfd 36/-1,11/-1,25/0 017775 aa 777600 000000 017776 aa 777777 777777 vfd 36/-1,12/-1,24/0 017777 aa 777700 000000 020000 aa 777777 777777 vfd 36/-1,13/-1,23/0 020001 aa 777740 000000 020002 aa 777777 777777 vfd 36/-1,14/-1,22/0 020003 aa 777760 000000 020004 aa 777777 777777 vfd 36/-1,15/-1,21/0 020005 aa 777770 000000 020006 aa 777777 777777 vfd 36/-1,16/-1,20/0 020007 aa 777774 000000 020010 aa 777777 777777 vfd 36/-1,17/-1,19/0 020011 aa 777776 000000 020012 aa 777777 777777 vfd 36/-1,18/-1,18/0 020013 aa 777777 000000 020014 aa 777777 777777 vfd 36/-1,19/-1,17/0 020015 aa 777777 400000 020016 aa 777777 777777 vfd 36/-1,20/-1,16/0 020017 aa 777777 600000 020020 aa 777777 777777 vfd 36/-1,21/-1,15/0 020021 aa 777777 700000 020022 aa 777777 777777 vfd 36/-1,22/-1,14/0 020023 aa 777777 740000 020024 aa 777777 777777 vfd 36/-1,23/-1,13/0 020025 aa 777777 760000 020026 aa 777777 777777 vfd 36/-1,24/-1,12/0 020027 aa 777777 770000 020030 aa 777777 777777 vfd 36/-1,25/-1,11/0 020031 aa 777777 774000 020032 aa 777777 777777 vfd 36/-1,26/-1,10/0 020033 aa 777777 776000 020034 aa 777777 777777 vfd 36/-1,27/-1,9/0 020035 aa 777777 777000 020036 aa 777777 777777 vfd 36/-1,28/-1,8/0 020037 aa 777777 777400 020040 aa 777777 777777 vfd 36/-1,29/-1,7/0 020041 aa 777777 777600 020042 aa 777777 777777 vfd 36/-1,30/-1,6/0 020043 aa 777777 777700 020044 aa 777777 777777 vfd 36/-1,31/-1,5/0 020045 aa 777777 777740 020046 aa 777777 777777 vfd 36/-1,32/-1,4/0 020047 aa 777777 777760 020050 aa 777777 777777 vfd 36/-1,33/-1,3/0 020051 aa 777777 777770 020052 aa 777777 777777 vfd 36/-1,34/-1,2/0 020053 aa 777777 777774 020054 aa 777777 777777 vfd 36/-1,35/-1,1/0 020055 aa 777777 777776 " 020056 trace_mask_bit: 020056 aa 777777 777777 vfd 0/0,36/-1,36/-1 020057 aa 777777 777777 020060 aa 377777 777777 vfd 1/0,35/-1,36/-1 020061 aa 777777 777777 020062 aa 177777 777777 vfd 2/0,34/-1,36/-1 020063 aa 777777 777777 020064 aa 077777 777777 vfd 3/0,33/-1,36/-1 020065 aa 777777 777777 020066 aa 037777 777777 vfd 4/0,32/-1,36/-1 020067 aa 777777 777777 020070 aa 017777 777777 vfd 5/0,31/-1,36/-1 020071 aa 777777 777777 020072 aa 007777 777777 vfd 6/0,30/-1,36/-1 020073 aa 777777 777777 020074 aa 003777 777777 vfd 7/0,29/-1,36/-1 020075 aa 777777 777777 020076 aa 001777 777777 vfd 8/0,28/-1,36/-1 020077 aa 777777 777777 020100 aa 000777 777777 vfd 9/0,27/-1,36/-1 020101 aa 777777 777777 020102 aa 000377 777777 vfd 10/0,26/-1,36/-1 020103 aa 777777 777777 020104 aa 000177 777777 vfd 11/0,25/-1,36/-1 020105 aa 777777 777777 020106 aa 000077 777777 vfd 12/0,24/-1,36/-1 020107 aa 777777 777777 020110 aa 000037 777777 vfd 13/0,23/-1,36/-1 020111 aa 777777 777777 020112 aa 000017 777777 vfd 14/0,22/-1,36/-1 020113 aa 777777 777777 020114 aa 000007 777777 vfd 15/0,21/-1,36/-1 020115 aa 777777 777777 020116 aa 000003 777777 vfd 16/0,20/-1,36/-1 020117 aa 777777 777777 020120 aa 000001 777777 vfd 17/0,19/-1,36/-1 020121 aa 777777 777777 020122 aa 000000 777777 vfd 18/0,18/-1,36/-1 020123 aa 777777 777777 020124 aa 000000 377777 vfd 19/0,17/-1,36/-1 020125 aa 777777 777777 020126 aa 000000 177777 vfd 20/0,16/-1,36/-1 020127 aa 777777 777777 020130 aa 000000 077777 vfd 21/0,15/-1,36/-1 020131 aa 777777 777777 020132 aa 000000 037777 vfd 22/0,14/-1,36/-1 020133 aa 777777 777777 020134 aa 000000 017777 vfd 23/0,13/-1,36/-1 020135 aa 777777 777777 020136 aa 000000 007777 vfd 24/0,12/-1,36/-1 020137 aa 777777 777777 020140 aa 000000 003777 vfd 25/0,11/-1,36/-1 020141 aa 777777 777777 020142 aa 000000 001777 vfd 26/0,10/-1,36/-1 020143 aa 777777 777777 020144 aa 000000 000777 vfd 27/0,9/-1,36/-1 020145 aa 777777 777777 020146 aa 000000 000377 vfd 28/0,8/-1,36/-1 020147 aa 777777 777777 020150 aa 000000 000177 vfd 29/0,7/-1,36/-1 020151 aa 777777 777777 020152 aa 000000 000077 vfd 30/0,6/-1,36/-1 020153 aa 777777 777777 020154 aa 000000 000037 vfd 31/0,5/-1,36/-1 020155 aa 777777 777777 020156 aa 000000 000017 vfd 32/0,4/-1,36/-1 020157 aa 777777 777777 020160 aa 000000 000007 vfd 33/0,3/-1,36/-1 020161 aa 777777 777777 020162 aa 000000 000003 vfd 34/0,2/-1,36/-1 020163 aa 777777 777777 020164 aa 000000 000001 vfd 35/0,1/-1,36/-1 020165 aa 777777 777777 020166 aa 000000 000000 vfd 36/0,36/-1 020167 aa 777777 777777 020170 trace_max_single_value: 020170 aa 000000 000000 vfd 37/0,35/-1 020171 aa 377777 777777 020172 aa 000000 000000 vfd 38/0,34/-1 020173 aa 177777 777777 020174 aa 000000 000000 vfd 39/0,33/-1 020175 aa 077777 777777 020176 aa 000000 000000 vfd 40/0,32/-1 020177 aa 037777 777777 020200 aa 000000 000000 vfd 41/0,31/-1 020201 aa 017777 777777 020202 aa 000000 000000 vfd 42/0,30/-1 020203 aa 007777 777777 020204 aa 000000 000000 vfd 43/0,29/-1 020205 aa 003777 777777 020206 aa 000000 000000 vfd 44/0,28/-1 020207 aa 001777 777777 020210 aa 000000 000000 vfd 45/0,27/-1 020211 aa 000777 777777 020212 aa 000000 000000 vfd 46/0,26/-1 020213 aa 000377 777777 020214 aa 000000 000000 vfd 47/0,25/-1 020215 aa 000177 777777 020216 aa 000000 000000 vfd 48/0,24/-1 020217 aa 000077 777777 020220 aa 000000 000000 vfd 49/0,23/-1 020221 aa 000037 777777 020222 aa 000000 000000 vfd 50/0,22/-1 020223 aa 000017 777777 020224 aa 000000 000000 vfd 51/0,21/-1 020225 aa 000007 777777 020226 aa 000000 000000 vfd 52/0,20/-1 020227 aa 000003 777777 020230 aa 000000 000000 vfd 53/0,19/-1 020231 aa 000001 777777 020232 aa 000000 000000 vfd 54/0,18/-1 020233 aa 000000 777777 020234 aa 000000 000000 vfd 55/0,17/-1 020235 aa 000000 377777 020236 aa 000000 000000 vfd 56/0,16/-1 020237 aa 000000 177777 020240 aa 000000 000000 vfd 57/0,15/-1 020241 aa 000000 077777 020242 aa 000000 000000 vfd 58/0,14/-1 020243 aa 000000 037777 020244 aa 000000 000000 vfd 59/0,13/-1 020245 aa 000000 017777 020246 aa 000000 000000 vfd 60/0,12/-1 020247 aa 000000 007777 020250 aa 000000 000000 vfd 61/0,11/-1 020251 aa 000000 003777 020252 aa 000000 000000 vfd 62/0,10/-1 020253 aa 000000 001777 020254 aa 000000 000000 vfd 63/0,9/-1 020255 aa 000000 000777 020256 aa 000000 000000 vfd 64/0,8/-1 020257 aa 000000 000377 020260 aa 000000 000000 vfd 65/0,7/-1 020261 aa 000000 000177 020262 aa 000000 000000 vfd 66/0,6/-1 020263 aa 000000 000077 020264 aa 000000 000000 vfd 67/0,5/-1 020265 aa 000000 000037 020266 aa 000000 000000 vfd 68/0,4/-1 020267 aa 000000 000017 020270 aa 000000 000000 vfd 69/0,3/-1 020271 aa 000000 000007 020272 aa 000000 000000 vfd 70/0,2/-1 020273 aa 000000 000003 020274 aa 000000 000000 vfd 71/0,1/-1 020275 aa 000000 000001 " 020276 aa 040040 040040 trace_blanks: oct 040040040040,040040040040 020277 aa 040040 040040 020300 aa 000040 040040 oct 000040040040,040040040040 020301 aa 040040 040040 020302 aa 000000 040040 oct 000000040040,040040040040 020303 aa 040040 040040 020304 aa 000000 000040 oct 000000000040,040040040040 020305 aa 040040 040040 020306 aa 000000 000000 oct 000000000000,040040040040 020307 aa 040040 040040 020310 aa 000000 000000 oct 000000000000,000040040040 020311 aa 000040 040040 020312 aa 000000 000000 oct 000000000000,000000040040 020313 aa 000000 040040 020314 aa 000000 000000 oct 000000000000,000000000040 020315 aa 000000 000040 " 020316 aa 077777 000077 trace_ptr_mask: oct 077777000077,777777077077 mask for use in ptr comparisions 020317 aa 777777 077077 " " operator to convert single fixed to double fixed " even 020320 trace_fx1_to_fx2: 020320 aa 000044 7770 00 llr 36 020321 aa 000044 7330 00 lrs 36 " " operators to convert fixed to float " 020322 aa 000000 0110 03 odd 020323 trace_fx1_to_fl2: 020323 0a 020320 7170 00 xed trace_fx1_to_fx2 " even 020324 trace_fx2_to_fl2: 020324 aa 216000 4110 03 lde =71b25,du 020325 aa 400000 4750 03 fad =0.,du 020326 aa 6 00046 7101 70 tra sp|tbp,*0 " " operator to reset next stack pointer " 020327 aa 000000 0110 03 even 020330 trace_reset_stack: 020330 aa 6 00005 2201 00 ldx0 sp|5 020331 aa 6 00023 7401 00 stx0 sp|stack_frame.next_sp+1 " " operators to convert indicators into relations " 020332 0a 002164 6040 00 trace_r_l_a: tmi true 020333 aa 000000 2350 07 lda 0,dl 020334 aa 6 00046 7101 70 tra sp|tbp,*0 " 020335 aa 000002 6000 04 trace_r_g_s: tze 2,ic 020336 0a 002164 6030 00 trc true 020337 aa 000000 2350 07 lda 0,dl 020340 aa 6 00046 7101 70 tra sp|tbp,*0 " 020341 aa 000002 6000 04 trace_r_g_a: tze 2,ic 020342 0a 002164 6050 00 tpl true 020343 aa 000000 2350 07 lda 0,dl 020344 aa 6 00046 7101 70 tra sp|tbp,*0 " 020345 0a 002164 6020 00 trace_r_l_s: tnc true 020346 aa 000000 2350 07 lda 0,dl 020347 aa 6 00046 7101 70 tra sp|tbp,*0 " 020350 0a 002164 6000 00 trace_r_e_as: tze true 020351 aa 000000 2350 07 lda 0,dl 020352 aa 6 00046 7101 70 tra sp|tbp,*0 " 020353 0a 002164 6010 00 trace_r_ne_as: tnz true 020354 aa 000000 2350 07 lda 0,dl 020355 aa 6 00046 7101 70 tra sp|tbp,*0 " 020356 0a 002164 6040 00 trace_r_le_a: tmi true 020357 0a 002164 6000 00 tze true 020360 aa 000000 2350 07 lda 0,dl 020361 aa 6 00046 7101 70 tra sp|tbp,*0 " 020362 0a 002164 6030 00 trace_r_ge_s: trc true 020363 aa 000000 2350 07 lda 0,dl 020364 aa 6 00046 7101 70 tra sp|tbp,*0 " 020365 0a 002164 6050 00 trace_r_ge_a: tpl true 020366 aa 000000 2350 07 lda 0,dl 020367 aa 6 00046 7101 70 tra sp|tbp,*0 " 020370 0a 002164 6020 00 trace_r_le_s: tnc true 020371 0a 002164 6000 00 tze true 020372 aa 000000 2350 07 lda 0,dl 020373 aa 6 00046 7101 70 tra sp|tbp,*0 " 020374 aa 400000 2350 03 trace_true: lda =o400000,du 020375 aa 6 00046 7101 70 tra sp|tbp,*0 " " operator to set stack ptr to that of block N static " levels above the current block. Entered with N in q. " (should not be called with N = 0, but will work anyway.) " 020376 trace_set_stack: 020376 0a 005674 7010 00 tsx1 display_chase get ptr to proper frame 020377 aa 2 00000 3721 00 eppsp bp|0 into sp 020400 0a 003276 7100 00 tra set_stack_extend do three more instructions (added later " and since compiled code knows offsets in this " area, couldn't add the code inline) " " tables to convert to bit offset ready to be ORed into pointer " 020401 aa 000000 000000 trace_mod2_tab: dec 0,18b26 020402 aa 000000 022000 " 020403 aa 000000 000000 trace_mod4_tab: dec 0,9b26,18b26,27b26 020404 aa 000000 011000 020405 aa 000000 022000 020406 aa 000000 033000 " " transfer vector for operators not referenced directly " by the pl/1 program. new operators may be added at the " end of the list only. " 020407 trace_op_vector: 020407 0a 003140 7100 00 tra alloc_char_temp 0 020410 0a 003152 7100 00 tra alloc_bit_temp 1 020411 0a 003161 7100 00 tra alloc_temp 2 020412 0a 003217 7100 00 tra realloc_char_temp 3 020413 0a 003207 7100 00 tra realloc_bit_temp 4 020414 0a 003304 7100 00 tra save_string 5 obsolete 020415 0a 007646 7100 00 tra pk_to_unpk 6 020416 0a 007655 7100 00 tra unpk_to_pk 7 020417 0a 003633 7100 00 tra move_chars 8 obsolete 020420 0a 003641 7100 00 tra move_chars_aligned 9 obsolete 020421 0a 003604 7100 00 tra move_bits 10 obsolete 020422 0a 003612 7100 00 tra move_bits_aligned 11 obsolete 020423 0a 003727 7100 00 tra chars_move 12 obsolete 020424 0a 003740 7100 00 tra chars_move_aligned 13 obsolete 020425 0a 003755 7100 00 tra bits_move 14 obsolete 020426 0a 003766 7100 00 tra bits_move_aligned 15 obsolete 020427 0a 003573 7100 00 tra move_not_bits 16 obsolete 020430 0a 003601 7100 00 tra move_not_bits_aligned 17 obsolete 020431 0a 003676 7100 00 tra ext_and_1 18 020432 0a 003677 7100 00 tra ext_and_2 19 020433 0a 003717 7100 00 tra comp_bits 20 020434 0a 004371 7100 00 tra cpbs3 21 obsolete 020435 0a 004401 7100 00 tra cpbs3_aligned 22 obsolete 020436 0a 004377 7100 00 tra cpbs4 23 obsolete 020437 0a 004357 7100 00 tra cpcs_ext1 24 020440 0a 004360 7100 00 tra cpcs_ext2 25 020441 0a 004364 7100 00 tra cpbs_ext1 26 020442 0a 004365 7100 00 tra cpbs_ext2 27 020443 0a 003354 7100 00 tra store_string 28 020444 0a 003215 7100 00 tra cat_realloc_chars 29 020445 0a 003177 7100 00 tra cat_realloc_bits 30 020446 0a 004320 7100 00 tra cp_chars 31 obsolete 020447 0a 004326 7100 00 tra cp_chars_aligned 32 obsolete 020450 0a 004340 7100 00 tra cp_bits 33 obsolete 020451 0a 004346 7100 00 tra cp_bits_aligned 34 obsolete 020452 0a 012364 7100 00 tra enter_begin_block 35 020453 0a 005552 7100 00 tra leave_begin_block 36 020454 0a 005607 7100 00 tra call_ent_var_desc 37 020455 0a 005610 7100 00 tra call_ent_var 38 020456 0a 005623 7100 00 tra call_ext_in_desc 39 020457 0a 005624 7100 00 tra call_ext_in 40 020460 0a 005623 7100 00 tra call_ext_out_desc 41 020461 0a 005624 7100 00 tra call_ext_out 42 020462 0a 005634 7100 00 tra call_int_this_desc 43 020463 0a 005635 7100 00 tra call_int_this 44 020464 0a 005645 7100 00 tra call_int_other_desc 45 020465 0a 005646 7100 00 tra call_int_other 46 020466 0a 005572 7100 00 tra begin_return_mac 47 020467 0a 005600 7100 00 tra return_mac 48 020470 0a 003654 7100 00 tra cat_move_chars 49 obsolete 020471 0a 003662 7100 00 tra cat_move_chars_aligned 50 obsolete 020472 0a 003552 7100 00 tra cat_move_bits 51 obsolete 020473 0a 003560 7100 00 tra cat_move_bits_aligned 52 obsolete 020474 0a 004040 7100 00 tra cat_chars 53 obsolete 020475 0a 004046 7100 00 tra cat_chars_aligned 54 obsolete 020476 0a 004063 7100 00 tra cat_bits 55 obsolete 020477 0a 004071 7100 00 tra cat_bits_aligned 56 obsolete 020500 0a 003321 7100 00 tra set_chars 57 obsolete 020501 0a 003327 7100 00 tra set_chars_aligned 58 obsolete 020502 0a 003342 7100 00 tra set_bits 59 obsolete 020503 0a 003350 7100 00 tra set_bits_aligned 60 obsolete 020504 0a 003517 7100 00 tra and_bits 61 obsolete 020505 0a 003525 7100 00 tra and_bits_aligned 62 obsolete 020506 0a 003530 7100 00 tra or_bits 63 obsolete 020507 0a 003536 7100 00 tra or_bits_aligned 64 obsolete 020510 0a 005660 7100 00 tra move_label_var 65 020511 0a 005666 7100 00 tra make_label_var 66 020512 0a 006532 7100 00 tra fl2_to_fx1 67 020513 0a 006532 7100 00 tra fl2_to_fx2 68 020514 0a 007620 7100 00 tra longbs_to_fx2 69 020515 0a 007265 7100 00 tra tra_ext_1 70 020516 0a 007273 7100 00 tra tra_ext_2 71 020517 0a 007301 7100 00 tra alloc_auto_adj 72 020520 0a 007636 7100 00 tra longbs_to_bs18 73 020521 0a 006553 7100 00 tra stac_mac 74 020522 0a 006642 7100 00 tra sign_mac 75 020523 0a 010206 7100 00 tra bound_ck_signal 76 020524 0a 006650 7100 00 tra trans_sign_fx1 77 020525 0a 006660 7100 00 tra trans_sign_fl 78 020526 0a 007023 7100 00 tra copy_words 79 obsolete 020527 0a 007035 7100 00 tra mpfx2 80 020530 0a 007104 7100 00 tra mpfx3 81 020531 0a 004445 7100 00 tra copy_const 82 obsolete 020532 0a 004444 7100 00 tra copy_const_vt 83 obsolete 020533 0a 007205 7100 00 tra sr_check 84 obsolete 020534 0a 003726 7100 00 tra chars_move_vt 85 obsolete 020535 0a 003737 7100 00 tra chars_move_vta 86 obsolete 020536 0a 003754 7100 00 tra bits_move_vt 87 obsolete 020537 0a 003765 7100 00 tra bits_move_vta 88 obsolete 020540 0a 007314 7100 00 tra mdfl1 89 020541 0a 007335 7100 00 tra mdfl2 90 020542 0a 005701 7100 00 tra mdfx1 91 020543 0a 005716 7100 00 tra mdfx2 92 020544 0a 005742 7100 00 tra mdfx3 93 020545 0a 005720 7100 00 tra mdfx4 94 020546 0a 007033 7100 00 tra copy_double 95 obsolete 020547 0a 003371 7100 00 tra string_store 96 obsolete 020550 0a 003421 7100 00 tra get_chars 97 obsolete 020551 0a 003455 7100 00 tra get_bits 98 obsolete 020552 0a 003474 7100 00 tra pad_chars 99 020553 0a 003506 7100 00 tra pad_bits 100 020554 0a 010202 7100 00 tra signal_op 101 020555 0a 010107 7100 00 tra enable_op 102 020556 0a 004453 7100 00 tra index_chars 103 obsolete 020557 0a 004461 7100 00 tra index_chars_aligned 104 obsolete 020560 0a 004611 7100 00 tra index_bits 105 obsolete 020561 0a 004617 7100 00 tra index_bits_aligned 106 obsolete 020562 0a 003541 7100 00 tra exor_bits 107 obsolete 020563 0a 003547 7100 00 tra exor_bits_aligned 108 obsolete 020564 0a 003344 7100 00 tra set_bits_co 109 obsolete 020565 0a 003346 7100 00 tra set_bits_ho 110 obsolete 020566 0a 003323 7100 00 tra set_chars_co 111 obsolete 020567 0a 003325 7100 00 tra set_chars_ho 112 obsolete 020570 0a 003373 7100 00 tra string_store_co 113 obsolete 020571 0a 003402 7100 00 tra string_store_ho 114 obsolete 020572 0a 003423 7100 00 tra get_chars_co 115 obsolete 020573 0a 003425 7100 00 tra get_chars_ho 116 obsolete 020574 0a 003457 7100 00 tra get_bits_co 117 obsolete 020575 0a 003461 7100 00 tra get_bits_ho 118 obsolete 020576 0a 003521 7100 00 tra and_bits_co 119 obsolete 020577 0a 003523 7100 00 tra and_bits_ho 120 obsolete 020600 0a 003532 7100 00 tra or_bits_co 121 obsolete 020601 0a 003534 7100 00 tra or_bits_ho 122 obsolete 020602 0a 003543 7100 00 tra exor_bits_co 123 obsolete 020603 0a 003545 7100 00 tra exor_bits_ho 124 obsolete 020604 0a 003554 7100 00 tra cat_move_bits_co 125 obsolete 020605 0a 003556 7100 00 tra cat_move_bits_ho 126 obsolete 020606 0a 003575 7100 00 tra move_not_bits_co 127 obsolete 020607 0a 003577 7100 00 tra move_not_bits_ho 128 obsolete 020610 0a 003606 7100 00 tra move_bits_co 129 obsolete 020611 0a 003610 7100 00 tra move_bits_ho 130 obsolete 020612 0a 003635 7100 00 tra move_chars_co 131 obsolete 020613 0a 003637 7100 00 tra move_chars_ho 132 obsolete 020614 0a 003656 7100 00 tra cat_move_chars_co 133 obsolete 020615 0a 003660 7100 00 tra cat_move_chars_ho 134 obsolete 020616 0a 004042 7100 00 tra cat_chars_co 135 obsolete 020617 0a 004044 7100 00 tra cat_chars_ho 136 obsolete 020620 0a 004065 7100 00 tra cat_bits_co 137 obsolete 020621 0a 004067 7100 00 tra cat_bits_ho 138 obsolete 020622 0a 011327 7100 00 tra io_signal 139 020623 0a 004650 7100 00 tra index_cs_1 140 obsolete 020624 0a 004656 7100 00 tra index_cs_1_aligned 141 obsolete 020625 0a 006670 7100 00 tra fort_mdfl1 142 020626 0a 006724 7100 00 tra rfb1_to_cflb1 143 020627 0a 006726 7100 00 tra rfb2_to_cflb1 144 020630 0a 006734 7100 00 tra mpcfl1_1 145 020631 0a 006735 7100 00 tra mpcfl1_2 146 020632 0a 006755 7100 00 tra dvcfl1_1 147 020633 0a 006756 7100 00 tra dvcfl1_2 148 020634 0a 003731 7100 00 tra chars_move_vt_co 149 obsolete 020635 0a 003734 7100 00 tra chars_move_vt_ho 150 obsolete 020636 0a 003732 7100 00 tra chars_move_co 151 obsolete 020637 0a 003735 7100 00 tra chars_move_ho 152 obsolete 020640 0a 003757 7100 00 tra bits_move_vt_co 153 obsolete 020641 0a 003762 7100 00 tra bits_move_vt_ho 154 obsolete 020642 0a 003760 7100 00 tra bits_move_co 155 obsolete 020643 0a 003763 7100 00 tra bits_move_ho 156 obsolete 020644 0a 004322 7100 00 tra cp_chars_co 157 obsolete 020645 0a 004324 7100 00 tra cp_chars_ho 158 obsolete 020646 0a 004342 7100 00 tra cp_bits_co 159 obsolete 020647 0a 004344 7100 00 tra cp_bits_ho 160 obsolete 020650 0a 004373 7100 00 tra cpbs3_co 161 obsolete 020651 0a 004375 7100 00 tra cpbs3_ho 162 obsolete 020652 0a 003254 7100 00 tra shorten_stack 163 020653 0a 004426 7100 00 tra zero_bits 164 obsolete 020654 0a 004434 7100 00 tra zero_bits_aligned 165 obsolete 020655 0a 004430 7100 00 tra zero_bits_co 166 obsolete 020656 0a 004432 7100 00 tra zero_bits_ho 167 obsolete 020657 0a 004407 7100 00 tra blank_chars 168 obsolete 020660 0a 004415 7100 00 tra blank_chars_aligned 169 obsolete 020661 0a 004411 7100 00 tra blank_chars_co 170 obsolete 020662 0a 004413 7100 00 tra blank_chars_ho 171 obsolete 020663 0a 004455 7100 00 tra index_chars_co 172 obsolete 020664 0a 004457 7100 00 tra index_chars_ho 173 obsolete 020665 0a 004613 7100 00 tra index_bits_co 174 obsolete 020666 0a 004615 7100 00 tra index_bits_ho 175 obsolete 020667 0a 004652 7100 00 tra index_cs_1_co 176 obsolete 020670 0a 004654 7100 00 tra index_cs_1_ho 177 obsolete 020671 0a 004673 7100 00 tra index_bs_1 178 obsolete 020672 0a 004701 7100 00 tra index_bs_1_aligned 179 obsolete 020673 0a 004675 7100 00 tra index_bs_1_co 180 obsolete 020674 0a 004677 7100 00 tra index_bs_1_ho 181 obsolete 020675 0a 012444 0000 00 arg shift_bo 182 obsolete 020676 0a 005422 7100 00 tra return_words 183 020677 0a 005442 7100 00 tra return_bits 184 obsolete 020700 0a 005444 7100 00 tra return_bits_co 185 obsolete 020701 0a 005446 7100 00 tra return_bits_ho 186 obsolete 020702 0a 005450 7100 00 tra return_bits_al 187 obsolete 020703 trace_entry_operators: 020703 0a 021401 7100 00 tra trace_ext_entry 188 020704 0a 021436 7100 00 tra trace_ext_entry_desc 189 020705 0a 012121 7100 00 tra int_entry 190 020706 0a 012137 7100 00 tra int_entry_desc 191 020707 0a 012156 7100 00 tra val_entry 192 020710 0a 012154 7100 00 tra val_entry_desc 193 020711 0a 003427 7100 00 tra get_chars_aligned 194 obsolete 020712 0a 003463 7100 00 tra get_bits_aligned 195 obsolete 020713 0a 003416 7100 00 tra fetch_chars 196 020714 0a 003451 7100 00 tra fetch_bits 197 020715 0a 010501 7100 00 tra get_terminate 198 020716 4a 4 00010 7101 20 tra |[put_terminate] 199 020717 0a 010333 7100 00 tra put_data_aligned 200 obsolete 020720 0a 010346 7100 00 tra get_list_aligned 201 obsolete 020721 0a 010357 7100 00 tra get_edit_aligned 202 obsolete 020722 0a 010411 7100 00 tra put_list_aligned 203 obsolete 020723 0a 010422 7100 00 tra put_edit_aligned 204 obsolete 020724 4a 4 00012 7101 20 tra |[stream_prep] 205 020725 4a 4 00014 7101 20 tra |[record_io] 206 020726 0a 010505 7100 00 tra open_file 207 020727 0a 010507 7100 00 tra close_file 208 020730 0a 010325 7100 00 tra put_data 209 obsolete 020731 0a 010327 7100 00 tra put_data_co 210 obsolete 020732 0a 010331 7100 00 tra put_data_ho 211 obsolete 020733 0a 010340 7100 00 tra get_list 212 obsolete 020734 0a 010342 7100 00 tra get_list_co 213 obsolete 020735 0a 010344 7100 00 tra get_list_ho 214 obsolete 020736 0a 010351 7100 00 tra get_edit 215 obsolete 020737 0a 010353 7100 00 tra get_edit_co 216 obsolete 020740 0a 010355 7100 00 tra get_edit_ho 217 obsolete 020741 0a 010403 7100 00 tra put_list 218 obsolete 020742 0a 010405 7100 00 tra put_list_co 219 obsolete 020743 0a 010407 7100 00 tra put_list_ho 220 obsolete 020744 0a 010414 7100 00 tra put_edit 221 obsolete 020745 0a 010416 7100 00 tra put_edit_co 222 obsolete 020746 0a 010420 7100 00 tra put_edit_ho 223 obsolete 020747 0a 004236 7100 00 tra suffix_cs 224 obsolete 020750 0a 004254 7100 00 tra suffix_bs 225 obsolete 020751 0a 006542 7100 00 tra fl2_to_fxscaled 226 020752 0a 007363 7100 00 tra trunc_fx1 227 020753 0a 007375 7100 00 tra trunc_fx2 228 020754 0a 007444 7100 00 tra ceil_fx1 229 020755 0a 007500 7100 00 tra ceil_fx2 230 020756 0a 007415 7100 00 tra ceil_fl 231 020757 0a 007425 7100 00 tra floor_fx1 232 020760 0a 007463 7100 00 tra floor_fx2 233 020761 0a 007405 7100 00 tra floor_fl 234 020762 0a 007354 7100 00 tra trunc_fl 235 020763 0a 007515 7100 00 tra round_fx1 236 020764 0a 007536 7100 00 tra round_fx2 237 020765 0a 004103 7100 00 tra repeat 238 020766 0a 005052 7100 00 tra make_bit_table 239 obsolete 020767 0a 005060 7100 00 tra make_bit_table_al 240 obsolete 020770 0a 005054 7100 00 tra make_bit_table_co 241 obsolete 020771 0a 005056 7100 00 tra make_bit_table_ho 242 obsolete 020772 0a 005147 7100 00 tra verify 243 obsolete 020773 0a 005155 7100 00 tra verify_al 244 obsolete 020774 0a 005151 7100 00 tra verify_co 245 obsolete 020775 0a 005153 7100 00 tra verify_ho 246 obsolete 020776 0a 005161 7100 00 tra const_verify 247 obsolete 020777 0a 005167 7100 00 tra const_verify_al 248 obsolete 021000 0a 005163 7100 00 tra const_verify_co 249 obsolete 021001 0a 005165 7100 00 tra const_verify_ho 250 obsolete 021002 0a 004212 7100 00 tra reverse_cs 251 021003 0a 004166 7100 00 tra reverse_bs 252 021004 0a 005110 7100 00 tra form_bit_table 253 obsolete 021005 0a 005112 7100 00 tra form_bit_table_co 254 obsolete 021006 0a 005114 7100 00 tra form_bit_table_ho 255 obsolete 021007 0a 005116 7100 00 tra form_bit_table_al 256 obsolete 021010 0a 004002 7100 00 tra chars_move_ck 257 obsolete 021011 0a 004004 7100 00 tra chars_move_ck_co 258 obsolete 021012 0a 004006 7100 00 tra chars_move_ck_ho 259 obsolete 021013 0a 004010 7100 00 tra chars_move_ck_al 260 obsolete 021014 0a 004021 7100 00 tra bits_move_ck 261 obsolete 021015 0a 004023 7100 00 tra bits_move_ck_co 262 obsolete 021016 0a 004025 7100 00 tra bits_move_ck_ho 263 obsolete 021017 0a 004027 7100 00 tra bits_move_ck_al 264 obsolete 021020 0a 007771 7100 00 tra size_check_fx1 265 021021 0a 010013 7100 00 tra size_check_fx2 266 021022 0a 010053 7100 00 tra signal_stringsize 267 021023 0a 004272 7100 00 tra suffix_cs_ck 268 obsolete 021024 0a 004312 7100 00 tra suffix_bs_ck 269 obsolete 021025 0a 011032 7100 00 tra pointer_hard 270 021026 0a 007727 7100 00 tra alm_call 271 special for alm 021027 0a 007733 7100 00 tra alm_push 272 special for alm 021030 0a 007757 7100 00 tra alm_return 273 special for alm 021031 0a 007765 7100 00 tra alm_return_no_pop 274 special for alm 021032 0a 024722 7100 00 tra trace_alm_entry 275 special for alm 021033 0a 007663 7100 00 tra packed_to_bp 276 obsolete 021034 0a 005466 7100 00 tra return_chars 277 obsolete 021035 0a 005470 7100 00 tra return_chars_co 278 obsolete 021036 0a 005472 7100 00 tra return_chars_ho 279 obsolete 021037 0a 005474 7100 00 tra return_chars_aligned 280 obsolete 021040 0a 007667 7100 00 tra rpd_odd_lp_bp 281 obsolete 021041 0a 007677 7100 00 tra rpd_odd_bp_lp 282 obsolete 021042 0a 007707 7100 00 tra rpd_even_lp_bp 283 obsolete 021043 0a 007717 7100 00 tra rpd_even_bp_lp 284 obsolete 021044 0a 011060 7100 00 tra offset_easy 285 021045 0a 011074 7100 00 tra offset_easy_pk 286 021046 0a 011060 7100 00 tra offset_hard 287 021047 0a 011074 7100 00 tra offset_hard_pk 288 021050 0a 011045 7100 00 tra pointer_hard_pk 289 021051 0a 011032 7100 00 tra pointer_easy 290 021052 0a 011045 7100 00 tra pointer_easy_pk 291 021053 0a 007553 7100 00 tra round_fl 292 021054 0a 010222 7100 00 tra enable_file 293 021055 0a 010275 7100 00 tra revert_file 294 021056 0a 011107 7100 00 tra alloc_block 295 021057 0a 011134 7100 00 tra free_block 296 021060 0a 011151 7100 00 tra push_ctl_data 297 021061 0a 011147 7100 00 tra push_ctl_desc 298 021062 0a 011173 7100 00 tra pop_ctl_data 299 021063 0a 011173 7100 00 tra pop_ctl_desc 300 021064 0a 011213 7100 00 tra allocation 301 021065 0a 003315 7100 00 tra set_chars_eis 302 021066 0a 003336 7100 00 tra set_bits_eis 303 021067 0a 004464 7100 00 tra index_chars_eis 304 021070 0a 004606 7100 00 tra index_bits_eis 305 021071 0a 004645 7100 00 tra index_cs_1_eis 306 021072 0a 004670 7100 00 tra index_bs_1_eis 307 021073 0a 005477 7100 00 tra return_chars_eis 308 021074 0a 005453 7100 00 tra return_bits_eis 309 021075 0a 010323 7100 00 tra put_data_eis 310 021076 4a 4 00016 7101 20 tra |[put_edit_eis] 311 021077 0a 010362 7100 00 tra put_list_eis 312 021100 4a 4 00020 7101 20 tra |[get_edit_eis] 313 021101 0a 010336 7100 00 tra get_list_eis 314 021102 0a 005245 7100 00 tra verify_eis 315 021103 0a 005223 7100 00 tra search_eis 316 021104 0a 010511 7100 00 tra fortran_read 317 021105 0a 010511 7100 00 tra fortran_write 318 021106 0a 010554 7100 00 tra fortran_manip 319 021107 0a 010547 7100 00 tra fortran_scalar_xmit 320 021110 0a 010547 7100 00 tra fortran_array_xmit 321 021111 0a 010556 7100 00 tra fortran_terminate 322 021112 4a 4 00022 7101 20 tra |[real_to_real_round_] 323 021113 4a 4 00024 7101 20 tra |[real_to_real_truncate_] 324 021114 4a 4 00026 7101 20 tra |[any_to_any_round_] 325 021115 4a 4 00030 7101 20 tra |[any_to_any_truncate_] 326 021116 0a 011226 7100 00 tra unpack_picture 327 021117 0a 011231 7100 00 tra pack_picture 328 021120 0a 006042 7100 00 tra divide_fx1 329 021121 0a 006061 7100 00 tra divide_fx2 330 021122 0a 006044 7100 00 tra divide_fx3 331 021123 0a 006063 7100 00 tra divide_fx4 332 021124 0a 006027 7100 00 tra scaled_mod_fx1 333 021125 0a 005757 7100 00 tra scaled_mod_fx2 334 021126 0a 006031 7100 00 tra scaled_mod_fx3 335 021127 0a 005761 7100 00 tra scaled_mod_fx4 336 021130 0a 005322 7100 00 tra translate_2 337 021131 0a 005360 7100 00 tra translate_3 338 021132 4a 4 00032 7101 20 tra |[square_root_] 339 021133 4a 4 00034 7101 20 tra |[sine_radians_] 340 021134 4a 4 00036 7101 20 tra |[sine_degrees_] 341 021135 4a 4 00040 7101 20 tra |[cosine_radians_] 342 021136 4a 4 00042 7101 20 tra |[cosine_degrees_] 343 021137 4a 4 00044 7101 20 tra |[tangent_radians_] 344 021140 4a 4 00046 7101 20 tra |[tangent_degrees_] 345 021141 4a 4 00050 7101 20 tra |[arc_sine_radians_] 346 021142 4a 4 00052 7101 20 tra |[arc_sine_degrees_] 347 021143 4a 4 00054 7101 20 tra |[arc_cosine_radians_] 348 021144 4a 4 00056 7101 20 tra |[arc_cosine_degrees_] 349 021145 4a 4 00060 7101 20 tra |[arc_tangent_radians_] 350 021146 4a 4 00062 7101 20 tra |[arc_tangent_degrees_] 351 021147 4a 4 00064 7101 20 tra |[log_base_2_] 352 021150 4a 4 00066 7101 20 tra |[log_base_e_] 353 021151 4a 4 00070 7101 20 tra |[log_base_10_] 354 021152 4a 4 00072 7101 20 tra |[exponential_] 355 021153 4a 4 00074 7101 20 tra |[double_square_root_] 356 021154 4a 4 00076 7101 20 tra |[double_sine_radians_] 357 021155 4a 4 00100 7101 20 tra |[double_sine_degrees_] 358 021156 4a 4 00102 7101 20 tra |[double_cosine_radians_] 359 021157 4a 4 00104 7101 20 tra |[double_cosine_degrees_] 360 021160 4a 4 00106 7101 20 tra |[double_tangent_radians_] 361 021161 4a 4 00110 7101 20 tra |[double_tangent_degrees_] 362 021162 4a 4 00112 7101 20 tra |[double_arc_sine_radians_] 363 021163 4a 4 00114 7101 20 tra |[double_arc_sine_degrees_] 364 021164 4a 4 00116 7101 20 tra |[double_arc_cosine_radians_] 365 021165 4a 4 00120 7101 20 tra |[double_arc_cosine_degrees_] 366 021166 4a 4 00122 7101 20 tra |[double_arc_tan_radians_] 367 021167 4a 4 00124 7101 20 tra |[double_arc_tan_degrees_] 368 021170 4a 4 00126 7101 20 tra |[double_log_base_2_] 369 021171 4a 4 00130 7101 20 tra |[double_log_base_e_] 370 021172 4a 4 00132 7101 20 tra |[double_log_base_10_] 371 021173 4a 4 00134 7101 20 tra |[double_exponential_] 372 021174 4a 4 00136 7101 20 tra |[arc_tangent_radians_2_] 373 021175 4a 4 00140 7101 20 tra |[arc_tangent_degrees_2_] 374 021176 4a 4 00142 7101 20 tra |[double_arc_tan_radians_2_] 375 021177 4a 4 00144 7101 20 tra |[double_arc_tan_degrees_2_] 376 021200 4a 4 00146 7101 20 tra |[integer_power_single_] 377 021201 4a 4 00150 7101 20 tra |[integer_power_double_] 378 021202 4a 4 00152 7101 20 tra |[double_power_single_] 379 021203 4a 4 00154 7101 20 tra |[double_power_double_] 380 021204 4a 4 00156 7101 20 tra |[double_power_integer_] 381 021205 4a 4 00160 7101 20 tra |[single_power_single_] 382 021206 4a 4 00162 7101 20 tra |[single_power_integer_] 383 021207 4a 4 00164 7101 20 tra |[integer_power_integer_] 384 021210 0a 010050 7100 00 tra signal_size 385 021211 0a 021470 7100 00 tra trace_ss_ext_entry 386 021212 0a 021527 7100 00 tra trace_ss_ext_entry_desc 387 021213 0a 012264 7100 00 tra ss_int_entry 388 021214 0a 012303 7100 00 tra ss_int_entry_desc 389 021215 0a 012323 7100 00 tra ss_val_entry 390 021216 0a 012321 7100 00 tra ss_val_entry_desc 391 021217 4a 4 00166 7101 20 tra |[mpcdec] 392 021220 4a 4 00170 7101 20 tra |[dvcdec] 393 021221 4a 4 00172 7101 20 tra |[dvrcdec] 394 021222 4a 4 00174 7101 20 tra |[ceil] 395 021223 4a 4 00176 7101 20 tra |[floor] 396 021224 4a 4 00200 7101 20 tra |[sign] 397 021225 4a 4 00202 7101 20 tra |[cabs] 398 021226 4a 4 00204 7101 20 tra |[truncate] 399 021227 4a 4 00206 7101 20 tra |[mod] 400 021230 0a 011351 7100 00 tra set_support 401 021231 0a 006071 7100 00 tra div_4_cplx_ops 402 021232 0a 003441 7100 00 tra fetch_chars_eis 403 021233 0a 007247 7100 00 tra signal_stringrange 404 021234 0a 012404 7100 00 tra ss_enter_begin_block 405 021235 4a 4 00210 7101 20 tra |[put_field] 406 021236 4a 4 00212 7101 20 tra |[put_field_chk] 407 021237 4a 4 00214 7101 20 tra |[put_control] 408 021240 4a 4 00216 7101 20 tra |[op_alloc_] 409 021241 0a 011104 7100 00 tra alloc_storage 410 021242 4a 4 00220 7101 20 tra |[op_freen_] 411 021243 4a 4 00222 7101 20 tra |[op_empty_] 412 021244 4a 4 00224 7101 20 tra |[cabs] 413 fortran only 021245 4a 4 00226 7101 20 tra |[ccos] 414 fortran only 021246 4a 4 00230 7101 20 tra |[cexp] 415 fortran only 021247 4a 4 00232 7101 20 tra |[clog] 416 fortran only 021250 4a 4 00234 7101 20 tra |[csin] 417 fortran only 021251 4a 4 00236 7101 20 tra |[csqrt] 418 fortran only 021252 4a 4 00240 7101 20 tra |[tanh] 419 fortran only 021253 4a 4 00242 7101 20 tra |[dmod] 420 fortran only (obsolete) 021254 4a 4 00244 7101 20 tra |[cmpx_p_cmpx] 421 fortran only 021255 0a 011354 7100 00 tra get_math_entry 422 fortran only 021256 0a 011463 7100 00 tra fortran_pause 423 fortran only 021257 0a 011465 7100 00 tra fortran_stop 424 fortran only 021260 0a 011506 7100 00 tra fortran_chain 425 fortran only 021261 0a 024743 7100 00 tra long_profile 426 021262 0a 004714 7100 00 tra index_before_cs 427 021263 0a 005004 7100 00 tra index_before_bs 428 021264 0a 004720 7100 00 tra index_after_cs 429 021265 0a 005010 7100 00 tra index_after_bs 430 021266 0a 005035 7100 00 tra index_before_bs_1 431 021267 0a 005041 7100 00 tra index_after_bs_1 432 021270 0a 005271 7100 00 tra verify_for_ltrim 433 021271 0a 005304 7100 00 tra verify_for_rtrim 434 021272 0a 006557 7100 00 tra stacq_mac 435 021273 0a 006563 7100 00 tra clock_mac 436 021274 0a 006571 7100 00 tra vclock_mac 437 021275 0a 010561 7100 00 tra ftn_open_element 438 fortran only 021276 0a 011025 7100 00 tra ftn_get_area_ptr 439 fortran only 021277 0a 006577 7100 00 tra stop 440 021300 0a 006610 7100 00 tra return_main 441 021301 0a 006626 7100 00 tra set_main_flag 442 021302 0a 006614 7100 00 tra begin_return_main 443 021303 0a 010023 7100 00 tra size_check_uns_fx1 444 021304 0a 010031 7100 00 tra size_check_uns_fx2 445 021305 0a 011455 7100 00 tra fortran_end 446 fortran only 021306 0a 006706 7100 00 tra fort_dmod 447 fortran only 021307 0a 004540 7100 00 tra ix_rev_chars 448 021310 0a 005247 7100 00 tra verify_rev_chars 449 021311 0a 005251 7100 00 tra search_rev_chars 450 021312 0a 003261 7100 00 tra shorten_stack_protect_ind 451 021313 0a 003270 7100 00 tra save_stack_quick 452 021314 0a 003274 7100 00 tra restore_stack_quick 453 021315 4a 4 00246 7101 20 tra |[dtanh] 454 fortran only 021316 4a 4 00250 7101 20 tra |[sinh] 455 fortran only 021317 4a 4 00252 7101 20 tra |[dsinh] 456 fortran only 021320 4a 4 00254 7101 20 tra |[cosh] 457 fortran only 021321 4a 4 00256 7101 20 tra |[dcosh] 458 fortran only 021322 0a 007576 7100 00 tra nearest_whole_number 459 fortran only 021323 0a 007607 7100 00 tra nearest_integer 460 fortran only 021324 0a 010714 7100 00 tra ftn_inquire_element 461 fortran only 021325 0a 010037 7100 00 tra mpy_overflow_check 462 fortran only 021326 0a 005557 7100 00 tra fort_return_mac 463 fortran only 021327 0a 010140 7100 00 tra fort_cleanup 464 fortran only 021330 0a 010065 7100 00 tra fort_storage 465 fortran only 021331 0a 021350 7100 00 tra trace_enter_BFP_mode 466 021332 0a 021354 7100 00 tra trace_enter_HFP_mode 467 021333 0a 011623 7100 00 tra unimp 468 future expansion 021334 0a 011623 7100 00 tra unimp 469 future expansion 021335 0a 011623 7100 00 tra unimp 470 future expansion 021336 0a 011623 7100 00 tra unimp 471 future expansion 021337 0a 011623 7100 00 tra unimp 472 future expansion 021340 0a 011623 7100 00 tra unimp 473 future expansion 021341 0a 011623 7100 00 tra unimp 474 future expansion 021342 0a 011623 7100 00 tra unimp 475 future expansion 021343 0a 011623 7100 00 tra unimp 476 future expansion 021344 0a 011623 7100 00 tra unimp 477 future expansion 021345 0a 011623 7100 00 tra unimp 478 future expansion 021346 0a 011623 7100 00 tra unimp 479 future expansion 021347 0a 011623 7100 00 tra unimp 480 future expansion 7390 7391 " 7392 " Function: enter Binary Floating Point (BFP) mode 7393 " 7394 " Entry: X0 = offset in caller's text section of return point 7395 " 7396 " Exit: PR0, (sp|stack_frame.operator_ptr) -> operator_table 7397 " 021350 7398 trace_enter_BFP_mode: 021350 aa 000000 6340 07 7399 ldi 0,dl clear HFP mode if it's set 021351 0a 017636 3500 00 7400 epp0 trace_operator_table change to HFP trace operators 021352 aa 6 00030 2501 00 7401 spri0 sp|stack_frame.operator_ptr 021353 aa 6 00046 7101 70 7402 tra sp|tbp,*x0 7403 7404 " 7405 " Function: enter Hexadecimal Floating Point (HFP) mode 7406 " 7407 " Entry: X0 = offset in caller's text section of return point 7408 " 7409 " Exit: PR0, (sp|stack_frame.operator_ptr) = hfp_operator_table 7410 " 7411 " Note: It is not sufficient to just request HFP mode. We must 7412 " check that our request has been honoured, since if HFP 7413 " mode has not been enabled (or if it is not supported), a 7414 " request to enter HFP mode is simply ignored. If we find 7415 " that our request to enter HFP mode has not been honoured, 7416 " we attempt to enable HFP mode. If we are unsuccessful, 7417 " we signal the condition 'cannot_enable_HFP_mode'. If we 7418 " are restarted after signalling this condition, we repeat 7419 " all the above steps. 7420 " 021354 7421 trace_enter_HFP_mode: 021354 aa 000010 6340 07 7422 ldi HFP_mask,dl request HFP mode 021355 aa 002040 4310 03 7423 fld P1.0H,du check if request honoured 021356 aa 400000 4750 03 7424 fad P0.0H,du 021357 aa 020000 1750 03 7425 sba =o020000,du 021360 0a 021376 6000 00 7426 tze trace_enter_HFP_mode.entered 021361 aa 600000 2350 03 7427 lda =o600000,du try to enable HFP mode 021362 0a 011557 7010 00 7428 tsx1 call_set_hexfp_control 021363 aa 000010 6340 07 7429 ldi HFP_mask,dl check if successful 021364 aa 002040 4310 03 7430 fld P1.0H,du 021365 aa 400000 4750 03 7431 fad P0.0H,du 021366 aa 020000 1750 03 7432 sba =o020000,du 021367 0a 021376 6000 00 7433 tze trace_enter_HFP_mode.entered 021370 aa 000000 6340 07 7434 ldi =0,dl clear HFP mode request 021371 0a 025026 3520 00 7435 eppbp =22acannot_enable_HFP_mode 021372 aa 000026 6260 00 7436 eax6 22 021373 aa 001750 2360 07 7437 ldq =1000,dl 021374 0a 011243 7010 00 7438 tsx1 call_signal_ signal 'cannot_enable_HFP_mode' condition 021375 0a 021354 7100 00 7439 tra trace_enter_HFP_mode try again 7440 021376 7441 trace_enter_HFP_mode.entered: 021376 0a 014140 3500 00 7442 epp0 hfp_operator_table change to HFP trace operators 021377 aa 6 00030 2501 00 7443 spri0 sp|stack_frame.operator_ptr 021400 aa 6 00046 7101 70 7444 tra sp|tbp,*x0 7445 " 7446 ext_entry trace_ 021401 trace_ext_entry: 021401 aa 2 77775 3521 00 eppbp bp|-3 get correct entry pointer value trace trace_ 021402 0a 021402 2130 00 epaq * get segment number of pl1_operators_ 021403 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get our linkage ptr 021404 aa 7 00024 5421 20 sprpbp sb|stack_header.stack_end_ptr,* save entry ptr as packed ptr 021405 aa 7 00024 3521 20 eppbp sb|stack_header.stack_end_ptr,* 021406 aa 2 00001 5411 00 sprpab bp|1 save lisp linkage ptr (might be lisp environment) 021407 4a 4 01124 2721 20 tspbp trace_catch_$catch_pl1_ 021410 aa 7 00024 3515 20 eppab sb|stack_header.stack_end_ptr,* 021411 aa 1 00000 7621 00 lprpbp ab|0 restore entry ptr 021412 aa 1 00001 7611 00 lprpab ab|1 restore lisp linkage ptr 021413 aa 2 00000 2131 00 epaq bp|0 get segment number in a 021414 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 021415 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 021416 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 021417 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 021420 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 021421 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 021422 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr update stack end ptr 021423 aa 3 00000 3721 00 eppsp bb|0 update sp 021424 trace_save_link: 021424 aa 6 00044 6501 00 sprilp sp|linkage_ptr save ptr to linkage in stack head 021425 aa 6 00026 2521 00 spribp sp|stack_frame.entry_ptr save ptr to entry point 021426 trace_init_stack_join: 021426 aa 6 00046 2525 00 spbpbp sp|text_base_ptr save ptr to base of text segment 021427 aa 6 00024 2525 00 spbpbp sp|stack_frame.return_ptr init procedure call return point 021430 aa 6 00037 4501 00 stz sp|stack_frame.operator_ret_ptr init operator return offset " 021431 0a 017636 3500 00 eppap trace_operator_table and pointer to operators 021432 aa 6 00030 2501 00 spriap sp|stack_frame.operator_ptr save pointer to operator segment 021433 aa 6 00004 2515 00 spriab sp|4 save pointer to end of frame for temp extensions 021434 aa 000000 6340 07 ldi 0,dl reset all indicators (overflow mask in particular) 021435 aa 2 00005 7101 00 tra bp|5 and return to user program 7447 " 7448 ext_entry_desc trace_ 021436 trace_ext_entry_desc: 021436 aa 2 77775 3521 00 eppbp bp|-3 get correct entry pointer value trace trace_ 021437 0a 021437 2130 00 epaq * get segment number of pl1_operators_ 021440 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get our linkage ptr 021441 aa 7 00024 5421 20 sprpbp sb|stack_header.stack_end_ptr,* save entry ptr as packed ptr 021442 aa 7 00024 3521 20 eppbp sb|stack_header.stack_end_ptr,* 021443 aa 2 00001 5411 00 sprpab bp|1 save lisp linkage ptr (might be lisp environment) 021444 4a 4 01124 2721 20 tspbp trace_catch_$catch_pl1_ 021445 aa 7 00024 3515 20 eppab sb|stack_header.stack_end_ptr,* 021446 aa 1 00000 7621 00 lprpbp ab|0 restore entry ptr 021447 aa 1 00001 7611 00 lprpab ab|1 restore lisp linkage ptr 021450 aa 2 00000 2131 00 epaq bp|0 get segment number of text 021451 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 021452 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 021453 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 021454 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 021455 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 021456 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 021457 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set new stack end ptr 021460 aa 3 00000 3721 00 eppsp bb|0 update sp " 021461 trace_eed: 021461 aa 0 00000 2351 00 lda ap|0 get 2*n_args in au, code in al 021462 aa 000010 3150 07 cana 8,dl is there an extra arg 021463 aa 000002 6000 04 tze 2,ic no 021464 aa 000002 0750 03 ada 2,du yes, allow for it 021465 aa 0 00002 3535 01 eppbb ap|2,au get ptr to descriptors 021466 aa 6 00042 2535 00 spribb sp|descriptor_ptr set ptr in stack frame 021467 0a 021424 7100 00 tra trace_save_link join common section 7449 " 7450 ext_entry trace_,ss_ 021470 trace_ss_ext_entry: 021470 aa 2 77775 3521 00 eppbp bp|-3 get correct entry pointer value trace trace_ 021471 0a 021471 2130 00 epaq * get segment number of pl1_operators_ 021472 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get our linkage ptr 021473 aa 7 00024 5421 20 sprpbp sb|stack_header.stack_end_ptr,* save entry ptr as packed ptr 021474 aa 7 00024 3521 20 eppbp sb|stack_header.stack_end_ptr,* 021475 aa 2 00001 5411 00 sprpab bp|1 save lisp linkage ptr (might be lisp environment) 021476 4a 4 01124 2721 20 tspbp trace_catch_$catch_pl1_ 021477 aa 7 00024 3515 20 eppab sb|stack_header.stack_end_ptr,* 021500 aa 1 00000 7621 00 lprpbp ab|0 restore entry ptr 021501 aa 1 00001 7611 00 lprpab ab|1 restore lisp linkage ptr 021502 aa 2 00000 2131 00 epaq bp|0 get segment number in a 021503 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 021504 aa 7 00052 7651 61 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static from packed ptr 021505 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 021506 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 021507 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 021510 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 021511 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 021512 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr update stack end ptr 021513 aa 3 00000 3721 00 eppsp bb|0 update sp 021514 trace_ss_save_link: 021514 aa 6 00044 6501 00 sprilp sp|linkage_ptr save ptr to linkage in stack head 021515 aa 6 00034 5451 00 sprplb sp|stack_frame.static_ptr save static ptr 021516 aa 6 00026 2521 00 spribp sp|stack_frame.entry_ptr save ptr to entry point 021517 trace_ss_init_stack_join: 021517 aa 6 00046 2525 00 spbpbp sp|text_base_ptr save ptr to base of text segment 021520 aa 6 00024 2525 00 spbpbp sp|stack_frame.return_ptr init procedure call return point 021521 aa 6 00037 4501 00 stz sp|stack_frame.operator_ret_ptr init operator return offset " 021522 0a 017636 3500 00 eppap trace_operator_table and pointer to operators 021523 aa 6 00030 2501 00 spriap sp|stack_frame.operator_ptr save pointer to operator segment 021524 aa 6 00004 2515 00 spriab sp|4 save pointer to end of frame for temp extensions 021525 aa 000000 6340 07 ldi 0,dl reset all indicators (overflow mask in particular) 021526 aa 2 00005 7101 00 tra bp|5 and return to user program 7451 " 7452 ext_entry_desc trace_,ss_ 021527 trace_ss_ext_entry_desc: 021527 aa 2 77775 3521 00 eppbp bp|-3 get correct entry pointer value trace trace_ 021530 0a 021530 2130 00 epaq * get segment number of pl1_operators_ 021531 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get our linkage ptr 021532 aa 7 00024 5421 20 sprpbp sb|stack_header.stack_end_ptr,* save entry ptr as packed ptr 021533 aa 7 00024 3521 20 eppbp sb|stack_header.stack_end_ptr,* 021534 aa 2 00001 5411 00 sprpab bp|1 save lisp linkage ptr (might be lisp environment) 021535 4a 4 01124 2721 20 tspbp trace_catch_$catch_pl1_ 021536 aa 7 00024 3515 20 eppab sb|stack_header.stack_end_ptr,* 021537 aa 1 00000 7621 00 lprpbp ab|0 restore entry ptr 021540 aa 1 00001 7611 00 lprpab ab|1 restore lisp linkage ptr 021541 aa 2 00000 2131 00 epaq bp|0 get segment number of text 021542 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get seg no, offset of linkage from packed ptr 021543 aa 7 00052 7651 61 lprplb sb|stack_header.isot_ptr,*au get seg no, offset of static from packed ptr 021544 aa 7 00024 3535 20 eppbb sb|stack_header.stack_end_ptr,* get ptr to next stack frame 021545 aa 3 00020 6521 00 sprisp bb|stack_frame.prev_sp set back ptr of new frame 021546 aa 3 00032 2501 00 spriap bb|stack_frame.arg_ptr save arg pointer 021547 aa 3 00000 3515 17 eppab bb|0,7 get pointer to end of new frame 021550 aa 3 00022 2515 00 spriab bb|stack_frame.next_sp set next pointer of new frame 021551 aa 7 00024 2515 00 spriab sb|stack_header.stack_end_ptr set new stack end ptr 021552 aa 3 00000 3721 00 eppsp bb|0 update sp " 021553 trace_ss_eed: 021553 aa 0 00000 2351 00 lda ap|0 get 2*n_args in au, code in al 021554 aa 000010 3150 07 cana 8,dl is there an extra arg 021555 aa 000002 6000 04 tze 2,ic no 021556 aa 000002 0750 03 ada 2,du yes, allow for it 021557 aa 0 00002 3535 01 eppbb ap|2,au get ptr to descriptors 021560 aa 6 00042 2535 00 spribb sp|descriptor_ptr set ptr in stack frame 021561 0a 021514 7100 00 tra trace_ss_save_link join common section 7453 " 021562 7454 trace_entry_operators_end: 7455 7456 " 7457 " The following code is used by trace to gain control of PL/I and FORTRAN 7458 " programs running in HFP mode. 7459 " 7460 transfer_vector trace_,hfp_ " " Due to the presence of double-word constants (at bit_mask and mask_bit) " these instructions must presently begin on an even-word boundary. " Note that if an odd number of words is added to the front of the " operator_table region, then the following even pseudo-op must be " changed to an odd pseudo-op. If you forget, an assembly error will " result (due to clever divide-by-zero, below). " even " " The following section, from location 0 to label operator_table, is referenced " directly from PL/1 programs by means of offsets of the form ap|-n (ap pointing " at pl1_operators_$operator_table). For this reason, the order of the " following instructions must not be changed. Any new coding must be placed at " the FRONT of the segment. " " This table translates a bit number between 0 and 35 to a char number " between 0 and 3. " even 021562 trace_hfp_bitno_to_charno_table: 000011 dup 9 021562 aa 000000 000000 dec 0 dupend 021563 aa 000000 000000 dec 0 021564 aa 000000 000000 dec 0 021565 aa 000000 000000 dec 0 021566 aa 000000 000000 dec 0 021567 aa 000000 000000 dec 0 021570 aa 000000 000000 dec 0 021571 aa 000000 000000 dec 0 021572 aa 000000 000000 dec 0 000011 dup 9 021573 aa 000000 000001 dec 1 dupend 021574 aa 000000 000001 dec 1 021575 aa 000000 000001 dec 1 021576 aa 000000 000001 dec 1 021577 aa 000000 000001 dec 1 021600 aa 000000 000001 dec 1 021601 aa 000000 000001 dec 1 021602 aa 000000 000001 dec 1 021603 aa 000000 000001 dec 1 000011 dup 9 021604 aa 000000 000002 dec 2 dupend 021605 aa 000000 000002 dec 2 021606 aa 000000 000002 dec 2 021607 aa 000000 000002 dec 2 021610 aa 000000 000002 dec 2 021611 aa 000000 000002 dec 2 021612 aa 000000 000002 dec 2 021613 aa 000000 000002 dec 2 021614 aa 000000 000002 dec 2 000011 dup 9 021615 aa 000000 000003 dec 3 dupend 021616 aa 000000 000003 dec 3 021617 aa 000000 000003 dec 3 021620 aa 000000 000003 dec 3 021621 aa 000000 000003 dec 3 021622 aa 000000 000003 dec 3 021623 aa 000000 000003 dec 3 021624 aa 000000 000003 dec 3 021625 aa 000000 000003 dec 3 " " The following tables are for use with the TCT instruction. " Any single, given, character can be searched for using these " tables. " 000163 dup 115 021626 aa 777777 777777 dec -1 dupend 021627 aa 777777 777777 dec -1 021630 aa 777777 777777 dec -1 021631 aa 777777 777777 dec -1 021632 aa 777777 777777 dec -1 021633 aa 777777 777777 dec -1 021634 aa 777777 777777 dec -1 021635 aa 777777 777777 dec -1 021636 aa 777777 777777 dec -1 021637 aa 777777 777777 dec -1 021640 aa 777777 777777 dec -1 021641 aa 777777 777777 dec -1 021642 aa 777777 777777 dec -1 021643 aa 777777 777777 dec -1 021644 aa 777777 777777 dec -1 021645 aa 777777 777777 dec -1 021646 aa 777777 777777 dec -1 021647 aa 777777 777777 dec -1 021650 aa 777777 777777 dec -1 021651 aa 777777 777777 dec -1 021652 aa 777777 777777 dec -1 021653 aa 777777 777777 dec -1 021654 aa 777777 777777 dec -1 021655 aa 777777 777777 dec -1 021656 aa 777777 777777 dec -1 021657 aa 777777 777777 dec -1 021660 aa 777777 777777 dec -1 021661 aa 777777 777777 dec -1 021662 aa 777777 777777 dec -1 021663 aa 777777 777777 dec -1 021664 aa 777777 777777 dec -1 021665 aa 777777 777777 dec -1 021666 aa 777777 777777 dec -1 021667 aa 777777 777777 dec -1 021670 aa 777777 777777 dec -1 021671 aa 777777 777777 dec -1 021672 aa 777777 777777 dec -1 021673 aa 777777 777777 dec -1 021674 aa 777777 777777 dec -1 021675 aa 777777 777777 dec -1 021676 aa 777777 777777 dec -1 021677 aa 777777 777777 dec -1 021700 aa 777777 777777 dec -1 021701 aa 777777 777777 dec -1 021702 aa 777777 777777 dec -1 021703 aa 777777 777777 dec -1 021704 aa 777777 777777 dec -1 021705 aa 777777 777777 dec -1 021706 aa 777777 777777 dec -1 021707 aa 777777 777777 dec -1 021710 aa 777777 777777 dec -1 021711 aa 777777 777777 dec -1 021712 aa 777777 777777 dec -1 021713 aa 777777 777777 dec -1 021714 aa 777777 777777 dec -1 021715 aa 777777 777777 dec -1 021716 aa 777777 777777 dec -1 021717 aa 777777 777777 dec -1 021720 aa 777777 777777 dec -1 021721 aa 777777 777777 dec -1 021722 aa 777777 777777 dec -1 021723 aa 777777 777777 dec -1 021724 aa 777777 777777 dec -1 021725 aa 777777 777777 dec -1 021726 aa 777777 777777 dec -1 021727 aa 777777 777777 dec -1 021730 aa 777777 777777 dec -1 021731 aa 777777 777777 dec -1 021732 aa 777777 777777 dec -1 021733 aa 777777 777777 dec -1 021734 aa 777777 777777 dec -1 021735 aa 777777 777777 dec -1 021736 aa 777777 777777 dec -1 021737 aa 777777 777777 dec -1 021740 aa 777777 777777 dec -1 021741 aa 777777 777777 dec -1 021742 aa 777777 777777 dec -1 021743 aa 777777 777777 dec -1 021744 aa 777777 777777 dec -1 021745 aa 777777 777777 dec -1 021746 aa 777777 777777 dec -1 021747 aa 777777 777777 dec -1 021750 aa 777777 777777 dec -1 021751 aa 777777 777777 dec -1 021752 aa 777777 777777 dec -1 021753 aa 777777 777777 dec -1 021754 aa 777777 777777 dec -1 021755 aa 777777 777777 dec -1 021756 aa 777777 777777 dec -1 021757 aa 777777 777777 dec -1 021760 aa 777777 777777 dec -1 021761 aa 777777 777777 dec -1 021762 aa 777777 777777 dec -1 021763 aa 777777 777777 dec -1 021764 aa 777777 777777 dec -1 021765 aa 777777 777777 dec -1 021766 aa 777777 777777 dec -1 021767 aa 777777 777777 dec -1 021770 aa 777777 777777 dec -1 021771 aa 777777 777777 dec -1 021772 aa 777777 777777 dec -1 021773 aa 777777 777777 dec -1 021774 aa 777777 777777 dec -1 021775 aa 777777 777777 dec -1 021776 aa 777777 777777 dec -1 021777 aa 777777 777777 dec -1 022000 aa 777777 777777 dec -1 022001 aa 777777 777777 dec -1 022002 aa 777777 777777 dec -1 022003 aa 777777 777777 dec -1 022004 aa 777777 777777 dec -1 022005 aa 777777 777777 dec -1 022006 aa 777777 777777 dec -1 022007 aa 777777 777777 dec -1 022010 aa 777777 777777 dec -1 " 022011 trace_hfp_tct_octal_060: 000004 dup 4 022011 aa 777777 777777 dec -1 dupend 022012 aa 777777 777777 dec -1 022013 aa 777777 777777 dec -1 022014 aa 777777 777777 dec -1 " 022015 trace_hfp_tct_octal_040: 000010 dup 8 022015 aa 777777 777777 dec -1 dupend 022016 aa 777777 777777 dec -1 022017 aa 777777 777777 dec -1 022020 aa 777777 777777 dec -1 022021 aa 777777 777777 dec -1 022022 aa 777777 777777 dec -1 022023 aa 777777 777777 dec -1 022024 aa 777777 777777 dec -1 022025 trace_hfp_tct_byte_0: 022025 aa 000777 777777 vfd 9/0,9/-1,9/-1,9/-1 000177 dup 127 022026 aa 777777 777777 dec -1 dupend 022027 aa 777777 777777 dec -1 022030 aa 777777 777777 dec -1 022031 aa 777777 777777 dec -1 022032 aa 777777 777777 dec -1 022033 aa 777777 777777 dec -1 022034 aa 777777 777777 dec -1 022035 aa 777777 777777 dec -1 022036 aa 777777 777777 dec -1 022037 aa 777777 777777 dec -1 022040 aa 777777 777777 dec -1 022041 aa 777777 777777 dec -1 022042 aa 777777 777777 dec -1 022043 aa 777777 777777 dec -1 022044 aa 777777 777777 dec -1 022045 aa 777777 777777 dec -1 022046 aa 777777 777777 dec -1 022047 aa 777777 777777 dec -1 022050 aa 777777 777777 dec -1 022051 aa 777777 777777 dec -1 022052 aa 777777 777777 dec -1 022053 aa 777777 777777 dec -1 022054 aa 777777 777777 dec -1 022055 aa 777777 777777 dec -1 022056 aa 777777 777777 dec -1 022057 aa 777777 777777 dec -1 022060 aa 777777 777777 dec -1 022061 aa 777777 777777 dec -1 022062 aa 777777 777777 dec -1 022063 aa 777777 777777 dec -1 022064 aa 777777 777777 dec -1 022065 aa 777777 777777 dec -1 022066 aa 777777 777777 dec -1 022067 aa 777777 777777 dec -1 022070 aa 777777 777777 dec -1 022071 aa 777777 777777 dec -1 022072 aa 777777 777777 dec -1 022073 aa 777777 777777 dec -1 022074 aa 777777 777777 dec -1 022075 aa 777777 777777 dec -1 022076 aa 777777 777777 dec -1 022077 aa 777777 777777 dec -1 022100 aa 777777 777777 dec -1 022101 aa 777777 777777 dec -1 022102 aa 777777 777777 dec -1 022103 aa 777777 777777 dec -1 022104 aa 777777 777777 dec -1 022105 aa 777777 777777 dec -1 022106 aa 777777 777777 dec -1 022107 aa 777777 777777 dec -1 022110 aa 777777 777777 dec -1 022111 aa 777777 777777 dec -1 022112 aa 777777 777777 dec -1 022113 aa 777777 777777 dec -1 022114 aa 777777 777777 dec -1 022115 aa 777777 777777 dec -1 022116 aa 777777 777777 dec -1 022117 aa 777777 777777 dec -1 022120 aa 777777 777777 dec -1 022121 aa 777777 777777 dec -1 022122 aa 777777 777777 dec -1 022123 aa 777777 777777 dec -1 022124 aa 777777 777777 dec -1 022125 aa 777777 777777 dec -1 022126 aa 777777 777777 dec -1 022127 aa 777777 777777 dec -1 022130 aa 777777 777777 dec -1 022131 aa 777777 777777 dec -1 022132 aa 777777 777777 dec -1 022133 aa 777777 777777 dec -1 022134 aa 777777 777777 dec -1 022135 aa 777777 777777 dec -1 022136 aa 777777 777777 dec -1 022137 aa 777777 777777 dec -1 022140 aa 777777 777777 dec -1 022141 aa 777777 777777 dec -1 022142 aa 777777 777777 dec -1 022143 aa 777777 777777 dec -1 022144 aa 777777 777777 dec -1 022145 aa 777777 777777 dec -1 022146 aa 777777 777777 dec -1 022147 aa 777777 777777 dec -1 022150 aa 777777 777777 dec -1 022151 aa 777777 777777 dec -1 022152 aa 777777 777777 dec -1 022153 aa 777777 777777 dec -1 022154 aa 777777 777777 dec -1 022155 aa 777777 777777 dec -1 022156 aa 777777 777777 dec -1 022157 aa 777777 777777 dec -1 022160 aa 777777 777777 dec -1 022161 aa 777777 777777 dec -1 022162 aa 777777 777777 dec -1 022163 aa 777777 777777 dec -1 022164 aa 777777 777777 dec -1 022165 aa 777777 777777 dec -1 022166 aa 777777 777777 dec -1 022167 aa 777777 777777 dec -1 022170 aa 777777 777777 dec -1 022171 aa 777777 777777 dec -1 022172 aa 777777 777777 dec -1 022173 aa 777777 777777 dec -1 022174 aa 777777 777777 dec -1 022175 aa 777777 777777 dec -1 022176 aa 777777 777777 dec -1 022177 aa 777777 777777 dec -1 022200 aa 777777 777777 dec -1 022201 aa 777777 777777 dec -1 022202 aa 777777 777777 dec -1 022203 aa 777777 777777 dec -1 022204 aa 777777 777777 dec -1 022205 aa 777777 777777 dec -1 022206 aa 777777 777777 dec -1 022207 aa 777777 777777 dec -1 022210 aa 777777 777777 dec -1 022211 aa 777777 777777 dec -1 022212 aa 777777 777777 dec -1 022213 aa 777777 777777 dec -1 022214 aa 777777 777777 dec -1 022215 aa 777777 777777 dec -1 022216 aa 777777 777777 dec -1 022217 aa 777777 777777 dec -1 022220 aa 777777 777777 dec -1 022221 aa 777777 777777 dec -1 022222 aa 777777 777777 dec -1 022223 aa 777777 777777 dec -1 022224 aa 777777 777777 dec -1 " 022225 trace_hfp_tct_byte_1: 022225 aa 777000 777777 vfd 9/-1,9/0,9/-1,9/-1 000177 dup 127 022226 aa 777777 777777 dec -1 dupend 022227 aa 777777 777777 dec -1 022230 aa 777777 777777 dec -1 022231 aa 777777 777777 dec -1 022232 aa 777777 777777 dec -1 022233 aa 777777 777777 dec -1 022234 aa 777777 777777 dec -1 022235 aa 777777 777777 dec -1 022236 aa 777777 777777 dec -1 022237 aa 777777 777777 dec -1 022240 aa 777777 777777 dec -1 022241 aa 777777 777777 dec -1 022242 aa 777777 777777 dec -1 022243 aa 777777 777777 dec -1 022244 aa 777777 777777 dec -1 022245 aa 777777 777777 dec -1 022246 aa 777777 777777 dec -1 022247 aa 777777 777777 dec -1 022250 aa 777777 777777 dec -1 022251 aa 777777 777777 dec -1 022252 aa 777777 777777 dec -1 022253 aa 777777 777777 dec -1 022254 aa 777777 777777 dec -1 022255 aa 777777 777777 dec -1 022256 aa 777777 777777 dec -1 022257 aa 777777 777777 dec -1 022260 aa 777777 777777 dec -1 022261 aa 777777 777777 dec -1 022262 aa 777777 777777 dec -1 022263 aa 777777 777777 dec -1 022264 aa 777777 777777 dec -1 022265 aa 777777 777777 dec -1 022266 aa 777777 777777 dec -1 022267 aa 777777 777777 dec -1 022270 aa 777777 777777 dec -1 022271 aa 777777 777777 dec -1 022272 aa 777777 777777 dec -1 022273 aa 777777 777777 dec -1 022274 aa 777777 777777 dec -1 022275 aa 777777 777777 dec -1 022276 aa 777777 777777 dec -1 022277 aa 777777 777777 dec -1 022300 aa 777777 777777 dec -1 022301 aa 777777 777777 dec -1 022302 aa 777777 777777 dec -1 022303 aa 777777 777777 dec -1 022304 aa 777777 777777 dec -1 022305 aa 777777 777777 dec -1 022306 aa 777777 777777 dec -1 022307 aa 777777 777777 dec -1 022310 aa 777777 777777 dec -1 022311 aa 777777 777777 dec -1 022312 aa 777777 777777 dec -1 022313 aa 777777 777777 dec -1 022314 aa 777777 777777 dec -1 022315 aa 777777 777777 dec -1 022316 aa 777777 777777 dec -1 022317 aa 777777 777777 dec -1 022320 aa 777777 777777 dec -1 022321 aa 777777 777777 dec -1 022322 aa 777777 777777 dec -1 022323 aa 777777 777777 dec -1 022324 aa 777777 777777 dec -1 022325 aa 777777 777777 dec -1 022326 aa 777777 777777 dec -1 022327 aa 777777 777777 dec -1 022330 aa 777777 777777 dec -1 022331 aa 777777 777777 dec -1 022332 aa 777777 777777 dec -1 022333 aa 777777 777777 dec -1 022334 aa 777777 777777 dec -1 022335 aa 777777 777777 dec -1 022336 aa 777777 777777 dec -1 022337 aa 777777 777777 dec -1 022340 aa 777777 777777 dec -1 022341 aa 777777 777777 dec -1 022342 aa 777777 777777 dec -1 022343 aa 777777 777777 dec -1 022344 aa 777777 777777 dec -1 022345 aa 777777 777777 dec -1 022346 aa 777777 777777 dec -1 022347 aa 777777 777777 dec -1 022350 aa 777777 777777 dec -1 022351 aa 777777 777777 dec -1 022352 aa 777777 777777 dec -1 022353 aa 777777 777777 dec -1 022354 aa 777777 777777 dec -1 022355 aa 777777 777777 dec -1 022356 aa 777777 777777 dec -1 022357 aa 777777 777777 dec -1 022360 aa 777777 777777 dec -1 022361 aa 777777 777777 dec -1 022362 aa 777777 777777 dec -1 022363 aa 777777 777777 dec -1 022364 aa 777777 777777 dec -1 022365 aa 777777 777777 dec -1 022366 aa 777777 777777 dec -1 022367 aa 777777 777777 dec -1 022370 aa 777777 777777 dec -1 022371 aa 777777 777777 dec -1 022372 aa 777777 777777 dec -1 022373 aa 777777 777777 dec -1 022374 aa 777777 777777 dec -1 022375 aa 777777 777777 dec -1 022376 aa 777777 777777 dec -1 022377 aa 777777 777777 dec -1 022400 aa 777777 777777 dec -1 022401 aa 777777 777777 dec -1 022402 aa 777777 777777 dec -1 022403 aa 777777 777777 dec -1 022404 aa 777777 777777 dec -1 022405 aa 777777 777777 dec -1 022406 aa 777777 777777 dec -1 022407 aa 777777 777777 dec -1 022410 aa 777777 777777 dec -1 022411 aa 777777 777777 dec -1 022412 aa 777777 777777 dec -1 022413 aa 777777 777777 dec -1 022414 aa 777777 777777 dec -1 022415 aa 777777 777777 dec -1 022416 aa 777777 777777 dec -1 022417 aa 777777 777777 dec -1 022420 aa 777777 777777 dec -1 022421 aa 777777 777777 dec -1 022422 aa 777777 777777 dec -1 022423 aa 777777 777777 dec -1 022424 aa 777777 777777 dec -1 " 022425 trace_hfp_tct_byte_2: 022425 aa 777777 000777 vfd 9/-1,9/-1,9/0,9/-1 000177 dup 127 022426 aa 777777 777777 dec -1 dupend 022427 aa 777777 777777 dec -1 022430 aa 777777 777777 dec -1 022431 aa 777777 777777 dec -1 022432 aa 777777 777777 dec -1 022433 aa 777777 777777 dec -1 022434 aa 777777 777777 dec -1 022435 aa 777777 777777 dec -1 022436 aa 777777 777777 dec -1 022437 aa 777777 777777 dec -1 022440 aa 777777 777777 dec -1 022441 aa 777777 777777 dec -1 022442 aa 777777 777777 dec -1 022443 aa 777777 777777 dec -1 022444 aa 777777 777777 dec -1 022445 aa 777777 777777 dec -1 022446 aa 777777 777777 dec -1 022447 aa 777777 777777 dec -1 022450 aa 777777 777777 dec -1 022451 aa 777777 777777 dec -1 022452 aa 777777 777777 dec -1 022453 aa 777777 777777 dec -1 022454 aa 777777 777777 dec -1 022455 aa 777777 777777 dec -1 022456 aa 777777 777777 dec -1 022457 aa 777777 777777 dec -1 022460 aa 777777 777777 dec -1 022461 aa 777777 777777 dec -1 022462 aa 777777 777777 dec -1 022463 aa 777777 777777 dec -1 022464 aa 777777 777777 dec -1 022465 aa 777777 777777 dec -1 022466 aa 777777 777777 dec -1 022467 aa 777777 777777 dec -1 022470 aa 777777 777777 dec -1 022471 aa 777777 777777 dec -1 022472 aa 777777 777777 dec -1 022473 aa 777777 777777 dec -1 022474 aa 777777 777777 dec -1 022475 aa 777777 777777 dec -1 022476 aa 777777 777777 dec -1 022477 aa 777777 777777 dec -1 022500 aa 777777 777777 dec -1 022501 aa 777777 777777 dec -1 022502 aa 777777 777777 dec -1 022503 aa 777777 777777 dec -1 022504 aa 777777 777777 dec -1 022505 aa 777777 777777 dec -1 022506 aa 777777 777777 dec -1 022507 aa 777777 777777 dec -1 022510 aa 777777 777777 dec -1 022511 aa 777777 777777 dec -1 022512 aa 777777 777777 dec -1 022513 aa 777777 777777 dec -1 022514 aa 777777 777777 dec -1 022515 aa 777777 777777 dec -1 022516 aa 777777 777777 dec -1 022517 aa 777777 777777 dec -1 022520 aa 777777 777777 dec -1 022521 aa 777777 777777 dec -1 022522 aa 777777 777777 dec -1 022523 aa 777777 777777 dec -1 022524 aa 777777 777777 dec -1 022525 aa 777777 777777 dec -1 022526 aa 777777 777777 dec -1 022527 aa 777777 777777 dec -1 022530 aa 777777 777777 dec -1 022531 aa 777777 777777 dec -1 022532 aa 777777 777777 dec -1 022533 aa 777777 777777 dec -1 022534 aa 777777 777777 dec -1 022535 aa 777777 777777 dec -1 022536 aa 777777 777777 dec -1 022537 aa 777777 777777 dec -1 022540 aa 777777 777777 dec -1 022541 aa 777777 777777 dec -1 022542 aa 777777 777777 dec -1 022543 aa 777777 777777 dec -1 022544 aa 777777 777777 dec -1 022545 aa 777777 777777 dec -1 022546 aa 777777 777777 dec -1 022547 aa 777777 777777 dec -1 022550 aa 777777 777777 dec -1 022551 aa 777777 777777 dec -1 022552 aa 777777 777777 dec -1 022553 aa 777777 777777 dec -1 022554 aa 777777 777777 dec -1 022555 aa 777777 777777 dec -1 022556 aa 777777 777777 dec -1 022557 aa 777777 777777 dec -1 022560 aa 777777 777777 dec -1 022561 aa 777777 777777 dec -1 022562 aa 777777 777777 dec -1 022563 aa 777777 777777 dec -1 022564 aa 777777 777777 dec -1 022565 aa 777777 777777 dec -1 022566 aa 777777 777777 dec -1 022567 aa 777777 777777 dec -1 022570 aa 777777 777777 dec -1 022571 aa 777777 777777 dec -1 022572 aa 777777 777777 dec -1 022573 aa 777777 777777 dec -1 022574 aa 777777 777777 dec -1 022575 aa 777777 777777 dec -1 022576 aa 777777 777777 dec -1 022577 aa 777777 777777 dec -1 022600 aa 777777 777777 dec -1 022601 aa 777777 777777 dec -1 022602 aa 777777 777777 dec -1 022603 aa 777777 777777 dec -1 022604 aa 777777 777777 dec -1 022605 aa 777777 777777 dec -1 022606 aa 777777 777777 dec -1 022607 aa 777777 777777 dec -1 022610 aa 777777 777777 dec -1 022611 aa 777777 777777 dec -1 022612 aa 777777 777777 dec -1 022613 aa 777777 777777 dec -1 022614 aa 777777 777777 dec -1 022615 aa 777777 777777 dec -1 022616 aa 777777 777777 dec -1 022617 aa 777777 777777 dec -1 022620 aa 777777 777777 dec -1 022621 aa 777777 777777 dec -1 022622 aa 777777 777777 dec -1 022623 aa 777777 777777 dec -1 022624 aa 777777 777777 dec -1 " 022625 trace_hfp_tct_byte_3: 022625 aa 777777 777000 vfd 9/-1,9/-1,9/-1,9/0 000177 dup 127 022626 aa 777777 777777 dec -1 dupend 022627 aa 777777 777777 dec -1 022630 aa 777777 777777 dec -1 022631 aa 777777 777777 dec -1 022632 aa 777777 777777 dec -1 022633 aa 777777 777777 dec -1 022634 aa 777777 777777 dec -1 022635 aa 777777 777777 dec -1 022636 aa 777777 777777 dec -1 022637 aa 777777 777777 dec -1 022640 aa 777777 777777 dec -1 022641 aa 777777 777777 dec -1 022642 aa 777777 777777 dec -1 022643 aa 777777 777777 dec -1 022644 aa 777777 777777 dec -1 022645 aa 777777 777777 dec -1 022646 aa 777777 777777 dec -1 022647 aa 777777 777777 dec -1 022650 aa 777777 777777 dec -1 022651 aa 777777 777777 dec -1 022652 aa 777777 777777 dec -1 022653 aa 777777 777777 dec -1 022654 aa 777777 777777 dec -1 022655 aa 777777 777777 dec -1 022656 aa 777777 777777 dec -1 022657 aa 777777 777777 dec -1 022660 aa 777777 777777 dec -1 022661 aa 777777 777777 dec -1 022662 aa 777777 777777 dec -1 022663 aa 777777 777777 dec -1 022664 aa 777777 777777 dec -1 022665 aa 777777 777777 dec -1 022666 aa 777777 777777 dec -1 022667 aa 777777 777777 dec -1 022670 aa 777777 777777 dec -1 022671 aa 777777 777777 dec -1 022672 aa 777777 777777 dec -1 022673 aa 777777 777777 dec -1 022674 aa 777777 777777 dec -1 022675 aa 777777 777777 dec -1 022676 aa 777777 777777 dec -1 022677 aa 777777 777777 dec -1 022700 aa 777777 777777 dec -1 022701 aa 777777 777777 dec -1 022702 aa 777777 777777 dec -1 022703 aa 777777 777777 dec -1 022704 aa 777777 777777 dec -1 022705 aa 777777 777777 dec -1 022706 aa 777777 777777 dec -1 022707 aa 777777 777777 dec -1 022710 aa 777777 777777 dec -1 022711 aa 777777 777777 dec -1 022712 aa 777777 777777 dec -1 022713 aa 777777 777777 dec -1 022714 aa 777777 777777 dec -1 022715 aa 777777 777777 dec -1 022716 aa 777777 777777 dec -1 022717 aa 777777 777777 dec -1 022720 aa 777777 777777 dec -1 022721 aa 777777 777777 dec -1 022722 aa 777777 777777 dec -1 022723 aa 777777 777777 dec -1 022724 aa 777777 777777 dec -1 022725 aa 777777 777777 dec -1 022726 aa 777777 777777 dec -1 022727 aa 777777 777777 dec -1 022730 aa 777777 777777 dec -1 022731 aa 777777 777777 dec -1 022732 aa 777777 777777 dec -1 022733 aa 777777 777777 dec -1 022734 aa 777777 777777 dec -1 022735 aa 777777 777777 dec -1 022736 aa 777777 777777 dec -1 022737 aa 777777 777777 dec -1 022740 aa 777777 777777 dec -1 022741 aa 777777 777777 dec -1 022742 aa 777777 777777 dec -1 022743 aa 777777 777777 dec -1 022744 aa 777777 777777 dec -1 022745 aa 777777 777777 dec -1 022746 aa 777777 777777 dec -1 022747 aa 777777 777777 dec -1 022750 aa 777777 777777 dec -1 022751 aa 777777 777777 dec -1 022752 aa 777777 777777 dec -1 022753 aa 777777 777777 dec -1 022754 aa 777777 777777 dec -1 022755 aa 777777 777777 dec -1 022756 aa 777777 777777 dec -1 022757 aa 777777 777777 dec -1 022760 aa 777777 777777 dec -1 022761 aa 777777 777777 dec -1 022762 aa 777777 777777 dec -1 022763 aa 777777 777777 dec -1 022764 aa 777777 777777 dec -1 022765 aa 777777 777777 dec -1 022766 aa 777777 777777 dec -1 022767 aa 777777 777777 dec -1 022770 aa 777777 777777 dec -1 022771 aa 777777 777777 dec -1 022772 aa 777777 777777 dec -1 022773 aa 777777 777777 dec -1 022774 aa 777777 777777 dec -1 022775 aa 777777 777777 dec -1 022776 aa 777777 777777 dec -1 022777 aa 777777 777777 dec -1 023000 aa 777777 777777 dec -1 023001 aa 777777 777777 dec -1 023002 aa 777777 777777 dec -1 023003 aa 777777 777777 dec -1 023004 aa 777777 777777 dec -1 023005 aa 777777 777777 dec -1 023006 aa 777777 777777 dec -1 023007 aa 777777 777777 dec -1 023010 aa 777777 777777 dec -1 023011 aa 777777 777777 dec -1 023012 aa 777777 777777 dec -1 023013 aa 777777 777777 dec -1 023014 aa 777777 777777 dec -1 023015 aa 777777 777777 dec -1 023016 aa 777777 777777 dec -1 023017 aa 777777 777777 dec -1 023020 aa 777777 777777 dec -1 023021 aa 777777 777777 dec -1 023022 aa 777777 777777 dec -1 023023 aa 777777 777777 dec -1 023024 aa 777777 777777 dec -1 " " The number of words per segment of a FORTRAN Very Large Array. " 023025 trace_hfp_VLA_words_per_seg_: 023025 aa 000001 000000 vfd 36/256*1024 " " table of csl's for use by bool builtin function " 023026 trace_hfp_csl_vector: 023026 aa 0 00140 0605 40 csl (pr,rl),(pr,rl),bool(0) 023027 aa 0 01140 0605 40 csl (pr,rl),(pr,rl),bool(1) 023030 aa 0 02140 0605 40 csl (pr,rl),(pr,rl),bool(2) 023031 aa 0 03140 0605 40 csl (pr,rl),(pr,rl),bool(3) 023032 aa 0 04140 0605 40 csl (pr,rl),(pr,rl),bool(4) 023033 aa 0 05140 0605 40 csl (pr,rl),(pr,rl),bool(5) 023034 aa 0 06140 0605 40 csl (pr,rl),(pr,rl),bool(6) 023035 aa 0 07140 0605 40 csl (pr,rl),(pr,rl),bool(7) 023036 aa 0 10140 0605 40 csl (pr,rl),(pr,rl),bool(10) 023037 aa 0 11140 0605 40 csl (pr,rl),(pr,rl),bool(11) 023040 aa 0 12140 0605 40 csl (pr,rl),(pr,rl),bool(12) 023041 aa 0 13140 0605 40 csl (pr,rl),(pr,rl),bool(13) 023042 aa 0 14140 0605 40 csl (pr,rl),(pr,rl),bool(14) 023043 aa 0 15140 0605 40 csl (pr,rl),(pr,rl),bool(15) 023044 aa 0 16140 0605 40 csl (pr,rl),(pr,rl),bool(16) 023045 aa 0 17140 0605 40 csl (pr,rl),(pr,rl),bool(17) " " shift table for character offset " 023046 aa 000000 000000 trace_hfp_co_to_bo: dec 0,9b17,18b17,27b17 023047 aa 000011 000000 023050 aa 000022 000000 023051 aa 000033 000000 " " shift table for half word offset " 023052 aa 000000 000000 trace_hfp_ho_to_bo: dec 0,18b17 023053 aa 000022 000000 " " store table from a, 9 bit bytes, character offset " OFFSET SIZE " 023054 trace_hfp_store_a9_co: 023054 aa 2 00000 5511 40 stba bp|0,40 0 1 023055 aa 2 00000 5511 20 stba bp|0,20 1 023056 aa 2 00000 5511 10 stba bp|0,10 2 023057 aa 2 00000 5511 04 stba bp|0,04 3 023060 aa 2 00000 5511 60 stba bp|0,60 0 2 023061 aa 2 00000 5511 30 stba bp|0,30 1 023062 aa 2 00000 5511 14 stba bp|0,14 2 023063 aa 2 00000 5511 04 stba bp|0,04 3 023064 aa 2 00000 5511 70 stba bp|0,70 0 3 023065 aa 2 00000 5511 34 stba bp|0,34 1 023066 aa 2 00000 5511 14 stba bp|0,14 2 023067 aa 2 00000 5511 04 stba bp|0,04 3 023070 aa 2 00000 7551 00 sta bp|0 0 4 023071 aa 2 00000 5511 34 stba bp|0,34 1 023072 aa 2 00000 5511 14 stba bp|0,14 2 023073 aa 2 00000 5511 04 stba bp|0,04 3 023074 aa 2 00000 7551 00 sta bp|0 0 5 023075 aa 2 00000 5511 34 stba bp|0,34 1 023076 aa 2 00000 5511 14 stba bp|0,14 2 023077 aa 2 00000 5511 04 stba bp|0,04 3 " " store table from q, 9 bit bytes, character offset " OFFSET SIZE " 023100 trace_hfp_store_q9_co: 023100 aa 000000 0110 07 nop 0,dl 0 2 023101 aa 000000 0110 07 nop 0,dl 1 023102 aa 000000 0110 07 nop 0,dl 2 023103 aa 2 00001 5521 40 stbq bp|1,40 3 023104 aa 000000 0110 07 nop 0,dl 0 3 023105 aa 000000 0110 07 nop 0,dl 1 023106 aa 2 00001 5521 40 stbq bp|1,40 2 023107 aa 2 00001 5521 60 stbq bp|1,60 3 023110 aa 000000 0110 07 nop 0,dl 0 4 023111 aa 2 00001 5521 40 stbq bp|1,40 1 023112 aa 2 00001 5521 60 stbq bp|1,60 2 023113 aa 2 00001 5521 70 stbq bp|1,70 3 023114 aa 2 00001 5521 40 stbq bp|1,40 0 5 023115 aa 2 00001 5521 60 stbq bp|1,60 1 023116 aa 2 00001 5521 70 stbq bp|1,70 2 023117 aa 2 00001 7561 00 stq bp|1 3 " " store table from a, 9 bit bytes, half word offset " OFFSET SIZE " 023120 trace_hfp_store_a9_ho: 023120 aa 2 00000 5511 40 stba bp|0,40 0 1 023121 aa 2 00000 5511 10 stba bp|0,10 1 023122 aa 2 00000 5511 60 stba bp|0,60 0 2 023123 aa 2 00000 5511 14 stba bp|0,14 1 023124 aa 2 00000 5511 70 stba bp|0,70 0 3 023125 aa 2 00000 5511 14 stba bp|0,14 1 023126 aa 2 00000 7551 00 sta bp|0 0 4 023127 aa 2 00000 5511 14 stba bp|0,14 1 023130 aa 2 00000 7551 00 sta bp|0 0 5 023131 aa 2 00000 5511 14 stba bp|0,14 1 023132 aa 2 00000 7551 00 sta bp|0 0 6 023133 aa 2 00000 5511 14 stba bp|0,14 1 " " store table from q, 9 bit bytes, half word offset " OFFSET SIZE " 023134 trace_hfp_store_q9_ho: 023134 aa 000000 0110 07 nop 0,dl 0 2 023135 aa 000000 0110 07 nop 0,dl 1 023136 aa 000000 0110 07 nop 0,dl 0 3 023137 aa 2 00001 5521 40 stbq bp|1,40 1 023140 aa 000000 0110 07 nop 0,dl 0 4 023141 aa 2 00001 5521 60 stbq bp|1,60 1 023142 aa 2 00001 5521 40 stbq bp|1,40 0 5 023143 aa 2 00001 5521 70 stbq bp|1,70 1 023144 aa 2 00001 5521 60 stbq bp|1,60 0 6 023145 aa 2 00001 7561 00 stq bp|1 1 " " store table from a, 6 bit bytes, half word offset " OFFSET SIZE " 023146 trace_hfp_store_a6_ho: 023146 aa 2 00000 7511 40 stca bp|0,40 0 1 023147 aa 2 00000 7511 04 stca bp|0,04 1 023150 aa 2 00000 7511 60 stca bp|0,60 0 2 023151 aa 2 00000 7511 06 stca bp|0,06 1 023152 aa 2 00000 7511 70 stca bp|0,70 0 3 023153 aa 2 00000 7511 07 stca bp|0,07 1 023154 aa 2 00000 7511 74 stca bp|0,74 0 4 023155 aa 2 00000 7511 07 stca bp|0,07 1 023156 aa 2 00000 7511 76 stca bp|0,76 0 5 023157 aa 2 00000 7511 07 stca bp|0,07 1 023160 aa 2 00000 7551 00 sta bp|0 0 6 023161 aa 2 00000 7511 07 stca bp|0,07 1 023162 aa 2 00000 7551 00 sta bp|0 0 7 023163 aa 2 00000 7511 07 stca bp|0,07 1 023164 aa 2 00000 7551 00 sta bp|0 0 8 023165 aa 2 00000 7511 07 stca bp|0,07 1 023166 aa 2 00000 7551 00 sta bp|0 0 9 023167 aa 2 00000 7511 07 stca bp|0,07 1 " " store table from q, 6 bit bytes, half word offset " OFFSET SIZE " 023170 trace_hfp_store_q6_ho: 023170 aa 000000 0110 07 nop 0,dl 0 2 023171 aa 000000 0110 07 nop 0,dl 1 023172 aa 000000 0110 07 nop 0,dl 0 3 023173 aa 000000 0110 07 nop 0,dl 1 023174 aa 000000 0110 07 nop 0,dl 0 4 023175 aa 2 00001 7521 40 stcq bp|1,40 1 023176 aa 000000 0110 07 nop 0,dl 0 5 023177 aa 2 00001 7521 60 stcq bp|1,60 1 023200 aa 000000 0110 07 nop 0,dl 0 6 023201 aa 2 00001 7521 70 stcq bp|1,70 1 023202 aa 2 00001 7521 40 stcq bp|1,40 0 7 023203 aa 2 00001 7521 74 stcq bp|1,74 1 023204 aa 2 00001 7521 60 stcq bp|1,60 0 8 023205 aa 2 00001 7521 76 stcq bp|1,76 1 023206 aa 2 00001 7521 70 stcq bp|1,70 0 9 023207 aa 2 00001 7561 00 stq bp|1 1 " " THE FOLLOWING SECTION IS DIRECTLY REFERENCED FROM PL/1 PROGRAMS BY MEANS OF " ap|offset. FOR THIS REASON, THE ORDER OF THE FOLLOWING INSTRUCTIONS MUST " NOT BE CHANGED. " 023210 trace_hfp_operator_table: 023210 trace_hfp_bit_mask: 023210 aa 000000 000000 vfd 0/-1,72/0 023211 aa 000000 000000 023212 aa 400000 000000 vfd 1/-1,71/0 023213 aa 000000 000000 023214 aa 600000 000000 vfd 2/-1,70/0 023215 aa 000000 000000 023216 aa 700000 000000 vfd 3/-1,69/0 023217 aa 000000 000000 023220 aa 740000 000000 vfd 4/-1,68/0 023221 aa 000000 000000 023222 aa 760000 000000 vfd 5/-1,67/0 023223 aa 000000 000000 023224 aa 770000 000000 vfd 6/-1,66/0 023225 aa 000000 000000 023226 aa 774000 000000 vfd 7/-1,65/0 023227 aa 000000 000000 023230 aa 776000 000000 vfd 8/-1,64/0 023231 aa 000000 000000 023232 aa 777000 000000 vfd 9/-1,63/0 023233 aa 000000 000000 023234 aa 777400 000000 vfd 10/-1,62/0 023235 aa 000000 000000 023236 aa 777600 000000 vfd 11/-1,61/0 023237 aa 000000 000000 023240 aa 777700 000000 vfd 12/-1,60/0 023241 aa 000000 000000 023242 aa 777740 000000 vfd 13/-1,59/0 023243 aa 000000 000000 023244 aa 777760 000000 vfd 14/-1,58/0 023245 aa 000000 000000 023246 aa 777770 000000 vfd 15/-1,57/0 023247 aa 000000 000000 023250 aa 777774 000000 vfd 16/-1,56/0 023251 aa 000000 000000 023252 aa 777776 000000 vfd 17/-1,55/0 023253 aa 000000 000000 023254 aa 777777 000000 vfd 18/-1,54/0 023255 aa 000000 000000 023256 aa 777777 400000 vfd 19/-1,53/0 023257 aa 000000 000000 023260 aa 777777 600000 vfd 20/-1,52/0 023261 aa 000000 000000 023262 aa 777777 700000 vfd 21/-1,51/0 023263 aa 000000 000000 023264 aa 777777 740000 vfd 22/-1,50/0 023265 aa 000000 000000 023266 aa 777777 760000 vfd 23/-1,49/0 023267 aa 000000 000000 023270 aa 777777 770000 vfd 24/-1,48/0 023271 aa 000000 000000 023272 aa 777777 774000 vfd 25/-1,47/0 023273 aa 000000 000000 023274 aa 777777 776000 vfd 26/-1,46/0 023275 aa 000000 000000 023276 aa 777777 777000 vfd 27/-1,45/0 023277 aa 000000 000000 023300 aa 777777 777400 vfd 28/-1,44/0 023301 aa 000000 000000 023302 aa 777777 777600 vfd 29/-1,43/0 023303 aa 000000 000000 023304 aa 777777 777700 vfd 30/-1,42/0 023305 aa 000000 000000 023306 aa 777777 777740 vfd 31/-1,41/0 023307 aa 000000 000000 023310 aa 777777 777760 vfd 32/-1,40/0 023311 aa 000000 000000 023312 aa 777777 777770 vfd 33/-1,39/0 023313 aa 000000 000000 023314 aa 777777 777774 vfd 34/-1,38/0 023315 aa 000000 000000 023316 aa 777777 777776 vfd 35/-1,37/0 023317 aa 000000 000000 023320 aa 777777 777777 trace_hfp_ones: vfd 36/-1,36/0 023321 aa 000000 000000 023322 aa 777777 777777 vfd 36/-1,1/-1,35/0 023323 aa 400000 000000 023324 aa 777777 777777 vfd 36/-1,2/-1,34/0 023325 aa 600000 000000 023326 aa 777777 777777 vfd 36/-1,3/-1,33/0 023327 aa 700000 000000 023330 aa 777777 777777 vfd 36/-1,4/-1,32/0 023331 aa 740000 000000 023332 aa 777777 777777 vfd 36/-1,5/-1,31/0 023333 aa 760000 000000 023334 aa 777777 777777 vfd 36/-1,6/-1,30/0 023335 aa 770000 000000 023336 aa 777777 777777 vfd 36/-1,7/-1,29/0 023337 aa 774000 000000 023340 aa 777777 777777 vfd 36/-1,8/-1,28/0 023341 aa 776000 000000 023342 aa 777777 777777 vfd 36/-1,9/-1,27/0 023343 aa 777000 000000 023344 aa 777777 777777 vfd 36/-1,10/-1,26/0 023345 aa 777400 000000 023346 aa 777777 777777 vfd 36/-1,11/-1,25/0 023347 aa 777600 000000 023350 aa 777777 777777 vfd 36/-1,12/-1,24/0 023351 aa 777700 000000 023352 aa 777777 777777 vfd 36/-1,13/-1,23/0 023353 aa 777740 000000 023354 aa 777777 777777 vfd 36/-1,14/-1,22/0 023355 aa 777760 000000 023356 aa 777777 777777 vfd 36/-1,15/-1,21/0 023357 aa 777770 000000 023360 aa 777777 777777 vfd 36/-1,16/-1,20/0 023361 aa 777774 000000 023362 aa 777777 777777 vfd 36/-1,17/-1,19/0 023363 aa 777776 000000 023364 aa 777777 777777 vfd 36/-1,18/-1,18/0 023365 aa 777777 000000 023366 aa 777777 777777 vfd 36/-1,19/-1,17/0 023367 aa 777777 400000 023370 aa 777777 777777 vfd 36/-1,20/-1,16/0 023371 aa 777777 600000 023372 aa 777777 777777 vfd 36/-1,21/-1,15/0 023373 aa 777777 700000 023374 aa 777777 777777 vfd 36/-1,22/-1,14/0 023375 aa 777777 740000 023376 aa 777777 777777 vfd 36/-1,23/-1,13/0 023377 aa 777777 760000 023400 aa 777777 777777 vfd 36/-1,24/-1,12/0 023401 aa 777777 770000 023402 aa 777777 777777 vfd 36/-1,25/-1,11/0 023403 aa 777777 774000 023404 aa 777777 777777 vfd 36/-1,26/-1,10/0 023405 aa 777777 776000 023406 aa 777777 777777 vfd 36/-1,27/-1,9/0 023407 aa 777777 777000 023410 aa 777777 777777 vfd 36/-1,28/-1,8/0 023411 aa 777777 777400 023412 aa 777777 777777 vfd 36/-1,29/-1,7/0 023413 aa 777777 777600 023414 aa 777777 777777 vfd 36/-1,30/-1,6/0 023415 aa 777777 777700 023416 aa 777777 777777 vfd 36/-1,31/-1,5/0 023417 aa 777777 777740 023420 aa 777777 777777 vfd 36/-1,32/-1,4/0 023421 aa 777777 777760 023422 aa 777777 777777 vfd 36/-1,33/-1,3/0 023423 aa 777777 777770 023424 aa 777777 777777 vfd 36/-1,34/-1,2/0 023425 aa 777777 777774 023426 aa 777777 777777 vfd 36/-1,35/-1,1/0 023427 aa 777777 777776 " 023430 trace_hfp_mask_bit: 023430 aa 777777 777777 vfd 0/0,36/-1,36/-1 023431 aa 777777 777777 023432 aa 377777 777777 vfd 1/0,35/-1,36/-1 023433 aa 777777 777777 023434 aa 177777 777777 vfd 2/0,34/-1,36/-1 023435 aa 777777 777777 023436 aa 077777 777777 vfd 3/0,33/-1,36/-1 023437 aa 777777 777777 023440 aa 037777 777777 vfd 4/0,32/-1,36/-1 023441 aa 777777 777777 023442 aa 017777 777777 vfd 5/0,31/-1,36/-1 023443 aa 777777 777777 023444 aa 007777 777777 vfd 6/0,30/-1,36/-1 023445 aa 777777 777777 023446 aa 003777 777777 vfd 7/0,29/-1,36/-1 023447 aa 777777 777777 023450 aa 001777 777777 vfd 8/0,28/-1,36/-1 023451 aa 777777 777777 023452 aa 000777 777777 vfd 9/0,27/-1,36/-1 023453 aa 777777 777777 023454 aa 000377 777777 vfd 10/0,26/-1,36/-1 023455 aa 777777 777777 023456 aa 000177 777777 vfd 11/0,25/-1,36/-1 023457 aa 777777 777777 023460 aa 000077 777777 vfd 12/0,24/-1,36/-1 023461 aa 777777 777777 023462 aa 000037 777777 vfd 13/0,23/-1,36/-1 023463 aa 777777 777777 023464 aa 000017 777777 vfd 14/0,22/-1,36/-1 023465 aa 777777 777777 023466 aa 000007 777777 vfd 15/0,21/-1,36/-1 023467 aa 777777 777777 023470 aa 000003 777777 vfd 16/0,20/-1,36/-1 023471 aa 777777 777777 023472 aa 000001 777777 vfd 17/0,19/-1,36/-1 023473 aa 777777 777777 023474 aa 000000 777777 vfd 18/0,18/-1,36/-1 023475 aa 777777 777777 023476 aa 000000 377777 vfd 19/0,17/-1,36/-1 023477 aa 777777 777777 023500 aa 000000 177777 vfd 20/0,16/-1,36/-1 023501 aa 777777 777777 023502 aa 000000 077777 vfd 21/0,15/-1,36/-1 023503 aa 777777 777777 023504 aa 000000 037777 vfd 22/0,14/-1,36/-1 023505 aa 777777 777777 023506 aa 000000 017777 vfd 23/0,13/-1,36/-1 023507 aa 777777 777777 023510 aa 000000 007777 vfd 24/0,12/-1,36/-1 023511 aa 777777 777777 023512 aa 000000 003777 vfd 25/0,11/-1,36/-1 023513 aa 777777 777777 023514 aa 000000 001777 vfd 26/0,10/-1,36/-1 023515 aa 777777 777777 023516 aa 000000 000777 vfd 27/0,9/-1,36/-1 023517 aa 777777 777777 023520 aa 000000 000377 vfd 28/0,8/-1,36/-1 023521 aa 777777 777777 023522 aa 000000 000177 vfd 29/0,7/-1,36/-1 023523 aa 777777 777777 023524 aa 000000 000077 vfd 30/0,6/-1,36/-1 023525 aa 777777 777777 023526 aa 000000 000037 vfd 31/0,5/-1,36/-1 023527 aa 777777 777777 023530 aa 000000 000017 vfd 32/0,4/-1,36/-1 023531 aa 777777 777777 023532 aa 000000 000007 vfd 33/0,3/-1,36/-1 023533 aa 777777 777777 023534 aa 000000 000003 vfd 34/0,2/-1,36/-1 023535 aa 777777 777777 023536 aa 000000 000001 vfd 35/0,1/-1,36/-1 023537 aa 777777 777777 023540 aa 000000 000000 vfd 36/0,36/-1 023541 aa 777777 777777 023542 trace_hfp_max_single_value: 023542 aa 000000 000000 vfd 37/0,35/-1 023543 aa 377777 777777 023544 aa 000000 000000 vfd 38/0,34/-1 023545 aa 177777 777777 023546 aa 000000 000000 vfd 39/0,33/-1 023547 aa 077777 777777 023550 aa 000000 000000 vfd 40/0,32/-1 023551 aa 037777 777777 023552 aa 000000 000000 vfd 41/0,31/-1 023553 aa 017777 777777 023554 aa 000000 000000 vfd 42/0,30/-1 023555 aa 007777 777777 023556 aa 000000 000000 vfd 43/0,29/-1 023557 aa 003777 777777 023560 aa 000000 000000 vfd 44/0,28/-1 023561 aa 001777 777777 023562 aa 000000 000000 vfd 45/0,27/-1 023563 aa 000777 777777 023564 aa 000000 000000 vfd 46/0,26/-1 023565 aa 000377 777777 023566 aa 000000 000000 vfd 47/0,25/-1 023567 aa 000177 777777 023570 aa 000000 000000 vfd 48/0,24/-1 023571 aa 000077 777777 023572 aa 000000 000000 vfd 49/0,23/-1 023573 aa 000037 777777 023574 aa 000000 000000 vfd 50/0,22/-1 023575 aa 000017 777777 023576 aa 000000 000000 vfd 51/0,21/-1 023577 aa 000007 777777 023600 aa 000000 000000 vfd 52/0,20/-1 023601 aa 000003 777777 023602 aa 000000 000000 vfd 53/0,19/-1 023603 aa 000001 777777 023604 aa 000000 000000 vfd 54/0,18/-1 023605 aa 000000 777777 023606 aa 000000 000000 vfd 55/0,17/-1 023607 aa 000000 377777 023610 aa 000000 000000 vfd 56/0,16/-1 023611 aa 000000 177777 023612 aa 000000 000000 vfd 57/0,15/-1 023613 aa 000000 077777 023614 aa 000000 000000 vfd 58/0,14/-1 023615 aa 000000 037777 023616 aa 000000 000000 vfd 59/0,13/-1 023617 aa 000000 017777 023620 aa 000000 000000 vfd 60/0,12/-1 023621 aa 000000 007777 023622 aa 000000 000000 vfd 61/0,11/-1 023623 aa 000000 003777 023624 aa 000000 000000 vfd 62/0,10/-1 023625 aa 000000 001777 023626 aa 000000 000000 vfd 63/0,9/-1 023627 aa 000000 000777 023630 aa 000000 000000 vfd 64/0,8/-1 023631 aa 000000 000377 023632 aa 000000 000000 vfd 65/0,7/-1 023633 aa 000000 000177 023634 aa 000000 000000 vfd 66/0,6/-1 023635 aa 000000 000077 023636 aa 000000 000000 vfd 67/0,5/-1 023637 aa 000000 000037 023640 aa 000000 000000 vfd 68/0,4/-1 023641 aa 000000 000017 023642 aa 000000 000000 vfd 69/0,3/-1 023643 aa 000000 000007 023644 aa 000000 000000 vfd 70/0,2/-1 023645 aa 000000 000003 023646 aa 000000 000000 vfd 71/0,1/-1 023647 aa 000000 000001 " 023650 aa 040040 040040 trace_hfp_blanks: oct 040040040040,040040040040 023651 aa 040040 040040 023652 aa 000040 040040 oct 000040040040,040040040040 023653 aa 040040 040040 023654 aa 000000 040040 oct 000000040040,040040040040 023655 aa 040040 040040 023656 aa 000000 000040 oct 000000000040,040040040040 023657 aa 040040 040040 023660 aa 000000 000000 oct 000000000000,040040040040 023661 aa 040040 040040 023662 aa 000000 000000 oct 000000000000,000040040040 023663 aa 000040 040040 023664 aa 000000 000000 oct 000000000000,000000040040 023665 aa 000000 040040 023666 aa 000000 000000 oct 000000000000,000000000040 023667 aa 000000 000040 " 023670 aa 077777 000077 trace_hfp_ptr_mask: oct 077777000077,777777077077 mask for use in ptr comparisions 023671 aa 777777 077077 " " operator to convert single fixed to double fixed " even 023672 trace_hfp_fx1_to_fx2: 023672 aa 000044 7770 00 llr 36 023673 aa 000044 7330 00 lrs 36 " " operators to convert fixed to float " 023674 aa 000000 0110 03 odd 023675 trace_hfp_fx1_to_fl2: 023675 0a 023672 7170 00 xed trace_hfp_fx1_to_fx2 " even 023676 trace_hfp_fx2_to_fl2: 023676 aa 044000 4110 03 lde =18b25,du EAQ = unnormalized 2*float(number) 023677 aa 400000 4750 03 fad P0.0H,du EAQ = 2*float(number) 023700 aa 000400 4610 03 fmp P0.5H,du EAQ = float(number) 023701 aa 6 00046 7101 70 tra sp|tbp,*x0 return " " operator to reset next stack pointer " even 023702 trace_hfp_reset_stack: 023702 aa 6 00005 2201 00 ldx0 sp|5 023703 aa 6 00023 7401 00 stx0 sp|stack_frame.next_sp+1 " " operators to convert indicators into relations " 023704 0a 002164 6040 00 trace_hfp_r_l_a: tmi true 023705 aa 000000 2350 07 lda 0,dl 023706 aa 6 00046 7101 70 tra sp|tbp,*0 " 023707 aa 000002 6000 04 trace_hfp_r_g_s: tze 2,ic 023710 0a 002164 6030 00 trc true 023711 aa 000000 2350 07 lda 0,dl 023712 aa 6 00046 7101 70 tra sp|tbp,*0 " 023713 aa 000002 6000 04 trace_hfp_r_g_a: tze 2,ic 023714 0a 002164 6050 00 tpl true 023715 aa 000000 2350 07 lda 0,dl 023716 aa 6 00046 7101 70 tra sp|tbp,*0 " 023717 0a 002164 6020 00 trace_hfp_r_l_s: tnc true 023720 aa 000000 2350 07 lda 0,dl 023721 aa 6 00046 7101 70 tra sp|tbp,*0 " 023722 0a 002164 6000 00 trace_hfp_r_e_as: tze true 023723 aa 000000 2350 07 lda 0,dl 023724 aa 6 00046 7101 70 tra sp|tbp,*0 " 023725 0a 002164 6010 00 trace_hfp_r_ne_as: tnz true 023726 aa 000000 2350 07 lda 0,dl 023727 aa 6 00046 7101 70 tra sp|tbp,*0 " 023730 0a 002164 6040 00 trace_hfp_r_le_a: tmi true 023731 0a 002164 6000 00 tze true 023732 aa 000000 2350 07 lda 0,dl 023733 aa 6 00046 7101 70 tra sp|tbp,*0 " 023734 0a 002164 6030 00 trace_hfp_r_ge_s: trc true 023735 aa 000000 2350 07 lda 0,dl 023736 aa 6 00046 7101 70 tra sp|tbp,*0 " 023737 0a 002164 6050 00 trace_hfp_r_ge_a: tpl true 023740 aa 000000 2350 07 lda 0,dl 023741 aa 6 00046 7101 70 tra sp|tbp,*0 " 023742 0a 002164 6020 00 trace_hfp_r_le_s: tnc true 023743 0a 002164 6000 00 tze true 023744 aa 000000 2350 07 lda 0,dl 023745 aa 6 00046 7101 70 tra sp|tbp,*0 " 023746 aa 400000 2350 03 trace_hfp_true: lda =o400000,du 023747 aa 6 00046 7101 70 tra sp|tbp,*0 " " operator to set stack ptr to that of block N static " levels above the current block. Entered with N in q. " (should not be called with N = 0, but will work anyway.) " 023750 trace_hfp_set_stack: 023750 0a 005674 7010 00 tsx1 display_chase get ptr to proper frame 023751 aa 2 00000 3721 00 eppsp bp|0 into sp 023752 0a 003276 7100 00 tra set_stack_extend do three more instructions (added later " and since compiled code knows offsets in this " area, couldn't add the code inline) " " tables to convert to bit offset ready to be ORed into pointer " 023753 aa 000000 000000 trace_hfp_mod2_tab: dec 0,18b26 023754 aa 000000 022000 " 023755 aa 000000 000000 trace_hfp_mod4_tab: dec 0,9b26,18b26,27b26 023756 aa 000000 011000 023757 aa 000000 022000 023760 aa 000000 033000 " " transfer vector for operators not referenced directly " by the pl/1 program. new operators may be added at the " end of the list only. " 023761 trace_hfp_op_vector: 023761 0a 003140 7100 00 tra alloc_char_temp 0 023762 0a 003152 7100 00 tra alloc_bit_temp 1 023763 0a 003161 7100 00 tra alloc_temp 2 023764 0a 003217 7100 00 tra realloc_char_temp 3 023765 0a 003207 7100 00 tra realloc_bit_temp 4 023766 0a 003304 7100 00 tra save_string 5 obsolete 023767 0a 007646 7100 00 tra pk_to_unpk 6 023770 0a 007655 7100 00 tra unpk_to_pk 7 023771 0a 003633 7100 00 tra move_chars 8 obsolete 023772 0a 003641 7100 00 tra move_chars_aligned 9 obsolete 023773 0a 003604 7100 00 tra move_bits 10 obsolete 023774 0a 003612 7100 00 tra move_bits_aligned 11 obsolete 023775 0a 003727 7100 00 tra chars_move 12 obsolete 023776 0a 003740 7100 00 tra chars_move_aligned 13 obsolete 023777 0a 003755 7100 00 tra bits_move 14 obsolete 024000 0a 003766 7100 00 tra bits_move_aligned 15 obsolete 024001 0a 003573 7100 00 tra move_not_bits 16 obsolete 024002 0a 003601 7100 00 tra move_not_bits_aligned 17 obsolete 024003 0a 003676 7100 00 tra ext_and_1 18 024004 0a 003677 7100 00 tra ext_and_2 19 024005 0a 003717 7100 00 tra comp_bits 20 024006 0a 004371 7100 00 tra cpbs3 21 obsolete 024007 0a 004401 7100 00 tra cpbs3_aligned 22 obsolete 024010 0a 004377 7100 00 tra cpbs4 23 obsolete 024011 0a 004357 7100 00 tra cpcs_ext1 24 024012 0a 004360 7100 00 tra cpcs_ext2 25 024013 0a 004364 7100 00 tra cpbs_ext1 26 024014 0a 004365 7100 00 tra cpbs_ext2 27 024015 0a 003354 7100 00 tra store_string 28 024016 0a 003215 7100 00 tra cat_realloc_chars 29 024017 0a 003177 7100 00 tra cat_realloc_bits 30 024020 0a 004320 7100 00 tra cp_chars 31 obsolete 024021 0a 004326 7100 00 tra cp_chars_aligned 32 obsolete 024022 0a 004340 7100 00 tra cp_bits 33 obsolete 024023 0a 004346 7100 00 tra cp_bits_aligned 34 obsolete 024024 0a 012364 7100 00 tra enter_begin_block 35 024025 0a 005552 7100 00 tra leave_begin_block 36 024026 0a 005607 7100 00 tra call_ent_var_desc 37 024027 0a 005610 7100 00 tra call_ent_var 38 024030 0a 005623 7100 00 tra call_ext_in_desc 39 024031 0a 005624 7100 00 tra call_ext_in 40 024032 0a 005623 7100 00 tra call_ext_out_desc 41 024033 0a 005624 7100 00 tra call_ext_out 42 024034 0a 005634 7100 00 tra call_int_this_desc 43 024035 0a 005635 7100 00 tra call_int_this 44 024036 0a 005645 7100 00 tra call_int_other_desc 45 024037 0a 005646 7100 00 tra call_int_other 46 024040 0a 005572 7100 00 tra begin_return_mac 47 024041 0a 005600 7100 00 tra return_mac 48 024042 0a 003654 7100 00 tra cat_move_chars 49 obsolete 024043 0a 003662 7100 00 tra cat_move_chars_aligned 50 obsolete 024044 0a 003552 7100 00 tra cat_move_bits 51 obsolete 024045 0a 003560 7100 00 tra cat_move_bits_aligned 52 obsolete 024046 0a 004040 7100 00 tra cat_chars 53 obsolete 024047 0a 004046 7100 00 tra cat_chars_aligned 54 obsolete 024050 0a 004063 7100 00 tra cat_bits 55 obsolete 024051 0a 004071 7100 00 tra cat_bits_aligned 56 obsolete 024052 0a 003321 7100 00 tra set_chars 57 obsolete 024053 0a 003327 7100 00 tra set_chars_aligned 58 obsolete 024054 0a 003342 7100 00 tra set_bits 59 obsolete 024055 0a 003350 7100 00 tra set_bits_aligned 60 obsolete 024056 0a 003517 7100 00 tra and_bits 61 obsolete 024057 0a 003525 7100 00 tra and_bits_aligned 62 obsolete 024060 0a 003530 7100 00 tra or_bits 63 obsolete 024061 0a 003536 7100 00 tra or_bits_aligned 64 obsolete 024062 0a 005660 7100 00 tra move_label_var 65 024063 0a 005666 7100 00 tra make_label_var 66 024064 0a 015664 7100 00 tra hfp_fl2_to_fx1 67 024065 0a 015664 7100 00 tra hfp_fl2_to_fx2 68 024066 0a 007620 7100 00 tra longbs_to_fx2 69 024067 0a 007265 7100 00 tra tra_ext_1 70 024070 0a 007273 7100 00 tra tra_ext_2 71 024071 0a 007301 7100 00 tra alloc_auto_adj 72 024072 0a 007636 7100 00 tra longbs_to_bs18 73 024073 0a 006553 7100 00 tra stac_mac 74 024074 0a 006642 7100 00 tra sign_mac 75 024075 0a 010206 7100 00 tra bound_ck_signal 76 024076 0a 006650 7100 00 tra trans_sign_fx1 77 024077 0a 006660 7100 00 tra trans_sign_fl 78 024100 0a 007023 7100 00 tra copy_words 79 obsolete 024101 0a 007035 7100 00 tra mpfx2 80 024102 0a 007104 7100 00 tra mpfx3 81 024103 0a 004445 7100 00 tra copy_const 82 obsolete 024104 0a 004444 7100 00 tra copy_const_vt 83 obsolete 024105 0a 007205 7100 00 tra sr_check 84 obsolete 024106 0a 003726 7100 00 tra chars_move_vt 85 obsolete 024107 0a 003737 7100 00 tra chars_move_vta 86 obsolete 024110 0a 003754 7100 00 tra bits_move_vt 87 obsolete 024111 0a 003765 7100 00 tra bits_move_vta 88 obsolete 024112 0a 016076 7100 00 tra hfp_mdfl1 89 024113 0a 016120 7100 00 tra hfp_mdfl2 90 024114 0a 005701 7100 00 tra mdfx1 91 024115 0a 005716 7100 00 tra mdfx2 92 024116 0a 005742 7100 00 tra mdfx3 93 024117 0a 005720 7100 00 tra mdfx4 94 024120 0a 007033 7100 00 tra copy_double 95 obsolete 024121 0a 003371 7100 00 tra string_store 96 obsolete 024122 0a 003421 7100 00 tra get_chars 97 obsolete 024123 0a 003455 7100 00 tra get_bits 98 obsolete 024124 0a 003474 7100 00 tra pad_chars 99 024125 0a 003506 7100 00 tra pad_bits 100 024126 0a 010202 7100 00 tra signal_op 101 024127 0a 010107 7100 00 tra enable_op 102 024130 0a 004453 7100 00 tra index_chars 103 obsolete 024131 0a 004461 7100 00 tra index_chars_aligned 104 obsolete 024132 0a 004611 7100 00 tra index_bits 105 obsolete 024133 0a 004617 7100 00 tra index_bits_aligned 106 obsolete 024134 0a 003541 7100 00 tra exor_bits 107 obsolete 024135 0a 003547 7100 00 tra exor_bits_aligned 108 obsolete 024136 0a 003344 7100 00 tra set_bits_co 109 obsolete 024137 0a 003346 7100 00 tra set_bits_ho 110 obsolete 024140 0a 003323 7100 00 tra set_chars_co 111 obsolete 024141 0a 003325 7100 00 tra set_chars_ho 112 obsolete 024142 0a 003373 7100 00 tra string_store_co 113 obsolete 024143 0a 003402 7100 00 tra string_store_ho 114 obsolete 024144 0a 003423 7100 00 tra get_chars_co 115 obsolete 024145 0a 003425 7100 00 tra get_chars_ho 116 obsolete 024146 0a 003457 7100 00 tra get_bits_co 117 obsolete 024147 0a 003461 7100 00 tra get_bits_ho 118 obsolete 024150 0a 003521 7100 00 tra and_bits_co 119 obsolete 024151 0a 003523 7100 00 tra and_bits_ho 120 obsolete 024152 0a 003532 7100 00 tra or_bits_co 121 obsolete 024153 0a 003534 7100 00 tra or_bits_ho 122 obsolete 024154 0a 003543 7100 00 tra exor_bits_co 123 obsolete 024155 0a 003545 7100 00 tra exor_bits_ho 124 obsolete 024156 0a 003554 7100 00 tra cat_move_bits_co 125 obsolete 024157 0a 003556 7100 00 tra cat_move_bits_ho 126 obsolete 024160 0a 003575 7100 00 tra move_not_bits_co 127 obsolete 024161 0a 003577 7100 00 tra move_not_bits_ho 128 obsolete 024162 0a 003606 7100 00 tra move_bits_co 129 obsolete 024163 0a 003610 7100 00 tra move_bits_ho 130 obsolete 024164 0a 003635 7100 00 tra move_chars_co 131 obsolete 024165 0a 003637 7100 00 tra move_chars_ho 132 obsolete 024166 0a 003656 7100 00 tra cat_move_chars_co 133 obsolete 024167 0a 003660 7100 00 tra cat_move_chars_ho 134 obsolete 024170 0a 004042 7100 00 tra cat_chars_co 135 obsolete 024171 0a 004044 7100 00 tra cat_chars_ho 136 obsolete 024172 0a 004065 7100 00 tra cat_bits_co 137 obsolete 024173 0a 004067 7100 00 tra cat_bits_ho 138 obsolete 024174 0a 011327 7100 00 tra io_signal 139 024175 0a 004650 7100 00 tra index_cs_1 140 obsolete 024176 0a 004656 7100 00 tra index_cs_1_aligned 141 obsolete 024177 0a 015756 7100 00 tra hfp_fort_mdfl1 142 024200 0a 006724 7100 00 tra rfb1_to_cflb1 143 024201 0a 016167 7100 00 tra hfp_rfb2_to_cflb1 144 024202 0a 006734 7100 00 tra mpcfl1_1 145 024203 0a 006735 7100 00 tra mpcfl1_2 146 024204 0a 006755 7100 00 tra dvcfl1_1 147 024205 0a 006756 7100 00 tra dvcfl1_2 148 024206 0a 003731 7100 00 tra chars_move_vt_co 149 obsolete 024207 0a 003734 7100 00 tra chars_move_vt_ho 150 obsolete 024210 0a 003732 7100 00 tra chars_move_co 151 obsolete 024211 0a 003735 7100 00 tra chars_move_ho 152 obsolete 024212 0a 003757 7100 00 tra bits_move_vt_co 153 obsolete 024213 0a 003762 7100 00 tra bits_move_vt_ho 154 obsolete 024214 0a 003760 7100 00 tra bits_move_co 155 obsolete 024215 0a 003763 7100 00 tra bits_move_ho 156 obsolete 024216 0a 004322 7100 00 tra cp_chars_co 157 obsolete 024217 0a 004324 7100 00 tra cp_chars_ho 158 obsolete 024220 0a 004342 7100 00 tra cp_bits_co 159 obsolete 024221 0a 004344 7100 00 tra cp_bits_ho 160 obsolete 024222 0a 004373 7100 00 tra cpbs3_co 161 obsolete 024223 0a 004375 7100 00 tra cpbs3_ho 162 obsolete 024224 0a 003254 7100 00 tra shorten_stack 163 024225 0a 004426 7100 00 tra zero_bits 164 obsolete 024226 0a 004434 7100 00 tra zero_bits_aligned 165 obsolete 024227 0a 004430 7100 00 tra zero_bits_co 166 obsolete 024230 0a 004432 7100 00 tra zero_bits_ho 167 obsolete 024231 0a 004407 7100 00 tra blank_chars 168 obsolete 024232 0a 004415 7100 00 tra blank_chars_aligned 169 obsolete 024233 0a 004411 7100 00 tra blank_chars_co 170 obsolete 024234 0a 004413 7100 00 tra blank_chars_ho 171 obsolete 024235 0a 004455 7100 00 tra index_chars_co 172 obsolete 024236 0a 004457 7100 00 tra index_chars_ho 173 obsolete 024237 0a 004613 7100 00 tra index_bits_co 174 obsolete 024240 0a 004615 7100 00 tra index_bits_ho 175 obsolete 024241 0a 004652 7100 00 tra index_cs_1_co 176 obsolete 024242 0a 004654 7100 00 tra index_cs_1_ho 177 obsolete 024243 0a 004673 7100 00 tra index_bs_1 178 obsolete 024244 0a 004701 7100 00 tra index_bs_1_aligned 179 obsolete 024245 0a 004675 7100 00 tra index_bs_1_co 180 obsolete 024246 0a 004677 7100 00 tra index_bs_1_ho 181 obsolete 024247 0a 012444 0000 00 arg shift_bo 182 obsolete 024250 0a 005422 7100 00 tra return_words 183 024251 0a 005442 7100 00 tra return_bits 184 obsolete 024252 0a 005444 7100 00 tra return_bits_co 185 obsolete 024253 0a 005446 7100 00 tra return_bits_ho 186 obsolete 024254 0a 005450 7100 00 tra return_bits_al 187 obsolete 024255 trace_hfp_entry_operators: 024255 0a 021401 7100 00 tra trace_ext_entry 188 024256 0a 021436 7100 00 tra trace_ext_entry_desc 189 024257 0a 012121 7100 00 tra int_entry 190 024260 0a 012137 7100 00 tra int_entry_desc 191 024261 0a 012156 7100 00 tra val_entry 192 024262 0a 012154 7100 00 tra val_entry_desc 193 024263 0a 003427 7100 00 tra get_chars_aligned 194 obsolete 024264 0a 003463 7100 00 tra get_bits_aligned 195 obsolete 024265 0a 003416 7100 00 tra fetch_chars 196 024266 0a 003451 7100 00 tra fetch_bits 197 024267 0a 010501 7100 00 tra get_terminate 198 024270 4a 4 00010 7101 20 tra |[put_terminate] 199 024271 0a 010333 7100 00 tra put_data_aligned 200 obsolete 024272 0a 010346 7100 00 tra get_list_aligned 201 obsolete 024273 0a 010357 7100 00 tra get_edit_aligned 202 obsolete 024274 0a 010411 7100 00 tra put_list_aligned 203 obsolete 024275 0a 010422 7100 00 tra put_edit_aligned 204 obsolete 024276 4a 4 00012 7101 20 tra |[stream_prep] 205 024277 4a 4 00014 7101 20 tra |[record_io] 206 024300 0a 010505 7100 00 tra open_file 207 024301 0a 010507 7100 00 tra close_file 208 024302 0a 010325 7100 00 tra put_data 209 obsolete 024303 0a 010327 7100 00 tra put_data_co 210 obsolete 024304 0a 010331 7100 00 tra put_data_ho 211 obsolete 024305 0a 010340 7100 00 tra get_list 212 obsolete 024306 0a 010342 7100 00 tra get_list_co 213 obsolete 024307 0a 010344 7100 00 tra get_list_ho 214 obsolete 024310 0a 010351 7100 00 tra get_edit 215 obsolete 024311 0a 010353 7100 00 tra get_edit_co 216 obsolete 024312 0a 010355 7100 00 tra get_edit_ho 217 obsolete 024313 0a 010403 7100 00 tra put_list 218 obsolete 024314 0a 010405 7100 00 tra put_list_co 219 obsolete 024315 0a 010407 7100 00 tra put_list_ho 220 obsolete 024316 0a 010414 7100 00 tra put_edit 221 obsolete 024317 0a 010416 7100 00 tra put_edit_co 222 obsolete 024320 0a 010420 7100 00 tra put_edit_ho 223 obsolete 024321 0a 004236 7100 00 tra suffix_cs 224 obsolete 024322 0a 004254 7100 00 tra suffix_bs 225 obsolete 024323 0a 015675 7100 00 tra hfp_fl2_to_fxscaled 226 024324 0a 007363 7100 00 tra trunc_fx1 227 024325 0a 007375 7100 00 tra trunc_fx2 228 024326 0a 007444 7100 00 tra ceil_fx1 229 024327 0a 007500 7100 00 tra ceil_fx2 230 024330 0a 015652 7100 00 tra hfp_ceil_fl 231 024331 0a 007425 7100 00 tra floor_fx1 232 024332 0a 007463 7100 00 tra floor_fx2 233 024333 0a 015725 7100 00 tra hfp_floor_fl 234 024334 0a 016176 7100 00 tra hfp_trunc_fl 235 024335 0a 007515 7100 00 tra round_fx1 236 024336 0a 007536 7100 00 tra round_fx2 237 024337 0a 004103 7100 00 tra repeat 238 024340 0a 005052 7100 00 tra make_bit_table 239 obsolete 024341 0a 005060 7100 00 tra make_bit_table_al 240 obsolete 024342 0a 005054 7100 00 tra make_bit_table_co 241 obsolete 024343 0a 005056 7100 00 tra make_bit_table_ho 242 obsolete 024344 0a 005147 7100 00 tra verify 243 obsolete 024345 0a 005155 7100 00 tra verify_al 244 obsolete 024346 0a 005151 7100 00 tra verify_co 245 obsolete 024347 0a 005153 7100 00 tra verify_ho 246 obsolete 024350 0a 005161 7100 00 tra const_verify 247 obsolete 024351 0a 005167 7100 00 tra const_verify_al 248 obsolete 024352 0a 005163 7100 00 tra const_verify_co 249 obsolete 024353 0a 005165 7100 00 tra const_verify_ho 250 obsolete 024354 0a 004212 7100 00 tra reverse_cs 251 024355 0a 004166 7100 00 tra reverse_bs 252 024356 0a 005110 7100 00 tra form_bit_table 253 obsolete 024357 0a 005112 7100 00 tra form_bit_table_co 254 obsolete 024360 0a 005114 7100 00 tra form_bit_table_ho 255 obsolete 024361 0a 005116 7100 00 tra form_bit_table_al 256 obsolete 024362 0a 004002 7100 00 tra chars_move_ck 257 obsolete 024363 0a 004004 7100 00 tra chars_move_ck_co 258 obsolete 024364 0a 004006 7100 00 tra chars_move_ck_ho 259 obsolete 024365 0a 004010 7100 00 tra chars_move_ck_al 260 obsolete 024366 0a 004021 7100 00 tra bits_move_ck 261 obsolete 024367 0a 004023 7100 00 tra bits_move_ck_co 262 obsolete 024370 0a 004025 7100 00 tra bits_move_ck_ho 263 obsolete 024371 0a 004027 7100 00 tra bits_move_ck_al 264 obsolete 024372 0a 007771 7100 00 tra size_check_fx1 265 024373 0a 010013 7100 00 tra size_check_fx2 266 024374 0a 010053 7100 00 tra signal_stringsize 267 024375 0a 004272 7100 00 tra suffix_cs_ck 268 obsolete 024376 0a 004312 7100 00 tra suffix_bs_ck 269 obsolete 024377 0a 011032 7100 00 tra pointer_hard 270 024400 0a 007727 7100 00 tra alm_call 271 special for alm 024401 0a 007733 7100 00 tra alm_push 272 special for alm 024402 0a 007757 7100 00 tra alm_return 273 special for alm 024403 0a 007765 7100 00 tra alm_return_no_pop 274 special for alm 024404 0a 024722 7100 00 tra trace_alm_entry 275 special for alm 024405 0a 007663 7100 00 tra packed_to_bp 276 obsolete 024406 0a 005466 7100 00 tra return_chars 277 obsolete 024407 0a 005470 7100 00 tra return_chars_co 278 obsolete 024410 0a 005472 7100 00 tra return_chars_ho 279 obsolete 024411 0a 005474 7100 00 tra return_chars_aligned 280 obsolete 024412 0a 007667 7100 00 tra rpd_odd_lp_bp 281 obsolete 024413 0a 007677 7100 00 tra rpd_odd_bp_lp 282 obsolete 024414 0a 007707 7100 00 tra rpd_even_lp_bp 283 obsolete 024415 0a 007717 7100 00 tra rpd_even_bp_lp 284 obsolete 024416 0a 011060 7100 00 tra offset_easy 285 024417 0a 011074 7100 00 tra offset_easy_pk 286 024420 0a 011060 7100 00 tra offset_hard 287 024421 0a 011074 7100 00 tra offset_hard_pk 288 024422 0a 011045 7100 00 tra pointer_hard_pk 289 024423 0a 011032 7100 00 tra pointer_easy 290 024424 0a 011045 7100 00 tra pointer_easy_pk 291 024425 0a 007553 7100 00 tra round_fl 292 024426 0a 010222 7100 00 tra enable_file 293 024427 0a 010275 7100 00 tra revert_file 294 024430 0a 011107 7100 00 tra alloc_block 295 024431 0a 011134 7100 00 tra free_block 296 024432 0a 011151 7100 00 tra push_ctl_data 297 024433 0a 011147 7100 00 tra push_ctl_desc 298 024434 0a 011173 7100 00 tra pop_ctl_data 299 024435 0a 011173 7100 00 tra pop_ctl_desc 300 024436 0a 011213 7100 00 tra allocation 301 024437 0a 003315 7100 00 tra set_chars_eis 302 024440 0a 003336 7100 00 tra set_bits_eis 303 024441 0a 004464 7100 00 tra index_chars_eis 304 024442 0a 004606 7100 00 tra index_bits_eis 305 024443 0a 004645 7100 00 tra index_cs_1_eis 306 024444 0a 004670 7100 00 tra index_bs_1_eis 307 024445 0a 005477 7100 00 tra return_chars_eis 308 024446 0a 005453 7100 00 tra return_bits_eis 309 024447 0a 010323 7100 00 tra put_data_eis 310 024450 4a 4 00016 7101 20 tra |[put_edit_eis] 311 024451 0a 010362 7100 00 tra put_list_eis 312 024452 4a 4 00020 7101 20 tra |[get_edit_eis] 313 024453 0a 010336 7100 00 tra get_list_eis 314 024454 0a 005245 7100 00 tra verify_eis 315 024455 0a 005223 7100 00 tra search_eis 316 024456 0a 010511 7100 00 tra fortran_read 317 024457 0a 010511 7100 00 tra fortran_write 318 024460 0a 010554 7100 00 tra fortran_manip 319 024461 0a 010547 7100 00 tra fortran_scalar_xmit 320 024462 0a 010547 7100 00 tra fortran_array_xmit 321 024463 0a 010556 7100 00 tra fortran_terminate 322 024464 4a 4 00022 7101 20 tra |[real_to_real_round_] 323 024465 4a 4 00024 7101 20 tra |[real_to_real_truncate_] 324 024466 4a 4 00026 7101 20 tra |[any_to_any_round_] 325 024467 4a 4 00030 7101 20 tra |[any_to_any_truncate_] 326 024470 0a 011226 7100 00 tra unpack_picture 327 024471 0a 011231 7100 00 tra pack_picture 328 024472 0a 006042 7100 00 tra divide_fx1 329 024473 0a 006061 7100 00 tra divide_fx2 330 024474 0a 006044 7100 00 tra divide_fx3 331 024475 0a 006063 7100 00 tra divide_fx4 332 024476 0a 006027 7100 00 tra scaled_mod_fx1 333 024477 0a 005757 7100 00 tra scaled_mod_fx2 334 024500 0a 006031 7100 00 tra scaled_mod_fx3 335 024501 0a 005761 7100 00 tra scaled_mod_fx4 336 024502 0a 005322 7100 00 tra translate_2 337 024503 0a 005360 7100 00 tra translate_3 338 024504 4a 4 00566 7101 20 tra |[hfp_square_root_] 339 024505 4a 4 00570 7101 20 tra |[hfp_sine_radians_] 340 024506 4a 4 00572 7101 20 tra |[hfp_sine_degrees_] 341 024507 4a 4 00574 7101 20 tra |[hfp_cosine_radians_] 342 024510 4a 4 00576 7101 20 tra |[hfp_cosine_degrees_] 343 024511 4a 4 00600 7101 20 tra |[hfp_tangent_radians_] 344 024512 4a 4 00602 7101 20 tra |[hfp_tangent_degrees_] 345 024513 4a 4 00604 7101 20 tra |[hfp_arc_sine_radians_] 346 024514 4a 4 00606 7101 20 tra |[hfp_arc_sine_degrees_] 347 024515 4a 4 00610 7101 20 tra |[hfp_arc_cosine_radians_] 348 024516 4a 4 00612 7101 20 tra |[hfp_arc_cosine_degrees_] 349 024517 4a 4 00614 7101 20 tra |[hfp_arc_tangent_radians_] 350 024520 4a 4 00616 7101 20 tra |[hfp_arc_tangent_degrees_] 351 024521 4a 4 00620 7101 20 tra |[hfp_log_base_2_] 352 024522 4a 4 00622 7101 20 tra |[hfp_log_base_e_] 353 024523 4a 4 00624 7101 20 tra |[hfp_log_base_10_] 354 024524 4a 4 00626 7101 20 tra |[hfp_exponential_] 355 024525 4a 4 00630 7101 20 tra |[hfp_double_square_root_] 356 024526 4a 4 00632 7101 20 tra |[hfp_double_sine_radians_] 357 024527 4a 4 00634 7101 20 tra |[hfp_double_sine_degrees_] 358 024530 4a 4 00636 7101 20 tra |[hfp_double_cosine_radians_] 359 024531 4a 4 00640 7101 20 tra |[hfp_double_cosine_degrees_] 360 024532 4a 4 00642 7101 20 tra |[hfp_double_tangent_radians_] 361 024533 4a 4 00644 7101 20 tra |[hfp_double_tangent_degrees_] 362 024534 4a 4 00646 7101 20 tra |[hfp_double_arc_sine_radians_] 363 024535 4a 4 00650 7101 20 tra |[hfp_double_arc_sine_degrees_] 364 024536 4a 4 00652 7101 20 tra |[hfp_double_arc_cosine_radians_] 365 024537 4a 4 00654 7101 20 tra |[hfp_double_arc_cosine_degrees_] 366 024540 4a 4 00656 7101 20 tra |[hfp_double_arc_tan_radians_] 367 024541 4a 4 00660 7101 20 tra |[hfp_double_arc_tan_degrees_] 368 024542 4a 4 00662 7101 20 tra |[hfp_double_log_base_2_] 369 024543 4a 4 00664 7101 20 tra |[hfp_double_log_base_e_] 370 024544 4a 4 00666 7101 20 tra |[hfp_double_log_base_10_] 371 024545 4a 4 00670 7101 20 tra |[hfp_double_exponential_] 372 024546 4a 4 00672 7101 20 tra |[hfp_arc_tangent_radians_2_] 373 024547 4a 4 00674 7101 20 tra |[hfp_arc_tangent_degrees_2_] 374 024550 4a 4 00676 7101 20 tra |[hfp_double_arc_tan_radians_2_] 375 024551 4a 4 00700 7101 20 tra |[hfp_double_arc_tan_degrees_2_] 376 024552 4a 4 00702 7101 20 tra |[hfp_integer_power_single_] 377 024553 4a 4 00704 7101 20 tra |[hfp_integer_power_double_] 378 024554 4a 4 00706 7101 20 tra |[hfp_double_power_single_] 379 024555 4a 4 00710 7101 20 tra |[hfp_double_power_double_] 380 024556 4a 4 00712 7101 20 tra |[hfp_double_power_integer_] 381 024557 4a 4 00714 7101 20 tra |[hfp_single_power_single_] 382 024560 4a 4 00716 7101 20 tra |[hfp_single_power_integer_] 383 024561 4a 4 00164 7101 20 tra |[integer_power_integer_] 384 024562 0a 010050 7100 00 tra signal_size 385 024563 0a 021470 7100 00 tra trace_ss_ext_entry 386 024564 0a 021527 7100 00 tra trace_ss_ext_entry_desc 387 024565 0a 012264 7100 00 tra ss_int_entry 388 024566 0a 012303 7100 00 tra ss_int_entry_desc 389 024567 0a 012323 7100 00 tra ss_val_entry 390 024570 0a 012321 7100 00 tra ss_val_entry_desc 391 024571 4a 4 00166 7101 20 tra |[mpcdec] 392 024572 4a 4 00170 7101 20 tra |[dvcdec] 393 024573 4a 4 00172 7101 20 tra |[dvrcdec] 394 024574 4a 4 00174 7101 20 tra |[ceil] 395 024575 4a 4 00176 7101 20 tra |[floor] 396 024576 4a 4 00200 7101 20 tra |[sign] 397 024577 4a 4 00202 7101 20 tra |[cabs] 398 024600 4a 4 00204 7101 20 tra |[truncate] 399 024601 4a 4 00206 7101 20 tra |[mod] 400 024602 0a 011351 7100 00 tra set_support 401 024603 0a 006071 7100 00 tra div_4_cplx_ops 402 024604 0a 003441 7100 00 tra fetch_chars_eis 403 024605 0a 007247 7100 00 tra signal_stringrange 404 024606 0a 012404 7100 00 tra ss_enter_begin_block 405 024607 4a 4 00210 7101 20 tra |[put_field] 406 024610 4a 4 00212 7101 20 tra |[put_field_chk] 407 024611 4a 4 00214 7101 20 tra |[put_control] 408 024612 4a 4 00216 7101 20 tra |[op_alloc_] 409 024613 0a 011104 7100 00 tra alloc_storage 410 024614 4a 4 00220 7101 20 tra |[op_freen_] 411 024615 4a 4 00222 7101 20 tra |[op_empty_] 412 024616 4a 4 00720 7101 20 tra |[hfp_cabs] 413 fortran only 024617 4a 4 00722 7101 20 tra |[hfp_ccos] 414 fortran only 024620 4a 4 00724 7101 20 tra |[hfp_cexp] 415 fortran only 024621 4a 4 00726 7101 20 tra |[hfp_clog] 416 fortran only 024622 4a 4 00730 7101 20 tra |[hfp_csin] 417 fortran only 024623 4a 4 00732 7101 20 tra |[hfp_csqrt] 418 fortran only 024624 4a 4 00734 7101 20 tra |[hfp_tanh] 419 fortran only 024625 4a 4 00736 7101 20 tra |[hfp_dmod] 420 fortran only (obsolete) 024626 4a 4 00740 7101 20 tra |[hfp_cmpx_p_cmpx] 421 fortran only 024627 0a 015775 7100 00 tra hfp_get_math_entry 422 fortran only 024630 0a 011463 7100 00 tra fortran_pause 423 fortran only 024631 0a 011465 7100 00 tra fortran_stop 424 fortran only 024632 0a 011506 7100 00 tra fortran_chain 425 fortran only 024633 0a 024743 7100 00 tra long_profile 426 024634 0a 004714 7100 00 tra index_before_cs 427 024635 0a 005004 7100 00 tra index_before_bs 428 024636 0a 004720 7100 00 tra index_after_cs 429 024637 0a 005010 7100 00 tra index_after_bs 430 024640 0a 005035 7100 00 tra index_before_bs_1 431 024641 0a 005041 7100 00 tra index_after_bs_1 432 024642 0a 005271 7100 00 tra verify_for_ltrim 433 024643 0a 005304 7100 00 tra verify_for_rtrim 434 024644 0a 006557 7100 00 tra stacq_mac 435 024645 0a 006563 7100 00 tra clock_mac 436 024646 0a 006571 7100 00 tra vclock_mac 437 024647 0a 010561 7100 00 tra ftn_open_element 438 fortran only 024650 0a 011025 7100 00 tra ftn_get_area_ptr 439 fortran only 024651 0a 006577 7100 00 tra stop 440 024652 0a 006610 7100 00 tra return_main 441 024653 0a 006626 7100 00 tra set_main_flag 442 024654 0a 006614 7100 00 tra begin_return_main 443 024655 0a 010023 7100 00 tra size_check_uns_fx1 444 024656 0a 010031 7100 00 tra size_check_uns_fx2 445 024657 0a 011455 7100 00 tra fortran_end 446 fortran only 024660 0a 015737 7100 00 tra hfp_fort_dmod 447 fortran only 024661 0a 004540 7100 00 tra ix_rev_chars 448 024662 0a 005247 7100 00 tra verify_rev_chars 449 024663 0a 005251 7100 00 tra search_rev_chars 450 024664 0a 003261 7100 00 tra shorten_stack_protect_ind 451 024665 0a 003270 7100 00 tra save_stack_quick 452 024666 0a 003274 7100 00 tra restore_stack_quick 453 024667 4a 4 00742 7101 20 tra |[hfp_dtanh] 454 fortran only 024670 4a 4 00744 7101 20 tra |[hfp_sinh] 455 fortran only 024671 4a 4 00746 7101 20 tra |[hfp_dsinh] 456 fortran only 024672 4a 4 00750 7101 20 tra |[hfp_cosh] 457 fortran only 024673 4a 4 00752 7101 20 tra |[hfp_dcosh] 458 fortran only 024674 0a 016152 7100 00 tra hfp_nearest_whole_number 459 fortran only 024675 0a 016140 7100 00 tra hfp_nearest_integer 460 fortran only 024676 0a 010714 7100 00 tra ftn_inquire_element 461 fortran only 024677 0a 010037 7100 00 tra mpy_overflow_check 462 fortran only 024700 0a 005557 7100 00 tra fort_return_mac 463 fortran only 024701 0a 010140 7100 00 tra fort_cleanup 464 fortran only 024702 0a 010065 7100 00 tra fort_storage 465 fortran only 024703 0a 021350 7100 00 tra trace_enter_BFP_mode 466 024704 0a 021354 7100 00 tra trace_enter_HFP_mode 467 024705 0a 011623 7100 00 tra unimp 468 future expansion 024706 0a 011623 7100 00 tra unimp 469 future expansion 024707 0a 011623 7100 00 tra unimp 470 future expansion 024710 0a 011623 7100 00 tra unimp 471 future expansion 024711 0a 011623 7100 00 tra unimp 472 future expansion 024712 0a 011623 7100 00 tra unimp 473 future expansion 024713 0a 011623 7100 00 tra unimp 474 future expansion 024714 0a 011623 7100 00 tra unimp 475 future expansion 024715 0a 011623 7100 00 tra unimp 476 future expansion 024716 0a 011623 7100 00 tra unimp 477 future expansion 024717 0a 011623 7100 00 tra unimp 478 future expansion 024720 0a 011623 7100 00 tra unimp 479 future expansion 024721 0a 011623 7100 00 tra unimp 480 future expansion 7461 7462 " 7463 " The ALM entry operator used by trace. 7464 " 024722 7465 alm_trace_operators_begin: 7466 alm_entry_op trace_ " BEGIN MACRO alm_entry_op 024722 trace_alm_entry: 024722 aa 2 77777 3521 00 eppbp bp|-1 generate pointer to entry structure trace trace_ 024723 0a 024723 2130 00 epaq * get segment number of pl1_operators_ 024724 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get our linkage ptr 024725 aa 7 00024 5421 20 sprpbp sb|stack_header.stack_end_ptr,* save entry ptr as packed ptr 024726 aa 7 00024 3521 20 eppbp sb|stack_header.stack_end_ptr,* 024727 aa 2 00001 5411 00 sprpab bp|1 save lisp linkage ptr (might be lisp environment) 024730 4a 4 01124 2721 20 tspbp trace_catch_$catch_pl1_ 024731 aa 7 00024 3515 20 eppab sb|stack_header.stack_end_ptr,* 024732 aa 1 00000 7621 00 lprpbp ab|0 restore entry ptr 024733 aa 1 00001 7611 00 lprpab ab|1 restore lisp linkage ptr 024734 aa 7 00024 3701 20 epplp sb|stack_header.stack_end_ptr,* get a pointer to the next stack frame 024735 aa 4 00026 2521 00 spribp lp|stack_frame.entry_ptr 024736 aa 2 00000 2131 00 epaq bp|0 get seg no of object in a 024737 aa 7 00052 7651 61 lprplb sb|stack_header.isot_ptr,*au get packed ptr to static from isot 024740 aa 4 00034 5451 00 sprplb lp|stack_frame.static_ptr save in next stack frame 024741 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get packed ptr to linkage from lot 024742 aa 2 00001 7101 00 tra bp|1 return to alm prog " END MACRO alm_entry_op 024743 7467 alm_trace_operators_end: 7468 " 7469 " operator to update long_profile entry 7470 " Calling sequence: 7471 " 7472 " tsx0 ap|long_profile 7473 " zero header_relp,entry_offset 7474 " 7475 include long_profile 11-1 11-2 11-3 "BEGIN INCLUDE FILE long_profile.incl.alm 11-4 11-5 "Created 12/02/76 1639.2 est Thu by convert_include_file, 11-6 " Version of 04/30/76 1208.1 est Fri. 11-7 11-8 "Made from >exl>include>long_profile.incl.pl1, 11-9 " modified 12/02/76 1551.0 est Thu 11-10 " further edited by RAB 12/02/76 to remove mutliple symbols 11-11 11-12 " 11-13 " Structure long_profile_header 11-14 " 000015 11-15 equ long_profile_header_size,13 11-16 11-17 000000 11-18 equ long_profile_header.last_vcpu,0 "DOUBLE 000002 11-19 equ long_profile_header.last_pf,2 000003 11-20 equ long_profile_header.last_offset,3 000004 11-21 equ long_profile_header.nentries,4 000005 11-22 equ long_profile_header.dummy,5 "LEVEL 2 11-23 000011 11-24 equ long_profile_header.control,9 "LEVEL 2 11-25 11-26 11-27 " 11-28 " Structure long_profile_entry 11-29 " 000004 11-30 equ long_profile_entry_size,4 11-31 000000 11-32 equ long_profile_entry.map,0 "UPPER 000000 11-33 equ long_profile_entry.skip,0 "LOWER 11-34 000001 11-35 equ long_profile_entry.count,1 000002 11-36 equ long_profile_entry.vcpu,2 000003 11-37 equ long_profile_entry.pf,3 11-38 000005 11-39 equ dummy_entry_offset,5 "MANIFEST 000011 11-40 equ control_entry_offset,9 "MANIFEST 11-41 11-42 "END INCLUDE FILE long_profile.incl.alm 7476 " 7477 " NB: THIS OPERATOR IS NOT ALLOWED TO DESTROY ANY REGISTERS, 7478 " INCLUDING A, Q, index registers, pointer registers, 7479 " THE INDICATOR OR STRING REGISTERS. This is part of the 7480 " contract of long_profile not to affect the object 7481 " code. 7482 " 7483 " 024743 7484 long_profile: 024743 aa 6 00055 7541 00 7485 sti sp|temp_indicators save indicators 024744 aa 6 00010 7531 00 7486 sreg sp|8 save registers 7487 get_stack_offset 024745 aa 6 00000 6351 00 eaa sp|0 get offset of stack frame in au 024746 0a 011677 6750 00 era mask_bit_one form 2's complement of whole a-reg 024747 aa 000001 0350 07 adla 1,dl w/o overflow 024750 aa 6 00024 2541 21 7488 spri sp|stack_header.stack_end_ptr,au* 7489 " 7490 get_our_lp 024751 aa 6 00000 3731 00 epbpsb sp|0 make sure sb is set up 024752 0a 024752 2130 00 epaq * get ptr to ourselves 024753 aa 7 00026 7641 61 lprplp sb|stack_header.lot_ptr,*au get packed ptr to linkage from lot 024754 aa 6 00024 3571 00 7491 stcd sp|stack_frame.return_ptr 024755 4a 4 01126 7131 20 7492 callsp |[cpu_time_and_paging_op_] 7493 " 024756 aa 6 00056 7571 00 7494 staq sp|cpu save virtual cpu time 024757 aa 6 00054 7401 00 7495 stx0 sp|page save page faults 024760 aa 6 00054 4411 00 7496 sxl1 sp|page .. 7497 " 024761 aa 6 00010 2201 00 7498 ldx0 sp|8 restore x0 024762 aa 6 00046 3521 70 7499 eppbp sp|tbp,*0 pt at arg word 024763 aa 6 00024 2525 00 7500 spbpbp sp|stack_frame.return_ptr restore return ptr 024764 aa 6 00000 3731 00 7501 epbpsb sp|0 sb = stack base 7502 " 024765 aa 004000 6340 07 7503 ldi =o004000,dl mask against overflow (vcpu faults at 19 hrs) 024766 aa 2 00000 2131 00 7504 epaq bp|0 get ptr to static section 024767 aa 7 00052 7651 61 7505 lprplb sb|stack_header.isot_ptr,*au 024770 aa 2 00000 2211 00 7506 ldx1 bp|0 get header relp 024771 aa 5 00000 3715 11 7507 epplb lb|0,1 point at long_profile_header 024772 aa 5 00003 7221 00 7508 lxl2 lb|long_profile_header.last_offset point at profile entry to be updated 024773 aa 5 00001 0541 12 7509 aos lb|long_profile_entry.count,2 update 024774 aa 6 00056 2371 00 7510 ldaq sp|cpu 024775 aa 5 00000 1371 00 7511 sblaq lb|long_profile_header.last_vcpu 024776 aa 5 00002 0561 12 7512 asq lb|long_profile_entry.vcpu,2 024777 aa 6 00054 2361 00 7513 ldq sp|page 025000 aa 5 00002 1361 00 7514 sblq lb|long_profile_header.last_pf 025001 aa 5 00003 0561 12 7515 asq lb|long_profile_entry.pf,2 7516 " 025002 aa 6 00056 2371 00 7517 ldaq sp|cpu set up for next time 025003 aa 5 00000 7571 00 7518 staq lb|long_profile_header.last_vcpu 025004 aa 6 00054 2361 00 7519 ldq sp|page 025005 aa 5 00002 7561 00 7520 stq lb|long_profile_header.last_pf 025006 aa 2 00000 7231 00 7521 lxl3 bp|0 025007 aa 5 00003 4431 00 7522 sxl3 lb|long_profile_header.last_offset 7523 " 025010 aa 7 00024 1731 20 7524 lpri sb|stack_header.stack_end_ptr,* restore regs 025011 aa 6 00010 0731 00 7525 lreg sp|8 .. 025012 aa 000001 6200 10 7526 eax0 1,0 increment for return 025013 aa 6 00055 6341 00 7527 ldi sp|temp_indicators restore indicators 025014 aa 6 00046 7101 70 7528 tra sp|tbp,*0 return 025015 7529 signal_error_missing: 025015 0a 025020 3520 00 7530 eppbp missing_error 025016 aa 000027 2260 03 7531 ldx6 missing_error_length,du 025017 0a 010202 7100 00 7532 tra signal_op 025020 7533 missing_error: 025020 aa 155 151 163 163 7534 aci "missing_pl1_io_operator" 025021 aa 151 156 147 137 025022 aa 160 154 061 137 025023 aa 151 157 137 157 025024 aa 160 145 162 141 025025 aa 164 157 162 000 000027 7535 equ missing_error_length,23 7536 " 7537 " The following code performs an assembly-time cross-check of the consistency 7538 " of the operator_table region. The location referenced by operator_table itself 7539 " must be even...if it is not, the compiled code that references it will fail. 7540 " The following expression will divide-by-zero if operator_table is odd. 7541 " in PL/I: error1 = 1 / (1 - mod (operator_table - reloc_0, 2)); 7542 " 001426 7543 equ optbl_abs,operator_table-begin_pl1_operators " kill off relocation 000001 7544 equ error1,1/(1-(optbl_abs-2*(optbl_abs/2))) " ERROR 1: operator_table on ODD location. 7545 " 7546 end LITERALS 025026 aa 143141 156156 025027 aa 157164 137145 025030 aa 156141 142154 025031 aa 145137 110106 025032 aa 120137 155157 025033 aa 144145 000000 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 025034 5a 000003 000000 025035 5a 000426 600000 025036 aa 000000 000000 025037 55 000012 000002 025040 5a 000002 400003 025041 55 000006 000012 025042 aa 016 160 154 061 025043 aa 137 157 160 145 025044 aa 162 141 164 157 025045 aa 162 163 137 000 025046 55 000022 000003 025047 0a 001243 400000 025050 55 000015 000003 025051 aa 022 126 114 101 VLA_words_per_seg_ 025052 aa 137 167 157 162 025053 aa 144 163 137 160 025054 aa 145 162 137 163 025055 aa 145 147 137 000 025056 55 000030 000012 025057 0a 005622 400000 025060 55 000025 000003 025061 aa 010 166 141 162 var_call 025062 aa 137 143 141 154 025063 aa 154 000 000 000 025064 55 000042 000022 025065 0a 023210 400000 025066 55 000033 000003 025067 aa 030 164 162 141 trace_hfp_operator_table 025070 aa 143 145 137 150 025071 aa 146 160 137 157 025072 aa 160 145 162 141 025073 aa 164 157 162 137 025074 aa 164 141 142 154 025075 aa 145 000 000 000 025076 55 000053 000030 025077 0a 017636 400000 025100 55 000045 000003 025101 aa 024 164 162 141 trace_operator_table 025102 aa 143 145 137 157 025103 aa 160 145 162 141 025104 aa 164 157 162 137 025105 aa 164 141 142 154 025106 aa 145 000 000 000 025107 55 000065 000042 025110 0a 021562 400000 025111 55 000056 000003 025112 aa 031 164 162 141 trace_entry_operators_end 025113 aa 143 145 137 145 025114 aa 156 164 162 171 025115 aa 137 157 160 145 025116 aa 162 141 164 157 025117 aa 162 163 137 145 025120 aa 156 144 000 000 025121 55 000076 000053 025122 0a 020703 400000 025123 55 000070 000003 025124 aa 025 164 162 141 trace_entry_operators 025125 aa 143 145 137 145 025126 aa 156 164 162 171 025127 aa 137 157 160 145 025130 aa 162 141 164 157 025131 aa 162 163 000 000 025132 55 000105 000065 025133 0a 024722 400000 025134 55 000101 000003 025135 aa 017 164 162 141 trace_alm_entry 025136 aa 143 145 137 141 025137 aa 154 155 137 145 025140 aa 156 164 162 171 025141 55 000114 000076 025142 0a 000227 400000 025143 55 000110 000003 025144 aa 015 164 143 164 tct_octal_060 025145 aa 137 157 143 164 025146 aa 141 154 137 060 025147 aa 066 060 000 000 025150 55 000123 000105 025151 0a 000233 400000 025152 55 000117 000003 025153 aa 015 164 143 164 tct_octal_040 025154 aa 137 157 143 164 025155 aa 141 154 137 060 025156 aa 064 060 000 000 025157 55 000131 000114 025160 0a 001043 400000 025161 55 000126 000003 025162 aa 012 164 143 164 tct_byte_3 025163 aa 137 142 171 164 025164 aa 145 137 063 000 025165 55 000137 000123 025166 0a 000643 400000 025167 55 000134 000003 025170 aa 012 164 143 164 tct_byte_2 025171 aa 137 142 171 164 025172 aa 145 137 062 000 025173 55 000145 000131 025174 0a 000443 400000 025175 55 000142 000003 025176 aa 012 164 143 164 tct_byte_1 025177 aa 137 142 171 164 025200 aa 145 137 061 000 025201 55 000153 000137 025202 0a 000243 400000 025203 55 000150 000003 025204 aa 012 164 143 164 tct_byte_0 025205 aa 137 142 171 164 025206 aa 145 137 060 000 025207 55 000161 000145 025210 0a 010446 400000 025211 55 000156 000003 025212 aa 012 160 165 164 put_return 025213 aa 137 162 145 164 025214 aa 165 162 156 000 025215 55 000166 000153 025216 0a 010432 400000 025217 55 000164 000003 025220 aa 005 160 154 151 plio4 025221 aa 157 064 000 000 025222 55 000175 000161 025223 0a 001426 400000 025224 55 000171 000003 025225 aa 016 157 160 145 operator_table 025226 aa 162 141 164 157 025227 aa 162 137 164 141 025230 aa 142 154 145 000 025231 55 000205 000166 025232 0a 014140 400000 025233 55 000200 000003 025234 aa 022 150 146 160 hfp_operator_table 025235 aa 137 157 160 145 025236 aa 162 141 164 157 025237 aa 162 137 164 141 025240 aa 142 154 145 000 025241 55 000213 000175 025242 0a 011323 400000 025243 55 000210 000003 025244 aa 012 147 145 164 get_our_lp 025245 aa 137 157 165 162 025246 aa 137 154 160 000 025247 55 000222 000205 025250 0a 005633 400000 025251 55 000216 000003 025252 aa 014 146 157 162 forward_call 025253 aa 167 141 162 144 025254 aa 137 143 141 154 025255 aa 154 000 000 000 025256 55 000232 000213 025257 0a 016000 400000 025260 55 000225 000003 025261 aa 023 150 146 160 hfp_fort_math_names 025262 aa 137 146 157 162 025263 aa 164 137 155 141 025264 aa 164 150 137 156 025265 aa 141 155 145 163 025266 55 000241 000222 025267 0a 011357 400000 025270 55 000235 000003 025271 aa 017 146 157 162 fort_math_names 025272 aa 164 137 155 141 025273 aa 164 150 137 156 025274 aa 141 155 145 163 025275 55 000251 000232 025276 0a 012426 400000 025277 55 000244 000003 025300 aa 023 145 156 164 entry_operators_end 025301 aa 162 171 137 157 025302 aa 160 145 162 141 025303 aa 164 157 162 163 025304 aa 137 145 156 144 025305 55 000260 000241 025306 0a 002473 400000 025307 55 000254 000003 025310 aa 017 145 156 164 entry_operators 025311 aa 162 171 137 157 025312 aa 160 145 162 141 025313 aa 164 157 162 163 025314 55 000270 000251 025315 0a 012510 400000 025316 55 000263 000003 025317 aa 021 145 156 144 end_pl1_operators 025320 aa 137 160 154 061 025321 aa 137 157 160 145 025322 aa 162 141 164 157 025323 aa 162 163 000 000 025324 55 000277 000260 025325 0a 011243 400000 025326 55 000273 000003 025327 aa 014 143 141 154 call_signal_ 025330 aa 154 137 163 151 025331 aa 147 156 141 154 025332 aa 137 000 000 000 025333 55 000307 000270 025334 0a 000000 400000 025335 55 000302 000003 025336 aa 023 142 145 147 begin_pl1_operators 025337 aa 151 156 137 160 025340 aa 154 061 137 157 025341 aa 160 145 162 141 025342 aa 164 157 162 163 025343 55 000320 000277 025344 0a 024743 400000 025345 55 000312 000003 025346 aa 027 141 154 155 alm_trace_operators_end 025347 aa 137 164 162 141 025350 aa 143 145 137 157 025351 aa 160 145 162 141 025352 aa 164 157 162 163 025353 aa 137 145 156 144 025354 55 000332 000307 025355 0a 024722 400000 025356 55 000323 000003 025357 aa 031 141 154 155 alm_trace_operators_begin 025360 aa 137 164 162 141 025361 aa 143 145 137 157 025362 aa 160 145 162 141 025363 aa 164 157 162 163 025364 aa 137 142 145 147 025365 aa 151 156 000 000 025366 55 000342 000320 025367 0a 007765 400000 025370 55 000335 000003 025371 aa 021 141 154 155 alm_return_no_pop 025372 aa 137 162 145 164 025373 aa 165 162 156 137 025374 aa 156 157 137 160 025375 aa 157 160 000 000 025376 55 000350 000332 025377 0a 007757 400000 025400 55 000345 000003 025401 aa 012 141 154 155 alm_return 025402 aa 137 162 145 164 025403 aa 165 162 156 000 025404 55 000356 000342 025405 0a 007733 400000 025406 55 000353 000003 025407 aa 010 141 154 155 alm_push 025410 aa 137 160 165 163 025411 aa 150 000 000 000 025412 55 000366 000350 025413 0a 007771 400000 025414 55 000361 000003 025415 aa 021 141 154 155 alm_operators_end 025416 aa 137 157 160 145 025417 aa 162 141 164 157 025420 aa 162 163 137 145 025421 aa 156 144 000 000 025422 55 000376 000356 025423 0a 007727 400000 025424 55 000371 000003 025425 aa 023 141 154 155 alm_operators_begin 025426 aa 137 157 160 145 025427 aa 162 141 164 157 025430 aa 162 163 137 142 025431 aa 145 147 151 156 025432 55 000404 000366 025433 0a 007747 400000 025434 55 000401 000003 025435 aa 011 141 154 155 alm_entry 025436 aa 137 145 156 164 025437 aa 162 171 000 000 025440 55 000412 000376 025441 0a 007727 400000 025442 55 000407 000003 025443 aa 010 141 154 155 alm_call 025444 aa 137 143 141 154 025445 aa 154 000 000 000 025446 55 000417 000404 025447 0a 003162 400000 025450 55 000415 000003 025451 aa 005 141 154 154 alloc 025452 aa 157 143 000 000 025453 55 000002 000412 025454 6a 000000 400002 025455 55 000422 000003 025456 aa 014 163 171 155 symbol_table 025457 aa 142 157 154 137 025460 aa 164 141 142 154 025461 aa 145 000 000 000 DEFINITIONS HASH TABLE 025462 aa 000000 000065 025463 aa 000000 000000 025464 5a 000277 000000 025465 5a 000376 000000 025466 5a 000350 000000 025467 5a 000404 000000 025470 aa 000000 000000 025471 aa 000000 000000 025472 aa 000000 000000 025473 5a 000412 000000 025474 5a 000205 000000 025475 aa 000000 000000 025476 5a 000105 000000 025477 5a 000114 000000 025500 aa 000000 000000 025501 5a 000022 000000 025502 aa 000000 000000 025503 5a 000053 000000 025504 5a 000123 000000 025505 5a 000030 000000 025506 5a 000131 000000 025507 5a 000137 000000 025510 5a 000145 000000 025511 5a 000260 000000 025512 5a 000232 000000 025513 5a 000065 000000 025514 5a 000012 000000 025515 5a 000042 000000 025516 5a 000307 000000 025517 5a 000222 000000 025520 5a 000213 000000 025521 5a 000175 000000 025522 5a 000241 000000 025523 5a 000320 000000 025524 5a 000417 000000 025525 5a 000366 000000 025526 aa 000000 000000 025527 5a 000076 000000 025530 5a 000251 000000 025531 5a 000332 000000 025532 5a 000356 000000 025533 5a 000153 000000 025534 aa 000000 000000 025535 5a 000161 000000 025536 aa 000000 000000 025537 aa 000000 000000 025540 5a 000270 000000 025541 aa 000000 000000 025542 aa 000000 000000 025543 5a 000166 000000 025544 aa 000000 000000 025545 aa 000000 000000 025546 aa 000000 000000 025547 5a 000342 000000 EXTERNAL NAMES 025550 aa 027 143 160 165 cpu_time_and_paging_op_ 025551 aa 137 164 151 155 025552 aa 145 137 141 156 025553 aa 144 137 160 141 025554 aa 147 151 156 147 025555 aa 137 157 160 137 025556 aa 012 143 141 164 catch_pl1_ 025557 aa 143 150 137 160 025560 aa 154 061 137 000 025561 aa 014 164 162 141 trace_catch_ 025562 aa 143 145 137 143 025563 aa 141 164 143 150 025564 aa 137 000 000 000 025565 aa 022 146 157 162 fort_hfp_builtins_ 025566 aa 164 137 150 146 025567 aa 160 137 142 165 025570 aa 151 154 164 151 025571 aa 156 163 137 000 025572 aa 011 150 146 160 hfp_dcosh 025573 aa 137 144 143 157 025574 aa 163 150 000 000 025575 aa 010 150 146 160 hfp_cosh 025576 aa 137 143 157 163 025577 aa 150 000 000 000 025600 aa 011 150 146 160 hfp_dsinh 025601 aa 137 144 163 151 025602 aa 156 150 000 000 025603 aa 010 150 146 160 hfp_sinh 025604 aa 137 163 151 156 025605 aa 150 000 000 000 025606 aa 011 150 146 160 hfp_dtanh 025607 aa 137 144 164 141 025610 aa 156 150 000 000 025611 aa 017 150 146 160 hfp_cmpx_p_cmpx 025612 aa 137 143 155 160 025613 aa 170 137 160 137 025614 aa 143 155 160 170 025615 aa 010 150 146 160 hfp_dmod 025616 aa 137 144 155 157 025617 aa 144 000 000 000 025620 aa 010 150 146 160 hfp_tanh 025621 aa 137 164 141 156 025622 aa 150 000 000 000 025623 aa 011 150 146 160 hfp_csqrt 025624 aa 137 143 163 161 025625 aa 162 164 000 000 025626 aa 010 150 146 160 hfp_csin 025627 aa 137 143 163 151 025630 aa 156 000 000 000 025631 aa 010 150 146 160 hfp_clog 025632 aa 137 143 154 157 025633 aa 147 000 000 000 025634 aa 010 150 146 160 hfp_cexp 025635 aa 137 143 145 170 025636 aa 160 000 000 000 025637 aa 010 150 146 160 hfp_ccos 025640 aa 137 143 143 157 025641 aa 163 000 000 000 025642 aa 010 150 146 160 hfp_cabs 025643 aa 137 143 141 142 025644 aa 163 000 000 000 025645 aa 031 150 146 160 hfp_single_power_integer_ 025646 aa 137 163 151 156 025647 aa 147 154 145 137 025650 aa 160 157 167 145 025651 aa 162 137 151 156 025652 aa 164 145 147 145 025653 aa 162 137 000 000 025654 aa 030 150 146 160 hfp_single_power_single_ 025655 aa 137 163 151 156 025656 aa 147 154 145 137 025657 aa 160 157 167 145 025660 aa 162 137 163 151 025661 aa 156 147 154 145 025662 aa 137 000 000 000 025663 aa 031 150 146 160 hfp_double_power_integer_ 025664 aa 137 144 157 165 025665 aa 142 154 145 137 025666 aa 160 157 167 145 025667 aa 162 137 151 156 025670 aa 164 145 147 145 025671 aa 162 137 000 000 025672 aa 030 150 146 160 hfp_double_power_double_ 025673 aa 137 144 157 165 025674 aa 142 154 145 137 025675 aa 160 157 167 145 025676 aa 162 137 144 157 025677 aa 165 142 154 145 025700 aa 137 000 000 000 025701 aa 030 150 146 160 hfp_double_power_single_ 025702 aa 137 144 157 165 025703 aa 142 154 145 137 025704 aa 160 157 167 145 025705 aa 162 137 163 151 025706 aa 156 147 154 145 025707 aa 137 000 000 000 025710 aa 031 150 146 160 hfp_integer_power_double_ 025711 aa 137 151 156 164 025712 aa 145 147 145 162 025713 aa 137 160 157 167 025714 aa 145 162 137 144 025715 aa 157 165 142 154 025716 aa 145 137 000 000 025717 aa 031 150 146 160 hfp_integer_power_single_ 025720 aa 137 151 156 164 025721 aa 145 147 145 162 025722 aa 137 160 157 167 025723 aa 145 162 137 163 025724 aa 151 156 147 154 025725 aa 145 137 000 000 025726 aa 035 150 146 160 hfp_double_arc_tan_degrees_2_ 025727 aa 137 144 157 165 025730 aa 142 154 145 137 025731 aa 141 162 143 137 025732 aa 164 141 156 137 025733 aa 144 145 147 162 025734 aa 145 145 163 137 025735 aa 062 137 000 000 025736 aa 035 150 146 160 hfp_double_arc_tan_radians_2_ 025737 aa 137 144 157 165 025740 aa 142 154 145 137 025741 aa 141 162 143 137 025742 aa 164 141 156 137 025743 aa 162 141 144 151 025744 aa 141 156 163 137 025745 aa 062 137 000 000 025746 aa 032 150 146 160 hfp_arc_tangent_degrees_2_ 025747 aa 137 141 162 143 025750 aa 137 164 141 156 025751 aa 147 145 156 164 025752 aa 137 144 145 147 025753 aa 162 145 145 163 025754 aa 137 062 137 000 025755 aa 032 150 146 160 hfp_arc_tangent_radians_2_ 025756 aa 137 141 162 143 025757 aa 137 164 141 156 025760 aa 147 145 156 164 025761 aa 137 162 141 144 025762 aa 151 141 156 163 025763 aa 137 062 137 000 025764 aa 027 150 146 160 hfp_double_exponential_ 025765 aa 137 144 157 165 025766 aa 142 154 145 137 025767 aa 145 170 160 157 025770 aa 156 145 156 164 025771 aa 151 141 154 137 025772 aa 027 150 146 160 hfp_double_log_base_10_ 025773 aa 137 144 157 165 025774 aa 142 154 145 137 025775 aa 154 157 147 137 025776 aa 142 141 163 145 025777 aa 137 061 060 137 026000 aa 026 150 146 160 hfp_double_log_base_e_ 026001 aa 137 144 157 165 026002 aa 142 154 145 137 026003 aa 154 157 147 137 026004 aa 142 141 163 145 026005 aa 137 145 137 000 026006 aa 026 150 146 160 hfp_double_log_base_2_ 026007 aa 137 144 157 165 026010 aa 142 154 145 137 026011 aa 154 157 147 137 026012 aa 142 141 163 145 026013 aa 137 062 137 000 026014 aa 033 150 146 160 hfp_double_arc_tan_degrees_ 026015 aa 137 144 157 165 026016 aa 142 154 145 137 026017 aa 141 162 143 137 026020 aa 164 141 156 137 026021 aa 144 145 147 162 026022 aa 145 145 163 137 026023 aa 033 150 146 160 hfp_double_arc_tan_radians_ 026024 aa 137 144 157 165 026025 aa 142 154 145 137 026026 aa 141 162 143 137 026027 aa 164 141 156 137 026030 aa 162 141 144 151 026031 aa 141 156 163 137 026032 aa 036 150 146 160 hfp_double_arc_cosine_degrees_ 026033 aa 137 144 157 165 026034 aa 142 154 145 137 026035 aa 141 162 143 137 026036 aa 143 157 163 151 026037 aa 156 145 137 144 026040 aa 145 147 162 145 026041 aa 145 163 137 000 026042 aa 036 150 146 160 hfp_double_arc_cosine_radians_ 026043 aa 137 144 157 165 026044 aa 142 154 145 137 026045 aa 141 162 143 137 026046 aa 143 157 163 151 026047 aa 156 145 137 162 026050 aa 141 144 151 141 026051 aa 156 163 137 000 026052 aa 034 150 146 160 hfp_double_arc_sine_degrees_ 026053 aa 137 144 157 165 026054 aa 142 154 145 137 026055 aa 141 162 143 137 026056 aa 163 151 156 145 026057 aa 137 144 145 147 026060 aa 162 145 145 163 026061 aa 137 000 000 000 026062 aa 034 150 146 160 hfp_double_arc_sine_radians_ 026063 aa 137 144 157 165 026064 aa 142 154 145 137 026065 aa 141 162 143 137 026066 aa 163 151 156 145 026067 aa 137 162 141 144 026070 aa 151 141 156 163 026071 aa 137 000 000 000 026072 aa 033 150 146 160 hfp_double_tangent_degrees_ 026073 aa 137 144 157 165 026074 aa 142 154 145 137 026075 aa 164 141 156 147 026076 aa 145 156 164 137 026077 aa 144 145 147 162 026100 aa 145 145 163 137 026101 aa 033 150 146 160 hfp_double_tangent_radians_ 026102 aa 137 144 157 165 026103 aa 142 154 145 137 026104 aa 164 141 156 147 026105 aa 145 156 164 137 026106 aa 162 141 144 151 026107 aa 141 156 163 137 026110 aa 032 150 146 160 hfp_double_cosine_degrees_ 026111 aa 137 144 157 165 026112 aa 142 154 145 137 026113 aa 143 157 163 151 026114 aa 156 145 137 144 026115 aa 145 147 162 145 026116 aa 145 163 137 000 026117 aa 032 150 146 160 hfp_double_cosine_radians_ 026120 aa 137 144 157 165 026121 aa 142 154 145 137 026122 aa 143 157 163 151 026123 aa 156 145 137 162 026124 aa 141 144 151 141 026125 aa 156 163 137 000 026126 aa 030 150 146 160 hfp_double_sine_degrees_ 026127 aa 137 144 157 165 026130 aa 142 154 145 137 026131 aa 163 151 156 145 026132 aa 137 144 145 147 026133 aa 162 145 145 163 026134 aa 137 000 000 000 026135 aa 030 150 146 160 hfp_double_sine_radians_ 026136 aa 137 144 157 165 026137 aa 142 154 145 137 026140 aa 163 151 156 145 026141 aa 137 162 141 144 026142 aa 151 141 156 163 026143 aa 137 000 000 000 026144 aa 027 150 146 160 hfp_double_square_root_ 026145 aa 137 144 157 165 026146 aa 142 154 145 137 026147 aa 163 161 165 141 026150 aa 162 145 137 162 026151 aa 157 157 164 137 026152 aa 020 150 146 160 hfp_exponential_ 026153 aa 137 145 170 160 026154 aa 157 156 145 156 026155 aa 164 151 141 154 026156 aa 137 000 000 000 026157 aa 020 150 146 160 hfp_log_base_10_ 026160 aa 137 154 157 147 026161 aa 137 142 141 163 026162 aa 145 137 061 060 026163 aa 137 000 000 000 026164 aa 017 150 146 160 hfp_log_base_e_ 026165 aa 137 154 157 147 026166 aa 137 142 141 163 026167 aa 145 137 145 137 026170 aa 017 150 146 160 hfp_log_base_2_ 026171 aa 137 154 157 147 026172 aa 137 142 141 163 026173 aa 145 137 062 137 026174 aa 030 150 146 160 hfp_arc_tangent_degrees_ 026175 aa 137 141 162 143 026176 aa 137 164 141 156 026177 aa 147 145 156 164 026200 aa 137 144 145 147 026201 aa 162 145 145 163 026202 aa 137 000 000 000 026203 aa 030 150 146 160 hfp_arc_tangent_radians_ 026204 aa 137 141 162 143 026205 aa 137 164 141 156 026206 aa 147 145 156 164 026207 aa 137 162 141 144 026210 aa 151 141 156 163 026211 aa 137 000 000 000 026212 aa 027 150 146 160 hfp_arc_cosine_degrees_ 026213 aa 137 141 162 143 026214 aa 137 143 157 163 026215 aa 151 156 145 137 026216 aa 144 145 147 162 026217 aa 145 145 163 137 026220 aa 027 150 146 160 hfp_arc_cosine_radians_ 026221 aa 137 141 162 143 026222 aa 137 143 157 163 026223 aa 151 156 145 137 026224 aa 162 141 144 151 026225 aa 141 156 163 137 026226 aa 025 150 146 160 hfp_arc_sine_degrees_ 026227 aa 137 141 162 143 026230 aa 137 163 151 156 026231 aa 145 137 144 145 026232 aa 147 162 145 145 026233 aa 163 137 000 000 026234 aa 025 150 146 160 hfp_arc_sine_radians_ 026235 aa 137 141 162 143 026236 aa 137 163 151 156 026237 aa 145 137 162 141 026240 aa 144 151 141 156 026241 aa 163 137 000 000 026242 aa 024 150 146 160 hfp_tangent_degrees_ 026243 aa 137 164 141 156 026244 aa 147 145 156 164 026245 aa 137 144 145 147 026246 aa 162 145 145 163 026247 aa 137 000 000 000 026250 aa 024 150 146 160 hfp_tangent_radians_ 026251 aa 137 164 141 156 026252 aa 147 145 156 164 026253 aa 137 162 141 144 026254 aa 151 141 156 163 026255 aa 137 000 000 000 026256 aa 023 150 146 160 hfp_cosine_degrees_ 026257 aa 137 143 157 163 026260 aa 151 156 145 137 026261 aa 144 145 147 162 026262 aa 145 145 163 137 026263 aa 023 150 146 160 hfp_cosine_radians_ 026264 aa 137 143 157 163 026265 aa 151 156 145 137 026266 aa 162 141 144 151 026267 aa 141 156 163 137 026270 aa 021 150 146 160 hfp_sine_degrees_ 026271 aa 137 163 151 156 026272 aa 145 137 144 145 026273 aa 147 162 145 145 026274 aa 163 137 000 000 026275 aa 021 150 146 160 hfp_sine_radians_ 026276 aa 137 163 151 156 026277 aa 145 137 162 141 026300 aa 144 151 141 156 026301 aa 163 137 000 000 026302 aa 020 150 146 160 hfp_square_root_ 026303 aa 137 163 161 165 026304 aa 141 162 145 137 026305 aa 162 157 157 164 026306 aa 137 000 000 000 026307 aa 021 163 145 164 set_hexfp_control 026310 aa 137 150 145 170 026311 aa 146 160 137 143 026312 aa 157 156 164 162 026313 aa 157 154 000 000 026314 aa 004 150 143 163 hcs_ 026315 aa 137 000 000 000 026316 aa 013 143 150 141 chain_entry 026317 aa 151 156 137 145 026320 aa 156 164 162 171 026321 aa 022 146 141 163 fast_related_data_ 026322 aa 164 137 162 145 026323 aa 154 141 164 145 026324 aa 144 137 144 141 026325 aa 164 141 137 000 026326 aa 016 146 157 162 fortran_pause_ 026327 aa 164 162 141 156 026330 aa 137 160 141 165 026331 aa 163 145 137 000 026332 aa 013 146 157 162 fortran_end 026333 aa 164 162 141 156 026334 aa 137 145 156 144 026335 aa 015 146 157 162 fortran_stop_ 026336 aa 164 162 141 156 026337 aa 137 163 164 157 026340 aa 160 137 000 000 026341 aa 004 151 162 163 irs_ 026342 aa 137 000 000 000 026343 aa 004 151 162 154 irl_ 026344 aa 137 000 000 000 026345 aa 004 151 154 163 ils_ 026346 aa 137 000 000 000 026347 aa 004 151 154 162 ilr_ 026350 aa 137 000 000 000 026351 aa 005 141 155 157 amod_ 026352 aa 144 137 000 000 026353 aa 004 155 157 144 mod_ 026354 aa 137 000 000 000 026355 aa 006 144 160 162 dprod_ 026356 aa 157 144 137 000 026357 aa 007 151 144 156 idnint_ 026360 aa 151 156 164 137 026361 aa 005 156 151 156 nint_ 026362 aa 164 137 000 000 026363 aa 006 144 156 151 dnint_ 026364 aa 156 164 137 000 026365 aa 006 141 156 151 anint_ 026366 aa 156 164 137 000 026367 aa 005 144 151 156 dint_ 026370 aa 164 137 000 000 026371 aa 004 154 145 156 len_ 026372 aa 137 000 000 000 026373 aa 006 143 157 156 conjg_ 026374 aa 152 147 137 000 026375 aa 006 141 151 155 aimag_ 026376 aa 141 147 137 000 026377 aa 005 141 151 156 aint_ 026400 aa 164 137 000 000 026401 aa 006 144 163 151 dsign_ 026402 aa 147 156 137 000 026403 aa 006 151 163 151 isign_ 026404 aa 147 156 137 000 026405 aa 005 163 151 147 sign_ 026406 aa 156 137 000 000 026407 aa 005 144 144 151 ddim_ 026410 aa 155 137 000 000 026411 aa 005 151 144 151 idim_ 026412 aa 155 137 000 000 026413 aa 004 144 151 155 dim_ 026414 aa 137 000 000 000 026415 aa 005 144 141 142 dabs_ 026416 aa 163 137 000 000 026417 aa 005 151 141 142 iabs_ 026420 aa 163 137 000 000 026421 aa 004 141 142 163 abs_ 026422 aa 137 000 000 000 026423 aa 006 144 143 157 dcosh_ 026424 aa 163 150 137 000 026425 aa 005 143 157 163 cosh_ 026426 aa 150 137 000 000 026427 aa 006 144 163 151 dsinh_ 026430 aa 156 150 137 000 026431 aa 005 163 151 156 sinh_ 026432 aa 150 137 000 000 026433 aa 006 144 164 141 dtanh_ 026434 aa 156 150 137 000 026435 aa 006 151 156 144 index_ 026436 aa 145 170 137 000 026437 aa 022 146 157 162 fort_int_builtins_ 026440 aa 164 137 151 156 026441 aa 164 137 142 165 026442 aa 151 154 164 151 026443 aa 156 163 137 000 026444 aa 006 144 141 143 dacos_ 026445 aa 157 163 137 000 026446 aa 005 141 143 157 acos_ 026447 aa 163 137 000 000 026450 aa 006 144 141 163 dasin_ 026451 aa 151 156 137 000 026452 aa 005 141 163 151 asin_ 026453 aa 156 137 000 000 026454 aa 005 144 164 141 dtan_ 026455 aa 156 137 000 000 026456 aa 004 164 141 156 tan_ 026457 aa 137 000 000 000 026460 aa 005 143 170 160 cxp2_ 026461 aa 062 137 000 000 026462 aa 006 143 163 161 csqrt_ 026463 aa 162 164 137 000 026464 aa 005 143 143 157 ccos_ 026465 aa 163 137 000 000 026466 aa 005 143 163 151 csin_ 026467 aa 156 137 000 000 026470 aa 005 143 154 157 clog_ 026471 aa 147 137 000 000 026472 aa 005 143 145 170 cexp_ 026473 aa 160 137 000 000 026474 aa 005 143 141 142 cabs_ 026475 aa 163 137 000 000 026476 aa 006 144 163 161 dsqrt_ 026477 aa 162 164 137 000 026500 aa 005 144 143 157 dcos_ 026501 aa 163 137 000 000 026502 aa 005 144 163 151 dsin_ 026503 aa 156 137 000 000 026504 aa 007 144 141 164 datan2_ 026505 aa 141 156 062 137 026506 aa 006 144 141 164 datan_ 026507 aa 141 156 137 000 026510 aa 007 144 154 157 dlog10_ 026511 aa 147 061 060 137 026512 aa 005 144 154 157 dlog_ 026513 aa 147 137 000 000 026514 aa 005 144 145 170 dexp_ 026515 aa 160 137 000 000 026516 aa 005 144 155 157 dmod_ 026517 aa 144 137 000 000 026520 aa 005 163 161 162 sqrt_ 026521 aa 164 137 000 000 026522 aa 005 164 141 156 tanh_ 026523 aa 150 137 000 000 026524 aa 004 143 157 163 cos_ 026525 aa 137 000 000 000 026526 aa 004 163 151 156 sin_ 026527 aa 137 000 000 000 026530 aa 006 141 164 141 atan2_ 026531 aa 156 062 137 000 026532 aa 005 141 164 141 atan_ 026533 aa 156 137 000 000 026534 aa 007 141 154 157 alog10_ 026535 aa 147 061 060 137 026536 aa 005 141 154 157 alog_ 026537 aa 147 137 000 000 026540 aa 004 145 170 160 exp_ 026541 aa 137 000 000 000 026542 aa 022 146 157 162 fort_bfp_builtins_ 026543 aa 164 137 142 146 026544 aa 160 137 142 165 026545 aa 151 154 164 151 026546 aa 156 163 137 000 026547 aa 024 160 154 061 pl1_signal_from_ops_ 026550 aa 137 163 151 147 026551 aa 156 141 154 137 026552 aa 146 162 157 155 026553 aa 137 157 160 163 026554 aa 137 000 000 000 026555 aa 015 160 141 143 pack_picture_ 026556 aa 153 137 160 151 026557 aa 143 164 165 162 026560 aa 145 137 000 000 026561 aa 017 165 156 160 unpack_picture_ 026562 aa 141 143 153 137 026563 aa 160 151 143 164 026564 aa 165 162 145 137 026565 aa 006 146 162 145 freen_ 026566 aa 145 156 137 000 026567 aa 010 163 164 157 storage_ 026570 aa 162 141 147 145 026571 aa 137 000 000 000 026572 aa 013 157 160 137 op_storage_ 026573 aa 163 164 157 162 026574 aa 141 147 145 137 026575 aa 017 147 145 164 get_io_area_ptr 026576 aa 137 151 157 137 026577 aa 141 162 145 141 026600 aa 137 160 164 162 026601 aa 013 160 165 164 put_blanks_ 026602 aa 137 142 154 141 026603 aa 156 153 163 137 026604 aa 007 145 154 145 element 026605 aa 155 145 156 164 026606 aa 011 164 145 162 terminate 026607 aa 155 151 156 141 026610 aa 164 145 000 000 026611 aa 014 146 151 154 file_control 026612 aa 145 137 143 157 026613 aa 156 164 162 157 026614 aa 154 000 000 000 026615 aa 015 162 145 141 read_or_write 026616 aa 144 137 157 162 026617 aa 137 167 162 151 026620 aa 164 145 000 000 026621 aa 013 146 157 162 fortran_io_ 026622 aa 164 162 141 156 026623 aa 137 151 157 137 026624 aa 011 160 165 164 put_prep_ 026625 aa 137 160 162 145 026626 aa 160 137 000 000 026627 aa 011 147 145 164 get_prep_ 026630 aa 137 160 162 145 026631 aa 160 137 000 000 026632 aa 006 143 154 157 close_ 026633 aa 163 145 137 000 026634 aa 016 157 160 145 open_explicit_ 026635 aa 156 137 145 170 026636 aa 160 154 151 143 026637 aa 151 164 137 000 026640 aa 014 160 154 151 plio2_recio_ 026641 aa 157 062 137 162 026642 aa 145 143 151 157 026643 aa 137 000 000 000 026644 aa 017 160 165 164 put_value_edit_ 026645 aa 137 166 141 154 026646 aa 165 145 137 145 026647 aa 144 151 164 137 026650 aa 017 160 165 164 put_value_list_ 026651 aa 137 166 141 154 026652 aa 165 145 137 154 026653 aa 151 163 164 137 026654 aa 017 147 145 164 get_value_list_ 026655 aa 137 166 141 154 026656 aa 165 145 137 154 026657 aa 151 163 164 137 026660 aa 017 160 165 164 put_value_data_ 026661 aa 137 166 141 154 026662 aa 165 145 137 144 026663 aa 141 164 141 137 026664 aa 016 160 165 164 put_terminate_ 026665 aa 137 164 145 162 026666 aa 155 151 156 141 026667 aa 164 145 137 000 026670 aa 016 147 145 164 get_terminate_ 026671 aa 137 164 145 162 026672 aa 155 151 156 141 026673 aa 164 145 137 000 026674 aa 006 160 154 151 plio2_ 026675 aa 157 062 137 000 026676 aa 015 160 165 164 put_field_str 026677 aa 137 146 151 145 026700 aa 154 144 137 163 026701 aa 164 162 000 000 026702 aa 015 146 157 162 fort_cleanup_ 026703 aa 164 137 143 154 026704 aa 145 141 156 165 026705 aa 160 137 000 000 026706 aa 006 143 162 145 create 026707 aa 141 164 145 000 026710 aa 020 146 157 162 fortran_storage_ 026711 aa 164 162 141 156 026712 aa 137 163 164 157 026713 aa 162 141 147 145 026714 aa 137 000 000 000 026715 aa 011 165 156 167 unwinder_ 026716 aa 151 156 144 145 026717 aa 162 137 000 000 026720 aa 010 163 164 157 stop_run 026721 aa 160 137 162 165 026722 aa 156 000 000 000 026723 aa 024 166 151 162 virtual_cpu_time_op_ 026724 aa 164 165 141 154 026725 aa 137 143 160 165 026726 aa 137 164 151 155 026727 aa 145 137 157 160 026730 aa 137 000 000 000 026731 aa 006 143 154 157 clock_ 026732 aa 143 153 137 000 026733 aa 010 163 171 163 sys_info 026734 aa 137 151 156 146 026735 aa 157 000 000 000 026736 aa 004 146 162 145 free 026737 aa 145 000 000 000 026740 aa 030 146 157 162 fortran_storage_manager_ 026741 aa 164 162 141 156 026742 aa 137 163 164 157 026743 aa 162 141 147 145 026744 aa 137 155 141 156 026745 aa 141 147 145 162 026746 aa 137 000 000 000 026747 aa 005 144 143 157 dcosh 026750 aa 163 150 000 000 026751 aa 004 143 157 163 cosh 026752 aa 150 000 000 000 026753 aa 005 144 163 151 dsinh 026754 aa 156 150 000 000 026755 aa 004 163 151 156 sinh 026756 aa 150 000 000 000 026757 aa 005 144 164 141 dtanh 026760 aa 156 150 000 000 026761 aa 013 143 155 160 cmpx_p_cmpx 026762 aa 170 137 160 137 026763 aa 143 155 160 170 026764 aa 004 144 155 157 dmod 026765 aa 144 000 000 000 026766 aa 004 164 141 156 tanh 026767 aa 150 000 000 000 026770 aa 005 143 163 161 csqrt 026771 aa 162 164 000 000 026772 aa 004 143 163 151 csin 026773 aa 156 000 000 000 026774 aa 004 143 154 157 clog 026775 aa 147 000 000 000 026776 aa 004 143 145 170 cexp 026777 aa 160 000 000 000 027000 aa 004 143 143 157 ccos 027001 aa 163 000 000 000 027002 aa 016 146 157 162 fort_math_ops_ 027003 aa 164 137 155 141 027004 aa 164 150 137 157 027005 aa 160 163 137 000 027006 aa 011 157 160 137 op_empty_ 027007 aa 145 155 160 164 027010 aa 171 137 000 000 027011 aa 011 157 160 137 op_freen_ 027012 aa 146 162 145 145 027013 aa 156 137 000 000 027014 aa 011 157 160 137 op_alloc_ 027015 aa 141 154 154 157 027016 aa 143 137 000 000 027017 aa 006 141 154 154 alloc_ 027020 aa 157 143 137 000 027021 aa 013 160 165 164 put_control 027022 aa 137 143 157 156 027023 aa 164 162 157 154 027024 aa 015 160 165 164 put_field_chk 027025 aa 137 146 151 145 027026 aa 154 144 137 143 027027 aa 150 153 000 000 027030 aa 011 160 165 164 put_field 027031 aa 137 146 151 145 027032 aa 154 144 000 000 027033 aa 012 160 165 164 put_field_ 027034 aa 137 146 151 145 027035 aa 154 144 137 000 027036 aa 003 155 157 144 mod 027037 aa 010 164 162 165 truncate 027040 aa 156 143 141 164 027041 aa 145 000 000 000 027042 aa 004 143 141 142 cabs 027043 aa 163 000 000 000 027044 aa 004 163 151 147 sign 027045 aa 156 000 000 000 027046 aa 005 146 154 157 floor 027047 aa 157 162 000 000 027050 aa 004 143 145 151 ceil 027051 aa 154 000 000 000 027052 aa 010 144 145 143 dec_ops_ 027053 aa 137 157 160 163 027054 aa 137 000 000 000 027055 aa 007 144 166 162 dvrcdec 027056 aa 143 144 145 143 027057 aa 006 144 166 143 dvcdec 027060 aa 144 145 143 000 027061 aa 006 155 160 143 mpcdec 027062 aa 144 145 143 000 027063 aa 015 143 160 154 cplx_dec_ops_ 027064 aa 170 137 144 145 027065 aa 143 137 157 160 027066 aa 163 137 000 000 027067 aa 026 151 156 164 integer_power_integer_ 027070 aa 145 147 145 162 027071 aa 137 160 157 167 027072 aa 145 162 137 151 027073 aa 156 164 145 147 027074 aa 145 162 137 000 027075 aa 025 163 151 156 single_power_integer_ 027076 aa 147 154 145 137 027077 aa 160 157 167 145 027100 aa 162 137 151 156 027101 aa 164 145 147 145 027102 aa 162 137 000 000 027103 aa 024 163 151 156 single_power_single_ 027104 aa 147 154 145 137 027105 aa 160 157 167 145 027106 aa 162 137 163 151 027107 aa 156 147 154 145 027110 aa 137 000 000 000 027111 aa 025 144 157 165 double_power_integer_ 027112 aa 142 154 145 137 027113 aa 160 157 167 145 027114 aa 162 137 151 156 027115 aa 164 145 147 145 027116 aa 162 137 000 000 027117 aa 016 160 157 167 power_integer_ 027120 aa 145 162 137 151 027121 aa 156 164 145 147 027122 aa 145 162 137 000 027123 aa 024 144 157 165 double_power_double_ 027124 aa 142 154 145 137 027125 aa 160 157 167 145 027126 aa 162 137 144 157 027127 aa 165 142 154 145 027130 aa 137 000 000 000 027131 aa 024 144 157 165 double_power_single_ 027132 aa 142 154 145 137 027133 aa 160 157 167 145 027134 aa 162 137 163 151 027135 aa 156 147 154 145 027136 aa 137 000 000 000 027137 aa 025 151 156 164 integer_power_double_ 027140 aa 145 147 145 162 027141 aa 137 160 157 167 027142 aa 145 162 137 144 027143 aa 157 165 142 154 027144 aa 145 137 000 000 027145 aa 025 151 156 164 integer_power_single_ 027146 aa 145 147 145 162 027147 aa 137 160 157 167 027150 aa 145 162 137 163 027151 aa 151 156 147 154 027152 aa 145 137 000 000 027153 aa 006 160 157 167 power_ 027154 aa 145 162 137 000 027155 aa 031 144 157 165 double_arc_tan_degrees_2_ 027156 aa 142 154 145 137 027157 aa 141 162 143 137 027160 aa 164 141 156 137 027161 aa 144 145 147 162 027162 aa 145 145 163 137 027163 aa 062 137 000 000 027164 aa 031 144 157 165 double_arc_tan_radians_2_ 027165 aa 142 154 145 137 027166 aa 141 162 143 137 027167 aa 164 141 156 137 027170 aa 162 141 144 151 027171 aa 141 156 163 137 027172 aa 062 137 000 000 027173 aa 026 141 162 143 arc_tangent_degrees_2_ 027174 aa 137 164 141 156 027175 aa 147 145 156 164 027176 aa 137 144 145 147 027177 aa 162 145 145 163 027200 aa 137 062 137 000 027201 aa 026 141 162 143 arc_tangent_radians_2_ 027202 aa 137 164 141 156 027203 aa 147 145 156 164 027204 aa 137 162 141 144 027205 aa 151 141 156 163 027206 aa 137 062 137 000 027207 aa 023 144 157 165 double_exponential_ 027210 aa 142 154 145 137 027211 aa 145 170 160 157 027212 aa 156 145 156 164 027213 aa 151 141 154 137 027214 aa 023 144 157 165 double_log_base_10_ 027215 aa 142 154 145 137 027216 aa 154 157 147 137 027217 aa 142 141 163 145 027220 aa 137 061 060 137 027221 aa 022 144 157 165 double_log_base_e_ 027222 aa 142 154 145 137 027223 aa 154 157 147 137 027224 aa 142 141 163 145 027225 aa 137 145 137 000 027226 aa 022 144 157 165 double_log_base_2_ 027227 aa 142 154 145 137 027230 aa 154 157 147 137 027231 aa 142 141 163 145 027232 aa 137 062 137 000 027233 aa 021 144 157 165 double_logarithm_ 027234 aa 142 154 145 137 027235 aa 154 157 147 141 027236 aa 162 151 164 150 027237 aa 155 137 000 000 027240 aa 027 144 157 165 double_arc_tan_degrees_ 027241 aa 142 154 145 137 027242 aa 141 162 143 137 027243 aa 164 141 156 137 027244 aa 144 145 147 162 027245 aa 145 145 163 137 027246 aa 027 144 157 165 double_arc_tan_radians_ 027247 aa 142 154 145 137 027250 aa 141 162 143 137 027251 aa 164 141 156 137 027252 aa 162 141 144 151 027253 aa 141 156 163 137 027254 aa 023 144 157 165 double_arc_tangent_ 027255 aa 142 154 145 137 027256 aa 141 162 143 137 027257 aa 164 141 156 147 027260 aa 145 156 164 137 027261 aa 032 144 157 165 double_arc_cosine_degrees_ 027262 aa 142 154 145 137 027263 aa 141 162 143 137 027264 aa 143 157 163 151 027265 aa 156 145 137 144 027266 aa 145 147 162 145 027267 aa 145 163 137 000 027270 aa 032 144 157 165 double_arc_cosine_radians_ 027271 aa 142 154 145 137 027272 aa 141 162 143 137 027273 aa 143 157 163 151 027274 aa 156 145 137 162 027275 aa 141 144 151 141 027276 aa 156 163 137 000 027277 aa 030 144 157 165 double_arc_sine_degrees_ 027300 aa 142 154 145 137 027301 aa 141 162 143 137 027302 aa 163 151 156 145 027303 aa 137 144 145 147 027304 aa 162 145 145 163 027305 aa 137 000 000 000 027306 aa 030 144 157 165 double_arc_sine_radians_ 027307 aa 142 154 145 137 027310 aa 141 162 143 137 027311 aa 163 151 156 145 027312 aa 137 162 141 144 027313 aa 151 141 156 163 027314 aa 137 000 000 000 027315 aa 020 144 157 165 double_arc_sine_ 027316 aa 142 154 145 137 027317 aa 141 162 143 137 027320 aa 163 151 156 145 027321 aa 137 000 000 000 027322 aa 027 144 157 165 double_tangent_degrees_ 027323 aa 142 154 145 137 027324 aa 164 141 156 147 027325 aa 145 156 164 137 027326 aa 144 145 147 162 027327 aa 145 145 163 137 027330 aa 027 144 157 165 double_tangent_radians_ 027331 aa 142 154 145 137 027332 aa 164 141 156 147 027333 aa 145 156 164 137 027334 aa 162 141 144 151 027335 aa 141 156 163 137 027336 aa 017 144 157 165 double_tangent_ 027337 aa 142 154 145 137 027340 aa 164 141 156 147 027341 aa 145 156 164 137 027342 aa 026 144 157 165 double_cosine_degrees_ 027343 aa 142 154 145 137 027344 aa 143 157 163 151 027345 aa 156 145 137 144 027346 aa 145 147 162 145 027347 aa 145 163 137 000 027350 aa 026 144 157 165 double_cosine_radians_ 027351 aa 142 154 145 137 027352 aa 143 157 163 151 027353 aa 156 145 137 162 027354 aa 141 144 151 141 027355 aa 156 163 137 000 027356 aa 024 144 157 165 double_sine_degrees_ 027357 aa 142 154 145 137 027360 aa 163 151 156 145 027361 aa 137 144 145 147 027362 aa 162 145 145 163 027363 aa 137 000 000 000 027364 aa 024 144 157 165 double_sine_radians_ 027365 aa 142 154 145 137 027366 aa 163 151 156 145 027367 aa 137 162 141 144 027370 aa 151 141 156 163 027371 aa 137 000 000 000 027372 aa 014 144 157 165 double_sine_ 027373 aa 142 154 145 137 027374 aa 163 151 156 145 027375 aa 137 000 000 000 027376 aa 023 144 157 165 double_square_root_ 027377 aa 142 154 145 137 027400 aa 163 161 165 141 027401 aa 162 145 137 162 027402 aa 157 157 164 137 027403 aa 014 145 170 160 exponential_ 027404 aa 157 156 145 156 027405 aa 164 151 141 154 027406 aa 137 000 000 000 027407 aa 014 154 157 147 log_base_10_ 027410 aa 137 142 141 163 027411 aa 145 137 061 060 027412 aa 137 000 000 000 027413 aa 013 154 157 147 log_base_e_ 027414 aa 137 142 141 163 027415 aa 145 137 145 137 027416 aa 013 154 157 147 log_base_2_ 027417 aa 137 142 141 163 027420 aa 145 137 062 137 027421 aa 012 154 157 147 logarithm_ 027422 aa 141 162 151 164 027423 aa 150 155 137 000 027424 aa 024 141 162 143 arc_tangent_degrees_ 027425 aa 137 164 141 156 027426 aa 147 145 156 164 027427 aa 137 144 145 147 027430 aa 162 145 145 163 027431 aa 137 000 000 000 027432 aa 024 141 162 143 arc_tangent_radians_ 027433 aa 137 164 141 156 027434 aa 147 145 156 164 027435 aa 137 162 141 144 027436 aa 151 141 156 163 027437 aa 137 000 000 000 027440 aa 014 141 162 143 arc_tangent_ 027441 aa 137 164 141 156 027442 aa 147 145 156 164 027443 aa 137 000 000 000 027444 aa 023 141 162 143 arc_cosine_degrees_ 027445 aa 137 143 157 163 027446 aa 151 156 145 137 027447 aa 144 145 147 162 027450 aa 145 145 163 137 027451 aa 023 141 162 143 arc_cosine_radians_ 027452 aa 137 143 157 163 027453 aa 151 156 145 137 027454 aa 162 141 144 151 027455 aa 141 156 163 137 027456 aa 021 141 162 143 arc_sine_degrees_ 027457 aa 137 163 151 156 027460 aa 145 137 144 145 027461 aa 147 162 145 145 027462 aa 163 137 000 000 027463 aa 021 141 162 143 arc_sine_radians_ 027464 aa 137 163 151 156 027465 aa 145 137 162 141 027466 aa 144 151 141 156 027467 aa 163 137 000 000 027470 aa 011 141 162 143 arc_sine_ 027471 aa 137 163 151 156 027472 aa 145 137 000 000 027473 aa 020 164 141 156 tangent_degrees_ 027474 aa 147 145 156 164 027475 aa 137 144 145 147 027476 aa 162 145 145 163 027477 aa 137 000 000 000 027500 aa 020 164 141 156 tangent_radians_ 027501 aa 147 145 156 164 027502 aa 137 162 141 144 027503 aa 151 141 156 163 027504 aa 137 000 000 000 027505 aa 010 164 141 156 tangent_ 027506 aa 147 145 156 164 027507 aa 137 000 000 000 027510 aa 017 143 157 163 cosine_degrees_ 027511 aa 151 156 145 137 027512 aa 144 145 147 162 027513 aa 145 145 163 137 027514 aa 017 143 157 163 cosine_radians_ 027515 aa 151 156 145 137 027516 aa 162 141 144 151 027517 aa 141 156 163 137 027520 aa 015 163 151 156 sine_degrees_ 027521 aa 145 137 144 145 027522 aa 147 162 145 145 027523 aa 163 137 000 000 027524 aa 015 163 151 156 sine_radians_ 027525 aa 145 137 162 141 027526 aa 144 151 141 156 027527 aa 163 137 000 000 027530 aa 005 163 151 156 sine_ 027531 aa 145 137 000 000 027532 aa 014 163 161 165 square_root_ 027533 aa 141 162 145 137 027534 aa 162 157 157 164 027535 aa 137 000 000 000 027536 aa 024 141 156 171 any_to_any_truncate_ 027537 aa 137 164 157 137 027540 aa 141 156 171 137 027541 aa 164 162 165 156 027542 aa 143 141 164 145 027543 aa 137 000 000 000 027544 aa 021 141 156 171 any_to_any_round_ 027545 aa 137 164 157 137 027546 aa 141 156 171 137 027547 aa 162 157 165 156 027550 aa 144 137 000 000 027551 aa 026 162 145 141 real_to_real_truncate_ 027552 aa 154 137 164 157 027553 aa 137 162 145 141 027554 aa 154 137 164 162 027555 aa 165 156 143 141 027556 aa 164 145 137 000 027557 aa 023 162 145 141 real_to_real_round_ 027560 aa 154 137 164 157 027561 aa 137 162 145 141 027562 aa 154 137 162 157 027563 aa 165 156 144 137 027564 aa 013 141 156 171 any_to_any_ 027565 aa 137 164 157 137 027566 aa 141 156 171 137 027567 aa 014 147 145 164 get_edit_eis 027570 aa 137 145 144 151 027571 aa 164 137 145 151 027572 aa 163 000 000 000 027573 aa 014 160 165 164 put_edit_eis 027574 aa 137 145 144 151 027575 aa 164 137 145 151 027576 aa 163 000 000 000 027577 aa 011 162 145 143 record_io 027600 aa 157 162 144 137 027601 aa 151 157 000 000 027602 aa 012 162 145 143 record_io_ 027603 aa 157 162 144 137 027604 aa 151 157 137 000 027605 aa 013 163 164 162 stream_prep 027606 aa 145 141 155 137 027607 aa 160 162 145 160 027610 aa 015 160 165 164 put_terminate 027611 aa 137 164 145 162 027612 aa 155 151 156 141 027613 aa 164 145 000 000 027614 aa 013 160 165 164 put_format_ 027615 aa 137 146 157 162 027616 aa 155 141 164 137 NO TRAP POINTER WORDS TYPE PAIR BLOCKS 027617 aa 000004 000000 027620 55 000514 000514 027621 aa 000004 000000 027622 55 000525 000522 027623 aa 000004 000000 027624 55 000531 001315 027625 aa 000004 000000 027626 55 000531 001321 027627 aa 000004 000000 027630 55 000531 001323 027631 aa 000004 000000 027632 55 000531 001325 027633 aa 000004 000000 027634 55 000531 001327 027635 aa 000004 000000 027636 55 000531 001331 027637 aa 000004 000000 027640 55 000531 001333 027641 aa 000004 000000 027642 55 000531 001337 027643 aa 000004 000000 027644 55 000531 001341 027645 aa 000004 000000 027646 55 000531 001343 027647 aa 000004 000000 027650 55 000531 001345 027651 aa 000004 000000 027652 55 000531 001351 027653 aa 000004 000000 027654 55 000531 001353 027655 aa 000004 000000 027656 55 000531 001357 027657 aa 000004 000000 027660 55 000531 001361 027661 aa 000004 000000 027662 55 000531 001365 027663 aa 000004 000000 027664 55 000531 001367 027665 aa 000004 000000 027666 55 000531 001371 027667 aa 000004 000000 027670 55 000531 001373 027671 aa 000004 000000 027672 55 000531 001375 027673 aa 000004 000000 027674 55 000531 001377 027675 aa 000004 000000 027676 55 000531 001410 027677 aa 000004 000000 027700 55 000531 001412 027701 aa 000004 000000 027702 55 000531 001414 027703 aa 000004 000000 027704 55 000531 001416 027705 aa 000004 000000 027706 55 000531 001420 027707 aa 000004 000000 027710 55 000531 001422 027711 aa 000004 000000 027712 55 000531 001424 027713 aa 000004 000000 027714 55 000531 001426 027715 aa 000004 000000 027716 55 000531 001430 027717 aa 000004 000000 027720 55 000531 001432 027721 aa 000004 000000 027722 55 000531 001434 027723 aa 000004 000000 027724 55 000531 001436 027725 aa 000004 000000 027726 55 000531 001440 027727 aa 000004 000000 027730 55 000531 001442 027731 aa 000004 000000 027732 55 000531 001444 027733 aa 000004 000000 027734 55 000531 001446 027735 aa 000004 000000 027736 55 000531 001450 027737 aa 000004 000000 027740 55 000531 001452 027741 aa 000004 000000 027742 55 000531 001454 027743 aa 000004 000000 027744 55 000531 001456 027745 aa 000004 000000 027746 55 000531 001460 027747 aa 000004 000000 027750 55 000531 001462 027751 aa 000004 000000