vedi



vedi window


Editor

!To learn about "C" support in Vedi look at the chapter "Programming in C"!

some "highlights":

Buttons

new.png
Create a new project or create an empty file.

Special:
If in file system view pressing "shift"-new will create a "default" project on the current selected assembler file.

arrow_refresh.png
Refresh the current display tree (if you externally added files - e.g.).

Special:
Pressing "shift"- refresh will switch the tree to a filesystem view within the Vide directory.

page_go.png Load a file.
Pressing shift with the button, will reload the current edited file.

page_save.png Save the current file.
Pressing shift with the button, will "save as" - opens a file dialog.

text_columns.png
Pretty print the current source (assembler only).

noteworthy Bottom buttons

font_add.png
Increase font size of editor.

font_delete.png
Decrease font size of editor.

The other buttons should be selfexplanatory.

Assembling

Pressing the button: control_play_blue.png
starts the assembler with the current active file as input (file is automatically saved). If successfull, vecxi will automatically be started.
The messages of assi can be viewed in the bottom tab called "ASM messages":



message window


Pressing the button: bug_go.png
starts debugging the assembler with the current active file as input (file is automatically saved). If successfull, vecxi will automatically be started.
The messages of assi can be viewed in the bottom tab called "ASM messages". A breakpoint will be set automatically to the first valid instruction of the cartridge - dissi will popup and you can debug right away.

Pressing the button: server_go.png
starts the assembler with the current active file as input (file is automatically saved) and if successfull (and a vecxi instance is already running) injects the built binary file into the currently running vecxi. Vecxi is not reset while doing this, you just "change" the cartridge ROM while running. You can thus experiment with changes to your bin file on the fly without losing RAM data, PC address or breakpoints.

Ask/F1

  1. You can enter simple "expression" and use the ask field as a small calculator. Conversion between decimal, binary and hex is also supported.

  2. You can enter names of (Bruce Tomlin - defined) BIOS routines, and a (stay on top) window displays a small help

  3. You can enter Assembler mnemonics, and a help for the directive will be displayed

Placing the cursor over such a "text" within the source, will do the same.

Messages

Error/Warning/Optimization messages are related to the assembled source. They always consist of two lines of information:
Line 1: What happened?
Line 2: Where did it happen?

Doubleclicking on any of the two lines will jump to the source (will also open include files, if message is about an include).

The third tab on the bottom contains the listing output of the assembler. The Error/Warning/Optimization messages are also included in the "correct" places in the listing (although not double clickable to any effect).

Syntax highlighting

VIDE uses "Syntax" programmed by (c) Stephen Ostermiller. I slightly changed some code and did a flex grammar that covers some aspects of assi. This was my first contact with flex and grammars, so the results are not 100% and probably not very efficient either.

The expressions that are possible with parenthesis and macro usage are IMHO nearly impossible to cover with a regular expression based scanner. After all, who would identify an opcode lda that is puzzled together by a macro, like:

fillregister   macro reg, val
            ld\1   #val
      endm

   fillregister a, 1 ; set a to 1
   fillregister b, 2 ; set b to 2



syntax example window


Other features

Bookmarks

Using SHIFT and CTRL (windows/linux) or CMD (apple) "1"-"0" you can define bookmarks. Using CTRL (windows/linux) or CMD (apple) "1"-"0" you can jump to defined bookmarks.

Bookmarks are also listed in the corresponding "bookmark" tab at the bottom (you can also double click the table to jump to a bookmark)

Bookmarks can be used "accross" files.

Breakpoints

You can set and delete "simple" breakpoints (pc reaches the location) by clicking on the line number you want to set a breakpoint to. The line number will be shown in red. Clicking the line number again will switch the breakpoint off (toggle). The breakpoints are "file" related - vedi will remember breakpoints by the filename (path) it as set to. All "vedi"-breakpoints are also listed in a table under the tab "breakpoints" at the bottom. Double click on a breakpoints jumps to the file and location of that breakpoint. A popup on the table allows to delete breakpoints from the table.

Watches

You access a popup menu in the editor. You can chose to add a watch (for your next vecxi/dissi run) for the word you "popped up on". The popup is rather dumb, it adds a watch for anything that you chose - it does no testing whether it actually is a correct label.

Watches are added at the start of vecxi execution in the form of "hey dissi" comments for the corresponding line. In dissi however you will see only watches that make sense (meaning: for labels that actually exist).

All watches for the current file are listed at the bottom on the "watches" tab.

Note:
Breakpoints and watches can only defined for the next instance of emulation. You can not add/change/delete breakpoints or watches from the editor for the current running vecxi instance. You have to do that from dissi!

Navigation



Navigation panel


The panel includes mainly two functions:

All of these different kind of labels can be configured to be shown - or not. Especially if you build new code and mark all your "interesting" sections with the user label - you can navigate really efficiently in your code!

Jump

CTRL (windows/linux) or CMD (apple) "J" jumps to a line number.

Recolor

CTRL (windows/linux) or CMD (apple) "R" reapplies syntax highlighting.

Run/Debug

F5 runs the current project/file, F6 debugs the current project/file (same as the buttons).

VecFever support



VecFever support


In the upper bar of Vide there are the shown gui elements.

To use the VecFever in Vide for rapid development do the following:

Do not do it the other way around (first usb, than vectrex on - since than you use the VecFever as an USB-Drive, for our purpose that is not what we want, we want to use it as a RAMDISK)

If you assemble a binary now, the following will happen, depending on your configuration:

  1. Config Miscellaneous "automatically eject attached VecFever on compile success": checked

  2. Config Miscellaneous "automatically eject attached VecFever on compile success": unchecked