summaryrefslogtreecommitdiff
path: root/web/spiderweb/src/README.DOS
blob: 596e6c50812bbbfbc5619627ea176993ef7da233 (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
How to bring up Spider on MS-DOS (adapted from instructions kindly
provided by David Ness).  Assumes Microsoft C 5.1 and MS overlay
linker V 3.65.

1. Get \MASTER\PATHOPEN.* COMMON.*

2. Get TANGLE.C from C.ZIP

3. Compile with 'CL /AH TANGLE.C COMMON.C PATHOPEN.C'.  (If your
   compiler does not define the symbol MSDOS automatically, you should
   use 'CL /DMSDOS' or whatever the appropriate incantation is.)  This will
   produce lots of warnings because the code has labels after '#endif'.
   This produces your official C tangle, so perhaps 
   'REN TANGLE.EXE CTANGLE.EXE' is in order.

4. Get TANGLE.C from AWK.ZIP, and
   'CL /AH TANGLE.C COMMON.OBJ PATHOPEN.OBJ' followed by
   'REN TANGLE.EXE ATANGLE.EXE' should give you an Awk tangle.

5. Not that the copies of C TANGLE and Awk TANGLE have been produced
   from the bootstrap TANGLE.C, not from TANGLE.WEB.  Our next task
   is to produce good TANGLEs from the WEB.  This will require SPIDER,
   and SPIDER REQUIRES Awk.

6. First we can regenerate PATHOPEN.C and PATHOPEN.H from PATHOPEN.WEB
   with 'CTANGLE PATHOPEN'.  This is done just for consistency.

7. Now begin by creating SPIDER.AWK from SPIDER.WEB: 'ATANGLE SPIDER'.

8. Run Awk on SPIDER, giving it C.SPI: 'AWK -F SPIDER.AWK C.SPI'.
   This produces OUTTOKS.WEB needed for TANGLE.WEB and GRAMMAR.WEB and
   SCRAPS.WEB needed for WEAVE.

9. However, there is one problem. As is, the function `translate()'
   generates a code segment too big to handle.  By wild good luck, if
   the appropriate calls to the `reduce()' function are replaced with
   calls on `squash()', then it just fits.  (SPIDER doesn't generate
   calls on `squash()', although `squash()' is still defined in
   WEAVE.)

   DNN.WEB will generate an Awk script that does this reduction.
   For MKS Awk this is done with
	ATANGLE DNN.WEB
	AWK -F DNN GRAMMAR.WEB
	COPY OUT.TMP GRAMMAR.WEB

10.Then 'CTANGLE WEAVE' to produce WEAVE.C

11.And finally 'CL /AH WEAVE.C COMMON.OBJ PATHOPEN.OBJ'
   and 'REN WEAVE.EXE CWEAVE.EXE'.

12.We can generate AWEAVE (for Awk) by starting again at step 8 and
   substituting `A' for `C' where appropriate.