{ Component scheduling } %constinteger packet arrived = 0 %constinteger ether ack wait = packet arrived + 1 %constinteger ether RX request = ether ack wait + ether TX procs %constinteger disc transfer = ether RX request + 1 %constinteger disc completion = disc transfer + 1 %constinteger disc sema wait = disc completion + 1 %constinteger ether TX request = disc sema wait + 1 %constinteger proc request = ether TX request + 1 %constinteger stamp flag = proc request + 1 + procs %constinteger despooler base = stamp flag %constinteger inhibit limit = ether TX request %constinteger last event = stamp flag + despoolers %constinteger schedule queue = 15 {** Must be (power of 2) - 1 **} %externalroutinespec kick (%integer target) %externalroutinespec wait for(%integer event) %externalroutinespec wait for ack(%integer port, proc) %externalroutinespec inhibit noncritical %externalroutinespec uninhibit all %externalroutinespec schedule %externalroutinespec start process(%integer where, stack) %end %of %file