execution report, multics gcos environment simulator 04/18/84 0925.3 mst wed 0001 $ SNUMB MACRO 0002 $ IDENT ,KAYDEN 0003 $ COMMENT CREATE MACRO LIBRARY 0004 A$ FILEDIT SOURCE,OBJECT,INITIALIZE,TRACE 0005 $ LIMITS 20,255K 0006 $ FILE K*,NULL DISCARD SOURCE LIBRARY 0007 $ FILE C*,NULL DISCARD MACRO OBJECT DECK 0008 $ FILE R*,X2S SAVE OBJECT LIBRARY FOR SYSEDIT 0009 $ DATA *C,,COPY FILEDIT DIRECTIVE FILE 0015 $$ SELECTD MACROS.MAP355 -ASCII 3624 $ ENDCOPY 3625 A$ SYSEDIT 3626 $ LIMITS 20,255K 3627 $ FILE R*,X2R OBJECT LIBRARY IS INPUT TO SYSEDIT 3628 $ PRMFL Q*,W,R,355_MACROS DYNAMIC LIBRARY - SYSEDIT OUTPUT 3629 $ ENDJOB total card count this job = 362 (including 3605 from selected files) Warning: Control card field "initialize" is too long. 0004 $ filedit source,object,initialize,trace * acty- 1 $card #0004 filedi 04/18/84 sw=000000000000 * normal termination at 014664 i=5000 sw=000000000000 fc d type #reqs ip fp is fs i/o stream F* R DISK * 3 0 0 12 12 a1_f*  A* R DISK 0 0 0 36 36 a1_a*  S* R DISK 0 0 0 72 72 a1_s*  G* R DISK 354 0 172 48 204 a1_g*  *1 R DISK 178 0 0 48 108 a1_*1  *Z R DISK 2 0 0 60 60R a1_*z  K* R NULL 68  *4 R DISK 6 0 0 12 12 a1_*4  *5 R DISK 8 0 0 36 36 a1_*5  B* R DISK 267 0 130 60 132 a1_b*  C* R NULL 128  R* S DISK 137 0 129 12 132 a1_r*  *C R DISK * 351 0 0 180 180 a1_*c  P* SYOUT  real time activity #01 0000 mins 41.5 secs processor time activity #01 0000 mins 26.7 secs * acty- 2 $card #3624 sysedi 04/18/84 sw=000000000000 * normal termination at 763234 i=4020 sw=000000000000 fc d type #reqs ip fp is fs i/o stream F* R DISK * 3 0 0 12 12 a1_f*  A* R DISK 0 0 0 36 36 a1_a*  S* R DISK 0 0 0 72 72 a1_s*  G* R DISK 354 0 172 48 204 a1_g*  *1 R DISK 178 0 0 48 108 a1_*1  *Z R DISK 2 0 0 60 60R a1_*z  K* R NULL 68  L* S DISK P 0 0 0 998 998R a2_l*  Q* R DISK P 12 0 0 12 84R a2_q*  R* R DISK 129 129 128 132 132 a1_r*  P* SYOUT  real time activity #02 0000 mins 06.1 secs processor time activity #02 0000 mins 02.8 secs real time total = 0001 mins 04.3 secs processor time total = 0000 mins 37.9 secs end-of-job SNUMB# macro, Activity # 1, REPORT CODE = 74 macro 01 04-18-84 09.431 multics/mcs system macros page 1 datanet configuration description macro end of binary card macros98 preface program break 0 common length 0 v count bits 5 primary symdef entry secondary symdef entry block length symref macro 01 04-18-84 09.431 multics/mcs system macros page 2 datanet configuration description macro 1 * *********************************************************** 2 * * * 3 * * copyright, (c) honeywell information systems inc., 1982 * 4 * * * 5 * * copyright (c) 1972 by massachusetts institute of * 6 * * technology and honeywell information systems, inc. * 7 * * * 8 * *********************************************************** 9 10 lbl macros,macro file for multics communications system macro 01 04-18-84 09.431 multics/mcs system macros page 3 datanet configuration description macro 12 pcc on 13 14 this macro file should be entered on the system 15 library with the catalog name '.gmac' 16 macro 01 04-18-84 09.431 multics/mcs system macros page 4 datanet configuration description macro 17 ttls datanet configuration description macro 18 this macro should be called at the start of every 19 assembly through the use of the op-code "systm" in order 20 to define the fnp memory map for the processor, memory, 21 iom, and general utility package. by using the 22 location symbols defined below, adaption to a new system 23 configuration will require only a reassembly with a 24 different macro package. 25 26 *++symget h1mb,h3mb 27 *++symget l1mb,l6mb 28 *++symlen h1mb,512,h2mb,512,h3mb,512 29 *++symlen l1mb,16,l2mb,16,l3mb,16,l4mb,16,l5mb,16,l6mb,16 30 *++symget h1ch,h3ch 31 *++symget l1ch,l6ch 32 *++symget itmb,etmb 33 *++symget cptp,yelcnt 34 *++symlen yelcnt,2 35 36 systm macro c,m 37 ttls datanet configuration description 38 rem 39 intv set 0 iom interrupt vector base address 40 rem 41 intc set 256 program interrupt cell base address 42 rem 43 fltst set 272 iom fault status base address 44 rem 45 fltv set 288 processor fault vector base address 46 rem 47 iomm set 296 iom mailbox base address 48 rem 49 rem *************************** 50 rem * iom channel assignments * 51 rem *************************** 52 rem 53 rem 54 tych set 0 typewriter channel 55 rem 56 lpch set 2 line printer channel 57 rem 58 h1ch set 6 high speed line adapter number one 59 rem 60 h2ch set 7 high speed line adapter number two 61 rem 62 h3ch set 8 high speed line adapter number three 63 rem 64 l1ch set 9 low speed line adapter number one 65 rem 66 l2ch set 10 low speed line adapter number two macro 01 04-18-84 09.431 multics/mcs system macros page 5 datanet configuration description macro 67 rem 68 l3ch set 11 low speed line adapter number three 69 rem 70 l4ch set 12 low speed line adapter number four 71 rem 72 l5ch set 13 low speed line adapter number five 73 rem 74 l6ch set 14 low speed line adapter number six 75 rem 76 tmch set 63 interval timer channel 77 rem 78 swch set 63 data switch channel 79 eject 80 rem ************************* 81 rem * iom interrupt vectors * 82 rem ************************* 83 rem 84 tyft set 0 typewriter fault 85 rem 86 tyrq set 1 typewriter request 87 rem 88 tytm set 2 typewriter terminate 89 rem 90 lpft set 32 line printer fault 91 rem 92 lpat set 33 line printer attention 93 rem 94 lptm set 34 line printer terminate 95 rem 96 dis0 set 3 dia special - 0 97 rem 98 dis1 set 19 dia special - 1 99 rem 100 dis2 set 35 dia special - 2 101 rem 102 dis3 set 51 dia special - 3 103 rem 104 dis4 set 67 dia special - 4 105 rem 106 dis5 set 83 dia special - 5 107 rem 108 dis6 set 99 dia special - 6 109 rem 110 dis7 set 115 dia special - 7 111 rem 112 dis8 set 131 dia special - 8 113 rem 114 dis9 set 147 dia special - 9 115 rem 116 dis10 set 163 dia special - 10 macro 01 04-18-84 09.431 multics/mcs system macros page 6 datanet configuration description macro 117 rem 118 dis11 set 179 dia special - 11 119 rem 120 dis12 set 195 dia special - 12 121 rem 122 dis13 set 211 dia special - 13 123 rem 124 dis14 set 227 dia special - 14 125 rem 126 dis15 set 243 dia special - 15 127 rem 128 h1ft set 96 hsla 1 fault 129 rem 130 h1a0 set 4 hsla 1 subch 0 active terminate vector 131 rem 132 h1a16 set 5 hsla 1 subch 16 active terminate vector 133 rem 134 h1c0 set 6 hsla 1 subch 0 config terminate vector 135 rem 136 h1c16 set 7 hsla 1 subch 16 config terminate vector 137 rem 138 h1a1 set 20 hsla 1 subch 1 active terminate vector 139 rem 140 h1a17 set 21 hsla 1 subch 17 active terminate vector 141 rem 142 h1c1 set 22 hsla 1 subch 1 config terminate vector 143 rem 144 h1c17 set 23 hsla 1 subch 17 config terminate vector 145 rem 146 h1a2 set 36 hsla 1 subch 2 active terminate vector 147 rem 148 h1a18 set 37 hsla 1 subch 18 active terminate vector 149 rem 150 h1c2 set 38 hsla 1 subch 2 config terminate vector 151 rem 152 h1c18 set 39 hsla 1 subch 18 config terminate vector 153 rem 154 h1a3 set 52 hsla 1 subch 3 active terminate vector 155 rem 156 h1a19 set 53 hsla 1 subch 19 active terminate vector 157 rem 158 h1c3 set 54 hsla 1 subch 3 config terminate vector 159 rem 160 h1c19 set 55 hsla 1 subch 19 config terminate vector 161 rem 162 h1a4 set 68 hsla 1 subch 4 active terminate vector 163 rem 164 h1a20 set 69 hsla 1 subch 20 active terminate vector 165 rem 166 h1c4 set 70 hsla 1 subch 4 config terminate vector macro 01 04-18-84 09.431 multics/mcs system macros page 7 datanet configuration description macro 167 rem 168 h1c20 set 71 hsla 1 subch 20 config terminate vector 169 rem 170 h1a5 set 84 hsla 1 subch 5 active terminate vector 171 rem 172 h1a21 set 85 hsla 1 subch 21 active terminate vector 173 rem 174 h1c5 set 86 hsla 1 subch 5 config terminate vector 175 rem 176 h1c21 set 87 hsla 1 subch 21 config terminate vector 177 rem 178 h1a6 set 100 hsla 1 subch 6 active terminate vector 179 rem 180 h1a22 set 101 hsla 1 subch 22 active terminate vector 181 rem 182 h1c6 set 102 hsla 1 subch 6 config terminate vector 183 rem 184 h1c22 set 103 hsla 1 subch 22 config terminate vector 185 rem 186 h1a7 set 116 hsla 1 subch 7 active terminate vector 187 rem 188 h1a23 set 117 hsla 1 subch 23 active terminate vector 189 rem 190 h1c7 set 118 hsla 1 subch 7 config terminate vector 191 rem 192 h1c23 set 119 hsla 1 subch 23 config terminate vector 193 rem 194 h1a8 set 132 hsla 1 subch 8 active terminate vector 195 rem 196 h1a24 set 133 hsla 1 subch 24 active terminate vector 197 rem 198 h1c8 set 134 hsla 1 subch 8 config terminate vector 199 rem 200 h1c24 set 135 hsla 1 subch 24 config terminate vector 201 rem 202 h1a9 set 148 hsla 1 subch 9 active terminate vector 203 rem 204 h1a25 set 149 hsla 1 subch 25 active terminate vector 205 rem 206 h1c9 set 150 hsla 1 subch 9 config terminate vector 207 rem 208 h1c25 set 151 hsla 1 subch 25 config terminate vector 209 rem 210 h1a10 set 164 hsla 1 subch 10 active terminate vector 211 rem 212 h1a26 set 165 hsla 1 subch 26 active terminate vector 213 rem 214 h1c10 set 166 hsla 1 subch 10 config terminate vector 215 rem 216 h1c26 set 167 hsla 1 subch 26 config terminate vector macro 01 04-18-84 09.431 multics/mcs system macros page 8 datanet configuration description macro 217 rem 218 h1a11 set 180 hsla 1 subch 11 active terminate vector 219 rem 220 h1a27 set 181 hsla 1 subch 27 active terminate vector 221 rem 222 h1c11 set 182 hsla 1 subch 11 config terminate vector 223 rem 224 h1c27 set 183 hsla 1 subch 27 config terminate vector 225 rem 226 h1a12 set 196 hsla 1 subch 12 active terminate vector 227 rem 228 h1a28 set 197 hsla 1 subch 28 active terminate vector 229 rem 230 h1c12 set 198 hsla 1 subch 12 config terminate vector 231 rem 232 h1c28 set 199 hsla 1 subch 28 config terminate vector 233 rem 234 h1a13 set 212 hsla 1 subch 13 active terminate vector 235 rem 236 h1a29 set 213 hsla 1 subch 29 active terminate vector 237 rem 238 h1c13 set 214 hsla 1 subch 13 config terminate vector 239 rem 240 h1c29 set 215 hsla 1 subch 29 config terminate vector 241 rem 242 h1a14 set 228 hsla 1 subch 14 active terminate vector 243 rem 244 h1a30 set 229 hsla 1 subch 30 active terminate vector 245 rem 246 h1c14 set 230 hsla 1 subch 14 config terminate vector 247 rem 248 h1c30 set 231 hsla 1 subch 30 config terminate vector 249 rem 250 h1a15 set 244 hsla 1 subch 15 active terminate vector 251 rem 252 h1a31 set 245 hsla 1 subch 31 active terminate vector 253 rem 254 h1c15 set 246 hsla 1 subch 15 config terminate vector 255 rem 256 h1c31 set 247 hsla 1 subch 31 config terminate vector 257 rem 258 l1ft set 144 lsla 1 fault 259 rem 260 l1a set 145 lsla 1 active terminate vector 261 rem 262 l1c set 146 lsla 1 configuration terminate vector 263 rem 264 l2ft set 160 lsla 2 fault 265 rem 266 l2a set 161 lsla 2 active terminate vector macro 01 04-18-84 09.431 multics/mcs system macros page 9 datanet configuration description macro 267 rem 268 l2c set 162 lsla 2 configuration terminate vector 269 rem 270 l3ft set 176 lsla 3 fault 271 rem 272 l3a set 177 lsla 3 active terminate vector 273 rem 274 l3c set 178 lsla 3 configuration terminate vector 275 rem 276 l4ft set 192 lsla 4 fault 277 rem 278 l4a set 193 lsla 4 active terminate vector 279 rem 280 l4c set 194 lsla 4 configuration terminate vector 281 rem 282 l5ft set 208 lsla 5 fault 283 rem 284 l5a set 209 lsla 5 active terminate vector 285 rem 286 l5c set 210 lsla 5 configuration terminate vector 287 rem 288 l6ft set 224 lsla 6 fault 289 rem 290 l6a set 225 lsla 6 active terminate vector 291 rem 292 l6c set 226 lsla 6 configuration terminate vector 293 rem 294 tmft set 240 timer channel fault 295 rem 296 tmro set 241 interval timer runout 297 rem 298 etr set 242 elapsed timer roll-over 299 eject 1 300 rem *************************** 301 rem * program interrupt cells * 302 rem *************************** 303 rem 304 ilev0 set 256 level 0 (common peripheral fault) 305 rem 306 ilev1 set 257 level 1 (common peripheral req/attn) 307 rem 308 ilev2 set 258 level 2 (common peripheral terminate) 309 rem 310 ilev3 set 259 level 3 (dia special) 311 rem 312 ilev4 set 260 level 4 (hsla 1 subch 0-15 active) 313 rem 314 ilev5 set 261 level 5 (hsla 1 subch 16-31 active) 315 rem 316 ilev6 set 262 level 6 (hsla 1 subch 0-15 config) macro 01 04-18-84 09.431 multics/mcs system macros page 10 datanet configuration description macro 317 rem 318 ilev7 set 263 level 7 (hsla 1 subch 16-31 config) 319 rem 320 ilev8 set 264 level 8 (hsla 2 subch 0-15 active) 321 rem 322 ilev9 set 265 level 9 (hsla 2 subch 16-31 active) 323 rem 324 ilev10 set 266 level 10 (hsla 2 subch 0-15 config) 325 rem 326 ilev11 set 267 level 11 (hsla 2 subch 16-31 config) 327 rem 328 ilev12 set 268 level 12 (hsla 3 subch 0-15 active) 329 rem 330 ilev13 set 269 level 13 (hsla 3 subch 16-31 active) 331 rem 332 ilev14 set 270 level 14 (hsla 3 subch 0-15 config) 333 rem 334 ilev15 set 271 level 15 (hsla 3 subch 16-31 config) 335 rem 336 rem ******************** 337 rem * iom fault status * 338 rem ******************** 339 rem 340 rem 341 tyfts set 272 typewriter fault status word 342 rem 343 lpfts set 274 line printer fault status word 344 rem 345 difts set 276 dia fault status word 346 rem 347 h1fts set 278 hsla 1 fault status word 348 rem 349 h2fts set 279 hsla 2 fault status word 350 rem 351 h3fts set 280 hsla 3 fault status word 352 rem 353 l1fts set 281 lsla 1 fault status word 354 rem 355 l2fts set 282 lsla 2 fault status word 356 rem 357 l3fts set 283 lsla 3 fault status word 358 rem 359 l4fts set 284 lsla 4 fault status word 360 rem 361 l5fts set 285 lsla 5 fault status word 362 rem 363 l6fts set 286 lsla 6 fault status word 364 rem 365 tmfts set 287 timer fault status word 366 rem macro 01 04-18-84 09.431 multics/mcs system macros page 11 datanet configuration description macro 367 rem *************************** 368 rem * processor fault vectors * 369 rem *************************** 370 rem 371 rem 372 suflt set 288 startup fault 373 rem 374 sdflt set 289 shutdown fault 375 rem 376 parflt set 290 memory parity fault 377 rem 378 iopflt set 291 illegal operation fault 379 rem 380 ovflt set 292 overflow fault 381 rem 382 memflt set 293 illegal memory operation fault 383 rem 384 dvflt set 294 divide check fault 385 rem 386 ipiflt set 295 illegal program interrupt fault 387 eject 388 rem ************************************ 389 rem * iom mailbox communication region * 390 rem ************************************ 391 rem 392 itmb set 296 interval timer mailbox 393 rem 394 etmb set 297 elapsed timer mailbox 395 rem 396 dimb set 300 dia pcw mailbox 397 rem 398 dist set 302 dia status icw mailbox 399 rem 400 tyst set 304 typewriter status icw mailbox 401 rem 402 tyicw set 306 typewriter data icw mailbox 403 rem 404 lpst set 312 line printer status icw mailbox 405 rem 406 lpicw set 314 line printer data icw mailbox 407 rem 408 cptp set 317 cpu page table pointer 409 rem 410 yelcnt set 318 memory yellow counter (edac corected errors) 411 rem 412 l1mb set 320 lsla 1 mailbox base address 413 rem 414 l2mb set 336 lsla 2 mailbox base address 415 rem 416 l3mb set 352 lsla 3 mailbox base address macro 01 04-18-84 09.431 multics/mcs system macros page 12 datanet configuration description macro 417 rem 418 l4mb set 368 lsla 4 mailbox base address 419 rem 420 l5mb set 384 lsla 5 mailbox base address 421 rem 422 l6mb set 400 lsla 6 mailbox base address 423 rem 424 h1mb set 512 hsla 1 mailbox base address 425 rem 426 h2mb set 1024 hsla 2 mailbox base address 427 rem 428 h3mb set 1536 hsla 3 mailbox base address 429 rem 430 .end. set 1024 end of iom mailbox communication region 431 endm systm macro 01 04-18-84 09.431 multics/mcs system macros page 13 system communication region macro 432 ttls system communication region macro 433 434 this macro defines the locations of the system 435 communication region. this region contains 436 addresses of various tables and contains 437 certain pieces of configuration information. 438 439 *++symget .crldt,.crcpr 440 *++symtype .crldt,clock,.crbdt,clock,.crver,character,.crbrk,addr 441 *++symtype .crskd,addr,.crbtm,addr,.crcpr,character 442 *++symlen .crldt,4,.crbdt,4,.crver,2,.crcpr,14 443 444 comreg macro c,m 445 ttls system communications region 446 rem ********************************** 447 rem * system communication region * 448 rem ********************************** 449 rem 450 .crldt set 416 date and time of binding 451 rem 452 .crbdt set 420 date and time of bootloading 453 rem 454 .crbuf set 424 starting address of buffer area 455 rem 456 .crmem set 425 last location of memory 457 rem 458 .crnbf set 426 number of buffers available 459 rem 460 .criom set 427 start of iom table 461 rem 462 .crnhs set 428 number of hsla's configured 463 rem 464 .crnls set 429 number of lsla's configured 465 rem 466 .crcon set 430 console enabled flag 467 rem 468 .crmod set 431 starting address of module chain 469 rem 470 .crnxa set 432 ptr to next avaliable buffer 471 rem 472 .crtra set 433 trace entry enable mask 473 rem 474 .crtrb set 434 base address of trace table 475 rem 476 .crtrc set 435 next available location in trace table 477 rem 478 .crreg set 436 disaster fault register storage location 479 rem 480 .crttb set 437 location of tib table 481 rem macro 01 04-18-84 09.431 multics/mcs system macros page 14 system communication region macro 482 .crtte set 438 location of end of tib table 483 rem 484 .crdly set 439 head of delay table chain 485 rem 486 .crver set 440 mcs version number, 4 chars 487 rem 488 .crbrk set 442 addr of breakpoint control table 489 rem 490 .crtsw set 443 if non-zero, tracing will cease 491 rem 492 .crnxs set 444 next free small block 493 rem 494 .crnbs set 445 number of buffers devoted to small space 495 rem 496 .crcct set 446 address of first cct descriptor 497 rem 498 .crskd set 447 address of scheduler data block 499 rem 500 .cretb set 448 list of echo-negotiation bit tables 501 rem 502 .crcpt set 449 address of cpu page table 503 rem 504 .crpte set 450 address of variable cpu page table entry 505 rem 506 .crtsz set 451 size of trace data buffer 507 rem 508 .crmet set 452 non-zero if metering enabled 509 rem 510 .crtdt set 453 address of tib for t&d executive channel 511 rem 512 .crbtm set 454 address of time meters for getbuf/frebuf 513 rem 514 .crnxe set 455 next available space in extended memory 515 rem 516 .crbpe set 456 buffer paging window table entry 517 rem 518 .crcpr set 496 copyright notice 519 endm comreg macro 01 04-18-84 09.431 multics/mcs system macros page 15 macro to define dia mailbox opcode values 520 ttls macro to define dia mailbox opcode values 521 522 *++symget termac,linsta,,diaop 523 524 diaop macro c,m rem 525 rem mailbox i/o commands 526 rem 527 rcd equ 1 528 rtx equ 2 529 wcd equ 3 530 wtx equ 4 531 rem 532 rem 533 rem mailbox opcodes 534 rem 535 rem <6180 -> 355> 536 rem 537 termac bool 000 terminal accepted 538 dislin bool 001 disconnect this line 539 disall bool 002 disconnect all lines 540 noacc bool 003 don't accept calls 541 accall bool 004 accept calls 542 inacc bool 005 input accepted 543 setcls bool 006 set device class 544 entrcv bool 007 enter receive mode 545 frmchr bool 010 set framing characters 546 blast bool 011 send output to all lines 547 accout bool 012 accept output 548 aclout bool 013 accept last output 549 dodial bool 014 do dial out 550 rejreq bool 016 reject request 551 trmrej bool 020 terminal rejected 552 disacc bool 021 disconnect accepted 553 incomp bool 022 init complete 554 dmpmem bool 023 dump 355 memory 555 pchmem bool 024 patch 355 memory 556 brkpnt bool 025 fnp_break order 557 linctl bool 026 line_control order 558 msgsiz bool 027 set input message size 559 engstb bool 030 set echnego break table 560 engogo bool 031 start negotiated echo 561 engoff bool 032 stop negotiated echo 562 engini bool 033 init negotiated echo 563 brack bool 035 break acknowledged 564 infcc bool 036 set input flow control characters 565 outfcc bool 037 set output flow control characters 566 alter bool 042 alter parameters 567 cserr bool 043 checksum error 568 rmeter bool 044 report meters 569 setdly bool 045 set delay values macro 01 04-18-84 09.431 multics/mcs system macros page 16 macro to define dia mailbox opcode values 570 rem 571 rem <355 -> 6180> 572 rem 573 acctrm bool 100 accept new terminal 574 lindis bool 101 line disconnected 575 inmbx bool 102 input in mailbox 576 linmsk bool 103 line masked 577 sparms bool 104 send 6180 parameters 578 sndout bool 105 send output 579 engain bool 106 ack_echnego_init 580 engaof bool 107 ack_echnego_stop 581 conslv bool 111 connect to slave 582 accin bool 112 accept input 583 brkcon bool 113 line break condition 584 wrutim bool 114 "wru" timeout 585 errmsg bool 115 error message 586 acupwi bool 120 no power to acu 587 acudlo bool 121 data line occupied 588 acuacr bool 122 dial out failed 589 acung bool 123 unable to dial out 590 linsta bool 124 line_status signal from control tables 591 rem 592 endm macro 01 04-18-84 09.431 multics/mcs system macros page 17 macro to define alter paramaters dia mailbox codes 593 ttls macro to define alter paramaters dia mailbox codes 594 595 *++symget alfdpx,al8out,,alterp 596 alterp macro c,m 597 rem 598 rem defines alter-parameters subcodes 599 rem 600 rem 601 alfdpx bool 03 full duplex mode 602 albrk bool 04 send line break 603 alcrec bool 10 crecho mode 604 allfec bool 11 lfecho mode 605 allock bool 12 lock and unlock keyboard 606 aldump bool 15 dump output 607 altbec bool 16 tab-echo mode 608 allisn bool 20 listen 609 alquit bool 21 handle quit 610 alchng bool 22 change control string index 611 alwru bool 23 read answerback 612 alecpx bool 24 echoplex mode 613 alxhld bool 25 transmit hold 614 aldpin bool 26 dump input 615 alrply bool 27 replay mode 616 alplit bool 30 polite mode 617 alfrmi bool 31 framei mode 618 alsetb bool 32 set buffer size 619 albral bool 33 breakall mode 620 alpfnl bool 34 prefixnl mode 621 alifc bool 35 iflow mode 622 alofc bool 36 oflow mode 623 aloddp bool 37 odd parity 624 al8in bool 40 don't strip input parity 625 al8out bool 41 don't generate output parity 626 rem 627 endm macro 01 04-18-84 09.431 multics/mcs system macros page 18 die macro 628 ttls die macro 629 630 this macro is to be used to crash the fnp. it 631 will cause an illegal opcode fault and will contain 632 some coded information so that one may quickly determine 633 the module that caused the crash as well as the 634 reason for the crash. the caller of this macro 635 is responsible for having defined a symbol 'modnum' 636 which is the module number of the module 637 executing the die. the macro takes one argument 638 which is a number which will uniquely identify 639 the cause for the crash within that module. 640 641 note that since 11 and 51 are both illegal opcodes, 642 the module number can occupy 4 bits; it doesn't 643 matter if the high-order bit of the opcode 644 is on or off. 645 646 die macro c,m 647 vfd 4/modnum,o5/11,9/#1 *die*die*die*die*die*die*die*die*die* 648 endm die 649 650 651 * macro to mark beginning of coded transferred to from master 652 * dispatcher. this is used to flag the start of the code for 653 * call_trace feature of debug_fnp 654 655 mdent macro c,m 656 oct 1 657 tra 2 658 tra -2,* 659 endm mdent 660 661 * likewise for secondary dispatcher 662 663 sdent macro c,m 664 oct 2 665 tra 2 666 tra -2,* 667 endm sdent macro 01 04-18-84 09.431 multics/mcs system macros page 19 subroutine macro 668 ttls subroutine macro 669 670 the subr macro should be the first statement in a 671 subroutine. it creates a zero word to store the 672 address into, some register save instructions 673 and it contains the register restore instructions. 674 the first argument to the macro should be a unique 675 3 character (or less) string. this character string 676 will be used in building the names of places to store 677 specified registers so that the stored registers may 678 be referenced by the subroutine. names are of the form 679 xxxsn where xxx is the 3 character string, the letter 680 s, and n where n is the register name, x1, x2, x3, a 681 q, or i (indicators). the registers to be saved 682 are specified in parens as the second argument. if 683 the character string 'inh' is one of the names, a 684 sti followed by an inh will be the first two instr- 685 uctions generated and the last will be an ldi before 686 returning to the caller. 687 688 subr macro c,m 689 ind 0 return location 690 pmc save,off 691 pcc save,off 692 macwk1 set 0 693 macwk2 set 0 694 idrp #2 695 crsm save,off 696 ine 'a','a#2',%endm1 697 ife '#2','inh',6 698 pmc restore 699 sti #1si-* save indicators 700 inh <-<-<-<-<-<-<-<-<-<-<-<-<-<-<-<-<- 701 pmc save,off 702 macwk1 set macwk1+2 703 macwk2 set macwk2+2 704 idrp 705 idrp #2 706 ine '#2','inh',5 707 pmc restore 708 st#2 #1s#2-* save #2 709 pmc save,off 710 macwk1 set macwk1+1 711 macwk2 set macwk2+2 712 idrp 713 endm1 mark 714 pmc restore 715 tra macwk2+2 go to main body now 716 pmc save,off 717 macwk2 set macwk1+1 macro 01 04-18-84 09.431 multics/mcs system macros page 20 subroutine macro 718 idrp #2 719 ine 'a','a#2',%endm1 720 ine '#2','inh',4 721 pmc restore 722 ld#2 #1s#2-* restore #2 723 pmc save,off 724 macwk2 set macwk2+1 725 idrp 726 idrp #2 727 ife '#2','inh',4 728 pmc restore 729 ldi #1si-* reload indicators 730 pmc save,off 731 macwk2 set macwk2+1 732 idrp 733 endm1 mark 734 pmc restore 735 tra -macwk2-1,* return to caller 736 pmc save,off 737 idrp #2 738 ine 'a','a#2',%endm1 739 ine '#2','inh',3 740 pmc restore 741 #1s#2 bss 1 742 pmc save,off 743 ife '#2','inh',3 744 pmc restore 745 #1si bss 1 746 pmc save,off 747 idrp 748 endm1 mark 749 crsm restore 750 pcc restore 751 pmc restore 752 endm subr macro 01 04-18-84 09.431 multics/mcs system macros page 21 return macro 753 ttls return macro 754 755 this macro is to be executed when returning 756 from a subroutine. it takes one argument which 757 is the label on the subr macro. it will transfer 758 into the code generated by the subr macro 759 which will restore the saved registers and 760 then return to the caller. 761 762 return macro c,m 763 tra 1,* go restore registers 764 ind #1+macwk1+2 765 endm return macro 01 04-18-84 09.431 multics/mcs system macros page 22 start macro 766 ttls start macro 767 this macro is used immediately before the start 768 of executable code in a module. it reserves space 769 for the module chain pointer. 770 771 usage: 772 start name, [mod number], [sti] 773 where name is the 4-character primary symdef 774 name for the module 775 776 mod number is an optional field to indicate the 777 module number 778 779 sti is an optional field to indicate the software 780 technical identifier 781 782 start macro c,m 783 symdef -.chain 784 crsm save,off 785 even 786 ine '#2','',2 787 modnum equ #2 788 .chain dec #2 789 ife '#2','',1 790 .chain dec 0 791 crsm restore 792 bci 2,#1 793 ind #1 794 date 795 ine '#3','',1 796 bci 4,#3 797 endm start macro 01 04-18-84 09.431 multics/mcs system macros page 23 trace -- calling memory/printer tracing 798 ttls trace -- calling memory/printer tracing 799 800 trace macro is used to pass information to system 801 trace routine 802 803 usage: 804 805 trace type,switches,(args) 806 807 type specifies type of tracing 808 809 switches specify which processor switches 810 must be on for printer tracing to occur 811 812 args specify the addresses of data to be passed 813 in one of the following forms: 814 815 xn -- data to be passed is in xn (n = 1,2,3) 816 817 symbol -- word to be passed is at specified addr 818 819 symbol(n) -- address of word to be passed 820 is specified symbol modified by xn (n = 1,2 or 3) 821 822 use of this macro destroys the 823 contents of the a register 824 825 trace macro c,m 826 pmc save,off 827 pcc save,off 828 crsm save,on 829 symdef -x#4 830 x#4 tra #4-* 831 crsm off 832 macwk3 set 0 833 macwk4 set 4 834 idrp #3 835 trcnt #3 836 idrp 837 idrp #3 838 ine 'a','a#3',%endm1 839 argt #3 840 idrp 841 endm1 mark 842 pmc restore 843 tsy 3,* 844 vfd 6/macwk3,12/#1 845 vfd 6/modnum,12/#2 846 ind trace 847 bss macwk3 macro 01 04-18-84 09.431 multics/mcs system macros page 24 trace -- calling memory/printer tracing 848 crsm on 849 #4 null 850 crsm restore 851 pmc save,off 852 pcc restore 853 pmc restore 854 endm trace macro 01 04-18-84 09.431 multics/mcs system macros page 25 trcnt macro -- counts arguments for trace 855 ttls trcnt macro -- counts arguments for trace 856 857 858 trcnt macro c,m 859 macwk3 set macwk3+1 860 ine #1,'x1',4 861 ine #1,'x2',3 862 ine #1,'x3',2 863 macwk4 set macwk4+2 864 ife 1,2,1 865 macwk4 set macwk4+1 866 endm trcnt macro 01 04-18-84 09.431 multics/mcs system macros page 26 argt macro -- used for trace args 867 ttls argt macro -- used for trace args 868 869 argt is used internally by trace macro to generate loads and 870 stores for trace arguments 871 872 873 argt macro c,m 874 ine #1,'x1',%stx 875 ine #1,'x2',%stx 876 ine #1,'x3',%stx 877 macwk4 set macwk4-1 878 pmc restore 879 ife '#2a','a',3 880 lda #1-* 881 sta macwk4 882 ife 1,2,2 883 lda #1,#2 884 sta macwk4 885 pmc save,off 886 ife 1,2,%endl 887 stx mark 888 pmc restore 889 st#1 macwk4 890 pmc save,off 891 endl mark 892 endm argt macro 01 04-18-84 09.431 multics/mcs system macros page 27 traceb -- buffer tracing macro 893 ttls traceb -- buffer tracing macro 894 895 traceb macro is used to invoke buffer 896 tracing routine 897 898 usage: 899 900 btrace bufadr,size 901 902 bufadr is the address of a word containing the 903 address of the buffer. if it is xn (n = 1,2,3) 904 the specified index register contains the 905 address of the buffer. 906 907 size is the size of the buffer in words 908 909 the buffer address is passed to the tracin routine 910 in x3, so that if the bufadr field is not specified as 911 as x3, x3 will be modified. if x1 or x2 is specified, 912 the a register will be modified as well. 913 914 915 traceb macro c,m 916 pmc save,off 917 pcc save,off 918 crsm save,on 919 pmc restore 920 ine #1,'x3',%x3 921 ine #1,'x1',1 922 ife #1,'x2',3 923 c#1a 924 cax3 925 ife 1,2,1 926 ldx3 #1-* 927 pmc save,off 928 x3 mark 929 pmc restore 930 tsy #3-*,* 931 vfd 6/modnum,12/#2 932 #3 ind traceb 933 pmc save,off 934 crsm restore 935 pcc restore 936 pmc restore 937 endm traceb macro 01 04-18-84 09.431 multics/mcs system macros page 28 metering macros 938 ttls metering macros 939 940 these macros are used for metering various fnp 941 events. they generate code to call the subroutines 942 in the meters module. there are 3 macros used in 943 system code: 944 cmeter -- per-channel meters 945 smeter -- system-wide meters 946 mmsg -- special for metering synchronous data 947 messages 948 949 all of them generate a tra around the generated code 950 which is replaced by a nop by bind_fnp if the 951 bindfile specifies metering enabled 952 953 954 cmeter macro 955 956 this macro does increment and update meters for 957 per-channel meters 958 959 usage: 960 cmeter meter_type,meter_name,address 961 962 where meter_type is the name of the metering subroutine 963 meter_name is the symbol to be incremented 964 address is the address of the increment 965 966 967 cmeter macro c,m 968 pmc save,off 969 pcc save,off 970 crsm save,on 971 symdef -m#4 972 m#4 tra #4-* 973 pmc restore 974 lda t.metr,1 get address of metering area 975 iaa #2 976 idrp #3 977 mload #3 get increment 978 idrp 979 tsy #5-*,* 980 tra #4-* skip data 981 #5 ind #1 982 #4 null 983 crsm restore 984 pmc save,off 985 pcc restore 986 pmc restore 987 endm cmeter macro 01 04-18-84 09.431 multics/mcs system macros page 29 metering macros 988 989 990 991 smeter macro 992 993 this macro does increment and update meters for 994 system-wide meters 995 996 usage: 997 smeter meter_type,meter_name,address 998 999 where arguments are the same as for cmeter,above 1000 1001 1002 smeter macro c,m 1003 pmc save,off 1004 pcc save,off 1005 crsm save,on 1006 symdef -m#4 1007 m#4 tra #4-* 1008 pmc restore 1009 lda #6-* get address of system meter 1010 idrp #3 1011 mload #3 get increment 1012 idrp 1013 tsy #5-*,* 1014 tra #4-* 1015 #5 ind #1 1016 #6 ind #2 1017 #4 null 1018 crsm restore 1019 pmc save,off 1020 pcc restore 1021 pmc restore 1022 endm smeter 1023 1024 1025 mmsg macro 1026 1027 this macro generates a call to mmsg, the subroutine that 1028 keeps track of synchronous message lengths 1029 1030 usage: 1031 mmsg meter_name 1032 1033 where meter_name is m.inm or m.outm for an input or 1034 output message respectively 1035 1036 1037 mmsg macro c,m macro 01 04-18-84 09.431 multics/mcs system macros page 30 metering macros 1038 pmc save,off 1039 pcc save,off 1040 crsm save,on 1041 symdef -m#4 1042 m#4 tra #4-* 1043 pmc restore 1044 lda t.metr,1 1045 iaa #1 1046 tsy #3-*,* 1047 tra #4-* 1048 #3 ind mmsg 1049 #4 null 1050 crsm restore 1051 pmc save,off 1052 pcc restore 1053 pmc restore 1054 endm mmsg 1055 1056 1057 mload macro allows modification in address field 1058 1059 mload macro c,m 1060 crsm save,off 1061 ife '#2a','a',2 1062 ldq #1 1063 ife 1,2,1 1064 ldq #1,#2 1065 crsm restore 1066 endm mload macro 01 04-18-84 09.431 multics/mcs system macros page 31 hwcm macro 1067 ttls hwcm macro 1068 1069 this macro defines the fields in the hardware 1070 comm region 1071 1072 *++symget h.ric0,h.cnfg,hwcm 1073 *++symlen h.ric0,2,h.ric1,2,h.sic0,2,h.sic1,2,h.mask,2 1074 *++symlen h.mask,2,h.aicw,2,h.cnfg,2 1075 *++symdef hwcm,0 1076 *++symrel hwcm,hwcm 1077 *++symlen hwcm,16 1078 1079 hwcm macro c,m 1080 ttls hardware comm. region (hwcm) 1081 rem 1082 h.ric0 equ 0 primary receive icw 1083 rem 1084 h.ric1 equ 2 alternate receive icw 1085 rem 1086 h.sic0 equ 4 primary send icw 1087 rem 1088 h.sic1 equ 6 alternate send icw 1089 rem 1090 h.baw equ 8 base address word 1091 rem 1092 h.sfcm equ 9 software comm. region address 1093 rem 1094 h.mask equ 10 mask register 1095 rem 1096 h.aicw equ 12 active status icw 1097 rem 1098 h.cnfg equ 14 configuration status 1099 endm hwcm macro 01 04-18-84 09.431 multics/mcs system macros page 32 hslast macro - define hsla hardware status 1100 ttls hslast macro - define hsla hardware status 1101 1102 *++symget hs.rcs,hs.pwi,,hs.1 1103 *++symget hs.dsr,hs.rto,,hs.2 1104 1105 hslast macro c,m 1106 ttls hsla status bits 1107 rem 1108 rem first status word 1109 rem 1110 hs.rcs bool 400000 send/rcv status indicator(1=rcv) 1111 hs.nms bool 200000 normal marker status 1112 hs.dms bool 100000 delayed marker status 1113 hs.trm bool 040000 terminate character 1114 hs.aiw bool 020000 alternate icw active 1115 hs.siw bool 010000 switching icw's after status store 1116 hs.tro bool 004000 tally runout 1117 hs.ptr bool 002000 pre-tally runout 1118 hs.per bool 001000 parity error, rcv 1119 hs.crj bool 000400 command reject 1120 hs.dss bool 000200 data set status change 1121 hs.isd bool 000100 idle state detect (hdlc) 1122 hs.xte bool 000040 transfer timing error 1123 hs.fce bool 000020 frame check sequence error (hdlc) 1124 hs.sqo bool 000010 status queue overflow (set by software) 1125 hs.nsb bool 000004 no stop bit rcvd 1126 hs.rab bool 000004 receive abort (hdlc) 1127 hs.dlo bool 000002 data line occupied(acu) 1128 hs.pwi bool 000001 power indicator(acu) 1129 rem 1130 rem second status word 1131 rem 1132 hs.dsr bool 400000 data set ready 1133 hs.cts bool 200000 clear to send 1134 hs.cd bool 100000 carrier detect 1135 hs.src bool 040000 supervisory receive 1136 hs.acr bool 020000 abandon call and retry(acu) 1137 hs.ads bool 010000 data set status(acu) 1138 hs.ri bool 004000 ring indicator 1139 hs.brk bool 002000 line break received 1140 hs.byt bool 002000 partial byte (hdlc) 1141 hs.rbt bool 001000 receive block terminate (bsc & hdlc) 1142 hs.rcv bool 000400 receive mode 1143 hs.xmt bool 000200 transmit mode 1144 hs.wam bool 000100 wrap around mode 1145 hs.dtr bool 000040 data terminal ready 1146 hs.rts bool 000020 request to send 1147 hs.mby bool 000010 make busy 1148 hs.sxt bool 000004 supervisory transmit 1149 hs.crc bool 000004 crc error (bsc) macro 01 04-18-84 09.431 multics/mcs system macros page 33 hslast macro - define hsla hardware status 1150 hs.tre bool 000004 tally runout enable (hdlc) 1151 hs.crq bool 000002 call request(acu) 1152 hs.rto bool 000002 receive time out (bsc) 1153 bool 000001 1154 rem 1155 endm hslast macro 01 04-18-84 09.431 multics/mcs system macros page 34 sfcm macro 1156 ttls sfcm macro 1157 1158 this macro defines software comm region for either 1159 hsla or lsla 1160 if both used in one module hsla must be first 1161 1162 *++symget sf.hcm,sf.lln,sfcm 1163 *++symlen sf.cfg,2,sf.waq,40,sf.sta,12 1164 *++symdef sfcm,0 1165 *++symrel sfcm,sfcm 1166 *++symlen sfcm,sf.lln 1167 *++symdel sf.hln,sf.sln,sf.lln,sf.est 1168 *++symgetr sffskd,sffhdl,,sf.flg 1169 1170 sfcm macro c,m 1171 pcc save,off 1172 pmc save,off 1173 ife sfcm.0,1,%first 1174 ine #1,'lsla',%second 1175 pmc save,on 1176 seterr #1 2nd invocation of sfcm must say lsla 1177 pmc restore 1178 org *-1 1179 ine 1,1,%exit 1180 second mark 1181 pmc restore 1182 rem 1183 rem 1184 rem sfcm fields defined for lsla only 1185 rem 1186 pmc save,off 1187 ine 1,1,%part 1188 first mark 1189 ttls sfcm for #1 1190 ife #1,'hsla',%lsla 1191 pmc restore 1192 sf.hcm equ 0 addr of hwcm 1193 rem 1194 sf.nxa equ sf.hcm+1 addr of next available queue entry 1195 rem 1196 sf.nxp equ sf.nxa+1 addr of next queue entry to process 1197 rem 1198 sf.tly equ sf.nxp+1 tally of status queue 1199 rem 1200 sf.tib equ sf.tly+1 addr of tib for this line 1201 rem 1202 sf.flg equ sf.tib+1 flag word 1203 rem 1204 sf.ib0 equ sf.flg+1 pointer to input buffer 1 1205 rem macro 01 04-18-84 09.431 multics/mcs system macros page 35 sfcm macro 1206 sf.ib1 equ sf.ib0+1 pointer to input buffer 2 1207 rem 1208 sf.ob0 equ sf.ib1+1 pointer to output buffer 1 1209 rem 1210 sf.ob1 equ sf.ob0+1 pointer to output buffer 2 1211 rem 1212 sf.pcw equ sf.ob1+1 current pcw 2nd word 1213 rem 1214 sf.cct equ sf.pcw+1 cct addr for this line, if non-zero 1215 rem 1216 sf.rct equ sf.cct+1 repeat count for status queue overflows 1217 rem 1218 sf.hsl equ sf.rct+1 address of hsla table entry for this line 1219 rem 1220 sf.bsz equ sf.hsl+1 max buffer size 1221 rem 1222 sf.fbs equ sf.bsz+1 buffer size to be used during frame input 1223 rem 1224 sf.mms equ sf.fbs+1 maximum synchronous message size 1225 rem 1226 sf.csz equ sf.mms current asynchronous buffer size 1227 rem 1228 sf.rms equ sf.mms+1 remaining unallocated message length 1229 rem 1230 sf.nic equ sf.rms char. address of next asynchronous input char 1231 rem 1232 sf.noc equ sf.nic+1 char address of next asynchronous output char 1233 rem 1234 sf.ssl equ sf.noc+1 number of entries in software status queue 1235 rem 1236 sf.cfg equ sf.ssl+1 2 words for config pcw 1237 rem 1238 sf.sta equ sf.cfg+2 hardware status q, sicw here 1239 rem 1240 sfhsiz equ 5 number of entries in hardware status buf 1241 rem 1242 rem room for 6 status words 1243 sf.est equ sf.sta+sfhsiz*2+2 1244 rem 1245 sf.hln equ sf.est 1246 rem 1247 sf.waq equ sf.est wrap around queue, software status q 1248 rem 1249 sfssq equ 10 length of "short" software status queue 1250 sflsq equ 20 length of "long" software status queue 1251 rem (used for hdlc and bisync lines) 1252 rem 1253 sf.sln equ sf.hln+sfssq 1254 sf.lln equ sf.hln+sflsq 1255 rem macro 01 04-18-84 09.431 multics/mcs system macros page 36 sfcm macro 1256 rem 1257 rem sfcm flag definitions 1258 rem 1259 sffskd bool 000001 status processor is scheduled 1260 rem 1261 sffcii bool 000002 on if alternate input icw is active 1262 rem 1263 sffcoi bool 000004 on if alternate output icw is active 1264 rem 1265 sffisc bool 000010 inactive subchannel flag 1266 rem 1267 sffsct bool 000020 short cct flag 1268 rem 1269 sffebd bool 000040 ebcdic data code on this line 1270 rem 1271 sffech bool 000100 tab, cr, lf echo going on now 1272 rem 1273 sffdct bool 000200 dynamic (sharable) cct in use for channel 1274 rem 1275 sffstp bool 000400 stop channel, rxmit done 1276 rem 1277 sffbsc bool 002000 binary synchronous device 1278 rem 1279 sffsqo bool 004000 status queue overflow pending 1280 rem 1281 sffsyn bool 010000 any synchronous line type 1282 rem 1283 sffmsp bool 020000 marker status pending 1284 rem 1285 sffofr bool 040000 old setting of tffrmi (lines up on tffrmi) 1286 rem 1287 sffnib bool 100000 need to allocate new input buffer(s) 1288 rem 1289 sffssb bool 200000 copied alternate buffer back to output chain 1290 rem 1291 sffhdl bool 400000 uses hdlc channel board 1292 rem 1293 rem 1294 sfhmk equ 2 x-or mask to switch icw addrs 1295 sfbfmk equ 1 x-or mask to switch i-or-ob1/2 addrs 1296 pmc save,off 1297 ine 1,1,%exit 1298 lsla mark 1299 ife sfcm.0,0,%part 1300 pmc restore 1301 sf.hcm equ 0 hardware comm. region address 1302 rem 1303 sf.nxa equ sf.hcm+1 current input status pointer 1304 rem 1305 sf.nxp equ sf.nxa+1 status save buffer ptr macro 01 04-18-84 09.431 multics/mcs system macros page 37 sfcm macro 1306 rem 1307 sf.ioc equ sf.nxp+1 i/o chain pointer 1308 rem 1309 sf.bfc equ sf.ioc+1 current input buffer ptr 1310 rem 1311 sf.flg equ sf.bfc+1 flag word 1312 pmc save,off 1313 ine 1,1,%rest 1314 part mark 1315 pmc restore 1316 sf.ioc equ sf.nxp+1 i/o chain pointer 1317 rem 1318 sf.bfc equ sf.ioc+1 current input buffer pointer 1319 pmc save,off 1320 rest mark 1321 pmc restore 1322 rem 1323 sf.bfa equ sf.flg+1 alternate input buffer ptr 1324 rem 1325 sf.bfl equ sf.bfa+1 output buffer length 1326 rem 1327 sf.icw equ sf.bfl+1 ptr to current input icw 1328 rem 1329 sf.ocw equ sf.icw+1 ptr to current output icw 1330 rem 1331 sf.ltb equ sf.ocw+1 ptr to lsla table 1332 rem 1333 sf.otb equ sf.ltb+1 ptr to output buffer 1334 rem 1335 sf.ity equ sf.otb+1 tally for input icw 1336 rem 1337 sf.oty equ sf.ity+1 tally for output icw 1338 rem 1339 sf.sic equ sf.oty+1 standard status icw 1340 rem 1341 sf.ssb equ sf.sic+2 status save buffer (10 words) 1342 rem 1343 sf.sbf equ sf.ssb+10 status buffer (8 words) 1344 rem 1345 rem bit definitions for sf.flg 1346 rem 1347 sffrlm bool 200 already sent error message about resync attempts 1348 rem 1349 sffopt bool 100 dsr and cts reported 1350 rem 1351 sffrsy bool 40 resync required 1352 rem 1353 sffptr bool 20 expecting input ptro 1354 rem 1355 sffrun bool 10 lsla running ok macro 01 04-18-84 09.431 multics/mcs system macros page 38 sfcm macro 1356 rem 1357 sffnsx bool 4 no stx on last input frame 1358 rem 1359 sffsnd bool 2 second output buffer current 1360 rem 1361 sffslo bool 1 short frame lsla (22 time slots) 1362 pmc save,off 1363 exit mark 1364 sfcm.0 set 1 1365 pmc restore 1366 pcc restore 1367 endm sfcm macro 01 04-18-84 09.431 multics/mcs system macros page 39 tib macro 1368 ttls tib macro 1369 1370 this macro defines the tib fields, the tib flags, 1371 and the values in t.stat 1372 1373 *++symget t.stat,t.leng,tib 1374 *++symlen t.time,2 1375 *++symlen t.itim,2 1376 *++symtype t.cur,addr,t.reta,addr,t.dcwa,addr 1377 *++symdef tib,0 1378 *++symrel tib,tib 1379 *++symlen tib,t.leng 1380 *++symdel t.leng 1381 *++symgetr tsfcd,tsfcrq,,t.stat 1382 *++symgetr tfwrit,tfosus,,t.flg 1383 *++symget tfdlup,tfdlup,,t.flg 1384 *++symgetr tfxhld,tfpfnl,,t.flg2 1385 *++symgetr tfbkpt,tfinq,,t.flg3 1386 1387 tib macro c,m 1388 ttls terminal information block (tib) 1389 rem 1390 t.stat equ 0 holds current line status 1391 rem 1392 t.flg equ t.stat+1 flag word 1393 rem 1394 t.flg2 equ t.flg+1 second word of flags 1395 rem 1396 t.cur equ t.flg2+1 current address in control table 1397 rem 1398 t.line equ t.cur+1 10 bit line number 1399 rem 1400 t.icp equ t.line+1 first buffer in input chain 1401 rem 1402 t.ilst equ t.icp+1 last buffer in input chain 1403 rem 1404 t.icpl equ t.ilst+1 count of buffers in icp chain 1405 rem 1406 t.icch equ t.icpl+1 address of next input character 1407 rem 1408 t.elnk equ t.icch+1 link to tib extension 1409 rem 1410 t.rcp equ t.elnk replay chain pointer (share t.elnk) 1411 rem 1412 t.ocp equ t.elnk+1 addr of output chain from cs 1413 rem 1414 t.ocur equ t.ocp+1 addr of current output buffer 1415 rem 1416 t.olst equ t.ocur+1 addr of last buffer in output chain 1417 rem macro 01 04-18-84 09.431 multics/mcs system macros page 40 tib macro 1418 t.occh equ t.olst+1 addr of next output character 1419 rem 1420 t.ocnt equ t.occh+1 count of buffers in t.ocur 1421 rem 1422 t.type equ t.ocnt+1 line type 1423 rem 1424 t.time equ t.type+1 time at which next timeout will occur 1425 rem 1426 t.reta equ t.time+2 return address from calsub 1427 rem 1428 t.dcwa equ t.reta+1 addr of dcw list to 'execute' 1429 rem 1430 t.dcwl equ t.dcwa+1 length of dcw list 1431 rem 1432 t.echo equ t.dcwl+1 echo buffer address 1433 rem 1434 t.dcp equ t.echo+1 addr of message chain for cs 1435 rem 1436 t.dlst equ t.dcp+1 last buffer in messge chain for cs 1437 rem 1438 t.ftse equ t.dlst+1 first time slot entry in lsla table 1439 rem 1440 t.sfcm equ t.ftse pointer to sfcm for hsla lines 1441 rem 1442 t.bcnt equ t.ftse+1 counting temporary 1443 rem 1444 t.brkp equ t.bcnt+1 pointer to current break list 1445 rem 1446 t.pos equ t.brkp+1 current carriage position 1447 rem 1448 t.char equ t.pos+1 pending line control char (lsla only) 1449 rem 1450 t.ecch equ t.char address of current echo char (hsla only) 1451 rem 1452 t.cntr equ t.char+1 counter for control tables 1453 rem 1454 t.flg3 equ t.cntr+1 third word of flags 1455 rem 1456 t.dtp equ t.flg3+1 pointer to delay table for this line 1457 rem 1458 t.frmc equ t.dtp+1 framing chars (2 chars) 1459 rem 1460 t.dcpl equ t.frmc+1 number of buffers in dcp chain 1461 rem 1462 t.scll equ t.dcpl+1 screenline length left, for echo neg. 1463 rem 1464 t.sncc equ t.scll+1 echo negotiation sync ctr. 1465 rem 1466 t.entp equ t.sncc+1 echo negotiation break table ptr 1467 rem macro 01 04-18-84 09.431 multics/mcs system macros page 41 tib macro 1468 t.ifch equ t.entp+1 input flow control characters 1469 rem 1470 t.ofch equ t.ifch+1 output flow control characters 1471 rem 1472 t.omct equ t.ofch+1 output message count (for flow control) 1473 rem 1474 t.itim equ t.omct+1 time of last call to inproc (2 words) 1475 rem 1476 t.metr equ t.itim+2 address of metering area 1477 rem 1478 t.abf0 equ t.metr+1 absolute address of first permanent buffer 1479 rem 1480 t.abf1 equ t.abf0+1 absolute address of first permanent buffer 1481 rem 1482 t.leng equ t.abf1+1 length of a tib 1483 rem 1484 rem ******************************** 1485 rem * t.stat bits 1486 rem ******************************** 1487 rem 1488 rem 1489 tsfcd bool 000001 carrier detect 1490 rem 1491 tsfcts bool 000002 clear to send 1492 rem 1493 tsfdsr bool 000004 data set ready 1494 rem 1495 tsfsrc bool 000010 supervisory receive 1496 rem 1497 tsfst bool 000020 store status 1498 rem 1499 tsfmrk bool 000040 send marker status 1500 rem 1501 tsftrm bool 000100 send terminate status 1502 rem 1503 tsfrcv bool 000200 receive mode 1504 rem 1505 tsfxmt bool 000400 transmit mode 1506 rem 1507 tsfbrk bool 001000 send line break 1508 rem 1509 tsfdtr bool 002000 data terminal ready 1510 rem 1511 tsfsxt bool 004000 supervisory transmit 1512 rem 1513 tsftre bool 004000 tally runout enable (hdlc) 1514 rem 1515 tsfrts bool 010000 request to send 1516 rem 1517 tsfcrq bool 020000 acu call request macro 01 04-18-84 09.431 multics/mcs system macros page 42 tib macro 1518 rem 1519 rem 1520 rem ******************************** 1521 rem * tib flags -- t.flg 1522 rem ******************************** 1523 rem 1524 rem 1525 tfwrit bool 000001 output chain present 1526 rem 1527 tfbel bool 000002 send bell as next echoed character 1528 rem 1529 tffdpx bool 000004 full duplex mode 1530 rem 1531 tfkybd bool 000010 keyboard addressed 1532 rem 1533 tfprtr bool 000020 printer addressed 1534 rem 1535 tfhang bool 000040 hangup this line 1536 rem 1537 tflisn bool 000100 answer the phone 1538 rem 1539 tfquit bool 000200 send nl on line break 1540 rem 1541 tfctrl bool 000400 do kybd/printer addressing 1542 rem 1543 tflfec bool 001000 do lf echo on cr 1544 rem 1545 tfcrec bool 002000 do cr echo on lf 1546 rem 1547 tftbec bool 004000 do space echo on tab 1548 rem 1549 tfwabt bool 010000 do write abort 1550 rem 1551 tfauto bool 020000 this is hsla autobaud line 1552 rem 1553 tfeotx bool 040000 eot expected from 2741 1554 rem 1555 tfisus bool 100000 input suspended 1556 rem 1557 tfecpx bool 200000 echoplex mode 1558 rem 1559 tfosus bool 400000 output suspended 1560 rem 1561 rem ******************************** 1562 rem * second word of tib flags 1563 rem ******************************** 1564 rem 1565 rem 1566 tfxhld bool 000001 hold transmit on 1567 rem macro 01 04-18-84 09.431 multics/mcs system macros page 43 tib macro 1568 tfdild bool 000002 terminal is dialed up 1569 rem 1570 tfercv bool 000004 enter receive mode 1571 rem 1572 tfrabt bool 000010 do read abort 1573 rem 1574 tfacu bool 000020 do dial out 1575 rem 1576 tfifc bool 000040 input flow control mode 1577 rem 1578 tfofc bool 000100 output flow control mode 1579 rem 1580 tfupsf bool 000200 terminal is upshifted now 1581 rem 1582 tfrply bool 000400 replay mode 1583 rem 1584 tfrpon bool 001000 replay is occurring now 1585 rem 1586 tfplit bool 002000 polite mode 1587 rem 1588 tfblak bool 004000 asynchronous block acknowledgement 1589 rem 1590 tfcrcv bool 010000 'control' receive mode 1591 rem 1592 tfmrcv bool 020000 'message' receive mode 1593 rem 1594 tffrmi bool 040000 frame mode 1595 rem 1596 tffip bool 100000 frame in progress 1597 rem 1598 tfsftr bool 200000 terminal is shifting device 1599 rem 1600 tfpfnl bool 400000 line is in prefixnl mode 1601 rem 1602 rem 1603 rem ********************************* 1604 rem * third word of tib flags 1605 rem ********************************* 1606 rem 1607 rem 1608 tfbkpt bool 000001 line is stopped at breakpoint 1609 rem 1610 tfitim bool 000002 timeout if input stops 1611 rem 1612 tfkpar bool 000004 keep parity bits 1613 rem 1614 tfecho bool 000010 echoing has priority over output (lsla) 1615 rem 1616 tfbral bool 000020 break on all characters 1617 rem macro 01 04-18-84 09.431 multics/mcs system macros page 44 tib macro 1618 tfsked bool 000040 input timeout routine scheduled 1619 rem 1620 tf8in bool 000100 don't strip input parity 1621 rem 1622 tf8out bool 000200 don't strip output parity 1623 rem 1624 tfoddp bool 000400 odd parity 1625 rem 1626 tfabf0 bool 001000 t.afb0 available 1627 rem 1628 tfsoip bool 002000 suspension of output in progress 1629 rem 1630 tforp bool 004000 output resume pending (waiting until tro) 1631 rem 1632 tfabf1 bool 010000 t.abf1 available 1633 rem 1634 tfmask bool 020000 channel has been masked for excessive interrupts 1635 rem 1636 tfinq bool 040000 input is queued for the channel 1637 rem 1638 rem 1639 rem ********************************* 1640 rem * redefined tib flags in t.flg 1641 rem ********************************* 1642 rem 1643 rem 1644 tfdlup equ tfprtr line is on dialup modem 1645 endm tib macro 01 04-18-84 09.431 multics/mcs system macros page 45 tsttib - macro which decides which word of tib flags cont 1646 ttls tsttib - macro which decides which word of tib flags contains a b 1647 1648 tsttib macro c,m 1649 ine '#1','tfwrit',%tfwrd1 1650 ine '#1','tffdpx',%tfwrd1 1651 ine '#1','tfkybd',%tfwrd1 1652 ine '#1','tfprtr',%tfwrd1 1653 ine '#1','tfhang',%tfwrd1 1654 ine '#1','tflisn',%tfwrd1 1655 ine '#1','tfquit',%tfwrd1 1656 ine '#1','tfctrl',%tfwrd1 1657 ine '#1','tflfec',%tfwrd1 1658 ine '#1','tfcrec',%tfwrd1 1659 ine '#1','tftbec',%tfwrd1 1660 ine '#1','tfwabt',%tfwrd1 1661 ine '#1','tfauto',%tfwrd1 1662 ine '#1','tfeotx',%tfwrd1 1663 ine '#1','tfbel',%tfwrd1 1664 ine '#1','tfisus',%tfwrd1 1665 ine '#1','tfecpx',%tfwrd1 1666 ine '#1','tfosus',%tfwrd1 1667 ine '#1','tfdlup',%tfwrd1 1668 ine '#1','tfxhld',%tfwrd2 1669 ine '#1','tfdild',%tfwrd2 1670 ine '#1','tfercv',%tfwrd2 1671 ine '#1','tfrabt',%tfwrd2 1672 ine '#1','tfacu',%tfwrd2 1673 ine '#1','tfifc',%tfwrd2 1674 ine '#1','tfofc',%tfwrd2 1675 ine '#1','tfupsf',%tfwrd2 1676 ine '#1','tfrply',%tfwrd2 1677 ine '#1','tfrpon',%tfwrd2 1678 ine '#1','tfplit',%tfwrd2 1679 ine '#1','tfblak',%tfwrd2 1680 ine '#1','tfcrcv',%tfwrd2 1681 ine '#1','tfmrcv',%tfwrd2 1682 ine '#1','tffrmi',%tfwrd2 1683 ine '#1','tffip',%tfwrd2 1684 ine '#1','tfsftr',%tfwrd2 1685 ine '#1','tfpfnl',%tfwrd2 1686 seterr #1 not valid tib flag 1687 org *-1 1688 ine 1,1,%done 1689 tfwrd1 mark 1690 tfwrd1 set tfwrd1+#1 1691 ine 1,1,%done 1692 tfwrd2 mark 1693 tfwrd2 set tfwrd2+#1 1694 done mark 1695 endm tsttib macro 01 04-18-84 09.431 multics/mcs system macros page 46 meters macro - define system & channel meters 1696 ttls meters macro - define system & channel meters 1697 1698 *++symget .mdilc,.mleng 1699 *++symlen .mdilc,2,.mdilu,2,.mspav,2,.mspau,2,.mimbx,2,.mimbu,2,.mbufa,2 1700 *++symlen .mbfpa,2,.mupab,2,.mpanf,2 1701 *++symget m.dql,m.synl,meters 1702 *++symlen m.dql,2,m.dqu,2,m.nst,2,m.nsu,2 1703 *++symlen m.prex,2,m.exh,2,m.ebof,2 1704 *++symlen m.nim,2,m.iml,2,m.nom,2,m.oml,2,m.cnt1,2,m.cnt2,2 1705 *++symlen m.cnt3,2,m.cnt4,2,m.cnt5,2,m.cnt6,2,m.cnt7,2,m.cnt8,2 1706 1707 this macro defines system-wide meters kept 1708 in low memory and per-channel meters pointed 1709 to by t.metr 1710 1711 meters macro c,m 1712 ttls system-wide meters 1713 rem 1714 .mdilc set 464 cumulative no. of channels dialed 1715 rem 1716 .mdilu set 466 updates of .mdilc 1717 rem 1718 .mspav set 468 cumulative space available 1719 rem 1720 .mspau set 470 updates of .mspav 1721 rem 1722 .mimbx set 472 cumulative number of mbxes in use 1723 rem 1724 .mimbu set 474 updates of .mimbx 1725 rem 1726 .mndil set 476 current no. of channels dialed 1727 rem 1728 .malof set 477 number of space allocation failures 1729 rem 1730 .mdias set 478 abnormal dia status 1731 rem 1732 .mpool set 479 total size of buffer pool (in words) 1733 rem 1734 .mbufa set 480 number of buffer allocations 1735 rem 1736 .mbfpa set 482 number of buffers pre-allocated 1737 rem 1738 .mupab set 484 used a pre-allocated buffer 1739 rem 1740 .mpanf set 486 no pre-allocated buffer available 1741 rem 1742 .mblow set 488 buffer allocated in low memory 1743 rem 1744 .mleng equ .mpanf+2-.mdilc length of system-wide meters 1745 ttls per-channel meters macro 01 04-18-84 09.431 multics/mcs system macros page 47 meters macro - define system & channel meters 1746 rem 1747 rem meters for all channels 1748 rem 1749 m.dql equ 0 cumulative length of dia request queue 1750 rem 1751 m.dqu equ m.dql+2 updates of m.dql 1752 rem 1753 m.nst equ m.dqu+2 cumulative no. of pending status 1754 rem 1755 m.nsu equ m.nst+2 updates of m.nst 1756 rem 1757 m.over equ m.nsu+2 output overlaps 1758 rem 1759 m.par equ m.over+1 parity errors 1760 rem 1761 m.ssqo equ m.par+1 software status queue overflows 1762 rem 1763 m.hsqo equ m.ssqo+1 hardware status queue overflows 1764 rem 1765 m.inaf equ m.hsqo+1 input allocation failures 1766 rem 1767 m.cql equ m.inaf+1 current length of dia request queue 1768 rem 1769 m.exh equ m.cql+1 exhaust status 1770 rem 1771 m.xte equ m.exh+2 software xte status 1772 rem 1773 m.leng equ m.xte+2 length of common meters (must be even) 1774 rem 1775 rem 1776 rem additional meters for asynchronous channels 1777 rem 1778 m.prex equ m.leng pre-exhaust status 1779 rem 1780 m.ebof equ m.prex+2 echo buffer overflows 1781 rem 1782 m.quit equ m.ebof+2 bell-quits 1783 rem 1784 m.asyl equ m.quit+2 total length of asynchronous meters 1785 rem (must be even) 1786 rem 1787 rem 1788 rem additional meters for synchronous channels 1789 rem 1790 m.nim equ m.leng number of input messages 1791 rem 1792 m.iml equ m.nim+2 cumulative length of input 1793 rem 1794 m.mini equ m.iml+2 minimum length of input message 1795 rem macro 01 04-18-84 09.431 multics/mcs system macros page 48 meters macro - define system & channel meters 1796 m.maxi equ m.mini+1 maximum length of input message 1797 rem 1798 m.nom equ m.maxi+1 number of output messages 1799 rem 1800 m.oml equ m.nom+2 cumulative length of output 1801 rem 1802 m.mino equ m.oml+2 minimum length of output message 1803 rem 1804 m.maxo equ m.mino+1 maximum length of output message 1805 rem 1806 m.cnt1 equ m.maxo+1 first type of counter 1807 rem 1808 m.cnt2 equ m.cnt1+2 second type of counter 1809 rem 1810 m.cnt3 equ m.cnt2+2 third type of counter 1811 rem 1812 m.cnt4 equ m.cnt3+2 fourth type of counter 1813 rem 1814 m.cnt5 equ m.cnt4+2 fifth type of counter 1815 rem 1816 m.cnt6 equ m.cnt5+2 sixth type of counter 1817 rem 1818 m.cnt7 equ m.cnt6+2 seventh type of counter 1819 rem 1820 m.cnt8 equ m.cnt7+2 eighth type of counter 1821 rem 1822 m.synl equ m.cnt8+2 total length of synchronous meters 1823 endm meters macro 01 04-18-84 09.431 multics/mcs system macros page 49 intm - interrupt time meters structure 1824 ttls intm - interrupt time meters structure 1825 1826 1827 intm macro c,m 1828 rem 1829 rem ********************************************** 1830 rem * structure describing meters of time spent in 1831 rem * inhibited routines 1832 rem ********************************************** 1833 rem 1834 it.tot equ 0 running total of time spent 1835 rem 1836 it.inc equ 2 number of updates to it.tot 1837 rem 1838 it.gt1 equ 4 number of times time spent was > 1 msec 1839 rem 1840 it.max equ 7 maximum time spent in one invocation 1841 rem (right half of doubleword) 1842 endm intm macro 01 04-18-84 09.431 multics/mcs system macros page 50 hslatb - define hsla table 1843 ttls hslatb - define hsla table 1844 1845 1846 hslatb macro c,m 1847 rem 1848 rem ******************************************** 1849 rem * hsla table symbol definitions 1850 rem ******************************************** 1851 rem 1852 ht.flg equ 0 hsla tables flag bits 1853 ht.tib equ 1 tib ptr in hsla table 1854 rem 1855 htfcc bool 400000 concentrator channel 1856 htfpl bool 200000 private line modem or hardwire 1857 htfasy bool 100000 async channel 1858 htfop1 bool 040000 option 1 1859 htfop2 bool 020000 option 2 1860 htfmdm bool 017000 modem type, 4 bits 1861 htflnt bool 000760 line type, 5 bits 1862 htfspd bool 000017 line speed, 4 bits 1863 rem 1864 rem 1865 endm hslatb macro 01 04-18-84 09.431 multics/mcs system macros page 51 cctdef - define symbols for cct creation 1866 ttls cctdef - define symbols for cct creation 1867 1868 this macro setups bit for cct creation 1869 1870 cctdef macro c,m 1871 rem 1872 rem cct control bit definitions 1873 rem 1874 ct.ncs bool 000 normal char store 1875 ct.t1s bool 001 store and terminate on next 1876 ct.t2s bool 002 store and terminate after 2 chars 1877 ct.t0s bool 003 store and terminate 1878 ct.dmk bool 004 store and marker delayed 1879 ct.mk1 bool 005 store and marker on next 1880 ct.ign bool 006 ignore, no store 1881 ct.mrk bool 007 store and marker 1882 ct.sw bool 020 switch icws 1883 ct.syn bool 040 resync channel 1884 ct.tb1 bool 100 switch to table 1 1885 ct.tb2 bool 200 switch to table 2 1886 ct.tb3 bool 300 switch to table 3 1887 ct.tb4 bool 400 switch to table 4 1888 rem 1889 ct.eol equ ct.sw+ct.t0s eol for regular tty 1890 ct.grt equ ct.sw+ct.syn+ct.t1s for etx plus bcc char 1891 ct.etx equ ct.t1s+ct.sw+ct.tb4 1892 ct.nak equ ct.t0s+ct.sw+ct.tb4 1893 ct.itb equ ct.mk1 1894 ct.stx equ ct.tb2+ct.dmk 1895 ct.mtb equ ct.mrk+ct.tb2 1896 rem 1897 rem ** following codes are for setcct opblock 1898 rem 1899 scc.dl equ 0 delete current cct 1900 scc.df equ 1 set to default cct based on modes 1901 scc.bs equ 2 reset to base of current cct 1902 rem 1903 endm cctdef macro 01 04-18-84 09.431 multics/mcs system macros page 52 csbits macro 1904 ttls csbits macro 1905 this macro defines "control" bits and standard 1906 stats bits 1907 1908 *++symgetr s.cd,s.ads,,istat 1909 *++symget s.rto,s.pbyt,,istat 1910 *++symgetr c.srec,c.scmd,,cmd 1911 *++symgetr c.scrq,c.rcrq,,cmd 1912 1913 csbits macro c,m 1914 ttls control and status bits 1915 rem control bits 1916 rem 1917 rem 1918 c.srec bool 000001 set receive mode 1919 rem 1920 c.rrec bool 000002 reset receive mode 1921 rem 1922 c.sxmt bool 000004 set transmit mode 1923 rem 1924 c.rxmt bool 000010 reset transmit mode 1925 rem 1926 c.sdtr bool 000020 set data terminal ready 1927 rem 1928 c.rdtr bool 000040 reset data terminal ready 1929 rem 1930 c.ssup bool 000100 set supervisory transmit mode 1931 rem 1932 c.stre bool 000100 set tally runout enable (hdlc) 1933 rem 1934 c.rsup bool 000200 reset supervisory transmit mode 1935 rem 1936 c.rtre bool 000200 reset tally runout enable (hdlc) 1937 rem 1938 c.stat bool 000400 store status 1939 rem 1940 c.sbrk bool 001000 send line break 1941 rem 1942 c.smrk bool 002000 store marker status 1943 rem 1944 c.strm bool 004000 store terminate status 1945 rem 1946 c.srqs bool 010000 set request to send 1947 rem 1948 c.rrqs bool 020000 reset request to send 1949 rem 1950 c.pad bool 040000 unused 1951 rem 1952 c.cmd bool 100000 indicates cmd subop 1953 rem macro 01 04-18-84 09.431 multics/mcs system macros page 53 csbits macro 1954 c.scmd bool 400000 indicates supplementary cmd subop 1955 rem 1956 rem the following must be used in the 1957 rem optional fields to the cmd (or 1958 rem contrl) macros in the 1959 rem control_tables 1960 rem 1961 rem 1962 c.scrq bool 000001 set call request 1963 rem 1964 c.rcrq bool 000002 reset call request 1965 rem 1966 rem 1967 rem status bits 1968 rem 1969 rem 1970 s.cd bool 000001 carrier detect 1971 rem 1972 s.cts bool 000002 clear to send 1973 rem 1974 s.dsr bool 000004 data set ready 1975 rem 1976 s.sprc bool 000010 supervisory receive mode 1977 rem 1978 s.st bool 000020 status requested 1979 rem 1980 s.mark bool 000040 marker status 1981 rem 1982 s.term bool 000100 terminate status 1983 rem 1984 s.prex bool 000200 pre-exhaust 1985 rem 1986 s.brk bool 000400 line break received 1987 rem 1988 s.brch bool 001000 break character received 1989 rem 1990 s.ring bool 002000 ring 1991 rem 1992 s.exh bool 004000 exhaust status 1993 rem 1994 s.prty bool 010000 parity error 1995 rem 1996 s.fcse bool 010000 frame check sequence error (hdlc) 1997 rem 1998 s.xte bool 020000 transfer timing error 1999 rem 2000 s.pwi bool 040000 acu power indicator 2001 rem 2002 s.dlo bool 100000 acu data line occupied 2003 rem macro 01 04-18-84 09.431 multics/mcs system macros page 54 csbits macro 2004 s.acr bool 200000 acu abandon call and retry 2005 rem 2006 s.ads bool 400000 acu raised data set status 2007 rem 2008 rem the following four bits share 2009 rem the values of acu status but can never 2010 rem be misinterpreted. 2011 rem 2012 s.rto bool 040000 receive time out (bsc) 2013 rem 2014 s.isd bool 040000 idle state detect (hdlc) 2015 rem 2016 s.rbt bool 100000 receive block termination (bsc & hdlc) 2017 rem 2018 s.bmk bool 200000 marker status (bsc) 2019 rem 2020 s.rabt bool 200000 receive abort (hdlc) 2021 rem 2022 s.bdmk bool 400000 delayed marker status (bsc) 2023 rem 2024 s.pbyt bool 400000 partial byte (hdlc) 2025 rem 2026 rem 2027 rem bits in common between standard status 2028 s.tib bool 000177 and tib status 2029 rem 2030 rem dataset status bits in standard status 2031 s.dss bool 000017 and tib status 2032 rem 2033 rem 2034 rem asynchronous configuration bits 2035 rem 2036 rem 2037 rem 2038 fg.icw bool 000001 icw (two send icw's) 2039 rem 2040 fg.lpr bool 000002 lateral parity receive 2041 rem 2042 fg.lps bool 000004 lateral parity send 2043 rem 2044 fg.lpo bool 000010 lateral parity odd 2045 rem 2046 fg.5bt bool 000020 5-bit character mode 2047 rem 2048 fg.6bt bool 000040 6-bit character mode 2049 rem 2050 fg.7bt bool 000100 7-bit character mode 2051 rem 2052 fg.8bt bool 000200 8-bit character mode 2053 rem macro 01 04-18-84 09.431 multics/mcs system macros page 55 csbits macro 2054 rem 2055 fg.beb bool 000400 ebcdic mode (bsc) 2056 rem 2057 fg.itf bool 000400 interfame time fill (hdlc) 2058 rem 2059 fg.btr bool 001000 transparent mode (bsc) 2060 rem 2061 fg.cct bool 002000 enable cct 2062 rem 2063 endm csbits macro 01 04-18-84 09.431 multics/mcs system macros page 56 devtab macro 2064 ttls devtab macro 2065 2066 this macro defines the fields in the device table 2067 2068 devtab macro c,m 2069 ttls device table entry (devtab) 2070 rem two characters used alternately for 2071 rem 2072 dt.seq equ 0 sequencing 2073 rem 2074 dt.cct equ dt.seq+1 address of default cct (hsla only) 2075 rem address of array of keyboard addressing 2076 rem 2077 dt.key equ dt.cct+1 sequences 2078 rem address of array of printer addressing 2079 rem 2080 dt.prt equ dt.key+1 sequences 2081 rem 2082 dt.flg equ dt.prt+1 flags(one word) 2083 rem 2084 dt.cmt equ dt.flg+1 carriage movement table (6 chars) 2085 rem 2086 dt.brk equ dt.cmt+3 default break list (4 words) (lsla only) 2087 rem 2088 rem flags 2089 rem 2090 dtfctl bool 000001 default setting of tfctrl (in tib) 2091 rem 2092 dtfsct bool 000002 default setting of short cct flag 2093 rem 2094 dtfsft bool 000004 default setting of tfsftr 2095 endm devtab macro 01 04-18-84 09.431 multics/mcs system macros page 57 dlytbl macro 2096 ttls dlytbl macro 2097 2098 this macro defines the fields in the delay table 2099 2100 dlytbl macro c,m 2101 ttls delay table entry (dlytbl) 2102 rem 2103 rem 2104 dl.fwd equ 0 forward pointer 2105 rem 2106 dl.bck equ 1 back pointer 2107 rem 2108 dl.rfc equ 2 reference count 2109 rem 2110 dl.hsz equ 3 header size - also for echnego tables. 2111 rem 2112 dl.lf equ 3 delays for line feed 2113 rem 2114 dl.cr equ 4 per-column delay factor for carriage return 2115 rem 2116 dl.tba equ 5 initial delay for tab 2117 rem 2118 dl.tbb equ 6 per-column delay factor for tab 2119 rem 2120 dl.bs equ 7 delays for backspace 2121 rem 2122 dl.ff equ 8 delays for form feed 2123 rem 2124 rem 2125 dl.siz equ 9 size of table entry 2126 endm dlytbl macro 01 04-18-84 09.431 multics/mcs system macros page 58 global macro 2127 ttls global macro 2128 2129 this macro defines the bits in the "global switches" 2130 2131 global macro c,m 2132 ttls global switches 2133 rem 2134 gbfup bool 000001 cs is up 2135 rem 2136 gbfhng bool 000002 we've received "blast hangup" 2137 rem 2138 gbfbla bool 000004 doing "blast" output 2139 endm global macro 01 04-18-84 09.431 multics/mcs system macros page 59 buffer macro 2140 ttls buffer macro 2141 2142 this macro defines the fields in a standard buffer 2143 2144 *++symget bufsmk,bufsmk,,bf.flg 2145 *++symget bfflst,bffhld,,bf.flg 2146 *++symget buftmk,buftmk,,bf.flg 2147 *++symtype bufsmk,octal,buftmk,octal 2148 2149 buffer macro c,m 2150 ttls buffer format 2151 rem 2152 bf.nxt equ 0 address of next buffer in chain 2153 rem 2154 bf.siz equ bf.nxt+1 size of buffer (bits0-2) 2155 rem 2156 bf.flg equ bf.nxt+1 flags (bits3-8) 2157 rem 2158 bf.tly equ bf.nxt+1 tally of buffer (bits9-17) 2159 rem 2160 bf.dta equ bf.siz+1 start of data 2161 rem 2162 bufsiz equ 32 buffer size 2163 rem 2164 bufnch equ bufsiz*2-4 number of data characters in a buffer 2165 rem 2166 bufmax equ 40 maximum number of input buffers 2167 rem 2168 bufpre equ 10 number of buffers to trigger pre-exhaust 2169 rem 2170 bufshf equ 5 number of bits shifted to divide by bufsiz 2171 rem 2172 bufres equ 20 number of reserved buffers 2173 rem 2174 bufsmk bool 700000 mask to isolate bf.siz 2175 rem 2176 buffmk bool 077000 mask to isolate bf.flg 2177 rem 2178 buftmk bool 000777 mask to isolate bf.tly 2179 rem 2180 bufthr equ 2 threshold at which to send send_output 2181 rem 2182 bfmsiz equ 256 maximum buffer size in words 2183 rem 2184 rem ******************************** 2185 rem * buffer flags 2186 rem ******************************** 2187 rem 2188 rem 2189 bfflst bool 040000 last buffer in message macro 01 04-18-84 09.431 multics/mcs system macros page 60 buffer macro 2190 rem 2191 bffbrk bool 020000 buffer contains break character 2192 rem 2193 bfftra bool 010000 throw away this buffer when done inputting 2194 rem 2195 bffrpy bool 004000 buffer is last in replay chain 2196 rem 2197 bffctl bool 002000 buffer consists of keybd/prtr control 2198 rem 2199 bffhld bool 001000 hold output buffer until dmpout 2200 endm buffer macro 01 04-18-84 09.431 multics/mcs system macros page 61 tconst macro 2201 ttls tconst macro 2202 2203 2204 this macro defines various flags, control bits, 2205 and character constants for the control_tables 2206 modules 2207 2208 2209 tconst macro c,m 2210 ttls flag and control bit definitions 2211 rem 2212 gbf6up bool 000001 cs up global switch 2213 rem 2214 rem device types 2215 rem 2216 ttasci equ 1 ascii terminals, cdi, tty 33, 35, 37, etc. 2217 tt1050 equ 2 ibm 1050 2218 tt2741 equ 3 ibm 2741, trendata, dura, etc. 2219 ttards equ 4 ards, tektronix 2220 ttsync equ 5 general sync devices 2221 ttg115 equ 6 remote computer interface, g115 2222 ttbsc equ 7 binary synchronous communications 2223 tt202c equ 8 ascii on 202c6 modem 2224 ttvip equ 9 vip terminal 2225 ttpvip equ 16 polled vip 2226 ttx25l equ 17 x.25 link access procedure (lap) 2227 ttcolt equ 19 colts (online t&d executive) 2228 rem 2229 rem signal types 2230 rem 2231 quit bool 113 dia cmd, break received 2232 dialup bool 100 dia cmd, accept new terminal 2233 hangup bool 101 dia cmd, disconnected line 2234 wrutim bool 114 dia cmd, wru timeout 2235 sndout bool 105 dia cmd, send output 2236 acupwi bool 120 dia cmd, no power to acu 2237 acudlo bool 121 dia cmd, data line occupied 2238 acuacr bool 122 dia cmd, dial out failed 2239 acung bool 123 dia cmd, request for acu is invalid 2240 rem 2241 rem control types 2242 rem 2243 srec equ c.srec set receive mode 2244 rrec equ c.rrec reset receive 2245 sxmit equ c.sxmt set xmit mode 2246 rxmit equ c.rxmt reset xmit 2247 sdtr equ c.sdtr set data terminal ready 2248 rdtr equ c.rdtr reset dtr 2249 ssup equ c.ssup set supervisory xmit 2250 rsup equ c.rsup reset supervisory xmit macro 01 04-18-84 09.431 multics/mcs system macros page 62 tconst macro 2251 stat equ c.stat store status 2252 sbrk equ c.sbrk send line break 2253 smark equ c.smrk send marker status 2254 sterm equ c.strm send terminate status 2255 srts equ c.srqs set request to send 2256 rrts equ c.rrqs reset request to send 2257 scrq equ c.scrq set call request 2258 rcrq equ c.rcrq reset call request 2259 stroe equ c.stre set tally runout enable (hdlc) 2260 rtroe equ c.rtre reset tally runout enable (hdlc) 2261 rem 2262 rem status bits 2263 rem 2264 cd equ s.cd carrier detect 2265 cts equ s.cts clear to send 2266 dsr equ s.dsr data set ready 2267 suprec equ s.sprc supervisory receive 2268 st equ s.st status requested 2269 break equ s.brk line break received 2270 brkchr equ s.brch break char received 2271 ring equ s.ring ring 2272 term equ s.term terminate status 2273 marker equ s.mark marker status 2274 exh equ s.exh exhaust status 2275 prexh equ s.prex pre-exhaust status 2276 parity equ s.prty parity error 2277 xte equ s.xte transfer timing error 2278 pwi equ s.pwi power indicator on acu 2279 dlo equ s.dlo data line occupied (acu) 2280 ads equ s.ads dialed station has answered 2281 rem data set is in data mode (acu) 2282 acr equ s.acr abandon call and retry (acu) 2283 rcvto equ s.rto rcv time out 2284 bscrcv equ s.rbt bsc terminate 2285 bscmrk equ s.bmk bsc marker 2286 bscdmk equ s.bdmk bsc delayed marker 2287 fcserr equ s.fcse frame check sequence error (hdlc) 2288 idlesd equ s.isd idle state detect (hdlc) 2289 rcvtrm equ s.rbt receive terminate (hdlc) 2290 rcvabt equ s.rabt receive abort (hdlc) 2291 parbyt equ s.pbyt partial byte (hdlc) 2292 eject 2293 rem 2294 rem output types 2295 rem 2296 adprtr bool 401 insert printer addr string 2297 adkybd bool 402 insert keyboard addr string 2298 outmsg bool 403 insert output msg 2299 repeat bool 404 insert next char n times 2300 rem macro 01 04-18-84 09.431 multics/mcs system macros page 63 tconst macro 2301 rem various characters matched and sent 2302 rem 2303 eoa bool 64 eoa from/to 2741/1050 2304 minus bool 1 minus char from 1050 2305 ibmnl bool 55 cr nl from/to 2741/1050 2306 ibmpad bool 75 2741/1050 pad character(idle) 2307 ibmeot bool 74 2741/1050 eot char 2308 eotshf bool 174 eot w/case shift 2309 ibmbs bool 35 backspace from 2741 2310 ibmtab bool 57 tab from 2741 2311 ibmsl bool 42 2741 slash 2312 ibm0 bool 24 2741 zero 2313 ibm9 bool 44 2741 nine 2314 ibmprf bool 76 2741 prefix code 2315 ibmpls bool 3 2741 plus sign 2316 ibmup bool 34 2741 upshift 2317 ibmdwn bool 37 2741 downshift 2318 nl bool 12 ascii new-line 2319 cr bool 15 ascii carriage return 2320 pad bool 0 ascii pad char 2321 dle bool 20 ascii data link escape 2322 eot bool 4 ascii end of transmission 2323 esc bool 33 ascii escape char 2324 ff bool 14 ascii form feed char 2325 tab bool 11 ascii tab char 2326 bs bool 10 ascii backspace 2327 space bool 40 ascii space 2328 awru bool 5 ascii "who are you" 2329 null bool 0 nothing 2330 ack bool 6 ascii ack 2331 nak bool 25 ascii nak 2332 soh bool 1 ascii start of header 2333 syn bool 26 ascii syn character 2334 stx bool 2 ascii start of text char 2335 etx bool 3 ascii end of text char 2336 bel bool 007 ascii bell character 2337 h bool 150 ascii h (esc mtr on) 2338 l bool 154 ascii l (used by vip for ff) 2339 q bool 161 ascii q (used by vip for quit) 2340 atchar bool 100 ascii at sign (used to mark reset-read) 2341 nochar bool 777 used in cmt to match no character 2342 rem 2343 rem scan subop types 2344 rem 2345 match bool 501 match the char exactly 2346 search bool 502 search until match 2347 ignore bool 503 skip to next char, block check unchanged 2348 sbcc bool 504 start the bcc computation 2349 endchn bool 505 point to last character in chain 2350 cbcc bool 506 compare current with bcc char macro 01 04-18-84 09.431 multics/mcs system macros page 64 tconst macro 2351 cmask bool 507 compare char with mask 2352 rescan bool 510 reset scan position to first char in chai 2353 strlrc bool 511 start lrc computation 2354 outlrc bool 512 insert lrc into chain 2355 cmplrc bool 513 compare lrc accumulation vs current char 2356 seteom bool 514 set last buffer in message flag ( for bld 2357 replac bool 515 replace current char 2358 cmplst bool 516 compare current vs list of chars for equa 2359 movchr bool 517 move current char to tib extension 2360 movmsk bool 520 movchr with masking of current char 2361 count bool 521 count number of chars scanned 2362 serch2 bool 522 search for one of two chars 2363 setbit bool 523 turn on bits in current char 2364 offbit bool 524 turn off bits in current char 2365 chktrm bool 525 check the sync termination char 2366 mvlst2 bool 526 move last two chars to tib ext 2367 nxtchr bool 527 update block check and skip to next char 2368 endm tconst macro 01 04-18-84 09.431 multics/mcs system macros page 65 tibex - macro for define addresses in tib extension 2369 ttls tibex - macro for define addresses in tib extension 2370 2371 tibex macro c,m 2372 pmc save,off 2373 ine tibx.0,1,%exbegn 2374 tibx.1 set 0 2375 tibx.2 set 0 2376 tibx.0 set 1 2377 tibxsz set 0 2378 exbegn mark 2379 ine '#2','word',%exword 2380 ine '#2','char',%exchar 2381 seterr #2 not word or char 2382 ine 1,1,%exdone 2383 exchar mark 2384 #1 equ 304+2*tibx.1+tibx.2 2385 ine tibx.2,1,%exch2 2386 tibx.2 set 1 2387 tibxsz set tibxsz+1 2388 ine 1,1,%exdone 2389 exch2 mark 2390 tibx.1 set tibx.1+1 2391 tibx.2 set 0 2392 ine 1,1,%exdone 2393 exword mark 2394 ine tibx.2,0,%exwrd2 2395 tibx.1 set tibx.1+1 2396 tibx.2 set 0 2397 exwrd2 mark 2398 crsm save,off 2399 tibx.3 set 1 2400 ine '#3','',1 2401 tibx.3 set #3 2402 crsm restore 2403 #1 equ -tibx.1-1 2404 tibx.1 set tibx.1+tibx.3 2405 tibxsz set tibxsz+tibx.3 2406 exdone mark 2407 pmc restore 2408 endm tibex macro 01 04-18-84 09.431 multics/mcs system macros page 66 macro to define bisync data 2409 ttls macro to define bisync data 2410 2411 bscdat macro c,m 2412 ttls bsc symbol definitions 2413 ************************************************************************ 2414 * 2415 * format of tib extentsion 2416 * 2417 ************************************************************************ 2418 rem 2419 tibex ack0,char /* ack0 value */ 2420 tibex ack1,char /* ack1 value */ 2421 tibex tiback,char /* current ack value */ 2422 tibex enq,char /* enq value */ 2423 tibex tibnak,char /* nak value */ 2424 tibex tibeot,char /* eot value */ 2425 tibex rvi,char /* rvi value */ 2426 tibex wack,char /* wack value */ 2427 tibex etb,char /* etb value */ 2428 tibex wrkch1,char /* temporary work character (hasp) */ 2429 tibex wrkch2,char /* temporary work character (hasp) */ 2430 tibex chartb,word /* address of table define characters for mode */ 2431 tibex stattb,word /* address of state transiion table */ 2432 tibex nakcnt,word /* count of naks received during write */ 2433 tibex naklmt,word /* limit of naks during write */ 2434 tibex enqcnt,word /* count of bad responses or timeouts during writ 2435 rem 2436 tibex result,word /* final answer on message scans */ 2437 rem /* ... possible values are: */ 2438 resinc equ 0 /* ... message incomplete */ 2439 resnak equ 1 /* ... message should be nakked */ 2440 reseot equ 2 /* ... message was eot */ 2441 resenq equ 3 /* ... message was enq */ 2442 resack equ 4 /* ... good message */ 2443 resnul equ 5 /* ... no data at all */ 2444 resntr equ 6 /* ... non-transparent msg in trans mode */ 2445 rem 2446 tibex ctlop,word /* start of 4 words for linctl */ 2447 tibex ctlvl1,word 2448 tibex ctlvl2,word 2449 tibex ctlvl3,word 2450 tibex bidlmt,word /* maximum times to bid for line */ 2451 tibex bidcnt,word /* count of bid tries */ 2452 tibex cfgrmd,word /* rmode bits for reconfig */ 2453 tibex cfgsmd,word /* smode bits for reconfig */ 2454 tibex ttdtim,word /* time interval between ttds */ 2455 tibex ttdlmt,word /* maxinum number to send */ 2456 tibex ttdcnt,word /* number sent so far */ 2457 tibex polad1,word /* 3 words for polling address */ 2458 tibex polad2,word macro 01 04-18-84 09.431 multics/mcs system macros page 67 macro to define bisync data 2459 tibex polad3,word 2460 tibex testrt,word /* address of extra test state handler */ 2461 rem 2462 tibex exflg1,word /* a word of flags */ 2463 dialed bool 000001 /* set when dialup has been signalled */ 2464 naksw bool 000002 /* nak required */ 2465 nakksw bool 000004 /* indicates receive nakked last message */ 2466 codasc bool 000010 /* set if using ascii code */ 2467 codebc bool 000020 /* set if using ebcdic code */ 2468 trnon bool 000040 /* set if tranparency is on */ 2469 trnoff bool 000100 /* set if transparency is off */ 2470 wacksw bool 000200 /* indicates wack sent or received on last msg */ 2471 datrcv bool 000400 /* indicates data was read during write */ 2472 alwbid bool 001000 /* set if line bid should be accepted */ 2473 cfgpnd bool 002000 /* reconfiguration is pending */ 2474 cfgok bool 004000 /* its ok to reconfigure now */ 2475 rflag bool 010000 /* to distinguish between 'write' and 'writer' */ 2476 ttdsw bool 020000 /* ttd was just sent */ 2477 ntrsw bool 040000 /* set while send non-trans block in trans mode * 2478 rvisw bool 100000 /* rvi has been used as ack this transmission */ 2479 needrv bool 200000 /* ack this msg with rvi if possible */ 2480 ctlmsg bool 400000 /* indicates first output buffer is ctl msg */ 2481 rem 2482 tibex exflg2,word /* second word of flags */ 2483 lookot bool 000001 /* set if read subr should watch for write data * 2484 gotot bool 000002 /* read terminated by write call */ 2485 timout bool 000004 /* timeout waiting for input */ 2486 ib3270 bool 000010 /* ibm 3270 protocol to be used */ 2487 polpnd bool 000020 /* poll pending on channel */ 2488 pollok bool 000040 /* ok to poll now */ 2489 selop bool 000100 /* select in progress */ 2490 bool 000200 2491 pollsw bool 000400 /* last message sent was poll */ 2492 autopl bool 001000 /* automatic poll mode enabled */ 2493 haspmd bool 002000 /* hasp protocol to be used */ 2494 master bool 004000 /* we are master (or primary) end */ 2495 outarv bool 010000 /* output from cs arrived while busy (hasp) */ 2496 dialos bool 020000 /* can't send input over dia now (hasp) */ 2497 csreqa bool 040000 /* tell cs when current msg is sent (hasp) */ 2498 lswabs bool 100000 /* local system wait-a-bit (hasp) */ 2499 fswabs bool 200000 /* foreign system wait-a-bit (hasp) */ 2500 fnrcba bool 400000 /* block arrived but foreign not ready (hasp) */ 2501 rem 2502 tibex selad1,word 2503 tibex selad2,word 2504 tibex selad3,word 2505 rem 2506 rem /* hasp re-definitions */ 2507 rem 2508 hxmttm equ ttdtim /* hasp transmit time limit */ macro 01 04-18-84 09.431 multics/mcs system macros page 68 macro to define bisync data 2509 hcontm equ bidlmt /* hasp connect time limit */ 2510 hrcvtm equ ttdcnt /* hasp receive time limit */ 2511 wabmsk equ selad1 /* array of wait-a-bit masks */ 2512 hblkno equ selad2 /* bcb of block cs is interested in */ 2513 wrpcnt equ selad3 /* sync-blocks needed before xfer resumes */ 2514 eject 2515 rem /* ascii char values */ 2516 rem 2517 aack0 bool 60 2518 aack1 bool 61 2519 aenq bool 5 2520 anak bool 25 2521 aeot bool 4 2522 arvi bool 74 2523 awack bool 73 2524 aetb bool 27 2525 rem 2526 rem /* ebcdic char values */ 2527 rem 2528 eack0 bool 160 2529 eack1 bool 141 2530 eenq bool 55 2531 enak bool 75 2532 eeot bool 67 2533 ervi bool 174 2534 ewack bool 153 2535 eetb bool 46 2536 rem 2537 rem /* common char values */ 2538 rem 2539 itb bool 37 2540 rem 2541 rem 2542 rem /* line status op-codes */ 2543 rem 2544 lstbdf equ 1 /* bid failed */ 2545 lstbbk equ 2 /* attempt to write bad block */ 2546 lstrvi equ 3 /* rvi recieved */ 2547 lstnak equ 4 /* excessive naks */ 2548 lstrwr equ 5 /* reporting result of write status */ 2549 lstwrc equ 6 /* write completed */ 2550 lstwkm equ 7 /* ibm3270 wacked message */ 2551 lsteot equ 8 /* got eot in response to output */ 2552 lstabo equ 9 /* sent eot because too many timeouts or enq's */ 2553 lstslf equ 10 /* select failed */ 2554 lstwck equ 11 /* wack in response to select */ 2555 lstnko equ 12 /* too many naks on output */ 2556 lsthin equ 13 /* hasp initialization complete */ 2557 lsthfr equ 14 /* foreign system wait-a-bit reset (hasp) */ 2558 rem macro 01 04-18-84 09.431 multics/mcs system macros page 69 macro to define bisync data 2559 rem /* line control op-codes */ 2560 rem 2561 lctbid equ 1 /* set bid retry limit */ 2562 lctabd equ 2 /* allow line bids now */ 2563 lctcfg equ 3 /* reconfigure */ 2564 lctttd equ 4 /* set ttd parameters */ 2565 lcttwr equ 5 /* test write status */ 2566 lct327 equ 6 /* set ibm3270 mode */ 2567 lctpla equ 7 /* set polling address */ 2568 lctpol equ 8 /* start a polling operation */ 2569 lctsla equ 9 /* set selection address */ 2570 lctsta equ 10 /* stop auto polling */ 2571 lctmst equ 11 /* set master or slave mode */ 2572 lcthsp equ 12 /* set hasp mode */ 2573 lctnak equ 13 /* set nak limit */ 2574 lcthtm equ 14 /* set hasp time limits */ 2575 rem 2576 endm bscdat macro 01 04-18-84 09.431 multics/mcs system macros page 70 control tables op block definitions 2577 ttls control tables op block definitions 2578 2579 *++opstart -- db_fnp_opblocks_.cds looks for this statement when compiled 2580 2581 * * * * * * * * * * * * * * * * * * * * * 2582 * 2583 * goto macro 2584 * 2585 * * * * * * * * * * * * * * * * * * * * * 2586 2587 goto macro 2588 oct 777001 2589 zero #1 2590 endm goto 2591 2592 * * * * * * * * * * * * * * * * * * * * * 2593 * 2594 * iftype macro 2595 * 2596 * * * * * * * * * * * * * * * * * * * * * 2597 2598 iftype macro 2599 oct 777002 2600 zero #1 2601 zero #2 2602 endm iftype 2603 2604 * * * * * * * * * * * * * * * * * * * * * 2605 * 2606 * punt macro 2607 * 2608 * * * * * * * * * * * * * * * * * * * * * 2609 2610 punt macro 2611 oct 777000 2612 zero #1 2613 endm punt macro 01 04-18-84 09.431 multics/mcs system macros page 71 control tables op block definitions 2614 eject 2615 * * * * * * * * * * * * * * * * * * * * * 2616 * 2617 * wait macro 2618 * 2619 * * * * * * * * * * * * * * * * * * * * * 2620 2621 wait macro 2622 oct 777003 2623 zero #1 2624 zero #2 2625 zero #3 2626 endm wait 2627 2628 * * * * * * * * * * * * * * * * * * * * * 2629 * 2630 * status macro 2631 * 2632 * * * * * * * * * * * * * * * * * * * * * 2633 2634 status macro 2635 oct 777004 2636 zero #3 2637 vfd o18/#1 2638 vfd o18/#2 2639 endm status macro 01 04-18-84 09.431 multics/mcs system macros page 72 control tables op block definitions 2640 eject 2641 * * * * * * * * * * * * * * * * * * * * * 2642 * 2643 * dcwlst macro 2644 * 2645 * * * * * * * * * * * * * * * * * * * * * 2646 2647 dcwlst macro 2648 oct 777005 2649 endm dcwlst 2650 2651 sub-ops to dcwlst op block 2652 leftmost 3 bits of 18 bit word 2653 distinguish the sub-ops. 2654 2655 * * * * * * * * * * * * * * * * * * * * * 2656 * 2657 * cmd macro sub-op 1 2658 * up to 15 control bits 2659 * 2660 * sub-op 5 2661 * if 2nd arg, allows for 2662 * up to 15 more control bits 2663 * 2664 * * * * * * * * * * * * * * * * * * * * * 2665 2666 cmd macro 2667 vfd o3/1,o15/#1 2668 crsm off 2669 ine '#2', '', 1 2670 vfd o3/5,o15/#2 2671 crsm on 2672 endm cmd macro 01 04-18-84 09.431 multics/mcs system macros page 73 control tables op block definitions 2673 eject 2674 * * * * * * * * * * * * * * * * * * * * * 2675 * 2676 * input macro sub-op 2 2677 * 2678 * * * * * * * * * * * * * * * * * * * * * 2679 2680 input macro 2681 vfd o3/2,6/#1,o9/#2 2682 endm input 2683 2684 * * * * * * * * * * * * * * * * * * * * * 2685 * 2686 * output macro sub-op 3 2687 * 2688 * * * * * * * * * * * * * * * * * * * * * 2689 2690 output macro 2691 pmc save,off 2692 k set 1 2693 x set 192 2694 idrp #1 2695 ife k,0,3 2696 k set 1 2697 x set #1 2698 ife 1,2,4 2699 k set 0 2700 pmc restore 2701 vfd o9/x,o9/#1 2702 pmc save,off 2703 idrp 2704 pmc restore 2705 ife k,1,1 2706 vfd o9/x,o9/477 2707 ife k,0,1 2708 vfd o18/477000 2709 endm output 2710 2711 * * * * * * * * * * * * * * * * * * * * * 2712 * 2713 * rdtly macro sub-op 4 2714 * 2715 * * * * * * * * * * * * * * * * * * * * * 2716 2717 rdtly macro 2718 vfd o3/4,6/#1,9/0 2719 endm rdtly macro 01 04-18-84 09.431 multics/mcs system macros page 74 control tables op block definitions 2720 eject 2721 * * * * * * * * * * * * * * * * * * * * * 2722 * 2723 * setime macro 2724 * 2725 * * * * * * * * * * * * * * * * * * * * * 2726 2727 setime macro 2728 oct 777006 2729 vfd 18/#1 2730 endm setime 2731 2732 * * * * * * * * * * * * * * * * * * * * * 2733 * 2734 * gotype macro 2735 * 2736 * * * * * * * * * * * * * * * * * * * * * 2737 2738 gotype macro 2739 oct 777007 2740 idrp #1 2741 zero #1 2742 idrp 2743 oct 777000 2744 endm gotype 2745 2746 * * * * * * * * * * * * * * * * * * * * * 2747 * 2748 * setflg macro 2749 * 2750 * * * * * * * * * * * * * * * * * * * * * 2751 2752 setflg macro 2753 oct 777010 2754 pmc save,off 2755 crsm save,off 2756 ine '#2','',%setok 2757 seterr old_style_setflg_macro 2758 org *-1 2759 setok mark 2760 crsm restore 2761 tfwrd1 set 0 2762 tfwrd2 set 0 2763 idrp #1 2764 tsttib #1 2765 idrp 2766 pmc restore 2767 vfd 18/tfwrd1 2768 vfd 18/tfwrd2 2769 endm setflg macro 01 04-18-84 09.431 multics/mcs system macros page 75 control tables op block definitions 2770 2771 * * * * * * * * * * * * * * * * * * * * * 2772 * 2773 * clrflg macro 2774 * 2775 * * * * * * * * * * * * * * * * * * * * * 2776 2777 clrflg macro 2778 oct 777011 2779 pmc save,off 2780 crsm save,off 2781 ine '#2','',%clrok 2782 seterr old_style_clrflg_macro 2783 org *-1 2784 clrok mark 2785 crsm restore 2786 tfwrd1 set 0 2787 tfwrd2 set 0 2788 idrp #1 2789 tsttib #1 2790 idrp 2791 pmc restore 2792 vfd 18/tfwrd1 2793 vfd 18/tfwrd2 2794 endm macro 01 04-18-84 09.431 multics/mcs system macros page 76 control tables op block definitions 2795 eject 2796 * * * * * * * * * * * * * * * * * * * * * 2797 * 2798 * tstflg macro 2799 * 2800 * * * * * * * * * * * * * * * * * * * * * 2801 2802 tstflg macro 2803 oct 777012 2804 zero #2 2805 pmc save,off 2806 crsm save,off 2807 ine '#3','',%tstok 2808 seterr old_style_tstflg_macro 2809 org *-1 2810 tstok mark 2811 crsm restore 2812 tfwrd1 set 0 2813 tfwrd2 set 0 2814 idrp #1 2815 tsttib #1 2816 idrp 2817 pmc restore 2818 vfd 18/tfwrd1 2819 vfd 18/tfwrd2 2820 endm tstflg 2821 2822 * * * * * * * * * * * * * * * * * * * * * 2823 * 2824 * contrl macro 2825 * generates a dcwlst op 2826 * and 1 cmd sub-op 2827 * 2828 * * * * * * * * * * * * * * * * * * * * * 2829 2830 contrl macro 2831 dcwlst 2832 crsm off 2833 cmd #1,#2 2834 crsm on 2835 endm contrl 2836 2837 * * * * * * * * * * * * * * * * * * * * * 2838 * 2839 * dmpout macro 2840 * 2841 * * * * * * * * * * * * * * * * * * * * * 2842 2843 dmpout macro 2844 oct 777013 macro 01 04-18-84 09.431 multics/mcs system macros page 77 control tables op block definitions 2845 endm dmpout 2846 2847 * * * * * * * * * * * * * * * * * * * * * 2848 * 2849 * signal macro 2850 * 2851 * * * * * * * * * * * * * * * * * * * * * 2852 2853 signal macro 2854 oct 777014 2855 vfd o18/#1 2856 endm signal macro 01 04-18-84 09.431 multics/mcs system macros page 78 control tables op block definitions 2857 eject 2858 * * * * * * * * * * * * * * * * * * * * * 2859 * 2860 * meter macro 2861 * 2862 * * * * * * * * * * * * * * * * * * * * * 2863 2864 meter macro 2865 oct 777015 2866 dec #1 2867 endm meter 2868 2869 * * * * * * * * * * * * * * * * * * * * * 2870 * 2871 * waitm macro 2872 * 2873 * * * * * * * * * * * * * * * * * * * * * 2874 2875 waitm macro 2876 oct 777016 2877 endm waitm 2878 2879 * * * * * * * * * * * * * * * * * * * * * 2880 * 2881 * sendin macro 2882 * 2883 * * * * * * * * * * * * * * * * * * * * * 2884 2885 sendin macro 2886 oct 777017 2887 endm sendin 2888 2889 * * * * * * * * * * * * * * * * * * * * * 2890 * 2891 * tstwrt macro 2892 * 2893 * * * * * * * * * * * * * * * * * * * * * 2894 2895 tstwrt macro 2896 oct 777020 2897 zero #1 2898 endm tstwrt macro 01 04-18-84 09.431 multics/mcs system macros page 79 control tables op block definitions 2899 eject 2900 * * * * * * * * * * * * * * * * * * * * * 2901 * 2902 * tstglb macro 2903 * 2904 * * * * * * * * * * * * * * * * * * * * * 2905 2906 tstglb macro 2907 oct 777021 2908 vfd o18/#1 2909 zero #2 2910 endm tstglb 2911 2912 * * * * * * * * * * * * * * * * * * * * * 2913 * 2914 * stpchn macro 2915 * 2916 * * * * * * * * * * * * * * * * * * * * * 2917 2918 stpchn macro 2919 ine stpchx,1,%stpbeg 2920 stpchx set 1 2921 symref stpchn 2922 stpbeg mark 2923 calsub stpchn 2924 endm macro 2925 2926 * * * * * * * * * * * * * * * * * * * * * 2927 * 2928 * setype macro 2929 * 2930 * * * * * * * * * * * * * * * * * * * * * 2931 2932 setype macro 2933 oct 777022 2934 zero #1 2935 endm setype macro 01 04-18-84 09.431 multics/mcs system macros page 80 control tables op block definitions 2936 eject 2937 * * * * * * * * * * * * * * * * * * * * * 2938 * 2939 * scntr macro 2940 * 2941 * * * * * * * * * * * * * * * * * * * * * 2942 2943 scntr macro 2944 oct 777023 2945 zero #1 2946 endm scntr 2947 2948 * * * * * * * * * * * * * * * * * * * * * 2949 * 2950 * acntr macro 2951 * 2952 * * * * * * * * * * * * * * * * * * * * * 2953 2954 acntr macro 2955 oct 777024 2956 zero #1 2957 endm acntr 2958 2959 * * * * * * * * * * * * * * * * * * * * * 2960 * 2961 * tcntr macro 2962 * 2963 * * * * * * * * * * * * * * * * * * * * * 2964 2965 tcntr macro 2966 oct 777025 2967 zero #1 2968 zero #2 2969 endm tcntr macro 01 04-18-84 09.431 multics/mcs system macros page 81 control tables op block definitions 2970 eject 2971 * * * * * * * * * * * * * * * * * * * * 2972 * 2973 * getext macro 2974 * 2975 * * * * * * * * * * * * * * * * * * * * 2976 2977 getext macro 2978 oct 777026 2979 ife '#1','',1 2980 zero tibxsz 2981 ine '#1','',1 2982 zero #1 2983 zero #2 2984 endm getext 2985 2986 * * * * * * * * * * * * * * * * * * * * 2987 * 2988 * retext macro 2989 * 2990 * * * * * * * * * * * * * * * * * * * * 2991 2992 retext macro 2993 oct 777027 2994 endm retext 2995 2996 * * * * * * * * * * * * * * * * * * * * 2997 * 2998 * inscan macro 2999 * 3000 * * * * * * * * * * * * * * * * * * * * 3001 3002 inscan macro 3003 oct 777030 3004 zero #1 3005 zero #2 3006 endm inscan 3007 3008 * * * * * * * * * * * * * * * * * * * * * * * 3009 * 3010 * outscn macro 3011 * 3012 * * * * * * * * * * * * * * * * * * * * * * * 3013 3014 outscn macro 3015 oct 777031 3016 zero #1 3017 zero #2 3018 endm outscn macro 01 04-18-84 09.431 multics/mcs system macros page 82 control tables op block definitions 3019 eject 3020 * * * * * * * * * * * * * * * * * * * * * * * 3021 * 3022 * bldmsg macro 3023 * 3024 * * * * * * * * * * * * * * * * * * * * * * * 3025 3026 bldmsg macro 3027 oct 777032 3028 zero #1 3029 zero #2 3030 endm bldmsg 3031 3032 * * * * * * * * * * * * * * * * * * * * * * * 3033 * 3034 * dumpin macro 3035 * 3036 * * * * * * * * * * * * * * * * * * * * * * * 3037 3038 dumpin macro 3039 oct 777033 3040 endm dumpin 3041 3042 * * * * * * * * * * * * * * * * * * * * * * * 3043 * 3044 * setchr macro 3045 * 3046 * * * * * * * * * * * * * * * * * * * * * * * 3047 3048 setchr macro 3049 oct 777034 3050 vfd o9/#1,o9/#2 3051 endm setchr 3052 3053 * * * * * * * * * * * * * * * * * * * * * * * 3054 * 3055 * cmpchr macro 3056 * 3057 * * * * * * * * * * * * * * * * * * * * * * * 3058 3059 cmpchr macro 3060 oct 777035 3061 vfd o9/#1,o9/#2 3062 zero #3 3063 endm cmpchr macro 01 04-18-84 09.431 multics/mcs system macros page 83 control tables op block definitions 3064 eject 3065 * * * * * * * * * * * * * * * * * * * * * * * 3066 * 3067 * calsub macro 3068 * 3069 * * * * * * * * * * * * * * * * * * * * * * * 3070 3071 calsub macro 3072 oct 777036 3073 zero #1 3074 endm calsub 3075 3076 * * * * * * * * * * * * * * * * * * * * * * * 3077 * 3078 * retsub macro 3079 * 3080 * * * * * * * * * * * * * * * * * * * * * * * 3081 3082 retsub macro 3083 oct 777037 3084 endm retsub 3085 3086 * * * * * * * * * * * * * * * * * * * * * * * 3087 * 3088 * holdot macro 3089 * 3090 * * * * * * * * * * * * * * * * * * * * * * * 3091 3092 holdot macro 3093 oct 777040 3094 endm holdot 3095 * * * * * * * * * * * * * * * * * * * * * * * 3096 * 3097 * ifhsla macro 3098 * 3099 * * * * * * * * * * * * * * * * * * * * * * * 3100 3101 ifhsla macro 3102 oct 777041 3103 zero #1 3104 endm ifhsla macro 01 04-18-84 09.431 multics/mcs system macros page 84 control tables op block definitions 3105 eject 3106 * * * * * * * * * * * * * * * * * * * * * * * 3107 * 3108 * config macro 3109 * 3110 * * * * * * * * * * * * * * * * * * * * * * * 3111 3112 config macro 3113 oct 777042 3114 endm config 3115 3116 * * * * * * * * * * * * * * * * * * * * * * * 3117 * 3118 * smode macro 3119 * 3120 * * * * * * * * * * * * * * * * * * * * * * * 3121 3122 smode macro 3123 vfd o3/1,o15/#1 3124 endm smode 3125 3126 * * * * * * * * * * * * * * * * * * * * * * * 3127 * 3128 * rmode macro 3129 * 3130 * * * * * * * * * * * * * * * * * * * * * * * 3131 3132 rmode macro 3133 vfd o3/2,o15/#1 3134 endm rmode 3135 3136 * * * * * * * * * * * * * * * * * * * * * * * 3137 * 3138 * baud macro 3139 * 3140 * * * * * * * * * * * * * * * * * * * * * * * 3141 3142 baud macro 3143 vfd o3/3,15/#1 3144 endm baud macro 01 04-18-84 09.431 multics/mcs system macros page 85 control tables op block definitions 3145 eject 3146 * * * * * * * * * * * * * * * * * * * * * * * 3147 * 3148 * ckinpt macro 3149 * 3150 * * * * * * * * * * * * * * * * * * * * * * * 3151 3152 ckinpt macro 3153 oct 777043 3154 zero #1 3155 endm ckinpt 3156 3157 * * * * * * * * * * * * * * * * * * * * * * * 3158 * 3159 * gtinpt macro 3160 * 3161 * * * * * * * * * * * * * * * * * * * * * * * 3162 3163 gtinpt macro 3164 oct 777044 3165 endm gtinpt 3166 3167 * * * * * * * * * * * * * * * * * * * * * * * 3168 * 3169 * replay macro 3170 * 3171 * * * * * * * * * * * * * * * * * * * * * * * 3172 3173 replay macro 3174 oct 777045 3175 endm replay 3176 3177 * * * * * * * * * * * * * * * * * * * * * * * 3178 * 3179 * dmprpy macro 3180 * 3181 * * * * * * * * * * * * * * * * * * * * * * * 3182 3183 dmprpy macro 3184 oct 777046 3185 endm dmprpy macro 01 04-18-84 09.431 multics/mcs system macros page 86 control tables op block definitions 3186 eject 3187 * * * * * * * * * * * * * * * * * * * * * * * 3188 * 3189 * prepnl macro 3190 * 3191 * * * * * * * * * * * * * * * * * * * * * * * 3192 3193 prepnl macro 3194 oct 777047 3195 endm prepnl 3196 3197 * * * * * * * * * * * * * * * * * * * * * * * 3198 * 3199 * tstrpy macro 3200 * 3201 * * * * * * * * * * * * * * * * * * * * * * * 3202 3203 tstrpy macro 3204 oct 777050 3205 zero #1 3206 rem 3207 endm tstrpy 3208 3209 * * * * * * * * * * * * * * * * * * * * * * * 3210 * 3211 * echo macro 3212 * 3213 * * * * * * * * * * * * * * * * * * * * * * * 3214 3215 echo macro 3216 oct 777051 3217 zero #1 3218 endm echo 3219 * * * * * * * * * * * * * * * * * * * * * * * 3220 * 3221 * setcct macro 3222 * 3223 * * * * * * * * * * * * * * * * * * * * * * * 3224 3225 setcct macro 3226 oct 777052 3227 zero #1 3228 endm setcct macro 01 04-18-84 09.431 multics/mcs system macros page 87 control tables op block definitions 3229 eject 3230 * * * * * * * * * * * * * * * * * * * * * * * 3231 * 3232 * dmpmsg macro 3233 * 3234 * * * * * * * * * * * * * * * * * * * * * * * 3235 3236 dmpmsg macro 3237 oct 777053 3238 endm dmpmsg 3239 3240 * * * * * * * * * * * * * * * * * * * * * * * 3241 * 3242 * setlcl macro 3243 * 3244 * * * * * * * * * * * * * * * * * * * * * * * 3245 3246 setlcl macro 3247 oct 777054 3248 vfd 18/#1 3249 vfd 18/#2 3250 endm setlcl 3251 3252 * * * * * * * * * * * * * * * * * * * * * * * 3253 * 3254 * addlcl macro 3255 * 3256 * * * * * * * * * * * * * * * * * * * * * * * 3257 3258 addlcl macro 3259 oct 777055 3260 vfd 18/#1 3261 vfd 18/#2 3262 endm addlcl 3263 3264 * * * * * * * * * * * * * * * * * * * * * * * 3265 * 3266 * tstlcl macro 3267 * 3268 * * * * * * * * * * * * * * * * * * * * * * * 3269 3270 tstlcl macro 3271 oct 777056 3272 vfd 18/#1 3273 vfd 18/#2 3274 zero #3 3275 endm tstlcl macro 01 04-18-84 09.431 multics/mcs system macros page 88 control tables op block definitions 3276 eject 3277 * * * * * * * * * * * * * * * * * * * * * * * 3278 * 3279 * setlcf macro 3280 * 3281 * * * * * * * * * * * * * * * * * * * * * * * 3282 3283 setlcf macro 3284 oct 777057 3285 vfd 18/#1 3286 vfd o18/#2 3287 endm setlcf 3288 3289 * * * * * * * * * * * * * * * * * * * * * * * 3290 * 3291 * clrlcf macro 3292 * 3293 * * * * * * * * * * * * * * * * * * * * * * * 3294 3295 clrlcf macro 3296 oct 777060 3297 vfd 18/#1 3298 vfd o18/#2 3299 endm clrlcf 3300 3301 * * * * * * * * * * * * * * * * * * * * * * * 3302 * 3303 * tstlcf macro 3304 * 3305 * * * * * * * * * * * * * * * * * * * * * * * 3306 3307 tstlcf macro 3308 oct 777061 3309 vfd 18/#1 3310 vfd o18/#2 3311 vfd 18/#3 3312 endm tstlcf 3313 3314 * * * * * * * * * * * * * * * * * * * * * * * 3315 * 3316 * setlcv macro 3317 * 3318 * * * * * * * * * * * * * * * * * * * * * * * 3319 3320 setlcv macro 3321 oct 777062 3322 vfd 18/#1 3323 vfd 18/#2 3324 endm setlcf macro 01 04-18-84 09.431 multics/mcs system macros page 89 control tables op block definitions 3325 eject 3326 * * * * * * * * * * * * * * * * * * * * * * * 3327 * 3328 * calasm macro 3329 * 3330 * * * * * * * * * * * * * * * * * * * * * * * 3331 3332 calasm macro 3333 oct 777063 3334 vfd 18/#1 3335 crsm save,off 3336 pmc save,off 3337 ine '#2','',%cala.y 3338 crsm on 3339 pmc restore 3340 #3 equ * 3341 org *+1 3342 pmc save,off 3343 cala.x set 0 3344 idrp #2 3345 pmc restore 3346 vfd 18/#2 3347 pmc save,off 3348 cala.x set cala.x+1 3349 idrp 3350 pmc restore 3351 #4 equ * 3352 org #3 3353 vfd 18/cala.x 3354 org #4 3355 pmc save,off 3356 ine 1,1,%cala.z 3357 cala.y mark 3358 pmc restore 3359 oct 0 3360 pmc save,off 3361 cala.z mark 3362 pmc restore 3363 crsm restore 3364 endm calasm macro 01 04-18-84 09.431 multics/mcs system macros page 90 control tables op block definitions 3365 eject 3366 * * * * * * * * * * * * * * * * * * * * * * * 3367 * 3368 * bkptop macro 3369 * 3370 * * * * * * * * * * * * * * * * * * * * * * * 3371 3372 bkptop macro c,m 3373 oct 777064 3374 endm bkptop 3375 3376 * * * * * * * * * * * * * * * * * * * * * * * 3377 * 3378 * linctl macro 3379 * 3380 * * * * * * * * * * * * * * * * * * * * * * * 3381 3382 linctl macro c,m 3383 oct 777065 3384 vfd 18/#1 3385 vfd 18/#2 3386 endm linctl 3387 3388 * * * * * * * * * * * * * * * * * * * * * * * 3389 * 3390 * linsta macro 3391 * 3392 * * * * * * * * * * * * * * * * * * * * * * * 3393 3394 linsta macro c,m 3395 oct 777066 3396 vfd 18/#1 3397 endm linsta 3398 3399 * * * * * * * * * * * * * * * * * * * * * * * 3400 * 3401 * tstlcv macro 3402 * 3403 * * * * * * * * * * * * * * * * * * * * * * * 3404 3405 tstlcv macro c,m 3406 oct 777067 3407 vfd 18/#1 3408 vfd 18/#2 3409 vfd 18/#3 3410 endm tstlcv 3411 3412 * * * * * * * * * * * * * * * * * * * * * * * 3413 * 3414 * nullop macro macro 01 04-18-84 09.431 multics/mcs system macros page 91 control tables op block definitions 3415 * 3416 * * * * * * * * * * * * * * * * * * * * * * * 3417 3418 nullop macro c,m 3419 oct 777070 3420 endm nullop 3421 3422 * * * * * * * * * * * * * * * * * * * * * * * 3423 * 3424 * unwind macro 3425 * 3426 * * * * * * * * * * * * * * * * * * * * * * * 3427 3428 unwind macro c,m 3429 oct 777071 3430 endm unwind 3431 3432 * * * * * * * * * * * * * * * * * * * * * * * 3433 * 3434 * setimv macro 3435 * 3436 * * * * * * * * * * * * * * * * * * * * * * * 3437 3438 setimv macro c,m 3439 oct 777072 3440 vfd o18/#1 3441 endm setimv 3442 3443 * * * * * * * * * * * * * * * * * * * * * * * 3444 * 3445 * gotov macro 3446 * 3447 * * * * * * * * * * * * * * * * * * * * * * * 3448 3449 gotov macro c,m 3450 oct 777074 3451 vfd o18/#1 3452 endm gotov 3453 3454 3455 * * * * * * * * * * * * * * * * * * * * * * * 3456 * 3457 * gocase macro 3458 * 3459 * * * * * * * * * * * * * * * * * * * * * * * 3460 3461 gocase macro c,m 3462 oct 777075 3463 vfd o9/,o9/#1 value of tib ext 3464 vfd 18/#2 macro 01 04-18-84 09.431 multics/mcs system macros page 92 control tables op block definitions 3465 vfd 18/#3 3466 endm gocase 3467 3468 * * * * * * * * * * * * * * * * * * * * * * * 3469 * 3470 * setfld macro 3471 * 3472 * * * * * * * * * * * * * * * * * * * * * * * 3473 3474 setfld macro c,m 3475 oct 777076 3476 ind #1,1 3477 vfd 18/#2 3478 endm setfld 3479 3480 * * * * * * * * * * * * * * * * * * * * * * * 3481 * 3482 * addfld macro 3483 * 3484 * * * * * * * * * * * * * * * * * * * * * * * 3485 3486 addfld macro c,m 3487 oct 777077 3488 ind #1,1 3489 vfd 18/#2 3490 endm addfld 3491 3492 * * * * * * * * * * * * * * * * * * * * * * * 3493 * 3494 * tstfld macro 3495 * 3496 * * * * * * * * * * * * * * * * * * * * * * * 3497 3498 tstfld macro c,m 3499 oct 777100 3500 ind #1,1 3501 vfd 18/#2 3502 vfd 18/#3 3503 endm tstfld 3504 3505 * * * * * * * * * * * * * * * * * * * * * * * 3506 * 3507 * meter1 macro (single-word increment) 3508 * 3509 * * * * * * * * * * * * * * * * * * * * * * * 3510 3511 meter1 macro c,m 3512 oct 777101 3513 zero #1 3514 zero #2 macro 01 04-18-84 09.431 multics/mcs system macros page 93 control tables op block definitions 3515 endm meter1 3516 3517 * * * * * * * * * * * * * * * * * * * * * * * 3518 * 3519 * meter2 macro (double-word increment) 3520 * 3521 * * * * * * * * * * * * * * * * * * * * * * * 3522 3523 meter2 macro c,m 3524 oct 777102 3525 zero #1 3526 zero #2 3527 endm meter2 3528 3529 * * * * * * * * * * * * * * * * * * * * * * * 3530 * 3531 * meteru macro (update meter) 3532 * 3533 * * * * * * * * * * * * * * * * * * * * * * * 3534 3535 meteru macro c,m 3536 oct 777103 3537 zero #1 3538 zero #2 3539 endm meteru 3540 3541 * * * * * * * * * * * * * * * * * * * * * * * 3542 * 3543 * meterm macro (message meter) 3544 * 3545 * * * * * * * * * * * * * * * * * * * * * * * 3546 3547 meterm macro c,m 3548 oct 777104 3549 zero #1 0=input, 1=output 3550 endm meterm 3551 3552 * * * * * * * * * * * * * * * * * * * * * * * 3553 * 3554 * bldims macro (build input message) 3555 * 3556 * * * * * * * * * * * * * * * * * * * * * * * 3557 3558 bldims macro 3559 oct 777105 3560 zero #1 3561 zero #2 3562 endm bldims macro 01 04-18-84 09.431 multics/mcs system macros page 94 control tables op block definitions 3563 eject 3564 * * * * * * * * * * * * * * * * * * * * * 3565 * 3566 * chstr macro 3567 * 3568 * * * * * * * * * * * * * * * * * * * * * 3569 3570 chstr macro 3571 pmc save,off 3572 chk set 0 3573 idrp #1 3574 ife chk,0,3 3575 chk set 1 3576 chval set #1 3577 ife 1,2,2 3578 chk set 0 3579 vfd o9/chval,o9/#1 3580 idrp 3581 ife chk,1,1 3582 vfd o9/chval,o9/777 3583 ife chk,0,1 3584 vfd o9/777,o9/777 3585 pmc restore 3586 endm chstr 3587 3588 3589 * * * * * * * * * * * * * * * * * * * * * * * 3590 * 3591 * adrlst macro 3592 * 3593 * * * * * * * * * * * * * * * * * * * * * * * 3594 3595 adrlst macro c,m 3596 pmc save,off 3597 idrp #1 3598 vfd 18/#1 3599 idrp 3600 oct 777000 3601 pmc restore 3602 endm adrlst 3603 3604 punm 3605 end 1 0 is the next available location. 355map version/assembly dates gmpa 801215/123080 gmpb 801215/123080 gmpc 801215/123080 there were no warning flags in the above assembly macro 01 04-18-84 09.437 multics/mcs system macros page 95 octal symbol references by sequence no. 46724 words of memory were used by 355map for this assembly. *gefrc read none and punched 694 comdk cards SNUMB# macro, Activity # 1, REPORT CODE = 25 macro 01 04-18-84 09.428 filedit preprocessor activity report version 830218 page 1 :::: preprocessor phase i :::: examine options on $ filedit control card options specified on $ filedit card: source,object,initialize,trace :::: preprocessor phase ii :::: analyze card images going to j* 1 $ include source,object 2 $ sysld catalog=.gmac,master ".gmac" must match lodm argument 3 $ lowload 4 $ option nosetu 5 $ 355map ngmac macros 3611 $ execute 3612 $ endld "sysld" and "endld" delimit a catalog entry 3613 $ endedit logical end of filedit directive file :::: preprocessor phase iii :::: summary ****** preprocessor function completed--no fatal errors detected ****** macro 01 04-18-84 09.429 source library editor activity report version 821008 page 2 contents of new source library 1 $ 355map ngmac macros (eof) (eof) 695 $ endedit ***end of source library editor activity*** macro 01 04-18-84 09.438 object library editor activity report version 800928 page 3 contents of new object library 1 $ sysld catalog=.gmac,master ".gmac" must match lodm argument 2 $ lowload 3 $ option nosetu 4 $ object macro file for multics communications syst 09.431041884macros00 .macr. 1401 $ dkend 09.431041884macros97 1402 $ execute 1403 $ endld "sysld" and "endld" delimit a catalog entry macro 01 04-18-84 09.439 object library editor record of change activity report page 1 name-----original date---orig. edit----previous date---prev. edit----current date----curr. edit----chg.#---code---count object library editor record of changes file. macros 041884 09.431 041884 09.4 041884 09.431 041884 09.4 000 i 1398 ***end of object library editor activity*** SNUMB# macro, Activity # 2, REPORT CODE = 6 ****** system library editor- description of system loadable output on q* file. ****** element name entry point size offset reloc? master blk# #blks .gmac 63612 102 no yes 2 640 number of 64 word blocks remaining on file q* 2 (octal) the system above requires approximately 7 links. file identifier is 082582file-1 SNUMB# macro, Activity # 2, REPORT CODE = 74 <<<<<<<<<<<<<<<<<< macro 02 04-18-84 9.440 load map for catalog item .gmac page 1 origin date module entry location entry location entry location entry location entry location subprograms included in deck. $ lowload $ option nosetu 000102 04/18/84 macr .macr. 000102 range size allocated core 000000 thru 742607 742610 relocatable 000100 thru 063713 063614 26k, is the minimum memory needed to load this activity 830318 000006 locations required for load table execution program entered at 000102 end of edit for catalog item .gmac . editor version 820825 ----------------------------------------------------------- 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