ASSEMBLY LISTING OF SEGMENT >special_ldd>install>MR12.2-1019>prt_conv_.alm ASSEMBLED ON: 02/02/88 1658.8 mst Tue OPTIONS USED: list symbols ASSEMBLED BY: ALM Version 7.4 April 1987 ASSEMBLER CREATED: 11/02/87 1303.7 mst Mon 1 " *********************************************************** 2 " * * 3 " * Copyright, (C) Honeywell Bull Inc., 1988 * 4 " * * 5 " * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6 " * * 7 " * Copyright (c) 1972 by Massachusetts Institute of * 8 " * Technology and Honeywell Information Systems, Inc. * 9 " * * 10 " *********************************************************** 11 12 " Code conversion module for line printers 13 14 " Created: 24 October 1974 by N. Morris 15 " Modified: 6 June 1975 by N. Morris and D. Hunt to support printing page labels 16 " Modified: 29 March 1977 by N. Morris to incorporate DCC improvements 17 " Modified: 18 September 1980 by G. Palter to ignore a FF character immediately 18 " after a generated FF is output at page overflow time 19 " Modified: 17 November 1981 by G. Palter to fix several bugs from the io_daemon error list: 20 " 0005: phx08986 21 " In prt_conv_, the dispatch entry for the NUL character is incorrect causing it to 22 " be treated as an ordinary control character rather than always being ignored. 23 " 0006: phx08986 24 " Enabling pci.ctl_char mode causes prt_conv_ to go into a loop which eventually 25 " can cause fatal process errors. 26 " 0012: phx09251 phx03749 phx04015 27 " -no_endpage does not really work. When the daemon prints what should be the last 28 " line of the logical page (line 3 of a real page), it issues a form-feed to get to 29 " the next line which is the top of the next logical page. However, if the paper 30 " info or printer alignment (for remotes) is incorrect, this form-feed will cause 31 " extra blank paper. The daemon should never print a form-feed in this mode except 32 " when one appears in the user's print file. 33 " 0031: phx10074 34 " When given a very, very long input line (>131071 characters) with no embedded 35 " whitespace, prt_conv_ will place too many characters into the caller's output 36 " buffer overwriting whatever comes after the buffer. This problem will normally 37 " cause the driver to take a fatal process error and may also destroy data trusted 38 " by the coordinator. 39 " 0035: phx11995 40 " If a print file contains the sequence "ESC c" which is the start of the skip to 41 " logical channel printer escape sequence, the I/O daemon will scan without printing 42 " all subsequent print data looking for the ETX character which terminates the 43 " sequence even though non-numeric characters are encountered before the ETX. (This 44 " sequence consists of "ESC c" followed by a number from 1 to 16 followed by the 45 " ETX). The daemon continues looking for the ETX across requests causing an unknown 46 " amount of printed output to be lost. 47 48 49 " HISTORY COMMENTS: 50 " 1) change(87-05-10,Gilcrease), approve(87-07-31,MCR7686), 51 " audit(88-02-01,Farley), install(88-02-02,MR12.2-1019): 52 " Implement eor -nb (line-numbers) option. 53 " END HISTORY COMMENTS 54 55 56 " 57 " This module scans character strings containing lines to be printed 58 " on a line printer. It produces printer line images, taking into 59 " account overstrikes, lines that are too long, etc. 60 " 61 " Calling sequence: 62 " call prt_conv_ (wksp, nelem, outstr, outlen, p); 63 " 64 " Where: 65 " wksp is a pointer to the input string 66 " nelem is the number of characters in the input string 67 " outstr is a pointer to a character string long enough to hold a line image 68 " outlen is the length (in 9-bit chars) of the converted output 69 " p is a pointer to the info structure described below 70 " 71 " The following registers are used by this program: 72 " bp pointer to input string 73 " bb pointer to output string 74 " lp pointer to tab table 75 " lb pointer to info structure 76 " ab pointer to conversion procedure 77 " sb return from conversion procedure call 78 " X1 count of characters remaining in output line 79 " X2 count of white space skipped in output 80 " X7 return from internal calls 81 " 82 " Note: 83 " The actual transmittal of converted print lines to the output buffer 84 " is not done by this routine. Four entries must be provided in 85 " an output conversion procedure. The output procedure is found 86 " by using a pointer provided in the info structure. The entries 87 " and their calling sequences are described below. They must reside 88 " at locations 0, 1, 2, and 3 of the output procedure, and they 89 " are called using a TSPSB instruction. The output procedure shares 90 " the stack frame belonging to prt_conv_. The first 20(8) words 91 " of automatic storage are reserved for use by the output procedure. 92 " 93 " cv_send_init (location 0 of the output procedure) is called before 94 " any conversion is performed. At this time, a carriage control 95 " character (or any other necessary control character) can be 96 " inserted at the beginning of the output line. In addition, 97 " any stack variables used by the output procedure can be 98 " initialized. 99 " 100 " cv_send_chars (location 1) is called each time white space 101 " followed by characters is to be added to the output line. 102 " bp will point to the characters to be output. The number 103 " of characters to output will be found in AU. X2 will contain 104 " the amount of white space to be inserted before the output 105 " characters. cv_send_chars is expected to modify bp and bb 106 " to point after the characters input and output respectively. 107 " It is expected to set X2 to zero after inserting the appropriate 108 " white space. 109 " 110 " cv_send_slew_pattern (location 2) is called at the end of a line 111 " to cause a slew to a VFU tape pattern. The pattern is supplied 112 " in the A register. Currently, only 3 patterns are generated: 113 " slew to top of page, top of inside page, and top of outside page. 114 " cv_send_slew_pattern is expected to modify bb to point 115 " after the last character to be output. 116 " 117 " cv_send_slew_count (location 3) is called at the end of a line 118 " to cause a given number of lines to be slewed. The number is 119 " supplied in the A register. If the requested number of lines 120 " cannot be slewed in one printer operation, the remaining line 121 " count should be returned in the A. Otherwise, the A should be 122 " set to zero. cv_send_slew_count is expected to modify bb to 123 " point after the last character to be output. 124 " 125 " A cell in the conversion control structure (pci.temp) 126 " is reserved for use the the output procedure. This cell may 127 " be used to save variables between successive calls to prt_conv_. 128 " 129 " 130 000000 131 name prt_conv_ 132 000000 133 entry prt_conv_ 134 135 136 temp8 conv_stor(2) reserved for use by conversion procedure 137 tempd save_bp for saving bp 138 temp overstrike overstrike encountered flag 139 temp overflow line overflow encountered flag 140 temp endline end of line char encountered flag 141 temp labelsw label being processed flag 142 temp inrem -count of charaters remaining in input 143 temp cur_level current overstrike level 144 temp outoff output pointer offset 145 temp savpos saved position for long lines 146 temp savfunc saved function code for labels 147 temp char character temporary 148 temp tctally tally from tct instruction 149 temp sctally tally from scd instruction 150 temp bltally tally from tct for blanks 151 temp count character count 152 temp numb count of blanks 153 temp numc non-blank character count 154 temp instr temporary for modified SCM instruction 155 temp save_a_temp 156 temp savex2 store x2 157 tempd dec_ln converted to decimal line-number 158 tempd edited_ln edited line-number char (8) 159 temp el spaces or a + sign for continued line 160 161 " 162 000000 163 equ cv_send_init,0 entry in cv_proc to initialize conversion 000001 164 equ cv_send_chars,1 entry in cv_proc to output characters 000002 165 equ cv_send_slew_pattern,2 entry in cv_proc to slew to pattern 000003 166 equ cv_send_slew_count,3 entry in cv_proc to slew by count 167 168 include prt_conv_info 1-1 1-2 1-3 "BEGIN INCLUDE FILE prt_conv_info.incl.alm 1-4 1-5 "Created 09/12/80 1100.5 edt Fri by convert_include_file, 1-6 " Version of 05/04/80 2034.1 edt Sun. 1-7 1-8 "Made from >udd>Multics>Palter>work>prt_conv_info.incl.pl1, 1-9 " modified 09/12/80 1100.1 edt Fri 1-10 1-11 1-12 " HISTORY COMMENTS: 1-13 " 1) change(87-05-10,Gilcrease), approve(87-07-31,MCR7686), 1-14 " audit(88-02-01,Farley), install(88-02-02,MR12.2-1019): 1-15 " Add pci.(line_nbrs eof eol) bits for eor -nb option. 1-16 " END HISTORY COMMENTS 1-17 1-18 1-19 " 1-20 " Structure pci 1-21 " 000336 1-22 equ pci_size,222 1-23 1-24 000000 1-25 equ pci.cv_proc,0 000002 1-26 equ pci.lmarg,2 000003 1-27 equ pci.rmarg,3 000004 1-28 equ pci.page_length,4 000005 1-29 equ pci.phys_line_length,5 000006 1-30 equ pci.phys_page_length,6 000007 1-31 equ pci.lpi,7 000010 1-32 equ pci.sheets_per_page,8 000011 1-33 equ pci.line_count,9 000012 1-34 equ pci.page_count,10 000013 1-35 equ pci.func,11 000014 1-36 equ pci.modes,12 "LEVEL 2 1-37 400000 1-38 bool pci.overflow_off,400000 "DU 200000 1-39 bool pci.single_space,200000 "DU 100000 1-40 bool pci.non_edited,100000 "DU 040000 1-41 bool pci.truncate,040000 "DU 020000 1-42 bool pci.esc,020000 "DU 010000 1-43 bool pci.ctl_char,010000 "DU 004000 1-44 bool pci.line_nbrs,004000 "DU 000030 1-45 equ pci.pci_pad_shift,24 000037 1-46 bool pci.pci_pad_mask,000037 1-47 000014 1-48 equ pci.flags,12 "LEVEL 2 1-49 000040 1-50 bool pci.ignore_next_ff,000040 "DU 000020 1-51 bool pci.eol,000020 "DU 000010 1-52 bool pci.eof,000010 "DU 000022 1-53 equ pci.flags_pad_shift,18 000007 1-54 bool pci.flags_pad_mask,000007 1-55 000014 1-56 equ pci.coroutine_modes,12 "LEVEL 2 1-57 400000 1-58 bool pci.upper_case,400000 "DL 200000 1-59 bool pci.ht,200000 "DL 000003 1-60 equ pci.coroutine_pad_shift,3 017777 1-61 bool pci.coroutine_pad_mask,017777 000000 1-62 equ pci.slew_table_idx_shift,0 000007 1-63 bool pci.slew_table_idx_mask,000007 1-64 000015 1-65 equ pci.top_label_line,13 "DOUBLE 000057 1-66 equ pci.bot_label_line,47 "DOUBLE 000121 1-67 equ pci.top_label_length,81 000122 1-68 equ pci.bot_label_length,82 000123 1-69 equ pci.form_stops,83 "LEVEL 2 1-70 000033 1-71 equ pci.lbits_shift,27 000777 1-72 bool pci.lbits_mask,000777 000022 1-73 equ pci.rbits_shift,18 000777 1-74 bool pci.rbits_mask,000777 1-75 000323 1-76 equ pci.level,211 000324 1-77 equ pci.pos,212 000325 1-78 equ pci.line,213 000326 1-79 equ pci.slew_residue,214 000327 1-80 equ pci.label_nelem,215 000330 1-81 equ pci.label_wksp,216 000332 1-82 equ pci.sav_pos,218 000333 1-83 equ pci.esc_state,219 000334 1-84 equ pci.esc_num,220 000335 1-85 equ pci.temp,221 1-86 1-87 "END INCLUDE FILE prt_conv_info.incl.alm 169 170 171 " 172 " Conversion Initialization. 173 000000 aa 000140 6270 00 174 prt_conv_:push 000001 aa 7 00040 2721 20 175 000002 aa 0 00012 3715 20 176 epplb ap|10,* lb -> info structure 000003 aa 5 00000 3715 20 177 epplb lb|0,* .. 178 000004 aa 6 00075 4501 00 179 stz labelsw clear label flag 000005 aa 5 00327 2351 00 180 lda lb|pci.label_nelem any label being processed? 000006 0a 000013 6010 00 181 tnz do_label if so, process label 182 000007 aa 0 00002 3521 20 183 eppbp ap|2,* bp -> input string 000010 aa 2 00000 3521 20 184 eppbp bp|0,* .. 000011 aa 0 00004 2351 20 185 lda ap|4,* get length of input string 000012 0a 000015 7100 00 186 tra do_input and continue 187 000013 aa 5 00330 3521 20 188 do_label: eppbp lb|pci.label_wksp,* bp -> label 000014 aa 6 00075 7501 00 189 stc2 labelsw set flag 190 000015 aa 000000 5310 00 191 do_input: neg 0 negate remaining length 000016 aa 6 00076 7551 00 192 sta inrem save -remaining length of input string 193 000017 aa 0 00006 3535 20 194 eppbb ap|6,* bb -> output string 000020 aa 3 00000 3535 20 195 eppbb bb|0,* .. 000021 aa 6 00100 4501 00 196 stz outoff clear word 000022 aa 6 00100 7435 00 197 sarbb outoff save pointer offset for computation later 198 000023 aa 6 00077 4501 00 199 stz cur_level clear current level 000024 aa 6 00072 4501 00 200 stz overstrike clear overstrike flag 000025 aa 6 00073 4501 00 201 stz overflow clear line overflow flag 000026 aa 6 00074 4501 00 202 stz endline clear end of line flag 000027 aa 6 00102 4501 00 203 stz savfunc clear saved function code 204 000030 aa 5 00324 0341 00 205 ldac lb|pci.pos get previous position of incomplete line 000031 aa 6 00101 7551 00 206 sta savpos save in case it's needed later 000032 0a 000034 6010 00 207 tnz *+2 if zero, 000033 aa 5 00002 2351 00 208 lda lb|pci.lmarg use left margin 000034 aa 000000 6220 05 209 eax2 0,al set initial white space 000035 aa 000000 5310 00 210 neg 0 negate 000036 aa 5 00003 0751 00 211 ada lb|pci.rmarg compute characters remaining on line 000037 aa 000000 6210 05 212 eax1 0,al in X1 213 000040 aa 5 00000 3515 20 214 eppab lb|pci.cv_proc,* ab -> conversion proc 000041 aa 1 00000 6731 00 215 tspsb ab|cv_send_init initialize conversion proc 216 000042 aa 5 00326 0341 00 217 ldac lb|pci.slew_residue any more lines to slew? 000043 0a 001023 6054 00 218 tpnz slew_more if so, go do them 219 220 " insert an edited line-number before each generated print-image 221 " line converted from the input string 222 000044 aa 5 00014 2361 00 223 ldq lb|pci.modes 000045 aa 004000 3160 03 224 canq pci.line_nbrs,du -number? 000046 0a 000102 6000 00 225 tze continue 226 000047 aa 0 00100 3015 00 227 btd (pr),(pr) convert line-number to decimal 000050 aa 500011 000004 228 desc9a lb|pci.line_count,4 000051 aa 600116 030010 229 desc9ns dec_ln,8 230 000052 aa 1 00000 0245 00 231 mvne (pr),(),(pr) edit converted number 000053 aa 600116 030010 232 desc9ns dec_ln,8 000054 0a 001140 000001 233 desc9a mop_ctl,1 000055 aa 600120 000010 234 desc9a edited_ln,8 235 000056 aa 5 00014 2361 00 236 ldq lb|pci.flags if not eol, then 000057 aa 000020 3160 03 237 canq pci.eol,du append a + to edited line-number 000060 0a 000066 6010 00 238 tnz plug_040 else spaces 000061 0a 001142 2360 00 239 ldq pls_sign append a + sign 000062 aa 6 00122 7561 00 240 stq el 000063 aa 5 00014 2361 00 241 ldq lb|pci.flags 000064 aa 000010 3160 03 242 canq pci.eof,du if eol but no eof, 000065 0a 000070 6000 00 243 tze *+3 append spaces, else a + 000066 0a 001141 2360 00 244 plug_040: ldq spaces spaces 000067 aa 6 00122 7561 00 245 stq el append spaces or + 000070 0a 001077 7070 00 246 tsx7 reset_eof reset eof switch 247 000071 aa 6 00070 2521 00 248 spribp save_bp save input ptr 000072 aa 6 00120 3521 00 249 eppbp edited_ln edited line number 000073 aa 000012 2350 03 250 lda 10,du pretend 10 non-blank chars 000074 aa 6 00114 7421 00 251 stx2 savex2 store x2 000075 aa 000000 6220 00 252 eax2 0 no blanks 253 000076 0a 001123 7070 00 254 tsx7 call_send_chars output the pattern 255 000077 aa 6 00114 2221 00 256 ldx2 savex2 restore 000100 aa 6 00070 3521 20 257 eppbp save_bp,* registers 258 000101 0a 001070 7070 00 259 tsx7 reset_eol reset end-of-line flag 260 000102 261 continue: 000102 aa 6 00075 2341 00 262 szn labelsw doing label? 000103 0a 000106 6010 00 263 tnz loop if so, don't look at ESC processing 000104 aa 5 00333 2351 00 264 lda lb|pci.esc_state get state of ESC processing 000105 0a 000336 6010 25 265 tnz resume_esc-1,al* if ESC processing, go back to proper place 266 267 " 268 " Main Character Processing Loop. 269 000106 0a 001103 7070 00 270 loop: tsx7 scan scan input characters 000107 aa 6 00107 7551 00 271 sta count save count 272 000110 aa 6 00107 1011 00 273 cmpx1 count too many characters for line? 000111 0a 000114 6050 00 274 tpl *+3 if so, 000112 aa 6 00107 7411 00 275 stx1 count take as many as will fit 000113 aa 6 00073 5541 00 276 stc1 overflow set line overflow switch 277 000114 aa 6 00107 2351 00 278 lda count character count in AU 000115 0a 000201 6000 00 279 tze zerc if no characters, skip following 000116 aa 5 00323 2341 00 280 szn lb|pci.level at zero overstrike level? 000117 0a 000163 6010 00 281 tnz skip if not, don't output anything 282 000120 aa 000022 7710 00 283 arl 18 length in AL 000121 aa 000000 2360 07 284 loop2: ldq 0,dl clear Q (offset from bp) 285 000122 aa 000002 1150 07 286 loop1: cmpa 2,dl if 2 or fewer characters 000123 0a 000166 6044 00 287 tmoz twoleft don't bother looking for blanks 288 000124 aa 0 00003 1205 46 289 scd (pr,rl,ql),(du) search for blanks 000125 aa 200000 000005 290 desc9a bp|0,al .. 000126 aa 040 040 000 000 291 aci " " .. 000127 aa 6 00105 0001 00 292 arg sctally .. 293 000130 aa 6 00105 0761 00 294 adq sctally add offset of start of blanks 000131 aa 6 00105 1751 00 295 sba sctally subtract from length in A 000132 0a 000171 6064 00 296 ttn noblanks if no blanks, just output line 297 000133 aa 0 00000 1645 46 298 tct (pr,rl,ql) now search for non-blanks 000134 aa 200000 000005 299 desc9a bp|0,al .. 000135 0a 001343 0000 00 300 arg bltable .. 000136 aa 6 00106 0001 00 301 arg bltally .. 302 000137 aa 6 00106 7271 00 303 lxl7 bltally get count of blanks in X7 000140 aa 6 00110 7471 00 304 stx7 numb save blank count 000141 aa 000002 1070 03 305 cmpx7 2,du only 2? 000142 0a 000147 6054 00 306 tpnz outfore if more than 2, output text before blanks 000143 aa 000002 1750 07 307 sba 2,dl decrease length by 2 000144 aa 000002 0760 07 308 adq 2,dl and bump offset past blanks 000145 0a 000122 6070 00 309 ttf loop1 continue if we're not at end of string 000146 0a 000172 7100 00 310 tra endblanks output everything 311 000147 aa 6 00111 7551 00 312 outfore: sta numc save remaining length 000150 aa 000066 7370 00 313 lls 36+18 blank offset is non-blank count 000151 0a 000153 6000 00 314 tze *+2 don't output zero characters 000152 0a 001123 7070 00 315 tsx7 call_send_chars output the non-blanks 316 000153 aa 6 00110 0621 00 317 adx2 numb add to white space count 000154 aa 6 00106 2351 00 318 lda bltally get count of blanks 000155 aa 2 00000 5005 05 319 a9bd bp|0,al bump bp past blanks 000156 0a 001746 3750 00 320 ana =o77777777 mask tally 000157 aa 000000 5310 00 321 neg 0 negate 000160 aa 6 00111 0751 00 322 ada numc subtract from remaining length 000161 0a 000121 6010 00 323 tnz loop2 if more characters, continue search 000162 0a 000175 7100 00 324 tra add if not, bump pointers 325 326 " 327 000163 aa 6 00107 0621 00 328 skip: adx2 count add these characters to white space count 000164 aa 2 00000 5005 01 329 a9bd bp|0,au and step input pointer over them 000165 0a 000175 7100 00 330 tra add now add to indices and continue 331 000166 aa 6 00111 7561 00 332 twoleft: stq numc save offset 000167 aa 6 00111 0751 00 333 ada numc add to remaining length to get count 000170 0a 000173 7100 00 334 tra outaft and output characters 335 000171 aa 000001 0760 07 336 noblanks: adq 1,dl SCD examined n-1 characters 000172 aa 000044 7370 00 337 endblanks:lls 36 character count in A 338 000173 aa 000022 7350 00 339 outaft: als 18 count in AU 000174 0a 001123 7070 00 340 tsx7 call_send_chars output text 341 000175 aa 6 00107 2351 00 342 add: lda count get count of characters 000176 aa 000022 7710 00 343 arl 18 in AL 000177 aa 6 00076 0551 00 344 asa inrem decrement -count of characters remaining 000200 aa 6 00107 1611 00 345 sbx1 count decrement space left on output line 346 000201 aa 6 00073 2341 00 347 zerc: szn overflow did line overflow? 000202 0a 000756 6010 00 348 tnz endout if so, stop here 349 000203 aa 6 00104 2351 00 350 null: lda tctally get character type code 000204 aa 000033 7710 00 351 arl 27 in AL 000205 0a 000206 7100 05 352 tra dispatch,al dispatch on it 353 354 000206 0a 000106 7100 00 355 dispatch: tra loop 0: normal character 000207 0a 000415 7100 00 356 tra bs 1: backspace 000210 0a 000444 7100 00 357 tra ht 2: horizontal tab 000211 0a 000462 7100 00 358 tra nl 3: new line 000212 0a 000646 7100 00 359 tra cr 4: carriage return 000213 0a 000626 7100 00 360 tra vt 5: vertical tab 000214 0a 000577 7100 00 361 tra ff 6: form feed 000215 0a 000220 7100 00 362 tra ignore 7: non-printable character 000216 0a 000252 7100 00 363 tra ignored 8: ASCII null character 000217 0a 000260 7100 00 364 tra esc 9: ESC character 365 366 " 367 " Non-graphic Character Processor. 368 000220 aa 5 00014 2351 00 369 ignore: lda lb|pci.modes get conversion flags 000221 aa 010000 3150 03 370 cana pci.ctl_char,du output control characters? 000222 0a 000254 6010 00 371 tnz ctl_char if so, do it 000223 aa 100000 3150 03 372 cana pci.non_edited,du edited mode? 000224 0a 000252 6000 00 373 tze ignored if edited, ignore this character 374 000225 aa 777774 6210 11 375 eax1 -4,1 is there enough space left on line? 000226 0a 000231 6050 00 376 tpl ignore1 if so, continue 000227 aa 000000 6210 00 377 eax1 0 set remaining space to 0 000230 0a 000756 7100 00 378 tra endout and force new line 379 000231 aa 0 00100 1005 00 380 ignore1: mlr (pr),(pr) grab the character 000232 aa 200000 000001 381 desc9a bp|0,1 .. 000233 aa 600103 000001 382 desc9a char,1 .. 383 000234 aa 6 00103 2361 00 384 ldq char character in Q(0-8) 000235 aa 000000 2350 07 385 lda 0,dl clear the A 000236 aa 000003 7370 00 386 lls 3 take character 3 bits at a time 000237 aa 000006 7350 00 387 als 6 with 6 bits of zeroes in between 000240 aa 000003 7370 00 388 lls 3 .. 000241 aa 000006 7350 00 389 als 6 .. 000242 aa 000003 7370 00 390 lls 3 .. 000243 0a 001747 2750 00 391 ora =a\000 make into legal ASCII 000244 aa 6 00103 7551 00 392 sta char and save 393 000245 aa 6 00070 2521 00 394 spribp save_bp save input pointer 000246 aa 6 00103 3521 00 395 eppbp char make bp pointer to characters to output 000247 aa 000004 2350 03 396 lda 4,du set AU to count of 4 000250 0a 001123 7070 00 397 tsx7 call_send_chars and output the chars 000251 aa 6 00070 3521 20 398 eppbp save_bp,* now restore bp 399 000252 0a 001117 7070 00 400 ignored: tsx7 stepin1 step input pointer over character 000253 0a 000106 7100 00 401 tra loop and continue 402 000254 aa 000001 2350 03 403 ctl_char: lda 1,du emit single character 000255 0a 001123 7070 00 404 tsx7 call_send_chars .. 000256 aa 6 00076 0541 00 405 aos inrem .. one less input character now 000257 0a 000106 7100 00 406 tra loop .. and continue 407 408 " 409 " ESC Character Processor. 410 000260 aa 5 00014 2351 00 411 esc: lda lb|pci.modes get mode flags 000261 aa 020000 3150 03 412 cana pci.esc,du in ESC processing mode? 000262 0a 000220 6000 00 413 tze ignore if not, ignore this character 414 000263 aa 5 00334 4501 00 415 stz lb|pci.esc_num initialize number 000264 aa 5 00333 0541 00 416 aos lb|pci.esc_state set state to 1 000265 0a 001117 7070 00 417 tsx7 stepin1 step to character following ESC 000266 0a 000725 6000 00 418 tze endin check for end of input 419 000267 aa 0 00100 1015 00 420 esc1: mrl (pr),(pr),fill(0) grab the next character 000270 aa 200000 000001 421 desc9a bp|0,1 000271 aa 600103 000004 422 desc9a char,4 423 000272 aa 000100 1244 00 424 scm (),(pr) examine table of ESC functions 000273 0a 000335 000001 425 desc9a esc_functions,1 000274 aa 600103 600001 426 desc9a char(3),1 000275 aa 6 00105 0001 00 427 arg sctally 000276 0a 000333 6064 00 428 ttn bad_esc if not found, ignore ESC sequence 429 000277 aa 5 00333 0541 00 430 aos lb|pci.esc_state set state to 2 000300 aa 6 00105 2351 00 431 lda sctally get function code 000301 aa 000022 7350 00 432 als 18 in AU 000302 aa 5 00333 7511 70 433 stca lb|pci.esc_state,70 save in state variable 434 000303 0a 001117 7070 00 435 tsx7 stepin1 step over character 000304 0a 000725 6000 00 436 tze endin .. 437 000305 aa 0 00100 1015 00 438 esc2: mrl (pr),(pr),fill(0) grab a character 000306 aa 200000 000001 439 desc9a bp|0,1 000307 aa 600103 000004 440 desc9a char,4 441 000310 aa 6 00103 2351 00 442 lda char character in A 000311 aa 000003 1150 07 443 cmpa =o003,dl ETX? 000312 0a 000330 6000 00 444 tze esc3 if so, stop gathering digits 445 000313 aa 000060 1150 07 446 cmpa =o060,dl check that it's a numeric character 000314 0a 000333 6040 00 447 tmi bad_esc ... nope 000315 aa 000071 1150 07 448 cmpa =o071,dl ... 000316 0a 000333 6050 00 449 tpl bad_esc ... nope 450 000317 aa 000017 3750 07 451 ana =o17,dl mask to make it a digit 000320 aa 6 00103 7551 00 452 sta char and store 000321 aa 5 00334 2361 00 453 ldq lb|pci.esc_num get number 000322 aa 000012 4020 07 454 mpy 10,dl insert new digit 000323 aa 6 00103 0761 00 455 adq char .. 000324 aa 5 00334 7561 00 456 stq lb|pci.esc_num .. 457 000325 0a 001117 7070 00 458 tsx7 stepin1 step input pointer 000326 0a 000725 6000 00 459 tze endin .. 000327 0a 000305 7100 00 460 tra esc2 continue gathering digits 461 000330 0a 001117 7070 00 462 esc3: tsx7 stepin1 step over ETX 463 000331 aa 5 00333 0341 00 464 ldac lb|pci.esc_state get and clear state variable 000332 0a 000336 7100 21 465 tra esc_proc,au* dispatch on function code 466 000333 aa 5 00333 4501 00 467 bad_esc: stz lb|pci.esc_state restate state variable 000334 0a 000106 7100 00 468 tra loop go back to normal character processing 469 470 " 471 000335 472 esc_functions: 000335 aa 143 000 000 000 473 aci "c" 474 000336 0a 000342 0000 00 475 esc_proc: arg skip_to_channel 476 000337 477 resume_esc: 000337 0a 000267 0000 00 478 arg esc1 000340 0a 000305 0000 00 479 arg esc2 000341 0a 000411 0000 00 480 arg resume_channel_skip 481 482 " 483 " Skip to Logical Forms Image Channel. 484 000342 485 skip_to_channel: 000342 aa 5 00334 2351 00 486 lda lb|pci.esc_num get number 000343 aa 000001 1750 07 487 sba 1,dl minus 1 000344 aa 777000 2360 03 488 ldq =o777000,du character with all ones in Q 000345 aa 000010 3150 07 489 cana =o10,dl if channel <= 8 000346 0a 000350 6010 00 490 tnz *+2 .. 000347 aa 400000 6760 03 491 erq =o400000,du test for high-order bit zero 000350 aa 6 00103 7561 00 492 stq char save character for testing 493 000351 aa 000007 3750 07 494 ana =o7,dl take number 0 mod 8 000352 aa 200000 2360 03 495 ldq =o200000,du get bit in Q 000353 aa 000000 7720 05 496 qrl 0,al shift to position 000354 aa 377000 6760 03 497 erq =o377000,du complement to make SCM mask 000355 0a 000414 2760 00 498 orq scm_inst OR mask into SCM instruction 000356 aa 6 00112 7561 00 499 stq instr save instruction 500 000357 aa 5 00325 2351 00 501 lda lb|pci.line get current line number in A 000360 aa 5 00006 2361 00 502 ldq lb|pci.phys_page_length remaining lines in Q 000361 aa 5 00325 1761 00 503 sbq lb|pci.line .. 000362 0a 000501 6040 00 504 tmi nl1 this shouldn't happen 505 000363 aa 000001 7370 00 506 scan_lfi: lls 1 compute character count and offset 000364 aa 6 00112 7161 00 507 xec instr do the SCM 000365 aa 500123 000006 508 desc9a lb|pci.form_stops,ql 000366 aa 600103 000001 509 desc9a char,1 000367 aa 6 00105 0001 00 510 arg sctally 000370 0a 000376 6070 00 511 ttf channel_found tra if we found channel 512 000371 aa 000000 1150 07 513 cmpa 0,dl second scan? 000372 0a 000501 6000 00 514 tze nl1 if so, cannot find channel 000373 aa 000000 2350 07 515 lda 0,dl scan first part of image now 000374 aa 5 00325 2361 00 516 ldq lb|pci.line only up to current line 000375 0a 000363 7100 00 517 tra scan_lfi .. 518 000376 519 channel_found: 000376 aa 6 00105 0751 00 520 ada sctally add line offset of discovered channel 000377 aa 000001 7710 00 521 arl 1 compute target line number 000400 aa 000001 0750 07 522 ada 1,dl .. 000401 aa 5 00325 1151 00 523 cmpa lb|pci.line are we too far? 000402 0a 001017 6054 00 524 tpnz slew_to_line if not, move paper to there 525 000403 aa 000001 1150 07 526 cmpa 1,dl going to top of page? 000404 0a 000614 6000 00 527 tze ff1 do it 000405 aa 5 00334 7551 00 528 sta lb|pci.esc_num save target line number 000406 aa 000003 2350 07 529 lda 3,dl set state of 3 000407 aa 5 00333 7551 00 530 sta lb|pci.esc_state .. 000410 0a 000614 7100 00 531 tra ff1 emit FF before slewing to correct line 532 " (needn't set ignore_next_ff because this operation isn't done) 533 000411 534 resume_channel_skip: 000411 aa 5 00334 2351 00 535 lda lb|pci.esc_num get target line 000412 aa 5 00333 4501 00 536 stz lb|pci.esc_state clear ESC state variable 000413 0a 001017 7100 00 537 tra slew_to_line perform slew 538 000414 aa 0 00100 1245 45 539 scm_inst: scm (pr,al,rl),(pr) SCM for finding logical channel stop 540 541 " 542 " Backspace Processor. 543 000415 aa 6 00077 0541 00 544 bs: aos cur_level bump current overstrike level 000416 aa 6 00077 2351 00 545 lda cur_level get in in A 000417 aa 5 00323 1151 00 546 cmpa lb|pci.level is level higher than before? 000420 0a 000422 6044 00 547 tmoz *+2 if so, 000421 aa 6 00072 5541 00 548 stc1 overstrike set overstrike flag 549 000422 0a 001117 7070 00 550 tsx7 stepin1 step input pointer over BS character 000423 0a 001103 7070 00 551 tsx7 scan scan more input 000424 0a 000203 6000 00 552 tze null if no characters skipped, process special 553 000425 aa 777777 6220 12 554 eax2 -1,2 decrease count of white space 555 000426 aa 6 00077 2351 00 556 lda cur_level get current level again 000427 aa 5 00323 1151 00 557 cmpa lb|pci.level is it same? 000430 0a 000435 6010 00 558 tnz nobs if not, don't output character 559 000431 aa 000001 2350 03 560 lda 1,du output 1 character 000432 0a 001123 7070 00 561 tsx7 call_send_chars .. 562 000433 aa 6 00076 0541 00 563 aos inrem decrement count of characters remaining 000434 0a 000437 7100 00 564 tra bsahead and continue 565 000435 aa 000001 6220 12 566 nobs: eax2 1,2 count this as white space 000436 0a 001117 7070 00 567 tsx7 stepin1 step over this character 568 000437 aa 6 00104 2351 00 569 bsahead: lda tctally get tally word from scan 000440 0a 001750 1150 00 570 cmpa =o001000000001 is character followed by another BS? 000441 0a 000415 6000 00 571 tze bs if so, handle next BS 000442 aa 6 00077 4501 00 572 stz cur_level if not, set level back to zero 000443 0a 000106 7100 00 573 tra loop and continue 574 575 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 576 577 " Horizontal Tab Processor. 578 000444 0a 001117 7070 00 579 ht: tsx7 stepin1 step over HT character 580 000445 aa 000000 6350 11 581 eaa 0,1 Get count of white space remaining 000446 aa 000000 5310 00 582 neg 0 .. 000447 aa 000066 7330 00 583 lrs 18+36 000450 aa 5 00003 0761 00 584 adq lb|pci.rmarg add right margin 000451 aa 5 00002 1761 00 585 sbq lb|pci.lmarg now have number of chars from left mrgin 000452 aa 000012 5060 07 586 div 10,dl Compute tab motion 000453 aa 000012 1750 07 587 sba 10,dl Compute no of chars to go 000454 aa 000022 7350 00 588 als 18 000455 aa 6 00110 7551 00 589 sta numb 000456 aa 6 00110 1621 00 590 sbx2 numb increase white space count 000457 aa 6 00110 0611 00 591 adx1 numb decrease count of room remaining 000460 0a 000756 6040 00 592 tmi endout exit if output line has overflowed 000461 0a 000106 7100 00 593 tra loop and continue 594 595 " 596 " Newline Processor 597 000462 0a 001117 7070 00 598 nl: tsx7 stepin1 step over NL 000463 aa 6 00074 7501 00 599 stc2 endline set end of line flag 000464 0a 001065 7070 00 600 tsx7 set_eol set eol flag 000465 aa 6 00072 2341 00 601 szn overstrike check for overstrike 000466 0a 000714 6010 00 602 tnz strike .. 603 000467 aa 6 00075 2341 00 604 nl0: szn labelsw processing a label? 000470 0a 000737 6010 00 605 tnz endlabel if so, finish up with label 606 000471 aa 5 00013 0341 00 607 ldac lb|pci.func get function code 000472 aa 6 00102 7551 00 608 sta savfunc save it temporarily 000473 0a 000474 7100 05 609 tra functbl,al dispatch on it 610 000474 0a 000501 7100 00 611 functbl: tra nl1 0: normal new line 000475 0a 000623 7100 00 612 tra ff2 1: change NL to FF 000476 0a 000557 7100 00 613 tra toip 2: change NL to top of inside page 000477 0a 000571 7100 00 614 tra eop 3: change NL to end of page 000500 0a 000564 7100 00 615 tra toop 4: change NL to top of outside page 616 617 000501 aa 5 00014 2271 00 618 nl1: ldx7 lb|pci.modes page overflow suppression mode? 000502 aa 400000 3070 03 619 canx7 pci.overflow_off,du 000503 0a 000520 6000 00 620 tze nl2 ... no 621 622 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 623 " Handle a newline character in -no_endpage mode 624 000504 aa 5 00006 2351 00 625 lda lb|pci.phys_page_length ... yes 000505 aa 5 00325 1751 00 626 sba lb|pci.line compute lines left on real page 627 000506 0a 000525 7070 00 628 tsx7 compute_slew_count see how much we can slew 000507 0a 000511 7060 00 629 tsx6 count_page ... it decided we should eject: just count the page 000510 0a 001022 7100 00 630 tra slew_by_count do the slewing 631 000511 632 count_page: " count a page eject 000511 aa 6 00113 7551 00 633 sta save_a_temp 000512 0a 001132 7070 00 634 tsx7 bump_page count going to the next page 000513 aa 000001 2350 07 635 lda 1,dl 1 - slew_count -> pci.line: slew_by_count label will 000514 aa 6 00113 1751 00 636 sba save_a_temp ... add the slew_count back causing pci.line to be 000515 aa 5 00325 7551 00 637 sta lb|pci.line ... normalized to 1 000516 aa 6 00113 2351 00 638 lda save_a_temp 000517 aa 000000 7100 16 639 tra 0,x6 640 641 642 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 643 " Handle a newline character when not in -no_endpage mode 644 000520 aa 5 00004 2351 00 645 nl2: lda lb|pci.page_length compute lines left on logical page 000521 aa 5 00325 1751 00 646 sba lb|pci.line ... 647 000522 0a 000525 7070 00 648 tsx7 compute_slew_count see how much we can slew 000523 0a 000623 7100 00 649 tra ff2 ... it decided we should eject 000524 0a 001022 7100 00 650 tra slew_by_count ... do the slewing 651 652 653 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 654 " Compute the number of lines we can slew on this page: check for consecutive newlines and 655 " page overflow;" if a page overflow is not detected, skip return 656 000525 657 compute_slew_count: 000525 aa 6 00110 7551 00 658 sta numb save count of lines left on page 000526 0a 000552 6044 00 659 tmoz cslret ... no more lines: eject the page 660 000527 aa 6 00076 3351 00 661 lca inrem get count of remaining input chars 000530 0a 000552 6044 00 662 tmoz cslret ... end of input -- send one NL 663 000531 aa 6 00110 1151 00 664 cmpa numb possibly more NLs than would fit on the page? 000532 0a 000534 6044 00 665 tmoz *+2 ... no 000533 aa 6 00110 2351 00 666 lda numb ... yes: just check for enough to finish the page 667 000534 aa 5 00014 2361 00 668 ldq lb|pci.modes if line_nbrs, don't count 000535 aa 004000 3160 03 669 canq pci.line_nbrs,du any consecutive NLs 000536 0a 000541 6000 00 670 tze tct_nls no 000537 aa 6 00106 4501 00 671 stz bltally 000540 0a 000545 7100 00 672 tra load_tally 673 000541 aa 0 00000 1645 40 674 tct_nls: tct (pr,rl) look for consecutive NLs 000542 aa 200000 000005 675 desc9a bp|0,al 000543 0a 001543 0000 00 676 arg nltable 000544 aa 6 00106 0001 00 677 arg bltally 678 000545 679 load_tally: 000545 aa 6 00106 2351 00 680 lda bltally get result of the verify (input, NL) 000546 0a 001746 3750 00 681 ana =o77777777 000547 0a 000552 6000 00 682 tze cslret ... no consecutive NLs: skip just one 683 000550 aa 2 00000 5005 05 684 a9bd bp|0,al move past the NLs we are processing now 000551 aa 6 00076 0551 00 685 asa inrem ... and note we've done them 686 000552 aa 6 00110 1151 00 687 cslret: cmpa numb rest of page taken up by NLs? 000553 0a 000555 6000 00 688 tze *+2 ... yes: let caller handle it 000554 aa 000001 6270 17 689 eax7 1,x7 ... no: skip return 690 000555 aa 000001 0750 07 691 ada 1,dl account for original NL 000556 aa 000000 7100 17 692 tra 0,x7 693 694 " 695 " Special Function Processors. 696 000557 0a 001132 7070 00 697 toip: tsx7 bump_page bump counters to new page 698 000560 aa 000001 2350 07 699 lda 1,dl set line number back to 1 000561 aa 5 00325 7551 00 700 sta lb|pci.line .. 701 000562 aa 000013 2350 07 702 lda toip_pattern,dl get slew pattern character 000563 0a 001015 7100 00 703 tra slew_to_pattern and go do slewing 704 705 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 706 000564 0a 001132 7070 00 707 toop: tsx7 bump_page bump counters to new page 708 000565 aa 000001 2350 07 709 lda 1,dl set line number back to 1 000566 aa 5 00325 7551 00 710 sta lb|pci.line .. 711 000567 aa 000011 2350 07 712 lda toop_pattern,dl get slew pattern character 000570 0a 001015 7100 00 713 tra slew_to_pattern and do it 714 715 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 716 000571 0a 000655 7070 00 717 eop: tsx7 check_bot_label see if bottom label should be printed 718 000572 aa 5 00006 2361 00 719 ldq lb|pci.phys_page_length get paper length 000573 aa 5 00010 4021 00 720 mpy lb|pci.sheets_per_page times number of sheets per page 000574 aa 000044 7370 00 721 lls 36 in A 000575 aa 000004 1750 07 722 sba 4,dl go 4 lines back 000576 0a 001017 7100 00 723 tra slew_to_line will slew to this position 724 725 " 726 " Form Feed Processor. 727 000577 0a 001117 7070 00 728 ff: tsx7 stepin1 step over FF 000600 aa 6 00074 7501 00 729 stc2 endline set end of line flag 000601 aa 6 00072 2341 00 730 szn overstrike check for overstrike 000602 0a 000714 6010 00 731 tnz strike .. 732 000603 aa 5 00014 2271 00 733 ldx7 lb|pci.modes is single spacing forced? 000604 aa 200000 3070 03 734 canx7 pci.single_space,du .. 000605 0a 000501 6010 00 735 tnz nl1 if so, force NL 736 000606 aa 000040 3070 03 737 canx7 pci.ignore_next_ff,du (pci.modes and pci.flags in same halfword) 000607 0a 000614 6000 00 738 tze ff1 do the FF if not suppressed 739 000610 aa 000040 2350 03 740 lda pci.ignore_next_ff,du 000611 aa 5 00014 3751 00 741 ana lb|pci.flags clear the flags so two FFs 000612 aa 5 00014 6551 00 742 ersa lb|pci.flags ... in a row work properly 000613 0a 000106 7100 00 743 tra loop and continue processing (nothing has been output here) 744 000614 0a 000655 7070 00 745 ff1: tsx7 check_bot_label see if bottom label should be printed 000615 0a 000665 7070 00 746 tsx7 check_top_label likewise for top label 747 000616 0a 001132 7070 00 748 tsx7 bump_page bump counters to next page 000617 aa 000001 2350 07 749 lda 1,dl set line # back to 1 000620 aa 5 00325 7551 00 750 sta lb|pci.line .. 751 000621 aa 000000 2350 07 752 lda ff_pattern,dl get slew pattern for FF 000622 0a 001015 7100 00 753 tra slew_to_pattern and do it 754 000623 aa 000040 2350 03 755 ff2: lda pci.ignore_next_ff,du 000624 aa 5 00014 2551 00 756 orsa lb|pci.flags this FF suppresses next one 000625 0a 000614 7100 00 757 tra ff1 758 759 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 760 761 " Vertical Tab Processor. 762 000626 0a 001117 7070 00 763 vt: tsx7 stepin1 step over VT 000627 aa 6 00074 7501 00 764 stc2 endline set end of line flag 000630 aa 6 00072 2341 00 765 szn overstrike check for overstrike 000631 0a 000714 6010 00 766 tnz strike .. 767 000632 aa 5 00014 2271 00 768 ldx7 lb|pci.modes is single spacing forced? 000633 aa 200000 3070 03 769 canx7 pci.single_space,du .. 000634 0a 000501 6010 00 770 tnz nl1 if so, force NL 771 000635 aa 5 00325 2361 00 772 ldq lb|pci.line bump line # to next vertical tab stop 000636 aa 000011 0760 07 773 adq 9,dl .. 000637 aa 000012 5060 07 774 div 10,dl .. 000640 aa 000012 4020 07 775 mpy 10,dl .. 000641 aa 000001 0760 07 776 adq 1,dl .. 000642 aa 000044 7370 00 777 lls 36 place in A 778 000643 aa 5 00004 1151 00 779 cmpa lb|pci.page_length check for page overflow 000644 0a 000614 6050 00 780 tpl ff1 if overflow, generate FF instead 000645 0a 001017 7100 00 781 tra slew_to_line slew to desired line 782 783 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 784 785 " Process Carriage Return. 786 000646 0a 001117 7070 00 787 cr: tsx7 stepin1 step over CR 000647 aa 6 00074 7501 00 788 stc2 endline set end of line flag 000650 0a 001065 7070 00 789 tsx7 set_eol set eol flag 000651 aa 6 00072 2341 00 790 szn overstrike check for overstrike 000652 0a 000714 6010 00 791 tnz strike .. 792 000653 aa 000000 2350 07 793 cr1: lda 0,dl space zero lines 000654 0a 001022 7100 00 794 tra slew_by_count .. 795 796 " 797 " Label Processors. 798 000655 799 check_bot_label: 000655 aa 5 00004 2351 00 800 lda lb|pci.page_length are we past bottom label? 000656 aa 000002 0750 07 801 ada 2,dl .. 000657 aa 5 00325 1151 00 802 cmpa lb|pci.line .. 000660 aa 000000 6044 17 803 tmoz 0,7 if so, just return 804 000661 aa 5 00122 2361 00 805 ldq lb|pci.bot_label_length get length of bottom label 000662 aa 000000 6000 17 806 tze 0,7 return if no label 807 000663 aa 5 00057 3735 00 808 eppsb lb|pci.bot_label_line sb -> label_line 000664 0a 000677 7100 00 809 tra setlabel set up for bottom label 810 811 000665 812 check_top_label: 000665 aa 5 00006 2361 00 813 ldq lb|pci.phys_page_length are we in position for top? 000666 aa 5 00010 4021 00 814 mpy lb|pci.sheets_per_page .. 000667 aa 000044 7370 00 815 lls 36 .. 000670 aa 000001 1750 07 816 sba 1,dl .. 000671 aa 5 00325 1151 00 817 cmpa lb|pci.line .. 000672 aa 000000 6044 17 818 tmoz 0,7 if not, just return 819 000673 aa 5 00121 2361 00 820 ldq lb|pci.top_label_length get length of top label 000674 aa 000000 6000 17 821 tze 0,7 return if no label 822 000675 aa 5 00015 3735 00 823 eppsb lb|pci.top_label_line sb -> label_line 000676 0a 000677 7100 00 824 tra setlabel set up for top label 825 826 000677 aa 5 00327 7561 00 827 setlabel: stq lb|pci.label_nelem save length of label 000700 aa 5 00330 6535 00 828 sprisb lb|pci.label_wksp save pointer to label 829 000701 aa 5 00324 0321 00 830 ldqc lb|pci.pos save line position 000702 aa 5 00332 7561 00 831 stq lb|pci.sav_pos .. 832 000703 aa 6 00102 2361 00 833 ldq savfunc get saved function code 000704 aa 5 00013 7561 00 834 stq lb|pci.func and restore it 835 000705 aa 6 00074 2141 00 836 sznc endline end of line char encountered? 000706 0a 001017 6000 00 837 tze slew_to_line if not, go do label 838 839 " N.B.: The following code causes the caller to believe that we have not 840 " processed all the input yet. This prevents him from prematurely 841 " returning before prt_conv_ has emitted the label. 842 000707 aa 000001 3360 07 843 lcq 1,dl reverse pointer and length 000710 aa 2 00000 5005 06 844 a9bd bp|0,ql .. 000711 aa 6 00076 0561 00 845 asq inrem .. 000712 aa 5 00332 7521 70 846 stcq lb|pci.sav_pos,70 set flag in saved position 000713 0a 001017 7100 00 847 tra slew_to_line now slew to correct position 848 849 " 850 " Overstrike Processor. 851 000714 aa 5 00323 0541 00 852 strike: aos lb|pci.level bump level up by 1 000715 aa 6 00101 2351 00 853 lda savpos get saved position 000716 aa 5 00324 7551 00 854 sta lb|pci.pos and restore it 000717 aa 000000 2350 07 855 lda 0,dl slew zero lines 000720 aa 1 00003 6731 00 856 tspsb ab|cv_send_slew_count .. 000721 aa 000040 2350 03 857 lda pci.ignore_next_ff,du 000722 aa 5 00014 3751 00 858 ana lb|pci.flags 000723 aa 5 00014 6551 00 859 ersa lb|pci.flags next user's FF is for real 860 000724 0a 001056 7100 00 861 tra exit1 and exit 862 863 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 864 865 " End of Input Processor. 866 000725 aa 6 00072 2341 00 867 endin: szn overstrike check for overstrike 000726 0a 000714 6010 00 868 tnz strike .. 869 000727 aa 6 00075 2341 00 870 szn labelsw label processing? 000730 0a 000737 6010 00 871 tnz endlabel if so, handle end of label 872 000731 aa 000000 6350 11 873 eaa 0,1 get # of spaces remaining on line 000732 aa 000022 7710 00 874 arl 18 in AL 000733 aa 000000 5310 00 875 neg 0 subtract from length of line 000734 aa 5 00003 0751 00 876 ada lb|pci.rmarg .. 000735 aa 5 00324 7551 00 877 sta lb|pci.pos and save current position 878 000736 0a 000653 7100 00 879 tra cr1 force a carriage return 880 881 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 882 883 " End of Label Processor. 884 000737 aa 6 00075 4501 00 885 endlabel: stz labelsw turn off label flag 000740 aa 6 00074 4501 00 886 stz endline clear end of line char switch 000741 aa 5 00327 4501 00 887 stz lb|pci.label_nelem zero characters remaining in label 888 000742 aa 5 00332 2351 00 889 lda lb|pci.sav_pos restore saved line position 000743 aa 777777 3750 07 890 ana =o777777,dl .. 000744 aa 5 00324 7551 00 891 sta lb|pci.pos .. 892 000745 aa 0 00002 3521 20 893 eppbp ap|2,* set bp -> user's data 000746 aa 2 00000 3521 20 894 eppbp bp|0,* .. 000747 aa 0 00004 3351 20 895 lca ap|4,* and get user's character length 000750 aa 6 00076 7551 00 896 sta inrem .. 897 000751 aa 5 00332 2341 00 898 szn lb|pci.sav_pos test for retained last character 000752 0a 000755 6050 00 899 tpl *+3 if we backed up 000753 0a 001117 7070 00 900 tsx7 stepin1 step over character previously backed over 000754 aa 6 00074 7501 00 901 stc2 endline and set flag again 902 000755 0a 000467 7100 00 903 tra nl0 go back and process newline char 904 905 " 906 " Line Overflow Processor. 907 000756 aa 6 00072 2341 00 908 endout: szn overstrike check for overstrike 000757 0a 000714 6010 00 909 tnz strike .. 910 000760 aa 6 00075 2341 00 911 szn labelsw overflow while processing a label? 000761 0a 000737 6010 00 912 tnz endlabel if so, force end of label 913 000762 aa 5 00014 2271 00 914 ldx7 lb|pci.modes using truncate mode? 000763 aa 040000 3070 03 915 canx7 pci.truncate,du .. 000764 0a 001007 6000 00 916 tze endout1 if not, skip following code 917 000765 0a 001103 7070 00 918 truncl: tsx7 scan scan some more input 000766 aa 2 00000 5005 01 919 a9bd bp|0,au bump input pointer 000767 aa 000022 7710 00 920 arl 18 and decrement remaining characters 000770 aa 6 00076 0551 00 921 asa inrem .. 922 000771 aa 6 00104 2351 00 923 lda tctally get tally from TCT 000772 aa 000033 7710 00 924 arl 27 character type code in AL 000773 0a 000774 7100 05 925 tra tdisp,al dispatch on it 926 927 000774 0a 000765 7100 00 928 tdisp: tra truncl 0: normal character 000775 0a 001005 7100 00 929 tra endskip 1: backspace 000776 0a 001005 7100 00 930 tra endskip 2: horizontal tab 000777 0a 000462 7100 00 931 tra nl 3: new line 001000 0a 000646 7100 00 932 tra cr 4: carriage return 001001 0a 000626 7100 00 933 tra vt 5: vertical tab 001002 0a 000577 7100 00 934 tra ff 6: form feed 001003 0a 001005 7100 00 935 tra endskip 7: non-printable character 001004 0a 001005 7100 00 936 tra endskip 8: ASCII null character 937 938 001005 0a 001117 7070 00 939 endskip: tsx7 stepin1 step over character 001006 0a 000765 7100 00 940 tra truncl and loop, discarding characters 941 001007 aa 000000 6350 11 942 endout1: eaa 0,1 count of characters remaining in AU 001010 aa 000022 7310 00 943 ars 18 either zero or negative 001011 aa 000000 5310 00 944 neg 0 negate to get indentation on next line 001012 aa 5 00002 0751 00 945 ada lb|pci.lmarg add left margin 001013 aa 5 00324 7551 00 946 sta lb|pci.pos and set position for next call 947 001014 0a 000501 7100 00 948 tra nl1 force a new line 949 " 950 " Pattern Slew Processor. 951 001015 952 slew_to_pattern: 001015 aa 1 00002 6731 00 953 tspsb ab|cv_send_slew_pattern perform slew to VFU pattern 001016 0a 001031 7100 00 954 tra exit and exit 955 956 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 957 958 " Count Slew Processor. 959 001017 960 slew_to_line: 001017 aa 5 00325 1751 00 961 sba lb|pci.line compute number of lines to slew 001020 0a 001022 6050 00 962 tpl *+2 make sure it is positive 001021 aa 000000 2350 07 963 lda 0,dl if negative, make it zero 964 001022 965 slew_by_count: 001022 aa 5 00325 0551 00 966 asa lb|pci.line bump current line number 001023 aa 1 00003 6731 00 967 slew_more:tspsb ab|cv_send_slew_count slew desired number of lines 001024 aa 5 00326 7551 00 968 sta lb|pci.slew_residue save residue 001025 aa 000040 2350 03 969 lda pci.ignore_next_ff,du 001026 aa 5 00014 3751 00 970 ana lb|pci.flags 001027 aa 5 00014 6551 00 971 ersa lb|pci.flags 001030 0a 001031 7100 00 972 tra exit and exit 973 974 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 975 976 " End of Line Processor. 977 001031 aa 5 00323 4501 00 978 exit: stz lb|pci.level set level back to zero 001032 aa 5 00326 2341 00 979 szn lb|pci.slew_residue 001033 0a 001043 6054 00 980 tpnz check_eof 001034 aa 5 00014 2361 00 981 ldq lb|pci.modes if -nb 001035 aa 004000 3160 03 982 canq pci.line_nbrs,du then see if increment 001036 0a 001042 6000 00 983 tze increment 001037 aa 5 00014 2361 00 984 ldq lb|pci.flags if eol flag, 001040 aa 000020 3160 03 985 canq pci.eol,du then increment 001041 0a 001043 6000 00 986 tze check_eof no eol flag 001042 987 increment: 001042 aa 5 00011 0541 00 988 aos lb|pci.line_count count one line 001043 989 check_eof: 001043 aa 6 00076 2341 00 990 szn inrem no characters remain, eof 001044 0a 001046 6010 00 991 tnz lca characters remain 001045 0a 001074 7070 00 992 tsx7 set_eof set eof switch 001046 aa 6 00076 3351 00 993 lca: lca inrem remaining count of input chars 001047 aa 6 00075 2341 00 994 szn labelsw processing a label? 001050 0a 001054 6010 00 995 tnz exlabel if so, don't return pointer and length 996 001051 aa 0 00002 2521 20 997 spribp ap|2,* return new input pointer 001052 aa 0 00004 7551 20 998 sta ap|4,* and new remaining length 001053 0a 001056 7100 00 999 tra exit1 .. 1000 001054 aa 5 00330 2521 00 1001 exlabel: spribp lb|pci.label_wksp save pointer to label 001055 aa 5 00327 7551 00 1002 sta lb|pci.label_nelem save remaining length of label 1003 001056 aa 6 00107 7435 00 1004 exit1: sarbb count save bb temporarily 001057 aa 6 00107 2351 00 1005 lda count get it in A 001060 aa 6 00100 1351 00 1006 sbla outoff subtract original offset 001061 aa 000020 7710 00 1007 arl 16 number of characters transmitted in AL 001062 aa 0 00010 7551 20 1008 sta ap|8,* and return it 001063 aa 6 00000 3731 00 1009 epbpsb sp|0 restore sb 001064 aa 7 00042 7101 20 1010 return 1011 1012 " 1013 1014 " set/reset flags for eor -number 1015 001065 1016 set_eol: 001065 aa 000020 2350 03 1017 lda pci.eol,du eol flag 001066 aa 5 00014 2551 00 1018 orsa lb|pci.flags set bit 001067 aa 000000 7100 17 1019 tra 0,x7 return 001070 1020 reset_eol: 001070 aa 000020 2350 03 1021 lda pci.eol,du eol flag 001071 aa 5 00014 3751 00 1022 ana lb|pci.flags 001072 aa 5 00014 6551 00 1023 ersa lb|pci.flags reset bit 001073 aa 000000 7100 17 1024 tra 0,x7 return 001074 1025 set_eof: 001074 aa 000010 2350 03 1026 lda pci.eof,du eof bit 001075 aa 5 00014 2551 00 1027 orsa lb|pci.flags 001076 aa 000000 7100 17 1028 tra 0,x7 001077 1029 reset_eof: 001077 aa 000010 2350 03 1030 lda pci.eof,du eof bit 001100 aa 5 00014 3751 00 1031 ana lb|pci.flags 001101 aa 5 00014 6551 00 1032 ersa lb|pci.flags 001102 aa 000000 7100 17 1033 tra 0,x7 1034 " 1035 " Miscellaneous Subroutines. 1036 001103 aa 6 00076 3351 00 1037 scan: lca inrem get count of input characters remaining 001104 0a 000725 6044 00 1038 tmoz endin if zero, input exhausted 1039 001105 aa 377777 1150 07 1040 cmpa 131071,dl use 18-bit arithmetic in many places 001106 0a 001110 6044 00 1041 tmoz *+2 ... 001107 aa 377777 2350 07 1042 lda 131071,dl ... so never scan too many characters 1043 001110 aa 0 00000 1645 40 1044 tct (pr,rl) scan the input 001111 aa 200000 000005 1045 desc9a bp|0,al .. 001112 0a 001143 0000 00 1046 arg tctable .. 001113 aa 6 00104 0001 00 1047 arg tctally .. 1048 001114 aa 6 00104 2351 00 1049 lda tctally tally in A 001115 aa 000022 7350 00 1050 als 18 place in AU 1051 001116 aa 000000 7100 17 1052 tra 0,7 return to caller 1053 1054 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1055 001117 aa 000001 2350 07 1056 stepin1: lda 1,dl step input pointer by 1 001120 aa 2 00000 5005 05 1057 a9bd bp|0,al .. 001121 aa 6 00076 0541 00 1058 aos inrem and decrement -characters remaining 1059 001122 aa 000000 7100 17 1060 tra 0,7 return to caller 1061 1062 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1063 001123 1064 call_send_chars: " send chars and reset ignore_next_ff 001123 aa 1 00001 6731 00 1065 tspsb ab|cv_send_chars send them 001124 aa 6 00113 7551 00 1066 sta save_a_temp 001125 aa 000040 2350 03 1067 lda pci.ignore_next_ff,du 001126 aa 5 00014 3751 00 1068 ana lb|pci.flags 001127 aa 5 00014 6551 00 1069 ersa lb|pci.flags reset the flag 001130 aa 6 00113 2351 00 1070 lda save_a_temp 1071 001131 aa 000000 7100 17 1072 tra 0,7 return to caller 1073 1074 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1075 001132 aa 5 00325 2361 00 1076 bump_page:ldq lb|pci.line get line # 001133 aa 5 00006 0761 00 1077 adq lb|pci.phys_page_length normalize to next page 001134 aa 000001 1760 07 1078 sbq 1,dl .. 001135 aa 5 00006 5061 00 1079 div lb|pci.phys_page_length compute number of pages 001136 aa 5 00012 0561 00 1080 asq lb|pci.page_count and add to page counter 1081 001137 aa 000000 7100 17 1082 tra 0,7 return to caller 1083 1084 " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1085 1086 " Slew Patterns. 1087 000000 1088 bool ff_pattern,0 slew pattern for FF 000013 1089 bool toip_pattern,13 slew pattern for top inside page 000011 1090 bool toop_pattern,11 slew pattern for top outside page 1091 " 1092 001140 aa 110000 000000 1093 mop_ctl: vfd 5/4,4/8 mvzb / 8-characters 001141 aa 040040 040040 1094 spaces: oct 040040040040 spaces 001142 aa 053040 040040 1095 pls_sign: oct 053040040040 a + sign 1096 " Character Type Table 1097 001143 aa 010007 007007 1098 tctable: vfd 9/8,9/7,9/7,9/7,9/7,9/7,9/7,9/7 " 000 - 007 001144 aa 007007 007007 001145 aa 001002 003005 1099 vfd 9/1,9/2,9/3,9/5,9/6,9/4,9/7,9/7 " 010 - 017 001146 aa 006004 007007 001147 aa 007007 007007 1100 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 " 020 - 027 001150 aa 007007 007007 001151 aa 007007 007011 1101 vfd 9/7,9/7,9/7,9/9,9/7,9/7,9/7,9/7 " 030 - 037 001152 aa 007007 007007 1102 000013 1103 dup 11 " 040 - 167 001153 aa 000000 000000 1104 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/0 001154 aa 000000 000000 1105 dupend 001155 aa 000000 000000 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/0 001156 aa 000000 000000 001157 aa 000000 000000 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/0 001160 aa 000000 000000 001161 aa 000000 000000 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/0 001162 aa 000000 000000 001163 aa 000000 000000 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/0 001164 aa 000000 000000 001165 aa 000000 000000 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/0 001166 aa 000000 000000 001167 aa 000000 000000 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/0 001170 aa 000000 000000 001171 aa 000000 000000 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/0 001172 aa 000000 000000 001173 aa 000000 000000 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/0 001174 aa 000000 000000 001175 aa 000000 000000 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/0 001176 aa 000000 000000 001177 aa 000000 000000 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/0 001200 aa 000000 000000 1106 001201 aa 000000 000000 1107 vfd 9/0,9/0,9/0,9/0,9/0,9/0,9/0,9/8 " 170 - 177 001202 aa 000000 000010 1108 000060 1109 dup 64-16 " 200 - 777 001203 aa 007007 007007 1110 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001204 aa 007007 007007 1111 dupend 001205 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001206 aa 007007 007007 001207 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001210 aa 007007 007007 001211 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001212 aa 007007 007007 001213 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001214 aa 007007 007007 001215 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001216 aa 007007 007007 001217 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001220 aa 007007 007007 001221 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001222 aa 007007 007007 001223 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001224 aa 007007 007007 001225 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001226 aa 007007 007007 001227 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001230 aa 007007 007007 001231 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001232 aa 007007 007007 001233 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001234 aa 007007 007007 001235 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001236 aa 007007 007007 001237 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001240 aa 007007 007007 001241 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001242 aa 007007 007007 001243 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001244 aa 007007 007007 001245 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001246 aa 007007 007007 001247 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001250 aa 007007 007007 001251 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001252 aa 007007 007007 001253 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001254 aa 007007 007007 001255 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001256 aa 007007 007007 001257 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001260 aa 007007 007007 001261 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001262 aa 007007 007007 001263 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001264 aa 007007 007007 001265 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001266 aa 007007 007007 001267 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001270 aa 007007 007007 001271 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001272 aa 007007 007007 001273 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001274 aa 007007 007007 001275 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001276 aa 007007 007007 001277 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001300 aa 007007 007007 001301 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001302 aa 007007 007007 001303 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001304 aa 007007 007007 001305 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001306 aa 007007 007007 001307 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001310 aa 007007 007007 001311 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001312 aa 007007 007007 001313 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001314 aa 007007 007007 001315 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001316 aa 007007 007007 001317 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001320 aa 007007 007007 001321 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001322 aa 007007 007007 001323 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001324 aa 007007 007007 001325 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001326 aa 007007 007007 001327 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001330 aa 007007 007007 001331 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001332 aa 007007 007007 001333 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001334 aa 007007 007007 001335 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001336 aa 007007 007007 001337 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001340 aa 007007 007007 001341 aa 007007 007007 vfd 9/7,9/7,9/7,9/7,9/7,9/7,9/7,9/7 001342 aa 007007 007007 1112 1113 " 1114 " Blank Search Table / Non-blank Verify Table 1115 000004 1116 bltable: dup 4 " 000 - 037 001343 aa 001001 001001 1117 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001344 aa 001001 001001 1118 dupend 001345 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001346 aa 001001 001001 001347 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001350 aa 001001 001001 001351 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001352 aa 001001 001001 1119 001353 aa 000001 001001 1120 vfd 9/0,9/1,9/1,9/1,9/1,9/1,9/1,9/1 " 040 - 047 001354 aa 001001 001001 1121 000073 1122 dup 64-4-1 " 050 - 777 001355 aa 001001 001001 1123 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001356 aa 001001 001001 1124 dupend 001357 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001360 aa 001001 001001 001361 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001362 aa 001001 001001 001363 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001364 aa 001001 001001 001365 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001366 aa 001001 001001 001367 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001370 aa 001001 001001 001371 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001372 aa 001001 001001 001373 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001374 aa 001001 001001 001375 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001376 aa 001001 001001 001377 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001400 aa 001001 001001 001401 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001402 aa 001001 001001 001403 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001404 aa 001001 001001 001405 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001406 aa 001001 001001 001407 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001410 aa 001001 001001 001411 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001412 aa 001001 001001 001413 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001414 aa 001001 001001 001415 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001416 aa 001001 001001 001417 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001420 aa 001001 001001 001421 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001422 aa 001001 001001 001423 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001424 aa 001001 001001 001425 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001426 aa 001001 001001 001427 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001430 aa 001001 001001 001431 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001432 aa 001001 001001 001433 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001434 aa 001001 001001 001435 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001436 aa 001001 001001 001437 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001440 aa 001001 001001 001441 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001442 aa 001001 001001 001443 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001444 aa 001001 001001 001445 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001446 aa 001001 001001 001447 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001450 aa 001001 001001 001451 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001452 aa 001001 001001 001453 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001454 aa 001001 001001 001455 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001456 aa 001001 001001 001457 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001460 aa 001001 001001 001461 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001462 aa 001001 001001 001463 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001464 aa 001001 001001 001465 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001466 aa 001001 001001 001467 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001470 aa 001001 001001 001471 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001472 aa 001001 001001 001473 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001474 aa 001001 001001 001475 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001476 aa 001001 001001 001477 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001500 aa 001001 001001 001501 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001502 aa 001001 001001 001503 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001504 aa 001001 001001 001505 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001506 aa 001001 001001 001507 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001510 aa 001001 001001 001511 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001512 aa 001001 001001 001513 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001514 aa 001001 001001 001515 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001516 aa 001001 001001 001517 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001520 aa 001001 001001 001521 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001522 aa 001001 001001 001523 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001524 aa 001001 001001 001525 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001526 aa 001001 001001 001527 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001530 aa 001001 001001 001531 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001532 aa 001001 001001 001533 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001534 aa 001001 001001 001535 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001536 aa 001001 001001 001537 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001540 aa 001001 001001 001541 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001542 aa 001001 001001 1125 1126 " 1127 " Newline Search Table 1128 001543 aa 001001 001001 1129 nltable: vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 " 000 - 007 001544 aa 001001 001001 001545 aa 001001 000001 1130 vfd 9/1,9/1,9/0,9/1,9/1,9/1,9/1,9/1 " 010 - 017 001546 aa 001001 001001 1131 000076 1132 dup 64-2 " 020 - 777 001547 aa 001001 001001 1133 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001550 aa 001001 001001 1134 dupend 001551 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001552 aa 001001 001001 001553 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001554 aa 001001 001001 001555 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001556 aa 001001 001001 001557 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001560 aa 001001 001001 001561 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001562 aa 001001 001001 001563 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001564 aa 001001 001001 001565 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001566 aa 001001 001001 001567 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001570 aa 001001 001001 001571 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001572 aa 001001 001001 001573 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001574 aa 001001 001001 001575 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001576 aa 001001 001001 001577 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001600 aa 001001 001001 001601 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001602 aa 001001 001001 001603 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001604 aa 001001 001001 001605 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001606 aa 001001 001001 001607 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001610 aa 001001 001001 001611 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001612 aa 001001 001001 001613 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001614 aa 001001 001001 001615 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001616 aa 001001 001001 001617 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001620 aa 001001 001001 001621 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001622 aa 001001 001001 001623 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001624 aa 001001 001001 001625 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001626 aa 001001 001001 001627 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001630 aa 001001 001001 001631 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001632 aa 001001 001001 001633 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001634 aa 001001 001001 001635 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001636 aa 001001 001001 001637 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001640 aa 001001 001001 001641 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001642 aa 001001 001001 001643 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001644 aa 001001 001001 001645 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001646 aa 001001 001001 001647 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001650 aa 001001 001001 001651 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001652 aa 001001 001001 001653 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001654 aa 001001 001001 001655 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001656 aa 001001 001001 001657 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001660 aa 001001 001001 001661 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001662 aa 001001 001001 001663 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001664 aa 001001 001001 001665 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001666 aa 001001 001001 001667 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001670 aa 001001 001001 001671 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001672 aa 001001 001001 001673 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001674 aa 001001 001001 001675 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001676 aa 001001 001001 001677 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001700 aa 001001 001001 001701 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001702 aa 001001 001001 001703 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001704 aa 001001 001001 001705 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001706 aa 001001 001001 001707 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001710 aa 001001 001001 001711 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001712 aa 001001 001001 001713 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001714 aa 001001 001001 001715 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001716 aa 001001 001001 001717 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001720 aa 001001 001001 001721 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001722 aa 001001 001001 001723 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001724 aa 001001 001001 001725 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001726 aa 001001 001001 001727 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001730 aa 001001 001001 001731 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001732 aa 001001 001001 001733 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001734 aa 001001 001001 001735 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001736 aa 001001 001001 001737 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001740 aa 001001 001001 001741 aa 001001 001001 vfd 9/1,9/1,9/1,9/1,9/1,9/1,9/1,9/1 001742 aa 001001 001001 1135 1136 end ENTRY SEQUENCES 001743 5a 000011 0000 00 001744 aa 7 00046 2721 20 001745 0a 000000 7100 00 LITERALS 001746 aa 000077 777777 001747 aa 134060 060060 001750 aa 001000 000001 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 001751 5a 000003 000000 001752 5a 000026 600000 001753 aa 000000 000000 001754 55 000011 000002 001755 5a 000002 400003 001756 55 000006 000011 001757 aa 011 160 162 164 001760 aa 137 143 157 156 001761 aa 166 137 000 000 001762 55 000017 000003 001763 0a 001744 500000 001764 55 000014 000003 001765 aa 011 160 162 164 prt_conv_ 001766 aa 137 143 157 156 001767 aa 166 137 000 000 001770 55 000002 000011 001771 6a 000000 400002 001772 55 000022 000003 001773 aa 014 163 171 155 symbol_table 001774 aa 142 157 154 137 001775 aa 164 141 142 154 001776 aa 145 000 000 000 DEFINITIONS HASH TABLE 001777 aa 000000 000015 002000 aa 000000 000000 002001 aa 000000 000000 002002 aa 000000 000000 002003 aa 000000 000000 002004 aa 000000 000000 002005 aa 000000 000000 002006 5a 000017 000000 002007 aa 000000 000000 002010 aa 000000 000000 002011 5a 000011 000000 002012 aa 000000 000000 002013 aa 000000 000000 002014 aa 000000 000000 NO EXTERNAL NAMES NO TRAP POINTER WORDS TYPE PAIR BLOCKS 002015 aa 000001 000000 002016 aa 000000 000000 INTERNAL EXPRESSION WORDS 002017 aa 000000 000000 LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 001751 000000 000002 aa 000000 000000 000003 aa 000000 000000 000004 aa 000000 000000 000005 aa 000000 000000 000006 22 000010 000010 000007 a2 000000 000000 SYMBOL INFORMATION SYMBOL TABLE HEADER 000000 aa 000000 000001 000001 aa 163171 155142 000002 aa 164162 145145 000003 aa 000000 000007 000004 aa 000000 115705 000005 aa 073761 335527 000006 aa 000000 116070 000007 aa 774204 115346 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000002 000002 000016 aa 000064 000000 000017 aa 000000 000271 000020 aa 000000 000130 000021 aa 000253 000250 000022 aa 000262 000130 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 067056 064040 000030 aa 101160 162151 000031 aa 154040 061071 000032 aa 070067 040040 000033 aa 040040 040040 000034 aa 107112 157150 000035 aa 156163 157156 000036 aa 056123 171163 000037 aa 115141 151156 000040 aa 164056 141040 000041 aa 040040 040040 000042 aa 040040 040040 000043 aa 040040 040040 000044 aa 154151 163164 000045 aa 040163 171155 000046 aa 142157 154163 000047 aa 040040 040040 000050 aa 040040 040040 000051 aa 040040 040040 000052 aa 040040 040040 000053 aa 040040 040040 000054 aa 040040 040040 000055 aa 040040 040040 000056 aa 040040 040040 000057 aa 040040 040040 000060 aa 040040 040040 000061 aa 040040 040040 000062 aa 040040 040040 000063 aa 040040 040040 000064 aa 000000 000001 000065 aa 000000 000002 000066 aa 000076 000056 000067 aa 160646 301600 000070 aa 000000 116070 000071 aa 726321 200000 000072 aa 000112 000067 000073 aa 160646 301572 000074 aa 000000 116070 000075 aa 723627 400000 000076 aa 076163 160145 >special_ldd>install>MR12.2-1019>prt_conv_.alm 000077 aa 143151 141154 000100 aa 137154 144144 000101 aa 076151 156163 000102 aa 164141 154154 000103 aa 076115 122061 000104 aa 062056 062055 000105 aa 061060 061071 000106 aa 076160 162164 000107 aa 137143 157156 000110 aa 166137 056141 000111 aa 154155 040040 000112 aa 076163 160145 >special_ldd>install>MR12.2-1019>prt_conv_info.incl.alm 000113 aa 143151 141154 000114 aa 137154 144144 000115 aa 076151 156163 000116 aa 164141 154154 000117 aa 076115 122061 000120 aa 062056 062055 000121 aa 061060 061071 000122 aa 076160 162164 000123 aa 137143 157156 000124 aa 166137 151156 000125 aa 146157 056151 000126 aa 156143 154056 000127 aa 141154 155040 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number 175 add prt_conv_: 324, 330, 342. 333 bad_esc prt_conv_: 428, 447, 449, 467. 1343 bltable prt_conv_: 300, 1116. 106 bltally prt_conv_: 150, 301, 303, 318, 671, 677, 680. 415 bs prt_conv_: 356, 544, 571. 437 bsahead prt_conv_: 564, 569. 1132 bump_page prt_conv_: 634, 697, 707, 748, 1076. 1123 call_send_chars prt_conv_: 254, 315, 340, 397, 404, 561, 1064. 376 channel_found prt_conv_: 511, 519. 103 char prt_conv_: 147, 382, 384, 392, 395, 422, 426, 440, 442, 452, 455, 492, 509. 655 check_bot_label prt_conv_: 717, 745, 799. 1043 check_eof prt_conv_: 980, 986, 989. 665 check_top_label prt_conv_: 746, 812. 525 compute_slew_count prt_conv_: 628, 648, 657. 102 continue prt_conv_: 225, 261. 50 conv_stor prt_conv_: 136. 107 count prt_conv_: 151, 271, 273, 275, 278, 328, 342, 345, 1004, 1005. 511 count_page prt_conv_: 629, 632. 646 cr prt_conv_: 359, 787, 932. 653 cr1 prt_conv_: 793, 879. 552 cslret prt_conv_: 659, 662, 682, 687. 254 ctl_char prt_conv_: 371, 403. 77 cur_level prt_conv_: 143, 199, 544, 545, 556, 572. 1 cv_send_chars prt_conv_: 164, 1065. 0 cv_send_init prt_conv_: 163, 215. 3 cv_send_slew_count prt_conv_: 166, 856, 967. 2 cv_send_slew_pattern prt_conv_: 165, 953. 116 dec_ln prt_conv_: 157, 229, 232. 206 dispatch prt_conv_: 352, 355. 15 do_input prt_conv_: 186, 191. 13 do_label prt_conv_: 181, 188. 120 edited_ln prt_conv_: 158, 234, 249. 122 el prt_conv_: 159, 240, 245. 172 endblanks prt_conv_: 310, 337. 725 endin prt_conv_: 418, 436, 459, 867, 1038. 737 endlabel prt_conv_: 605, 871, 885, 912. 74 endline prt_conv_: 140, 202, 599, 729, 764, 788, 836, 886, 901. 756 endout prt_conv_: 348, 378, 592, 908. 1007 endout1 prt_conv_: 916, 942. 1005 endskip prt_conv_: 929, 930, 935, 936, 939. 571 eop prt_conv_: 614, 717. 260 esc prt_conv_: 364, 411. 267 esc1 prt_conv_: 420, 478. 305 esc2 prt_conv_: 438, 460, 479. 330 esc3 prt_conv_: 444, 462. 335 esc_functions prt_conv_: 425, 472. 336 esc_proc prt_conv_: 465, 475. 1031 exit prt_conv_: 954, 972, 978. 1056 exit1 prt_conv_: 861, 999, 1004. 1054 exlabel prt_conv_: 995, 1001. 577 ff prt_conv_: 361, 728, 934. 614 ff1 prt_conv_: 527, 531, 738, 745, 757, 780. 623 ff2 prt_conv_: 612, 649, 755. 0 ff_pattern prt_conv_: 752, 1088. 474 functbl prt_conv_: 609, 611. 444 ht prt_conv_: 357, 579. 220 ignore prt_conv_: 362, 369, 413. 231 ignore1 prt_conv_: 376, 380. 252 ignored prt_conv_: 363, 373, 400. 1042 increment prt_conv_: 983, 987. 76 inrem prt_conv_: 142, 192, 344, 405, 563, 661, 685, 845, 896, 921, 990, 993, 1037, 1058. 112 instr prt_conv_: 154, 499, 507. 75 labelsw prt_conv_: 141, 179, 189, 262, 604, 870, 885, 911, 994. 1046 lca prt_conv_: 991, 993. 545 load_tally prt_conv_: 672, 679. 106 loop prt_conv_: 263, 270, 355, 401, 406, 468, 573, 593, 743. 122 loop1 prt_conv_: 286, 309. 121 loop2 prt_conv_: 284, 323. 1140 mop_ctl prt_conv_: 233, 1093. 462 nl prt_conv_: 358, 598, 931. 467 nl0 prt_conv_: 604, 903. 501 nl1 prt_conv_: 504, 514, 611, 618, 735, 770, 948. 520 nl2 prt_conv_: 620, 645. 1543 nltable prt_conv_: 676, 1129. 171 noblanks prt_conv_: 296, 336. 435 nobs prt_conv_: 558, 566. 203 null prt_conv_: 350, 552. 110 numb prt_conv_: 152, 304, 317, 589, 590, 591, 658, 664, 666, 687. 111 numc prt_conv_: 153, 312, 322, 332, 333. 173 outaft prt_conv_: 334, 339. 147 outfore prt_conv_: 306, 312. 100 outoff prt_conv_: 144, 196, 197, 1006. 73 overflow prt_conv_: 139, 201, 276, 347. 72 overstrike prt_conv_: 138, 200, 548, 601, 730, 765, 790, 867, 908. 122 pci.bot_label_length prt_conv_: 805, prt_conv_info: 68. 57 pci.bot_label_line prt_conv_: 808, prt_conv_info: 66. 14 pci.coroutine_modes prt_conv_info: 56. 17777 pci.coroutine_pad_mask prt_conv_info: 61. 3 pci.coroutine_pad_shift prt_conv_info: 60. 10000 pci.ctl_char prt_conv_: 370, prt_conv_info: 43. 0 pci.cv_proc prt_conv_: 214, prt_conv_info: 25. 10 pci.eof prt_conv_: 242, 1026, 1030, prt_conv_info: 52. 20 pci.eol prt_conv_: 237, 985, 1017, 1021, prt_conv_info: 51. 20000 pci.esc prt_conv_: 412, prt_conv_info: 42. 334 pci.esc_num prt_conv_: 415, 453, 456, 486, 528, 535, prt_conv_info: 84. 333 pci.esc_state prt_conv_: 264, 416, 430, 433, 464, 467, 530, 536, prt_conv_info: 83. 14 pci.flags prt_conv_: 236, 241, 741, 742, 756, 858, 859, 970, 971, 984, 1018, 1022, 1023, 1027, 1031, 1032, 1068, 1069, prt_conv_info: 48. 7 pci.flags_pad_mask prt_conv_info: 54. 22 pci.flags_pad_shift prt_conv_info: 53. 123 pci.form_stops prt_conv_: 508, prt_conv_info: 69. 13 pci.func prt_conv_: 607, 834, prt_conv_info: 35. 200000 pci.ht prt_conv_info: 59. 40 pci.ignore_next_ff prt_conv_: 737, 740, 755, 857, 969, 1067, prt_conv_info: 50. 327 pci.label_nelem prt_conv_: 180, 827, 887, 1002, prt_conv_info: 80. 330 pci.label_wksp prt_conv_: 188, 828, 1001, prt_conv_info: 81. 777 pci.lbits_mask prt_conv_info: 72. 33 pci.lbits_shift prt_conv_info: 71. 323 pci.level prt_conv_: 280, 546, 557, 852, 978, prt_conv_info: 76. 325 pci.line prt_conv_: 501, 503, 516, 523, 626, 637, 646, 700, 710, 750, 772, 802, 817, 961, 966, 1076, prt_conv_info: 78. 11 pci.line_count prt_conv_: 228, 988, prt_conv_info: 33. 4000 pci.line_nbrs prt_conv_: 224, 669, 982, prt_conv_info: 44. 2 pci.lmarg prt_conv_: 208, 585, 945, prt_conv_info: 26. 7 pci.lpi prt_conv_info: 31. 14 pci.modes prt_conv_: 223, 369, 411, 618, 668, 733, 768, 914, 981, prt_conv_info: 36. 100000 pci.non_edited prt_conv_: 372, prt_conv_info: 40. 400000 pci.overflow_off prt_conv_: 619, prt_conv_info: 38. 12 pci.page_count prt_conv_: 1080, prt_conv_info: 34. 4 pci.page_length prt_conv_: 645, 779, 800, prt_conv_info: 28. 37 pci.pci_pad_mask prt_conv_info: 46. 30 pci.pci_pad_shift prt_conv_info: 45. 5 pci.phys_line_length prt_conv_info: 29. 6 pci.phys_page_length prt_conv_: 502, 625, 719, 813, 1077, 1079, prt_conv_info: 30. 324 pci.pos prt_conv_: 205, 830, 854, 877, 891, 946, prt_conv_info: 77. 777 pci.rbits_mask prt_conv_info: 74. 22 pci.rbits_shift prt_conv_info: 73. 3 pci.rmarg prt_conv_: 211, 584, 876, prt_conv_info: 27. 332 pci.sav_pos prt_conv_: 831, 846, 889, 898, prt_conv_info: 82. 10 pci.sheets_per_page prt_conv_: 720, 814, prt_conv_info: 32. 200000 pci.single_space prt_conv_: 734, 769, prt_conv_info: 39. 326 pci.slew_residue prt_conv_: 217, 968, 979, prt_conv_info: 79. 7 pci.slew_table_idx_mask prt_conv_info: 63. 0 pci.slew_table_idx_shift prt_conv_info: 62. 335 pci.temp prt_conv_info: 85. 121 pci.top_label_length prt_conv_: 820, prt_conv_info: 67. 15 pci.top_label_line prt_conv_: 823, prt_conv_info: 65. 40000 pci.truncate prt_conv_: 915, prt_conv_info: 41. 400000 pci.upper_case prt_conv_info: 58. 336 pci_size prt_conv_info: 22. 1142 pls_sign prt_conv_: 239, 1095. 66 plug_040 prt_conv_: 238, 244. 0 prt_conv_ prt_conv_: 133, 174. 1077 reset_eof prt_conv_: 246, 1029. 1070 reset_eol prt_conv_: 259, 1020. 411 resume_channel_skip prt_conv_: 480, 534. 337 resume_esc prt_conv_: 265, 477. 114 savex2 prt_conv_: 156, 251, 256. 113 save_a_temp prt_conv_: 155, 633, 636, 638, 1066, 1070. 70 save_bp prt_conv_: 137, 248, 257, 394, 398. 102 savfunc prt_conv_: 146, 203, 608, 833. 101 savpos prt_conv_: 145, 206, 853. 1103 scan prt_conv_: 270, 551, 918, 1037. 363 scan_lfi prt_conv_: 506, 517. 414 scm_inst prt_conv_: 498, 539. 105 sctally prt_conv_: 149, 292, 294, 295, 427, 431, 510, 520. 677 setlabel prt_conv_: 809, 824, 827. 1074 set_eof prt_conv_: 992, 1025. 1065 set_eol prt_conv_: 600, 789, 1016. 163 skip prt_conv_: 281, 328. 342 skip_to_channel prt_conv_: 475, 485. 1022 slew_by_count prt_conv_: 630, 650, 794, 965. 1023 slew_more prt_conv_: 218, 967. 1017 slew_to_line prt_conv_: 524, 537, 723, 781, 837, 847, 960. 1015 slew_to_pattern prt_conv_: 703, 713, 753, 952. 1141 spaces prt_conv_: 244, 1094. 1117 stepin1 prt_conv_: 400, 417, 435, 458, 462, 550, 567, 579, 598, 728, 763, 787, 900, 939, 1056. 714 strike prt_conv_: 602, 731, 766, 791, 852, 868, 909. 1143 tctable prt_conv_: 1046, 1098. 104 tctally prt_conv_: 148, 350, 569, 923, 1047, 1049. 541 tct_nls prt_conv_: 670, 674. 774 tdisp prt_conv_: 925, 928. 557 toip prt_conv_: 613, 697. 13 toip_pattern prt_conv_: 702, 1089. 564 toop prt_conv_: 615, 707. 11 toop_pattern prt_conv_: 712, 1090. 765 truncl prt_conv_: 918, 928, 940. 166 twoleft prt_conv_: 287, 332. 626 vt prt_conv_: 360, 763, 933. 201 zerc prt_conv_: 279, 347. NO FATAL ERRORS ----------------------------------------------------------- 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