Apple-Befunge/befunge.html
2011-05-26 20:27:32 -05:00

107 lines
4.1 KiB
HTML
Executable File

<html>
<center><h1>Apple Befunge</h1>
<p> <a href="http://www.catseye.mb.ca/vintage/apple/befunge.html">Go&nbsp;to&nbsp;the&nbsp;Apple&nbsp;Befunge&nbsp;Web&nbsp;Site</a>
| <a href="http://www.catseye.mb.ca/vintage/apple/apple-befunge-dsk-1.zip">Download&nbsp;the&nbsp;Apple&nbsp;Befunge&nbsp;Disk&nbsp;Image&nbsp;1.0</a>
| <a href="http://geta.life.uiuc.edu/~badger/apple2.html">Obtain&nbsp;an&nbsp;Apple&nbsp;][+&nbsp;Emulator</a>
| <a href="http://www.catseye.mb.ca/esoteric/befunge/src/">Go&nbsp;Insane</a>
</center>
<hr>
<p>Apple Befunge is a retrolanguage for the Apple ][+
based mainly on <a href="http://www.catseye.mb.ca/esoteric/befunge/">Befunge-93</a>.
<h3>Differences</h3>
<p>The Apple ][+ has no lowercase characters. In Apple
Befunge, G, P and V do what g, p, and v do in Befunge-93.
<p>The Apple ][+ has no ` (backtick) symbol. Instead the
' (apostrophe) symbol is used (it's undefined in Befunge-93.)
<p>The Apple ][+ has no ~ (tilde) symbol. Instead the
= (equals sign) symbol is used (it's undefined in Befunge-93.)
<p>The Apple ][+ has no | (vertical bar) symbol. Instead the
letter I is used (it's undefined in Befunge-93.)
<p>The Apple ][+'s screen is only 40x24, not 80x25, and until
a scrolling version of the Apple Befunge debugger is made,
screen size limits program size.
<h3>Improvements</h3>
<p>Letters A through F represent values 10 through 15 respectively.
<p>The ; (semicolon) symbol begins and ends "ignoremode".
<p>If the <i>x</i> argument to G is negative, the result is PEEK(<i>y</i>).
If the <i>x</i> argument to P is negative, the result is POKE <i>y</i>, <i>d</i>.
The ] instruction pops an argument <i>a</i> off the stack; the result is CALL <i>a</i>.
These three instructions allow a direct interface to the rest of
the Apple ][+ system.
<h3>Implementations</h3>
<p>On the ESDOS-][-formatted
<a href="http://www.catseye.mb.ca/vintage/apple/apple-befunge-dsk-1.zip">Apple&nbsp;Befunge&nbsp;Disk&nbsp;Image&nbsp;1.0</a>
there is:
<ul>
<li> a full visual debugger/editor for Apple Befunge
called APPLE BEFUNGE EDITOR
<li> a less obtrustive but unfinished interpreter called APPLE BEFUNGE RUNNER
<li> and a handful
of Befunge programs which have been converted to Apple Befunge format.
</ul>
<p>Also in the ZIP archive which contains the disk image, are the source
codes (ASCII text) for APPLE BEFUNGE EDITOR and the 'diffs' for APPLE BEFUNGE RUNNER,
along with a copy of this HTML page.
<h3>Licsensing</h3>
<p>All Apple Befunge material is freely redistributable. If you
make a derivative work based on Apple Befunge or any of its tools,
all I ask is that you contact me so that we can link web pages
(or I can host your stuff on my site if you don't have a web page.)
<h3>Known Bugs</h3>
<p>In APPLE BEFUNGE EDITOR:
<p>The coordinate (39,23) can only contain blank space (not yet put
in code to draw instructions in that part of the screen, without
scrolling it. I know how to do it, I just haven't bothered.)
<p>Subtle bug in either % (modulo) or ' (greater than) or
<tt>hex.bf</tt> - not entirely sure which.
<h3>To Do List</h3>
<p>Finish the APPLE BEFUNGE RUNNER program
to execute an Apple Befunge program
non-visually, with more normal I/O for .,=&.
It needs to ask the user for a filename when run
(no command-line arguments in ESDOS ][.)
<p>A good reorganization of APPLE BEFUNGE EDITOR is in order. The push and pop subroutines
should probably be as near the beginning of the program as possible. Should hold more
constant values in variables. All the editor-dependent stuff should be in the same place
so it can be wiped out more easily by APPLE BEFUNGE RUNNER.
<p>Put a great many more example Apple Befunge programs on the disk image.
<p>Write an APPLE BEFUNGE TO APPLESOFT COMPILER. Will probably need
a deeper understanding of the tokenizing mechanism and the filesystem
to accomplish this, since I'll need to write type "A" files.
<p><hr>
<p><i>Last Updated Jul 3 &copy;2000 <a href="http://www.catseye.mb.ca/">Cat's Eye Technologies</a>.</i>
</html>