Compilation listing of file >2.1spec>online>mib083074>bcpl_trans0.bcpl. Compilation performed for Martinson.SysMaint.a at 01/24/75 0701.1 mst Fri. Compiled by BCPL version 3.4, August 1973. Compiler updated at 09/25/73 0959.1 mst Tue. Options applied: source xref alist optimize 6180. 1 // The main routine for the second pass, called from the driver. 2 // Last modified on 06/06/74 at 18:26:18 by R F Mabee. 3 // Revisions for 6180 installed in Version 3.4, R F Mabee. 4 // First installed with Version 2.7 by R F Mabee. 5 6 // Copyright (c) 1974 by Massachusetts Institute of Technology and Honeywell Information Systems, Inc. 7 8 // General permission is granted to copy and use this program, but not to sell it, provided that the above 9 // copyright statement is given. Contact Information Processing Services, MIT, for further information. 10 // Please contact R F Mabee at MIT for information on this program and versions for other machines. 11 12 get "bcpl_trans_head" 1 // Declarations for the semantic translator. 2 // Last modified on 07/21/73 at 20:36:10 by R F Mabee. 3 // Revised during 6180 bootstrap, and installed as Version 3.4 by R F Mabee. 4 // First installed as Version 2.7 by R F Mabee. 5 6 // Copyright (c) 1973 by the author, Robert F. Mabee. 7 // This file may only be reproduced or modified with explicit written 8 // permission of the author. Permission is hereby extended to those 9 // persons responsible for operating the Multics system to make such 10 // copies as are normally required to ensure the integrity of the Multics 11 // file system. Permission is also hereby extended to those persons 12 // responsible for maintaining the Multics program libraries to make such 13 // copies as are normally required for online installations. 14 15 get "bcpl_compiler_head" 1 // Declarations common to the entire BCPL compiler. 2 // Last modified on 07/28/73 at 03:56:32 by R F Mabee. 3 // Installed on 6180 as Version 3.4, R F Mabee. 4 // First installed on 645 as Version 2.7 by R F Mabee. 5 6 // Copyright (c) 1973 by the author, Robert F. Mabee. 7 // This file may only be reproduced or modified with explicit written 8 // permission of the author. Permission is hereby extended to those 9 // persons responsible for operating the Multics system to make such 10 // copies as are normally required to ensure the integrity of the Multics 11 // file system. Permission is also hereby extended to those persons 12 // responsible for maintaining the Multics program libraries to make such 13 // copies as are normally required for online installations. 14 15 external 16 $( Readch = "bcpl_machine_code_$Readch" // Library routines used by the compiler. 17 Writech = "bcpl_machine_code_$Writech" 18 WriteS = "bcpl_stream_io_$WriteS" 19 WriteN = "bcpl_stream_io_$WriteN" 20 Format = "bcpl_stream_io_$Format" 21 Packstring = "bcpl_machine_code_$Packstring" 22 Unpackstring = "bcpl_machine_code_$Unpackstring" 23 RemoveEscapes = "bcpl_conversions_$RemoveEscapes" 24 EqualString = "bcpl_strings_$EqualString" 25 CompareStrings = "bcpl_strings_$CompareStrings" // Alphabetic comparison. 26 Concatenate = "bcpl_strings_$Concatenate" 27 ConvertStoN = "bcpl_conversions_$ConvertStoN" 28 ConvertNtoS = "bcpl_conversions_$ConvertNtoS" 29 Length = "bcpl_strings_$Length" // Number of characters. 30 LengthInWords = "bcpl_strings_$LengthInWords" // Length of packed string. 31 RandomI = "bcpl_arithmetic_$RandomI" 32 33 Newvec = "bcpl_utility$Newvec" // Utility routines used throughout the compiler. 34 Freevec = "bcpl_utility$Freevec" 35 List1 = "bcpl_utility$List1" 36 List2 = "bcpl_utility$List2" 37 List3 = "bcpl_utility$List3" 38 List4 = "bcpl_utility$List4" 39 List5 = "bcpl_utility$List5" 40 List6 = "bcpl_utility$List6" 41 StoreString = "bcpl_utility$StoreString" 42 PushInput = "bcpl_utility$PushInput" 43 PopInput = "bcpl_utility$PopInput" 44 MakeTimeString = "bcpl_utility$MakeTimeString" 45 Nextparam = "bcpl_utility$Nextparam" 46 FormCharconst = "bcpl_utility$FormCharconst" 47 FormStringconst = "bcpl_utility$FormStringconst" 48 49 CaeReport = "bcpl_report$CaeReport" 50 Transreport = "bcpl_report$Transreport" 51 CGreport = "bcpl_report$CGreport" 52 53 Nextsymb = "bcpl_lex0$Nextsymb" 54 55 SymbolName = "bcpl_plist$SymbolName" 56 FindPrintName = "bcpl_plist$FindPrintName" 57 EnterIntoCrossreference = "bcpl_plist$EnterIntoCrossreference" 58 59 GetVersion = "bcpl_version$GetVersion" // Routines used only by the driver. 60 UtilitiesInit = "bcpl_utility$UtilitiesInit" 61 Cleanup = "bcpl_utility$Cleanup" 62 GetStream = "bcpl_utility$GetStream" 63 64 CAE = "bcpl_cae0$CAE" 65 LexInit = "bcpl_lex0$LexInit" 66 67 Pname = "bcpl_plist$Pname" 68 Plist = "bcpl_plist$Plist" 69 70 Trans = "bcpl_trans0$Trans" 71 CgInit = "bcpl_cg0$CgInit" 72 BuildObject = "bcpl_cg0$BuildObject" 73 WriteObjectListing = "bcpl_cg0$WriteObjectListing" 74 $) 75 76 global // Globals are reserved in blocks as follows: 77 $( // 0 - 31 system 78 // 32 - 99 library 79 // 100 - 149 options and other common cells 80 // 150 - 159 metering cells 81 // 160 - 169 bcpl_utility 82 // 170 - 199 to be assigned 83 // 200 - 229 lexical phase 84 // 230 - 249 syntax analyzer 85 // 250 - 299 translator 86 // 300 - 399 code generator 87 88 // Cells used for communication with the library. 89 OUTPUT : 32 90 INPUT : 33 91 MONITOR : 34 92 Ch : 36 93 94 // Options for this compilation. 95 Listing : 100 96 UpperCase : 101 97 PPrep : 102 98 Crep : 103 99 Symbols : 104 100 LineMap : 105 101 Optimize : 106 102 Machine : 107 103 Xref : 108 104 OcodeSw : 109 105 HaveListingFile : 110 106 QuietSw : 111 107 108 // Other information about this compilation. 109 CompilerVersionString : 120 110 CompilerVersionNumber : 121 111 CompilerDTMString : 122 112 CompilerDTM : 123 113 TimeNowString : 124 114 TimeNow : 125 115 OptionString : 126 116 FileNames : 127 117 FilesInfo : 128 118 FileCount : 129 119 ProgramName : 130 120 UserID : 131 121 122 // Working variables needing global scope. 123 LineCount : 140 124 Errorsw : 141 125 NAMECHAIN : 142 126 Symb : 143 127 DictionaryEntry : 144 128 Column : 145 129 $) 130 manifest 131 $( GlobalTemp = 199 $) // Number of cell available for local, temporary use. 132 133 manifest 134 $( Left = 18; Right = $8777777 135 Endofstreamch = $87777 136 Even = $87777777777776 137 Vmax = 511 138 LineMask = $817777; FileShift = 13 // Breakdown of line count. 139 UnexpectedCase = 99 // Error code for use throughout compiler. 140 $) 16 get "bcpl_symbols" 1 // All symbols used in the interface between any two phases of the compiler are defined here. 2 // This includes all canonical symbols, syntax tree nodes, and XOCODE operators. 3 // Last modified on 07/08/73 at 22:55:31 by R F Mabee. 4 // Revisions installed in Version 3.4 on 6180, R F Mabee. 5 // First installed with Version 2.7 by R F Mabee. 6 7 // Copyright (c) 1973 by the author, Robert F. Mabee. 8 // This file may only be reproduced or modified with explicit written 9 // permission of the author. Permission is hereby extended to those 10 // persons responsible for operating the Multics system to make such 11 // copies as are normally required to ensure the integrity of the Multics 12 // file system. Permission is also hereby extended to those persons 13 // responsible for maintaining the Multics program libraries to make such 14 // copies as are normally required for online installations. 15 16 manifest 17 $( AND_S = 1 18 ASSIGN_S = 2 19 BE_S = 3 20 BIT_S = 4 21 BREAK_S = 5 22 BY_S = 6 23 CALL_S = 07 24 CASE_S = 08 25 26 CHAR_S = 10 27 CHARCONST_S = 11 28 COLON_S = 12 29 COMMA_S = 13 30 COND_S = 14 31 CONSTANT_S = 15 32 CONSTDEF_S = 16 33 DEFAULT_S = 17 34 DIV_F = 18 35 36 DIV_S = 20 37 DO_S = 21 38 DOUBLE_S = 22 39 ENDCASE_S = 23 40 ENDPROG_S = 24 41 ERROR_S = 25 42 EQ_F = 26 43 EQ_S = 27 44 EQV_S = 28 45 46 EXTERNAL_S = 30 47 FALSE_S = 31 48 FINISH_S = 32 49 FIXED_S = 33 50 FLOAT_S = 34 51 FNAP_S = 35 52 FNDEF_S = 36 53 FOR_S = 37 54 GE_F = 38 55 56 GE_S = 40 57 GET_S = 41 58 GLOBAL_S = 42 59 GOTO_S = 43 60 GR_F = 44 61 GR_S = 45 62 IF_S = 46 63 IFNOT_S = 47 64 IFSO_S = 48 65 66 INTO_S = 50 67 LABDEF_S = 51 68 LABEL_S = 52 69 LE_F = 53 70 LE_S = 54 71 LENGTH_S = 55 72 LET_S = 56 73 LIST_S = 57 74 LOCAL_S = 58 75 76 LOGAND_S = 60 77 LOGOR_S = 61 78 LOOP_S = 62 79 LS_F = 63 80 LS_S = 64 81 LSHIFT_S = 65 82 LV_S = 66 83 LVECAP_S = 67 84 LV_ARG_OUT = 68 85 86 LV_FNAP_RESULT = 70 87 LV_GLOBAL = 71 88 LV_LOCAL = 72 89 LV_STATIC = 73 90 LV_TEMP = 74 91 MAIN_S = 75 92 MANIFEST_S = 76 93 MINUS_F = 77 94 MINUS_S = 78 95 96 MULT_F = 80 97 MULT_S = 81 98 NAME_S = 82 99 NEG_F = 83 100 NEG_S = 84 101 NEQV_S = 85 102 NE_F = 86 103 NE_S = 87 104 NIL_S = 88 105 106 NOT_S = 90 107 NUMBER_S = 91 108 OFFSET_S = 92 109 OR_S = 93 110 PLUS_F = 94 111 PLUS_S = 95 112 POINTER_S = 96 113 POS_F = 97 114 POS_S = 98 115 116 RBRA_S = 100 117 REGISTER_S = 101 118 REL_S = 102 119 REM_S = 103 120 REP_S = 104 121 REPEAT_S = 105 122 REPEATUNTIL_S = 106 123 REPEATWHILE_S = 107 124 RESULTIS_S = 108 125 126 RETURN_S = 110 127 RKET_S = 111 128 RSHIFT_S = 112 129 RTAP_S = 113 130 RTDEF_S = 114 131 RV_S = 115 132 SBRA_S = 116 133 SECTBEGIN_S = 117 134 SECTBRA_S = 118 135 136 SECTEND_S = 120 137 SECTKET_S = 121 138 SEMICOLON_S = 122 139 SKET_S = 123 140 STATIC_S = 124 141 STRING_S = 125 142 STRINGCONST_S = 126 143 STRUCTURE_S = 127 144 SWITCHON_S = 128 145 146 TABLE_S = 130 147 TEMP_S = 131 148 TEST_S = 132 149 TO_S = 133 150 TRUE_S = 134 151 TYPE_S = 135 152 UNLESS_S = 136 153 UNTIL_S = 137 154 VALDEF_S = 138 155 156 VALOF_S = 140 157 VEC_S = 141 158 VECAP_S = 142 159 WHILE_S = 143 160 $) 17 get "bcpl_trans_codes" 1 // Report codes for the translator phase. 2 // Last modified on 07/21/73 at 22:14:49 by R F Mabee. 3 // Revisions for 6180 bootstrap installed with Version 3.4, R F Mabee. 4 // First installed in Version 2.7 by R F Mabee. 5 6 // Copyright (c) 1973 by the author, Robert F. Mabee. 7 // This file may only be reproduced or modified with explicit written 8 // permission of the author. Permission is hereby extended to those 9 // persons responsible for operating the Multics system to make such 10 // copies as are normally required to ensure the integrity of the Multics 11 // file system. Permission is also hereby extended to those persons 12 // responsible for maintaining the Multics program libraries to make such 13 // copies as are normally required for online installations. 14 15 manifest // 200 - 299 are reserved for Trans. 16 $( BadCall = 200 17 BadDescriptors = 201 18 BadLink = 202 19 Conformality = 203 20 DupDefault = 204 21 DupName = 205 22 FreeVar = 206 23 LmodeRequired = 207 24 NegVector = 208 25 26 NoLoop = 210 27 NoSwitch = 211 28 NotConstant = 212 29 NotInsideRtdef = 213 30 NotName = 214 31 NoValof = 215 32 UndefName = 216 33 UnrecognizedExpression= 217 34 $) 18 19 external 20 $( Transbody = "bcpl_trans1$Transbody" // The routines of Trans. 21 22 Transdef = "bcpl_trans2$Transdef" 23 Addlocal = "bcpl_trans2$Addlocal" 24 Declitem = "bcpl_trans2$Declitem" 25 Declnames = "bcpl_trans2$Declnames" 26 Decllabels = "bcpl_trans2$Decllabels" 27 Checkdistinct = "bcpl_trans2$Checkdistinct" 28 Cellwithname = "bcpl_trans2$Cellwithname" 29 Removenames = "bcpl_trans2$Removenames" 30 31 TransConditional = "bcpl_trans3$TransConditional" 32 TransFor = "bcpl_trans3$TransFor" 33 WalkList = "bcpl_trans3$WalkList" 34 ListSize = "bcpl_trans3$ListSize" 35 Assignlist = "bcpl_trans3$Assignlist" 36 Target = "bcpl_trans3$Target" 37 TransLoop = "bcpl_trans3$TransLoop" 38 39 CompileExpression = "bcpl_trans4$CompileExpression" 40 CompileOperand = "bcpl_trans4$CompileOperand" 41 SetResult = "bcpl_trans4$SetResult" 42 43 Evalconst = "bcpl_trans5$Evalconst" 44 PartialEvalconst = "bcpl_trans5$PartialEvalconst" 45 IsConst = "bcpl_trans5$IsConst" 46 EvaluateOperator = "bcpl_trans5$EvaluateOperator" 47 CountTemporaries = "bcpl_trans5$CountTemporaries" 48 IsRelational = "bcpl_trans5$IsRelational" 49 50 ResetSSP = "bcpl_trans6$ResetSSP" 51 AllocateLocal = "bcpl_trans6$AllocateLocal" 52 DeallocateLocal = "bcpl_trans6$DeallocateLocal" 53 MakeTemp = "bcpl_trans6$MakeTemp" 54 MakeCopy = "bcpl_trans6$MakeCopy" 55 PutBackTemps = "bcpl_trans6$PutBackTemps" 56 TransFnap = "bcpl_trans6$TransFnap" 57 TransSystemCall = "bcpl_trans6$TransSystemCall" 58 59 GenerateLabel = "bcpl_cg_interface$GenerateLabel" 60 GenerateJump = "bcpl_cg_interface$GenerateJump" 61 GenerateRtdefBegin = "bcpl_cg_interface$GenerateRtdefBegin" 62 GenerateRtdefEnd = "bcpl_cg_interface$GenerateRtdefEnd" 63 ReserveArglist = "bcpl_cg_interface$ReserveArglist" 64 GenerateArg = "bcpl_cg_interface$GenerateArg" 65 GenerateFnap = "bcpl_cg_interface$GenerateFnap" 66 ReserveSystemArglist = "bcpl_cg_interface$ReserveSystemArglist" 67 GenerateSystemArg = "bcpl_cg_interface$GenerateSystemArg" 68 GenerateSystemCall = "bcpl_cg_interface$GenerateSystemCall" 69 GenerateResultBlock = "bcpl_cg_interface$GenerateResultBlock" 70 GenerateResultValue = "bcpl_cg_interface$GenerateResultValue" 71 GenerateClaimResult = "bcpl_cg_interface$GenerateClaimResult" 72 GenerateGoto = "bcpl_cg_interface$GenerateGoto" 73 GenerateFinish = "bcpl_cg_interface$GenerateFinish" 74 GenerateSwitch = "bcpl_cg_interface$GenerateSwitch" 75 GenerateMonadicOperator = "bcpl_cg_interface$GenerateMonadicOperator" 76 GenerateDiadicOperator = "bcpl_cg_interface$GenerateDiadicOperator" 77 GenerateOffsetOperator = "bcpl_cg_interface$GenerateOffsetOperator" 78 GenerateMonadicConditional = "bcpl_cg_interface$GenerateMonadicConditional" 79 GenerateDiadicConditional = "bcpl_cg_interface$GenerateDiadicConditional" 80 GenerateSSP = "bcpl_cg_interface$GenerateSSP" 81 GenerateLineNumber = "bcpl_cg_interface$GenerateLineNumber" 82 StoreAll = "bcpl_cg_interface$StoreAll" 83 CgFinish = "bcpl_cg_interface$CgFinish" 84 $) 85 global // 250 - 299 are reserved for Trans. 86 $( ArgInfo : 250 87 BreakLabel : 251 88 CaseFirst : 252 89 CaseList : 253 90 DefaultLabel : 254 91 DefList : 255 92 DvecC : 246 93 DvecP : 257 94 EndcaseLabel : 258 95 96 EnvBase : 260 97 FreeLocalList : 261 98 InsideRtdef : 262 99 LHSpointer : 263 100 LoopFlag : 264 101 LoopLabel : 265 102 PendingTemps : 266 103 ReturnLabel : 267 104 RtdefList : 268 105 106 RtdefNesting : 270 107 SSP : 271 108 StaticAllocationCounter : 272 109 StaticFirst : 273 110 StaticList : 274 111 SwitchFlag : 275 112 TableCell : 276 113 ValofFlag : 277 114 ValofLabel : 278 115 $) 116 manifest 117 $( DescSize = 2 118 DvecSize = 4 119 $) 13 14 let Trans (x) be 15 $( DvecP := Newvec (DvecSize) 16 for i = 0 to DvecSize do DvecP!i := 0 17 DvecC := DvecP 18 19 StaticFirst, StaticList, DefList := 0, 0, 0 20 StaticAllocationCounter := 0 21 InsideRtdef, RtdefNesting, RtdefList := false, 0, 0 22 ReturnLabel := 0 23 LineCount := 0 24 ValofFlag, SwitchFlag, LoopFlag := false, false, false 25 BreakLabel, LoopLabel, EndcaseLabel := 0, 0, 0 26 SSP := 0 27 FreeLocalList, PendingTemps := 0, 0 28 29 Transbody (x) 30 31 LineCount := 0 32 CgFinish (StaticFirst, DefList) 33 $) CAE time 4.1, 115 source lines per second. cross reference table Addlocal bcpl_trans_head: 23 AllocateLocal bcpl_trans_head: 51 AND_S bcpl_symbols: 17 ArgInfo bcpl_trans_head: 86 Assignlist bcpl_trans_head: 35 ASSIGN_S bcpl_symbols: 18 BadCall bcpl_trans_codes: 16 BadDescriptors bcpl_trans_codes: 17 BadLink bcpl_trans_codes: 18 BE_S bcpl_symbols: 19 BIT_S bcpl_symbols: 20 BreakLabel bcpl_trans_head: 87, bcpl_trans0: 25 BREAK_S bcpl_symbols: 21 BuildObject bcpl_compiler_head: 72 BY_S bcpl_symbols: 22 CAE bcpl_compiler_head: 64 CaeReport bcpl_compiler_head: 49 CALL_S bcpl_symbols: 23 CaseFirst bcpl_trans_head: 88 CaseList bcpl_trans_head: 89 CASE_S bcpl_symbols: 24 Cellwithname bcpl_trans_head: 28 CgFinish bcpl_trans_head: 83, bcpl_trans0: 32 CgInit bcpl_compiler_head: 71 CGreport bcpl_compiler_head: 51 Ch bcpl_compiler_head: 92 CHARCONST_S bcpl_symbols: 27 CHAR_S bcpl_symbols: 26 Checkdistinct bcpl_trans_head: 27 Cleanup bcpl_compiler_head: 61 COLON_S bcpl_symbols: 28 Column bcpl_compiler_head: 128 COMMA_S bcpl_symbols: 29 CompareStrings bcpl_compiler_head: 25 CompileExpression bcpl_trans_head: 39 CompileOperand bcpl_trans_head: 40 CompilerDTM bcpl_compiler_head: 112 CompilerDTMString bcpl_compiler_head: 111 CompilerVersionNumber bcpl_compiler_head: 110 CompilerVersionString bcpl_compiler_head: 109 Concatenate bcpl_compiler_head: 26 COND_S bcpl_symbols: 30 Conformality bcpl_trans_codes: 19 CONSTANT_S bcpl_symbols: 31 CONSTDEF_S bcpl_symbols: 32 ConvertNtoS bcpl_compiler_head: 28 ConvertStoN bcpl_compiler_head: 27 CountTemporaries bcpl_trans_head: 47 Crep bcpl_compiler_head: 98 DeallocateLocal bcpl_trans_head: 52 Declitem bcpl_trans_head: 24 Decllabels bcpl_trans_head: 26 Declnames bcpl_trans_head: 25 DefaultLabel bcpl_trans_head: 90 DEFAULT_S bcpl_symbols: 33 DefList bcpl_trans_head: 91, bcpl_trans0: 19, 32 DescSize bcpl_trans_head: 117 DictionaryEntry bcpl_compiler_head: 127 DIV_F bcpl_symbols: 34 DIV_S bcpl_symbols: 36 DOUBLE_S bcpl_symbols: 38 DO_S bcpl_symbols: 37 DupDefault bcpl_trans_codes: 20 DupName bcpl_trans_codes: 21 DvecC bcpl_trans_head: 92, bcpl_trans0: 17 DvecP bcpl_trans_head: 93, bcpl_trans0: 15, 16, 17 DvecSize bcpl_trans_head: 118, bcpl_trans0: 15, 16 EndcaseLabel bcpl_trans_head: 94, bcpl_trans0: 25 ENDCASE_S bcpl_symbols: 39 Endofstreamch bcpl_compiler_head: 135 ENDPROG_S bcpl_symbols: 40 EnterIntoCrossreference bcpl_compiler_head: 57 EnvBase bcpl_trans_head: 96 EqualString bcpl_compiler_head: 24 EQV_S bcpl_symbols: 44 EQ_F bcpl_symbols: 42 EQ_S bcpl_symbols: 43 Errorsw bcpl_compiler_head: 124 ERROR_S bcpl_symbols: 41 Evalconst bcpl_trans_head: 43 EvaluateOperator bcpl_trans_head: 46 Even bcpl_compiler_head: 136 EXTERNAL_S bcpl_symbols: 46 FALSE_S bcpl_symbols: 47 FileCount bcpl_compiler_head: 118 FileNames bcpl_compiler_head: 116 FileShift bcpl_compiler_head: 138 FilesInfo bcpl_compiler_head: 117 FindPrintName bcpl_compiler_head: 56 FINISH_S bcpl_symbols: 48 FIXED_S bcpl_symbols: 49 FLOAT_S bcpl_symbols: 50 FNAP_S bcpl_symbols: 51 FNDEF_S bcpl_symbols: 52 Format bcpl_compiler_head: 20 FormCharconst bcpl_compiler_head: 46 FormStringconst bcpl_compiler_head: 47 FOR_S bcpl_symbols: 53 FreeLocalList bcpl_trans_head: 97, bcpl_trans0: 27 FreeVar bcpl_trans_codes: 22 Freevec bcpl_compiler_head: 34 GenerateArg bcpl_trans_head: 64 GenerateClaimResult bcpl_trans_head: 71 GenerateDiadicConditional bcpl_trans_head: 79 GenerateDiadicOperator bcpl_trans_head: 76 GenerateFinish bcpl_trans_head: 73 GenerateFnap bcpl_trans_head: 65 GenerateGoto bcpl_trans_head: 72 GenerateJump bcpl_trans_head: 60 GenerateLabel bcpl_trans_head: 59 GenerateLineNumber bcpl_trans_head: 81 GenerateMonadicConditional bcpl_trans_head: 78 GenerateMonadicOperator bcpl_trans_head: 75 GenerateOffsetOperator bcpl_trans_head: 77 GenerateResultBlock bcpl_trans_head: 69 GenerateResultValue bcpl_trans_head: 70 GenerateRtdefBegin bcpl_trans_head: 61 GenerateRtdefEnd bcpl_trans_head: 62 GenerateSSP bcpl_trans_head: 80 GenerateSwitch bcpl_trans_head: 74 GenerateSystemArg bcpl_trans_head: 67 GenerateSystemCall bcpl_trans_head: 68 GetStream bcpl_compiler_head: 62 GetVersion bcpl_compiler_head: 59 GET_S bcpl_symbols: 57 GE_F bcpl_symbols: 54 GE_S bcpl_symbols: 56 GlobalTemp bcpl_compiler_head: 131 GLOBAL_S bcpl_symbols: 58 GOTO_S bcpl_symbols: 59 GR_F bcpl_symbols: 60 GR_S bcpl_symbols: 61 HaveListingFile bcpl_compiler_head: 105 i bcpl_trans0: 16, 16 IFNOT_S bcpl_symbols: 63 IFSO_S bcpl_symbols: 64 IF_S bcpl_symbols: 62 INPUT bcpl_compiler_head: 90 InsideRtdef bcpl_trans_head: 98, bcpl_trans0: 21 INTO_S bcpl_symbols: 66 IsConst bcpl_trans_head: 45 IsRelational bcpl_trans_head: 48 LABDEF_S bcpl_symbols: 67 LABEL_S bcpl_symbols: 68 Left bcpl_compiler_head: 134 Length bcpl_compiler_head: 29 LengthInWords bcpl_compiler_head: 30 LENGTH_S bcpl_symbols: 71 LET_S bcpl_symbols: 72 LexInit bcpl_compiler_head: 65 LE_F bcpl_symbols: 69 LE_S bcpl_symbols: 70 LHSpointer bcpl_trans_head: 99 LineCount bcpl_compiler_head: 123, bcpl_trans0: 23, 31 LineMap bcpl_compiler_head: 100 LineMask bcpl_compiler_head: 138 List1 bcpl_compiler_head: 35 List2 bcpl_compiler_head: 36 List3 bcpl_compiler_head: 37 List4 bcpl_compiler_head: 38 List5 bcpl_compiler_head: 39 List6 bcpl_compiler_head: 40 Listing bcpl_compiler_head: 95 ListSize bcpl_trans_head: 34 LIST_S bcpl_symbols: 73 LmodeRequired bcpl_trans_codes: 23 LOCAL_S bcpl_symbols: 74 LOGAND_S bcpl_symbols: 76 LOGOR_S bcpl_symbols: 77 LoopFlag bcpl_trans_head: 100, bcpl_trans0: 24 LoopLabel bcpl_trans_head: 101, bcpl_trans0: 25 LOOP_S bcpl_symbols: 78 LSHIFT_S bcpl_symbols: 81 LS_F bcpl_symbols: 79 LS_S bcpl_symbols: 80 LVECAP_S bcpl_symbols: 83 LV_ARG_OUT bcpl_symbols: 84 LV_FNAP_RESULT bcpl_symbols: 86 LV_GLOBAL bcpl_symbols: 87 LV_LOCAL bcpl_symbols: 88 LV_S bcpl_symbols: 82 LV_STATIC bcpl_symbols: 89 LV_TEMP bcpl_symbols: 90 Machine bcpl_compiler_head: 102 MAIN_S bcpl_symbols: 91 MakeCopy bcpl_trans_head: 54 MakeTemp bcpl_trans_head: 53 MakeTimeString bcpl_compiler_head: 44 MANIFEST_S bcpl_symbols: 92 MINUS_F bcpl_symbols: 93 MINUS_S bcpl_symbols: 94 MONITOR bcpl_compiler_head: 91 MULT_F bcpl_symbols: 96 MULT_S bcpl_symbols: 97 NAMECHAIN bcpl_compiler_head: 125 NAME_S bcpl_symbols: 98 NegVector bcpl_trans_codes: 24 NEG_F bcpl_symbols: 99 NEG_S bcpl_symbols: 100 NEQV_S bcpl_symbols: 101 Newvec bcpl_compiler_head: 33, bcpl_trans0: 15 Nextparam bcpl_compiler_head: 45 Nextsymb bcpl_compiler_head: 53 NE_F bcpl_symbols: 102 NE_S bcpl_symbols: 103 NIL_S bcpl_symbols: 104 NoLoop bcpl_trans_codes: 26 NoSwitch bcpl_trans_codes: 27 NotConstant bcpl_trans_codes: 28 NotInsideRtdef bcpl_trans_codes: 29 NotName bcpl_trans_codes: 30 NOT_S bcpl_symbols: 106 NoValof bcpl_trans_codes: 31 NUMBER_S bcpl_symbols: 107 OcodeSw bcpl_compiler_head: 104 OFFSET_S bcpl_symbols: 108 Optimize bcpl_compiler_head: 101 OptionString bcpl_compiler_head: 115 OR_S bcpl_symbols: 109 OUTPUT bcpl_compiler_head: 89 Packstring bcpl_compiler_head: 21 PartialEvalconst bcpl_trans_head: 44 PendingTemps bcpl_trans_head: 102, bcpl_trans0: 27 Plist bcpl_compiler_head: 68 PLUS_F bcpl_symbols: 110 PLUS_S bcpl_symbols: 111 Pname bcpl_compiler_head: 67 POINTER_S bcpl_symbols: 112 PopInput bcpl_compiler_head: 43 POS_F bcpl_symbols: 113 POS_S bcpl_symbols: 114 PPrep bcpl_compiler_head: 97 ProgramName bcpl_compiler_head: 119 PushInput bcpl_compiler_head: 42 PutBackTemps bcpl_trans_head: 55 QuietSw bcpl_compiler_head: 106 RandomI bcpl_compiler_head: 31 RBRA_S bcpl_symbols: 116 Readch bcpl_compiler_head: 16 REGISTER_S bcpl_symbols: 117 REL_S bcpl_symbols: 118 RemoveEscapes bcpl_compiler_head: 23 Removenames bcpl_trans_head: 29 REM_S bcpl_symbols: 119 REPEATUNTIL_S bcpl_symbols: 122 REPEATWHILE_S bcpl_symbols: 123 REPEAT_S bcpl_symbols: 121 REP_S bcpl_symbols: 120 ReserveArglist bcpl_trans_head: 63 ReserveSystemArglist bcpl_trans_head: 66 ResetSSP bcpl_trans_head: 50 RESULTIS_S bcpl_symbols: 124 ReturnLabel bcpl_trans_head: 103, bcpl_trans0: 22 RETURN_S bcpl_symbols: 126 Right bcpl_compiler_head: 134 RKET_S bcpl_symbols: 127 RSHIFT_S bcpl_symbols: 128 RTAP_S bcpl_symbols: 129 RtdefList bcpl_trans_head: 104, bcpl_trans0: 21 RtdefNesting bcpl_trans_head: 106, bcpl_trans0: 21 RTDEF_S bcpl_symbols: 130 RV_S bcpl_symbols: 131 SBRA_S bcpl_symbols: 132 SECTBEGIN_S bcpl_symbols: 133 SECTBRA_S bcpl_symbols: 134 SECTEND_S bcpl_symbols: 136 SECTKET_S bcpl_symbols: 137 SEMICOLON_S bcpl_symbols: 138 SetResult bcpl_trans_head: 41 SKET_S bcpl_symbols: 139 SSP bcpl_trans_head: 107, bcpl_trans0: 26 StaticAllocationCounter bcpl_trans_head: 108, bcpl_trans0: 20 StaticFirst bcpl_trans_head: 109, bcpl_trans0: 19, 32 StaticList bcpl_trans_head: 110, bcpl_trans0: 19 STATIC_S bcpl_symbols: 140 StoreAll bcpl_trans_head: 82 StoreString bcpl_compiler_head: 41 STRINGCONST_S bcpl_symbols: 142 STRING_S bcpl_symbols: 141 STRUCTURE_S bcpl_symbols: 143 SwitchFlag bcpl_trans_head: 111, bcpl_trans0: 24 SWITCHON_S bcpl_symbols: 144 Symb bcpl_compiler_head: 126 SymbolName bcpl_compiler_head: 55 Symbols bcpl_compiler_head: 99 TableCell bcpl_trans_head: 112 TABLE_S bcpl_symbols: 146 Target bcpl_trans_head: 36 TEMP_S bcpl_symbols: 147 TEST_S bcpl_symbols: 148 TimeNow bcpl_compiler_head: 114 TimeNowString bcpl_compiler_head: 113 TO_S bcpl_symbols: 149 Trans bcpl_compiler_head: 70, bcpl_trans0: 14 Transbody bcpl_trans_head: 20, bcpl_trans0: 29 TransConditional bcpl_trans_head: 31 Transdef bcpl_trans_head: 22 TransFnap bcpl_trans_head: 56 TransFor bcpl_trans_head: 32 TransLoop bcpl_trans_head: 37 Transreport bcpl_compiler_head: 50 TransSystemCall bcpl_trans_head: 57 TRUE_S bcpl_symbols: 150 TYPE_S bcpl_symbols: 151 UndefName bcpl_trans_codes: 32 UnexpectedCase bcpl_compiler_head: 139 UNLESS_S bcpl_symbols: 152 Unpackstring bcpl_compiler_head: 22 UnrecognizedExpression bcpl_trans_codes: 33 UNTIL_S bcpl_symbols: 153 UpperCase bcpl_compiler_head: 96 UserID bcpl_compiler_head: 120 UtilitiesInit bcpl_compiler_head: 60 VALDEF_S bcpl_symbols: 154 ValofFlag bcpl_trans_head: 113, bcpl_trans0: 24 ValofLabel bcpl_trans_head: 114 VALOF_S bcpl_symbols: 156 VECAP_S bcpl_symbols: 158 VEC_S bcpl_symbols: 157 Vmax bcpl_compiler_head: 137 WalkList bcpl_trans_head: 33 WHILE_S bcpl_symbols: 159 Writech bcpl_compiler_head: 17 WriteN bcpl_compiler_head: 19 WriteObjectListing bcpl_compiler_head: 73 WriteS bcpl_compiler_head: 18 x bcpl_trans0: 14, 29 Xref bcpl_compiler_head: 103 Trans time 0.3, 685 object words per second. " Begin text of Trans aa 000000 000005 124162 zero 5,43122 " Trans aa 000001 141156 163000 zero 49774,58880 L1: aa 000002 000000 213000 14 epaq 0 " set lp to linkage section aa 000003 700026 764161 lprplp sb|22,*au aa 000004 200000 021100 adlx1 bp|0 " BCPL save aa 000005 700000 542111 sprpbp sb|0,x1 aa 000006 700001 544111 sprplp sb|1,x1 aa 000007 700423 620111 eax0 sb|275,x1 aa 000010 777760 360003 anx0 -16,du aa 000011 700025 740100 stx0 sb|21 " end of save sequence aa 000012 000004 236007 15 ldq 4,dl " DvecSize aa 000013 700010 756111 stq sb|8,x1 4a 000014 400014 272120 tsbbp lp|L5,* " Newvec aa 000015 000006 000001 zero 6,1 aa 000016 600401 756100 stq sp|257 " DvecP aa 000017 700003 450111 16 stz sb|3,x1 " i aa 000020 000005 710004 tra L6 L7: aa 000021 700003 722111 lxl2 sb|3,x1 " i aa 000022 600401 760100 lprpap sp|257 " DvecP aa 000023 000000 450112 stz ap|0,x2 aa 000024 700003 054111 aos sb|3,x1 " i L6: aa 000025 700003 236111 ldq sb|3,x1 " i aa 000026 000004 116007 cmpq 4,dl " DvecSize aa 000027 777772 604404 tmoz L7 aa 000030 600401 235100 17 lda sp|257 " DvecP aa 000031 600366 755100 sta sp|246 " DvecC aa 000032 600377 450100 19 stz sp|255 " DefList aa 000033 600422 450100 stz sp|274 " StaticList aa 000034 600421 450100 stz sp|273 " StaticFirst aa 000035 600420 450100 20 stz sp|272 " StaticAllocationCounter aa 000036 600416 450100 21 stz sp|270 " RtdefNesting aa 000037 600414 450100 stz sp|268 " RtdefList aa 000040 600406 450100 stz sp|262 " InsideRtdef aa 000041 600413 450100 22 stz sp|267 " ReturnLabel aa 000042 600214 450100 23 stz sp|140 " LineCount aa 000043 600425 450100 24 stz sp|277 " ValofFlag aa 000044 600423 450100 stz sp|275 " SwitchFlag aa 000045 600410 450100 stz sp|264 " LoopFlag aa 000046 600411 450100 25 stz sp|265 " LoopLabel aa 000047 600373 450100 stz sp|251 " BreakLabel aa 000050 600402 450100 stz sp|258 " EndcaseLabel aa 000051 600417 450100 26 stz sp|271 " SSP aa 000052 600405 450100 27 stz sp|261 " FreeLocalList aa 000053 600412 450100 stz sp|266 " PendingTemps aa 000054 700002 235111 29 lda sb|2,x1 " x aa 000055 700010 755111 sta sb|8,x1 4a 000056 400012 272120 tsbbp lp|L8,* " Transbody aa 000057 000006 000001 zero 6,1 aa 000060 600214 450100 31 stz sp|140 " LineCount aa 000061 600421 235100 32 lda sp|273 " StaticFirst aa 000062 700010 755111 sta sb|8,x1 aa 000063 600377 235100 lda sp|255 " DefList aa 000064 700011 755111 sta sb|9,x1 4a 000065 400010 272120 tsbbp lp|L9,* " CgFinish aa 000066 000006 000002 zero 6,2 L4: aa 000067 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000070 200000 121100 sblx1 bp|0 aa 000071 700001 764111 lprplp sb|1,x1 aa 000072 200001 710100 tra bp|1 " end of return sequence aa 000073 000000 000000 " padding " Definition section part one - external entry points 5a 000000 000014 000000 " pointer to first definition aa 000001 000000 600000 " flags: new format, ignore header aa 000002 000000 000000 " list terminator aa 000003 013142 143160 " "bcpl_trans0" aa 000004 154137 164162 aa 000005 141156 163060 aa 000006 005124 162141 " "Trans" aa 000007 156163 000000 aa 000010 014163 171155 " "symbol_table" aa 000011 142157 154137 aa 000012 164141 142154 aa 000013 145000 000000 " Segname definition for bcpl_trans0 55 000014 000017 000002 " forward, backward threads 5a 000015 000002 400003 " value defined, class flags 55 000016 000003 000017 " name pointer, first entry def " Definition for Trans 55 000017 000022 000014 " forward, backward threads 0a 000020 000002 500000 " value defined, class flags 55 000021 000006 000014 " name pointer, segname def pointer " Definition for symbol_table 55 000022 000002 000017 " forward, backward threads 6a 000023 000000 400002 " value defined, class flags 55 000024 000010 000014 " name pointer, segname def pointer " Definition section part two - symbolic info for external references aa 000025 021142 143160 " "bcpl_cg_interface" aa 000026 154137 143147 aa 000027 137151 156164 aa 000030 145162 146141 aa 000031 143145 000000 aa 000032 010103 147106 " "CgFinish" aa 000033 151156 151163 aa 000034 150000 000000 5a 000035 000036 000000 aa 000036 000004 000000 55 000037 000025 000032 aa 000040 013142 143160 " "bcpl_trans1" aa 000041 154137 164162 aa 000042 141156 163061 aa 000043 011124 162141 " "Transbody" aa 000044 156163 142157 aa 000045 144171 000000 5a 000046 000047 000000 aa 000047 000004 000000 55 000050 000040 000043 aa 000051 014142 143160 " "bcpl_utility" aa 000052 154137 165164 aa 000053 151154 151164 aa 000054 171000 000000 aa 000055 006116 145167 " "Newvec" aa 000056 166145 143000 5a 000057 000060 000000 aa 000060 000004 000000 55 000061 000051 000055 " Linkage section - static variables and external links aa 000000 000000 000000 " linkage header 0a 000001 000074 000000 " address of defs aa 000002 000000 000000 aa 000003 000000 000000 aa 000004 000000 000000 aa 000005 000000 000000 2a 000006 000010 000016 " offset to links, total length aa 000007 000000 000016 " obsolete length " External link pairs L9: 3a 000010 777770 000046 " "bcpl_cg_interface$CgFinish" 5a 000011 000035 000000 L8: 3a 000012 777766 000046 " "bcpl_trans1$Transbody" 5a 000013 000046 000000 L5: 3a 000014 777764 000046 " "bcpl_utility$Newvec" 5a 000015 000057 000000 " Symbol section header aa 000000 000000 000001 " version number of header structure aa 000001 163171 155142 " "symbtree" aa 000002 164162 145145 aa 000003 000000 000003 " compiler version number aa 000004 000000 101170 " date/time compiler modified aa 000005 533311 032072 " 09/25/73 0959.1 mst Tue aa 000006 000000 102333 " time of this compilation aa 000007 440530 721774 " 01/24/75 0701.1 mst Fri aa 000010 142143 160154 " "bcpl " aa 000011 040040 040040 aa 000012 000052 000035 " compiler version name - pointer, length aa 000013 000062 000024 " user id - pointer, length aa 000014 000067 000043 " comment string - pointer, length aa 000015 000002 000002 " text and linkage boundaries aa 000016 000024 000000 " source map, symbol tree root 7a 000017 000000 000163 " section header pointer, block size aa 000020 000000 000163 " next block pointer, rel_text aa 000021 000000 000167 " rel_def, rel_link aa 000022 000173 000163 " rel_symbol, default truncate aa 000023 000024 000000 " optional truncate, unused aa 000024 000000 000001 " source files map: version number aa 000025 000000 000005 " number of files aa 000026 000100 000052 " bcpl_trans0 aa 000027 023333 611432 " last modified on aa 000030 000000 102333 " 01/24/75 0647.2 mst Fri aa 000031 432367 000000 aa 000032 000113 000046 " bcpl_trans_head aa 000033 021607 540225 " last modified on aa 000034 000000 101621 " 05/06/74 1740.8 mst Mon aa 000035 351476 000000 aa 000036 000125 000051 " bcpl_compiler_head aa 000037 021607 540214 " last modified on aa 000040 000000 101621 " 05/06/74 1740.6 mst Mon aa 000041 351403 200000 aa 000042 000140 000043 " bcpl_symbols aa 000043 021607 540223 " last modified on aa 000044 000000 101621 " 05/06/74 1740.8 mst Mon aa 000045 351474 000000 aa 000046 000151 000047 " bcpl_trans_codes aa 000047 021607 540224 " last modified on aa 000050 000000 101621 " 05/06/74 1740.8 mst Mon aa 000051 351475 000000 aa 000052 102103 120114 " "BCPL version 3.4, August 1973" aa 000053 040166 145162 aa 000054 163151 157156 aa 000055 040063 056064 aa 000056 054040 101165 aa 000057 147165 163164 aa 000060 040061 071067 aa 000061 063040 040040 aa 000062 115141 162164 " "Martinson.SysMaint.a" aa 000063 151156 163157 aa 000064 156056 123171 aa 000065 163115 141151 aa 000066 156164 056141 aa 000067 163157 165162 " "source xref alist optimize 6180" aa 000070 143145 040040 aa 000071 170162 145146 aa 000072 040040 141154 aa 000073 151163 164040 aa 000074 040157 160164 aa 000075 151155 151172 aa 000076 145040 040066 aa 000077 061070 060040 aa 000100 076062 056061 " ">2.1spec>online>mib083074>bcpl_trans0.bcpl" aa 000101 163160 145143 aa 000102 076157 156154 aa 000103 151156 145076 aa 000104 155151 142060 aa 000105 070063 060067 aa 000106 064076 142143 aa 000107 160154 137164 aa 000110 162141 156163 aa 000111 060056 142143 aa 000112 160154 040040 aa 000113 076154 144144 " ">ldd>include>bcpl_trans_head.incl.bcpl" aa 000114 076151 156143 aa 000115 154165 144145 aa 000116 076142 143160 aa 000117 154137 164162 aa 000120 141156 163137 aa 000121 150145 141144 aa 000122 056151 156143 aa 000123 154056 142143 aa 000124 160154 040040 aa 000125 076154 144144 " ">ldd>include>bcpl_compiler_head.incl.bcpl" aa 000126 076151 156143 aa 000127 154165 144145 aa 000130 076142 143160 aa 000131 154137 143157 aa 000132 155160 151154 aa 000133 145162 137150 aa 000134 145141 144056 aa 000135 151156 143154 aa 000136 056142 143160 aa 000137 154040 040040 aa 000140 076154 144144 " ">ldd>include>bcpl_symbols.incl.bcpl" aa 000141 076151 156143 aa 000142 154165 144145 aa 000143 076142 143160 aa 000144 154137 163171 aa 000145 155142 157154 aa 000146 163056 151156 aa 000147 143154 056142 aa 000150 143160 154040 aa 000151 076154 144144 " ">ldd>include>bcpl_trans_codes.incl.bcpl" aa 000152 076151 156143 aa 000153 154165 144145 aa 000154 076142 143160 aa 000155 154137 164162 aa 000156 141156 163137 aa 000157 143157 144145 aa 000160 163056 151156 aa 000161 143154 056142 aa 000162 143160 154040 " Relocation information " text section relocation bits aa 000163 000000 000002 " version number of rel-bits structure aa 000164 000000 000107 " length in bits aa 000165 740305 170207 aa 000166 200001 200000 l " inkage relocation bits aa 000167 000000 000002 " version number of rel-bits structure aa 000170 000000 000074 " length in bits aa 000171 100002 204652 aa 000172 465246 520000 s " ymbol relocation bits aa 000173 000000 000002 " version number of rel-bits structure aa 000174 000000 000043 " length in bits aa 000175 740365 770616 " Object map aa 000372 000000 000001 " version number of object_map structure aa 000373 157142 152137 " "obj_map " aa 000374 155141 160040 aa 000375 000000 000073 " text offset, length aa 000376 000074 000062 " def offset, length aa 000377 000156 000016 " link offset, length aa 000400 000174 000176 " symbol offset, length aa 000401 000000 000000 " break map offset, length aa 000402 340000 000000 " flags: ^bound, relocatable, procedure, standard aa 000403 000372 000000 " object map pointer, unused ----------------------------------------------------------- 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