Compilation listing of file >2.1spec>online>mib083074>bcpl_command_lib_.bcpl. Compilation performed for Martinson.SysMaint.a at 01/24/75 0658.0 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 // Interface to Multics command level features. 2 // Last modified on 06/03/74 at 12:02:01 by R F Mabee. 3 // Reinstalled with no material change in June 1974, R F Mabee. 4 // Modifications for 6180 conversion installed in May 1973 by R F Mabee. 5 // First installed in September 1971 by R F Mabee. 6 7 // Copyright (c) 1974 by Massachusetts Institute of Technology and Honeywell Information Systems, Inc. 8 9 // General permission is granted to copy and use this program, but not to sell it, provided that the above 10 // copyright statement is given. Contact Information Processing Services, MIT, for further information. 11 // Please contact R F Mabee at MIT for information on this program and versions for other machines. 12 13 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 $) 14 15 external 16 $( ComErr = "com_err_" // call com_err_ (error code, command name, comment, arg1, arg2) 17 ActFncErr = "active_fnc_err_" // call active_fnc_err_ (error code, command name, comment) 18 19 ErrTableNoArg = "error_table_$noarg" // dcl error_table_$noarg bit 36 external static 20 ErrTableBadOpt = "error_table_$badopt" // dcl error_table_$badopt bit 36 external static 21 $) 22 global 23 $( Frame : 0; ConditionFlag : 16 24 ArgITS : 26 // ITS pointer to Multics argument list is always stored in 26 and 27. 25 ConditionChain : 30; ConditionMask : 31 26 27 MyConditionList : 41 28 $) 29 30 let Pl1NumbArgs () = rv BCPLaddr (lv ArgITS) rshift 19 // Return number of arguments passed by PL/I caller. 31 and Pl1ArgPtr (n) = BCPLaddr (BCPLaddr (lv ArgITS) + n * 2) // Return pointer to argument passed by PL/I caller. 32 and Pl1Descriptor (n) = valof // Return descriptor image provided by PL/I caller. 33 $( let Ap = BCPLaddr (lv ArgITS) 34 let t = Ap!1 rshift 18 35 if t = 0 resultis 0 36 if (Ap!0 & Right) = 8 do t := t + 2 37 let D = rv BCPLaddr (Ap + t + n * 2) 38 if D < 0 resultis D // Done if was new format. 39 // Map old format descriptor into the new format. 40 let Type, Dims = D rshift 21, 0 41 let NewType = valof switchon Type into 42 $( case 1 to 16: resultis Type 43 case 17 to 32: Dims := 1 // Array, guess at order. 44 resultis Type - 16 45 case 523: Dims := 1 46 case 514: resultis 17 // Structure. 47 case 524: Dims := 1 48 case 518: resultis 18 // Area. 49 case 525: Dims := 1 50 case 519: resultis 19 // Bit string. 51 case 527: Dims := 1 52 case 521: resultis 20 // Varying bit string. 53 case 526: Dims := 1 54 case 520: resultis 21 // Character string. 55 case 528: Dims := 1 56 case 522: resultis 22 // Varying character string. 57 default: resultis 0 58 $) 59 resultis 1 lshift 35 | NewType lshift 29 | Dims lshift 24 | D & Right 60 $) 61 62 let Pl1ArgString (n, Space, MaxLen) = valof // Make copy of n'th command arg in BCPL string form. 63 // Will work for other PL/I to BCPL calls passing strings, but will not strip trailing blanks. 64 $( if NumbArgs () < 3 do MaxLen := 511 65 let P = Pl1ArgPtr (n) // Contains bit offset also. 66 and D = Pl1Descriptor (n) & $877777777 67 if D > MaxLen do D := MaxLen 68 MoveBits (Space, CountSize, P, 0, D * ByteSize) 69 resultis SetLength (Space, D) // Return ptr to newly built BCPL string. 70 $) 71 let Pl1ReturnString (BcplString) be // Return a string value. For active function commands. 72 $( let n = Pl1NumbArgs () // Number of args. 73 if n = 0 goto Err 74 let q = Pl1ArgPtr (n) // q -> varying string. 75 let d = Pl1Descriptor (n) // Descriptor. 76 unless (d rshift 29) = 64 + 22 goto Err // Not a varying character string! 77 d := d & $877777777 78 let l = Length (BcplString) 79 if l > d do l := d 80 MakePl1String (BcplString, q, d) // Make aligned padded string like non-varying. 81 q!-1 := l // Set character count field of varying string. 82 return 83 Err: let v, w = vec 20, vec 20 84 MakePl1String (ProgramID, v, 32) // Align args to ActFncErr. Coding around a Multics bug. 85 MakePl1String (BcplString, w, 80) 86 call ActFncErr (ErrTableNoArg, v char 32, w char 80) // Puts out standard error messages (two of them). 87 $) 88 89 let SetupConditionList () be // Initialize stack header for condition mechanism. 90 $( if (ConditionFlag & $8100) = 0 do // Set to zero when frame is created. signal_ uses this flag 91 $( ConditionChain := 0 // to avoid trying to follow an uninitialized chain. 92 ConditionMask := 0 93 MyConditionList := 0 94 ConditionFlag := ConditionFlag | $8100 95 $) 96 $) 97 and SetHandler (Name, Routine, Space) be // Establish handler for a PL/I condition. 98 $( SetupConditionList () 99 MakePl1String (Name, Space + 8, 32) 100 ITS (Space + 8, Space) 101 ITS (MainCondition, Space + 2) 102 Space!4 := Length (Name) 103 Space!5 := ConditionChain 104 Space!6 := Routine 105 Space!7 := MyConditionList 106 ConditionChain, MyConditionList := (Space - lv Frame) lshift Left, Space 107 $) 108 and RevertHandler (Name) be // Remove handler for a PL/I condition. 109 $( SetupConditionList () 110 let Block = FindConditionBlock (Name) 111 unless Block = 0 test Block = MyConditionList 112 then ConditionChain, MyConditionList := Block!5, Block!7 113 or $( let t = MyConditionList 114 until t = 0 do 115 $( if t!7 = Block break 116 t := t!7 117 $) 118 unless t = 0 do t!5, t!7 := Block!5, Block!7 119 $) 120 if ConditionChain = 0 do ConditionFlag := ConditionFlag & not $8100 // Reset flag if no handler info. 121 $) 122 and MainCondition () be main // PL/I-callable routine to be invoked for any condition. 123 $( let Name = vec 32 / 4 124 let Ap = BCPLaddr (lv ArgITS) 125 let Nargs = Ap!0 rshift 19 126 let Sp = BCPLaddr (Ap + Nargs * 2 + 2) 127 Pl1ArgString (Nargs = 1 -> 1, 2, Name, 32) 128 for i = 32 to 399 do (lv Frame)!i := Sp!i // Retrieve old global values. 129 let Block = FindConditionBlock (Name) 130 if Block = 0 do Block := FindConditionBlock ("unclaimed_signal") 131 unless Block = 0 do (Block!6) (Name) 132 $) 133 and FindConditionBlock (Name) = valof // Get the condition block for a particular condition. 134 $( let v = vec 32 / 4 135 MakePl1String (Name, v, 32) 136 let t = MyConditionList 137 until t = 0 do 138 $( for i = 0 to 32 / 4 - 1 unless v!i = t!(i + 8) goto NoMatch 139 resultis t 140 NoMatch: 141 t := t!7 142 $) 143 resultis 0 144 $) 145 146 let Complain (a, b, c, d, e, f) be // Produce standard Multics error message and abort command. 147 $( let n = NumbArgs () 148 for i = n + 1 to 6 do (lv a)!(i - 1) := "" // Fill out arglist. 149 call ComErr (lv Errcode bit 36, ProgramID string, a string, b string, c string, d string, e string, f string) 150 SetupConditionList () 151 let Block = nil // Invoke cleanup handler for this command if there is one. 152 Block := FindConditionBlock ("cleanup") 153 unless Block = 0 do (Block!6) () 154 finish 155 $) 156 157 // Subroutine to standardize command argument processing; can be used on any option list because 158 // GetNextArg is called for each option processed. See GetNextCommandArg. 159 160 // Caller prepares three lists of length ListSize: 161 // NamesList is a list of options as BCPL strings. Omit '-' and 'no_' prefixes. 162 // FlagsList is a list of flag words for option in corresponding position in above list. Flags: 163 // OptNegatable Option can be specified with 'no_' or '^' prefix to complement meaning. 164 // OptNegate Complement sense of resulting boolean value. 165 // OptGetNext Next option is a value that this one uses. 166 // OptConvert Convert string value to number value (implies OptGetNext). 167 // OptCallOut Corresponding element of PointersList is a subroutine to be called to process value. 168 // PointersList elements are pointers to cells where value of option is to be stored, unless OptCallOut flag is set. 169 170 // PutName is called to process any argument that isn't an option (doesn't start with '-'). 171 // To treat such arguments as options, supply PutName equal to zero. 172 // All errors are reported immediately using Complain, which aborts the program. 173 174 let OptionParse (GetNextArg, ListSize, NamesList, PointersList, FlagsList, PutName) be 175 $( let Arg, Arg2 = vec 128, vec 128 176 while GetNextArg (Arg) do 177 $( let i, B, w = 1, true, nil 178 test Subch (Arg, 1) = '-' 179 then i := i + 1 // Skip over hyphen in option. 180 or unless PutName = 0 do // If names are allowed, this is a name. 181 $( PutName (Arg) 182 loop 183 $) 184 Search: w := i = 1 -> Arg, Substr (Arg2, Arg, i) // w is rest-of-string after prefix already parsed. 185 186 let j = 0 187 $( if -1 le CompareStrings (w, NamesList!j) le 1 goto Match // Equal or case-bit different. 188 j := j + 1 189 $) repeatwhile j < ListSize 190 191 // Failed on search - see if there is a way to fix it up. 192 switchon Subch (Arg, i) into // Dispatch on first character. 193 $( case '^': B := not B // Initial not sign means complement option. 194 i := i + 1 195 goto Search 196 197 case 'n': case 'N': 198 let c = Subch (Arg, i + 1) 199 unless c = 'o' | c = 'O' endcase 200 B := not B // Initial 'no' also means complement. 201 i := i + 2 202 if Subch (Arg, i) = '_' do i := i + 1 // Also allow 'no_'. 203 goto Search 204 205 case 'o': case 'O': 206 let c, d = Subch (Arg, i + 1), Subch (Arg, i + 2) 207 unless c = 'l' | c = 'L' endcase 208 unless d = 'd' | d = 'D' endcase 209 B := not B // Initial 'old' also means complement. 210 Concatenate (Arg, 511, "new", Substr (Arg2, Arg, i + 3)) 211 i := 1 // Replace 'old' with 'new' and try again. 212 goto Search 213 214 default: endcase 215 $) 216 // Can't figure it out, complain. 217 Errcode := rv ErrTableBadOpt 218 Complain (Arg) 219 220 Match: let T, P = FlagsList!j, PointersList!j 221 if (T & OptNegatable) = 0 & not B do // Weren't supposed to have 'no' prefix. 222 $( Errcode := rv ErrTableBadOpt 223 Complain (Arg) 224 $) 225 if (T & OptNegate) ne 0 do B := not B 226 if (T & (OptGetNext | OptConvert)) ne 0 do // Need next argument. 227 $( unless GetNextArg (Arg2) do 228 $( Errcode := rv ErrTableNoArg 229 Complain (Arg) 230 $) 231 if (T & OptConvert) ne 0 do // Want only number. 232 $( B := ConvertStoN (Arg2, 10) 233 unless Errcode = 0 do Complain (Arg2) 234 $) 235 $) 236 if (T & OptCallOut) ne 0 do 237 $( P (Arg2, B, Arg, j) // Pass whatever might come in handy. 238 loop 239 $) 240 rv P := B 241 $) 242 $) 243 244 and GetNextCommandArg (Arg) = valof // This routine is meant for ordinary use as GetNextArg in OptionParse. 245 $( if ArgIndex > Pl1NumbArgs () resultis false 246 Pl1ArgString (ArgIndex, Arg, 511) 247 ArgIndex := ArgIndex + 1 248 resultis true 249 $) 250 251 and ConcatenateArgs (First, Space, MaxLen) = valof // Make one string out of all command args from First on. 252 $( let Nargs = Pl1NumbArgs () 253 let Arg = vec 128 254 test Nargs < First 255 then SetLength (Space, 0) 256 or $( Pl1ArgString (First, Space, MaxLen) 257 for i = First + 1 to Nargs do Concatenate (Space, MaxLen, Space, " ", Pl1ArgString (i, Arg, 511)) 258 $) 259 resultis Space 260 $) CAE time 3.9, 102 source lines per second. cross reference table a bcpl_command_lib_: 146, 148, 149 AbsI head: 11 AbsR head: 12 ActFncErr bcpl_command_lib_: 17, 86 Allocate head: 64 Ap bcpl_command_lib_: 33, 34, 36, 37, 124, 125, 126 Append head: 136 Arg bcpl_command_lib_: 175, 176, 178, 181, 184, 184, 192, 198, 202, 206, 206, 210, 210, 218, 223, 229, 237, 244, 246, 253, 257 Arg2 bcpl_command_lib_: 175, 184, 210, 227, 232, 233, 237 ArgIndex head: 121, bcpl_command_lib_: 245, 246, 247, 247 ArgITS bcpl_command_lib_: 24, 30, 31, 33, 124 B bcpl_command_lib_: 177, 193, 193, 200, 200, 209, 209, 221, 225, 225, 232, 237, 240 b bcpl_command_lib_: 146, 149 Bcall head: 54 BCPLaddr head: 108, bcpl_command_lib_: 30, 31, 31, 33, 37, 124, 126 BcplString bcpl_command_lib_: 71, 78, 80, 85 Block bcpl_command_lib_: 110, 111, 111, 112, 112, 115, 118, 118, 129, 130, 130, 131, 131, 151, 152, 153, 153 ByteSize head: 127, bcpl_command_lib_: 68 c bcpl_command_lib_: 146, 149, 198, 199, 199, 206, 207, 207 Ch head: 118 CharToString head: 37 Close head: 69 ComErr bcpl_command_lib_: 16, 149 CompareStrings head: 27, bcpl_command_lib_: 187 Complain head: 107, bcpl_command_lib_: 146, 218, 223, 229, 233 Concatenate head: 28, bcpl_command_lib_: 210, 257 ConcatenateArgs head: 104, bcpl_command_lib_: 251 ConditionChain bcpl_command_lib_: 25, 91, 103, 106, 112, 120 ConditionFlag bcpl_command_lib_: 23, 90, 94, 94, 120, 120 ConditionMask bcpl_command_lib_: 25, 92 CONSOLE head: 117 Console head: 134 ConvertFtoS head: 46 ConvertNtoS head: 45 ConvertStoN head: 44, bcpl_command_lib_: 232 CopyString head: 25 CountSize head: 128, bcpl_command_lib_: 68 D bcpl_command_lib_: 37, 38, 38, 40, 59, 66, 67, 67, 68, 69 d bcpl_command_lib_: 75, 76, 77, 77, 79, 79, 80, 146, 149, 206, 208, 208 DeleteTempSeg head: 91 Dims bcpl_command_lib_: 40, 43, 45, 47, 49, 51, 53, 55, 59 e bcpl_command_lib_: 146, 149 Endofstreamch head: 130 EntryName head: 135 EqualString head: 26 Err bcpl_command_lib_: 73, 76, 83 Errcode head: 120, bcpl_command_lib_: 149, 217, 222, 228, 233 ErrTableBadOpt bcpl_command_lib_: 20, 217, 222 ErrTableNoArg bcpl_command_lib_: 19, 86, 228 ExpandPathname head: 84 Exponential head: 20 f bcpl_command_lib_: 146, 149 Findadr head: 65 FindConditionBlock bcpl_command_lib_: 110, 129, 130, 133, 152 FindSegment head: 87 First bcpl_command_lib_: 251, 254, 256, 257 FlagsList bcpl_command_lib_: 174, 220 Flushinput head: 77 Format head: 74 FormatString head: 75 FormDate head: 49 Frame bcpl_command_lib_: 23, 106, 128 Freevec head: 63 GetCpuUsage head: 96 GetNextArg bcpl_command_lib_: 174, 176, 227 GetNextCommandArg head: 106, bcpl_command_lib_: 244 GetPathname head: 89 i bcpl_command_lib_: 128, 128, 128, 138, 138, 138, 148, 148, 177, 179, 179, 184, 184, 192, 194, 194, 198, 201, 201, 202, 202, 202, 206, 206, 210, 211, 257, 257 Index head: 34 IndexCh head: 35 INPUT head: 116 InsertEscapes head: 48 IOstatus head: 120 IpowerI head: 14 ItoR head: 43 ITS head: 109, bcpl_command_lib_: 100, 101 j bcpl_command_lib_: 186, 187, 188, 188, 189, 220, 220, 237 JoinPathname head: 85 l bcpl_command_lib_: 78, 79, 79, 81 Left head: 129, bcpl_command_lib_: 106 Length head: 31, bcpl_command_lib_: 78, 102 LengthInWords head: 33 Level head: 53 ListSize bcpl_command_lib_: 174, 189 Logarithm head: 19 Longjump head: 52 Machine head: 125 MainCondition bcpl_command_lib_: 101, 122 MakeBcplString head: 39 MakePl1String head: 38, bcpl_command_lib_: 80, 84, 85, 99, 135 MakeSegment head: 88 MakeTempSeg head: 90 Match bcpl_command_lib_: 187, 220 MaxI head: 7 MaxLen bcpl_command_lib_: 62, 64, 67, 67, 251, 256, 257 MaxR head: 8 MinI head: 9 MinR head: 10 MONITOR head: 117 Move head: 56 MoveBits head: 57, bcpl_command_lib_: 68 MultiSegmentFile head: 137 MyConditionList bcpl_command_lib_: 27, 93, 105, 106, 111, 112, 113, 136 n bcpl_command_lib_: 31, 31, 32, 37, 62, 65, 66, 72, 73, 74, 75, 147, 148 Name bcpl_command_lib_: 97, 99, 102, 108, 110, 123, 127, 129, 131, 133, 135 NamesList bcpl_command_lib_: 174, 187 Nargs bcpl_command_lib_: 125, 126, 127, 252, 254, 257 NewType bcpl_command_lib_: 41, 59 Newvec head: 62 NewvecCleanup head: 61 NewvecInit head: 60 NoMatch bcpl_command_lib_: 138, 140 Null head: 131 NumbArgs head: 59, bcpl_command_lib_: 64, 147 Open head: 68 OptCallOut head: 144, bcpl_command_lib_: 236 OptConvert head: 143, bcpl_command_lib_: 226, 231 OptGetNext head: 142, bcpl_command_lib_: 226 OptionParse head: 105, bcpl_command_lib_: 174 OptNegatable head: 140, bcpl_command_lib_: 221 OptNegate head: 141, bcpl_command_lib_: 225 OUTPUT head: 116 P bcpl_command_lib_: 65, 68, 220, 237, 240 Packstring head: 23 PathName head: 135 Pl1ArgPtr head: 100, bcpl_command_lib_: 31, 65, 74 Pl1ArgString head: 102, bcpl_command_lib_: 62, 127, 246, 256, 257 Pl1Call head: 55 Pl1Descriptor head: 101, bcpl_command_lib_: 32, 66, 75 Pl1NumbArgs head: 99, bcpl_command_lib_: 30, 72, 245, 252 Pl1ReturnString head: 103, bcpl_command_lib_: 71 Pointer head: 134 PointersList bcpl_command_lib_: 174, 220 ProgramID head: 119, bcpl_command_lib_: 84, 149 PutName bcpl_command_lib_: 174, 180, 181 q bcpl_command_lib_: 74, 80, 81 RandomI head: 17 RandomR head: 18 RawClockTime head: 94 Read head: 136 Readch head: 70 RemoveEscapes head: 47 ResetStream head: 78 RevertHandler head: 112, bcpl_command_lib_: 108 Right head: 129, bcpl_command_lib_: 36, 59 Routine bcpl_command_lib_: 97, 104 RpowerI head: 15 RpowerR head: 16 RtoI head: 42 ScanChar head: 58 Search bcpl_command_lib_: 184, 195, 203, 212 SearchName head: 135 SetBitCount head: 93 SetHandler head: 111, bcpl_command_lib_: 97 SetLength head: 32, bcpl_command_lib_: 69, 255 SetOverflowMask head: 110 SetupConditionList bcpl_command_lib_: 89, 98, 109, 150 Sp bcpl_command_lib_: 126, 128 Space bcpl_command_lib_: 62, 68, 69, 97, 99, 100, 100, 101, 102, 103, 104, 105, 106, 106, 251, 255, 256, 257, 257, 259 SplitPathname head: 86 SquareRoot head: 13 StreamLength head: 80 StreamName head: 134 StreamOffset head: 79 StreamPointer head: 81 StringToChar head: 36 Subch head: 30, bcpl_command_lib_: 178, 192, 198, 202, 206, 206 Substr head: 29, bcpl_command_lib_: 184, 210 T bcpl_command_lib_: 220, 221, 225, 226, 231, 236 t bcpl_command_lib_: 34, 35, 36, 36, 37, 113, 114, 115, 116, 116, 118, 118, 118, 136, 137, 138, 139, 141, 141 Terminate head: 92 TimeToSeconds head: 95 Type bcpl_command_lib_: 40, 41, 42, 44 Unpackstring head: 24 v bcpl_command_lib_: 83, 84, 86, 134, 135, 138 w bcpl_command_lib_: 83, 85, 86, 177, 184, 187 WordSize head: 126 Write head: 136 Writech head: 71 WriteN head: 73 Writeout head: 76 WriteS head: 72 Trans time 1.7, 871 object words per second. " Begin text of Pl1ArgPtr aa 000000 000011 120154 zero 9,41068 " Pl1ArgPtr aa 000001 061101 162147 zero 25153,58471 aa 000002 120164 162000 zero 41076,58368 L2: aa 000003 000000 213000 31 epaq 0 " set lp to linkage section aa 000004 700026 764161 lprplp sb|22,*au aa 000005 200000 021100 adlx1 bp|0 " BCPL save aa 000006 700000 542111 sprpbp sb|0,x1 aa 000007 700001 544111 sprplp sb|1,x1 aa 000010 700422 620111 eax0 sb|274,x1 aa 000011 777760 360003 anx0 -16,du aa 000012 700025 740100 stx0 sb|21 " end of save sequence aa 000013 600032 350100 eapap sp|26 " ArgITS aa 000014 700014 540111 sprpap sb|12,x1 4a 000015 400046 272120 tsbbp lp|L6,* " BCPLaddr aa 000016 000012 000001 zero 10,1 aa 000017 700002 235111 lda sb|2,x1 " n aa 000020 000001 735000 als 1 aa 000021 600000 756100 stq sp|0 aa 000022 600000 075100 ada sp|0 aa 000023 700005 755111 sta sb|5,x1 aa 000024 700005 236111 ldq sb|5,x1 aa 000025 700014 756111 stq sb|12,x1 4a 000026 400046 272120 tsbbp lp|L6,* " BCPLaddr aa 000027 000012 000001 zero 10,1 aa 000030 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000031 200000 121100 sblx1 bp|0 aa 000032 700001 764111 lprplp sb|1,x1 aa 000033 200001 710100 tra bp|1 " end of return sequence " Begin text of Pl1Descriptor aa 000034 000015 120154 zero 13,41068 " Pl1Descriptor aa 000035 061104 145163 zero 25156,51827 aa 000036 143162 151160 zero 50802,53872 aa 000037 164157 162000 zero 59503,58368 aa 000040 700003 756111 32 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 600032 350100 33 eapap sp|26 " ArgITS aa 000052 700022 540111 sprpap sb|18,x1 4a 000053 400046 272120 tsbbp lp|L6,* " BCPLaddr aa 000054 000020 000001 zero 16,1 aa 000055 700004 756111 stq sb|4,x1 " Ap aa 000056 700004 760111 34 lprpap sb|4,x1 " Ap aa 000057 000001 236100 ldq ap|1 aa 000060 000022 772000 qrl 18 aa 000061 700005 756111 stq sb|5,x1 " t aa 000062 700005 234111 35 szn sb|5,x1 " t aa 000063 000003 601004 tnz L10 aa 000064 000000 236007 ldq 0,dl " 0 aa 000065 000151 710004 tra L9 L10: aa 000066 700004 762111 36 lprpbp sb|4,x1 " Ap aa 000067 200000 235100 lda bp|0 aa 000070 777777 375007 ana -1,dl " Right aa 000071 000010 115007 cmpa 8,dl " 8 aa 000072 000003 601004 tnz L11 aa 000073 000002 235007 lda 2,dl " 2 aa 000074 700005 055111 asa sb|5,x1 " t L11: aa 000075 700004 235111 37 lda sb|4,x1 " Ap aa 000076 700005 075111 ada sb|5,x1 " t aa 000077 700002 236111 ldq sb|2,x1 " n aa 000100 000001 736000 qls 1 aa 000101 600000 755100 sta sp|0 aa 000102 600000 076100 adq sp|0 aa 000103 700022 756111 stq sb|18,x1 4a 000104 400046 272120 tsbbp lp|L6,* " BCPLaddr aa 000105 000020 000001 zero 16,1 aa 000106 600000 756100 stq sp|0 aa 000107 600000 761100 lprpab sp|0 aa 000110 100000 235100 lda ab|0 aa 000111 700006 755111 sta sb|6,x1 " D aa 000112 700006 234111 38 szn sb|6,x1 " D aa 000113 000003 605004 tpl L12 aa 000114 700006 236111 ldq sb|6,x1 " D aa 000115 000121 710004 tra L9 L12: aa 000116 700007 450111 40 stz sb|7,x1 " Dims aa 000117 700006 235111 lda sb|6,x1 " D aa 000120 000025 771000 arl 21 aa 000121 700010 755111 sta sb|8,x1 " Type aa 000122 000043 710004 42 tra L15 L16: aa 000123 700010 235111 lda sb|8,x1 " Type aa 000124 000074 710004 43 tra L13 L17: aa 000125 000001 236007 ldq 1,dl " 1 aa 000126 700007 756111 stq sb|7,x1 " Dims aa 000127 700010 236111 44 ldq sb|8,x1 " Type aa 000130 000020 176007 sbq 16,dl " 16 aa 000131 000044 777000 llr 36 " exchange A and Q aa 000132 000066 710004 45 tra L13 L18: aa 000133 000001 235007 lda 1,dl " 1 aa 000134 700007 755111 sta sb|7,x1 " Dims L19: aa 000135 000021 235007 46 lda 17,dl " 17 aa 000136 000062 710004 47 tra L13 L20: aa 000137 000001 236007 ldq 1,dl " 1 aa 000140 700007 756111 stq sb|7,x1 " Dims L21: aa 000141 000022 235007 48 lda 18,dl " 18 aa 000142 000056 710004 49 tra L13 L22: aa 000143 000001 236007 ldq 1,dl " 1 aa 000144 700007 756111 stq sb|7,x1 " Dims L23: aa 000145 000023 235007 50 lda 19,dl " 19 aa 000146 000052 710004 51 tra L13 L24: aa 000147 000001 236007 ldq 1,dl " 1 aa 000150 700007 756111 stq sb|7,x1 " Dims L25: aa 000151 000024 235007 52 lda 20,dl " 20 aa 000152 000046 710004 53 tra L13 L26: aa 000153 000001 236007 ldq 1,dl " 1 aa 000154 700007 756111 stq sb|7,x1 " Dims L27: aa 000155 000025 235007 54 lda 21,dl " 21 aa 000156 000042 710004 55 tra L13 L28: aa 000157 000001 236007 ldq 1,dl " 1 aa 000160 700007 756111 stq sb|7,x1 " Dims L29: aa 000161 000026 235007 56 lda 22,dl " 22 aa 000162 000036 710004 57 tra L13 L30: aa 000163 000000 235007 lda 0,dl " 0 aa 000164 000034 710004 tra L13 L15: " Begin switchon aa 000165 700010 235111 lda sb|8,x1 " Type aa 000166 000021 115007 cmpa 17,dl aa 000167 000026 604004 tmi L31 aa 000170 000041 115007 cmpa 33,dl aa 000171 777734 604004 tmi L17 aa 000172 001002 175007 sba 514,dl aa 000173 000017 115007 cmpa 15,dl aa 000174 777767 603004 trc L30 0a 000175 000176 710005 tra L32,al L32: aa 000176 777737 710004 tra L19 aa 000177 777764 710004 tra L30 aa 000200 777763 710004 tra L30 aa 000201 777762 710004 tra L30 aa 000202 777737 710004 tra L21 aa 000203 777742 710004 tra L23 aa 000204 777751 710004 tra L27 aa 000205 777744 710004 tra L25 aa 000206 777753 710004 tra L29 aa 000207 777724 710004 tra L18 aa 000210 777727 710004 tra L20 aa 000211 777732 710004 tra L22 aa 000212 777741 710004 tra L26 aa 000213 777734 710004 tra L24 aa 000214 777743 710004 tra L28 L31: aa 000215 000001 115007 cmpa 1,dl aa 000216 777745 604004 tmi L30 aa 000217 777704 710004 tra L16 L14: L13: aa 000220 700012 755111 sta sb|10,x1 aa 000221 700012 236111 ldq sb|10,x1 aa 000222 700011 756111 stq sb|9,x1 " NewType aa 000223 700011 236111 59 ldq sb|9,x1 " NewType aa 000224 000035 736000 qls 29 aa 000225 400000 276003 orq -131072,du aa 000226 700007 235111 lda sb|7,x1 " Dims aa 000227 000030 735000 als 24 aa 000230 600000 756100 stq sp|0 aa 000231 600000 275100 ora sp|0 aa 000232 700006 236111 ldq sb|6,x1 " D aa 000233 777777 376007 anq -1,dl " Right aa 000234 600000 755100 sta sp|0 aa 000235 600000 276100 orq sp|0 L9: aa 000236 700004 756111 stq sb|4,x1 aa 000237 700004 236111 ldq sb|4,x1 aa 000240 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000241 200000 121100 sblx1 bp|0 aa 000242 700001 764111 lprplp sb|1,x1 aa 000243 200001 710100 tra bp|1 " end of return sequence " Begin text of Pl1NumbArgs aa 000244 000013 120154 zero 11,41068 " Pl1NumbArgs aa 000245 061116 165155 zero 25166,60013 aa 000246 142101 162147 zero 50241,58471 aa 000247 163000 000000 zero 58880 aa 000250 700003 756111 30 stq sb|3,x1 " temporary L1: aa 000251 000000 213000 epaq 0 " set lp to linkage section aa 000252 700026 764161 lprplp sb|22,*au aa 000253 200000 021100 adlx1 bp|0 " BCPL save aa 000254 700000 542111 sprpbp sb|0,x1 aa 000255 700001 544111 sprplp sb|1,x1 aa 000256 700422 620111 eax0 sb|274,x1 aa 000257 777760 360003 anx0 -16,du aa 000260 700025 740100 stx0 sb|21 " end of save sequence aa 000261 600032 353500 eapbb sp|26 " ArgITS aa 000262 700010 543111 sprpbb sb|8,x1 4a 000263 400046 272120 tsbbp lp|L6,* " BCPLaddr aa 000264 000006 000001 zero 6,1 aa 000265 600000 756100 stq sp|0 aa 000266 600000 763100 lprpbb sp|0 aa 000267 300000 235100 lda bb|0 aa 000270 000023 771000 arl 19 aa 000271 000044 777000 llr 36 " exchange A and Q aa 000272 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000273 200000 121100 sblx1 bp|0 aa 000274 700001 764111 lprplp sb|1,x1 aa 000275 200001 710100 tra bp|1 " end of return sequence " Begin text of Pl1ArgString aa 000276 000014 120154 zero 12,41068 " Pl1ArgString aa 000277 061101 162147 zero 25153,58471 aa 000300 123164 162151 zero 42612,58473 aa 000301 156147 000000 zero 56423 aa 000302 700002 756111 62 stq sb|2,x1 " temporary L35: aa 000303 000000 213000 epaq 0 " set lp to linkage section aa 000304 700026 764161 lprplp sb|22,*au aa 000305 200000 021100 adlx1 bp|0 " BCPL save aa 000306 700000 542111 sprpbp sb|0,x1 aa 000307 700001 544111 sprplp sb|1,x1 aa 000310 700426 620111 eax0 sb|278,x1 aa 000311 777760 360003 anx0 -16,du aa 000312 700025 740100 stx0 sb|21 " end of save sequence 4a 000313 400044 272120 64 tsbbp lp|L40,* " NumbArgs aa 000314 000012 000000 zero 10 aa 000315 000003 116007 cmpq 3,dl " 3 aa 000316 000003 605004 tpl L39 aa 000317 000777 236007 ldq 511,dl " 511 aa 000320 700004 756111 stq sb|4,x1 " MaxLen L39: aa 000321 700002 236111 66 ldq sb|2,x1 " n aa 000322 700014 756111 stq sb|12,x1 aa 000323 777520 272004 tsbbp L3+2 " Pl1Descriptor aa 000324 000012 000001 zero 10,1 aa 000325 000045 376004 anq L41 " $877777777 aa 000326 700007 756111 stq sb|7,x1 " D aa 000327 700002 236111 65 ldq sb|2,x1 " n aa 000330 700014 756111 stq sb|12,x1 aa 000331 777454 272004 tsbbp L2+2 " Pl1ArgPtr aa 000332 000012 000001 zero 10,1 aa 000333 700006 756111 stq sb|6,x1 " P aa 000334 700007 236111 67 ldq sb|7,x1 " D aa 000335 700004 116111 cmpq sb|4,x1 " MaxLen aa 000336 000003 604404 tmoz L42 aa 000337 700004 235111 lda sb|4,x1 " MaxLen aa 000340 700007 755111 sta sb|7,x1 " D L42: aa 000341 700003 235111 68 lda sb|3,x1 " Space aa 000342 700014 755111 sta sb|12,x1 aa 000343 000022 235007 lda 18,dl " CountSize aa 000344 700015 755111 sta sb|13,x1 aa 000345 700006 235111 lda sb|6,x1 " P aa 000346 700016 755111 sta sb|14,x1 aa 000347 700017 450111 stz sb|15,x1 aa 000350 700007 236111 ldq sb|7,x1 " D aa 000351 000011 402007 mpy 9,dl " ByteSize aa 000352 700020 756111 stq sb|16,x1 4a 000353 400042 272120 tsbbp lp|L43,* " MoveBits aa 000354 000012 000005 zero 10,5 aa 000355 700003 236111 69 ldq sb|3,x1 " Space aa 000356 700014 756111 stq sb|12,x1 aa 000357 700007 236111 ldq sb|7,x1 " D aa 000360 700015 756111 stq sb|13,x1 4a 000361 400040 272120 tsbbp lp|L44,* " SetLength aa 000362 000012 000002 zero 10,2 L38: aa 000363 700006 756111 stq sb|6,x1 aa 000364 700006 236111 ldq sb|6,x1 aa 000365 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000366 200000 121100 sblx1 bp|0 aa 000367 700001 764111 lprplp sb|1,x1 aa 000370 200001 710100 tra bp|1 " end of return sequence aa 000371 700005 756111 stq sb|5,x1 " temporary " Literal pool L41: aa 000372 000077 777777 zero 63,-1 " $877777777 " Begin text of Pl1ReturnString aa 000373 000017 120154 zero 15,41068 " Pl1ReturnString aa 000374 061122 145164 zero 25170,51828 aa 000375 165162 156123 zero 60018,56403 aa 000376 164162 151156 zero 59506,53870 aa 000377 147000 000000 zero 52736 L45: aa 000400 000000 213000 71 epaq 0 " set lp to linkage section aa 000401 700026 764161 lprplp sb|22,*au aa 000402 200000 021100 adlx1 bp|0 " BCPL save aa 000403 700000 542111 sprpbp sb|0,x1 aa 000404 700001 544111 sprplp sb|1,x1 aa 000405 700435 620111 eax0 sb|285,x1 aa 000406 777760 360003 anx0 -16,du aa 000407 700025 740100 stx0 sb|21 " end of save sequence aa 000410 777643 272004 72 tsbbp L1+2 " Pl1NumbArgs aa 000411 000066 000000 zero 54 aa 000412 700003 756111 stq sb|3,x1 " n aa 000413 700003 234111 73 szn sb|3,x1 " n aa 000414 000047 600004 tze L46 aa 000415 700003 236111 74 ldq sb|3,x1 " n aa 000416 700070 756111 stq sb|56,x1 aa 000417 777366 272004 tsbbp L2+2 " Pl1ArgPtr aa 000420 000066 000001 zero 54,1 aa 000421 700004 756111 stq sb|4,x1 " q aa 000422 700003 236111 75 ldq sb|3,x1 " n aa 000423 700070 756111 stq sb|56,x1 aa 000424 777417 272004 tsbbp L3+2 " Pl1Descriptor aa 000425 000066 000001 zero 54,1 aa 000426 700005 756111 stq sb|5,x1 " d aa 000427 700005 236111 76 ldq sb|5,x1 " d aa 000430 000035 772000 qrl 29 aa 000431 000126 116007 cmpq 86,dl aa 000432 000031 601004 tnz L46 aa 000433 777737 236004 77 ldq L41 " $877777777 aa 000434 700005 356111 ansq sb|5,x1 " d aa 000435 700002 236111 78 ldq sb|2,x1 " BcplString aa 000436 700070 756111 stq sb|56,x1 4a 000437 400036 272120 tsbbp lp|L50,* " Length aa 000440 000066 000001 zero 54,1 aa 000441 700006 756111 stq sb|6,x1 " l aa 000442 700006 236111 79 ldq sb|6,x1 " l aa 000443 700005 116111 cmpq sb|5,x1 " d aa 000444 000003 604404 tmoz L51 aa 000445 700005 235111 lda sb|5,x1 " d aa 000446 700006 755111 sta sb|6,x1 " l L51: aa 000447 700002 235111 80 lda sb|2,x1 " BcplString aa 000450 700070 755111 sta sb|56,x1 aa 000451 700004 235111 lda sb|4,x1 " q aa 000452 700071 755111 sta sb|57,x1 aa 000453 700005 235111 lda sb|5,x1 " d aa 000454 700072 755111 sta sb|58,x1 4a 000455 400034 272120 tsbbp lp|L52,* " MakePl1String aa 000456 000066 000003 zero 54,3 aa 000457 700006 235111 81 lda sb|6,x1 " l aa 000460 700004 765111 lprplb sb|4,x1 " q aa 000461 577777 755100 sta lb|-1 aa 000462 000052 710004 83 tra L49 L46: aa 000463 700012 350111 eapap sb|10,x1 " a vector aa 000464 700010 540111 sprpap sb|8,x1 " v aa 000465 700040 350111 eapap sb|32,x1 " a vector aa 000466 700007 540111 sprpap sb|7,x1 " w aa 000467 600045 235100 84 lda sp|37 " ProgramID aa 000470 700070 755111 sta sb|56,x1 aa 000471 700010 235111 lda sb|8,x1 " v aa 000472 700071 755111 sta sb|57,x1 aa 000473 000040 235007 lda 32,dl " 32 aa 000474 700072 755111 sta sb|58,x1 4a 000475 400034 272120 tsbbp lp|L52,* " MakePl1String aa 000476 000066 000003 zero 54,3 aa 000477 700002 235111 85 lda sb|2,x1 " BcplString aa 000500 700070 755111 sta sb|56,x1 aa 000501 700007 235111 lda sb|7,x1 " w aa 000502 700071 755111 sta sb|57,x1 aa 000503 000120 235007 lda 80,dl " 80 aa 000504 700072 755111 sta sb|58,x1 4a 000505 400034 272120 tsbbp lp|L52,* " MakePl1String aa 000506 000066 000003 zero 54,3 aa 000507 000031 237004 86 ldaq L53 " arglist header aa 000510 700066 757111 staq sb|54,x1 " arg count 4a 000511 400032 350120 eapap lp|L54,* " ErrTableNoArg aa 000512 700070 250111 stpap sb|56,x1 aa 000513 000031 350004 eapap L55 " descriptor aa 000514 700076 250111 stpap sb|62,x1 aa 000515 700010 762111 lprpbp sb|8,x1 " v aa 000516 700072 252111 stpbp sb|58,x1 aa 000517 000024 352004 eapbp L56 " descriptor aa 000520 700100 252111 stpbp sb|64,x1 aa 000521 700007 761111 lprpab sb|7,x1 " w aa 000522 700074 251511 stpab sb|60,x1 aa 000523 000017 351404 eapab L57 " descriptor aa 000524 700102 251511 stpab sb|66,x1 aa 000525 600010 441100 sxl1 sp|8 aa 000526 600030 650100 stplp sp|24 4a 000527 400030 352120 eapbp lp|L58,* " ActFncErr aa 000530 700066 350111 eapap sb|54,x1 aa 000531 700036 670120 tsblp sb|30,* " Multics call operator aa 000532 600010 721100 lxl1 sp|8 aa 000533 700001 764111 lprplp sb|1,x1 L49: aa 000534 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000535 200000 121100 sblx1 bp|0 aa 000536 700001 764111 lprplp sb|1,x1 aa 000537 200001 710100 tra bp|1 " end of return sequence " Literal pool L53: aa 000540 000006 000004 zero 6,4 " arglist header aa 000541 000006 000000 zero 6 L57: aa 000542 524000 000120 zero -88064,80 " descriptor L56: aa 000543 524000 000040 zero -88064,32 " descriptor L55: aa 000544 404000 000000 zero -129024 " descriptor " Begin text of FindConditionBlock aa 000545 000022 106151 zero 18,35945 " FindConditionBlock aa 000546 156144 103157 zero 56420,34415 aa 000547 156144 151164 zero 56420,53876 aa 000550 151157 156102 zero 53871,56386 aa 000551 154157 143153 zero 55407,50795 L63: aa 000552 000000 213000 133 epaq 0 " set lp to linkage section aa 000553 700026 764161 lprplp sb|22,*au aa 000554 200000 021100 adlx1 bp|0 " BCPL save aa 000555 700000 542111 sprpbp sb|0,x1 aa 000556 700001 544111 sprplp sb|1,x1 aa 000557 700424 620111 eax0 sb|276,x1 aa 000560 777760 360003 anx0 -16,du aa 000561 700025 740100 stx0 sb|21 " end of save sequence aa 000562 700006 353511 134 eapbb sb|6,x1 " a vector aa 000563 700004 543111 sprpbb sb|4,x1 " v aa 000564 700002 235111 135 lda sb|2,x1 " Name aa 000565 700026 755111 sta sb|22,x1 aa 000566 700004 235111 lda sb|4,x1 " v aa 000567 700027 755111 sta sb|23,x1 aa 000570 000040 235007 lda 32,dl " 32 aa 000571 700030 755111 sta sb|24,x1 4a 000572 400034 272120 tsbbp lp|L52,* " MakePl1String aa 000573 000024 000003 zero 20,3 aa 000574 600051 235100 136 lda sp|41 " MyConditionList aa 000575 700005 755111 sta sb|5,x1 " t aa 000576 000024 710004 137 tra L68 L69: aa 000577 700017 450111 138 stz sb|15,x1 " i aa 000600 000012 710004 tra L70 L71: aa 000601 700017 235111 lda sb|15,x1 " i aa 000602 000010 075007 ada 8,dl " 8 aa 000603 700017 722111 lxl2 sb|15,x1 " i aa 000604 700004 763111 lprpbb sb|4,x1 " v aa 000605 300000 236112 ldq bb|0,x2 aa 000606 700005 765111 lprplb sb|5,x1 " t aa 000607 500000 116105 cmpq lb|0,al aa 000610 000007 601004 tnz L64 aa 000611 700017 054111 aos sb|15,x1 " i L70: aa 000612 700017 235111 lda sb|15,x1 " i aa 000613 000007 115007 cmpa 7,dl aa 000614 777765 604404 tmoz L71 aa 000615 700005 236111 139 ldq sb|5,x1 " t aa 000616 000007 710004 140 tra L67 L64: aa 000617 700005 760111 141 lprpap sb|5,x1 " t aa 000620 000007 235100 lda ap|7 aa 000621 700005 755111 sta sb|5,x1 " t L68: aa 000622 700005 234111 szn sb|5,x1 " t aa 000623 777754 601004 tnz L69 aa 000624 000000 236007 143 ldq 0,dl " 0 L67: aa 000625 700004 756111 stq sb|4,x1 aa 000626 700004 236111 ldq sb|4,x1 aa 000627 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000630 200000 121100 sblx1 bp|0 aa 000631 700001 764111 lprplp sb|1,x1 aa 000632 200001 710100 tra bp|1 " end of return sequence " Begin text of MainCondition aa 000633 000015 115141 zero 13,39521 " MainCondition aa 000634 151156 103157 zero 53870,34415 aa 000635 156144 151164 zero 56420,53876 aa 000636 151157 156000 zero 53871,56320 5a 000637 000137 000000 zero 95 " relative pointer to definition for entry aa 000640 700003 756111 122 stq sb|3,x1 " temporary L62: aa 000641 000000 213000 epaq 0 " set lp to linkage section aa 000642 700026 764161 lprplp sb|22,*au aa 000643 001371 700004 tsx0 L75 " execute Multics save aa 000644 200000 021100 adlx1 bp|0 " BCPL save aa 000645 700000 542111 sprpbp sb|0,x1 aa 000646 700001 544111 sprplp sb|1,x1 aa 000647 700424 620111 eax0 sb|276,x1 aa 000650 777760 360003 anx0 -16,du aa 000651 700025 740100 stx0 sb|21 " end of save sequence aa 000652 700004 351511 123 eapab sb|4,x1 " a vector aa 000653 700002 541111 sprpab sb|2,x1 " Name aa 000654 600032 351500 124 eapab sp|26 " ArgITS aa 000655 700024 541111 sprpab sb|20,x1 4a 000656 400046 272120 tsbbp lp|L6,* " BCPLaddr aa 000657 000022 000001 zero 18,1 aa 000660 700003 756111 stq sb|3,x1 " Ap aa 000661 700003 761111 125 lprpab sb|3,x1 " Ap aa 000662 100000 236100 ldq ab|0 aa 000663 000023 772000 qrl 19 aa 000664 700015 756111 stq sb|13,x1 " Nargs aa 000665 700015 236111 126 ldq sb|13,x1 " Nargs aa 000666 000001 736000 qls 1 aa 000667 700003 076111 adq sb|3,x1 " Ap aa 000670 000002 076007 adq 2,dl " 2 aa 000671 700024 756111 stq sb|20,x1 4a 000672 400046 272120 tsbbp lp|L6,* " BCPLaddr aa 000673 000022 000001 zero 18,1 aa 000674 700016 756111 stq sb|14,x1 " Sp aa 000675 700015 236111 127 ldq sb|13,x1 " Nargs aa 000676 000001 116007 cmpq 1,dl " 1 aa 000677 000003 601004 tnz L77 aa 000700 000001 235007 lda 1,dl " 1 aa 000701 000002 710004 tra L78 L77: aa 000702 000002 235007 lda 2,dl " 2 L78: aa 000703 700020 755111 sta sb|16,x1 aa 000704 700020 235111 lda sb|16,x1 aa 000705 700017 755111 sta sb|15,x1 aa 000706 700017 235111 lda sb|15,x1 aa 000707 700024 755111 sta sb|20,x1 aa 000710 700002 235111 lda sb|2,x1 " Name aa 000711 700025 755111 sta sb|21,x1 aa 000712 000040 235007 lda 32,dl " 32 aa 000713 700026 755111 sta sb|22,x1 aa 000714 777371 272004 tsbbp L35+2 " Pl1ArgString aa 000715 000022 000003 zero 18,3 aa 000716 000040 235007 128 lda 32,dl " 32 aa 000717 700017 755111 sta sb|15,x1 " i aa 000720 000007 710004 tra L79 L80: aa 000721 700017 723111 lxl3 sb|15,x1 " i aa 000722 700016 762111 lprpbp sb|14,x1 " Sp aa 000723 200000 235113 lda bp|0,x3 aa 000724 700017 724111 lxl4 sb|15,x1 " i aa 000725 600000 755114 sta sp|0,x4 aa 000726 700017 054111 aos sb|15,x1 " i L79: aa 000727 700017 235111 lda sb|15,x1 " i aa 000730 000617 115007 cmpa 399,dl " 399 aa 000731 777770 604404 tmoz L80 aa 000732 700002 236111 129 ldq sb|2,x1 " Name aa 000733 700024 756111 stq sb|20,x1 aa 000734 777620 272004 tsbbp L63+2 " FindConditionBlock aa 000735 000022 000001 zero 18,1 aa 000736 700017 756111 stq sb|15,x1 " Block aa 000737 700017 234111 130 szn sb|15,x1 " Block aa 000740 000006 601004 tnz L81 aa 000741 000021 353404 eapbb L82 " "unclaimed_signal" aa 000742 700024 543111 sprpbb sb|20,x1 aa 000743 777611 272004 tsbbp L63+2 " FindConditionBlock aa 000744 000022 000001 zero 18,1 aa 000745 700017 756111 stq sb|15,x1 " Block L81: aa 000746 700017 234111 131 szn sb|15,x1 " Block aa 000747 000007 600004 tze L83 aa 000750 700002 236111 ldq sb|2,x1 " Name aa 000751 700024 756111 stq sb|20,x1 aa 000752 700017 763111 lprpbb sb|15,x1 " Block aa 000753 300006 763100 lprpbb bb|6 aa 000754 300000 272100 tsbbp bb|0 aa 000755 000022 000001 zero 18,1 L83: L76: aa 000756 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000757 200000 121100 sblx1 bp|0 aa 000760 700001 764111 lprplp sb|1,x1 aa 000761 200001 710100 tra bp|1 " end of return sequence " Literal pool L82: aa 000762 000020 165156 zero 16,60014 " "unclaimed_signal" aa 000763 143154 141151 zero 50796,49769 aa 000764 155145 144137 zero 55909,51295 aa 000765 163151 147156 zero 58985,52846 aa 000766 141154 000000 zero 49772 " Begin text of RevertHandler aa 000767 000015 122145 zero 13,42085 " RevertHandler aa 000770 166145 162164 zero 60517,58484 aa 000771 110141 156144 zero 36961,56420 aa 000772 154145 162000 zero 55397,58368 L61: aa 000773 000000 213000 108 epaq 0 " set lp to linkage section aa 000774 700026 764161 lprplp sb|22,*au aa 000775 200000 021100 adlx1 bp|0 " BCPL save aa 000776 700000 542111 sprpbp sb|0,x1 aa 000777 700001 544111 sprplp sb|1,x1 aa 001000 700422 620111 eax0 sb|274,x1 aa 001001 777760 360003 anx0 -16,du aa 001002 700025 740100 stx0 sb|21 " end of save sequence aa 001003 000167 272004 109 tsbbp L59+2 " SetupConditionList aa 001004 000010 000000 zero 8 aa 001005 700002 236111 110 ldq sb|2,x1 " Name aa 001006 700012 756111 stq sb|10,x1 aa 001007 777545 272004 tsbbp L63+2 " FindConditionBlock aa 001010 000010 000001 zero 8,1 aa 001011 700003 756111 stq sb|3,x1 " Block aa 001012 700003 234111 111 szn sb|3,x1 " Block aa 001013 000041 600004 tze L87 aa 001014 700003 236111 ldq sb|3,x1 " Block aa 001015 600051 116100 cmpq sp|41 " MyConditionList aa 001016 000010 601004 tnz L88 aa 001017 700003 765111 112 lprplb sb|3,x1 " Block aa 001020 500005 235100 lda lb|5 aa 001021 600036 755100 sta sp|30 " ConditionChain aa 001022 700003 760111 lprpap sb|3,x1 " Block aa 001023 000007 235100 lda ap|7 aa 001024 600051 755100 sta sp|41 " MyConditionList aa 001025 000027 710004 tra L89 L88: aa 001026 600051 235100 113 lda sp|41 " MyConditionList aa 001027 700004 755111 sta sb|4,x1 " t aa 001030 000010 710004 114 tra L90 L91: aa 001031 700004 761111 115 lprpab sb|4,x1 " t aa 001032 100007 235100 lda ab|7 aa 001033 700003 115111 cmpa sb|3,x1 " Block aa 001034 000006 600004 tze L92 aa 001035 700004 762111 116 lprpbp sb|4,x1 " t aa 001036 200007 236100 ldq bp|7 aa 001037 700004 756111 stq sb|4,x1 " t L90: aa 001040 700004 234111 szn sb|4,x1 " t aa 001041 777770 601004 tnz L91 L92: aa 001042 700004 234111 118 szn sb|4,x1 " t aa 001043 000011 600004 tze L93 aa 001044 700003 763111 lprpbb sb|3,x1 " Block aa 001045 300007 236100 ldq bb|7 aa 001046 700004 765111 lprplb sb|4,x1 " t aa 001047 500007 756100 stq lb|7 aa 001050 700003 760111 lprpap sb|3,x1 " Block aa 001051 000005 236100 ldq ap|5 aa 001052 700004 761111 lprpab sb|4,x1 " t aa 001053 100005 756100 stq ab|5 L93: L89: L87: aa 001054 600036 234100 120 szn sp|30 " ConditionChain aa 001055 000003 601004 tnz L94 aa 001056 000101 336007 lcq 65,dl aa 001057 600020 356100 ansq sp|16 " ConditionFlag L94: L86: aa 001060 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001061 200000 121100 sblx1 bp|0 aa 001062 700001 764111 lprplp sb|1,x1 aa 001063 200001 710100 tra bp|1 " end of return sequence " Begin text of SetHandler aa 001064 000012 123145 zero 10,42597 " SetHandler aa 001065 164110 141156 zero 59464,49774 aa 001066 144154 145162 zero 51308,51826 L60: aa 001067 000000 213000 97 epaq 0 " set lp to linkage section aa 001070 700026 764161 lprplp sb|22,*au aa 001071 200000 021100 adlx1 bp|0 " BCPL save aa 001072 700000 542111 sprpbp sb|0,x1 aa 001073 700001 544111 sprplp sb|1,x1 aa 001074 700424 620111 eax0 sb|276,x1 aa 001075 777760 360003 anx0 -16,du aa 001076 700025 740100 stx0 sb|21 " end of save sequence aa 001077 000073 272004 98 tsbbp L59+2 " SetupConditionList aa 001100 000010 000000 zero 8 aa 001101 700002 236111 99 ldq sb|2,x1 " Name aa 001102 700012 756111 stq sb|10,x1 aa 001103 700004 236111 ldq sb|4,x1 " Space aa 001104 000010 076007 adq 8,dl " 8 aa 001105 700013 756111 stq sb|11,x1 aa 001106 000040 236007 ldq 32,dl " 32 aa 001107 700014 756111 stq sb|12,x1 4a 001110 400034 272120 tsbbp lp|L52,* " MakePl1String aa 001111 000010 000003 zero 8,3 aa 001112 700004 236111 100 ldq sb|4,x1 " Space aa 001113 000010 076007 adq 8,dl " 8 aa 001114 700012 756111 stq sb|10,x1 aa 001115 700004 236111 ldq sb|4,x1 " Space aa 001116 700013 756111 stq sb|11,x1 4a 001117 400026 272120 tsbbp lp|L98,* " ITS aa 001120 000010 000002 zero 8,2 aa 001121 777520 352004 101 eapbp L62 " MainCondition aa 001122 700012 542111 sprpbp sb|10,x1 aa 001123 700004 236111 ldq sb|4,x1 " Space aa 001124 000002 076007 adq 2,dl " 2 aa 001125 700013 756111 stq sb|11,x1 4a 001126 400026 272120 tsbbp lp|L98,* " ITS aa 001127 000010 000002 zero 8,2 aa 001130 700002 236111 102 ldq sb|2,x1 " Name aa 001131 700012 756111 stq sb|10,x1 4a 001132 400036 272120 tsbbp lp|L50,* " Length aa 001133 000010 000001 zero 8,1 aa 001134 700004 762111 lprpbp sb|4,x1 " Space aa 001135 200004 756100 stq bp|4 aa 001136 600036 236100 103 ldq sp|30 " ConditionChain aa 001137 700004 763111 lprpbb sb|4,x1 " Space aa 001140 300005 756100 stq bb|5 aa 001141 700003 236111 104 ldq sb|3,x1 " Routine aa 001142 700004 765111 lprplb sb|4,x1 " Space aa 001143 500006 756100 stq lb|6 aa 001144 600051 236100 105 ldq sp|41 " MyConditionList aa 001145 700004 760111 lprpap sb|4,x1 " Space aa 001146 000007 756100 stq ap|7 aa 001147 700004 236111 106 ldq sb|4,x1 " Space aa 001150 600051 756100 stq sp|41 " MyConditionList aa 001151 700004 236111 ldq sb|4,x1 " Space aa 001152 600000 351500 eapab sp|0 " Frame aa 001153 600000 541100 sprpab sp|0 aa 001154 600000 176100 sbq sp|0 " Frame aa 001155 000022 736000 qls 18 aa 001156 600036 756100 stq sp|30 " ConditionChain L97: aa 001157 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001160 200000 121100 sblx1 bp|0 aa 001161 700001 764111 lprplp sb|1,x1 aa 001162 200001 710100 tra bp|1 " end of return sequence " Begin text of SetupConditionList aa 001163 000022 123145 zero 18,42597 " SetupConditionList aa 001164 164165 160103 zero 59509,57411 aa 001165 157156 144151 zero 56942,51305 aa 001166 164151 157156 zero 59497,56942 aa 001167 114151 163164 zero 39017,58996 L59: aa 001170 000000 213000 89 epaq 0 " set lp to linkage section aa 001171 700026 764161 lprplp sb|22,*au aa 001172 200000 021100 adlx1 bp|0 " BCPL save aa 001173 700000 542111 sprpbp sb|0,x1 aa 001174 700001 544111 sprplp sb|1,x1 aa 001175 700417 620111 eax0 sb|271,x1 aa 001176 777760 360003 anx0 -16,du aa 001177 700025 740100 stx0 sb|21 " end of save sequence aa 001200 600020 236100 90 ldq sp|16 " ConditionFlag aa 001201 000100 376007 anq 64,dl " $8100 aa 001202 000006 601004 tnz L102 aa 001203 600036 450100 91 stz sp|30 " ConditionChain aa 001204 600037 450100 92 stz sp|31 " ConditionMask aa 001205 600051 450100 93 stz sp|41 " MyConditionList aa 001206 000100 236007 94 ldq 64,dl " $8100 aa 001207 600020 256100 orsq sp|16 " ConditionFlag L102: L101: aa 001210 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001211 200000 121100 sblx1 bp|0 aa 001212 700001 764111 lprplp sb|1,x1 aa 001213 200001 710100 tra bp|1 " end of return sequence " Begin text of Complain aa 001214 000010 103157 zero 8,34415 " Complain aa 001215 155160 154141 zero 55920,55393 aa 001216 151156 000000 zero 53870 L103: aa 001217 000000 213000 146 epaq 0 " set lp to linkage section aa 001220 700026 764161 lprplp sb|22,*au aa 001221 200000 021100 adlx1 bp|0 " BCPL save aa 001222 700000 542111 sprpbp sb|0,x1 aa 001223 700001 544111 sprplp sb|1,x1 aa 001224 700470 620111 eax0 sb|312,x1 aa 001225 777760 360003 anx0 -16,du aa 001226 700025 740100 stx0 sb|21 " end of save sequence 4a 001227 400044 272120 147 tsbbp lp|L40,* " NumbArgs aa 001230 000014 000000 zero 12 aa 001231 700010 756111 stq sb|8,x1 " n aa 001232 700010 236111 148 ldq sb|8,x1 " n aa 001233 000001 076007 adq 1,dl " 1 aa 001234 700011 756111 stq sb|9,x1 " i aa 001235 000007 710004 tra L107 L108: aa 001236 700011 236111 ldq sb|9,x1 " i aa 001237 000001 176007 sbq 1,dl " 1 aa 001240 000162 351404 eapab L109 " "" aa 001241 700002 352111 eapbp sb|2,x1 aa 001242 200000 541106 sprpab bp|0,ql aa 001243 700011 054111 aos sb|9,x1 " i L107: aa 001244 700011 236111 ldq sb|9,x1 " i aa 001245 000006 116007 cmpq 6,dl " 6 aa 001246 777770 604404 tmoz L108 aa 001247 000145 237004 149 ldaq L110 " arglist header aa 001250 700014 757111 staq sb|12,x1 " arg count aa 001251 600046 351500 eapab sp|38 " Errcode aa 001252 700016 251511 stpab sb|14,x1 aa 001253 000146 351404 eapab L111 " descriptor aa 001254 700036 251511 stpab sb|30,x1 aa 001255 600045 762100 lprpbp sp|37 " ProgramID aa 001256 000022 725007 lxl5 18,dl aa 001257 200000 503515 abd bp|0,x5 aa 001260 700020 252111 stpbp sb|16,x1 aa 001261 200000 235100 lda bp|0 aa 001262 000022 771000 arl 18 aa 001263 524000 275003 ora -88064,du aa 001264 700056 755111 sta sb|46,x1 aa 001265 700056 352111 eapbp sb|46,x1 aa 001266 700040 252111 stpbp sb|32,x1 aa 001267 700002 763111 lprpbb sb|2,x1 " a aa 001270 000022 726007 lxl6 18,dl aa 001271 300000 503516 abd bb|0,x6 aa 001272 700022 253511 stpbb sb|18,x1 aa 001273 300000 235100 lda bb|0 aa 001274 000022 771000 arl 18 aa 001275 524000 275003 ora -88064,du aa 001276 700057 755111 sta sb|47,x1 aa 001277 700057 353511 eapbb sb|47,x1 aa 001300 700042 253511 stpbb sb|34,x1 aa 001301 700003 765111 lprplb sb|3,x1 " b aa 001302 000022 722007 lxl2 18,dl aa 001303 500000 503512 abd lb|0,x2 aa 001304 700024 651511 stplb sb|20,x1 aa 001305 500000 235100 lda lb|0 aa 001306 000022 771000 arl 18 aa 001307 524000 275003 ora -88064,du aa 001310 700060 755111 sta sb|48,x1 aa 001311 700060 371511 eaplb sb|48,x1 aa 001312 700044 651511 stplb sb|36,x1 aa 001313 700004 760111 lprpap sb|4,x1 " c aa 001314 000022 723007 lxl3 18,dl aa 001315 000000 503513 abd ap|0,x3 aa 001316 700026 250111 stpap sb|22,x1 aa 001317 000000 235100 lda ap|0 aa 001320 000022 771000 arl 18 aa 001321 524000 275003 ora -88064,du aa 001322 700061 755111 sta sb|49,x1 aa 001323 700061 350111 eapap sb|49,x1 aa 001324 700046 250111 stpap sb|38,x1 aa 001325 700005 761111 lprpab sb|5,x1 " d aa 001326 000022 724007 lxl4 18,dl aa 001327 100000 503514 abd ab|0,x4 aa 001330 700030 251511 stpab sb|24,x1 aa 001331 100000 235100 lda ab|0 aa 001332 000022 771000 arl 18 aa 001333 524000 275003 ora -88064,du aa 001334 700062 755111 sta sb|50,x1 aa 001335 700062 351511 eapab sb|50,x1 aa 001336 700050 251511 stpab sb|40,x1 aa 001337 700006 762111 lprpbp sb|6,x1 " e aa 001340 000022 725007 lxl5 18,dl aa 001341 200000 503515 abd bp|0,x5 aa 001342 700032 252111 stpbp sb|26,x1 aa 001343 200000 235100 lda bp|0 aa 001344 000022 771000 arl 18 aa 001345 524000 275003 ora -88064,du aa 001346 700063 755111 sta sb|51,x1 aa 001347 700063 352111 eapbp sb|51,x1 aa 001350 700052 252111 stpbp sb|42,x1 aa 001351 700007 763111 lprpbb sb|7,x1 " f aa 001352 000022 726007 lxl6 18,dl aa 001353 300000 503516 abd bb|0,x6 aa 001354 700034 253511 stpbb sb|28,x1 aa 001355 300000 235100 lda bb|0 aa 001356 000022 771000 arl 18 aa 001357 524000 275003 ora -88064,du aa 001360 700064 755111 sta sb|52,x1 aa 001361 700064 353511 eapbb sb|52,x1 aa 001362 700054 253511 stpbb sb|44,x1 aa 001363 600010 441100 sxl1 sp|8 aa 001364 600030 650100 stplp sp|24 4a 001365 400024 352120 eapbp lp|L112,* " ComErr aa 001366 700014 350111 eapap sb|12,x1 aa 001367 700036 670120 tsblp sb|30,* " Multics call operator aa 001370 600010 721100 lxl1 sp|8 aa 001371 700001 764111 lprplp sb|1,x1 aa 001372 777600 272004 150 tsbbp L59+2 " SetupConditionList aa 001373 000014 000000 zero 12 aa 001374 000022 371404 152 eaplb L113 " "cleanup" aa 001375 700016 545111 sprplb sb|14,x1 aa 001376 777156 272004 tsbbp L63+2 " FindConditionBlock aa 001377 000014 000001 zero 12,1 aa 001400 700011 756111 stq sb|9,x1 " Block aa 001401 700011 234111 153 szn sb|9,x1 " Block aa 001402 000005 600004 tze L114 aa 001403 700011 765111 lprplb sb|9,x1 " Block aa 001404 500006 765100 lprplb lb|6 aa 001405 500000 272100 tsbbp lb|0 aa 001406 000014 000000 zero 12 L114: aa 001407 700042 710120 154 tra sb|34,* " Multics return L106: aa 001410 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001411 200000 121100 sblx1 bp|0 aa 001412 700001 764111 lprplp sb|1,x1 aa 001413 200001 710100 tra bp|1 " end of return sequence " Literal pool L110: aa 001414 000020 000004 zero 16,4 " arglist header aa 001415 000020 000000 zero 16 L113: aa 001416 000007 143154 zero 7,50796 " "cleanup" aa 001417 145141 156165 zero 51809,56437 aa 001420 160000 000000 zero 57344 L111: aa 001421 514000 000044 zero -92160,36 " descriptor L109: aa 001422 000000 000000 zero 0 " "" " Begin text of OptionParse aa 001423 000013 117160 zero 11,40560 " OptionParse aa 001424 164151 157156 zero 59497,56942 aa 001425 120141 162163 zero 41057,58483 aa 001426 145000 000000 zero 51712 L115: aa 001427 000000 213000 174 epaq 0 " set lp to linkage section aa 001430 700026 764161 lprplp sb|22,*au aa 001431 200000 021100 adlx1 bp|0 " BCPL save aa 001432 700000 542111 sprpbp sb|0,x1 aa 001433 700001 544111 sprplp sb|1,x1 aa 001434 700453 620111 eax0 sb|299,x1 aa 001435 777760 360003 anx0 -16,du aa 001436 700025 740100 stx0 sb|21 " end of save sequence aa 001437 700012 350111 175 eapap sb|10,x1 " a vector aa 001440 700010 540111 sprpap sb|8,x1 " Arg2 aa 001441 700214 350111 eapap sb|140,x1 " a vector aa 001442 700011 540111 sprpap sb|9,x1 " Arg aa 001443 000374 710004 176 tra L123 L124: aa 001444 000001 336007 177 lcq 1,dl " true aa 001445 700213 756111 stq sb|139,x1 " B aa 001446 000001 236007 ldq 1,dl " 1 aa 001447 700416 756111 stq sb|270,x1 " i aa 001450 700011 236111 178 ldq sb|9,x1 " Arg aa 001451 700430 756111 stq sb|280,x1 aa 001452 000001 236007 ldq 1,dl " 1 aa 001453 700431 756111 stq sb|281,x1 4a 001454 400022 272120 tsbbp lp|L127,* " Subch aa 001455 000426 000002 zero 278,2 aa 001456 000055 116007 cmpq 45,dl " '-' aa 001457 000003 601004 tnz L125 aa 001460 700416 054111 179 aos sb|270,x1 " i aa 001461 000011 710004 tra L126 L125: aa 001462 700007 234111 180 szn sb|7,x1 " PutName aa 001463 000007 600004 tze L128 aa 001464 700011 236111 181 ldq sb|9,x1 " Arg aa 001465 700430 756111 stq sb|280,x1 aa 001466 700007 760111 lprpap sb|7,x1 " PutName aa 001467 000000 272100 tsbbp ap|0 " PutName aa 001470 000426 000001 zero 278,1 aa 001471 000346 710004 182 tra L123 L128: L126: L119: aa 001472 700416 236111 184 ldq sb|270,x1 " i aa 001473 000001 116007 cmpq 1,dl " 1 aa 001474 000003 601004 tnz L129 aa 001475 700011 235111 lda sb|9,x1 " Arg aa 001476 000012 710004 tra L130 L129: aa 001477 700010 236111 ldq sb|8,x1 " Arg2 aa 001500 700430 756111 stq sb|280,x1 aa 001501 700011 236111 ldq sb|9,x1 " Arg aa 001502 700431 756111 stq sb|281,x1 aa 001503 700416 236111 ldq sb|270,x1 " i aa 001504 700432 756111 stq sb|282,x1 4a 001505 400020 272120 tsbbp lp|L131,* " Substr aa 001506 000426 000003 zero 278,3 aa 001507 000044 777000 llr 36 " exchange A and Q L130: aa 001510 700421 755111 sta sb|273,x1 aa 001511 700421 235111 lda sb|273,x1 aa 001512 700415 755111 sta sb|269,x1 " w aa 001513 700417 450111 186 stz sb|271,x1 " j L132: aa 001514 700415 235111 187 lda sb|269,x1 " w aa 001515 700430 755111 sta sb|280,x1 aa 001516 700417 722111 lxl2 sb|271,x1 " j aa 001517 700004 761111 lprpab sb|4,x1 " NamesList aa 001520 100000 235112 lda ab|0,x2 aa 001521 700431 755111 sta sb|281,x1 4a 001522 400016 272120 tsbbp lp|L133,* " CompareStrings aa 001523 000426 000002 zero 278,2 aa 001524 700420 756111 stq sb|272,x1 aa 001525 000001 336007 lcq 1,dl aa 001526 700420 116111 cmpq sb|272,x1 aa 001527 000004 605404 tpnz L134 aa 001530 700420 235111 lda sb|272,x1 aa 001531 000001 115007 cmpa 1,dl " 1 aa 001532 000173 604404 tmoz L118 L134: aa 001533 700417 054111 188 aos sb|271,x1 " j aa 001534 700417 236111 ldq sb|271,x1 " j aa 001535 700003 116111 cmpq sb|3,x1 " ListSize aa 001536 777756 604004 tmi L132 aa 001537 000127 710004 193 tra L136 L137: aa 001540 000001 335007 lca 1,dl aa 001541 700213 655111 ersa sb|139,x1 " B aa 001542 700416 054111 194 aos sb|270,x1 " i aa 001543 777727 710004 197 tra L119 L138: aa 001544 700011 235111 198 lda sb|9,x1 " Arg aa 001545 700430 755111 sta sb|280,x1 aa 001546 700416 235111 lda sb|270,x1 " i aa 001547 000001 075007 ada 1,dl " 1 aa 001550 700431 755111 sta sb|281,x1 4a 001551 400022 272120 tsbbp lp|L127,* " Subch aa 001552 000426 000002 zero 278,2 aa 001553 700420 756111 stq sb|272,x1 " c aa 001554 700420 236111 199 ldq sb|272,x1 " c aa 001555 000157 116007 cmpq 111,dl " 'o' aa 001556 000004 600004 tze L139 aa 001557 700420 235111 lda sb|272,x1 " c aa 001560 000117 115007 cmpa 79,dl " 'O' aa 001561 000136 601004 tnz L135 L139: aa 001562 000001 336007 200 lcq 1,dl aa 001563 700213 656111 ersq sb|139,x1 " B aa 001564 000002 236007 201 ldq 2,dl " 2 aa 001565 700416 056111 asq sb|270,x1 " i aa 001566 700011 236111 202 ldq sb|9,x1 " Arg aa 001567 700430 756111 stq sb|280,x1 aa 001570 700416 236111 ldq sb|270,x1 " i aa 001571 700431 756111 stq sb|281,x1 4a 001572 400022 272120 tsbbp lp|L127,* " Subch aa 001573 000426 000002 zero 278,2 aa 001574 000137 116007 cmpq 95,dl " '_' aa 001575 000002 601004 tnz L140 aa 001576 700416 054111 aos sb|270,x1 " i L140: aa 001577 777673 710004 205 tra L119 L141: aa 001600 700011 236111 206 ldq sb|9,x1 " Arg aa 001601 700430 756111 stq sb|280,x1 aa 001602 700416 236111 ldq sb|270,x1 " i aa 001603 000002 076007 adq 2,dl " 2 aa 001604 700431 756111 stq sb|281,x1 4a 001605 400022 272120 tsbbp lp|L127,* " Subch aa 001606 000426 000002 zero 278,2 aa 001607 700421 756111 stq sb|273,x1 " d aa 001610 700011 236111 ldq sb|9,x1 " Arg aa 001611 700430 756111 stq sb|280,x1 aa 001612 700416 236111 ldq sb|270,x1 " i aa 001613 000001 076007 adq 1,dl " 1 aa 001614 700431 756111 stq sb|281,x1 4a 001615 400022 272120 tsbbp lp|L127,* " Subch aa 001616 000426 000002 zero 278,2 aa 001617 700422 756111 stq sb|274,x1 " c aa 001620 700422 236111 207 ldq sb|274,x1 " c aa 001621 000154 116007 cmpq 108,dl " 'l' aa 001622 000004 600004 tze L142 aa 001623 700422 235111 lda sb|274,x1 " c aa 001624 000114 115007 cmpa 76,dl " 'L' aa 001625 000072 601004 tnz L135 L142: aa 001626 700421 236111 208 ldq sb|273,x1 " d aa 001627 000144 116007 cmpq 100,dl " 'd' aa 001630 000004 600004 tze L143 aa 001631 700421 235111 lda sb|273,x1 " d aa 001632 000104 115007 cmpa 68,dl " 'D' aa 001633 000064 601004 tnz L135 L143: aa 001634 000001 336007 209 lcq 1,dl aa 001635 700213 656111 ersq sb|139,x1 " B aa 001636 700010 236111 210 ldq sb|8,x1 " Arg2 aa 001637 700430 756111 stq sb|280,x1 aa 001640 700011 236111 ldq sb|9,x1 " Arg aa 001641 700431 756111 stq sb|281,x1 aa 001642 700416 236111 ldq sb|270,x1 " i aa 001643 000003 076007 adq 3,dl " 3 aa 001644 700432 756111 stq sb|282,x1 4a 001645 400020 272120 tsbbp lp|L131,* " Substr aa 001646 000426 000003 zero 278,3 aa 001647 700423 756111 stq sb|275,x1 aa 001650 700011 236111 ldq sb|9,x1 " Arg aa 001651 700430 756111 stq sb|280,x1 aa 001652 000777 236007 ldq 511,dl " 511 aa 001653 700431 756111 stq sb|281,x1 aa 001654 000176 353404 eapbb L144 " "new" aa 001655 700432 543111 sprpbb sb|282,x1 aa 001656 700423 236111 ldq sb|275,x1 aa 001657 700433 756111 stq sb|283,x1 4a 001660 400014 272120 tsbbp lp|L145,* " Concatenate aa 001661 000426 000004 zero 278,4 aa 001662 000001 236007 211 ldq 1,dl " 1 aa 001663 700416 756111 stq sb|270,x1 " i aa 001664 777606 710004 214 tra L119 L146: aa 001665 000032 710004 tra L135 L136: aa 001666 700011 236111 ldq sb|9,x1 " Arg aa 001667 700430 756111 stq sb|280,x1 aa 001670 700416 236111 ldq sb|270,x1 " i aa 001671 700431 756111 stq sb|281,x1 4a 001672 400022 272120 tsbbp lp|L127,* " Subch aa 001673 000426 000002 zero 278,2 " Begin switchon aa 001674 000044 777000 llr 36 " exchange A and Q aa 001675 000043 773000 lrl 35 aa 001676 000006 507007 dvf 6,dl " hash table size 0a 001677 001711 115006 cmpa L147,ql aa 001700 777765 601004 tnz L146 0a 001701 001703 710006 tra L148,ql aa 001702 700420 755111 sta sb|272,x1 " temporary L148: aa 001703 777641 710004 tra L138 aa 001704 777674 710004 tra L141 aa 001705 777637 710004 tra L138 aa 001706 777672 710004 tra L141 aa 001707 777631 710004 tra L137 aa 001710 777755 710004 tra L146 L147: aa 001711 000000 000015 zero 0,13 aa 001712 000000 000015 zero 0,13 aa 001713 000000 000022 zero 0,18 aa 001714 000000 000022 zero 0,18 aa 001715 000000 000017 zero 0,15 aa 001716 000000 000000 zero 0 L135: 4a 001717 400012 235120 217 lda lp|L149,* aa 001720 600046 755100 sta sp|38 " Errcode aa 001721 700011 235111 218 lda sb|9,x1 " Arg aa 001722 700430 755111 sta sb|280,x1 aa 001723 777276 272004 tsbbp L103+2 " Complain aa 001724 000426 000001 zero 278,1 L118: aa 001725 700417 723111 220 lxl3 sb|271,x1 " j aa 001726 700006 763111 lprpbb sb|6,x1 " FlagsList aa 001727 300000 235113 lda bb|0,x3 aa 001730 700421 755111 sta sb|273,x1 " T aa 001731 700417 724111 lxl4 sb|271,x1 " j aa 001732 700005 762111 lprpbp sb|5,x1 " PointersList aa 001733 200000 235114 lda bp|0,x4 aa 001734 700420 755111 sta sb|272,x1 " P aa 001735 700421 235111 221 lda sb|273,x1 " T aa 001736 000001 375007 ana 1,dl " OptNegatable aa 001737 000011 601004 tnz L150 aa 001740 700213 234111 szn sb|139,x1 " B aa 001741 000007 601004 tnz L150 4a 001742 400012 235120 222 lda lp|L149,* aa 001743 600046 755100 sta sp|38 " Errcode aa 001744 700011 235111 223 lda sb|9,x1 " Arg aa 001745 700430 755111 sta sb|280,x1 aa 001746 777253 272004 tsbbp L103+2 " Complain aa 001747 000426 000001 zero 278,1 L150: aa 001750 700421 235111 225 lda sb|273,x1 " T aa 001751 000002 375007 ana 2,dl " OptNegate aa 001752 000003 600004 tze L151 aa 001753 000001 335007 lca 1,dl aa 001754 700213 655111 ersa sb|139,x1 " B L151: aa 001755 700421 235111 226 lda sb|273,x1 " T aa 001756 000014 375007 ana 12,dl aa 001757 000036 600004 tze L152 aa 001760 700010 235111 227 lda sb|8,x1 " Arg2 aa 001761 700430 755111 sta sb|280,x1 aa 001762 700002 765111 lprplb sb|2,x1 " GetNextArg aa 001763 500000 272100 tsbbp lb|0 " GetNextArg aa 001764 000426 000001 zero 278,1 aa 001765 000000 116007 cmpq 0,dl aa 001766 000007 601004 tnz L153 4a 001767 400032 236120 228 ldq lp|L54,* aa 001770 600046 756100 stq sp|38 " Errcode aa 001771 700011 236111 229 ldq sb|9,x1 " Arg aa 001772 700430 756111 stq sb|280,x1 aa 001773 777226 272004 tsbbp L103+2 " Complain aa 001774 000426 000001 zero 278,1 L153: aa 001775 700421 236111 231 ldq sb|273,x1 " T aa 001776 000010 376007 anq 8,dl " OptConvert aa 001777 000016 600004 tze L154 aa 002000 700010 236111 232 ldq sb|8,x1 " Arg2 aa 002001 700430 756111 stq sb|280,x1 aa 002002 000012 236007 ldq 10,dl " 10 aa 002003 700431 756111 stq sb|281,x1 4a 002004 400010 272120 tsbbp lp|L155,* " ConvertStoN aa 002005 000426 000002 zero 278,2 aa 002006 700213 756111 stq sb|139,x1 " B aa 002007 600046 234100 233 szn sp|38 " Errcode aa 002010 000005 600004 tze L156 aa 002011 700010 236111 ldq sb|8,x1 " Arg2 aa 002012 700430 756111 stq sb|280,x1 aa 002013 777206 272004 tsbbp L103+2 " Complain aa 002014 000426 000001 zero 278,1 L156: L154: L152: aa 002015 700421 236111 236 ldq sb|273,x1 " T aa 002016 000020 376007 anq 16,dl " OptCallOut aa 002017 000015 600004 tze L157 aa 002020 700010 236111 237 ldq sb|8,x1 " Arg2 aa 002021 700430 756111 stq sb|280,x1 aa 002022 700213 236111 ldq sb|139,x1 " B aa 002023 700431 756111 stq sb|281,x1 aa 002024 700011 236111 ldq sb|9,x1 " Arg aa 002025 700432 756111 stq sb|282,x1 aa 002026 700417 236111 ldq sb|271,x1 " j aa 002027 700433 756111 stq sb|283,x1 aa 002030 700420 760111 lprpap sb|272,x1 " P aa 002031 000000 272100 tsbbp ap|0 " P aa 002032 000426 000004 zero 278,4 aa 002033 000004 710004 238 tra L123 L157: aa 002034 700213 236111 240 ldq sb|139,x1 " B aa 002035 700420 761111 lprpab sb|272,x1 " P aa 002036 100000 756100 stq ab|0 " P L123: aa 002037 700011 236111 ldq sb|9,x1 " Arg aa 002040 700430 756111 stq sb|280,x1 aa 002041 700002 763111 lprpbb sb|2,x1 " GetNextArg aa 002042 300000 272100 tsbbp bb|0 " GetNextArg aa 002043 000426 000001 zero 278,1 aa 002044 000000 116007 cmpq 0,dl aa 002045 777377 601004 tnz L124 L122: aa 002046 700000 762111 lprpbp sb|0,x1 " bcpl return aa 002047 200000 121100 sblx1 bp|0 aa 002050 700001 764111 lprplp sb|1,x1 aa 002051 200001 710100 tra bp|1 " end of return sequence " Literal pool L144: aa 002052 000003 156145 zero 3,56421 " "new" aa 002053 167000 000000 zero 60928 " Begin text of GetNextCommandArg aa 002054 000021 107145 zero 17,36453 " GetNextCommandArg aa 002055 164116 145170 zero 59470,51832 aa 002056 164103 157155 zero 59459,56941 aa 002057 155141 156144 zero 55905,56420 aa 002060 101162 147000 zero 33394,52736 L116: aa 002061 000000 213000 244 epaq 0 " set lp to linkage section aa 002062 700026 764161 lprplp sb|22,*au aa 002063 200000 021100 adlx1 bp|0 " BCPL save aa 002064 700000 542111 sprpbp sb|0,x1 aa 002065 700001 544111 sprplp sb|1,x1 aa 002066 700424 620111 eax0 sb|276,x1 aa 002067 777760 360003 anx0 -16,du aa 002070 700025 740100 stx0 sb|21 " end of save sequence aa 002071 776162 272004 245 tsbbp L1+2 " Pl1NumbArgs aa 002072 000006 000000 zero 6 aa 002073 600050 116100 cmpq sp|40 " ArgIndex aa 002074 000003 605004 tpl L161 aa 002075 000000 236007 ldq 0,dl " false aa 002076 000013 710004 tra L160 L161: aa 002077 600050 235100 246 lda sp|40 " ArgIndex aa 002100 700010 755111 sta sb|8,x1 aa 002101 700002 235111 lda sb|2,x1 " Arg aa 002102 700011 755111 sta sb|9,x1 aa 002103 000777 235007 lda 511,dl " 511 aa 002104 700012 755111 sta sb|10,x1 aa 002105 776200 272004 tsbbp L35+2 " Pl1ArgString aa 002106 000006 000003 zero 6,3 aa 002107 600050 054100 247 aos sp|40 " ArgIndex aa 002110 000001 336007 248 lcq 1,dl " true L160: aa 002111 700004 756111 stq sb|4,x1 aa 002112 700004 236111 ldq sb|4,x1 aa 002113 700000 762111 lprpbp sb|0,x1 " bcpl return aa 002114 200000 121100 sblx1 bp|0 aa 002115 700001 764111 lprplp sb|1,x1 aa 002116 200001 710100 tra bp|1 " end of return sequence " Begin text of ConcatenateArgs aa 002117 000017 103157 zero 15,34415 " ConcatenateArgs aa 002120 156143 141164 zero 56419,49780 aa 002121 145156 141164 zero 51822,49780 aa 002122 145101 162147 zero 51777,58471 aa 002123 163000 000000 zero 58880 aa 002124 700003 756111 251 stq sb|3,x1 " temporary L117: aa 002125 000000 213000 epaq 0 " set lp to linkage section aa 002126 700026 764161 lprplp sb|22,*au aa 002127 200000 021100 adlx1 bp|0 " BCPL save aa 002130 700000 542111 sprpbp sb|0,x1 aa 002131 700001 544111 sprplp sb|1,x1 aa 002132 700426 620111 eax0 sb|278,x1 aa 002133 777760 360003 anx0 -16,du aa 002134 700025 740100 stx0 sb|21 " end of save sequence aa 002135 776116 272004 252 tsbbp L1+2 " Pl1NumbArgs aa 002136 000216 000000 zero 142 aa 002137 700006 756111 stq sb|6,x1 " Nargs aa 002140 700010 352111 253 eapbp sb|8,x1 " a vector aa 002141 700007 542111 sprpbp sb|7,x1 " Arg aa 002142 700006 236111 254 ldq sb|6,x1 " Nargs aa 002143 700002 116111 cmpq sb|2,x1 " First aa 002144 000007 605004 tpl L165 aa 002145 700003 235111 255 lda sb|3,x1 " Space aa 002146 700220 755111 sta sb|144,x1 aa 002147 700221 450111 stz sb|145,x1 4a 002150 400040 272120 tsbbp lp|L44,* " SetLength aa 002151 000216 000002 zero 142,2 aa 002152 000050 710004 tra L166 L165: aa 002153 700002 235111 256 lda sb|2,x1 " First aa 002154 700220 755111 sta sb|144,x1 aa 002155 700003 235111 lda sb|3,x1 " Space aa 002156 700221 755111 sta sb|145,x1 aa 002157 700004 235111 lda sb|4,x1 " MaxLen aa 002160 700222 755111 sta sb|146,x1 aa 002161 776124 272004 tsbbp L35+2 " Pl1ArgString aa 002162 000216 000003 zero 142,3 aa 002163 700002 235111 257 lda sb|2,x1 " First aa 002164 000001 075007 ada 1,dl " 1 aa 002165 700211 755111 sta sb|137,x1 " i aa 002166 700006 235111 lda sb|6,x1 " Nargs aa 002167 700212 755111 sta sb|138,x1 aa 002170 000027 710004 tra L167 L168: aa 002171 700211 235111 lda sb|137,x1 " i aa 002172 700220 755111 sta sb|144,x1 aa 002173 700007 235111 lda sb|7,x1 " Arg aa 002174 700221 755111 sta sb|145,x1 aa 002175 000777 235007 lda 511,dl " 511 aa 002176 700222 755111 sta sb|146,x1 aa 002177 776106 272004 tsbbp L35+2 " Pl1ArgString aa 002200 000216 000003 zero 142,3 aa 002201 700213 756111 stq sb|139,x1 aa 002202 700003 236111 ldq sb|3,x1 " Space aa 002203 700220 756111 stq sb|144,x1 aa 002204 700004 236111 ldq sb|4,x1 " MaxLen aa 002205 700221 756111 stq sb|145,x1 aa 002206 700003 236111 ldq sb|3,x1 " Space aa 002207 700222 756111 stq sb|146,x1 aa 002210 000023 352004 eapbp L169 " " " aa 002211 700223 542111 sprpbp sb|147,x1 aa 002212 700213 236111 ldq sb|139,x1 aa 002213 700224 756111 stq sb|148,x1 4a 002214 400014 272120 tsbbp lp|L145,* " Concatenate aa 002215 000216 000005 zero 142,5 aa 002216 700211 054111 aos sb|137,x1 " i L167: aa 002217 700211 236111 ldq sb|137,x1 " i aa 002220 700212 116111 cmpq sb|138,x1 aa 002221 777750 604404 tmoz L168 L166: aa 002222 700003 235111 259 lda sb|3,x1 " Space L164: aa 002223 700006 755111 sta sb|6,x1 aa 002224 700006 235111 lda sb|6,x1 aa 002225 000044 777000 llr 36 " exchange A and Q aa 002226 700000 762111 lprpbp sb|0,x1 " bcpl return aa 002227 200000 121100 sblx1 bp|0 aa 002230 700001 764111 lprplp sb|1,x1 aa 002231 200001 710100 tra bp|1 " end of return sequence aa 002232 700005 756111 stq sb|5,x1 " temporary " Literal pool L169: aa 002233 000001 040000 zero 1,16384 " " " " Local subroutine to help enter BCPL environment L75: aa 002234 004000 627000 eax7 2048 " Multics save sequence aa 002235 700040 272120 tsbbp sb|32,* aa 002236 600620 621100 eax1 sp|400 aa 002237 600030 650100 stplp sp|24 aa 002240 777775 350010 eapap -3,x0 aa 002241 600026 250100 stpap sp|22 aa 002242 000000 272010 tsbbp 0,x0 " simulate standard BCPL call aa 002243 000000 000000 zero 0 aa 002244 700042 710120 tra sb|34,* " Multics return aa 002245 000000 000000 " padding " Definition section part one - external entry points 5a 000000 000070 000000 " pointer to first definition aa 000001 000000 600000 " flags: new format, ignore header aa 000002 000000 000000 " list terminator aa 000003 021142 143160 " "bcpl_command_lib_" aa 000004 154137 143157 aa 000005 155155 141156 aa 000006 144137 154151 aa 000007 142137 000000 aa 000010 017103 157156 " "ConcatenateArgs" aa 000011 143141 164145 aa 000012 156141 164145 aa 000013 101162 147163 aa 000014 021107 145164 " "GetNextCommandArg" aa 000015 116145 170164 aa 000016 103157 155155 aa 000017 141156 144101 aa 000020 162147 000000 aa 000021 013117 160164 " "OptionParse" aa 000022 151157 156120 aa 000023 141162 163145 aa 000024 010103 157155 " "Complain" aa 000025 160154 141151 aa 000026 156000 000000 aa 000027 015122 145166 " "RevertHandler" aa 000030 145162 164110 aa 000031 141156 144154 aa 000032 145162 000000 aa 000033 012123 145164 " "SetHandler" aa 000034 110141 156144 aa 000035 154145 162000 aa 000036 017120 154061 " "Pl1ReturnString" aa 000037 122145 164165 aa 000040 162156 123164 aa 000041 162151 156147 aa 000042 014120 154061 " "Pl1ArgString" aa 000043 101162 147123 aa 000044 164162 151156 aa 000045 147000 000000 aa 000046 015120 154061 " "Pl1Descriptor" aa 000047 104145 163143 aa 000050 162151 160164 aa 000051 157162 000000 aa 000052 011120 154061 " "Pl1ArgPtr" aa 000053 101162 147120 aa 000054 164162 000000 aa 000055 013120 154061 " "Pl1NumbArgs" aa 000056 116165 155142 aa 000057 101162 147163 aa 000060 014163 171155 " "symbol_table" aa 000061 142157 154137 aa 000062 164141 142154 aa 000063 145000 000000 aa 000064 015115 141151 " "MainCondition" aa 000065 156103 157156 aa 000066 144151 164151 aa 000067 157156 000000 " Segname definition for bcpl_command_lib_ 55 000070 000073 000002 " forward, backward threads 5a 000071 000002 400003 " value defined, class flags 55 000072 000003 000073 " name pointer, first entry def " Definition for ConcatenateArgs 55 000073 000076 000070 " forward, backward threads 0a 000074 002125 500000 " value defined, class flags 55 000075 000010 000070 " name pointer, segname def pointer " Definition for GetNextCommandArg 55 000076 000101 000073 " forward, backward threads 0a 000077 002061 500000 " value defined, class flags 55 000100 000014 000070 " name pointer, segname def pointer " Definition for OptionParse 55 000101 000104 000076 " forward, backward threads 0a 000102 001427 500000 " value defined, class flags 55 000103 000021 000070 " name pointer, segname def pointer " Definition for Complain 55 000104 000107 000101 " forward, backward threads 0a 000105 001217 500000 " value defined, class flags 55 000106 000024 000070 " name pointer, segname def pointer " Definition for RevertHandler 55 000107 000112 000104 " forward, backward threads 0a 000110 000773 500000 " value defined, class flags 55 000111 000027 000070 " name pointer, segname def pointer " Definition for SetHandler 55 000112 000115 000107 " forward, backward threads 0a 000113 001067 500000 " value defined, class flags 55 000114 000033 000070 " name pointer, segname def pointer " Definition for Pl1ReturnString 55 000115 000120 000112 " forward, backward threads 0a 000116 000400 500000 " value defined, class flags 55 000117 000036 000070 " name pointer, segname def pointer " Definition for Pl1ArgString 55 000120 000123 000115 " forward, backward threads 0a 000121 000303 500000 " value defined, class flags 55 000122 000042 000070 " name pointer, segname def pointer " Definition for Pl1Descriptor 55 000123 000126 000120 " forward, backward threads 0a 000124 000041 500000 " value defined, class flags 55 000125 000046 000070 " name pointer, segname def pointer " Definition for Pl1ArgPtr 55 000126 000131 000123 " forward, backward threads 0a 000127 000003 500000 " value defined, class flags 55 000130 000052 000070 " name pointer, segname def pointer " Definition for Pl1NumbArgs 55 000131 000134 000126 " forward, backward threads 0a 000132 000251 500000 " value defined, class flags 55 000133 000055 000070 " name pointer, segname def pointer " Definition for symbol_table 55 000134 000137 000131 " forward, backward threads 6a 000135 000000 400002 " value defined, class flags 55 000136 000060 000070 " name pointer, segname def pointer " Definition for MainCondition 55 000137 000002 000134 " forward, backward threads 0a 000140 000641 700000 " value defined, class flags 55 000141 000064 000070 " name pointer, segname def pointer " Definition section part two - symbolic info for external references aa 000142 021142 143160 " "bcpl_conversions_" aa 000143 154137 143157 aa 000144 156166 145162 aa 000145 163151 157156 aa 000146 163137 000000 aa 000147 013103 157156 " "ConvertStoN" aa 000150 166145 162164 aa 000151 123164 157116 5a 000152 000153 000000 aa 000153 000004 000000 55 000154 000142 000147 aa 000155 014145 162162 " "error_table_" aa 000156 157162 137164 aa 000157 141142 154145 aa 000160 137000 000000 aa 000161 006142 141144 " "badopt" aa 000162 157160 164000 5a 000163 000164 000000 aa 000164 000004 000000 55 000165 000155 000161 aa 000166 015142 143160 " "bcpl_strings_" aa 000167 154137 163164 aa 000170 162151 156147 aa 000171 163137 000000 aa 000172 013103 157156 " "Concatenate" aa 000173 143141 164145 aa 000174 156141 164145 5a 000175 000176 000000 aa 000176 000004 000000 55 000177 000166 000172 aa 000200 016103 157155 " "CompareStrings" aa 000201 160141 162145 aa 000202 123164 162151 aa 000203 156147 163000 5a 000204 000205 000000 aa 000205 000004 000000 55 000206 000166 000200 aa 000207 006123 165142 " "Substr" aa 000210 163164 162000 5a 000211 000212 000000 aa 000212 000004 000000 55 000213 000166 000207 aa 000214 022142 143160 " "bcpl_machine_code_" aa 000215 154137 155141 aa 000216 143150 151156 aa 000217 145137 143157 aa 000220 144145 137000 aa 000221 005123 165142 " "Subch" aa 000222 143150 000000 5a 000223 000224 000000 aa 000224 000004 000000 55 000225 000214 000221 aa 000226 010143 157155 " "com_err_" aa 000227 137145 162162 aa 000230 137000 000000 5a 000231 000232 000000 aa 000232 000004 000000 55 000233 000226 000226 aa 000234 003111 124123 " "ITS" 5a 000235 000236 000000 aa 000236 000004 000000 55 000237 000214 000234 aa 000240 017141 143164 " "active_fnc_err_" aa 000241 151166 145137 aa 000242 146156 143137 aa 000243 145162 162137 5a 000244 000245 000000 aa 000245 000004 000000 55 000246 000240 000240 aa 000247 005156 157141 " "noarg" aa 000250 162147 000000 5a 000251 000252 000000 aa 000252 000004 000000 55 000253 000155 000247 aa 000254 015115 141153 " "MakePl1String" aa 000255 145120 154061 aa 000256 123164 162151 aa 000257 156147 000000 5a 000260 000261 000000 aa 000261 000004 000000 55 000262 000166 000254 aa 000263 006114 145156 " "Length" aa 000264 147164 150000 5a 000265 000266 000000 aa 000266 000004 000000 55 000267 000166 000263 aa 000270 011123 145164 " "SetLength" aa 000271 114145 156147 aa 000272 164150 000000 5a 000273 000274 000000 aa 000274 000004 000000 55 000275 000166 000270 aa 000276 010115 157166 " "MoveBits" aa 000277 145102 151164 aa 000300 163000 000000 5a 000301 000302 000000 aa 000302 000004 000000 55 000303 000214 000276 aa 000304 010116 165155 " "NumbArgs" aa 000305 142101 162147 aa 000306 163000 000000 5a 000307 000310 000000 aa 000310 000004 000000 55 000311 000214 000304 aa 000312 010102 103120 " "BCPLaddr" aa 000313 114141 144144 aa 000314 162000 000000 5a 000315 000316 000000 aa 000316 000004 000000 55 000317 000214 000312 " Linkage section - static variables and external links aa 000000 000000 000000 " linkage header 0a 000001 002246 000000 " address of defs aa 000002 000000 000000 aa 000003 000000 000000 aa 000004 000000 000000 aa 000005 000000 000000 2a 000006 000010 000050 " offset to links, total length aa 000007 000000 000050 " obsolete length " External link pairs L155: 3a 000010 777770 000046 " "bcpl_conversions_$ConvertStoN" 5a 000011 000152 000000 L149: 3a 000012 777766 000046 " "error_table_$badopt" 5a 000013 000163 000000 L145: 3a 000014 777764 000046 " "bcpl_strings_$Concatenate" 5a 000015 000175 000000 L133: 3a 000016 777762 000046 " "bcpl_strings_$CompareStrings" 5a 000017 000204 000000 L131: 3a 000020 777760 000046 " "bcpl_strings_$Substr" 5a 000021 000211 000000 L127: 3a 000022 777756 000046 " "bcpl_machine_code_$Subch" 5a 000023 000223 000000 L112: 3a 000024 777754 000046 " "com_err_" 5a 000025 000231 000000 L98: 3a 000026 777752 000046 " "bcpl_machine_code_$ITS" 5a 000027 000235 000000 L58: 3a 000030 777750 000046 " "active_fnc_err_" 5a 000031 000244 000000 L54: 3a 000032 777746 000046 " "error_table_$noarg" 5a 000033 000251 000000 L52: 3a 000034 777744 000046 " "bcpl_strings_$MakePl1String" 5a 000035 000260 000000 L50: 3a 000036 777742 000046 " "bcpl_strings_$Length" 5a 000037 000265 000000 L44: 3a 000040 777740 000046 " "bcpl_strings_$SetLength" 5a 000041 000273 000000 L43: 3a 000042 777736 000046 " "bcpl_machine_code_$MoveBits" 5a 000043 000301 000000 L40: 3a 000044 777734 000046 " "bcpl_machine_code_$NumbArgs" 5a 000045 000307 000000 L6: 3a 000046 777732 000046 " "bcpl_machine_code_$BCPLaddr" 5a 000047 000315 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 437235 024505 " 01/24/75 0658.0 mst Fri aa 000010 142143 160154 " "bcpl " aa 000011 040040 040040 aa 000012 000036 000035 " compiler version name - pointer, length aa 000013 000046 000024 " user id - pointer, length aa 000014 000053 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 000107 " section header pointer, block size aa 000020 000000 000107 " next block pointer, rel_text aa 000021 000000 000141 " rel_def, rel_link aa 000022 000151 000107 " rel_symbol, default truncate aa 000023 000024 000000 " optional truncate, unused aa 000024 000000 000001 " source files map: version number aa 000025 000000 000002 " number of files aa 000026 000064 000060 " bcpl_command_lib_ aa 000027 023333 611415 " last modified on aa 000030 000000 102333 " 01/24/75 0647.2 mst Fri aa 000031 432366 600000 aa 000032 000100 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 102103 120114 " "BCPL version 3.4, August 1973" aa 000037 040166 145162 aa 000040 163151 157156 aa 000041 040063 056064 aa 000042 054040 101165 aa 000043 147165 163164 aa 000044 040061 071067 aa 000045 063040 040040 aa 000046 115141 162164 " "Martinson.SysMaint.a" aa 000047 151156 163157 aa 000050 156056 123171 aa 000051 163115 141151 aa 000052 156164 056141 aa 000053 163157 165162 " "source xref alist optimize 6180" aa 000054 143145 040040 aa 000055 170162 145146 aa 000056 040040 141154 aa 000057 151163 164040 aa 000060 040157 160164 aa 000061 151155 151172 aa 000062 145040 040066 aa 000063 061070 060040 aa 000064 076062 056061 " ">2.1spec>online>mib083074>bcpl_command_lib_.bcpl" aa 000065 163160 145143 aa 000066 076157 156154 aa 000067 151156 145076 aa 000070 155151 142060 aa 000071 070063 060067 aa 000072 064076 142143 aa 000073 160154 137143 aa 000074 157155 155141 aa 000075 156144 137154 aa 000076 151142 137056 aa 000077 142143 160154 aa 000100 076154 144144 " ">ldd>include>head.incl.bcpl" aa 000101 076151 156143 aa 000102 154165 144145 aa 000103 076150 145141 aa 000104 144056 151156 aa 000105 143154 056142 aa 000106 143160 154040 " Relocation information " text section relocation bits aa 000107 000000 000002 " version number of rel-bits structure aa 000110 000000 001501 " length in bits aa 000111 740325 170043 aa 000112 236024 647406 aa 000113 151703 430360 aa 000114 656474 057517 aa 000115 017720 000517 aa 000116 026723 601564 aa 000117 740375 000001 aa 000120 200123 601564 aa 000121 741055 170223 aa 000122 276016 647402 aa 000123 751710 672000 aa 000124 012000 012001 aa 000125 236074 647427 aa 000126 351703 332360 aa 000127 306474 031517 aa 000130 013323 602064 aa 000131 740255 000001 aa 000132 236027 647402 aa 000133 551700 472000 aa 000134 200417 006723 aa 000135 602264 740515 aa 000136 170063 236143 aa 000137 647410 751701 aa 000140 460000 000000 l " inkage relocation bits aa 000141 000000 000002 " version number of rel-bits structure aa 000142 000000 000330 " length in bits aa 000143 100002 204652 aa 000144 465246 524652 aa 000145 465246 524652 aa 000146 465246 524652 aa 000147 465246 524652 aa 000150 465246 524652 s " ymbol relocation bits aa 000151 000000 000002 " version number of rel-bits structure aa 000152 000000 000043 " length in bits aa 000153 740365 770336 " Object map aa 003012 000000 000001 " version number of object_map structure aa 003013 157142 152137 " "obj_map " aa 003014 155141 160040 aa 003015 000000 002245 " text offset, length aa 003016 002246 000320 " def offset, length aa 003017 002566 000050 " link offset, length aa 003020 002636 000154 " symbol offset, length aa 003021 000000 000000 " break map offset, length aa 003022 340000 000000 " flags: ^bound, relocatable, procedure, standard aa 003023 003012 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