Files
Digital-Research-Source-Code/MPM OPERATING SYSTEMS/MPM I/MPM I SOURCE/07/stpsp.plm
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

1 line
2.0 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$title('MP/M 1.1 Stop Spooler Program')
stopsplr:
do;
$include (copyrt.lit)
/*
Revised:
19 Jan 80 by Thomas Rolander
*/
/*
Common Literals
*/
declare true literally '0FFFFH';
declare false literally '0';
declare forever literally 'while true';
declare boolean literally 'byte';
declare start label;
declare jmp$to$start structure (
jmp$instr byte,
jmp$location address ) data (
0c3h,
.start-3);
declare fcb (1) byte external;
mon1:
procedure (func,info) external;
declare func byte;
declare info address;
end mon1;
mon2:
procedure (func,info) byte external;
declare func byte;
declare info address;
end mon2;
print$console$buffer:
procedure (buff$adr);
declare buff$adr address;
call mon1 (9,buff$adr);
end print$console$buffer;
system$reset:
procedure;
call mon1 (0,0);
end system$reset;
console$number:
procedure byte;
return mon2 (153,0);
end console$number;
abort$process:
procedure (abort$pb$adr) byte;
declare abort$pb$adr address;
return mon2 (157,abort$pb$adr);
end abort$process;
declare abort$param$block structure (
pdadr address,
param address,
pname (8) byte,
console byte ) initial (
0,00ffh,'SPOOL ',0);
declare last$dseg$byte byte
initial (0);
/*
stopsplr:
*/
start:
if fcb(1) = ' ' then
do;
abort$param$block.console = console$number;
end;
else
do;
if (fcb(1):=fcb(1)-'0') > 9 then
do;
fcb(1) = fcb(1) + '0' - 'A' + 10;
end;
abort$param$block.console = fcb(1);
end;
if abort$process (.abort$param$block) = 0 then
do;
do while abort$process (.abort$param$block) = 0;
;
end;
call print$console$buffer (.(
'Spooler aborted','$'));
end;
else
do;
call print$console$buffer (.(
'Spooler not running','$'));
end;
call system$reset;
end stopsplr;