mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 08:24:18 +00:00
102 lines
2.6 KiB
Plaintext
102 lines
2.6 KiB
Plaintext
$title('MP/M-86 2.0 Status Process - Transient')
|
||
$compact
|
||
/* want 32 bit pointers */
|
||
status:
|
||
do;
|
||
|
||
$include (copyrt.lit)
|
||
|
||
/* VAX generation commands
|
||
|
||
asm86 mcd.a86
|
||
plm86 stscmd.plm 'p1' 'p2' 'p3' optimize(3) debug
|
||
link86 mcd.obj,stscmd.obj to stscmd.lnk
|
||
loc86 stscmd.lnk od(sm(dats,code,data,stack,const)) -
|
||
ad(sm(dats(0),code(0))) ss(stack(+32))
|
||
h86 stscmd
|
||
|
||
then on a micro
|
||
|
||
vax stscmd.h86
|
||
gencmd stscmd
|
||
ren mpmstat.cmd=stscmd.cmd
|
||
|
||
Notes:
|
||
Stack is expanded for interrupts. Const(ants) come
|
||
last to force hex generation
|
||
|
||
*/
|
||
|
||
|
||
$include (stscom.plm)
|
||
|
||
dcl cpmversion lit '30h'; /* BDOS 3.0 or later */
|
||
dcl mpmproduct lit '11h'; /* MP/M-86 */
|
||
|
||
plmstart: procedure public;
|
||
dcl (temp,repeat) boolean,
|
||
i byte,
|
||
ver address;
|
||
|
||
dcl vers$str$pointer pointer;
|
||
dcl vers$str$ptr structure (
|
||
offset word,
|
||
segment word) at (@vers$str$pointer);
|
||
|
||
ver = get$version;
|
||
if low(ver) <> cpmversion or high(ver) <> mpmproduct then
|
||
do;
|
||
call print$buffer (.('Requires MP/M-86 2.0','$'));
|
||
call reboot; /* use CP/M exit */
|
||
end;
|
||
else
|
||
do;
|
||
sysdat$pointer = get$sysdat;
|
||
ccb$ptr.segment,flag$ptr.segment,md$ptr.segment,ms$ptr.segment,
|
||
sat$ptr.segment,qd$ptr.segment,pd$ptr.segment, sysdat$ptr.segment
|
||
= sysdat$ptr.segment;
|
||
|
||
repeat = false;
|
||
|
||
do i = 1 to buff(0);
|
||
if buff(i) = 'p' or buff(i) = 'P' then
|
||
repeat = true;
|
||
end;
|
||
|
||
temp = true; /* show display at least once */
|
||
do while repeat or temp;
|
||
call crlf;
|
||
vers$str$ptr.offset = sd.version + 3; /* skip cr, lf's */
|
||
vers$str$ptr.segment = sd.supmod(1);
|
||
call display$text(0,vers$str$pointer);
|
||
call print$buffer (.(
|
||
'****** Status Display - Values Shown In Hexadecimal *****',
|
||
cr,lf,lf,'$'));
|
||
|
||
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$ccb(.('Consoles:$'),0,sd$byte(ncondev));
|
||
call display$ccb(.('Printers:$'),sd$byte(ncondev), sd$byte(nciodev));
|
||
call display$memory;
|
||
if repeat then
|
||
do;
|
||
call print$buffer(.(cr,lf,'Hit a Key to Continue,',
|
||
' Control C to Stop $'));
|
||
call crlf;
|
||
i = conin;
|
||
end;
|
||
temp = false;
|
||
end;
|
||
end;
|
||
call terminate;
|
||
end plmstart;
|
||
|
||
end status;
|
||
|