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)
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!!
Added a new version to the download page – pls try that one!
Fantastic as I do not think I need these I will wait until full release.