1. \ Forth to HTML converter
2. \ Brad Eckert
3. \ Revision 2. See bottom for revision history.
4.
5. \ This ANS Forth program is public domain. It translates ANS Forth to colorized
6. \ HTML. Hyperlinks to the ANS Forth draft standard are inserted for all ANS
7. \ standard words. Hyperlinks to user definitions are included.
8.
9. \ Usage: HTML FileName Generates HTML file from Forth source
10. \ output file is Filename with .HTM extension
11. \ Q [forth code] Outputs HTML for 1 line to screen
12.
13. \ Q is used for debugging. You can use "linenum ?" to show the line number if an
14. \ ABORT occurs. The HTML is about 10 times as big as the Forth source because of
15. \ all the links, color changes and whitespace.
16.
17. \ INCLUDEd files produce corresponding HTML pages. Most browsers get severely
18. \ bogged down with large files. If you're converting a large Forth program to
19. \ HTML, try to keep the source files under 500 lines each by splitting long
20. \ source into multiple INCLUDE files. HTML pages are best viewed with Internet
21. \ Explorer or Netscape 4.7. Netscape 6 is more sluggish with large files.
|
1. 0 [IF]
2. Forth to HTML converter
3.
4. Written by Brad Eckert
5. Modifications by Dirk Busch
6.
7. Revision 3. See bottom for revision history.
8.
9. This ANS Forth program is public domain. It translates ANS Forth to colorized
10. HTML. Hyperlinks to the ANS Forth draft standard are inserted for all ANS
11. standard words. Hyperlinks to user definitions are included.
12.
13. Usage: HTML FileName Generates HTML file from Forth source
14. output file is Filename with .HTM extension
15. Q [forth code] Outputs HTML for 1 line to screen
16.
17. Q is used for debugging. You can use "linenum ?" to show the line number if an
18. ABORT occurs. The HTML is about 10 times as big as the Forth source because of
19. all the links, color changes and whitespace.
20.
21. INCLUDEd files produce corresponding HTML pages. Most browsers get severely
22. bogged down with large files. If you're converting a large Forth program to
23. HTML, try to keep the source files under 500 lines each by splitting long
24. source into multiple INCLUDE files. HTML pages are best viewed with Internet
25. Explorer or Netscape 4.7. Netscape 6 is more sluggish with large files.
26.
27. When you INCLUDE this file some redefinition complaints will occur. That's
28. okay since you won't be loading an application on top of this.
29. [THEN]
|
22.
23. ONLY FORTH ALSO DEFINITIONS
24.
|
30.
31. ONLY FORTH ALSO DEFINITIONS
32.
|
|
33. \ ------------------------------------------------------------------------------
34. \ Configuration:
35.
36. \ Hyperlink to the original file, or not.
37. \ Output at the TOP of the HTML-File
38.
39. 1 VALUE LINK-TO-ORG-FILE
40.
41.
42. \ Copyright string.
43. \ Output at the BOTTOM of the HTML-File
44.
45. \ create COPYRIGHT ," "
46. create COPYRIGHT ," Copyright © 2003-2004 by Dirk Busch"
47.
48.
|
25. \ path to the ANS-Files
|
49. \ path to the ANS-Files
|
|
50.
|
26. \ create dpans-path ," ./"
|
51. \ create dpans-path ," ./"
|
27. create dpans-path ," C:\Programme\Win32For\V609xx - CVS\htm\"
|
52. create DPANS-PATH ," .\win32forth-defs\"
53.
54. \ ------------------------------------------------------------------------------
|
28.
|
55.
|
29. : undefined ( <name> -- f ) BL WORD FIND NIP 0= ;
30. undefined +PLACE [IF] : +PLACE 2DUP 2>R COUNT CHARS + SWAP MOVE 2R> C+! ; [THEN]
31. undefined PLACE [IF] : PLACE 0 OVER C! +PLACE ; [THEN]
32. undefined FDROP [IF] : FDROP ; [THEN]
33. undefined >FLOAT [IF] : >FLOAT DROP C@ [CHAR] 0 [CHAR] 9 1+ WITHIN ; [THEN]
|
56.
57. : [undef] ( <name> -- f ) BL WORD FIND NIP 0= ;
58. [undef] +PLACE [IF] : +PLACE 2DUP 2>R COUNT CHARS + SWAP MOVE 2R> C+! ; [THEN]
59. [undef] PLACE [IF] : PLACE 0 OVER C! +PLACE ; [THEN]
60. [undef] FDROP [IF] : FDROP ; [THEN]
61. [undef] >FLOAT [IF] : >FLOAT DROP C@ [CHAR] 0 [CHAR] 9 1+ WITHIN ; [THEN]
|
34.
35. 0 VALUE outf \ output to file
36. 1 VALUE screen-only \ screen is for testing
37. : werr abort" Error writing file" ;
38. : out screen-only IF type ELSE outf WRITE-FILE werr THEN ;
39. : outln screen-only IF type cr ELSE outf WRITE-LINE werr THEN ;
40.
41. WORDLIST CONSTANT hyperlinks
42. VARIABLE attrib
43. : /a ( -- ) attrib @ IF S" </a>" out THEN 0 attrib ! ;
|
62.
63. 0 VALUE outf \ output to file
64. 1 VALUE screen-only \ screen is for testing
65. : werr abort" Error writing file" ;
66. : out screen-only IF type ELSE outf WRITE-FILE werr THEN ;
67. : outln screen-only IF type cr ELSE outf WRITE-LINE werr THEN ;
68.
69. WORDLIST CONSTANT hyperlinks
70. VARIABLE attrib
71. : /a ( -- ) attrib @ IF S" </a>" out THEN 0 attrib ! ;
|
44. : ,$ ( a len -- ) DUP C, BOUNDS ?DO I C@ C, LOOP ; \ text to dictionary
45. : text ( <text> -- ) -1 WORD COUNT -TRAILING ,$ ;
|
72. : (,$) ( a len -- ) DUP C, BOUNDS ?DO I C@ C, LOOP ; \ text to dictionary
73. : text ( <text> -- ) -1 WORD COUNT -TRAILING (,$) ;
|
46. : line ( a line# -- ) 0 ?DO COUNT + LOOP COUNT out ; \ output one string
47. : boiler ( addr -- ) BEGIN COUNT DUP WHILE 2DUP + >R outln R> REPEAT 2DROP ;
48.
49. CREATE misctext \ various attribute strings
50. text <a style="text-decoration:none" href=
51. text <a name="
52. text ">
53. text <a href="#
54. text " style="text-decoration:none">
55. text <font color="#
|
74. : line ( a line# -- ) 0 ?DO COUNT + LOOP COUNT out ; \ output one string
75. : boiler ( addr -- ) BEGIN COUNT DUP WHILE 2DUP + >R outln R> REPEAT 2DROP ;
76.
77. CREATE misctext \ various attribute strings
78. text <a style="text-decoration:none" href=
79. text <a name="
80. text ">
81. text <a href="#
82. text " style="text-decoration:none">
83. text <font color="#
|
56. text <font color="#000000"><hr><h1>
57. text </h1><hr>
|
84. text <font color="#000000"><center><hr><h1>
85. text </h1><hr></center>
|
58. text "
|
86. text "
|
|
87. text <a href="
88. text </a>
|
59. 0 c,
60.
61. VARIABLE color \ current color
|
89. 0 c,
90.
91. VARIABLE color \ current color
|
|
92. VARIABLE active-color \ active color
|
62.
|
93.
|
63. : fontcolor ( color -- ) BASE @ >R \ change font color
|
94. : fontcolor ( color -- ) \ change font color (only if needed)
95. dup active-color @ <>
96. if dup active-color !
97. BASE @ >R
|
64. misctext 5 line 0 HEX <# # # # # # # #> out
|
98. misctext 5 line 0 HEX <# # # # # # # #> out
|
65. misctext 2 line R> BASE ! ;
|
99. misctext 2 line
100. R> BASE !
101. else drop
102. then ;
|
66.
|
103.
|
67. : col ( color <name> -- ) \ define a font color
|
104. : fcol ( color <name> -- ) \ define a font color
|
68. CREATE , DOES> @ color ! ;
69.
70. HEX
|
105. CREATE , DOES> @ color ! ;
106.
107. HEX
|
71. 808080 col unknown
72. 008000 col commentary
73. CC0000 col numeric
74. 990080 col values
75. 000000 col userwords
76. 009999 col userdefiner
77. CC00CC col variables
78. 0000FF col core_ws
79. 0000FF col core_ext_ws
80. 0000FF col block_ws
81. 0000FF col double_ws
82. 0000FF col exception_ws
83. 0000FF col facilities_ws
84. 0000FF col file_ws
85. 0000FF col fp_ws
86. 0000FF col local_ws
87. 0000FF col malloc_ws
88. 0000FF col progtools_ws
89. 0000FF col searchord_ws
90. 0000FF col string_ws
|
108. 808080 fcol unknown
109. 008000 fcol commentary
110. CC0000 fcol numeric
111. 990080 fcol values
112. 000000 fcol userwords
113. 009999 fcol userdefiner
114. CC00CC fcol variables
115. 0000FF fcol core_ws
116. 0000FF fcol core_ext_ws
117. 0000FF fcol block_ws
118. 0000FF fcol double_ws
119. 0000FF fcol exception_ws
120. 0000FF fcol facilities_ws
121. 0000FF fcol file_ws
122. 0000FF fcol fp_ws
123. 0000FF fcol local_ws
124. 0000FF fcol malloc_ws
125. 0000FF fcol progtools_ws
126. 0000FF fcol searchord_ws
127. 0000FF fcol string_ws
|
91. DECIMAL
92.
93. CREATE begin_header \ begin of HTML file part 1
|
128. DECIMAL
129.
130. CREATE begin_header \ begin of HTML file part 1
|
|
131. text <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
94. text <html> <head>
95. text <meta http-equiv="Content-Type" content="text/html;">
|
132. text <html> <head>
133. text <meta http-equiv="Content-Type" content="text/html;">
|
96. text <meta name="GENERATOR" content="Forth2HTML 0.0">
|
134. text <meta name="GENERATOR" content="Forth2HTML 0.3">
|
97. text <title>
98. 0 C,
99.
100. \ body defaults: the most common link color (blue) is made the default color
101. \ the most common plain text color (green) is made default.
102.
103. CREATE mid_header \ begin of HTML file part 2
104. text </title></head>
105. text <body bgcolor="#FFFFEE" link="0000FF" vlink="0000FF" alink="0000FF">
|
135. text <title>
136. 0 C,
137.
138. \ body defaults: the most common link color (blue) is made the default color
139. \ the most common plain text color (green) is made default.
140.
141. CREATE mid_header \ begin of HTML file part 2
142. text </title></head>
143. text <body bgcolor="#FFFFEE" link="0000FF" vlink="0000FF" alink="0000FF">
|
106. text <pre>
107. 0 C,
108.
109. CREATE end_header \ end of HTML file
110. text </pre></body>
111. text </html>
|
144. text <pre><p>
|
112. 0 C,
113.
114. HEX
115. : setcolor ( -- ) \ select next color
116. attrib @ 1 = color @ 0000FF = AND 0= \ blue link: don't color
117. IF color @ fontcolor THEN ;
118. DECIMAL
119.
|
145. 0 C,
146.
147. HEX
148. : setcolor ( -- ) \ select next color
149. attrib @ 1 = color @ 0000FF = AND 0= \ blue link: don't color
150. IF color @ fontcolor THEN ;
151. DECIMAL
152.
|
120. VARIABLE bltally
|
|
121. : outh ( a n -- ) \ HTMLized text output
|
153. : outh ( a n -- ) \ HTMLized text output
|
122. 999 bltally !
|
|
123. BOUNDS ?DO I C@ CASE
124. [CHAR] & OF S" &" out ENDOF
125. [CHAR] < OF S" <" out ENDOF
126. [CHAR] > OF S" >" out ENDOF
127. [CHAR] " OF S" "" out ENDOF
|
154. BOUNDS ?DO I C@ CASE
155. [CHAR] & OF S" &" out ENDOF
156. [CHAR] < OF S" <" out ENDOF
157. [CHAR] > OF S" >" out ENDOF
158. [CHAR] " OF S" "" out ENDOF
|
128. BL OF bltally @ 0= IF S" " ELSE S" " THEN out
129. 1 bltally +! ENDOF
130. I 1 out 0 bltally !
|
159. [CHAR] © OF S" ©" out ENDOF
160. I 1 out
|
131. ENDCASE LOOP ;
132.
|
161. ENDCASE LOOP ;
162.
|
|
163. CREATE end_header_part1 \ end of HTML file part 1
164. text </p></pre>
165. text <center><hr>
166. text <font color="#000000">
167. 0 C,
168.
169. CREATE end_header_part2 \ end of HTML file part 2
170. text </center>
171. text </body></html>
172. 0 C,
173.
174. : end_header ( -- ) \ output end of HTML file
175. end_header_part1 boiler
176. COPYRIGHT count ?dup if outh else drop then
177. end_header_part2 boiler ;
178.
|
133. : label ( addr len -- ) /a \ associate a label with a word
134. misctext 1 line outh
135. misctext 2 line 1 attrib ! ;
136.
137. : "out ( -- ) \ output a "
138. misctext 8 line
139. ;
140.
141. : new-line ( -- ) \ start a new line (December 30th, 2003 - dbu)
|
179. : label ( addr len -- ) /a \ associate a label with a word
180. misctext 1 line outh
181. misctext 2 line 1 attrib ! ;
182.
183. : "out ( -- ) \ output a "
184. misctext 8 line
185. ;
186.
187. : new-line ( -- ) \ start a new line (December 30th, 2003 - dbu)
|
142. \ S" <br>" outln
143. 13 here dup>r C! 10 r@ char+ C! r> 2 out
|
188. S" " outln
189. \ 13 here dup>r C! 10 r@ char+ C! r> 2 out
|
144. ;
145.
146. : std ( word color <string> -- )
|
190. ;
191.
192. : std ( word color <string> -- )
|
147. CREATE ' , ' , BL WORD COUNT ,$
|
193. CREATE ' , ' , BL WORD COUNT (,$)
|
148. DOES> /a DUP >R 2 CELLS +
149. misctext 0 line \ begin hyperlink
150. BASE @ >R DECIMAL
151. COUNT 0 0 2OVER >NUMBER 2DROP D>S
152. R> BASE !
153. "out dpans-path count out \ write path to ANS-Files (December 30th, 2003 - dbu)
154. CASE \ choose file name
155. 6 OF S" dpans6.htm#" out ENDOF
156. 7 OF S" dpans7.htm#" out ENDOF
157. 8 OF S" dpans8.htm#" out ENDOF
158. 9 OF S" dpans9.htm#" out ENDOF
159. 10 OF S" dpans10.htm#" out ENDOF
160. 11 OF S" dpans11.htm#" out ENDOF
161. 12 OF S" dpans12.htm#" out ENDOF
162. 13 OF S" dpans13.htm#" out ENDOF
163. 14 OF S" dpans14.htm#" out ENDOF
164. 15 OF S" dpans15.htm#" out ENDOF
165. 16 OF S" dpans16.htm#" out ENDOF
166. 17 OF S" dpans17.htm#" out ENDOF
167. ABORT" Undefined source file"
168. ENDCASE out "out s" >" out
169. 1 attrib !
170. R> 2@ SWAP EXECUTE EXECUTE ; \ extra attributes
171.
172. : genHTML ( -- ) \ generate pending HTML
173. PAD COUNT DUP IF setcolor THEN outh /a 0 PAD ! ;
174.
175. : isnumber? ( addr len -- f ) \ string converts to number?
176. 0 0 2SWAP >NUMBER NIP NIP NIP 0= ;
177.
178. : hparse ( a len char -- a' len' )
179. >R 2DUP R@ SKIP R> SCAN BL SCAN
180. 2SWAP 2 PICK - PAD +PLACE ;
181.
182. \ size for XPAD and EPAD increased to avoid crashes in
183. \ files with long lines December 30th, 2003 - dbu
184. CREATE XPAD 1024 CHARS ALLOT \ temporary pad for word storage
185. CREATE EPAD 1024 CHARS ALLOT \ temporary pad for evaluation
186.
187. : >XPAD ( -- ) PAD COUNT BL SKIP XPAD PLACE ; \ move to temporary pad
188.
189. : hint ( addr len -- ) \ interpret one line...
190. BEGIN
191. 0 PAD ! BL hparse PAD C@
192. WHILE unknown \ default color
193. >XPAD XPAD COUNT hyperlinks SEARCH-WORDLIST \ got a hyperlink for this?
194. IF DEPTH >R EXECUTE
195. R> DEPTH <> ABORT" stack depth change in HTML generator"
196. ELSE
197. XPAD COUNT BASE @ 10 = IF
198. >FLOAT IF FDROP numeric THEN \ valid float or integer
199. ELSE
200. isnumber? IF numeric THEN
201. THEN
202. THEN genHTML
203. REPEAT 2DROP
204. new-line ; \ new line
205.
206. CREATE inbuf 260 CHARS ALLOT
207. CREATE fn 128 CHARS ALLOT \ file name
208. CREATE fn1 128 CHARS ALLOT \ file name backup
209. CREATE pstr 128 CHARS ALLOT \ parsed string storage
210. CREATE uname 64 CHARS ALLOT \ : definition name
211. 0 VALUE inf
212. VARIABLE nufile \ T if nesting a file
213. VARIABLE utype \ type of defined word
214. VARIABLE hstate
215. VARIABLE linenum
216. VARIABLE special \ special action, 0=none
217.
218. : ofn ( -- addr len ) \ output file name
219. fn COUNT 2DUP [CHAR] . SCAN NIP - EPAD PLACE
220. S" .htm" EPAD +PLACE EPAD COUNT ;
221.
222. : hcreate ( addr len -- )
223. S" CREATE " EPAD PLACE EPAD +PLACE
224. GET-CURRENT >R hyperlinks SET-CURRENT
225. EPAD COUNT EVALUATE R> SET-CURRENT ; \ create a hyperlink generator
226.
227. \ The user defined words use the following data structure:
228. \ CELL xt of coloring word
229. \ STRING name of reference word
230. \ STRING name of file
231.
232. : deflink ( addr -- ) \ make hyperlink from data structure
233. DUP @ EXECUTE CELL+ \ set color
234. DUP COUNT + COUNT ofn COMPARE \ in an external file?
235. IF misctext 0 line DUP COUNT + COUNT out \ yes, put file name
236. S" #" out COUNT outh S" >" out
237. ELSE misctext 3 line COUNT outh \ no, just use the name
238. misctext 4 line
239. THEN 1 attrib ! ;
240.
241. : defx ( a len xt -- a' len' )
242. >R genHTML BL hparse >XPAD \ output defining word
|
194. DOES> /a DUP >R 2 CELLS +
195. misctext 0 line \ begin hyperlink
196. BASE @ >R DECIMAL
197. COUNT 0 0 2OVER >NUMBER 2DROP D>S
198. R> BASE !
199. "out dpans-path count out \ write path to ANS-Files (December 30th, 2003 - dbu)
200. CASE \ choose file name
201. 6 OF S" dpans6.htm#" out ENDOF
202. 7 OF S" dpans7.htm#" out ENDOF
203. 8 OF S" dpans8.htm#" out ENDOF
204. 9 OF S" dpans9.htm#" out ENDOF
205. 10 OF S" dpans10.htm#" out ENDOF
206. 11 OF S" dpans11.htm#" out ENDOF
207. 12 OF S" dpans12.htm#" out ENDOF
208. 13 OF S" dpans13.htm#" out ENDOF
209. 14 OF S" dpans14.htm#" out ENDOF
210. 15 OF S" dpans15.htm#" out ENDOF
211. 16 OF S" dpans16.htm#" out ENDOF
212. 17 OF S" dpans17.htm#" out ENDOF
213. ABORT" Undefined source file"
214. ENDCASE out "out s" >" out
215. 1 attrib !
216. R> 2@ SWAP EXECUTE EXECUTE ; \ extra attributes
217.
218. : genHTML ( -- ) \ generate pending HTML
219. PAD COUNT DUP IF setcolor THEN outh /a 0 PAD ! ;
220.
221. : isnumber? ( addr len -- f ) \ string converts to number?
222. 0 0 2SWAP >NUMBER NIP NIP NIP 0= ;
223.
224. : hparse ( a len char -- a' len' )
225. >R 2DUP R@ SKIP R> SCAN BL SCAN
226. 2SWAP 2 PICK - PAD +PLACE ;
227.
228. \ size for XPAD and EPAD increased to avoid crashes in
229. \ files with long lines December 30th, 2003 - dbu
230. CREATE XPAD 1024 CHARS ALLOT \ temporary pad for word storage
231. CREATE EPAD 1024 CHARS ALLOT \ temporary pad for evaluation
232.
233. : >XPAD ( -- ) PAD COUNT BL SKIP XPAD PLACE ; \ move to temporary pad
234.
235. : hint ( addr len -- ) \ interpret one line...
236. BEGIN
237. 0 PAD ! BL hparse PAD C@
238. WHILE unknown \ default color
239. >XPAD XPAD COUNT hyperlinks SEARCH-WORDLIST \ got a hyperlink for this?
240. IF DEPTH >R EXECUTE
241. R> DEPTH <> ABORT" stack depth change in HTML generator"
242. ELSE
243. XPAD COUNT BASE @ 10 = IF
244. >FLOAT IF FDROP numeric THEN \ valid float or integer
245. ELSE
246. isnumber? IF numeric THEN
247. THEN
248. THEN genHTML
249. REPEAT 2DROP
250. new-line ; \ new line
251.
252. CREATE inbuf 260 CHARS ALLOT
253. CREATE fn 128 CHARS ALLOT \ file name
254. CREATE fn1 128 CHARS ALLOT \ file name backup
255. CREATE pstr 128 CHARS ALLOT \ parsed string storage
256. CREATE uname 64 CHARS ALLOT \ : definition name
257. 0 VALUE inf
258. VARIABLE nufile \ T if nesting a file
259. VARIABLE utype \ type of defined word
260. VARIABLE hstate
261. VARIABLE linenum
262. VARIABLE special \ special action, 0=none
263.
264. : ofn ( -- addr len ) \ output file name
265. fn COUNT 2DUP [CHAR] . SCAN NIP - EPAD PLACE
266. S" .htm" EPAD +PLACE EPAD COUNT ;
267.
268. : hcreate ( addr len -- )
269. S" CREATE " EPAD PLACE EPAD +PLACE
270. GET-CURRENT >R hyperlinks SET-CURRENT
271. EPAD COUNT EVALUATE R> SET-CURRENT ; \ create a hyperlink generator
272.
273. \ The user defined words use the following data structure:
274. \ CELL xt of coloring word
275. \ STRING name of reference word
276. \ STRING name of file
277.
278. : deflink ( addr -- ) \ make hyperlink from data structure
279. DUP @ EXECUTE CELL+ \ set color
280. DUP COUNT + COUNT ofn COMPARE \ in an external file?
281. IF misctext 0 line DUP COUNT + COUNT out \ yes, put file name
282. S" #" out COUNT outh S" >" out
283. ELSE misctext 3 line COUNT outh \ no, just use the name
284. misctext 4 line
285. THEN 1 attrib ! ;
286.
287. : defx ( a len xt -- a' len' )
288. >R genHTML BL hparse >XPAD \ output defining word
|
243. XPAD COUNT 2DUP hcreate R> , ,$ ofn ,$
|
289. XPAD COUNT 2DUP hcreate R> , (,$) ofn (,$)
|
244. DOES> deflink ;
245.
246. : labelnow genHTML XPAD COUNT label ;
247. : defdat ['] numeric defx numeric labelnow ;
248. : defvar ['] variables defx variables labelnow ;
249. : defusr ['] userwords defx userwords labelnow ;
250. : defval ['] values defx values labelnow ;
251. : defdef ['] userdefiner defx userdefiner labelnow ;
252.
253. : hstate=0 ( -- ) 0 hstate ! ;
254. : hstate=1 ( -- ) 1 hstate ! ;
255. : spec=zero ( -- ) 1 special ! ;
256. : skip) ( a len -- a' len' ) [CHAR] ) hparse ;
|
290. DOES> deflink ;
291.
292. : labelnow genHTML XPAD COUNT label ;
293. : defdat ['] numeric defx numeric labelnow ;
294. : defvar ['] variables defx variables labelnow ;
295. : defusr ['] userwords defx userwords labelnow ;
296. : defval ['] values defx values labelnow ;
297. : defdef ['] userdefiner defx userdefiner labelnow ;
298.
299. : hstate=0 ( -- ) 0 hstate ! ;
300. : hstate=1 ( -- ) 1 hstate ! ;
301. : spec=zero ( -- ) 1 special ! ;
302. : skip) ( a len -- a' len' ) [CHAR] ) hparse ;
|
|
303. : skip} ( a len -- a' len' ) [CHAR] } hparse ;
|
257. : skipw ( a len -- a' len' ) BL hparse ;
258. : skipc ( a len -- a len ) hstate @ 0= IF numeric skipw THEN ;
259. : skip" ( a len -- a' len' ) \ copy string to pstr
260. genHTML [CHAR] " hparse PAD COUNT 1- pstr PLACE ;
261.
262. \ ------------------------------------------------------------------------------
263. \ ":" definitions might be defining words, so they can't be assumed to be defusr
264. \ types. ":" makes a label and saves the name for later use by ";" which makes
265. \ a hyperlink or a hyperlink defining word.
266.
267. :NONAME \ normal : definition
268. uname COUNT ['] userwords defx 2DROP 0 PAD !
269. ; CONSTANT normal_def
270.
271. :NONAME
|
304. : skipw ( a len -- a' len' ) BL hparse ;
305. : skipc ( a len -- a len ) hstate @ 0= IF numeric skipw THEN ;
306. : skip" ( a len -- a' len' ) \ copy string to pstr
307. genHTML [CHAR] " hparse PAD COUNT 1- pstr PLACE ;
308.
309. \ ------------------------------------------------------------------------------
310. \ ":" definitions might be defining words, so they can't be assumed to be defusr
311. \ types. ":" makes a label and saves the name for later use by ";" which makes
312. \ a hyperlink or a hyperlink defining word.
313.
314. :NONAME \ normal : definition
315. uname COUNT ['] userwords defx 2DROP 0 PAD !
316. ; CONSTANT normal_def
317.
318. :NONAME
|
272. uname COUNT 2DUP hcreate ['] userwords , ,$ ofn ,$
|
319. uname COUNT 2DUP hcreate ['] userwords , (,$) ofn (,$)
|
273. DOES> deflink defdef
274. ; CONSTANT defining_def
275.
276. : defunk ( a len -- a' len' ) \ starting unknown definition
277. hstate=1 normal_def utype ! \ save name of : definition
278. genHTML skipw userwords PAD COUNT BL SKIP 2DUP uname PLACE label ;
279.
280. : resunk ( -- ) \ resolve unknown defined word
|
320. DOES> deflink defdef
321. ; CONSTANT defining_def
322.
323. : defunk ( a len -- a' len' ) \ starting unknown definition
324. hstate=1 normal_def utype ! \ save name of : definition
325. genHTML skipw userwords PAD COUNT BL SKIP 2DUP uname PLACE label ;
326.
327. : resunk ( -- ) \ resolve unknown defined word
|
281. genHTML utype @ EXECUTE hstate=0 ;
|
328. genHTML utype @ EXECUTE
329. hstate=0 \ ; cleanup
330. GET-ORDER hyperlinks 1 SET-ORDER
331. S" L#O#C#A#L" EVALUATE \ forget locals
332. SET-ORDER ;
|
282.
283. : created ( -- ) hstate @
284. IF defining_def utype ! \ make ; create a defining word
285. ELSE defdat \ not compiling
286. THEN ;
287.
288. \ ------------------------------------------------------------------------------
289.
|
333.
334. : created ( -- ) hstate @
335. IF defining_def utype ! \ make ; create a defining word
336. ELSE defdat \ not compiling
337. THEN ;
338.
339. \ ------------------------------------------------------------------------------
340.
|
290. : header ( addr len -- ) \ output big header text
291. misctext 6 line outln misctext 7 line ;
|
341. : header_out ( addr len -- ) \ output big header text
342. misctext 6 line
343.
344. LINK-TO-ORG-FILE
345. IF misctext 9 line 2dup outln misctext 2 line
346. outln misctext 10 line
347. ELSE out
348.
349. THEN misctext 7 line ;
|
292.
293. : _incfil ( addr -- ) \ trigger file nesting
294. fn COUNT fn1 PLACE COUNT BL SKIP fn place 1 nufile ! ;
295.
296. : incfile ( a len -- a' len' ) \ include a file
297. genHTML skipw PAD _incfil ;
298.
299. : "incfil ( a len -- a' len' ) \ include file from S" filename"
300. skipw pstr _incfil ;
301.
302. : hfill ( -- len ) \ read next line of file
|
350.
351. : _incfil ( addr -- ) \ trigger file nesting
352. fn COUNT fn1 PLACE COUNT BL SKIP fn place 1 nufile ! ;
353.
354. : incfile ( a len -- a' len' ) \ include a file
355. genHTML skipw PAD _incfil ;
356.
357. : "incfil ( a len -- a' len' ) \ include file from S" filename"
358. skipw pstr _incfil ;
359.
360. : hfill ( -- len ) \ read next line of file
|
303. inbuf 256 inf READ-LINE ABORT" Error reading file" ;
|
361. inbuf 256 inf READ-LINE ABORT" Error reading file"
362. 1 linenum +! ;
|
304.
305. : open ( -- ) cr ." Reading " fn COUNT type ." at line " linenum @ .
|
363.
364. : open ( -- ) cr ." Reading " fn COUNT type ." at line " linenum @ .
|
306. 0 linenum !
|
365. 1 linenum !
|
307. fn COUNT R/O OPEN-FILE ABORT" Error opening source file" to inf ;
308.
309. : close ( -- ) cr ." closing " fn COUNT type
310. inf CLOSE-FILE ABORT" Error closing file" ;
311.
312. : oopen ( -- )
313. ofn W/O CREATE-FILE ABORT" Error creating file" to outf
314. begin_header boiler \ begin boilerplate
315. fn COUNT outln mid_header boiler \ title and end boilerplate
|
366. fn COUNT R/O OPEN-FILE ABORT" Error opening source file" to inf ;
367.
368. : close ( -- ) cr ." closing " fn COUNT type
369. inf CLOSE-FILE ABORT" Error closing file" ;
370.
371. : oopen ( -- )
372. ofn W/O CREATE-FILE ABORT" Error creating file" to outf
373. begin_header boiler \ begin boilerplate
374. fn COUNT outln mid_header boiler \ title and end boilerplate
|
316. fn COUNT header ;
|
375. fn COUNT header_out ;
|
317.
318. : HTML ( <infile> -- )
|
376.
377. : HTML ( <infile> -- )
|
319. 0 TO screen-only 0 nufile ! \ force usage of file
|
378. 0 TO screen-only 0 nufile ! 1 linenum ! \ force usage of file
379. -1 active-color ! \ there's no active color yet
|
320. \ 1 TO screen-only
321. BL WORD COUNT fn PLACE open oopen \ open input and output files
322. -1 DUP >R outf >R \ file nest uses stacks
323. hstate=0
324. BEGIN
325. BEGIN 0 special ! \ process line
326. nufile @ \ nest a file?
327. IF inf outf
328. open oopen outf >R \ open new files
329. 0 nufile !
330. THEN hfill
|
380. \ 1 TO screen-only
381. BL WORD COUNT fn PLACE open oopen \ open input and output files
382. -1 DUP >R outf >R \ file nest uses stacks
383. hstate=0
384. BEGIN
385. BEGIN 0 special ! \ process line
386. nufile @ \ nest a file?
387. IF inf outf
388. open oopen outf >R \ open new files
389. 0 nufile !
390. THEN hfill
|
331. WHILE inbuf SWAP hint 1 linenum +!
|
391. WHILE inbuf SWAP hint
|
332. REPEAT DROP
333. close fn1 COUNT fn PLACE \ restore file name
334. DUP -1 <>
335. IF TO outf TO inf FALSE \ unnest files
336. ELSE TRUE
337. THEN
338. UNTIL DROP
339. BEGIN R> DUP -1 <> \ close all output files
|
392. REPEAT DROP
393. close fn1 COUNT fn PLACE \ restore file name
394. DUP -1 <>
395. IF TO outf TO inf FALSE \ unnest files
396. ELSE TRUE
397. THEN
398. UNTIL DROP
399. BEGIN R> DUP -1 <> \ close all output files
|
340. WHILE end_header boiler \ finish up HTML
|
400. WHILE end_header \ finish up HTML
|
341. close-file ABORT" Error closing file"
342. REPEAT DROP ;
343.
344. : q ( -- ) 1 TO screen-only \ single line test
345. -1 word count inbuf place inbuf count hint ;
346.
347. \ 0 [IF] is often used as a comment. If it is used as a comment, scan the file
348. \ for a [THEN]. [THEN] must be on the next line or beyond.
349.
350. : upp ( an--) BOUNDS ?DO I C@ [CHAR] a > IF I C@ 32 - I C! THEN LOOP \ uppercase
351. ;
352.
353. : bigif ( a len -- a len ) special @ 1 =
354. IF genHTML commentary setcolor outh \ finish up this line
355. BEGIN hfill new-line
356. WHILE >R inbuf EPAD R@ MOVE
357. EPAD R@ upp \ uppercase for search
358. EPAD R@ S" [THEN]" SEARCH
359. IF DROP EPAD - inbuf OVER PAD PLACE \ before [THEN] is comment
360. genHTML
361. inbuf R> ROT /STRING EXIT
362. ELSE 2DROP inbuf R> outh \ whole line is comment
363. THEN
364. REPEAT DROP -1 ABORT" Missing [THEN]"
365. THEN ;
366.
|
401. close-file ABORT" Error closing file"
402. REPEAT DROP ;
403.
404. : q ( -- ) 1 TO screen-only \ single line test
405. -1 word count inbuf place inbuf count hint ;
406.
407. \ 0 [IF] is often used as a comment. If it is used as a comment, scan the file
408. \ for a [THEN]. [THEN] must be on the next line or beyond.
409.
410. : upp ( an--) BOUNDS ?DO I C@ [CHAR] a > IF I C@ 32 - I C! THEN LOOP \ uppercase
411. ;
412.
413. : bigif ( a len -- a len ) special @ 1 =
414. IF genHTML commentary setcolor outh \ finish up this line
415. BEGIN hfill new-line
416. WHILE >R inbuf EPAD R@ MOVE
417. EPAD R@ upp \ uppercase for search
418. EPAD R@ S" [THEN]" SEARCH
419. IF DROP EPAD - inbuf OVER PAD PLACE \ before [THEN] is comment
420. genHTML
421. inbuf R> ROT /STRING EXIT
422. ELSE 2DROP inbuf R> outh \ whole line is comment
423. THEN
424. REPEAT DROP -1 ABORT" Missing [THEN]"
425. THEN ;
426.
|
|
427. : _local ( a len -- a len ) \ define locals to |
428. genHTML
429. S" MARKER L#O#C#A#L" EVALUATE \ start a list of locals
430. BEGIN
431. BEGIN 2DUP BL hparse 2DROP
432. PAD COUNT BL SKIP DUP \ inputstring wordstring .
433. WHILE S" |" COMPARE 0 PAD !
434. IF defval
435. ELSE local_ws EXIT
436. THEN
437. REPEAT 2DROP 2DROP
438. hfill 0= ABORT" Missing | in locals list"
439. inbuf SWAP S" " outln
440. AGAIN ;
441.
|
367. \ handle multi-line comments
368. \ (( )) and comment: comment; are often used as multi-line comments in win32forth.
369. \ )) or comment; must be on the next line or beyond.
370. variable mlc-stop
371.
372. : (mlc) ( a -- )
373. mlc-stop !
374. commentary setcolor genHTML outh \ finish up this line
375. BEGIN hfill new-line
376. WHILE >R inbuf EPAD R@ MOVE
377. EPAD R@ upp \ uppercase for search
378. EPAD R@ mlc-stop @ count SEARCH
379. IF DROP mlc-stop @ count nip + EPAD - inbuf OVER PAD PLACE \ before )) and )) is comment
380. genHTML
381. inbuf R> ROT /STRING EXIT
382. ELSE 2DROP inbuf R> outh \ whole line is comment
383. THEN
384. REPEAT DROP ." Missing " mlc-stop @ count type ABORT
385. ;
386.
387. : mlc ( <string> -- ) \ handle a multi line comment
|
442. \ handle multi-line comments
443. \ (( )) and comment: comment; are often used as multi-line comments in win32forth.
444. \ )) or comment; must be on the next line or beyond.
445. variable mlc-stop
446.
447. : (mlc) ( a -- )
448. mlc-stop !
449. commentary setcolor genHTML outh \ finish up this line
450. BEGIN hfill new-line
451. WHILE >R inbuf EPAD R@ MOVE
452. EPAD R@ upp \ uppercase for search
453. EPAD R@ mlc-stop @ count SEARCH
454. IF DROP mlc-stop @ count nip + EPAD - inbuf OVER PAD PLACE \ before )) and )) is comment
455. genHTML
456. inbuf R> ROT /STRING EXIT
457. ELSE 2DROP inbuf R> outh \ whole line is comment
458. THEN
459. REPEAT DROP ." Missing " mlc-stop @ count type ABORT
460. ;
461.
462. : mlc ( <string> -- ) \ handle a multi line comment
|
388. CREATE BL WORD COUNT ,$
|
463. CREATE BL WORD COUNT (,$)
|
389. DOES> (mlc) ;
390.
391. \ =============================================================================
392.
393. : _DEFINITIONS DEFINITIONS ;
394.
395. hyperlinks SET-CURRENT
396. \ The following words are not in the ANS standard but are very common.
|
464. DOES> (mlc) ;
465.
466. \ =============================================================================
467.
468. : _DEFINITIONS DEFINITIONS ;
469.
470. hyperlinks SET-CURRENT
471. \ The following words are not in the ANS standard but are very common.
|
|
472. : L#O#C#A#L ;
|
397. : VOCABULARY defusr ;
398. : DEFER defusr ;
399. : INCLUDE hstate @ 0= IF incfile THEN ;
400. : FLOAD hstate @ 0= IF incfile THEN ;
401. : BINARY 2 BASE ! ;
402. : OCTAL 8 BASE ! ;
403. : 0 numeric spec=zero ;
404. : 1 numeric ;
405. : -1 numeric ;
406.
407. \ The following words are not in the ANS standard but are used in Win32Forth
|
473. : VOCABULARY defusr ;
474. : DEFER defusr ;
475. : INCLUDE hstate @ 0= IF incfile THEN ;
476. : FLOAD hstate @ 0= IF incfile THEN ;
477. : BINARY 2 BASE ! ;
478. : OCTAL 8 BASE ! ;
479. : 0 numeric spec=zero ;
480. : 1 numeric ;
481. : -1 numeric ;
482.
483. \ The following words are not in the ANS standard but are used in Win32Forth
|
|
484. \ December 31st, 2003 - dbu
|
408. : ANEW skipw ;
|
485. : ANEW skipw ;
|
|
486. : { commentary genHTML skip} ;
487. : CallBack: defunk ;
488. : :M defunk ;
489. : ;M resunk ;
|
409. mlc (( ))
410. mlc COMMENT: COMMENT;
411.
|
490. mlc (( ))
491. mlc COMMENT: COMMENT;
492.
|
|
493.
|
412. \ The rest is ANS Forth standard
413.
414. : \ commentary genHTML PAD PLACE PAD 0 ;
415.
416. ( NAME ACTION COLOR REFERENCE )
417. ( ------------------ ------ -------------- ----------- )
418. std ! NOOP core_ws 6.1.0010
419. std # NOOP core_ws 6.1.0030
420. std #> NOOP core_ws 6.1.0040
421. std #S NOOP core_ws 6.1.0050
422. std ' NOOP core_ws 6.1.0070
423. std ( skip) commentary 6.1.0080
424. std * NOOP core_ws 6.1.0090
425. std */ NOOP core_ws 6.1.0100
426. std */MOD NOOP core_ws 6.1.0110
427. std + NOOP core_ws 6.1.0120
428. std +! NOOP core_ws 6.1.0130
429. std +LOOP NOOP core_ws 6.1.0140
430. std , NOOP core_ws 6.1.0150
431. std - NOOP core_ws 6.1.0160
432. std . NOOP core_ws 6.1.0180
433. std ." skip" numeric 6.1.0190
434. std / NOOP core_ws 6.1.0230
435. std /MOD NOOP core_ws 6.1.0240
436. std 0< NOOP core_ws 6.1.0250
437. std 0= NOOP core_ws 6.1.0270
438. std 1+ NOOP core_ws 6.1.0290
439. std 1- NOOP core_ws 6.1.0300
440. std 2! NOOP core_ws 6.1.0310
441. std 2* NOOP core_ws 6.1.0320
442. std 2/ NOOP core_ws 6.1.0330
443. std 2@ NOOP core_ws 6.1.0350
444. std 2DROP NOOP core_ws 6.1.0370
445. std 2DUP NOOP core_ws 6.1.0380
446. std 2OVER NOOP core_ws 6.1.0400
447. std 2SWAP NOOP core_ws 6.1.0430
448. std : defunk core_ws 6.1.0450
449. std ; resunk core_ws 6.1.0460
450. std < NOOP core_ws 6.1.0480
451. std <# NOOP core_ws 6.1.0490
452. std = NOOP core_ws 6.1.0530
453. std > NOOP core_ws 6.1.0540
454. std >BODY NOOP core_ws 6.1.0550
455. std >IN NOOP core_ws 6.1.0560
456. std >NUMBER NOOP core_ws 6.1.0570
457. std >R NOOP core_ws 6.1.0580
458. std ?DUP NOOP core_ws 6.1.0630
459. std @ NOOP core_ws 6.1.0650
460. std ABORT NOOP core_ws 6.1.0670
461. std ABORT" skip" numeric 6.1.0680
462. std ABS NOOP core_ws 6.1.0690
463. std ACCEPT NOOP core_ws 6.1.0695
464. std ALIGN NOOP core_ws 6.1.0705
465. std ALIGNED NOOP core_ws 6.1.0706
466. std ALLOT NOOP core_ws 6.1.0710
467. std AND NOOP core_ws 6.1.0720
468. std BASE NOOP core_ws 6.1.0750
469. std BEGIN NOOP core_ws 6.1.0760
470. std BL NOOP numeric 6.1.0770
471. std C! NOOP core_ws 6.1.0850
472. std C, NOOP core_ws 6.1.0860
473. std C@ NOOP core_ws 6.1.0870
474. std CELL+ NOOP core_ws 6.1.0880
475. std CELLS NOOP core_ws 6.1.0890
476. std CHAR skipc core_ws 6.1.0895
477. std CHAR+ NOOP core_ws 6.1.0897
478. std CHARS NOOP core_ws 6.1.0898
479. std CONSTANT defdat core_ws 6.1.0950
480. std COUNT NOOP core_ws 6.1.0980
481. std CR NOOP core_ws 6.1.0990
482. std CREATE created core_ws 6.1.1000
483. std DECIMAL DECIMAL core_ws 6.1.1170
484. std DEPTH NOOP core_ws 6.1.1200
485. std DO NOOP core_ws 6.1.1240
486. std DOES> NOOP core_ws 6.1.1250
487. std DROP NOOP core_ws 6.1.1260
488. std DUP NOOP core_ws 6.1.1290
489. std ELSE NOOP core_ws 6.1.1310
490. std EMIT NOOP core_ws 6.1.1320
491. std ENVIRONMENT? NOOP core_ws 6.1.1345
492. std EVALUATE NOOP core_ws 6.1.1360
493. std EXECUTE NOOP core_ws 6.1.1370
494. std EXIT NOOP core_ws 6.1.1380
495. std FILL NOOP core_ws 6.1.1540
496. std FIND NOOP core_ws 6.1.1550
497. std FM/MOD NOOP core_ws 6.1.1561
498. std HERE NOOP core_ws 6.1.1650
499. std HOLD NOOP core_ws 6.1.1670
500. std I NOOP core_ws 6.1.1680
501. std IF NOOP core_ws 6.1.1700
502. std IMMEDIATE NOOP core_ws 6.1.1710
503. std INVERT NOOP core_ws 6.1.1720
504. std J NOOP core_ws 6.1.1730
505. std KEY NOOP core_ws 6.1.1750
506. std LEAVE NOOP core_ws 6.1.1760
507. std LITERAL NOOP core_ws 6.1.1780
508. std LOOP NOOP core_ws 6.1.1800
509. std LSHIFT NOOP core_ws 6.1.1805
510. std M* NOOP core_ws 6.1.1810
511. std MAX NOOP core_ws 6.1.1870
512. std MIN NOOP core_ws 6.1.1880
513. std MOD NOOP core_ws 6.1.1890
514. std MOVE NOOP core_ws 6.1.1900
515. std NEGATE NOOP core_ws 6.1.1910
516. std OR NOOP core_ws 6.1.1980
517. std OVER NOOP core_ws 6.1.1990
518. std POSTPONE NOOP core_ws 6.1.2033
519. std QUIT NOOP core_ws 6.1.2050
520. std R> NOOP core_ws 6.1.2060
521. std R@ NOOP core_ws 6.1.2070
522. std RECURSE NOOP core_ws 6.1.2120
523. std REPEAT NOOP core_ws 6.1.2140
524. std ROT NOOP core_ws 6.1.2160
525. std RSHIFT NOOP core_ws 6.1.2162
526. std S" skip" numeric 6.1.2165
527. std S>D NOOP core_ws 6.1.2170
528. std SIGN NOOP core_ws 6.1.2210
529. std SM/REM NOOP core_ws 6.1.2214
530. std SOURCE NOOP core_ws 6.1.2216
531. std SPACE NOOP core_ws 6.1.2220
532. std SPACES NOOP core_ws 6.1.2230
533. std STATE NOOP core_ws 6.1.2250
534. std SWAP NOOP core_ws 6.1.2260
535. std THEN NOOP core_ws 6.1.2270
536. std TYPE NOOP core_ws 6.1.2310
537. std U. NOOP core_ws 6.1.2320
538. std U< NOOP core_ws 6.1.2340
539. std UM* NOOP core_ws 6.1.2360
540. std UM/MOD NOOP core_ws 6.1.2370
541. std UNLOOP NOOP core_ws 6.1.2380
542. std UNTIL NOOP core_ws 6.1.2390
543. std VARIABLE defvar core_ws 6.1.2410
544. std WHILE NOOP core_ws 6.1.2430
545. std WORD NOOP core_ws 6.1.2450
546. std XOR NOOP core_ws 6.1.2490
547. std [ hstate=0 core_ws 6.1.2500
548. std ['] skipw numeric 6.1.2510
549. std [CHAR] skipw numeric 6.1.2520
550. std ] hstate=1 core_ws 6.1.2540
551. std #TIB NOOP core_ext_ws 6.2.0060
552. std .( skip) commentary 6.2.0200
553. std .R NOOP core_ext_ws 6.2.0210
554. std 0<> NOOP core_ext_ws 6.2.0260
555. std 0> NOOP core_ext_ws 6.2.0280
556. std 2>R NOOP core_ext_ws 6.2.0340
557. std 2R> NOOP core_ext_ws 6.2.0410
558. std 2R@ NOOP core_ext_ws 6.2.0415
559. std :NONAME NOOP core_ext_ws 6.2.0455
560. std <> NOOP core_ext_ws 6.2.0500
561. std ?DO NOOP core_ext_ws 6.2.0620
562. std AGAIN NOOP core_ext_ws 6.2.0700
563. std C" skip" numeric 6.2.0855
564. std CASE NOOP core_ext_ws 6.2.0873
565. std COMPILE, NOOP core_ext_ws 6.2.0945
566. std CONVERT NOOP core_ext_ws 6.2.0970
567. std ENDCASE NOOP core_ext_ws 6.2.1342
568. std ENDOF NOOP core_ext_ws 6.2.1343
569. std ERASE NOOP core_ext_ws 6.2.1350
570. std EXPECT NOOP core_ext_ws 6.2.1390
571. std FALSE spec=zero numeric 6.2.1485
572. std HEX HEX core_ext_ws 6.2.1660
573. std MARKER defusr core_ext_ws 6.2.1850
574. std NIP NOOP core_ext_ws 6.2.1930
575. std OF NOOP core_ext_ws 6.2.1950
576. std PAD NOOP core_ext_ws 6.2.2000
577. std PARSE NOOP core_ext_ws 6.2.2008
578. std PICK NOOP core_ext_ws 6.2.2030
579. std QUERY NOOP core_ext_ws 6.2.2040
580. std REFILL NOOP core_ext_ws 6.2.2125
581. std RESTORE-INPUT NOOP core_ext_ws 6.2.2148
582. std ROLL NOOP core_ext_ws 6.2.2150
583. std SAVE-INPUT NOOP core_ext_ws 6.2.2182
584. std SOURCE-ID NOOP core_ext_ws 6.2.2218
585. std SPAN NOOP core_ext_ws 6.2.2240
586. std TIB NOOP core_ext_ws 6.2.2290
587. std TO NOOP core_ext_ws 6.2.2295
588. std TRUE NOOP numeric 6.2.2298
589. std TUCK NOOP core_ext_ws 6.2.2300
590. std U.R NOOP core_ext_ws 6.2.2330
591. std U> NOOP core_ext_ws 6.2.2350
592. std UNUSED NOOP core_ext_ws 6.2.2395
593. std VALUE defval core_ext_ws 6.2.2405
594. std WITHIN NOOP core_ext_ws 6.2.2440
595. std [COMPILE] NOOP core_ext_ws 6.2.2530
596. std BLK NOOP block_ws 7.6.1.0790
597. std BLOCK NOOP block_ws 7.6.1.0800
598. std BUFFER NOOP block_ws 7.6.1.0820
599. std FLUSH NOOP block_ws 7.6.1.1559
600. std LOAD NOOP block_ws 7.6.1.1790
601. std SAVE-BUFFERS NOOP block_ws 7.6.1.2180
602. std UPDATE NOOP block_ws 7.6.1.2400
603. std EMPTY-BUFFERS NOOP block_ws 7.6.2.1330
604. std LIST NOOP block_ws 7.6.2.1770
605. std SCR NOOP block_ws 7.6.2.2190
606. std THRU NOOP block_ws 7.6.2.2280
607. std 2CONSTANT defdat double_ws 8.6.1.0360
608. std 2LITERAL NOOP double_ws 8.6.1.0390
609. std 2VARIABLE defvar double_ws 8.6.1.0440
610. std D+ NOOP double_ws 8.6.1.1040
611. std D- NOOP double_ws 8.6.1.1050
612. std D. NOOP double_ws 8.6.1.1060
613. std D.R NOOP double_ws 8.6.1.1070
614. std D0< NOOP double_ws 8.6.1.1075
615. std D0= NOOP double_ws 8.6.1.1080
616. std D2* NOOP double_ws 8.6.1.1090
617. std D2/ NOOP double_ws 8.6.1.1100
618. std D< NOOP double_ws 8.6.1.1110
619. std D= NOOP double_ws 8.6.1.1120
620. std D>S NOOP double_ws 8.6.1.1140
621. std DABS NOOP double_ws 8.6.1.1160
622. std DMAX NOOP double_ws 8.6.1.1210
623. std DMIN NOOP double_ws 8.6.1.1220
624. std DNEGATE NOOP double_ws 8.6.1.1230
625. std M*/ NOOP double_ws 8.6.1.1820
626. std M+ NOOP double_ws 8.6.1.1830
627. std 2ROT NOOP double_ws 8.6.2.0420
628. std DU< NOOP double_ws 8.6.2.1270
629. std CATCH NOOP exception_ws 9.6.1.0875
630. std THROW NOOP exception_ws 9.6.1.2275
631. std AT-XY NOOP facilities_ws 10.6.1.0742
632. std KEY? NOOP facilities_ws 10.6.1.1755
633. std PAGE NOOP facilities_ws 10.6.1.2005
634. std EKEY NOOP facilities_ws 10.6.2.1305
635. std EKEY<CHAR NOOP facilities_ws 10.6.2.1306
636. std EKEY? NOOP facilities_ws 10.6.2.1307
637. std EMIT? NOOP facilities_ws 10.6.2.1325
638. std MS NOOP facilities_ws 10.6.2.1905
639. std TIME&DATE NOOP facilities_ws 10.6.2.2292
640. std BIN NOOP file_ws 11.6.1.0765
641. std CLOSE-FILE NOOP file_ws 11.6.1.0900
642. std CREATE-FILE NOOP file_ws 11.6.1.1010
643. std DELETE-FILE NOOP file_ws 11.6.1.1190
644. std FILE-POSITION NOOP file_ws 11.6.1.1520
645. std FILE-SIZE NOOP file_ws 11.6.1.1522
646. std INCLUDE-FILE NOOP file_ws 11.6.1.1717
647. std INCLUDED "incfil file_ws 11.6.1.1718
648. std OPEN-FILE NOOP file_ws 11.6.1.1970
649. std R/O NOOP file_ws 11.6.1.2054
650. std R/W NOOP file_ws 11.6.1.2056
651. std READ-FILE NOOP file_ws 11.6.1.2080
652. std READ-LINE NOOP file_ws 11.6.1.2090
653. std REPOSITION-FILE NOOP file_ws 11.6.1.2142
654. std RESIZE-FILE NOOP file_ws 11.6.1.2147
655. std W/O NOOP file_ws 11.6.1.2425
656. std WRITE-FILE NOOP file_ws 11.6.1.2480
657. std WRITE-LINE NOOP file_ws 11.6.1.2485
658. std FILE-STATUS NOOP file_ws 11.6.2.1524
659. std FLUSH-FILE NOOP file_ws 11.6.2.1560
660. std RENAME-FILE NOOP file_ws 11.6.2.2130
661. std >FLOAT NOOP fp_ws 12.6.1.0558
662. std D>F NOOP fp_ws 12.6.1.1130
663. std F! NOOP fp_ws 12.6.1.1400
664. std F* NOOP fp_ws 12.6.1.1410
665. std F+ NOOP fp_ws 12.6.1.1420
666. std F- NOOP fp_ws 12.6.1.1425
667. std F/ NOOP fp_ws 12.6.1.1430
668. std F0< NOOP fp_ws 12.6.1.1440
669. std F0= NOOP fp_ws 12.6.1.1450
670. std F< NOOP fp_ws 12.6.1.1460
671. std F>D NOOP fp_ws 12.6.1.1460
672. std F@ NOOP fp_ws 12.6.1.1472
673. std FALIGN NOOP fp_ws 12.6.1.1479
674. std FALIGNED NOOP fp_ws 12.6.1.1483
675. std FCONSTANT defdat fp_ws 12.6.1.1492
676. std FDEPTH NOOP fp_ws 12.6.1.1497
677. std FDROP NOOP fp_ws 12.6.1.1500
678. std FDUP NOOP fp_ws 12.6.1.1510
679. std FLITERAL NOOP fp_ws 12.6.1.1552
680. std FLOAT+ NOOP fp_ws 12.6.1.1555
681. std FLOATS NOOP fp_ws 12.6.1.1556
682. std FLOOR NOOP fp_ws 12.6.1.1558
683. std FMAX NOOP fp_ws 12.6.1.1562
684. std FMIN NOOP fp_ws 12.6.1.1565
685. std FNEGATE NOOP fp_ws 12.6.1.1567
686. std FOVER NOOP fp_ws 12.6.1.1600
687. std FROT NOOP fp_ws 12.6.1.1610
688. std FROUND NOOP fp_ws 12.6.1.1612
689. std FSWAP NOOP fp_ws 12.6.1.1620
690. std FVARIABLE defvar fp_ws 12.6.1.1630
691. std REPRESENT NOOP fp_ws 12.6.1.2143
692. std DF! NOOP fp_ws 12.6.2.1203
693. std DF@ NOOP fp_ws 12.6.2.1204
694. std DFALIGN NOOP fp_ws 12.6.2.1205
695. std DFALIGNED NOOP fp_ws 12.6.2.1207
696. std DFLOAT+ NOOP fp_ws 12.6.2.1208
697. std DFLOATS NOOP fp_ws 12.6.2.1209
698. std F** NOOP fp_ws 12.6.2.1415
699. std F. NOOP fp_ws 12.6.2.1427
700. std FABS NOOP fp_ws 12.6.2.1474
701. std FACOS NOOP fp_ws 12.6.2.1476
702. std FACOSH NOOP fp_ws 12.6.2.1477
703. std FALOG NOOP fp_ws 12.6.2.1484
704. std FASIN NOOP fp_ws 12.6.2.1486
705. std FASINH NOOP fp_ws 12.6.2.1487
706. std FATAN NOOP fp_ws 12.6.2.1488
707. std FATAN2 NOOP fp_ws 12.6.2.1489
708. std FATANH NOOP fp_ws 12.6.2.1491
709. std FCOS NOOP fp_ws 12.6.2.1493
710. std FCOSH NOOP fp_ws 12.6.2.1494
711. std FE. NOOP fp_ws 12.6.2.1513
712. std FEXP NOOP fp_ws 12.6.2.1515
713. std FEXPM1 NOOP fp_ws 12.6.2.1516
714. std FLN NOOP fp_ws 12.6.2.1553
715. std FLNP1 NOOP fp_ws 12.6.2.1554
716. std FLOG NOOP fp_ws 12.6.2.1557
717. std FS. NOOP fp_ws 12.6.2.1613
718. std FSIN NOOP fp_ws 12.6.2.1614
719. std FSINCOS NOOP fp_ws 12.6.2.1616
720. std FSINH NOOP fp_ws 12.6.2.1617
721. std FSQRT NOOP fp_ws 12.6.2.1618
722. std FTAN NOOP fp_ws 12.6.2.1625
723. std FTANH NOOP fp_ws 12.6.2.1626
724. std F~ NOOP fp_ws 12.6.2.1640
725. std PRECISION NOOP fp_ws 12.6.2.2035
726. std SET-PRECISION NOOP fp_ws 12.6.2.2200
727. std SF! NOOP fp_ws 12.6.2.2202
728. std SF@ NOOP fp_ws 12.6.2.2203
729. std SFALIGN NOOP fp_ws 12.6.2.2204
730. std SFALIGNED NOOP fp_ws 12.6.2.2206
731. std SFLOAT+ NOOP fp_ws 12.6.2.2207
732. std SFLOATS NOOP fp_ws 12.6.2.2208
733. std (LOCAL) NOOP local_ws 13.6.1.0086
|
494. \ The rest is ANS Forth standard
495.
496. : \ commentary genHTML PAD PLACE PAD 0 ;
497.
498. ( NAME ACTION COLOR REFERENCE )
499. ( ------------------ ------ -------------- ----------- )
500. std ! NOOP core_ws 6.1.0010
501. std # NOOP core_ws 6.1.0030
502. std #> NOOP core_ws 6.1.0040
503. std #S NOOP core_ws 6.1.0050
504. std ' NOOP core_ws 6.1.0070
505. std ( skip) commentary 6.1.0080
506. std * NOOP core_ws 6.1.0090
507. std */ NOOP core_ws 6.1.0100
508. std */MOD NOOP core_ws 6.1.0110
509. std + NOOP core_ws 6.1.0120
510. std +! NOOP core_ws 6.1.0130
511. std +LOOP NOOP core_ws 6.1.0140
512. std , NOOP core_ws 6.1.0150
513. std - NOOP core_ws 6.1.0160
514. std . NOOP core_ws 6.1.0180
515. std ." skip" numeric 6.1.0190
516. std / NOOP core_ws 6.1.0230
517. std /MOD NOOP core_ws 6.1.0240
518. std 0< NOOP core_ws 6.1.0250
519. std 0= NOOP core_ws 6.1.0270
520. std 1+ NOOP core_ws 6.1.0290
521. std 1- NOOP core_ws 6.1.0300
522. std 2! NOOP core_ws 6.1.0310
523. std 2* NOOP core_ws 6.1.0320
524. std 2/ NOOP core_ws 6.1.0330
525. std 2@ NOOP core_ws 6.1.0350
526. std 2DROP NOOP core_ws 6.1.0370
527. std 2DUP NOOP core_ws 6.1.0380
528. std 2OVER NOOP core_ws 6.1.0400
529. std 2SWAP NOOP core_ws 6.1.0430
530. std : defunk core_ws 6.1.0450
531. std ; resunk core_ws 6.1.0460
532. std < NOOP core_ws 6.1.0480
533. std <# NOOP core_ws 6.1.0490
534. std = NOOP core_ws 6.1.0530
535. std > NOOP core_ws 6.1.0540
536. std >BODY NOOP core_ws 6.1.0550
537. std >IN NOOP core_ws 6.1.0560
538. std >NUMBER NOOP core_ws 6.1.0570
539. std >R NOOP core_ws 6.1.0580
540. std ?DUP NOOP core_ws 6.1.0630
541. std @ NOOP core_ws 6.1.0650
542. std ABORT NOOP core_ws 6.1.0670
543. std ABORT" skip" numeric 6.1.0680
544. std ABS NOOP core_ws 6.1.0690
545. std ACCEPT NOOP core_ws 6.1.0695
546. std ALIGN NOOP core_ws 6.1.0705
547. std ALIGNED NOOP core_ws 6.1.0706
548. std ALLOT NOOP core_ws 6.1.0710
549. std AND NOOP core_ws 6.1.0720
550. std BASE NOOP core_ws 6.1.0750
551. std BEGIN NOOP core_ws 6.1.0760
552. std BL NOOP numeric 6.1.0770
553. std C! NOOP core_ws 6.1.0850
554. std C, NOOP core_ws 6.1.0860
555. std C@ NOOP core_ws 6.1.0870
556. std CELL+ NOOP core_ws 6.1.0880
557. std CELLS NOOP core_ws 6.1.0890
558. std CHAR skipc core_ws 6.1.0895
559. std CHAR+ NOOP core_ws 6.1.0897
560. std CHARS NOOP core_ws 6.1.0898
561. std CONSTANT defdat core_ws 6.1.0950
562. std COUNT NOOP core_ws 6.1.0980
563. std CR NOOP core_ws 6.1.0990
564. std CREATE created core_ws 6.1.1000
565. std DECIMAL DECIMAL core_ws 6.1.1170
566. std DEPTH NOOP core_ws 6.1.1200
567. std DO NOOP core_ws 6.1.1240
568. std DOES> NOOP core_ws 6.1.1250
569. std DROP NOOP core_ws 6.1.1260
570. std DUP NOOP core_ws 6.1.1290
571. std ELSE NOOP core_ws 6.1.1310
572. std EMIT NOOP core_ws 6.1.1320
573. std ENVIRONMENT? NOOP core_ws 6.1.1345
574. std EVALUATE NOOP core_ws 6.1.1360
575. std EXECUTE NOOP core_ws 6.1.1370
576. std EXIT NOOP core_ws 6.1.1380
577. std FILL NOOP core_ws 6.1.1540
578. std FIND NOOP core_ws 6.1.1550
579. std FM/MOD NOOP core_ws 6.1.1561
580. std HERE NOOP core_ws 6.1.1650
581. std HOLD NOOP core_ws 6.1.1670
582. std I NOOP core_ws 6.1.1680
583. std IF NOOP core_ws 6.1.1700
584. std IMMEDIATE NOOP core_ws 6.1.1710
585. std INVERT NOOP core_ws 6.1.1720
586. std J NOOP core_ws 6.1.1730
587. std KEY NOOP core_ws 6.1.1750
588. std LEAVE NOOP core_ws 6.1.1760
589. std LITERAL NOOP core_ws 6.1.1780
590. std LOOP NOOP core_ws 6.1.1800
591. std LSHIFT NOOP core_ws 6.1.1805
592. std M* NOOP core_ws 6.1.1810
593. std MAX NOOP core_ws 6.1.1870
594. std MIN NOOP core_ws 6.1.1880
595. std MOD NOOP core_ws 6.1.1890
596. std MOVE NOOP core_ws 6.1.1900
597. std NEGATE NOOP core_ws 6.1.1910
598. std OR NOOP core_ws 6.1.1980
599. std OVER NOOP core_ws 6.1.1990
600. std POSTPONE NOOP core_ws 6.1.2033
601. std QUIT NOOP core_ws 6.1.2050
602. std R> NOOP core_ws 6.1.2060
603. std R@ NOOP core_ws 6.1.2070
604. std RECURSE NOOP core_ws 6.1.2120
605. std REPEAT NOOP core_ws 6.1.2140
606. std ROT NOOP core_ws 6.1.2160
607. std RSHIFT NOOP core_ws 6.1.2162
608. std S" skip" numeric 6.1.2165
609. std S>D NOOP core_ws 6.1.2170
610. std SIGN NOOP core_ws 6.1.2210
611. std SM/REM NOOP core_ws 6.1.2214
612. std SOURCE NOOP core_ws 6.1.2216
613. std SPACE NOOP core_ws 6.1.2220
614. std SPACES NOOP core_ws 6.1.2230
615. std STATE NOOP core_ws 6.1.2250
616. std SWAP NOOP core_ws 6.1.2260
617. std THEN NOOP core_ws 6.1.2270
618. std TYPE NOOP core_ws 6.1.2310
619. std U. NOOP core_ws 6.1.2320
620. std U< NOOP core_ws 6.1.2340
621. std UM* NOOP core_ws 6.1.2360
622. std UM/MOD NOOP core_ws 6.1.2370
623. std UNLOOP NOOP core_ws 6.1.2380
624. std UNTIL NOOP core_ws 6.1.2390
625. std VARIABLE defvar core_ws 6.1.2410
626. std WHILE NOOP core_ws 6.1.2430
627. std WORD NOOP core_ws 6.1.2450
628. std XOR NOOP core_ws 6.1.2490
629. std [ hstate=0 core_ws 6.1.2500
630. std ['] skipw numeric 6.1.2510
631. std [CHAR] skipw numeric 6.1.2520
632. std ] hstate=1 core_ws 6.1.2540
633. std #TIB NOOP core_ext_ws 6.2.0060
634. std .( skip) commentary 6.2.0200
635. std .R NOOP core_ext_ws 6.2.0210
636. std 0<> NOOP core_ext_ws 6.2.0260
637. std 0> NOOP core_ext_ws 6.2.0280
638. std 2>R NOOP core_ext_ws 6.2.0340
639. std 2R> NOOP core_ext_ws 6.2.0410
640. std 2R@ NOOP core_ext_ws 6.2.0415
641. std :NONAME NOOP core_ext_ws 6.2.0455
642. std <> NOOP core_ext_ws 6.2.0500
643. std ?DO NOOP core_ext_ws 6.2.0620
644. std AGAIN NOOP core_ext_ws 6.2.0700
645. std C" skip" numeric 6.2.0855
646. std CASE NOOP core_ext_ws 6.2.0873
647. std COMPILE, NOOP core_ext_ws 6.2.0945
648. std CONVERT NOOP core_ext_ws 6.2.0970
649. std ENDCASE NOOP core_ext_ws 6.2.1342
650. std ENDOF NOOP core_ext_ws 6.2.1343
651. std ERASE NOOP core_ext_ws 6.2.1350
652. std EXPECT NOOP core_ext_ws 6.2.1390
653. std FALSE spec=zero numeric 6.2.1485
654. std HEX HEX core_ext_ws 6.2.1660
655. std MARKER defusr core_ext_ws 6.2.1850
656. std NIP NOOP core_ext_ws 6.2.1930
657. std OF NOOP core_ext_ws 6.2.1950
658. std PAD NOOP core_ext_ws 6.2.2000
659. std PARSE NOOP core_ext_ws 6.2.2008
660. std PICK NOOP core_ext_ws 6.2.2030
661. std QUERY NOOP core_ext_ws 6.2.2040
662. std REFILL NOOP core_ext_ws 6.2.2125
663. std RESTORE-INPUT NOOP core_ext_ws 6.2.2148
664. std ROLL NOOP core_ext_ws 6.2.2150
665. std SAVE-INPUT NOOP core_ext_ws 6.2.2182
666. std SOURCE-ID NOOP core_ext_ws 6.2.2218
667. std SPAN NOOP core_ext_ws 6.2.2240
668. std TIB NOOP core_ext_ws 6.2.2290
669. std TO NOOP core_ext_ws 6.2.2295
670. std TRUE NOOP numeric 6.2.2298
671. std TUCK NOOP core_ext_ws 6.2.2300
672. std U.R NOOP core_ext_ws 6.2.2330
673. std U> NOOP core_ext_ws 6.2.2350
674. std UNUSED NOOP core_ext_ws 6.2.2395
675. std VALUE defval core_ext_ws 6.2.2405
676. std WITHIN NOOP core_ext_ws 6.2.2440
677. std [COMPILE] NOOP core_ext_ws 6.2.2530
678. std BLK NOOP block_ws 7.6.1.0790
679. std BLOCK NOOP block_ws 7.6.1.0800
680. std BUFFER NOOP block_ws 7.6.1.0820
681. std FLUSH NOOP block_ws 7.6.1.1559
682. std LOAD NOOP block_ws 7.6.1.1790
683. std SAVE-BUFFERS NOOP block_ws 7.6.1.2180
684. std UPDATE NOOP block_ws 7.6.1.2400
685. std EMPTY-BUFFERS NOOP block_ws 7.6.2.1330
686. std LIST NOOP block_ws 7.6.2.1770
687. std SCR NOOP block_ws 7.6.2.2190
688. std THRU NOOP block_ws 7.6.2.2280
689. std 2CONSTANT defdat double_ws 8.6.1.0360
690. std 2LITERAL NOOP double_ws 8.6.1.0390
691. std 2VARIABLE defvar double_ws 8.6.1.0440
692. std D+ NOOP double_ws 8.6.1.1040
693. std D- NOOP double_ws 8.6.1.1050
694. std D. NOOP double_ws 8.6.1.1060
695. std D.R NOOP double_ws 8.6.1.1070
696. std D0< NOOP double_ws 8.6.1.1075
697. std D0= NOOP double_ws 8.6.1.1080
698. std D2* NOOP double_ws 8.6.1.1090
699. std D2/ NOOP double_ws 8.6.1.1100
700. std D< NOOP double_ws 8.6.1.1110
701. std D= NOOP double_ws 8.6.1.1120
702. std D>S NOOP double_ws 8.6.1.1140
703. std DABS NOOP double_ws 8.6.1.1160
704. std DMAX NOOP double_ws 8.6.1.1210
705. std DMIN NOOP double_ws 8.6.1.1220
706. std DNEGATE NOOP double_ws 8.6.1.1230
707. std M*/ NOOP double_ws 8.6.1.1820
708. std M+ NOOP double_ws 8.6.1.1830
709. std 2ROT NOOP double_ws 8.6.2.0420
710. std DU< NOOP double_ws 8.6.2.1270
711. std CATCH NOOP exception_ws 9.6.1.0875
712. std THROW NOOP exception_ws 9.6.1.2275
713. std AT-XY NOOP facilities_ws 10.6.1.0742
714. std KEY? NOOP facilities_ws 10.6.1.1755
715. std PAGE NOOP facilities_ws 10.6.1.2005
716. std EKEY NOOP facilities_ws 10.6.2.1305
717. std EKEY<CHAR NOOP facilities_ws 10.6.2.1306
718. std EKEY? NOOP facilities_ws 10.6.2.1307
719. std EMIT? NOOP facilities_ws 10.6.2.1325
720. std MS NOOP facilities_ws 10.6.2.1905
721. std TIME&DATE NOOP facilities_ws 10.6.2.2292
722. std BIN NOOP file_ws 11.6.1.0765
723. std CLOSE-FILE NOOP file_ws 11.6.1.0900
724. std CREATE-FILE NOOP file_ws 11.6.1.1010
725. std DELETE-FILE NOOP file_ws 11.6.1.1190
726. std FILE-POSITION NOOP file_ws 11.6.1.1520
727. std FILE-SIZE NOOP file_ws 11.6.1.1522
728. std INCLUDE-FILE NOOP file_ws 11.6.1.1717
729. std INCLUDED "incfil file_ws 11.6.1.1718
730. std OPEN-FILE NOOP file_ws 11.6.1.1970
731. std R/O NOOP file_ws 11.6.1.2054
732. std R/W NOOP file_ws 11.6.1.2056
733. std READ-FILE NOOP file_ws 11.6.1.2080
734. std READ-LINE NOOP file_ws 11.6.1.2090
735. std REPOSITION-FILE NOOP file_ws 11.6.1.2142
736. std RESIZE-FILE NOOP file_ws 11.6.1.2147
737. std W/O NOOP file_ws 11.6.1.2425
738. std WRITE-FILE NOOP file_ws 11.6.1.2480
739. std WRITE-LINE NOOP file_ws 11.6.1.2485
740. std FILE-STATUS NOOP file_ws 11.6.2.1524
741. std FLUSH-FILE NOOP file_ws 11.6.2.1560
742. std RENAME-FILE NOOP file_ws 11.6.2.2130
743. std >FLOAT NOOP fp_ws 12.6.1.0558
744. std D>F NOOP fp_ws 12.6.1.1130
745. std F! NOOP fp_ws 12.6.1.1400
746. std F* NOOP fp_ws 12.6.1.1410
747. std F+ NOOP fp_ws 12.6.1.1420
748. std F- NOOP fp_ws 12.6.1.1425
749. std F/ NOOP fp_ws 12.6.1.1430
750. std F0< NOOP fp_ws 12.6.1.1440
751. std F0= NOOP fp_ws 12.6.1.1450
752. std F< NOOP fp_ws 12.6.1.1460
753. std F>D NOOP fp_ws 12.6.1.1460
754. std F@ NOOP fp_ws 12.6.1.1472
755. std FALIGN NOOP fp_ws 12.6.1.1479
756. std FALIGNED NOOP fp_ws 12.6.1.1483
757. std FCONSTANT defdat fp_ws 12.6.1.1492
758. std FDEPTH NOOP fp_ws 12.6.1.1497
759. std FDROP NOOP fp_ws 12.6.1.1500
760. std FDUP NOOP fp_ws 12.6.1.1510
761. std FLITERAL NOOP fp_ws 12.6.1.1552
762. std FLOAT+ NOOP fp_ws 12.6.1.1555
763. std FLOATS NOOP fp_ws 12.6.1.1556
764. std FLOOR NOOP fp_ws 12.6.1.1558
765. std FMAX NOOP fp_ws 12.6.1.1562
766. std FMIN NOOP fp_ws 12.6.1.1565
767. std FNEGATE NOOP fp_ws 12.6.1.1567
768. std FOVER NOOP fp_ws 12.6.1.1600
769. std FROT NOOP fp_ws 12.6.1.1610
770. std FROUND NOOP fp_ws 12.6.1.1612
771. std FSWAP NOOP fp_ws 12.6.1.1620
772. std FVARIABLE defvar fp_ws 12.6.1.1630
773. std REPRESENT NOOP fp_ws 12.6.1.2143
774. std DF! NOOP fp_ws 12.6.2.1203
775. std DF@ NOOP fp_ws 12.6.2.1204
776. std DFALIGN NOOP fp_ws 12.6.2.1205
777. std DFALIGNED NOOP fp_ws 12.6.2.1207
778. std DFLOAT+ NOOP fp_ws 12.6.2.1208
779. std DFLOATS NOOP fp_ws 12.6.2.1209
780. std F** NOOP fp_ws 12.6.2.1415
781. std F. NOOP fp_ws 12.6.2.1427
782. std FABS NOOP fp_ws 12.6.2.1474
783. std FACOS NOOP fp_ws 12.6.2.1476
784. std FACOSH NOOP fp_ws 12.6.2.1477
785. std FALOG NOOP fp_ws 12.6.2.1484
786. std FASIN NOOP fp_ws 12.6.2.1486
787. std FASINH NOOP fp_ws 12.6.2.1487
788. std FATAN NOOP fp_ws 12.6.2.1488
789. std FATAN2 NOOP fp_ws 12.6.2.1489
790. std FATANH NOOP fp_ws 12.6.2.1491
791. std FCOS NOOP fp_ws 12.6.2.1493
792. std FCOSH NOOP fp_ws 12.6.2.1494
793. std FE. NOOP fp_ws 12.6.2.1513
794. std FEXP NOOP fp_ws 12.6.2.1515
795. std FEXPM1 NOOP fp_ws 12.6.2.1516
796. std FLN NOOP fp_ws 12.6.2.1553
797. std FLNP1 NOOP fp_ws 12.6.2.1554
798. std FLOG NOOP fp_ws 12.6.2.1557
799. std FS. NOOP fp_ws 12.6.2.1613
800. std FSIN NOOP fp_ws 12.6.2.1614
801. std FSINCOS NOOP fp_ws 12.6.2.1616
802. std FSINH NOOP fp_ws 12.6.2.1617
803. std FSQRT NOOP fp_ws 12.6.2.1618
804. std FTAN NOOP fp_ws 12.6.2.1625
805. std FTANH NOOP fp_ws 12.6.2.1626
806. std F~ NOOP fp_ws 12.6.2.1640
807. std PRECISION NOOP fp_ws 12.6.2.2035
808. std SET-PRECISION NOOP fp_ws 12.6.2.2200
809. std SF! NOOP fp_ws 12.6.2.2202
810. std SF@ NOOP fp_ws 12.6.2.2203
811. std SFALIGN NOOP fp_ws 12.6.2.2204
812. std SFALIGNED NOOP fp_ws 12.6.2.2206
813. std SFLOAT+ NOOP fp_ws 12.6.2.2207
814. std SFLOATS NOOP fp_ws 12.6.2.2208
815. std (LOCAL) NOOP local_ws 13.6.1.0086
|
734. std LOCALS| NOOP local_ws 13.6.2.1795
|
816. std LOCALS| _local local_ws 13.6.2.1795
|
735. std ALLOCATE NOOP malloc_ws 14.6.1.0707
736. std FREE NOOP malloc_ws 14.6.1.1605
737. std RESIZE NOOP malloc_ws 14.6.1.2145
738. std .S NOOP progtools_ws 15.6.1.0220
739. std ? NOOP progtools_ws 15.6.1.0600
740. std DUMP NOOP progtools_ws 15.6.1.1280
741. std SEE NOOP progtools_ws 15.6.1.2194
742. std WORDS NOOP progtools_ws 15.6.1.2465
743. std ;CODE resunk progtools_ws 15.6.2.0470
744. std AHEAD NOOP progtools_ws 15.6.2.0702
745. std ASSEMBLER NOOP progtools_ws 15.6.2.0740
746. std BYE NOOP progtools_ws 15.6.2.0830
747. std CODE defusr progtools_ws 15.6.2.0930
748. std CS-PICK NOOP progtools_ws 15.6.2.1015
749. std CS-ROLL NOOP progtools_ws 15.6.2.1020
750. std EDITOR NOOP progtools_ws 15.6.2.1300
751. std FORGET NOOP progtools_ws 15.6.2.1580
752. std [ELSE] NOOP progtools_ws 15.6.2.2531
753. std [IF] bigif progtools_ws 15.6.2.2532
754. std [THEN] NOOP progtools_ws 15.6.2.2533
755. std DEFINITIONS NOOP searchord_ws 16.6.1.1180
756. std FORTH-WORDLIST NOOP searchord_ws 16.6.1.1595
757. std GET-CURRENT NOOP searchord_ws 16.6.1.1643
758. std GET-ORDER NOOP searchord_ws 16.6.1.1647
759. std SEARCH-WORDLIST NOOP searchord_ws 16.6.1.2192
760. std SET-CURRENT NOOP searchord_ws 16.6.1.2195
761. std SET-ORDER NOOP searchord_ws 16.6.1.2197
762. std WORDLIST NOOP searchord_ws 16.6.1.2460
763. std ALSO NOOP searchord_ws 16.6.2.0715
764. std FORTH NOOP searchord_ws 16.6.2.1590
765. std ONLY NOOP searchord_ws 16.6.2.1965
766. std ORDER NOOP searchord_ws 16.6.2.1985
767. std PREVIOUS NOOP searchord_ws 16.6.2.2037
768. std -TRAILING NOOP string_ws 17.6.1.0170
769. std /STRING NOOP string_ws 17.6.1.0245
770. std BLANK NOOP string_ws 17.6.1.0780
771. std CMOVE NOOP string_ws 17.6.1.0910
772. std CMOVE> NOOP string_ws 17.6.1.0920
773. std COMPARE NOOP string_ws 17.6.1.0935
774. std SEARCH NOOP string_ws 17.6.1.2191
775. std SLITERAL NOOP string_ws 17.6.1.2212
776.
777. _DEFINITIONS
778.
|
817. std ALLOCATE NOOP malloc_ws 14.6.1.0707
818. std FREE NOOP malloc_ws 14.6.1.1605
819. std RESIZE NOOP malloc_ws 14.6.1.2145
820. std .S NOOP progtools_ws 15.6.1.0220
821. std ? NOOP progtools_ws 15.6.1.0600
822. std DUMP NOOP progtools_ws 15.6.1.1280
823. std SEE NOOP progtools_ws 15.6.1.2194
824. std WORDS NOOP progtools_ws 15.6.1.2465
825. std ;CODE resunk progtools_ws 15.6.2.0470
826. std AHEAD NOOP progtools_ws 15.6.2.0702
827. std ASSEMBLER NOOP progtools_ws 15.6.2.0740
828. std BYE NOOP progtools_ws 15.6.2.0830
829. std CODE defusr progtools_ws 15.6.2.0930
830. std CS-PICK NOOP progtools_ws 15.6.2.1015
831. std CS-ROLL NOOP progtools_ws 15.6.2.1020
832. std EDITOR NOOP progtools_ws 15.6.2.1300
833. std FORGET NOOP progtools_ws 15.6.2.1580
834. std [ELSE] NOOP progtools_ws 15.6.2.2531
835. std [IF] bigif progtools_ws 15.6.2.2532
836. std [THEN] NOOP progtools_ws 15.6.2.2533
837. std DEFINITIONS NOOP searchord_ws 16.6.1.1180
838. std FORTH-WORDLIST NOOP searchord_ws 16.6.1.1595
839. std GET-CURRENT NOOP searchord_ws 16.6.1.1643
840. std GET-ORDER NOOP searchord_ws 16.6.1.1647
841. std SEARCH-WORDLIST NOOP searchord_ws 16.6.1.2192
842. std SET-CURRENT NOOP searchord_ws 16.6.1.2195
843. std SET-ORDER NOOP searchord_ws 16.6.1.2197
844. std WORDLIST NOOP searchord_ws 16.6.1.2460
845. std ALSO NOOP searchord_ws 16.6.2.0715
846. std FORTH NOOP searchord_ws 16.6.2.1590
847. std ONLY NOOP searchord_ws 16.6.2.1965
848. std ORDER NOOP searchord_ws 16.6.2.1985
849. std PREVIOUS NOOP searchord_ws 16.6.2.2037
850. std -TRAILING NOOP string_ws 17.6.1.0170
851. std /STRING NOOP string_ws 17.6.1.0245
852. std BLANK NOOP string_ws 17.6.1.0780
853. std CMOVE NOOP string_ws 17.6.1.0910
854. std CMOVE> NOOP string_ws 17.6.1.0920
855. std COMPARE NOOP string_ws 17.6.1.0935
856. std SEARCH NOOP string_ws 17.6.1.2191
857. std SLITERAL NOOP string_ws 17.6.1.2212
858.
859. _DEFINITIONS
860.
|
779. \ Revision history
|
861.
862. \ Revision history:
|
780. \ 0. 1st release to guinea pigs via comp.lang.forth
|
863. \ 0. 1st release to guinea pigs via comp.lang.forth
|
781. \ 1. Added multi-line comment 0 [IF]. Colored CHAR outside definitions.
782. \ 2. December 30th, 2003 - 12:55 Dirk Busch (dbu)
|
864. \ 1. Added multi-line comment 0 [IF]. Colored CHAR outside of definitions.
865. \ 2. Added support for LOCALS|. Changed to use blanks for whitespace.
866. \ 3. December 30th to January 1st, 2004 - Dirk Busch (dbu)
|
783. \ - Added dpans-path to configure the path to the dpans-files
784. \ - Added multi-line comments (( )) and comment: comment; as used in Win32Forth
785. \ - HTML crashed on files with long lines (more than 80 char's) - fixed
786. \ - replaced <code> tag with <pre> (work's better with Netscape 6)
|
867. \ - Added dpans-path to configure the path to the dpans-files
868. \ - Added multi-line comments (( )) and comment: comment; as used in Win32Forth
869. \ - HTML crashed on files with long lines (more than 80 char's) - fixed
870. \ - replaced <code> tag with <pre> (work's better with Netscape 6)
|
|
871. \ - Added some more words for better Win32Forth support
872. \ - renamed COL to FCOL since COL is used in Win32Forth
873. \ - renamed ,$ to (,$) since ,$ is used in Win32Forth
874. \ - renamed HEADER to HEADER_OUT since HEADER is used in Win32Forth
875. \ - changed FONTCOLOR to set the new color only if it's not the actual color
876. \ - Added COPYRIGHT to configure the copyright text witch is placed at the bottom of the HTML-File
877. \ - Added LINK-TO-ORG-FILE to configure the output of a hyperlink to the original File
878. \ - Added <!DOCTYPE> tag
|