Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / 20 / misc-io.mud
1 <PACKAGE "MISC-IO">
2
3 <ENTRY GNJFN NEXT-FILE>
4
5 <COND (<NOT <GASSIGNED? NEW-CHANNEL-TYPE>> <SETG NEW-CHANNEL-TYPE ,TIME>)>
6
7 <NEW-CHANNEL-TYPE GNJFN DEFAULT
8                  OPEN GNJFN-OPEN
9                  CLOSE GNJFN-CLOSE
10                  NEXT-FILE GNJFN-STEP>
11
12 <DEFINE GNJFN-OPEN (STYPE OPR NAME "AUX" JFN)
13   #DECL ((NAME) STRING)
14   <COND (<SET JFN
15               <CALL SYSOP GTJFN-S-S
16                     %<CHTYPE <ORB ,GJ-OLD ,GJ-IFG ,GJ-SHT ,GJ-FLG>
17                              FIX>
18                     .NAME>>
19          [<ANDB .JFN *777777*> .JFN])>>
20
21 <DEFINE GNJFN-STEP (CHANNEL OPER "AUX" (VEC <CHANNEL-DATA .CHANNEL>) TMP)
22   #DECL ((CHANNEL) CHANNEL (VEC) <VECTOR FIX>)
23   <COND (<SET TMP <CALL SYSOP GNJFN <2 .VEC> '(RETURN 1)>>
24          <1 .VEC .TMP>)>>
25
26 <DEFINE GNJFN-CLOSE (CHANNEL OPER "AUX" (VEC <CHANNEL-DATA .CHANNEL>))
27   #DECL ((CHANNEL) CHANNEL (VEC) <VECTOR FIX>)
28   <CALL SYSOP RLJFN <2 .VEC>>>
29
30 \f
31
32 <NEW-CHANNEL-TYPE PARSE DEFAULT
33                   OPEN PARSE-OPEN
34                   CLOSE PARSE-CLOSE>
35
36 <DEFINE VALUE? (ATM "AUX" TS)
37   #DECL ((ATM) ATOM (TS) <OR FALSE FIX STRING>)
38   <SET TS <COND (<ASSIGNED? .ATM>
39                  ..ATM)
40                 (<GASSIGNED? .ATM>
41                  ,.ATM)>>
42   <COND (<OR <NOT .TS> <TYPE? .TS FIX> <EMPTY? .TS>> 0)
43         (.TS)>>
44
45 <DEFINE PARSE-OPEN (TYP OPER NAME
46                     "OPTIONAL" (NM1 <VALUE? NM1>) (NM2 <VALUE? NM2>)
47                                (DEV <VALUE? DEV>) (SNM <VALUE? SNM>)
48                      "AUX" JFN)
49   #DECL ((NAME) STRING (NM1 NM2 DEV SNM) <OR FIX STRING> (JFN) <OR FALSE FIX>)
50   <COND (<SET JFN <CALL SYSOP GTJFN-L
51                         .NAME ,GJ-OFG
52                         %<CHTYPE <ORB ,/NULIO <LSH ,/NULIO 18>> FIX>
53                         .DEV .SNM .NM1 .NM2 0 0 0>>
54          [.JFN])>>
55
56 <DEFINE PARSE-CLOSE (CH OPER "AUX" (DATA <CHANNEL-DATA .CH>))
57   #DECL ((CH) CHANNEL (DATA) <VECTOR FIX>)
58   <CALL SYSOP RLJFN <1 .DATA>>>
59 <ENDPACKAGE>