mirror of
https://github.com/PDP-10/its.git
synced 2026-03-07 11:39:43 +00:00
56 lines
1.6 KiB
Plaintext
56 lines
1.6 KiB
Plaintext
<PACKAGE "SCRIPT">
|
|
|
|
<ENTRY BEGIN-SCRIPT SCRIPT UNSCRIPT OUT-ONLY?>
|
|
|
|
<SETG OUT-ONLY? <>> ;"T if only scripting output"
|
|
|
|
<DEFINE BEGIN-SCRIPT ("OPTIONAL" (FIL "WALL") (OO? ,OUT-ONLY?)
|
|
"AUX" (CH <OPEN "PRINT" .FIL>))
|
|
#DECL ((FIL) STRING (CH) <OR CHANNEL FALSE> (OO?) <OR ATOM FALSE>)
|
|
<UNSCRIPT>
|
|
<SETG OUT-ONLY? .OO?>
|
|
<COND (.CH <SCRIPT-SETUP .CH> "OPEN")>>
|
|
|
|
<DEFINE SCRIPT ("OPTIONAL" (OO? ,OUT-ONLY?) "AUX" CH)
|
|
#DECL ((CH) CHANNEL (OO?) <OR ATOM FALSE>)
|
|
<SETG OUT-ONLY? .OO?>
|
|
<COND (<GASSIGNED? SCRIPT-CHANNEL>
|
|
<SET CH ,SCRIPT-CHANNEL>
|
|
<COND (<AND <NOT <0? <1 .CH>>>
|
|
<NOT <MEMQ .CH <1 <TOP .OUTCHAN>>>>>
|
|
<SCRIPT-SETUP .CH>)
|
|
(ELSE <BEGIN-SCRIPT>)>)
|
|
(ELSE <BEGIN-SCRIPT>)>>
|
|
|
|
<DEFINE SCRIPT-SETUP (CH "AUX" (OUTCHAN <TOP .OUTCHAN>) (INCHAN <TOP .INCHAN>))
|
|
#DECL ((CH) CHANNEL (INCHAN OUTCHAN) <VECTOR LIST>)
|
|
<OR ,OUT-ONLY? <PUT .INCHAN 1 (.CH !<1 .INCHAN>)>>
|
|
<PUT .OUTCHAN 1 (.CH !<1 .OUTCHAN>)>
|
|
<SETG SCRIPT-CHANNEL .CH>
|
|
"ON">
|
|
|
|
<DEFINE UNSCRIPT ("OPTIONAL" (CLOSE? T) "AUX" CH)
|
|
#DECL ((CH) CHANNEL (CLOSE?) <OR ATOM FALSE>)
|
|
<COND (<GASSIGNED? SCRIPT-CHANNEL>
|
|
<SET CH ,SCRIPT-CHANNEL>
|
|
<SETDOWN-SCRIPT .CLOSE?>
|
|
<COND (.CLOSE?
|
|
<CLOSE .CH>
|
|
<GUNASSIGN SCRIPT-CHANNEL>
|
|
"CLOSED")
|
|
("SUSPENDED")>)>>
|
|
|
|
<DEFINE SETDOWN-SCRIPT (CLOSE? "AUX" (OUTCHAN <TOP .OUTCHAN>)
|
|
(INCHAN <TOP .INCHAN>) L)
|
|
#DECL ((CLOSE?) <OR ATOM FALSE> (OUTCHAN INCHAN) <VECTOR LIST>
|
|
(L) <LIST [REST CHANNEL]>)
|
|
<SET L <1 .OUTCHAN>>
|
|
<PUT .OUTCHAN 1 ()>
|
|
<AND .CLOSE? <MAPF <> ,CLOSE .L>>
|
|
<SET L <1 .INCHAN>>
|
|
<PUT .INCHAN 1 ()>
|
|
<AND .CLOSE? <MAPF <> ,CLOSE .L>>
|
|
"OFF">
|
|
|
|
<ENDPACKAGE>
|