ASSEMBLY LISTING OF SEGMENT >spec>h>3.17>edit.alm ASSEMBLED ON: 11/29/83 1521.7 mst Tue OPTIONS USED: list ASSEMBLED BY: ALM Version 6.6 November 1982 ASSEMBLER CREATED: 09/21/83 1227.3 mst Wed  1 " ***********************************************************  2 " * *  3 " * Copyright, (C) Honeywell Information Systems Inc., 1982 *  4 " * *  5 " ***********************************************************  6 " EDIT - BOS BCD File Editor.  7 " Modified 9/17/75 by Noel I. Morris  8 " Last modified 2/11/81 by Sherman D. Sprague for prompting 9  10 " ******************************************************  11 " * *  12 " * *  13 " * Copyright (c) 1972 by Massachusetts Institute of *  14 " * Technology and Honeywell Information Systems, Inc. *  15 " * *  16 " * *  17 " ******************************************************  18  19  20  21  22 include bosequ 1-1 " Begin include file ...... bosequ.incl.alm 1-2 " Modified 8/25/76 by N. I. Morris  1-3 " Modified 8/79 by R.J.C. Kissel to expand BOS. 1-4 " Modified November 1981 by C. Hornig to add pgmorg.  1-5 " Modified October 1982 by J. Bongiovanni to take it out  1-6  000000 1-7 bool ds,0 descriptor segment  000001 1-8 bool tmp,1 temp seg  000002 1-9 bool bf,2 buffer segment for save/restor  000003 1-10 bool pgm,3 program in control 000004 1-11 bool xs1,4 spare segment  000005 1-12 bool xs2,5 spare segment  000005 1-13 bool fgb,5 flagbox segment  000006 1-14 bool com,6 common 000007 1-15 bool mem,7 all memory 1-16  000017 1-17 equ arglen,15 max number of args from scan  1-18  004000 1-19 bool runcom_bit,4000 runcom bit in dir entry  002000 1-20 bool firmware_bit,2000 firmware bit in dir entry  1-21  012000 1-22 bool utilorg,12000 origin of utility package  1-23  1-24 " End of include file ...... bosequ.incl.alm  23  24  25 " 26  000000 0a 000013 7420 00 27 stx2 x2  000001 aa 000000 6200 12 28 eax0 0,2  000002 aa 012271 7020 00 29 tsx2 init_io  000003 aa 012245 7020 00 30 tsx2 ttyinit  000004 0a 000013 0000 00 31 arg ttyrequest 32  000005 aa 000001 3360 07 33 lcq 1,dl make a line mark 000006 aa 012000 7560 00 34 stq pagectl ..  35  000007 aa 7 00000 2201 10 36 ldx0 mem|0,0 get loc of args  000010 aa 7 00001 2351 10 37 lda mem|1,0 first arg 000011 0a 000403 7550 00 38 sta name  39  000012 0a 000016 7100 00 40 tra edit  41  000013 42 ttyrequest: 000013 0a 000013 6220 00 43 x2: eax2 *  000014 aa 000001 3350 07 44 lca =1,dl  000015 aa 7 00001 7101 12 45 tra mem|1,2 return to bos 46  47 " 48  49 " The basic edit loop. A line is read from the tty and the first  50 " character is used to determine the command. The following  51 " commands are defined: 52 "  53 " P [1] print [N] lines starting at the current line.  54 " N [1] next [N] lines...skip N lines.  55 " - [1] backup [N] lines...skip backward N lines.  56 " I Insert text before current line. Input stops when a 57 " null line is read.  58 " D [1] delete [N] lines starting at the current line.  59 " T go to beginning (top) of file.  60 " B go to end (bottom) of file and receive input.  61 " W -name- write the runcom file out with the given name and  62 " exit from the editor. If no name is given the  63 " file that was read in is overwritten.  64 " Q Quit from the editor without saving the work.  65 " = Print out current line number.  66 "  67 " The brackets are not part of the syntax. The are used only to 68 " show what the default parameters used are.  69 "  70 " The editor works by keeping a "current line" pointer. This  71 " pointer is changed by the various requests depending on the  72 " request. The P request prints the line pointed to by CLP  73 " (current line pointer). It leaves CLP pointing at the last  74 " line printed. 75 " The N request moves CLP down the specified number of lines.  76 " The B request moves CLP backward the specified number of lines.  77 " The I request inserts text in front of the line pointed to  78 " by CLP but leaves CLP pointing at the line after the last line  79 " input.  80 " The D request deletes the specified number of lines starting at  81 " the line pointed to by CLP. It leaves CLP pointing at the first  82 " line after those deleted. 83 " The T request leaves the CLP pointing to the first line.  84 " The B request causes input to be accepted and placed after  85 " the last line.  86 " The = request prints out the number of the line pointed to by CLP.  87 "  88 " 89  000016 0a 000403 2350 00 90 edit: lda name search for the name in the directory  000017 0a 000544 1150 00 91 cmpa =-1 check if a name was given  000020 0a 000046 6000 00 92 tze enotf1 no, initialize name to all blanks  000021 aa 012204 7020 00 93 tsx2 search search for it 000022 0a 000055 7100 00 94 tra enotf not there, tell him and wait for requests  95  000023 aa 004000 6750 07 96 era =o4000,dl turn off runcom bit 000024 aa 012234 7020 00 97 tsx2 rdsec read in the runcom file  000025 aa 2 00000 0111 00 98 nop bf|0  000026 0a 000013 7100 00 99 tra x2 100  101 " initialize the editor by finding the length of the runcom file  102 " and setting up certain pointers and lengths.  103  000027 aa 000000 6200 00 104 eax0 0 count words in the file  000030 0a 000406 4500 00 105 stz nlines count the lines in the file  106  000031 aa 2 00000 2351 10 107 eskip4: lda bf|0,0 get word from buffer  000032 0a 000544 1150 00 108 cmpa =-1 end of file? 000033 0a 000040 6000 00 109 tze estart if so, finished with count 000034 0a 000406 0540 00 110 aos nlines count the line 000035 aa 2 00000 0601 10 111 adx0 bf|0,0 add length of line to offset  000036 aa 000001 6200 10 112 eax0 1,0 skip over the marker 000037 0a 000031 7100 00 113 tra eskip4 search on  114  000040 aa 000001 6200 10 115 estart: eax0 1,0 count final fence 000041 0a 000404 7400 00 116 stx0 nwords save the number of words in the file 000042 0a 000405 4500 00 117 stz cur_word start editing at beginning of the file  000043 aa 000001 2350 07 118 lda 1,dl start editing at line 1  000044 0a 000407 7550 00 119 sta cur_line save as current line 000045 0a 000076 7100 00 120 tra edit_loop start editing ...  121  122  000046 0a 000545 2350 00 123 enotf1: lda =h " set name to all blanks  000047 0a 000403 7550 00 124 sta name  000050 aa 012241 7020 00 125 tsx2 erpt  000051 aa 010 151 156 160 126 acc "input..." 000052 aa 165 164 056 056 000053 aa 056 000 000 000 000054 0a 000065 7100 00 127 tra startin  128  000055 aa 012241 7020 00 129 enotf: tsx2 erpt  000056 aa 026 136 147 040 130 acc "^g not found. input..."  000057 aa 156 157 164 040 000060 aa 146 157 165 156 000061 aa 144 056 040 151 000062 aa 156 160 165 164 000063 aa 056 056 056 000 000064 0a 000403 0000 00 131 arg name  132  000065 0a 000405 4500 00 133 startin: stz cur_word  000066 0a 000406 4500 00 134 stz nlines initialize counters, etc.  000067 aa 000001 2350 07 135 lda 1,dl  000070 0a 000407 7550 00 136 sta cur_line  000071 aa 000001 2350 03 137 lda 1,du  000072 0a 000404 7550 00 138 sta nwords 000073 aa 000001 3350 07 139 lca 1,dl  000074 aa 2 00000 7551 00 140 sta bf|0  000075 0a 000232 7100 00 141 tra insert 142  000076 143 edit_loop:  000076 aa 012247 7020 00 144 tsx2 readtty get the request line 000077 0a 000076 7100 00 145 tra edit_loop ignore blank lines  000100 aa 012200 7020 00 146 tsx2 scan get any numbers converted.  000101 aa 012061 2350 00 147 lda darg+1 get count (would be first arg) 000102 0a 000104 6050 00 148 tpl *+2 if non-zero, then number was given  000103 aa 000001 2350 07 149 lda 1,dl use 1 if no count given  000104 0a 000410 7550 00 150 sta count  151  000105 aa 012040 2350 00 152 lda arg get the request name  000106 0a 000546 1150 00 153 cmpa =h -  000107 0a 000142 6000 00 154 tze backup 000110 0a 000547 1150 00 155 cmpa =h b  000111 0a 000270 6000 00 156 tze bottom 000112 0a 000550 1150 00 157 cmpa =h d  000113 0a 000166 6000 00 158 tze delete 000114 0a 000551 1150 00 159 cmpa =h i  000115 0a 000232 6000 00 160 tze insert 000116 0a 000552 1150 00 161 cmpa =h n  000117 0a 000154 6000 00 162 tze next  000120 0a 000553 1150 00 163 cmpa =h p  000121 0a 000276 6000 00 164 tze eprint 000122 0a 000554 1150 00 165 cmpa =h q  000123 0a 000344 6000 00 166 tze quit  000124 0a 000555 1150 00 167 cmpa =h t  000125 0a 000273 6000 00 168 tze etop  000126 0a 000556 1150 00 169 cmpa =h w  000127 0a 000322 6000 00 170 tze write  000130 0a 000557 1150 00 171 cmpa =h =  000131 0a 000136 6000 00 172 tze lineno 173  000132 aa 012241 7020 00 174 tsx2 erpt not a known request 000133 aa 004 055 116 117 175 acc "-NO-" 000134 aa 055 000 000 000 000135 0a 000076 7100 00 176 tra edit_loop  177  178  179 " 180  181 " " " " " " " " 182 " " 183 " lineno " 184 " " 185 " " " " " " " " 186  000136 aa 012241 7020 00 187 lineno: tsx2 erpt  000137 aa 002 136 144 000 188 acc "^d"  000140 0a 000407 0000 00 189 arg cur_line  000141 0a 000076 7100 00 190 tra edit_loop  191  192 " " " " " " "  193 " "  194 " backup "  195 " "  196 " " " " " " "  197  000142 198 backup: 000142 0a 000410 7210 00 199 lxl1 count get the number of lines to back up 000143 aa 777777 6210 11 200 back1: eax1 -1,1 decrement lines done  000144 0a 000076 6040 00 201 tmi edit_loop all done  000145 0a 000361 7020 00 202 tsx2 skip_backward backup 1 line  000146 0a 000150 7100 00 203 tra bof_message backed up to beginning of file 000147 0a 000143 7100 00 204 tra back1  205  000150 206 bof_message:  000150 aa 012241 7020 00 207 tsx2 erpt  000151 aa 005 052 102 117 208 acc "*BOF*"  000152 aa 106 052 000 000 000153 0a 000076 7100 00 209 tra edit_loop  210  211 " " " " " " "  212 " "  213 " next "  214 " "  215 " " " " " " "  216  000154 217 next:  000154 0a 000410 7210 00 218 lxl1 count get number of lines to skip  000155 aa 777777 6210 11 219 next1: eax1 -1,1 decrement number of lines skipped 000156 0a 000076 6040 00 220 tmi edit_loop all done  000157 0a 000345 7020 00 221 tsx2 skip_forward skip over a line 000160 0a 000162 7100 00 222 tra eof_message end of file encountered  000161 0a 000155 7100 00 223 tra next1  224  000162 225 eof_message:  000162 aa 012241 7020 00 226 tsx2 erpt  000163 aa 005 052 105 117 227 acc "*EOF*"  000164 aa 106 052 000 000 000165 0a 000076 7100 00 228 tra edit_loop  229  230 " 231  232 " " " " " " "  233 " "  234 " delete "  235 " "  236 " " " " " " "  237  000166 238 delete: 000166 0a 000410 7210 00 239 lxl1 count get number of lines to delete  000167 0a 000405 2350 00 240 lda cur_word get current word (points to start of current line)  000170 aa 2 00000 2361 01 241 ldq bf|0,au see if at end of file 000171 0a 000544 1160 00 242 cmpq =-1  000172 0a 000162 6000 00 243 tze eof_message yes ...  000173 0a 000411 7550 00 244 sta save_cur_word save current word index  000174 0a 000407 2350 00 245 lda cur_line  000175 0a 000412 7550 00 246 sta save_cur_line  247  000176 aa 777777 6210 11 248 delete1: eax1 -1,1 decrement number of lines deleted  000177 0a 000203 6040 00 249 tmi delete2 when finished, do actual deletion 250  000200 0a 000345 7020 00 251 tsx2 skip_forward skip a line  000201 0a 000226 7100 00 252 tra feof_message look for EOF  000202 0a 000176 7100 00 253 tra delete1 continue skipping lines  254  000203 0a 000411 2350 00 255 delete2: lda save_cur_word get previous current word  000204 0a 000405 2360 00 256 ldq cur_word get new current word 000205 aa 000002 7370 00 257 lls 2 compute 9-bit offsets  000206 aa 000000 6260 01 258 eax6 0,au previous offset in X6  000207 aa 000000 6270 02 259 eax7 0,qu new offset in X7  000210 0a 000404 2350 00 260 lda nwords get number of words in file  000211 0a 000405 1750 00 261 sba cur_word minus new current word  000212 aa 000002 7350 00 262 als 2 compute number of characters to move  000213 aa 0 00156 1005 57 263 mlr (pr,rl,x7),(pr,rl,x6) move lines down over deleted lines  000214 aa 200000 000001 264 desc9a bf|0,au 000215 aa 200000 000001 265 desc9a bf|0,au 266  000216 0a 000411 2350 00 267 lda save_cur_word update new number of wrds in file  000217 0a 000405 1350 00 268 sbla cur_word  000220 0a 000404 0550 00 269 asa nwords 270  000221 0a 000411 2350 00 271 lda save_cur_word update new cur_word (line number doesn't change) 000222 0a 000405 7550 00 272 sta cur_word  273  000223 0a 000412 2350 00 274 lda save_cur_line now, put current line back  000224 0a 000407 7550 00 275 sta cur_line to what it was before  276  000225 0a 000076 7100 00 277 tra edit_loop go back to main edit loop  278  000226 279 feof_message:  000226 aa 012241 7020 00 280 tsx2 erpt  000227 aa 005 052 105 117 281 acc "*EOF*"  000230 aa 106 052 000 000 000231 0a 000203 7100 00 282 tra delete2  283  284 " 285  286 " " " " " " "  287 " "  288 " insert "  289 " "  290 " " " " " " "  291  000232 292 insert: 000232 0a 000560 2350 00 293 lda =h input load input prompt  000233 aa 6 02027 7551 00 294 sta com|curtcmd store the new prompt  000234 aa 012247 7020 00 295 tsx2 readtty get the new input line  000235 0a 000265 7100 00 296 tra eset_pmt go set return promt  000236 0a 000526 7020 00 297 tsx2 runcom_line_len get length of line and set line mark  000237 0a 000413 7560 00 298 stq len save length  299  000240 0a 000404 2360 00 300 ldq nwords number of words in file  000241 0a 000405 1760 00 301 sbq cur_word minus current word  000242 aa 000002 7360 00 302 qls 2 compute number of chars to end of file  303  000243 0a 000405 2350 00 304 lda cur_word current word 000244 aa 000002 7350 00 305 als 2 compute current offset in file  306  000245 aa 000000 6270 01 307 eax7 0,au current offset in X7  000246 0a 000413 0670 00 308 adx7 len compute new offset for remainder of file 309  000247 aa 0 00157 1015 41 310 mrl (pr,au,rl),(pr,x7,rl) move lines down to make room for new line  000250 aa 200000 000002 311 desc9a bf|0,qu 000251 aa 200000 000002 312 desc9a bf|0,qu 313  000252 0a 000413 2260 00 314 ldx6 len length of new line in X6 000253 aa 000141 1004 40 315 mlr (rl),(pr,rl,au) copy in new line  000254 aa 012000 000016 316 desc9a pagectl,x6  000255 aa 200000 000016 317 desc9a bf|0,x6 318  000256 aa 000000 6350 16 319 eaa 0,6 length of new line in AU  000257 aa 000002 7710 00 320 arl 2 in words  000260 0a 000404 0550 00 321 asa nwords increment number of words in file  000261 0a 000405 0550 00 322 asa cur_word step over newly inserted line  000262 0a 000407 0540 00 323 aos cur_line update current position values  000263 0a 000406 0540 00 324 aos nlines increment count of lines in file  325  000264 0a 000232 7100 00 326 tra insert get another input line 327  000265 0a 000561 2350 00 328 eset_pmt: lda =h edit  000266 aa 6 02027 7551 00 329 sta com|curtcmd put back correct promt 000267 0a 000076 7100 00 330 tra edit_loop stop input on blank line  331 " 332  333 " " " " " " "  334 " "  335 " bottom "  336 " "  337 " " " " " " "  338  000270 339 bottom: 000270 0a 000345 7020 00 340 tsx2 skip_forward move to end of file  000271 0a 000232 7100 00 341 tra insert when there, insert text  000272 0a 000270 7100 00 342 tra bottom keep skipping  343  344  345 " " " " " " "  346 " "  347 " top "  348 " "  349 " " " " " " "  350  000273 351 etop:  000273 0a 000361 7020 00 352 tsx2 skip_backward backup to beginning of file 000274 0a 000076 7100 00 353 tra edit_loop  000275 0a 000273 7100 00 354 tra etop  355  356 " 357  358 " " " " " " " " 359 " " 360 " print " 361 " " 362 " " " " " " " " 363  000276 0a 000410 7210 00 364 eprint: lxl1 count get number fo lines to print  000277 aa 777777 6210 11 365 eprint4: eax1 -1,1 count down until all lines are printed  000300 0a 000076 6040 00 366 tmi edit_loop  367  000301 0a 000405 2360 00 368 eprint3: ldq cur_word  000302 aa 2 00000 2351 02 369 lda bf|0,qu see if at end of file 000303 0a 000544 1150 00 370 cmpa =-1  000304 0a 000162 6000 00 371 tze eof_message  000305 aa 000022 7710 00 372 arl 18 length of line in AL  000306 0a 000314 7510 07 373 stca type1,07 place in call to type  374  000307 aa 000002 7370 00 375 lls 2 compute offset and length in characters 000310 aa 0 00040 1005 42 376 mlr (pr,rl,qu),(rl) copy the line  000311 aa 200001 000005 377 desc9a bf|1,al 000312 aa 012001 000005 378 desc9a line,al 379  000313 aa 012244 7020 00 380 tsx2 type  000314 aa 012001 000000 381 type1: zero line,0  382  000315 aa 777777 6210 11 383 eax1 -1,1 decrement count of lines to print  000316 0a 000076 6040 00 384 tmi edit_loop if none left, back to main loop 385  000317 0a 000345 7020 00 386 tsx2 skip_forward step to next line  000320 0a 000162 7100 00 387 tra eof_message  000321 0a 000301 7100 00 388 tra eprint3 print more lines  389  390 " 391  392 " " " " " " " " 393 " " 394 " write " 395 " " 396 " " " " " " " " 397  000322 398 write:  000322 aa 012041 2350 00 399 lda arg+1 see if name was given  000323 0a 000544 1150 00 400 cmpa =-1 if -1, no name was given 000324 0a 000326 6000 00 401 tze *+2  000325 0a 000403 7550 00 402 sta name  000326 0a 000403 2350 00 403 lda name check for no name given  000327 0a 000545 1150 00 404 cmpa =h " 000330 0a 000336 6000 00 405 tze noname none given, complain  000331 0a 000404 2360 00 406 ldq nwords get size of buffer 000332 aa 000022 7720 00 407 qrl 18 in QL  000333 0a 000504 7020 00 408 tsx2 store_runcom_file store completed file  000334 0a 000013 7100 00 409 tra x2 000335 0a 000013 7100 00 410 tra x2 all finished  411  000336 aa 012241 7020 00 412 noname: tsx2 erpt  000337 aa 014 167 150 141 413 acc "what name..." 000340 aa 164 040 156 141 000341 aa 155 145 056 056 000342 aa 056 000 000 000 000343 0a 000076 7100 00 414 tra edit_loop  415  416 " " " " " " " " 417 " " 418 " quit " 419 " " 420 " " " " " " " " 421  000344 0a 000013 7100 00 422 quit: tra x2  423  424 " 425  426 " " " " " " " " " " " " "  427 " "  428 " subroutines "  429 " "  430 " " " " " " " " " " " " "  431  000345 432 skip_forward:  000345 0a 000405 2200 00 433 ldx0 cur_word get index to current line  000346 aa 2 00000 2351 10 434 lda bf|0,0 see if at end of file  000347 0a 000544 1150 00 435 cmpa =-1  000350 aa 000000 6000 12 436 tze 0,2 yes, take eof return  000351 aa 2 00000 0601 10 437 adx0 bf|0,0 step to next line 000352 aa 000001 6200 10 438 eax0 1,0 skip over the marker 000353 0a 000405 7400 00 439 stx0 cur_word update index to start of current line  000354 0a 000407 0540 00 440 aos cur_line also update current line number  000355 aa 2 00000 2351 10 441 lda bf|0,0 are we at the end of the file? 000356 0a 000544 1150 00 442 cmpa =-1  000357 aa 000000 6000 12 443 tze 0,2 yes, take EOF return  000360 aa 000001 7100 12 444 tra 1,2 no, take normal return  445  000361 446 skip_backward:  000361 0a 000405 2200 00 447 ldx0 cur_word get index to current line  000362 aa 777777 6260 00 448 eax6 -1 count words in X6 000363 aa 000001 6260 16 449 eskip2: eax6 1,6 count a word  000364 aa 777777 6200 10 450 eax0 -1,0 step back one word  000365 0a 000377 6040 00 451 tmi top until BOF 000366 aa 2 00000 7271 10 452 lxl7 bf|0,0 look for line mark  000367 aa 777777 1070 03 453 cmpx7 =o777777,du ..  000370 0a 000363 6010 00 454 tnz eskip2 if not mark, keep looking  000371 aa 2 00000 1061 10 455 cmpx6 bf|0,0 does it have correct word count ?  000372 0a 000363 6010 00 456 tnz eskip2 if not, keep looking  457  000373 0a 000405 7400 00 458 stx0 cur_word save new starting index 000374 aa 000001 3350 07 459 lca 1,dl update line number  000375 0a 000407 0550 00 460 asa cur_line  000376 aa 000001 7100 12 461 tra 1,2 take normal exit  462  000377 0a 000405 4500 00 463 top: stz cur_word reset index to start of file 000400 aa 000001 2350 07 464 lda 1,dl and also line number 000401 0a 000407 7550 00 465 sta cur_line  000402 aa 000000 7100 12 466 tra 0,2 take BOF return  467  468 "  469  000403 aa 000000 000000 470 name: oct 0 macro file name  471  000404 472 nwords: bss ,1 number of words in file 000405 473 cur_word: bss ,1 current word being examined  000406 474 nlines: bss ,1 number of lines in file 000407 475 cur_line: bss ,1 current line being examined  000410 476 count: bss ,1 edit request count  000411 477 save_cur_word:  000411 478 bss ,1 000412 479 save_cur_line:  000412 480 bss ,1 481  000413 482 len: bss ,1 483  484  485  486  487 include runcom_util  2-1 " 2-2 " Begin include file ...... runcom_util.incl.alm  2-3 " Created 9/17/75 by Noel I. Morris 2-4  2-5  002264 2-6 equ mbufl,1204 length of runcom buffer 2-7  2-8  2-9 " lda name  2-10 " tsx2 runcom_setup setup to read from runcom file  2-11 " tra error file not found 2-12  000414 2-13 runcom_setup:  000414 0a 000434 7420 00 2-14 stx2 sx2 setup to read from a macro file  000415 0a 000542 7550 00 2-15 sta rctemp save name in case of error 2-16  000416 aa 012204 7020 00 2-17 tsx2 search  000417 0a 000436 7100 00 2-18 tra rsnf macro file not found 2-19  000420 aa 004000 3150 07 2-20 cana =o4000,dl check for macro bit  000421 0a 000436 6000 00 2-21 tze rsnf if not macro 2-22  000422 0a 000562 3750 00 2-23 ana =o777777770000 000423 aa 6 02022 7551 00 2-24 sta com|macroloc  2-25  000424 aa 000001 2750 07 2-26 ora =1,dl prime buffer  000425 aa 012234 7020 00 2-27 tsx2 rdsec 000426 aa 6 02600 0111 00 2-28 nop com|macrobuf  000427 0a 000445 7100 00 2-29 tra rserr if error  2-30  000430 aa 6 02021 2351 00 2-31 lda com|inputsw stack inputsw  000431 aa 000006 7710 00 2-32 arl 6  000432 aa 020000 2750 03 2-33 ora =o020000,du and set to macro  000433 aa 6 02021 7551 00 2-34 sta com|inputsw  2-35  000434 0a 000434 6220 00 2-36 sx2: eax2 * restore X2 000435 aa 000001 7100 12 2-37 tra 1,2 take normal return  2-38  2-39  000436 aa 012241 7020 00 2-40 rsnf: tsx2 erpt macro file not found  000437 aa 021 146 151 154 2-41 acc "file ^g not found"  000440 aa 145 040 136 147 000441 aa 040 156 157 164 000442 aa 040 146 157 165 000443 aa 156 144 000 000 000444 0a 000542 0000 00 2-42 arg rctemp 2-43  000445 0a 000434 2220 00 2-44 rserr: ldx2 sx2 restore X2 000446 aa 000000 7100 12 2-45 tra 0,2 take error return 2-46  2-47 " 2-48  2-49 " tsx2 make_runcom_file to format input lines into file 2-50 " tra get_input_line subr to read into "line"  2-51 " tra error error if file too big  2-52 " stq length,dl length of file in words  2-53  000447 2-54 make_runcom_file:  000447 0a 000471 7420 00 2-55 stx2 mkrx2 save XR's  000450 0a 000472 7400 00 2-56 stx0 mkrx0 .. 2-57  000451 aa 000000 6200 00 2-58 eax0 0 X0 is buffer index 000452 0a 000471 7020 20 2-59 mkrloop: tsx2 mkrx2,* call input subroutine  000453 0a 000467 7100 00 2-60 tra mark tra if end of input  2-61  000454 0a 000526 7020 00 2-62 tsx2 runcom_line_len get length of line and set line mark  000455 0a 000542 7560 00 2-63 stq rctemp save length  2-64  000456 aa 000000 6270 10 2-65 eax7 0,0 current offset in X7 000457 0a 000542 0270 00 2-66 adlx7 rctemp add length of this line  000460 aa 011320 1070 03 2-67 cmpx7 mbufl*4,du check for buffer overflow 000461 0a 000474 6050 00 2-68 tpl runcom_too_big ..  2-69  000462 aa 000150 1004 40 2-70 mlr (rl),(pr,rl,x0) copy line into macro buffer  000463 aa 012000 000002 2-71 desc9a pagectl,qu  000464 aa 200000 000002 2-72 desc9a bf|0,qu 2-73  000465 aa 000000 6200 17 2-74 eax0 0,7 get offset of next line in X0  000466 0a 000452 7100 00 2-75 tra mkrloop and loop  2-76  2-77  000467 aa 000004 6360 10 2-78 mark: eaq 4,0 get offset plus 1 word in QU 000470 aa 000024 7720 00 2-79 qrl 18+2 shift to QL and compute word count  2-80  000471 0a 000471 6220 00 2-81 mkrx2: eax2 * restore XR's 000472 0a 000472 6200 00 2-82 mkrx0: eax0 * ..  000473 aa 000002 7100 12 2-83 tra 2,2 take normal return  2-84  2-85  000474 2-86 runcom_too_big: 000474 aa 012241 7020 00 2-87 tsx2 erpt complain if runcom too large  000475 aa 015 146 151 154 2-88 acc "file too big."  000476 aa 145 040 164 157 000477 aa 157 040 142 151 000500 aa 147 056 000 000 000501 0a 000471 2220 00 2-89 ldx2 mkrx2 restore XR's  000502 0a 000472 2200 00 2-90 ldx0 mkrx0 .. 000503 aa 000001 7100 12 2-91 tra 1,2 and take error return 2-92  2-93 " 2-94  2-95 " lda name name of runcom file 2-96 " ldq length,dl length of runcom file in words 2-97 " tsx2 store_runcom_file to store completed runcom  2-98 " tra error file system error  2-99  000504 2-100 store_runcom_file:  000504 0a 000522 7420 00 2-101 stx2 srfx2 save X2  000505 0a 000542 7550 00 2-102 sta rctemp save name  2-103  000506 aa 000001 3350 07 2-104 lca 1,dl make fence for end  000507 aa 2 77777 7551 06 2-105 sta bf|-1,ql and cap end of macro 2-106  000510 aa 000077 0760 07 2-107 adq 63,dl round to nearest disk sector  000511 aa 000006 7720 00 2-108 qrl 6 compute number of sectors  2-109  000512 0a 000542 2350 00 2-110 lda rctemp get name of runcom 000513 aa 012205 7020 00 2-111 tsx2 makefil create a file for runcom 000514 0a 000524 7100 00 2-112 tra srferr 2-113  000515 aa 004000 2360 07 2-114 ldq =o4000,dl get runcom ID bit  000516 aa 6 00001 2561 17 2-115 orsq com|1,7 insert in BOS dir entry  2-116  000517 aa 012235 7020 00 2-117 tsx2 wtsec write out the runcom  000520 aa 2 00000 0111 00 2-118 nop bf|0  000521 0a 000524 7100 00 2-119 tra srferr 2-120  000522 0a 000522 6220 00 2-121 srfx2: eax2 * restore X2  000523 aa 000001 7100 12 2-122 tra 1,2 that's all  2-123  2-124  000524 0a 000522 2220 00 2-125 srferr: ldx2 srfx2 restore X2  000525 aa 000000 7100 12 2-126 tra 0,2 take error return 2-127  2-128 "  2-129  2-130 " tsx2 runcom_line_len to get line length  2-131 " stq len,du length of line in words  2-132  000526 2-133 runcom_line_len:  000526 0a 000540 7420 00 2-134 stx2 rllx2 save X2  2-135  000527 aa 012263 7020 00 2-136 tsx2 stripg strip trailing blanks from line  000530 aa 012001 020124 2-137 desc6a line,84 .. 000531 aa 000044 7730 00 2-138 lrl 36 length in Q  000532 aa 000005 0760 07 2-139 adq 5,dl round up to nearest word 000533 aa 000006 5060 07 2-140 div 6,dl compute word count  000534 aa 000022 7360 00 2-141 qls 18 in QU  000535 aa 012000 7520 70 2-142 stcq pagectl,70 insert in line mark  2-143  000536 aa 000001 0760 03 2-144 adq 1,du include line mark in length  000537 aa 000002 7360 00 2-145 qls 2 get character count 2-146  000540 0a 000540 6220 00 2-147 rllx2: eax2 * restore X2  000541 aa 000000 7100 12 2-148 tra 0,2 return to caller  2-149  2-150  000542 2-151 rctemp: bss ,1  2-152  2-153  2-154 " End of include file ...... runcom_util.incl.alm  2-155  488 include bos_tv 3-1 " 3-2 " Begin include file ...... bos_tv.incl.alm 3-3 " Created in November 1971 by N. I. Morris. 3-4 " Modified 9/9/76 by Noel I. Morris 3-5 " Modified by Sherman D. Sprague 02/11/81 for DPS8 support. 3-6 " Modified November 1981 by C. Hornig to remove iom_connect_rel.  3-7 " Modified January 1982 by J. Bongiovanni to add getport_info  3-8 " Modified May 1982 by Sherman D. Sprague to add getmpc.  3-9  3-10 " BOS Utility Package Transfer Vector.  3-11  012000 3-12 equ pagectl,utilorg  012001 3-13 equ line,pagectl+1 012040 3-14 equ arg,line+31  012060 3-15 equ darg,arg+arglen+1  012100 3-16 equ earg,darg+arglen+1 012120 3-17 equ fltscu,earg+arglen+1  3-18  012200 3-19 equ tv_org,utilorg+128 3-20  012200 3-21 equ scan,tv_org+0  012201 3-22 equ arg_count,tv_org+1 012202 3-23 equ nextline,tv_org+2  012203 3-24 equ nlraw,tv_org+3 012204 3-25 equ search,tv_org+4  012205 3-26 equ makefil,tv_org+5  012206 3-27 equ ldcom,tv_org+6 012207 3-28 equ getsec,tv_org+7  012210 3-29 equ cvinit,tv_org+8  012211 3-30 equ rdev,tv_org+9  012212 3-31 equ wdev,tv_org+10 012213 3-32 equ phybos,tv_org+11  012214 3-33 equ bosphy,tv_org+12  012215 3-34 equ phyadd,tv_org+13  012216 3-35 equ mulbos,tv_org+14  012217 3-36 equ bosmul,tv_org+15  012220 3-37 equ lookup_devmodel,tv_org+16  012221 3-38 equ makesdw,tv_org+17  012222 3-39 equ argbos,tv_org+18  012223 3-40 equ argmul,tv_org+19  012224 3-41 equ amdvt,tv_org+20  012225 3-42 equ amfirst,tv_org+21  012226 3-43 equ amlast,tv_org+22  012227 3-44 equ cvnamla,tv_org+23  012230 3-45 equ sect_per_cyl_list,tv_org+24  012231 3-46 equ sect_per_dev_list,tv_org+25  012232 3-47 equ rec_per_dev_list,tv_org+26 012233 3-48 equ amaxio,tv_org+27  012234 3-49 equ rdsec,tv_org+28  012235 3-50 equ wtsec,tv_org+29  012236 3-51 equ disk_brief,tv_org+30  012237 3-52 equ itaper,tv_org+31  012240 3-53 equ itapew,tv_org+32  012241 3-54 equ erpt,tv_org+33 012242 3-55 equ ercv,tv_org+34 012243 3-56 equ erbuf,tv_org+35  012244 3-57 equ type,tv_org+36 012245 3-58 equ ttyinit,tv_org+37  012246 3-59 equ readcd,tv_org+38  012247 3-60 equ readtty,tv_org+39  012250 3-61 equ getprt,tv_org+40  012251 3-62 equ punch,tv_org+41  012252 3-63 equ octwd,tv_org+42  012253 3-64 equ geas,tv_org+43 012254 3-65 equ geastab,tv_org+44  012255 3-66 equ asge,tv_org+45 012256 3-67 equ asgetab,tv_org+46  012257 3-68 equ ljust,tv_org+47  012260 3-69 equ rjust,tv_org+48  012261 3-70 equ bzel,tv_org+49 012262 3-71 equ stripa,tv_org+50  012263 3-72 equ stripg,tv_org+51  012264 3-73 equ getconf,tv_org+52  012265 3-74 equ getmore,tv_org+53  012266 3-75 equ getperiph,tv_org+54  012267 3-76 equ rdclock,tv_org+55  012270 3-77 equ cvclock,tv_org+56  012271 3-78 equ init_io,tv_org+57  012272 3-79 equ connect_iom,tv_org+58  012273 3-80 equ getmpc,tv_org+59  012274 3-81 equ check_status,tv_org+60 012275 3-82 equ get_special_interrupt,tv_org+61  012276 3-83 equ get_status_interrupt,tv_org+62 012277 3-84 equ xio_wait,tv_org+63 012300 3-85 equ initint,tv_org+64  012301 3-86 equ wantflt,tv_org+65  012302 3-87 equ intno,tv_org+66  012303 3-88 equ intrpts1,tv_org+67 012304 3-89 equ hexwd,tv_org+68  012305 3-90 equ find_disk,tv_org+69  012306 3-91 equ find_root,tv_org+70  012307 3-92 equ find_part,tv_org+71  012310 3-93 equ check_status_no_stat,tv_org+72 012311 3-94 equ check_special_status,tv_org+73 012312 3-95 equ check_cpu_type,tv_org+74  012313 3-96 equ getportinfo,tv_org+75  3-97  3-98 " End of include file ...... bos_tv.incl.alm  3-99  489 include bos_common 4-1 "  4-2 " Begin include file ...... bos_common.incl.alm 4-3 " Modified on 8/31/76 by N. I. Morris  4-4 " Modified on 9/01/80 by Sherman D. Sprague for DPS8 operation  4-5 " Modified on 5/26/82 by Sherman D. Sprague to lengthen config size 4-6 " Modified on 3/01/83 by Sherman D. Sprague to lengthen dirlen  4-7 " MACHINE CONDITIONS AREA  4-8 " Its length is "storlen". 4-9  000000 4-10 equ amptwregs,0 Ass. Mem PTW registers  000100 4-11 equ amptwptr,64 Ass. Mem PTW pointers 000200 4-12 equ amsdwregs,128 Ass. Mem SDW registers  000400 4-13 equ amsdwptr,256 Ass. Mem SDW pointers  000500 4-14 equ ouhist,320 operations hist regs  000700 4-15 equ cuhist,448 control unit hist regs  001100 4-16 equ eishist,576 eis hist regs  001300 4-17 equ aphist,704 appending unit hist regs  001500 4-18 equ prs,832 pointer regs  001520 4-19 equ regs,848 sreg 001530 4-20 equ low_order_port,856 port to read clock from 001532 4-21 equ mctime,858 bootload memory clock  001540 4-22 equ scu,864  001550 4-23 equ mcm,872 memory masks 8 ports 001570 4-24 equ dbr,888  001572 4-25 equ intrpts,890 waiting interrupts 001573 4-26 equ bar,891 bar  001574 4-27 equ modereg,892 processor & cache mode registers  001576 4-28 equ faultreg,894 processor fault register  001600 4-29 equ ptrlen,896 pointer-lengths EIS 0 mod 8 001610 4-30 equ coreblocks,904 array of port information  4-31 " Bits 0-17 => num 1st 64-word block  4-32 " Bits 18-35 => num of 64-word blocks  4-33 " (-1) => no mem on this port  001620 4-34 equ lowport_cfg,912 Saved CFG from bootload SCU  4-35  002000 4-36 equ storlen,1024  4-37  4-38  4-39  4-40 " BOS COMMAND DIRECTORY 4-41 " Its length is "dirlen".  4-42  002000 4-43 equ dir,1024 ( 0-23) => sector # of first sector on BOS disk  4-44 " (24-35) => # of sectors in BOS common  002001 4-45 equ used,dir+1 ( 0-23) => # of next available sector on BOS disk  002002 4-46 equ useable,dir+2 ( 0-23) => first unavailable sector on BOS disk  002003 4-47 equ corearea,dir+3 ( 0-23) => starting sector of Multics core image  4-48 " (24-35) => # of sectors in Multics core image  002004 4-49 equ setuparea,dir+4 Sector and length of setup 002005 4-50 equ utilarea,dir+5 where utility package is kept  002010 4-51 equ iom_mxbase,dir+8 IOM IMW area address  002011 4-52 equ iom_mbbase,dir+9 IOM mailbox base  002012 4-53 equ bos_dvt,dir+10 BOS disk loc: (o3/iom,o6/chn,o9/drive,o18/devtype)  002013 4-54 equ unitgroup,dir+11 disk unitgroup (device no. or area no.)  002014 4-55 equ diskchanno,dir+12 channel to be used for disk  002015 4-56 equ tapechanno,dir+13 channel # for tapes  002016 4-57 equ rdrchanno,dir+14 channel number for card reader  002017 4-58 equ ttychanno,dir+15 channel # for operator's tty  002020 4-59 equ quietsw,dir+16 if on, don't print card and macro commands  002021 4-60 equ inputsw,dir+17 read from tty, cards, macros  002022 4-61 equ macroloc,dir+18 disk addr, buffer index of macro file  002023 4-62 equ fdump_state,dir+19 completion flag for last FDUMP  002024 4-63 equ d355_state,dir+20 = 1 if DataNet 355 loaded successfully  002025 4-64 equ skipsw,dir+21 if on, skip runcom lines 002026 4-65 equ ttypmtsw,dir+22 if on, prompt  002027 4-66 equ curtcmd,dir+23 current bos command 002030 4-67 equ readysw,dir+24 if on, print ready message  002032 4-68 equ cmdlst,dir+26 list of commands 4-69  000600 4-70 equ dirlen,384 4-71  4-72  4-73  4-74 " MACRO BUFFER AREA 4-75  002600 4-76 equ macrobuf,dir+dirlen io buffer for macro files 002700 4-77 equ macroline,macrobuf+64 runcom command line 002716 4-78 equ macroargs,macroline+14 argument descriptors for runcom  4-79  4-80  4-81  4-82 " CONFIGURATION CARD AREA  4-83 " Its length is 2048 words.  4-84  003000 4-85 equ conf,macrobuf+128 start of configuration info  007000 4-86 equ econf,conf+2048 end of configuration info  000020 4-87 equ confl,16 length of each line  4-88  4-89  007000 4-90 equ seg6length,econf length of bos_common area segment 4-91  4-92 " End of include file ...... bos_common.incl.alm  4-93  490  491 end  LITERALS 000544 aa 777777 777777 000545 aa 202020 202020 000546 aa 202020 202052 000547 aa 202020 202022 000550 aa 202020 202024 000551 aa 202020 202031 000552 aa 202020 202045 000553 aa 202020 202047 000554 aa 202020 202050 000555 aa 202020 202063 000556 aa 202020 202066 000557 aa 202020 202075 000560 aa 203145 476463 000561 aa 202025 243163 000562 aa 777777 770000 NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 000563 5a 000003 000000 000564 5a 000017 600000 000565 aa 000000 000000 000566 55 000010 000002 000567 5a 000002 400003 000570 55 000006 000010 000571 aa 004 145 144 151 000572 aa 164 000 000 000 000573 55 000002 000003 000574 6a 000000 400002 000575 55 000013 000003 000576 aa 014 163 171 155 symbol_table  000577 aa 142 157 154 137 000600 aa 164 141 142 154 000601 aa 145 000 000 000 DEFINITIONS HASH TABLE  000602 aa 000000 000015 000603 aa 000000 000000 000604 aa 000000 000000 000605 aa 000000 000000 000606 aa 000000 000000 000607 aa 000000 000000 000610 aa 000000 000000 000611 5a 000010 000000 000612 aa 000000 000000 000613 aa 000000 000000 000614 aa 000000 000000 000615 aa 000000 000000 000616 aa 000000 000000 000617 aa 000000 000000 NO EXTERNAL NAMES  NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  000620 aa 000001 000000 000621 aa 000000 000000 INTERNAL EXPRESSION WORDS LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 000563 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 000004 000004 aa 000000 112143 000005 aa 305203 523135 000006 aa 000000 112272 000007 aa 224465 251265 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 000252 000020 aa 000000 000163 000021 aa 000000 000236 000022 aa 000241 000163 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 040066 056066 000030 aa 040040 116157 000031 aa 166145 155142 000032 aa 145162 040061 000033 aa 071070 062040 000034 aa 110157 154155 000035 aa 163164 145144 000036 aa 164056 123171 000037 aa 163115 141151 000040 aa 156164 056141 000041 aa 040040 040040 000042 aa 040040 040040 000043 aa 040040 040040 000044 aa 154151 163164 000045 aa 040040 040040 000046 aa 040040 040040 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 000005 000066 aa 000112 000025 000067 aa 122721 273011 000070 aa 000000 112272 000071 aa 215463 000000 000072 aa 000120 000040 000073 aa 113400 415301 000074 aa 000000 111341 000075 aa 220414 400000 000076 aa 000130 000045 000077 aa 043243 126005 000100 aa 000000 103256 000101 aa 423770 000000 000102 aa 000142 000040 000103 aa 110235 072677 000104 aa 000000 111024 000105 aa 524460 600000 000106 aa 000152 000044 000107 aa 121622 277475 000110 aa 000000 112162 000111 aa 321563 400000 000112 aa 076163 160145 >spec>h>3.17>edit.alm  000113 aa 143076 150076 000114 aa 063056 061067 000115 aa 076145 144151 000116 aa 164056 141154 000117 aa 155040 040040 000120 aa 076154 144144 >ldd>bos>include>bosequ.incl.alm  000121 aa 076142 157163 000122 aa 076151 156143 000123 aa 154165 144145 000124 aa 076142 157163 000125 aa 145161 165056 000126 aa 151156 143154 000127 aa 056141 154155 000130 aa 076154 144144 >ldd>bos>include>runcom_util.incl.alm  000131 aa 076142 157163 000132 aa 076151 156143 000133 aa 154165 144145 000134 aa 076162 165156 000135 aa 143157 155137 000136 aa 165164 151154 000137 aa 056151 156143 000140 aa 154056 141154 000141 aa 155040 040040 000142 aa 076154 144144 >ldd>bos>include>bos_tv.incl.alm  000143 aa 076142 157163 000144 aa 076151 156143 000145 aa 154165 144145 000146 aa 076142 157163 000147 aa 137164 166056 000150 aa 151156 143154 000151 aa 056141 154155 000152 aa 076154 144144 >ldd>bos>include>bos_common.incl.alm  000153 aa 076142 157163 000154 aa 076151 156143 000155 aa 154165 144145 000156 aa 076142 157163 000157 aa 137143 157155 000160 aa 155157 156056 000161 aa 151156 143154 000162 aa 056141 154155 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  12233 amaxio bos_tv: 48. 12224 amdvt bos_tv: 41. 12225 amfirst bos_tv: 42. 12226 amlast bos_tv: 43. 100 amptwptr bos_common: 11. 0 amptwregs bos_common: 10. 400 amsdwptr bos_common: 13. 200 amsdwregs bos_common: 12. 1300 aphist bos_common: 17. 12040 arg edit: 152, 399,  bos_tv: 14, 15.  12222 argbos bos_tv: 39. 17 arglen bosequ: 17, bos_tv: 15, 16, 17. 12223 argmul bos_tv: 40. 12201 arg_count bos_tv: 22. 12255 asge bos_tv: 66. 12256 asgetab bos_tv: 67. 143 back1 edit: 200, 204.  142 backup edit: 154, 198.  1573 bar bos_common: 26. 2 bf edit: 98, 107, 111, 140, 241, 264, 265, 311, 312, 317, 369, 377,  434, 437, 441, 452, 455, bosequ: 9, runcom_util: 72, 105, 118. 150 bof_message edit: 203, 206.  12217 bosmul bos_tv: 36. 12214 bosphy bos_tv: 33. 2012 bos_dvt bos_common: 53. 270 bottom edit: 156, 339, 342. 12261 bzel bos_tv: 70. 12312 check_cpu_type bos_tv: 95. 12311 check_special_status bos_tv: 94. 12274 check_status bos_tv: 81. 12310 check_status_no_stat bos_tv: 93. 2032 cmdlst bos_common: 68. 6 com edit: 294, 329,  bosequ: 14, runcom_util: 24, 28, 31, 34, 115. 3000 conf bos_common: 85, 86.  20 confl bos_common: 87. 12272 connect_iom bos_tv: 79. 2003 corearea bos_common: 47. 1610 coreblocks bos_common: 30. 410 count edit: 150, 199, 218, 239, 364, 476.  700 cuhist bos_common: 15. 2027 curtcmd edit: 294, 329,  bos_common: 66. 407 cur_line edit: 119, 136, 189, 245, 275, 323, 440, 460, 465, 475.  405 cur_word edit: 117, 133, 240, 256, 261, 268, 272, 301, 304, 322, 368, 433,  439, 447, 458, 463, 473. 12270 cvclock bos_tv: 77. 12210 cvinit bos_tv: 29. 12227 cvnamla bos_tv: 44. 2024 d355_state bos_common: 63. 12060 darg edit: 147, bos_tv: 15, 16.  1570 dbr bos_common: 24. 166 delete edit: 158, 238.  176 delete1 edit: 248, 253.  203 delete2 edit: 249, 255, 282. 2000 dir bos_common: 43, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 56,  57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 76. 600 dirlen bos_common: 70, 76.  2014 diskchanno bos_common: 55. 12236 disk_brief bos_tv: 51. 0 ds bosequ: 7. 12100 earg bos_tv: 16, 17.  7000 econf bos_common: 86, 90.  16 edit edit: 40, 90.  76 edit_loop edit: 120, 143, 145, 176, 190, 201, 209, 220, 228, 277, 330, 353,  366, 384, 414. 1100 eishist bos_common: 16. 55 enotf edit: 94, 129.  46 enotf1 edit: 92, 123.  162 eof_message edit: 222, 225, 243, 371, 387. 276 eprint edit: 164, 364.  301 eprint3 edit: 368, 388.  277 eprint4 edit: 365. 12243 erbuf bos_tv: 56. 12242 ercv bos_tv: 55. 12241 erpt edit: 125, 129, 174, 187, 207, 226, 280, 412,  runcom_util: 40, 87,  bos_tv: 54. 265 eset_pmt edit: 296, 328.  363 eskip2 edit: 449, 454, 456. 31 eskip4 edit: 107, 113.  40 estart edit: 109, 115.  273 etop edit: 168, 351, 354. 1576 faultreg bos_common: 28. 2023 fdump_state bos_common: 62. 226 feof_message edit: 252, 279.  5 fgb bosequ: 13. 12305 find_disk bos_tv: 90. 12307 find_part bos_tv: 92. 12306 find_root bos_tv: 91. 2000 firmware_bit bosequ: 20. 12120 fltscu bos_tv: 17. 12253 geas bos_tv: 64. 12254 geastab bos_tv: 65. 12264 getconf bos_tv: 73. 12265 getmore bos_tv: 74. 12273 getmpc bos_tv: 80. 12266 getperiph bos_tv: 75. 12313 getportinfo bos_tv: 96. 12250 getprt bos_tv: 61. 12207 getsec bos_tv: 28. 12275 get_special_interrupt bos_tv: 82. 12276 get_status_interrupt bos_tv: 83. 12304 hexwd bos_tv: 89. 12300 initint bos_tv: 85. 12271 init_io edit: 29, bos_tv: 78. 2021 inputsw runcom_util: 31, 34,  bos_common: 60. 232 insert edit: 141, 160, 292, 326, 341. 12302 intno bos_tv: 87. 1572 intrpts bos_common: 25. 12303 intrpts1 bos_tv: 88. 2011 iom_mbbase bos_common: 52. 2010 iom_mxbase bos_common: 51. 12237 itaper bos_tv: 52. 12240 itapew bos_tv: 53. 12206 ldcom bos_tv: 27. 413 len edit: 298, 308, 314, 482.  12001 line edit: 378, 381,  runcom_util: 137, bos_tv: 13, 14.  136 lineno edit: 172, 187.  12257 ljust bos_tv: 68. 12220 lookup_devmodel bos_tv: 37. 1620 lowport_cfg bos_common: 34. 1530 low_order_port bos_common: 20. 2716 macroargs bos_common: 78. 2600 macrobuf runcom_util: 28, bos_common: 76, 77, 85. 2700 macroline bos_common: 77, 78.  2022 macroloc runcom_util: 24, bos_common: 61. 12205 makefil runcom_util: 111, bos_tv: 26. 12221 makesdw bos_tv: 38. 447 make_runcom_file runcom_util: 54. 467 mark runcom_util: 60, 78.  2264 mbufl runcom_util: 6, 67.  1550 mcm bos_common: 23. 1532 mctime bos_common: 21. 7 mem edit: 36, 37, 45, bosequ: 15. 452 mkrloop runcom_util: 59, 75.  472 mkrx0 runcom_util: 56, 82, 90. 471 mkrx2 runcom_util: 55, 59, 81, 89.  1574 modereg bos_common: 27. 12216 mulbos bos_tv: 35. 403 name edit: 38, 90, 124, 131, 402, 403, 470. 154 next edit: 162, 217.  155 next1 edit: 219, 223.  12202 nextline bos_tv: 23. 406 nlines edit: 105, 110, 134, 324, 474. 12203 nlraw bos_tv: 24. 336 noname edit: 405, 412.  404 nwords edit: 116, 138, 260, 269, 300, 321, 406, 472.  12252 octwd bos_tv: 63. 500 ouhist bos_common: 14. 12000 pagectl edit: 34, 316,  runcom_util: 71, 142,  bos_tv: 12, 13.  3 pgm bosequ: 10. 12215 phyadd bos_tv: 34. 12213 phybos bos_tv: 32. 1500 prs bos_common: 18. 1600 ptrlen bos_common: 29. 12251 punch bos_tv: 62. 2020 quietsw bos_common: 59. 344 quit edit: 166, 422.  542 rctemp runcom_util: 15, 42, 63, 66, 102, 110, 151. 12267 rdclock bos_tv: 76. 12211 rdev bos_tv: 30. 2016 rdrchanno bos_common: 57. 12234 rdsec edit: 97, runcom_util: 27, bos_tv: 49. 12246 readcd bos_tv: 59. 12247 readtty edit: 144, 295,  bos_tv: 60. 2030 readysw bos_common: 67. 12232 rec_per_dev_list bos_tv: 47. 1520 regs bos_common: 19. 12260 rjust bos_tv: 69. 540 rllx2 runcom_util: 134, 147.  445 rserr runcom_util: 29, 44.  436 rsnf runcom_util: 18, 21, 40. 4000 runcom_bit bosequ: 19. 526 runcom_line_len edit: 297, runcom_util: 62, 133.  414 runcom_setup runcom_util: 13. 474 runcom_too_big runcom_util: 68, 86.  412 save_cur_line edit: 246, 274, 479. 411 save_cur_word edit: 244, 255, 267, 271, 477. 12200 scan edit: 146, bos_tv: 21. 1540 scu bos_common: 22. 12204 search edit: 93, runcom_util: 17, bos_tv: 25. 12230 sect_per_cyl_list bos_tv: 45. 12231 sect_per_dev_list bos_tv: 46. 7000 seg6length bos_common: 90. 2004 setuparea bos_common: 49. 2025 skipsw bos_common: 64. 361 skip_backward edit: 202, 352, 446. 345 skip_forward edit: 221, 251, 340, 386, 432. 524 srferr runcom_util: 112, 119, 125. 522 srfx2 runcom_util: 101, 121, 125. 65 startin edit: 127, 133.  504 store_runcom_file edit: 408, runcom_util: 100. 2000 storlen bos_common: 36. 12262 stripa bos_tv: 71. 12263 stripg runcom_util: 136, bos_tv: 72. 434 sx2 runcom_util: 14, 36, 44. 2015 tapechanno bos_common: 56. 1 tmp bosequ: 8. 377 top edit: 451, 463.  2017 ttychanno bos_common: 58. 12245 ttyinit edit: 30, bos_tv: 58. 2026 ttypmtsw bos_common: 65. 13 ttyrequest edit: 31, 42.  12200 tv_org bos_tv: 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,  44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,  56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,  68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,  80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,  92, 93, 94, 95, 96. 12244 type edit: 380, bos_tv: 57. 314 type1 edit: 373, 381.  2013 unitgroup bos_common: 54. 2002 useable bos_common: 46. 2001 used bos_common: 45. 2005 utilarea bos_common: 50. 12000 utilorg bosequ: 22, bos_tv: 12, 19.  12301 wantflt bos_tv: 86. 12212 wdev bos_tv: 31. 322 write edit: 170, 398.  12235 wtsec runcom_util: 117, bos_tv: 50. 13 x2 edit: 27, 43, 99, 409, 410, 422.  12277 xio_wait bos_tv: 84. 4 xs1 bosequ: 11. 5 xs2 bosequ: 12. 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