diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a265cdc..665e07c 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,9 +2,9 @@ - + @@ -66,7 +66,7 @@ - + @@ -75,7 +75,7 @@ - + @@ -84,7 +84,7 @@ - + @@ -167,7 +167,7 @@ @@ -250,20 +250,6 @@ - - - - - - - - - - @@ -556,6 +542,20 @@ + + + + + + + + + + @@ -711,7 +711,7 @@ - + @@ -720,7 +720,7 @@ - + @@ -728,12 +728,12 @@ - + - + @@ -761,6 +761,13 @@ + + + + + + + @@ -775,9 +782,7 @@ - - - + @@ -832,9 +837,7 @@ - - - + @@ -864,9 +867,7 @@ - - - + @@ -926,37 +927,27 @@ - - - + - - - + - - - + - - - + - - - + @@ -968,54 +959,37 @@ - - - - - - + - - - + - - - + - - - + - - - + - - - + - - - + @@ -1027,35 +1001,31 @@ - - - + - - - + - + - + - + diff --git a/www/data/programs/desc/BefunGen/01_Manuals/BefunExec.markdown b/www/data/programs/desc/BefunGen/01_Manuals/BefunExec.markdown new file mode 100644 index 0000000..93a6a8d --- /dev/null +++ b/www/data/programs/desc/BefunGen/01_Manuals/BefunExec.markdown @@ -0,0 +1,60 @@ +BefunExec is a fast Befunge-93 interpreter. + +![BEFUNEXEC_MAINWINDOW](/data/programs/desc/BefunGen/01_Manuals/BefunExec_Main.png) + +BefunExec can either be controlled over the menu or by keyboard shortcuts. +You can read about the shortcuts and the command line parameters in the console window of BefunExec. + +##Program + +In the center you can see the program, depending on your options highlighted or not. +You can zoom in either with your mouse wheel or by dragging a selection box. With `Esc` can you go one zoom level back. +By pressing `R` can you reset the whole program and by pressing `Space` can you pause/un-pause it. +While he program s paused you can do a single step by pressing `Left` +You can also change the simulation speed with the shortcuts `1` to `5` and add breakpoints by clicking on a single command (breakpoints are displayed blue). + + > **Tip:** + > Access debug information like FPS and your current interpretation speed by holding `tab` + +##Stack + +On the left side is the current program stack, if you have enabled it you can see behind the numbers the ASCII representation of the number. + +##In/Output + +Every output is written into the output field and the console, you can also access all the output over the menu entry "show output". + +For the input there is an input buffer in place. You can enter a series of chars in the input-box and press the input button. +Your text is then in the input buffer and the next time the program wants to read a character it will take it from this buffer. +If the buffer is empty the program will pause until there is a character in it which it can read. + +When the programs reads a number on the other side will always pause the program and ask the user to enter a number. + +##Settings + +Over the menu you can change a few settings: + + - **Syntax Highlighting**: Choose your Syntax highlighting method + - **Follow cursor**: Zoom in and follow the PC automatically around + - **Show trail**: Show trail behind PC + - **ASCII stack**: Show ASCII characters in stack display + - **Skip NOP's**: Skip continuous White spaced + - **Debug mode**: While in debug mode you will be warned of operations that would never occur in a BefunGen created program (wrap-around-edge, pop empty stack ...) + +###Extended Syntax Highlighting + +![BEFUNEXEC_ESH](/data/programs/desc/BefunGen/01_Manuals/BefunExec_ESH_example.png) + +BefunExec can use BefunHighlight to highlight the program (= extended Syntax highlighting). +It will automatically choose so if the program isn't too big and you haven't explicitly specified another highlighting method. +Be aware that when you run on top speed and BefunExec is getting slowed down a lot by BefunHighlight it will automatically change the highlighting method. + +##Additional + +###Capture GIF + +![BEFUNEXEC_CAPTUREGIFDIALOG](/data/programs/desc/BefunGen/01_Manuals/BefunExec_CaptureGifDialog.png) + +With the menu point "Capture GIF" you can create an animated .gif animation of your running program. +You can set the amount of steps to capture and the animation delay between the steps. You can also set the final delay before the animation restarts. +There is also the "Automatic frame count" option, only use this if your program terminates in a reasonable amount of frames. \ No newline at end of file diff --git a/www/data/programs/desc/BefunGen/01_Manuals/BefunWrite.markdown b/www/data/programs/desc/BefunGen/01_Manuals/BefunWrite.markdown new file mode 100644 index 0000000..a27b36c --- /dev/null +++ b/www/data/programs/desc/BefunGen/01_Manuals/BefunWrite.markdown @@ -0,0 +1,81 @@ +BefunWrite is an IDE to write and compile TextFunge, once started you will see the main window: + +![BEFUNWRITE_MAINWINDOW](/data/programs/desc/BefunGen/01_Manuals/BefunWrite_Main.png) + +You can write your code in the center and see a summary of current constants/variables/methods on the right side. +On the bottom site you can also expand the tabs `Output` and `ErrorList`. + +In the code section you can see an example program (a simple hello world), feel free to edit this example or delete it completely. +You can safe your code in the menu or by pressing `STRG+S`. 3 different files will be created: + + - `projectname.tfp` : The project file, it contains settings and the path to the other files + - `projectname.tf` : The actual source-code + - `projectname.tfdv` : The initial display value (or empty if not defined) + +If you want to set an initial display value (see the topic `TextFunge` for more information) you can modify the tab `Display` beside the tab `code`. +To build the project simply choose a build configuration (Debug and Release are the defaults) and click `Build`. +The builded Befunge files will end up in the sub-folder `projectname\configname`. +To test the program you can also choose run, this will build the project and then open it in BefunExec. + +##Build configurations + +With the build configurations dialog you can modify the build process + +![BEFUNWRITE_SETTINGS](/data/programs/desc/BefunGen/01_Manuals/BefunWrite_Settings.png) + +> **Note:** +> +> - **PC** is the *Program Counter*, the current position in the program +> - **NOP-cells** are the unused parts of the program, they are neither variable space, nor commands. +> The PC will enter them and they should never be evaluated. + +###General + +> General BefunWrite Settings + + - **Name** + + ###Execution + + > BefunExec Settings + + - **Debugging Enabled**: Enable debugging options (warnings on unexpected behaviours) + - **Start Paused**: Starts the program non-running + - **Syntax highlighting**: Sets the preferred syntax highlighting method + - **Show chars in stack**: Show the ASCII chars in the stack + - **Follow PC**: Start with follow mode enabled + - **Skip Whitespace**: Skip continuous white-spaces + - **Initial speed**: Sets (the index) of the initial interpretation speed + - **Speed[x]**: The delay between cycles on speed level *x* + - **Show Tail**: Show a fading tail behind the actual PC + - **Lifetime Tail**: The time (in ms) until the tail has faded away + - **Start zoomed in on display**: Set the initial zoom fitting for the display + + ###Code Generation + + > BefunGen Settings + + - **Number literal representation**: The used algorithm for presenting number literals + - **Optimize double string-mode**: Try to combine two adjacent `"` together + - **Set NOP to special char**: Set NOP cells to a special character + - **Custom NOP char**: The special character for NOP cells (if used) + - **Horizontal compression**: Try to horizontally compress the program + - **Vertical compression**: Try to vertically compress the program + - **Minimum VarDecl. width**: The minimum width of a declaration block, increase this if your initialization-blocks grow in height. + - **Default VarDecl char**: The initial char (before initialization) of variable fields + - **Default TempDecl/TempResult char**: The initial char (before use) of temporary fields + - **Safe boolean cast**: When hard-casting a variable to boolean it will result in either a **1** or a **0** + - **Default local int/char/bool var value**: The initial value of a local variable *(should stay default)* + - **Initial disp char**: The initial character of the display fields + - **Display border value**: The character of the border around the display + - **Display border thickness**: The thickness of the border around the display + - **Prevent Display overflow**: When accessing coordinates outside of the display wrap around the edges. + - **Optimize static Expr**: Try to compile-time interpret simple expressions (4 * 4 + 4 ==> 20) + - **Remove unused methods**: Don't include methods that get never called + + > **Warning !** + > If **Prevent Display overflow** is not set you can write into your own program and cause *really* strange behaviour. + > If you choose this path you have to prevent an out-of-bounds display access for yourself. + + Be aware that it is wise to leave most code generation settings on their default values. + For the most cases only the settings **Set NOP to special char**, **Safe boolean cast** and **Prevent Display overflow** should be interesting. \ No newline at end of file diff --git a/www/data/programs/desc/BefunGen/02_TextFunge/01_Language.markdown b/www/data/programs/desc/BefunGen/02_TextFunge/01_Language.markdown new file mode 100644 index 0000000..e69de29 diff --git a/www/data/programs/desc/BefunGen/02_TextFunge/02_Display.markdown b/www/data/programs/desc/BefunGen/02_TextFunge/02_Display.markdown new file mode 100644 index 0000000..e69de29 diff --git a/www/data/programs/desc/BefunGen/02_TextFunge/03_Limitations.markdown b/www/data/programs/desc/BefunGen/02_TextFunge/03_Limitations.markdown new file mode 100644 index 0000000..e69de29 diff --git a/www/data/programs/desc/BefunGen/02_TextFunge/04_Tips and Tricks.markdown b/www/data/programs/desc/BefunGen/02_TextFunge/04_Tips and Tricks.markdown new file mode 100644 index 0000000..e69de29