$title('MP/M II V2.0 Status Process - Banked Portion') status: do; $include (copyrt.lit) /* Revised: 14 Sept 81 by Thomas Rolander */ $include (dpgos.lit) $include (proces.lit) $include (queue.lit) $include (memmgr.lit) $include (xdos.lit) declare restarts literally '0C7C7H,0C7C7H,0C7C7H,0C7C7H, 0C7C7H,0C7C7H,0C7C7H,0C7C7H, 0C7C7H,0C7C7H,0C7C7H,0C7C7H, 0C7C7H,0C7C7H,0C7C7H,0C7C7H, 0C7C7H,0C7C7H,0C7C7H'; /* Status Process Data Segment */ declare os address public data (0); declare status$stack$pointer address data (.status$stk+38); declare nrs$name (8) byte data ( 'Mpmstat '); declare status$pd$adr address; declare status$pd based status$pd$adr process$descriptor; declare status$stk (20) address initial (restarts,.status); declare status$cqcb$adr address; declare status$cqcb based status$cqcb$adr structure ( cqueue, buf (2) byte ); declare status$uqcb userqcbhead public initial (0,.field); declare field (2) byte; declare console byte at (.field(1)); $include (mscmn.plm) declare last$dseg$byte byte initial (0); /* status: The purpose of the status process is to display the status of the MP/M II V2.0 operating system. Entry Conditions: None Exit Conditions: None */ status: procedure public; declare ret byte; status$pd$adr = os + 2; status$cqcb$adr = status$pd$adr + 52; status$uqcb.pointer = .status$cqcb; ret = xdos (make$queue,.status$cqcb); call setup; do forever; ret = xdos (read$queue,.status$uqcb); rlrpd.console = console; call crlf; call crlf; call display$text (0, .('****** MP/M II V2.0 Status Display ******','$')); call display$config; call display$ready; call display$DQ; call display$NQ; call display$delay; call display$poll; call display$flag$wait; call display$flag$set; call display$queues; call display$consoles; call display$printers; call display$mem$seg; ret = xdos (detach,0); ret = xdos (detach$list,0); end; /* forever */ end status; end status;