Compilation listing of file >2.1spec>online>mib083074>runoff_mr0.bcpl. Compilation performed for Martinson.SysMaint.a at 01/24/75 0703.7 mst Fri. Compiled by BCPL version 3.4, August 1973. Compiler updated at 09/25/73 0959.1 mst Tue. Options applied: source xref alist optimize 6180. 1 // This file contains miscellaneous utility programs for runoff. 2 // Many of them are system-dependent by nature. 3 // Last modified on 05/30/74 at 18:42:57 by R F Mabee. 4 // 5 // Routines defined in this module: 6 // Wait Wait until line is typed in on console. 7 // ConsoleReadLine Get line from console input. 8 // FixTab Insert blanks into buffer to properly convert tab. 9 // Typeout Print body of control line on console. 10 // ExecuteCommand Pass body of control line to command processor. 11 // NewOutputStream Make new output file when current one is full. 12 // SetCharsw Turn "chars" option on or off. 13 // Report Generate error message. Save if main output is to console. 14 // StoreString Make unshared copy of string in free storage. 15 // Nx_open Stack new input stream. 16 // Nx_close Revert to previous input stream. 17 // Nx_reset Reprocess input text (file). 18 // ReadLine Get next input line from nested input streams. 19 // RoffProcess Do all the text from a given input stream. 20 // Only FixTab is not external. 21 22 // Copyright (c) 1974 by Massachusetts Institute of Technology and Honeywell Information Systems, Inc. 23 24 // General permission is granted to copy and use this program, but not to sell it, provided that the above 25 // copyright statement is given. Contact Information Processing Services, MIT, for further information. 26 // Please contact R F Mabee at MIT for information on this program and versions for other machines. 27 28 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 } 29 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 $) 30 31 external 32 $( CuCp = "cu_$cp" 33 $) 34 35 global 36 $( EndL : 320 // Return point on end of all data. 37 EndP : 321 // Stack frame to go with EndL. 38 $) 39 40 static 41 $( ErrorfileCounter = 0 // Unique id for error message segments. 42 $) 43 44 45 let Wait () be 46 $( let v = vec Maxline 47 unless Filesw do ConsoleReadline (v) 48 $) 49 and ConsoleReadline (v) = valof 50 $( unless Filesw do Writeout (OUTPUT) 51 if CONSOLE = 0 do CONSOLE := Open (Console + Read) 52 let i = 0 53 $( if i < Maxline do i := i + 1 54 Readch (CONSOLE, lv Ch) 55 v!i := Ch & $8177 56 if Ch = '*t' do i := FixTab (v, i) 57 $) repeatuntil Ch = '*n' 58 v!i := '*s' 59 v!0 := i - 1 60 resultis i - 1 61 $) 62 and FixTab (v, i) = valof 63 $( let p = 0 64 for j = 1 to i - 1 do p := p + Width (v!j) 65 for j = p rem 10 to 9 do 66 $( v!i := '*s' 67 i := i + 1 68 $) 69 resultis i - 1 70 $) 71 and Typeout () be 72 $( Check_ref () 73 unless Filesw do Writeout (OUTPUT) 74 for i = Nrx to Nr - 1 do Writech (MONITOR, Rawchar!i) 75 Writech (MONITOR, '*n') 76 $) 77 and ExecuteCommand () be 78 $( Check_ref () 79 unless Filesw do Writeout (OUTPUT) 80 let v, w = vec Maxline, vec Maxline 81 let l = Nr - Nrx 82 if l le 0 return 83 Rawchar!(Nrx - 1) := l 84 Packstring (Rawchar + Nrx - 1, v) 85 MakePl1String (v, w, l) 86 call CuCp (ITS (w, v), lv l, lv Errcode) 87 $) 88 89 let SetCharsw (New) be 90 $( if New & ChStream = 0 do 91 $( let v = vec 20 92 ChStream := Open (EntryName + Write, Concatenate (v, 32, FileName, ".chars")) 93 unless Errcode = 0 do Complain (v) 94 WrChInit () 95 $) 96 Charsw := New 97 $) 98 and Report (s) be 99 $( if Errorstream = 0 do 100 $( test Filesw 101 then Errorstream := MONITOR 102 or $( ErrorfileCounter := ErrorfileCounter + 1 103 ErrorTempID := ErrorfileCounter 104 ErrorfilePointer := MakeTempSeg (ErrorTempID, "error_messages") 105 Errorstream := Open (Pointer + Write, ErrorfilePointer) 106 $) 107 $) 108 109 Format (Errorstream, "^a in line ^d of file ^a. ", s, InputLines, InputFileName) 110 for i = 1 to Nr - 1 do Writech (Errorstream, Rawchar!i) 111 Writech (Errorstream, '*n') 112 $) 113 114 and StoreString (S) = valof 115 $( let P = Newvec (LengthInWords (S) - 1) 116 CopyString (S, P) 117 resultis P 118 $) 119 120 121 // The following function is used to open a stream. Its 122 // argument is the name of the file to open. 123 124 let Nx_open (Name) be 125 { test NestingDepth ge MaxDepth 126 then Report ("Input files nested too deeply") 127 or { InputStack[NestingDepth] := INPUT // Remember current stream. 128 InputStack[NestingDepth + 1] := InputLines // And line number. 129 InputStack[NestingDepth + 2] := InputFileName // And file name. 130 NestingDepth := NestingDepth + 3 131 INPUT := FindInput (Name, INPUT) 132 unless Errcode = 0 do Report ("Unable to open input file") 133 InputLines := 0 134 InputFileName := StoreString (Name) 135 } 136 } 137 138 139 // This parameter-less routine may be called to close off the 140 // current stream. 141 142 and Nx_close () be 143 { unless JumpLine = -1 do 144 $( Nx_reset () 145 let J = JumpLine - 1 146 JumpLine := -1 147 while InputLines < J do 148 $( Nr := 0 149 Readline () 150 $) 151 Nr, Ch := 0, 0 152 return 153 $) 154 if NestingDepth le 0 do Longjump (EndL, EndP) 155 Close (INPUT) 156 Freevec (InputFileName) 157 NestingDepth := NestingDepth - 3 158 INPUT := InputStack[NestingDepth] 159 InputLines := InputStack[NestingDepth + 1] 160 InputFileName := InputStack[NestingDepth + 2] 161 } 162 163 // This routine resets the current position in the current 164 // input file back to the beginning so that the input will be read again. 165 166 and Nx_reset () be 167 $( ResetStream (INPUT, 0) 168 InputLines := 0 169 $) 170 171 and Readline () be // Read next line into Rawchar[1]...Rawchar[Nr]. 172 $( $( Readch (INPUT, lv Ch) 173 if Ch = Endofstreamch do 174 $( Nx_close () 175 loop 176 $) 177 if Nr < Maxline do Nr := Nr + 1 178 Rawchar!Nr := Ch & $8177 179 if Ch = '*t' do Nr := FixTab (Rawchar, Nr) 180 $) repeatuntil Ch = '*n' 181 InputLines := InputLines + 1 182 Rawchar!Nr := '*s' 183 while Rawchar!Nr = '*s' do Nr := Nr - 1 // Delete blanks. 184 $) 185 186 let RoffProcess (Stream) be 187 $( INPUT := Stream 188 InputLines := 0 189 InputFileName := FileName // Not always right, but close enough for now... 190 NestingDepth := 0 191 EndL, EndP := End, Level () 192 193 $( Readline () 194 Process: 195 test LIno = 0 196 then test Rawchar!1 = '.' 197 then $( Control () 198 if Again do 199 $( Again := false 200 goto Process 201 $) 202 $) 203 or Text () 204 or $( Text () 205 unless NoControl do LIno := LIno - 1 206 $) 207 Nr := 0 208 $) repeat // Eventually we run out of input and jump to End. 209 210 End: Nx_reset () // So it can be read again if necessary. 211 $) CAE time 5.7, 105 source lines per second. cross reference table AbsI head: 11 AbsR head: 12 Ad runoff_head: 130 Again runoff_head: 131, runoff_mr0: 198, 199 Allocate head: 64 Append head: 136 ArgIndex head: 121 Bcall head: 54 BCPLaddr head: 108 Blank runoff_head: 35 Break runoff_head: 36 ByteBits runoff_head: 243 ByteSize head: 127 Ce runoff_head: 132 Ch head: 118, runoff_mr0: 54, 55, 56, 57, 151, 172, 173, 178, 179, 180 Char runoff_head: 133 CharsTable runoff_head: 134 Charsw runoff_head: 135, runoff_mr0: 96 CharToString head: 37 Check_ref runoff_head: 38, runoff_mr0: 72, 78 ChStream runoff_head: 136, runoff_mr0: 90, 92 Close head: 69, runoff_mr0: 155 CompareStrings head: 27 Complain head: 107, runoff_mr0: 93 Concatenate head: 28, runoff_mr0: 92 ConcatenateArgs head: 104 CONSOLE head: 117, runoff_mr0: 51, 51, 54 Console head: 134, runoff_mr0: 51 ConsoleReadline runoff_head: 40, runoff_mr0: 47, 49 Control runoff_head: 41, runoff_mr0: 197 Conv runoff_head: 137 ConvertFtoS head: 46 ConvertNtoS runoff_head: 19, head: 45 ConvertStoN head: 44 CopyString head: 25, runoff_mr0: 116 CountSize head: 128 CuCp runoff_mr0: 32, 86 DeleteTempSeg head: 91 Device runoff_head: 139 DeviceTable runoff_head: 140 Ef runoff_head: 141 Eh runoff_head: 142 Eject runoff_head: 47 End runoff_mr0: 191, 210 EndL runoff_mr0: 36, 154, 191 Endofstreamch head: 130, runoff_mr0: 173 EndP runoff_mr0: 37, 154, 191 EntryName head: 135, runoff_mr0: 92 Eq runoff_head: 143 Eqcnt runoff_head: 144 EqualString head: 26 Errcode head: 120, runoff_mr0: 86, 93, 132 ErrorfileCounter runoff_mr0: 41, 102, 102, 103 ErrorfilePointer runoff_head: 145, runoff_mr0: 104, 105 Errorstream runoff_head: 146, runoff_mr0: 99, 101, 105, 109, 110, 111 ErrorTempID runoff_head: 148, runoff_mr0: 103, 104 ExecuteCommand runoff_head: 49, runoff_mr0: 77 ExpandPathname head: 84 ExpError runoff_head: 149 Exponential head: 20 ExtraMargin runoff_head: 150 Fc runoff_head: 151 Fd runoff_head: 152 Fi runoff_head: 153 FileName runoff_head: 154, runoff_mr0: 92, 189 Filesw runoff_head: 155, runoff_mr0: 47, 50, 73, 79, 100 FillTrTable runoff_head: 50 Findadr head: 65 Findent runoff_head: 157 FindInput runoff_head: 51, runoff_mr0: 131 FindSegment head: 87 FixTab runoff_mr0: 56, 62, 179 Fl runoff_head: 158 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, runoff_mr0: 109 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, runoff_mr0: 156 From runoff_head: 168 Ft runoff_head: 169 Fth runoff_head: 170 Fundent runoff_head: 171 GetCpuUsage head: 96 Gethead runoff_head: 57 GetNextCommandArg head: 106 GetPathname head: 89 GetString runoff_head: 59 Hyphenating runoff_head: 172 i runoff_mr0: 52, 53, 53, 53, 55, 56, 56, 58, 59, 60, 62, 64, 66, 67, 67, 69, 74, 74, 110, 110 In runoff_head: 173 Index head: 34 IndexCh head: 35 InitializeSymbolTree runoff_head: 61 INPUT head: 116, runoff_mr0: 127, 131, 131, 155, 158, 167, 172, 187 InputFileName runoff_head: 175, runoff_mr0: 109, 129, 134, 156, 160, 189 InputLines runoff_head: 176, runoff_mr0: 109, 128, 133, 147, 159, 168, 181, 181, 188 InputStack runoff_head: 177, runoff_mr0: 127, 128, 129, 158, 159, 160 InsertEscapes head: 48 InsertFile runoff_head: 62 IOstatus head: 120 IpowerI head: 14 ItoR head: 43 ITS head: 109, runoff_mr0: 86 J runoff_mr0: 145, 147 j runoff_mr0: 64, 64, 65 JoinPathname head: 85 JumpLine runoff_head: 178, runoff_mr0: 143, 145, 146 l runoff_mr0: 81, 82, 83, 85, 86 Left head: 129 Length head: 31 LengthInWords head: 33, runoff_mr0: 115 Level head: 53, runoff_mr0: 191 LinesLeft runoff_head: 179 LIno runoff_head: 180, runoff_mr0: 195, 205, 205 Ll runoff_head: 181 LL_ runoff_head: 249 Logarithm head: 19 Longjump head: 52, runoff_mr0: 154 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 MakePl1String head: 38, runoff_mr0: 85 MakeSegment head: 88 MakeTempSeg head: 90, runoff_mr0: 104 MaxDepth runoff_head: 247, runoff_mr0: 125 Maxheads runoff_head: 246 MaxI runoff_head: 23, head: 7 Maxline runoff_head: 245, runoff_mr0: 46, 53, 80, 80, 177 MaxR head: 8 MinI runoff_head: 22, head: 9 MinR head: 10 MONITOR head: 117, runoff_mr0: 74, 75, 101 Move head: 56 MoveBits head: 57 Ms runoff_head: 188 MultiplePagecount runoff_head: 189 MultiSegmentFile head: 137 Name runoff_mr0: 124, 131, 134 Nc runoff_head: 190 Need runoff_head: 64 NeedSS runoff_head: 65 NestingDepth runoff_head: 191, runoff_mr0: 125, 127, 128, 129, 130, 130, 154, 157, 157, 158, 159, 160, 190 New runoff_mr0: 89, 90, 96 Newline runoff_head: 66 Newvec runoff_head: 20, head: 62, runoff_mr0: 115 NewvecCleanup head: 61 NewvecInit head: 60 Nl runoff_head: 193 NNp runoff_head: 194 NoControl runoff_head: 195, runoff_mr0: 205 NoFill runoff_head: 196 NoFtNo runoff_head: 197 NoPaging runoff_head: 198 Np runoff_head: 199 Nr runoff_head: 200, runoff_mr0: 74, 81, 110, 148, 151, 177, 177, 177, 178, 179, 179, 182, 183, 183, 183, 207 Nrx runoff_head: 202, runoff_mr0: 74, 81, 83, 84 Null head: 131 NumbArgs head: 59 Nx_close runoff_head: 68, runoff_mr0: 142, 174 Nx_open runoff_head: 69, runoff_mr0: 124 Nx_reset runoff_head: 70, runoff_mr0: 144, 166, 210 OddPage runoff_head: 203 Of runoff_head: 204 Oh runoff_head: 205 Open head: 68, runoff_mr0: 51, 92, 105 OptCallOut head: 144 OptConvert head: 143 OptGetNext head: 142 OptionParse head: 105 OptNegatable head: 140 OptNegate head: 141 OUTPUT head: 116, runoff_mr0: 50, 73, 79 Output runoff_head: 206 P runoff_mr0: 115, 116, 117 p runoff_mr0: 63, 64, 64, 65 Packstring runoff_head: 14, head: 23, runoff_mr0: 84 PadLeft runoff_head: 207 Parameter runoff_head: 208 Passes runoff_head: 209 PathName head: 135 Pi runoff_head: 211 Pl runoff_head: 212 Pl1ArgPtr head: 100 Pl1ArgString head: 102 Pl1Call head: 55 Pl1Descriptor head: 101 Pl1NumbArgs head: 99 Pl1ReturnString head: 103 PL_ runoff_head: 250 Pointer head: 134, runoff_mr0: 105 Print runoff_head: 213 PrinterIndent runoff_head: 73 Printersw runoff_head: 214 PrintFootnotes runoff_head: 74 PrintLineNumbers runoff_head: 215 Process runoff_mr0: 194, 200 ProgramID head: 119 RandomI head: 17 RandomR head: 18 Rawchar runoff_head: 216, runoff_mr0: 74, 83, 84, 110, 178, 179, 182, 183, 196 RawClockTime head: 94 Read head: 136, runoff_mr0: 51 Readch head: 70, runoff_mr0: 54, 172 ReadExp runoff_head: 77 Readhead runoff_head: 76 Readline runoff_head: 75, runoff_mr0: 149, 171, 193 ReadName runoff_head: 78 ReadNumber runoff_head: 79 ReadParam runoff_head: 80 ReadString runoff_head: 81 RemoveEscapes head: 47 Report runoff_head: 82, runoff_mr0: 98, 126, 132 ResetStream head: 78, runoff_mr0: 167 RevertHandler head: 112 Right head: 129 Roff runoff_head: 83 RoffProcess runoff_head: 84, runoff_mr0: 186 Roman runoff_head: 217 RpowerI head: 15 RpowerR head: 16 RtoI head: 42 S runoff_mr0: 114, 115, 116 s runoff_mr0: 98, 109 SavedCc runoff_head: 218 ScanChar head: 58 SearchName head: 135 Selsw runoff_head: 220 SetBitCount head: 93 SetCharsw runoff_head: 88, runoff_mr0: 89 SetDevice runoff_head: 90 SetHandler head: 111 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 Spacing runoff_head: 101 Spec_char runoff_head: 221 SplitPathname head: 86 SquareRoot head: 13 Start runoff_head: 222 Stopsw runoff_head: 223 StoreArabic runoff_head: 104 StoreDate runoff_head: 106 StoreRoman runoff_head: 107 StoreString runoff_head: 108, runoff_mr0: 114, 134 Stream runoff_mr0: 186, 187 StreamLength head: 80 StreamName head: 134 StreamOffset head: 79 StreamPointer head: 81 StringToChar head: 36 Subch head: 30 Substr head: 29 Temp runoff_head: 224 Tempc runoff_head: 225 Terminate head: 92 Text runoff_head: 111, runoff_mr0: 203, 204 TextRef runoff_head: 226 TimeNow runoff_head: 227 TimeToSeconds head: 95 Title runoff_head: 112 To runoff_head: 229 TreeRoot runoff_head: 231 TrTable runoff_head: 230 Typeout runoff_head: 115, runoff_mr0: 71 Un runoff_head: 232 Unpackstring runoff_head: 15, head: 24 UpdateSymbol runoff_head: 117 Use_ref runoff_head: 118 v runoff_mr0: 46, 47, 49, 55, 56, 58, 59, 62, 64, 66, 80, 84, 85, 86, 91, 92, 93 w runoff_mr0: 80, 85, 86 Wait runoff_head: 119, runoff_mr0: 45 Waitsw runoff_head: 233 Width runoff_head: 120, runoff_mr0: 64 WordSize head: 126 WrCh runoff_head: 121 WrChInit runoff_head: 122, runoff_mr0: 94 Write head: 136, runoff_mr0: 92, 105 Writech runoff_head: 16, head: 71, runoff_mr0: 74, 75, 110, 111 WriteChar runoff_head: 123 WriteN runoff_head: 18, head: 73 Writeout head: 76, runoff_mr0: 50, 73, 79 WriteS runoff_head: 17, head: 72 Trans time 1.4, 831 object words per second. " Begin text of ConsoleReadline aa 000000 000017 103157 zero 15,34415 " ConsoleReadline aa 000001 156163 157154 zero 56435,56940 aa 000002 145122 145141 zero 51794,51809 aa 000003 144154 151156 zero 51308,53870 aa 000004 145000 000000 zero 51712 L2: aa 000005 000000 213000 49 epaq 0 " set lp to linkage section aa 000006 700026 764161 lprplp sb|22,*au aa 000007 200000 021100 adlx1 bp|0 " BCPL save aa 000010 700000 542111 sprpbp sb|0,x1 aa 000011 700001 544111 sprplp sb|1,x1 aa 000012 700423 620111 eax0 sb|275,x1 aa 000013 777760 360003 anx0 -16,du aa 000014 700025 740100 stx0 sb|21 " end of save sequence aa 000015 600177 234100 50 szn sp|127 " Filesw aa 000016 000005 601004 tnz L9 aa 000017 600040 236100 ldq sp|32 " OUTPUT aa 000020 700010 756111 stq sb|8,x1 4a 000021 400074 272120 tsbbp lp|L10,* " Writeout aa 000022 000006 000001 zero 6,1 L9: aa 000023 600043 234100 51 szn sp|35 " CONSOLE aa 000024 000006 601004 tnz L11 aa 000025 000022 236007 ldq 18,dl aa 000026 700010 756111 stq sb|8,x1 4a 000027 400072 272120 tsbbp lp|L12,* " Open aa 000030 000006 000001 zero 6,1 aa 000031 600043 756100 stq sp|35 " CONSOLE L11: aa 000032 700004 450111 52 stz sb|4,x1 " i L13: aa 000033 700004 236111 53 ldq sb|4,x1 " i aa 000034 000620 116007 cmpq 400,dl " Maxline aa 000035 000002 605004 tpl L14 aa 000036 700004 054111 aos sb|4,x1 " i L14: aa 000037 600043 235100 54 lda sp|35 " CONSOLE aa 000040 700010 755111 sta sb|8,x1 aa 000041 600044 350100 eapap sp|36 " Ch aa 000042 700011 540111 sprpap sb|9,x1 4a 000043 400070 272120 tsbbp lp|L15,* " Readch aa 000044 000006 000002 zero 6,2 aa 000045 600044 235100 55 lda sp|36 " Ch aa 000046 000177 375007 ana 127,dl " $8177 aa 000047 700004 722111 lxl2 sb|4,x1 " i aa 000050 700002 760111 lprpap sb|2,x1 " v aa 000051 000000 755112 sta ap|0,x2 aa 000052 600044 235100 56 lda sp|36 " Ch aa 000053 000011 115007 cmpa 9,dl " '*t' aa 000054 000010 601004 tnz L16 aa 000055 700002 236111 ldq sb|2,x1 " v aa 000056 700010 756111 stq sb|8,x1 aa 000057 700004 236111 ldq sb|4,x1 " i aa 000060 700011 756111 stq sb|9,x1 aa 000061 000240 272004 tsbbp L3+2 " FixTab aa 000062 000006 000002 zero 6,2 aa 000063 700004 756111 stq sb|4,x1 " i L16: aa 000064 600044 236100 ldq sp|36 " Ch aa 000065 000012 116007 cmpq 10,dl " '*n' aa 000066 777745 601004 tnz L13 aa 000067 000040 235007 58 lda 32,dl " '*s' aa 000070 700004 723111 lxl3 sb|4,x1 " i aa 000071 700002 762111 lprpbp sb|2,x1 " v aa 000072 200000 755113 sta bp|0,x3 aa 000073 700004 235111 59 lda sb|4,x1 " i aa 000074 000001 175007 sba 1,dl " 1 aa 000075 700002 761111 lprpab sb|2,x1 " v aa 000076 100000 755100 sta ab|0 aa 000077 700004 235111 60 lda sb|4,x1 " i aa 000100 000001 175007 sba 1,dl " 1 L8: aa 000101 700004 755111 sta sb|4,x1 aa 000102 700004 235111 lda sb|4,x1 aa 000103 000044 777000 llr 36 " exchange A and Q aa 000104 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000105 200000 121100 sblx1 bp|0 aa 000106 700001 764111 lprplp sb|1,x1 aa 000107 200001 710100 tra bp|1 " end of return sequence " Begin text of Typeout aa 000110 000007 124171 zero 7,43129 " Typeout aa 000111 160145 157165 zero 57445,56949 aa 000112 164000 000000 zero 59392 aa 000113 700003 756111 71 stq sb|3,x1 " temporary L4: aa 000114 000000 213000 epaq 0 " set lp to linkage section aa 000115 700026 764161 lprplp sb|22,*au aa 000116 200000 021100 adlx1 bp|0 " BCPL save aa 000117 700000 542111 sprpbp sb|0,x1 aa 000120 700001 544111 sprplp sb|1,x1 aa 000121 700423 620111 eax0 sb|275,x1 aa 000122 777760 360003 anx0 -16,du aa 000123 700025 740100 stx0 sb|21 " end of save sequence 4a 000124 400066 272120 72 tsbbp lp|L20,* " Check_ref aa 000125 000006 000000 zero 6 aa 000126 600177 234100 73 szn sp|127 " Filesw aa 000127 000005 601004 tnz L21 aa 000130 600040 236100 ldq sp|32 " OUTPUT aa 000131 700010 756111 stq sb|8,x1 4a 000132 400074 272120 tsbbp lp|L10,* " Writeout aa 000133 000006 000001 zero 6,1 L21: aa 000134 600264 236100 74 ldq sp|180 " Nrx aa 000135 700002 756111 stq sb|2,x1 " i aa 000136 600261 236100 ldq sp|177 " Nr aa 000137 000001 176007 sbq 1,dl " 1 aa 000140 700003 756111 stq sb|3,x1 aa 000141 000012 710004 tra L22 L23: aa 000142 600042 236100 ldq sp|34 " MONITOR aa 000143 700010 756111 stq sb|8,x1 aa 000144 700002 724111 lxl4 sb|2,x1 " i aa 000145 600303 763100 lprpbb sp|195 " Rawchar aa 000146 300000 236114 ldq bb|0,x4 aa 000147 700011 756111 stq sb|9,x1 4a 000150 400064 272120 tsbbp lp|L24,* " Writech aa 000151 000006 000002 zero 6,2 aa 000152 700002 054111 aos sb|2,x1 " i L22: aa 000153 700002 236111 ldq sb|2,x1 " i aa 000154 700003 116111 cmpq sb|3,x1 aa 000155 777765 604404 tmoz L23 aa 000156 600042 235100 75 lda sp|34 " MONITOR aa 000157 700010 755111 sta sb|8,x1 aa 000160 000012 235007 lda 10,dl " '*n' aa 000161 700011 755111 sta sb|9,x1 4a 000162 400064 272120 tsbbp lp|L24,* " Writech aa 000163 000006 000002 zero 6,2 L19: aa 000164 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000165 200000 121100 sblx1 bp|0 aa 000166 700001 764111 lprplp sb|1,x1 aa 000167 200001 710100 tra bp|1 " end of return sequence " Begin text of ExecuteCommand aa 000170 000016 105170 zero 14,35448 " ExecuteCommand aa 000171 145143 165164 zero 51811,60020 aa 000172 145103 157155 zero 51779,56941 aa 000173 155141 156144 zero 55905,56420 L5: aa 000174 000000 213000 77 epaq 0 " set lp to linkage section aa 000175 700026 764161 lprplp sb|22,*au aa 000176 200000 021100 adlx1 bp|0 " BCPL save aa 000177 700000 542111 sprpbp sb|0,x1 aa 000200 700001 544111 sprplp sb|1,x1 aa 000201 701507 620111 eax0 sb|839,x1 aa 000202 777760 360003 anx0 -16,du aa 000203 700025 740100 stx0 sb|21 " end of save sequence 4a 000204 400066 272120 78 tsbbp lp|L20,* " Check_ref aa 000205 001452 000000 zero 810 aa 000206 600177 234100 79 szn sp|127 " Filesw aa 000207 000005 601004 tnz L28 aa 000210 600040 235100 lda sp|32 " OUTPUT aa 000211 701454 755111 sta sb|812,x1 4a 000212 400074 272120 tsbbp lp|L10,* " Writeout aa 000213 001452 000001 zero 810,1 L28: aa 000214 700004 371511 80 eaplb sb|4,x1 " a vector aa 000215 700003 545111 sprplb sb|3,x1 " v aa 000216 700626 371511 eaplb sb|406,x1 " a vector aa 000217 700002 545111 sprplb sb|2,x1 " w aa 000220 600261 235100 81 lda sp|177 " Nr aa 000221 600264 175100 sba sp|180 " Nrx aa 000222 700625 755111 sta sb|405,x1 " l aa 000223 700625 234111 82 szn sb|405,x1 " l aa 000224 000062 604404 tmoz L27 aa 000225 600264 235100 83 lda sp|180 " Nrx aa 000226 000001 175007 sba 1,dl " 1 aa 000227 700625 236111 ldq sb|405,x1 " l aa 000230 600303 765100 lprplb sp|195 " Rawchar aa 000231 500000 756105 stq lb|0,al aa 000232 600303 236100 84 ldq sp|195 " Rawchar aa 000233 600264 076100 adq sp|180 " Nrx aa 000234 000001 176007 sbq 1,dl " 1 aa 000235 701454 756111 stq sb|812,x1 aa 000236 700003 236111 ldq sb|3,x1 " v aa 000237 701455 756111 stq sb|813,x1 4a 000240 400062 272120 tsbbp lp|L29,* " Packstring aa 000241 001452 000002 zero 810,2 aa 000242 700003 236111 85 ldq sb|3,x1 " v aa 000243 701454 756111 stq sb|812,x1 aa 000244 700002 236111 ldq sb|2,x1 " w aa 000245 701455 756111 stq sb|813,x1 aa 000246 700625 236111 ldq sb|405,x1 " l aa 000247 701456 756111 stq sb|814,x1 4a 000250 400060 272120 tsbbp lp|L30,* " MakePl1String aa 000251 001452 000003 zero 810,3 aa 000252 700002 236111 86 ldq sb|2,x1 " w aa 000253 701454 756111 stq sb|812,x1 aa 000254 700003 236111 ldq sb|3,x1 " v aa 000255 701455 756111 stq sb|813,x1 4a 000256 400056 272120 tsbbp lp|L31,* " ITS aa 000257 001452 000002 zero 810,2 aa 000260 701447 756111 stq sb|807,x1 aa 000261 000031 237004 ldaq L32 " arglist header aa 000262 701452 757111 staq sb|810,x1 " arg count aa 000263 701447 760111 lprpap sb|807,x1 aa 000264 701454 250111 stpap sb|812,x1 aa 000265 000027 350004 eapap L33 " descriptor aa 000266 701462 250111 stpap sb|818,x1 aa 000267 700625 352111 eapbp sb|405,x1 " l aa 000270 701456 252111 stpbp sb|814,x1 aa 000271 000023 352004 eapbp L33 aa 000272 701464 252111 stpbp sb|820,x1 aa 000273 600046 351500 eapab sp|38 " Errcode aa 000274 701460 251511 stpab sb|816,x1 aa 000275 000017 351404 eapab L33 aa 000276 701466 251511 stpab sb|822,x1 aa 000277 600010 441100 sxl1 sp|8 aa 000300 600030 650100 stplp sp|24 4a 000301 400054 352120 eapbp lp|L34,* " CuCp aa 000302 701452 350111 eapap sb|810,x1 aa 000303 700036 670120 tsblp sb|30,* " Multics call operator aa 000304 600010 721100 lxl1 sp|8 aa 000305 700001 764111 lprplp sb|1,x1 L27: aa 000306 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000307 200000 121100 sblx1 bp|0 aa 000310 700001 764111 lprplp sb|1,x1 aa 000311 200001 710100 tra bp|1 " end of return sequence " Literal pool L32: aa 000312 000006 000004 zero 6,4 " arglist header aa 000313 000006 000000 zero 6 L33: aa 000314 404000 000000 zero -129024 " descriptor " Begin text of FixTab aa 000315 000006 106151 zero 6,35945 " FixTab aa 000316 170124 141142 zero 61524,49762 L3: aa 000317 000000 213000 62 epaq 0 " set lp to linkage section aa 000320 700026 764161 lprplp sb|22,*au aa 000321 200000 021100 adlx1 bp|0 " BCPL save aa 000322 700000 542111 sprpbp sb|0,x1 aa 000323 700001 544111 sprplp sb|1,x1 aa 000324 700422 620111 eax0 sb|274,x1 aa 000325 777760 360003 anx0 -16,du aa 000326 700025 740100 stx0 sb|21 " end of save sequence aa 000327 700005 450111 63 stz sb|5,x1 " p aa 000330 000001 236007 64 ldq 1,dl " 1 aa 000331 700006 756111 stq sb|6,x1 " j aa 000332 700003 236111 ldq sb|3,x1 " i aa 000333 000001 176007 sbq 1,dl " 1 aa 000334 700007 756111 stq sb|7,x1 aa 000335 000011 710004 tra L38 L39: aa 000336 700006 725111 lxl5 sb|6,x1 " j aa 000337 700002 763111 lprpbb sb|2,x1 " v aa 000340 300000 236115 ldq bb|0,x5 aa 000341 700016 756111 stq sb|14,x1 4a 000342 400052 272120 tsbbp lp|L40,* " Width aa 000343 000014 000001 zero 12,1 aa 000344 700005 056111 asq sb|5,x1 " p aa 000345 700006 054111 aos sb|6,x1 " j L38: aa 000346 700006 236111 ldq sb|6,x1 " j aa 000347 700007 116111 cmpq sb|7,x1 aa 000350 777766 604404 tmoz L39 aa 000351 700005 236111 65 ldq sb|5,x1 " p aa 000352 000012 506007 div 10,dl " 10 aa 000353 700006 755111 sta sb|6,x1 " j aa 000354 000007 710004 tra L41 L42: aa 000355 000040 235007 66 lda 32,dl " '*s' aa 000356 700003 726111 lxl6 sb|3,x1 " i aa 000357 700002 765111 lprplb sb|2,x1 " v aa 000360 500000 755116 sta lb|0,x6 aa 000361 700003 054111 67 aos sb|3,x1 " i aa 000362 700006 054111 aos sb|6,x1 " j L41: aa 000363 700006 235111 lda sb|6,x1 " j aa 000364 000011 115007 cmpa 9,dl " 9 aa 000365 777770 604404 tmoz L42 aa 000366 700003 236111 69 ldq sb|3,x1 " i aa 000367 000001 176007 sbq 1,dl " 1 L37: aa 000370 700005 756111 stq sb|5,x1 aa 000371 700005 236111 ldq sb|5,x1 aa 000372 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000373 200000 121100 sblx1 bp|0 aa 000374 700001 764111 lprplp sb|1,x1 aa 000375 200001 710100 tra bp|1 " end of return sequence " Begin text of Wait aa 000376 000004 127141 zero 4,44641 " Wait aa 000377 151164 000000 zero 53876 aa 000400 700004 756111 45 stq sb|4,x1 " temporary L1: aa 000401 000000 213000 epaq 0 " set lp to linkage section aa 000402 700026 764161 lprplp sb|22,*au aa 000403 200000 021100 adlx1 bp|0 " BCPL save aa 000404 700000 542111 sprpbp sb|0,x1 aa 000405 700001 544111 sprplp sb|1,x1 aa 000406 700650 620111 eax0 sb|424,x1 aa 000407 777760 360003 anx0 -16,du aa 000410 700025 740100 stx0 sb|21 " end of save sequence aa 000411 700004 350111 46 eapap sb|4,x1 " a vector aa 000412 700002 540111 sprpap sb|2,x1 " v aa 000413 600177 234100 47 szn sp|127 " Filesw aa 000414 000005 601004 tnz L46 aa 000415 700002 236111 ldq sb|2,x1 " v aa 000416 700630 756111 stq sb|408,x1 aa 000417 777370 272004 tsbbp L2+2 " ConsoleReadline aa 000420 000626 000001 zero 406,1 L46: L45: aa 000421 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000422 200000 121100 sblx1 bp|0 aa 000423 700001 764111 lprplp sb|1,x1 aa 000424 200001 710100 tra bp|1 " end of return sequence " Begin text of Report aa 000425 000006 122145 zero 6,42085 " Report aa 000426 160157 162164 zero 57455,58484 L48: aa 000427 000000 213000 98 epaq 0 " set lp to linkage section aa 000430 700026 764161 lprplp sb|22,*au aa 000431 200000 021100 adlx1 bp|0 " BCPL save aa 000432 700000 542111 sprpbp sb|0,x1 aa 000433 700001 544111 sprplp sb|1,x1 aa 000434 700426 620111 eax0 sb|278,x1 aa 000435 777760 360003 anx0 -16,du aa 000436 700025 740100 stx0 sb|21 " end of save sequence aa 000437 600165 234100 99 szn sp|117 " Errorstream aa 000440 000027 601004 tnz L53 aa 000441 600177 234100 100 szn sp|127 " Filesw aa 000442 000004 600004 tze L54 aa 000443 600042 236100 101 ldq sp|34 " MONITOR aa 000444 600165 756100 stq sp|117 " Errorstream aa 000445 000022 710004 tra L55 L54: 9a 000446 400010 054100 102 aos lp|8 " ErrorfileCounter 9a 000447 400010 236100 103 ldq lp|8 " ErrorfileCounter aa 000450 600170 756100 stq sp|120 " ErrorTempID aa 000451 600170 236100 104 ldq sp|120 " ErrorTempID aa 000452 700010 756111 stq sb|8,x1 aa 000453 000073 350004 eapap L56 " "error_messages" aa 000454 700011 540111 sprpap sb|9,x1 4a 000455 400050 272120 tsbbp lp|L57,* " MakeTempSeg aa 000456 000006 000002 zero 6,2 aa 000457 600164 756100 stq sp|116 " ErrorfilePointer aa 000460 000041 236007 105 ldq 33,dl aa 000461 700010 756111 stq sb|8,x1 aa 000462 600164 236100 ldq sp|116 " ErrorfilePointer aa 000463 700011 756111 stq sb|9,x1 4a 000464 400072 272120 tsbbp lp|L12,* " Open aa 000465 000006 000002 zero 6,2 aa 000466 600165 756100 stq sp|117 " Errorstream L55: L53: aa 000467 600165 236100 109 ldq sp|117 " Errorstream aa 000470 700010 756111 stq sb|8,x1 aa 000471 000046 350004 eapap L58 " "^a in line ^d of file ^a. " aa 000472 700011 540111 sprpap sb|9,x1 aa 000473 700002 236111 ldq sb|2,x1 " s aa 000474 700012 756111 stq sb|10,x1 aa 000475 600227 236100 ldq sp|151 " InputLines aa 000476 700013 756111 stq sb|11,x1 aa 000477 600226 236100 ldq sp|150 " InputFileName aa 000500 700014 756111 stq sb|12,x1 4a 000501 400046 272120 tsbbp lp|L59,* " Format aa 000502 000006 000005 zero 6,5 aa 000503 000001 236007 110 ldq 1,dl " 1 aa 000504 700003 756111 stq sb|3,x1 " i aa 000505 600261 236100 ldq sp|177 " Nr aa 000506 000001 176007 sbq 1,dl " 1 aa 000507 700004 756111 stq sb|4,x1 aa 000510 000012 710004 tra L60 L61: aa 000511 600165 236100 ldq sp|117 " Errorstream aa 000512 700010 756111 stq sb|8,x1 aa 000513 700003 722111 lxl2 sb|3,x1 " i aa 000514 600303 760100 lprpap sp|195 " Rawchar aa 000515 000000 236112 ldq ap|0,x2 aa 000516 700011 756111 stq sb|9,x1 4a 000517 400064 272120 tsbbp lp|L24,* " Writech aa 000520 000006 000002 zero 6,2 aa 000521 700003 054111 aos sb|3,x1 " i L60: aa 000522 700003 236111 ldq sb|3,x1 " i aa 000523 700004 116111 cmpq sb|4,x1 aa 000524 777765 604404 tmoz L61 aa 000525 600165 235100 111 lda sp|117 " Errorstream aa 000526 700010 755111 sta sb|8,x1 aa 000527 000012 235007 lda 10,dl " '*n' aa 000530 700011 755111 sta sb|9,x1 4a 000531 400064 272120 tsbbp lp|L24,* " Writech aa 000532 000006 000002 zero 6,2 L52: aa 000533 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000534 200000 121100 sblx1 bp|0 aa 000535 700001 764111 lprplp sb|1,x1 aa 000536 200001 710100 tra bp|1 " end of return sequence " Literal pool L58: aa 000537 000032 136141 zero 26,48225 " "^a in line ^d of file ^a. " aa 000540 040151 156040 zero 16489,56352 aa 000541 154151 156145 zero 55401,56421 aa 000542 040136 144040 zero 16478,51232 aa 000543 157146 040146 zero 56934,16486 aa 000544 151154 145040 zero 53868,51744 aa 000545 136141 056040 zero 48225,23584 L56: aa 000546 000016 145162 zero 14,51826 " "error_messages" aa 000547 162157 162137 zero 58479,58463 aa 000550 155145 163163 zero 55909,58995 aa 000551 141147 145163 zero 49767,51827 " Begin text of StoreString aa 000552 000013 123164 zero 11,42612 " StoreString aa 000553 157162 145123 zero 56946,51795 aa 000554 164162 151156 zero 59506,53870 aa 000555 147000 000000 zero 52736 L49: aa 000556 000000 213000 114 epaq 0 " set lp to linkage section aa 000557 700026 764161 lprplp sb|22,*au aa 000560 200000 021100 adlx1 bp|0 " BCPL save aa 000561 700000 542111 sprpbp sb|0,x1 aa 000562 700001 544111 sprplp sb|1,x1 aa 000563 700423 620111 eax0 sb|275,x1 aa 000564 777760 360003 anx0 -16,du aa 000565 700025 740100 stx0 sb|21 " end of save sequence aa 000566 700002 235111 115 lda sb|2,x1 " S aa 000567 700012 755111 sta sb|10,x1 4a 000570 400044 272120 tsbbp lp|L65,* " LengthInWords aa 000571 000010 000001 zero 8,1 aa 000572 000001 176007 sbq 1,dl " 1 aa 000573 700005 756111 stq sb|5,x1 aa 000574 700005 236111 ldq sb|5,x1 aa 000575 700012 756111 stq sb|10,x1 4a 000576 400042 272120 tsbbp lp|L66,* " Newvec aa 000577 000010 000001 zero 8,1 aa 000600 700004 756111 stq sb|4,x1 " P aa 000601 700002 236111 116 ldq sb|2,x1 " S aa 000602 700012 756111 stq sb|10,x1 aa 000603 700004 236111 ldq sb|4,x1 " P aa 000604 700013 756111 stq sb|11,x1 4a 000605 400040 272120 tsbbp lp|L67,* " CopyString aa 000606 000010 000002 zero 8,2 aa 000607 700004 236111 117 ldq sb|4,x1 " P L64: aa 000610 700004 756111 stq sb|4,x1 aa 000611 700004 236111 ldq sb|4,x1 aa 000612 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000613 200000 121100 sblx1 bp|0 aa 000614 700001 764111 lprplp sb|1,x1 aa 000615 200001 710100 tra bp|1 " end of return sequence " Begin text of SetCharsw aa 000616 000011 123145 zero 9,42597 " SetCharsw aa 000617 164103 150141 zero 59459,53345 aa 000620 162163 167000 zero 58483,60928 aa 000621 700003 756111 89 stq sb|3,x1 " temporary L47: aa 000622 000000 213000 epaq 0 " set lp to linkage section aa 000623 700026 764161 lprplp sb|22,*au aa 000624 200000 021100 adlx1 bp|0 " BCPL save aa 000625 700000 542111 sprpbp sb|0,x1 aa 000626 700001 544111 sprplp sb|1,x1 aa 000627 700425 620111 eax0 sb|277,x1 aa 000630 777760 360003 anx0 -16,du aa 000631 700025 740100 stx0 sb|21 " end of save sequence aa 000632 700002 234111 90 szn sb|2,x1 " New aa 000633 000037 600004 tze L71 aa 000634 600152 234100 szn sp|106 " ChStream aa 000635 000035 601004 tnz L71 aa 000636 700004 351511 91 eapab sb|4,x1 " a vector aa 000637 700003 541111 sprpab sb|3,x1 " v aa 000640 700003 236111 92 ldq sb|3,x1 " v aa 000641 700036 756111 stq sb|30,x1 aa 000642 000040 236007 ldq 32,dl " 32 aa 000643 700037 756111 stq sb|31,x1 aa 000644 600176 236100 ldq sp|126 " FileName aa 000645 700040 756111 stq sb|32,x1 aa 000646 000032 351404 eapab L72 " ".chars" aa 000647 700041 541111 sprpab sb|33,x1 4a 000650 400036 272120 tsbbp lp|L73,* " Concatenate aa 000651 000034 000004 zero 28,4 aa 000652 700031 756111 stq sb|25,x1 aa 000653 000045 236007 ldq 37,dl aa 000654 700036 756111 stq sb|30,x1 aa 000655 700031 236111 ldq sb|25,x1 aa 000656 700037 756111 stq sb|31,x1 4a 000657 400072 272120 tsbbp lp|L12,* " Open aa 000660 000034 000002 zero 28,2 aa 000661 600152 756100 stq sp|106 " ChStream aa 000662 600046 234100 93 szn sp|38 " Errcode aa 000663 000005 600004 tze L74 aa 000664 700003 236111 ldq sb|3,x1 " v aa 000665 700036 756111 stq sb|30,x1 4a 000666 400034 272120 tsbbp lp|L75,* " Complain aa 000667 000034 000001 zero 28,1 L74: 4a 000670 400032 272120 94 tsbbp lp|L76,* " WrChInit aa 000671 000034 000000 zero 28 L71: aa 000672 700002 236111 96 ldq sb|2,x1 " New aa 000673 600151 756100 stq sp|105 " Charsw L70: aa 000674 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000675 200000 121100 sblx1 bp|0 aa 000676 700001 764111 lprplp sb|1,x1 aa 000677 200001 710100 tra bp|1 " end of return sequence " Literal pool L72: aa 000700 000006 056143 zero 6,23651 " ".chars" aa 000701 150141 162163 zero 53345,58483 " Begin text of Nx_open aa 000702 000007 116170 zero 7,40056 " Nx_open aa 000703 137157 160145 zero 48751,57445 aa 000704 156000 000000 zero 56320 L77: aa 000705 000000 213000 124 epaq 0 " set lp to linkage section aa 000706 700026 764161 lprplp sb|22,*au aa 000707 200000 021100 adlx1 bp|0 " BCPL save aa 000710 700000 542111 sprpbp sb|0,x1 aa 000711 700001 544111 sprplp sb|1,x1 aa 000712 700423 620111 eax0 sb|275,x1 aa 000713 777760 360003 anx0 -16,du aa 000714 700025 740100 stx0 sb|21 " end of save sequence aa 000715 600247 236100 125 ldq sp|167 " NestingDepth aa 000716 000132 116007 cmpq 90,dl " MaxDepth aa 000717 000006 604004 tmi L84 aa 000720 000063 351404 126 eapab L86 " "Input files nested too deeply" aa 000721 700010 541111 sprpab sb|8,x1 aa 000722 777507 272004 tsbbp L48+2 " Report aa 000723 000006 000001 zero 6,1 aa 000724 000044 710004 tra L85 L84: aa 000725 600041 235100 127 lda sp|33 " INPUT aa 000726 600247 723100 lxl3 sp|167 " NestingDepth aa 000727 600230 761100 lprpab sp|152 " InputStack aa 000730 100000 755113 sta ab|0,x3 aa 000731 600247 235100 128 lda sp|167 " NestingDepth aa 000732 000001 075007 ada 1,dl " 1 aa 000733 600227 236100 ldq sp|151 " InputLines aa 000734 600230 762100 lprpbp sp|152 " InputStack aa 000735 200000 756105 stq bp|0,al aa 000736 600247 236100 129 ldq sp|167 " NestingDepth aa 000737 000002 076007 adq 2,dl " 2 aa 000740 600226 235100 lda sp|150 " InputFileName aa 000741 600230 763100 lprpbb sp|152 " InputStack aa 000742 300000 755106 sta bb|0,ql aa 000743 000003 236007 130 ldq 3,dl " 3 aa 000744 600247 056100 asq sp|167 " NestingDepth aa 000745 700002 236111 131 ldq sb|2,x1 " Name aa 000746 700010 756111 stq sb|8,x1 aa 000747 600041 236100 ldq sp|33 " INPUT aa 000750 700011 756111 stq sb|9,x1 4a 000751 400030 272120 tsbbp lp|L87,* " FindInput aa 000752 000006 000002 zero 6,2 aa 000753 600041 756100 stq sp|33 " INPUT aa 000754 600046 234100 132 szn sp|38 " Errcode aa 000755 000005 600004 tze L88 aa 000756 000016 371404 eaplb L89 " "Unable to open input file" aa 000757 700010 545111 sprplb sb|8,x1 aa 000760 777451 272004 tsbbp L48+2 " Report aa 000761 000006 000001 zero 6,1 L88: aa 000762 600227 450100 133 stz sp|151 " InputLines aa 000763 700002 236111 134 ldq sb|2,x1 " Name aa 000764 700010 756111 stq sb|8,x1 aa 000765 777573 272004 tsbbp L49+2 " StoreString aa 000766 000006 000001 zero 6,1 aa 000767 600226 756100 stq sp|150 " InputFileName L85: L83: aa 000770 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000771 200000 121100 sblx1 bp|0 aa 000772 700001 764111 lprplp sb|1,x1 aa 000773 200001 710100 tra bp|1 " end of return sequence " Literal pool L89: aa 000774 000031 125156 zero 25,43630 " "Unable to open input file" aa 000775 141142 154145 zero 49762,55397 aa 000776 040164 157040 zero 16500,56864 aa 000777 157160 145156 zero 56944,51822 aa 001000 040151 156160 zero 16489,56432 aa 001001 165164 040146 zero 60020,16486 aa 001002 151154 145000 zero 53868,51712 L86: aa 001003 000035 111156 zero 29,37486 " "Input files nested too deeply" aa 001004 160165 164040 zero 57461,59424 aa 001005 146151 154145 zero 52329,55397 aa 001006 163040 156145 zero 58912,56421 aa 001007 163164 145144 zero 58996,51812 aa 001010 040164 157157 zero 16500,56943 aa 001011 040144 145145 zero 16484,51813 aa 001012 160154 171000 zero 57452,61952 " Begin text of Nx_close aa 001013 000010 116170 zero 8,40056 " Nx_close aa 001014 137143 154157 zero 48739,55407 aa 001015 163145 000000 zero 58981 L78: aa 001016 000000 213000 142 epaq 0 " set lp to linkage section aa 001017 700026 764161 lprplp sb|22,*au aa 001020 200000 021100 adlx1 bp|0 " BCPL save aa 001021 700000 542111 sprpbp sb|0,x1 aa 001022 700001 544111 sprplp sb|1,x1 aa 001023 700423 620111 eax0 sb|275,x1 aa 001024 777760 360003 anx0 -16,du aa 001025 700025 740100 stx0 sb|21 " end of save sequence aa 001026 600231 236100 143 ldq sp|153 " JumpLine aa 001027 000067 116004 cmpq L94 aa 001030 000022 600004 tze L93 aa 001031 000073 272004 144 tsbbp L79+2 " Nx_reset aa 001032 000004 000000 zero 4 aa 001033 600231 235100 145 lda sp|153 " JumpLine aa 001034 000001 175007 sba 1,dl " 1 aa 001035 700002 755111 sta sb|2,x1 " J aa 001036 000001 335007 146 lca 1,dl aa 001037 600231 755100 sta sp|153 " JumpLine aa 001040 000004 710004 147 tra L95 L96: aa 001041 600261 450100 148 stz sp|177 " Nr aa 001042 000107 272004 149 tsbbp L80+2 " Readline aa 001043 000004 000000 zero 4 L95: aa 001044 600227 235100 lda sp|151 " InputLines aa 001045 700002 115111 cmpa sb|2,x1 " J aa 001046 777773 604004 tmi L96 aa 001047 600261 450100 151 stz sp|177 " Nr aa 001050 600044 450100 stz sp|36 " Ch aa 001051 000041 710004 152 tra L92 L93: aa 001052 600247 234100 154 szn sp|167 " NestingDepth aa 001053 000007 605404 tpnz L97 aa 001054 600500 236100 ldq sp|320 " EndL aa 001055 700006 756111 stq sb|6,x1 aa 001056 600501 236100 ldq sp|321 " EndP aa 001057 700007 756111 stq sb|7,x1 4a 001060 400026 272120 tsbbp lp|L98,* " Longjump aa 001061 000004 000002 zero 4,2 L97: aa 001062 600041 236100 155 ldq sp|33 " INPUT aa 001063 700006 756111 stq sb|6,x1 4a 001064 400024 272120 tsbbp lp|L99,* " Close aa 001065 000004 000001 zero 4,1 aa 001066 600226 236100 156 ldq sp|150 " InputFileName aa 001067 700006 756111 stq sb|6,x1 4a 001070 400022 272120 tsbbp lp|L100,* " Freevec aa 001071 000004 000001 zero 4,1 aa 001072 000003 336007 157 lcq 3,dl " 3 aa 001073 600247 056100 asq sp|167 " NestingDepth aa 001074 600247 724100 158 lxl4 sp|167 " NestingDepth aa 001075 600230 765100 lprplb sp|152 " InputStack aa 001076 500000 236114 ldq lb|0,x4 aa 001077 600041 756100 stq sp|33 " INPUT aa 001100 600247 236100 159 ldq sp|167 " NestingDepth aa 001101 000001 076007 adq 1,dl " 1 aa 001102 600230 760100 lprpap sp|152 " InputStack aa 001103 000000 235106 lda ap|0,ql aa 001104 600227 755100 sta sp|151 " InputLines aa 001105 600247 236100 160 ldq sp|167 " NestingDepth aa 001106 000002 076007 adq 2,dl " 2 aa 001107 600230 761100 lprpab sp|152 " InputStack aa 001110 100000 235106 lda ab|0,ql aa 001111 600226 755100 sta sp|150 " InputFileName L92: aa 001112 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001113 200000 121100 sblx1 bp|0 aa 001114 700001 764111 lprplp sb|1,x1 aa 001115 200001 710100 tra bp|1 " end of return sequence " Literal pool L94: aa 001116 777777 777777 zero -1,-1 " Begin text of Nx_reset aa 001117 000010 116170 zero 8,40056 " Nx_reset aa 001120 137162 145163 zero 48754,51827 aa 001121 145164 000000 zero 51828 L79: aa 001122 000000 213000 166 epaq 0 " set lp to linkage section aa 001123 700026 764161 lprplp sb|22,*au aa 001124 200000 021100 adlx1 bp|0 " BCPL save aa 001125 700000 542111 sprpbp sb|0,x1 aa 001126 700001 544111 sprplp sb|1,x1 aa 001127 700423 620111 eax0 sb|275,x1 aa 001130 777760 360003 anx0 -16,du aa 001131 700025 740100 stx0 sb|21 " end of save sequence aa 001132 600041 236100 167 ldq sp|33 " INPUT aa 001133 700004 756111 stq sb|4,x1 aa 001134 700005 450111 stz sb|5,x1 4a 001135 400020 272120 tsbbp lp|L104,* " ResetStream aa 001136 000002 000002 zero 2,2 aa 001137 600227 450100 168 stz sp|151 " InputLines L103: aa 001140 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001141 200000 121100 sblx1 bp|0 aa 001142 700001 764111 lprplp sb|1,x1 aa 001143 200001 710100 tra bp|1 " end of return sequence " Begin text of Readline aa 001144 000010 122145 zero 8,42085 " Readline aa 001145 141144 154151 zero 49764,55401 aa 001146 156145 000000 zero 56421 L80: aa 001147 000000 213000 171 epaq 0 " set lp to linkage section aa 001150 700026 764161 lprplp sb|22,*au aa 001151 200000 021100 adlx1 bp|0 " BCPL save aa 001152 700000 542111 sprpbp sb|0,x1 aa 001153 700001 544111 sprplp sb|1,x1 aa 001154 700423 620111 eax0 sb|275,x1 aa 001155 777760 360003 anx0 -16,du aa 001156 700025 740100 stx0 sb|21 " end of save sequence L108: aa 001157 600041 236100 172 ldq sp|33 " INPUT aa 001160 700006 756111 stq sb|6,x1 aa 001161 600044 352100 eapbp sp|36 " Ch aa 001162 700007 542111 sprpbp sb|7,x1 4a 001163 400070 272120 tsbbp lp|L15,* " Readch aa 001164 000004 000002 zero 4,2 aa 001165 600044 236100 173 ldq sp|36 " Ch aa 001166 007777 116007 cmpq 4095,dl " Endofstreamch aa 001167 000004 601004 tnz L109 aa 001170 777630 272004 174 tsbbp L78+2 " Nx_close aa 001171 000004 000000 zero 4 aa 001172 000024 710004 175 tra L110 L109: aa 001173 600261 235100 177 lda sp|177 " Nr aa 001174 000620 115007 cmpa 400,dl " Maxline aa 001175 000002 605004 tpl L111 aa 001176 600261 054100 aos sp|177 " Nr L111: aa 001177 600044 236100 178 ldq sp|36 " Ch aa 001200 000177 376007 anq 127,dl " $8177 aa 001201 600261 725100 lxl5 sp|177 " Nr aa 001202 600303 762100 lprpbp sp|195 " Rawchar aa 001203 200000 756115 stq bp|0,x5 aa 001204 600044 236100 179 ldq sp|36 " Ch aa 001205 000011 116007 cmpq 9,dl " '*t' aa 001206 000010 601004 tnz L112 aa 001207 600303 235100 lda sp|195 " Rawchar aa 001210 700006 755111 sta sb|6,x1 aa 001211 600261 235100 lda sp|177 " Nr aa 001212 700007 755111 sta sb|7,x1 aa 001213 777106 272004 tsbbp L3+2 " FixTab aa 001214 000004 000002 zero 4,2 aa 001215 600261 756100 stq sp|177 " Nr L112: L110: aa 001216 600044 236100 ldq sp|36 " Ch aa 001217 000012 116007 cmpq 10,dl " '*n' aa 001220 777737 601004 tnz L108 aa 001221 600227 054100 181 aos sp|151 " InputLines aa 001222 000040 235007 182 lda 32,dl " '*s' aa 001223 600261 726100 lxl6 sp|177 " Nr aa 001224 600303 763100 lprpbb sp|195 " Rawchar aa 001225 300000 755116 sta bb|0,x6 aa 001226 000003 710004 183 tra L113 L114: aa 001227 000001 335007 lca 1,dl " 1 aa 001230 600261 055100 asa sp|177 " Nr L113: aa 001231 600261 722100 lxl2 sp|177 " Nr aa 001232 600303 765100 lprplb sp|195 " Rawchar aa 001233 500000 235112 lda lb|0,x2 aa 001234 000040 115007 cmpa 32,dl " '*s' aa 001235 777772 600004 tze L114 L107: aa 001236 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001237 200000 121100 sblx1 bp|0 aa 001240 700001 764111 lprplp sb|1,x1 aa 001241 200001 710100 tra bp|1 " end of return sequence " Begin text of RoffProcess aa 001242 000013 122157 zero 11,42095 " RoffProcess aa 001243 146146 120162 zero 52326,41074 aa 001244 157143 145163 zero 56931,51827 aa 001245 163000 000000 zero 58880 L115: aa 001246 000000 213000 186 epaq 0 " set lp to linkage section aa 001247 700026 764161 lprplp sb|22,*au aa 001250 200000 021100 adlx1 bp|0 " BCPL save aa 001251 700000 542111 sprpbp sb|0,x1 aa 001252 700001 544111 sprplp sb|1,x1 aa 001253 700421 620111 eax0 sb|273,x1 aa 001254 777760 360003 anx0 -16,du aa 001255 700025 740100 stx0 sb|21 " end of save sequence aa 001256 700002 236111 187 ldq sb|2,x1 " Stream aa 001257 600041 756100 stq sp|33 " INPUT aa 001260 600227 450100 188 stz sp|151 " InputLines aa 001261 600176 236100 189 ldq sp|126 " FileName aa 001262 600226 756100 stq sp|150 " InputFileName aa 001263 600247 450100 190 stz sp|167 " NestingDepth aa 001264 000037 350004 191 eapap L116 " End aa 001265 600500 540100 sprpap sp|320 " EndL 4a 001266 400016 272120 tsbbp lp|L121,* " Level aa 001267 000004 000000 zero 4 aa 001270 600501 756100 stq sp|321 " EndP L122: aa 001271 777660 272004 193 tsbbp L80+2 " Readline aa 001272 000004 000000 zero 4 L117: aa 001273 600233 234100 195 szn sp|155 " LIno aa 001274 000017 601004 tnz L123 aa 001275 600303 760100 196 lprpap sp|195 " Rawchar aa 001276 000001 236100 ldq ap|1 aa 001277 000056 116007 cmpq 46,dl " '.' aa 001300 000010 601004 tnz L125 4a 001301 400014 272120 197 tsbbp lp|L127,* " Control aa 001302 000004 000000 zero 4 aa 001303 600145 234100 198 szn sp|101 " Again aa 001304 000003 600004 tze L128 aa 001305 600145 450100 199 stz sp|101 " Again aa 001306 777765 710004 200 tra L117 L128: aa 001307 000003 710004 tra L126 L125: 4a 001310 400012 272120 203 tsbbp lp|L129,* " Text aa 001311 000004 000000 zero 4 L126: aa 001312 000007 710004 tra L124 L123: 4a 001313 400012 272120 204 tsbbp lp|L129,* " Text aa 001314 000004 000000 zero 4 aa 001315 600254 234100 205 szn sp|172 " NoControl aa 001316 000003 601004 tnz L130 aa 001317 000001 335007 lca 1,dl " 1 aa 001320 600233 055100 asa sp|155 " LIno L130: L124: aa 001321 600261 450100 207 stz sp|177 " Nr aa 001322 777747 710004 210 tra L122 L116: aa 001323 777601 272004 tsbbp L79+2 " Nx_reset aa 001324 000004 000000 zero 4 L120: aa 001325 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001326 200000 121100 sblx1 bp|0 aa 001327 700001 764111 lprplp sb|1,x1 aa 001330 200001 710100 tra bp|1 " end of return sequence aa 001331 000000 000000 " padding " Definition section part one - external entry points 5a 000000 000054 000000 " pointer to first definition aa 000001 000000 600000 " flags: new format, ignore header aa 000002 000000 000000 " list terminator aa 000003 012162 165156 " "runoff_mr0" aa 000004 157146 146137 aa 000005 155162 060000 aa 000006 013122 157146 " "RoffProcess" aa 000007 146120 162157 aa 000010 143145 163163 aa 000011 010122 145141 " "Readline" aa 000012 144154 151156 aa 000013 145000 000000 aa 000014 010116 170137 " "Nx_reset" aa 000015 162145 163145 aa 000016 164000 000000 aa 000017 010116 170137 " "Nx_close" aa 000020 143154 157163 aa 000021 145000 000000 aa 000022 007116 170137 " "Nx_open" aa 000023 157160 145156 aa 000024 013123 164157 " "StoreString" aa 000025 162145 123164 aa 000026 162151 156147 aa 000027 006122 145160 " "Report" aa 000030 157162 164000 aa 000031 011123 145164 " "SetCharsw" aa 000032 103150 141162 aa 000033 163167 000000 aa 000034 016105 170145 " "ExecuteCommand" aa 000035 143165 164145 aa 000036 103157 155155 aa 000037 141156 144000 aa 000040 007124 171160 " "Typeout" aa 000041 145157 165164 aa 000042 017103 157156 " "ConsoleReadline" aa 000043 163157 154145 aa 000044 122145 141144 aa 000045 154151 156145 aa 000046 004127 141151 " "Wait" aa 000047 164000 000000 aa 000050 014163 171155 " "symbol_table" aa 000051 142157 154137 aa 000052 164141 142154 aa 000053 145000 000000 " Segname definition for runoff_mr0 55 000054 000057 000002 " forward, backward threads 5a 000055 000002 400003 " value defined, class flags 55 000056 000003 000057 " name pointer, first entry def " Definition for RoffProcess 55 000057 000062 000054 " forward, backward threads 0a 000060 001246 500000 " value defined, class flags 55 000061 000006 000054 " name pointer, segname def pointer " Definition for Readline 55 000062 000065 000057 " forward, backward threads 0a 000063 001147 500000 " value defined, class flags 55 000064 000011 000054 " name pointer, segname def pointer " Definition for Nx_reset 55 000065 000070 000062 " forward, backward threads 0a 000066 001122 500000 " value defined, class flags 55 000067 000014 000054 " name pointer, segname def pointer " Definition for Nx_close 55 000070 000073 000065 " forward, backward threads 0a 000071 001016 500000 " value defined, class flags 55 000072 000017 000054 " name pointer, segname def pointer " Definition for Nx_open 55 000073 000076 000070 " forward, backward threads 0a 000074 000705 500000 " value defined, class flags 55 000075 000022 000054 " name pointer, segname def pointer " Definition for StoreString 55 000076 000101 000073 " forward, backward threads 0a 000077 000556 500000 " value defined, class flags 55 000100 000024 000054 " name pointer, segname def pointer " Definition for Report 55 000101 000104 000076 " forward, backward threads 0a 000102 000427 500000 " value defined, class flags 55 000103 000027 000054 " name pointer, segname def pointer " Definition for SetCharsw 55 000104 000107 000101 " forward, backward threads 0a 000105 000622 500000 " value defined, class flags 55 000106 000031 000054 " name pointer, segname def pointer " Definition for ExecuteCommand 55 000107 000112 000104 " forward, backward threads 0a 000110 000174 500000 " value defined, class flags 55 000111 000034 000054 " name pointer, segname def pointer " Definition for Typeout 55 000112 000115 000107 " forward, backward threads 0a 000113 000114 500000 " value defined, class flags 55 000114 000040 000054 " name pointer, segname def pointer " Definition for ConsoleReadline 55 000115 000120 000112 " forward, backward threads 0a 000116 000005 500000 " value defined, class flags 55 000117 000042 000054 " name pointer, segname def pointer " Definition for Wait 55 000120 000123 000115 " forward, backward threads 0a 000121 000401 500000 " value defined, class flags 55 000122 000046 000054 " name pointer, segname def pointer " Definition for symbol_table 55 000123 000002 000120 " forward, backward threads 6a 000124 000000 400002 " value defined, class flags 55 000125 000050 000054 " name pointer, segname def pointer " Definition section part two - symbolic info for external references aa 000126 012162 165156 " "runoff_mr3" aa 000127 157146 146137 aa 000130 155162 063000 aa 000131 004124 145170 " "Text" aa 000132 164000 000000 5a 000133 000134 000000 aa 000134 000004 000000 55 000135 000126 000131 aa 000136 012162 165156 " "runoff_mr2" aa 000137 157146 146137 aa 000140 155162 062000 aa 000141 007103 157156 " "Control" aa 000142 164162 157154 5a 000143 000144 000000 aa 000144 000004 000000 55 000145 000136 000141 aa 000146 022142 143160 " "bcpl_machine_code_" aa 000147 154137 155141 aa 000150 143150 151156 aa 000151 145137 143157 aa 000152 144145 137000 aa 000153 005114 145166 " "Level" aa 000154 145154 000000 5a 000155 000156 000000 aa 000156 000004 000000 55 000157 000146 000153 aa 000160 017142 143160 " "bcpl_stream_io_" aa 000161 154137 163164 aa 000162 162145 141155 aa 000163 137151 157137 aa 000164 013122 145163 " "ResetStream" aa 000165 145164 123164 aa 000166 162145 141155 5a 000167 000170 000000 aa 000170 000004 000000 55 000171 000160 000164 aa 000172 021142 143160 " "bcpl_filesys_lib_" aa 000173 154137 146151 aa 000174 154145 163171 aa 000175 163137 154151 aa 000176 142137 000000 aa 000177 007106 162145 " "Freevec" aa 000200 145166 145143 5a 000201 000202 000000 aa 000202 000004 000000 55 000203 000172 000177 aa 000204 005103 154157 " "Close" aa 000205 163145 000000 5a 000206 000207 000000 aa 000207 000004 000000 55 000210 000160 000204 aa 000211 010114 157156 " "Longjump" aa 000212 147152 165155 aa 000213 160000 000000 5a 000214 000215 000000 aa 000215 000004 000000 55 000216 000146 000211 aa 000217 015162 165156 " "runoff_driver" aa 000220 157146 146137 aa 000221 144162 151166 aa 000222 145162 000000 aa 000223 011106 151156 " "FindInput" aa 000224 144111 156160 aa 000225 165164 000000 5a 000226 000227 000000 aa 000227 000004 000000 55 000230 000217 000223 aa 000231 012162 165156 " "runoff_mr7" aa 000232 157146 146137 aa 000233 155162 067000 aa 000234 010127 162103 " "WrChInit" aa 000235 150111 156151 aa 000236 164000 000000 5a 000237 000240 000000 aa 000240 000004 000000 55 000241 000231 000234 aa 000242 021142 143160 " "bcpl_command_lib_" aa 000243 154137 143157 aa 000244 155155 141156 aa 000245 144137 154151 aa 000246 142137 000000 aa 000247 010103 157155 " "Complain" aa 000250 160154 141151 aa 000251 156000 000000 5a 000252 000253 000000 aa 000253 000004 000000 55 000254 000242 000247 aa 000255 015142 143160 " "bcpl_strings_" aa 000256 154137 163164 aa 000257 162151 156147 aa 000260 163137 000000 aa 000261 013103 157156 " "Concatenate" aa 000262 143141 164145 aa 000263 156141 164145 5a 000264 000265 000000 aa 000265 000004 000000 55 000266 000255 000261 aa 000267 012103 157160 " "CopyString" aa 000270 171123 164162 aa 000271 151156 147000 5a 000272 000273 000000 aa 000273 000004 000000 55 000274 000255 000267 aa 000275 006116 145167 " "Newvec" aa 000276 166145 143000 5a 000277 000300 000000 aa 000300 000004 000000 55 000301 000172 000275 aa 000302 015114 145156 " "LengthInWords" aa 000303 147164 150111 aa 000304 156127 157162 aa 000305 144163 000000 5a 000306 000307 000000 aa 000307 000004 000000 55 000310 000255 000302 aa 000311 006106 157162 " "Format" aa 000312 155141 164000 5a 000313 000314 000000 aa 000314 000004 000000 55 000315 000160 000311 aa 000316 013115 141153 " "MakeTempSeg" aa 000317 145124 145155 aa 000320 160123 145147 5a 000321 000322 000000 aa 000322 000004 000000 55 000323 000172 000316 aa 000324 005127 151144 " "Width" aa 000325 164150 000000 5a 000326 000327 000000 aa 000327 000004 000000 55 000330 000126 000324 aa 000331 003143 165137 " "cu_" aa 000332 002143 160000 " "cp" 5a 000333 000334 000000 aa 000334 000004 000000 55 000335 000331 000332 aa 000336 003111 124123 " "ITS" 5a 000337 000340 000000 aa 000340 000004 000000 55 000341 000146 000336 aa 000342 015115 141153 " "MakePl1String" aa 000343 145120 154061 aa 000344 123164 162151 aa 000345 156147 000000 5a 000346 000347 000000 aa 000347 000004 000000 55 000350 000255 000342 aa 000351 012120 141143 " "Packstring" aa 000352 153163 164162 aa 000353 151156 147000 5a 000354 000355 000000 aa 000355 000004 000000 55 000356 000146 000351 aa 000357 007127 162151 " "Writech" aa 000360 164145 143150 5a 000361 000362 000000 aa 000362 000004 000000 55 000363 000146 000357 aa 000364 012162 165156 " "runoff_mr9" aa 000365 157146 146137 aa 000366 155162 071000 aa 000367 011103 150145 " "Check_ref" aa 000370 143153 137162 aa 000371 145146 000000 5a 000372 000373 000000 aa 000373 000004 000000 55 000374 000364 000367 aa 000375 006122 145141 " "Readch" aa 000376 144143 150000 5a 000377 000400 000000 aa 000400 000004 000000 55 000401 000146 000375 aa 000402 004117 160145 " "Open" aa 000403 156000 000000 5a 000404 000405 000000 aa 000405 000004 000000 55 000406 000160 000402 aa 000407 010127 162151 " "Writeout" aa 000410 164145 157165 aa 000411 164000 000000 5a 000412 000413 000000 aa 000413 000004 000000 55 000414 000160 000407 aa 000415 000000 000000 " padding " Linkage section - static variables and external links aa 000000 000000 000000 " linkage header 0a 000001 001332 000000 " address of defs aa 000002 000000 000000 aa 000003 000000 000000 aa 000004 000000 000000 aa 000005 000000 000000 2a 000006 000012 000076 " offset to links, total length aa 000007 000000 000076 " obsolete length " Static variables aa 000010 000000 000000 zero 0 " ErrorfileCounter aa 000011 000000 000000 " External link pairs L129: 3a 000012 777766 000046 " "runoff_mr3$Text" 5a 000013 000133 000000 L127: 3a 000014 777764 000046 " "runoff_mr2$Control" 5a 000015 000143 000000 L121: 3a 000016 777762 000046 " "bcpl_machine_code_$Level" 5a 000017 000155 000000 L104: 3a 000020 777760 000046 " "bcpl_stream_io_$ResetStream" 5a 000021 000167 000000 L100: 3a 000022 777756 000046 " "bcpl_filesys_lib_$Freevec" 5a 000023 000201 000000 L99: 3a 000024 777754 000046 " "bcpl_stream_io_$Close" 5a 000025 000206 000000 L98: 3a 000026 777752 000046 " "bcpl_machine_code_$Longjump" 5a 000027 000214 000000 L87: 3a 000030 777750 000046 " "runoff_driver$FindInput" 5a 000031 000226 000000 L76: 3a 000032 777746 000046 " "runoff_mr7$WrChInit" 5a 000033 000237 000000 L75: 3a 000034 777744 000046 " "bcpl_command_lib_$Complain" 5a 000035 000252 000000 L73: 3a 000036 777742 000046 " "bcpl_strings_$Concatenate" 5a 000037 000264 000000 L67: 3a 000040 777740 000046 " "bcpl_strings_$CopyString" 5a 000041 000272 000000 L66: 3a 000042 777736 000046 " "bcpl_filesys_lib_$Newvec" 5a 000043 000277 000000 L65: 3a 000044 777734 000046 " "bcpl_strings_$LengthInWords" 5a 000045 000306 000000 L59: 3a 000046 777732 000046 " "bcpl_stream_io_$Format" 5a 000047 000313 000000 L57: 3a 000050 777730 000046 " "bcpl_filesys_lib_$MakeTempSeg" 5a 000051 000321 000000 L40: 3a 000052 777726 000046 " "runoff_mr3$Width" 5a 000053 000326 000000 L34: 3a 000054 777724 000046 " "cu_$cp" 5a 000055 000333 000000 L31: 3a 000056 777722 000046 " "bcpl_machine_code_$ITS" 5a 000057 000337 000000 L30: 3a 000060 777720 000046 " "bcpl_strings_$MakePl1String" 5a 000061 000346 000000 L29: 3a 000062 777716 000046 " "bcpl_machine_code_$Packstring" 5a 000063 000354 000000 L24: 3a 000064 777714 000046 " "bcpl_machine_code_$Writech" 5a 000065 000361 000000 L20: 3a 000066 777712 000046 " "runoff_mr9$Check_ref" 5a 000067 000372 000000 L15: 3a 000070 777710 000046 " "bcpl_machine_code_$Readch" 5a 000071 000377 000000 L12: 3a 000072 777706 000046 " "bcpl_stream_io_$Open" 5a 000073 000404 000000 L10: 3a 000074 777704 000046 " "bcpl_stream_io_$Writeout" 5a 000075 000412 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 441653 315607 " 01/24/75 0703.7 mst Fri aa 000010 142143 160154 " "bcpl " aa 000011 040040 040040 aa 000012 000042 000035 " compiler version name - pointer, length aa 000013 000052 000024 " user id - pointer, length aa 000014 000057 000043 " comment string - pointer, length aa 000015 000002 000002 " text and linkage boundaries aa 000016 000024 000000 " source map, symbol tree root 7a 000017 000000 000123 " section header pointer, block size aa 000020 000000 000123 " next block pointer, rel_text aa 000021 000000 000151 " rel_def, rel_link aa 000022 000165 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 000051 " runoff_mr0 aa 000027 023333 611446 " 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_mr0.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 137155 162060 aa 000101 056142 143160 aa 000102 154040 040040 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 001261 " length in bits aa 000125 740425 000024 aa 000126 740275 170303 aa 000127 200005 170067 aa 000130 236011 647404 aa 000131 350000 247405 aa 000132 350000 012000 aa 000133 051701 132360 aa 000134 406474 207626 aa 000135 200024 000024 aa 000136 740315 170067 aa 000137 236011 647407 aa 000140 550000 240000 aa 000141 247410 550000 aa 000142 050000 050123 aa 000143 606064 742155 aa 000144 000500 051702 aa 000145 232360 256474 aa 000146 205517 005320 aa 000147 000120 051700 aa 000150 720000 000000 l " inkage relocation bits aa 000151 000000 000002 " version number of rel-bits structure aa 000152 000000 000524 " length in bits aa 000153 100002 200232 aa 000154 523252 325232 aa 000155 523252 325232 aa 000156 523252 325232 aa 000157 523252 325232 aa 000160 523252 325232 aa 000161 523252 325232 aa 000162 523252 325232 aa 000163 523252 325232 aa 000164 523250 000000 s " ymbol relocation bits aa 000165 000000 000002 " version number of rel-bits structure aa 000166 000000 000043 " length in bits aa 000167 740365 770416 " Object map aa 002236 000000 000001 " version number of object_map structure aa 002237 157142 152137 " "obj_map " aa 002240 155141 160040 aa 002241 000000 001331 " text offset, length aa 002242 001332 000415 " def offset, length aa 002243 001750 000076 " link offset, length aa 002244 002046 000170 " symbol offset, length aa 002245 000000 000000 " break map offset, length aa 002246 340000 000000 " flags: ^bound, relocatable, procedure, standard aa 002247 002236 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