Compilation listing of file >2.1spec>online>mib083074>bcpl_utility.bcpl. Compilation performed for Martinson.SysMaint.a at 01/24/75 0702.8 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 // Simple routines used throughout the compiler. 2 // Last modified on 08/06/74 at 17:34:26 by R F Mabee. 3 // Prepared for installation as Version 3.4 after 6180 bootstrap, R F Mabee. 4 // First installed as 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 "head" 1 // Declarations for common BCPL library routines for Multics. 2 // Last modified on 09/05/73 at 03:57:35 by R F Mabee. 3 // Largely rewritten for 6180 Multics; installed in June 1973 by R F Mabee. 4 // First version installed in September 1971 by R F Mabee. 5 6 external // Functions to perform mathematical operations not provided by the language. 7 $( MaxI = "bcpl_arithmetic_$MaxI" // i := MaxI (j, k) 8 MaxR = "bcpl_arithmetic_$MaxR" // x := MaxR (y, z) 9 MinI = "bcpl_arithmetic_$MinI" // i := MinI (j, k) 10 MinR = "bcpl_arithmetic_$MinR" // x := MinR (y, z) 11 AbsI = "bcpl_arithmetic_$AbsI" // i := AbsI (j) 12 AbsR = "bcpl_arithmetic_$AbsR" // x := AbsR (y) 13 SquareRoot = "bcpl_arithmetic_$SquareRoot" // x := SquareRoot (y) 14 IpowerI = "bcpl_arithmetic_$IpowerI" // i := IpowerI (j, k) 15 RpowerI = "bcpl_arithmetic_$RpowerI" // x := RpowerI (y, k) 16 RpowerR = "bcpl_arithmetic_$RpowerR" // x := RpowerR (y, z) 17 RandomI = "bcpl_arithmetic_$RandomI" // i := RandomI () 18 RandomR = "bcpl_arithmetic_$RandomR" // x := RandomR () 19 Logarithm = "bcpl_arithmetic_$Logarithm" // x := Logarithm (y) 20 Exponential = "bcpl_arithmetic_$Exponential" // x := Exponential (y) 21 $) 22 external // Routines to manipulate strings. Caller must supply space to hold string results. 23 $( Packstring = "bcpl_machine_code_$Packstring" // Packstring (Unpacked, Space) 24 Unpackstring = "bcpl_machine_code_$Unpackstring" // Unpackstring (String, Space) 25 CopyString = "bcpl_strings_$CopyString" // CopyString (String, Space) 26 EqualString = "bcpl_strings_$EqualString" // if EqualString (StringA, StringB) do ... 27 CompareStrings = "bcpl_strings_$CompareStrings" // CollatingOrder := CompareStrings (StringA, StringB) 28 Concatenate = "bcpl_strings_$Concatenate" // s := Concatenate (Space, Maxlen, StrA, StrB, ...) 29 Substr = "bcpl_strings_$Substr" // s := Substr (Space, String, Index, [Length]) 30 Subch = "bcpl_machine_code_$Subch" // Ch := Subch (String, Index) 31 Length = "bcpl_strings_$Length" // Len := Length (String) 32 SetLength = "bcpl_strings_$SetLength" // SetLength (String, Len) 33 LengthInWords = "bcpl_strings_$LengthInWords" // Len := LengthInWords (String) 34 Index = "bcpl_strings_$Index" // i := Index (StringA, StringB) 35 IndexCh = "bcpl_strings_$IndexCh" // i := IndexCh (String, Ch) 36 StringToChar = "bcpl_strings_$StringToChar" // Char := StringToChar (String) 37 CharToString = "bcpl_strings_$CharToString" // String := CharToString (Char, Space) 38 MakePl1String = "bcpl_strings_$MakePl1String" // Pl1String := MakePl1String (BcplString, Space, Len) 39 MakeBcplString = "bcpl_strings_$MakeBcplString" // s := MakeBcplString (Pl1String, Len, Space) 40 $) 41 external // Functions to convert values from one representation to another. 42 $( RtoI = "bcpl_machine_code_$RtoI" // i := RtoI (x) 43 ItoR = "bcpl_machine_code_$ItoR" // x := ItoR (i) 44 ConvertStoN = "bcpl_conversions_$ConvertStoN" // r := ConvertStoN (String, [Base]) 45 ConvertNtoS = "bcpl_conversions_$ConvertNtoS" // String := ConvertNtoS (i, Space, [Base, [Digits]]) 46 ConvertFtoS = "bcpl_conversions_$ConvertFtoS" // String := ConvertFtoS (x, Space, [Digits]) 47 RemoveEscapes = "bcpl_conversions_$RemoveEscapes" // s := RemoveEscapes (String, Space) 48 InsertEscapes = "bcpl_conversions_$InsertEscapes" // s := InsertEscapes (String, Space) 49 FormDate = "bcpl_conversions_$FormDate" // FormDate (Seconds, Space10, GMTsw) 50 $) 51 external // Miscellaneous routines to extend the power of the language. 52 $( Longjump = "bcpl_machine_code_$Longjump" // Longjump (Label, Psaved) 53 Level = "bcpl_machine_code_$Level" // Psaved := Level () 54 Bcall = "bcpl_machine_code_$Bcall" // r := Bcall (F, n, (list A1, A2, .. An)) 55 Pl1Call = "bcpl_machine_code_$Pl1Call" // Pl1Call (Routine, ArglistAddress) 56 Move = "bcpl_machine_code_$Move" // Move (ToPtr, FromPtr, WordCount) 57 MoveBits = "bcpl_machine_code_$MoveBits" // MoveBits (ToPtr, ToBit, FromPtr, FromBit, BitCount) 58 ScanChar = "bcpl_machine_code_$ScanChar" // Offset := ScanChar (Ptr, Offset, Length, Ch) 59 NumbArgs = "bcpl_machine_code_$NumbArgs" // Nargs := NumbArgs () 60 NewvecInit = "bcpl_filesys_lib_$NewvecInit" // NewvecInit (Space, Size) 61 NewvecCleanup = "bcpl_filesys_lib_$NewvecCleanup" // NewvecCleanup () 62 Newvec = "bcpl_filesys_lib_$Newvec" // v := Newvec (Size - 1) 63 Freevec = "bcpl_filesys_lib_$Freevec" // Freevec (v) 64 Allocate = "bcpl_filesys_lib_$Allocate" // v := Allocate (Size) 65 Findadr = "bcpl_filesys_lib_$Findadr" // Ptr := Findadr (Name) 66 $) 67 external // BCPL stream I/O routines. 68 $( Open = "bcpl_stream_io_$Open" // Stream := Open (Options, Name, [Length, Delimiter]) 69 Close = "bcpl_stream_io_$Close" // Close (StreamA, StreamB, ...) 70 Readch = "bcpl_machine_code_$Readch" // Readch (Stream, lv Ch) 71 Writech = "bcpl_machine_code_$Writech" // Writech (Stream, Ch) 72 WriteS = "bcpl_stream_io_$WriteS" // WriteS (Stream, String) 73 WriteN = "bcpl_stream_io_$WriteN" // WriteN (Stream, i) 74 Format = "bcpl_stream_io_$Format" // Format (Stream, ControlString, A1, A2, ...) 75 FormatString = "bcpl_stream_io_$FormatString" // FormatString (Space, MaxLen, ControlString, A1, A2, ...) 76 Writeout = "bcpl_stream_io_$Writeout" // Writeout (Stream) 77 Flushinput = "bcpl_stream_io_$Flushinput" // Flushinput (Stream) 78 ResetStream = "bcpl_stream_io_$ResetStream" // ResetStream (Stream, Offset) 79 StreamOffset = "bcpl_stream_io_$StreamOffset" // Offset := StreamOffset (Stream) 80 StreamLength = "bcpl_stream_io_$StreamLength" // Length := StreamLength (Stream) 81 StreamPointer = "bcpl_stream_io_$StreamPointer" // Ptr := StreamPointer (Stream) 82 $) 83 external // Interface to Multics file system. Note: Dirname and Entryname are PL/I strings. 84 $( ExpandPathname = "bcpl_filesys_lib_$ExpandPathname" // s := ExpandPathname (RelativePath, Space) 85 JoinPathname = "bcpl_filesys_lib_$JoinPathname" // s := JoinPathname (Dirname, Entryname, Space) 86 SplitPathname = "bcpl_filesys_lib_$SplitPathname" // SplitPathname (AbsolutePath, Dirname, Entryname) 87 FindSegment = "bcpl_filesys_lib_$FindSegment" // Ptr := FindSegment (Pathname, lv BitCount) 88 MakeSegment = "bcpl_filesys_lib_$MakeSegment" // Ptr := MakeSegment (Pathname) 89 GetPathname = "bcpl_filesys_lib_$GetPathname" // s := GetPathname (Pointer, Space) 90 MakeTempSeg = "bcpl_filesys_lib_$MakeTempSeg" // Ptr := MakeTempSeg (Number, Purpose) 91 DeleteTempSeg = "bcpl_filesys_lib_$DeleteTempSeg" // DeleteTempSeg (Number, Purpose) 92 Terminate = "bcpl_filesys_lib_$Terminate" // Terminate (Pointer) 93 SetBitCount = "bcpl_filesys_lib_$SetBitCount" // SetBitCount (Pointer, BitCount) 94 RawClockTime = "bcpl_machine_code_$RawClockTime" // RawTime := RawClockTime (Space2) 95 TimeToSeconds = "bcpl_machine_code_$TimeToSeconds" // TimeNow := TimeToSeconds (RawTime) 96 GetCpuUsage = "bcpl_filesys_lib_$GetCpuUsage" // MicrosecondsUsed := GetCpuUsage () 97 $) 98 external // Interface to Multics command level features. 99 $( Pl1NumbArgs = "bcpl_command_lib_$Pl1NumbArgs" // Nargs := Pl1NumbArgs () 100 Pl1ArgPtr = "bcpl_command_lib_$Pl1ArgPtr" // Ptr := Pl1ArgPtr (ArgIndex) 101 Pl1Descriptor = "bcpl_command_lib_$Pl1Descriptor" // D := Pl1Descriptor (ArgIndex) 102 Pl1ArgString = "bcpl_command_lib_$Pl1ArgString" // s := Pl1ArgString (ArgIndex, Space, [MaxLen]) 103 Pl1ReturnString = "bcpl_command_lib_$Pl1ReturnString" // Pl1ReturnString (String) 104 ConcatenateArgs = "bcpl_command_lib_$ConcatenateArgs" // s := ConcatenateArgs (FirstIndex, Space, MaxLen) 105 OptionParse = "bcpl_command_lib_$OptionParse" // OptionParse (GetNextCommandArg, Nopts, OptionsList, 106 GetNextCommandArg = "bcpl_command_lib_$GetNextCommandArg" // PointersList, FlagsList, PutName) 107 Complain = "bcpl_command_lib_$Complain" // Complain (ControlString, [A1, A2, A3]) 108 BCPLaddr = "bcpl_machine_code_$BCPLaddr" // Pointer := BCPLaddr (ITSaddress) 109 ITS = "bcpl_machine_code_$ITS" // ITSaddress := ITS (Pointer, Space, [BitOffset]) 110 SetOverflowMask = "bcpl_machine_code_$SetOverflowMask" // SetOverflowMask (true -> Inhibit, Enable) 111 SetHandler = "bcpl_command_lib_$SetHandler" // SetHandler (Name, Handler, Space16) 112 RevertHandler = "bcpl_command_lib_$RevertHandler" // RevertHandler (Name) 113 $) 114 115 global // Library currently reserves all cells below 60 and may expand up to 99. 116 $( OUTPUT : 32; INPUT : 33 117 MONITOR : 34; CONSOLE : 35 118 Ch : 36 119 ProgramID : 37 // Must be set to name of program before calling Complain or MakeTempSeg. 120 Errcode : 38; IOstatus : 39 // Used by Complain; set by some library routines. 121 ArgIndex : 40 // Used by GetNextCommandArg. 122 $) 123 124 manifest // Description of object machine, etc. 125 $( Machine = 6180 126 WordSize = 36 127 ByteSize = 9 // Bits per character in strings. 128 CountSize = 18 // Bits for string length field. 129 Left = 18; Right = $8777777 130 Endofstreamch = $87777 131 Null = $8007777000001 // Multics uses this for empty pointer. 132 $) 133 manifest // These are the options referred to in the declaration of Open. 134 $( Pointer = 1; Console = 2; StreamName = 3 // Type. Specify exactly one. 135 PathName = 4; EntryName = 5; SearchName = 6 136 Read = 16; Write = 32; Append = 48 // Direction. Logor into Type. 137 MultiSegmentFile = 128 // May be logor'ed into above. 138 $) 139 manifest // These are the flags that appear in the list given to OptionParse. 140 $( OptNegatable = 1 // Logor any combination of these values. 141 OptNegate = 2 142 OptGetNext = 4 143 OptConvert = 8 144 OptCallOut = 16 145 $) 13 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 $) 14 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 $) 15 16 external 17 $( TranslatorInfo = "translator_info_$get_source_info" 18 // call translator_info_$get_source_info (pointer, return dir name, return entry name, 19 // return 52-bit DTM, return UID, return code) 20 DateTime = "date_time_" // call date_time_ (52-bit time, return 24-character date-time string) 21 MaxSegSize = "sys_info$max_seg_size" // dcl sys_info$max_seg_size external static fixed binary 22 $) 23 global 24 $( TimeNotAccountedFor : 158 // Metering temporaries. 25 TimingFudgeFactor : 159 26 27 FreeareaP : 160 28 FreeareaT : 161 29 FreeList : 162 30 FreeListArray : 163 31 TempsegID : 164 32 ParamNumber : 165 33 GetP : 166 34 $) 35 static 36 $( OverflowCount = 0 $) 37 38 let Newvec (n) = valof 39 $( if n < 0 do n := 0 40 test n < 20 41 then $( let p = FreeListArray!n 42 unless p = 0 do 43 $( FreeListArray!n := p!0 44 resultis p 45 $) 46 $) 47 or $( let q = lv FreeList 48 $( let p = rv q 49 if p = 0 break 50 if p!1 = n do 51 $( rv q := p!0 52 resultis p 53 $) 54 q := lv p!0 55 $) repeat 56 $) 57 58 let p = FreeareaP 59 FreeareaP := FreeareaP + n + 1 60 if FreeareaP < FreeareaT resultis p 61 Errcode := 0 62 unless TempsegID = 0 do Complain ("Out of space in Newvec.") 63 OverflowCount := OverflowCount + 1 64 TempsegID := OverflowCount 65 p := MakeTempSeg (TempsegID, "Newvec") 66 FreeareaP, FreeareaT := p + n + 1, p + rv MaxSegSize 67 resultis p 68 $) 69 and List1 (a) = valof 70 $( let p = FreeareaP 71 FreeareaP := FreeareaP + 1 72 if FreeareaP > FreeareaT do p := Newvec (0) 73 p!0 := a 74 resultis p 75 $) 76 and List2 (a, b) = valof 77 $( let p = FreeareaP 78 FreeareaP := FreeareaP + 2 79 if FreeareaP > FreeareaT do p := Newvec (1) 80 p!0, p!1 := a, b 81 resultis p 82 $) 83 and List3 (a, b, c) = valof 84 $( let p = FreeareaP 85 FreeareaP := FreeareaP + 3 86 if FreeareaP > FreeareaT do p := Newvec (2) 87 p!0, p!1, p!2 := a, b, c 88 resultis p 89 $) 90 and List4 (a, b, c, d) = valof 91 $( let p = FreeareaP 92 FreeareaP := FreeareaP + 4 93 if FreeareaP > FreeareaT do p := Newvec (3) 94 p!0, p!1, p!2, p!3 := a, b, c, d 95 resultis p 96 $) 97 and List5 (a, b, c, d, e) = valof 98 $( let p = FreeareaP 99 FreeareaP := FreeareaP + 5 100 if FreeareaP > FreeareaT do p := Newvec (4) 101 p!0, p!1, p!2, p!3, p!4 := a, b, c, d, e 102 resultis p 103 $) 104 and List6 (a, b, c, d, e, f) = valof 105 $( let p = FreeareaP 106 FreeareaP := FreeareaP + 6 107 if FreeareaP > FreeareaT do p := Newvec (5) 108 p!0, p!1, p!2, p!3, p!4, p!5 := a, b, c, d, e, f 109 resultis p 110 $) 111 and Freevec (p, n) be 112 $( test n < 20 113 then $( p!0 := FreeListArray!n 114 FreeListArray!n := p 115 $) 116 or $( p!0, p!1 := FreeList, n 117 FreeList := p 118 $) 119 $) 120 and StoreString (s) = valof // Make safe-stored copy of string s in free storage. 121 $( let l = LengthInWords (s) 122 let x = Newvec (l - 1) 123 Move (x, s, l) 124 resultis x 125 $) 126 127 let MakeTimeString (t) = valof // Convert double-word time to string and allocate it. 128 $( let v, w = vec 24, vec 24 129 call DateTime (t fixed double, w char 24) 130 MakeBcplString (w, 24, v) 131 resultis StoreString (v) 132 $) 133 134 135 let Nextparam () = valof 136 $( ParamNumber := ParamNumber + 1 137 resultis ParamNumber 138 $) 139 140 let GetStream (Arg, ParentStream) be // Open new stream for input. 141 $( let Name = vec Vmax 142 RemoveEscapes (Arg, Name) 143 FileNames!FileCount := StoreString (Name) 144 Concatenate (Name, Vmax, Name, ".bcpl") 145 INPUT := ParentStream = 0 -> Open (PathName + Read + MultiSegmentFile, Name), 146 Open (SearchName + Read + MultiSegmentFile, Name, ParentStream) 147 unless Errcode = 0 do Complain (Name) 148 149 // Acquire and save some information about the source file needed for the symbol table. 150 let Dir, Ent = vec 50, vec 10 151 and Path, w = vec 50, vec 10 152 let Info = lv FilesInfo!(FileCount * 4) 153 call TranslatorInfo (ITS (StreamPointer (INPUT), w) pointer, Dir char 168, Ent char 32, lv Info!2 fixed double, 154 lv Info!1 bit 36, lv Errcode) 155 unless Errcode = 0 do Complain (Name) 156 Info!0 := StoreString (JoinPathname (Dir, Ent, Path)) 157 158 LineCount := FileCount lshift FileShift // Reset counter to agree with new stream. 159 $) 160 161 let PushInput (NewName) be // Open new stream, saving current stream and line count. 162 $( FileCount := FileCount + 1 163 if FileCount ge 32 do Complain ("The number of head files has exceeded the implementation limit of 32.") 164 let x = Newvec (2) 165 x!0, x!1, x!2 := GetP, INPUT, LineCount 166 GetP := x 167 INPUT := 0 // Policy: INPUT should not be a duplicate or closed stream. 168 GetStream (NewName, GetP!1) 169 $) 170 and PopInput () be // Revert to previous stream. 171 $( Close (INPUT) 172 INPUT, LineCount := GetP!1, GetP!2 173 let x = GetP 174 GetP := GetP!0 175 Freevec (x, 2) 176 $) 177 178 let SaveOldUsage () = valof // Half of the metering provision. 179 $( let T = GetCpuUsage () 180 let R = TimeNotAccountedFor 181 TimeNotAccountedFor := T 182 resultis R - T 183 $) 184 and RecordUsage (MeterSlot, OldT) be // Other half, called at end of interval to be metered. 185 $( let T = GetCpuUsage () 186 MeterData!MeterSlot := MeterData!MeterSlot + (T - TimeNotAccountedFor - TimingFudgeFactor) 187 MeterData!(MeterSlot + 1) := MeterData!(MeterSlot + 1) + 1 188 TimeNotAccountedFor := T + OldT + TimingFudgeFactor 189 $) 190 191 let FormCharconst (s) = valof 192 $( let R, v, w = 0, vec Vmax, vec Vmax 193 Unpackstring (RemoveEscapes (s, v), w) 194 for i = 1 to w!0 do R := R lshift ByteSize | w!i 195 resultis R 196 $) 197 and FormStringconst (s, Space) = valof // Returns length in words (minus one). 198 $( let v, w = vec Vmax, vec Vmax + 4 // Form a BCPL-format string explicitly - 199 Unpackstring (RemoveEscapes (s, v), w) // this is where the string format is defined. 200 let Len, Nwords = w!0, 0 201 w!(Len + 1), w!(Len + 2), w!(Len + 3) := 0, 0, 0 202 test Machine = 6180 203 then $( Space!0 := Len lshift 18 | w!1 lshift 9 | w!2 204 Nwords := 1 205 for i = 3 to Len by 4 do 206 $( Space!Nwords := w!i lshift 27 | w!(i + 1) lshift 18 | w!(i + 2) lshift 9 | w!(i + 3) 207 Nwords := Nwords + 1 208 $) 209 $) 210 or for i = 0 to Len by 4 do 211 $( Space!Nwords := w!i lshift 27 | w!(i + 1) lshift 18 | w!(i + 2) lshift 9 | w!(i + 3) 212 Nwords := Nwords + 1 213 $) 214 resultis Nwords - 1 215 $) 216 217 let UtilitiesInit (v, Len, StartingTime) be 218 $( TempsegID, FreeList := 0, 0 219 FreeListArray := v 220 for i = 0 to 20 do FreeListArray!i := 0 221 FreeareaP, FreeareaT := v + 21, v + Len 222 223 ParamNumber := 0 224 225 FileNames, FileCount, FilesInfo := Newvec (32), 0, Newvec (32 * 4) 226 FilesInfo := (FilesInfo + 1) & Even // Even alignment required to hold clock values. 227 GetP, INPUT := 0, 0 228 229 if Metering do 230 $( MeterData := Newvec (Meters_Length) 231 for i = 0 to Meters_Length do MeterData!i := 0 232 TimeNotAccountedFor, TimingFudgeFactor := StartingTime, 0 233 let t = vec 10 // Calculate time spent to read clock. 234 RecordUsage (MeteringOverhead_Meter, SaveOldUsage ()) 235 MeterData!MeteringOverhead_Meter := 0 // First time doesn't count. 236 for i = 1 to 10 do t!i := SaveOldUsage () 237 for i = 10 to 1 by -1 do RecordUsage (MeteringOverhead_Meter, t!i) 238 TimingFudgeFactor := MeterData!MeteringOverhead_Meter / 19 239 $) 240 $) 241 and Cleanup () be // Things that get done on normal or abnormal termination. 242 $( until GetP = 0 do 243 $( Close (GetP!1) 244 GetP := GetP!0 245 $) 246 unless TempsegID = 0 do 247 $( DeleteTempSeg (TempsegID, "Newvec") 248 TempsegID := 0 249 $) 250 unless INPUT = 0 do 251 $( Close (INPUT) 252 INPUT := 0 253 $) 254 $) CAE time 5.3, 110 source lines per second. cross reference table a bcpl_utility: 69, 73, 76, 80, 83, 87, 90, 94, 97, 101, 104, 108 AbsI head: 11 AbsR head: 12 Allocate head: 64 Append head: 136 Arg bcpl_utility: 140, 142 ArgIndex head: 121 b bcpl_utility: 76, 80, 83, 87, 90, 94, 97, 101, 104, 108 Bcall head: 54 BCPLaddr head: 108 BuildObject bcpl_compiler_head: 72 ByteSize head: 127, bcpl_utility: 194 c bcpl_utility: 83, 87, 90, 94, 97, 101, 104, 108 CAE bcpl_compiler_head: 64 CaeReport bcpl_compiler_head: 49 CgInit bcpl_compiler_head: 71 CGreport bcpl_compiler_head: 51 Ch head: 118, bcpl_compiler_head: 92 CharToString head: 37 Cleanup bcpl_compiler_head: 61, bcpl_utility: 241 Close head: 69, bcpl_utility: 171, 243, 251 CodeGeneration_Meter bcpl_metering_head: 43 Column bcpl_compiler_head: 128 CompareStrings head: 27, bcpl_compiler_head: 25 CompileExpression_Meter bcpl_metering_head: 44 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 CompileSwitchWithoutOptimizing_Meter bcpl_metering_head: 40 Complain head: 107, bcpl_utility: 62, 147, 155, 163 Concatenate head: 28, bcpl_compiler_head: 26, bcpl_utility: 144 ConcatenateArgs head: 104 CONSOLE head: 117 Console head: 134 ConvertFtoS head: 46 ConvertNtoS head: 45, bcpl_compiler_head: 28 ConvertStoN head: 44, bcpl_compiler_head: 27 CopyString head: 25 CountSize head: 128 Crep bcpl_compiler_head: 98 d bcpl_utility: 90, 94, 97, 101, 104, 108 DateTime bcpl_utility: 20, 129 DeleteTempSeg head: 91, bcpl_utility: 247 DictionaryDepth bcpl_metering_head: 24 DictionaryDepth_Count bcpl_metering_head: 48 DictionaryEntry bcpl_compiler_head: 127 Dir bcpl_utility: 150, 153, 156 DriverOverhead_Meter bcpl_metering_head: 30 e bcpl_utility: 97, 101, 104, 108 Endofstreamch head: 130, bcpl_compiler_head: 135 Ent bcpl_utility: 150, 153, 156 EnterIntoCrossreference bcpl_compiler_head: 57 EntryName head: 135 EqualString head: 26, bcpl_compiler_head: 24 Errcode head: 120, bcpl_utility: 61, 147, 154, 155 Errorsw bcpl_compiler_head: 124 Even bcpl_compiler_head: 136, bcpl_utility: 226 ExpandPathname head: 84 Exponential head: 20 f bcpl_utility: 104, 108 FileCount bcpl_compiler_head: 118, bcpl_utility: 143, 152, 158, 162, 162, 163, 225 FileNames bcpl_compiler_head: 116, bcpl_utility: 143, 225 FileShift bcpl_compiler_head: 138, bcpl_utility: 158 FilesInfo bcpl_compiler_head: 117, bcpl_utility: 152, 225, 226, 226 Findadr head: 65 FindPrintName bcpl_compiler_head: 56 FindSegment head: 87 Flushinput head: 77 Format head: 74, bcpl_compiler_head: 20 FormatString head: 75 FormCharconst bcpl_compiler_head: 46, bcpl_utility: 191 FormDate head: 49 FormStringconst bcpl_compiler_head: 47, bcpl_utility: 197 FreeareaP bcpl_utility: 27, 58, 59, 59, 60, 66, 70, 71, 71, 72, 77, 78, 78, 79, 84, 85, 85, 86, 91, 92, 92, 93, 98, 99, 99, 100, 105, 106, 106, 107, 221 FreeareaT bcpl_utility: 28, 60, 66, 72, 79, 86, 93, 100, 107, 221 FreeList bcpl_utility: 29, 47, 116, 117, 218 FreeListArray bcpl_utility: 30, 41, 43, 113, 114, 219, 220 Freevec head: 63, bcpl_compiler_head: 34, bcpl_utility: 111, 175 GetCpuUsage head: 96, bcpl_utility: 179, 185 GetNextCommandArg head: 106 GetP bcpl_utility: 33, 165, 166, 168, 172, 172, 173, 174, 174, 227, 242, 243, 244, 244 GetPathname head: 89 GetStream bcpl_compiler_head: 62, bcpl_utility: 140, 168 GetVersion bcpl_compiler_head: 59 GlobalTemp bcpl_compiler_head: 131 HaveListingFile bcpl_compiler_head: 105 i bcpl_utility: 194, 194, 205, 206, 206, 206, 206, 210, 211, 211, 211, 211, 220, 220, 231, 231, 236, 236, 237, 237 Index head: 34 IndexCh head: 35 Info bcpl_utility: 152, 153, 154, 156 INPUT head: 116, bcpl_compiler_head: 90, bcpl_utility: 145, 153, 165, 167, 171, 172, 227, 250, 251, 252 InsertEscapes head: 48 IOstatus head: 120 IpowerI head: 14 ItoR head: 43 ITS head: 109, bcpl_utility: 153 JoinPathname head: 85, bcpl_utility: 156 l bcpl_utility: 121, 122, 123 Left head: 129, bcpl_compiler_head: 134 Len bcpl_utility: 200, 201, 201, 201, 203, 205, 210, 217, 221 Length head: 31, bcpl_compiler_head: 29 LengthInWords head: 33, bcpl_compiler_head: 30, bcpl_utility: 121 Level head: 53 LexInit bcpl_compiler_head: 65 LineCount bcpl_compiler_head: 123, bcpl_utility: 158, 165, 172 LineMap bcpl_compiler_head: 100 LineMask bcpl_compiler_head: 138 List1 bcpl_compiler_head: 35, bcpl_utility: 69 List2 bcpl_compiler_head: 36, bcpl_utility: 76 List3 bcpl_compiler_head: 37, bcpl_utility: 83 List4 bcpl_compiler_head: 38, bcpl_utility: 90 List5 bcpl_compiler_head: 39, bcpl_utility: 97 List6 bcpl_compiler_head: 40, bcpl_utility: 104 Listing bcpl_compiler_head: 95 Logarithm head: 19 Longjump head: 52 Machine head: 125, bcpl_compiler_head: 102, bcpl_utility: 202 MakeBcplString head: 39, bcpl_utility: 130 MakeObject_Meter bcpl_metering_head: 39 MakePl1String head: 38 MakeSegment head: 88 MakeTempSeg head: 90, bcpl_utility: 65 MakeTimeString bcpl_compiler_head: 44, bcpl_utility: 127 MaxI head: 7 MaxR head: 8 MaxSegSize bcpl_utility: 21, 66 MeterData bcpl_metering_head: 23, bcpl_utility: 186, 186, 187, 187, 230, 231, 235, 238 Metering bcpl_metering_head: 22, bcpl_utility: 229 MeteringOverhead_Meter bcpl_metering_head: 45, bcpl_utility: 234, 235, 237, 238 MeterSlot bcpl_utility: 184, 186, 186, 187, 187 Meters_Length bcpl_metering_head: 49, bcpl_utility: 230, 231 MinI head: 9 MinR head: 10 MONITOR head: 117, bcpl_compiler_head: 91 Move head: 56, bcpl_utility: 123 MoveBits head: 57 MultiSegmentFile head: 137, bcpl_utility: 145, 146 n bcpl_utility: 38, 39, 39, 40, 41, 43, 50, 59, 66, 111, 112, 113, 114, 116 Name bcpl_utility: 141, 142, 143, 144, 144, 145, 146, 147, 155 NAMECHAIN bcpl_compiler_head: 125 NewName bcpl_utility: 161, 168 Newvec head: 62, bcpl_compiler_head: 33, bcpl_utility: 38, 72, 79, 86, 93, 100, 107, 122, 164, 225, 225, 230 NewvecCleanup head: 61 NewvecInit head: 60 Nextparam bcpl_compiler_head: 45, bcpl_utility: 135 Nextsymb bcpl_compiler_head: 53 Nextsymb_Meter bcpl_metering_head: 32 Null head: 131 NumbArgs head: 59 Nwords bcpl_utility: 200, 204, 206, 207, 207, 211, 212, 212, 214 OcodeSw bcpl_compiler_head: 104 OldT bcpl_utility: 184, 188 Open head: 68, bcpl_utility: 145, 146 OptCallOut head: 144 OptConvert head: 143 OptGetNext head: 142 Optimize bcpl_compiler_head: 101 OptionParse head: 105 OptionString bcpl_compiler_head: 115 OptNegatable head: 140 OptNegate head: 141 OUTPUT head: 116, bcpl_compiler_head: 89 OverflowCount bcpl_utility: 36, 63, 63, 64 p bcpl_utility: 41, 42, 43, 44, 48, 49, 50, 51, 52, 54, 58, 60, 65, 66, 66, 67, 70, 72, 73, 74, 77, 79, 80, 80, 81, 84, 86, 87, 87, 87, 88, 91, 93, 94, 94, 94, 94, 95, 98, 100, 101, 101, 101, 101, 101, 102, 105, 107, 108, 108, 108, 108, 108, 108, 109, 111, 113, 114, 116, 116, 117 Packstring head: 23, bcpl_compiler_head: 21 ParamNumber bcpl_utility: 32, 136, 136, 137, 223 ParentStream bcpl_utility: 140, 145, 146 Path bcpl_utility: 151, 156 PathName head: 135, bcpl_utility: 145 Pl1ArgPtr head: 100 Pl1ArgString head: 102 Pl1Call head: 55 Pl1Descriptor head: 101 Pl1NumbArgs head: 99 Pl1ReturnString head: 103 Plist bcpl_compiler_head: 68 Pname bcpl_compiler_head: 67 Pointer head: 134 PopInput bcpl_compiler_head: 43, bcpl_utility: 170 PPrep bcpl_compiler_head: 97 PrintMeters bcpl_metering_head: 18 PrintXref_Meter bcpl_metering_head: 38 ProcessGet_Meter bcpl_metering_head: 33 ProgramID head: 119 ProgramName bcpl_compiler_head: 119 PushInput bcpl_compiler_head: 42, bcpl_utility: 161 q bcpl_utility: 47, 48, 51, 54 QuietSw bcpl_compiler_head: 106 R bcpl_utility: 180, 182, 192, 194, 194, 195 RandomI head: 17, bcpl_compiler_head: 31 RandomR head: 18 RawClockTime head: 94 RchWithListing_Meter bcpl_metering_head: 37 RchWithoutListing_Meter bcpl_metering_head: 36 Read head: 136, bcpl_utility: 145, 146 Readch head: 70, bcpl_compiler_head: 16 RecordUsage bcpl_metering_head: 17, bcpl_utility: 184, 234, 237 RemoveEscapes head: 47, bcpl_compiler_head: 23, bcpl_utility: 142, 193, 199 ResetStream head: 78 RevertHandler head: 112 Right head: 129, bcpl_compiler_head: 134 RpowerI head: 15 RpowerR head: 16 RtoI head: 42 s bcpl_utility: 120, 121, 123, 191, 193, 197, 199 SaveOldUsage bcpl_metering_head: 16, bcpl_utility: 178, 234, 236 ScanChar head: 58 SearchName head: 135, bcpl_utility: 146 SemanticTranslation_Meter bcpl_metering_head: 42 SetBitCount head: 93 SetHandler head: 111 SetLength head: 32 SetOverflowMask head: 110 Space bcpl_utility: 197, 203, 206, 211 SplitPathname head: 86 SquareRoot head: 13 StartingTime bcpl_utility: 217, 232 StoreString bcpl_compiler_head: 41, bcpl_utility: 120, 131, 143, 156 StreamLength head: 80 StreamName head: 134 StreamOffset head: 79 StreamPointer head: 81, bcpl_utility: 153 StringToChar head: 36 Subch head: 30 Substr head: 29 Symb bcpl_compiler_head: 126 SymbolAdd_Meter bcpl_metering_head: 34 SymbolName bcpl_compiler_head: 55 Symbols bcpl_compiler_head: 99 SymbolSearch_Meter bcpl_metering_head: 35 SyntaxAnalysis_Meter bcpl_metering_head: 31 T bcpl_utility: 179, 181, 182, 185, 186, 188 t bcpl_utility: 127, 129, 233, 236, 237 TempsegID bcpl_utility: 31, 62, 64, 65, 218, 246, 247, 248 Terminate head: 92 TextWords_Count bcpl_metering_head: 47 TimeNotAccountedFor bcpl_utility: 24, 180, 181, 186, 188, 232 TimeNow bcpl_compiler_head: 114 TimeNowString bcpl_compiler_head: 113 TimeToSeconds head: 95 TimingFudgeFactor bcpl_utility: 25, 186, 188, 232, 238 TotalLines bcpl_metering_head: 25 TotalLines_Count bcpl_metering_head: 46 TotalWords bcpl_metering_head: 26 Trans bcpl_compiler_head: 70 TranslatorInfo bcpl_utility: 17, 153 Transreport bcpl_compiler_head: 50 UnexpectedCase bcpl_compiler_head: 139 Unpackstring head: 24, bcpl_compiler_head: 22, bcpl_utility: 193, 199 UpperCase bcpl_compiler_head: 96 UserID bcpl_compiler_head: 120 UtilitiesInit bcpl_compiler_head: 60, bcpl_utility: 217 v bcpl_utility: 128, 130, 131, 192, 193, 198, 199, 217, 219, 221, 221 Vmax bcpl_compiler_head: 137, bcpl_utility: 141, 144, 192, 192, 198, 198 w bcpl_utility: 128, 129, 130, 151, 153, 192, 193, 194, 194, 198, 199, 200, 201, 201, 201, 203, 203, 206, 206, 206, 206, 211, 211, 211, 211 WordSize head: 126 Write head: 136 Writech head: 71, bcpl_compiler_head: 17 WriteN head: 73, bcpl_compiler_head: 19 WriteObjectListing bcpl_compiler_head: 73 Writeout head: 76 WriteS head: 72, bcpl_compiler_head: 18 x bcpl_utility: 122, 123, 124, 164, 165, 165, 165, 166, 173, 175 Xref bcpl_compiler_head: 103 Trans time 2.0, 820 object words per second. " Begin text of List1 aa 000000 000005 114151 zero 5,39017 " List1 aa 000001 163164 061000 zero 58996,25088 L2: aa 000002 000000 213000 69 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 700422 620111 eax0 sb|274,x1 aa 000010 777760 360003 anx0 -16,du aa 000011 700025 740100 stx0 sb|21 " end of save sequence aa 000012 600240 236100 70 ldq sp|160 " FreeareaP aa 000013 700004 756111 stq sb|4,x1 " p aa 000014 600240 054100 71 aos sp|160 " FreeareaP aa 000015 600240 236100 72 ldq sp|160 " FreeareaP aa 000016 600241 116100 cmpq sp|161 " FreeareaT aa 000017 000005 604404 tmoz L13 aa 000020 700010 450111 stz sb|8,x1 aa 000021 000457 272004 tsbbp L1+2 " Newvec aa 000022 000006 000001 zero 6,1 aa 000023 700004 756111 stq sb|4,x1 " p L13: aa 000024 700002 236111 73 ldq sb|2,x1 " a aa 000025 700004 760111 lprpap sb|4,x1 " p aa 000026 000000 756100 stq ap|0 aa 000027 700004 236111 74 ldq sb|4,x1 " p L12: aa 000030 700004 756111 stq sb|4,x1 aa 000031 700004 236111 ldq sb|4,x1 aa 000032 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000033 200000 121100 sblx1 bp|0 aa 000034 700001 764111 lprplp sb|1,x1 aa 000035 200001 710100 tra bp|1 " end of return sequence " Begin text of List2 aa 000036 000005 114151 zero 5,39017 " List2 aa 000037 163164 062000 zero 58996,25600 aa 000040 700003 756111 76 stq sb|3,x1 " temporary L3: aa 000041 000000 213000 epaq 0 " set lp to linkage section aa 000042 700026 764161 lprplp sb|22,*au aa 000043 200000 021100 adlx1 bp|0 " BCPL save aa 000044 700000 542111 sprpbp sb|0,x1 aa 000045 700001 544111 sprplp sb|1,x1 aa 000046 700422 620111 eax0 sb|274,x1 aa 000047 777760 360003 anx0 -16,du aa 000050 700025 740100 stx0 sb|21 " end of save sequence aa 000051 600240 236100 77 ldq sp|160 " FreeareaP aa 000052 700005 756111 stq sb|5,x1 " p aa 000053 000002 236007 78 ldq 2,dl " 2 aa 000054 600240 056100 asq sp|160 " FreeareaP aa 000055 600240 236100 79 ldq sp|160 " FreeareaP aa 000056 600241 116100 cmpq sp|161 " FreeareaT aa 000057 000006 604404 tmoz L17 aa 000060 000001 235007 lda 1,dl " 1 aa 000061 700012 755111 sta sb|10,x1 aa 000062 000416 272004 tsbbp L1+2 " Newvec aa 000063 000010 000001 zero 8,1 aa 000064 700005 756111 stq sb|5,x1 " p L17: aa 000065 700002 236111 80 ldq sb|2,x1 " a aa 000066 700005 762111 lprpbp sb|5,x1 " p aa 000067 200000 756100 stq bp|0 aa 000070 700003 236111 ldq sb|3,x1 " b aa 000071 700005 761111 lprpab sb|5,x1 " p aa 000072 100001 756100 stq ab|1 aa 000073 700005 236111 81 ldq sb|5,x1 " p L16: aa 000074 700005 756111 stq sb|5,x1 aa 000075 700005 236111 ldq sb|5,x1 aa 000076 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000077 200000 121100 sblx1 bp|0 aa 000100 700001 764111 lprplp sb|1,x1 aa 000101 200001 710100 tra bp|1 " end of return sequence " Begin text of List5 aa 000102 000005 114151 zero 5,39017 " List5 aa 000103 163164 065000 zero 58996,27136 aa 000104 700004 756111 97 stq sb|4,x1 " temporary L6: aa 000105 000000 213000 epaq 0 " set lp to linkage section aa 000106 700026 764161 lprplp sb|22,*au aa 000107 200000 021100 adlx1 bp|0 " BCPL save aa 000110 700000 542111 sprpbp sb|0,x1 aa 000111 700001 544111 sprplp sb|1,x1 aa 000112 700422 620111 eax0 sb|274,x1 aa 000113 777760 360003 anx0 -16,du aa 000114 700025 740100 stx0 sb|21 " end of save sequence aa 000115 600240 236100 98 ldq sp|160 " FreeareaP aa 000116 700010 756111 stq sb|8,x1 " p aa 000117 000005 236007 99 ldq 5,dl " 5 aa 000120 600240 056100 asq sp|160 " FreeareaP aa 000121 600240 236100 100 ldq sp|160 " FreeareaP aa 000122 600241 116100 cmpq sp|161 " FreeareaT aa 000123 000006 604404 tmoz L21 aa 000124 000004 235007 lda 4,dl " 4 aa 000125 700020 755111 sta sb|16,x1 aa 000126 000352 272004 tsbbp L1+2 " Newvec aa 000127 000016 000001 zero 14,1 aa 000130 700010 756111 stq sb|8,x1 " p L21: aa 000131 700004 236111 101 ldq sb|4,x1 " c aa 000132 700010 763111 lprpbb sb|8,x1 " p aa 000133 300002 756100 stq bb|2 aa 000134 700002 236111 ldq sb|2,x1 " a aa 000135 700010 765111 lprplb sb|8,x1 " p aa 000136 500000 756100 stq lb|0 aa 000137 700006 236111 ldq sb|6,x1 " e aa 000140 700010 760111 lprpap sb|8,x1 " p aa 000141 000004 756100 stq ap|4 aa 000142 700005 236111 ldq sb|5,x1 " d aa 000143 700010 762111 lprpbp sb|8,x1 " p aa 000144 200003 756100 stq bp|3 aa 000145 700003 236111 ldq sb|3,x1 " b aa 000146 700010 761111 lprpab sb|8,x1 " p aa 000147 100001 756100 stq ab|1 aa 000150 700010 236111 102 ldq sb|8,x1 " p L20: aa 000151 700010 756111 stq sb|8,x1 aa 000152 700010 236111 ldq sb|8,x1 aa 000153 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000154 200000 121100 sblx1 bp|0 aa 000155 700001 764111 lprplp sb|1,x1 aa 000156 200001 710100 tra bp|1 " end of return sequence " Begin text of List6 aa 000157 000005 114151 zero 5,39017 " List6 aa 000160 163164 066000 zero 58996,27648 aa 000161 700007 756111 104 stq sb|7,x1 " temporary L7: aa 000162 000000 213000 epaq 0 " set lp to linkage section aa 000163 700026 764161 lprplp sb|22,*au aa 000164 200000 021100 adlx1 bp|0 " BCPL save aa 000165 700000 542111 sprpbp sb|0,x1 aa 000166 700001 544111 sprplp sb|1,x1 aa 000167 700422 620111 eax0 sb|274,x1 aa 000170 777760 360003 anx0 -16,du aa 000171 700025 740100 stx0 sb|21 " end of save sequence aa 000172 600240 236100 105 ldq sp|160 " FreeareaP aa 000173 700011 756111 stq sb|9,x1 " p aa 000174 000006 236007 106 ldq 6,dl " 6 aa 000175 600240 056100 asq sp|160 " FreeareaP aa 000176 600240 236100 107 ldq sp|160 " FreeareaP aa 000177 600241 116100 cmpq sp|161 " FreeareaT aa 000200 000006 604404 tmoz L25 aa 000201 000005 235007 lda 5,dl " 5 aa 000202 700022 755111 sta sb|18,x1 aa 000203 000275 272004 tsbbp L1+2 " Newvec aa 000204 000020 000001 zero 16,1 aa 000205 700011 756111 stq sb|9,x1 " p L25: aa 000206 700002 236111 108 ldq sb|2,x1 " a aa 000207 700011 763111 lprpbb sb|9,x1 " p aa 000210 300000 756100 stq bb|0 aa 000211 700005 236111 ldq sb|5,x1 " d aa 000212 700011 765111 lprplb sb|9,x1 " p aa 000213 500003 756100 stq lb|3 aa 000214 700003 236111 ldq sb|3,x1 " b aa 000215 700011 760111 lprpap sb|9,x1 " p aa 000216 000001 756100 stq ap|1 aa 000217 700004 236111 ldq sb|4,x1 " c aa 000220 700011 762111 lprpbp sb|9,x1 " p aa 000221 200002 756100 stq bp|2 aa 000222 700006 236111 ldq sb|6,x1 " e aa 000223 700011 761111 lprpab sb|9,x1 " p aa 000224 100004 756100 stq ab|4 aa 000225 700007 236111 ldq sb|7,x1 " f aa 000226 700011 763111 lprpbb sb|9,x1 " p aa 000227 300005 756100 stq bb|5 aa 000230 700011 236111 109 ldq sb|9,x1 " p L24: aa 000231 700011 756111 stq sb|9,x1 aa 000232 700011 236111 ldq sb|9,x1 aa 000233 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000234 200000 121100 sblx1 bp|0 aa 000235 700001 764111 lprplp sb|1,x1 aa 000236 200001 710100 tra bp|1 " end of return sequence " Begin text of StoreString aa 000237 000013 123164 zero 11,42612 " StoreString aa 000240 157162 145123 zero 56946,51795 aa 000241 164162 151156 zero 59506,53870 aa 000242 147000 000000 zero 52736 aa 000243 700010 756111 120 stq sb|8,x1 " temporary L9: aa 000244 000000 213000 epaq 0 " set lp to linkage section aa 000245 700026 764161 lprplp sb|22,*au aa 000246 200000 021100 adlx1 bp|0 " BCPL save aa 000247 700000 542111 sprpbp sb|0,x1 aa 000250 700001 544111 sprplp sb|1,x1 aa 000251 700424 620111 eax0 sb|276,x1 aa 000252 777760 360003 anx0 -16,du aa 000253 700025 740100 stx0 sb|21 " end of save sequence aa 000254 700002 236111 121 ldq sb|2,x1 " s aa 000255 700012 756111 stq sb|10,x1 4a 000256 400054 272120 tsbbp lp|L29,* " LengthInWords aa 000257 000010 000001 zero 8,1 aa 000260 700004 756111 stq sb|4,x1 " l aa 000261 700004 236111 122 ldq sb|4,x1 " l aa 000262 000001 176007 sbq 1,dl " 1 aa 000263 700012 756111 stq sb|10,x1 aa 000264 000214 272004 tsbbp L1+2 " Newvec aa 000265 000010 000001 zero 8,1 aa 000266 700005 756111 stq sb|5,x1 " x aa 000267 700005 236111 123 ldq sb|5,x1 " x aa 000270 700012 756111 stq sb|10,x1 aa 000271 700002 236111 ldq sb|2,x1 " s aa 000272 700013 756111 stq sb|11,x1 aa 000273 700004 236111 ldq sb|4,x1 " l aa 000274 700014 756111 stq sb|12,x1 4a 000275 400052 272120 tsbbp lp|L30,* " Move aa 000276 000010 000003 zero 8,3 aa 000277 700005 236111 124 ldq sb|5,x1 " x L28: aa 000300 700004 756111 stq sb|4,x1 aa 000301 700004 236111 ldq sb|4,x1 aa 000302 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000303 200000 121100 sblx1 bp|0 aa 000304 700001 764111 lprplp sb|1,x1 aa 000305 200001 710100 tra bp|1 " end of return sequence " Begin text of Freevec aa 000306 000007 106162 zero 7,35954 " Freevec aa 000307 145145 166145 zero 51813,60517 aa 000310 143000 000000 zero 50688 aa 000311 700003 756111 111 stq sb|3,x1 " temporary L8: aa 000312 000000 213000 epaq 0 " set lp to linkage section aa 000313 700026 764161 lprplp sb|22,*au aa 000314 200000 021100 adlx1 bp|0 " BCPL save aa 000315 700000 542111 sprpbp sb|0,x1 aa 000316 700001 544111 sprplp sb|1,x1 aa 000317 700417 620111 eax0 sb|271,x1 aa 000320 777760 360003 anx0 -16,du aa 000321 700025 740100 stx0 sb|21 " end of save sequence aa 000322 700003 236111 112 ldq sb|3,x1 " n aa 000323 000024 116007 cmpq 20,dl " 20 aa 000324 000013 605004 tpl L34 aa 000325 700003 722111 113 lxl2 sb|3,x1 " n aa 000326 600243 765100 lprplb sp|163 " FreeListArray aa 000327 500000 235112 lda lb|0,x2 aa 000330 700002 760111 lprpap sb|2,x1 " p aa 000331 000000 755100 sta ap|0 aa 000332 700002 235111 114 lda sb|2,x1 " p aa 000333 700003 723111 lxl3 sb|3,x1 " n aa 000334 600243 762100 lprpbp sp|163 " FreeListArray aa 000335 200000 755113 sta bp|0,x3 aa 000336 000011 710004 tra L35 L34: aa 000337 600242 235100 116 lda sp|162 " FreeList aa 000340 700002 761111 lprpab sb|2,x1 " p aa 000341 100000 755100 sta ab|0 aa 000342 700003 235111 lda sb|3,x1 " n aa 000343 700002 763111 lprpbb sb|2,x1 " p aa 000344 300001 755100 sta bb|1 aa 000345 700002 235111 117 lda sb|2,x1 " p aa 000346 600242 755100 sta sp|162 " FreeList L35: L33: aa 000347 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000350 200000 121100 sblx1 bp|0 aa 000351 700001 764111 lprplp sb|1,x1 aa 000352 200001 710100 tra bp|1 " end of return sequence " Begin text of List4 aa 000353 000005 114151 zero 5,39017 " List4 aa 000354 163164 064000 zero 58996,26624 L5: aa 000355 000000 213000 90 epaq 0 " set lp to linkage section aa 000356 700026 764161 lprplp sb|22,*au aa 000357 200000 021100 adlx1 bp|0 " BCPL save aa 000360 700000 542111 sprpbp sb|0,x1 aa 000361 700001 544111 sprplp sb|1,x1 aa 000362 700422 620111 eax0 sb|274,x1 aa 000363 777760 360003 anx0 -16,du aa 000364 700025 740100 stx0 sb|21 " end of save sequence aa 000365 600240 235100 91 lda sp|160 " FreeareaP aa 000366 700007 755111 sta sb|7,x1 " p aa 000367 000004 235007 92 lda 4,dl " 4 aa 000370 600240 055100 asa sp|160 " FreeareaP aa 000371 600240 235100 93 lda sp|160 " FreeareaP aa 000372 600241 115100 cmpa sp|161 " FreeareaT aa 000373 000006 604404 tmoz L39 aa 000374 000003 236007 ldq 3,dl " 3 aa 000375 700016 756111 stq sb|14,x1 aa 000376 000102 272004 tsbbp L1+2 " Newvec aa 000377 000014 000001 zero 12,1 aa 000400 700007 756111 stq sb|7,x1 " p L39: aa 000401 700003 236111 94 ldq sb|3,x1 " b aa 000402 700007 765111 lprplb sb|7,x1 " p aa 000403 500001 756100 stq lb|1 aa 000404 700002 236111 ldq sb|2,x1 " a aa 000405 700007 760111 lprpap sb|7,x1 " p aa 000406 000000 756100 stq ap|0 aa 000407 700005 236111 ldq sb|5,x1 " d aa 000410 700007 762111 lprpbp sb|7,x1 " p aa 000411 200003 756100 stq bp|3 aa 000412 700004 236111 ldq sb|4,x1 " c aa 000413 700007 761111 lprpab sb|7,x1 " p aa 000414 100002 756100 stq ab|2 aa 000415 700007 236111 95 ldq sb|7,x1 " p L38: aa 000416 700007 756111 stq sb|7,x1 aa 000417 700007 236111 ldq sb|7,x1 aa 000420 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000421 200000 121100 sblx1 bp|0 aa 000422 700001 764111 lprplp sb|1,x1 aa 000423 200001 710100 tra bp|1 " end of return sequence " Begin text of List3 aa 000424 000005 114151 zero 5,39017 " List3 aa 000425 163164 063000 zero 58996,26112 aa 000426 700006 756111 83 stq sb|6,x1 " temporary L4: aa 000427 000000 213000 epaq 0 " set lp to linkage section aa 000430 700026 764161 lprplp sb|22,*au aa 000431 200000 021100 adlx1 bp|0 " BCPL save aa 000432 700000 542111 sprpbp sb|0,x1 aa 000433 700001 544111 sprplp sb|1,x1 aa 000434 700422 620111 eax0 sb|274,x1 aa 000435 777760 360003 anx0 -16,du aa 000436 700025 740100 stx0 sb|21 " end of save sequence aa 000437 600240 236100 84 ldq sp|160 " FreeareaP aa 000440 700006 756111 stq sb|6,x1 " p aa 000441 000003 236007 85 ldq 3,dl " 3 aa 000442 600240 056100 asq sp|160 " FreeareaP aa 000443 600240 236100 86 ldq sp|160 " FreeareaP aa 000444 600241 116100 cmpq sp|161 " FreeareaT aa 000445 000006 604404 tmoz L43 aa 000446 000002 235007 lda 2,dl " 2 aa 000447 700014 755111 sta sb|12,x1 aa 000450 000030 272004 tsbbp L1+2 " Newvec aa 000451 000012 000001 zero 10,1 aa 000452 700006 756111 stq sb|6,x1 " p L43: aa 000453 700002 236111 87 ldq sb|2,x1 " a aa 000454 700006 763111 lprpbb sb|6,x1 " p aa 000455 300000 756100 stq bb|0 aa 000456 700004 236111 ldq sb|4,x1 " c aa 000457 700006 765111 lprplb sb|6,x1 " p aa 000460 500002 756100 stq lb|2 aa 000461 700003 236111 ldq sb|3,x1 " b aa 000462 700006 760111 lprpap sb|6,x1 " p aa 000463 000001 756100 stq ap|1 aa 000464 700006 236111 88 ldq sb|6,x1 " p L42: aa 000465 700006 756111 stq sb|6,x1 aa 000466 700006 236111 ldq sb|6,x1 aa 000467 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000470 200000 121100 sblx1 bp|0 aa 000471 700001 764111 lprplp sb|1,x1 aa 000472 200001 710100 tra bp|1 " end of return sequence " Begin text of Newvec aa 000473 000006 116145 zero 6,40037 " Newvec aa 000474 167166 145143 zero 61046,51811 aa 000475 700005 756111 38 stq sb|5,x1 " temporary L1: aa 000476 000000 213000 epaq 0 " set lp to linkage section aa 000477 700026 764161 lprplp sb|22,*au aa 000500 200000 021100 adlx1 bp|0 " BCPL save aa 000501 700000 542111 sprpbp sb|0,x1 aa 000502 700001 544111 sprplp sb|1,x1 aa 000503 700423 620111 eax0 sb|275,x1 aa 000504 777760 360003 anx0 -16,du aa 000505 700025 740100 stx0 sb|21 " end of save sequence aa 000506 700002 234111 39 szn sb|2,x1 " n aa 000507 000002 605004 tpl L47 aa 000510 700002 450111 stz sb|2,x1 " n L47: aa 000511 700002 236111 40 ldq sb|2,x1 " n aa 000512 000024 116007 cmpq 20,dl " 20 aa 000513 000017 605004 tpl L48 aa 000514 700002 724111 41 lxl4 sb|2,x1 " n aa 000515 600243 762100 lprpbp sp|163 " FreeListArray aa 000516 200000 235114 lda bp|0,x4 aa 000517 700004 755111 sta sb|4,x1 " p aa 000520 700004 234111 42 szn sb|4,x1 " p aa 000521 000010 600004 tze L50 aa 000522 700004 761111 43 lprpab sb|4,x1 " p aa 000523 100000 235100 lda ab|0 aa 000524 700002 725111 lxl5 sb|2,x1 " n aa 000525 600243 763100 lprpbb sp|163 " FreeListArray aa 000526 300000 755115 sta bb|0,x5 aa 000527 700004 235111 44 lda sb|4,x1 " p aa 000530 000073 710004 tra L46 L50: aa 000531 000026 710004 tra L49 L48: aa 000532 600242 371500 47 eaplb sp|162 " FreeList aa 000533 700004 545111 sprplb sb|4,x1 " q L51: aa 000534 700004 765111 48 lprplb sb|4,x1 " q aa 000535 500000 236100 ldq lb|0 aa 000536 700005 756111 stq sb|5,x1 " p aa 000537 700005 234111 49 szn sb|5,x1 " p aa 000540 000017 600004 tze L52 aa 000541 700005 760111 50 lprpap sb|5,x1 " p aa 000542 000001 236100 ldq ap|1 aa 000543 700002 116111 cmpq sb|2,x1 " n aa 000544 000007 601004 tnz L53 aa 000545 700005 762111 51 lprpbp sb|5,x1 " p aa 000546 200000 235100 lda bp|0 aa 000547 700004 761111 lprpab sb|4,x1 " q aa 000550 100000 755100 sta ab|0 " q aa 000551 700005 235111 52 lda sb|5,x1 " p aa 000552 000051 710004 tra L46 L53: aa 000553 700005 763111 54 lprpbb sb|5,x1 " p aa 000554 300000 353500 eapbb bb|0 aa 000555 700004 543111 sprpbb sb|4,x1 " q aa 000556 777756 710004 tra L51 L52: L49: aa 000557 600240 236100 58 ldq sp|160 " FreeareaP aa 000560 700004 756111 stq sb|4,x1 " p aa 000561 600240 236100 59 ldq sp|160 " FreeareaP aa 000562 700002 076111 adq sb|2,x1 " n aa 000563 000001 076007 adq 1,dl " 1 aa 000564 600240 756100 stq sp|160 " FreeareaP aa 000565 600240 236100 60 ldq sp|160 " FreeareaP aa 000566 600241 116100 cmpq sp|161 " FreeareaT aa 000567 000003 605004 tpl L54 aa 000570 700004 235111 lda sb|4,x1 " p aa 000571 000032 710004 tra L46 L54: aa 000572 600046 450100 61 stz sp|38 " Errcode aa 000573 600244 234100 62 szn sp|164 " TempsegID aa 000574 000005 600004 tze L55 aa 000575 000037 353404 eapbb L56 " "Out of space in Newvec." aa 000576 700012 543111 sprpbb sb|10,x1 4a 000577 400050 272120 tsbbp lp|L57,* " Complain aa 000600 000010 000001 zero 8,1 L55: 9a 000601 400010 054100 63 aos lp|8 " OverflowCount 9a 000602 400010 236100 64 ldq lp|8 " OverflowCount aa 000603 600244 756100 stq sp|164 " TempsegID aa 000604 600244 236100 65 ldq sp|164 " TempsegID aa 000605 700012 756111 stq sb|10,x1 aa 000606 000024 353404 eapbb L58 " "Newvec" aa 000607 700013 543111 sprpbb sb|11,x1 4a 000610 400046 272120 tsbbp lp|L59,* " MakeTempSeg aa 000611 000010 000002 zero 8,2 aa 000612 700004 756111 stq sb|4,x1 " p aa 000613 700004 236111 66 ldq sb|4,x1 " p aa 000614 700002 076111 adq sb|2,x1 " n aa 000615 000001 076007 adq 1,dl " 1 aa 000616 600240 756100 stq sp|160 " FreeareaP aa 000617 700004 236111 ldq sb|4,x1 " p 4a 000620 400044 076120 adq lp|L60,* aa 000621 600241 756100 stq sp|161 " FreeareaT aa 000622 700004 235111 67 lda sb|4,x1 " p L46: aa 000623 700004 755111 sta sb|4,x1 aa 000624 700004 236111 ldq sb|4,x1 aa 000625 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000626 200000 121100 sblx1 bp|0 aa 000627 700001 764111 lprplp sb|1,x1 aa 000630 200001 710100 tra bp|1 " end of return sequence aa 000631 700003 756111 stq sb|3,x1 " temporary " Literal pool L58: aa 000632 000006 116145 zero 6,40037 " "Newvec" aa 000633 167166 145143 zero 61046,51811 L56: aa 000634 000027 117165 zero 23,40565 " "Out of space in Newvec." aa 000635 164040 157146 zero 59424,56934 aa 000636 040163 160141 zero 16499,57441 aa 000637 143145 040151 zero 50789,16489 aa 000640 156040 116145 zero 56352,40037 aa 000641 167166 145143 zero 61046,51811 aa 000642 056000 000000 zero 23552 " Begin text of MakeTimeString aa 000643 000016 115141 zero 14,39521 " MakeTimeString aa 000644 153145 124151 zero 54885,43113 aa 000645 155145 123164 zero 55909,42612 aa 000646 162151 156147 zero 58473,56423 L61: aa 000647 000000 213000 127 epaq 0 " set lp to linkage section aa 000650 700026 764161 lprplp sb|22,*au aa 000651 200000 021100 adlx1 bp|0 " BCPL save aa 000652 700000 542111 sprpbp sb|0,x1 aa 000653 700001 544111 sprplp sb|1,x1 aa 000654 700431 620111 eax0 sb|281,x1 aa 000655 777760 360003 anx0 -16,du aa 000656 700025 740100 stx0 sb|21 " end of save sequence aa 000657 700006 353511 128 eapbb sb|6,x1 " a vector aa 000660 700004 543111 sprpbb sb|4,x1 " v aa 000661 700040 353511 eapbb sb|32,x1 " a vector aa 000662 700005 543111 sprpbb sb|5,x1 " w aa 000663 000045 237004 129 ldaq L65 " arglist header aa 000664 700072 757111 staq sb|58,x1 " arg count aa 000665 700002 763111 lprpbb sb|2,x1 " t aa 000666 700074 253511 stpbb sb|60,x1 aa 000667 000043 353404 eapbb L66 " descriptor aa 000670 700100 253511 stpbb sb|64,x1 aa 000671 700005 765111 lprplb sb|5,x1 " w aa 000672 700076 651511 stplb sb|62,x1 aa 000673 000034 371404 eaplb L67 " descriptor aa 000674 700102 651511 stplb sb|66,x1 aa 000675 600010 441100 sxl1 sp|8 aa 000676 600030 650100 stplp sp|24 4a 000677 400042 352120 eapbp lp|L68,* " DateTime aa 000700 700072 350111 eapap sb|58,x1 aa 000701 700036 670120 tsblp sb|30,* " Multics call operator aa 000702 600010 721100 lxl1 sp|8 aa 000703 700001 764111 lprplp sb|1,x1 aa 000704 700005 236111 130 ldq sb|5,x1 " w aa 000705 700074 756111 stq sb|60,x1 aa 000706 000030 236007 ldq 24,dl " 24 aa 000707 700075 756111 stq sb|61,x1 aa 000710 700004 236111 ldq sb|4,x1 " v aa 000711 700076 756111 stq sb|62,x1 4a 000712 400040 272120 tsbbp lp|L69,* " MakeBcplString aa 000713 000072 000003 zero 58,3 aa 000714 700004 236111 131 ldq sb|4,x1 " v aa 000715 700074 756111 stq sb|60,x1 aa 000716 777330 272004 tsbbp L9+2 " StoreString aa 000717 000072 000001 zero 58,1 L64: aa 000720 700004 756111 stq sb|4,x1 aa 000721 700004 236111 ldq sb|4,x1 aa 000722 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000723 200000 121100 sblx1 bp|0 aa 000724 700001 764111 lprplp sb|1,x1 aa 000725 200001 710100 tra bp|1 " end of return sequence aa 000726 700003 756111 stq sb|3,x1 " temporary " Literal pool L67: aa 000727 524000 000030 zero -88064,24 " descriptor L65: aa 000730 000004 000004 zero 4,4 " arglist header aa 000731 000004 000000 zero 4 L66: aa 000732 410000 000000 zero -126976 " descriptor " Begin text of Nextparam aa 000733 000011 116145 zero 9,40037 " Nextparam aa 000734 170164 160141 zero 61556,57441 aa 000735 162141 155000 zero 58465,55808 L70: aa 000736 000000 213000 135 epaq 0 " set lp to linkage section aa 000737 700026 764161 lprplp sb|22,*au aa 000740 200000 021100 adlx1 bp|0 " BCPL save aa 000741 700000 542111 sprpbp sb|0,x1 aa 000742 700001 544111 sprplp sb|1,x1 aa 000743 700417 620111 eax0 sb|271,x1 aa 000744 777760 360003 anx0 -16,du aa 000745 700025 740100 stx0 sb|21 " end of save sequence aa 000746 600245 054100 136 aos sp|165 " ParamNumber aa 000747 600245 236100 137 ldq sp|165 " ParamNumber L73: aa 000750 700003 756111 stq sb|3,x1 aa 000751 700003 236111 ldq sb|3,x1 aa 000752 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000753 200000 121100 sblx1 bp|0 aa 000754 700001 764111 lprplp sb|1,x1 aa 000755 200001 710100 tra bp|1 " end of return sequence " Begin text of GetStream aa 000756 000011 107145 zero 9,36453 " GetStream aa 000757 164123 164162 zero 59475,59506 aa 000760 145141 155000 zero 51809,55808 aa 000761 700002 756111 140 stq sb|2,x1 " temporary L74: aa 000762 000000 213000 epaq 0 " set lp to linkage section aa 000763 700026 764161 lprplp sb|22,*au aa 000764 200000 021100 adlx1 bp|0 " BCPL save aa 000765 700000 542111 sprpbp sb|0,x1 aa 000766 700001 544111 sprplp sb|1,x1 aa 000767 701263 620111 eax0 sb|691,x1 aa 000770 777760 360003 anx0 -16,du aa 000771 700025 740100 stx0 sb|21 " end of save sequence aa 000772 700006 350111 141 eapap sb|6,x1 " a vector aa 000773 700004 540111 sprpap sb|4,x1 " Name aa 000774 700002 236111 142 ldq sb|2,x1 " Arg aa 000775 701214 756111 stq sb|652,x1 aa 000776 700004 236111 ldq sb|4,x1 " Name aa 000777 701215 756111 stq sb|653,x1 4a 001000 400036 272120 tsbbp lp|L78,* " RemoveEscapes aa 001001 001212 000002 zero 650,2 aa 001002 700004 236111 143 ldq sb|4,x1 " Name aa 001003 701214 756111 stq sb|652,x1 aa 001004 777242 272004 tsbbp L9+2 " StoreString aa 001005 001212 000001 zero 650,1 aa 001006 600201 726100 lxl6 sp|129 " FileCount aa 001007 600177 760100 lprpap sp|127 " FileNames aa 001010 000000 756116 stq ap|0,x6 aa 001011 700004 236111 144 ldq sb|4,x1 " Name aa 001012 701214 756111 stq sb|652,x1 aa 001013 000777 236007 ldq 511,dl " Vmax aa 001014 701215 756111 stq sb|653,x1 aa 001015 700004 236111 ldq sb|4,x1 " Name aa 001016 701216 756111 stq sb|654,x1 aa 001017 000175 351404 eapab L79 " ".bcpl" aa 001020 701217 541111 sprpab sb|655,x1 4a 001021 400034 272120 tsbbp lp|L80,* " Concatenate aa 001022 001212 000004 zero 650,4 aa 001023 700003 234111 145 szn sb|3,x1 " ParentStream aa 001024 000010 601004 tnz L81 aa 001025 000224 236007 ldq 148,dl aa 001026 701214 756111 stq sb|652,x1 aa 001027 700004 236111 ldq sb|4,x1 " Name aa 001030 701215 756111 stq sb|653,x1 4a 001031 400032 272120 tsbbp lp|L83,* " Open aa 001032 001212 000002 zero 650,2 aa 001033 000011 710004 tra L82 L81: aa 001034 000226 236007 ldq 150,dl aa 001035 701214 756111 stq sb|652,x1 aa 001036 700004 236111 ldq sb|4,x1 " Name aa 001037 701215 756111 stq sb|653,x1 aa 001040 700003 236111 ldq sb|3,x1 " ParentStream aa 001041 701216 756111 stq sb|654,x1 4a 001042 400032 272120 tsbbp lp|L83,* " Open aa 001043 001212 000003 zero 650,3 L82: aa 001044 701011 756111 stq sb|521,x1 aa 001045 701011 236111 ldq sb|521,x1 aa 001046 600041 756100 stq sp|33 " INPUT aa 001047 600046 234100 147 szn sp|38 " Errcode aa 001050 000005 600004 tze L84 aa 001051 700004 236111 ldq sb|4,x1 " Name aa 001052 701214 756111 stq sb|652,x1 4a 001053 400050 272120 tsbbp lp|L57,* " Complain aa 001054 001212 000001 zero 650,1 L84: aa 001055 701012 351511 150 eapab sb|522,x1 " a vector aa 001056 700005 541111 sprpab sb|5,x1 " Ent aa 001057 701026 351511 eapab sb|534,x1 " a vector aa 001060 701006 541111 sprpab sb|518,x1 " Dir aa 001061 701112 351511 151 eapab sb|586,x1 " a vector aa 001062 701010 541111 sprpab sb|520,x1 " Path aa 001063 701176 351511 eapab sb|638,x1 " a vector aa 001064 701007 541111 sprpab sb|519,x1 " w aa 001065 600201 236100 152 ldq sp|129 " FileCount aa 001066 000002 736000 qls 2 aa 001067 600200 761100 lprpab sp|128 " FilesInfo aa 001070 100000 351506 eapab ab|0,ql aa 001071 701175 541111 sprpab sb|637,x1 " Info aa 001072 600041 236100 153 ldq sp|33 " INPUT aa 001073 701214 756111 stq sb|652,x1 4a 001074 400030 272120 tsbbp lp|L85,* " StreamPointer aa 001075 001212 000001 zero 650,1 aa 001076 701011 756111 stq sb|521,x1 aa 001077 701011 236111 ldq sb|521,x1 aa 001100 701214 756111 stq sb|652,x1 aa 001101 701007 236111 ldq sb|519,x1 " w aa 001102 701215 756111 stq sb|653,x1 4a 001103 400026 272120 tsbbp lp|L86,* " ITS aa 001104 001212 000002 zero 650,2 aa 001105 701111 756111 stq sb|585,x1 aa 001106 000100 237004 ldaq L87 " arglist header aa 001107 701212 757111 staq sb|650,x1 " arg count aa 001110 701111 761111 lprpab sb|585,x1 aa 001111 701214 251511 stpab sb|652,x1 aa 001112 000101 351404 eapab L88 " descriptor aa 001113 701230 251511 stpab sb|664,x1 aa 001114 701006 763111 lprpbb sb|518,x1 " Dir aa 001115 701216 253511 stpbb sb|654,x1 aa 001116 000074 353404 eapbb L89 " descriptor aa 001117 701232 253511 stpbb sb|666,x1 aa 001120 700005 765111 lprplb sb|5,x1 " Ent aa 001121 701220 651511 stplb sb|656,x1 aa 001122 000067 371404 eaplb L90 " descriptor aa 001123 701234 651511 stplb sb|668,x1 aa 001124 701175 762111 lprpbp sb|637,x1 " Info aa 001125 200002 352100 eapbp bp|2 aa 001126 701222 252111 stpbp sb|658,x1 aa 001127 777603 352004 eapbp L66 aa 001130 701236 252111 stpbp sb|670,x1 aa 001131 701175 760111 lprpap sb|637,x1 " Info aa 001132 000001 350100 eapap ap|1 aa 001133 701224 250111 stpap sb|660,x1 aa 001134 000054 350004 eapap L91 " descriptor aa 001135 701240 250111 stpap sb|672,x1 aa 001136 600046 351500 eapab sp|38 " Errcode aa 001137 701226 251511 stpab sb|662,x1 aa 001140 000045 351404 eapab L92 " descriptor aa 001141 701242 251511 stpab sb|674,x1 aa 001142 600010 441100 sxl1 sp|8 aa 001143 600030 650100 stplp sp|24 4a 001144 400024 352120 eapbp lp|L93,* " TranslatorInfo aa 001145 701212 350111 eapap sb|650,x1 aa 001146 700036 670120 tsblp sb|30,* " Multics call operator aa 001147 600010 721100 lxl1 sp|8 aa 001150 700001 764111 lprplp sb|1,x1 aa 001151 600046 234100 155 szn sp|38 " Errcode aa 001152 000005 600004 tze L94 aa 001153 700004 236111 ldq sb|4,x1 " Name aa 001154 701214 756111 stq sb|652,x1 4a 001155 400050 272120 tsbbp lp|L57,* " Complain aa 001156 001212 000001 zero 650,1 L94: aa 001157 701006 236111 156 ldq sb|518,x1 " Dir aa 001160 701214 756111 stq sb|652,x1 aa 001161 700005 236111 ldq sb|5,x1 " Ent aa 001162 701215 756111 stq sb|653,x1 aa 001163 701010 236111 ldq sb|520,x1 " Path aa 001164 701216 756111 stq sb|654,x1 4a 001165 400022 272120 tsbbp lp|L95,* " JoinPathname aa 001166 001212 000003 zero 650,3 aa 001167 701025 756111 stq sb|533,x1 aa 001170 701025 236111 ldq sb|533,x1 aa 001171 701214 756111 stq sb|652,x1 aa 001172 777054 272004 tsbbp L9+2 " StoreString aa 001173 001212 000001 zero 650,1 aa 001174 701175 763111 lprpbb sb|637,x1 " Info aa 001175 300000 756100 stq bb|0 aa 001176 600201 236100 158 ldq sp|129 " FileCount aa 001177 000015 736000 qls 13 aa 001200 600214 756100 stq sp|140 " LineCount L77: aa 001201 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001202 200000 121100 sblx1 bp|0 aa 001203 700001 764111 lprplp sb|1,x1 aa 001204 200001 710100 tra bp|1 " end of return sequence " Literal pool L92: aa 001205 404000 000000 zero -129024 " descriptor L87: aa 001206 000014 000004 zero 12,4 " arglist header aa 001207 000014 000000 zero 12 L91: aa 001210 514000 000044 zero -92160,36 " descriptor L90: aa 001211 524000 000040 zero -88064,32 " descriptor L89: aa 001212 524000 000250 zero -88064,168 " descriptor L88: aa 001213 464000 000000 zero -104448 " descriptor L79: aa 001214 000005 056142 zero 5,23650 " ".bcpl" aa 001215 143160 154000 zero 50800,55296 " Begin text of PushInput aa 001216 000011 120165 zero 9,41077 " PushInput aa 001217 163150 111156 zero 58984,37486 aa 001220 160165 164000 zero 57461,59392 L96: aa 001221 000000 213000 161 epaq 0 " set lp to linkage section aa 001222 700026 764161 lprplp sb|22,*au aa 001223 200000 021100 adlx1 bp|0 " BCPL save aa 001224 700000 542111 sprpbp sb|0,x1 aa 001225 700001 544111 sprplp sb|1,x1 aa 001226 700423 620111 eax0 sb|275,x1 aa 001227 777760 360003 anx0 -16,du aa 001230 700025 740100 stx0 sb|21 " end of save sequence aa 001231 600201 054100 162 aos sp|129 " FileCount aa 001232 600201 236100 163 ldq sp|129 " FileCount aa 001233 000040 116007 cmpq 32,dl " 32 aa 001234 000005 604004 tmi L101 aa 001235 000040 371404 eaplb L102 " "The number of head files has exceeded the implementation limit of 32." aa 001236 700012 545111 sprplb sb|10,x1 4a 001237 400050 272120 tsbbp lp|L57,* " Complain aa 001240 000010 000001 zero 8,1 L101: aa 001241 000002 235007 164 lda 2,dl " 2 aa 001242 700012 755111 sta sb|10,x1 aa 001243 777235 272004 tsbbp L1+2 " Newvec aa 001244 000010 000001 zero 8,1 aa 001245 700003 756111 stq sb|3,x1 " x aa 001246 600246 236100 165 ldq sp|166 " GetP aa 001247 700003 765111 lprplb sb|3,x1 " x aa 001250 500000 756100 stq lb|0 aa 001251 600214 236100 ldq sp|140 " LineCount aa 001252 700003 760111 lprpap sb|3,x1 " x aa 001253 000002 756100 stq ap|2 aa 001254 600041 236100 ldq sp|33 " INPUT aa 001255 700003 761111 lprpab sb|3,x1 " x aa 001256 100001 756100 stq ab|1 aa 001257 700003 236111 166 ldq sb|3,x1 " x aa 001260 600246 756100 stq sp|166 " GetP aa 001261 600041 450100 167 stz sp|33 " INPUT aa 001262 700002 236111 168 ldq sb|2,x1 " NewName aa 001263 700012 756111 stq sb|10,x1 aa 001264 600246 762100 lprpbp sp|166 " GetP aa 001265 200001 236100 ldq bp|1 aa 001266 700013 756111 stq sb|11,x1 aa 001267 777475 272004 tsbbp L74+2 " GetStream aa 001270 000010 000002 zero 8,2 L100: aa 001271 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001272 200000 121100 sblx1 bp|0 aa 001273 700001 764111 lprplp sb|1,x1 aa 001274 200001 710100 tra bp|1 " end of return sequence " Literal pool L102: aa 001275 000105 124150 zero 69,43112 " "The number of head files has exceeded the implementation limit of 32." aa 001276 145040 156165 zero 51744,56437 aa 001277 155142 145162 zero 55906,51826 aa 001300 040157 146040 zero 16495,52256 aa 001301 150145 141144 zero 53349,49764 aa 001302 040146 151154 zero 16486,53868 aa 001303 145163 040150 zero 51827,16488 aa 001304 141163 040145 zero 49779,16485 aa 001305 170143 145145 zero 61539,51813 aa 001306 144145 144040 zero 51301,51232 aa 001307 164150 145040 zero 59496,51744 aa 001310 151155 160154 zero 53869,57452 aa 001311 145155 145156 zero 51821,51822 aa 001312 164141 164151 zero 59489,59497 aa 001313 157156 040154 zero 56942,16492 aa 001314 151155 151164 zero 53869,53876 aa 001315 040157 146040 zero 16495,52256 aa 001316 063062 056000 zero 26162,23552 " Begin text of PopInput aa 001317 000010 120157 zero 8,41071 " PopInput aa 001320 160111 156160 zero 57417,56432 aa 001321 165164 000000 zero 60020 L97: aa 001322 000000 213000 170 epaq 0 " set lp to linkage section aa 001323 700026 764161 lprplp sb|22,*au aa 001324 200000 021100 adlx1 bp|0 " BCPL save aa 001325 700000 542111 sprpbp sb|0,x1 aa 001326 700001 544111 sprplp sb|1,x1 aa 001327 700423 620111 eax0 sb|275,x1 aa 001330 777760 360003 anx0 -16,du aa 001331 700025 740100 stx0 sb|21 " end of save sequence aa 001332 600041 236100 171 ldq sp|33 " INPUT aa 001333 700006 756111 stq sb|6,x1 4a 001334 400020 272120 tsbbp lp|L106,* " Close aa 001335 000004 000001 zero 4,1 aa 001336 600246 763100 172 lprpbb sp|166 " GetP aa 001337 300002 236100 ldq bb|2 aa 001340 600214 756100 stq sp|140 " LineCount aa 001341 600246 765100 lprplb sp|166 " GetP aa 001342 500001 236100 ldq lb|1 aa 001343 600041 756100 stq sp|33 " INPUT aa 001344 600246 236100 173 ldq sp|166 " GetP aa 001345 700002 756111 stq sb|2,x1 " x aa 001346 600246 760100 174 lprpap sp|166 " GetP aa 001347 000000 236100 ldq ap|0 aa 001350 600246 756100 stq sp|166 " GetP aa 001351 700002 236111 175 ldq sb|2,x1 " x aa 001352 700006 756111 stq sb|6,x1 aa 001353 000002 236007 ldq 2,dl " 2 aa 001354 700007 756111 stq sb|7,x1 aa 001355 776737 272004 tsbbp L8+2 " Freevec aa 001356 000004 000002 zero 4,2 L105: aa 001357 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001360 200000 121100 sblx1 bp|0 aa 001361 700001 764111 lprplp sb|1,x1 aa 001362 200001 710100 tra bp|1 " end of return sequence " Begin text of SaveOldUsage aa 001363 000014 123141 zero 12,42593 " SaveOldUsage aa 001364 166145 117154 zero 60517,40556 aa 001365 144125 163141 zero 51285,58977 aa 001366 147145 000000 zero 52837 L107: aa 001367 000000 213000 178 epaq 0 " set lp to linkage section aa 001370 700026 764161 lprplp sb|22,*au aa 001371 200000 021100 adlx1 bp|0 " BCPL save aa 001372 700000 542111 sprpbp sb|0,x1 aa 001373 700001 544111 sprplp sb|1,x1 aa 001374 700421 620111 eax0 sb|273,x1 aa 001375 777760 360003 anx0 -16,du aa 001376 700025 740100 stx0 sb|21 " end of save sequence 4a 001377 400016 272120 179 tsbbp lp|L112,* " GetCpuUsage aa 001400 000006 000000 zero 6 aa 001401 700003 756111 stq sb|3,x1 " T aa 001402 600236 236100 180 ldq sp|158 " TimeNotAccountedFor aa 001403 700004 756111 stq sb|4,x1 " R aa 001404 700003 236111 181 ldq sb|3,x1 " T aa 001405 600236 756100 stq sp|158 " TimeNotAccountedFor aa 001406 700004 236111 182 ldq sb|4,x1 " R aa 001407 700003 176111 sbq sb|3,x1 " T L111: aa 001410 700003 756111 stq sb|3,x1 aa 001411 700003 236111 ldq sb|3,x1 aa 001412 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001413 200000 121100 sblx1 bp|0 aa 001414 700001 764111 lprplp sb|1,x1 aa 001415 200001 710100 tra bp|1 " end of return sequence " Begin text of RecordUsage aa 001416 000013 122145 zero 11,42085 " RecordUsage aa 001417 143157 162144 zero 50799,58468 aa 001420 125163 141147 zero 43635,49767 aa 001421 145000 000000 zero 51712 aa 001422 700002 756111 184 stq sb|2,x1 " temporary L108: aa 001423 000000 213000 epaq 0 " set lp to linkage section aa 001424 700026 764161 lprplp sb|22,*au aa 001425 200000 021100 adlx1 bp|0 " BCPL save aa 001426 700000 542111 sprpbp sb|0,x1 aa 001427 700001 544111 sprplp sb|1,x1 aa 001430 700421 620111 eax0 sb|273,x1 aa 001431 777760 360003 anx0 -16,du aa 001432 700025 740100 stx0 sb|21 " end of save sequence 4a 001433 400016 272120 185 tsbbp lp|L112,* " GetCpuUsage aa 001434 000012 000000 zero 10 aa 001435 700004 756111 stq sb|4,x1 " T aa 001436 700004 236111 186 ldq sb|4,x1 " T aa 001437 600236 176100 sbq sp|158 " TimeNotAccountedFor aa 001440 600237 176100 sbq sp|159 " TimingFudgeFactor aa 001441 700002 722111 lxl2 sb|2,x1 " MeterSlot aa 001442 600227 761100 lprpab sp|151 " MeterData aa 001443 100000 056112 asq ab|0,x2 aa 001444 700002 236111 187 ldq sb|2,x1 " MeterSlot aa 001445 000001 076007 adq 1,dl " 1 aa 001446 700002 235111 lda sb|2,x1 " MeterSlot aa 001447 000001 075007 ada 1,dl " 1 aa 001450 700006 756111 stq sb|6,x1 " temporary aa 001451 600227 762100 lprpbp sp|151 " MeterData aa 001452 200000 236105 ldq bp|0,al aa 001453 000001 076007 adq 1,dl " 1 aa 001454 700006 723111 lxl3 sb|6,x1 aa 001455 600227 763100 lprpbb sp|151 " MeterData aa 001456 300000 756113 stq bb|0,x3 aa 001457 700004 236111 188 ldq sb|4,x1 " T aa 001460 700003 076111 adq sb|3,x1 " OldT aa 001461 600237 076100 adq sp|159 " TimingFudgeFactor aa 001462 600236 756100 stq sp|158 " TimeNotAccountedFor L115: aa 001463 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001464 200000 121100 sblx1 bp|0 aa 001465 700001 764111 lprplp sb|1,x1 aa 001466 200001 710100 tra bp|1 " end of return sequence " Begin text of FormStringconst aa 001467 000017 106157 zero 15,35951 " FormStringconst aa 001470 162155 123164 zero 58477,42612 aa 001471 162151 156147 zero 58473,56423 aa 001472 143157 156163 zero 50799,56435 aa 001473 164000 000000 zero 59392 L117: aa 001474 000000 213000 197 epaq 0 " set lp to linkage section aa 001475 700026 764161 lprplp sb|22,*au aa 001476 200000 021100 adlx1 bp|0 " BCPL save aa 001477 700000 542111 sprpbp sb|0,x1 aa 001500 700001 544111 sprplp sb|1,x1 aa 001501 702057 620111 eax0 sb|1071,x1 aa 001502 777760 360003 anx0 -16,du aa 001503 700025 740100 stx0 sb|21 " end of save sequence aa 001504 700010 371511 198 eaplb sb|8,x1 " a vector aa 001505 700005 545111 sprplb sb|5,x1 " v aa 001506 701010 371511 eaplb sb|520,x1 " a vector aa 001507 700006 545111 sprplb sb|6,x1 " w aa 001510 700002 236111 199 ldq sb|2,x1 " s aa 001511 702036 756111 stq sb|1054,x1 aa 001512 700005 236111 ldq sb|5,x1 " v aa 001513 702037 756111 stq sb|1055,x1 4a 001514 400036 272120 tsbbp lp|L78,* " RemoveEscapes aa 001515 002034 000002 zero 1052,2 aa 001516 700007 756111 stq sb|7,x1 aa 001517 700007 236111 ldq sb|7,x1 aa 001520 702036 756111 stq sb|1054,x1 aa 001521 700006 236111 ldq sb|6,x1 " w aa 001522 702037 756111 stq sb|1055,x1 4a 001523 400014 272120 tsbbp lp|L121,* " Unpackstring aa 001524 002034 000002 zero 1052,2 aa 001525 702014 450111 200 stz sb|1036,x1 " Nwords aa 001526 700006 765111 lprplb sb|6,x1 " w aa 001527 500000 236100 ldq lb|0 aa 001530 700007 756111 stq sb|7,x1 " Len aa 001531 700007 236111 201 ldq sb|7,x1 " Len aa 001532 000003 076007 adq 3,dl " 3 aa 001533 700006 760111 lprpap sb|6,x1 " w aa 001534 000000 450106 stz ap|0,ql aa 001535 700007 236111 ldq sb|7,x1 " Len aa 001536 000002 076007 adq 2,dl " 2 aa 001537 700006 761111 lprpab sb|6,x1 " w aa 001540 100000 450106 stz ab|0,ql aa 001541 700007 236111 ldq sb|7,x1 " Len aa 001542 000001 076007 adq 1,dl " 1 aa 001543 700006 762111 lprpbp sb|6,x1 " w aa 001544 200000 450106 stz bp|0,ql aa 001545 600153 236100 202 ldq sp|107 " Machine aa 001546 014044 116007 cmpq 6180,dl " 6180 aa 001547 000063 601004 tnz L122 aa 001550 700007 235111 203 lda sb|7,x1 " Len aa 001551 000022 735000 als 18 aa 001552 700006 763111 lprpbb sb|6,x1 " w aa 001553 300001 236100 ldq bb|1 aa 001554 000011 736000 qls 9 aa 001555 600000 755100 sta sp|0 aa 001556 600000 276100 orq sp|0 aa 001557 700006 765111 lprplb sb|6,x1 " w aa 001560 500002 276100 orq lb|2 aa 001561 700003 760111 lprpap sb|3,x1 " Space aa 001562 000000 756100 stq ap|0 aa 001563 000001 236007 204 ldq 1,dl " 1 aa 001564 702014 756111 stq sb|1036,x1 " Nwords aa 001565 000003 236007 205 ldq 3,dl " 3 aa 001566 702015 756111 stq sb|1037,x1 " i aa 001567 700007 236111 ldq sb|7,x1 " Len aa 001570 702016 756111 stq sb|1038,x1 aa 001571 000035 710004 tra L124 L125: aa 001572 702015 236111 206 ldq sb|1037,x1 " i aa 001573 000001 076007 adq 1,dl " 1 aa 001574 700006 761111 lprpab sb|6,x1 " w aa 001575 100000 235106 lda ab|0,ql aa 001576 000022 735000 als 18 aa 001577 702015 724111 lxl4 sb|1037,x1 " i aa 001600 700006 762111 lprpbp sb|6,x1 " w aa 001601 200000 236114 ldq bp|0,x4 aa 001602 000033 736000 qls 27 aa 001603 600000 756100 stq sp|0 aa 001604 600000 275100 ora sp|0 aa 001605 702015 236111 ldq sb|1037,x1 " i aa 001606 000002 076007 adq 2,dl " 2 aa 001607 702020 755111 sta sb|1040,x1 " temporary aa 001610 700006 763111 lprpbb sb|6,x1 " w aa 001611 300000 235106 lda bb|0,ql aa 001612 000011 735000 als 9 aa 001613 702020 275111 ora sb|1040,x1 aa 001614 702015 236111 ldq sb|1037,x1 " i aa 001615 000003 076007 adq 3,dl " 3 aa 001616 700006 765111 lprplb sb|6,x1 " w aa 001617 500000 275106 ora lb|0,ql aa 001620 702014 725111 lxl5 sb|1036,x1 " Nwords aa 001621 700003 760111 lprpap sb|3,x1 " Space aa 001622 000000 755115 sta ap|0,x5 aa 001623 702014 054111 207 aos sb|1036,x1 " Nwords aa 001624 000004 236007 ldq 4,dl " 4 aa 001625 702015 056111 asq sb|1037,x1 " i L124: aa 001626 702015 236111 ldq sb|1037,x1 " i aa 001627 702016 116111 cmpq sb|1038,x1 aa 001630 777742 604404 tmoz L125 aa 001631 000044 710004 tra L123 L122: aa 001632 702016 450111 210 stz sb|1038,x1 " i aa 001633 700007 235111 lda sb|7,x1 " Len aa 001634 702015 755111 sta sb|1037,x1 aa 001635 000035 710004 tra L126 L127: aa 001636 702016 726111 211 lxl6 sb|1038,x1 " i aa 001637 700006 761111 lprpab sb|6,x1 " w aa 001640 100000 235116 lda ab|0,x6 aa 001641 000033 735000 als 27 aa 001642 702016 236111 ldq sb|1038,x1 " i aa 001643 000001 076007 adq 1,dl " 1 aa 001644 702021 755111 sta sb|1041,x1 " temporary aa 001645 700006 762111 lprpbp sb|6,x1 " w aa 001646 200000 235106 lda bp|0,ql aa 001647 000022 735000 als 18 aa 001650 702021 275111 ora sb|1041,x1 aa 001651 702016 236111 ldq sb|1038,x1 " i aa 001652 000002 076007 adq 2,dl " 2 aa 001653 702020 755111 sta sb|1040,x1 " temporary aa 001654 700006 763111 lprpbb sb|6,x1 " w aa 001655 300000 235106 lda bb|0,ql aa 001656 000011 735000 als 9 aa 001657 702020 275111 ora sb|1040,x1 aa 001660 702016 236111 ldq sb|1038,x1 " i aa 001661 000003 076007 adq 3,dl " 3 aa 001662 700006 765111 lprplb sb|6,x1 " w aa 001663 500000 275106 ora lb|0,ql aa 001664 702014 722111 lxl2 sb|1036,x1 " Nwords aa 001665 700003 760111 lprpap sb|3,x1 " Space aa 001666 000000 755112 sta ap|0,x2 aa 001667 702014 054111 212 aos sb|1036,x1 " Nwords aa 001670 000004 236007 ldq 4,dl " 4 aa 001671 702016 056111 asq sb|1038,x1 " i L126: aa 001672 702016 236111 ldq sb|1038,x1 " i aa 001673 702015 116111 cmpq sb|1037,x1 aa 001674 777742 604404 tmoz L127 L123: aa 001675 702014 235111 214 lda sb|1036,x1 " Nwords aa 001676 000001 175007 sba 1,dl " 1 L120: aa 001677 700005 755111 sta sb|5,x1 aa 001700 700005 235111 lda sb|5,x1 aa 001701 000044 777000 llr 36 " exchange A and Q aa 001702 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001703 200000 121100 sblx1 bp|0 aa 001704 700001 764111 lprplp sb|1,x1 aa 001705 200001 710100 tra bp|1 " end of return sequence " Begin text of FormCharconst aa 001706 000015 106157 zero 13,35951 " FormCharconst aa 001707 162155 103150 zero 58477,34408 aa 001710 141162 143157 zero 49778,50799 aa 001711 156163 164000 zero 56435,59392 aa 001712 700004 756111 191 stq sb|4,x1 " temporary L116: aa 001713 000000 213000 epaq 0 " set lp to linkage section aa 001714 700026 764161 lprplp sb|22,*au aa 001715 200000 021100 adlx1 bp|0 " BCPL save aa 001716 700000 542111 sprpbp sb|0,x1 aa 001717 700001 544111 sprplp sb|1,x1 aa 001720 702037 620111 eax0 sb|1055,x1 aa 001721 777760 360003 anx0 -16,du aa 001722 700025 740100 stx0 sb|21 " end of save sequence aa 001723 700004 450111 192 stz sb|4,x1 " R aa 001724 700010 351511 eapab sb|8,x1 " a vector aa 001725 700005 541111 sprpab sb|5,x1 " v aa 001726 701010 351511 eapab sb|520,x1 " a vector aa 001727 700006 541111 sprpab sb|6,x1 " w aa 001730 700002 236111 193 ldq sb|2,x1 " s aa 001731 702016 756111 stq sb|1038,x1 aa 001732 700005 236111 ldq sb|5,x1 " v aa 001733 702017 756111 stq sb|1039,x1 4a 001734 400036 272120 tsbbp lp|L78,* " RemoveEscapes aa 001735 002014 000002 zero 1036,2 aa 001736 700007 756111 stq sb|7,x1 aa 001737 700007 236111 ldq sb|7,x1 aa 001740 702016 756111 stq sb|1038,x1 aa 001741 700006 236111 ldq sb|6,x1 " w aa 001742 702017 756111 stq sb|1039,x1 4a 001743 400014 272120 tsbbp lp|L121,* " Unpackstring aa 001744 002014 000002 zero 1036,2 aa 001745 000001 236007 194 ldq 1,dl " 1 aa 001746 700007 756111 stq sb|7,x1 " i aa 001747 700006 761111 lprpab sb|6,x1 " w aa 001750 100000 236100 ldq ab|0 aa 001751 702010 756111 stq sb|1032,x1 aa 001752 000010 710004 tra L131 L132: aa 001753 700004 236111 ldq sb|4,x1 " R aa 001754 000011 736000 qls 9 aa 001755 700007 723111 lxl3 sb|7,x1 " i aa 001756 700006 762111 lprpbp sb|6,x1 " w aa 001757 200000 276113 orq bp|0,x3 aa 001760 700004 756111 stq sb|4,x1 " R aa 001761 700007 054111 aos sb|7,x1 " i L131: aa 001762 700007 236111 ldq sb|7,x1 " i aa 001763 702010 116111 cmpq sb|1032,x1 aa 001764 777767 604404 tmoz L132 aa 001765 700004 235111 195 lda sb|4,x1 " R L130: aa 001766 700004 755111 sta sb|4,x1 aa 001767 700004 235111 lda sb|4,x1 aa 001770 000044 777000 llr 36 " exchange A and Q aa 001771 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001772 200000 121100 sblx1 bp|0 aa 001773 700001 764111 lprplp sb|1,x1 aa 001774 200001 710100 tra bp|1 " end of return sequence " Begin text of Cleanup aa 001775 000007 103154 zero 7,34412 " Cleanup aa 001776 145141 156165 zero 51809,56437 aa 001777 160000 000000 zero 57344 aa 002000 700003 756111 241 stq sb|3,x1 " temporary L134: aa 002001 000000 213000 epaq 0 " set lp to linkage section aa 002002 700026 764161 lprplp sb|22,*au aa 002003 200000 021100 adlx1 bp|0 " BCPL save aa 002004 700000 542111 sprpbp sb|0,x1 aa 002005 700001 544111 sprplp sb|1,x1 aa 002006 700423 620111 eax0 sb|275,x1 aa 002007 777760 360003 anx0 -16,du aa 002010 700025 740100 stx0 sb|21 " end of save sequence aa 002011 000011 710004 242 tra L138 L139: aa 002012 600246 763100 243 lprpbb sp|166 " GetP aa 002013 300001 236100 ldq bb|1 aa 002014 700006 756111 stq sb|6,x1 4a 002015 400020 272120 tsbbp lp|L106,* " Close aa 002016 000004 000001 zero 4,1 aa 002017 600246 765100 244 lprplb sp|166 " GetP aa 002020 500000 236100 ldq lb|0 aa 002021 600246 756100 stq sp|166 " GetP L138: aa 002022 600246 234100 szn sp|166 " GetP aa 002023 777767 601004 tnz L139 aa 002024 600244 234100 246 szn sp|164 " TempsegID aa 002025 000010 600004 tze L140 aa 002026 600244 236100 247 ldq sp|164 " TempsegID aa 002027 700006 756111 stq sb|6,x1 aa 002030 776602 350004 eapap L58 " "Newvec" aa 002031 700007 540111 sprpap sb|7,x1 4a 002032 400012 272120 tsbbp lp|L141,* " DeleteTempSeg aa 002033 000004 000002 zero 4,2 aa 002034 600244 450100 248 stz sp|164 " TempsegID L140: aa 002035 600041 234100 250 szn sp|33 " INPUT aa 002036 000006 600004 tze L142 aa 002037 600041 236100 251 ldq sp|33 " INPUT aa 002040 700006 756111 stq sb|6,x1 4a 002041 400020 272120 tsbbp lp|L106,* " Close aa 002042 000004 000001 zero 4,1 aa 002043 600041 450100 252 stz sp|33 " INPUT L142: L137: aa 002044 700000 762111 lprpbp sb|0,x1 " bcpl return aa 002045 200000 121100 sblx1 bp|0 aa 002046 700001 764111 lprplp sb|1,x1 aa 002047 200001 710100 tra bp|1 " end of return sequence " Begin text of UtilitiesInit aa 002050 000015 125164 zero 13,43636 " UtilitiesInit aa 002051 151154 151164 zero 53868,53876 aa 002052 151145 163111 zero 53861,58953 aa 002053 156151 164000 zero 56425,59392 L133: aa 002054 000000 213000 217 epaq 0 " set lp to linkage section aa 002055 700026 764161 lprplp sb|22,*au aa 002056 200000 021100 adlx1 bp|0 " BCPL save aa 002057 700000 542111 sprpbp sb|0,x1 aa 002060 700001 544111 sprplp sb|1,x1 aa 002061 700423 620111 eax0 sb|275,x1 aa 002062 777760 360003 anx0 -16,du aa 002063 700025 740100 stx0 sb|21 " end of save sequence aa 002064 600242 450100 218 stz sp|162 " FreeList aa 002065 600244 450100 stz sp|164 " TempsegID aa 002066 700002 236111 219 ldq sb|2,x1 " v aa 002067 600243 756100 stq sp|163 " FreeListArray aa 002070 700005 450111 220 stz sb|5,x1 " i aa 002071 000005 710004 tra L146 L147: aa 002072 700005 724111 lxl4 sb|5,x1 " i aa 002073 600243 760100 lprpap sp|163 " FreeListArray aa 002074 000000 450114 stz ap|0,x4 aa 002075 700005 054111 aos sb|5,x1 " i L146: aa 002076 700005 236111 ldq sb|5,x1 " i aa 002077 000024 116007 cmpq 20,dl " 20 aa 002100 777772 604404 tmoz L147 aa 002101 700002 235111 221 lda sb|2,x1 " v aa 002102 000025 075007 ada 21,dl " 21 aa 002103 600240 755100 sta sp|160 " FreeareaP aa 002104 700002 235111 lda sb|2,x1 " v aa 002105 700003 075111 ada sb|3,x1 " Len aa 002106 600241 755100 sta sp|161 " FreeareaT aa 002107 600245 450100 223 stz sp|165 " ParamNumber aa 002110 000200 235007 225 lda 128,dl aa 002111 700026 755111 sta sb|22,x1 aa 002112 776366 272004 tsbbp L1+2 " Newvec aa 002113 000024 000001 zero 20,1 aa 002114 600200 756100 stq sp|128 " FilesInfo aa 002115 000040 236007 ldq 32,dl " 32 aa 002116 700026 756111 stq sb|22,x1 aa 002117 776361 272004 tsbbp L1+2 " Newvec aa 002120 000024 000001 zero 20,1 aa 002121 600177 756100 stq sp|127 " FileNames aa 002122 600201 450100 stz sp|129 " FileCount aa 002123 600200 236100 226 ldq sp|128 " FilesInfo aa 002124 000001 076007 adq 1,dl " 1 aa 002125 000110 376004 anq L148 " Even aa 002126 600200 756100 stq sp|128 " FilesInfo aa 002127 600246 450100 227 stz sp|166 " GetP aa 002130 600041 450100 stz sp|33 " INPUT aa 002131 600226 234100 229 szn sp|150 " Metering aa 002132 000077 600004 tze L149 aa 002133 000063 236007 230 ldq 51,dl " Meters_Length aa 002134 700026 756111 stq sb|22,x1 aa 002135 776343 272004 tsbbp L1+2 " Newvec aa 002136 000024 000001 zero 20,1 aa 002137 600227 756100 stq sp|151 " MeterData aa 002140 700005 450111 231 stz sb|5,x1 " i aa 002141 000005 710004 tra L150 L151: aa 002142 700005 725111 lxl5 sb|5,x1 " i aa 002143 600227 761100 lprpab sp|151 " MeterData aa 002144 100000 450115 stz ab|0,x5 aa 002145 700005 054111 aos sb|5,x1 " i L150: aa 002146 700005 236111 ldq sb|5,x1 " i aa 002147 000063 116007 cmpq 51,dl " Meters_Length aa 002150 777772 604404 tmoz L151 aa 002151 600237 450100 232 stz sp|159 " TimingFudgeFactor aa 002152 700004 235111 lda sb|4,x1 " StartingTime aa 002153 600236 755100 sta sp|158 " TimeNotAccountedFor aa 002154 700006 352111 233 eapbp sb|6,x1 " a vector aa 002155 700005 542111 sprpbp sb|5,x1 " t aa 002156 777213 272004 234 tsbbp L107+2 " SaveOldUsage aa 002157 000024 000000 zero 20 aa 002160 700021 756111 stq sb|17,x1 aa 002161 000055 236007 ldq 45,dl " MeteringOverhead_Meter aa 002162 700026 756111 stq sb|22,x1 aa 002163 700021 236111 ldq sb|17,x1 aa 002164 700027 756111 stq sb|23,x1 aa 002165 777240 272004 tsbbp L108+2 " RecordUsage aa 002166 000024 000002 zero 20,2 aa 002167 600227 762100 235 lprpbp sp|151 " MeterData aa 002170 200055 450100 stz bp|45 aa 002171 000001 236007 236 ldq 1,dl " 1 aa 002172 700021 756111 stq sb|17,x1 " i aa 002173 000007 710004 tra L152 L153: aa 002174 777175 272004 tsbbp L107+2 " SaveOldUsage aa 002175 000024 000000 zero 20 aa 002176 700021 726111 lxl6 sb|17,x1 " i aa 002177 700005 763111 lprpbb sb|5,x1 " t aa 002200 300000 756116 stq bb|0,x6 aa 002201 700021 054111 aos sb|17,x1 " i L152: aa 002202 700021 236111 ldq sb|17,x1 " i aa 002203 000012 116007 cmpq 10,dl " 10 aa 002204 777770 604404 tmoz L153 aa 002205 000012 235007 237 lda 10,dl " 10 aa 002206 700021 755111 sta sb|17,x1 " i aa 002207 000013 710004 tra L154 L155: aa 002210 000055 235007 lda 45,dl " MeteringOverhead_Meter aa 002211 700026 755111 sta sb|22,x1 aa 002212 700021 722111 lxl2 sb|17,x1 " i aa 002213 700005 765111 lprplb sb|5,x1 " t aa 002214 500000 235112 lda lb|0,x2 aa 002215 700027 755111 sta sb|23,x1 aa 002216 777207 272004 tsbbp L108+2 " RecordUsage aa 002217 000024 000002 zero 20,2 aa 002220 000001 335007 lca 1,dl aa 002221 700021 055111 asa sb|17,x1 " i L154: aa 002222 700021 235111 lda sb|17,x1 " i aa 002223 000001 115007 cmpa 1,dl " 1 aa 002224 777764 605004 tpl L155 aa 002225 600227 760100 238 lprpap sp|151 " MeterData aa 002226 000055 236100 ldq ap|45 aa 002227 000023 506007 div 19,dl " 19 aa 002230 600237 756100 stq sp|159 " TimingFudgeFactor L149: L145: aa 002231 700000 762111 lprpbp sb|0,x1 " bcpl return aa 002232 200000 121100 sblx1 bp|0 aa 002233 700001 764111 lprplp sb|1,x1 aa 002234 200001 710100 tra bp|1 " end of return sequence " Literal pool L148: aa 002235 777777 777776 zero -1,-2 " Even " Definition section part one - external entry points 5a 000000 000103 000000 " pointer to first definition aa 000001 000000 600000 " flags: new format, ignore header aa 000002 000000 000000 " list terminator aa 000003 014142 143160 " "bcpl_utility" aa 000004 154137 165164 aa 000005 151154 151164 aa 000006 171000 000000 aa 000007 007103 154145 " "Cleanup" aa 000010 141156 165160 aa 000011 015125 164151 " "UtilitiesInit" aa 000012 154151 164151 aa 000013 145163 111156 aa 000014 151164 000000 aa 000015 017106 157162 " "FormStringconst" aa 000016 155123 164162 aa 000017 151156 147143 aa 000020 157156 163164 aa 000021 015106 157162 " "FormCharconst" aa 000022 155103 150141 aa 000023 162143 157156 aa 000024 163164 000000 aa 000025 013122 145143 " "RecordUsage" aa 000026 157162 144125 aa 000027 163141 147145 aa 000030 014123 141166 " "SaveOldUsage" aa 000031 145117 154144 aa 000032 125163 141147 aa 000033 145000 000000 aa 000034 010120 157160 " "PopInput" aa 000035 111156 160165 aa 000036 164000 000000 aa 000037 011120 165163 " "PushInput" aa 000040 150111 156160 aa 000041 165164 000000 aa 000042 011107 145164 " "GetStream" aa 000043 123164 162145 aa 000044 141155 000000 aa 000045 011116 145170 " "Nextparam" aa 000046 164160 141162 aa 000047 141155 000000 aa 000050 016115 141153 " "MakeTimeString" aa 000051 145124 151155 aa 000052 145123 164162 aa 000053 151156 147000 aa 000054 013123 164157 " "StoreString" aa 000055 162145 123164 aa 000056 162151 156147 aa 000057 007106 162145 " "Freevec" aa 000060 145166 145143 aa 000061 005114 151163 " "List6" aa 000062 164066 000000 aa 000063 005114 151163 " "List5" aa 000064 164065 000000 aa 000065 005114 151163 " "List4" aa 000066 164064 000000 aa 000067 005114 151163 " "List3" aa 000070 164063 000000 aa 000071 005114 151163 " "List2" aa 000072 164062 000000 aa 000073 005114 151163 " "List1" aa 000074 164061 000000 aa 000075 006116 145167 " "Newvec" aa 000076 166145 143000 aa 000077 014163 171155 " "symbol_table" aa 000100 142157 154137 aa 000101 164141 142154 aa 000102 145000 000000 " Segname definition for bcpl_utility 55 000103 000106 000002 " forward, backward threads 5a 000104 000002 400003 " value defined, class flags 55 000105 000003 000106 " name pointer, first entry def " Definition for Cleanup 55 000106 000111 000103 " forward, backward threads 0a 000107 002001 500000 " value defined, class flags 55 000110 000007 000103 " name pointer, segname def pointer " Definition for UtilitiesInit 55 000111 000114 000106 " forward, backward threads 0a 000112 002054 500000 " value defined, class flags 55 000113 000011 000103 " name pointer, segname def pointer " Definition for FormStringconst 55 000114 000117 000111 " forward, backward threads 0a 000115 001474 500000 " value defined, class flags 55 000116 000015 000103 " name pointer, segname def pointer " Definition for FormCharconst 55 000117 000122 000114 " forward, backward threads 0a 000120 001713 500000 " value defined, class flags 55 000121 000021 000103 " name pointer, segname def pointer " Definition for RecordUsage 55 000122 000125 000117 " forward, backward threads 0a 000123 001423 500000 " value defined, class flags 55 000124 000025 000103 " name pointer, segname def pointer " Definition for SaveOldUsage 55 000125 000130 000122 " forward, backward threads 0a 000126 001367 500000 " value defined, class flags 55 000127 000030 000103 " name pointer, segname def pointer " Definition for PopInput 55 000130 000133 000125 " forward, backward threads 0a 000131 001322 500000 " value defined, class flags 55 000132 000034 000103 " name pointer, segname def pointer " Definition for PushInput 55 000133 000136 000130 " forward, backward threads 0a 000134 001221 500000 " value defined, class flags 55 000135 000037 000103 " name pointer, segname def pointer " Definition for GetStream 55 000136 000141 000133 " forward, backward threads 0a 000137 000762 500000 " value defined, class flags 55 000140 000042 000103 " name pointer, segname def pointer " Definition for Nextparam 55 000141 000144 000136 " forward, backward threads 0a 000142 000736 500000 " value defined, class flags 55 000143 000045 000103 " name pointer, segname def pointer " Definition for MakeTimeString 55 000144 000147 000141 " forward, backward threads 0a 000145 000647 500000 " value defined, class flags 55 000146 000050 000103 " name pointer, segname def pointer " Definition for StoreString 55 000147 000152 000144 " forward, backward threads 0a 000150 000244 500000 " value defined, class flags 55 000151 000054 000103 " name pointer, segname def pointer " Definition for Freevec 55 000152 000155 000147 " forward, backward threads 0a 000153 000312 500000 " value defined, class flags 55 000154 000057 000103 " name pointer, segname def pointer " Definition for List6 55 000155 000160 000152 " forward, backward threads 0a 000156 000162 500000 " value defined, class flags 55 000157 000061 000103 " name pointer, segname def pointer " Definition for List5 55 000160 000163 000155 " forward, backward threads 0a 000161 000105 500000 " value defined, class flags 55 000162 000063 000103 " name pointer, segname def pointer " Definition for List4 55 000163 000166 000160 " forward, backward threads 0a 000164 000355 500000 " value defined, class flags 55 000165 000065 000103 " name pointer, segname def pointer " Definition for List3 55 000166 000171 000163 " forward, backward threads 0a 000167 000427 500000 " value defined, class flags 55 000170 000067 000103 " name pointer, segname def pointer " Definition for List2 55 000171 000174 000166 " forward, backward threads 0a 000172 000041 500000 " value defined, class flags 55 000173 000071 000103 " name pointer, segname def pointer " Definition for List1 55 000174 000177 000171 " forward, backward threads 0a 000175 000002 500000 " value defined, class flags 55 000176 000073 000103 " name pointer, segname def pointer " Definition for Newvec 55 000177 000202 000174 " forward, backward threads 0a 000200 000476 500000 " value defined, class flags 55 000201 000075 000103 " name pointer, segname def pointer " Definition for symbol_table 55 000202 000002 000177 " forward, backward threads 6a 000203 000000 400002 " value defined, class flags 55 000204 000077 000103 " name pointer, segname def pointer " Definition section part two - symbolic info for external references aa 000205 021142 143160 " "bcpl_filesys_lib_" aa 000206 154137 146151 aa 000207 154145 163171 aa 000210 163137 154151 aa 000211 142137 000000 aa 000212 015104 145154 " "DeleteTempSeg" aa 000213 145164 145124 aa 000214 145155 160123 aa 000215 145147 000000 5a 000216 000217 000000 aa 000217 000004 000000 55 000220 000205 000212 aa 000221 022142 143160 " "bcpl_machine_code_" aa 000222 154137 155141 aa 000223 143150 151156 aa 000224 145137 143157 aa 000225 144145 137000 aa 000226 014125 156160 " "Unpackstring" aa 000227 141143 153163 aa 000230 164162 151156 aa 000231 147000 000000 5a 000232 000233 000000 aa 000233 000004 000000 55 000234 000221 000226 aa 000235 013107 145164 " "GetCpuUsage" aa 000236 103160 165125 aa 000237 163141 147145 5a 000240 000241 000000 aa 000241 000004 000000 55 000242 000205 000235 aa 000243 017142 143160 " "bcpl_stream_io_" aa 000244 154137 163164 aa 000245 162145 141155 aa 000246 137151 157137 aa 000247 005103 154157 " "Close" aa 000250 163145 000000 5a 000251 000252 000000 aa 000252 000004 000000 55 000253 000243 000247 aa 000254 014112 157151 " "JoinPathname" aa 000255 156120 141164 aa 000256 150156 141155 aa 000257 145000 000000 5a 000260 000261 000000 aa 000261 000004 000000 55 000262 000205 000254 aa 000263 020164 162141 " "translator_info_" aa 000264 156163 154141 aa 000265 164157 162137 aa 000266 151156 146157 aa 000267 137000 000000 aa 000270 017147 145164 " "get_source_info" aa 000271 137163 157165 aa 000272 162143 145137 aa 000273 151156 146157 5a 000274 000275 000000 aa 000275 000004 000000 55 000276 000263 000270 aa 000277 003111 124123 " "ITS" 5a 000300 000301 000000 aa 000301 000004 000000 55 000302 000221 000277 aa 000303 015123 164162 " "StreamPointer" aa 000304 145141 155120 aa 000305 157151 156164 aa 000306 145162 000000 5a 000307 000310 000000 aa 000310 000004 000000 55 000311 000243 000303 aa 000312 004117 160145 " "Open" aa 000313 156000 000000 5a 000314 000315 000000 aa 000315 000004 000000 55 000316 000243 000312 aa 000317 015142 143160 " "bcpl_strings_" aa 000320 154137 163164 aa 000321 162151 156147 aa 000322 163137 000000 aa 000323 013103 157156 " "Concatenate" aa 000324 143141 164145 aa 000325 156141 164145 5a 000326 000327 000000 aa 000327 000004 000000 55 000330 000317 000323 aa 000331 021142 143160 " "bcpl_conversions_" aa 000332 154137 143157 aa 000333 156166 145162 aa 000334 163151 157156 aa 000335 163137 000000 aa 000336 015122 145155 " "RemoveEscapes" aa 000337 157166 145105 aa 000340 163143 141160 aa 000341 145163 000000 5a 000342 000343 000000 aa 000343 000004 000000 55 000344 000331 000336 aa 000345 016115 141153 " "MakeBcplString" aa 000346 145102 143160 aa 000347 154123 164162 aa 000350 151156 147000 5a 000351 000352 000000 aa 000352 000004 000000 55 000353 000317 000345 aa 000354 012144 141164 " "date_time_" aa 000355 145137 164151 aa 000356 155145 137000 5a 000357 000360 000000 aa 000360 000004 000000 55 000361 000354 000354 aa 000362 010163 171163 " "sys_info" aa 000363 137151 156146 aa 000364 157000 000000 aa 000365 014155 141170 " "max_seg_size" aa 000366 137163 145147 aa 000367 137163 151172 aa 000370 145000 000000 5a 000371 000372 000000 aa 000372 000004 000000 55 000373 000362 000365 aa 000374 013115 141153 " "MakeTempSeg" aa 000375 145124 145155 aa 000376 160123 145147 5a 000377 000400 000000 aa 000400 000004 000000 55 000401 000205 000374 aa 000402 021142 143160 " "bcpl_command_lib_" aa 000403 154137 143157 aa 000404 155155 141156 aa 000405 144137 154151 aa 000406 142137 000000 aa 000407 010103 157155 " "Complain" aa 000410 160154 141151 aa 000411 156000 000000 5a 000412 000413 000000 aa 000413 000004 000000 55 000414 000402 000407 aa 000415 004115 157166 " "Move" aa 000416 145000 000000 5a 000417 000420 000000 aa 000420 000004 000000 55 000421 000221 000415 aa 000422 015114 145156 " "LengthInWords" aa 000423 147164 150111 aa 000424 156127 157162 aa 000425 144163 000000 5a 000426 000427 000000 aa 000427 000004 000000 55 000430 000317 000422 aa 000431 000000 000000 " padding " Linkage section - static variables and external links aa 000000 000000 000000 " linkage header 0a 000001 002236 000000 " address of defs aa 000002 000000 000000 aa 000003 000000 000000 aa 000004 000000 000000 aa 000005 000000 000000 2a 000006 000012 000056 " offset to links, total length aa 000007 000000 000056 " obsolete length " Static variables aa 000010 000000 000000 zero 0 " OverflowCount aa 000011 000000 000000 " External link pairs L141: 3a 000012 777766 000046 " "bcpl_filesys_lib_$DeleteTempSeg" 5a 000013 000216 000000 L121: 3a 000014 777764 000046 " "bcpl_machine_code_$Unpackstring" 5a 000015 000232 000000 L112: 3a 000016 777762 000046 " "bcpl_filesys_lib_$GetCpuUsage" 5a 000017 000240 000000 L106: 3a 000020 777760 000046 " "bcpl_stream_io_$Close" 5a 000021 000251 000000 L95: 3a 000022 777756 000046 " "bcpl_filesys_lib_$JoinPathname" 5a 000023 000260 000000 L93: 3a 000024 777754 000046 " "translator_info_$get_source_info" 5a 000025 000274 000000 L86: 3a 000026 777752 000046 " "bcpl_machine_code_$ITS" 5a 000027 000300 000000 L85: 3a 000030 777750 000046 " "bcpl_stream_io_$StreamPointer" 5a 000031 000307 000000 L83: 3a 000032 777746 000046 " "bcpl_stream_io_$Open" 5a 000033 000314 000000 L80: 3a 000034 777744 000046 " "bcpl_strings_$Concatenate" 5a 000035 000326 000000 L78: 3a 000036 777742 000046 " "bcpl_conversions_$RemoveEscapes" 5a 000037 000342 000000 L69: 3a 000040 777740 000046 " "bcpl_strings_$MakeBcplString" 5a 000041 000351 000000 L68: 3a 000042 777736 000046 " "date_time_" 5a 000043 000357 000000 L60: 3a 000044 777734 000046 " "sys_info$max_seg_size" 5a 000045 000371 000000 L59: 3a 000046 777732 000046 " "bcpl_filesys_lib_$MakeTempSeg" 5a 000047 000377 000000 L57: 3a 000050 777730 000046 " "bcpl_command_lib_$Complain" 5a 000051 000412 000000 L30: 3a 000052 777726 000046 " "bcpl_machine_code_$Move" 5a 000053 000417 000000 L29: 3a 000054 777724 000046 " "bcpl_strings_$LengthInWords" 5a 000055 000426 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 441351 522033 " 01/24/75 0702.8 mst Fri aa 000010 142143 160154 " "bcpl " aa 000011 040040 040040 aa 000012 000046 000035 " compiler version name - pointer, length aa 000013 000056 000024 " user id - pointer, length aa 000014 000063 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 000144 " section header pointer, block size aa 000020 000000 000144 " next block pointer, rel_text aa 000021 000000 000167 " rel_def, rel_link aa 000022 000200 000144 " rel_symbol, default truncate aa 000023 000024 000000 " optional truncate, unused aa 000024 000000 000001 " source files map: version number aa 000025 000000 000004 " number of files aa 000026 000074 000053 " bcpl_utility aa 000027 023333 611441 " last modified on aa 000030 000000 102333 " 01/24/75 0647.2 mst Fri aa 000031 432367 000000 aa 000032 000107 000033 " head aa 000033 021607 540547 " last modified on aa 000034 000000 101621 " 05/06/74 1742.4 mst Mon aa 000035 352261 400000 aa 000036 000116 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 000131 000051 " bcpl_metering_head aa 000043 021607 540220 " last modified on aa 000044 000000 101621 " 05/06/74 1740.8 mst Mon aa 000045 351474 000000 aa 000046 102103 120114 " "BCPL version 3.4, August 1973" aa 000047 040166 145162 aa 000050 163151 157156 aa 000051 040063 056064 aa 000052 054040 101165 aa 000053 147165 163164 aa 000054 040061 071067 aa 000055 063040 040040 aa 000056 115141 162164 " "Martinson.SysMaint.a" aa 000057 151156 163157 aa 000060 156056 123171 aa 000061 163115 141151 aa 000062 156164 056141 aa 000063 163157 165162 " "source xref alist optimize 6180" aa 000064 143145 040040 aa 000065 170162 145146 aa 000066 040040 141154 aa 000067 151163 164040 aa 000070 040157 160164 aa 000071 151155 151172 aa 000072 145040 040066 aa 000073 061070 060040 aa 000074 076062 056061 " ">2.1spec>online>mib083074>bcpl_utility.bcpl" aa 000075 163160 145143 aa 000076 076157 156154 aa 000077 151156 145076 aa 000100 155151 142060 aa 000101 070063 060067 aa 000102 064076 142143 aa 000103 160154 137165 aa 000104 164151 154151 aa 000105 164171 056142 aa 000106 143160 154040 aa 000107 076154 144144 " ">ldd>include>head.incl.bcpl" aa 000110 076151 156143 aa 000111 154165 144145 aa 000112 076150 145141 aa 000113 144056 151156 aa 000114 143154 056142 aa 000115 143160 154040 aa 000116 076154 144144 " ">ldd>include>bcpl_compiler_head.incl.bcpl" aa 000117 076151 156143 aa 000120 154165 144145 aa 000121 076142 143160 aa 000122 154137 143157 aa 000123 155160 151154 aa 000124 145162 137150 aa 000125 145141 144056 aa 000126 151156 143154 aa 000127 056142 143160 aa 000130 154040 040040 aa 000131 076154 144144 " ">ldd>include>bcpl_metering_head.incl.bcpl" aa 000132 076151 156143 aa 000133 154165 144145 aa 000134 076142 143160 aa 000135 154137 155145 aa 000136 164145 162151 aa 000137 156147 137150 aa 000140 145141 144056 aa 000141 151156 143154 aa 000142 056142 143160 aa 000143 154040 040040 " Relocation information " text section relocation bits aa 000144 000000 000002 " version number of rel-bits structure aa 000145 000000 001101 " length in bits aa 000146 745345 170073 aa 000147 236301 640626 aa 000150 200024 000005 aa 000151 170273 236012 aa 000152 647415 351701 aa 000153 032000 002474 aa 000154 021517 004323 aa 000155 602064 000024 aa 000156 741015 170043 aa 000157 200000 247412 aa 000160 351703 632360 aa 000161 426474 067517 aa 000162 030320 000123 aa 000163 621064 000024 aa 000164 741235 170063 aa 000165 200001 236174 aa 000166 400000 000000 l " inkage relocation bits aa 000167 000000 000002 " version number of rel-bits structure aa 000170 000000 000364 " length in bits aa 000171 100002 200232 aa 000172 523252 325232 aa 000173 523252 325232 aa 000174 523252 325232 aa 000175 523252 325232 aa 000176 523252 325232 aa 000177 523252 325000 s " ymbol relocation bits aa 000200 000000 000002 " version number of rel-bits structure aa 000201 000000 000043 " length in bits aa 000202 740365 770522 " Object map aa 003151 000000 000001 " version number of object_map structure aa 003152 157142 152137 " "obj_map " aa 003153 155141 160040 aa 003154 000000 002236 " text offset, length aa 003155 002236 000431 " def offset, length aa 003156 002670 000056 " link offset, length aa 003157 002746 000203 " symbol offset, length aa 003160 000000 000000 " break map offset, length aa 003161 340000 000000 " flags: ^bound, relocatable, procedure, standard aa 003162 003151 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