git @ Cat's Eye Technologies FBBI / rel_1_0_2015_0729
Convert docs to Markdown. Add README and LICENSE. --HG-- rename : doc/fbbi.html => doc/fbbi.md Chris Pressey 10 years ago
4 changed file(s) with 148 addition(s) and 113 deletion(s). Raw diff Collapse all Expand all
0 Copyright (c)1998-2011 Chris Pressey, Cat's Eye Technologies.
1 All rights reserved.
2
3 Redistribution and use in source and binary forms, with or without
4 modification, are permitted provided that the following conditions
5 are met:
6
7 1. Redistributions of source code must retain the above copyright
8 notices, this list of conditions and the following disclaimer.
9 2. Redistributions in binary form must reproduce the above copyright
10 notices, this list of conditions, and the following disclaimer in
11 the documentation and/or other materials provided with the
12 distribution.
13 3. Neither the names of the copyright holders nor the names of their
14 contributors may be used to endorse or promote products derived
15 from this software without specific prior written permission.
16
17 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING, BUT NOT
19 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
20 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
21 COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
22 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
23 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
27 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 POSSIBILITY OF SUCH DAMAGE.
0 FBBI
1 ====
2
3 This is FBBI, the Flaming Bovine Befunge-98 Intepreter — the "first and
4 worst" of the [Funge-98](http://catseye.tc/node/Funge-98) interpreters available.
5
6 It's actually not so bad anymore, after a
7 [patch-applying and bug-killing session back in 2011](http://catseye.tc/node/OMG_WTF_FBBI_1.0_SIAS_EVVK!).
8 Still, it should probably not be your first choice for a Befunge-98 interpreter,
9 nor does it claim to be the reference implementation of the language. It was
10 just an early one.
11
12 See the file [doc/fbbi.md](doc/fbbi.md) for FBBI's documentation.
13
14 FBBI is open-source software, distributed under a BSD-style license. See the
15 file [LICENSE](LICENSE) for more information.
+0
-113
doc/fbbi.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
1 <!-- encoding: UTF-8 -->
2 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5 <title>FBBI: The Flaming Bovine Befunge-98 Interpreter</title>
6 <!-- begin html doc dynamic markup -->
7 <script type="text/javascript" src="/contrib/jquery-1.4.1.min.js"></script>
8 <script type="text/javascript" src="/scripts/documentation.js"></script>
9 <link rel="stylesheet" type="text/css" href="/stylesheet/catseye.css" />
10 <link rel="stylesheet" type="text/css" href="/stylesheet/index.css" />
11 <link rel="stylesheet" type="text/css" href="/stylesheet/infopage.css" />
12 <!-- end html doc dynamic markup -->
13 </head>
14 <body>
15
16 <h1>FBBI: The Flaming Bovine Befunge-98 Interpreter</h1>
17
18 <p>Version 1.0. Copyright ©1998-2011 Cat's Eye Technologies. All rights reserved.</p>
19
20 <h2>Introduction</h2>
21
22 <p><dfn>FBBI</dfn> is an interpreter for the Befunge-98 language
23 as defined by the <a href="http://catseye.tc/projects/funge98/">Funge-98 Final Specification</a>,
24 written in 100% ANSI C, and placed under a BSD-style license.</p>
25
26 <h3>Funge-98 Interpreter Information</h3>
27
28 <p>FBBI's handprint is 0x46424249 ('FBBI'). FBBI v1.0 implements the fingerprints
29 <a href="http://catseye.tc/projects/funge98/library/NULL.html">0x4e554c4c NULL</a>
30 and <a href="http://catseye.tc/projects/funge98/library/ROMA.html">0x524f4d41 ROMA</a>.</p>
31
32 <h3>Usage</h3>
33
34 <p>See the header comment of <code><a href="../src/fbbi.c">fbbi.c</a></code> for
35 definitive information about usage.</p>
36
37 <h3>History</h3>
38
39 <p>This is version 1.0 of the Flaming Bovine Befunge-98 Interpreter.
40 See the header comment of <code><a href="../src/fbbi.c">fbbi.c</a></code> for
41 definitive version history information.</p>
42
43 <h3>Conformancy and Implementation Notes</h3>
44
45 <p>Due to the nature of reality, this list may not be complete.</p>
46
47 <ul>
48 <li>Modulo the lovely ambiguities in the Funge-98 Final Specification, this version of FBBI appears to conform to it.</li>
49 <li>Perhaps more materially, this version of FBBI substantially passes the <a class="external" href="http://users.tkk.fi/~mniemenm/befunge/mycology.html">Mycology</a>
50 test suite. See the header comment of <code><a href="../src/fbbi.c">fbbi.c</a></code> for detailed information.</li>
51 <li>Because FBBI is written in ANSI C, end-of-line sequences which consist of a single CR
52 may not be readable on MS-DOS machines. FBBI's strict ANSI policy can be undefined
53 in <code>config.h</code>, in which case it should compile to use binary file mode under MS-DOS.</li>
54 <li>The stack stack, and each stack, is of a user-specified size, not dynamic.</li>
55 <li><code>A-Z</code> semantic stacks are limited to 26 overloads each.</li>
56 <li><code>h</code>, <code>l</code>, and <code>m</code> are all Trefunge-specific, and thus are not implemented
57 in FBBI, because FBBI only implements Befunge-98.</li>
58 <li>FBBI does not implement Concurrent Funge, so <code>t</code> is not implemented either.</li>
59 <li>The C source code for the interpreter should be 100% ANSI C (except where noted above
60 in regards to CR as a sole end-of-line marker on MS-DOS systems.)</li>
61 <li>Compliation of this version of FBBI has been tested only under gcc 4.4.5 on Ubuntu 10.10.</li>
62 </ul>
63
64 <h3>Included Befunge-98 Example Programs</h3>
65
66 <ul>
67 <li>
68 <code>eg/binary.b98</code>
69 <p>Tests to see if reading a file in, binary-mode, actually works.</p>
70 </li>
71 <li>
72 <code>eg/finger.b98</code>
73 <p>Demonstrates NULL and ROMA fingerprints with <code>(</code> and <code>)</code>.</p>
74 </li>
75 <li>
76 <code>eg/hello.b98</code>
77 <p>Demonstrates SGML-style spaces in stringmode.</p>
78 </li>
79 <li>
80 <code>eg/randdna.b98</code>
81 <p>Perfect for synthesizing random organisms!</p>
82 </li>
83 <li>
84 <code>eg/script.b98</code>
85 <p>Demonstrates FBBI's -script command line option.</p>
86 </li>
87 <li>
88 <code>eg/cgi.b98.cgi</code>
89 <p>Another Befunge-98 script; this one should run as a CGI.</p>
90 </li>
91 <li>
92 <code>eg/trim-out.b98</code>
93 <p>Tests to see if writing a files strips trailing spaces and newlines.</p>
94 </li>
95 <li>
96 <code>eg/under.b98</code>
97 <p>Test for <code>u</code> and storage offset.</p>
98 </li>
99 </ul>
100
101 <h3>Acknowledgements</h3>
102
103 <p>Thanks to Sam Holden for providing the initial version of the Makefile.</p>
104
105 <p>Thanks to Jeffrey Lee for providing his bug-fixing patches.</p>
106
107 <p>Thanks to all those on the Befunge and/or Esolang mailing lists for their bug reports, the fixes for which made their way into patches.</p>
108
109 <p>Thanks to Matti Niemenmaa for writing the Mycology Befunge-98 test suite.</p>
110
111 </body>
112 </html>
0 FBBI: The Flaming Bovine Befunge-98 Interpreter
1 ===============================================
2
3 Version 1.0. Copyright ©1998-2011 Cat's Eye Technologies. All rights
4 reserved.
5
6 Introduction
7 ------------
8
9 FBBI is an interpreter for the Befunge-98 language as defined by the
10 [Funge-98 Final Specification](http://catseye.tc/projects/funge98/),
11 written in 100% ANSI C, and placed under a BSD-style license.
12
13 ### Funge-98 Interpreter Information
14
15 FBBI's handprint is 0x46424249 ('FBBI'). FBBI v1.0 implements the
16 fingerprints [0x4e554c4c
17 NULL](http://catseye.tc/projects/funge98/library/NULL.html) and
18 [0x524f4d41 ROMA](http://catseye.tc/projects/funge98/library/ROMA.html).
19
20 ### Usage
21
22 See the header comment of `fbbi.c` for definitive information about
23 usage.
24
25 ### History
26
27 This is version 1.0 of the Flaming Bovine Befunge-98 Interpreter. See
28 the header comment of `fbbi.c` for definitive version history
29 information.
30
31 ### Conformancy and Implementation Notes
32
33 Due to the nature of reality, this list may not be complete.
34
35 - Modulo the lovely ambiguities in the Funge-98 Final Specification,
36 this version of FBBI appears to conform to it.
37 - Perhaps more materially, this version of FBBI substantially passes
38 the [Mycology](http://users.tkk.fi/~mniemenm/befunge/mycology.html)
39 test suite. See the header comment of `fbbi.c` for detailed
40 information.
41 - Because FBBI is written in ANSI C, end-of-line sequences which
42 consist of a single CR may not be readable on MS-DOS machines.
43 FBBI's strict ANSI policy can be undefined in `config.h`, in which
44 case it should compile to use binary file mode under MS-DOS.
45 - The stack stack, and each stack, is of a user-specified size, not
46 dynamic.
47 - `A-Z` semantic stacks are limited to 26 overloads each.
48 - `h`, `l`, and `m` are all Trefunge-specific, and thus are not
49 implemented in FBBI, because FBBI only implements Befunge-98.
50 - FBBI does not implement Concurrent Funge, so `t` is not implemented
51 either.
52 - The C source code for the interpreter should be 100% ANSI C (except
53 where noted above in regards to CR as a sole end-of-line marker on
54 MS-DOS systems.)
55 - Compliation of this version of FBBI has been tested only under gcc
56 4.4.5 on Ubuntu 10.10.
57
58 ### Included Befunge-98 Example Programs
59
60 - `eg/binary.b98`
61
62 Tests to see if reading a file in, binary-mode, actually works.
63
64 - `eg/finger.b98`
65
66 Demonstrates NULL and ROMA fingerprints with `(` and `)`.
67
68 - `eg/hello.b98`
69
70 Demonstrates SGML-style spaces in stringmode.
71
72 - `eg/randdna.b98`
73
74 Perfect for synthesizing random organisms!
75
76 - `eg/script.b98`
77
78 Demonstrates FBBI's -script command line option.
79
80 - `eg/cgi.b98.cgi`
81
82 Another Befunge-98 script; this one should run as a CGI.
83
84 - `eg/trim-out.b98`
85
86 Tests to see if writing a files strips trailing spaces and newlines.
87
88 - `eg/under.b98`
89
90 Test for `u` and storage offset.
91
92 ### Acknowledgements
93
94 Thanks to Sam Holden for providing the initial version of the Makefile.
95
96 Thanks to Jeffrey Lee for providing his bug-fixing patches.
97
98 Thanks to all those on the Befunge and/or Esolang mailing lists for
99 their bug reports, the fixes for which made their way into patches.
100
101 Thanks to Matti Niemenmaa for writing the Mycology Befunge-98 test
102 suite.