1
0
mirror of https://github.com/PDP-10/its.git synced 2026-04-10 07:05:44 +00:00
Files
PDP-10.its/src/rrs/subsys.mud
Lars Brinkhoff 88f5a7262c Muddle library files courtesy of Rick Shiffman.
Files are from RRS; AR5 MUDDLE on ToTS tape 9006256.  Some timestamps
are from DM _TAPE files.
2020-12-10 07:41:09 +01:00

57 lines
1.8 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.
<PACKAGE "SUBSYS">
<ENTRY SUBSYS CONTINUE KILLFORK>
<USE "JSYS">
<BLOCK (!.OBLIST <GET J OBLIST>)>
<DEFINE SUBSYS (
"OPTIONAL" (FILENAME "<SYSTEM>EXEC.EXE")
"AUX" JFN CHN A B C D FH)
#DECL ((FILENAME) STRING (CHN) <OR CHANNEL FALSE>
(A) <VECTOR [2 <PRIMTYPE WORD>]>
(VALUE B C D JFN FH) <PRIMTYPE WORD>)
<SET B 262144> ;"DO A SHORT GET JFN"
<COND (<N=? <2 <SET A <JSYS ,GTJFN .B <ADR .FILENAME> 0 1>>> 0>
<SET JFN <ANDB <1 .A> 262143>>)
(T <ERROR SUBSYS GTJFN-FAILED!-ERRORS <1 .A>>)>
<COND (<N=? <2 <SET A <JSYS ,CFORK 0 0 0 1>>> 0> <SET FH <1 .A>>)
(T <ERROR SUBSYS CFORK-FAILED!-ERRORS <1 .A>>)>
<SET C <PUTBITS #WORD *000000000000* <BITS 18 18> .FH>>
<SET C <PUTBITS .C <BITS 18 0> .JFN>>
<JSYS ,GET-JSYS .C 0 0 1>
<JSYS ,EPCAP .FH -1 -1 3>
<JSYS ,SFRKV .FH 0 0 1>
<JSYS ,WFORK .FH 0 0 1>
.FH>
<DEFINE CONTINUE (FKH "AUX" FSW FPC T1 T2)
#DECL ((FKH FSW FPC T1 T2) <PRIMTYPE WORD>
(VALUE) <OR <PRIMTYPE WORD> FALSE>)
<SET FSW <1 <JSYS ,RFSTS .FKH 0 0 1>>>
<SET T1 <GETBITS .FSW <BITS 18 18>>>
<COND (<==? .T1 #WORD *000000777777*>
<CHTYPE ("FORK DOES'NT EXIST" .FKH) FALSE>)
(T
<SET FPC <1 <JSYS ,RFSTS .FKH 0 0 2>>>
<COND (<==? <ANDB .T1 #WORD *000000000007*> #WORD *000000000000*>
<CHTYPE ("FORK IS RUNNING" .FKH) FALSE>)
(T
<JSYS ,SFORK .FKH .FPC 0 1>
<JSYS ,WFORK .FKH 0 0 1>
.FKH)>)>>
<DEFINE KILLFORK (FKH "AUX" FSW T1)
#DECL ((VALUE) <OR <PRIMTYPE WORD> FALSE> (FKH FSW T1) <PRIMTYPE WORD>)
<SET FSW <1 <JSYS ,RFSTS .FKH 0 0 1>>>
<SET T1 <GETBITS .FSW <BITS 18 18>>>
<COND (<==? .T1 #WORD *000000777777*>
<CHTYPE ("INVALID FORK HANDLE" .FKH) FALSE>)
(T <JSYS ,KFORK .FKH 0 0 1> .FKH)>>
<ENDBLOCK>
<ENDPACKAGE>