summaryrefslogtreecommitdiff
path: root/dviware/crudetype/version3/nasty.tex
diff options
context:
space:
mode:
Diffstat (limited to 'dviware/crudetype/version3/nasty.tex')
-rw-r--r--dviware/crudetype/version3/nasty.tex167
1 files changed, 167 insertions, 0 deletions
diff --git a/dviware/crudetype/version3/nasty.tex b/dviware/crudetype/version3/nasty.tex
new file mode 100644
index 0000000000..9b9df6c5bb
--- /dev/null
+++ b/dviware/crudetype/version3/nasty.tex
@@ -0,0 +1,167 @@
+\input webmac
+
+% NASTY.TEX. Designed to catch bugs in Crudetype device driver
+% Here is TeX material that gets inserted after \input webmac
+
+\message{!! For lineprinter, magnify me to 115 percent !!}
+
+\def\hang{\hangindent 3em\indent\ignorespaces}
+\font\ninerm=cmr9
+\let\mc=\ninerm % medium caps for names like PASCAL
+\def\PASCAL{{\mc PASCAL}}
+\def\pb{$\.|\ldots\.|$} % pascal brackets (|...|)
+\def\v{\.{\char'174}} % vertical (|) in typewriter font
+\mathchardef\BA="3224 % double arrow
+\def\({} % kludge for alphabetizing certain module names
+
+\def\title{TANGLE}
+\def\contentspagenumber{0}
+\def\topofcontents{\null\vfill
+ \titlefalse % include headline on the contents page
+ \def\rheader{\mainfont Appendix E\hfil \contentspagenumber}
+ \centerline{\titlefont The {\ttitlefont TANGLE} processor}
+ \vskip 15pt
+ \centerline{(Version 2.5)}
+ \vfill}
+\pageno=\contentspagenumber \advance\pageno by 1
+\def\title{TANGLE changes for \AA Vax/VMS}
+
+
+\N199\*. System-dependent \AA changes.
+Here are the remaining changes to the program
+that are necessary to make \.{TANGLE} work on Vax/VMS.
+
+
+\fi
+
+\M1. \P$\X1:\X\S$\6
+$\\{store\_two\_bytes}(\O{150000}+\\{module\_count})$;\C{$\O{150000}=\O{320}%
+\ast\O{400}$}\par
+\fi
+
+\M200\*. This variable is for speeding up the output routine.
+
+\Y\P$\4\X9:Globals in the outer block\X\mathrel{+}\S$\6
+\4\\{out\_temp\_buffer}: \37\&{packed} \37\&{array} $[1\to\\{out\_buf\_size}]$ %
+\1\&{of}\5
+\\{char};\2\par
+\fi
+
+\M201\*. On Vax/VMS we need the following special definitions, types, variables
+and procedures to be able to get the file name from the command line,
+or to prompt for them.
+
+\Y\P\D \37$\\{VAX\_volatile}\S\={volatile}$\par
+\P\D \37$\\{VAX\_lib\_get\_foreign}\S\={\ lib\$get\_foreign}$\par
+\P\D \37$\\{VAX\_length}\S\={length\ }$\par
+\fi
+
+\M143. Inputting the next token.
+As stated above, \.{TANGLE}'s most interesting input procedure is the
+\\{get\_next} routine that inputs the next token. However, the procedure
+isn't especially difficult.
+
+Another global variable, \\{scanning\_hex}, is \\{true} during the time that
+the letters \.A through \.F should be treated as if they were digits.
+
+\Y\P$\4\X9:Globals in the outer block\X\mathrel{+}\S$\6
+\4\\{cur\_module}: \37\\{name\_pointer};\C{name of module just scanned}\6
+\4\\{scanning\_hex}: \37\\{boolean};\C{are we scanning a hexadecimal constant?}%
+\par
+\fi
+
+\M144. \P$\X10:Set initial values\X\mathrel{+}\S$\6
+$\\{scanning\_hex}\K\\{false}$;\par
+\fi
+
+\M146. \P$\X146:Go to \\{found} if \|c is a hexadecimal digit, otherwise set $%
+\\{scanning\_hex}\K\\{false}$\X\S$\6
+\&{if} $((\|c\G\.{"0"})\W(\|c\L\.{"9"}))\V((\|c\G\.{"A"})\W(\|c\L\.{"F"}))$ \1%
+\&{then}\5
+\&{goto} \37\\{found}\6
+\4\&{else} $\\{scanning\_hex}\K\\{false}$\2\par
+\U section~145.\fi
+
+\def \<{\lbrack} \def \>{\rbrack}
+\def \nl{\hfill\break}
+\font\stt=cmtt9
+\font\rr=cmr10
+\def\cstok#1{\leavevmode\thinspace\hbox{\vrule\vtop{\vbox{\hrule\kern1pt
+ \hbox{\vphantom{\stt/}\thinspace{\stt#1}\thinspace}}
+ \kern1pt\hrule}\vrule}\thinspace} % control sequence token
+
+
+
+% %\def \boxit#1{\vbox{\hrule\hbox{\vrule\kern3pt
+% % \vbox{\kern3pt#1\kern3pt}\kern3pt\vrule}\hrule}}
+% \rr
+\vskip 0.5in
+\centerline{EXAM MARKING PROGRAM}
+
+1. When the program types a question mark, it is asking you for input.
+All input must be terminated by typing the \cstok{RETURN} key.
+
+2. Whenever you do not know what to do next ALWAYS start by typing a question
+mark, or {\tt H}
+ (stands for HELP) (followed by \cstok{RETURN}). This should give a help
+message.
+
+\vskip 0.5in
+ \centerline{Method of use}
+\vskip 0.4in
+
+ Whenever the program types a question mark, it is asking you for input.
+All input must be terminated by typing the \cstok{RETURN} key. On some
+terminals this is labelled \cstok{ENTER}, on others it has a bent arrow. You
+cannot type ahead. You have to type 1 line at a time \& wait for the program
+to digest it. This line-at-a-time mode of operation is very old fashioned and
+clumsy, but I did not think it would be practical to attempt anything better
+with the present combination of a slow VAX, and VMS, and bug-eaten network.
+
+
+
+\N206\*. Index.
+
+
+\ch 1\*, 2\*, 3\*, 4\*, 7\*, 12\*, 20\*, 21\*, 22\*, 26\*, 27\*, 28\*, 38\*, 97%
+\*, 179\*, 180\*, 182\*, 187\*, 199\*, 200\*, 201\*, 202\*, 203\*, 204\*, 205%
+\*, 206\*.
+\inx
+\:\.{ Nested named module }, 189.
+\:\.{\AT!d is ignored in PASCAL text}, 167.
+\:\.{\AT!f is ignored in PASCAL text}, 167.
+\:\.{\AT!p is ignored in PASCAL text}, 167.
+\:\|{a}, \[74], \[87], \[165].
+\:\\{abs}, 103, 157.
+\:\\{accumulator}, \[157], 158, 159.
+\:\\{add\_in}, \[157], 158.
+\:\.{Ambiguous prefix}, 69.
+\:\\{and\_sign}, \[15], 76, 114.
+\:\\{app}, \[99], 101, 102, 103, 111.
+\:\\{app\_repl}, \[93], 165, 166, 167, 168, 169.
+\:\\{app\_val}, \[99], 103, 111.
+\:{ASCII code}, 11, 72.
+\:\\{ASCII\_code}, \[11], 13, 27\*, 28\*, 38\*, 50, 65, 94, 95, 100, 126, 139,
+141, 165, 198.
+\:\\{ask}, \[203\*], 205\*.
+\:\|{b}, \[87], \[97\*], \[165].
+\:\.{bad character in input...}, 197.
+\:\\{bad\_case}, \[107], 109, 110.
+\:\\{bal}, \[87], 93, \[141], 142, \[165], 166.
+\:\\{banner}, \[1\*], 182\*.
+\:\&{begin}, 3\*.
+\:\\{begin\_comment}, \[72], 76, 121, 139, 147, 196.
+\:\\{begin\_pascal}, \[139], 156, 158, 167, 175.
+\:\\{boolean}, 28\*, 29, 124, 127, 143, 179\*, 193, 194, 203\*.
+\:\\{brace\_level}, \[82], 83, 98, 121, 196.
+\:\\{cur\_module}, \[143], 151, 167, 175.
+\:\\{cur\_name}, 78, \[79], 83, 84, 85.
+\:\\{cur\_repl}, 78, \[79], 80, 83, 84, 85.
+\:\\{cur\_repl\_text}, \[164], 165, 170, 175, 178.
+\:\\{cur\_state}, \[79], 84, 85.
+\:\\{cur\_val}, \[86], 87, 89, 116, 119, 121, 196.
+
+
+
+
+\par\vfil\end