summaryrefslogtreecommitdiff
path: root/system/dos/1986/src/gen.dos
blob: 54932729b0f76e7e7d3f936fd520f30cecbe83ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
(* 28.02.88, DOS Inserter HD/FD *) 
TASK VAR fd, hd ; 
IF NOT exists ("files.dos") THEN fetch ("files.dos", archive) FI ; 
IF highest entry (ALL "files.dos" - all) > 0 
   THEN fetch (ALL "files.dos" - all, archive) ; 
FI ; 
forget ("files.dos", quiet) ; 
forget ("gen.dos", quiet) ; 
release (archive) ; 
ins ("eumel-ebcdic + sub") ; 
ins ("open") ; 
ins ("name conversion") ; 
begin ("FD", PROC fd start, fd) ; 
begin ("HD", PROC hd start, hd) ; 
globalmanager ; 
 
PROC ins (TEXT CONST name) : 
 insert (name) ; 
 forget (name, quiet) 
ENDPROC ins ; 
 
PROC hd start : 
 command dialogue (FALSE) ; 
 
 fetch ("eu disk descriptor.hd") ; 
 erase ("eu disk descriptor.hd") ; 
 fetch ("disk descriptor.dos.hd") ; 
 erase ("disk descriptor.dos.hd") ; 
 fetch ("cluster") ; 
 fetch ("block i/o") ; 
 fetch ("fat and dir.dos.hd") ; 
 erase ("fat and dir.dos.hd") ; 
 fetch ("fetch") ; 
 fetch ("save") ; 
 fetch ("disk manager") ; 
 fetch ("manager/M.dos.hd") ; 
 erase ("manager/M.dos.hd") ;  (* fetch beendet signalieren *) 
 
 IF NOT exists ("manager/M.dos.fd", father) (* FD auch fertig ? *)
    THEN erase ("block i/o") ; 
         erase ("cluster") ; 
         erase ("fetch") ; 
         erase ("save") ; 
         erase ("disk manager")
 FI ; 
 
 ins ("eu disk descriptor.hd") ; 
 ins ("disk descriptor.dos.hd") ; 
 ins ("cluster") ; 
 ins ("block i/o") ; 
 ins ("fat and dir.dos.hd") ; 
 ins ("fetch") ; 
 ins ("save") ; 
 ins ("disk manager") ; 
 ins ("manager/M.dos.hd") ; 
 do ("dos manager") 
ENDPROC hd start ; 
 
PROC fd start : 
 disablestop ;
 command dialogue (FALSE) ; 
 fetch ("table thes.dos") ; 
 erase ("table thes.dos") ; 
 fetch (ALL "table thes.dos") ; 
 erase (ALL "table thes.dos") ; 
 fetch ("eu disk descriptor.fd") ; 
 erase ("eu disk descriptor.fd") ; 
 fetch ("disk descriptor.dos.fd") ; 
 erase ("disk descriptor.dos.fd") ; 
 fetch ("cluster") ; 
 fetch ("block i/o") ; 
 fetch ("fat and dir.dos.fd") ; 
 erase ("fat and dir.dos.fd") ; 
 fetch ("fetch") ; 
 fetch ("save") ; 
 fetch ("disk manager") ; 
 fetch ("manager/M.dos.fd") ; 
 erase ("manager/M.dos.fd") ;  (* fetch beendet signalieren *) 
 
 IF NOT exists ("manager/M.dos.hd", father) (* HD auch fertig ? *)
    THEN erase ("block i/o") ;
         erase ("cluster") ; 
         erase ("fetch") ; 
         erase ("save") ; 
         erase ("disk manager")
 FI ; 
 
 ins ("eu disk descriptor.fd") ; 
 ins ("disk descriptor.dos.fd") ; 
 ins ("cluster") ; 
 ins ("block i/o") ; 
 ins ("fat and dir.dos.fd") ; 
 ins ("fetch") ; 
 ins ("save") ; 
 ins ("disk manager") ; 
 ins ("manager/M.dos.fd") ; 
 do ("dos manager") 
ENDPROC fd start ;