Compilation listing of file >2.1spec>online>mib083074>bcpl_meter_print.bcpl. Compilation performed for Martinson.SysMaint.a at 01/24/75 0659.7 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 // Routines for printing out the results of metering the BCPL compiler. 2 // Last modified on 06/06/74 at 18:26:03 by R F Mabee. 3 // First installed as Version 3.4, R F Mabee. 4 // Written in April 1973 in order to compare performance of BCPL compiler on 645 vs. 6180. 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_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 $) 13 get "bcpl_metering_head" 1 // Variables and constants for use in measuring performance of the various parts of the BCPL compiler. 2 // Last modified on 08/14/73 at 22:09:47 by R F Mabee. 3 // First installed with Version 3.4 by R F Mabee. 4 // Written in April 1973 to obtain detailed info about compiler performance. 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 $( SaveOldUsage = "bcpl_utility$SaveOldUsage" 17 RecordUsage = "bcpl_utility$RecordUsage" 18 PrintMeters = "bcpl_meter_print$PrintMeters" 19 $) 20 21 global 22 $( Metering : 150 23 MeterData : 151 24 DictionaryDepth : 152 25 TotalLines : 153 26 TotalWords : 154 27 $) 28 29 manifest 30 $( DriverOverhead_Meter = 0 31 SyntaxAnalysis_Meter = 3 32 Nextsymb_Meter = 6 33 ProcessGet_Meter = 9 34 SymbolAdd_Meter = 12 35 SymbolSearch_Meter = 15 36 RchWithoutListing_Meter = 18 37 RchWithListing_Meter = 21 38 PrintXref_Meter = 24 39 MakeObject_Meter = 27 40 CompileSwitchWithoutOptimizing_Meter = 30 41 CompileSwitchWithOptimizing_Meter = 33 42 SemanticTranslation_Meter = 36 43 CodeGeneration_Meter = 39 44 CompileExpression_Meter = 42 45 MeteringOverhead_Meter = 45 46 TotalLines_Count = 48 47 TextWords_Count = 49 48 DictionaryDepth_Count = 50 49 Meters_Length = 51 50 $) 14 15 global 16 $( MeterPointer : GlobalTemp $) 17 18 let PrintMeters (BV_MeterPointer) be 19 $( MeterPointer := BV_MeterPointer 20 let TotalTime = MeterPointer!(MeteringOverhead_Meter + 2) 21 let Lines, Words = MeterPointer!TotalLines_Count, MeterPointer!TextWords_Count 22 WriteS (OUTPUT, "*n*tBCPL COMPILER METERING RESULTS*n*nTotal time is") 23 PrintTime (TotalTime) 24 WriteS (OUTPUT, ".*n") 25 if TotalTime = 0 return 26 let TimeMillisecs = TotalTime / 1000 27 if TimeMillisecs = 0 do TimeMillisecs := 1 28 Format (OUTPUT, "Overall speed was ^d source lines per second, ^d object words per second", 29 Lines * 1000 / TimeMillisecs, Words * 1000 / TimeMillisecs) 30 unless Lines = 0 do 31 $( WriteS (OUTPUT, " (") 32 PrintFraction (Words * 100 / Lines, 100) 33 WriteS (OUTPUT, " words per line)") 34 $) 35 WriteS (OUTPUT, ".*n*n") 36 37 PrintAverage (RchWithoutListing_Meter, "Rch, no listing") 38 PrintAverage (RchWithListing_Meter, "Rch, with listing") 39 PrintAverage (Nextsymb_Meter, "Nextsymb") 40 PrintAverage (SymbolAdd_Meter, "Dictionary lookup (symbol added)") 41 PrintAverage (SymbolSearch_Meter, "Dictionary lookup (already present)") 42 let D = MeterPointer!(SymbolAdd_Meter + 1) + MeterPointer!(SymbolSearch_Meter + 1) 43 unless D = 0 do 44 $( WriteS (OUTPUT, "Average dictionary depth is ") 45 PrintFraction (MeterPointer!DictionaryDepth_Count * 100 / D, 100) 46 Writech (OUTPUT, '*n') 47 $) 48 PrintAverage (ProcessGet_Meter, "ProcessGet") 49 PrintPerUnit (SyntaxAnalysis_Meter, "Syntax analyzer", Lines, "line") 50 PrintAverage (PrintXref_Meter, "Pname") 51 PrintPerUnit (SemanticTranslation_Meter, "Semantic translator", Words, "word") 52 PrintAverage (CompileExpression_Meter, "Compile expression") 53 PrintAverage (CompileSwitchWithoutOptimizing_Meter, "Compile switchon, no optimization") 54 PrintAverage (CompileSwitchWithOptimizing_Meter, "Compile switchon, with optimization") 55 PrintAverage (CodeGeneration_Meter, "Code generation phase") 56 PrintAverage (MakeObject_Meter, "Creating object segment") 57 PrintAverage (DriverOverhead_Meter, "Miscellaneous in command interface") 58 PrintAverage (MeteringOverhead_Meter, "Metering calls") 59 Writech (OUTPUT, '*n') 60 $) 61 and PrintPerUnit (Meter, Comment, Unit, UnitComment) be 62 $( if MeterPointer!Meter = 0 return 63 WriteS (OUTPUT, Comment) 64 PrintTime (MeterPointer!Meter) 65 Writech (OUTPUT, ',') 66 unless Unit = 0 do 67 $( PrintTime (MeterPointer!Meter / Unit) 68 Format (OUTPUT, " per ^s,", UnitComment) 69 $) 70 PrintPercent (Meter) 71 $) 72 and PrintAverage (Meter, Comment) be 73 $( if MeterPointer!Meter = 0 return 74 WriteS (OUTPUT, Comment) 75 test MeterPointer!(Meter + 1) = 1 // Event happened only once. 76 then $( PrintTime (MeterPointer!Meter) 77 Writech (OUTPUT, ',') 78 $) 79 or $( Format (OUTPUT, " done ^d times,", MeterPointer!(Meter + 1)) 80 PrintTime (MeterPointer!Meter / MeterPointer!(Meter + 1)) 81 WriteS (" average,") 82 $) 83 PrintPercent (Meter) 84 $) 85 and PrintTime (t) be 86 $( let Unit, Mult = "micro", 1 87 if t ge Mult * 1000 do Unit, Mult := "milli", 1000 88 if t ge Mult * 1000 do Unit, t := "", t / 1000 89 Writech (OUTPUT, '*s') 90 PrintFraction (t, Mult) 91 Format (OUTPUT, " ^sseconds", Unit) 92 $) 93 and PrintPercent (Meter) be 94 $( Writech (OUTPUT, '*s') 95 let T = MeterPointer!(Meter + 2) / 1000 96 if T = 0 do T := 1 97 PrintFraction (MeterPointer!Meter / T, 10) 98 WriteS (OUTPUT, "%.*n") 99 $) 100 and PrintFraction (R, Mult) be 101 $( let F = R * 201 / Mult / 2 102 WriteN (OUTPUT, F / 100) 103 if F < 1000 & Mult > 1 do 104 $( Writech (OUTPUT, '.') 105 Writech (OUTPUT, '0' + (F / 10 rem 10)) 106 if F < 100 & Mult > 10 do Writech (OUTPUT, '0' + (F rem 10)) 107 $) 108 $) CAE time 2.4, 121 source lines per second. cross reference table BuildObject bcpl_compiler_head: 72 BV_MeterPointer bcpl_meter_print: 18, 19 CAE bcpl_compiler_head: 64 CaeReport bcpl_compiler_head: 49 CgInit bcpl_compiler_head: 71 CGreport bcpl_compiler_head: 51 Ch bcpl_compiler_head: 92 Cleanup bcpl_compiler_head: 61 CodeGeneration_Meter bcpl_metering_head: 43, bcpl_meter_print: 55 Column bcpl_compiler_head: 128 Comment bcpl_meter_print: 61, 63, 72, 74 CompareStrings bcpl_compiler_head: 25 CompileExpression_Meter bcpl_metering_head: 44, bcpl_meter_print: 52 CompilerDTM bcpl_compiler_head: 112 CompilerDTMString bcpl_compiler_head: 111 CompilerVersionNumber bcpl_compiler_head: 110 CompilerVersionString bcpl_compiler_head: 109 CompileSwitchWithOptimizing_Meter bcpl_metering_head: 41, bcpl_meter_print: 54 CompileSwitchWithoutOptimizing_Meter bcpl_metering_head: 40, bcpl_meter_print: 53 Concatenate bcpl_compiler_head: 26 ConvertNtoS bcpl_compiler_head: 28 ConvertStoN bcpl_compiler_head: 27 Crep bcpl_compiler_head: 98 D bcpl_meter_print: 42, 43, 45 DictionaryDepth bcpl_metering_head: 24 DictionaryDepth_Count bcpl_metering_head: 48, bcpl_meter_print: 45 DictionaryEntry bcpl_compiler_head: 127 DriverOverhead_Meter bcpl_metering_head: 30, bcpl_meter_print: 57 Endofstreamch bcpl_compiler_head: 135 EnterIntoCrossreference bcpl_compiler_head: 57 EqualString bcpl_compiler_head: 24 Errorsw bcpl_compiler_head: 124 Even bcpl_compiler_head: 136 F bcpl_meter_print: 101, 102, 103, 105, 106, 106 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 Format bcpl_compiler_head: 20, bcpl_meter_print: 28, 68, 79, 91 FormCharconst bcpl_compiler_head: 46 FormStringconst bcpl_compiler_head: 47 Freevec bcpl_compiler_head: 34 GetStream bcpl_compiler_head: 62 GetVersion bcpl_compiler_head: 59 GlobalTemp bcpl_compiler_head: 131, bcpl_meter_print: 16 HaveListingFile bcpl_compiler_head: 105 INPUT bcpl_compiler_head: 90 Left bcpl_compiler_head: 134 Length bcpl_compiler_head: 29 LengthInWords bcpl_compiler_head: 30 LexInit bcpl_compiler_head: 65 LineCount bcpl_compiler_head: 123 LineMap bcpl_compiler_head: 100 LineMask bcpl_compiler_head: 138 Lines bcpl_meter_print: 21, 29, 30, 32, 49 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 Machine bcpl_compiler_head: 102 MakeObject_Meter bcpl_metering_head: 39, bcpl_meter_print: 56 MakeTimeString bcpl_compiler_head: 44 Meter bcpl_meter_print: 61, 62, 64, 67, 70, 72, 73, 75, 76, 79, 80, 80, 83, 93, 95, 97 MeterData bcpl_metering_head: 23 Metering bcpl_metering_head: 22 MeteringOverhead_Meter bcpl_metering_head: 45, bcpl_meter_print: 20, 58 MeterPointer bcpl_meter_print: 16, 19, 20, 21, 21, 42, 42, 45, 62, 64, 67, 73, 75, 76, 79, 80, 80, 95, 97 Meters_Length bcpl_metering_head: 49 MONITOR bcpl_compiler_head: 91 Mult bcpl_meter_print: 86, 87, 87, 88, 90, 100, 101, 103, 106 NAMECHAIN bcpl_compiler_head: 125 Newvec bcpl_compiler_head: 33 Nextparam bcpl_compiler_head: 45 Nextsymb bcpl_compiler_head: 53 Nextsymb_Meter bcpl_metering_head: 32, bcpl_meter_print: 39 OcodeSw bcpl_compiler_head: 104 Optimize bcpl_compiler_head: 101 OptionString bcpl_compiler_head: 115 OUTPUT bcpl_compiler_head: 89, bcpl_meter_print: 22, 24, 28, 31, 33, 35, 44, 46, 59, 63, 65, 68, 74, 77, 79, 89, 91, 94, 98, 102, 104, 105, 106 Packstring bcpl_compiler_head: 21 Plist bcpl_compiler_head: 68 Pname bcpl_compiler_head: 67 PopInput bcpl_compiler_head: 43 PPrep bcpl_compiler_head: 97 PrintAverage bcpl_meter_print: 37, 38, 39, 40, 41, 48, 50, 52, 53, 54, 55, 56, 57, 58, 72 PrintFraction bcpl_meter_print: 32, 45, 90, 97, 100 PrintMeters bcpl_metering_head: 18, bcpl_meter_print: 18 PrintPercent bcpl_meter_print: 70, 83, 93 PrintPerUnit bcpl_meter_print: 49, 51, 61 PrintTime bcpl_meter_print: 23, 64, 67, 76, 80, 85 PrintXref_Meter bcpl_metering_head: 38, bcpl_meter_print: 50 ProcessGet_Meter bcpl_metering_head: 33, bcpl_meter_print: 48 ProgramName bcpl_compiler_head: 119 PushInput bcpl_compiler_head: 42 QuietSw bcpl_compiler_head: 106 R bcpl_meter_print: 100, 101 RandomI bcpl_compiler_head: 31 RchWithListing_Meter bcpl_metering_head: 37, bcpl_meter_print: 38 RchWithoutListing_Meter bcpl_metering_head: 36, bcpl_meter_print: 37 Readch bcpl_compiler_head: 16 RecordUsage bcpl_metering_head: 17 RemoveEscapes bcpl_compiler_head: 23 Right bcpl_compiler_head: 134 SaveOldUsage bcpl_metering_head: 16 SemanticTranslation_Meter bcpl_metering_head: 42, bcpl_meter_print: 51 StoreString bcpl_compiler_head: 41 Symb bcpl_compiler_head: 126 SymbolAdd_Meter bcpl_metering_head: 34, bcpl_meter_print: 40, 42 SymbolName bcpl_compiler_head: 55 Symbols bcpl_compiler_head: 99 SymbolSearch_Meter bcpl_metering_head: 35, bcpl_meter_print: 41, 42 SyntaxAnalysis_Meter bcpl_metering_head: 31, bcpl_meter_print: 49 T bcpl_meter_print: 95, 96, 96, 97 t bcpl_meter_print: 85, 87, 88, 88, 88, 90 TextWords_Count bcpl_metering_head: 47, bcpl_meter_print: 21 TimeMillisecs bcpl_meter_print: 26, 27, 27, 29, 29 TimeNow bcpl_compiler_head: 114 TimeNowString bcpl_compiler_head: 113 TotalLines bcpl_metering_head: 25 TotalLines_Count bcpl_metering_head: 46, bcpl_meter_print: 21 TotalTime bcpl_meter_print: 20, 23, 25, 26 TotalWords bcpl_metering_head: 26 Trans bcpl_compiler_head: 70 Transreport bcpl_compiler_head: 50 UnexpectedCase bcpl_compiler_head: 139 Unit bcpl_meter_print: 61, 66, 67, 86, 87, 88, 91 UnitComment bcpl_meter_print: 61, 68 Unpackstring bcpl_compiler_head: 22 UpperCase bcpl_compiler_head: 96 UserID bcpl_compiler_head: 120 UtilitiesInit bcpl_compiler_head: 60 Vmax bcpl_compiler_head: 137 Words bcpl_meter_print: 21, 29, 32, 51 Writech bcpl_compiler_head: 17, bcpl_meter_print: 46, 59, 65, 77, 89, 94, 104, 105, 106 WriteN bcpl_compiler_head: 19, bcpl_meter_print: 102 WriteObjectListing bcpl_compiler_head: 73 WriteS bcpl_compiler_head: 18, bcpl_meter_print: 22, 24, 31, 33, 35, 44, 63, 74, 81, 98 Xref bcpl_compiler_head: 103 Trans time 1.0, 858 object words per second. " Begin text of PrintMeters aa 000000 000013 120162 zero 11,41074 " PrintMeters aa 000001 151156 164115 zero 53870,59469 aa 000002 145164 145162 zero 51828,51826 aa 000003 163000 000000 zero 58880 L1: aa 000004 000000 213000 18 epaq 0 " set lp to linkage section aa 000005 700026 764161 lprplp sb|22,*au aa 000006 200000 021100 adlx1 bp|0 " BCPL save aa 000007 700000 542111 sprpbp sb|0,x1 aa 000010 700001 544111 sprplp sb|1,x1 aa 000011 700425 620111 eax0 sb|277,x1 aa 000012 777760 360003 anx0 -16,du aa 000013 700025 740100 stx0 sb|21 " end of save sequence aa 000014 700002 236111 19 ldq sb|2,x1 " BV_MeterPointer aa 000015 600307 756100 stq sp|199 " MeterPointer aa 000016 600307 760100 20 lprpap sp|199 " MeterPointer aa 000017 000057 236100 ldq ap|47 aa 000020 700003 756111 stq sb|3,x1 " TotalTime aa 000021 600307 762100 21 lprpbp sp|199 " MeterPointer aa 000022 200061 236100 ldq bp|49 aa 000023 700005 756111 stq sb|5,x1 " Words aa 000024 600307 761100 lprpab sp|199 " MeterPointer aa 000025 100060 236100 ldq ab|48 aa 000026 700004 756111 stq sb|4,x1 " Lines aa 000027 600040 236100 22 ldq sp|32 " OUTPUT aa 000030 700016 756111 stq sb|14,x1 aa 000031 000530 353404 eapbb L10 " "*n*tBCPL COMPILER METERING RESULTS*n*nTotal time is" aa 000032 700017 543111 sprpbb sb|15,x1 4a 000033 400016 272120 tsbbp lp|L11,* " WriteS aa 000034 000014 000002 zero 12,2 aa 000035 700003 236111 23 ldq sb|3,x1 " TotalTime aa 000036 700016 756111 stq sb|14,x1 aa 000037 000642 272004 tsbbp L4+2 " PrintTime aa 000040 000014 000001 zero 12,1 aa 000041 600040 236100 24 ldq sp|32 " OUTPUT aa 000042 700016 756111 stq sb|14,x1 aa 000043 000515 353404 eapbb L12 " ".*n" aa 000044 700017 543111 sprpbb sb|15,x1 4a 000045 400016 272120 tsbbp lp|L11,* " WriteS aa 000046 000014 000002 zero 12,2 aa 000047 700003 234111 25 szn sb|3,x1 " TotalTime aa 000050 000273 600004 tze L9 aa 000051 700003 236111 26 ldq sb|3,x1 " TotalTime aa 000052 001750 506007 div 1000,dl " 1000 aa 000053 700006 756111 stq sb|6,x1 " TimeMillisecs aa 000054 700006 234111 27 szn sb|6,x1 " TimeMillisecs aa 000055 000003 601004 tnz L13 aa 000056 000001 236007 ldq 1,dl " 1 aa 000057 700006 756111 stq sb|6,x1 " TimeMillisecs L13: aa 000060 600040 236100 28 ldq sp|32 " OUTPUT aa 000061 700016 756111 stq sb|14,x1 aa 000062 000453 353404 eapbb L14 " "Overall speed was ^d source lines per second, ^d object words per second" aa 000063 700017 543111 sprpbb sb|15,x1 aa 000064 700004 236111 ldq sb|4,x1 " Lines aa 000065 001750 402007 mpy 1000,dl " 1000 aa 000066 700006 506111 div sb|6,x1 " TimeMillisecs aa 000067 700020 756111 stq sb|16,x1 aa 000070 700005 236111 ldq sb|5,x1 " Words aa 000071 001750 402007 mpy 1000,dl " 1000 aa 000072 700006 506111 div sb|6,x1 " TimeMillisecs aa 000073 700021 756111 stq sb|17,x1 4a 000074 400014 272120 tsbbp lp|L15,* " Format aa 000075 000014 000004 zero 12,4 aa 000076 700004 234111 30 szn sb|4,x1 " Lines aa 000077 000025 600004 tze L16 aa 000100 600040 236100 31 ldq sp|32 " OUTPUT aa 000101 700016 756111 stq sb|14,x1 aa 000102 000432 353404 eapbb L17 " " (" aa 000103 700017 543111 sprpbb sb|15,x1 4a 000104 400016 272120 tsbbp lp|L11,* " WriteS aa 000105 000014 000002 zero 12,2 aa 000106 700005 236111 32 ldq sb|5,x1 " Words aa 000107 000144 402007 mpy 100,dl " 100 aa 000110 700004 506111 div sb|4,x1 " Lines aa 000111 700016 756111 stq sb|14,x1 aa 000112 000144 236007 ldq 100,dl " 100 aa 000113 700017 756111 stq sb|15,x1 aa 000114 000666 272004 tsbbp L6+2 " PrintFraction aa 000115 000014 000002 zero 12,2 aa 000116 600040 236100 33 ldq sp|32 " OUTPUT aa 000117 700016 756111 stq sb|14,x1 aa 000120 000407 353404 eapbb L18 " " words per line)" aa 000121 700017 543111 sprpbb sb|15,x1 4a 000122 400016 272120 tsbbp lp|L11,* " WriteS aa 000123 000014 000002 zero 12,2 L16: aa 000124 600040 236100 35 ldq sp|32 " OUTPUT aa 000125 700016 756111 stq sb|14,x1 aa 000126 000377 353404 eapbb L19 " ".*n*n" aa 000127 700017 543111 sprpbb sb|15,x1 4a 000130 400016 272120 tsbbp lp|L11,* " WriteS aa 000131 000014 000002 zero 12,2 aa 000132 000022 236007 37 ldq 18,dl " RchWithoutListing_Meter aa 000133 700016 756111 stq sb|14,x1 aa 000134 000364 353404 eapbb L20 " "Rch, no listing" aa 000135 700017 543111 sprpbb sb|15,x1 aa 000136 001026 272004 tsbbp L3+2 " PrintAverage aa 000137 000014 000002 zero 12,2 aa 000140 000025 236007 38 ldq 21,dl " RchWithListing_Meter aa 000141 700016 756111 stq sb|14,x1 aa 000142 000351 353404 eapbb L21 " "Rch, with listing" aa 000143 700017 543111 sprpbb sb|15,x1 aa 000144 001020 272004 tsbbp L3+2 " PrintAverage aa 000145 000014 000002 zero 12,2 aa 000146 000006 236007 39 ldq 6,dl " Nextsymb_Meter aa 000147 700016 756111 stq sb|14,x1 aa 000150 000340 353404 eapbb L22 " "Nextsymb" aa 000151 700017 543111 sprpbb sb|15,x1 aa 000152 001012 272004 tsbbp L3+2 " PrintAverage aa 000153 000014 000002 zero 12,2 aa 000154 000014 236007 40 ldq 12,dl " SymbolAdd_Meter aa 000155 700016 756111 stq sb|14,x1 aa 000156 000321 353404 eapbb L23 " "Dictionary lookup (symbol added)" aa 000157 700017 543111 sprpbb sb|15,x1 aa 000160 001004 272004 tsbbp L3+2 " PrintAverage aa 000161 000014 000002 zero 12,2 aa 000162 000017 236007 41 ldq 15,dl " SymbolSearch_Meter aa 000163 700016 756111 stq sb|14,x1 aa 000164 000301 353404 eapbb L24 " "Dictionary lookup (already present)" aa 000165 700017 543111 sprpbb sb|15,x1 aa 000166 000776 272004 tsbbp L3+2 " PrintAverage aa 000167 000014 000002 zero 12,2 aa 000170 600307 763100 42 lprpbb sp|199 " MeterPointer aa 000171 300015 236100 ldq bb|13 aa 000172 600307 765100 lprplb sp|199 " MeterPointer aa 000173 500020 076100 adq lb|16 aa 000174 700007 756111 stq sb|7,x1 " D aa 000175 700007 234111 43 szn sb|7,x1 " D aa 000176 000026 600004 tze L25 aa 000177 600040 236100 44 ldq sp|32 " OUTPUT aa 000200 700016 756111 stq sb|14,x1 aa 000201 000254 350004 eapap L26 " "Average dictionary depth is " aa 000202 700017 540111 sprpap sb|15,x1 4a 000203 400016 272120 tsbbp lp|L11,* " WriteS aa 000204 000014 000002 zero 12,2 aa 000205 600307 760100 45 lprpap sp|199 " MeterPointer aa 000206 000062 236100 ldq ap|50 aa 000207 000144 402007 mpy 100,dl " 100 aa 000210 700007 506111 div sb|7,x1 " D aa 000211 700016 756111 stq sb|14,x1 aa 000212 000144 236007 ldq 100,dl " 100 aa 000213 700017 756111 stq sb|15,x1 aa 000214 000566 272004 tsbbp L6+2 " PrintFraction aa 000215 000014 000002 zero 12,2 aa 000216 600040 236100 46 ldq sp|32 " OUTPUT aa 000217 700016 756111 stq sb|14,x1 aa 000220 000012 236007 ldq 10,dl " '*n' aa 000221 700017 756111 stq sb|15,x1 4a 000222 400012 272120 tsbbp lp|L27,* " Writech aa 000223 000014 000002 zero 12,2 L25: aa 000224 000011 236007 48 ldq 9,dl " ProcessGet_Meter aa 000225 700016 756111 stq sb|14,x1 aa 000226 000224 352004 eapbp L28 " "ProcessGet" aa 000227 700017 542111 sprpbp sb|15,x1 aa 000230 000734 272004 tsbbp L3+2 " PrintAverage aa 000231 000014 000002 zero 12,2 aa 000232 000003 236007 49 ldq 3,dl " SyntaxAnalysis_Meter aa 000233 700016 756111 stq sb|14,x1 aa 000234 000211 352004 eapbp L29 " "Syntax analyzer" aa 000235 700017 542111 sprpbp sb|15,x1 aa 000236 700004 236111 ldq sb|4,x1 " Lines aa 000237 700020 756111 stq sb|16,x1 aa 000240 000203 352004 eapbp L30 " "line" aa 000241 700021 542111 sprpbp sb|17,x1 aa 000242 000342 272004 tsbbp L2+2 " PrintPerUnit aa 000243 000014 000004 zero 12,4 aa 000244 000030 236007 50 ldq 24,dl " PrintXref_Meter aa 000245 700016 756111 stq sb|14,x1 aa 000246 000173 352004 eapbp L31 " "Pname" aa 000247 700017 542111 sprpbp sb|15,x1 aa 000250 000714 272004 tsbbp L3+2 " PrintAverage aa 000251 000014 000002 zero 12,2 aa 000252 000044 236007 51 ldq 36,dl " SemanticTranslation_Meter aa 000253 700016 756111 stq sb|14,x1 aa 000254 000157 352004 eapbp L32 " "Semantic translator" aa 000255 700017 542111 sprpbp sb|15,x1 aa 000256 700005 236111 ldq sb|5,x1 " Words aa 000257 700020 756111 stq sb|16,x1 aa 000260 000151 352004 eapbp L33 " "word" aa 000261 700021 542111 sprpbp sb|17,x1 aa 000262 000322 272004 tsbbp L2+2 " PrintPerUnit aa 000263 000014 000004 zero 12,4 aa 000264 000052 236007 52 ldq 42,dl " CompileExpression_Meter aa 000265 700016 756111 stq sb|14,x1 aa 000266 000136 352004 eapbp L34 " "Compile expression" aa 000267 700017 542111 sprpbp sb|15,x1 aa 000270 000674 272004 tsbbp L3+2 " PrintAverage aa 000271 000014 000002 zero 12,2 aa 000272 000036 236007 53 ldq 30,dl " CompileSwitchWithoutOptimizing_Meter aa 000273 700016 756111 stq sb|14,x1 aa 000274 000117 352004 eapbp L35 " "Compile switchon, no optimization" aa 000275 700017 542111 sprpbp sb|15,x1 aa 000276 000666 272004 tsbbp L3+2 " PrintAverage aa 000277 000014 000002 zero 12,2 aa 000300 000041 236007 54 ldq 33,dl " CompileSwitchWithOptimizing_Meter aa 000301 700016 756111 stq sb|14,x1 aa 000302 000077 352004 eapbp L36 " "Compile switchon, with optimization" aa 000303 700017 542111 sprpbp sb|15,x1 aa 000304 000660 272004 tsbbp L3+2 " PrintAverage aa 000305 000014 000002 zero 12,2 aa 000306 000047 236007 55 ldq 39,dl " CodeGeneration_Meter aa 000307 700016 756111 stq sb|14,x1 aa 000310 000063 352004 eapbp L37 " "Code generation phase" aa 000311 700017 542111 sprpbp sb|15,x1 aa 000312 000652 272004 tsbbp L3+2 " PrintAverage aa 000313 000014 000002 zero 12,2 aa 000314 000033 236007 56 ldq 27,dl " MakeObject_Meter aa 000315 700016 756111 stq sb|14,x1 aa 000316 000046 352004 eapbp L38 " "Creating object segment" aa 000317 700017 542111 sprpbp sb|15,x1 aa 000320 000644 272004 tsbbp L3+2 " PrintAverage aa 000321 000014 000002 zero 12,2 aa 000322 700016 450111 57 stz sb|14,x1 aa 000323 000030 352004 eapbp L39 " "Miscellaneous in command interface" aa 000324 700017 542111 sprpbp sb|15,x1 aa 000325 000637 272004 tsbbp L3+2 " PrintAverage aa 000326 000014 000002 zero 12,2 aa 000327 000055 236007 58 ldq 45,dl " MeteringOverhead_Meter aa 000330 700016 756111 stq sb|14,x1 aa 000331 000016 352004 eapbp L40 " "Metering calls" aa 000332 700017 542111 sprpbp sb|15,x1 aa 000333 000631 272004 tsbbp L3+2 " PrintAverage aa 000334 000014 000002 zero 12,2 aa 000335 600040 236100 59 ldq sp|32 " OUTPUT aa 000336 700016 756111 stq sb|14,x1 aa 000337 000012 236007 ldq 10,dl " '*n' aa 000340 700017 756111 stq sb|15,x1 4a 000341 400012 272120 tsbbp lp|L27,* " Writech aa 000342 000014 000002 zero 12,2 L9: aa 000343 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000344 200000 121100 sblx1 bp|0 aa 000345 700001 764111 lprplp sb|1,x1 aa 000346 200001 710100 tra bp|1 " end of return sequence " Literal pool L40: aa 000347 000016 115145 zero 14,39525 " "Metering calls" aa 000350 164145 162151 zero 59493,58473 aa 000351 156147 040143 zero 56423,16483 aa 000352 141154 154163 zero 49772,55411 L39: aa 000353 000042 115151 zero 34,39529 " "Miscellaneous in command interface" aa 000354 163143 145154 zero 58979,51820 aa 000355 154141 156145 zero 55393,56421 aa 000356 157165 163040 zero 56949,58912 aa 000357 151156 040143 zero 53870,16483 aa 000360 157155 155141 zero 56941,55905 aa 000361 156144 040151 zero 56420,16489 aa 000362 156164 145162 zero 56436,51826 aa 000363 146141 143145 zero 52321,50789 L38: aa 000364 000027 103162 zero 23,34418 " "Creating object segment" aa 000365 145141 164151 zero 51809,59497 aa 000366 156147 040157 zero 56423,16495 aa 000367 142152 145143 zero 50282,51811 aa 000370 164040 163145 zero 59424,58981 aa 000371 147155 145156 zero 52845,51822 aa 000372 164000 000000 zero 59392 L37: aa 000373 000025 103157 zero 21,34415 " "Code generation phase" aa 000374 144145 040147 zero 51301,16487 aa 000375 145156 145162 zero 51822,51826 aa 000376 141164 151157 zero 49780,53871 aa 000377 156040 160150 zero 56352,57448 aa 000400 141163 145000 zero 49779,51712 L36: aa 000401 000043 103157 zero 35,34415 " "Compile switchon, with optimization" aa 000402 155160 151154 zero 55920,53868 aa 000403 145040 163167 zero 51744,58999 aa 000404 151164 143150 zero 53876,50792 aa 000405 157156 054040 zero 56942,22560 aa 000406 167151 164150 zero 61033,59496 aa 000407 040157 160164 zero 16495,57460 aa 000410 151155 151172 zero 53869,53882 aa 000411 141164 151157 zero 49780,53871 aa 000412 156000 000000 zero 56320 L35: aa 000413 000041 103157 zero 33,34415 " "Compile switchon, no optimization" aa 000414 155160 151154 zero 55920,53868 aa 000415 145040 163167 zero 51744,58999 aa 000416 151164 143150 zero 53876,50792 aa 000417 157156 054040 zero 56942,22560 aa 000420 156157 040157 zero 56431,16495 aa 000421 160164 151155 zero 57460,53869 aa 000422 151172 141164 zero 53882,49780 aa 000423 151157 156000 zero 53871,56320 L34: aa 000424 000022 103157 zero 18,34415 " "Compile expression" aa 000425 155160 151154 zero 55920,53868 aa 000426 145040 145170 zero 51744,51832 aa 000427 160162 145163 zero 57458,51827 aa 000430 163151 157156 zero 58985,56942 L33: aa 000431 000004 167157 zero 4,61039 " "word" aa 000432 162144 000000 zero 58468 L32: aa 000433 000023 123145 zero 19,42597 " "Semantic translator" aa 000434 155141 156164 zero 55905,56436 aa 000435 151143 040164 zero 53859,16500 aa 000436 162141 156163 zero 58465,56435 aa 000437 154141 164157 zero 55393,59503 aa 000440 162000 000000 zero 58368 L31: aa 000441 000005 120156 zero 5,41070 " "Pname" aa 000442 141155 145000 zero 49773,51712 L30: aa 000443 000004 154151 zero 4,55401 " "line" aa 000444 156145 000000 zero 56421 L29: aa 000445 000017 123171 zero 15,42617 " "Syntax analyzer" aa 000446 156164 141170 zero 56436,49784 aa 000447 040141 156141 zero 16481,56417 aa 000450 154171 172145 zero 55417,62565 aa 000451 162000 000000 zero 58368 L28: aa 000452 000012 120162 zero 10,41074 " "ProcessGet" aa 000453 157143 145163 zero 56931,51827 aa 000454 163107 145164 zero 58951,51828 L26: aa 000455 000034 101166 zero 28,33398 " "Average dictionary depth is " aa 000456 145162 141147 zero 51826,49767 aa 000457 145040 144151 zero 51744,51305 aa 000460 143164 151157 zero 50804,53871 aa 000461 156141 162171 zero 56417,58489 aa 000462 040144 145160 zero 16484,51824 aa 000463 164150 040151 zero 59496,16489 aa 000464 163040 000000 zero 58912 L24: aa 000465 000043 104151 zero 35,34921 " "Dictionary lookup (already present)" aa 000466 143164 151157 zero 50804,53871 aa 000467 156141 162171 zero 56417,58489 aa 000470 040154 157157 zero 16492,56943 aa 000471 153165 160040 zero 54901,57376 aa 000472 050141 154162 zero 20577,55410 aa 000473 145141 144171 zero 51809,51321 aa 000474 040160 162145 zero 16496,58469 aa 000475 163145 156164 zero 58981,56436 aa 000476 051000 000000 zero 20992 L23: aa 000477 000040 104151 zero 32,34921 " "Dictionary lookup (symbol added)" aa 000500 143164 151157 zero 50804,53871 aa 000501 156141 162171 zero 56417,58489 aa 000502 040154 157157 zero 16492,56943 aa 000503 153165 160040 zero 54901,57376 aa 000504 050163 171155 zero 20595,62061 aa 000505 142157 154040 zero 50287,55328 aa 000506 141144 144145 zero 49764,51301 aa 000507 144051 000000 zero 51241 L22: aa 000510 000010 116145 zero 8,40037 " "Nextsymb" aa 000511 170164 163171 zero 61556,59001 aa 000512 155142 000000 zero 55906 L21: aa 000513 000021 122143 zero 17,42083 " "Rch, with listing" aa 000514 150054 040167 zero 53292,16503 aa 000515 151164 150040 zero 53876,53280 aa 000516 154151 163164 zero 55401,58996 aa 000517 151156 147000 zero 53870,52736 L20: aa 000520 000017 122143 zero 15,42083 " "Rch, no listing" aa 000521 150054 040156 zero 53292,16494 aa 000522 157040 154151 zero 56864,55401 aa 000523 163164 151156 zero 58996,53870 aa 000524 147000 000000 zero 52736 L19: aa 000525 000003 056012 zero 3,23562 " ".*n*n" aa 000526 012000 000000 zero 5120 L18: aa 000527 000020 040167 zero 16,16503 " " words per line)" aa 000530 157162 144163 zero 56946,51315 aa 000531 040160 145162 zero 16496,51826 aa 000532 040154 151156 zero 16492,53870 aa 000533 145051 000000 zero 51753 L17: aa 000534 000002 040050 zero 2,16424 " " (" L14: aa 000535 000110 117166 zero 72,40566 " "Overall speed was ^d source lines per second, ^d object words per second" aa 000536 145162 141154 zero 51826,49772 aa 000537 154040 163160 zero 55328,58992 aa 000540 145145 144040 zero 51813,51232 aa 000541 167141 163040 zero 61025,58912 aa 000542 136144 040163 zero 48228,16499 aa 000543 157165 162143 zero 56949,58467 aa 000544 145040 154151 zero 51744,55401 aa 000545 156145 163040 zero 56421,58912 aa 000546 160145 162040 zero 57445,58400 aa 000547 163145 143157 zero 58981,50799 aa 000550 156144 054040 zero 56420,22560 aa 000551 136144 040157 zero 48228,16495 aa 000552 142152 145143 zero 50282,51811 aa 000553 164040 167157 zero 59424,61039 aa 000554 162144 163040 zero 58468,58912 aa 000555 160145 162040 zero 57445,58400 aa 000556 163145 143157 zero 58981,50799 aa 000557 156144 000000 zero 56420 L12: aa 000560 000002 056012 zero 2,23562 " ".*n" L10: aa 000561 000057 012011 zero 47,5129 " "*n*tBCPL COMPILER METERING RESULTS*n*nTotal time is" aa 000562 102103 120114 zero 33859,41036 aa 000563 040103 117115 zero 16451,40525 aa 000564 120111 114105 zero 41033,38981 aa 000565 122040 115105 zero 42016,39493 aa 000566 124105 122111 zero 43077,42057 aa 000567 116107 040122 zero 40007,16466 aa 000570 105123 125114 zero 35411,43596 aa 000571 124123 012012 zero 43091,5130 aa 000572 124157 164141 zero 43119,59489 aa 000573 154040 164151 zero 55328,59497 aa 000574 155145 040151 zero 55909,16489 aa 000575 163000 000000 zero 58880 " Begin text of PrintPerUnit aa 000576 000014 120162 zero 12,41074 " PrintPerUnit aa 000577 151156 164120 zero 53870,59472 aa 000600 145162 125156 zero 51826,43630 aa 000601 151164 000000 zero 53876 L2: aa 000602 000000 213000 61 epaq 0 " set lp to linkage section aa 000603 700026 764161 lprplp sb|22,*au aa 000604 200000 021100 adlx1 bp|0 " BCPL save aa 000605 700000 542111 sprpbp sb|0,x1 aa 000606 700001 544111 sprplp sb|1,x1 aa 000607 700424 620111 eax0 sb|276,x1 aa 000610 777760 360003 anx0 -16,du aa 000611 700025 740100 stx0 sb|21 " end of save sequence aa 000612 700002 722111 62 lxl2 sb|2,x1 " Meter aa 000613 600307 762100 lprpbp sp|199 " MeterPointer aa 000614 200000 234112 szn bp|0,x2 aa 000615 000050 600004 tze L43 aa 000616 600040 236100 63 ldq sp|32 " OUTPUT aa 000617 700012 756111 stq sb|10,x1 aa 000620 700003 236111 ldq sb|3,x1 " Comment aa 000621 700013 756111 stq sb|11,x1 4a 000622 400016 272120 tsbbp lp|L11,* " WriteS aa 000623 000010 000002 zero 8,2 aa 000624 700002 723111 64 lxl3 sb|2,x1 " Meter aa 000625 600307 761100 lprpab sp|199 " MeterPointer aa 000626 100000 236113 ldq ab|0,x3 aa 000627 700012 756111 stq sb|10,x1 aa 000630 000051 272004 tsbbp L4+2 " PrintTime aa 000631 000010 000001 zero 8,1 aa 000632 600040 236100 65 ldq sp|32 " OUTPUT aa 000633 700012 756111 stq sb|10,x1 aa 000634 000054 236007 ldq 44,dl " ',' aa 000635 700013 756111 stq sb|11,x1 4a 000636 400012 272120 tsbbp lp|L27,* " Writech aa 000637 000010 000002 zero 8,2 aa 000640 700004 234111 66 szn sb|4,x1 " Unit aa 000641 000020 600004 tze L44 aa 000642 700002 724111 67 lxl4 sb|2,x1 " Meter aa 000643 600307 763100 lprpbb sp|199 " MeterPointer aa 000644 300000 236114 ldq bb|0,x4 aa 000645 700004 506111 div sb|4,x1 " Unit aa 000646 700012 756111 stq sb|10,x1 aa 000647 000032 272004 tsbbp L4+2 " PrintTime aa 000650 000010 000001 zero 8,1 aa 000651 600040 236100 68 ldq sp|32 " OUTPUT aa 000652 700012 756111 stq sb|10,x1 aa 000653 000016 371404 eaplb L45 " " per ^s," aa 000654 700013 545111 sprplb sb|11,x1 aa 000655 700005 236111 ldq sb|5,x1 " UnitComment aa 000656 700014 756111 stq sb|12,x1 4a 000657 400014 272120 tsbbp lp|L15,* " Format aa 000660 000010 000003 zero 8,3 L44: aa 000661 700002 236111 70 ldq sb|2,x1 " Meter aa 000662 700012 756111 stq sb|10,x1 aa 000663 000216 272004 tsbbp L5+2 " PrintPercent aa 000664 000010 000001 zero 8,1 L43: aa 000665 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000666 200000 121100 sblx1 bp|0 aa 000667 700001 764111 lprplp sb|1,x1 aa 000670 200001 710100 tra bp|1 " end of return sequence " Literal pool L45: aa 000671 000010 040160 zero 8,16496 " " per ^s," aa 000672 145162 040136 zero 51826,16478 aa 000673 163054 000000 zero 58924 " Begin text of PrintTime aa 000674 000011 120162 zero 9,41074 " PrintTime aa 000675 151156 164124 zero 53870,59476 aa 000676 151155 145000 zero 53869,51712 L4: aa 000677 000000 213000 85 epaq 0 " set lp to linkage section aa 000700 700026 764161 lprplp sb|22,*au aa 000701 200000 021100 adlx1 bp|0 " BCPL save aa 000702 700000 542111 sprpbp sb|0,x1 aa 000703 700001 544111 sprplp sb|1,x1 aa 000704 700424 620111 eax0 sb|276,x1 aa 000705 777760 360003 anx0 -16,du aa 000706 700025 740100 stx0 sb|21 " end of save sequence aa 000707 000001 236007 86 ldq 1,dl " 1 aa 000710 700003 756111 stq sb|3,x1 " Mult aa 000711 000061 371404 eaplb L49 " "micro" aa 000712 700004 545111 sprplb sb|4,x1 " Unit aa 000713 700003 236111 87 ldq sb|3,x1 " Mult aa 000714 001750 402007 mpy 1000,dl " 1000 aa 000715 700002 116111 cmpq sb|2,x1 " t aa 000716 000005 605404 tpnz L50 aa 000717 000051 371404 eaplb L51 " "milli" aa 000720 700004 545111 sprplb sb|4,x1 " Unit aa 000721 001750 236007 ldq 1000,dl " 1000 aa 000722 700003 756111 stq sb|3,x1 " Mult L50: aa 000723 700003 236111 88 ldq sb|3,x1 " Mult aa 000724 001750 402007 mpy 1000,dl " 1000 aa 000725 700002 116111 cmpq sb|2,x1 " t aa 000726 000006 605404 tpnz L52 aa 000727 000040 371404 eaplb L53 " "" aa 000730 700004 545111 sprplb sb|4,x1 " Unit aa 000731 700002 236111 ldq sb|2,x1 " t aa 000732 001750 506007 div 1000,dl " 1000 aa 000733 700002 756111 stq sb|2,x1 " t L52: aa 000734 600040 236100 89 ldq sp|32 " OUTPUT aa 000735 700010 756111 stq sb|8,x1 aa 000736 000040 236007 ldq 32,dl " '*s' aa 000737 700011 756111 stq sb|9,x1 4a 000740 400012 272120 tsbbp lp|L27,* " Writech aa 000741 000006 000002 zero 6,2 aa 000742 700002 236111 90 ldq sb|2,x1 " t aa 000743 700010 756111 stq sb|8,x1 aa 000744 700003 236111 ldq sb|3,x1 " Mult aa 000745 700011 756111 stq sb|9,x1 aa 000746 000034 272004 tsbbp L6+2 " PrintFraction aa 000747 000006 000002 zero 6,2 aa 000750 600040 236100 91 ldq sp|32 " OUTPUT aa 000751 700010 756111 stq sb|8,x1 aa 000752 000012 371404 eaplb L54 " " ^sseconds" aa 000753 700011 545111 sprplb sb|9,x1 aa 000754 700004 236111 ldq sb|4,x1 " Unit aa 000755 700012 756111 stq sb|10,x1 4a 000756 400014 272120 tsbbp lp|L15,* " Format aa 000757 000006 000003 zero 6,3 L48: aa 000760 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000761 200000 121100 sblx1 bp|0 aa 000762 700001 764111 lprplp sb|1,x1 aa 000763 200001 710100 tra bp|1 " end of return sequence " Literal pool L54: aa 000764 000012 040136 zero 10,16478 " " ^sseconds" aa 000765 163163 145143 zero 58995,51811 aa 000766 157156 144163 zero 56942,51315 L53: aa 000767 000000 000000 zero 0 " "" L51: aa 000770 000005 155151 zero 5,55913 " "milli" aa 000771 154154 151000 zero 55404,53760 L49: aa 000772 000005 155151 zero 5,55913 " "micro" aa 000773 143162 157000 zero 50802,56832 " Begin text of PrintFraction aa 000774 000015 120162 zero 13,41074 " PrintFraction aa 000775 151156 164106 zero 53870,59462 aa 000776 162141 143164 zero 58465,50804 aa 000777 151157 156000 zero 53871,56320 L6: aa 001000 000000 213000 100 epaq 0 " set lp to linkage section aa 001001 700026 764161 lprplp sb|22,*au aa 001002 200000 021100 adlx1 bp|0 " BCPL save aa 001003 700000 542111 sprpbp sb|0,x1 aa 001004 700001 544111 sprplp sb|1,x1 aa 001005 700423 620111 eax0 sb|275,x1 aa 001006 777760 360003 anx0 -16,du aa 001007 700025 740100 stx0 sb|21 " end of save sequence aa 001010 700002 236111 101 ldq sb|2,x1 " R aa 001011 000311 402007 mpy 201,dl " 201 aa 001012 700003 506111 div sb|3,x1 " Mult aa 001013 000002 506007 div 2,dl " 2 aa 001014 700004 756111 stq sb|4,x1 " F aa 001015 600040 236100 102 ldq sp|32 " OUTPUT aa 001016 700012 756111 stq sb|10,x1 aa 001017 700004 236111 ldq sb|4,x1 " F aa 001020 000144 506007 div 100,dl " 100 aa 001021 700013 756111 stq sb|11,x1 4a 001022 400010 272120 tsbbp lp|L58,* " WriteN aa 001023 000010 000002 zero 8,2 aa 001024 700004 236111 103 ldq sb|4,x1 " F aa 001025 001750 116007 cmpq 1000,dl " 1000 aa 001026 000041 605004 tpl L59 aa 001027 700003 235111 lda sb|3,x1 " Mult aa 001030 000001 115007 cmpa 1,dl " 1 aa 001031 000036 604404 tmoz L59 aa 001032 600040 236100 104 ldq sp|32 " OUTPUT aa 001033 700012 756111 stq sb|10,x1 aa 001034 000056 236007 ldq 46,dl " '.' aa 001035 700013 756111 stq sb|11,x1 4a 001036 400012 272120 tsbbp lp|L27,* " Writech aa 001037 000010 000002 zero 8,2 aa 001040 600040 236100 105 ldq sp|32 " OUTPUT aa 001041 700012 756111 stq sb|10,x1 aa 001042 700004 236111 ldq sb|4,x1 " F aa 001043 000012 506007 div 10,dl " 10 aa 001044 000012 506007 div 10,dl " 10 aa 001045 000060 075007 ada 48,dl " '0' aa 001046 700013 755111 sta sb|11,x1 4a 001047 400012 272120 tsbbp lp|L27,* " Writech aa 001050 000010 000002 zero 8,2 aa 001051 700004 236111 106 ldq sb|4,x1 " F aa 001052 000144 116007 cmpq 100,dl " 100 aa 001053 000014 605004 tpl L60 aa 001054 700003 235111 lda sb|3,x1 " Mult aa 001055 000012 115007 cmpa 10,dl " 10 aa 001056 000011 604404 tmoz L60 aa 001057 600040 236100 ldq sp|32 " OUTPUT aa 001060 700012 756111 stq sb|10,x1 aa 001061 700004 236111 ldq sb|4,x1 " F aa 001062 000012 506007 div 10,dl " 10 aa 001063 000060 075007 ada 48,dl " '0' aa 001064 700013 755111 sta sb|11,x1 4a 001065 400012 272120 tsbbp lp|L27,* " Writech aa 001066 000010 000002 zero 8,2 L60: L59: L57: aa 001067 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001070 200000 121100 sblx1 bp|0 aa 001071 700001 764111 lprplp sb|1,x1 aa 001072 200001 710100 tra bp|1 " end of return sequence " Begin text of PrintPercent aa 001073 000014 120162 zero 12,41074 " PrintPercent aa 001074 151156 164120 zero 53870,59472 aa 001075 145162 143145 zero 51826,50789 aa 001076 156164 000000 zero 56436 L5: aa 001077 000000 213000 93 epaq 0 " set lp to linkage section aa 001100 700026 764161 lprplp sb|22,*au aa 001101 200000 021100 adlx1 bp|0 " BCPL save aa 001102 700000 542111 sprpbp sb|0,x1 aa 001103 700001 544111 sprplp sb|1,x1 aa 001104 700423 620111 eax0 sb|275,x1 aa 001105 777760 360003 anx0 -16,du aa 001106 700025 740100 stx0 sb|21 " end of save sequence aa 001107 600040 235100 94 lda sp|32 " OUTPUT aa 001110 700010 755111 sta sb|8,x1 aa 001111 000040 235007 lda 32,dl " '*s' aa 001112 700011 755111 sta sb|9,x1 4a 001113 400012 272120 tsbbp lp|L27,* " Writech aa 001114 000006 000002 zero 6,2 aa 001115 700002 235111 95 lda sb|2,x1 " Meter aa 001116 000002 075007 ada 2,dl " 2 aa 001117 700005 755111 sta sb|5,x1 " temporary aa 001120 700005 725111 lxl5 sb|5,x1 aa 001121 600307 765100 lprplb sp|199 " MeterPointer aa 001122 500000 236115 ldq lb|0,x5 aa 001123 001750 506007 div 1000,dl " 1000 aa 001124 700003 756111 stq sb|3,x1 " T aa 001125 700003 234111 96 szn sb|3,x1 " T aa 001126 000003 601004 tnz L64 aa 001127 000001 236007 ldq 1,dl " 1 aa 001130 700003 756111 stq sb|3,x1 " T L64: aa 001131 700002 726111 97 lxl6 sb|2,x1 " Meter aa 001132 600307 760100 lprpap sp|199 " MeterPointer aa 001133 000000 236116 ldq ap|0,x6 aa 001134 700003 506111 div sb|3,x1 " T aa 001135 700010 756111 stq sb|8,x1 aa 001136 000012 236007 ldq 10,dl " 10 aa 001137 700011 756111 stq sb|9,x1 aa 001140 777642 272004 tsbbp L6+2 " PrintFraction aa 001141 000006 000002 zero 6,2 aa 001142 600040 236100 98 ldq sp|32 " OUTPUT aa 001143 700010 756111 stq sb|8,x1 aa 001144 000010 352004 eapbp L65 " "%.*n" aa 001145 700011 542111 sprpbp sb|9,x1 4a 001146 400016 272120 tsbbp lp|L11,* " WriteS aa 001147 000006 000002 zero 6,2 L63: aa 001150 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001151 200000 121100 sblx1 bp|0 aa 001152 700001 764111 lprplp sb|1,x1 aa 001153 200001 710100 tra bp|1 " end of return sequence " Literal pool L65: aa 001154 000003 045056 zero 3,18990 " "%.*n" aa 001155 012000 000000 zero 5120 " Begin text of PrintAverage aa 001156 000014 120162 zero 12,41074 " PrintAverage aa 001157 151156 164101 zero 53870,59457 aa 001160 166145 162141 zero 60517,58465 aa 001161 147145 000000 zero 52837 L3: aa 001162 000000 213000 72 epaq 0 " set lp to linkage section aa 001163 700026 764161 lprplp sb|22,*au aa 001164 200000 021100 adlx1 bp|0 " BCPL save aa 001165 700000 542111 sprpbp sb|0,x1 aa 001166 700001 544111 sprplp sb|1,x1 aa 001167 700424 620111 eax0 sb|276,x1 aa 001170 777760 360003 anx0 -16,du aa 001171 700025 740100 stx0 sb|21 " end of save sequence aa 001172 700002 722111 73 lxl2 sb|2,x1 " Meter aa 001173 600307 762100 lprpbp sp|199 " MeterPointer aa 001174 200000 234112 szn bp|0,x2 aa 001175 000071 600004 tze L68 aa 001176 600040 236100 74 ldq sp|32 " OUTPUT aa 001177 700012 756111 stq sb|10,x1 aa 001200 700003 236111 ldq sb|3,x1 " Comment aa 001201 700013 756111 stq sb|11,x1 4a 001202 400016 272120 tsbbp lp|L11,* " WriteS aa 001203 000010 000002 zero 8,2 aa 001204 700002 236111 75 ldq sb|2,x1 " Meter aa 001205 000001 076007 adq 1,dl " 1 aa 001206 600307 761100 lprpab sp|199 " MeterPointer aa 001207 100000 235106 lda ab|0,ql aa 001210 000001 115007 cmpa 1,dl " 1 aa 001211 000016 601004 tnz L69 aa 001212 700002 723111 76 lxl3 sb|2,x1 " Meter aa 001213 600307 763100 lprpbb sp|199 " MeterPointer aa 001214 300000 236113 ldq bb|0,x3 aa 001215 700012 756111 stq sb|10,x1 aa 001216 777463 272004 tsbbp L4+2 " PrintTime aa 001217 000010 000001 zero 8,1 aa 001220 600040 236100 77 ldq sp|32 " OUTPUT aa 001221 700012 756111 stq sb|10,x1 aa 001222 000054 236007 ldq 44,dl " ',' aa 001223 700013 756111 stq sb|11,x1 4a 001224 400012 272120 tsbbp lp|L27,* " Writech aa 001225 000010 000002 zero 8,2 aa 001226 000034 710004 tra L70 L69: aa 001227 600040 236100 79 ldq sp|32 " OUTPUT aa 001230 700012 756111 stq sb|10,x1 aa 001231 000044 371404 eaplb L71 " " done ^d times," aa 001232 700013 545111 sprplb sb|11,x1 aa 001233 700002 236111 ldq sb|2,x1 " Meter aa 001234 000001 076007 adq 1,dl " 1 aa 001235 600307 765100 lprplb sp|199 " MeterPointer aa 001236 500000 235106 lda lb|0,ql aa 001237 700014 755111 sta sb|12,x1 4a 001240 400014 272120 tsbbp lp|L15,* " Format aa 001241 000010 000003 zero 8,3 aa 001242 700002 236111 80 ldq sb|2,x1 " Meter aa 001243 000001 076007 adq 1,dl " 1 aa 001244 700007 756111 stq sb|7,x1 " temporary aa 001245 700002 724111 lxl4 sb|2,x1 " Meter aa 001246 600307 760100 lprpap sp|199 " MeterPointer aa 001247 000000 236114 ldq ap|0,x4 aa 001250 700007 725111 lxl5 sb|7,x1 aa 001251 600307 762100 lprpbp sp|199 " MeterPointer aa 001252 200000 506115 div bp|0,x5 aa 001253 700012 756111 stq sb|10,x1 aa 001254 777425 272004 tsbbp L4+2 " PrintTime aa 001255 000010 000001 zero 8,1 aa 001256 000014 351404 81 eapab L72 " " average," aa 001257 700012 541111 sprpab sb|10,x1 4a 001260 400016 272120 tsbbp lp|L11,* " WriteS aa 001261 000010 000001 zero 8,1 L70: aa 001262 700002 236111 83 ldq sb|2,x1 " Meter aa 001263 700012 756111 stq sb|10,x1 aa 001264 777615 272004 tsbbp L5+2 " PrintPercent aa 001265 000010 000001 zero 8,1 L68: aa 001266 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001267 200000 121100 sblx1 bp|0 aa 001270 700001 764111 lprplp sb|1,x1 aa 001271 200001 710100 tra bp|1 " end of return sequence " Literal pool L72: aa 001272 000011 040141 zero 9,16481 " " average," aa 001273 166145 162141 zero 60517,58465 aa 001274 147145 054000 zero 52837,22528 L71: aa 001275 000017 040144 zero 15,16484 " " done ^d times," aa 001276 157156 145040 zero 56942,51744 aa 001277 136144 040164 zero 48228,16500 aa 001300 151155 145163 zero 53869,51827 aa 001301 054000 000000 zero 22528 " Definition section part one - external entry points 5a 000000 000017 000000 " pointer to first definition aa 000001 000000 600000 " flags: new format, ignore header aa 000002 000000 000000 " list terminator aa 000003 020142 143160 " "bcpl_meter_print" aa 000004 154137 155145 aa 000005 164145 162137 aa 000006 160162 151156 aa 000007 164000 000000 aa 000010 013120 162151 " "PrintMeters" aa 000011 156164 115145 aa 000012 164145 162163 aa 000013 014163 171155 " "symbol_table" aa 000014 142157 154137 aa 000015 164141 142154 aa 000016 145000 000000 " Segname definition for bcpl_meter_print 55 000017 000022 000002 " forward, backward threads 5a 000020 000002 400003 " value defined, class flags 55 000021 000003 000022 " name pointer, first entry def " Definition for PrintMeters 55 000022 000025 000017 " forward, backward threads 0a 000023 000004 500000 " value defined, class flags 55 000024 000010 000017 " name pointer, segname def pointer " Definition for symbol_table 55 000025 000002 000022 " forward, backward threads 6a 000026 000000 400002 " value defined, class flags 55 000027 000013 000017 " name pointer, segname def pointer " Definition section part two - symbolic info for external references aa 000030 017142 143160 " "bcpl_stream_io_" aa 000031 154137 163164 aa 000032 162145 141155 aa 000033 137151 157137 aa 000034 006127 162151 " "WriteN" aa 000035 164145 116000 5a 000036 000037 000000 aa 000037 000004 000000 55 000040 000030 000034 aa 000041 022142 143160 " "bcpl_machine_code_" aa 000042 154137 155141 aa 000043 143150 151156 aa 000044 145137 143157 aa 000045 144145 137000 aa 000046 007127 162151 " "Writech" aa 000047 164145 143150 5a 000050 000051 000000 aa 000051 000004 000000 55 000052 000041 000046 aa 000053 006106 157162 " "Format" aa 000054 155141 164000 5a 000055 000056 000000 aa 000056 000004 000000 55 000057 000030 000053 aa 000060 006127 162151 " "WriteS" aa 000061 164145 123000 5a 000062 000063 000000 aa 000063 000004 000000 55 000064 000030 000060 aa 000065 000000 000000 " padding " Linkage section - static variables and external links aa 000000 000000 000000 " linkage header 0a 000001 001302 000000 " address of defs aa 000002 000000 000000 aa 000003 000000 000000 aa 000004 000000 000000 aa 000005 000000 000000 2a 000006 000010 000020 " offset to links, total length aa 000007 000000 000020 " obsolete length " External link pairs L58: 3a 000010 777770 000046 " "bcpl_stream_io_$WriteN" 5a 000011 000036 000000 L27: 3a 000012 777766 000046 " "bcpl_machine_code_$Writech" 5a 000013 000050 000000 L15: 3a 000014 777764 000046 " "bcpl_stream_io_$Format" 5a 000015 000055 000000 L11: 3a 000016 777762 000046 " "bcpl_stream_io_$WriteS" 5a 000017 000062 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 440043 635074 " 01/24/75 0659.7 mst Fri aa 000010 142143 160154 " "bcpl " aa 000011 040040 040040 aa 000012 000042 000035 " compiler version name - pointer, length aa 000013 000052 000024 " user id - pointer, length aa 000014 000057 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 000132 " section header pointer, block size aa 000020 000000 000132 " next block pointer, rel_text aa 000021 000000 000152 " rel_def, rel_link aa 000022 000156 000132 " rel_symbol, default truncate aa 000023 000024 000000 " optional truncate, unused aa 000024 000000 000001 " source files map: version number aa 000025 000000 000003 " number of files aa 000026 000070 000057 " bcpl_meter_print aa 000027 023333 611425 " last modified on aa 000030 000000 102333 " 01/24/75 0647.2 mst Fri aa 000031 432366 600000 aa 000032 000104 000051 " bcpl_compiler_head aa 000033 021607 540214 " last modified on aa 000034 000000 101621 " 05/06/74 1740.6 mst Mon aa 000035 351403 200000 aa 000036 000117 000051 " bcpl_metering_head aa 000037 021607 540220 " last modified on aa 000040 000000 101621 " 05/06/74 1740.8 mst Mon aa 000041 351474 000000 aa 000042 102103 120114 " "BCPL version 3.4, August 1973" aa 000043 040166 145162 aa 000044 163151 157156 aa 000045 040063 056064 aa 000046 054040 101165 aa 000047 147165 163164 aa 000050 040061 071067 aa 000051 063040 040040 aa 000052 115141 162164 " "Martinson.SysMaint.a" aa 000053 151156 163157 aa 000054 156056 123171 aa 000055 163115 141151 aa 000056 156164 056141 aa 000057 163157 165162 " "source xref alist optimize 6180" aa 000060 143145 040040 aa 000061 170162 145146 aa 000062 040040 141154 aa 000063 151163 164040 aa 000064 040157 160164 aa 000065 151155 151172 aa 000066 145040 040066 aa 000067 061070 060040 aa 000070 076062 056061 " ">2.1spec>online>mib083074>bcpl_meter_print.bcpl" aa 000071 163160 145143 aa 000072 076157 156154 aa 000073 151156 145076 aa 000074 155151 142060 aa 000075 070063 060067 aa 000076 064076 142143 aa 000077 160154 137155 aa 000100 145164 145162 aa 000101 137160 162151 aa 000102 156164 056142 aa 000103 143160 154040 aa 000104 076154 144144 " ">ldd>include>bcpl_compiler_head.incl.bcpl" aa 000105 076151 156143 aa 000106 154165 144145 aa 000107 076142 143160 aa 000110 154137 143157 aa 000111 155160 151154 aa 000112 145162 137150 aa 000113 145141 144056 aa 000114 151156 143154 aa 000115 056142 143160 aa 000116 154040 040040 aa 000117 076154 144144 " ">ldd>include>bcpl_metering_head.incl.bcpl" aa 000120 076151 156143 aa 000121 154165 144145 aa 000122 076142 143160 aa 000123 154137 155145 aa 000124 164145 162151 aa 000125 156147 137150 aa 000126 145141 144056 aa 000127 151156 143154 aa 000130 056142 143160 aa 000131 154040 040040 " Relocation information " text section relocation bits aa 000132 000000 000002 " version number of rel-bits structure aa 000133 000000 000753 " length in bits aa 000134 740665 170047 aa 000135 236026 640000 aa 000136 051700 672000 aa 000137 051702 532360 aa 000140 166474 235517 aa 000141 130323 601364 aa 000142 740415 170303 aa 000143 236015 647410 aa 000144 751700 572360 aa 000145 106474 033517 aa 000146 012723 603264 aa 000147 740675 170107 aa 000150 236013 647403 aa 000151 751701 060000 l " inkage relocation bits aa 000152 000000 000002 " version number of rel-bits structure aa 000153 000000 000110 " length in bits aa 000154 100002 204652 aa 000155 465246 524652 s " ymbol relocation bits aa 000156 000000 000002 " version number of rel-bits structure aa 000157 000000 000043 " length in bits aa 000160 740365 770452 " Object map aa 001571 000000 000001 " version number of object_map structure aa 001572 157142 152137 " "obj_map " aa 001573 155141 160040 aa 001574 000000 001302 " text offset, length aa 001575 001302 000065 " def offset, length aa 001576 001370 000020 " link offset, length aa 001577 001410 000161 " symbol offset, length aa 001600 000000 000000 " break map offset, length aa 001601 340000 000000 " flags: ^bound, relocatable, procedure, standard aa 001602 001571 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