Machine-Independent MDL for TOPS-20 and VAX.
[pdp10-muddle.git] / mim / development / mim / 20 / misc-io.mima
1
2 <PACKAGE "MISC-IO">
3
4 <ENTRY GNJFN NEXT-FILE>
5
6 <COND (<NOT <GASSIGNED? NEW-CHANNEL-TYPE>> <SETG NEW-CHANNEL-TYPE ,TIME>)>
7
8 <NEW-CHANNEL-TYPE GNJFN DEFAULT OPEN GNJFN-OPEN CLOSE GNJFN-CLOSE NEXT-FILE GNJFN-STEP>
9
10 #WORD *17574451615*
11                     <GFCN \1aGNJFN-OPEN ("VALUE" <OR FALSE <VECTOR FIX <PRIMTYPE WORD>>> ANY ANY STRING) STYPE4 OPR5 NAME6>
12                     <TEMP JFN7 TEMP10>
13                     <INTGO>
14                     <SYSOP 'GTJFN-S-S 8611168256 NAME6 = JFN7>
15                     <DEAD NAME6>
16                     <SET TEMP10 JFN7>
17                     <TYPE? TEMP10 <TYPE-CODE FALSE> + PHRASE9>
18                     <AND JFN7 #WORD *777777* = STACK>
19                     <PUSH JFN7>
20                     <DEAD JFN7>
21                     <UBLOCK <TYPE-CODE VECTOR> 2 = TEMP10>
22 PHRASE9
23                     <RETURN TEMP10>
24                     <DEAD TEMP10>
25                     <END \1aGNJFN-OPEN>
26
27 #WORD *3333361437*
28                     <GFCN \1aGNJFN-STEP ("VALUE" <OR FALSE <VECTOR FIX ANY>> CHANNEL ANY) CHANNEL4 OPER5>
29                     <TEMP VEC6:VECTOR TEMP11 TEMP10>
30                     <INTGO>
31                     <NTHUV CHANNEL4 5 = VEC6 (TYPE VECTOR)>
32                     <DEAD CHANNEL4>
33                     <NTHUV VEC6 2 = TEMP11>
34                     <SYSOP 'GNJFN TEMP11 (RETURN 1) = TEMP11>
35                     <SET TEMP10 TEMP11>
36                     <TYPE? TEMP10 <TYPE-CODE FALSE> + PHRASE9>
37                     <PUTUV VEC6 1 TEMP11>
38                     <DEAD TEMP11>
39                     <SET TEMP10 VEC6>
40                     <DEAD VEC6>
41 PHRASE9
42                     <RETURN TEMP10>
43                     <DEAD TEMP10>
44                     <END \1aGNJFN-STEP>
45
46 #WORD *13427271075*
47                     <GFCN \1aGNJFN-CLOSE ("VALUE" ANY CHANNEL ANY) CHANNEL4 OPER5>
48                     <TEMP VEC6>
49                     <INTGO>
50                     <NTHUV CHANNEL4 5 = VEC6 (TYPE VECTOR)>
51                     <DEAD CHANNEL4>
52                     <NTHUV VEC6 2 = VEC6>
53                     <SYSOP 'RLJFN VEC6 = VEC6>
54                     <RETURN VEC6>
55                     <DEAD VEC6>
56                     <END \1aGNJFN-CLOSE>
57
58 <NEW-CHANNEL-TYPE PARSE DEFAULT OPEN PARSE-OPEN CLOSE PARSE-CLOSE>
59
60 #WORD *20071755313*
61                     <GFCN \1aVALUE? ("VALUE" <OR FIX STRING> ATOM) ATM4>
62                     <TEMP TEMP8>
63                     <INTGO>
64                     <GEN-ASSIGNED? ATM4 - PHRASE7>
65                     <GEN-LVAL ATM4 = TEMP8>
66                     <DEAD ATM4>
67                     <JUMP + PHRASE12>
68 PHRASE7
69                     <NTHR ATM4 1 = TEMP8 (RECORD-TYPE ATOM) (BRANCH-FALSE + TAG14)>
70                     <TYPE? TEMP8 <TYPE-CODE FALSE> + TAG14>
71                     <NTHR TEMP8 1 = TEMP8 (RECORD-TYPE GBIND)>
72                     <TYPE? TEMP8 <TYPE-CODE UNBOUND> - TAG13>
73                     <DEAD TEMP8>
74 TAG14
75                     <SET TEMP8 %<> (TYPE FALSE)>
76                     <JUMP + PHRASE12>
77 TAG13
78                     <GVAL ATM4 = TEMP8>
79                     <DEAD ATM4>
80 PHRASE12
81                     <TYPE? TEMP8 <TYPE-CODE FALSE> + BOOL18>
82                     <TYPE? TEMP8 <TYPE-CODE FIX> + BOOL18>
83                     <EMPUS? TEMP8 - PHRASE17 (TYPE STRING)>
84 BOOL18
85                     <RETURN 0>
86 PHRASE17
87                     <RETURN TEMP8>
88                     <DEAD TEMP8>
89                     <END \1aVALUE?>
90
91 #WORD *25511730513*
92                     <GFCN \1aPARSE-OPEN ("VALUE" <OR FALSE <VECTOR FIX [REST FIX]>> ANY ANY STRING "OPTIONAL" <OR FIX STRING> <OR FIX STRING> <OR FIX STRING> <OR FIX STRING>) TYP9 OPER10 NAME11 NM112 NM213 DEV14 SNM15>
93                     <OPT-DISPATCH 3 %<> OPT4 OPT5 OPT6 OPT7 OPT8>
94 OPT4
95                     <PUSH #T$UNBOUND 0>
96 OPT5
97                     <PUSH #T$UNBOUND 0>
98 OPT6
99                     <PUSH #T$UNBOUND 0>
100 OPT7
101                     <PUSH #T$UNBOUND 0>
102 OPT8
103                     <TEMP JFN16 TEMP31>
104                     <INTGO>
105                     <TYPE? NM112 <TYPE-CODE UNBOUND> - TAG17>
106                     <FRAME '\1aVALUE?>
107                     <PUSH 'NM1>
108                     <CALL '\1aVALUE? 1 = NM112>
109 TAG17
110                     <TYPE? NM213 <TYPE-CODE UNBOUND> - TAG20>
111                     <FRAME '\1aVALUE?>
112                     <PUSH 'NM2>
113                     <CALL '\1aVALUE? 1 = NM213>
114 TAG20
115                     <TYPE? DEV14 <TYPE-CODE UNBOUND> - TAG23>
116                     <FRAME '\1aVALUE?>
117                     <PUSH 'DEV>
118                     <CALL '\1aVALUE? 1 = DEV14>
119 TAG23
120                     <TYPE? SNM15 <TYPE-CODE UNBOUND> - TAG26>
121                     <FRAME '\1aVALUE?>
122                     <PUSH 'SNM>
123                     <CALL '\1aVALUE? 1 = SNM15>
124 TAG26
125                     <SYSOP 'GTJFN-L NAME11 8388608 34359607295 DEV14 SNM15 NM112 NM213 0 0 0 = JFN16>
126                     <DEAD NAME11 DEV14 SNM15 NM112 NM213>
127                     <SET TEMP31 JFN16>
128                     <TYPE? TEMP31 <TYPE-CODE FALSE> + PHRASE30>
129                     <PUSH JFN16>
130                     <DEAD JFN16>
131                     <UBLOCK <TYPE-CODE VECTOR> 1 = TEMP31>
132 PHRASE30
133                     <RETURN TEMP31>
134                     <DEAD TEMP31>
135                     <END \1aPARSE-OPEN>
136
137 #WORD *32655137455*
138                     <GFCN \1aPARSE-CLOSE ("VALUE" ANY CHANNEL ANY) CH4 OPER5>
139                     <TEMP DATA6>
140                     <INTGO>
141                     <NTHUV CH4 5 = DATA6 (TYPE VECTOR)>
142                     <DEAD CH4>
143                     <NTHUV DATA6 1 = DATA6 (TYPE FIX)>
144                     <SYSOP 'RLJFN DATA6 = DATA6>
145                     <RETURN DATA6>
146                     <DEAD DATA6>
147                     <END \1aPARSE-CLOSE>
148
149 <ENDPACKAGE>