Compilation listing of file >2.1spec>online>mib083074>bcpl_conversions_.bcpl. Compilation performed for Martinson.SysMaint.a at 01/24/75 0658.3 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 // Functions to convert values from one representation to another. 2 // Last modified on 06/10/74 at 01:14:41 by R F Mabee. 3 // Reinstalled with no material change in June 1974 by R F Mabee. 4 // This module first installed on 6180 Multics in June 1973 by R F Mabee. 5 // Formed from bcpl_lib_ and bcpl_io_, first installed on 645 Multics in September 1971 by R F Mabee. 6 7 // Copyright (c) 1974 by Massachusetts Institute of Technology and Honeywell Information Systems, Inc. 8 9 // General permission is granted to copy and use this program, but not to sell it, provided that the above 10 // copyright statement is given. Contact Information Processing Services, MIT, for further information. 11 // Please contact R F Mabee at MIT for information on this program and versions for other machines. 12 13 get "head" 1 // Declarations for common BCPL library routines for Multics. 2 // Last modified on 09/05/73 at 03:57:35 by R F Mabee. 3 // Largely rewritten for 6180 Multics; installed in June 1973 by R F Mabee. 4 // First version installed in September 1971 by R F Mabee. 5 6 external // Functions to perform mathematical operations not provided by the language. 7 $( MaxI = "bcpl_arithmetic_$MaxI" // i := MaxI (j, k) 8 MaxR = "bcpl_arithmetic_$MaxR" // x := MaxR (y, z) 9 MinI = "bcpl_arithmetic_$MinI" // i := MinI (j, k) 10 MinR = "bcpl_arithmetic_$MinR" // x := MinR (y, z) 11 AbsI = "bcpl_arithmetic_$AbsI" // i := AbsI (j) 12 AbsR = "bcpl_arithmetic_$AbsR" // x := AbsR (y) 13 SquareRoot = "bcpl_arithmetic_$SquareRoot" // x := SquareRoot (y) 14 IpowerI = "bcpl_arithmetic_$IpowerI" // i := IpowerI (j, k) 15 RpowerI = "bcpl_arithmetic_$RpowerI" // x := RpowerI (y, k) 16 RpowerR = "bcpl_arithmetic_$RpowerR" // x := RpowerR (y, z) 17 RandomI = "bcpl_arithmetic_$RandomI" // i := RandomI () 18 RandomR = "bcpl_arithmetic_$RandomR" // x := RandomR () 19 Logarithm = "bcpl_arithmetic_$Logarithm" // x := Logarithm (y) 20 Exponential = "bcpl_arithmetic_$Exponential" // x := Exponential (y) 21 $) 22 external // Routines to manipulate strings. Caller must supply space to hold string results. 23 $( Packstring = "bcpl_machine_code_$Packstring" // Packstring (Unpacked, Space) 24 Unpackstring = "bcpl_machine_code_$Unpackstring" // Unpackstring (String, Space) 25 CopyString = "bcpl_strings_$CopyString" // CopyString (String, Space) 26 EqualString = "bcpl_strings_$EqualString" // if EqualString (StringA, StringB) do ... 27 CompareStrings = "bcpl_strings_$CompareStrings" // CollatingOrder := CompareStrings (StringA, StringB) 28 Concatenate = "bcpl_strings_$Concatenate" // s := Concatenate (Space, Maxlen, StrA, StrB, ...) 29 Substr = "bcpl_strings_$Substr" // s := Substr (Space, String, Index, [Length]) 30 Subch = "bcpl_machine_code_$Subch" // Ch := Subch (String, Index) 31 Length = "bcpl_strings_$Length" // Len := Length (String) 32 SetLength = "bcpl_strings_$SetLength" // SetLength (String, Len) 33 LengthInWords = "bcpl_strings_$LengthInWords" // Len := LengthInWords (String) 34 Index = "bcpl_strings_$Index" // i := Index (StringA, StringB) 35 IndexCh = "bcpl_strings_$IndexCh" // i := IndexCh (String, Ch) 36 StringToChar = "bcpl_strings_$StringToChar" // Char := StringToChar (String) 37 CharToString = "bcpl_strings_$CharToString" // String := CharToString (Char, Space) 38 MakePl1String = "bcpl_strings_$MakePl1String" // Pl1String := MakePl1String (BcplString, Space, Len) 39 MakeBcplString = "bcpl_strings_$MakeBcplString" // s := MakeBcplString (Pl1String, Len, Space) 40 $) 41 external // Functions to convert values from one representation to another. 42 $( RtoI = "bcpl_machine_code_$RtoI" // i := RtoI (x) 43 ItoR = "bcpl_machine_code_$ItoR" // x := ItoR (i) 44 ConvertStoN = "bcpl_conversions_$ConvertStoN" // r := ConvertStoN (String, [Base]) 45 ConvertNtoS = "bcpl_conversions_$ConvertNtoS" // String := ConvertNtoS (i, Space, [Base, [Digits]]) 46 ConvertFtoS = "bcpl_conversions_$ConvertFtoS" // String := ConvertFtoS (x, Space, [Digits]) 47 RemoveEscapes = "bcpl_conversions_$RemoveEscapes" // s := RemoveEscapes (String, Space) 48 InsertEscapes = "bcpl_conversions_$InsertEscapes" // s := InsertEscapes (String, Space) 49 FormDate = "bcpl_conversions_$FormDate" // FormDate (Seconds, Space10, GMTsw) 50 $) 51 external // Miscellaneous routines to extend the power of the language. 52 $( Longjump = "bcpl_machine_code_$Longjump" // Longjump (Label, Psaved) 53 Level = "bcpl_machine_code_$Level" // Psaved := Level () 54 Bcall = "bcpl_machine_code_$Bcall" // r := Bcall (F, n, (list A1, A2, .. An)) 55 Pl1Call = "bcpl_machine_code_$Pl1Call" // Pl1Call (Routine, ArglistAddress) 56 Move = "bcpl_machine_code_$Move" // Move (ToPtr, FromPtr, WordCount) 57 MoveBits = "bcpl_machine_code_$MoveBits" // MoveBits (ToPtr, ToBit, FromPtr, FromBit, BitCount) 58 ScanChar = "bcpl_machine_code_$ScanChar" // Offset := ScanChar (Ptr, Offset, Length, Ch) 59 NumbArgs = "bcpl_machine_code_$NumbArgs" // Nargs := NumbArgs () 60 NewvecInit = "bcpl_filesys_lib_$NewvecInit" // NewvecInit (Space, Size) 61 NewvecCleanup = "bcpl_filesys_lib_$NewvecCleanup" // NewvecCleanup () 62 Newvec = "bcpl_filesys_lib_$Newvec" // v := Newvec (Size - 1) 63 Freevec = "bcpl_filesys_lib_$Freevec" // Freevec (v) 64 Allocate = "bcpl_filesys_lib_$Allocate" // v := Allocate (Size) 65 Findadr = "bcpl_filesys_lib_$Findadr" // Ptr := Findadr (Name) 66 $) 67 external // BCPL stream I/O routines. 68 $( Open = "bcpl_stream_io_$Open" // Stream := Open (Options, Name, [Length, Delimiter]) 69 Close = "bcpl_stream_io_$Close" // Close (StreamA, StreamB, ...) 70 Readch = "bcpl_machine_code_$Readch" // Readch (Stream, lv Ch) 71 Writech = "bcpl_machine_code_$Writech" // Writech (Stream, Ch) 72 WriteS = "bcpl_stream_io_$WriteS" // WriteS (Stream, String) 73 WriteN = "bcpl_stream_io_$WriteN" // WriteN (Stream, i) 74 Format = "bcpl_stream_io_$Format" // Format (Stream, ControlString, A1, A2, ...) 75 FormatString = "bcpl_stream_io_$FormatString" // FormatString (Space, MaxLen, ControlString, A1, A2, ...) 76 Writeout = "bcpl_stream_io_$Writeout" // Writeout (Stream) 77 Flushinput = "bcpl_stream_io_$Flushinput" // Flushinput (Stream) 78 ResetStream = "bcpl_stream_io_$ResetStream" // ResetStream (Stream, Offset) 79 StreamOffset = "bcpl_stream_io_$StreamOffset" // Offset := StreamOffset (Stream) 80 StreamLength = "bcpl_stream_io_$StreamLength" // Length := StreamLength (Stream) 81 StreamPointer = "bcpl_stream_io_$StreamPointer" // Ptr := StreamPointer (Stream) 82 $) 83 external // Interface to Multics file system. Note: Dirname and Entryname are PL/I strings. 84 $( ExpandPathname = "bcpl_filesys_lib_$ExpandPathname" // s := ExpandPathname (RelativePath, Space) 85 JoinPathname = "bcpl_filesys_lib_$JoinPathname" // s := JoinPathname (Dirname, Entryname, Space) 86 SplitPathname = "bcpl_filesys_lib_$SplitPathname" // SplitPathname (AbsolutePath, Dirname, Entryname) 87 FindSegment = "bcpl_filesys_lib_$FindSegment" // Ptr := FindSegment (Pathname, lv BitCount) 88 MakeSegment = "bcpl_filesys_lib_$MakeSegment" // Ptr := MakeSegment (Pathname) 89 GetPathname = "bcpl_filesys_lib_$GetPathname" // s := GetPathname (Pointer, Space) 90 MakeTempSeg = "bcpl_filesys_lib_$MakeTempSeg" // Ptr := MakeTempSeg (Number, Purpose) 91 DeleteTempSeg = "bcpl_filesys_lib_$DeleteTempSeg" // DeleteTempSeg (Number, Purpose) 92 Terminate = "bcpl_filesys_lib_$Terminate" // Terminate (Pointer) 93 SetBitCount = "bcpl_filesys_lib_$SetBitCount" // SetBitCount (Pointer, BitCount) 94 RawClockTime = "bcpl_machine_code_$RawClockTime" // RawTime := RawClockTime (Space2) 95 TimeToSeconds = "bcpl_machine_code_$TimeToSeconds" // TimeNow := TimeToSeconds (RawTime) 96 GetCpuUsage = "bcpl_filesys_lib_$GetCpuUsage" // MicrosecondsUsed := GetCpuUsage () 97 $) 98 external // Interface to Multics command level features. 99 $( Pl1NumbArgs = "bcpl_command_lib_$Pl1NumbArgs" // Nargs := Pl1NumbArgs () 100 Pl1ArgPtr = "bcpl_command_lib_$Pl1ArgPtr" // Ptr := Pl1ArgPtr (ArgIndex) 101 Pl1Descriptor = "bcpl_command_lib_$Pl1Descriptor" // D := Pl1Descriptor (ArgIndex) 102 Pl1ArgString = "bcpl_command_lib_$Pl1ArgString" // s := Pl1ArgString (ArgIndex, Space, [MaxLen]) 103 Pl1ReturnString = "bcpl_command_lib_$Pl1ReturnString" // Pl1ReturnString (String) 104 ConcatenateArgs = "bcpl_command_lib_$ConcatenateArgs" // s := ConcatenateArgs (FirstIndex, Space, MaxLen) 105 OptionParse = "bcpl_command_lib_$OptionParse" // OptionParse (GetNextCommandArg, Nopts, OptionsList, 106 GetNextCommandArg = "bcpl_command_lib_$GetNextCommandArg" // PointersList, FlagsList, PutName) 107 Complain = "bcpl_command_lib_$Complain" // Complain (ControlString, [A1, A2, A3]) 108 BCPLaddr = "bcpl_machine_code_$BCPLaddr" // Pointer := BCPLaddr (ITSaddress) 109 ITS = "bcpl_machine_code_$ITS" // ITSaddress := ITS (Pointer, Space, [BitOffset]) 110 SetOverflowMask = "bcpl_machine_code_$SetOverflowMask" // SetOverflowMask (true -> Inhibit, Enable) 111 SetHandler = "bcpl_command_lib_$SetHandler" // SetHandler (Name, Handler, Space16) 112 RevertHandler = "bcpl_command_lib_$RevertHandler" // RevertHandler (Name) 113 $) 114 115 global // Library currently reserves all cells below 60 and may expand up to 99. 116 $( OUTPUT : 32; INPUT : 33 117 MONITOR : 34; CONSOLE : 35 118 Ch : 36 119 ProgramID : 37 // Must be set to name of program before calling Complain or MakeTempSeg. 120 Errcode : 38; IOstatus : 39 // Used by Complain; set by some library routines. 121 ArgIndex : 40 // Used by GetNextCommandArg. 122 $) 123 124 manifest // Description of object machine, etc. 125 $( Machine = 6180 126 WordSize = 36 127 ByteSize = 9 // Bits per character in strings. 128 CountSize = 18 // Bits for string length field. 129 Left = 18; Right = $8777777 130 Endofstreamch = $87777 131 Null = $8007777000001 // Multics uses this for empty pointer. 132 $) 133 manifest // These are the options referred to in the declaration of Open. 134 $( Pointer = 1; Console = 2; StreamName = 3 // Type. Specify exactly one. 135 PathName = 4; EntryName = 5; SearchName = 6 136 Read = 16; Write = 32; Append = 48 // Direction. Logor into Type. 137 MultiSegmentFile = 128 // May be logor'ed into above. 138 $) 139 manifest // These are the flags that appear in the list given to OptionParse. 140 $( OptNegatable = 1 // Logor any combination of these values. 141 OptNegate = 2 142 OptGetNext = 4 143 OptConvert = 8 144 OptCallOut = 16 145 $) 14 15 external 16 $( SetTimeZone = "set_time_zone" // Meant to be used from command level. 17 18 SysInfoTimeZone = "sys_info$time_zone" // Name of current zone. 19 SysInfoTimeCorrectionConstant = "sys_info$time_correction_constant" 20 // Zone offset in microseconds. 21 ErrTableBadString = "error_table_$bad_conversion" 22 $) 23 24 let StoreN (N, w, Base, Digits) = valof 25 $( let i, j, v = 0, 0, vec 100 26 // Generate digits in reverse order. 27 $( i := i + 1 28 let a = N rshift 1 // Simulate unsigned arithmetic. 29 let b = N - a - 1 // N = a + b + 1. 30 let T = a rem Base + b rem Base + 1 rem Base 31 v!i := T rem Base // Unsigned remainder: N rem Base. 32 N := a / Base + b / Base + 1 / Base + T / Base // Unsigned quotient: N / Base. 33 $) repeatuntil N = 0 & i ge Digits 34 // Reverse digits and put into result vector. 35 $( j := j + 1 36 w!j := (v!i > 9 -> 'A' - 10, '0') + v!i // Form printable digit. 37 i := i - 1 38 $) repeatuntil i = 0 39 resultis j 40 $) 41 and ConvertNtoS (N, Space, Base, Digits) = valof // Convert a number to a decimal string representation. 42 $( let j, w = 0, vec 100 43 let Nargs = NumbArgs () 44 if Nargs < 4 do 45 $( Digits := 1 46 if Nargs < 3 do Base := -10 47 $) 48 if Base < 0 do // Negative Base means N is signed. 49 $( Base := - Base 50 if N < 0 do N, w!1, j := - N, '-', 1 51 $) 52 j := j + StoreN (N, lv w!j, Base, Digits) 53 w!0 := j 54 Packstring (w, Space) 55 resultis Space 56 $) 57 and ConvertFtoS (F, Space, Digits) = valof // Convert a floating-point number to string representation. 58 $( let j, w = 0, vec 100 59 if NumbArgs () < 3 do Digits := 5 60 if F .< 0.0 do F, w!1, j := .- F, '-', 1 // Handle sign. 61 // Compute exponent for E notation. 62 let e = 0 63 unless F .= 0.0 | 0.1 .le F .< 10000.0 do 64 test F .ge 10.0 // Get F in range 1.0 to 9.999.... 65 then e, F := e + 1, F ./ 10.0 repeatwhile F .ge 10.0 66 or e, F := e - 1, F .* 10.0 repeatwhile F .< 1.0 67 // Convert the integer part. 68 let n = RtoI (F) 69 F := F .- ItoR (n) 70 let T = StoreN (n, lv w!j, 10, 1) 71 j, Digits := j + T + 1, Digits - T 72 w!j := '.' 73 if Digits > 20 do Digits := 20 74 for i = 1 to Digits do 75 $( F := F .* 10.0 76 j := j + 1 77 w!j := RtoI (F) rem 10 + '0' 78 $) 79 unless e = 0 do 80 $( j := j + 1 81 w!j := 'E' 82 if e < 0 do 83 $( j := j + 1 84 e, w!j := - e, '-' 85 $) 86 j := j + StoreN (e, lv w!j, 10, 2) 87 $) 88 w!0 := j 89 Packstring (w, Space) 90 resultis Space 91 $) 92 93 // Functions to convert a BCPL string to and from escaped format exactly like that allowed by compiler. 94 95 let InsertEscapes (Input, Space) = valof 96 $( let v, w = vec 300 / 4, vec 300 97 and j = 0 98 SetLength (Space, 0) 99 let Len = Length (Input) 100 for i = 1 to Len do 101 $( if j > 300 - 5 do // Temporary string w nearly full, move onto output. 102 $( w!0 := j 103 Packstring (w, v) 104 Concatenate (Space, Len * 5, Space, v) // Max length - assume worst case. 105 j := 0 106 $) 107 let c = Subch (Input, i) 108 let s = valof switchon c into 109 $( case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': 110 case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': 111 case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': 112 case 'V': case 'W': case 'X': case 'Y': case 'Z': 113 case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': 114 case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': 115 case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': 116 case 'v': case 'w': case 'x': case 'y': case 'z': 117 case '0': case '1': case '2': case '3': case '4': 118 case '5': case '6': case '7': case '8': case '9': 119 case '<': case '>': case ':': case ';': case '+': case '-': 120 case '=': case '.': case ',': case '/': case '?': case '#': 121 case '|': case '`': case '\': case '_': case '[': case ']': 122 case '{': case '}': case '(': case ')': case '&': case '%': 123 case '$': case '!': case '^': case '~': case '@': case ' ': 124 j := j + 1; w!j := c 125 loop 126 127 case '*n': resultis 'n' 128 case '*t': resultis 't' 129 case '*b': resultis 'b' 130 case '*f': resultis 'f' 131 case '*v': resultis 'v' 132 case '*r': resultis 'r' 133 case '*d': resultis 'd' 134 case '*k': resultis 'k' 135 case '**': case '*'': case '*"': 136 resultis c 137 138 default: resultis 'o' 139 $) 140 j := j + 1; w!j := '**' 141 j := j + 1; w!j := s 142 if s = 'o' do j := j + StoreN (c, lv w!j, 8, 3) 143 $) 144 145 w!0 := j 146 Packstring (w, v) 147 Concatenate (Space, Len * 5, Space, v) 148 resultis Space 149 $) 150 151 and RemoveEscapes (Input, Space) = valof 152 $( let v, w = vec 300 / 4, vec 300 153 and j = 0 154 SetLength (Space, 0) 155 let First, Last = 1, Length (Input) 156 let c = Subch (Input, First) 157 if (c = '*'' | c = '*"') & Last > First & Subch (Input, Last) = c do First, Last := First + 1, Last - 1 158 for i = First to Last do 159 $( if j > 300 - 1 do // Temporary string w is full, stuff it into output string Space. 160 $( w!0 := j 161 Packstring (w, v) 162 Concatenate (Space, Last, Space, v) 163 j := 0 164 $) 165 c := Subch (Input, i) 166 if c = '**' & i < Last do 167 $( i := i + 1 168 c := Subch (Input, i) 169 c := valof switchon c into 170 $( case 's': case 'S': resultis '*s' 171 case 'n': case 'N': resultis '*n' 172 case 't': case 'T': resultis '*t' 173 case 'b': case 'B': resultis '*b' 174 case 'r': case 'R': resultis '*r' 175 case 'f': case 'F': resultis '*f' 176 case 'v': case 'V': resultis '*v' 177 case 'k': case 'K': resultis '*k' 178 case 'd': case 'D': resultis '*d' 179 180 case 'c': case 'C': i := i + 1 repeatuntil Subch (Input, i) = '**' | i ge Last 181 loop 182 case 'o': case 'O': $( let n = 0 183 for k = 1 to 3 do 184 $( if i ge Last break 185 let c = Subch (Input, i + 1) 186 unless '0' le c le '7' break 187 n := n lshift 3 | (c - '0') 188 i := i + 1 189 $) 190 resultis n 191 $) 192 default: resultis c 193 $) 194 $) 195 j := j + 1 196 w!j := c 197 $) 198 199 w!0 := j 200 Packstring (w, v) 201 Concatenate (Space, Last, Space, v) 202 resultis Space 203 $) 204 205 206 let ConvertStoN (String, Base) = valof // String to number conversion. 207 // Allows floating point and base specification (i.e. octal). 208 // If an unexpected character is found, an appropriate error code is set. 209 $( if NumbArgs () < 2 do Base := 10 210 let Unpacked = vec 512 211 Unpackstring (String, Unpacked) 212 let Index, Length = 1, Unpacked!0 // For scanning string. 213 let Integer, Real = 0, 0.0 // For result. 214 let Neg = false 215 Errcode := 0 216 217 // First remove all blanks from the string. 218 for i = Length to 1 by -1 if Unpacked!i = '*s' do 219 $( Length := Length - 1 220 for j = i to Length do Unpacked!j := Unpacked!(j + 1) 221 $) 222 223 let Ch = Unpacked!Index // Next character to process. 224 if Ch = '-' logor Ch = '+' do // Allow sign. 225 $( if Ch = '-' do Neg := true 226 Index := Index + 1 // Space over sign. 227 Ch := Unpacked!Index 228 $) 229 if Ch = '$' & Index < Length do // May start with base specification, for example $8 for octal. 230 $( Ch := Unpacked!(Index + 1) 231 test '2' le Ch le '9' 232 then Base := Ch - '0' 233 or test Ch = 'x' logor Ch = 'X' 234 then Base := 16 // Hexadecimal. 235 or $( Errcode := rv ErrTableBadString 236 resultis 0 237 $) 238 Index := Index + 2 // Space over dollar sign and digit. 239 Ch := Unpacked!Index 240 $) 241 while Index le Length do // Gather in integer part. 242 $( let N = Ch - '0' 243 unless 0 le N < Base do 244 $( N := Ch - 'A' + 10 245 unless 10 le N < Base break 246 $) 247 Integer := Integer * Base + N 248 if Base = 10 do Real := Real .* 10.0 .+ ItoR (N) // In case it turns out to be floating. 249 Index := Index + 1 250 Ch := Unpacked!Index 251 $) 252 if Neg do Integer := - Integer 253 if Index > Length resultis Integer 254 unless Ch = '.' & Base = 10 do 255 $( Errcode := rv ErrTableBadString 256 resultis Integer 257 $) 258 // Now it is known to be a floating point number. 259 let Div, Fraction = 1.0, 0.0 // Accumulate fraction and divisor. 260 $( Index := Index + 1 // Gather in the fractional part of the number. 261 Ch := Unpacked!Index 262 unless Index le Length & '0' le Ch le '9' break 263 Div := Div .* 10.0 264 Fraction := Fraction .* 10.0 .+ ItoR (Ch - '0') 265 $) repeat 266 Real := Real .+ Fraction ./ Div 267 if Index < Length & (Ch = 'e' | Ch = 'E') do // E-notation. 268 $( let Neg = false 269 let Exp = 0 // Power of ten to multiply result by. 270 Index := Index + 1 // Skip the E. 271 Ch := Unpacked!Index 272 if Ch = '-' logor Ch = '+' do // Signed exponent. 273 $( if Ch = '-' do Neg := true 274 Index := Index + 1 275 Ch := Unpacked!Index 276 $) 277 while Index le Length & '0' le Ch le '9' do // Get exponent. 278 $( Exp := Exp * 10 + Ch - '0' 279 Index := Index + 1 280 Ch := Unpacked!Index 281 $) 282 if Neg do Exp := - Exp 283 Real := Real .* RpowerI (10.0, Exp) // Multiply Real by 10.0 ** Exp. 284 $) 285 if Neg do Real := .- Real 286 unless Index > Length do Errcode := rv ErrTableBadString 287 resultis Real 288 $) 289 290 static 291 $( StandardZone = 0 292 StandardDelta = 0 293 DaylightZone = 0 294 DaylightDelta = 0 295 $) 296 297 let StoreDate (SecondsSince1901, Space, Breaks) be // Internal routine to decode clock value. 298 $( let SecondsSinceMidnight = Mod (SecondsSince1901 - 1, 24 * 3600) + 1 // 24:00:00 exists. 299 let DaysSince1901 = (SecondsSince1901 - SecondsSinceMidnight) / (24 * 3600) 300 let DayOfCycle = Mod (DaysSince1901, 1461) // 1461 days in four year leap cycle. 301 let MonthOfCycle = DayOfCycle / 31 // First guess - must check with table. 302 let Table = table 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 303 365, 396, 424, 455, 485, 516, 546, 577, 608, 638, 669, 699, 304 730, 761, 789, 820, 850, 881, 911, 942, 973, 1003, 1034, 1064, 305 1095, 1126, 1155, 1186, 1216, 1247, 1277, 1308, 1339, 1369, 1400, 1430, 306 1461 307 if DayOfCycle ge Table!(MonthOfCycle + 1) do MonthOfCycle := MonthOfCycle + 1 308 309 let MonthOfYear = MonthOfCycle rem 12 310 and DayOfMonth = DayOfCycle - Table!MonthOfCycle 311 and Year = 1901 + (DaysSince1901 - DayOfCycle) / 1461 * 4 + DayOfCycle * 4 / 1461 312 and DayOfWeek = Mod (DaysSince1901 + 2, 7) // 1 Jan 1901 was a Tuesday (2). 313 314 let MonthNames = list "January", "February", "March", "April", "May", "June", 315 "July", "August", "September", "October", "November", "December" 316 and DayNames = list "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" 317 318 Space!0, Space!1 := MonthOfYear + 1, MonthNames!MonthOfYear 319 Space!2, Space!3 := DayOfMonth + 1, Year 320 Space!4, Space!5 := DayOfWeek, DayNames!DayOfWeek 321 322 Space!6 := SecondsSinceMidnight / 3600 323 Space!7 := (SecondsSinceMidnight / 60) rem 60 324 Space!8 := SecondsSinceMidnight rem 60 325 326 let FirstMonthOfYear = MonthOfCycle - MonthOfYear 327 let LastDayOfApril = Table!(FirstMonthOfYear + 4) - 1 // First day of May - 1. 328 and LastDayOfOctober = Table!(FirstMonthOfYear + 10) - 1 329 let LastSundayOfApril = LastDayOfApril - (LastDayOfApril + DayOfWeek - DayOfCycle + 7777) rem 7 330 and LastSundayOfOctober = LastDayOfOctober - (LastDayOfOctober + DayOfWeek - DayOfCycle + 7777) rem 7 331 Breaks!0 := (LastSundayOfApril + DaysSince1901 - DayOfCycle) * (24 * 3600) + 2 * 3600 332 Breaks!1 := (LastSundayOfOctober + DaysSince1901 - DayOfCycle) * (24 * 3600) + 2 * 3600 333 $) 334 and Mod (x, y) = x ge 0 -> x rem y, (x rem y + y) rem y // Necessary from 6180 definition of rem. 335 336 337 // Routine to interpret a clock time in seconds since 1901 into a form easily formatted for printing. 338 // This routine applies the standard Daylight Saving Time algorithm to determine which of two time zones to use. 339 340 and FormDate (Seconds, Space, GMTsw) be 341 $( let Breaks = vec 2 342 if StandardZone = 0 do InitializeZoneInfo () // Initialize static strings. 343 344 if NumbArgs () > 2 then if GMTsw do 345 $( StoreDate (Seconds, Space, Breaks) 346 Space!9 := "GMT" 347 return 348 $) 349 350 StoreDate (Seconds - StandardDelta, Space, Breaks) // Assume Standard time first. 351 Space!9 := StandardZone 352 353 if (Seconds - StandardDelta) > Breaks!0 & (Seconds - DaylightDelta) le Breaks!1 do 354 $( StoreDate (Seconds - DaylightDelta, Space, Breaks) // Try daylight time. 355 Space!9 := DaylightZone 356 $) 357 $) 358 and InitializeZoneInfo () be 359 $( let Zone = rv SysInfoTimeZone 360 361 // Convert Zone to all upper case. 362 for i = 0 to WordSize - ByteSize by ByteSize do 363 $( let c = (Zone rshift i) logand (true rshift WordSize - ByteSize) 364 if 'a' le c le 'z' do Zone := Zone + ('A' - 'a' lshift i) 365 $) 366 367 switchon Zone into 368 $( case 'EST ': case 'EDT ': 369 StandardZone, StandardDelta := "EST", 5 * 3600 370 DaylightZone, DaylightDelta := "EDT", 4 * 3600 371 endcase 372 373 case 'CST ': case 'CDT ': 374 StandardZone, StandardDelta := "CST", 6 * 3600 375 DaylightZone, DaylightDelta := "CDT", 5 * 3600 376 endcase 377 378 case 'MST ': case 'MDT ': 379 StandardZone, StandardDelta := "MST", 7 * 3600 380 DaylightZone, DaylightDelta := "MDT", 6 * 3600 381 endcase 382 383 case 'PST ': case 'PDT ': 384 StandardZone, StandardDelta := "PST", 8 * 3600 385 DaylightZone, DaylightDelta := "PDT", 7 * 3600 386 endcase 387 388 default: 389 let v = vec 10 390 MakeBcplString (lv Zone, 4, v) 391 let t = Allocate (LengthInWords (v)) 392 CopyString (v, t) 393 let d = TimeToSeconds (SysInfoTimeCorrectionConstant) 394 StandardZone, StandardDelta := t, d 395 DaylightZone, DaylightDelta := t, d 396 $) 397 $) 398 399 let SetTimeZone () be main 400 $( let Arg = vec 128 401 if Pl1NumbArgs () < 4 do 402 $( InitializeZoneInfo () 403 return 404 $) 405 DaylightDelta := ConvertStoN (Pl1ArgString (4, Arg)) 406 Pl1ArgString (3, Arg) 407 DaylightZone := Allocate (LengthInWords (Arg)) 408 CopyString (Arg, DaylightZone) 409 StandardDelta := ConvertStoN (Pl1ArgString (2, Arg)) 410 Pl1ArgString (1, Arg) 411 StandardZone := Allocate (LengthInWords (Arg)) 412 CopyString (Arg, StandardZone) 413 $) CAE time 5.1, 108 source lines per second. cross reference table a bcpl_conversions_: 28, 29, 30, 32 AbsI head: 11 AbsR head: 12 Allocate head: 64, bcpl_conversions_: 391, 407, 411 Append head: 136 Arg bcpl_conversions_: 400, 405, 406, 407, 408, 409, 410, 411, 412 ArgIndex head: 121 b bcpl_conversions_: 29, 30, 32 Base bcpl_conversions_: 24, 30, 30, 30, 31, 32, 32, 32, 32, 41, 46, 48, 49, 49, 52, 206, 209, 232, 234, 243, 245, 247, 248, 254 Bcall head: 54 BCPLaddr head: 108 Breaks bcpl_conversions_: 297, 331, 332, 341, 345, 350, 353, 353, 354 ByteSize head: 127, bcpl_conversions_: 362, 362, 363 c bcpl_conversions_: 107, 108, 124, 136, 142, 156, 157, 157, 157, 165, 166, 168, 169, 169, 185, 186, 187, 192, 196, 363, 364 Ch head: 118, bcpl_conversions_: 223, 224, 224, 225, 227, 229, 230, 231, 232, 233, 233, 239, 242, 244, 250, 254, 261, 262, 264, 267, 267, 271, 272, 272, 273, 275, 277, 278, 280 CharToString head: 37 Close head: 69 CompareStrings head: 27 Complain head: 107 Concatenate head: 28, bcpl_conversions_: 104, 147, 162, 201 ConcatenateArgs head: 104 CONSOLE head: 117 Console head: 134 ConvertFtoS head: 46, bcpl_conversions_: 57 ConvertNtoS head: 45, bcpl_conversions_: 41 ConvertStoN head: 44, bcpl_conversions_: 206, 405, 409 CopyString head: 25, bcpl_conversions_: 392, 408, 412 CountSize head: 128 d bcpl_conversions_: 393, 394, 395 DaylightDelta bcpl_conversions_: 294, 353, 354, 370, 375, 380, 385, 395, 405 DaylightZone bcpl_conversions_: 293, 355, 370, 375, 380, 385, 395, 407, 408 DayNames bcpl_conversions_: 316, 320 DayOfCycle bcpl_conversions_: 300, 301, 307, 310, 311, 311, 329, 330, 331, 332 DayOfMonth bcpl_conversions_: 310, 319 DayOfWeek bcpl_conversions_: 312, 320, 320, 329, 330 DaysSince1901 bcpl_conversions_: 299, 300, 311, 312, 331, 332 DeleteTempSeg head: 91 Digits bcpl_conversions_: 24, 33, 41, 45, 52, 57, 59, 71, 71, 73, 73, 74 Div bcpl_conversions_: 259, 263, 263, 266 e bcpl_conversions_: 62, 65, 65, 66, 66, 79, 82, 84, 84, 86 Endofstreamch head: 130 EntryName head: 135 EqualString head: 26 Errcode head: 120, bcpl_conversions_: 215, 235, 255, 286 ErrTableBadString bcpl_conversions_: 21, 235, 255, 286 Exp bcpl_conversions_: 269, 278, 278, 282, 282, 283 ExpandPathname head: 84 Exponential head: 20 F bcpl_conversions_: 57, 60, 60, 60, 63, 63, 64, 65, 65, 65, 66, 66, 66, 68, 69, 69, 75, 75, 77 Findadr head: 65 FindSegment head: 87 First bcpl_conversions_: 155, 156, 157, 157, 157, 158 FirstMonthOfYear bcpl_conversions_: 326, 327, 328 Flushinput head: 77 Format head: 74 FormatString head: 75 FormDate head: 49, bcpl_conversions_: 340 Fraction bcpl_conversions_: 259, 264, 264, 266 Freevec head: 63 GetCpuUsage head: 96 GetNextCommandArg head: 106 GetPathname head: 89 GMTsw bcpl_conversions_: 340, 344 i bcpl_conversions_: 25, 27, 27, 31, 33, 36, 36, 37, 37, 38, 74, 100, 107, 158, 165, 166, 167, 167, 168, 180, 180, 180, 180, 184, 185, 188, 188, 218, 218, 220, 362, 363, 364 Index head: 34, bcpl_conversions_: 212, 223, 226, 226, 227, 229, 230, 238, 238, 239, 241, 249, 249, 250, 253, 260, 260, 261, 262, 267, 270, 270, 271, 274, 274, 275, 277, 279, 279, 280, 286 IndexCh head: 35 InitializeZoneInfo bcpl_conversions_: 342, 358, 402 INPUT head: 116 Input bcpl_conversions_: 95, 99, 107, 151, 155, 156, 157, 165, 168, 180, 185 InsertEscapes head: 48, bcpl_conversions_: 95 Integer bcpl_conversions_: 213, 247, 247, 252, 252, 253, 256 IOstatus head: 120 IpowerI head: 14 ItoR head: 43, bcpl_conversions_: 69, 248, 264 ITS head: 109 j bcpl_conversions_: 25, 35, 35, 36, 39, 42, 50, 52, 52, 52, 53, 58, 60, 70, 71, 71, 72, 76, 76, 77, 80, 80, 81, 83, 83, 84, 86, 86, 86, 88, 97, 101, 102, 105, 124, 124, 124, 140, 140, 140, 141, 141, 141, 142, 142, 142, 145, 153, 159, 160, 163, 195, 195, 196, 199, 220, 220, 220 JoinPathname head: 85 k bcpl_conversions_: 183 Last bcpl_conversions_: 155, 157, 157, 157, 157, 158, 162, 166, 180, 184, 201 LastDayOfApril bcpl_conversions_: 327, 329, 329 LastDayOfOctober bcpl_conversions_: 328, 330, 330 LastSundayOfApril bcpl_conversions_: 329, 331 LastSundayOfOctober bcpl_conversions_: 330, 332 Left head: 129 Len bcpl_conversions_: 99, 100, 104, 147 Length head: 31, bcpl_conversions_: 99, 155, 212, 218, 219, 219, 220, 229, 241, 253, 262, 267, 277, 286 LengthInWords head: 33, bcpl_conversions_: 391, 407, 411 Level head: 53 Logarithm head: 19 Longjump head: 52 Machine head: 125 MakeBcplString head: 39, bcpl_conversions_: 390 MakePl1String head: 38 MakeSegment head: 88 MakeTempSeg head: 90 MaxI head: 7 MaxR head: 8 MinI head: 9 MinR head: 10 Mod bcpl_conversions_: 298, 300, 312, 334 MONITOR head: 117 MonthNames bcpl_conversions_: 314, 318 MonthOfCycle bcpl_conversions_: 301, 307, 307, 307, 309, 310, 326 MonthOfYear bcpl_conversions_: 309, 318, 318, 326 Move head: 56 MoveBits head: 57 MultiSegmentFile head: 137 N bcpl_conversions_: 24, 28, 29, 32, 33, 41, 50, 50, 50, 52, 242, 243, 244, 245, 247, 248 n bcpl_conversions_: 68, 69, 70, 182, 187, 187, 190 Nargs bcpl_conversions_: 43, 44, 46 Neg bcpl_conversions_: 214, 225, 252, 268, 273, 282, 285 Newvec head: 62 NewvecCleanup head: 61 NewvecInit head: 60 Null head: 131 NumbArgs head: 59, bcpl_conversions_: 43, 59, 209, 344 Open head: 68 OptCallOut head: 144 OptConvert head: 143 OptGetNext head: 142 OptionParse head: 105 OptNegatable head: 140 OptNegate head: 141 OUTPUT head: 116 Packstring head: 23, bcpl_conversions_: 54, 89, 103, 146, 161, 200 PathName head: 135 Pl1ArgPtr head: 100 Pl1ArgString head: 102, bcpl_conversions_: 405, 406, 409, 410 Pl1Call head: 55 Pl1Descriptor head: 101 Pl1NumbArgs head: 99, bcpl_conversions_: 401 Pl1ReturnString head: 103 Pointer head: 134 ProgramID head: 119 RandomI head: 17 RandomR head: 18 RawClockTime head: 94 Read head: 136 Readch head: 70 Real bcpl_conversions_: 213, 248, 248, 266, 266, 283, 283, 285, 285, 287 RemoveEscapes head: 47, bcpl_conversions_: 151 ResetStream head: 78 RevertHandler head: 112 Right head: 129 RpowerI head: 15, bcpl_conversions_: 283 RpowerR head: 16 RtoI head: 42, bcpl_conversions_: 68, 77 s bcpl_conversions_: 108, 141, 142 ScanChar head: 58 SearchName head: 135 Seconds bcpl_conversions_: 340, 345, 350, 353, 353, 354 SecondsSince1901 bcpl_conversions_: 297, 298, 299 SecondsSinceMidnight bcpl_conversions_: 298, 299, 322, 323, 324 SetBitCount head: 93 SetHandler head: 111 SetLength head: 32, bcpl_conversions_: 98, 154 SetOverflowMask head: 110 SetTimeZone bcpl_conversions_: 16, 399 Space bcpl_conversions_: 41, 54, 55, 57, 89, 90, 95, 98, 104, 104, 147, 147, 148, 151, 154, 162, 162, 201, 201, 202, 297, 318, 318, 319, 319, 320, 320, 322, 323, 324, 340, 345, 346, 350, 351, 354, 355 SplitPathname head: 86 SquareRoot head: 13 StandardDelta bcpl_conversions_: 292, 350, 353, 369, 374, 379, 384, 394, 409 StandardZone bcpl_conversions_: 291, 342, 351, 369, 374, 379, 384, 394, 411, 412 StoreDate bcpl_conversions_: 297, 345, 350, 354 StoreN bcpl_conversions_: 24, 52, 70, 86, 142 StreamLength head: 80 StreamName head: 134 StreamOffset head: 79 StreamPointer head: 81 String bcpl_conversions_: 206, 211 StringToChar head: 36 Subch head: 30, bcpl_conversions_: 107, 156, 157, 165, 168, 180, 185 Substr head: 29 SysInfoTimeCorrectionConstant bcpl_conversions_: 19, 393 SysInfoTimeZone bcpl_conversions_: 18, 359 T bcpl_conversions_: 30, 31, 32, 70, 71, 71 t bcpl_conversions_: 391, 392, 394, 395 Table bcpl_conversions_: 302, 307, 310, 327, 328 Terminate head: 92 TimeToSeconds head: 95, bcpl_conversions_: 393 Unpacked bcpl_conversions_: 210, 211, 212, 218, 220, 220, 223, 227, 230, 239, 250, 261, 271, 275, 280 Unpackstring head: 24, bcpl_conversions_: 211 v bcpl_conversions_: 25, 31, 36, 36, 96, 103, 104, 146, 147, 152, 161, 162, 200, 201, 389, 390, 391, 392 w bcpl_conversions_: 24, 36, 42, 50, 52, 53, 54, 58, 60, 70, 72, 77, 81, 84, 86, 88, 89, 96, 102, 103, 124, 140, 141, 142, 145, 146, 152, 160, 161, 196, 199, 200 WordSize head: 126, bcpl_conversions_: 362, 363 Write head: 136 Writech head: 71 WriteN head: 73 Writeout head: 76 WriteS head: 72 x bcpl_conversions_: 334, 334, 334, 334 y bcpl_conversions_: 334, 334, 334, 334, 334 Year bcpl_conversions_: 311, 319 Zone bcpl_conversions_: 359, 363, 364, 364, 367, 390 Trans time 3.1, 692 object words per second. " Begin text of StoreN aa 000000 000006 123164 zero 6,42612 " StoreN aa 000001 157162 145116 zero 56946,51790 L1: aa 000002 000000 213000 24 epaq 0 " set lp to linkage section aa 000003 700026 764161 lprplp sb|22,*au aa 000004 200000 021100 adlx1 bp|0 " BCPL save aa 000005 700000 542111 sprpbp sb|0,x1 aa 000006 700001 544111 sprplp sb|1,x1 aa 000007 700417 620111 eax0 sb|271,x1 aa 000010 777760 360003 anx0 -16,du aa 000011 700025 740100 stx0 sb|21 " end of save sequence aa 000012 700012 350111 25 eapap sb|10,x1 " a vector aa 000013 700010 540111 sprpap sb|8,x1 " v aa 000014 700007 450111 stz sb|7,x1 " i aa 000015 700011 450111 stz sb|9,x1 " j L7: aa 000016 700007 054111 27 aos sb|7,x1 " i aa 000017 700002 236111 28 ldq sb|2,x1 " N aa 000020 000001 772000 qrl 1 aa 000021 700157 756111 stq sb|111,x1 " a aa 000022 700002 236111 29 ldq sb|2,x1 " N aa 000023 700157 176111 sbq sb|111,x1 " a aa 000024 000001 176007 sbq 1,dl " 1 aa 000025 700160 756111 stq sb|112,x1 " b aa 000026 700157 236111 30 ldq sb|111,x1 " a aa 000027 700004 506111 div sb|4,x1 " Base aa 000030 700163 755111 sta sb|115,x1 " temporary aa 000031 700160 236111 ldq sb|112,x1 " b aa 000032 700004 506111 div sb|4,x1 " Base aa 000033 700163 075111 ada sb|115,x1 aa 000034 700162 755111 sta sb|114,x1 " temporary aa 000035 000001 236007 ldq 1,dl " 1 aa 000036 700004 506111 div sb|4,x1 " Base aa 000037 700162 075111 ada sb|114,x1 aa 000040 700161 755111 sta sb|113,x1 " T aa 000041 700161 236111 31 ldq sb|113,x1 " T aa 000042 700004 506111 div sb|4,x1 " Base aa 000043 700007 722111 lxl2 sb|7,x1 " i aa 000044 700010 760111 lprpap sb|8,x1 " v aa 000045 000000 755112 sta ap|0,x2 aa 000046 700157 236111 32 ldq sb|111,x1 " a aa 000047 700004 506111 div sb|4,x1 " Base aa 000050 700164 756111 stq sb|116,x1 " temporary aa 000051 700160 236111 ldq sb|112,x1 " b aa 000052 700004 506111 div sb|4,x1 " Base aa 000053 700164 076111 adq sb|116,x1 aa 000054 700163 756111 stq sb|115,x1 " temporary aa 000055 000001 236007 ldq 1,dl " 1 aa 000056 700004 506111 div sb|4,x1 " Base aa 000057 700163 076111 adq sb|115,x1 aa 000060 700162 756111 stq sb|114,x1 " temporary aa 000061 700161 236111 ldq sb|113,x1 " T aa 000062 700004 506111 div sb|4,x1 " Base aa 000063 700162 076111 adq sb|114,x1 aa 000064 700002 756111 stq sb|2,x1 " N aa 000065 700002 234111 szn sb|2,x1 " N aa 000066 777730 601004 tnz L7 aa 000067 700007 236111 ldq sb|7,x1 " i aa 000070 700005 116111 cmpq sb|5,x1 " Digits aa 000071 777725 604004 tmi L7 L8: aa 000072 700011 054111 35 aos sb|9,x1 " j aa 000073 700007 723111 36 lxl3 sb|7,x1 " i aa 000074 700010 762111 lprpbp sb|8,x1 " v aa 000075 200000 235113 lda bp|0,x3 aa 000076 000011 115007 cmpa 9,dl " 9 aa 000077 000003 604404 tmoz L9 aa 000100 000067 236007 ldq 55,dl aa 000101 000002 710004 tra L10 L9: aa 000102 000060 236007 ldq 48,dl " '0' L10: aa 000103 700160 756111 stq sb|112,x1 aa 000104 700160 236111 ldq sb|112,x1 aa 000105 700007 724111 lxl4 sb|7,x1 " i aa 000106 700010 761111 lprpab sb|8,x1 " v aa 000107 100000 076114 adq ab|0,x4 aa 000110 700011 725111 lxl5 sb|9,x1 " j aa 000111 700003 763111 lprpbb sb|3,x1 " w aa 000112 300000 756115 stq bb|0,x5 aa 000113 000001 336007 37 lcq 1,dl " 1 aa 000114 700007 056111 asq sb|7,x1 " i aa 000115 700007 234111 szn sb|7,x1 " i aa 000116 777754 601004 tnz L8 aa 000117 700011 236111 39 ldq sb|9,x1 " j L6: aa 000120 700007 756111 stq sb|7,x1 aa 000121 700007 236111 ldq sb|7,x1 aa 000122 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000123 200000 121100 sblx1 bp|0 aa 000124 700001 764111 lprplp sb|1,x1 aa 000125 200001 710100 tra bp|1 " end of return sequence " Begin text of ConvertNtoS aa 000126 000013 103157 zero 11,34415 " ConvertNtoS aa 000127 156166 145162 zero 56438,51826 aa 000130 164116 164157 zero 59470,59503 aa 000131 123000 000000 zero 42496 aa 000132 700006 756111 41 stq sb|6,x1 " temporary L2: aa 000133 000000 213000 epaq 0 " set lp to linkage section aa 000134 700026 764161 lprplp sb|22,*au aa 000135 200000 021100 adlx1 bp|0 " BCPL save aa 000136 700000 542111 sprpbp sb|0,x1 aa 000137 700001 544111 sprplp sb|1,x1 aa 000140 700425 620111 eax0 sb|277,x1 aa 000141 777760 360003 anx0 -16,du aa 000142 700025 740100 stx0 sb|21 " end of save sequence aa 000143 700010 450111 42 stz sb|8,x1 " j aa 000144 700012 371511 eaplb sb|10,x1 " a vector aa 000145 700007 545111 sprplb sb|7,x1 " w 4a 000146 400062 272120 43 tsbbp lp|L14,* " NumbArgs aa 000147 000162 000000 zero 114 aa 000150 700011 756111 stq sb|9,x1 " Nargs aa 000151 700011 236111 44 ldq sb|9,x1 " Nargs aa 000152 000004 116007 cmpq 4,dl " 4 aa 000153 000010 605004 tpl L15 aa 000154 000001 235007 45 lda 1,dl " 1 aa 000155 700005 755111 sta sb|5,x1 " Digits aa 000156 700011 235111 46 lda sb|9,x1 " Nargs aa 000157 000003 115007 cmpa 3,dl " 3 aa 000160 000003 605004 tpl L16 aa 000161 000012 336007 lcq 10,dl aa 000162 700004 756111 stq sb|4,x1 " Base L16: L15: aa 000163 700004 234111 48 szn sb|4,x1 " Base aa 000164 000014 605004 tpl L17 aa 000165 000000 236007 49 ldq 0,dl aa 000166 700004 156111 ssq sb|4,x1 " Base aa 000167 700002 234111 50 szn sb|2,x1 " N aa 000170 000010 605004 tpl L18 aa 000171 000055 236007 ldq 45,dl " '-' aa 000172 700007 765111 lprplb sb|7,x1 " w aa 000173 500001 756100 stq lb|1 aa 000174 000000 236007 ldq 0,dl aa 000175 700002 156111 ssq sb|2,x1 " N aa 000176 000001 236007 ldq 1,dl " 1 aa 000177 700010 756111 stq sb|8,x1 " j L18: L17: aa 000200 700002 236111 52 ldq sb|2,x1 " N aa 000201 700164 756111 stq sb|116,x1 aa 000202 700010 726111 lxl6 sb|8,x1 " j aa 000203 700007 760111 lprpap sb|7,x1 " w aa 000204 000000 350116 eapap ap|0,x6 aa 000205 700165 540111 sprpap sb|117,x1 aa 000206 700004 236111 ldq sb|4,x1 " Base aa 000207 700166 756111 stq sb|118,x1 aa 000210 700005 236111 ldq sb|5,x1 " Digits aa 000211 700167 756111 stq sb|119,x1 aa 000212 777572 272004 tsbbp L1+2 " StoreN aa 000213 000162 000004 zero 114,4 aa 000214 700010 056111 asq sb|8,x1 " j aa 000215 700010 236111 53 ldq sb|8,x1 " j aa 000216 700007 760111 lprpap sb|7,x1 " w aa 000217 000000 756100 stq ap|0 aa 000220 700007 236111 54 ldq sb|7,x1 " w aa 000221 700164 756111 stq sb|116,x1 aa 000222 700003 236111 ldq sb|3,x1 " Space aa 000223 700165 756111 stq sb|117,x1 4a 000224 400060 272120 tsbbp lp|L19,* " Packstring aa 000225 000162 000002 zero 114,2 aa 000226 700003 236111 55 ldq sb|3,x1 " Space L13: aa 000227 700007 756111 stq sb|7,x1 aa 000230 700007 236111 ldq sb|7,x1 aa 000231 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000232 200000 121100 sblx1 bp|0 aa 000233 700001 764111 lprplp sb|1,x1 aa 000234 200001 710100 tra bp|1 " end of return sequence " Begin text of ConvertFtoS aa 000235 000013 103157 zero 11,34415 " ConvertFtoS aa 000236 156166 145162 zero 56438,51826 aa 000237 164106 164157 zero 59462,59503 aa 000240 123000 000000 zero 42496 aa 000241 700006 756111 57 stq sb|6,x1 " temporary L3: aa 000242 000000 213000 epaq 0 " set lp to linkage section aa 000243 700026 764161 lprplp sb|22,*au aa 000244 200000 021100 adlx1 bp|0 " BCPL save aa 000245 700000 542111 sprpbp sb|0,x1 aa 000246 700001 544111 sprplp sb|1,x1 aa 000247 700425 620111 eax0 sb|277,x1 aa 000250 777760 360003 anx0 -16,du aa 000251 700025 740100 stx0 sb|21 " end of save sequence aa 000252 700010 352111 58 eapbp sb|8,x1 " a vector aa 000253 700006 542111 sprpbp sb|6,x1 " w aa 000254 700007 450111 stz sb|7,x1 " j 4a 000255 400062 272120 59 tsbbp lp|L14,* " NumbArgs aa 000256 000166 000000 zero 118 aa 000257 000003 116007 cmpq 3,dl " 3 aa 000260 000003 605004 tpl L23 aa 000261 000005 236007 ldq 5,dl " 5 aa 000262 700004 756111 stq sb|4,x1 " Digits L23: aa 000263 700002 431111 60 fld sb|2,x1 " F aa 000264 400000 515003 fcmp -131072,du " 0.0 aa 000265 000011 605004 tpl L24 aa 000266 000001 236007 ldq 1,dl " 1 aa 000267 700007 756111 stq sb|7,x1 " j aa 000270 000055 236007 ldq 45,dl " '-' aa 000271 700006 762111 lprpbp sb|6,x1 " w aa 000272 200001 756100 stq bp|1 aa 000273 700002 431111 fld sb|2,x1 " F aa 000274 000000 513007 fneg 0,dl aa 000275 700002 470111 fstr sb|2,x1 " F L24: aa 000276 700155 450111 62 stz sb|109,x1 " e aa 000277 700002 431111 63 fld sb|2,x1 " F aa 000300 400000 515003 fcmp -131072,du " 0.0 aa 000301 000032 600004 tze L25 aa 000302 000207 431004 fld L27 " 0.1 aa 000303 700002 515111 fcmp sb|2,x1 " F aa 000304 000004 605404 tpnz L26 aa 000305 700002 431111 fld sb|2,x1 " F aa 000306 000202 515004 fcmp L28 " 10000.0 aa 000307 000024 604004 tmi L25 L26: aa 000310 700002 431111 64 fld sb|2,x1 " F aa 000311 010500 515003 fcmp 4416,du " 10.0 aa 000312 000011 604004 tmi L29 L31: aa 000313 700002 431111 65 fld sb|2,x1 " F aa 000314 010500 565003 fdv 4416,du " 10.0 aa 000315 700002 470111 fstr sb|2,x1 " F aa 000316 700155 054111 aos sb|109,x1 " e aa 000317 700002 431111 fld sb|2,x1 " F aa 000320 010500 515003 fcmp 4416,du " 10.0 aa 000321 777772 605004 tpl L31 aa 000322 000011 710004 tra L30 L29: L32: aa 000323 700002 431111 66 fld sb|2,x1 " F aa 000324 010500 461003 fmp 4416,du " 10.0 aa 000325 700002 470111 fstr sb|2,x1 " F aa 000326 000001 336007 lcq 1,dl " 1 aa 000327 700155 056111 asq sb|109,x1 " e aa 000330 700002 431111 fld sb|2,x1 " F aa 000331 002400 515003 fcmp 1280,du " 1.0 aa 000332 777771 604004 tmi L32 L30: L25: aa 000333 700002 236111 68 ldq sb|2,x1 " F aa 000334 700170 756111 stq sb|120,x1 4a 000335 400056 272120 tsbbp lp|L33,* " RtoI aa 000336 000166 000001 zero 118,1 aa 000337 700156 756111 stq sb|110,x1 " n aa 000340 700156 236111 69 ldq sb|110,x1 " n aa 000341 700170 756111 stq sb|120,x1 4a 000342 400054 272120 tsbbp lp|L34,* " ItoR aa 000343 000166 000001 zero 118,1 aa 000344 700157 756111 stq sb|111,x1 " temporary aa 000345 700002 431111 fld sb|2,x1 " F aa 000346 700157 575111 fsb sb|111,x1 aa 000347 700002 470111 fstr sb|2,x1 " F aa 000350 700156 236111 70 ldq sb|110,x1 " n aa 000351 700170 756111 stq sb|120,x1 aa 000352 700007 722111 lxl2 sb|7,x1 " j aa 000353 700006 761111 lprpab sb|6,x1 " w aa 000354 100000 351512 eapab ab|0,x2 aa 000355 700171 541111 sprpab sb|121,x1 aa 000356 000012 236007 ldq 10,dl " 10 aa 000357 700172 756111 stq sb|122,x1 aa 000360 000001 236007 ldq 1,dl " 1 aa 000361 700173 756111 stq sb|123,x1 aa 000362 777422 272004 tsbbp L1+2 " StoreN aa 000363 000166 000004 zero 118,4 aa 000364 700157 756111 stq sb|111,x1 " T aa 000365 700157 336111 71 lcq sb|111,x1 " T aa 000366 700004 056111 asq sb|4,x1 " Digits aa 000367 700007 236111 ldq sb|7,x1 " j aa 000370 700157 076111 adq sb|111,x1 " T aa 000371 000001 076007 adq 1,dl " 1 aa 000372 700007 756111 stq sb|7,x1 " j aa 000373 000056 236007 72 ldq 46,dl " '.' aa 000374 700007 723111 lxl3 sb|7,x1 " j aa 000375 700006 761111 lprpab sb|6,x1 " w aa 000376 100000 756113 stq ab|0,x3 aa 000377 700004 236111 73 ldq sb|4,x1 " Digits aa 000400 000024 116007 cmpq 20,dl " 20 aa 000401 000003 604404 tmoz L35 aa 000402 000024 235007 lda 20,dl " 20 aa 000403 700004 755111 sta sb|4,x1 " Digits L35: aa 000404 000001 235007 74 lda 1,dl " 1 aa 000405 700160 755111 sta sb|112,x1 " i aa 000406 700004 235111 lda sb|4,x1 " Digits aa 000407 700161 755111 sta sb|113,x1 aa 000410 000017 710004 tra L36 L37: aa 000411 700002 431111 75 fld sb|2,x1 " F aa 000412 010500 461003 fmp 4416,du " 10.0 aa 000413 700002 470111 fstr sb|2,x1 " F aa 000414 700007 054111 76 aos sb|7,x1 " j aa 000415 700002 235111 77 lda sb|2,x1 " F aa 000416 700170 755111 sta sb|120,x1 4a 000417 400056 272120 tsbbp lp|L33,* " RtoI aa 000420 000166 000001 zero 118,1 aa 000421 000012 506007 div 10,dl " 10 aa 000422 000060 075007 ada 48,dl " '0' aa 000423 700007 724111 lxl4 sb|7,x1 " j aa 000424 700006 763111 lprpbb sb|6,x1 " w aa 000425 300000 755114 sta bb|0,x4 aa 000426 700160 054111 aos sb|112,x1 " i L36: aa 000427 700160 236111 ldq sb|112,x1 " i aa 000430 700161 116111 cmpq sb|113,x1 aa 000431 777760 604404 tmoz L37 aa 000432 700155 234111 79 szn sb|109,x1 " e aa 000433 000034 600004 tze L38 aa 000434 700007 054111 80 aos sb|7,x1 " j aa 000435 000105 235007 81 lda 69,dl " 'E' aa 000436 700007 725111 lxl5 sb|7,x1 " j aa 000437 700006 765111 lprplb sb|6,x1 " w aa 000440 500000 755115 sta lb|0,x5 aa 000441 700155 234111 82 szn sb|109,x1 " e aa 000442 000010 605004 tpl L39 aa 000443 700007 054111 83 aos sb|7,x1 " j aa 000444 000000 235007 84 lda 0,dl aa 000445 700155 155111 ssa sb|109,x1 " e aa 000446 000055 235007 lda 45,dl " '-' aa 000447 700007 726111 lxl6 sb|7,x1 " j aa 000450 700006 760111 lprpap sb|6,x1 " w aa 000451 000000 755116 sta ap|0,x6 L39: aa 000452 700155 235111 86 lda sb|109,x1 " e aa 000453 700170 755111 sta sb|120,x1 aa 000454 700007 722111 lxl2 sb|7,x1 " j aa 000455 700006 762111 lprpbp sb|6,x1 " w aa 000456 200000 352112 eapbp bp|0,x2 aa 000457 700171 542111 sprpbp sb|121,x1 aa 000460 000012 235007 lda 10,dl " 10 aa 000461 700172 755111 sta sb|122,x1 aa 000462 000002 235007 lda 2,dl " 2 aa 000463 700173 755111 sta sb|123,x1 aa 000464 777320 272004 tsbbp L1+2 " StoreN aa 000465 000166 000004 zero 118,4 aa 000466 700007 056111 asq sb|7,x1 " j L38: aa 000467 700007 236111 88 ldq sb|7,x1 " j aa 000470 700006 762111 lprpbp sb|6,x1 " w aa 000471 200000 756100 stq bp|0 aa 000472 700006 236111 89 ldq sb|6,x1 " w aa 000473 700170 756111 stq sb|120,x1 aa 000474 700003 236111 ldq sb|3,x1 " Space aa 000475 700171 756111 stq sb|121,x1 4a 000476 400060 272120 tsbbp lp|L19,* " Packstring aa 000477 000166 000002 zero 118,2 aa 000500 700003 236111 90 ldq sb|3,x1 " Space L22: aa 000501 700006 756111 stq sb|6,x1 aa 000502 700006 236111 ldq sb|6,x1 aa 000503 700000 762111 lprpbp sb|0,x1 " bcpl return aa 000504 200000 121100 sblx1 bp|0 aa 000505 700001 764111 lprplp sb|1,x1 aa 000506 200001 710100 tra bp|1 " end of return sequence aa 000507 700005 756111 stq sb|5,x1 " temporary " Literal pool L28: aa 000510 034470 400000 zero 14648,-131072 " 10000.0 L27: aa 000511 772631 463146 zero -2663,-104858 " 0.1 " Begin text of InsertEscapes aa 000512 000015 111156 zero 13,37486 " InsertEscapes aa 000513 163145 162164 zero 58981,58484 aa 000514 105163 143141 zero 35443,50785 aa 000515 160145 163000 zero 57445,58880 L40: aa 000516 000000 213000 95 epaq 0 " set lp to linkage section aa 000517 700026 764161 lprplp sb|22,*au aa 000520 200000 021100 adlx1 bp|0 " BCPL save aa 000521 700000 542111 sprpbp sb|0,x1 aa 000522 700001 544111 sprplp sb|1,x1 aa 000523 700637 620111 eax0 sb|415,x1 aa 000524 777760 360003 anx0 -16,du aa 000525 700025 740100 stx0 sb|21 " end of save sequence aa 000526 700007 450111 97 stz sb|7,x1 " j aa 000527 700010 351511 96 eapab sb|8,x1 " a vector aa 000530 700006 541111 sprpab sb|6,x1 " w aa 000531 700466 351511 eapab sb|310,x1 " a vector aa 000532 700005 541111 sprpab sb|5,x1 " v aa 000533 700003 236111 98 ldq sb|3,x1 " Space aa 000534 700614 756111 stq sb|396,x1 aa 000535 700615 450111 stz sb|397,x1 4a 000536 400052 272120 tsbbp lp|L45,* " SetLength aa 000537 000612 000002 zero 394,2 aa 000540 700002 236111 99 ldq sb|2,x1 " Input aa 000541 700614 756111 stq sb|396,x1 4a 000542 400050 272120 tsbbp lp|L46,* " Length aa 000543 000612 000001 zero 394,1 aa 000544 700465 756111 stq sb|309,x1 " Len aa 000545 000001 236007 100 ldq 1,dl " 1 aa 000546 700602 756111 stq sb|386,x1 " i aa 000547 700465 236111 ldq sb|309,x1 " Len aa 000550 700603 756111 stq sb|387,x1 aa 000551 000205 710004 tra L47 L48: aa 000552 700007 236111 101 ldq sb|7,x1 " j aa 000553 000447 116007 cmpq 295,dl aa 000554 000026 604404 tmoz L49 aa 000555 700007 235111 102 lda sb|7,x1 " j aa 000556 700006 761111 lprpab sb|6,x1 " w aa 000557 100000 755100 sta ab|0 aa 000560 700006 235111 103 lda sb|6,x1 " w aa 000561 700614 755111 sta sb|396,x1 aa 000562 700005 235111 lda sb|5,x1 " v aa 000563 700615 755111 sta sb|397,x1 4a 000564 400060 272120 tsbbp lp|L19,* " Packstring aa 000565 000612 000002 zero 394,2 aa 000566 700003 235111 104 lda sb|3,x1 " Space aa 000567 700614 755111 sta sb|396,x1 aa 000570 700465 236111 ldq sb|309,x1 " Len aa 000571 000005 402007 mpy 5,dl " 5 aa 000572 700615 756111 stq sb|397,x1 aa 000573 700003 236111 ldq sb|3,x1 " Space aa 000574 700616 756111 stq sb|398,x1 aa 000575 700005 236111 ldq sb|5,x1 " v aa 000576 700617 756111 stq sb|399,x1 4a 000577 400046 272120 tsbbp lp|L50,* " Concatenate aa 000600 000612 000004 zero 394,4 aa 000601 700007 450111 105 stz sb|7,x1 " j L49: aa 000602 700002 236111 107 ldq sb|2,x1 " Input aa 000603 700614 756111 stq sb|396,x1 aa 000604 700602 236111 ldq sb|386,x1 " i aa 000605 700615 756111 stq sb|397,x1 4a 000606 400044 272120 tsbbp lp|L51,* " Subch aa 000607 000612 000002 zero 394,2 aa 000610 700604 756111 stq sb|388,x1 " c aa 000611 000033 710004 109 tra L54 L55: aa 000612 700007 054111 124 aos sb|7,x1 " j aa 000613 700604 236111 124 ldq sb|388,x1 " c aa 000614 700007 723111 lxl3 sb|7,x1 " j aa 000615 700006 763111 lprpbb sb|6,x1 " w aa 000616 300000 756113 stq bb|0,x3 aa 000617 000136 710004 127 tra L56 L57: aa 000620 000156 236007 ldq 110,dl " 'n' aa 000621 000077 710004 128 tra L52 L58: aa 000622 000164 236007 ldq 116,dl " 't' aa 000623 000075 710004 129 tra L52 L59: aa 000624 000142 236007 ldq 98,dl " 'b' aa 000625 000073 710004 130 tra L52 L60: aa 000626 000146 236007 ldq 102,dl " 'f' aa 000627 000071 710004 131 tra L52 L61: aa 000630 000166 236007 ldq 118,dl " 'v' aa 000631 000067 710004 132 tra L52 L62: aa 000632 000162 236007 ldq 114,dl " 'r' aa 000633 000065 710004 133 tra L52 L63: aa 000634 000144 236007 ldq 100,dl " 'd' aa 000635 000063 710004 134 tra L52 L64: aa 000636 000153 236007 ldq 107,dl " 'k' aa 000637 000061 710004 135 tra L52 L65: aa 000640 700604 236111 136 ldq sb|388,x1 " c aa 000641 000057 710004 138 tra L52 L66: aa 000642 000157 236007 ldq 111,dl " 'o' aa 000643 000055 710004 tra L52 L54: " Begin switchon aa 000644 700604 235111 lda sb|388,x1 " c aa 000645 000053 115007 cmpa 43,dl aa 000646 000004 604004 tmi L67 aa 000647 000177 115007 cmpa 127,dl aa 000650 777742 604004 tmi L55 aa 000651 777771 710004 tra L66 L67: aa 000652 000010 115007 cmpa 8,dl aa 000653 777767 604004 tmi L66 0a 000654 000645 710005 tra L68-8,al L68: aa 000655 777747 710004 tra L59 aa 000656 777744 710004 tra L58 aa 000657 777741 710004 tra L57 aa 000660 777750 710004 tra L61 aa 000661 777745 710004 tra L60 aa 000662 777750 710004 tra L62 aa 000663 777751 710004 tra L63 aa 000664 777752 710004 tra L64 aa 000665 777755 710004 tra L66 aa 000666 777754 710004 tra L66 aa 000667 777753 710004 tra L66 aa 000670 777752 710004 tra L66 aa 000671 777751 710004 tra L66 aa 000672 777750 710004 tra L66 aa 000673 777747 710004 tra L66 aa 000674 777746 710004 tra L66 aa 000675 777745 710004 tra L66 aa 000676 777744 710004 tra L66 aa 000677 777743 710004 tra L66 aa 000700 777742 710004 tra L66 aa 000701 777741 710004 tra L66 aa 000702 777740 710004 tra L66 aa 000703 777737 710004 tra L66 aa 000704 777736 710004 tra L66 aa 000705 777705 710004 tra L55 aa 000706 777704 710004 tra L55 aa 000707 777731 710004 tra L65 aa 000710 777702 710004 tra L55 aa 000711 777701 710004 tra L55 aa 000712 777700 710004 tra L55 aa 000713 777677 710004 tra L55 aa 000714 777724 710004 tra L65 aa 000715 777675 710004 tra L55 aa 000716 777674 710004 tra L55 aa 000717 777721 710004 tra L65 L53: L52: aa 000720 700606 756111 stq sb|390,x1 aa 000721 700606 236111 ldq sb|390,x1 aa 000722 700605 756111 stq sb|389,x1 " s aa 000723 700007 054111 140 aos sb|7,x1 " j aa 000724 000052 236007 140 ldq 42,dl " '**' aa 000725 700007 724111 lxl4 sb|7,x1 " j aa 000726 700006 765111 lprplb sb|6,x1 " w aa 000727 500000 756114 stq lb|0,x4 aa 000730 700007 054111 141 aos sb|7,x1 " j aa 000731 700605 236111 141 ldq sb|389,x1 " s aa 000732 700007 725111 lxl5 sb|7,x1 " j aa 000733 700006 760111 lprpap sb|6,x1 " w aa 000734 000000 756115 stq ap|0,x5 aa 000735 700605 236111 142 ldq sb|389,x1 " s aa 000736 000157 116007 cmpq 111,dl " 'o' aa 000737 000016 601004 tnz L69 aa 000740 700604 235111 lda sb|388,x1 " c aa 000741 700614 755111 sta sb|396,x1 aa 000742 700007 726111 lxl6 sb|7,x1 " j aa 000743 700006 762111 lprpbp sb|6,x1 " w aa 000744 200000 352116 eapbp bp|0,x6 aa 000745 700615 542111 sprpbp sb|397,x1 aa 000746 000010 235007 lda 8,dl " 8 aa 000747 700616 755111 sta sb|398,x1 aa 000750 000003 235007 lda 3,dl " 3 aa 000751 700617 755111 sta sb|399,x1 aa 000752 777032 272004 tsbbp L1+2 " StoreN aa 000753 000612 000004 zero 394,4 aa 000754 700007 056111 asq sb|7,x1 " j L69: L56: aa 000755 700602 054111 aos sb|386,x1 " i L47: aa 000756 700602 236111 ldq sb|386,x1 " i aa 000757 700603 116111 cmpq sb|387,x1 aa 000760 777572 604404 tmoz L48 aa 000761 700007 235111 145 lda sb|7,x1 " j aa 000762 700006 762111 lprpbp sb|6,x1 " w aa 000763 200000 755100 sta bp|0 aa 000764 700006 235111 146 lda sb|6,x1 " w aa 000765 700614 755111 sta sb|396,x1 aa 000766 700005 235111 lda sb|5,x1 " v aa 000767 700615 755111 sta sb|397,x1 4a 000770 400060 272120 tsbbp lp|L19,* " Packstring aa 000771 000612 000002 zero 394,2 aa 000772 700003 235111 147 lda sb|3,x1 " Space aa 000773 700614 755111 sta sb|396,x1 aa 000774 700465 236111 ldq sb|309,x1 " Len aa 000775 000005 402007 mpy 5,dl " 5 aa 000776 700615 756111 stq sb|397,x1 aa 000777 700003 236111 ldq sb|3,x1 " Space aa 001000 700616 756111 stq sb|398,x1 aa 001001 700005 236111 ldq sb|5,x1 " v aa 001002 700617 756111 stq sb|399,x1 4a 001003 400046 272120 tsbbp lp|L50,* " Concatenate aa 001004 000612 000004 zero 394,4 aa 001005 700003 236111 148 ldq sb|3,x1 " Space L44: aa 001006 700005 756111 stq sb|5,x1 aa 001007 700005 236111 ldq sb|5,x1 aa 001010 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001011 200000 121100 sblx1 bp|0 aa 001012 700001 764111 lprplp sb|1,x1 aa 001013 200001 710100 tra bp|1 " end of return sequence " Begin text of RemoveEscapes aa 001014 000015 122145 zero 13,42085 " RemoveEscapes aa 001015 155157 166145 zero 55919,60517 aa 001016 105163 143141 zero 35443,50785 aa 001017 160145 163000 zero 57445,58880 aa 001020 700004 756111 151 stq sb|4,x1 " temporary L41: aa 001021 000000 213000 epaq 0 " set lp to linkage section aa 001022 700026 764161 lprplp sb|22,*au aa 001023 200000 021100 adlx1 bp|0 " BCPL save aa 001024 700000 542111 sprpbp sb|0,x1 aa 001025 700001 544111 sprplp sb|1,x1 aa 001026 700641 620111 eax0 sb|417,x1 aa 001027 777760 360003 anx0 -16,du aa 001030 700025 740100 stx0 sb|21 " end of save sequence aa 001031 700010 351511 152 eapab sb|8,x1 " a vector aa 001032 700005 541111 sprpab sb|5,x1 " w aa 001033 700466 351511 eapab sb|310,x1 " a vector aa 001034 700006 541111 sprpab sb|6,x1 " v aa 001035 700007 450111 153 stz sb|7,x1 " j aa 001036 700003 236111 154 ldq sb|3,x1 " Space aa 001037 700616 756111 stq sb|398,x1 aa 001040 700617 450111 stz sb|399,x1 4a 001041 400052 272120 tsbbp lp|L45,* " SetLength aa 001042 000614 000002 zero 396,2 aa 001043 700002 236111 155 ldq sb|2,x1 " Input aa 001044 700616 756111 stq sb|398,x1 4a 001045 400050 272120 tsbbp lp|L46,* " Length aa 001046 000614 000001 zero 396,1 aa 001047 700465 756111 stq sb|309,x1 " Last aa 001050 000001 236007 ldq 1,dl " 1 aa 001051 700602 756111 stq sb|386,x1 " First aa 001052 700002 236111 156 ldq sb|2,x1 " Input aa 001053 700616 756111 stq sb|398,x1 aa 001054 700602 236111 ldq sb|386,x1 " First aa 001055 700617 756111 stq sb|399,x1 4a 001056 400044 272120 tsbbp lp|L51,* " Subch aa 001057 000614 000002 zero 396,2 aa 001060 700603 756111 stq sb|387,x1 " c aa 001061 700603 236111 157 ldq sb|387,x1 " c aa 001062 000047 116007 cmpq 39,dl " '*'' aa 001063 000004 600004 tze L74 aa 001064 700603 235111 lda sb|387,x1 " c aa 001065 000042 115007 cmpa 34,dl " '*"' aa 001066 000017 601004 tnz L73 L74: aa 001067 700465 236111 ldq sb|309,x1 " Last aa 001070 700602 116111 cmpq sb|386,x1 " First aa 001071 000014 604404 tmoz L73 aa 001072 700002 235111 lda sb|2,x1 " Input aa 001073 700616 755111 sta sb|398,x1 aa 001074 700465 235111 lda sb|309,x1 " Last aa 001075 700617 755111 sta sb|399,x1 4a 001076 400044 272120 tsbbp lp|L51,* " Subch aa 001077 000614 000002 zero 396,2 aa 001100 700603 116111 cmpq sb|387,x1 " c aa 001101 000004 601004 tnz L73 aa 001102 700602 054111 aos sb|386,x1 " First aa 001103 000001 336007 lcq 1,dl " 1 aa 001104 700465 056111 asq sb|309,x1 " Last L73: aa 001105 700602 236111 158 ldq sb|386,x1 " First aa 001106 700604 756111 stq sb|388,x1 " i aa 001107 700465 236111 ldq sb|309,x1 " Last aa 001110 700605 756111 stq sb|389,x1 aa 001111 000265 710004 tra L75 L76: aa 001112 700007 236111 159 ldq sb|7,x1 " j aa 001113 000453 116007 cmpq 299,dl aa 001114 000025 604404 tmoz L77 aa 001115 700007 235111 160 lda sb|7,x1 " j aa 001116 700005 761111 lprpab sb|5,x1 " w aa 001117 100000 755100 sta ab|0 aa 001120 700005 235111 161 lda sb|5,x1 " w aa 001121 700616 755111 sta sb|398,x1 aa 001122 700006 235111 lda sb|6,x1 " v aa 001123 700617 755111 sta sb|399,x1 4a 001124 400060 272120 tsbbp lp|L19,* " Packstring aa 001125 000614 000002 zero 396,2 aa 001126 700003 235111 162 lda sb|3,x1 " Space aa 001127 700616 755111 sta sb|398,x1 aa 001130 700465 235111 lda sb|309,x1 " Last aa 001131 700617 755111 sta sb|399,x1 aa 001132 700003 235111 lda sb|3,x1 " Space aa 001133 700620 755111 sta sb|400,x1 aa 001134 700006 235111 lda sb|6,x1 " v aa 001135 700621 755111 sta sb|401,x1 4a 001136 400046 272120 tsbbp lp|L50,* " Concatenate aa 001137 000614 000004 zero 396,4 aa 001140 700007 450111 163 stz sb|7,x1 " j L77: aa 001141 700002 235111 165 lda sb|2,x1 " Input aa 001142 700616 755111 sta sb|398,x1 aa 001143 700604 235111 lda sb|388,x1 " i aa 001144 700617 755111 sta sb|399,x1 4a 001145 400044 272120 tsbbp lp|L51,* " Subch aa 001146 000614 000002 zero 396,2 aa 001147 700603 756111 stq sb|387,x1 " c aa 001150 700603 236111 166 ldq sb|387,x1 " c aa 001151 000052 116007 cmpq 42,dl " '**' aa 001152 000216 601004 tnz L78 aa 001153 700604 235111 lda sb|388,x1 " i aa 001154 700465 115111 cmpa sb|309,x1 " Last aa 001155 000213 605004 tpl L78 aa 001156 700604 054111 167 aos sb|388,x1 " i aa 001157 700002 236111 168 ldq sb|2,x1 " Input aa 001160 700616 756111 stq sb|398,x1 aa 001161 700604 236111 ldq sb|388,x1 " i aa 001162 700617 756111 stq sb|399,x1 4a 001163 400044 272120 tsbbp lp|L51,* " Subch aa 001164 000614 000002 zero 396,2 aa 001165 700603 756111 stq sb|387,x1 " c aa 001166 000105 710004 170 tra L81 L82: aa 001167 000040 236007 ldq 32,dl " '*s' aa 001170 000175 710004 171 tra L79 L83: aa 001171 000012 236007 ldq 10,dl " '*n' aa 001172 000173 710004 172 tra L79 L84: aa 001173 000011 236007 ldq 9,dl " '*t' aa 001174 000171 710004 173 tra L79 L85: aa 001175 000010 236007 ldq 8,dl " '*b' aa 001176 000167 710004 174 tra L79 L86: aa 001177 000015 236007 ldq 13,dl " '*r' aa 001200 000165 710004 175 tra L79 L87: aa 001201 000014 236007 ldq 12,dl " '*f' aa 001202 000163 710004 176 tra L79 L88: aa 001203 000013 236007 ldq 11,dl " '*v' aa 001204 000161 710004 177 tra L79 L89: aa 001205 000017 236007 ldq 15,dl " '*k' aa 001206 000157 710004 178 tra L79 L90: aa 001207 000016 236007 ldq 14,dl " '*d' aa 001210 000155 710004 180 tra L79 L91: L92: aa 001211 700604 054111 aos sb|388,x1 " i aa 001212 700002 235111 lda sb|2,x1 " Input aa 001213 700616 755111 sta sb|398,x1 aa 001214 700604 235111 lda sb|388,x1 " i aa 001215 700617 755111 sta sb|399,x1 4a 001216 400044 272120 tsbbp lp|L51,* " Subch aa 001217 000614 000002 zero 396,2 aa 001220 000052 116007 cmpq 42,dl " '**' aa 001221 000004 600004 tze L93 aa 001222 700604 236111 ldq sb|388,x1 " i aa 001223 700465 116111 cmpq sb|309,x1 " Last aa 001224 777765 604004 tmi L92 L93: aa 001225 000150 710004 182 tra L94 L95: aa 001226 700606 450111 stz sb|390,x1 " n aa 001227 000001 235007 183 lda 1,dl " 1 aa 001230 700607 755111 sta sb|391,x1 " k aa 001231 000033 710004 tra L96 L97: aa 001232 700604 235111 184 lda sb|388,x1 " i aa 001233 700465 115111 cmpa sb|309,x1 " Last aa 001234 000033 605004 tpl L98 aa 001235 700002 236111 185 ldq sb|2,x1 " Input aa 001236 700616 756111 stq sb|398,x1 aa 001237 700604 236111 ldq sb|388,x1 " i aa 001240 000001 076007 adq 1,dl " 1 aa 001241 700617 756111 stq sb|399,x1 4a 001242 400044 272120 tsbbp lp|L51,* " Subch aa 001243 000614 000002 zero 396,2 aa 001244 700610 756111 stq sb|392,x1 " c aa 001245 000060 236007 186 ldq 48,dl " '0' aa 001246 700610 116111 cmpq sb|392,x1 " c aa 001247 000020 605404 tpnz L98 aa 001250 700610 235111 lda sb|392,x1 " c aa 001251 000067 115007 cmpa 55,dl " '7' aa 001252 000015 605404 tpnz L98 aa 001253 700610 236111 187 ldq sb|392,x1 " c aa 001254 000060 176007 sbq 48,dl " '0' aa 001255 700606 235111 lda sb|390,x1 " n aa 001256 000003 735000 als 3 aa 001257 600000 755100 sta sp|0 aa 001260 600000 276100 orq sp|0 aa 001261 700606 756111 stq sb|390,x1 " n aa 001262 700604 054111 188 aos sb|388,x1 " i aa 001263 700607 054111 aos sb|391,x1 " k L96: aa 001264 700607 236111 ldq sb|391,x1 " k aa 001265 000003 116007 cmpq 3,dl " 3 aa 001266 777744 604404 tmoz L97 L98: aa 001267 700606 236111 190 ldq sb|390,x1 " n aa 001270 000075 710004 192 tra L79 L99: aa 001271 700603 236111 ldq sb|387,x1 " c aa 001272 000073 710004 tra L79 L81: " Begin switchon aa 001273 700603 235111 lda sb|387,x1 " c aa 001274 000102 175007 sba 66,dl aa 001275 000065 115007 cmpa 53,dl aa 001276 777773 603004 trc L99 0a 001277 001300 710005 tra L100,al L100: aa 001300 777675 710004 tra L85 aa 001301 777710 710004 tra L91 aa 001302 777705 710004 tra L90 aa 001303 777766 710004 tra L99 aa 001304 777675 710004 tra L87 aa 001305 777764 710004 tra L99 aa 001306 777763 710004 tra L99 aa 001307 777762 710004 tra L99 aa 001310 777761 710004 tra L99 aa 001311 777674 710004 tra L89 aa 001312 777757 710004 tra L99 aa 001313 777756 710004 tra L99 aa 001314 777655 710004 tra L83 aa 001315 777711 710004 tra L95 aa 001316 777753 710004 tra L99 aa 001317 777752 710004 tra L99 aa 001320 777657 710004 tra L86 aa 001321 777646 710004 tra L82 aa 001322 777651 710004 tra L84 aa 001323 777746 710004 tra L99 aa 001324 777657 710004 tra L88 aa 001325 777744 710004 tra L99 aa 001326 777743 710004 tra L99 aa 001327 777742 710004 tra L99 aa 001330 777741 710004 tra L99 aa 001331 777740 710004 tra L99 aa 001332 777737 710004 tra L99 aa 001333 777736 710004 tra L99 aa 001334 777735 710004 tra L99 aa 001335 777734 710004 tra L99 aa 001336 777733 710004 tra L99 aa 001337 777732 710004 tra L99 aa 001340 777635 710004 tra L85 aa 001341 777650 710004 tra L91 aa 001342 777645 710004 tra L90 aa 001343 777726 710004 tra L99 aa 001344 777635 710004 tra L87 aa 001345 777724 710004 tra L99 aa 001346 777723 710004 tra L99 aa 001347 777722 710004 tra L99 aa 001350 777721 710004 tra L99 aa 001351 777634 710004 tra L89 aa 001352 777717 710004 tra L99 aa 001353 777716 710004 tra L99 aa 001354 777615 710004 tra L83 aa 001355 777651 710004 tra L95 aa 001356 777713 710004 tra L99 aa 001357 777712 710004 tra L99 aa 001360 777617 710004 tra L86 aa 001361 777606 710004 tra L82 aa 001362 777611 710004 tra L84 aa 001363 777706 710004 tra L99 aa 001364 777617 710004 tra L88 L80: L79: aa 001365 700606 756111 stq sb|390,x1 aa 001366 700606 236111 ldq sb|390,x1 aa 001367 700603 756111 stq sb|387,x1 " c L78: aa 001370 700007 054111 195 aos sb|7,x1 " j aa 001371 700603 236111 196 ldq sb|387,x1 " c aa 001372 700007 722111 lxl2 sb|7,x1 " j aa 001373 700005 763111 lprpbb sb|5,x1 " w aa 001374 300000 756112 stq bb|0,x2 L94: aa 001375 700604 054111 aos sb|388,x1 " i L75: aa 001376 700604 236111 ldq sb|388,x1 " i aa 001377 700605 116111 cmpq sb|389,x1 aa 001400 777512 604404 tmoz L76 aa 001401 700007 235111 199 lda sb|7,x1 " j aa 001402 700005 765111 lprplb sb|5,x1 " w aa 001403 500000 755100 sta lb|0 aa 001404 700005 235111 200 lda sb|5,x1 " w aa 001405 700616 755111 sta sb|398,x1 aa 001406 700006 235111 lda sb|6,x1 " v aa 001407 700617 755111 sta sb|399,x1 4a 001410 400060 272120 tsbbp lp|L19,* " Packstring aa 001411 000614 000002 zero 396,2 aa 001412 700003 235111 201 lda sb|3,x1 " Space aa 001413 700616 755111 sta sb|398,x1 aa 001414 700465 235111 lda sb|309,x1 " Last aa 001415 700617 755111 sta sb|399,x1 aa 001416 700003 235111 lda sb|3,x1 " Space aa 001417 700620 755111 sta sb|400,x1 aa 001420 700006 235111 lda sb|6,x1 " v aa 001421 700621 755111 sta sb|401,x1 4a 001422 400046 272120 tsbbp lp|L50,* " Concatenate aa 001423 000614 000004 zero 396,4 aa 001424 700003 235111 202 lda sb|3,x1 " Space L72: aa 001425 700005 755111 sta sb|5,x1 aa 001426 700005 235111 lda sb|5,x1 aa 001427 000044 777000 llr 36 " exchange A and Q aa 001430 700000 762111 lprpbp sb|0,x1 " bcpl return aa 001431 200000 121100 sblx1 bp|0 aa 001432 700001 764111 lprplp sb|1,x1 aa 001433 200001 710100 tra bp|1 " end of return sequence " Begin text of ConvertStoN aa 001434 000013 103157 zero 11,34415 " ConvertStoN aa 001435 156166 145162 zero 56438,51826 aa 001436 164123 164157 zero 59475,59503 aa 001437 116000 000000 zero 39936 aa 001440 700004 756111 206 stq sb|4,x1 " temporary L101: aa 001441 000000 213000 epaq 0 " set lp to linkage section aa 001442 700026 764161 lprplp sb|22,*au aa 001443 200000 021100 adlx1 bp|0 " BCPL save aa 001444 700000 542111 sprpbp sb|0,x1 aa 001445 700001 544111 sprplp sb|1,x1 aa 001446 701047 620111 eax0 sb|551,x1 aa 001447 777760 360003 anx0 -16,du aa 001450 700025 740100 stx0 sb|21 " end of save sequence 4a 001451 400062 272120 209 tsbbp lp|L14,* " NumbArgs aa 001452 001024 000000 zero 532 aa 001453 000002 116007 cmpq 2,dl " 2 aa 001454 000003 605004 tpl L105 aa 001455 000012 236007 ldq 10,dl " 10 aa 001456 700003 756111 stq sb|3,x1 " Base L105: aa 001457 700010 350111 210 eapap sb|8,x1 " a vector aa 001460 700005 540111 sprpap sb|5,x1 " Unpacked aa 001461 700002 236111 211 ldq sb|2,x1 " String aa 001462 701026 756111 stq sb|534,x1 aa 001463 700005 236111 ldq sb|5,x1 " Unpacked aa 001464 701027 756111 stq sb|535,x1 4a 001465 400042 272120 tsbbp lp|L106,* " Unpackstring aa 001466 001024 000002 zero 532,2 aa 001467 700005 760111 212 lprpap sb|5,x1 " Unpacked aa 001470 000000 236100 ldq ap|0 aa 001471 700007 756111 stq sb|7,x1 " Length aa 001472 000001 236007 ldq 1,dl " 1 aa 001473 700006 756111 stq sb|6,x1 " Index aa 001474 701012 450111 213 stz sb|522,x1 " Integer aa 001475 400000 236003 ldq -131072,du " 0.0 aa 001476 701011 756111 stq sb|521,x1 " Real aa 001477 701013 450111 214 stz sb|523,x1 " Neg aa 001500 600046 450100 215 stz sp|38 " Errcode aa 001501 700007 236111 218 ldq sb|7,x1 " Length aa 001502 701014 756111 stq sb|524,x1 " i aa 001503 000032 710004 tra L107 L108: aa 001504 701014 723111 lxl3 sb|524,x1 " i aa 001505 700005 762111 lprpbp sb|5,x1 " Unpacked aa 001506 200000 236113 ldq bp|0,x3 aa 001507 000040 116007 cmpq 32,dl " '*s' aa 001510 000023 601004 tnz L109 aa 001511 000001 335007 219 lca 1,dl " 1 aa 001512 700007 055111 asa sb|7,x1 " Length aa 001513 701014 235111 220 lda sb|524,x1 " i aa 001514 701015 755111 sta sb|525,x1 " j aa 001515 700007 235111 lda sb|7,x1 " Length aa 001516 701016 755111 sta sb|526,x1 aa 001517 000011 710004 tra L110 L111: aa 001520 701015 235111 lda sb|525,x1 " j aa 001521 000001 075007 ada 1,dl " 1 aa 001522 700005 761111 lprpab sb|5,x1 " Unpacked aa 001523 100000 236105 ldq ab|0,al aa 001524 701015 724111 lxl4 sb|525,x1 " j aa 001525 700005 763111 lprpbb sb|5,x1 " Unpacked aa 001526 300000 756114 stq bb|0,x4 aa 001527 701015 054111 aos sb|525,x1 " j L110: aa 001530 701015 236111 ldq sb|525,x1 " j aa 001531 701016 116111 cmpq sb|526,x1 aa 001532 777766 604404 tmoz L111 L109: aa 001533 000001 335007 lca 1,dl aa 001534 701014 055111 asa sb|524,x1 " i L107: aa 001535 701014 235111 lda sb|524,x1 " i aa 001536 000001 115007 cmpa 1,dl " 1 aa 001537 777745 605004 tpl L108 aa 001540 700006 725111 223 lxl5 sb|6,x1 " Index aa 001541 700005 765111 lprplb sb|5,x1 " Unpacked aa 001542 500000 236115 ldq lb|0,x5 aa 001543 701014 756111 stq sb|524,x1 " Ch aa 001544 701014 236111 224 ldq sb|524,x1 " Ch aa 001545 000055 116007 cmpq 45,dl " '-' aa 001546 000004 600004 tze L113 aa 001547 701014 235111 lda sb|524,x1 " Ch aa 001550 000053 115007 cmpa 43,dl " '+' aa 001551 000013 601004 tnz L112 L113: aa 001552 701014 236111 225 ldq sb|524,x1 " Ch aa 001553 000055 116007 cmpq 45,dl " '-' aa 001554 000003 601004 tnz L114 aa 001555 000001 335007 lca 1,dl " true aa 001556 701013 755111 sta sb|523,x1 " Neg L114: aa 001557 700006 054111 226 aos sb|6,x1 " Index aa 001560 700006 726111 227 lxl6 sb|6,x1 " Index aa 001561 700005 760111 lprpap sb|5,x1 " Unpacked aa 001562 000000 235116 lda ap|0,x6 aa 001563 701014 755111 sta sb|524,x1 " Ch L112: aa 001564 701014 235111 229 lda sb|524,x1 " Ch aa 001565 000044 115007 cmpa 36,dl " '$' aa 001566 000046 601004 tnz L115 aa 001567 700006 236111 ldq sb|6,x1 " Index aa 001570 700007 116111 cmpq sb|7,x1 " Length aa 001571 000043 605004 tpl L115 aa 001572 700006 235111 230 lda sb|6,x1 " Index aa 001573 000001 075007 ada 1,dl " 1 aa 001574 700005 762111 lprpbp sb|5,x1 " Unpacked aa 001575 200000 236105 ldq bp|0,al aa 001576 701014 756111 stq sb|524,x1 " Ch aa 001577 000062 236007 231 ldq 50,dl " '2' aa 001600 701014 116111 cmpq sb|524,x1 " Ch aa 001601 000010 605404 tpnz L116 aa 001602 701014 235111 lda sb|524,x1 " Ch aa 001603 000071 115007 cmpa 57,dl " '9' aa 001604 000005 605404 tpnz L116 aa 001605 701014 236111 232 ldq sb|524,x1 " Ch aa 001606 000060 176007 sbq 48,dl " '0' aa 001607 700003 756111 stq sb|3,x1 " Base aa 001610 000016 710004 tra L117 L116: aa 001611 701014 236111 233 ldq sb|524,x1 " Ch aa 001612 000170 116007 cmpq 120,dl " 'x' aa 001613 000004 600004 tze L120 aa 001614 701014 235111 lda sb|524,x1 " Ch aa 001615 000130 115007 cmpa 88,dl " 'X' aa 001616 000004 601004 tnz L118 L120: aa 001617 000020 236007 234 ldq 16,dl " 16 aa 001620 700003 756111 stq sb|3,x1 " Base aa 001621 000005 710004 tra L119 L118: 4a 001622 400040 236120 235 ldq lp|L121,* aa 001623 600046 756100 stq sp|38 " Errcode aa 001624 000000 236007 236 ldq 0,dl " 0 aa 001625 000266 710004 tra L104 L119: L117: aa 001626 000002 235007 238 lda 2,dl " 2 aa 001627 700006 055111 asa sb|6,x1 " Index aa 001630 700006 722111 239 lxl2 sb|6,x1 " Index aa 001631 700005 761111 lprpab sb|5,x1 " Unpacked aa 001632 100000 235112 lda ab|0,x2 aa 001633 701014 755111 sta sb|524,x1 " Ch L115: aa 001634 000050 710004 241 tra L122 L123: aa 001635 701014 235111 242 lda sb|524,x1 " Ch aa 001636 000060 175007 sba 48,dl " '0' aa 001637 701015 755111 sta sb|525,x1 " N aa 001640 701015 234111 243 szn sb|525,x1 " N aa 001641 000004 604004 tmi L125 aa 001642 701015 235111 lda sb|525,x1 " N aa 001643 700003 115111 cmpa sb|3,x1 " Base aa 001644 000013 604004 tmi L124 L125: aa 001645 701014 236111 244 ldq sb|524,x1 " Ch aa 001646 000101 176007 sbq 65,dl " 'A' aa 001647 000012 076007 adq 10,dl " 10 aa 001650 701015 756111 stq sb|525,x1 " N aa 001651 000012 236007 245 ldq 10,dl " 10 aa 001652 701015 116111 cmpq sb|525,x1 " N aa 001653 000034 605404 tpnz L126 aa 001654 701015 235111 lda sb|525,x1 " N aa 001655 700003 115111 cmpa sb|3,x1 " Base aa 001656 000031 605004 tpl L126 L124: aa 001657 701012 236111 247 ldq sb|522,x1 " Integer aa 001660 700003 402111 mpy sb|3,x1 " Base aa 001661 701015 076111 adq sb|525,x1 " N aa 001662 701012 756111 stq sb|522,x1 " Integer aa 001663 700003 236111 248 ldq sb|3,x1 " Base aa 001664 000012 116007 cmpq 10,dl " 10 aa 001665 000012 601004 tnz L127 aa 001666 701015 235111 lda sb|525,x1 " N aa 001667 701026 755111 sta sb|534,x1 4a 001670 400054 272120 tsbbp lp|L34,* " ItoR aa 001671 001024 000001 zero 532,1 aa 001672 701016 756111 stq sb|526,x1 " temporary aa 001673 701011 431111 fld sb|521,x1 " Real aa 001674 010500 461003 fmp 4416,du " 10.0 aa 001675 701016 475111 fad sb|526,x1 aa 001676 701011 470111 fstr sb|521,x1 " Real L127: aa 001677 700006 054111 249 aos sb|6,x1 " Index aa 001700 700006 723111 250 lxl3 sb|6,x1 " Index aa 001701 700005 763111 lprpbb sb|5,x1 " Unpacked aa 001702 300000 236113 ldq bb|0,x3 aa 001703 701014 756111 stq sb|524,x1 " Ch L122: aa 001704 700006 236111 ldq sb|6,x1 " Index aa 001705 700007 116111 cmpq sb|7,x1 " Length aa 001706 777727 604404 tmoz L123 L126: aa 001707 701013 234111 252 szn sb|523,x1 " Neg aa 001710 000003 600004 tze L128 aa 001711 000000 235007 lda 0,dl aa 001712 701012 155111 ssa sb|522,x1 " Integer L128: aa 001713 700006 235111 253 lda sb|6,x1 " Index aa 001714 700007 115111 cmpa sb|7,x1 " Length aa 001715 000003 604404 tmoz L129 aa 001716 701012 236111 ldq sb|522,x1 " Integer aa 001717 000174 710004 tra L104 L129: aa 001720 701014 235111 254 lda sb|524,x1 " Ch aa 001721 000056 115007 cmpa 46,dl " '.' aa 001722 000004 601004 tnz L131 aa 001723 700003 236111 ldq sb|3,x1 " Base aa 001724 000012 116007 cmpq 10,dl " 10 aa 001725 000005 600004 tze L130 L131: 4a 001726 400040 235120 255 lda lp|L121,* aa 001727 600046 755100 sta sp|38 " Errcode aa 001730 701012 236111 256 ldq sb|522,x1 " Integer aa 001731 000162 710004 tra L104 L130: aa 001732 400000 235003 259 lda -131072,du " 0.0 aa 001733 701015 755111 sta sb|525,x1 " Fraction aa 001734 002400 235003 lda 1280,du " 1.0 aa 001735 701016 755111 sta sb|526,x1 " Div L132: aa 001736 700006 054111 260 aos sb|6,x1 " Index aa 001737 700006 724111 261 lxl4 sb|6,x1 " Index aa 001740 700005 765111 lprplb sb|5,x1 " Unpacked aa 001741 500000 235114 lda lb|0,x4 aa 001742 701014 755111 sta sb|524,x1 " Ch aa 001743 700006 235111 262 lda sb|6,x1 " Index aa 001744 700007 115111 cmpa sb|7,x1 " Length aa 001745 000025 605404 tpnz L133 aa 001746 000060 236007 ldq 48,dl " '0' aa 001747 701014 116111 cmpq sb|524,x1 " Ch aa 001750 000022 605404 tpnz L133 aa 001751 701014 235111 lda sb|524,x1 " Ch aa 001752 000071 115007 cmpa 57,dl " '9' aa 001753 000017 605404 tpnz L133 aa 001754 701016 431111 263 fld sb|526,x1 " Div aa 001755 010500 461003 fmp 4416,du " 10.0 aa 001756 701016 470111 fstr sb|526,x1 " Div aa 001757 701014 236111 264 ldq sb|524,x1 " Ch aa 001760 000060 176007 sbq 48,dl " '0' aa 001761 701026 756111 stq sb|534,x1 4a 001762 400054 272120 tsbbp lp|L34,* " ItoR aa 001763 001024 000001 zero 532,1 aa 001764 701017 756111 stq sb|527,x1 " temporary aa 001765 701015 431111 fld sb|525,x1 " Fraction aa 001766 010500 461003 fmp 4416,du " 10.0 aa 001767 701017 475111 fad sb|527,x1 aa 001770 701015 470111 fstr sb|525,x1 " Fraction aa 001771 777745 710004 tra L132 L133: aa 001772 701015 431111 266 fld sb|525,x1 " Fraction aa 001773 701016 565111 fdv sb|526,x1 " Div aa 001774 701011 475111 fad sb|521,x1 " Real aa 001775 701011 470111 fstr sb|521,x1 " Real aa 001776 700006 236111 267 ldq sb|6,x1 " Index aa 001777 700007 116111 cmpq sb|7,x1 " Length aa 002000 000100 605004 tpl L134 aa 002001 701014 235111 lda sb|524,x1 " Ch aa 002002 000145 115007 cmpa 101,dl " 'e' aa 002003 000004 600004 tze L135 aa 002004 701014 236111 ldq sb|524,x1 " Ch aa 002005 000105 116007 cmpq 69,dl " 'E' aa 002006 000072 601004 tnz L134 L135: aa 002007 701017 450111 268 stz sb|527,x1 " Neg aa 002010 701020 450111 269 stz sb|528,x1 " Exp aa 002011 700006 054111 270 aos sb|6,x1 " Index aa 002012 700006 725111 271 lxl5 sb|6,x1 " Index aa 002013 700005 760111 lprpap sb|5,x1 " Unpacked aa 002014 000000 235115 lda ap|0,x5 aa 002015 701014 755111 sta sb|524,x1 " Ch aa 002016 701014 235111 272 lda sb|524,x1 " Ch aa 002017 000055 115007 cmpa 45,dl " '-' aa 002020 000004 600004 tze L137 aa 002021 701014 236111 ldq sb|524,x1 " Ch aa 002022 000053 116007 cmpq 43,dl " '+' aa 002023 000013 601004 tnz L136 L137: aa 002024 701014 235111 273 lda sb|524,x1 " Ch aa 002025 000055 115007 cmpa 45,dl " '-' aa 002026 000003 601004 tnz L138 aa 002027 000001 336007 lcq 1,dl " true aa 002030 701017 756111 stq sb|527,x1 " Neg L138: aa 002031 700006 054111 274 aos sb|6,x1 " Index aa 002032 700006 726111 275 lxl6 sb|6,x1 " Index aa 002033 700005 762111 lprpbp sb|5,x1 " Unpacked aa 002034 200000 236116 ldq bp|0,x6 aa 002035 701014 756111 stq sb|524,x1 " Ch L136: aa 002036 000013 710004 277 tra L139 L140: aa 002037 701020 236111 278 ldq sb|528,x1 " Exp aa 002040 000012 402007 mpy 10,dl " 10 aa 002041 701014 076111 adq sb|524,x1 " Ch aa 002042 000060 176007 sbq 48,dl " '0' aa 002043 701020 756111 stq sb|528,x1 " Exp aa 002044 700006 054111 279 aos sb|6,x1 " Index aa 002045 700006 722111 280 lxl2 sb|6,x1 " Index aa 002046 700005 761111 lprpab sb|5,x1 " Unpacked aa 002047 100000 236112 ldq ab|0,x2 aa 002050 701014 756111 stq sb|524,x1 " Ch L139: aa 002051 700006 236111 ldq sb|6,x1 " Index aa 002052 700007 116111 cmpq sb|7,x1 " Length aa 002053 000007 605404 tpnz L141 aa 002054 000060 235007 lda 48,dl " '0' aa 002055 701014 115111 cmpa sb|524,x1 " Ch aa 002056 000004 605404 tpnz L142 aa 002057 701014 236111 ldq sb|524,x1 " Ch aa 002060 000071 116007 cmpq 57,dl " '9' aa 002061 777756 604404 tmoz L140 L142: L141: aa 002062 701017 234111 282 szn sb|527,x1 " Neg aa 002063 000003 600004 tze L143 aa 002064 000000 235007 lda 0,dl aa 002065 701020 155111 ssa sb|528,x1 " Exp L143: aa 002066 010500 235003 283 lda 4416,du " 10.0 aa 002067 701026 755111 sta sb|534,x1 aa 002070 701020 235111 lda sb|528,x1 " Exp aa 002071 701027 755111 sta sb|535,x1 4a 002072 400036 272120 tsbbp lp|L144,* " RpowerI aa 002073 001024 000002 zero 532,2 aa 002074 701021 756111 stq sb|529,x1 " temporary aa 002075 701011 431111 fld sb|521,x1 " Real aa 002076 701021 461111 fmp sb|529,x1 aa 002077 701011 470111 fstr sb|521,x1 " Real L134: aa 002100 701013 234111 285 szn sb|523,x1 " Neg aa 002101 000004 600004 tze L145 aa 002102 701011 431111 fld sb|521,x1 " Real aa 002103 000000 513007 fneg 0,dl aa 002104 701011 470111 fstr sb|521,x1 " Real L145: aa 002105 700006 236111 286 ldq sb|6,x1 " Index aa 002106 700007 116111 cmpq sb|7,x1 " Length aa 002107 000003 605404 tpnz L146 4a 002110 400040 235120 lda lp|L121,* aa 002111 600046 755100 sta sp|38 " Errcode L146: aa 002112 701011 236111 287 ldq sb|521,x1 " Real L104: aa 002113 700005 756111 stq sb|5,x1 aa 002114 700005 236111 ldq sb|5,x1 aa 002115 700000 762111 lprpbp sb|0,x1 " bcpl return aa 002116 200000 121100 sblx1 bp|0 aa 002117 700001 764111 lprplp sb|1,x1 aa 002120 200001 710100 tra bp|1 " end of return sequence " Begin text of StoreDate aa 002121 000011 123164 zero 9,42612 " StoreDate aa 002122 157162 145104 zero 56946,51780 aa 002123 141164 145000 zero 49780,51712 aa 002124 700004 756111 297 stq sb|4,x1 " temporary L147: aa 002125 000000 213000 epaq 0 " set lp to linkage section aa 002126 700026 764161 lprplp sb|22,*au aa 002127 200000 021100 adlx1 bp|0 " BCPL save aa 002130 700000 542111 sprpbp sb|0,x1 aa 002131 700001 544111 sprplp sb|1,x1 aa 002132 700423 620111 eax0 sb|275,x1 aa 002133 777760 360003 anx0 -16,du aa 002134 700025 740100 stx0 sb|21 " end of save sequence aa 002135 700002 236111 298 ldq sb|2,x1 " SecondsSince1901 aa 002136 000001 176007 sbq 1,dl " 1 aa 002137 700056 756111 stq sb|46,x1 aa 002140 250600 236007 ldq 86400,dl aa 002141 700057 756111 stq sb|47,x1 aa 002142 001021 272004 tsbbp L148+2 " Mod aa 002143 000054 000002 zero 44,2 aa 002144 000001 076007 adq 1,dl " 1 aa 002145 700005 756111 stq sb|5,x1 " SecondsSinceMidnight aa 002146 700002 236111 299 ldq sb|2,x1 " SecondsSince1901 aa 002147 700005 176111 sbq sb|5,x1 " SecondsSinceMidnight aa 002150 250600 506007 div 86400,dl aa 002151 700006 756111 stq sb|6,x1 " DaysSince1901 aa 002152 700006 236111 300 ldq sb|6,x1 " DaysSince1901 aa 002153 700056 756111 stq sb|46,x1 aa 002154 002665 236007 ldq 1461,dl " 1461 aa 002155 700057 756111 stq sb|47,x1 aa 002156 001005 272004 tsbbp L148+2 " Mod aa 002157 000054 000002 zero 44,2 aa 002160 700007 756111 stq sb|7,x1 " DayOfCycle aa 002161 700007 236111 301 ldq sb|7,x1 " DayOfCycle aa 002162 000037 506007 div 31,dl " 31 aa 002163 700010 756111 stq sb|8,x1 " MonthOfCycle aa 002164 000250 353404 302 eapbb L154 " a table aa 002165 700011 543111 sprpbb sb|9,x1 " Table aa 002166 700010 236111 307 ldq sb|8,x1 " MonthOfCycle aa 002167 000001 076007 adq 1,dl " 1 aa 002170 700007 235111 lda sb|7,x1 " DayOfCycle aa 002171 700011 763111 lprpbb sb|9,x1 " Table aa 002172 300000 115106 cmpa bb|0,ql aa 002173 000002 604004 tmi L155 aa 002174 700010 054111 aos sb|8,x1 " MonthOfCycle L155: aa 002175 700010 236111 309 ldq sb|8,x1 " MonthOfCycle aa 002176 000014 506007 div 12,dl " 12 aa 002177 700012 755111 sta sb|10,x1 " MonthOfYear aa 002200 700007 235111 310 lda sb|7,x1 " DayOfCycle aa 002201 700010 723111 lxl3 sb|8,x1 " MonthOfCycle aa 002202 700011 765111 lprplb sb|9,x1 " Table aa 002203 500000 175113 sba lb|0,x3 aa 002204 700013 755111 sta sb|11,x1 " DayOfMonth aa 002205 700006 235111 312 lda sb|6,x1 " DaysSince1901 aa 002206 000002 075007 ada 2,dl " 2 aa 002207 700056 755111 sta sb|46,x1 aa 002210 000007 235007 lda 7,dl " 7 aa 002211 700057 755111 sta sb|47,x1 aa 002212 000751 272004 tsbbp L148+2 " Mod aa 002213 000054 000002 zero 44,2 aa 002214 700015 756111 stq sb|13,x1 " DayOfWeek aa 002215 700006 236111 311 ldq sb|6,x1 " DaysSince1901 aa 002216 700007 176111 sbq sb|7,x1 " DayOfCycle aa 002217 002665 506007 div 1461,dl " 1461 aa 002220 000002 736000 qls 2 aa 002221 003555 076007 adq 1901,dl " 1901 aa 002222 700007 235111 lda sb|7,x1 " DayOfCycle aa 002223 000002 735000 als 2 aa 002224 000044 777000 llr 36 " exchange A and Q aa 002225 700016 755111 sta sb|14,x1 " temporary aa 002226 002665 506007 div 1461,dl " 1461 aa 002227 700016 076111 adq sb|14,x1 aa 002230 700014 756111 stq sb|12,x1 " Year aa 002231 000337 350004 314 eapap L156 " "April" aa 002232 700027 540111 sprpap sb|23,x1 aa 002233 000332 350004 eapap L157 " "November" aa 002234 700036 540111 sprpap sb|30,x1 aa 002235 000325 350004 eapap L158 " "October" aa 002236 700035 540111 sprpap sb|29,x1 aa 002237 000320 350004 eapap L159 " "September" aa 002240 700034 540111 sprpap sb|28,x1 aa 002241 000314 350004 eapap L160 " "June" aa 002242 700031 540111 sprpap sb|25,x1 aa 002243 000310 350004 eapap L161 " "March" aa 002244 700026 540111 sprpap sb|22,x1 aa 002245 000303 350004 eapap L162 " "January" aa 002246 700024 540111 sprpap sb|20,x1 aa 002247 000276 350004 eapap L163 " "February" aa 002250 700025 540111 sprpap sb|21,x1 aa 002251 000272 350004 eapap L164 " "May" aa 002252 700030 540111 sprpap sb|24,x1 aa 002253 000266 350004 eapap L165 " "July" aa 002254 700032 540111 sprpap sb|26,x1 aa 002255 000262 350004 eapap L166 " "August" aa 002256 700033 540111 sprpap sb|27,x1 aa 002257 000255 350004 eapap L167 " "December" aa 002260 700037 540111 sprpap sb|31,x1 aa 002261 700024 350111 eapap sb|20,x1 " a list aa 002262 700016 540111 sprpap sb|14,x1 " MonthNames aa 002263 000247 350004 316 eapap L168 " "Friday" aa 002264 700045 540111 sprpap sb|37,x1 aa 002265 000243 350004 eapap L169 " "Monday" aa 002266 700041 540111 sprpap sb|33,x1 aa 002267 000236 350004 eapap L170 " "Thursday" aa 002270 700044 540111 sprpap sb|36,x1 aa 002271 000231 350004 eapap L171 " "Tuesday" aa 002272 700042 540111 sprpap sb|34,x1 aa 002273 000225 350004 eapap L172 " "Sunday" aa 002274 700040 540111 sprpap sb|32,x1 aa 002275 000220 350004 eapap L173 " "Saturday" aa 002276 700046 540111 sprpap sb|38,x1 aa 002277 000132 350004 eapap L174 " "Wednesday" aa 002300 700043 540111 sprpap sb|35,x1 aa 002301 700040 350111 eapap sb|32,x1 " a list aa 002302 700017 540111 sprpap sb|15,x1 " DayNames aa 002303 700012 724111 318 lxl4 sb|10,x1 " MonthOfYear aa 002304 700016 760111 lprpap sb|14,x1 " MonthNames aa 002305 000000 236114 ldq ap|0,x4 aa 002306 700003 762111 lprpbp sb|3,x1 " Space aa 002307 200001 756100 stq bp|1 aa 002310 700012 236111 ldq sb|10,x1 " MonthOfYear aa 002311 000001 076007 adq 1,dl " 1 aa 002312 700003 761111 lprpab sb|3,x1 " Space aa 002313 100000 756100 stq ab|0 aa 002314 700013 236111 319 ldq sb|11,x1 " DayOfMonth aa 002315 000001 076007 adq 1,dl " 1 aa 002316 700003 763111 lprpbb sb|3,x1 " Space aa 002317 300002 756100 stq bb|2 aa 002320 700014 236111 ldq sb|12,x1 " Year aa 002321 700003 765111 lprplb sb|3,x1 " Space aa 002322 500003 756100 stq lb|3 aa 002323 700015 725111 320 lxl5 sb|13,x1 " DayOfWeek aa 002324 700017 760111 lprpap sb|15,x1 " DayNames aa 002325 000000 236115 ldq ap|0,x5 aa 002326 700003 762111 lprpbp sb|3,x1 " Space aa 002327 200005 756100 stq bp|5 aa 002330 700015 236111 ldq sb|13,x1 " DayOfWeek aa 002331 700003 761111 lprpab sb|3,x1 " Space aa 002332 100004 756100 stq ab|4 aa 002333 700005 236111 322 ldq sb|5,x1 " SecondsSinceMidnight aa 002334 007020 506007 div 3600,dl " 3600 aa 002335 700003 763111 lprpbb sb|3,x1 " Space aa 002336 300006 756100 stq bb|6 aa 002337 700005 236111 323 ldq sb|5,x1 " SecondsSinceMidnight aa 002340 000074 506007 div 60,dl " 60 aa 002341 000074 506007 div 60,dl " 60 aa 002342 700003 765111 lprplb sb|3,x1 " Space aa 002343 500007 755100 sta lb|7 aa 002344 700005 236111 324 ldq sb|5,x1 " SecondsSinceMidnight aa 002345 000074 506007 div 60,dl " 60 aa 002346 700003 760111 lprpap sb|3,x1 " Space aa 002347 000010 755100 sta ap|8 aa 002350 700010 235111 326 lda sb|8,x1 " MonthOfCycle aa 002351 700012 175111 sba sb|10,x1 " MonthOfYear aa 002352 700020 755111 sta sb|16,x1 " FirstMonthOfYear aa 002353 700020 235111 327 lda sb|16,x1 " FirstMonthOfYear aa 002354 000004 075007 ada 4,dl " 4 aa 002355 700011 762111 lprpbp sb|9,x1 " Table aa 002356 200000 236105 ldq bp|0,al aa 002357 000001 176007 sbq 1,dl " 1 aa 002360 700021 756111 stq sb|17,x1 " LastDayOfApril aa 002361 700020 236111 328 ldq sb|16,x1 " FirstMonthOfYear aa 002362 000012 076007 adq 10,dl " 10 aa 002363 700011 761111 lprpab sb|9,x1 " Table aa 002364 100000 235106 lda ab|0,ql aa 002365 000001 175007 sba 1,dl " 1 aa 002366 700022 755111 sta sb|18,x1 " LastDayOfOctober aa 002367 700021 236111 329 ldq sb|17,x1 " LastDayOfApril aa 002370 700015 076111 adq sb|13,x1 " DayOfWeek aa 002371 700007 176111 sbq sb|7,x1 " DayOfCycle aa 002372 017141 076007 adq 7777,dl " 7777 aa 002373 000007 506007 div 7,dl " 7 aa 002374 700021 175111 sba sb|17,x1 " LastDayOfApril aa 002375 000000 531007 neg 0,dl aa 002376 700023 755111 sta sb|19,x1 " LastSundayOfApril aa 002377 700022 236111 330 ldq sb|18,x1 " LastDayOfOctober aa 002400 700015 076111 adq sb|13,x1 " DayOfWeek aa 002401 700007 176111 sbq sb|7,x1 " DayOfCycle aa 002402 017141 076007 adq 7777,dl " 7777 aa 002403 000007 506007 div 7,dl " 7 aa 002404 700022 175111 sba sb|18,x1 " LastDayOfOctober aa 002405 000000 531007 neg 0,dl aa 002406 700047 755111 sta sb|39,x1 " LastSundayOfOctober aa 002407 700023 236111 331 ldq sb|19,x1 " LastSundayOfApril aa 002410 700006 076111 adq sb|6,x1 " DaysSince1901 aa 002411 700007 176111 sbq sb|7,x1 " DayOfCycle aa 002412 250600 402007 mpy 86400,dl aa 002413 016040 076007 adq 7200,dl aa 002414 700004 763111 lprpbb sb|4,x1 " Breaks aa 002415 300000 756100 stq bb|0 aa 002416 700047 236111 332 ldq sb|39,x1 " LastSundayOfOctober aa 002417 700006 076111 adq sb|6,x1 " DaysSince1901 aa 002420 700007 176111 sbq sb|7,x1 " DayOfCycle aa 002421 250600 402007 mpy 86400,dl aa 002422 016040 076007 adq 7200,dl aa 002423 700004 765111 lprplb sb|4,x1 " Breaks aa 002424 500001 756100 stq lb|1 L153: aa 002425 700000 762111 lprpbp sb|0,x1 " bcpl return aa 002426 200000 121100 sblx1 bp|0 aa 002427 700001 764111 lprplp sb|1,x1 aa 002430 200001 710100 tra bp|1 " end of return sequence " Literal pool L174: aa 002431 000011 127145 zero 9,44645 " "Wednesday" aa 002432 144156 145163 zero 51310,51827 aa 002433 144141 171000 zero 51297,61952 L154: aa 002434 000000 000000 zero 0 " a table aa 002435 000000 000037 zero 0,31 aa 002436 000000 000073 zero 0,59 aa 002437 000000 000132 zero 0,90 aa 002440 000000 000170 zero 0,120 aa 002441 000000 000227 zero 0,151 aa 002442 000000 000265 zero 0,181 aa 002443 000000 000324 zero 0,212 aa 002444 000000 000363 zero 0,243 aa 002445 000000 000421 zero 0,273 aa 002446 000000 000460 zero 0,304 aa 002447 000000 000516 zero 0,334 aa 002450 000000 000555 zero 0,365 aa 002451 000000 000614 zero 0,396 aa 002452 000000 000650 zero 0,424 aa 002453 000000 000707 zero 0,455 aa 002454 000000 000745 zero 0,485 aa 002455 000000 001004 zero 0,516 aa 002456 000000 001042 zero 0,546 aa 002457 000000 001101 zero 0,577 aa 002460 000000 001140 zero 0,608 aa 002461 000000 001176 zero 0,638 aa 002462 000000 001235 zero 0,669 aa 002463 000000 001273 zero 0,699 aa 002464 000000 001332 zero 0,730 aa 002465 000000 001371 zero 0,761 aa 002466 000000 001425 zero 0,789 aa 002467 000000 001464 zero 0,820 aa 002470 000000 001522 zero 0,850 aa 002471 000000 001561 zero 0,881 aa 002472 000000 001617 zero 0,911 aa 002473 000000 001656 zero 0,942 aa 002474 000000 001715 zero 0,973 aa 002475 000000 001753 zero 0,1003 aa 002476 000000 002012 zero 0,1034 aa 002477 000000 002050 zero 0,1064 aa 002500 000000 002107 zero 0,1095 aa 002501 000000 002146 zero 0,1126 aa 002502 000000 002203 zero 0,1155 aa 002503 000000 002242 zero 0,1186 aa 002504 000000 002300 zero 0,1216 aa 002505 000000 002337 zero 0,1247 aa 002506 000000 002375 zero 0,1277 aa 002507 000000 002434 zero 0,1308 aa 002510 000000 002473 zero 0,1339 aa 002511 000000 002531 zero 0,1369 aa 002512 000000 002570 zero 0,1400 aa 002513 000000 002626 zero 0,1430 aa 002514 000000 002665 zero 0,1461 L173: aa 002515 000010 123141 zero 8,42593 " "Saturday" aa 002516 164165 162144 zero 59509,58468 aa 002517 141171 000000 zero 49785 L172: aa 002520 000006 123165 zero 6,42613 " "Sunday" aa 002521 156144 141171 zero 56420,49785 L171: aa 002522 000007 124165 zero 7,43125 " "Tuesday" aa 002523 145163 144141 zero 51827,51297 aa 002524 171000 000000 zero 61952 L170: aa 002525 000010 124150 zero 8,43112 " "Thursday" aa 002526 165162 163144 zero 60018,58980 aa 002527 141171 000000 zero 49785 L169: aa 002530 000006 115157 zero 6,39535 " "Monday" aa 002531 156144 141171 zero 56420,49785 L168: aa 002532 000006 106162 zero 6,35954 " "Friday" aa 002533 151144 141171 zero 53860,49785 L167: aa 002534 000010 104145 zero 8,34917 " "December" aa 002535 143145 155142 zero 50789,55906 aa 002536 145162 000000 zero 51826 L166: aa 002537 000006 101165 zero 6,33397 " "August" aa 002540 147165 163164 zero 52853,58996 L165: aa 002541 000004 112165 zero 4,38005 " "July" aa 002542 154171 000000 zero 55417 L164: aa 002543 000003 115141 zero 3,39521 " "May" aa 002544 171000 000000 zero 61952 L163: aa 002545 000010 106145 zero 8,35941 " "February" aa 002546 142162 165141 zero 50290,60001 aa 002547 162171 000000 zero 58489 L162: aa 002550 000007 112141 zero 7,37985 " "January" aa 002551 156165 141162 zero 56437,49778 aa 002552 171000 000000 zero 61952 L161: aa 002553 000005 115141 zero 5,39521 " "March" aa 002554 162143 150000 zero 58467,53248 L160: aa 002555 000004 112165 zero 4,38005 " "June" aa 002556 156145 000000 zero 56421 L159: aa 002557 000011 123145 zero 9,42597 " "September" aa 002560 160164 145155 zero 57460,51821 aa 002561 142145 162000 zero 50277,58368 L158: aa 002562 000007 117143 zero 7,40547 " "October" aa 002563 164157 142145 zero 59503,50277 aa 002564 162000 000000 zero 58368 L157: aa 002565 000010 116157 zero 8,40047 " "November" aa 002566 166145 155142 zero 60517,55906 aa 002567 145162 000000 zero 51826 L156: aa 002570 000005 101160 zero 5,33392 " "April" aa 002571 162151 154000 zero 58473,55296 " Begin text of InitializeZoneInfo aa 002572 000022 111156 zero 18,37486 " InitializeZoneInfo aa 002573 151164 151141 zero 53876,53857 aa 002574 154151 172145 zero 55401,62565 aa 002575 132157 156145 zero 46191,56421 aa 002576 111156 146157 zero 37486,52335 L150: aa 002577 000000 213000 358 epaq 0 " set lp to linkage section aa 002600 700026 764161 lprplp sb|22,*au aa 002601 200000 021100 adlx1 bp|0 " BCPL save aa 002602 700000 542111 sprpbp sb|0,x1 aa 002603 700001 544111 sprplp sb|1,x1 aa 002604 700424 620111 eax0 sb|276,x1 aa 002605 777760 360003 anx0 -16,du aa 002606 700025 740100 stx0 sb|21 " end of save sequence 4a 002607 400034 236120 359 ldq lp|L178,* aa 002610 700002 756111 stq sb|2,x1 " Zone aa 002611 700003 450111 362 stz sb|3,x1 " i aa 002612 000022 710004 tra L179 L180: aa 002613 700002 236111 363 ldq sb|2,x1 " Zone aa 002614 700003 726111 lxl6 sb|3,x1 " i aa 002615 000000 772016 qrl 0,x6 aa 002616 000777 376007 anq 511,dl aa 002617 700004 756111 stq sb|4,x1 " c aa 002620 000141 236007 364 ldq 97,dl " 'a' aa 002621 700004 116111 cmpq sb|4,x1 " c aa 002622 000010 605404 tpnz L181 aa 002623 700004 235111 lda sb|4,x1 " c aa 002624 000172 115007 cmpa 122,dl " 'z' aa 002625 000005 605404 tpnz L181 aa 002626 000040 336007 lcq 32,dl aa 002627 700003 722111 lxl2 sb|3,x1 " i aa 002630 000000 736012 qls 0,x2 aa 002631 700002 056111 asq sb|2,x1 " Zone L181: aa 002632 000011 236007 ldq 9,dl " ByteSize aa 002633 700003 056111 asq sb|3,x1 " i L179: aa 002634 700003 236111 ldq sb|3,x1 " i aa 002635 000033 116007 cmpq 27,dl aa 002636 777755 604404 tmoz L180 aa 002637 000115 710004 368 tra L183 L184: aa 002640 000202 350004 369 eapap L185 " "EST" 9a 002641 400013 540100 sprpap lp|11 " StandardZone aa 002642 043120 235007 lda 18000,dl 9a 002643 400012 755100 sta lp|10 " StandardDelta aa 002644 000174 350004 370 eapap L186 " "EDT" 9a 002645 400011 540100 sprpap lp|9 " DaylightZone aa 002646 034100 235007 lda 14400,dl 9a 002647 400010 755100 sta lp|8 " DaylightDelta aa 002650 000144 710004 373 tra L182 L187: aa 002651 000165 350004 374 eapap L188 " "CST" 9a 002652 400013 540100 sprpap lp|11 " StandardZone aa 002653 052140 235007 lda 21600,dl 9a 002654 400012 755100 sta lp|10 " StandardDelta aa 002655 000157 350004 375 eapap L189 " "CDT" 9a 002656 400011 540100 sprpap lp|9 " DaylightZone aa 002657 043120 235007 lda 18000,dl 9a 002660 400010 755100 sta lp|8 " DaylightDelta aa 002661 000133 710004 378 tra L182 L190: aa 002662 000150 350004 379 eapap L191 " "MST" 9a 002663 400013 540100 sprpap lp|11 " StandardZone aa 002664 061160 235007 lda 25200,dl 9a 002665 400012 755100 sta lp|10 " StandardDelta aa 002666 052140 235007 380 lda 21600,dl 9a 002667 400010 755100 sta lp|8 " DaylightDelta aa 002670 000140 350004 eapap L192 " "MDT" 9a 002671 400011 540100 sprpap lp|9 " DaylightZone aa 002672 000122 710004 383 tra L182 L193: aa 002673 000133 350004 384 eapap L194 " "PST" 9a 002674 400013 540100 sprpap lp|11 " StandardZone aa 002675 070200 235007 lda 28800,dl 9a 002676 400012 755100 sta lp|10 " StandardDelta aa 002677 061160 235007 385 lda 25200,dl 9a 002700 400010 755100 sta lp|8 " DaylightDelta aa 002701 000123 350004 eapap L195 " "PDT" 9a 002702 400011 540100 sprpap lp|9 " DaylightZone aa 002703 000111 710004 388 tra L182 L196: aa 002704 700004 350111 389 eapap sb|4,x1 " a vector aa 002705 700003 540111 sprpap sb|3,x1 " v aa 002706 700002 350111 390 eapap sb|2,x1 " Zone aa 002707 700024 540111 sprpap sb|20,x1 aa 002710 000004 235007 lda 4,dl " 4 aa 002711 700025 755111 sta sb|21,x1 aa 002712 700003 235111 lda sb|3,x1 " v aa 002713 700026 755111 sta sb|22,x1 4a 002714 400032 272120 tsbbp lp|L197,* " MakeBcplString aa 002715 000022 000003 zero 18,3 aa 002716 700003 235111 391 lda sb|3,x1 " v aa 002717 700024 755111 sta sb|20,x1 4a 002720 400030 272120 tsbbp lp|L198,* " LengthInWords aa 002721 000022 000001 zero 18,1 aa 002722 700020 756111 stq sb|16,x1 aa 002723 700020 236111 ldq sb|16,x1 aa 002724 700024 756111 stq sb|20,x1 4a 002725 400026 272120 tsbbp lp|L199,* " Allocate aa 002726 000022 000001 zero 18,1 aa 002727 700017 756111 stq sb|15,x1 " t aa 002730 700003 236111 392 ldq sb|3,x1 " v aa 002731 700024 756111 stq sb|20,x1 aa 002732 700017 236111 ldq sb|15,x1 " t aa 002733 700025 756111 stq sb|21,x1 4a 002734 400024 272120 tsbbp lp|L200,* " CopyString aa 002735 000022 000002 zero 18,2 4a 002736 400022 350120 393 eapap lp|L201,* " SysInfoTimeCorrectionConstant aa 002737 700024 540111 sprpap sb|20,x1 4a 002740 400020 272120 tsbbp lp|L202,* " TimeToSeconds aa 002741 000022 000001 zero 18,1 aa 002742 700020 756111 stq sb|16,x1 " d aa 002743 700017 236111 394 ldq sb|15,x1 " t 9a 002744 400013 756100 stq lp|11 " StandardZone aa 002745 700020 236111 ldq sb|16,x1 " d 9a 002746 400012 756100 stq lp|10 " StandardDelta aa 002747 700020 236111 395 ldq sb|16,x1 " d 9a 002750 400010 756100 stq lp|8 " DaylightDelta aa 002751 700017 236111 ldq sb|15,x1 " t 9a 002752 400011 756100 stq lp|9 " DaylightZone aa 002753 000041 710004 tra L182 L183: " Begin switchon aa 002754 700002 235111 lda sb|2,x1 " Zone aa 002755 000046 115004 cmpa L204 aa 002756 000013 604004 tmi L203 aa 002757 777703 600004 tze L190 aa 002760 000042 115004 cmpa L206 aa 002761 000005 604004 tmi L205 aa 002762 777711 600004 tze L193 aa 002763 000036 115004 cmpa L207 aa 002764 777707 600004 tze L193 aa 002765 777717 710004 tra L196 L205: aa 002766 000032 115004 cmpa L208 aa 002767 777673 600004 tze L190 aa 002770 777714 710004 tra L196 L203: aa 002771 000043 773000 lrl 35 aa 002772 000007 507007 dvf 7,dl " hash table size 0a 002773 003005 115006 cmpa L209,ql aa 002774 777710 601004 tnz L196 0a 002775 002776 710006 tra L210,ql L210: aa 002776 777653 710004 tra L187 aa 002777 777641 710004 tra L184 aa 003000 777640 710004 tra L184 aa 003001 777703 710004 tra L196 aa 003002 777702 710004 tra L196 aa 003003 777701 710004 tra L196 aa 003004 777645 710004 tra L187 L209: aa 003005 011460 347340 zero 4912,118496 aa 003006 011700 460451 zero 5056,-106199 aa 003007 011702 571562 zero 5058,-68750 aa 003010 000000 000000 zero 0 aa 003011 000000 000000 zero 0 aa 003012 000000 000000 zero 0 aa 003013 011456 236226 zero 4910,81046 L182: L177: aa 003014 700000 762111 lprpbp sb|0,x1 " bcpl return aa 003015 200000 121100 sblx1 bp|0 aa 003016 700001 764111 lprplp sb|1,x1 aa 003017 200001 710100 tra bp|1 " end of return sequence " Literal pool L208: aa 003020 115123 124040 zero 39507,43040 L207: aa 003021 120123 124040 zero 41043,43040 L206: aa 003022 120104 124040 zero 41028,43040 L204: aa 003023 115104 124040 zero 39492,43040 L195: aa 003024 000003 120104 zero 3,41028 " "PDT" aa 003025 124000 000000 zero 43008 L194: aa 003026 000003 120123 zero 3,41043 " "PST" aa 003027 124000 000000 zero 43008 L192: aa 003030 000003 115104 zero 3,39492 " "MDT" aa 003031 124000 000000 zero 43008 L191: aa 003032 000003 115123 zero 3,39507 " "MST" aa 003033 124000 000000 zero 43008 L189: aa 003034 000003 103104 zero 3,34372 " "CDT" aa 003035 124000 000000 zero 43008 L188: aa 003036 000003 103123 zero 3,34387 " "CST" aa 003037 124000 000000 zero 43008 L186: aa 003040 000003 105104 zero 3,35396 " "EDT" aa 003041 124000 000000 zero 43008 L185: aa 003042 000003 105123 zero 3,35411 " "EST" aa 003043 124000 000000 zero 43008 " Begin text of FormDate aa 003044 000010 106157 zero 8,35951 " FormDate aa 003045 162155 104141 zero 58477,34913 aa 003046 164145 000000 zero 59493 L149: aa 003047 000000 213000 340 epaq 0 " set lp to linkage section aa 003050 700026 764161 lprplp sb|22,*au aa 003051 200000 021100 adlx1 bp|0 " BCPL save aa 003052 700000 542111 sprpbp sb|0,x1 aa 003053 700001 544111 sprplp sb|1,x1 aa 003054 700424 620111 eax0 sb|276,x1 aa 003055 777760 360003 anx0 -16,du aa 003056 700025 740100 stx0 sb|21 " end of save sequence aa 003057 700006 350111 341 eapap sb|6,x1 " a vector aa 003060 700005 540111 sprpap sb|5,x1 " Breaks 9a 003061 400013 234100 342 szn lp|11 " StandardZone aa 003062 000003 601004 tnz L214 aa 003063 777516 272004 tsbbp L150+2 " InitializeZoneInfo aa 003064 000014 000000 zero 12 L214: 4a 003065 400062 272120 344 tsbbp lp|L14,* " NumbArgs aa 003066 000014 000000 zero 12 aa 003067 000002 116007 cmpq 2,dl " 2 aa 003070 000017 604404 tmoz L215 aa 003071 700004 234111 szn sb|4,x1 " GMTsw aa 003072 000015 600004 tze L216 aa 003073 700002 236111 345 ldq sb|2,x1 " Seconds aa 003074 700016 756111 stq sb|14,x1 aa 003075 700003 236111 ldq sb|3,x1 " Space aa 003076 700017 756111 stq sb|15,x1 aa 003077 700005 236111 ldq sb|5,x1 " Breaks aa 003100 700020 756111 stq sb|16,x1 aa 003101 777026 272004 tsbbp L147+2 " StoreDate aa 003102 000014 000003 zero 12,3 aa 003103 000052 350004 346 eapap L217 " "GMT" aa 003104 700003 762111 lprpbp sb|3,x1 " Space aa 003105 200011 540100 sprpap bp|9 aa 003106 000043 710004 347 tra L213 L216: L215: aa 003107 700002 236111 350 ldq sb|2,x1 " Seconds 9a 003110 400012 176100 sbq lp|10 " StandardDelta aa 003111 700016 756111 stq sb|14,x1 aa 003112 700003 236111 ldq sb|3,x1 " Space aa 003113 700017 756111 stq sb|15,x1 aa 003114 700005 236111 ldq sb|5,x1 " Breaks aa 003115 700020 756111 stq sb|16,x1 aa 003116 777011 272004 tsbbp L147+2 " StoreDate aa 003117 000014 000003 zero 12,3 9a 003120 400013 236100 351 ldq lp|11 " StandardZone aa 003121 700003 760111 lprpap sb|3,x1 " Space aa 003122 000011 756100 stq ap|9 aa 003123 700002 236111 353 ldq sb|2,x1 " Seconds 9a 003124 400012 176100 sbq lp|10 " StandardDelta aa 003125 700005 761111 lprpab sb|5,x1 " Breaks aa 003126 100000 116100 cmpq ab|0 aa 003127 000022 604404 tmoz L218 aa 003130 700002 236111 ldq sb|2,x1 " Seconds 9a 003131 400010 176100 sbq lp|8 " DaylightDelta aa 003132 700005 763111 lprpbb sb|5,x1 " Breaks aa 003133 300001 116100 cmpq bb|1 aa 003134 000015 605404 tpnz L218 aa 003135 700002 236111 354 ldq sb|2,x1 " Seconds 9a 003136 400010 176100 sbq lp|8 " DaylightDelta aa 003137 700016 756111 stq sb|14,x1 aa 003140 700003 236111 ldq sb|3,x1 " Space aa 003141 700017 756111 stq sb|15,x1 aa 003142 700005 236111 ldq sb|5,x1 " Breaks aa 003143 700020 756111 stq sb|16,x1 aa 003144 776763 272004 tsbbp L147+2 " StoreDate aa 003145 000014 000003 zero 12,3 9a 003146 400011 236100 355 ldq lp|9 " DaylightZone aa 003147 700003 765111 lprplb sb|3,x1 " Space aa 003150 500011 756100 stq lb|9 L218: L213: aa 003151 700000 762111 lprpbp sb|0,x1 " bcpl return aa 003152 200000 121100 sblx1 bp|0 aa 003153 700001 764111 lprplp sb|1,x1 aa 003154 200001 710100 tra bp|1 " end of return sequence " Literal pool L217: aa 003155 000003 107115 zero 3,36429 " "GMT" aa 003156 124000 000000 zero 43008 " Begin text of Mod aa 003157 000003 115157 zero 3,39535 " Mod aa 003160 144000 000000 zero 51200 L148: aa 003161 000000 213000 334 epaq 0 " set lp to linkage section aa 003162 700026 764161 lprplp sb|22,*au aa 003163 200000 021100 adlx1 bp|0 " BCPL save aa 003164 700000 542111 sprpbp sb|0,x1 aa 003165 700001 544111 sprplp sb|1,x1 aa 003166 700417 620111 eax0 sb|271,x1 aa 003167 777760 360003 anx0 -16,du aa 003170 700025 740100 stx0 sb|21 " end of save sequence aa 003171 700002 234111 szn sb|2,x1 " x aa 003172 000004 604004 tmi L221 aa 003173 700002 236111 ldq sb|2,x1 " x aa 003174 700003 506111 div sb|3,x1 " y aa 003175 000006 710004 tra L222 L221: aa 003176 700002 236111 ldq sb|2,x1 " x aa 003177 700003 506111 div sb|3,x1 " y aa 003200 700003 075111 ada sb|3,x1 " y aa 003201 000044 777000 llr 36 " exchange A and Q aa 003202 700003 506111 div sb|3,x1 " y L222: aa 003203 700011 755111 sta sb|9,x1 aa 003204 700011 236111 ldq sb|9,x1 aa 003205 700000 762111 lprpbp sb|0,x1 " bcpl return aa 003206 200000 121100 sblx1 bp|0 aa 003207 700001 764111 lprplp sb|1,x1 aa 003210 200001 710100 tra bp|1 " end of return sequence " Begin text of SetTimeZone aa 003211 000013 123145 zero 11,42597 " SetTimeZone aa 003212 164124 151155 zero 59476,53869 aa 003213 145132 157156 zero 51802,56942 aa 003214 145000 000000 zero 51712 5a 003215 000047 000000 zero 39 " relative pointer to definition for entry aa 003216 700004 756111 399 stq sb|4,x1 " temporary L223: aa 003217 000000 213000 epaq 0 " set lp to linkage section aa 003220 700026 764161 lprplp sb|22,*au aa 003221 000130 700004 tsx0 L227 " execute Multics save aa 003222 200000 021100 adlx1 bp|0 " BCPL save aa 003223 700000 542111 sprpbp sb|0,x1 aa 003224 700001 544111 sprplp sb|1,x1 aa 003225 700423 620111 eax0 sb|275,x1 aa 003226 777760 360003 anx0 -16,du aa 003227 700025 740100 stx0 sb|21 " end of save sequence aa 003230 700004 352111 400 eapbp sb|4,x1 " a vector aa 003231 700002 542111 sprpbp sb|2,x1 " Arg 4a 003232 400016 272120 401 tsbbp lp|L230,* " Pl1NumbArgs aa 003233 000206 000000 zero 134 aa 003234 000004 116007 cmpq 4,dl " 4 aa 003235 000004 605004 tpl L229 aa 003236 777343 272004 402 tsbbp L150+2 " InitializeZoneInfo aa 003237 000206 000000 zero 134 aa 003240 000105 710004 403 tra L228 L229: aa 003241 000004 236007 405 ldq 4,dl " 4 aa 003242 700210 756111 stq sb|136,x1 aa 003243 700002 236111 ldq sb|2,x1 " Arg aa 003244 700211 756111 stq sb|137,x1 4a 003245 400014 272120 tsbbp lp|L231,* " Pl1ArgString aa 003246 000206 000002 zero 134,2 aa 003247 700003 756111 stq sb|3,x1 aa 003250 700003 236111 ldq sb|3,x1 aa 003251 700210 756111 stq sb|136,x1 aa 003252 776171 272004 tsbbp L101+2 " ConvertStoN aa 003253 000206 000001 zero 134,1 9a 003254 400010 756100 stq lp|8 " DaylightDelta aa 003255 000003 236007 406 ldq 3,dl " 3 aa 003256 700210 756111 stq sb|136,x1 aa 003257 700002 236111 ldq sb|2,x1 " Arg aa 003260 700211 756111 stq sb|137,x1 4a 003261 400014 272120 tsbbp lp|L231,* " Pl1ArgString aa 003262 000206 000002 zero 134,2 aa 003263 700002 236111 407 ldq sb|2,x1 " Arg aa 003264 700210 756111 stq sb|136,x1 4a 003265 400030 272120 tsbbp lp|L198,* " LengthInWords aa 003266 000206 000001 zero 134,1 aa 003267 700003 756111 stq sb|3,x1 aa 003270 700003 236111 ldq sb|3,x1 aa 003271 700210 756111 stq sb|136,x1 4a 003272 400026 272120 tsbbp lp|L199,* " Allocate aa 003273 000206 000001 zero 134,1 9a 003274 400011 756100 stq lp|9 " DaylightZone aa 003275 700002 236111 408 ldq sb|2,x1 " Arg aa 003276 700210 756111 stq sb|136,x1 9a 003277 400011 236100 ldq lp|9 " DaylightZone aa 003300 700211 756111 stq sb|137,x1 4a 003301 400024 272120 tsbbp lp|L200,* " CopyString aa 003302 000206 000002 zero 134,2 aa 003303 000002 236007 409 ldq 2,dl " 2 aa 003304 700210 756111 stq sb|136,x1 aa 003305 700002 236111 ldq sb|2,x1 " Arg aa 003306 700211 756111 stq sb|137,x1 4a 003307 400014 272120 tsbbp lp|L231,* " Pl1ArgString aa 003310 000206 000002 zero 134,2 aa 003311 700003 756111 stq sb|3,x1 aa 003312 700003 236111 ldq sb|3,x1 aa 003313 700210 756111 stq sb|136,x1 aa 003314 776127 272004 tsbbp L101+2 " ConvertStoN aa 003315 000206 000001 zero 134,1 9a 003316 400012 756100 stq lp|10 " StandardDelta aa 003317 000001 236007 410 ldq 1,dl " 1 aa 003320 700210 756111 stq sb|136,x1 aa 003321 700002 236111 ldq sb|2,x1 " Arg aa 003322 700211 756111 stq sb|137,x1 4a 003323 400014 272120 tsbbp lp|L231,* " Pl1ArgString aa 003324 000206 000002 zero 134,2 aa 003325 700002 236111 411 ldq sb|2,x1 " Arg aa 003326 700210 756111 stq sb|136,x1 4a 003327 400030 272120 tsbbp lp|L198,* " LengthInWords aa 003330 000206 000001 zero 134,1 aa 003331 700003 756111 stq sb|3,x1 aa 003332 700003 236111 ldq sb|3,x1 aa 003333 700210 756111 stq sb|136,x1 4a 003334 400026 272120 tsbbp lp|L199,* " Allocate aa 003335 000206 000001 zero 134,1 9a 003336 400013 756100 stq lp|11 " StandardZone aa 003337 700002 236111 412 ldq sb|2,x1 " Arg aa 003340 700210 756111 stq sb|136,x1 9a 003341 400013 236100 ldq lp|11 " StandardZone aa 003342 700211 756111 stq sb|137,x1 4a 003343 400024 272120 tsbbp lp|L200,* " CopyString aa 003344 000206 000002 zero 134,2 L228: aa 003345 700000 762111 lprpbp sb|0,x1 " bcpl return aa 003346 200000 121100 sblx1 bp|0 aa 003347 700001 764111 lprplp sb|1,x1 aa 003350 200001 710100 tra bp|1 " end of return sequence " Local subroutine to help enter BCPL environment L227: aa 003351 004000 627000 eax7 2048 " Multics save sequence aa 003352 700040 272120 tsbbp sb|32,* aa 003353 600620 621100 eax1 sp|400 aa 003354 600030 650100 stplp sp|24 aa 003355 777775 350010 eapap -3,x0 aa 003356 600026 250100 stpap sp|22 aa 003357 000000 272010 tsbbp 0,x0 " simulate standard BCPL call aa 003360 000000 000000 zero 0 aa 003361 700042 710120 tra sb|34,* " Multics return " Definition section part one - external entry points 5a 000000 000044 000000 " pointer to first definition aa 000001 000000 600000 " flags: new format, ignore header aa 000002 000000 000000 " list terminator aa 000003 015163 145164 " "set_time_zone" aa 000004 137164 151155 aa 000005 145137 172157 aa 000006 156145 000000 aa 000007 021142 143160 " "bcpl_conversions_" aa 000010 154137 143157 aa 000011 156166 145162 aa 000012 163151 157156 aa 000013 163137 000000 aa 000014 010106 157162 " "FormDate" aa 000015 155104 141164 aa 000016 145000 000000 aa 000017 013103 157156 " "ConvertStoN" aa 000020 166145 162164 aa 000021 123164 157116 aa 000022 015122 145155 " "RemoveEscapes" aa 000023 157166 145105 aa 000024 163143 141160 aa 000025 145163 000000 aa 000026 015111 156163 " "InsertEscapes" aa 000027 145162 164105 aa 000030 163143 141160 aa 000031 145163 000000 aa 000032 013103 157156 " "ConvertFtoS" aa 000033 166145 162164 aa 000034 106164 157123 aa 000035 013103 157156 " "ConvertNtoS" aa 000036 166145 162164 aa 000037 116164 157123 aa 000040 014163 171155 " "symbol_table" aa 000041 142157 154137 aa 000042 164141 142154 aa 000043 145000 000000 " Segname definition for set_time_zone 55 000044 000047 000002 " forward, backward threads 5a 000045 000052 400003 " value defined, class flags 55 000046 000003 000047 " name pointer, first entry def " Definition for set_time_zone 55 000047 000052 000044 " forward, backward threads 0a 000050 003217 500000 " value defined, class flags 55 000051 000003 000044 " name pointer, segname def pointer " Segname definition for bcpl_conversions_ 55 000052 000055 000047 " forward, backward threads 5a 000053 000002 400003 " value defined, class flags 55 000054 000007 000055 " name pointer, first entry def " Definition for FormDate 55 000055 000060 000052 " forward, backward threads 0a 000056 003047 500000 " value defined, class flags 55 000057 000014 000052 " name pointer, segname def pointer " Definition for ConvertStoN 55 000060 000063 000055 " forward, backward threads 0a 000061 001441 500000 " value defined, class flags 55 000062 000017 000052 " name pointer, segname def pointer " Definition for RemoveEscapes 55 000063 000066 000060 " forward, backward threads 0a 000064 001021 500000 " value defined, class flags 55 000065 000022 000052 " name pointer, segname def pointer " Definition for InsertEscapes 55 000066 000071 000063 " forward, backward threads 0a 000067 000516 500000 " value defined, class flags 55 000070 000026 000052 " name pointer, segname def pointer " Definition for ConvertFtoS 55 000071 000074 000066 " forward, backward threads 0a 000072 000242 500000 " value defined, class flags 55 000073 000032 000052 " name pointer, segname def pointer " Definition for ConvertNtoS 55 000074 000077 000071 " forward, backward threads 0a 000075 000133 500000 " value defined, class flags 55 000076 000035 000052 " name pointer, segname def pointer " Definition for symbol_table 55 000077 000002 000074 " forward, backward threads 6a 000100 000000 400002 " value defined, class flags 55 000101 000040 000052 " name pointer, segname def pointer " Definition section part two - symbolic info for external references aa 000102 021142 143160 " "bcpl_command_lib_" aa 000103 154137 143157 aa 000104 155155 141156 aa 000105 144137 154151 aa 000106 142137 000000 aa 000107 014120 154061 " "Pl1ArgString" aa 000110 101162 147123 aa 000111 164162 151156 aa 000112 147000 000000 5a 000113 000114 000000 aa 000114 000004 000000 55 000115 000102 000107 aa 000116 013120 154061 " "Pl1NumbArgs" aa 000117 116165 155142 aa 000120 101162 147163 5a 000121 000122 000000 aa 000122 000004 000000 55 000123 000102 000116 aa 000124 022142 143160 " "bcpl_machine_code_" aa 000125 154137 155141 aa 000126 143150 151156 aa 000127 145137 143157 aa 000130 144145 137000 aa 000131 015124 151155 " "TimeToSeconds" aa 000132 145124 157123 aa 000133 145143 157156 aa 000134 144163 000000 5a 000135 000136 000000 aa 000136 000004 000000 55 000137 000124 000131 aa 000140 010163 171163 " "sys_info" aa 000141 137151 156146 aa 000142 157000 000000 aa 000143 030164 151155 " "time_correction_constant" aa 000144 145137 143157 aa 000145 162162 145143 aa 000146 164151 157156 aa 000147 137143 157156 aa 000150 163164 141156 aa 000151 164000 000000 5a 000152 000153 000000 aa 000153 000004 000000 55 000154 000140 000143 aa 000155 015142 143160 " "bcpl_strings_" aa 000156 154137 163164 aa 000157 162151 156147 aa 000160 163137 000000 aa 000161 012103 157160 " "CopyString" aa 000162 171123 164162 aa 000163 151156 147000 5a 000164 000165 000000 aa 000165 000004 000000 55 000166 000155 000161 aa 000167 021142 143160 " "bcpl_filesys_lib_" aa 000170 154137 146151 aa 000171 154145 163171 aa 000172 163137 154151 aa 000173 142137 000000 aa 000174 010101 154154 " "Allocate" aa 000175 157143 141164 aa 000176 145000 000000 5a 000177 000200 000000 aa 000200 000004 000000 55 000201 000167 000174 aa 000202 015114 145156 " "LengthInWords" aa 000203 147164 150111 aa 000204 156127 157162 aa 000205 144163 000000 5a 000206 000207 000000 aa 000207 000004 000000 55 000210 000155 000202 aa 000211 016115 141153 " "MakeBcplString" aa 000212 145102 143160 aa 000213 154123 164162 aa 000214 151156 147000 5a 000215 000216 000000 aa 000216 000004 000000 55 000217 000155 000211 aa 000220 011164 151155 " "time_zone" aa 000221 145137 172157 aa 000222 156145 000000 5a 000223 000224 000000 aa 000224 000004 000000 55 000225 000140 000220 aa 000226 020142 143160 " "bcpl_arithmetic_" aa 000227 154137 141162 aa 000230 151164 150155 aa 000231 145164 151143 aa 000232 137000 000000 aa 000233 007122 160157 " "RpowerI" aa 000234 167145 162111 5a 000235 000236 000000 aa 000236 000004 000000 55 000237 000226 000233 aa 000240 014145 162162 " "error_table_" aa 000241 157162 137164 aa 000242 141142 154145 aa 000243 137000 000000 aa 000244 016142 141144 " "bad_conversion" aa 000245 137143 157156 aa 000246 166145 162163 aa 000247 151157 156000 5a 000250 000251 000000 aa 000251 000004 000000 55 000252 000240 000244 aa 000253 014125 156160 " "Unpackstring" aa 000254 141143 153163 aa 000255 164162 151156 aa 000256 147000 000000 5a 000257 000260 000000 aa 000260 000004 000000 55 000261 000124 000253 aa 000262 005123 165142 " "Subch" aa 000263 143150 000000 5a 000264 000265 000000 aa 000265 000004 000000 55 000266 000124 000262 aa 000267 013103 157156 " "Concatenate" aa 000270 143141 164145 aa 000271 156141 164145 5a 000272 000273 000000 aa 000273 000004 000000 55 000274 000155 000267 aa 000275 006114 145156 " "Length" aa 000276 147164 150000 5a 000277 000300 000000 aa 000300 000004 000000 55 000301 000155 000275 aa 000302 011123 145164 " "SetLength" aa 000303 114145 156147 aa 000304 164150 000000 5a 000305 000306 000000 aa 000306 000004 000000 55 000307 000155 000302 aa 000310 004111 164157 " "ItoR" aa 000311 122000 000000 5a 000312 000313 000000 aa 000313 000004 000000 55 000314 000124 000310 aa 000315 004122 164157 " "RtoI" aa 000316 111000 000000 5a 000317 000320 000000 aa 000320 000004 000000 55 000321 000124 000315 aa 000322 012120 141143 " "Packstring" aa 000323 153163 164162 aa 000324 151156 147000 5a 000325 000326 000000 aa 000326 000004 000000 55 000327 000124 000322 aa 000330 010116 165155 " "NumbArgs" aa 000331 142101 162147 aa 000332 163000 000000 5a 000333 000334 000000 aa 000334 000004 000000 55 000335 000124 000330 " Linkage section - static variables and external links aa 000000 000000 000000 " linkage header 0a 000001 003362 000000 " address of defs aa 000002 000000 000000 aa 000003 000000 000000 aa 000004 000000 000000 aa 000005 000000 000000 2a 000006 000014 000064 " offset to links, total length aa 000007 000000 000064 " obsolete length " Static variables aa 000010 000000 000000 zero 0 " DaylightDelta aa 000011 000000 000000 zero 0 " DaylightZone aa 000012 000000 000000 zero 0 " StandardDelta aa 000013 000000 000000 zero 0 " StandardZone " External link pairs L231: 3a 000014 777764 000046 " "bcpl_command_lib_$Pl1ArgString" 5a 000015 000113 000000 L230: 3a 000016 777762 000046 " "bcpl_command_lib_$Pl1NumbArgs" 5a 000017 000121 000000 L202: 3a 000020 777760 000046 " "bcpl_machine_code_$TimeToSeconds" 5a 000021 000135 000000 L201: 3a 000022 777756 000046 " "sys_info$time_correction_constant" 5a 000023 000152 000000 L200: 3a 000024 777754 000046 " "bcpl_strings_$CopyString" 5a 000025 000164 000000 L199: 3a 000026 777752 000046 " "bcpl_filesys_lib_$Allocate" 5a 000027 000177 000000 L198: 3a 000030 777750 000046 " "bcpl_strings_$LengthInWords" 5a 000031 000206 000000 L197: 3a 000032 777746 000046 " "bcpl_strings_$MakeBcplString" 5a 000033 000215 000000 L178: 3a 000034 777744 000046 " "sys_info$time_zone" 5a 000035 000223 000000 L144: 3a 000036 777742 000046 " "bcpl_arithmetic_$RpowerI" 5a 000037 000235 000000 L121: 3a 000040 777740 000046 " "error_table_$bad_conversion" 5a 000041 000250 000000 L106: 3a 000042 777736 000046 " "bcpl_machine_code_$Unpackstring" 5a 000043 000257 000000 L51: 3a 000044 777734 000046 " "bcpl_machine_code_$Subch" 5a 000045 000264 000000 L50: 3a 000046 777732 000046 " "bcpl_strings_$Concatenate" 5a 000047 000272 000000 L46: 3a 000050 777730 000046 " "bcpl_strings_$Length" 5a 000051 000277 000000 L45: 3a 000052 777726 000046 " "bcpl_strings_$SetLength" 5a 000053 000305 000000 L34: 3a 000054 777724 000046 " "bcpl_machine_code_$ItoR" 5a 000055 000312 000000 L33: 3a 000056 777722 000046 " "bcpl_machine_code_$RtoI" 5a 000057 000317 000000 L19: 3a 000060 777720 000046 " "bcpl_machine_code_$Packstring" 5a 000061 000325 000000 L14: 3a 000062 777716 000046 " "bcpl_machine_code_$NumbArgs" 5a 000063 000333 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 437321 613065 " 01/24/75 0658.3 mst Fri aa 000010 142143 160154 " "bcpl " aa 000011 040040 040040 aa 000012 000036 000035 " compiler version name - pointer, length aa 000013 000046 000024 " user id - pointer, length aa 000014 000053 000043 " comment string - pointer, length aa 000015 000002 000002 " text and linkage boundaries aa 000016 000024 000000 " source map, symbol tree root 7a 000017 000000 000107 " section header pointer, block size aa 000020 000000 000107 " next block pointer, rel_text aa 000021 000000 000160 " rel_def, rel_link aa 000022 000172 000107 " rel_symbol, default truncate aa 000023 000024 000000 " optional truncate, unused aa 000024 000000 000001 " source files map: version number aa 000025 000000 000002 " number of files aa 000026 000064 000060 " bcpl_conversions_ aa 000027 023333 611416 " last modified on aa 000030 000000 102333 " 01/24/75 0647.2 mst Fri aa 000031 432366 600000 aa 000032 000100 000033 " head aa 000033 021607 540547 " last modified on aa 000034 000000 101621 " 05/06/74 1742.4 mst Mon aa 000035 352261 400000 aa 000036 102103 120114 " "BCPL version 3.4, August 1973" aa 000037 040166 145162 aa 000040 163151 157156 aa 000041 040063 056064 aa 000042 054040 101165 aa 000043 147165 163164 aa 000044 040061 071067 aa 000045 063040 040040 aa 000046 115141 162164 " "Martinson.SysMaint.a" aa 000047 151156 163157 aa 000050 156056 123171 aa 000051 163115 141151 aa 000052 156164 056141 aa 000053 163157 165162 " "source xref alist optimize 6180" aa 000054 143145 040040 aa 000055 170162 145146 aa 000056 040040 141154 aa 000057 151163 164040 aa 000060 040157 160164 aa 000061 151155 151172 aa 000062 145040 040066 aa 000063 061070 060040 aa 000064 076062 056061 " ">2.1spec>online>mib083074>bcpl_conversions_.bcpl" aa 000065 163160 145143 aa 000066 076157 156154 aa 000067 151156 145076 aa 000070 155151 142060 aa 000071 070063 060067 aa 000072 064076 142143 aa 000073 160154 137143 aa 000074 157156 166145 aa 000075 162163 151157 aa 000076 156163 137056 aa 000077 142143 160154 aa 000100 076154 144144 " ">ldd>include>head.incl.bcpl" aa 000101 076151 156143 aa 000102 154165 144145 aa 000103 076150 145141 aa 000104 144056 151156 aa 000105 143154 056142 aa 000106 143160 154040 " Relocation information " text section relocation bits aa 000107 000000 000002 " version number of rel-bits structure aa 000110 000000 002563 " length in bits aa 000111 743145 170267 aa 000112 236030 647413 aa 000113 750001 236054 aa 000114 647413 551701 aa 000115 772001 236021 aa 000116 647402 550000 aa 000117 051702 270361 aa 000120 136474 025517 aa 000121 016720 012360 aa 000122 106474 037517 aa 000123 012723 601164 aa 000124 000024 740335 aa 000125 170153 236023 aa 000126 647407 141704 aa 000127 432360 116474 aa 000130 055517 005723 aa 000131 613464 741135 aa 000132 170167 236033 aa 000133 647421 751700 aa 000134 672364 766474 aa 000135 063621 443106 aa 000136 203106 214431 aa 000137 014431 062144 aa 000140 062144 310637 aa 000141 004720 012000 aa 000142 240000 240501 aa 000143 200144 310621 aa 000144 476020 600417 aa 000145 031744 012360 aa 000146 227100 000620 aa 000147 062001 440031 aa 000150 000006 370233 aa 000151 276014 647402 aa 000152 550000 062001 aa 000153 200120 002406 aa 000154 203105 000024 aa 000155 000031 000500 aa 000156 050001 203101 aa 000157 442474 035000 l " inkage relocation bits aa 000160 000000 000002 " version number of rel-bits structure aa 000161 000000 000420 " length in bits aa 000162 100002 200011 aa 000163 525152 515251 aa 000164 525152 515251 aa 000165 525152 515251 aa 000166 525152 515251 aa 000167 525152 515251 aa 000170 525152 515251 aa 000171 525152 400000 s " ymbol relocation bits aa 000172 000000 000002 " version number of rel-bits structure aa 000173 000000 000043 " length in bits aa 000174 740365 770336 " Object map aa 004201 000000 000001 " version number of object_map structure aa 004202 157142 152137 " "obj_map " aa 004203 155141 160040 aa 004204 000000 003362 " text offset, length aa 004205 003362 000336 " def offset, length aa 004206 003720 000064 " link offset, length aa 004207 004004 000175 " symbol offset, length aa 004210 000000 000000 " break map offset, length aa 004211 340000 000000 " flags: ^bound, relocatable, procedure, standard aa 004212 004201 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