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