summaryrefslogtreecommitdiff
path: root/web/spiderweb/src/README.DOS
diff options
context:
space:
mode:
Diffstat (limited to 'web/spiderweb/src/README.DOS')
-rw-r--r--web/spiderweb/src/README.DOS56
1 files changed, 56 insertions, 0 deletions
diff --git a/web/spiderweb/src/README.DOS b/web/spiderweb/src/README.DOS
new file mode 100644
index 0000000000..596e6c5081
--- /dev/null
+++ b/web/spiderweb/src/README.DOS
@@ -0,0 +1,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.
+
+
+