Compilation listing of file >2.1spec>online>mib083074>runoff_driver.bcpl. Compilation performed for Martinson.SysMaint.a at 01/24/75 0703.4 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 // This is the command interface for runoff. 2 // Last modified on 06/23/74 at 19:16:49 by R F Mabee. 3 // 4 // Routines defined herein are: 5 // RunoffCommand This implements the runoff command described in the MPM. 6 // RfEntry For the command abbreviation "rf". Ugh. 7 // FindInput To open an input stream. Removes .runoff suffix. 8 // PrintErrorFile Dump out error messages saved during console output. 9 // Cleanup Close streams, delete temporaries, etc. 10 // The last two mentioned are not external to this part of the program. 11 12 // Copyright (c) 1974 by Massachusetts Institute of Technology and Honeywell Information Systems, Inc. 13 14 // General permission is granted to copy and use this program, but not to sell it, provided that the above 15 // copyright statement is given. Contact Information Processing Services, MIT, for further information. 16 // Please contact R F Mabee at MIT for information on this program and versions for other machines. 17 18 get "runoff_head" 1 // External, global, and manifest declarations for RUNOFF on Multics. 2 // Last modified on 06/21/73 at 23:30:13 by R F Mabee. 3 4 // Copyright (c) 1973 by the author, Robert F. Mabee. 5 // This program may be reproduced or modified only with explicit written 6 // permission of the author. Permission is hereby extended to those 7 // persons responsible for operating the Multics system to make such 8 // copies as are normally required to ensure the integrity of the Multics 9 // file system. Permission is also hereby extended to those persons 10 // responsible for maintaining the Multics program libraries to make such 11 // copies as are normally required for online installations. 12 13 external // BCPL library routines used by RUNOFF. 14 $( Packstring = "bcpl_machine_code_$Packstring" 15 Unpackstring = "bcpl_machine_code_$Unpackstring" 16 Writech = "bcpl_machine_code_$Writech" 17 WriteS = "bcpl_stream_io_$WriteS" 18 WriteN = "bcpl_stream_io_$WriteN" 19 ConvertNtoS = "bcpl_conversions_$ConvertNtoS" 20 Newvec = "bcpl_filesys_lib_$Newvec" 21 Freevec = "bcpl_filesys_lib_$Freevec" 22 MinI = "bcpl_arithmetic_$MinI" 23 MaxI = "bcpl_arithmetic_$MaxI" 24 FormDate = "bcpl_conversions_$FormDate" 25 $) 26 27 28 external 29 { 30 31 // All routines that form RUNOFF are listed below, even those that are 32 // not external. This listing is thus a table of contents of RUNOFF. 33 34 // Adjust = "runoff_mr3$Adjust" // Print a line, with right-adjustment. 35 Blank = "runoff_mr4$Blank" // Print n blanks. 36 Break = "runoff_mr3$Break" // Break text, printing buffers. 37 // Center = "runoff_mr3$Center" // Print the current line, centered. 38 Check_ref = "runoff_mr9$Check_ref" // Handle reference to symbol in control line. 39 // Cleanup = "runoff_driver$Cleanup" // Close files, etc. Invoked by unwinder. 40 ConsoleReadline = "runoff_mr0$ConsoleReadline" // Accept next line from user_input. 41 Control = "runoff_mr2$Control" // Process a control line. 42 // DimAttach = "runoff_dim$runoff_attach" // IOSIM attach entry point. 43 // DimChangemode = "runoff_dim$runoff_changemode" // Change internal modes. 44 // DimDetach = "runoff_dim$runoff_detach" // Disconnect runoff DIM. 45 // DimOrder = "runoff_dim$runoff_order" // Execute runoff command line for dim. 46 // DimWrite = "runoff_dim$DimWrite" // Process chunk of text as runoff input. 47 Eject = "runoff_mr3$Eject" // Eject paper, printing footer. 48 // Equation = "runoff_mr3$Equation" // Print an equation. 49 ExecuteCommand = "runoff_mr0$ExecuteCommand" // Pass control line to command processor. 50 FillTrTable = "runoff_mr1$FillTrTable" // Set up a conversion table. 51 FindInput = "runoff_driver$FindInput" // Open new input stream for given name. 52 // FixTab = "runoff_mr0$FixTab" // Calculate tab position and insert blanks. 53 Foot_begin = "runoff_mr6$Foot_begin" // Start processing footnote 54 Foot_end = "runoff_mr6$Foot_end" // Finish processing footnote. 55 Freeheads = "runoff_mr5$Freeheads" // Release a set of headers or footers. 56 // GetArg = "runoff_driver$GetArg" // Arg fetching routine for Option. 57 Gethead = "runoff_mr5$Gethead" // Package header up in new vector. 58 // GetModeArg = "runoff_dim$GetArgMode" // Arg fetching routine for Option for DIM. 59 GetString = "runoff_mr8$GetString" // Read and store string expression. 60 // GetSymbol = "runoff_mr9$GetSymbol" // Find value and type of named symbol. 61 InitializeSymbolTree = "runoff_mr9$InitializeSymbolTree" // Load up symbol table at start-up. 62 InsertFile = "runoff_mr4$InsertFile" // Process .if line. 63 // MakeN = "runoff_mr8$MakeN" // Convert string to character constant (number). 64 Need = "runoff_mr4$Need" // Eject if not enough lines remain. 65 NeedSS = "runoff_mr4$NeedSS" // Need regardless of double-spacing. 66 Newline = "runoff_mr4$Newline" // Print n newline characters. 67 // Number = "runoff_mr2$Number" // Scan a number from a control line. 68 Nx_close = "runoff_mr0$Nx_close" // Close current input stream. 69 Nx_open = "runoff_mr0$Nx_open" // Open a new stacked input stream. 70 Nx_reset = "runoff_mr0$Nx_reset" // Set read pointer back to beginning of current file. 71 // OldModes = "runoff_dim$OldModes" // Create return mode string for changemode (dim). 72 // PrintErrorFile = "runoff_driver$PrintErrorFile" // Dump buffered error messages on console. 73 PrinterIndent = "runoff_mr4$PrinterIndent" // Indent an extra twenty spaces for printer. 74 PrintFootnotes = "runoff_mr6$PrintFootnotes" // To output the accumulated footnotes. 75 Readline = "runoff_mr0$Readline" // Read a line of input. 76 Readhead = "runoff_mr5$Readhead" // Read header into vector provided. 77 ReadExp = "runoff_mr8$ReadExp" // Evaluate an expression. 78 ReadName = "runoff_mr4$ReadName" // Scan name from control line, pack in vector. 79 ReadNumber = "runoff_mr8$ReadNumber" // Convert number from control line. 80 ReadParam = "runoff_mr8$ReadParam" // Evaluate a parameter expression. 81 ReadString = "runoff_mr8$ReadString" // Read a string. 82 Report = "runoff_mr0$Report" // Report an error in usage, etc. 83 Roff = "runoff_mr1$Roff" // The main program for RUNOFF. 84 RoffProcess = "runoff_mr0$RoffProcess" // Called for each input file. 85 // runoff_module = "runoff_$runoff_module_" // Outer module transfer vector for dim. 86 // RunoffCommand = "runoff_driver$runoff" // Command interface. 87 // Save = "runoff_dim$Save" // Store global vector in SDB for dim. 88 SetCharsw = "runoff_mr0$SetCharsw" // Turn chars feature on or off. 89 // SetCtable = "runoff_mr9$SetCtable" // Update translation table from .sr command. 90 SetDevice = "runoff_mr1$SetDevice" // Change tables for a new device. 91 Sethead = "runoff_mr5$Sethead" // Set up header or footer. 92 SetLinesLeft = "runoff_mr4$SetLinesLeft" // Repeat calculation of LinesLeft. 93 // SetModes = "runoff_dim$SetModes" // Mode changing subroutine for DIM. 94 SetPaging = "runoff_mr1$SetPaging" // Turn no pagination feature on or off. 95 SetSwitches = "runoff_mr1$SetSwitches" // Initialize most of runoff. 96 // SetSymbol = "runoff_mr9$SetSymbol" // Assign new value and type to named symbol. 97 // Set_param = "runoff_mr2$Set_param" // Update variable, absolute or relatve. 98 Set_ref = "runoff_mr9$Set_ref" // Define or update symbol. 99 // Skip = "runoff_mr8$Skip" // Skip over blanks in control line. 100 Skiptolabel = "runoff_mr4$Skiptolabel" // For .gb and .gf. 101 Spacing = "runoff_mr3$Spacing" // Process vertical spacing. 102 // StNum = "runoff_dim$StNum" // Store number into mode string for OldModes. 103 // Store = "runoff_mr7$Store" // Save character until line is complete (for "chars"). 104 StoreArabic = "runoff_mr4$StoreArabic" // Convert number to string. 105 // StoreCtable = "runoff_mr9$StoreCtable" // Convert translation table to string form. 106 StoreDate = "runoff_mr4$StoreDate" // Store current date in vector. 107 StoreRoman = "runoff_mr4$StoreRoman" // Store number as roman numeral. 108 StoreString = "runoff_mr0$StoreString" // Make copy of string in free storage. 109 // StSwitch = "runoff_dim$StSwitch" // Store switch mode into mode string. 110 // SubscriptString = "runoff_mr8$SubscriptString" // Evaluate substring expression. 111 Text = "runoff_mr3$Text" // Process 1 line of input text. 112 Title = "runoff_mr5$Title" // Print a header or a footer. 113 // Tree_search = "runoff_mr9$Tree_search" // Look named symbol up in symbol table. 114 // TryToHyphenate = "runoff_mr3$TryToHyphenate" // Last word won't fit on line, break it if possible. 115 Typeout = "runoff_mr0$Typeout" // Type rest of input line on console. 116 // Unsave = "runoff_dim$Unsave" // Restore globals from SDB for dim. 117 UpdateSymbol = "runoff_mr9$UpdateSymbol" // Set named symbol to value from control line. 118 Use_ref = "runoff_mr9$Use_ref" // Insert symbol value in place of symbol 119 Wait = "runoff_mr0$Wait" // Wait for an interaction from the console. 120 Width = "runoff_mr3$Width" // Return width of a character. 121 WrCh = "runoff_mr7$WrCh" // "Chars" routine 122 WrChInit = "runoff_mr7$WrChInit" // Initialize "chars" routine 123 WriteChar = "runoff_mr4$WriteChar" // Write a character of output. 124 // Wrline = "runoff_ms7$Wrline" // Write stored line into chars file. 125 126 } 127 128 global // Scalars, switches, common vectors, etc. ... 129 { 130 Ad : 100 // Adjust 131 Again : 101 // Input line in Rawchar must be reprocessed. 132 Ce : 102 // Number of lines to center. 133 Char : 103 // Buffer for output characters. 134 CharsTable : 104 // Table of special characters for .chars output. 135 Charsw : 105 // Indication of unprintable characters. 136 ChStream : 106 // Output stream for "chars" option output 137 Conv : 107 // Character conversion. 138 139 Device : 110 // Type of device output is to be formatted for. 140 DeviceTable : 111 // Conversions for this device. 141 Ef : 112 // Even foot 142 Eh : 113 // Even head. 143 Eq : 114 // Equation line counter. 144 Eqcnt : 115 // Equation reference counter 145 ErrorfilePointer : 116 // Pointer to the temporary error file if any. 146 Errorstream : 117 // Output stream for diagnostics. 147 148 ErrorTempID : 120 // ID number for temporary error message segment. 149 ExpError : 121 // Indicates badly formed expression. 150 ExtraMargin : 122 // Indent entire text this many spaces. 151 Fc : 123 // No. of characters in Footbuf 152 Fd : 124 // Remember if text is double spaced 153 Fi : 125 // Fill switch. 154 FileName : 126 // Name of first input file. 155 Filesw : 127 // True if output is going to a file. 156 157 Findent : 130 // Indenting in use before entering footnote. 158 Fl : 131 // No. of lines in FootList 159 Flp : 132 // Print line although page appears full 160 Foot : 133 // Footnote counter 161 Footbuf : 134 // Buffer to hold current footnote. 162 FootList : 135 // Working pointer into list of footnote lines. 163 FootListBase : 136 // Base of footnote list. 164 FootRef : 137 // Footnote reference string in footnote body. 165 166 Fp : 140 // First page to print. 167 Fr : 141 // Footnote counter reset switch 168 From : 142 // -from argument. 169 Ft : 143 // Footnote processing switch 170 Fth : 144 // Vector for user-defined demarcation line 171 Fundent : 145 // Undenting in use before entering footnote. 172 Hyphenating : 146 // True if an attempt to break a word should be made. 173 In : 147 // Indent to here. 174 175 InputFileName : 150 // Name of current input file. 176 InputLines : 151 // Current line number in current source file. 177 InputStack : 152 // Stack of saved input streams. 178 JumpLine : 153 // Line number of .gb or .gf command during skip. 179 LinesLeft : 154 // Number of usable text lines left on this page. 180 LIno : 155 // Number of literal lines following. 181 Ll : 156 // Line length. 182 Lp : 157 // Last page to print. 183 184 Ma1 : 160 // Space above header. 185 Ma2 : 161 // Space below header. 186 Ma3 : 162 // Space above foot. 187 Ma4 : 163 // Space below foot. 188 Ms : 164 // Spacing between lines (ss = 1, ds = 2, etc.) 189 MultiplePagecount : 165 // Form feeds between pages to printer. 190 Nc : 166 // Number of characters in Char. 191 NestingDepth : 167 // Index into stack of input files. 192 193 Nl : 170 // Last used line number. 194 NNp : 171 // Next page number. 195 NoControl : 172 // True if control lines are to be ignored. 196 NoFill : 173 // True if fill mode is always off. 197 NoFtNo : 174 // True to suppress number on next footnote reference. 198 NoPaging : 175 // True if no pagination is desired. 199 Np : 176 // Current page number. 200 Nr : 177 // Number of characters in Rawchar. 201 202 Nrx : 180 // Count through input buffer. 203 OddPage : 181 // True if current page number is odd. 204 Of : 182 // Odd foot. 205 Oh : 183 // Odd head. 206 Output : 184 // Runoff's main text output stream. 207 PadLeft : 185 // True if padding is to start from left of line. 208 Parameter : 186 // Initial value of built-in symbol. 209 Passes : 187 // Number of passes left to make. 210 211 Pi : 190 // Space needed for a picture. 212 Pl : 191 // Paper length. 213 Print : 192 // Whether or not to print. 214 Printersw : 193 // Output is intended for online printer. 215 PrintLineNumbers : 194 // True if source line numbers are to be printed in output. 216 Rawchar : 195 // Buffer for input line. 217 Roman : 196 // Roman numeral pagination. 218 SavedCc : 197 // Temporary used by WriteChar. 219 220 Selsw : 200 // for selectric ball option 221 Spec_char : 201 // For symbol references. 222 Start : 202 // -start argument. 223 Stopsw : 203 // Stop between pages of output. 224 Temp : 204 // Vector to hold unprinted character 225 Tempc : 205 // No. of characters in Temp 226 TextRef : 206 // Footnote reference string in main text. 227 TimeNow : 207 // Clock reading when runoff is entered. 228 229 To : 210 // -to argument. 230 TrTable : 211 // Translation table for .tr. 231 TreeRoot : 212 // Base of symbol tree. 232 Un : 213 // Undent to here. 233 Waitsw : 214 // From -wait option. 234 235 // 300 to 309 are reserved for runoff_driver. 236 // 310 to 319 are reserved for runoff_dim. 237 // 320 to 329 are reserved for runoff_mr0. 238 // 330 to 339 are reserved for runoff_mr7. 239 } 240 241 manifest 242 { 243 ByteBits = 9 // Bits per character, as packed by compiler. 244 Skip = $8177 // A character that will be ignored on output. 245 Maxline = 400 // Buffer lengths for input and output 246 Maxheads = 20 // No of header or footer lines. 247 MaxDepth = 90 // Nesting times 3 for .if. 248 249 LL_ = 65 // Default line length. 250 PL_ = 66 // Default page length -- 11 inches, 6 lines/in. 251 MA1_ = 4 // Default top margin above header 252 MA2_ = 2 // Default top margin below header 253 MA3_ = 2 // Default bottom margin above footer 254 MA4_ = 4 // Default bottom margin below footer 255 } 19 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 $) 20 21 external 22 $( RunoffCommand = "runoff" 23 RfEntry = "rf" 24 TtyInfo = "user_info_$tty_data" 25 IosWritePtr = "ios_$write_ptr" 26 $) 27 global 28 $( Streams : 300 29 EntryNames : 301 30 Sn : 302 31 32 ArgITS : 26 // Multics save sequence leaves argument list pointer here (two words). 33 $) 34 35 // This routine is called directly from command level to execute the runoff command. 36 // Its parameters (all character strings) are intermingled options and pathnames of 37 // source files. Its usage is described in the MPM runoff command writeup. 38 39 let RunoffCommand () be main 40 $( MONITOR := Open (StreamName + Write, "error_output") // Errors, etc. written here. 41 OUTPUT, CONSOLE, ChStream, Errorstream := 0, 0, 0, 0 42 Errcode, ProgramID := 0, "runoff" 43 From, To, Start, Stopsw, Charsw, Device := 1, 999999, 1, false, false, 0 44 NoPaging, Hyphenating, Passes, Waitsw := false, false, 1, false 45 PrintLineNumbers, ExtraMargin, Parameter := false, -1, "" 46 NoControl, NoFill := false, false 47 Filesw := false 48 Streams, EntryNames, Sn := vec 100, vec 100, 0 49 ErrorTempID := 0 50 let Xvec = vec 10000 51 NewvecInit (Xvec, 10000) 52 let w = vec 2 53 TimeNow := TimeToSeconds (RawClockTime (w)) 54 55 let Cvec = vec 20 56 SetHandler ("cleanup", Cleanup, Cvec) // Set up for release of streams. 57 58 // Scan command arguments. 59 60 ArgIndex := 1 61 let Names = list "file", "segment", "sm", "chars", "character", 62 "ch", "stop", "sp", "wait", "wt", 63 "pagination", "pgnt", "npgn", "hyphenate", "hph", 64 "number", "nb", "control", "fill", "parameter", 65 "pm", "pass", "margin", "indent", "in", 66 "from", "fm", "to", "start", "page", 67 "pg", "ball", "bl", "device", "dv" 68 and Pointers = list lv Filesw, lv Filesw, lv Filesw, lv Charsw, lv Charsw, 69 lv Charsw, lv Stopsw, lv Stopsw, lv Waitsw, lv Waitsw, 70 lv NoPaging, lv NoPaging, lv NoPaging, lv Hyphenating, lv Hyphenating, 71 lv PrintLineNumbers, lv PrintLineNumbers, lv NoControl, lv NoFill, DoParam, 72 DoParam, lv Passes, lv ExtraMargin, lv ExtraMargin, lv ExtraMargin, 73 lv From, lv From, lv To, lv Start, lv Start, 74 lv Start, lv Device, lv Device, lv Device, lv Device 75 and Flags = table OptNegatable, OptNegatable, OptNegatable, OptNegatable, OptNegatable, 76 OptNegatable, OptNegatable, OptNegatable, OptNegatable, OptNegatable, 77 OptNegatable | OptNegate, OptNegatable | OptNegate, 0, OptNegatable, OptNegatable, 78 OptNegatable, OptNegatable, OptNegatable | OptNegate, OptNegatable | OptNegate, OptCallOut | OptGetNext, 79 OptCallOut | OptGetNext, OptConvert, OptConvert, OptConvert, OptConvert, 80 OptConvert, OptConvert, OptConvert, OptConvert, OptConvert, 81 OptConvert, OptConvert, OptConvert, OptConvert, OptConvert 82 83 OptionParse (GetNextCommandArg, 35, Names, Pointers, Flags, DoName) 84 85 if Sn = 0 do Complain ("Pathnames of input segments expected. Options:*n^a*n^a", 86 "-file -stop -wait -chars -no_pagination -hyphenate -number -no_control -no_fill", 87 "-from -to -start -device -pass -margin ") 88 89 90 // Determine default device type. 91 92 test Filesw 93 then $( if Device = 0 do Device := 202 94 Errorstream := MONITOR 95 $) 96 or $( OUTPUT := Open (StreamName + Write, "user_output", 1000, 0) // Big buffer, no delimiter. 97 unless Errcode = 0 do Complain ("user_output") 98 if Device = 0 do 99 $( let x, y = 0, 0 100 call TtyInfo (lv x char 0, lv y) 101 Device := y le 2 | y = 6 -* 963, 37 102 $) 103 $) 104 105 if ExtraMargin < 0 do ExtraMargin := (Device = 202 | Device = 300) & Filesw -> 20, 0 106 107 unless Device = 1050 | Device = 2741 | Device = 963 // "Normal" IBM type codes. 108 | Device = 012 | Device = 015 | Device = 041 // IBM terminal with office typewriter element. 109 | Device = 088 110 | Device = 37 | Device = 202 | Device = 300 do // Full ASCII device. 111 Complain ("Illegal device type specified. Legal devices:*n1050 2741 37 202 300 963 012 015 041 088") 112 113 let FromX, ToX, StartX, StopswX, CharswX, DeviceX = From, To, Start, Stopsw, Charsw, Device 114 and NoPagingX, HyphenatingX, PassesX, WaitswX = NoPaging, Hyphenating, Passes, Waitsw 115 and PrintLineNumbersX, ExtraMarginX, ParameterX = PrintLineNumbers, ExtraMargin, Parameter 116 and NoControlX, NoFillX = NoControl, NoFill 117 118 // Process input files, one at a time. 119 120 for i = 1 to Sn do 121 $( FileName := EntryNames!i 122 if Filesw do 123 $( let w = vec 20 124 OUTPUT := Open (EntryName + Write + MultiSegmentFile, Concatenate (w, 32, FileName, ".runout")) 125 unless Errcode = 0 do Complain (w) 126 $) 127 128 From, To, Start, Stopsw, Charsw, Device := FromX, ToX, StartX, StopswX, CharswX, DeviceX 129 NoPaging, Hyphenating, Passes := NoPagingX, HyphenatingX, PassesX 130 PrintLineNumbers, ExtraMargin := PrintLineNumbersX, ExtraMarginX 131 Parameter := StoreString (ParameterX) 132 NoControl, NoFill := NoControlX, NoFillX 133 Waitsw := WaitswX | StopswX 134 135 // Invoke runoff main program for each source segment. 136 137 Roff (lv Streams!(i - 1), 1, OUTPUT) 138 139 if Filesw do 140 $( Close (OUTPUT) 141 OUTPUT := 0 142 $) 143 144 unless ChStream = 0 do 145 $( Close (ChStream) 146 ChStream := 0 147 $) 148 $) 149 150 // Finished with all source files, clean up and return to command level. 151 152 if Stopsw do Wait () 153 154 unless Filesw do 155 $( Close (OUTPUT) 156 OUTPUT := 0 157 $) 158 159 PrintErrorFile () 160 161 Cleanup () 162 $) 163 and RfEntry () be main 164 Pl1Call (RunoffCommand, BCPLaddr (lv ArgITS)) 165 166 and DoName (Arg) be // Called by OptionParse to process file-name argument. 167 $( Streams!(Sn + 1) := FindInput (Arg, 0) 168 Sn := Sn + 1 169 unless Errcode = 0 do Complain ("^a.runoff", Arg) 170 let w, D, E = vec 50, vec 50, vec 10 171 SplitPathname (ExpandPathname (Arg, w), D, E) 172 EntryNames!Sn := StoreString (MakeBcplString (E, 32, w)) 173 $) 174 and DoParam (Arg) be // Called by OptionParse to process "-parameter" option. 175 Parameter := StoreString (Arg) 176 177 and FindInput (Name, ParentStream) = valof // BEWARE! This routine is defined to update its argument. 178 $( let v = vec 50 179 let l = Length (Name) 180 if l ge 8 do 181 $( Substr (v, Name, l - 6) 182 if EqualString (v, ".runoff") do 183 $( Substr (v, Name, 1, l - 7) 184 CopyString (v, Name) 185 $) 186 $) 187 188 Concatenate (v, 168, Name, ".runoff") 189 resultis ParentStream = 0 -> Open (PathName + Read + MultiSegmentFile, v), 190 Open (SearchName + Read + MultiSegmentFile, v, ParentStream) 191 $) 192 and PrintErrorFile () be 193 $( if Errorstream = 0 | Filesw return 194 unless OUTPUT = 0 do Writeout (OUTPUT) 195 let l = StreamOffset (Errorstream) 196 Close (Errorstream) 197 Errorstream := 0 198 let v, Zero = vec 2, 0 199 call IosWritePtr (ITS (ErrorfilePointer, v), lv Zero, lv l) 200 $) 201 202 and Cleanup () be 203 $( while Sn > 0 do 204 $( Sn := Sn - 1 205 Close (Streams!(Sn + 1)) 206 $) 207 unless OUTPUT = 0 | Filesw do 208 $( ResetStream (OUTPUT, 0) 209 Close (OUTPUT) 210 OUTPUT := 0 211 $) 212 unless CONSOLE = 0 do Close (CONSOLE) 213 CONSOLE := 0 214 ChStream := 0 215 unless Errorstream = 0 | Filesw do Close (Errorstream) 216 Errorstream := 0 217 Close (MONITOR) 218 NewvecCleanup () 219 unless ErrorTempID = 0 do DeleteTempSeg (ErrorTempID, "error_messages") 220 $) CAE time 6.2, 99 source lines per second. cross reference table AbsI head: 11 AbsR head: 12 Ad runoff_head: 130 Again runoff_head: 131 Allocate head: 64 Append head: 136 Arg runoff_driver: 166, 167, 169, 171, 174, 175 ArgIndex head: 121, runoff_driver: 60 ArgITS runoff_driver: 32, 164 Bcall head: 54 BCPLaddr head: 108, runoff_driver: 164 Blank runoff_head: 35 Break runoff_head: 36 ByteBits runoff_head: 243 ByteSize head: 127 Ce runoff_head: 132 Ch head: 118 Char runoff_head: 133 CharsTable runoff_head: 134 Charsw runoff_head: 135, runoff_driver: 43, 68, 68, 69, 113, 128 CharswX runoff_driver: 113, 128 CharToString head: 37 Check_ref runoff_head: 38 ChStream runoff_head: 136, runoff_driver: 41, 144, 145, 146, 214 Cleanup runoff_driver: 56, 161, 202 Close head: 69, runoff_driver: 140, 145, 155, 196, 205, 209, 212, 215, 217 CompareStrings head: 27 Complain head: 107, runoff_driver: 85, 97, 111, 125, 169 Concatenate head: 28, runoff_driver: 124, 188 ConcatenateArgs head: 104 CONSOLE head: 117, runoff_driver: 41, 212, 212, 213 Console head: 134 ConsoleReadline runoff_head: 40 Control runoff_head: 41 Conv runoff_head: 137 ConvertFtoS head: 46 ConvertNtoS runoff_head: 19, head: 45 ConvertStoN head: 44 CopyString head: 25, runoff_driver: 184 CountSize head: 128 Cvec runoff_driver: 55, 56 D runoff_driver: 170, 171 DeleteTempSeg head: 91, runoff_driver: 219 Device runoff_head: 139, runoff_driver: 43, 74, 74, 74, 74, 93, 93, 98, 101, 105, 105, 107, 107, 107, 108, 108, 108, 109, 110, 110, 110, 113, 128 DeviceTable runoff_head: 140 DeviceX runoff_driver: 113, 128 DoName runoff_driver: 83, 166 DoParam runoff_driver: 71, 72, 174 E runoff_driver: 170, 171, 172 Ef runoff_head: 141 Eh runoff_head: 142 Eject runoff_head: 47 Endofstreamch head: 130 EntryName head: 135, runoff_driver: 124 EntryNames runoff_driver: 29, 48, 121, 172 Eq runoff_head: 143 Eqcnt runoff_head: 144 EqualString head: 26, runoff_driver: 182 Errcode head: 120, runoff_driver: 42, 97, 125, 169 ErrorfilePointer runoff_head: 145, runoff_driver: 199 Errorstream runoff_head: 146, runoff_driver: 41, 94, 193, 195, 196, 197, 215, 215, 216 ErrorTempID runoff_head: 148, runoff_driver: 49, 219, 219 ExecuteCommand runoff_head: 49 ExpandPathname head: 84, runoff_driver: 171 ExpError runoff_head: 149 Exponential head: 20 ExtraMargin runoff_head: 150, runoff_driver: 45, 72, 72, 72, 105, 105, 115, 130 ExtraMarginX runoff_driver: 115, 130 Fc runoff_head: 151 Fd runoff_head: 152 Fi runoff_head: 153 FileName runoff_head: 154, runoff_driver: 121, 124 Filesw runoff_head: 155, runoff_driver: 47, 68, 68, 68, 92, 105, 122, 139, 154, 193, 207, 215 FillTrTable runoff_head: 50 Findadr head: 65 Findent runoff_head: 157 FindInput runoff_head: 51, runoff_driver: 167, 177 FindSegment head: 87 Fl runoff_head: 158 Flags runoff_driver: 75, 83 Flp runoff_head: 159 Flushinput head: 77 Foot runoff_head: 160 Footbuf runoff_head: 161 FootList runoff_head: 162 FootListBase runoff_head: 163 FootRef runoff_head: 164 Foot_begin runoff_head: 53 Foot_end runoff_head: 54 Format head: 74 FormatString head: 75 FormDate runoff_head: 24, head: 49 Fp runoff_head: 166 Fr runoff_head: 167 Freeheads runoff_head: 55 Freevec runoff_head: 21, head: 63 From runoff_head: 168, runoff_driver: 43, 73, 73, 113, 128 FromX runoff_driver: 113, 128 Ft runoff_head: 169 Fth runoff_head: 170 Fundent runoff_head: 171 GetCpuUsage head: 96 Gethead runoff_head: 57 GetNextCommandArg head: 106, runoff_driver: 83 GetPathname head: 89 GetString runoff_head: 59 Hyphenating runoff_head: 172, runoff_driver: 44, 70, 70, 114, 129 HyphenatingX runoff_driver: 114, 129 i runoff_driver: 120, 121, 137 In runoff_head: 173 Index head: 34 IndexCh head: 35 InitializeSymbolTree runoff_head: 61 INPUT head: 116 InputFileName runoff_head: 175 InputLines runoff_head: 176 InputStack runoff_head: 177 InsertEscapes head: 48 InsertFile runoff_head: 62 IOstatus head: 120 IosWritePtr runoff_driver: 25, 199 IpowerI head: 14 ItoR head: 43 ITS head: 109, runoff_driver: 199 JoinPathname head: 85 JumpLine runoff_head: 178 l runoff_driver: 179, 180, 181, 183, 195, 199 Left head: 129 Length head: 31, runoff_driver: 179 LengthInWords head: 33 Level head: 53 LinesLeft runoff_head: 179 LIno runoff_head: 180 Ll runoff_head: 181 LL_ runoff_head: 249 Logarithm head: 19 Longjump head: 52 Lp runoff_head: 182 Ma1 runoff_head: 184 MA1_ runoff_head: 251 Ma2 runoff_head: 185 MA2_ runoff_head: 252 Ma3 runoff_head: 186 MA3_ runoff_head: 253 Ma4 runoff_head: 187 MA4_ runoff_head: 254 Machine head: 125 MakeBcplString head: 39, runoff_driver: 172 MakePl1String head: 38 MakeSegment head: 88 MakeTempSeg head: 90 MaxDepth runoff_head: 247 Maxheads runoff_head: 246 MaxI runoff_head: 23, head: 7 Maxline runoff_head: 245 MaxR head: 8 MinI runoff_head: 22, head: 9 MinR head: 10 MONITOR head: 117, runoff_driver: 40, 94, 217 Move head: 56 MoveBits head: 57 Ms runoff_head: 188 MultiplePagecount runoff_head: 189 MultiSegmentFile head: 137, runoff_driver: 124, 189, 190 Name runoff_driver: 177, 179, 181, 183, 184, 188 Names runoff_driver: 61, 83 Nc runoff_head: 190 Need runoff_head: 64 NeedSS runoff_head: 65 NestingDepth runoff_head: 191 Newline runoff_head: 66 Newvec runoff_head: 20, head: 62 NewvecCleanup head: 61, runoff_driver: 218 NewvecInit head: 60, runoff_driver: 51 Nl runoff_head: 193 NNp runoff_head: 194 NoControl runoff_head: 195, runoff_driver: 46, 71, 116, 132 NoControlX runoff_driver: 116, 132 NoFill runoff_head: 196, runoff_driver: 46, 71, 116, 132 NoFillX runoff_driver: 116, 132 NoFtNo runoff_head: 197 NoPaging runoff_head: 198, runoff_driver: 44, 70, 70, 70, 114, 129 NoPagingX runoff_driver: 114, 129 Np runoff_head: 199 Nr runoff_head: 200 Nrx runoff_head: 202 Null head: 131 NumbArgs head: 59 Nx_close runoff_head: 68 Nx_open runoff_head: 69 Nx_reset runoff_head: 70 OddPage runoff_head: 203 Of runoff_head: 204 Oh runoff_head: 205 Open head: 68, runoff_driver: 40, 96, 124, 189, 190 OptCallOut head: 144, runoff_driver: 78, 79 OptConvert head: 143, runoff_driver: 79, 79, 79, 79, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81 OptGetNext head: 142, runoff_driver: 78, 79 OptionParse head: 105, runoff_driver: 83 OptNegatable head: 140, runoff_driver: 75, 75, 75, 75, 75, 76, 76, 76, 76, 76, 77, 77, 77, 77, 78, 78, 78, 78 OptNegate head: 141, runoff_driver: 77, 77, 78, 78 OUTPUT head: 116, runoff_driver: 41, 96, 124, 137, 140, 141, 155, 156, 194, 194, 207, 208, 209, 210 Output runoff_head: 206 Packstring runoff_head: 14, head: 23 PadLeft runoff_head: 207 Parameter runoff_head: 208, runoff_driver: 45, 115, 131, 175 ParameterX runoff_driver: 115, 131 ParentStream runoff_driver: 177, 189, 190 Passes runoff_head: 209, runoff_driver: 44, 72, 114, 129 PassesX runoff_driver: 114, 129 PathName head: 135, runoff_driver: 189 Pi runoff_head: 211 Pl runoff_head: 212 Pl1ArgPtr head: 100 Pl1ArgString head: 102 Pl1Call head: 55, runoff_driver: 164 Pl1Descriptor head: 101 Pl1NumbArgs head: 99 Pl1ReturnString head: 103 PL_ runoff_head: 250 Pointer head: 134 Pointers runoff_driver: 68, 83 Print runoff_head: 213 PrinterIndent runoff_head: 73 PrintErrorFile runoff_driver: 159, 192 Printersw runoff_head: 214 PrintFootnotes runoff_head: 74 PrintLineNumbers runoff_head: 215, runoff_driver: 45, 71, 71, 115, 130 PrintLineNumbersX runoff_driver: 115, 130 ProgramID head: 119, runoff_driver: 42 RandomI head: 17 RandomR head: 18 Rawchar runoff_head: 216 RawClockTime head: 94, runoff_driver: 53 Read head: 136, runoff_driver: 189, 190 Readch head: 70 ReadExp runoff_head: 77 Readhead runoff_head: 76 Readline runoff_head: 75 ReadName runoff_head: 78 ReadNumber runoff_head: 79 ReadParam runoff_head: 80 ReadString runoff_head: 81 RemoveEscapes head: 47 Report runoff_head: 82 ResetStream head: 78, runoff_driver: 208 RevertHandler head: 112 RfEntry runoff_driver: 23, 163 Right head: 129 Roff runoff_head: 83, runoff_driver: 137 RoffProcess runoff_head: 84 Roman runoff_head: 217 RpowerI head: 15 RpowerR head: 16 RtoI head: 42 RunoffCommand runoff_driver: 22, 39, 164 SavedCc runoff_head: 218 ScanChar head: 58 SearchName head: 135, runoff_driver: 190 Selsw runoff_head: 220 SetBitCount head: 93 SetCharsw runoff_head: 88 SetDevice runoff_head: 90 SetHandler head: 111, runoff_driver: 56 Sethead runoff_head: 91 SetLength head: 32 SetLinesLeft runoff_head: 92 SetOverflowMask head: 110 SetPaging runoff_head: 94 SetSwitches runoff_head: 95 Set_ref runoff_head: 98 Skip runoff_head: 244 Skiptolabel runoff_head: 100 Sn runoff_driver: 30, 48, 85, 120, 167, 168, 168, 172, 203, 204, 204, 205 Spacing runoff_head: 101 Spec_char runoff_head: 221 SplitPathname head: 86, runoff_driver: 171 SquareRoot head: 13 Start runoff_head: 222, runoff_driver: 43, 73, 73, 74, 113, 128 StartX runoff_driver: 113, 128 Stopsw runoff_head: 223, runoff_driver: 43, 69, 69, 113, 128, 152 StopswX runoff_driver: 113, 128, 133 StoreArabic runoff_head: 104 StoreDate runoff_head: 106 StoreRoman runoff_head: 107 StoreString runoff_head: 108, runoff_driver: 131, 172, 175 StreamLength head: 80 StreamName head: 134, runoff_driver: 40, 96 StreamOffset head: 79, runoff_driver: 195 StreamPointer head: 81 Streams runoff_driver: 28, 48, 137, 167, 205 StringToChar head: 36 Subch head: 30 Substr head: 29, runoff_driver: 181, 183 Temp runoff_head: 224 Tempc runoff_head: 225 Terminate head: 92 Text runoff_head: 111 TextRef runoff_head: 226 TimeNow runoff_head: 227, runoff_driver: 53 TimeToSeconds head: 95, runoff_driver: 53 Title runoff_head: 112 To runoff_head: 229, runoff_driver: 43, 73, 113, 128 ToX runoff_driver: 113, 128 TreeRoot runoff_head: 231 TrTable runoff_head: 230 TtyInfo runoff_driver: 24, 100 Typeout runoff_head: 115 Un runoff_head: 232 Unpackstring runoff_head: 15, head: 24 UpdateSymbol runoff_head: 117 Use_ref runoff_head: 118 v runoff_driver: 178, 181, 182, 183, 184, 188, 189, 190, 198, 199 w runoff_driver: 52, 53, 123, 124, 125, 170, 171, 172 Wait runoff_head: 119, runoff_driver: 152 Waitsw runoff_head: 233, runoff_driver: 44, 69, 69, 114, 133 WaitswX runoff_driver: 114, 133 Width runoff_head: 120 WordSize head: 126 WrCh runoff_head: 121 WrChInit runoff_head: 122 Write head: 136, runoff_driver: 40, 96, 124 Writech runoff_head: 16, head: 71 WriteChar runoff_head: 123 WriteN runoff_head: 18, head: 73 Writeout head: 76, runoff_driver: 194 WriteS runoff_head: 17, head: 72 x runoff_driver: 99, 100 Xvec runoff_driver: 50, 51 y runoff_driver: 99, 100, 101, 101 Zero runoff_driver: 198, 199 Trans time 2.1, 726 object words per second. " Begin text of RunoffCommand aa 000000 000015 122165 zero 13,42101 " RunoffCommand aa 000001 156157 146146 zero 56431,52326 aa 000002 103157 155155 zero 34415,55917 aa 000003 141156 144000 zero 49774,51200 5a 000004 000024 000000 zero 20 " relative pointer to definition for entry L1: aa 000005 000000 213000 39 epaq 0 " set lp to linkage section aa 000006 700026 764161 lprplp sb|22,*au aa 000007 002051 700004 tsx0 L11 " execute Multics save aa 000010 200000 021100 adlx1 bp|0 " BCPL save aa 000011 700000 542111 sprpbp sb|0,x1 aa 000012 700001 544111 sprplp sb|1,x1 aa 000013 724203 620111 eax0 sb|10371,x1 aa 000014 777760 360003 anx0 -16,du aa 000015 700025 740100 stx0 sb|21 " end of save sequence aa 000016 000043 236007 40 ldq 35,dl aa 000017 724154 756111 stq sb|10348,x1 aa 000020 001265 350004 eapap L13 " "error_output" aa 000021 724155 540111 sprpap sb|10349,x1 4a 000022 400102 272120 tsbbp lp|L14,* " Open aa 000023 024152 000002 zero 10346,2 aa 000024 600042 756100 stq sp|34 " MONITOR aa 000025 600040 450100 41 stz sp|32 " OUTPUT aa 000026 600043 450100 stz sp|35 " CONSOLE aa 000027 600152 450100 stz sp|106 " ChStream aa 000030 600165 450100 stz sp|117 " Errorstream aa 000031 600046 450100 42 stz sp|38 " Errcode aa 000032 001251 350004 eapap L15 " "runoff" aa 000033 600045 540100 sprpap sp|37 " ProgramID aa 000034 600151 450100 43 stz sp|105 " Charsw aa 000035 001245 236004 ldq L16 " 999999 aa 000036 600322 756100 stq sp|210 " To aa 000037 000001 236007 ldq 1,dl " 1 aa 000040 600216 756100 stq sp|142 " From aa 000041 600313 450100 stz sp|203 " Stopsw aa 000042 600156 450100 stz sp|110 " Device aa 000043 000001 236007 ldq 1,dl " 1 aa 000044 600312 756100 stq sp|202 " Start aa 000045 000001 236007 44 ldq 1,dl " 1 aa 000046 600273 756100 stq sp|187 " Passes aa 000047 600222 450100 stz sp|146 " Hyphenating aa 000050 600326 450100 stz sp|214 " Waitsw aa 000051 600257 450100 stz sp|175 " NoPaging aa 000052 600302 450100 45 stz sp|194 " PrintLineNumbers aa 000053 000001 336007 lcq 1,dl aa 000054 600172 756100 stq sp|122 " ExtraMargin aa 000055 000747 350004 eapap L17 " "" aa 000056 600272 540100 sprpap sp|186 " Parameter aa 000057 600254 450100 46 stz sp|172 " NoControl aa 000060 600255 450100 stz sp|173 " NoFill aa 000061 600177 450100 47 stz sp|127 " Filesw aa 000062 700002 350111 48 eapap sb|2,x1 " a vector aa 000063 600455 540100 sprpap sp|301 " EntryNames aa 000064 700150 350111 eapap sb|104,x1 " a vector aa 000065 600454 540100 sprpap sp|300 " Streams aa 000066 600456 450100 stz sp|302 " Sn aa 000067 600170 450100 49 stz sp|120 " ErrorTempID aa 000070 700316 350111 50 eapap sb|206,x1 " a vector aa 000071 700147 540111 sprpap sb|103,x1 " Xvec aa 000072 700147 236111 51 ldq sb|103,x1 " Xvec aa 000073 724154 756111 stq sb|10348,x1 aa 000074 023420 236007 ldq 10000,dl " 10000 aa 000075 724155 756111 stq sb|10349,x1 4a 000076 400100 272120 tsbbp lp|L18,* " NewvecInit aa 000077 024152 000002 zero 10346,2 aa 000100 723740 350111 52 eapap sb|10208,x1 " a vector aa 000101 700315 540111 sprpap sb|205,x1 " w aa 000102 700315 236111 53 ldq sb|205,x1 " w aa 000103 724154 756111 stq sb|10348,x1 4a 000104 400076 272120 tsbbp lp|L19,* " RawClockTime aa 000105 024152 000001 zero 10346,1 aa 000106 723737 756111 stq sb|10207,x1 aa 000107 723737 236111 ldq sb|10207,x1 aa 000110 724154 756111 stq sb|10348,x1 4a 000111 400074 272120 tsbbp lp|L20,* " TimeToSeconds aa 000112 024152 000001 zero 10346,1 aa 000113 600317 756100 stq sp|207 " TimeNow aa 000114 723744 350111 55 eapap sb|10212,x1 " a vector aa 000115 723737 540111 sprpap sb|10207,x1 " Cvec aa 000116 001161 350004 56 eapap L21 " "cleanup" aa 000117 724154 540111 sprpap sb|10348,x1 aa 000120 001364 350004 eapap L7 " Cleanup aa 000121 724155 540111 sprpap sb|10349,x1 aa 000122 723737 236111 ldq sb|10207,x1 " Cvec aa 000123 724156 756111 stq sb|10350,x1 4a 000124 400072 272120 tsbbp lp|L22,* " SetHandler aa 000125 024152 000003 zero 10346,3 aa 000126 000001 236007 60 ldq 1,dl " 1 aa 000127 600050 756100 stq sp|40 " ArgIndex aa 000130 001145 350004 61 eapap L23 " "npgn" aa 000131 724010 540111 sprpap sb|10248,x1 aa 000132 001141 350004 eapap L24 " "start" aa 000133 724030 540111 sprpap sb|10264,x1 aa 000134 001134 350004 eapap L25 " "control" aa 000135 724015 540111 sprpap sb|10253,x1 aa 000136 001131 350004 eapap L26 " "pg" aa 000137 724032 540111 sprpap sb|10266,x1 aa 000140 001124 350004 eapap L27 " "character" aa 000141 724000 540111 sprpap sb|10240,x1 aa 000142 001121 350004 eapap L28 " "ch" aa 000143 724001 540111 sprpap sb|10241,x1 aa 000144 001115 350004 eapap L29 " "page" aa 000145 724031 540111 sprpap sb|10265,x1 aa 000146 001112 350004 eapap L30 " "to" aa 000147 724027 540111 sprpap sb|10263,x1 aa 000150 001106 350004 eapap L31 " "file" aa 000151 723774 540111 sprpap sb|10236,x1 aa 000152 001102 350004 eapap L32 " "wait" aa 000153 724004 540111 sprpap sb|10244,x1 aa 000154 001077 350004 eapap L33 " "fm" aa 000155 724026 540111 sprpap sb|10262,x1 aa 000156 001073 350004 eapap L34 " "hph" aa 000157 724012 540111 sprpap sb|10250,x1 aa 000160 001067 350004 eapap L35 " "fill" aa 000161 724016 540111 sprpap sb|10254,x1 aa 000162 001064 350004 eapap L36 " "bl" aa 000163 724034 540111 sprpap sb|10268,x1 aa 000164 001060 350004 eapap L37 " "number" aa 000165 724013 540111 sprpap sb|10251,x1 aa 000166 001053 350004 eapap L38 " "hyphenate" aa 000167 724011 540111 sprpap sb|10249,x1 aa 000170 001047 350004 eapap L39 " "stop" aa 000171 724002 540111 sprpap sb|10242,x1 aa 000172 001044 350004 eapap L40 " "sp" aa 000173 724003 540111 sprpap sb|10243,x1 aa 000174 001040 350004 eapap L41 " "margin" aa 000175 724022 540111 sprpap sb|10258,x1 aa 000176 001035 350004 eapap L42 " "sm" aa 000177 723776 540111 sprpap sb|10238,x1 aa 000200 001031 350004 eapap L43 " "ball" aa 000201 724033 540111 sprpap sb|10267,x1 aa 000202 001025 350004 eapap L44 " "pgnt" aa 000203 724007 540111 sprpap sb|10247,x1 aa 000204 001021 350004 eapap L45 " "from" aa 000205 724025 540111 sprpap sb|10261,x1 aa 000206 001015 350004 eapap L46 " "pass" aa 000207 724021 540111 sprpap sb|10257,x1 aa 000210 001011 350004 eapap L47 " "device" aa 000211 724035 540111 sprpap sb|10269,x1 aa 000212 001004 350004 eapap L48 " "pagination" aa 000213 724006 540111 sprpap sb|10246,x1 aa 000214 000777 350004 eapap L49 " "segment" aa 000215 723775 540111 sprpap sb|10237,x1 aa 000216 000773 350004 eapap L50 " "indent" aa 000217 724023 540111 sprpap sb|10259,x1 aa 000220 000770 350004 eapap L51 " "pm" aa 000221 724020 540111 sprpap sb|10256,x1 aa 000222 000763 350004 eapap L52 " "parameter" aa 000223 724017 540111 sprpap sb|10255,x1 aa 000224 000760 350004 eapap L53 " "wt" aa 000225 724005 540111 sprpap sb|10245,x1 aa 000226 000754 350004 eapap L54 " "chars" aa 000227 723777 540111 sprpap sb|10239,x1 aa 000230 000751 350004 eapap L55 " "nb" aa 000231 724014 540111 sprpap sb|10252,x1 aa 000232 000746 350004 eapap L56 " "dv" aa 000233 724036 540111 sprpap sb|10270,x1 aa 000234 000743 350004 eapap L57 " "in" aa 000235 724024 540111 sprpap sb|10260,x1 aa 000236 723774 350111 eapap sb|10236,x1 " a list aa 000237 723743 540111 sprpap sb|10211,x1 " Names aa 000240 000550 350004 75 eapap L58 " a table aa 000241 723772 540111 sprpap sb|10234,x1 " Flags aa 000242 600312 350100 68 eapap sp|202 " Start aa 000243 724075 540111 sprpap sb|10301,x1 aa 000244 600312 350100 eapap sp|202 " Start aa 000245 724076 540111 sprpap sb|10302,x1 aa 000246 600156 350100 eapap sp|110 " Device aa 000247 724101 540111 sprpap sb|10305,x1 aa 000250 600151 350100 eapap sp|105 " Charsw aa 000251 724043 540111 sprpap sb|10275,x1 aa 000252 600172 350100 eapap sp|122 " ExtraMargin aa 000253 724067 540111 sprpap sb|10295,x1 aa 000254 600222 350100 eapap sp|146 " Hyphenating aa 000255 724055 540111 sprpap sb|10285,x1 aa 000256 600302 350100 eapap sp|194 " PrintLineNumbers aa 000257 724057 540111 sprpap sb|10287,x1 aa 000260 600151 350100 eapap sp|105 " Charsw aa 000261 724044 540111 sprpap sb|10276,x1 aa 000262 600151 350100 eapap sp|105 " Charsw aa 000263 724045 540111 sprpap sb|10277,x1 aa 000264 600172 350100 eapap sp|122 " ExtraMargin aa 000265 724070 540111 sprpap sb|10296,x1 aa 000266 600156 350100 eapap sp|110 " Device aa 000267 724102 540111 sprpap sb|10306,x1 aa 000270 600326 350100 eapap sp|214 " Waitsw aa 000271 724050 540111 sprpap sb|10280,x1 aa 000272 001166 350004 eapap L4 " DoParam aa 000273 724063 540111 sprpap sb|10291,x1 aa 000274 600257 350100 eapap sp|175 " NoPaging aa 000275 724053 540111 sprpap sb|10283,x1 aa 000276 600177 350100 eapap sp|127 " Filesw aa 000277 724042 540111 sprpap sb|10274,x1 aa 000300 600322 350100 eapap sp|210 " To aa 000301 724073 540111 sprpap sb|10299,x1 aa 000302 600156 350100 eapap sp|110 " Device aa 000303 724077 540111 sprpap sb|10303,x1 aa 000304 600172 350100 eapap sp|122 " ExtraMargin aa 000305 724066 540111 sprpap sb|10294,x1 aa 000306 600222 350100 eapap sp|146 " Hyphenating aa 000307 724056 540111 sprpap sb|10286,x1 aa 000310 600177 350100 eapap sp|127 " Filesw aa 000311 724040 540111 sprpap sb|10272,x1 aa 000312 600257 350100 eapap sp|175 " NoPaging aa 000313 724054 540111 sprpap sb|10284,x1 aa 000314 600313 350100 eapap sp|203 " Stopsw aa 000315 724047 540111 sprpap sb|10279,x1 aa 000316 600312 350100 eapap sp|202 " Start aa 000317 724074 540111 sprpap sb|10300,x1 aa 000320 600302 350100 eapap sp|194 " PrintLineNumbers aa 000321 724060 540111 sprpap sb|10288,x1 aa 000322 600254 350100 eapap sp|172 " NoControl aa 000323 724061 540111 sprpap sb|10289,x1 aa 000324 600255 350100 eapap sp|173 " NoFill aa 000325 724062 540111 sprpap sb|10290,x1 aa 000326 001132 350004 eapap L4 " DoParam aa 000327 724064 540111 sprpap sb|10292,x1 aa 000330 600313 350100 eapap sp|203 " Stopsw aa 000331 724046 540111 sprpap sb|10278,x1 aa 000332 600177 350100 eapap sp|127 " Filesw aa 000333 724041 540111 sprpap sb|10273,x1 aa 000334 600156 350100 eapap sp|110 " Device aa 000335 724100 540111 sprpap sb|10304,x1 aa 000336 600257 350100 eapap sp|175 " NoPaging aa 000337 724052 540111 sprpap sb|10282,x1 aa 000340 600326 350100 eapap sp|214 " Waitsw aa 000341 724051 540111 sprpap sb|10281,x1 aa 000342 600216 350100 eapap sp|142 " From aa 000343 724072 540111 sprpap sb|10298,x1 aa 000344 600216 350100 eapap sp|142 " From aa 000345 724071 540111 sprpap sb|10297,x1 aa 000346 600273 350100 eapap sp|187 " Passes aa 000347 724065 540111 sprpap sb|10293,x1 aa 000350 724040 350111 eapap sb|10272,x1 " a list aa 000351 723771 540111 sprpap sb|10233,x1 " Pointers 4a 000352 400070 350120 83 eapap lp|L59,* " GetNextCommandArg aa 000353 724154 540111 sprpap sb|10348,x1 aa 000354 000043 236007 ldq 35,dl " 35 aa 000355 724155 756111 stq sb|10349,x1 aa 000356 723743 236111 ldq sb|10211,x1 " Names aa 000357 724156 756111 stq sb|10350,x1 aa 000360 723771 236111 ldq sb|10233,x1 " Pointers aa 000361 724157 756111 stq sb|10351,x1 aa 000362 723772 236111 ldq sb|10234,x1 " Flags aa 000363 724160 756111 stq sb|10352,x1 aa 000364 000763 350004 eapap L3 " DoName aa 000365 724161 540111 sprpap sb|10353,x1 4a 000366 400066 272120 tsbbp lp|L60,* " OptionParse aa 000367 024152 000006 zero 10346,6 aa 000370 600456 234100 85 szn sp|302 " Sn aa 000371 000011 601004 tnz L61 aa 000372 000567 350004 eapap L62 " "Pathnames of input segments expected. Options:*n^a*n^a" aa 000373 724154 540111 sprpap sb|10348,x1 aa 000374 000536 350004 eapap L63 " "-file -stop -wait -chars -no_pagination -hyphenate -number -no_control -no_fill" aa 000375 724155 540111 sprpap sb|10349,x1 aa 000376 000512 350004 eapap L64 " "-from -to -start -device -pass -margin " aa 000377 724156 540111 sprpap sb|10350,x1 4a 000400 400064 272120 tsbbp lp|L65,* " Complain aa 000401 024152 000003 zero 10346,3 L61: aa 000402 600177 234100 92 szn sp|127 " Filesw aa 000403 000010 600004 tze L66 aa 000404 600156 234100 93 szn sp|110 " Device aa 000405 000003 601004 tnz L68 aa 000406 000312 236007 ldq 202,dl " 202 aa 000407 600156 756100 stq sp|110 " Device L68: aa 000410 600042 236100 94 ldq sp|34 " MONITOR aa 000411 600165 756100 stq sp|117 " Errorstream aa 000412 000062 710004 tra L67 L66: aa 000413 000043 236007 96 ldq 35,dl aa 000414 724154 756111 stq sb|10348,x1 aa 000415 000467 350004 eapap L69 " "user_output" aa 000416 724155 540111 sprpap sb|10349,x1 aa 000417 001750 236007 ldq 1000,dl " 1000 aa 000420 724156 756111 stq sb|10350,x1 aa 000421 724157 450111 stz sb|10351,x1 4a 000422 400102 272120 tsbbp lp|L14,* " Open aa 000423 024152 000004 zero 10346,4 aa 000424 600040 756100 stq sp|32 " OUTPUT aa 000425 600046 234100 97 szn sp|38 " Errcode aa 000426 000005 600004 tze L70 aa 000427 000455 350004 eapap L69 " "user_output" aa 000430 724154 540111 sprpap sb|10348,x1 4a 000431 400064 272120 tsbbp lp|L65,* " Complain aa 000432 024152 000001 zero 10346,1 L70: aa 000433 600156 234100 98 szn sp|110 " Device aa 000434 000040 601004 tnz L71 aa 000435 723773 450111 99 stz sb|10235,x1 " y aa 000436 724037 450111 stz sb|10271,x1 " x aa 000437 000347 237004 100 ldaq L72 " arglist header aa 000440 724152 757111 staq sb|10346,x1 " arg count aa 000441 724037 350111 eapap sb|10271,x1 " x aa 000442 724154 250111 stpap sb|10348,x1 aa 000443 000440 350004 eapap L73 " descriptor aa 000444 724160 250111 stpap sb|10352,x1 aa 000445 723773 352111 eapbp sb|10235,x1 " y aa 000446 724156 252111 stpbp sb|10350,x1 aa 000447 000433 352004 eapbp L74 " descriptor aa 000450 724162 252111 stpbp sb|10354,x1 aa 000451 600010 441100 sxl1 sp|8 aa 000452 600030 650100 stplp sp|24 4a 000453 400062 352120 eapbp lp|L75,* " TtyInfo aa 000454 724152 350111 eapap sb|10346,x1 aa 000455 700036 670120 tsblp sb|30,* " Multics call operator aa 000456 600010 721100 lxl1 sp|8 aa 000457 700001 764111 lprplp sb|1,x1 aa 000460 723773 236111 101 ldq sb|10235,x1 " y aa 000461 000002 116007 cmpq 2,dl " 2 aa 000462 000004 604404 tmoz L78 aa 000463 723773 235111 lda sb|10235,x1 " y aa 000464 000006 115007 cmpa 6,dl " 6 aa 000465 000003 601004 tnz L76 L78: aa 000466 001703 236007 ldq 963,dl " 963 aa 000467 000002 710004 tra L77 L76: aa 000470 000045 236007 ldq 37,dl " 37 L77: aa 000471 724103 756111 stq sb|10307,x1 aa 000472 724103 236111 ldq sb|10307,x1 aa 000473 600156 756100 stq sp|110 " Device L71: L67: aa 000474 600172 234100 105 szn sp|122 " ExtraMargin aa 000475 000017 605004 tpl L79 aa 000476 600156 236100 ldq sp|110 " Device aa 000477 000312 116007 cmpq 202,dl " 202 aa 000500 000004 600004 tze L82 aa 000501 600156 235100 lda sp|110 " Device aa 000502 000454 115007 cmpa 300,dl " 300 aa 000503 000005 601004 tnz L80 L82: aa 000504 600177 234100 szn sp|127 " Filesw aa 000505 000003 600004 tze L80 aa 000506 000024 236007 ldq 20,dl " 20 aa 000507 000002 710004 tra L81 L80: aa 000510 000000 236007 ldq 0,dl " 0 L81: aa 000511 724037 756111 stq sb|10271,x1 aa 000512 724037 236111 ldq sb|10271,x1 aa 000513 600172 756100 stq sp|122 " ExtraMargin L79: aa 000514 600156 236100 107 ldq sp|110 " Device aa 000515 002032 116007 cmpq 1050,dl " 1050 aa 000516 000040 600004 tze L83 aa 000517 600156 235100 lda sp|110 " Device aa 000520 005265 115007 cmpa 2741,dl " 2741 aa 000521 000035 600004 tze L83 aa 000522 600156 236100 ldq sp|110 " Device aa 000523 001703 116007 cmpq 963,dl " 963 aa 000524 000032 600004 tze L83 aa 000525 600156 235100 lda sp|110 " Device aa 000526 000014 115007 cmpa 12,dl " 012 aa 000527 000027 600004 tze L83 aa 000530 600156 236100 ldq sp|110 " Device aa 000531 000017 116007 cmpq 15,dl " 015 aa 000532 000024 600004 tze L83 aa 000533 600156 235100 lda sp|110 " Device aa 000534 000051 115007 cmpa 41,dl " 041 aa 000535 000021 600004 tze L83 aa 000536 600156 236100 ldq sp|110 " Device aa 000537 000130 116007 cmpq 88,dl " 088 aa 000540 000016 600004 tze L83 aa 000541 600156 235100 lda sp|110 " Device aa 000542 000045 115007 cmpa 37,dl " 37 aa 000543 000013 600004 tze L83 aa 000544 600156 236100 ldq sp|110 " Device aa 000545 000312 116007 cmpq 202,dl " 202 aa 000546 000010 600004 tze L83 aa 000547 600156 235100 lda sp|110 " Device aa 000550 000454 115007 cmpa 300,dl " 300 aa 000551 000005 600004 tze L83 aa 000552 000301 351404 111 eapab L84 " "Illegal device type specified. Legal devices:*n1050 2741 37 202 300 963 012 015 041 088" aa 000553 724154 541111 sprpab sb|10348,x1 4a 000554 400064 272120 tsbbp lp|L65,* " Complain aa 000555 024152 000001 zero 10346,1 L83: aa 000556 600156 236100 113 ldq sp|110 " Device aa 000557 724106 756111 stq sb|10310,x1 " DeviceX aa 000560 600151 236100 ldq sp|105 " Charsw aa 000561 724037 756111 stq sb|10271,x1 " CharswX aa 000562 600312 236100 ldq sp|202 " Start aa 000563 724104 756111 stq sb|10308,x1 " StartX aa 000564 600322 236100 ldq sp|210 " To aa 000565 724105 756111 stq sb|10309,x1 " ToX aa 000566 600216 236100 ldq sp|142 " From aa 000567 723773 756111 stq sb|10235,x1 " FromX aa 000570 600313 236100 ldq sp|203 " Stopsw aa 000571 724103 756111 stq sb|10307,x1 " StopswX aa 000572 600172 236100 115 ldq sp|122 " ExtraMargin aa 000573 724115 756111 stq sb|10317,x1 " ExtraMarginX aa 000574 600302 236100 ldq sp|194 " PrintLineNumbers aa 000575 724114 756111 stq sb|10316,x1 " PrintLineNumbersX aa 000576 600272 236100 ldq sp|186 " Parameter aa 000577 724113 756111 stq sb|10315,x1 " ParameterX aa 000600 600254 236100 116 ldq sp|172 " NoControl aa 000601 724116 756111 stq sb|10318,x1 " NoControlX aa 000602 600255 236100 ldq sp|173 " NoFill aa 000603 724117 756111 stq sb|10319,x1 " NoFillX aa 000604 600273 236100 114 ldq sp|187 " Passes aa 000605 724111 756111 stq sb|10313,x1 " PassesX aa 000606 600257 236100 ldq sp|175 " NoPaging aa 000607 724107 756111 stq sb|10311,x1 " NoPagingX aa 000610 600222 236100 ldq sp|146 " Hyphenating aa 000611 724112 756111 stq sb|10314,x1 " HyphenatingX aa 000612 600326 236100 ldq sp|214 " Waitsw aa 000613 724110 756111 stq sb|10312,x1 " WaitswX aa 000614 000001 236007 120 ldq 1,dl " 1 aa 000615 724120 756111 stq sb|10320,x1 " i aa 000616 600456 236100 ldq sp|302 " Sn aa 000617 724121 756111 stq sb|10321,x1 aa 000620 000135 710004 tra L85 L86: aa 000621 724120 722111 121 lxl2 sb|10320,x1 " i aa 000622 600455 761100 lprpab sp|301 " EntryNames aa 000623 100000 236112 ldq ab|0,x2 aa 000624 600176 756100 stq sp|126 " FileName aa 000625 600177 234100 122 szn sp|127 " Filesw aa 000626 000033 600004 tze L87 aa 000627 724124 353511 123 eapbb sb|10324,x1 " a vector aa 000630 724122 543111 sprpbb sb|10322,x1 " w aa 000631 724122 236111 124 ldq sb|10322,x1 " w aa 000632 724154 756111 stq sb|10348,x1 aa 000633 000040 236007 ldq 32,dl " 32 aa 000634 724155 756111 stq sb|10349,x1 aa 000635 600176 236100 ldq sp|126 " FileName aa 000636 724156 756111 stq sb|10350,x1 aa 000637 000144 353404 eapbb L88 " ".runout" aa 000640 724157 543111 sprpbb sb|10351,x1 4a 000641 400060 272120 tsbbp lp|L89,* " Concatenate aa 000642 024152 000004 zero 10346,4 aa 000643 724123 756111 stq sb|10323,x1 aa 000644 000245 236007 ldq 165,dl aa 000645 724154 756111 stq sb|10348,x1 aa 000646 724123 236111 ldq sb|10323,x1 aa 000647 724155 756111 stq sb|10349,x1 4a 000650 400102 272120 tsbbp lp|L14,* " Open aa 000651 024152 000002 zero 10346,2 aa 000652 600040 756100 stq sp|32 " OUTPUT aa 000653 600046 234100 125 szn sp|38 " Errcode aa 000654 000005 600004 tze L90 aa 000655 724122 236111 ldq sb|10322,x1 " w aa 000656 724154 756111 stq sb|10348,x1 4a 000657 400064 272120 tsbbp lp|L65,* " Complain aa 000660 024152 000001 zero 10346,1 L90: L87: aa 000661 723773 236111 128 ldq sb|10235,x1 " FromX aa 000662 600216 756100 stq sp|142 " From aa 000663 724104 236111 ldq sb|10308,x1 " StartX aa 000664 600312 756100 stq sp|202 " Start aa 000665 724106 236111 ldq sb|10310,x1 " DeviceX aa 000666 600156 756100 stq sp|110 " Device aa 000667 724037 236111 ldq sb|10271,x1 " CharswX aa 000670 600151 756100 stq sp|105 " Charsw aa 000671 724105 236111 ldq sb|10309,x1 " ToX aa 000672 600322 756100 stq sp|210 " To aa 000673 724103 236111 ldq sb|10307,x1 " StopswX aa 000674 600313 756100 stq sp|203 " Stopsw aa 000675 724112 236111 129 ldq sb|10314,x1 " HyphenatingX aa 000676 600222 756100 stq sp|146 " Hyphenating aa 000677 724111 236111 ldq sb|10313,x1 " PassesX aa 000700 600273 756100 stq sp|187 " Passes aa 000701 724107 236111 ldq sb|10311,x1 " NoPagingX aa 000702 600257 756100 stq sp|175 " NoPaging aa 000703 724115 236111 130 ldq sb|10317,x1 " ExtraMarginX aa 000704 600172 756100 stq sp|122 " ExtraMargin aa 000705 724114 236111 ldq sb|10316,x1 " PrintLineNumbersX aa 000706 600302 756100 stq sp|194 " PrintLineNumbers aa 000707 724113 236111 131 ldq sb|10315,x1 " ParameterX aa 000710 724154 756111 stq sb|10348,x1 4a 000711 400056 272120 tsbbp lp|L91,* " StoreString aa 000712 024152 000001 zero 10346,1 aa 000713 600272 756100 stq sp|186 " Parameter aa 000714 724117 236111 132 ldq sb|10319,x1 " NoFillX aa 000715 600255 756100 stq sp|173 " NoFill aa 000716 724116 236111 ldq sb|10318,x1 " NoControlX aa 000717 600254 756100 stq sp|172 " NoControl aa 000720 724110 236111 133 ldq sb|10312,x1 " WaitswX aa 000721 724103 276111 orq sb|10307,x1 " StopswX aa 000722 600326 756100 stq sp|214 " Waitsw aa 000723 724120 236111 137 ldq sb|10320,x1 " i aa 000724 000001 176007 sbq 1,dl " 1 aa 000725 600454 763100 lprpbb sp|300 " Streams aa 000726 300000 353506 eapbb bb|0,ql aa 000727 724154 543111 sprpbb sb|10348,x1 aa 000730 000001 236007 ldq 1,dl " 1 aa 000731 724155 756111 stq sb|10349,x1 aa 000732 600040 236100 ldq sp|32 " OUTPUT aa 000733 724156 756111 stq sb|10350,x1 4a 000734 400054 272120 tsbbp lp|L92,* " Roff aa 000735 024152 000003 zero 10346,3 aa 000736 600177 234100 139 szn sp|127 " Filesw aa 000737 000006 600004 tze L93 aa 000740 600040 236100 140 ldq sp|32 " OUTPUT aa 000741 724154 756111 stq sb|10348,x1 4a 000742 400052 272120 tsbbp lp|L94,* " Close aa 000743 024152 000001 zero 10346,1 aa 000744 600040 450100 141 stz sp|32 " OUTPUT L93: aa 000745 600152 234100 144 szn sp|106 " ChStream aa 000746 000006 600004 tze L95 aa 000747 600152 236100 145 ldq sp|106 " ChStream aa 000750 724154 756111 stq sb|10348,x1 4a 000751 400052 272120 tsbbp lp|L94,* " Close aa 000752 024152 000001 zero 10346,1 aa 000753 600152 450100 146 stz sp|106 " ChStream L95: aa 000754 724120 054111 aos sb|10320,x1 " i L85: aa 000755 724120 236111 ldq sb|10320,x1 " i aa 000756 724121 116111 cmpq sb|10321,x1 aa 000757 777642 604404 tmoz L86 aa 000760 600313 234100 152 szn sp|203 " Stopsw aa 000761 000003 600004 tze L96 4a 000762 400050 272120 tsbbp lp|L97,* " Wait aa 000763 024152 000000 zero 10346 L96: aa 000764 600177 234100 154 szn sp|127 " Filesw aa 000765 000006 601004 tnz L98 aa 000766 600040 235100 155 lda sp|32 " OUTPUT aa 000767 724154 755111 sta sb|10348,x1 4a 000770 400052 272120 tsbbp lp|L94,* " Close aa 000771 024152 000001 zero 10346,1 aa 000772 600040 450100 156 stz sp|32 " OUTPUT L98: aa 000773 000630 272004 159 tsbbp L6+2 " PrintErrorFile aa 000774 024152 000000 zero 10346 aa 000775 000511 272004 161 tsbbp L7+2 " Cleanup aa 000776 024152 000000 zero 10346 L12: aa 000777 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001000 200000 121100 sblx1 bp|0 aa 001001 700001 764111 lprplp sb|1,x1 aa 001002 200001 710100 tra bp|1 " end of return sequence " Literal pool L88: aa 001003 000007 056162 zero 7,23666 " ".runout" aa 001004 165156 157165 zero 60014,56949 aa 001005 164000 000000 zero 59392 L72: aa 001006 000004 000004 zero 4,4 " arglist header aa 001007 000004 000000 zero 4 L58: aa 001010 000000 000001 zero 0,1 " a table aa 001011 000000 000001 zero 0,1 aa 001012 000000 000001 zero 0,1 aa 001013 000000 000001 zero 0,1 aa 001014 000000 000001 zero 0,1 aa 001015 000000 000001 zero 0,1 aa 001016 000000 000001 zero 0,1 aa 001017 000000 000001 zero 0,1 aa 001020 000000 000001 zero 0,1 aa 001021 000000 000001 zero 0,1 aa 001022 000000 000003 zero 0,3 aa 001023 000000 000003 zero 0,3 L17: aa 001024 000000 000000 zero 0 aa 001025 000000 000001 zero 0,1 aa 001026 000000 000001 zero 0,1 aa 001027 000000 000001 zero 0,1 aa 001030 000000 000001 zero 0,1 aa 001031 000000 000003 zero 0,3 aa 001032 000000 000003 zero 0,3 aa 001033 000000 000024 zero 0,20 aa 001034 000000 000024 zero 0,20 aa 001035 000000 000010 zero 0,8 aa 001036 000000 000010 zero 0,8 aa 001037 000000 000010 zero 0,8 aa 001040 000000 000010 zero 0,8 aa 001041 000000 000010 zero 0,8 aa 001042 000000 000010 zero 0,8 aa 001043 000000 000010 zero 0,8 aa 001044 000000 000010 zero 0,8 aa 001045 000000 000010 zero 0,8 aa 001046 000000 000010 zero 0,8 aa 001047 000000 000010 zero 0,8 aa 001050 000000 000010 zero 0,8 aa 001051 000000 000010 zero 0,8 aa 001052 000000 000010 zero 0,8 L84: aa 001053 000127 111154 zero 87,37484 " "Illegal device type specified. Legal devices:*n1050 2741 37 202 300 963 012 015 041 088" aa 001054 154145 147141 zero 55397,52833 aa 001055 154040 144145 zero 55328,51301 aa 001056 166151 143145 zero 60521,50789 aa 001057 040164 171160 zero 16500,62064 aa 001060 145040 163160 zero 51744,58992 aa 001061 145143 151146 zero 51811,53862 aa 001062 151145 144056 zero 53861,51246 aa 001063 040040 114145 zero 16416,39013 aa 001064 147141 154040 zero 52833,55328 aa 001065 144145 166151 zero 51301,60521 aa 001066 143145 163072 zero 50789,58938 aa 001067 012061 060065 zero 5169,24629 aa 001070 060040 062067 zero 24608,25655 aa 001071 064061 040063 zero 26673,16435 aa 001072 067040 062060 zero 28192,25648 aa 001073 062040 063060 zero 25632,26160 aa 001074 060040 071066 zero 24608,29238 aa 001075 063040 060061 zero 26144,24625 aa 001076 062040 060061 zero 25632,24625 aa 001077 065040 060064 zero 27168,24628 aa 001100 061040 060070 zero 25120,24632 aa 001101 070000 000000 zero 28672 L74: aa 001102 404000 000000 zero -129024 " descriptor L73: aa 001103 524000 000000 zero -88064 " descriptor L69: aa 001104 000013 165163 zero 11,60019 " "user_output" aa 001105 145162 137157 zero 51826,48751 aa 001106 165164 160165 zero 60020,57461 aa 001107 164000 000000 zero 59392 L64: aa 001110 000103 055146 zero 67,23142 " "-from -to -start -device -pass -margin " aa 001111 162157 155040 zero 58479,55840 aa 001112 074156 076040 zero 30830,31776 aa 001113 040055 164157 zero 16429,59503 aa 001114 040074 156076 zero 16444,56382 aa 001115 040040 055163 zero 16416,23155 aa 001116 164141 162164 zero 59489,58484 aa 001117 040074 156076 zero 16444,56382 aa 001120 040040 055144 zero 16416,23140 aa 001121 145166 151143 zero 51830,53859 aa 001122 145040 074156 zero 51744,30830 aa 001123 076040 040055 zero 31776,16429 aa 001124 160141 163163 zero 57441,58995 aa 001125 040074 156076 zero 16444,56382 aa 001126 040040 055155 zero 16416,23149 aa 001127 141162 147151 zero 49778,52841 aa 001130 156040 074156 zero 56352,30830 aa 001131 076000 000000 zero 31744 L63: aa 001132 000127 055146 zero 87,23142 " "-file -stop -wait -chars -no_pagination -hyphenate -number -no_control -no_fill" aa 001133 151154 145040 zero 53868,51744 aa 001134 040055 163164 zero 16429,58996 aa 001135 157160 040040 zero 56944,16416 aa 001136 055167 141151 zero 23159,49769 aa 001137 164040 040055 zero 59424,16429 aa 001140 143150 141162 zero 50792,49778 aa 001141 163040 040055 zero 58912,16429 aa 001142 156157 137160 zero 56431,48752 aa 001143 141147 151156 zero 49767,53870 aa 001144 141164 151157 zero 49780,53871 aa 001145 156040 040055 zero 56352,16429 aa 001146 150171 160150 zero 53369,57448 aa 001147 145156 141164 zero 51822,49780 aa 001150 145040 040055 zero 51744,16429 aa 001151 156165 155142 zero 56437,55906 aa 001152 145162 040040 zero 51826,16416 aa 001153 055156 157137 zero 23150,56927 aa 001154 143157 156164 zero 50799,56436 aa 001155 162157 154040 zero 58479,55328 aa 001156 040055 156157 zero 16429,56431 aa 001157 137146 151154 zero 48742,53868 aa 001160 154000 000000 zero 55296 L62: aa 001161 000065 120141 zero 53,41057 " "Pathnames of input segments expected. Options:*n^a*n^a" aa 001162 164150 156141 zero 59496,56417 aa 001163 155145 163040 zero 55909,58912 aa 001164 157146 040151 zero 56934,16489 aa 001165 156160 165164 zero 56432,60020 aa 001166 040163 145147 zero 16499,51815 aa 001167 155145 156164 zero 55909,56436 aa 001170 163040 145170 zero 58912,51832 aa 001171 160145 143164 zero 57445,50804 aa 001172 145144 056040 zero 51812,23584 aa 001173 040117 160164 zero 16463,57460 aa 001174 151157 156163 zero 53871,56435 aa 001175 072012 136141 zero 29706,48225 aa 001176 012136 141000 zero 5214,49664 L57: aa 001177 000002 151156 zero 2,53870 " "in" L56: aa 001200 000002 144166 zero 2,51318 " "dv" L55: aa 001201 000002 156142 zero 2,56418 " "nb" L54: aa 001202 000005 143150 zero 5,50792 " "chars" aa 001203 141162 163000 zero 49778,58880 L53: aa 001204 000002 167164 zero 2,61044 " "wt" L52: aa 001205 000011 160141 zero 9,57441 " "parameter" aa 001206 162141 155145 zero 58465,55909 aa 001207 164145 162000 zero 59493,58368 L51: aa 001210 000002 160155 zero 2,57453 " "pm" L50: aa 001211 000006 151156 zero 6,53870 " "indent" aa 001212 144145 156164 zero 51301,56436 L49: aa 001213 000007 163145 zero 7,58981 " "segment" aa 001214 147155 145156 zero 52845,51822 aa 001215 164000 000000 zero 59392 L48: aa 001216 000012 160141 zero 10,57441 " "pagination" aa 001217 147151 156141 zero 52841,56417 aa 001220 164151 157156 zero 59497,56942 L47: aa 001221 000006 144145 zero 6,51301 " "device" aa 001222 166151 143145 zero 60521,50789 L46: aa 001223 000004 160141 zero 4,57441 " "pass" aa 001224 163163 000000 zero 58995 L45: aa 001225 000004 146162 zero 4,52338 " "from" aa 001226 157155 000000 zero 56941 L44: aa 001227 000004 160147 zero 4,57447 " "pgnt" aa 001230 156164 000000 zero 56436 L43: aa 001231 000004 142141 zero 4,50273 " "ball" aa 001232 154154 000000 zero 55404 L42: aa 001233 000002 163155 zero 2,58989 " "sm" L41: aa 001234 000006 155141 zero 6,55905 " "margin" aa 001235 162147 151156 zero 58471,53870 L40: aa 001236 000002 163160 zero 2,58992 " "sp" L39: aa 001237 000004 163164 zero 4,58996 " "stop" aa 001240 157160 000000 zero 56944 L38: aa 001241 000011 150171 zero 9,53369 " "hyphenate" aa 001242 160150 145156 zero 57448,51822 aa 001243 141164 145000 zero 49780,51712 L37: aa 001244 000006 156165 zero 6,56437 " "number" aa 001245 155142 145162 zero 55906,51826 L36: aa 001246 000002 142154 zero 2,50284 " "bl" L35: aa 001247 000004 146151 zero 4,52329 " "fill" aa 001250 154154 000000 zero 55404 L34: aa 001251 000003 150160 zero 3,53360 " "hph" aa 001252 150000 000000 zero 53248 L33: aa 001253 000002 146155 zero 2,52333 " "fm" L32: aa 001254 000004 167141 zero 4,61025 " "wait" aa 001255 151164 000000 zero 53876 L31: aa 001256 000004 146151 zero 4,52329 " "file" aa 001257 154145 000000 zero 55397 L30: aa 001260 000002 164157 zero 2,59503 " "to" L29: aa 001261 000004 160141 zero 4,57441 " "page" aa 001262 147145 000000 zero 52837 L28: aa 001263 000002 143150 zero 2,50792 " "ch" L27: aa 001264 000011 143150 zero 9,50792 " "character" aa 001265 141162 141143 zero 49778,49763 aa 001266 164145 162000 zero 59493,58368 L26: aa 001267 000002 160147 zero 2,57447 " "pg" L25: aa 001270 000007 143157 zero 7,50799 " "control" aa 001271 156164 162157 zero 56436,58479 aa 001272 154000 000000 zero 55296 L24: aa 001273 000005 163164 zero 5,58996 " "start" aa 001274 141162 164000 zero 49778,59392 L23: aa 001275 000004 156160 zero 4,56432 " "npgn" aa 001276 147156 000000 zero 52846 L21: aa 001277 000007 143154 zero 7,50796 " "cleanup" aa 001300 145141 156165 zero 51809,56437 aa 001301 160000 000000 zero 57344 L16: aa 001302 000003 641077 zero 3,-48577 " 999999 L15: aa 001303 000006 162165 zero 6,58485 " "runoff" aa 001304 156157 146146 zero 56431,52326 L13: aa 001305 000014 145162 zero 12,51826 " "error_output" aa 001306 162157 162137 zero 58479,58463 aa 001307 157165 164160 zero 56949,59504 aa 001310 165164 000000 zero 60020 " Begin text of RfEntry aa 001311 000007 122146 zero 7,42086 " RfEntry aa 001312 105156 164162 zero 35438,59506 aa 001313 171000 000000 zero 61952 5a 001314 000032 000000 zero 26 " relative pointer to definition for entry L2: aa 001315 000000 213000 163 epaq 0 " set lp to linkage section aa 001316 700026 764161 lprplp sb|22,*au aa 001317 000541 700004 tsx0 L11 " execute Multics save aa 001320 200000 021100 adlx1 bp|0 " BCPL save aa 001321 700000 542111 sprpbp sb|0,x1 aa 001322 700001 544111 sprplp sb|1,x1 aa 001323 700423 620111 eax0 sb|275,x1 aa 001324 777760 360003 anx0 -16,du aa 001325 700025 740100 stx0 sb|21 " end of save sequence aa 001326 600032 353500 164 eapbb sp|26 " ArgITS aa 001327 700006 543111 sprpbb sb|6,x1 4a 001330 400046 272120 tsbbp lp|L103,* " BCPLaddr aa 001331 000004 000001 zero 4,1 aa 001332 700002 756111 stq sb|2,x1 aa 001333 776452 353404 eapbb L1 " RunoffCommand aa 001334 700006 543111 sprpbb sb|6,x1 aa 001335 700002 236111 ldq sb|2,x1 aa 001336 700007 756111 stq sb|7,x1 4a 001337 400044 272120 tsbbp lp|L104,* " Pl1Call aa 001340 000004 000002 zero 4,2 L102: aa 001341 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001342 200000 121100 sblx1 bp|0 aa 001343 700001 764111 lprplp sb|1,x1 aa 001344 200001 710100 tra bp|1 " end of return sequence " Begin text of DoName aa 001345 000006 104157 zero 6,34927 " DoName aa 001346 116141 155145 zero 40033,55909 L3: aa 001347 000000 213000 166 epaq 0 " set lp to linkage section aa 001350 700026 764161 lprplp sb|22,*au aa 001351 200000 021100 adlx1 bp|0 " BCPL save aa 001352 700000 542111 sprpbp sb|0,x1 aa 001353 700001 544111 sprplp sb|1,x1 aa 001354 700424 620111 eax0 sb|276,x1 aa 001355 777760 360003 anx0 -16,du aa 001356 700025 740100 stx0 sb|21 " end of save sequence aa 001357 700002 236111 167 ldq sb|2,x1 " Arg aa 001360 700174 756111 stq sb|124,x1 aa 001361 700175 450111 stz sb|125,x1 aa 001362 000345 272004 tsbbp L5+2 " FindInput aa 001363 000172 000002 zero 122,2 aa 001364 600456 235100 lda sp|302 " Sn aa 001365 000001 075007 ada 1,dl " 1 aa 001366 600454 763100 lprpbb sp|300 " Streams aa 001367 300000 756105 stq bb|0,al aa 001370 600456 054100 168 aos sp|302 " Sn aa 001371 600046 234100 169 szn sp|38 " Errcode aa 001372 000007 600004 tze L108 aa 001373 000057 371404 eaplb L109 " "^a.runoff" aa 001374 700174 545111 sprplb sb|124,x1 aa 001375 700002 236111 ldq sb|2,x1 " Arg aa 001376 700175 756111 stq sb|125,x1 4a 001377 400064 272120 tsbbp lp|L65,* " Complain aa 001400 000172 000002 zero 122,2 L108: aa 001401 700006 371511 170 eaplb sb|6,x1 " a vector aa 001402 700005 545111 sprplb sb|5,x1 " D aa 001403 700072 371511 eaplb sb|58,x1 " a vector aa 001404 700004 545111 sprplb sb|4,x1 " w aa 001405 700156 371511 eaplb sb|110,x1 " a vector aa 001406 700003 545111 sprplb sb|3,x1 " E aa 001407 700002 236111 171 ldq sb|2,x1 " Arg aa 001410 700174 756111 stq sb|124,x1 aa 001411 700004 236111 ldq sb|4,x1 " w aa 001412 700175 756111 stq sb|125,x1 4a 001413 400042 272120 tsbbp lp|L110,* " ExpandPathname aa 001414 000172 000002 zero 122,2 aa 001415 700155 756111 stq sb|109,x1 aa 001416 700155 236111 ldq sb|109,x1 aa 001417 700174 756111 stq sb|124,x1 aa 001420 700005 236111 ldq sb|5,x1 " D aa 001421 700175 756111 stq sb|125,x1 aa 001422 700003 236111 ldq sb|3,x1 " E aa 001423 700176 756111 stq sb|126,x1 4a 001424 400040 272120 tsbbp lp|L111,* " SplitPathname aa 001425 000172 000003 zero 122,3 aa 001426 700003 236111 172 ldq sb|3,x1 " E aa 001427 700174 756111 stq sb|124,x1 aa 001430 000040 236007 ldq 32,dl " 32 aa 001431 700175 756111 stq sb|125,x1 aa 001432 700004 236111 ldq sb|4,x1 " w aa 001433 700176 756111 stq sb|126,x1 4a 001434 400036 272120 tsbbp lp|L112,* " MakeBcplString aa 001435 000172 000003 zero 122,3 aa 001436 700071 756111 stq sb|57,x1 aa 001437 700071 236111 ldq sb|57,x1 aa 001440 700174 756111 stq sb|124,x1 4a 001441 400056 272120 tsbbp lp|L91,* " StoreString aa 001442 000172 000001 zero 122,1 aa 001443 600456 723100 lxl3 sp|302 " Sn aa 001444 600455 765100 lprplb sp|301 " EntryNames aa 001445 500000 756113 stq lb|0,x3 L107: aa 001446 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001447 200000 121100 sblx1 bp|0 aa 001450 700001 764111 lprplp sb|1,x1 aa 001451 200001 710100 tra bp|1 " end of return sequence " Literal pool L109: aa 001452 000011 136141 zero 9,48225 " "^a.runoff" aa 001453 056162 165156 zero 23666,60014 aa 001454 157146 146000 zero 56934,52224 " Begin text of DoParam aa 001455 000007 104157 zero 7,34927 " DoParam aa 001456 120141 162141 zero 41057,58465 aa 001457 155000 000000 zero 55808 L4: aa 001460 000000 213000 174 epaq 0 " set lp to linkage section aa 001461 700026 764161 lprplp sb|22,*au aa 001462 200000 021100 adlx1 bp|0 " BCPL save aa 001463 700000 542111 sprpbp sb|0,x1 aa 001464 700001 544111 sprplp sb|1,x1 aa 001465 700422 620111 eax0 sb|274,x1 aa 001466 777760 360003 anx0 -16,du aa 001467 700025 740100 stx0 sb|21 " end of save sequence aa 001470 700002 236111 175 ldq sb|2,x1 " Arg aa 001471 700006 756111 stq sb|6,x1 4a 001472 400056 272120 tsbbp lp|L91,* " StoreString aa 001473 000004 000001 zero 4,1 aa 001474 600272 756100 stq sp|186 " Parameter L115: aa 001475 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001476 200000 121100 sblx1 bp|0 aa 001477 700001 764111 lprplp sb|1,x1 aa 001500 200001 710100 tra bp|1 " end of return sequence " Begin text of Cleanup aa 001501 000007 103154 zero 7,34412 " Cleanup aa 001502 145141 156165 zero 51809,56437 aa 001503 160000 000000 zero 57344 L7: aa 001504 000000 213000 202 epaq 0 " set lp to linkage section aa 001505 700026 764161 lprplp sb|22,*au aa 001506 200000 021100 adlx1 bp|0 " BCPL save aa 001507 700000 542111 sprpbp sb|0,x1 aa 001510 700001 544111 sprplp sb|1,x1 aa 001511 700423 620111 eax0 sb|275,x1 aa 001512 777760 360003 anx0 -16,du aa 001513 700025 740100 stx0 sb|21 " end of save sequence aa 001514 000012 710004 203 tra L119 L120: aa 001515 000001 336007 204 lcq 1,dl " 1 aa 001516 600456 056100 asq sp|302 " Sn aa 001517 600456 236100 205 ldq sp|302 " Sn aa 001520 000001 076007 adq 1,dl " 1 aa 001521 600454 760100 lprpap sp|300 " Streams aa 001522 000000 235106 lda ap|0,ql aa 001523 700006 755111 sta sb|6,x1 4a 001524 400052 272120 tsbbp lp|L94,* " Close aa 001525 000004 000001 zero 4,1 L119: aa 001526 600456 234100 szn sp|302 " Sn aa 001527 777766 605404 tpnz L120 aa 001530 600040 234100 207 szn sp|32 " OUTPUT aa 001531 000015 600004 tze L121 aa 001532 600177 234100 szn sp|127 " Filesw aa 001533 000013 601004 tnz L121 aa 001534 600040 236100 208 ldq sp|32 " OUTPUT aa 001535 700006 756111 stq sb|6,x1 aa 001536 700007 450111 stz sb|7,x1 4a 001537 400034 272120 tsbbp lp|L122,* " ResetStream aa 001540 000004 000002 zero 4,2 aa 001541 600040 236100 209 ldq sp|32 " OUTPUT aa 001542 700006 756111 stq sb|6,x1 4a 001543 400052 272120 tsbbp lp|L94,* " Close aa 001544 000004 000001 zero 4,1 aa 001545 600040 450100 210 stz sp|32 " OUTPUT L121: aa 001546 600043 234100 212 szn sp|35 " CONSOLE aa 001547 000005 600004 tze L123 aa 001550 600043 236100 ldq sp|35 " CONSOLE aa 001551 700006 756111 stq sb|6,x1 4a 001552 400052 272120 tsbbp lp|L94,* " Close aa 001553 000004 000001 zero 4,1 L123: aa 001554 600043 450100 213 stz sp|35 " CONSOLE aa 001555 600152 450100 214 stz sp|106 " ChStream aa 001556 600165 234100 215 szn sp|117 " Errorstream aa 001557 000007 600004 tze L124 aa 001560 600177 234100 szn sp|127 " Filesw aa 001561 000005 601004 tnz L124 aa 001562 600165 236100 ldq sp|117 " Errorstream aa 001563 700006 756111 stq sb|6,x1 4a 001564 400052 272120 tsbbp lp|L94,* " Close aa 001565 000004 000001 zero 4,1 L124: aa 001566 600165 450100 216 stz sp|117 " Errorstream aa 001567 600042 236100 217 ldq sp|34 " MONITOR aa 001570 700006 756111 stq sb|6,x1 4a 001571 400052 272120 tsbbp lp|L94,* " Close aa 001572 000004 000001 zero 4,1 4a 001573 400032 272120 218 tsbbp lp|L125,* " NewvecCleanup aa 001574 000004 000000 zero 4 aa 001575 600170 234100 219 szn sp|120 " ErrorTempID aa 001576 000007 600004 tze L126 aa 001577 600170 236100 ldq sp|120 " ErrorTempID aa 001600 700006 756111 stq sb|6,x1 aa 001601 000010 352004 eapbp L127 " "error_messages" aa 001602 700007 542111 sprpbp sb|7,x1 4a 001603 400030 272120 tsbbp lp|L128,* " DeleteTempSeg aa 001604 000004 000002 zero 4,2 L126: L118: aa 001605 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001606 200000 121100 sblx1 bp|0 aa 001607 700001 764111 lprplp sb|1,x1 aa 001610 200001 710100 tra bp|1 " end of return sequence " Literal pool L127: aa 001611 000016 145162 zero 14,51826 " "error_messages" aa 001612 162157 162137 zero 58479,58463 aa 001613 155145 163163 zero 55909,58995 aa 001614 141147 145163 zero 49767,51827 " Begin text of PrintErrorFile aa 001615 000016 120162 zero 14,41074 " PrintErrorFile aa 001616 151156 164105 zero 53870,59461 aa 001617 162162 157162 zero 58482,56946 aa 001620 106151 154145 zero 35945,55397 L6: aa 001621 000000 213000 192 epaq 0 " set lp to linkage section aa 001622 700026 764161 lprplp sb|22,*au aa 001623 200000 021100 adlx1 bp|0 " BCPL save aa 001624 700000 542111 sprpbp sb|0,x1 aa 001625 700001 544111 sprplp sb|1,x1 aa 001626 700435 620111 eax0 sb|285,x1 aa 001627 777760 360003 anx0 -16,du aa 001630 700025 740100 stx0 sb|21 " end of save sequence aa 001631 600165 234100 193 szn sp|117 " Errorstream aa 001632 000062 600004 tze L131 aa 001633 600177 234100 szn sp|127 " Filesw aa 001634 000060 601004 tnz L131 aa 001635 600040 234100 194 szn sp|32 " OUTPUT aa 001636 000005 600004 tze L132 aa 001637 600040 236100 ldq sp|32 " OUTPUT aa 001640 700014 756111 stq sb|12,x1 4a 001641 400026 272120 tsbbp lp|L133,* " Writeout aa 001642 000012 000001 zero 10,1 L132: aa 001643 600165 236100 195 ldq sp|117 " Errorstream aa 001644 700014 756111 stq sb|12,x1 4a 001645 400024 272120 tsbbp lp|L134,* " StreamOffset aa 001646 000012 000001 zero 10,1 aa 001647 700002 756111 stq sb|2,x1 " l aa 001650 600165 236100 196 ldq sp|117 " Errorstream aa 001651 700014 756111 stq sb|12,x1 4a 001652 400052 272120 tsbbp lp|L94,* " Close aa 001653 000012 000001 zero 10,1 aa 001654 600165 450100 197 stz sp|117 " Errorstream aa 001655 700006 352111 198 eapbp sb|6,x1 " a vector aa 001656 700003 542111 sprpbp sb|3,x1 " v aa 001657 700004 450111 stz sb|4,x1 " Zero aa 001660 600164 236100 199 ldq sp|116 " ErrorfilePointer aa 001661 700014 756111 stq sb|12,x1 aa 001662 700003 236111 ldq sb|3,x1 " v aa 001663 700015 756111 stq sb|13,x1 4a 001664 400022 272120 tsbbp lp|L135,* " ITS aa 001665 000012 000002 zero 10,2 aa 001666 700005 756111 stq sb|5,x1 aa 001667 000031 237004 ldaq L136 " arglist header aa 001670 700012 757111 staq sb|10,x1 " arg count aa 001671 700005 762111 lprpbp sb|5,x1 aa 001672 700014 252111 stpbp sb|12,x1 aa 001673 777207 352004 eapbp L74 aa 001674 700022 252111 stpbp sb|18,x1 aa 001675 700004 351511 eapab sb|4,x1 " Zero aa 001676 700016 251511 stpab sb|14,x1 aa 001677 777203 351404 eapab L74 aa 001700 700024 251511 stpab sb|20,x1 aa 001701 700002 353511 eapbb sb|2,x1 " l aa 001702 700020 253511 stpbb sb|16,x1 aa 001703 777177 353404 eapbb L74 aa 001704 700026 253511 stpbb sb|22,x1 aa 001705 600010 441100 sxl1 sp|8 aa 001706 600030 650100 stplp sp|24 4a 001707 400020 352120 eapbp lp|L137,* " IosWritePtr aa 001710 700012 350111 eapap sb|10,x1 aa 001711 700036 670120 tsblp sb|30,* " Multics call operator aa 001712 600010 721100 lxl1 sp|8 aa 001713 700001 764111 lprplp sb|1,x1 L131: aa 001714 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001715 200000 121100 sblx1 bp|0 aa 001716 700001 764111 lprplp sb|1,x1 aa 001717 200001 710100 tra bp|1 " end of return sequence " Literal pool L136: aa 001720 000006 000004 zero 6,4 " arglist header aa 001721 000006 000000 zero 6 " Begin text of FindInput aa 001722 000011 106151 zero 9,35945 " FindInput aa 001723 156144 111156 zero 56420,37486 aa 001724 160165 164000 zero 57461,59392 L5: aa 001725 000000 213000 177 epaq 0 " set lp to linkage section aa 001726 700026 764161 lprplp sb|22,*au aa 001727 200000 021100 adlx1 bp|0 " BCPL save aa 001730 700000 542111 sprpbp sb|0,x1 aa 001731 700001 544111 sprplp sb|1,x1 aa 001732 700425 620111 eax0 sb|277,x1 aa 001733 777760 360003 anx0 -16,du aa 001734 700025 740100 stx0 sb|21 " end of save sequence aa 001735 700006 371511 178 eaplb sb|6,x1 " a vector aa 001736 700005 545111 sprplb sb|5,x1 " v aa 001737 700002 236111 179 ldq sb|2,x1 " Name aa 001740 700102 756111 stq sb|66,x1 4a 001741 400016 272120 tsbbp lp|L141,* " Length aa 001742 000100 000001 zero 64,1 aa 001743 700071 756111 stq sb|57,x1 " l aa 001744 700071 236111 180 ldq sb|57,x1 " l aa 001745 000010 116007 cmpq 8,dl " 8 aa 001746 000043 604004 tmi L142 aa 001747 700005 235111 181 lda sb|5,x1 " v aa 001750 700102 755111 sta sb|66,x1 aa 001751 700002 235111 lda sb|2,x1 " Name aa 001752 700103 755111 sta sb|67,x1 aa 001753 700071 235111 lda sb|57,x1 " l aa 001754 000006 175007 sba 6,dl " 6 aa 001755 700104 755111 sta sb|68,x1 4a 001756 400014 272120 tsbbp lp|L143,* " Substr aa 001757 000100 000003 zero 64,3 aa 001760 700005 235111 182 lda sb|5,x1 " v aa 001761 700102 755111 sta sb|66,x1 aa 001762 000073 371404 eaplb L145 " ".runoff" aa 001763 700103 545111 sprplb sb|67,x1 4a 001764 400012 272120 tsbbp lp|L146,* " EqualString aa 001765 000100 000002 zero 64,2 aa 001766 000000 116007 cmpq 0,dl aa 001767 000022 600004 tze L144 aa 001770 700005 236111 183 ldq sb|5,x1 " v aa 001771 700102 756111 stq sb|66,x1 aa 001772 700002 236111 ldq sb|2,x1 " Name aa 001773 700103 756111 stq sb|67,x1 aa 001774 000001 236007 ldq 1,dl " 1 aa 001775 700104 756111 stq sb|68,x1 aa 001776 700071 236111 ldq sb|57,x1 " l aa 001777 000007 176007 sbq 7,dl " 7 aa 002000 700105 756111 stq sb|69,x1 4a 002001 400014 272120 tsbbp lp|L143,* " Substr aa 002002 000100 000004 zero 64,4 aa 002003 700005 236111 184 ldq sb|5,x1 " v aa 002004 700102 756111 stq sb|66,x1 aa 002005 700002 236111 ldq sb|2,x1 " Name aa 002006 700103 756111 stq sb|67,x1 4a 002007 400010 272120 tsbbp lp|L147,* " CopyString aa 002010 000100 000002 zero 64,2 L144: L142: aa 002011 700005 236111 188 ldq sb|5,x1 " v aa 002012 700102 756111 stq sb|66,x1 aa 002013 000250 236007 ldq 168,dl " 168 aa 002014 700103 756111 stq sb|67,x1 aa 002015 700002 236111 ldq sb|2,x1 " Name aa 002016 700104 756111 stq sb|68,x1 aa 002017 000036 371404 eaplb L145 " ".runoff" aa 002020 700105 545111 sprplb sb|69,x1 4a 002021 400060 272120 tsbbp lp|L89,* " Concatenate aa 002022 000100 000004 zero 64,4 aa 002023 700003 234111 189 szn sb|3,x1 " ParentStream aa 002024 000010 601004 tnz L148 aa 002025 000224 236007 ldq 148,dl aa 002026 700102 756111 stq sb|66,x1 aa 002027 700005 236111 ldq sb|5,x1 " v aa 002030 700103 756111 stq sb|67,x1 4a 002031 400102 272120 tsbbp lp|L14,* " Open aa 002032 000100 000002 zero 64,2 aa 002033 000011 710004 tra L149 L148: aa 002034 000226 236007 ldq 150,dl aa 002035 700102 756111 stq sb|66,x1 aa 002036 700005 236111 ldq sb|5,x1 " v aa 002037 700103 756111 stq sb|67,x1 aa 002040 700003 236111 ldq sb|3,x1 " ParentStream aa 002041 700104 756111 stq sb|68,x1 4a 002042 400102 272120 tsbbp lp|L14,* " Open aa 002043 000100 000003 zero 64,3 L149: aa 002044 700077 756111 stq sb|63,x1 aa 002045 700077 236111 ldq sb|63,x1 L140: aa 002046 700005 756111 stq sb|5,x1 aa 002047 700005 236111 ldq sb|5,x1 aa 002050 700000 762111 lprpbp sb|0,x1 " bcpl return aa 002051 200000 121100 sblx1 bp|0 aa 002052 700001 764111 lprplp sb|1,x1 aa 002053 200001 710100 tra bp|1 " end of return sequence aa 002054 700004 756111 stq sb|4,x1 " temporary " Literal pool L145: aa 002055 000007 056162 zero 7,23666 " ".runoff" aa 002056 165156 157146 zero 60014,56934 aa 002057 146000 000000 zero 52224 " Local subroutine to help enter BCPL environment L11: aa 002060 004000 627000 eax7 2048 " Multics save sequence aa 002061 700040 272120 tsbbp sb|32,* aa 002062 600620 621100 eax1 sp|400 aa 002063 600030 650100 stplp sp|24 aa 002064 777775 350010 eapap -3,x0 aa 002065 600026 250100 stpap sp|22 aa 002066 000000 272010 tsbbp 0,x0 " simulate standard BCPL call aa 002067 000000 000000 zero 0 aa 002070 700042 710120 tra sb|34,* " Multics return aa 002071 000000 000000 " padding " Definition section part one - external entry points 5a 000000 000021 000000 " pointer to first definition aa 000001 000000 600000 " flags: new format, ignore header aa 000002 000000 000000 " list terminator aa 000003 006162 165156 " "runoff" aa 000004 157146 146000 aa 000005 002162 146000 " "rf" aa 000006 015162 165156 " "runoff_driver" aa 000007 157146 146137 aa 000010 144162 151166 aa 000011 145162 000000 aa 000012 011106 151156 " "FindInput" aa 000013 144111 156160 aa 000014 165164 000000 aa 000015 014163 171155 " "symbol_table" aa 000016 142157 154137 aa 000017 164141 142154 aa 000020 145000 000000 " Segname definition for runoff 55 000021 000024 000002 " forward, backward threads 5a 000022 000027 400003 " value defined, class flags 55 000023 000003 000024 " name pointer, first entry def " Definition for runoff 55 000024 000027 000021 " forward, backward threads 0a 000025 000005 500000 " value defined, class flags 55 000026 000003 000021 " name pointer, segname def pointer " Segname definition for rf 55 000027 000032 000024 " forward, backward threads 5a 000030 000035 400003 " value defined, class flags 55 000031 000005 000032 " name pointer, first entry def " Definition for rf 55 000032 000035 000027 " forward, backward threads 0a 000033 001315 500000 " value defined, class flags 55 000034 000005 000027 " name pointer, segname def pointer " Segname definition for runoff_driver 55 000035 000040 000032 " forward, backward threads 5a 000036 000002 400003 " value defined, class flags 55 000037 000006 000040 " name pointer, first entry def " Definition for FindInput 55 000040 000043 000035 " forward, backward threads 0a 000041 001725 500000 " value defined, class flags 55 000042 000012 000035 " name pointer, segname def pointer " Definition for symbol_table 55 000043 000002 000040 " forward, backward threads 6a 000044 000000 400002 " value defined, class flags 55 000045 000015 000035 " name pointer, segname def pointer " Definition section part two - symbolic info for external references aa 000046 015142 143160 " "bcpl_strings_" aa 000047 154137 163164 aa 000050 162151 156147 aa 000051 163137 000000 aa 000052 012103 157160 " "CopyString" aa 000053 171123 164162 aa 000054 151156 147000 5a 000055 000056 000000 aa 000056 000004 000000 55 000057 000046 000052 aa 000060 013105 161165 " "EqualString" aa 000061 141154 123164 aa 000062 162151 156147 5a 000063 000064 000000 aa 000064 000004 000000 55 000065 000046 000060 aa 000066 006123 165142 " "Substr" aa 000067 163164 162000 5a 000070 000071 000000 aa 000071 000004 000000 55 000072 000046 000066 aa 000073 006114 145156 " "Length" aa 000074 147164 150000 5a 000075 000076 000000 aa 000076 000004 000000 55 000077 000046 000073 aa 000100 004151 157163 " "ios_" aa 000101 137000 000000 aa 000102 011167 162151 " "write_ptr" aa 000103 164145 137160 aa 000104 164162 000000 5a 000105 000106 000000 aa 000106 000004 000000 55 000107 000100 000102 aa 000110 022142 143160 " "bcpl_machine_code_" aa 000111 154137 155141 aa 000112 143150 151156 aa 000113 145137 143157 aa 000114 144145 137000 aa 000115 003111 124123 " "ITS" 5a 000116 000117 000000 aa 000117 000004 000000 55 000120 000110 000115 aa 000121 017142 143160 " "bcpl_stream_io_" aa 000122 154137 163164 aa 000123 162145 141155 aa 000124 137151 157137 aa 000125 014123 164162 " "StreamOffset" aa 000126 145141 155117 aa 000127 146146 163145 aa 000130 164000 000000 5a 000131 000132 000000 aa 000132 000004 000000 55 000133 000121 000125 aa 000134 010127 162151 " "Writeout" aa 000135 164145 157165 aa 000136 164000 000000 5a 000137 000140 000000 aa 000140 000004 000000 55 000141 000121 000134 aa 000142 021142 143160 " "bcpl_filesys_lib_" aa 000143 154137 146151 aa 000144 154145 163171 aa 000145 163137 154151 aa 000146 142137 000000 aa 000147 015104 145154 " "DeleteTempSeg" aa 000150 145164 145124 aa 000151 145155 160123 aa 000152 145147 000000 5a 000153 000154 000000 aa 000154 000004 000000 55 000155 000142 000147 aa 000156 015116 145167 " "NewvecCleanup" aa 000157 166145 143103 aa 000160 154145 141156 aa 000161 165160 000000 5a 000162 000163 000000 aa 000163 000004 000000 55 000164 000142 000156 aa 000165 013122 145163 " "ResetStream" aa 000166 145164 123164 aa 000167 162145 141155 5a 000170 000171 000000 aa 000171 000004 000000 55 000172 000121 000165 aa 000173 016115 141153 " "MakeBcplString" aa 000174 145102 143160 aa 000175 154123 164162 aa 000176 151156 147000 5a 000177 000200 000000 aa 000200 000004 000000 55 000201 000046 000173 aa 000202 015123 160154 " "SplitPathname" aa 000203 151164 120141 aa 000204 164150 156141 aa 000205 155145 000000 5a 000206 000207 000000 aa 000207 000004 000000 55 000210 000142 000202 aa 000211 016105 170160 " "ExpandPathname" aa 000212 141156 144120 aa 000213 141164 150156 aa 000214 141155 145000 5a 000215 000216 000000 aa 000216 000004 000000 55 000217 000142 000211 aa 000220 007120 154061 " "Pl1Call" aa 000221 103141 154154 5a 000222 000223 000000 aa 000223 000004 000000 55 000224 000110 000220 aa 000225 010102 103120 " "BCPLaddr" aa 000226 114141 144144 aa 000227 162000 000000 5a 000230 000231 000000 aa 000231 000004 000000 55 000232 000110 000225 aa 000233 012162 165156 " "runoff_mr0" aa 000234 157146 146137 aa 000235 155162 060000 aa 000236 004127 141151 " "Wait" aa 000237 164000 000000 5a 000240 000241 000000 aa 000241 000004 000000 55 000242 000233 000236 aa 000243 005103 154157 " "Close" aa 000244 163145 000000 5a 000245 000246 000000 aa 000246 000004 000000 55 000247 000121 000243 aa 000250 012162 165156 " "runoff_mr1" aa 000251 157146 146137 aa 000252 155162 061000 aa 000253 004122 157146 " "Roff" aa 000254 146000 000000 5a 000255 000256 000000 aa 000256 000004 000000 55 000257 000250 000253 aa 000260 013123 164157 " "StoreString" aa 000261 162145 123164 aa 000262 162151 156147 5a 000263 000264 000000 aa 000264 000004 000000 55 000265 000233 000260 aa 000266 013103 157156 " "Concatenate" aa 000267 143141 164145 aa 000270 156141 164145 5a 000271 000272 000000 aa 000272 000004 000000 55 000273 000046 000266 aa 000274 012165 163145 " "user_info_" aa 000275 162137 151156 aa 000276 146157 137000 aa 000277 010164 164171 " "tty_data" aa 000300 137144 141164 aa 000301 141000 000000 5a 000302 000303 000000 aa 000303 000004 000000 55 000304 000274 000277 aa 000305 021142 143160 " "bcpl_command_lib_" aa 000306 154137 143157 aa 000307 155155 141156 aa 000310 144137 154151 aa 000311 142137 000000 aa 000312 010103 157155 " "Complain" aa 000313 160154 141151 aa 000314 156000 000000 5a 000315 000316 000000 aa 000316 000004 000000 55 000317 000305 000312 aa 000320 013117 160164 " "OptionParse" aa 000321 151157 156120 aa 000322 141162 163145 5a 000323 000324 000000 aa 000324 000004 000000 55 000325 000305 000320 aa 000326 021107 145164 " "GetNextCommandArg" aa 000327 116145 170164 aa 000330 103157 155155 aa 000331 141156 144101 aa 000332 162147 000000 5a 000333 000334 000000 aa 000334 000004 000000 55 000335 000305 000326 aa 000336 012123 145164 " "SetHandler" aa 000337 110141 156144 aa 000340 154145 162000 5a 000341 000342 000000 aa 000342 000004 000000 55 000343 000305 000336 aa 000344 015124 151155 " "TimeToSeconds" aa 000345 145124 157123 aa 000346 145143 157156 aa 000347 144163 000000 5a 000350 000351 000000 aa 000351 000004 000000 55 000352 000110 000344 aa 000353 014122 141167 " "RawClockTime" aa 000354 103154 157143 aa 000355 153124 151155 aa 000356 145000 000000 5a 000357 000360 000000 aa 000360 000004 000000 55 000361 000110 000353 aa 000362 012116 145167 " "NewvecInit" aa 000363 166145 143111 aa 000364 156151 164000 5a 000365 000366 000000 aa 000366 000004 000000 55 000367 000142 000362 aa 000370 004117 160145 " "Open" aa 000371 156000 000000 5a 000372 000373 000000 aa 000373 000004 000000 55 000374 000121 000370 aa 000375 000000 000000 " padding " Linkage section - static variables and external links aa 000000 000000 000000 " linkage header 0a 000001 002072 000000 " address of defs aa 000002 000000 000000 aa 000003 000000 000000 aa 000004 000000 000000 aa 000005 000000 000000 2a 000006 000010 000104 " offset to links, total length aa 000007 000000 000104 " obsolete length " External link pairs L147: 3a 000010 777770 000046 " "bcpl_strings_$CopyString" 5a 000011 000055 000000 L146: 3a 000012 777766 000046 " "bcpl_strings_$EqualString" 5a 000013 000063 000000 L143: 3a 000014 777764 000046 " "bcpl_strings_$Substr" 5a 000015 000070 000000 L141: 3a 000016 777762 000046 " "bcpl_strings_$Length" 5a 000017 000075 000000 L137: 3a 000020 777760 000046 " "ios_$write_ptr" 5a 000021 000105 000000 L135: 3a 000022 777756 000046 " "bcpl_machine_code_$ITS" 5a 000023 000116 000000 L134: 3a 000024 777754 000046 " "bcpl_stream_io_$StreamOffset" 5a 000025 000131 000000 L133: 3a 000026 777752 000046 " "bcpl_stream_io_$Writeout" 5a 000027 000137 000000 L128: 3a 000030 777750 000046 " "bcpl_filesys_lib_$DeleteTempSeg" 5a 000031 000153 000000 L125: 3a 000032 777746 000046 " "bcpl_filesys_lib_$NewvecCleanup" 5a 000033 000162 000000 L122: 3a 000034 777744 000046 " "bcpl_stream_io_$ResetStream" 5a 000035 000170 000000 L112: 3a 000036 777742 000046 " "bcpl_strings_$MakeBcplString" 5a 000037 000177 000000 L111: 3a 000040 777740 000046 " "bcpl_filesys_lib_$SplitPathname" 5a 000041 000206 000000 L110: 3a 000042 777736 000046 " "bcpl_filesys_lib_$ExpandPathname" 5a 000043 000215 000000 L104: 3a 000044 777734 000046 " "bcpl_machine_code_$Pl1Call" 5a 000045 000222 000000 L103: 3a 000046 777732 000046 " "bcpl_machine_code_$BCPLaddr" 5a 000047 000230 000000 L97: 3a 000050 777730 000046 " "runoff_mr0$Wait" 5a 000051 000240 000000 L94: 3a 000052 777726 000046 " "bcpl_stream_io_$Close" 5a 000053 000245 000000 L92: 3a 000054 777724 000046 " "runoff_mr1$Roff" 5a 000055 000255 000000 L91: 3a 000056 777722 000046 " "runoff_mr0$StoreString" 5a 000057 000263 000000 L89: 3a 000060 777720 000046 " "bcpl_strings_$Concatenate" 5a 000061 000271 000000 L75: 3a 000062 777716 000046 " "user_info_$tty_data" 5a 000063 000302 000000 L65: 3a 000064 777714 000046 " "bcpl_command_lib_$Complain" 5a 000065 000315 000000 L60: 3a 000066 777712 000046 " "bcpl_command_lib_$OptionParse" 5a 000067 000323 000000 L59: 3a 000070 777710 000046 " "bcpl_command_lib_$GetNextCommandArg" 5a 000071 000333 000000 L22: 3a 000072 777706 000046 " "bcpl_command_lib_$SetHandler" 5a 000073 000341 000000 L20: 3a 000074 777704 000046 " "bcpl_machine_code_$TimeToSeconds" 5a 000075 000350 000000 L19: 3a 000076 777702 000046 " "bcpl_machine_code_$RawClockTime" 5a 000077 000357 000000 L18: 3a 000100 777700 000046 " "bcpl_filesys_lib_$NewvecInit" 5a 000101 000365 000000 L14: 3a 000102 777676 000046 " "bcpl_stream_io_$Open" 5a 000103 000372 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 441556 542201 " 01/24/75 0703.4 mst Fri aa 000010 142143 160154 " "bcpl " aa 000011 040040 040040 aa 000012 000042 000035 " compiler version name - pointer, length aa 000013 000052 000024 " user id - pointer, length aa 000014 000057 000043 " comment string - pointer, length aa 000015 000002 000002 " text and linkage boundaries aa 000016 000024 000000 " source map, symbol tree root 7a 000017 000000 000123 " section header pointer, block size aa 000020 000000 000123 " next block pointer, rel_text aa 000021 000000 000160 " rel_def, rel_link aa 000022 000175 000123 " rel_symbol, default truncate aa 000023 000024 000000 " optional truncate, unused aa 000024 000000 000001 " source files map: version number aa 000025 000000 000003 " number of files aa 000026 000070 000054 " runoff_driver aa 000027 023333 611445 " last modified on aa 000030 000000 102333 " 01/24/75 0647.2 mst Fri aa 000031 432367 000000 aa 000032 000103 000042 " runoff_head aa 000033 021607 541104 " last modified on aa 000034 000000 101621 " 05/06/74 1743.2 mst Mon aa 000035 352532 200000 aa 000036 000114 000033 " head aa 000037 021607 540547 " last modified on aa 000040 000000 101621 " 05/06/74 1742.4 mst Mon aa 000041 352261 400000 aa 000042 102103 120114 " "BCPL version 3.4, August 1973" aa 000043 040166 145162 aa 000044 163151 157156 aa 000045 040063 056064 aa 000046 054040 101165 aa 000047 147165 163164 aa 000050 040061 071067 aa 000051 063040 040040 aa 000052 115141 162164 " "Martinson.SysMaint.a" aa 000053 151156 163157 aa 000054 156056 123171 aa 000055 163115 141151 aa 000056 156164 056141 aa 000057 163157 165162 " "source xref alist optimize 6180" aa 000060 143145 040040 aa 000061 170162 145146 aa 000062 040040 141154 aa 000063 151163 164040 aa 000064 040157 160164 aa 000065 151155 151172 aa 000066 145040 040066 aa 000067 061070 060040 aa 000070 076062 056061 " ">2.1spec>online>mib083074>runoff_driver.bcpl" aa 000071 163160 145143 aa 000072 076157 156154 aa 000073 151156 145076 aa 000074 155151 142060 aa 000075 070063 060067 aa 000076 064076 162165 aa 000077 156157 146146 aa 000100 137144 162151 aa 000101 166145 162056 aa 000102 142143 160154 aa 000103 076154 144144 " ">ldd>include>runoff_head.incl.bcpl" aa 000104 076151 156143 aa 000105 154165 144145 aa 000106 076162 165156 aa 000107 157146 146137 aa 000110 150145 141144 aa 000111 056151 156143 aa 000112 154056 142143 aa 000113 160154 040040 aa 000114 076154 144144 " ">ldd>include>head.incl.bcpl" aa 000115 076151 156143 aa 000116 154165 144145 aa 000117 076150 145141 aa 000120 144056 151156 aa 000121 143154 056142 aa 000122 143160 154040 " Relocation information " text section relocation bits aa 000123 000000 000002 " version number of rel-bits structure aa 000124 000000 001704 " length in bits aa 000125 001276 015647 aa 000126 412750 000240 aa 000127 005170 053236 aa 000130 225647 402751 aa 000131 700472 360216 aa 000132 400002 474043 aa 000133 517040 323606 aa 000134 464000 024000 aa 000135 024740 635170 aa 000136 113200 005000 aa 000137 005170 043200 aa 000140 005171 517276 aa 000141 013640 000247 aa 000142 407751 700572 aa 000143 360106 400000 aa 000144 500012 360306 aa 000145 474063 517005 aa 000146 320012 000012 aa 000147 360116 400050 aa 000150 120000 024740 aa 000151 735000 500012 aa 000152 360116 474045 aa 000153 517014 723601 aa 000154 464000 123601 aa 000155 464000 123601 aa 000156 164000 005170 aa 000157 043236 027400 l " inkage relocation bits aa 000160 000000 000002 " version number of rel-bits structure aa 000161 000000 000600 " length in bits aa 000162 100002 204652 aa 000163 465246 524652 aa 000164 465246 524652 aa 000165 465246 524652 aa 000166 465246 524652 aa 000167 465246 524652 aa 000170 465246 524652 aa 000171 465246 524652 aa 000172 465246 524652 aa 000173 465246 524652 aa 000174 465246 520000 s " ymbol relocation bits aa 000175 000000 000002 " version number of rel-bits structure aa 000176 000000 000043 " length in bits aa 000177 740365 770416 " Object map aa 002774 000000 000001 " version number of object_map structure aa 002775 157142 152137 " "obj_map " aa 002776 155141 160040 aa 002777 000000 002071 " text offset, length aa 003000 002072 000375 " def offset, length aa 003001 002470 000104 " link offset, length aa 003002 002574 000200 " symbol offset, length aa 003003 000000 000000 " break map offset, length aa 003004 340000 000000 " flags: ^bound, relocatable, procedure, standard aa 003005 002774 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