9th of February 2023 Vide list of changes

There is not yet a new version of Vide available – but I slowly get confused myself by all things I changed in the last year. Sooo – least I forget, I’ll provide a list of changes here.

There have been several people working with Vide in the last year – and using Vide for different purposes:

  • developing Vectrex ASM programs
  • developing Vectrex C programs
  • debugging/analysis/exploring other peoples cartridges (bin files)
  • debugging/analysis/exploring BIOS or building new BIOS versions
  • archeology
  • converting vectrex sources from other assemblery versions and comparing results
  • using the Vector drawing tool

This is GREAT! – People using Vide … and people using Vide means they find bugs and see opportunities to enhance Vide.

I have received much feedback and I usually (if time permits) react fast to improve Vide. If it takes long it usually means that it slipped my mind…

Many of these small changes are as yet undocumented, which is dangerous because in a few weeks time I will also likely forget what they were for… so for my own sake I’ll start some documentation here – and in case you are interested you can read this too.

Most people who asked for changes received a “Vide.jar” file and replaced their original file with the one provided so they could continue their work with the enhancements implemented.

In case you are interested in these changes, ask for such a file – and I will provide one. The next “official” Vide version is still a bit down the road.

Archeology – Compare Disassembled

I have been in contact with one of the original WT programmers. He had a stash of old WT-disks which he got digitized. On these disks were files with old versions of his former programming efforts on them.

He wanted to examine these files, compile them and analyse his former work (results are forthcoming, as he has not finished at this time). A recommendation from one of the other “Chris” led him to Vide…

During this work I think he was the first person who actually used one of the unkown features of Vide – formerly known as “dissi compare” and now called “Compare Disassembled”.

Basically this tool combines two instances of “offline” disassemblers (dissi) and enables you to compare two binary files as “vectrex” disassemblies. This tool has “always” been a part of Vide – but now that someone else but me actually USED it -> it starts to shine!

There have been many small updates to this, it is much more usefull now (and much more user friendly).

  • as with all disassembler instances it now supports syntax highlighting (same colors as in the editor)
  • it shows the number/address of differences
  • you can jump to the next/previous difference
  • you can switch between binary and source compare
  • you can enable/disable synced scrolling
  • file handling has been improved
    default directory handling
    file watchers to inform the user of changes
    input of filename via textfield
    messages whether a files was correctly loaded
    disable files
    navigation with hot keys
  • you can now configure which “BIOS” source base is used for disassembly (original WT-BIOS names or Bruce Tomlins names)

Archeology – Editor/Assembler

In order to check out binary version of his programs he needed to compile some of his old sources. The formerly used assembler by WT was called “ACT09 assembler”.
I do not know if there possibly is an emulator of the old development machines available… but as a result of his project, Vide now has some added compatibility for these old sources:

  • hex numbers are now recognized in a format like 01fffH (not correctly syntax highlighted though)
  • index adressing without “,” are now allowed for the assembler (not correctly syntax highlighted though), the format like “LDA X” (meaning “LDA ,X)”
  • added pseudo opcode “setdp” (same as the “old” direct)
  • added support for tfr of unequal sizes (like “TFR X,B”) (not correctly syntax highlighted though)

Analyse, Discoveries
Peer is on a roll the lasts months as he explored several Vectrex peculiarities as e.g.:

  • behaviour of the Vectrex “wobble” in relation to the net frequency
  • behaviour of DAC tolerance / variations
  • extreme brightness settings / drift
  • 6803/6809 support
  • buildining own BIOS variants
  • analysing/disassembling Vectrex cartridges “programs” (Test Cart, Bedlam, BIOS, Hyperchase…)

Since he is a likable person and shares/discusses his discoveries – I usually get the opportunity to fix or implement his research results into Vide. This time around:

  • added support for wobble (according to Peers theory) (16th of October 2022, Wobble, Jitter or Stable?)
  • added support for DAC tolerance (2022 December 23rd – PrintStr (3) – DAC)
  • added support for extreme brightness settings (and some “zeroing”-effects) (13th of January 2023 – For Peer!)
  • fixed some bugs when debugging custom BIOS variants
  • added support to export Vectrex data statements of all memory regions (including RAM)
    (new function in the debugger CLI “exportData”)
  • various fixes to the disassembler (most introduced with the color syntax highlighting in the debugger)
  • added RUDIMENTARY support to read LST files of lwmasm to add in the disassembly of binaries

C-Support

  • on request added “version handling”.
  • version number is added to the generated “bin” file
  • version number is taken from the project file
  • the version number can be changed if in the “C” sources you (anywhere) place something like:
    #define VERSION 1.20
  • two defines are available (supplied by Vide to the compiler):
    P_VERSION_80
    and
    P_VERSION_0
    Which are both strings containing the current version number, one is zero terminated, the other… well – guess!
  • additionally the version can also be set from assembler with a new pseudo opcode (e.g.):
    version 1.20
  • the default option “-fno-strict-overflow” is now set when compiling
    this prevents a seldom possible “bug” produced by gcc when handling code like:
    unsigned int x = 0;
    while(1) { if (++x == 0) do_something(); }
    (of course, this was discovered by Peer)

Debugging / Assembler / Emulation

  • speed limit in configuration now is a percent value (you can slow down or speed up emulation)
  • added the ability to set a breakpoint in the debugger when T2 expires (easy way to find the “main loop”)
  • brightness of emulation decreased slighlty to be more similar to a real Vectrex
  • added a “stackwatch” (breakpoint) to the debugger (CLI only)
    you enter an address and value, that address is checked “each round” whether the stack address is equal to the given value, if not -> a breakpoint is triggered.
    This functionality is GREAT! to find stack leaks!

User friendly stuff

Vide can be configured to remember its last used directories or use a fixed (configurable) base directory.

In the editor, load with CTRL or ALT or CMD pressed -> loads/compiles/executes the loaded file in one go.

In the editor/disassambler and emulator only sensible file types are shown per default.

Other Bug Fixes

  • with optimization switched on, possibly an endless loop could occur while optimizing a JMP to a BRA -> fixed
  • corrected handling for pseudo opcodes “opt” and “noopt”
  • fixed a bug, that tracki would not save configurations
  • debugger under certain conditions did not display all memory locations (after a forced CAST)

3 thoughts on “9th of February 2023 Vide list of changes

  1. razmataz

    Well, if I’m the only one on OSX, it may not be worth coding anything for me, I’ll stay on Vide 2.0.2, which works under Venturea with Open JDK.
    On the other hand a “Nice emulation” is not really necessary, what matters is to be able to check your code running at the right speed and use the routines generated by the Vacuum tool!!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.