Wabbitcode IDE
User Manual

Editor written by Donald Straney, assembler by
Spencer Putt and Donald Straney.
Icons from the GNOME and Tango projects
A product of Revolution Software


Introduction

Wabbitcode is a complete IDE for TI's line of Z80 graphing calculators. Features include
support for projects with custom build sequences, a tabbed interface, syntax highlighting, export
formats for every major Z80 calculator (82 and 85 have not been tested), a code counter, powerful
editor and assembler macros, and more.


New features

See NEWS for new features in this version.


Coding features

Assembly

The different assembly commands are listed in the Assemble menu.


Build program (or F5) either compiles the currently open file,
or if a project is open, runs the project's build sequence.


Create symbol table (or F6) creates an include file with the names
and values of all the labels in the currently open file.


Run code counter shows the minimum execution time, maximum execution
time, and size of the SELECTED text. Macros, directives, and pre-ops
are ignored. The execution time counts DO NOT take into account the logic
of the program (such as the number of times a loop executes), only the
minimum and maximum execution time of each instruction.


Show program statistics shows some basic information about the currently
open file when assembled, such as the number of included files, the code
size, the data size, etc.


Generate listing creates a file with a detailed listing of the contents
of the current file, with the address and hex values for each line of code.


Projects

Projects are an easy way to group together multiple source files that are
part of one program or a larger project. When a project file is created,
everything in the directory where it is saved is considered part of the
project. When the project is opened, these files are shown in a panel
on the left. Double-clicking any of the files here will open them in
Wabbitcode (or the appropriate program if it isn't a source file).


Besides providing a way to see and open files quickly, projects also allow
you to use build sequences to compile projects. Some programs that are
especially large or involve multiple files on the calculator need to be
compiled in a specific way. With MLC86, for example, a symbol table had
to be created from each of the data files before assembling each of the
code files. With build sequences, a list of steps to compile the project
is created - each of these steps is assembling a file, creating a symbol
table from a file, or running an external program. When the project is
open, using "build program" will run the build sequence for the project
(unless it's empty).


The build sequence is set by choosing Project options from the
Project menu. From here, steps can be added, removed, or edited, and
their order can be changed.


The "run command" step is slightly special. Because of portability issues,
Wabbitcode uses an internal parser to separate the arguments for each
command, instead of passing it to a native shell to be executed. The internal
parser is very simple and assumes that arguments are separated by spaces,
although an argument (and the executable name) can have spaces in it if they're
surrounded by quotes - escaping is NOT supported. This also means that you can't
use special shell functions like input and output redirection, pipes, two commands
on one line, etc. Here are some examples of commands that WON'T work:

ls | grep 'abc'
echo "abc" > file
cd parser && make

If a command needs any of these features, it should be put into a batch file or
shell script (depending on your operating system), which should then be started
by a "run command" step. Each command will start with the project's directory
as the working directory. Any output (on stdout OR stderr) produced by the command
will show up in the assembly messages, and the "stop assembly" button can be
used to kill the command just as with the assembler.


Editing Features

Wabbitcode contains a few special code editing features that are used
either through the Edit menu or the editor settings (choose General from the
Settings menu).


The Make uppercase, Make lowercase, Make title case, and Invert case commands
on the Edit menu are used for changing the case of the selected text.


Go to line and Go to label, both on the Edit menu, will go to a specific numbered
line, or to the place where a label is defined.


Automatic indentation will insert the indentation from the previous line when a new line
is started. This is turned on and off from the editor settings.


Macros

You can use editor macros to automate repetitive tasks, such as formatting a list of data or
converting lines of text to strings. To record a macro, first press the Record button in the
toolbar or select Record macro from the Macros menu. The recorded keypresses will be shown
in the status bar. When done, press the Record button again and you will be asked for a
name for the new macro.


The actions that are recorded are:
Typing or pasting text
Deleting text (with backspace or delete)
Moving up, down, left, or right with the arrow keys
Moving the start or end of a line


To run a macro, press the Run button on the toolbar or select Run macro from the
Macros menu, then choose which macro to run, and how many times to run it. For example, if
you've recorded a macro for formatting one line of a list, and there are 100 lines left to format,
you can run the macro 100 times to get it done all at once. You can also undo all the effects of
a macro by pressing the Undo button after it has run.


To delete or rename a macro, select Manage macros from the Macros menu.


Feedback

I'd be happy to hear any questions or comments you have, and
feel free to e-mail me any time at burntfuse@gmail.com. You can also post on the forum
for this project here. If you're sending me a bug report, make it as detailed as possible,
otherwise it's just annoying for both of us ("Your program doesn't work" or "Your program crashed"
is not good enough).

See the the README for a list of credits.


Hope you like it!
- Don Straney (burntfuse)