COMPILATION LISTING OF SEGMENT alm_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/17/88 1010.4 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 6* * * 7* *********************************************************** */ 8 9 /****^ HISTORY COMMENTS: 10* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 11* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 12* Written to be a general subroutine level interface to ALM. 13* 2) change(86-11-24,JRGray), approve(86-11-24,MCR7507), 14* audit(86-11-25,RWaters), install(86-11-26,MR12.0-1228): 15* Changed (PBF) to properly return error_codes for various error conditions. 16* END HISTORY COMMENTS */ 17 18 alm_: proc(ALM_INFO_PTR, ALM_ARGS_PTR, severity, code); 19 20 /* This procedure was written to provide a generalized subroutine 21* interface to ALM. This will allow various subsystems and compiler 22* to utilize ALM. 23**/ 24 25 /* P A R A M E T E R S */ 26 dcl (ALM_INFO_PTR, ALM_ARGS_PTR) ptr parameter; 27 dcl severity fixed bin parameter; 28 dcl code fixed bin(35) parameter; 29 30 /* S T A T I C S E C T I O N */ 31 dcl recursive bit(1) static init("0"b); 32 33 /* A U T O M A T I C S E C T I O N */ 34 dcl argument char(argument_len) based(argument_ptr); 35 dcl argument_len fixed bin(21); 36 dcl argument_ptr ptr; 37 dcl bit_count fixed bin(24); 38 dcl caller_ptr ptr; 39 dcl canonical_str char(24); 40 dcl date char(24) aligned; 41 dcl decor fixed bin(35); 42 dcl default_str char(24); 43 dcl first_time_thru bit(1); 44 dcl (i, n) fixed bin; 45 dcl no_target_given bit(1) init("0"b); 46 dcl target_value fixed bin; 47 dcl temp_ptrs(2) ptr init((2) null); 48 dcl trimmed_entryname char(32); 49 50 dcl cleanup condition; 51 dcl null builtin; 52 53 dcl alm_cross_reference_ entry; 54 dcl alm_include_file_$first_file entry(char(*)); 55 dcl alm_merge_$alm_merge_ entry; 56 dcl clock_ entry returns(fixed bin(71)); 57 dcl com_err_ entry options(variable); 58 dcl cu_$caller_ptr entry returns(ptr); 59 dcl date_time_ entry(fixed bin(71), char(*) aligned); 60 dcl get_group_id_ entry returns(char(32) aligned); 61 dcl get_temp_segments_ entry(char(*), (*) ptr, fixed bin(35)); 62 dcl glpl_$genlas entry; 63 dcl hcs_$get_max_length_seg entry(ptr, fixed bin(19), fixed bin(35)); 64 dcl hcs_$status_mins entry(ptr, fixed bin(2), fixed bin(24), fixed bin(35)); 65 dcl lstman_$blkasn entry(fixed bin(17), fixed bin(17), fixed bin(17), fixed bin(17)) returns(fixed bin(17)); 66 dcl make_alm_object_map_ entry(fixed bin(26)); 67 dcl make_object_map_ entry(ptr, fixed bin(26), fixed bin(26), fixed bin(26), fixed bin(26), fixed bin(35)); 68 dcl mexp_$cleanup entry; 69 dcl mexp_$init entry(fixed bin(35)); 70 dcl object_info_$brief entry(ptr, fixed bin(24), ptr, fixed bin(35)); 71 dcl pakbit_$pakbit_ entry; 72 dcl pass1_$pass1_ entry( fixed bin(35), fixed bin(17), bit(1), bit(1)); 73 dcl pass2_$pass2_ entry( fixed bin(35), fixed bin(17), bit(1), bit(1)); 74 dcl postp1_$postp1_ entry; 75 dcl postp2_$postp2_ entry; 76 dcl prlst_$prlst_ entry(char(*)); 77 dcl prnter_$general_abort entry(char(*)); 78 dcl release_temp_segments_ entry(char(*), (*) ptr, fixed bin(35)); 79 dcl system_type_ entry(char(*), char(*), fixed bin(17), fixed bin(35)); 80 81 dcl eb_data_$abort_assembly external static label; 82 dcl eb_data_$alm_arg_ptr ptr ext; 83 dcl eb_data_$alm_arg_count fixed bin ext; 84 dcl eb_data_$curr_char_no fixed bin(17) external; 85 dcl eb_data_$lavptr ptr ext; /* ptr to ALM's scratch segment of list structures */ 86 dcl eb_data_$list_component external fixed bin; 87 dcl eb_data_$listing_max_length fixed bin(19) ext; 88 dcl eb_data_$mexp_argno fixed bin ext; 89 dcl 1 eb_data_$oulst external, 2 oulst char(68) aligned; 90 dcl eb_data_$per_process_static_sw fixed bin ext; 91 dcl eb_data_$varcom_size external fixed bin(17); 92 dcl eb_data_$who_am_I char(12) external; 93 dcl error_table_$null_info_ptr fixed bin(35) external; 94 dcl error_table_$request_pending fixed bin(35) external; 95 dcl error_table_$translation_aborted fixed bin(35) external; 96 dcl error_table_$translation_failed fixed bin(35) external; 97 dcl error_table_$unimplemented_version fixed bin(35) external; 98 dcl error_table_$zero_length_seg fixed bin(35) external; 99 dcl new_sthedr_$generator external static char(8); 100 dcl new_sthedr_$gen_number external static fixed bin; 101 102 dcl 01 OBJECT_INFO like object_info; 103 1 1 /* BEGIN INCLUDE FILE alm_info.incl.pl1 */ 1 2 1 3 /****^ HISTORY COMMENTS: 1 4* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 1 5* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 1 6* Created to describe the structures used to pass information to the alm_ 1 7* subroutine. 1 8* END HISTORY COMMENTS */ 1 9 1 10 /* Written June 9, 1986 by JRGray */ 1 11 1 12 /* This include files describes the alm_info and alm_args 1 13* structures that are used to pass information to the alm_ 1 14* subroutine. */ 1 15 1 16 dcl alm_info_ptr ptr; 1 17 dcl 1 alm_info based(alm_info_ptr), 1 18 2 version char(8), 1 19 2 flags, 1 20 3 (symbols, brief, list, table, brief_table) bit(1) unaligned, 1 21 3 pad bit(32) unaligned, 1 22 2 target char(32), 1 23 2 generator_info, 1 24 3 generator char(8), 1 25 3 gen_number fixed bin, 1 26 3 gen_version char(160), 1 27 3 gen_created fixed bin(71), 1 28 2 option_string char(200) varying, 1 29 2 source_path char(168), 1 30 2 source_entryname char(32), 1 31 2 source_ptr ptr, 1 32 2 source_bc fixed bin(24), 1 33 2 object_ptr ptr, 1 34 2 object_bc fixed bin(24), 1 35 2 list_fcb_ptr ptr, 1 36 2 list_component_ptr ptr, 1 37 2 list_bc fixed bin(24), 1 38 2 list_component fixed bin; 1 39 1 40 dcl alm_args_ptr ptr; 1 41 dcl 1 alm_args based(alm_args_ptr), 1 42 2 version char(8), 1 43 2 arg_count fixed bin, 1 44 2 arg(arg_count), 1 45 3 arg_ptr ptr, 1 46 3 len fixed bin(21); 1 47 1 48 dcl ALM_INFO_V1 char(8) static options(constant) init("alm_i_1"); 1 49 dcl ALM_ARGS_V1 char(8) static options(constant) init("alm_a_1"); 1 50 1 51 /* END INCLUDE FILE alm_info.incl.pl1 */ 104 2 1 /* BEGIN INCLUDE FILE ...alm_data.incl.pl1 2 2*written 7/14/81 by EBush */ 2 3 2 4 dcl alm_data1$structure external static; 2 5 2 6 dcl data1_ptr ptr; 2 7 2 8 dcl 1 data1 based(data1_ptr), 2 9 2 extent fixed bin, 2 10 2 decor(1 refer(data1.extent)), 2 11 3 name char(24) varying, 2 12 3 number fixed bin(35); 2 13 2 14 dcl alm_data2$structure external static; 2 15 2 16 dcl data2_ptr ptr; 2 17 2 18 dcl 1 data2 based(data2_ptr), 2 19 2 num_of_classes_less_1 fixed bin, 2 20 2 num_of_decors fixed bin, 2 21 2 compatible(0:1 refer(data2.num_of_classes_less_1),1 refer(data2.num_of_decors)) bit(1); 2 22 2 23 data1_ptr = addr(alm_data1$structure); 2 24 data2_ptr = addr(alm_data2$structure); 2 25 2 26 /* END OF INCLUDE FILE ...alm_data.incl.pl1 */ 3 1 /* Begin include file alm_options.incl.pl1. 3 2* This file defines the external cells used to pass options to the various modules of the assembler. 3 3* Created on 03/17/72 at 01:39:44 by R F Mabee. 3 4* Last modified on 07/23/72 at 22:02:34 by R F Mabee. */ 3 5 3 6 declare 1 eb_data_$alm_options external static aligned, 3 7 2 tnewcall fixed binary, /* Use new call/save/return operators. */ 3 8 2 tnewmachine fixed binary, /* Use followon hardware instruction set. */ 3 9 2 tnewobject fixed binary, /* Use new object segment format. */ 3 10 2 tcheckcompatibility fixed binary, /* Check for instructions changed in followon. */ 3 11 2 tquietsw fixed binary, /* Suppress online printout of error messages. */ 3 12 2 tfirstreftrap fixed binary, /* A first reference trap procedure was given. */ 3 13 2 tnoxref fixed binary; /* Zero if cross reference if to be produced. */ 3 14 3 15 /* End of include file alm_options.incl.pl1 */ 106 4 1 4 2 4 3 4 4 /* include file for CONCOM */ 4 5 4 6 declare 1 eb_data_$concom ext aligned, 4 7 2 (ap, ab, bp, bb, lp, lb, sp, sb, 4 8 clunk, clint, clext, clbas, clstk, clndx, clmlc, fdef, 4 9 fmul, fphs, fset, frel, fabs, fbol, fcom, find, 4 10 flocrf, fequrf, fbolrf, fsetrf, fbasrf, fsegrf, fstkrf, fndxrf, 4 11 fmlcrf, onesev, twosev, thrsev, forsev, fivsev, sixsev, allsev, 4 12 symbas(8),mir, mri, mdu, mdl, mx0, mx1, mpc, 4 13 mpci, mfi, mits, mitb, ixtern, intern, iassgn, iserch, 4 14 ixvrvl, ixvrvp, invrvl, invrvp, ibvrvl, ibvrvp, iaccvl, iacivl, 4 15 mcmpq, mcmpx0, mldaq, mldq, mldx0, mnopdu, mstcd, mtra, 4 16 mtnc, mtnz, meabsp, meapap, meapbp, meaplp, meapsp, mstpap, 4 17 mstpbp, mstplp, mstpsp, i1542, i642, i3333, i66, ibb, 4 18 ibsp, nullf, smxer(2), sentry(2),sretrn(2), dzero(2) ) fixed bin (26) aligned ; 4 19 4 20 /* end of the include file for CONCOM */ 107 5 1 5 2 /* Last modified by EBush on 2/5/81 to add prnta */ 5 3 5 4 5 5 declare 1 eb_data_$erflgs ext aligned, 5 6 2 flgvec (36) fixed bin (17) aligned ; 5 7 5 8 5 9 declare 1 eb_data_$erflgs_overlay ext aligned, /* overlays the FLGVEC */ 5 10 2 (prnte, prntf, prntm, prntn, prnto, prntp, 5 11 prntr, prnts, prntt, prntu, prntx, prntb, 5 12 prntc, prntd, prnta, prnt5, prnt6, prnt7, 5 13 tstsw(18) ) fixed bin (17) aligned ; 5 14 5 15 108 6 1 6 2 6 3 6 4 /* the include file LSTCOM */ 6 5 6 6 declare 1 eb_data_$lstcom ext aligned, 6 7 2 tnolst fixed bin (17) ; 6 8 6 9 6 10 /* end of the include file LSTCOM */ 6 11 109 7 1 /* BEGIN INCLUDE FILE ... object_info.incl.pl1 7 2*coded February 8, 1972 by Michael J. Spier */ 7 3 /* modified May 26, 1972 by M. Weaver */ 7 4 /* modified 15 April, 1975 by M. Weaver */ 7 5 7 6 declare 1 object_info aligned based, /* structure containing object info based, returned by object_info_ */ 7 7 2 version_number fixed bin, /* version number of current structure format (=2) */ 7 8 2 textp pointer, /* pointer to beginning of text section */ 7 9 2 defp pointer, /* pointer to beginning of definition section */ 7 10 2 linkp pointer, /* pointer to beginning of linkage section */ 7 11 2 statp pointer, /* pointer to beginning of static section */ 7 12 2 symbp pointer, /* pointer to beginning of symbol section */ 7 13 2 bmapp pointer, /* pointer to beginning of break map (may be null) */ 7 14 2 tlng fixed bin, /* length in words of text section */ 7 15 2 dlng fixed bin, /* length in words of definition section */ 7 16 2 llng fixed bin, /* length in words of linkage section */ 7 17 2 ilng fixed bin, /* length in words of static section */ 7 18 2 slng fixed bin, /* length in words of symbol section */ 7 19 2 blng fixed bin, /* length in words of break map */ 7 20 2 format, /* word containing bit flags about object type */ 7 21 3 old_format bit(1) unaligned, /* on if segment isn't in new format, i.e. has old style object map */ 7 22 3 bound bit(1) unaligned, /* on if segment is bound */ 7 23 3 relocatable bit(1) unaligned, /* on if seg has relocation info in its first symbol block */ 7 24 3 procedure bit(1) unaligned, /* on if segment is an executable object program */ 7 25 3 standard bit(1) unaligned, /* on if seg is in standard format (more than just standard map) */ 7 26 3 gate bit(1) unaligned, /* on if segment is a gate */ 7 27 3 separate_static bit(1) unaligned, /* on if static not in linkage */ 7 28 3 links_in_text bit(1) unaligned, /* on if there are threaded links in text */ 7 29 3 perprocess_static bit (1) unaligned, /* on if static is not to be per run unit */ 7 30 3 pad bit(27) unaligned, 7 31 2 entry_bound fixed bin, /* entry bound if segment is a gate */ 7 32 2 textlinkp pointer, /* ptr to first link in text */ 7 33 7 34 /* LIMIT OF BRIEF STRUCTURE */ 7 35 7 36 2 compiler char(8) aligned, /* name of processor which generated segment */ 7 37 2 compile_time fixed bin(71), /* clock reading of date/time object was generated */ 7 38 2 userid char(32) aligned, /* standard Multics id of creator of object segment */ 7 39 2 cvers aligned, /* generator version name in printable char string form */ 7 40 3 offset bit(18) unaligned, /* offset of name in words relative to base of symbol section */ 7 41 3 length bit(18) unaligned, /* length of name in characters */ 7 42 2 comment aligned, /* printable comment concerning generator or generation of segment */ 7 43 3 offset bit(18) unaligned, /* offset of comment in words relative to base of symbol section */ 7 44 3 length bit(18) unaligned, /* length of comment in characters */ 7 45 2 source_map fixed bin, /* offset, relative to base of symbol section, of source map structure */ 7 46 7 47 /* LIMIT OF DISPLAY STRUCTURE */ 7 48 7 49 2 rel_text pointer, /* pointer to text section relocation info */ 7 50 2 rel_def pointer, /* pointer to definition section relocation info */ 7 51 2 rel_link pointer, /* pointer to linkage section relocation info */ 7 52 2 rel_static pointer, /* pointer to static section relocation info */ 7 53 2 rel_symbol pointer, /* pointer to symbol section relocation info */ 7 54 2 text_boundary fixed bin, /* specifies mod of text section base boundary */ 7 55 2 static_boundary fixed bin, /* specifies mod of internal static base boundary */ 7 56 /* currently not used by system */ 7 57 2 default_truncate fixed bin, /* offset rel to symbp for binder to automatically trunc. symb sect. */ 7 58 2 optional_truncate fixed bin; /* offset rel to symbp for binder to optionally trunc. symb sect. */ 7 59 7 60 declare object_info_version_2 fixed bin int static init(2); 7 61 7 62 /* END INCLUDE FILE ... object_info.incl.pl1 */ 110 8 1 /* Begin include file objnfo.incl.pl1. 8 2* Parameters saved for object map. 8 3* Last modified on 05/12/72 at 01:10:27 by R F Mabee. */ 8 4 8 5 8 6 /****^ HISTORY COMMENTS: 8 7* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 8 8* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 8 9* Modified to add definition count used to join blocks to the definition 8 10* section. 8 11* END HISTORY COMMENTS */ 8 12 8 13 declare 1 eb_data_$objnfo external static aligned, 8 14 2 (itxpc, ilkpc, istpc, idfpc, itxcnt, ilkcnt, istcnt, idfcnt) fixed bin (26) aligned, 8 15 2 (new_text_offset, new_definition_offset, new_link_offset, new_static_offset, new_symbol_offset) fixed bin (26) aligned, 8 16 2 (new_text_length, new_definition_length, new_link_length, new_static_length, new_symbol_length) fixed bin (26) aligned; 8 17 8 18 /* End of include file objnfo.incl.pl1. */ 111 9 1 /* BEGIN INCLUDE FILE segnfo.incl.pl1 for alm (see also segnfo.incl.alm) */ 9 2 9 3 9 4 /****^ HISTORY COMMENTS: 9 5* 1) change(86-10-01,JRGray), approve(86-10-01,MCR7507), 9 6* audit(86-10-27,RWaters), install(86-11-12,MR12.0-1202): 9 7* Modified to keep a ptr to the list FCB. This is part of the fix that 9 8* removes PAD characters from the listing segment. 9 9* END HISTORY COMMENTS */ 9 10 9 11 declare 1 eb_data_$segnfo ext aligned, 9 12 2 (text, source, list, list_fcb, scrtch) ptr aligned, 9 13 2 (txtlen, srclen, lstlen) fixed bin (26) aligned; 9 14 9 15 /* END INCLUDE FILE segnfo.incl.pl1 */ 112 10 1 dcl 1 std_symbol_header based aligned, 10 2 2 dcl_version fixed bin, 10 3 2 identifier char(8), 10 4 2 gen_number fixed bin, 10 5 2 gen_created fixed bin(71), 10 6 2 object_created fixed bin(71), 10 7 2 generator char(8), 10 8 2 gen_version unaligned, 10 9 3 offset bit(18), 10 10 3 size bit(18), 10 11 2 userid unaligned, 10 12 3 offset bit(18), 10 13 3 size bit(18), 10 14 2 comment unaligned, 10 15 3 offset bit(18), 10 16 3 size bit(18), 10 17 2 text_boundary bit(18) unaligned, 10 18 2 stat_boundary bit(18) unaligned, 10 19 2 source_map bit(18) unaligned, 10 20 2 area_pointer bit(18) unaligned, 10 21 2 backpointer bit(18) unaligned, 10 22 2 block_size bit(18) unaligned, 10 23 2 next_block bit(18) unaligned, 10 24 2 rel_text bit(18) unaligned, 10 25 2 rel_def bit(18) unaligned, 10 26 2 rel_link bit(18) unaligned, 10 27 2 rel_symbol bit(18) unaligned, 10 28 2 mini_truncate bit(18) unaligned, 10 29 2 maxi_truncate bit(18) unaligned; 113 11 1 /* Include file sthedr.incl.pl1. 11 2* This file declares old and new versions of symbol table headers. 11 3* Last modified on 06/20/72 at 18:51:18 by R F Mabee. */ 11 4 11 5 11 6 11 7 /****^ HISTORY COMMENTS: 11 8* 1) change(88-08-02,JRGray), approve(88-08-05,MCR7952), 11 9* audit(88-09-30,WAAnderson), install(88-10-17,MR12.2-1169): 11 10* Modified to make area_offset externally available. This is part of 11 11* Symbol Table Support. 11 12* END HISTORY COMMENTS */ 11 13 11 14 11 15 /* Declarations for old object segment format symbol table header. */ 11 16 11 17 declare sthedr_$sthedr_ ext aligned; 11 18 11 19 declare (sthedr_$alm_creation_date, sthedr_$time_of_translation) ext fixed bin (71) aligned; 11 20 11 21 declare sthedr_$seg_name ext char (32) aligned; 11 22 11 23 declare 1 sthedr_$text_and_link_lengths ext aligned, 11 24 2 text_length bit (18) unaligned, 11 25 2 link_length bit (18) unaligned; 11 26 11 27 declare sthedr_$hdrlen ext fixed bin (26) aligned; 11 28 11 29 /* Declarations for new object segment format symbol table header. */ 11 30 11 31 declare new_sthedr_$new_sthedr_ ext aligned; 11 32 11 33 declare (new_sthedr_$alm_creation_date, new_sthedr_$time_of_translation) ext fixed bin (71) aligned; 11 34 11 35 declare new_sthedr_$alm_version_name ext char (32) aligned; 11 36 11 37 declare new_sthedr_$user_id ext char (32) aligned; 11 38 11 39 declare new_sthedr_$comment ext char (64) aligned; 11 40 11 41 declare 1 new_sthedr_$text_and_link_boundaries ext aligned, 11 42 2 text_boundary bit (18) unaligned, 11 43 2 link_boundary bit (18) unaligned; 11 44 11 45 declare 1 new_sthedr_$source_and_area ext aligned, 11 46 2 source_map_offset bit (18) unaligned, 11 47 2 area_offset bit (18) unaligned; 11 48 11 49 declare 1 new_sthedr_$block_size ext aligned, 11 50 2 padding bit (18) unaligned, 11 51 2 block_size bit (18) unaligned; 11 52 11 53 declare 1 new_sthedr_$rel_bits_ptrs ext aligned, 11 54 2 padding bit (18) unaligned, 11 55 2 rel_text bit (18) unaligned, 11 56 2 rel_def bit (18) unaligned, 11 57 2 rel_link bit (18) unaligned, 11 58 2 rel_symbol bit (18) unaligned, 11 59 2 other_bits bit (18) unaligned; 11 60 11 61 declare 1 new_sthedr_$truncate_info ext aligned, 11 62 2 padding bit (18) unaligned, 11 63 2 default_truncate bit (18) unaligned, 11 64 2 optional_truncate bit (18) unaligned, 11 65 2 other_bits bit (18) unaligned; 11 66 11 67 declare new_sthedr_$hdrlen ext fixed bin (26) aligned; 11 68 11 69 declare new_sthedr_$relocinfo ext aligned; 11 70 11 71 /* End of the include file sthedr.incl.pl1 */ 114 12 1 /* BEGIN INCLUDE FILE ... system_types.incl.pl1 ... 03/23/81 ... W. Olin Sibert */ 12 2 12 3 dcl L68_SYSTEM fixed bin (17) internal static options (constant) init (1); 12 4 dcl ADP_SYSTEM fixed bin (17) internal static options (constant) init (2); 12 5 12 6 dcl SYSTEM_TYPE_NAME (2) char (8) internal static options (constant) init 12 7 ("Level68", "ADP"); 12 8 12 9 /* END INCLUDE FILE ... system_types.incl.pl1 */ 115 13 1 /* Begin include file varcom.incl.pl1. */ 13 2 /* RHG added new variables 9/7/70. */ 13 3 /* RFM added new cells for new object segment format and first-reference trap, 27 March 1972. */ 13 4 /* RFM added include file stuff, then cross referencer stuff, 23 July 1972. */ 13 5 /* Last modified on 07/23/72 at 04:19:25 by R F Mabee. */ 13 6 13 7 declare 1 eb_data_$varcom external aligned, 13 8 2 (brk(2), nbrk(2), sym(8), dsym(8),old_locsym, pc, spc, tpc, 13 9 pclst, p2pcl, old_ndpcls, tvorg, tvcnt, tvlth, litorg, 13 10 litc, deforg, defc, defcnt, stkc, lnkc, lnkno, 13 11 litlst, old_ndltls, lnklst, old_ndlkls, explst, blklst, namlst, 13 12 trplst, xdflst, tvlst, begin_line, tpass1, tpass2, tpostp, 13 13 tinhib, tmmode, txonly, tmm2, txo2, tprot, tcall, 13 14 tmvdef, tpulnk, tfatal, calrho, lreter, passwd, binlin, 13 15 nboxes, box(0:210), myfil, mynam, myblk, mylnk, tpost1 ) fixed bin (26) , 13 16 2 source_printed bit(1) aligned, 13 17 2 (ndpcls, ndltls, ndlkls, ndtvls) ptr, 13 18 2 (basno, value, admod, b29, iaddr, symlnk ) fixed bin (26), 13 19 2 (itxtmod, ilnkmod, entrieslc, include_file_list, include_index, 13 20 first_ref_trap_proc_linkno, first_ref_trap_arg_linkno, 13 21 text_section_length) fixed binary (26), 13 22 2 (include_info_stack, include_name_list_base, include_name_list_top) pointer, 13 23 2 symbol_tree_rel fixed binary (26); 13 24 13 25 /* End of the include file varcom.incl.pl1. */ 116 117 118 severity = 5; 119 alm_info_ptr = ALM_INFO_PTR; 120 alm_args_ptr = ALM_ARGS_PTR; 121 if alm_info_ptr = null | alm_args_ptr = null then do; 122 code = error_table_$null_info_ptr; 123 return; 124 end; 125 if alm_info.version ^= ALM_INFO_V1 | alm_args.version ^= ALM_ARGS_V1 then do; 126 code = error_table_$unimplemented_version; 127 return; 128 end; 129 if recursive then do; 130 code = error_table_$request_pending; 131 return; 132 end; 133 if alm_info.source_ptr = null | alm_info.object_ptr = null then do; 134 code = error_table_$null_info_ptr; 135 return; 136 end; 137 if alm_info.source_bc = 0 then do; 138 code = error_table_$zero_length_seg; 139 return; 140 end; 141 142 new_sthedr_$generator = alm_info.generator; 143 new_sthedr_$gen_number = alm_info.gen_number; 144 new_sthedr_$alm_version_name = alm_info.gen_version; 145 if alm_info.gen_created = 0 then do; 146 caller_ptr = ptr(cu_$caller_ptr(), 0); 147 call hcs_$status_mins(caller_ptr, (0), bit_count, code); /* get bit count for next call */ 148 if code ^= 0 then sthedr_$alm_creation_date = clock(); 149 else do; 150 OBJECT_INFO.version_number = object_info_version_2; 151 call object_info_$brief(caller_ptr, bit_count, addr(OBJECT_INFO), code); /* get creation date */ 152 if code ^= 0 then sthedr_$alm_creation_date = clock(); 153 else sthedr_$alm_creation_date = OBJECT_INFO.symbp -> std_symbol_header.object_created; 154 end; 155 end; 156 else sthedr_$alm_creation_date = alm_info.gen_created; 157 new_sthedr_$alm_creation_date = sthedr_$alm_creation_date; 158 159 on cleanup call cleanup_handler; 160 recursive = "1"b; 161 162 if alm_info.brief then tquietsw = 1; 163 else tquietsw = 0; 164 165 if alm_info.list then do; 166 tnolst = 0; 167 call hcs_$get_max_length_seg(alm_info.list_component_ptr, eb_data_$listing_max_length, code); 168 if code ^=0 then call complain("Unable to get max length of listing segment."); 169 end; 170 else tnolst = 1; 171 172 if alm_info.symbols then tnoxref = tnolst; /* only set when there is to be a list */ 173 else tnoxref = 1; 174 175 if alm_info.target = "" then target_value = L68_SYSTEM; 176 /* target = SYSTEM_TYPE_NAME(L68_SYSTEM); This did something once... */ 177 else do; 178 call system_type_((alm_info.target), canonical_str, target_value, code); 179 if code ^= 0 then call complain(alm_info.target); 180 end; 181 182 183 tcheckcompatibility = 0; 184 tnewmachine, tnewcall, tnewobject = 1; 185 186 trimmed_entryname = before(alm_info.source_entryname || " ", ".alm "); 187 trimmed_entryname = before(trimmed_entryname, ".ex "); 188 189 190 call get_temp_segments_("alm_", temp_ptrs, code); 191 if code^=0 then call complain("Unable to get temp segments."); 192 eb_data_$lavptr = temp_ptrs(1); 193 eb_data_$segnfo.scrtch = temp_ptrs(2); 194 eb_data_$abort_assembly = abort; 195 196 eb_data_$segnfo.text = alm_info.object_ptr; 197 eb_data_$segnfo.source = alm_info.source_ptr; 198 eb_data_$segnfo.list = alm_info.list_component_ptr; 199 eb_data_$segnfo.list_fcb = alm_info.list_fcb_ptr; 200 eb_data_$segnfo.srclen = divide(alm_info.source_bc, 9, 21, 0); 201 eb_data_$segnfo.lstlen = 0; 202 eb_data_$list_component = 0; 203 eb_data_$alm_arg_count = alm_args.arg_count; 204 eb_data_$alm_arg_ptr = addr(alm_args.arg); 205 eb_data_$mexp_argno = 0; 206 severity = 4; /* in case of aborts */ 207 208 /* - - - - - - - - - Begin processing the assembly - - - - - - - - */ 209 do i = 1 to eb_data_$varcom_size; /* clear all of varcom */ 210 brk(i) = 0; 211 end; 212 brk(1), nbrk(1) = ibsp; /* set the break characters */ 213 stkc = 40; /* set up the stack counter */ 214 nboxes = 211; /* set up the number of boxes */ /*THIS COULD BE DONE STATICALLY INSTAIN eb_data_ */ 215 ndpcls = addr(pclst); /* set up the ends of the lists */ 216 ndltls = addr(litlst); /* " " " */ 217 ndlkls = addr(lnklst); /* " " " */ 218 ndtvls = addr(tvlst); /* " " " */ 219 do i = 1 to 36; /* clear the error flags */ 220 flgvec(i) = 0; 221 end; 222 tfatal = 0; /* most severe error */ 223 eb_data_$per_process_static_sw = 0; 224 225 call glpl_$genlas; /* initialize free storage */ 226 227 sthedr_$seg_name = trimmed_entryname; 228 new_sthedr_$comment = alm_info.option_string; 229 new_sthedr_$user_id = get_group_id_(); 230 sthedr_$time_of_translation, new_sthedr_$time_of_translation = clock_(); 231 232 call date_time_(sthedr_$time_of_translation, date); 233 call prlst_$prlst_("ASSEMBLY LISTING OF SEGMENT " || alm_info.source_path); 234 call prlst_$prlst_("ASSEMBLED ON: " || date); 235 call prlst_$prlst_("OPTIONS USED: " || alm_info.option_string); 236 call prlst_$prlst_("ASSEMBLED BY: " || new_sthedr_$alm_version_name); 237 call date_time_(sthedr_$alm_creation_date, date); 238 call prlst_$prlst_("ASSEMBLER CREATED: " || date); 239 call prlst_$prlst_(""); /* add a blank line */ 240 241 txtlen, itxpc, ilkpc, istpc, idfpc, itxcnt, ilkcnt, istcnt, idfcnt = 0; 242 eb_data_$curr_char_no = 0; 243 myblk = lstman_$blkasn(1, 0, 0, 0); 244 tpass1 = 1; 245 call alm_include_file_$first_file(trimmed_entryname); 246 binlin = 0; 247 call mexp_$init(code); 248 if code ^= 0 then goto abort; 249 250 /* The next few lines initialize decor to the current system type. 251* The decor_name array(data1)is built by alm_table_tool, who checks 252* that decor names and system_type_ names are in correspondence */ 253 254 call system_type_("", default_str, (0), code); 255 do n = 1 to hbound(data1.decor, 1) while(rtrim(default_str) ^= data1.decor(n).name); 256 end; 257 if n > hbound(data1.decor, 1) 258 then call prnter_$general_abort("Assembler error. Please notify assembler maintanence personel."); 259 decor = data1.decor(n).number; 260 261 call pass1_$pass1_(decor, target_value, no_target_given, first_time_thru); 262 call mexp_$cleanup; 263 264 tpass1 = 0; 265 tpost1 = 1; 266 call postp1_$postp1_; 267 268 tpost1 = 0; 269 eb_data_$curr_char_no = 0; 270 tpass2 = 1; 271 source_printed = ""b; 272 call alm_include_file_$first_file(trimmed_entryname); 273 binlin = 0; 274 call mexp_$init(code); 275 if code ^= 0 then goto abort; 276 call pass2_$pass2_(decor, target_value, no_target_given, first_time_thru); 277 /* pass2_ will check each instruction for compatibility with the decor value */ 278 call mexp_$cleanup; 279 280 tpass2 = 0; 281 tpostp = 1; 282 source = addr(oulst); begin_line = 1; srclen = 68; /*fudge the source pointer for prnam*/ 283 call postp2_$postp2_; 284 285 tpostp = 0; 286 call pakbit_$pakbit_; 287 call alm_merge_$alm_merge_; 288 if tnoxref = 0 then call alm_cross_reference_(); 289 severity = tfatal; 290 if tfatal < 3 then call prlst_$prlst_(" 291 292 NO FATAL ERRORS"); 293 else call prlst_$prlst_(" 294 295 FATAL ERRORS ENCOUNTERED"); 296 297 abort: if code=0 then call release_temp_segments_("alm_", temp_ptrs, code); 298 else call release_temp_segments_("alm_", temp_ptrs, 0); 299 300 if tnewobject = 0 then do; 301 call make_object_map_(text, itxpc, ilkpc, istpc, txtlen/* in bits */, code); 302 if code^=0 then call complain("An error was encountered in completing the object segment" || alm_info.source_entryname); 303 end; 304 else call make_alm_object_map_(txtlen); 305 alm_info.object_bc = eb_data_$segnfo.txtlen; 306 307 if tnolst = 0 then do; 308 alm_info.list_bc = eb_data_$segnfo.lstlen * 9; 309 alm_info.list_component = eb_data_$list_component; 310 end; 311 recursive = "0"b; 312 if code = 0 then 313 if severity = 3 then code = error_table_$translation_failed; 314 else if severity = 4 then code = error_table_$translation_aborted; 315 return; 316 317 abandon_assembly: 318 recursive = "0"b; 319 severity = 4; 320 return; 321 322 cleanup_handler: proc; 323 if temp_ptrs(1) ^= null() then call release_temp_segments_("alm_", temp_ptrs, 0); 324 call mexp_$cleanup; 325 recursive = "0"b; 326 end cleanup_handler; 327 328 complain: proc(message); 329 dcl message char(*); 330 331 if tquietsw ^= 1 then call com_err_(code, eb_data_$who_am_I, message); 332 goto abandon_assembly; 333 end complain; 334 335 end alm_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/17/88 0938.3 alm_.pl1 >spec>install>1170>alm_.pl1 104 1 11/12/86 1103.0 alm_info.incl.pl1 >ldd>include>alm_info.incl.pl1 105 2 07/17/81 1911.6 alm_data.incl.pl1 >ldd>include>alm_data.incl.pl1 106 3 05/06/74 1740.2 alm_options.incl.pl1 >ldd>include>alm_options.incl.pl1 107 4 10/21/74 1243.0 concom.incl.pl1 >ldd>include>concom.incl.pl1 108 5 07/17/81 1911.5 erflgs.incl.pl1 >ldd>include>erflgs.incl.pl1 109 6 05/06/74 1742.2 lstcom.incl.pl1 >ldd>include>lstcom.incl.pl1 110 7 08/05/77 1022.5 object_info.incl.pl1 >ldd>include>object_info.incl.pl1 111 8 11/12/86 1103.0 objnfo.incl.pl1 >ldd>include>objnfo.incl.pl1 112 9 11/12/86 1103.0 segnfo.incl.pl1 >ldd>include>segnfo.incl.pl1 113 10 05/06/74 1751.6 std_symbol_header.incl.pl1 >ldd>include>std_symbol_header.incl.pl1 114 11 10/17/88 0926.0 sthedr.incl.pl1 >ldd>include>sthedr.incl.pl1 115 12 06/19/81 2115.0 system_types.incl.pl1 >ldd>include>system_types.incl.pl1 116 13 10/21/74 1242.9 varcom.incl.pl1 >ldd>include>varcom.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ALM_ARGS_PTR parameter pointer dcl 26 ref 18 120 ALM_ARGS_V1 000000 constant char(8) initial packed unaligned dcl 1-49 ref 125 ALM_INFO_PTR parameter pointer dcl 26 ref 18 119 ALM_INFO_V1 000002 constant char(8) initial packed unaligned dcl 1-48 ref 125 L68_SYSTEM constant fixed bin(17,0) initial dcl 12-3 ref 175 OBJECT_INFO 000156 automatic structure level 1 unaligned dcl 102 set ref 151 151 alm_args based structure level 1 unaligned dcl 1-41 alm_args_ptr 000246 automatic pointer dcl 1-40 set ref 120* 121 125 203 204 alm_cross_reference_ 000012 constant entry external dcl 53 ref 288 alm_data1$structure 000150 external static fixed bin(17,0) dcl 2-4 set ref 2-23 alm_data2$structure 000152 external static fixed bin(17,0) dcl 2-14 set ref 2-24 alm_include_file_$first_file 000014 constant entry external dcl 54 ref 245 272 alm_info based structure level 1 unaligned dcl 1-17 alm_info_ptr 000244 automatic pointer dcl 1-16 set ref 119* 121 125 133 133 137 142 143 144 145 156 162 165 167 172 175 178 179 186 196 197 198 199 200 228 233 235 302 305 308 309 alm_merge_$alm_merge_ 000016 constant entry external dcl 55 ref 287 arg 4 based structure array level 2 unaligned dcl 1-41 set ref 204 arg_count 2 based fixed bin(17,0) level 2 dcl 1-41 ref 203 begin_line 60 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 282* binlin 101 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 246* 273* bit_count 000100 automatic fixed bin(24,0) dcl 37 set ref 147* 151* brief 2(01) based bit(1) level 3 packed packed unaligned dcl 1-17 ref 162 brk 000210 external static fixed bin(26,0) array level 2 dcl 13-7 set ref 210* 212* caller_ptr 000102 automatic pointer dcl 38 set ref 146* 147* 151* canonical_str 000104 automatic char(24) packed unaligned dcl 39 set ref 178* cleanup 000150 stack reference condition dcl 50 ref 159 clock_ 000020 constant entry external dcl 56 ref 230 code parameter fixed bin(35,0) dcl 28 set ref 18 122* 126* 130* 134* 138* 147* 148 151* 152 167* 168 178* 179 190* 191 247* 248 254* 274* 275 297 297* 301* 302 312 312* 314* 331* com_err_ 000022 constant entry external dcl 57 ref 331 cu_$caller_ptr 000024 constant entry external dcl 58 ref 146 data1 based structure level 1 unaligned dcl 2-8 data1_ptr 000250 automatic pointer dcl 2-6 set ref 2-23* 255 255 257 259 data2_ptr 000252 automatic pointer dcl 2-16 set ref 2-24* date 000112 automatic char(24) dcl 40 set ref 232* 234 237* 238 date_time_ 000026 constant entry external dcl 59 ref 232 237 decor 000120 automatic fixed bin(35,0) dcl 41 in procedure "alm_" set ref 259* 261* 276* decor 1 based structure array level 2 in structure "data1" unaligned dcl 2-8 in procedure "alm_" ref 255 257 default_str 000121 automatic char(24) packed unaligned dcl 42 set ref 254* 255 eb_data_$abort_assembly 000100 external static label variable dcl 81 set ref 194* eb_data_$alm_arg_count 000104 external static fixed bin(17,0) dcl 83 set ref 203* eb_data_$alm_arg_ptr 000102 external static pointer dcl 82 set ref 204* eb_data_$alm_options 000154 external static structure level 1 dcl 3-6 eb_data_$concom 000156 external static structure level 1 dcl 4-6 eb_data_$curr_char_no 000106 external static fixed bin(17,0) dcl 84 set ref 242* 269* eb_data_$erflgs 000160 external static structure level 1 dcl 5-5 eb_data_$lavptr 000110 external static pointer dcl 85 set ref 192* eb_data_$list_component 000112 external static fixed bin(17,0) dcl 86 set ref 202* 309 eb_data_$listing_max_length 000114 external static fixed bin(19,0) dcl 87 set ref 167* eb_data_$lstcom 000162 external static structure level 1 dcl 6-6 eb_data_$mexp_argno 000116 external static fixed bin(17,0) dcl 88 set ref 205* eb_data_$objnfo 000164 external static structure level 1 dcl 8-13 eb_data_$oulst 000120 external static structure level 1 unaligned dcl 89 eb_data_$per_process_static_sw 000122 external static fixed bin(17,0) dcl 90 set ref 223* eb_data_$segnfo 000166 external static structure level 1 dcl 9-11 eb_data_$varcom 000210 external static structure level 1 dcl 13-7 eb_data_$varcom_size 000124 external static fixed bin(17,0) dcl 91 ref 209 eb_data_$who_am_I 000126 external static char(12) packed unaligned dcl 92 set ref 331* error_table_$null_info_ptr 000130 external static fixed bin(35,0) dcl 93 ref 122 134 error_table_$request_pending 000132 external static fixed bin(35,0) dcl 94 ref 130 error_table_$translation_aborted 000134 external static fixed bin(35,0) dcl 95 ref 314 error_table_$translation_failed 000136 external static fixed bin(35,0) dcl 96 ref 312 error_table_$unimplemented_version 000140 external static fixed bin(35,0) dcl 97 ref 126 error_table_$zero_length_seg 000142 external static fixed bin(35,0) dcl 98 ref 138 extent based fixed bin(17,0) level 2 dcl 2-8 ref 255 257 first_time_thru 000127 automatic bit(1) packed unaligned dcl 43 set ref 261* 276* flags 2 based structure level 2 packed packed unaligned dcl 1-17 flgvec 000160 external static fixed bin(17,0) array level 2 dcl 5-5 set ref 220* gen_created 70 based fixed bin(71,0) level 3 dcl 1-17 ref 145 156 gen_number 16 based fixed bin(17,0) level 3 dcl 1-17 ref 143 gen_version 17 based char(160) level 3 packed packed unaligned dcl 1-17 ref 144 generator 14 based char(8) level 3 packed packed unaligned dcl 1-17 ref 142 generator_info 14 based structure level 2 unaligned dcl 1-17 get_group_id_ 000030 constant entry external dcl 60 ref 229 get_temp_segments_ 000032 constant entry external dcl 61 ref 190 glpl_$genlas 000034 constant entry external dcl 62 ref 225 hcs_$get_max_length_seg 000036 constant entry external dcl 63 ref 167 hcs_$status_mins 000040 constant entry external dcl 64 ref 147 i 000130 automatic fixed bin(17,0) dcl 44 set ref 209* 210* 219* 220* ibsp 137 000156 external static fixed bin(26,0) level 2 dcl 4-6 ref 212 idfcnt 7 000164 external static fixed bin(26,0) level 2 dcl 8-13 set ref 241* idfpc 3 000164 external static fixed bin(26,0) level 2 dcl 8-13 set ref 241* ilkcnt 5 000164 external static fixed bin(26,0) level 2 dcl 8-13 set ref 241* ilkpc 1 000164 external static fixed bin(26,0) level 2 dcl 8-13 set ref 241* 301* istcnt 6 000164 external static fixed bin(26,0) level 2 dcl 8-13 set ref 241* istpc 2 000164 external static fixed bin(26,0) level 2 dcl 8-13 set ref 241* 301* itxcnt 4 000164 external static fixed bin(26,0) level 2 dcl 8-13 set ref 241* itxpc 000164 external static fixed bin(26,0) level 2 dcl 8-13 set ref 241* 301* list 2(02) based bit(1) level 3 in structure "alm_info" packed packed unaligned dcl 1-17 in procedure "alm_" ref 165 list 4 000166 external static pointer level 2 in structure "eb_data_$segnfo" dcl 9-11 in procedure "alm_" set ref 198* list_bc 254 based fixed bin(24,0) level 2 dcl 1-17 set ref 308* list_component 255 based fixed bin(17,0) level 2 dcl 1-17 set ref 309* list_component_ptr 252 based pointer level 2 dcl 1-17 set ref 167* 198 list_fcb 6 000166 external static pointer level 2 dcl 9-11 set ref 199* list_fcb_ptr 250 based pointer level 2 dcl 1-17 ref 199 litlst 46 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 216 lnklst 50 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 217 lstlen 14 000166 external static fixed bin(26,0) level 2 dcl 9-11 set ref 201* 308 lstman_$blkasn 000042 constant entry external dcl 65 ref 243 make_alm_object_map_ 000044 constant entry external dcl 66 ref 304 make_object_map_ 000046 constant entry external dcl 67 ref 301 message parameter char packed unaligned dcl 329 set ref 328 331* mexp_$cleanup 000050 constant entry external dcl 68 ref 262 278 324 mexp_$init 000052 constant entry external dcl 69 ref 247 274 myblk 430 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 243* n 000131 automatic fixed bin(17,0) dcl 44 set ref 255* 255* 257 259 name 1 based varying char(24) array level 3 dcl 2-8 ref 255 nboxes 102 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 214* nbrk 2 000210 external static fixed bin(26,0) array level 2 dcl 13-7 set ref 212* ndlkls 440 000210 external static pointer level 2 dcl 13-7 set ref 217* ndltls 436 000210 external static pointer level 2 dcl 13-7 set ref 216* ndpcls 434 000210 external static pointer level 2 dcl 13-7 set ref 215* ndtvls 442 000210 external static pointer level 2 dcl 13-7 set ref 218* new_sthedr_$alm_creation_date 000176 external static fixed bin(71,0) dcl 11-33 set ref 157* new_sthedr_$alm_version_name 000202 external static char(32) dcl 11-35 set ref 144* 236 new_sthedr_$comment 000206 external static char(64) dcl 11-39 set ref 228* new_sthedr_$gen_number 000146 external static fixed bin(17,0) dcl 100 set ref 143* new_sthedr_$generator 000144 external static char(8) packed unaligned dcl 99 set ref 142* new_sthedr_$time_of_translation 000200 external static fixed bin(71,0) dcl 11-33 set ref 230* new_sthedr_$user_id 000204 external static char(32) dcl 11-37 set ref 229* no_target_given 000132 automatic bit(1) initial packed unaligned dcl 45 set ref 45* 261* 276* null builtin function dcl 51 ref 47 47 121 121 133 133 323 number 10 based fixed bin(35,0) array level 3 dcl 2-8 ref 259 object_bc 246 based fixed bin(24,0) level 2 dcl 1-17 set ref 305* object_created 6 based fixed bin(71,0) level 2 dcl 10-1 ref 153 object_info based structure level 1 dcl 7-6 object_info_$brief 000054 constant entry external dcl 70 ref 151 object_info_version_2 constant fixed bin(17,0) initial dcl 7-60 ref 150 object_ptr 244 based pointer level 2 dcl 1-17 ref 133 196 option_string 72 based varying char(200) level 2 dcl 1-17 ref 228 235 oulst 000120 external static char(68) level 2 dcl 89 set ref 282 pakbit_$pakbit_ 000056 constant entry external dcl 71 ref 286 pass1_$pass1_ 000060 constant entry external dcl 72 ref 261 pass2_$pass2_ 000062 constant entry external dcl 73 ref 276 pclst 30 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 215 postp1_$postp1_ 000064 constant entry external dcl 74 ref 266 postp2_$postp2_ 000066 constant entry external dcl 75 ref 283 prlst_$prlst_ 000070 constant entry external dcl 76 ref 233 234 235 236 238 239 290 293 prnter_$general_abort 000072 constant entry external dcl 77 ref 257 recursive 000010 internal static bit(1) initial packed unaligned dcl 31 set ref 129 160* 311* 317* 325* release_temp_segments_ 000074 constant entry external dcl 78 ref 297 298 323 scrtch 10 000166 external static pointer level 2 dcl 9-11 set ref 193* severity parameter fixed bin(17,0) dcl 27 set ref 18 118* 206* 289* 312 314 319* source 2 000166 external static pointer level 2 dcl 9-11 set ref 197* 282* source_bc 242 based fixed bin(24,0) level 2 dcl 1-17 ref 137 200 source_entryname 227 based char(32) level 2 packed packed unaligned dcl 1-17 ref 186 302 source_path 155 based char(168) level 2 packed packed unaligned dcl 1-17 ref 233 source_printed 433 000210 external static bit(1) level 2 dcl 13-7 set ref 271* source_ptr 240 based pointer level 2 dcl 1-17 ref 133 197 srclen 13 000166 external static fixed bin(26,0) level 2 dcl 9-11 set ref 200* 282* std_symbol_header based structure level 1 dcl 10-1 sthedr_$alm_creation_date 000170 external static fixed bin(71,0) dcl 11-19 set ref 148* 152* 153* 156* 157 237* sthedr_$seg_name 000174 external static char(32) dcl 11-21 set ref 227* sthedr_$time_of_translation 000172 external static fixed bin(71,0) dcl 11-19 set ref 230* 232* stkc 43 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 213* symbols 2 based bit(1) level 3 packed packed unaligned dcl 1-17 ref 172 symbp 12 000156 automatic pointer level 2 dcl 102 set ref 153 system_type_ 000076 constant entry external dcl 79 ref 178 254 target 3(09) based char(32) level 2 packed packed unaligned dcl 1-17 set ref 175 178 179* target_value 000133 automatic fixed bin(17,0) dcl 46 set ref 175* 178* 261* 276* tcheckcompatibility 3 000154 external static fixed bin(17,0) level 2 dcl 3-6 set ref 183* temp_ptrs 000134 automatic pointer initial array dcl 47 set ref 47* 47* 190* 192 193 297* 298* 323 323* text 000166 external static pointer level 2 dcl 9-11 set ref 196* 301* tfatal 75 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 222* 289 290 tnewcall 000154 external static fixed bin(17,0) level 2 dcl 3-6 set ref 184* tnewmachine 1 000154 external static fixed bin(17,0) level 2 dcl 3-6 set ref 184* tnewobject 2 000154 external static fixed bin(17,0) level 2 dcl 3-6 set ref 184* 300 tnolst 000162 external static fixed bin(17,0) level 2 dcl 6-6 set ref 166* 170* 172 307 tnoxref 6 000154 external static fixed bin(17,0) level 2 dcl 3-6 set ref 172* 173* 288 tpass1 61 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 244* 264* tpass2 62 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 270* 280* tpost1 432 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 265* 268* tpostp 63 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 281* 285* tquietsw 4 000154 external static fixed bin(17,0) level 2 dcl 3-6 set ref 162* 163* 331 trimmed_entryname 000140 automatic char(32) packed unaligned dcl 48 set ref 186* 187* 187 227 245* 272* tvlst 57 000210 external static fixed bin(26,0) level 2 dcl 13-7 set ref 218 txtlen 12 000166 external static fixed bin(26,0) level 2 dcl 9-11 set ref 241* 301* 304* 305 version based char(8) level 2 in structure "alm_args" packed packed unaligned dcl 1-41 in procedure "alm_" ref 125 version based char(8) level 2 in structure "alm_info" packed packed unaligned dcl 1-17 in procedure "alm_" ref 125 version_number 000156 automatic fixed bin(17,0) level 2 dcl 102 set ref 150* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ADP_SYSTEM internal static fixed bin(17,0) initial dcl 12-4 SYSTEM_TYPE_NAME internal static char(8) initial array packed unaligned dcl 12-6 argument based char packed unaligned dcl 34 argument_len automatic fixed bin(21,0) dcl 35 argument_ptr automatic pointer dcl 36 data2 based structure level 1 unaligned dcl 2-18 eb_data_$erflgs_overlay external static structure level 1 dcl 5-9 new_sthedr_$block_size external static structure level 1 dcl 11-49 new_sthedr_$hdrlen external static fixed bin(26,0) dcl 11-67 new_sthedr_$new_sthedr_ external static fixed bin(17,0) dcl 11-31 new_sthedr_$rel_bits_ptrs external static structure level 1 dcl 11-53 new_sthedr_$relocinfo external static fixed bin(17,0) dcl 11-69 new_sthedr_$source_and_area external static structure level 1 dcl 11-45 new_sthedr_$text_and_link_boundaries external static structure level 1 dcl 11-41 new_sthedr_$truncate_info external static structure level 1 dcl 11-61 sthedr_$hdrlen external static fixed bin(26,0) dcl 11-27 sthedr_$sthedr_ external static fixed bin(17,0) dcl 11-17 sthedr_$text_and_link_lengths external static structure level 1 dcl 11-23 NAMES DECLARED BY EXPLICIT CONTEXT. abandon_assembly 002053 constant label dcl 317 ref 332 abort 001671 constant label dcl 297 ref 194 248 275 alm_ 000200 constant entry external dcl 18 cleanup_handler 002061 constant entry internal dcl 322 ref 159 complain 002123 constant entry internal dcl 328 ref 168 179 191 302 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 2-23 2-24 151 151 204 215 216 217 218 282 before builtin function ref 186 187 clock builtin function ref 148 152 divide builtin function ref 200 hbound builtin function ref 255 257 ptr builtin function ref 146 rtrim builtin function ref 255 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3124 3336 2211 3134 Length 4112 2211 212 540 713 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME alm_ 296 external procedure is an external procedure. on unit on line 159 86 on unit cleanup_handler internal procedure shares stack frame of on unit on line 159. complain internal procedure shares stack frame of external procedure alm_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 recursive alm_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME alm_ 000100 bit_count alm_ 000102 caller_ptr alm_ 000104 canonical_str alm_ 000112 date alm_ 000120 decor alm_ 000121 default_str alm_ 000127 first_time_thru alm_ 000130 i alm_ 000131 n alm_ 000132 no_target_given alm_ 000133 target_value alm_ 000134 temp_ptrs alm_ 000140 trimmed_entryname alm_ 000156 OBJECT_INFO alm_ 000244 alm_info_ptr alm_ 000246 alm_args_ptr alm_ 000250 data1_ptr alm_ 000252 data2_ptr alm_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac enable_op shorten_stack ext_entry int_entry set_chars_eis index_before_cs clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. alm_cross_reference_ alm_include_file_$first_file alm_merge_$alm_merge_ clock_ com_err_ cu_$caller_ptr date_time_ get_group_id_ get_temp_segments_ glpl_$genlas hcs_$get_max_length_seg hcs_$status_mins lstman_$blkasn make_alm_object_map_ make_object_map_ mexp_$cleanup mexp_$init object_info_$brief pakbit_$pakbit_ pass1_$pass1_ pass2_$pass2_ postp1_$postp1_ postp2_$postp2_ prlst_$prlst_ prnter_$general_abort release_temp_segments_ system_type_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. alm_data1$structure alm_data2$structure eb_data_$abort_assembly eb_data_$alm_arg_count eb_data_$alm_arg_ptr eb_data_$alm_options eb_data_$concom eb_data_$curr_char_no eb_data_$erflgs eb_data_$lavptr eb_data_$list_component eb_data_$listing_max_length eb_data_$lstcom eb_data_$mexp_argno eb_data_$objnfo eb_data_$oulst eb_data_$per_process_static_sw eb_data_$segnfo eb_data_$varcom eb_data_$varcom_size eb_data_$who_am_I error_table_$null_info_ptr error_table_$request_pending error_table_$translation_aborted error_table_$translation_failed error_table_$unimplemented_version error_table_$zero_length_seg new_sthedr_$alm_creation_date new_sthedr_$alm_version_name new_sthedr_$comment new_sthedr_$gen_number new_sthedr_$generator new_sthedr_$time_of_translation new_sthedr_$user_id sthedr_$alm_creation_date sthedr_$seg_name sthedr_$time_of_translation LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000173 45 000205 47 000206 2 23 000223 2 24 000225 118 000227 119 000232 120 000235 121 000240 122 000250 123 000252 125 000253 126 000263 127 000265 129 000266 130 000270 131 000272 133 000273 134 000303 135 000305 137 000306 138 000310 139 000312 142 000313 143 000320 144 000322 145 000326 146 000330 147 000340 148 000357 150 000366 151 000370 152 000407 153 000416 155 000422 156 000423 157 000424 159 000425 160 000443 162 000446 163 000456 165 000460 166 000463 167 000464 168 000477 169 000510 170 000511 172 000513 173 000524 175 000530 178 000537 179 000567 183 000605 184 000610 186 000614 187 000634 190 000645 191 000670 192 000701 193 000704 194 000707 196 000713 197 000716 198 000721 199 000724 200 000727 201 000733 202 000734 203 000735 204 000740 205 000742 206 000743 209 000746 210 000755 211 000760 212 000762 213 000770 214 000772 215 000774 216 000776 217 001000 218 001002 219 001004 220 001011 221 001014 222 001016 223 001021 225 001022 227 001026 228 001033 229 001041 230 001047 232 001062 233 001076 234 001116 235 001135 236 001164 237 001205 238 001222 239 001241 241 001252 242 001266 243 001267 244 001316 245 001320 246 001330 247 001333 248 001342 254 001345 255 001373 256 001427 257 001431 259 001450 261 001454 262 001471 264 001476 265 001501 266 001503 268 001507 269 001512 270 001513 271 001515 272 001516 273 001526 274 001531 275 001540 276 001543 278 001560 280 001565 281 001570 282 001572 282 001575 282 001576 283 001600 285 001604 286 001607 287 001613 288 001620 289 001630 290 001635 293 001656 297 001671 298 001720 300 001744 301 001750 302 001773 303 002010 304 002011 305 002020 307 002025 308 002027 309 002032 311 002034 312 002035 314 002046 315 002052 317 002053 319 002055 320 002060 322 002061 323 002062 324 002113 325 002120 326 002122 328 002123 331 002134 332 002164 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved