- added S O U to dissi table

- Feb 2026
Corrected "seek" in cycle watch


Mail von Peer:
Hi,
zur Info: unser gcc6809 hat einen mini bug in der Annotation der Zyklen in den *.lst und *.rst assembly files. Push und Pull haben eine cycle-count von 5 + Anzahl Bytes, die gepushed oder gepulled werden. Der gcc6809 annotiert push und pull in den Listings aber mit einem cycle-count von 5 + Anzahl Register, die gepushed oder gepulled werden.
   220F 34 40         [ 6]   91             PSHS    u                                                                            ; ?                                                                                                                                                                                       

   2211 35 40         [ 6]   92             PULS     u                                                                            ; ?                                                                                                                                                                                       

Ist unkritisch, da nur Annotation. Aber nervig. Hat mich  ein wenig Zeit gekostet. Habe am Timing einer Routine gearbeitet und dabei immer wieder die Counts in dem Listing gezählt. Die „stimmten“ für meine Zwecke, aber auf dem echten Gerät und in Vide sah alles anders aus. Bis ich dann gemerkt habe, dass die Zahl beim push und pull in dem Listing nicht korrekt war 😊

n diesem Sinne, viele Grüße,
Peer

 

 



You know how when Vide's emulator detects vectors being drawn offscreen, and it draws a bloom of light on the edge of the screen... well today I was writing code to reduce the intensity of vectors as the object they were in approached and crossed the edge of the display... and I noticed that even with the line brightness way down approaching zero, the off-screen bloom remained at full intensity rather than adapting to the actual intensity of the lines that were being drawn off-screen...

It's a very minor discrepancy between the emulation and the real hardware, and probably not worth the time to implement, but maybe it is worth a comment at the foot of the 'to do' list...

By the way I started another effort at drawing tailgunner ships and I'm actually making some progress this time.  Not quite fast enough yet but sufficiently faster than previous efforts that I see light at the end of the tunnel.

G




https://www.silabs.com/developer-tools/usb-to-uart-bridge-vcp-drivers



done
remove multiple middle points


bug veccy
when switching to "not edit on select" and then "new" -> then the last selected vectorlist can not be selected again while in that mode

todo impleement: Search in RAM or rom

Bookmarks werden nicht immer am Rand angezeigt

STILL BUG
Vide does for whatever reason not support switching the imager off!
See c sources done for graham

Peer DRIFT see emails















done 
 raster panel copy and paste
 vector panel copy and paste
 pitrex terminal and what goes with it (availablility in all windows)


done:
imager support pitrex

done
to do scan for serial pitrex, when a com port is selected every x seconds and autoconnect

done
Unkown memory - dissi shows 0 - emulator gets $ff

done: RESET Button on terminal

done:
   48k roms -> automatically to 48 mode when loaded


->


Done:
- changed so that the profiler is not reset at the start of each emulation period
- added a profiler reset button


DONE:
(((((((((((((((((((((((((( INCLUDED
… Habe meine Meinung inzwischen geändert. Das ist doch ein (weiterer) Bug im gcc6809 und hat nichts mit undefined behavior bei overflow zu tun,
 wie ich zunächst dachte. Der Bug ist in der Optimierung -ftree-vrp, die ab Stufe -O2 aktiv ist. 
Also nehme man ab jetzt noch eine weitere Compiler Option hinzu, um diese Optimierung auszuschalten: -fno-tree-vrp

Viele Grüße,
Peer

________________________________
Von: Johannsen, Peer <peer.johannsen@hs-pforzheim.de>
 hier ein kleiner "Bug" Brain Teaser aus der Vectrex Welt. Der gcc6809 übersetzt (mit Optimierung -O2) folgenden C-Code (einfache Kopier-Routine)

      unsigned int* s = (unsigned int*) 0xa000;
      unsigned int* d = (unsigned int*) 0xf000;
      long unsigned int c = 4096;
      do
      {
            *(d++) = *(s++);
      }
      while (--c);

in folgenden Assembler-Code

      ldu #0xa000
      ldx #0xf000
loop: ldb ,u+
      stb ,x+
      bra loop

Argh! So was Blödes! Und das Allerschlimmste, das ist noch nicht einmal ein Bug!!! Mehr als ärgerlich ☹

Viele Grüße,
Peer
((((((((((((((((((((((((

DONE:
Peer Mail 6.12.2023
Moin mal wieder,

zur Info: Habe einen weiteren Bug im gcc6809 entdeckt. 
Wenn man C-Labels und goto statements verwendet, dann kann es in bestimmten Fällen ab 
Optimierungsstufe -O2 dazu kommen, dass falsch optimierter Code entsteht. 
Liegt an der „common subexpression elimination“. Ganz grob:

 <code>;
label:
do
{
 <common subexpression>;
  <code>;
}
while (whatever);
<code>;
goto label;

kann zu folgendem fehloptimiert werden:
<code>;
<common subexpression>;
label:
do
{
  <code>;
}
while (whatever);
<code>;

goto label;

Sollte sein:
<code>;
label:
<common subexpression>;
do
{
  <code>;
}
while (whatever);
<code>;
goto label;

Hat mich jetzt eine Stunde gekostet, herauszufinden, dass es nicht an meinem Code lag, 
sondern am gcc6809. Workaround: man unterdrücke die entsprechende Optimierung.

gcc6809 -O2 -fno-gcse …


Habe das jetzt mal in meine Skripte mit aufgenommen. 
Kannst da überlegen, ob Du das auch so in Vide einbrennen willst. 
Zusätzlich habe ich dort übrigens auch noch die Option -fno-ipa-reference, 
da auch hier der gcc6809 bei der zugehörigen Optimierung einen Bug hat. 
Habe die Details vergessen, aber das müsste ich Dir auch schon vor längerer Zeit mal 
geschickt habe und ist in Vide wahrscheinlich auch schon so drin.

Ceterum censeo: Wie geht’s, wie steht’s, und was machst Du so? 😉
Viele Grüße,
Peer


---

done:
-> Included in C Directory
Peer Mail -> PrintShips Reg U in C!!!

Siehe Mail 18.11.2023
Neue Linker dateien!


---

Frage, bzw. Suggestion: In der Config kann man ja das „Startup-Binary“ einstellen, 
welches beim Starten von Vide in den Emulator geladen wird. 
Gibt es hier auch den Modus „nimm einfach das Binary, welches als letztes im Emulator gelaufen ist“?

 


done:
Better late than never feedback... you know this feature where you can essentially RESET the VECX by holding SHIFT when you click PLAY?  
If you do that with an Akalabeth or Telengard cart, it just loops at the boot screen.  
I'm guessing it doesn't load the banks correctly or something, but it is just one binary file.  
Must not retain the bankswitching scheme to use?
Bild

Is there a way to set the default directory?  Or to make it start at the last directory it opened a project from?
Telengard compiles, now hopefully I can reprogram the cart from my special adapter like I can with Vectorblade 😄 Testing on the real vec in a sec.


done:
telengard text...One issue I noticed with Telengard is that if you enter that stats? menu while music is playing, the last note kind of plays continuously until you exit.

done
telengard -> name enter also digital


done:
telengard , when file not in "structure" (outside of vide that is) than after a compile it does not sart



CLI from ini file -> disable

done: ldd #$0000        anstelle von       ldd #$00 

done: Art break-point setzen, der die Ausführung anhält, sobald eine bestimmte Adresse gelesen oder geschrieben wird?

done: untested
- in Vecci add "quicksave" buttons - to save to the already known name without file choser

done:
- p.p.s. it could be nice if you add jumping from one bookmarks to another using Ctrl Arrow Up/Down. 
         And also please highlight lines with bookmarks (or mark them somehow).
            HotKey.addMap(KeyEvent.VK_UP, java.awt.event.KeyEvent.CTRL_DOWN_MASK, "NextBookmark", "Editor");
            HotKey.addMap(KeyEvent.VK_DOWN, java.awt.event.KeyEvent.CTRL_DOWN_MASK, "PreviousBookmark", "Editor");

- TODO:
    Moin!

    > Es ist ziemlich selten, dass man Branches tatsächlich als ZAHLEN angibt - und noch seltener, dass man diese Zahlen mit anderen
    Assemblern vergleicht.
    Ich  weiß. Nur ich mache solch einen Quatsch und interessiere mich dann auch noch dafür 😉
    Hier gleich noch eine Frage/Beobachtung von diesem Kaliber: Als (inoffizielle) Unter-Einsprungpunkte von Rot_VL_Mode gibt es anscheinend 
    Rot_VL_M_dft und Rot_VL_dft. Allerdings nicht einheitlich dokumentiert, wenn man Vide und die Tomlin Sourcen vergleicht:

    In Vide:
    Rot_VL_Mode == F61F
    Rot_VL_M_dft == nicht definiert
    Rot_VL_dft == F637

    Bruce Tomlin:
    Rot_VL_Mode == F61F
    Rot_VL_M_dft == F62B
    Rot_VL_dft == nicht definiert

    Vectrex Programmer Manual Part 2 (ebenso das RUM auf Roadsidethoughts):

    Rot_VL_Mode == F61F
    Rot_VL_M_dft == nicht definiert
    Rot_VL_dft == nicht definiert

    Nirgends(?) erwähnt: Sowohl Rot_VL_M_dft als auch Rot_VL_dft gehen davon aus, dass vor dem Einsprung das DP 
     Register auf den Stack gepushed wurde. Rot_VL_Mode macht dieses zu Beginn. Alle drei enden mit demselben puls DP,PC. Wer die *_dft Routinen aufruft, ohne vorher DP gepushed zu haben, bekommt einen corrupted stack.
    Evtl. sinnvoll: Rot_VL_M_dft mit in Vide aufnehmen?
    Viele Grüße,
    Peer

done: new Command(D_CMD_STACK_WATCH, "StackWatch", "sw", 1,1,"\"StackWatch\"\t\tWatch for stack changes at current location.",""),
done: if (type.trim().toUpperCase().equals("DEC_DATA"))
done: wait recal baseline

done:
    Is there a way to empty Table 1 and 2 of dissi so that I only am getting update messages when I am actively using dissi. It will be awhile before I get to that usage as I have a whole bunch of unknown files to sort through
    -> empty textfield of file
done:
    Anmerkungen von Scott wegen Helligkeit -> siehe Mail

done:
    DISSI
    Moin,
    hier ein kleiner Bug in Dissi, siehe Bild.
    Viele Grüße, PEER


done:
    noticing is that when I restart with a new set of *.asm files, there is no *.bin in 
    the directory as I start from scratch. Seems like the "Compare Disassembled" should 
    see the bins it is comparing aren't there and "let the user know" by deleting the 
    contents so that the disassembly only reappears when the new bin is created. 
    I think this is not worth doing anything about until you have an evening when you are "looking for 


Assi
- added setdp
- added opt for 0,u+
- added hexadecimal as 16afH

Vedi
- edit files (asm,s,c,i,h,txt)

 
done
danke für die Lektüre. Habe daraufhin mal das LST File mit zu dem Binary gepackt (ich hatte mir die Listings schon immer generieren lassen, aber an einem anderen Ort als das Binary), und das funktioniert eigentlich ganz gut. Allerdings werden die Label-Namen offenbar nur dann übernommen, wenn sie in einer separaten Zeile stehen. Soll heißen, bei

 

done
Track speichert nicht


Done
Vide hat sich jetzt mehrfach in Folge bei mir aufgehängt. Im Sinne von, plötzlich steht alles still, die Fenster reagieren auf gar nichts mehr, und Vide brät mir einen Prozessor zu 100% zu, bis ich den kompletten Prozess per Kill abwürge.



done:
  dissy - switch type was doing the switch up to 29 bytes to many...

done:
DAC tolerance added!

done: 
Syntax coloring in Disasm and disasm compare

done: PAN
I noticed while running these tests that whenever I compile a binary, a new *.asm is written. 
Actually, I've seen that message all the time but didn't realize its impact. 
I think this has to do the idea that Vide.asm is optimizing the *.asm so it needs to write it out. 
However, I have opt turned off, it should not be doing anything to the source *.asm. 
This is actually important as archiving software doing delta offsets often looks for the timestamp of a 
file to determine if it has potentially changed. There are other uses for timestamp. 
Can you please change your code to only write out a new *.asm if the file has changed.



done?
The compiler works with the TFR command and I get a working binary. 
However, the change has not made it to the disassembler. 
I have no code in my Vectrex collection which tests EXG so I going to assume that it is doing the same.

I will do the zip of serialize directory in a different email


cant reproduce
Here's a very small annoyance. VIDE doesn't remember the project when restarted if the project is somewhere else on the disk.
Only projects within the VIDE hierarchy on disk are in the 'last projects' tab.   Every time I have to navigate to p:\projects\myProject when I load Vide. 
This is not a big deal but I thought I'd point it out for your list if you ever have time again to make minor fixes.

nope:
Manello — 10.12.2022 11:54
Ah and another bit of feedback: It would be cool if breakpoints would be saved even after reloading a game. 
Every time I restart it will loose all breakpoints at the moment

same as: hey dissi?
gauze — 10.12.2022 21:12
I was thinking there could be a pseudo op or whatever like 'break' so it's preserved across restarts










done:
added different sized register TFR/EXG
    (Variables in Asmj and DASM6809 to allow/forbid - but as of now not configurable)
    Syntax checking shows this as illegal (red) -> but assembling is possible, this is on purpose.

done
in compare dissi the adress fields for difs were not always the same in both tables (!?!?!)

done
When I have a Compare Disassemblies up with two files that have differences, 
I am seeing that the "{n,p} should always go to {bottom,top}" isn't true when there are differences. 
I hit 'n' and it goes to the next change. And so on and so on until it is on the last difference. 
When I click 'n' again, I expect to it go to the last line in the file to show me there are no other differences. 
Same for 'p'.

done
Given that the Compare Disassemblies only want to have binary files as input, 
the default should be that it only gives you the choice of binary files.

Waiting for reply
The Compare Disassemblies doesn't use the Project directory set in Config and, in many ways, I need 
that more than the emulator (though let me say I kinda need the emulator and all other windows to see it)

toTest
When I load two 1K game binaries into the Compare Disassemblies, the 'n' and 'p' work great. 
But if I load two 2k game binaries in, the 'n' doesn't work. 
If I scroll to the end at 0x1fff and push 'p', it does go back to the start. 

done
    The Compare Disassembler tool is not remembered if it is onscreen when the Vide is closed. My sense is that Vide 
    ought to open exactly as you left it. The only exception would be if 
    someone really wanted a button to say "don't remember what was onscreen" but that is not something I am interested in.

done + lastDir
The Source Editor uses the "project directory" that I have set. But the emulator still starts in Vide.app home directory. 
I think anything I open (file or binary or whatever) should come from the same project directory ... does that make sense to you? 

Walach
done
technobly — heute um 16:08 Uhr
Hi @Malban, while you are thinking about VIDE, would you mind logging this feature request if it's not present already?  
Some way to use a VERSION string in your code that gets picked up in the filename creation.  So we can do this
- added that version number is part of the compiled filename
- version number always is taken from the project version
- all *.c and *.h files in src are scanned for
  #define VERSION XXX
  if that is found, the project version is set to XXX
- added new pseudo opcode to ASM 
  version XXX
  also sets version information in the project

PAN
?
1) if I am seeing things correctly, the check box for "opt" is not remembered -- as a developer I want to see what I compiled and not have and changes so that once things are running, I can then turn on the opt and evaluate what it wants/suggests

?
3) I see there isn't a scroll bar in the source ... that would be nice to have for navigation purposes

done:
2) the files that were last in the Compare Disassemblies are not remembered ... would be helpful so I don't have to reload each time

done:
4) would it be possible to have a way to have a master "use this directory" so all 
   "enter filename" windows would go right to there rather than having to navigate 
   in each one from Vide home directory

-> use VIDE_HOME
5) and what would be very nice would be to allow my project directory outside of the Vide tree so I 
   could have multiple Vide packages based on the different updates you give that all use the same 
   directory for *.asm and *.bin --- it would also allow me to easily archive my material with 
   everything else in my home directory (I run daily rsyncs with hourly deltas and don't want 
   to include the @2.4G of Vide (higher than usual as I am storing original and updates as I haven't 
   sorted out a "proper organization" while in the code turnaround time.

done: PAN: Dissi compare
If there is any one thing I would add to your compare disassembles, it would be to borrow from xxdiff the use of the keys 'n' and 'p' to 'go to next difference' 
and 'go to previous difference'. If you already have that feature in there somewhere, I didn't find it. 

done: dissi compare also as binary variant

done: PAN: othr BIOS variants for disassembling

done: PAN: disassm somtimes ignored locations after scanning

done: PAN: fixed optimize loop for bra > JMP

done: add breakpoint at write to T2 (to find WR)

Peer
done:
    Schlangengrube gcc6809: Bin heute Morgen mal wieder über eine gcc6809 Spezialität gestolpert. 
    Ohne Optimierung hat mein Code funktioniert, mit Optimierung nicht. Lag daran, dass laut C Standard 
    Overflow- und Underflow-Semantik undefiniert ist, und folglich der gcc beim Optimieren dieses auch annehmen darf. 
    Vereinfachtes Beispiel: unsigned int x = 0; while(1) { if (++x == 0) do_something(); } Hier darf potentiell 
    do_something() weg-optimiert werden, da beim Inkrementieren der Wert 0 nie wieder erreicht wird, da 255 + 1 undefiniert ist. 
    Lösung: -fno-strict-overflow als zusätzliche Compiler-Option unterdrückt diese Art von „Optimierung“ und behält das 
    „normale“ Hardware Overflow und Underflow Verhalten bei. Wundert mich, dass ich da erst jetzt drüber gestolpert bin, 
    da ich die Art von Bit-Level Verhalten ständig ausnutze.

 done: added speedLimit %


Check all old "C" source whether they still work (because of CRT0 changeds)
 demo3d
 demo 4
demo 6
demo7 not working correctly

When generate noShift lists 
in RUN mode - also gnerate noShift lists


https://github.com/Threetwosevensixseven/ayfxedit-improved

Brett Walach
@Malban any idea why projects that built fine in 2.6-rc.2 have this preprocessor error in 2.6-rc.3?
Cleaned...
Preprocessing: /source/cartridge.c         Preprocessing failed
Error preprocessing: /Applications/Vide.osx_2.6rc3/projects/SpikeGetsSquished/source/cartridge.c
Hmm... C/include and C/lib folders were missing, but copying from 2.6-rc.2 and restarting Vide didn't help.









I realize this might be too late, but a suggestion to support flash saving for the EPROM based carts.

As Telengard will most likely be played only by a single player during a game controller port 2 would seem to be available. So I suggest using Controller Port 2 for supporting game and character saving via a device many people already have. in the AtarVox and AtarVox+ SaveKey storage feature. For those people who do not yet have an AtariVox, or want a lower cost device only to save a game data, then the standalone SaveKey device also exists.

If a SaveKey feature is supported in Telegard I do think it will be the first Vectrex title to do so.

Save Key, with allocation list.:
https://atariage.com/store/index.php?l=product_detail&p=1194

AtariVox+, has SaveKey feature:
https://atariage.com/store/index.php?l=product_detail&p=1045

AtariVox+ SaveKey Memory Storage Allocation list:
https://atariage.com/atarivox/atarivox_mem_list.html


pitrex bad apple
pitrex some speedy ... not displaying correctly with december
https://www.facebook.com/groups/vectrex/posts/1770498699827166/?__cft__[0]=AZVX-TCRTAH2Y66zf1_NXLN4jcoeZIqEap_LfDky5kzcHp7G268yoTxdMyQhQNMyTnxVT5tq5aUyogV37YusXXX8mBWeJi45ZNdvJkl0Ve7TGrqVYlvPzkk9MJZ9ajQBk6lNr_BA9S_JnhjpD9JUZvbAQxfCKaIEscwRVjuP-5IwAOz1k8LwzkKM2HFklapyZdQ&__tn__=%2CO%2CP-R


done:
@Malban I found a bug by accident... was looking for the large 2D vector editor window and opened the 3D one by accident.  
If you move the scale all of the way up to 49 and back down when the window is resized larger, it crashes Vide, completely locking it up. 
The 2D window is fine though.  Thanks for the shortcuts!  BTW: I had the log window open on a previous attempt and it didn't spit anything out.  








add rgb support for imager???
would have to look up if line was drawn before - and than add color up...

@Malban here's the code that messes up button handling on real vectrex but not in VIDE
                  lda      #7
                  ldb      #%01101101
                  jsr      Sound_Byte_raw

???
the big edit window in veccy
perhaps I can make it auto resizable...

???
keep position (draw_vlp) in C does not work!

toDoc
"C" - asm routinen must save U reg

If you change the BIOS to anything other than the FASTBOOT BIOS then Dissi does not show the correct 'Content' in the BIOS memory range. 
I see the correct behaviour for what is really at the memory locations but the 'Content' fields are incorrect.

Please can the 'Content' fields in the BIOS memory range be updated to reflect the actual content when a custom BIOS is used? Thanks!

—


"Fixed" adresses of functions in "C" programs.

This is not QUITE so easy, since the whole linker is written for relative positining. - but it is possible.

There is ONE sections, which alread has a fixed address ".cartrigde": 

Within that lies the defitions without which a vectrex program would not be able to start.
That section starts (and must start) at address 0.
In principle it is possible to extend that section, nonetheless the prerequisitions must be fixed, meaning:
- the header of both banskwitch pieces must be the same size
- the real header (as expected with a C standard program, Vide in "crartidge.c") lie must be compilation wise reside BEFORE
  the fixed code, otherwise the fixed code would start at 0, and not the cartrdige header code.

All functions, that are inserted into the section ".cartridge" will than be inserted AFTER the header.

ALSO!!!
Your first function in the header MUST jumpt to the expected programstart of your "C" program, otherwise
the "C" stub (which initializes e.g. the bss data) won't be executed.

All other functions in that cartridge section will than be fixed and for example in a bankswitched C program lie at exactly the same address.

This sounds more complicated than it really is
A demo "C" program, which compiles fine:

#include <vectrex.h>

 __attribute__((section(".cartridge"), used)) void _start()
{
    asm(" jmp s_.text");
}
 __attribute__((section(".cartridge"), used)) void doBankswitch(int b)
{
    int i=b+1;
    // do something that does bankswitching
    for (;i<10; i++)
    {
        Wait_Recal();
    }
}


int main(void)
{
    doBankswitch(1);
    while(1)
    {
        Wait_Recal();
        Print_Str_d(0, -70, "HELLO WORLD\x80");
    };
    
    // if return value is <= 0, then a warm reset will be performed,
    // otherwise a cold reset will be performed
    return 0;
}

Gruß

Christopher
 

Am 29.07.2019 14:15 schrieb Frank Buss:
> Hallo Chris,
>
> meine Lösung geht aber nur deswegen, weil das Programm in beiden Bänken identisch ist, bis auf die Daten. Eine eigene Section definieren zu können, deren Adresse und Größe man angeben kann, wäre noch besser. Dann könnte ich alle Bankwitching-Funktionen dort unterbringen, und auch verschiedene Programme umschalten.
> Habe mal gesucht aber nichts gefunden, gibt es eine Linker Definition Datei in Vide?
> Wollte übrigens noch ein Bonusspiel mit ausliefern. Hast du was dagegen, wenn ich Karl Quappe mit auf mein Cartridge flashe?
>
> Viele Grüße
>
> Frank
>
>
> On 07/29/2019 01:49 PM, chrissalo@posteo.de wrote:
>> Hallo, sorry, dass ich mich nicht früher gemeldet habe - aber ich habe gesehen, dass Du schon eine Lösung gefunden hattest. Gruß Christopher Am 28.07.2019 01:36 schrieb Frank Buss:
>>> Hallo Chris, habe Vide 2.51 installiert und Bloxorz läuft damit. Bin zur Zeit noch am Bankswitching dran. Gibt es eine Möglichkeit, eine C-Funktion in zwei verschiedenen Projekten an dieselbe ROM-Stelle zu compilieren? Dann bräuchte ich das nicht alles in Assembler zu lösen. Am besten wäre es vielleicht, wenn ich meine eigenen Sections definieren könnte. Dann könnte ich eine Section BankSwitching oder so definieren, und dort einfach alles reinpacken (per __attribute__ section) was dazu gehört. Wenn die Reihenfolge dann dieselbe ist, müssten die Adressen auch dieselben sein. Viele Grüße Frank



Anyhoo, I made one with Vide text on it, and one without. 
I've included the Photoshop file .PSD, .PNG's and the converted .ICNS 
files here: https://www.dropbox.com/s/03muyd4eeeis6yh/vide-icons.zip?dl=1


???
Aaaaaaaaa @Malban here's a new but old Vide bug to report  
It used to mess up like this in the past, but now it seems more frequently occurring. 
Eventually after doing a little editing, everywhere I 
click puts an 'a' and it won't stop doing it unless I close Vide and reopen. 
http://g.recordit.co/P7ZDl7d9fP.gif


???
technoblyheute um 20:36 Uhr
@gauze I'm not trying to sell you on CMD + SHIFT + arrows to switch to Sublime 
:smile: I'm wanting this feature in Vide.  How do you do similar operation in Vide now, and/or Vim?

curly bracket!

done: mouse pointer
done: Vide cartridge information file WITH bank switch IRQ
        Graham Toal Malban Vide why not remove the switch and make everything 48k compatible. 
           All you really need is a message after compiling saying what eprom size is needed for 
           the binary you just built. (not just 48k, but 8k/16k/32k would be helpful too)
done: 
    I'm using VIDE on Mac.
    Copy/paste functions are not mapped to the right key combinations in in search box of Vedi.
    It's working fine in the editor, but not in search box, it remains mapped to Ctrl+C Ctrl+V instead of CMD+C CMD+V. 
    I tried to define them in the config panel, does not work either.
done: Brett Wallach Tab to spaces in editor

analalog with keyboard

DOC:
Erster Entwurf, noch nicht auf Größe (ROM Verbrauch) optimiert. Die Dateien an folgenden Stellen ablegen (ggf. neue Unterordner anlegen):
 
gcc6809/vectrex/include/lib/assert.h
gcc6809/vectrex/lib/lib/assert.lib
gcc6809/vectrex/lib/lib/assert/assert.lst
gcc6809/vectrex/lib/lib/assert/assert.rel
 
Der Linker braucht dann zusätzlich folgende Parameter:
 
-k %GCC%/vectrex/lib/lib/ -l assert.lib
 
 
-----
Antonio Maiorano Eric Schlaepfer So cool! I noticed in one of the videos on your Twitter build thread that Mine Storm had all 
the stars off to one side. I had this same problem on my emulator. This happens when ram is all zero. 
I had to randomize values for it to work. Mine Storm expects random garbage in memory to lay out stars!


the path remains set to %VIDE%/xml/vectorlist Is there any way to change this default folder?


todo
: selectin TAB/shift tab in vedi

Breakpoint load "NOT WORKING"

port a is completely latched.
so sta a 

a input is not a output!!!

if I put 0e in port a in output mode, I will read 0e in output mode
if I switch to input mode, I read whatever is "input" to a, but NOT the value I write in output mode!

Cycle counts in Vecx checken und korrigieren.

Vectorblade - remember diffivculty in SAVE

todo 
@Malban I haven't checked the Beta yet, but the main thing I would like to see fixed is that the last 
directory opened gets saved somewhere and Vide doesn't keep defaulting to the directory it's running in.  
This is mainly important for Vecxi and Vedi.  
A lot of times I'll want to test some binary in Vecxi, and it's not very easy to browse to a new location 
so I'll just copy files I want to try to the Vide main directory.  
Would be nice if it would just remember that I opened the ~/Downloads folder though, etc..  
Also when opening different projects I'm having to traverse through the tree, 
but that one is not as bad since the projects/ folder is right there and not many projects to look through.


todo
  build a function "memoryHarmonize" that ensures dissi mem == emulator mem
  a) must be called after changing memory in dissi 
  b) must be called after emulator (flash) changed memory in cart!


Douglas Peuker Algorythm
Preview <-> final (like images)
Edit Epsilon
checkbox to "use" move as vectors


PiTrex
Lightpan Animaction "Menu"
VecMania
Coin in Asteroids
Vectorblade update to 12
WWW Vi




Warning, when a bank replace could not be done!


done: dissi does not disassemble correctly multiple cank in vectorblade (always 0) 

Wenn ich während des BIOS Cartridge-Intros (d.h. während die initiale automatische und unumgängliche BIOS Routine für Titel + Melodie läuft) 
in Vide über Dissi einen soft reset auslöse, und dieses geeignet oft wiederhole (d.h. immer wieder während des Intros ein sr absetzen, ca. 4 – 7 Mal), dann startet plötzlich Mine Storm.


Todo:
Vide:
Absolut position vector list
3d Vectorlist (relative & absolut)


https://lb.raspberrypi.org/forums/viewtopic.php?t=201556&start=25


- Sobald man –O1 oder größer verwendet... issue: https://gitlab.com/dfffffff/gcc6809/issues/6,
  see documentation in comments from Peer
    C compile error possible: 
    extern void foo(unsigned long int x, unsigned int b);
    static unsigned int v;
    void bar(void)
    {
        foo(v, 0);
    }
  ----->
    compiling test.c
    source\test.c: In function 'bar':
    source\test.c:11: error: unable to find a register to spill in class 'D_REGS'
    source\test.c:11: error: this is the insn:
    (insn 7 6 8 2 source\test.c:10 (set (reg:HI 1 x)
            (zero_extend:HI (mem/u/c/i:QI (symbol_ref:HI ("v") <var_decl 0000000000365140 v>) [2 v+0 S1 A8]))) 20 {zero_extendqihi2} (nil))
    source\test.c:11: confused by earlier errors, bailing out
  ----------

- ADD import for SVG
- When saving in debug, save current breakpoints - and load!
- Add example of PB6 + IRQ bankswitching to templates
- Allow for a dissi / asm command, to define WAITRECAL for tracki in source 
- read cli commands from text file and "behave" 
- done: upon reset of tracki also reset the averages...
- give error message or warning, when a replace can not be done
- test and document vector collapse
- test and make examples of vectrex T1 and cranky

a) gcc6809 hat mit -O2 Optimierung Code generiert, in dem zwei "clra" unmittelbar nacheinander vorkamen. 
    Das scheint das Ergebnis eines Optimierungspatterns zu sein. 
    Das zweite "clra" ist redundant und kann weggelassen werden, 
    das scheint aber in Nachhinein nicht bemerkt zu werden. 
    In meinem regexp Skript fange ich solche Dopplungen nun ab und behebe das. 
    Bemerkt Vide’s Peepholer so etwas?
 
b) Für Vectrex Zwecke ist es nicht notwendig, position-independent code zu generieren. 
    Mein regexp Skript ersetzt nun alle "lbra" durch "jmp", spart jedes Mal einen Zyklus. 
    Per Compiler-Option konnte ich den gcc6809 nicht dazu bewegen, die "lbra"s von selbst zu unterlassen. 
    Achtet Vide’s Peepholer auf so etwas?

DOC-Todo:
Info Peer:
    Kurz: Das Format der „BIOS-Musik“ lässt ja in eingeschränktem Maße zu, dass man „mehrstimmige“ Melodien definieren kann 
        (Bit 7 gesetzt im Noten-Byte = next music data byte is for next channel). 
        Wenn Bit 7 niemals gesetzt ist, hat man eine „einstimmige“ Melodie. 
        Ich hatte bislang immer angenommen, dass in diesem Fall auch alle Noten hintereinanderweg auf 
        „demselben“ Kanal des Soundchips gespielt werden.

        Diese ist aber nicht der Fall. Die BIOS Sound-Routine spielt grundsätzlich immer alle Noten, 
        die sie bekommt, zyklisch hintereinander weg auf allen 3 Kanälen des Soundchips. 
        Also erste Note auf C0, zweite auf C1, dritte auf C2, vierte auf C0, fünfte auf C1, usw. 

DOC-Todo:
Brett Walach I found it! 
    This RUM listing https://roadsidethoughts.com/vectrex/the-rum.htm shows a comment for music rest 
    (zero frequency for rest) being frequency specified as Decimal 63/Hex $3f, or note AS7. 
    AS7 doesn't seem to be compiling in Vide without adding my own notes EQU table, so in my notes.asm 
    I just made AS7 EQU $3f = "RST EQU $3f" so I can add a rest like this:




VIDE ???
in berzerk
QUERY_JOYSTICK 
 out with REF fucked, fucked on real vectrex, not EMULATOR!!!

check CLI 
- tool: added tool to "build" Video movies from "extreme vectrex" data files. The builds can be played on a vecFever
- tool: to build "Wav" player for vecFever



http://nerdnoiseradio.blogspot.com/2015/04/geekspeak-u-real-psg-square-vs-fm-fake.html
https://github.com/maxim-zhao/pcmenc


On mac retina displays, vecxi only uses 1/4 of the window size (even when using shift-p). 
It would be nice to have a setting to expand this to use the full window...

ATTENTION!
; "in instruction" bankswitch not supported by VIDE

https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html


generate a IMAGE smart list (which respects virtuell brightness)
and Quadro..., light off intensity



BUG in Vide
                    ldd      #(%00000010)*256+$CC         ; zero the integrators 
                    stb      <VIA_cntl                    ; store zeroing values to cntl 
                    ldb      #ZERO_DELAY_P  


C debugging
fixed??? see vedi 12233
if function parameter contains struct - than debugging enrichment fails!

tracki
Button alle gespeicherten Ergebnisse als Excel liste ausgeben

tiny LAF and JAVA 10 -> broken on iconify

see TinyTitlePane - Iconfify action - commented out iconifiyng



Switch for goggle/lightpen




Hm - test seems ok,Code scan in vexci not "working" for DP?

Hm - test seems ok,Active in dissi > vectorlisten display in dumpi, not working?


Bug Screen adjust in windows not working? -> Black screen?
Bug Overlay adjust in windows not working? -> Black Screen? (emulation)



;	1) cursor positioning does not use the same system as most IDEs. Took me ages to get to grips with it, and it still feels off. Basically, if you click on
;		a character, the cursor appears at the start of that character (or tab) - however it should really look at the position within the character or tab
;		and go left or right of the character based on being above or below 50 percent of the way in. Hope that makes sense. May be very hard to fix.

;	2) Visual studio uses Alt with the mouse for block copying - so you can position a bunch of lines at once, or cut a square out of the text. Again - not
; 		vital but would be a great addition for anal coders like myself. 

;	8) I am a crap 6809 coder, and many people will be too - some other optimisations VIDE could suggest include 
;		clra clrb instead of ldd #0 - I think this uses less space?
;		lda and ldb with constants could show the ldd #$HEXX value you can use instead
;		cmpa #0 after a lda is unnecessary as the 0 flag is set after a lot (but not all?) operations - would be handy to have this pointed out by the compiler
;		overall however - I think vide's optimisation suggestions are great - very useful for tracking down efficient branches when files are being rearranged


Absturtz wenn im multistep save?

BUG in C - BLOXORX

void setSwatchField(int8_t x, int8_t y, int on)
{
	volatile long int index = (long int) y*LEVEL_WIDTH + (long int)x;
	uint8_t bit = (uint8_t) (index & 7);
	index >>= 3;
	if (on) {
		swatchesOn[index] |= shifts[bit];
	} else {
		swatchesOn[index] &= ~shifts[bit];
	}
}

Generiert 2 * den index in Register X!




breakpoints enable/disable/save/load

breakpoints on IRQ cart port line

breakpoint on IRQ VIA


- writing in 3d scroll


1) Line drawing in help -> comparisson
2) Smart list generation
3) new things in Vecci
  - swicth dir
  - remove point
  - Join here
  - usage of anim lists
  - big window
  - ctrl pan

4) sun in edit
5) double click in edit
6) calculator / help in edit
7) navigator in edit



TDOD
New game
Fortnight for Vectrex






Tricky things in Vectorblade

- only test 2 (player) shots per "round" 
- bonus rotation of "outer" shell is a seperate piece of "rotation"
- like in release all objects are held in linked lists and called via pulu d,pc (variables + behaviour)
- smartdraw is used as by Kristof Tuts, also called via stack "processing"
- > during object handling no subroutines are possible -> no stack left!
- at one /two locations I simulate a stack behaviour by "putting" a return address in an addition index register and "return" via a jmp ,y
- RAM locations are (depending on state of the game) used 2-3 times with different "roles"
- "events" within the object routines set flags that are handled outside the object routines (no jsr...)
- only one event of each type can happen per round (player was hit, enemy was hit, bonus collected, enemy spawn, etc) but that is still 50 times per second
- todo: poll joystick only "x" rounds and do "y" only each other round -> all in all saving of time
- also do animation stuff in object only every second round - so do something else only every second round
  (things that can alternate
   - animaiton
   - test to shoot
   - pattern update, destination check)




Nur am Rande: Wäre es schwierig bzw. aufwändig in Vide eine Warnung auszugeben, falls nicht das selektierte File, sondern etwas vorkonfiguriertes genommen wird?

 
todo ASM
I also like idea b) as it is simple and elegant. It also should be rather easy to be achieved. Remember? We already did something very similar when we were working on the C setup: map several C variables/functions to distinct and/or the same memory locations by creating appropriate linker mapping files. Idea b) can easily be realized for C source code files, and thus it should also be easy for assembly language code, most likely even more easily than for C code. Cheers, Peer





Game ideas
1) space shooter with extras (Warblade)
2) Twin Stick shooter with extras
3) Jump and run (Jumper)
   Different video game levels (Atsri VCS Gameboy NEs etc)
4) River raid (using random level generation)
https://www.sbprojects.net/sbasm/6809.php

copySoundRegs
bug 
- profiler does not work with 2nd bank correctly
- save serialized eeporm data in dir of bin
- 2 bank card,breakpoint set on start -> does not show correct bank (in dissi)
- importing more than one draw_vlp is buggy
  storyboard with animtions of 2 is not animating!
- CHECK: Habe einen Typo in meinem C-Setup gefunden: 
   In "vec_rum_fct_pjc.c" wird in der Funktion "_Print_Ships()" ein jmp in die falsche BIOS-Routine vorgenommen 
   (ist bei mir in Zeile 852). Es muss "___Print_Ships" anstatt "___Print_Ships_x" heißen. 
    Habe kein neues Download-Setup erstellt, da es wirklich nur ein delete-one-character Bugfix ist ;-)
- investigate BASH starting from post project build, reports say it slows vide down after a while (Martin White)
- investigate: bug with different main files
- mouse coorindates wrong in rotation (vinfi...)
- stepping one instruction with only one byte -> does two instructions

todo:
- do video/audo capturing
- fraps?
- Smartlist continue;
- load and save dissi state (breakpoints)
- komplete var/macro reset after changing project parameters (at least in "C")
- Do Arkos Tracker 2
- see 14 points below
- no zero retain
    - OFTEN not
    a) there is no zero retain, it is all loading unloading the int dac holders.
    zeroing them befor each move corrects everyting
     clra
     sta <VIA_port_a
     sta <VIA_port_b
     inc <VIA_port_b
    It is a Integrator retain! or sample / hold retain!
- figure out how to add "include files" to debugging!
- hey dissi in c
- zentralpunkt perspektive in veccy
-YM player speed opti - only without USE_ENVELOPES
- BUG Switch on mac from full to windowed
  a native window title appears in addition to the tiny laf
- Unter windows können in anderen Laufwerken keine Projekte angelegt werden,
 da es unmöglich ist einen relativen Pfad zu finden. -> Excepiotn
- Regarding the "player 2 rotates with player 1" issue in "Spaceball": 
  We observed this behavior on the real machine (a "buzz" Vectrex) if there is no 
  controller plugged into port 2. If two controllers are attached, then everything behaves 
  and works as expected. The code itself looks fine. Could this be some analog Vectrex hardware phenomenon?

-       Gibt es übrigens eine Art Oszilloskop-Funktion? Ich kenne das von MPLAB-X. 
        Man kann dort eine Adresse eintragen und es wird dann ein Graph angezeigt, 
        mit Taktzyklen auf der x-Achse und Wert der Adresse auf der Y-Achse.

-       "Value change dump (VCD) ist ein ASCII-basiertes Format für sogenannte Dumpfiles"
        In dem Zusammenhang wäre es auch sehr gut, wenn ich externe Signale z.B. auf PB6 
        simulieren könnte, was ich z.B. im VCD-Format angeben könnte. 
        Bin zur Zeit die Kommunikation mit einem PIC über PB6 am programmieren und das ist 
        ohne Simulation schon umständlich.

-       Oder könnte man vielleicht eine Java-Plugin Schnittstelle einbauen, was einfach pro 
        Takt eine Methode von einem Java-Programm von mir aufruft, die dann die Register vom 
        VIA zum lesen/schreiben zur Verfügung stellt? Das wäre wahrscheinlich die flexibelste 
        Lösung und dann kann ich mir das alles selbst programmieren, da Oszilloskop und 
        Signalinjektion ja doch schon recht speziell ist und wohl sehr wenig User brauchen würden. 
        Falls du den Sourcecode irgendwo hast, kann ich das Plugin-Interface auch schnell 
        einbauen, was wohl schon mehr User brauchen könnten.

- VecMulti:
    private boolean isVecmultiWriteEnabled()
    {
        try
        {
            return readU8(6) == 83 && readU8(7) == 82 && readU8(8) == 65 && readU8(9) == 77;
        }
        catch(Exception _ex)
        {
            return false;
        }
    }
- incorrect emulation:
        Allow me the question, why do you use the function „Read_Btns_Mask“ instead of „Read_Btns“?

        The mask version expects a „mask“ passed in register A. Which you don’t set - A is set to whatever value the print routines set (I think it is 03).
        I haven’t gotten a clue why it works on the emulators - which is interesting and I should check at some time - but why not just do:


        COLLIDES with info from Berzerk Arena 
        Must check so that both are emulated ok

        Chris-

        I figured it out. Clearing the sound chip was the culprit.  Kind of weird!  I hope your holiday trip was good!

        Scott - huggings
- While it might be possible to „translate“ ym files if the original psg frequency is known - I have as yet not done any conversion in Vide -
Bug:
Garbage game over message of SPIKES (uni-homebrew) is not emulated correctly (not terminated String)

BUG in assi:
 MACRO constant ZAHLEN = 18
-> leax ZAHLEN,x  -> leax >$0012,x
-> leax 18,x  -> leax <$12,x

BUG BW images in Vectorize
 - editor messages to big!

VecKey - PS/2 Keyboard
DRIFT - see DRIFT pic
- faq copied "vectors" does not work with paste -> mode must be vectors!

- hiddenline to history
- figure -> delete faces
- todo insert vectorlist -> insert faces
 what happens to non face vectors?
- delete non selected - faces not correct anymore

- library load
- Explosion?
- doc prebuilt/postbuild scripts
- vecci 3d vectors "real" (with z disortion) and option to remove "back" vectors
- vecci with DOT-Lists
- vecxi all kins of breakpoints
  add in tab
  add on popum menu on panels (e.g. vari/viai) 
- dissi many times debug on/off -> reset

- see video split where needed -> no saveable automatically


- assi macro /variables must be set befor they are called -> circumvent that?
- assi bug: dec b -> gives exception
- assi difference in assi to macro
       ld\1 #(lo (hival))<<8 | (lo (loval))
       brackets are needed if macro parameter hival/loval consists of an expression

- vecxi assumption wheel spinning to slow is not emulated correctly!
        I don't know how wide the reaction time of the index is!
- vecxi VecMulti
- vecxi examin, if stalling is really only triggered by a "read" of via (at the moment by a read from clr)
- vecxi do pb6 as correct line emulation, not all special cases...

- codi eEprom Tuts example code
- codi add example programs just for "programming"
       (String, Scroll, Clip, ... codi)
- vide do a veccy comment like
       vide-veccy mode 1: 2: %y %x %m 3:
       and upon finding that string do a tooltip of the vectorlist!


- libi order documents


- dissi do a stack frame window (for U, S X Y) with definable vars (byte word, named)
        which can be saved to cnt
- dissi correct pb6 breakpoints fo in and out

zeroing effect, see Vectrex32 site

- vecvox - no emulation of: Microchip 24LC256 (see i.rtf)



doc?
Chris Romero If you have never removed the Vectrex's black Reset button it is fairly simple. The button is removed by unscrewing it in a counter-clockwise direction.

IF this is the FIRST time you have ever unscrewed the Vectrex reset button on a particular Vectrex some tips.
• Some Vectrex reset buttons are attached at the factory using a bit of thread lock on the reset button screw. These will be very tightly attached to the Vectrex reset switch.
• Take your time in unscrewing the reset button the first time. The slower the better. Otherwise the reset button head may become detached from the screw.
• Use something soft to grip and turn the reset button during removal. Fingers are best. But if this is not possible. then household adjustable pliers could be used AFTER wrapping the jaws in a couple of layers of the rubber or vinyl electrical tape. The tape will provide better grip and greatly decrease the possibility of marring / scratching / gouging of the button's plastic surface.

I have seen the result of where Vectrex have been subjected to people trying to pull off the reset button. In some cases the switch survived the assault. What was left was the switch's plastic actuator stem with a broken piece of the metal screw thread left inside the stem. That result shows how strong the stem is and how weak the original metal in the factory reset button screw can be. In other cases I can seen the switch stem body cracked. I would estimate those are units that had little to no thread lock material acting as a support for switch stem.




- vecspeech:
 add new variables to cloning
  link new pdf files to library
- test java version upon start!
- multi ram
- hot key save /edit config
- clip in DRAW clipped
- vari list of vars are coma seperated - should be :
- LEX:                     _SCALE   (SCALE_FACTOR_GAME)          ; everything we do with "positioning" is scale SCALE_FACTOR_GAME
  second bracket os red!
- vecci save dialog shows buttons
- " end struct " struct is read for more than one space
- vecxi every end of vector in frogger is still a DOT
- vedi cycle display in vedi
- vecxi when exiting a windows (vecx be sure to shut everything down!)
- viai in via if a signal is active color it "orange"?
- command line paramters for assi and vecxi alone!
- vecxi drift allways toward zero? (nope, but still needs more testing)
- to test: is drift ramp / ref depenended?
- vedi on delete of files, also delete files in vedi settings
- vedi generated project files (raster), do not know their variables!! (scan for vars/macros not working!)
- assi Option to save LST files from ASSI
- dissi new command -> wipe vec window
- vedi right mouse click on data statements -> convert to vector / call vecci
- vecxi try own handwritten graphics primitives for glow on byte array of buffer
- vecxi try ray gun with handwritten graphic rouines, perhaps on a 255x255 grid, which might be scaled...
- assi ASM do || and && for IF
- vedi auto saves in vedi
- vedi enable apple keys
- vecxi proboard, mentiones that drift is stronger -y and -x than +y and +x
  (see curved lines stuff stared by christopher: http://vectorgaming.proboards.com/thread/1234/drawing-6522s-shift-register-timer?page=3)
- assi Special opt.... first use ALLWAYS short branches instead of longs
  these can be automatically unpotimzed vie versa - not...
- dissi build automatic comments for VIA access
- bug?  copyDirectoryAllFiles(String from, String to) for subdirs!
  bug? works under windows...
- ASM: lda   #$-8                      ;Get y ($2FBE)
- vecxi alg_rsh not emulated at all!
- vecxi save breakpoints
- vecxi breakpoint upon analog/VIA/REG changes
- vecxi vecram
- vecxi look at bug mentioned in mame vectrex RND Minestorm
- vecxi look at bugs mentions by para
- vedi output to real vectrex from here
- vedi "C"
- lex Thrust.asm
  mClearFlag (InactiveFlag | RefuelFlag | ShieldFlag | PullFlag)
  macro call parameters should be 1memops additionally comma seperated!
- lex bra TileW TileW TileW TileW TileW 






add info to doc:
    Getting close...
    I found my very last Sega controller waiting to be butchered, took the cable out and soldered up the three leads that are n
    eeded for the 3d glasses. Three because we are not taking the 5V from the Vectrex, so only pins 3, 4 and 8 are needed.
    8 is ground, 3 is the signal from the Vectrex, and pin 4 is the signal going to the Vectrex.
    Please note! 
    That if you look at the Zack Ethridge document, he did not number the pins the same way the Vectrex schematics numbers 
    them, so he will be talking about pin 2 for the signal out instead of pin 4.
    One concern I had was to see if we need to add an extra resistor to the Arduino out pin but checked the Vectrex schematics 
    and there are 680 Ohm resistors on all the buttons so we are safe.
    See here from the parts list:
    Read more: http://vectorgaming.proboards.com/thread/1591/diy-vectrex-3d-imager#ixzz59AvmDOVM

add to doc
    DIS_TYPE_DATA_WORD_POINTER

Add to FAQ:
    I’m working on Windows 10 64-bit and VIDE 2.0 RC17. Monitor size is 27″, 2560 x1440, scaling 125%.

    The VIDE text and toolbar buttons have always been too small to be comfortable for me, the text sizes are 
    now changeable via LaF settings, but not the toolbar buttons. One problem seems to be that Java doesn’t recognise 
    the 125% scaling on what is quite a high DPI monitor, it sticks to 100%, whilst everything else is working at 125%.

    However, I discovered that you can tweak the high DPI settings to force Windows to adjust it to 125% from the 
    Windows Task Manager. Make sure VIDE is running and then press Ctrl+Shift+Esc to bring up Task Manager, 
    locate the “Java(TM) Platform SE Binary” application, right click on it and choose “Properties”, then on the 
    “Compatibility” tab, check the box labelled “Override high DPI scaling behaviour. Scaling performed 
    by:” and to get the 125% scaling, I choose “System” in the combobox. (The other two give me 100% scaling.) 
    Then, restart VIDE to run with the new settings.

    For me, choosing “System” gives 125% scaling. It’s a little blurry after that, but still quite usable and 
    easier to read for me.


Add:
    document of pb6 and bankswitch

doc as optimizition 
    - moveTo_end_early_XX
    - smartlists like Kristofs with pulu
    - completete macro based (like my 70)

add in doc:
        Info:
        Vectrex EXEC ROM BIOS Checksums 

        Checksum 7931 : 
        First Release. 
        GCE ROM. 
        Title screen “GCE - ENTERTAINING NEW IDEAS”. 
        Vectrex with this ROM will have a buzz (unless manually de-buzzed). 

        Checksum B796 : 
        Second Release Release. 
        MB ROM. 
        Title screen "VECTREX”. 
        Vectrex with this ROM will have a buzz (unless manually de-buzzed). +


        Checksum 7ADB : 
        MB ROM. 
        Title screen "VECTREX”. 
        European Vectrex release. 
        Fixed version of the built in game Mine Storm. 
        No Buzz Vectrex. 
        Different Printed Circuit Board (PCB) as compared to other Vectrex. 
        Serial Number series 311xxxx.

add doc (if not done):
        Debugging RAM
        --------------
        a) in dissi switch "nu" (no unkown) to not selected (GUI checkbox)
        b) better switch of "following" of dissi "df" (don't follow) (CLI command)
        c) switch on disassemble ram with "dr" disasm RAM (CLI command)

        Now RAM will be viewable in dissi.
        But usually all RAM is configured as Data - so no code will be displayed.
        While dissi is not tracking (camera is OFF) - best done also in pause mode,
        mark a RAM memory region and via popup menu cast to code.
        Perhaps you habe to "shift" memory regions, with "cast to byte" and "ungroup" also, to
        access the addresses that need to be cast to code.

        Disassembling RAM takes many resources, since the DISASM is done for each RAM - poke.
        If you do not need to disasm RAM, you better leave it switched off.

        Also note - disasm RAM might be usefull for bankswitch disasm.
        The cast to disasm is only done for the current active bank in dissi.
        Upon a bankswitch the casts have to be redone for the other bank!

doc:
  saved states do not reload config, and do not load cartridge info configs

doc:
 MAC problem wih keyboard
  Setting defaults write -g ApplePressAndHoldEnabled -bool false makes it go away for me. Looks very like an OS related bug. – teppic Jan 9 at 6:33 
  see:
  https://stackoverflow.com/questions/41393525/java-swing-keybindings-stop-working-only-on-mac
  Open the Terminal app and write:
  defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
  Then restart any open app in which you want this setting to activate.
  REVERTING BACK: Just,simply add true in place of false to the previous command like this:
  defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true

done: was a bug //            jMenuItemYM.setEnabled(te.name.toLowerCase().endsWith(".afx"));
done: Vecci -> print sync import
done: Softreset - no RAM delete
    ... aber genau dieses Reinschreiben sollte Vide bei einem soft reset doch eigentlich nicht machen? 
    Beim „Anschalten der Console" verstehe ich die Gründe, bei einem soft reset 
    (ich meine das Drücken des Reset-Knopfs an der Console) bleibt das User-RAM des gerade laufenden Binaries erhalten. 
    Ich habe genau an der Ecke ein wenig experimentiert und war verwirrt, dass auf dem echten Gerät alles klappte und  in Vide nicht. 
    Nimmt Du einen derartigen Wunsch für den nächsten Vide-Release für die Post-VectorBlade Zeit auf? ;-)
done: "NO SHIFT" code -> now template for no shift exists

done: BUG ROM is dissassembled as UNKONW
done: RAM comments -> to all banks!          
done: Dokumentieren - Parameterübergabe
done: ?ASlink-Warning-Undefined Global _picTranfer2 referenced by module bloxorz.enr.c
done:
  Als weitere Verbesserungidee könnte man noch verhindern, dass im Falle von RUM_INLINE die „vec_rum_fct_pjc.rel“ Bibliothek zum 
  finalen Binary hinzugelinkt wird. Die wird bei der inline Version ja nicht benutzt und vergrößert unnötig das Binary.
done: add "peek" counter in Tracky
done: "globale" Varialen/Funktionen/Makros pro VEDI nicht pro Vide instanz
done: correct curly indenting!
done: edit peepholes
done: BUG: load vecVox switches to vec Voice
done: BUG: fcw is red as syntax
done: add "C-Demos" credits in help
done: change project definitions, so that can be loaded from the directory they reside in REGARDLESS of path
done: DEBUG RAM
done:to peer #define Vec_Loop_Count        RAM(0xC825, unsigned long int) // Loop counter word (incremented in Wait_Recal)
done: double click on mcro def in "No Frame" search the include path of "with frame" 
done: enable direct addressing in vide
done:
   if without curly
    else
    for next without curly
            while without curly
done: document song and explosion edit
done: rotated in "normal" mode overlay wrong!
done: ASCII bild - andere Farben
done: bug in disabled debug -> draw arrows!
done: single step in c before a cline goes in marking one line to far
done: watches in Vari
done: doc command line
done: in Instrument
    Wenn ich das richtig sehe, kann man dort ADRS und TWANG einstellen und dann einzelne Noten anspielen und anhören. 
    Gibt es dort auch die Möglichkeit, eine komplette Melodie „im Original-BIOS-Format“ einfach abzuspielen?
    Ich nutze momentan die BIOS Soundroutinen, und ich bin musikalisch absolut unbegabt. Also trial & error. 
    Die Turnaround-Zeiten für das Ausprobieren kleiner Jingles erfordern immer ein C-Coding + Compile & Run und 
    sind somit relativ lange. Daher wäre so ein Feature sehr nützlich.
done:
    Ebenso nutze ich die BIOS Exlposion Routine. Ich bin damals auf keinerlei Doku hierzu gestoßen und habe dann 
    per reverse engineering den Code von Star Castle studiert, um die Funktionsweise herausgefunden. 
    Das war hart, aber durchaus spaßig. Auch hier wäre ein Ausprobier-Tool sehr hilfreich. 
    Ist aber nicht dringendes, nur so eine Idee.
Done:
    Bzgl. der Tabs ist mir Folgendes aufgefallen: Beim Editieren in Vedi liefert die Tab-Taste 
    „Sprünge“ von 4 Spaces, genauso wie in Geany. Nach dem Einlesen meiner (Geany) C-Files in 
    Vedi haben alle Tabs jedoch 8 Spaces. Der Code wird so recht „breit“ und läuft bei Mehrfachverschachtelung 
    schnell rechts raus und wird unlesbar. Wenn ich dann in Vedi weiter editiere und neuen Code hinzufüge, 
    werden (weiterhin) 4 Space Tabs generiert. Werden hier beim Einlesen/Unwandeln evtl. zu breite Tabs generiert?
done (but bad)
    Und wo wir schon dabei sind, hat der Editor evtl. auch einen auto-indent nach Zeilenumbruch 
    gemäß der Schachtelungstiefe der geschweiften {} Klammern (kennst Du sicherlich von anderen Editoren)?
done
    Mention, that when two or more cexis are available and one is swotched to full or panel - the
    others lose there opengl surface
done:
    ConfigPanel - reload config values e.g. when debugging starts!
done: BUG pythagorean theorem - Buffer overflow of VecVoice?
- done: vari option in variables "remove BIOS"
- done: vecci bug vecci big editor, scale of 5 not visible if position is < 0
- done: vecci shift right mouse button transposes the vectorlist window
- done: dissi right click in dissi -> open in vari
- done: multi step 
- done vecci: bug coloror in export import of vecci exception - IllefalTreadState
- done assi: bug " std #timerObject+BEHAVIOUR" assembles without error but produces no correct mchine code!
- done vide: list macro names
- done: vedi
    The label that is visible in the screenshot is not a macro label per se - since it is a global label.
    You should either end it with \? or declare it as local after the header of the macro.
    If you use THAT macro several times, the label "bstart" gets redefined every time the macro is used. Which might lead to erratic behaviour.
    Nonetheless - I check if something is wrong. I am not sure if the keyword local correctly identifies macro labels - now that you mention it.
done: in file 3d/3d_makro.i the includes  INCLUDE "3d/000.I" can not be doubl clicked!
done: -> bei fehler auch zu viele threads???
- done: VECX todo _> support samples (Moonlander)
- done: VECX spike not drawn correctly!
- done: DIS allways on switchable
- done: DIS debug
- done: VECX auto step to above
- done: VECX breakpoints
- done: VECX stacklist
- done: VECX click on a vector and get a stack frame!
- done: DIS till "here" -> well that is just a breakpoint and go...
- done: DIS on dissi -> doppelclick, jump to adress
- done: VECX Bug Callstack sometmes has values > 0xffff
- done: VECX Letters at moonlander correct
- done: VECX cleansweep correct (ow well...)
- done: VECX integrators with faults -> don't think it necessary an more, test exesivly
- done: VECX overlay
- done: VECX lightpen port 2
- done: EDI only set highliter to asm & inc
- done: EDI run assembler in ajother thread and update display!
- done: ASM also don't output everything to stdio!
- done: ASM negative zahlen in assi
- done: EDI search not crooect placemnt yet (long string in moonlander: "; if negative we are presenting stuff, go there")
- done: ASM as preorder OP asm "internal" macro "lo"
- done: ASM asm macro definition "local" for labels
- done: EDI jump to error in editor
- done: ASM assi , makros
- done: ASM save cnt
- done: EDI delete selection on "delete", not only line selection!
- done: VECX idea: add "glow" to vectors, not CLEARING the old vectors, but rather "darken" them 
- done: DIS (var/label) dissi "access" maped from vecxy (memory read/execute none)
- done: DIS window with code labels to jump to!
- done: DIS todo make configi correct as of now only editable ONCE
- done: DIS list of vars
- done: DIS waitrecall timings
- done: DIS psg + joystick (analog) info window
- done: EDI: edi -> assemble and start from here
- done: DIS reopen of windows after closing not possible (some) -> Test
- done: DIS search option in dissi for "comments" or labels
- done: DIS -> now all! question: labels in dissi, contain all of group or just address?
- done: DIS -> now all! question: comments in dissi, contain all of group or just address?
- done: DIS COMMENT_LABEL -> show them in dissi
- done: ASM produce all ranges in hex "$"
- done: DIS remove secondary breakpoint list in dissi
        all breakpoints should be kept in ONE place only!
- done: LEX syntax to set breakpoints in assi "comments"
- done: LEX (many)for Mem Op do incorrect scans, like
        var var = false
        + SPACE +
        #SPACE ....
        +- (, (- (+ ....
- done: ASM no bug, there was a label called "1", which was defined as 0 BUG! ##### dissi (see vpong (232))
            CMPA    #$00               ; is a button pressed?
            -> disassebles to $81 $00    CMPA #01
- done: ASM vpong.asm
            DB   hi(SCORE_TEXT_SIZE)
- done: ASM flag for asm to automatic use long branches if short ones don't do?
- done: ASM LDB	    #+65 -> error unrecognized expression, Monsterhouse2.asm
- done: ASM DB     '0123456789:;<=>?',$80
            ";" truncates line, ... error!  (in Anthem.asm)
- done: ASM (art.asm -> 108 errors) force direct <-> extended
- done: ASM LBEQ    $F000   ;Cold_Start -> out of range hä? (Spectrum.asm)
- done: ASM Numbers: (OMEGA.AS9) state              EQU #$00
- done: ASM: not AS09 , I won't look for correct assembler of christoph OMEGA.AS9 -  assembles, but dos not work correctly
- done: ASM daisyNew: Opcodes: ALIGN, STRUCT, LIST, NOLIST, TITLE, PAGE, DATA BSS, CODE, use or org+ds as "equ"
- done: SYN Coloror THREADS are alive after closing editor!!!!
- done: LEX test macro calls with 3 paremeters, are they RED? (Thrust .asm)
- done: LEX syntax local PF58B,PF592,PF33B,PF33D,PF341,PF345,exit
- done: LEX macro definition more than one paremeter comma red?
- done: LEX direct binary:              ora #%10000000
- done: LEX DB      'g GCE 1776',$80 Strings (Anthem.asm e.g.)
- done: DIS after editing a comment in dissi, scan comment for "hey dissi"
- done: LEX lex a correct 6809 syntax! -> speedups!
- done: EDI (now using "real" files) transalte tmp filenames in error to "real" filenames!
- done: DIS (started) command line tools in dissi, like Go 10000 (cycles), showB/W $label, setBP $2151, print cycles, measureCycles $90-$9a, set pc =$1000, set a =0; set RAMP = 1
- done: DIS display a "brwakpoint HIT" message!
- done: ASM opt (some) implemented, asm convert lbra -> jmp option
- done: ASM opt: l"B??" -> "B??" when short offset!, short jmp -> bra, short JSR -> bsr NO! l to non l only for BRA, other give warning, must insert NOPS! (AS09 does same!)
- done: ASM built cdissi ... Frogger & Moonlander same (opt switched on) Compare ASM to AS09, binary...
- done: ASM "ye, I think so!" is EQU handled correctly while generating CNT?
- done: DIS from Dissi -> make source
- done: LEX, registers in TFR are dark blue instead of bold black!
- done: LEX   var1     = lo(#user_RAM)  is error!
- done: ASM macro comments should be places with the macro lines, not "in front" of all macro lines!
         on macro expand place comments, not on macro load!
- done: DIS source - recompile! to test and should 1:1 !
- done: DIS d asm export, all labels, even in between groups
- done: ASM was DIS does not output macro comments (e.g. frogger loop unrolling???
- done: VED doubleclick on include -> load
- done: ASM   bne   $06 is interpreted as JMP to #$6, not as jump +6 forward!
- done: DIS line 1450 of bedlam dasm                  cpx   >$AA1D
- done: DIS dissi create of bedlam (in non code sextion - ok) :  ror   []
- done: DIS Join same data type on cdissi, fucks up operands, DB data is doubled!
        Badlam red parts, seems they look like DB data, but internally are not, only after cast can they be grouped....
- done: LEX blt   -$09 "minus" is red!
        cwai  #$EF #... is red (both bedlam.dasm!)
- done: LEX bne   $06, $06 is interpreted as variable, not as number
- done: LEX suba  [<-$68,pc]  pc is red
- done: VED in config, button to clean up editor state (in case of deleted files!)
            (or on load error auto clean files out....)
- done: DIS CRC in cdissi for complete bin
- done: DIS option to generate labels, eg. DISASM starts with
            bra   $31                   ; start of cartridge code!
            where the heck is that?
- done: DIS edit labels, so one can add them on the fly
- done: DIS crc to a range
- done: VARI - allow edit of var names
- done: VARI Allow edit of comment
- done: DIS (should tell assi!) - only used vars in output
- done: DIS/CNT tried, can't to dumb for it!  make a definitve difference between label and immediate values
- done: VEC/DIS Version v1.0, not really much of a version though ...: smart dissi, code where code was executed!
- done: DIS export CNT file
- done: VECX DIRECT DRAW!!!! DOES NOT WORK!
- done: ANA windows/vector window, Integrator and vector position (and mouse) should be equal scale to be comparable!
- done: VECX option, PRINT CURRENT BEAM POS!
- done: DIS init dis after loading a saved state
- done: SD from chris tumber does not work AT ALL (bankswitch?)
- done: VECX cartridge class for bankswitching!
- done: VECX VecFlash http://www.vectrex.fr/tracker/print_bug_page.php?bug_id=29
- done: VECX bankswitch http://www.vectrex.fr/tracker/view.php?id=14
- done: DIS bankswitch in dissi
- done: DIS bankswitch breakpoints
- done: VECX (not tested) in savestate rollback buffer also direct draw vecor!
- done: DIS (on reg panel) somewhere on display show which bank we are on
- done: DIS command cls
- done: DIS (not tested) hey dissy set bp with bank!
- done: VECX/DIS command run for x cyxles
- done: DIS (not tested) hey dissy in bankswitches CNT
- done: DIS/VECX (not tested) codescan memory CodeScanMemory is not bank switch compatible!
- done: VEDI - pretty print asm (VERY simple!)
- done: VECX load save with cartridge
- done: DIS in cnt START BANK $xx , END BANK $xx
- done: DIS cycle count in dis is just BASE, must be modified by postbyte!
- done: DIS (not tested) banked cnt-output for dissi 
- done: DIS dasm.asm output of banked cartridges
- done: ASM bankswitch for cnt assi, add keyword BANK
- done: VEDI selected line, TAB/UNTAB -> indent
- done: ASM tfr a, b -> illegal register (SPACE)
- done: ASM           ldd # (lo(1500000/25)<<8) | (hi(1500000/25)) ; that is a 16 bit, exactly what we want!
           this eems to be calculated WROng!
- done: ASM in macro if does not work alright?
        in pushr intensity macro does not work correctly - CHECK!
- done: CODI cls befor each compile
- done: BUG? -> No Windows behaves differently in regard to "current path"
        Mac says, current is where I loaded a file from
        Windows says current is where I started the program from, regardless of anything else
- done: ASM (not tested) AS09 can take SP in stead of S for stackpointer! (see thrust sources)
- done: ASM nop #
- done: ASM struct
- done: ASM CMAP
- done: ASM If Bug
- done: ASM local Bug
- done: ASM * adress pointer (not AS09 compatible)
- done: ASM DS in code filled with 0
- done: LEX         dec     -1,sp
- done: LEX                  BNE     \1                ; if no rest... jump (parameter of makro...)
- done: LEX ifneq
- done: LEX   cmpb -1,s (Thrust)
- done: LEX I keep it that way!  is red        DB     'PQRSTUVWXYZ[\]^_',$80
- done: LEX nop 6 
- done: LEX struct, set, cmap
- done: LEX vars auch übernhemen mit set und "=" 
- done: LEX call macro with a register as parameter (,u) -> red
- done: LEX multiple macro paraeters in call not colored correct!
- done: LEX neu scannen after UNDO
- done: VECX when curved lines (vectrex electricity demo) qubic spline
        detect whther lines without switchin light of have
        x or y changes (x really)
        if so draw a "curve" with points as outer limits!
- done: VECX Bug, sound annoying in Berzerk
- done: LEX syntax scan:
        build and update lists of known macros and labels for syntax scan?
- done: LEX                     jsr      >_10E4             ; start of cartridge code!
        gnerated labels, is red, although after a few scans it turns green (ok)
        postponed to "project"
- done: LEX struct labels must also be inserted in global defs!
- done: yes that is so, so what? ASM no "set" pseudoOp (done as replace with " = ")
- done: LEX When var is deleted, check is other var is still avaibale, not automaticallx delete ALL
- done: VECX remove jar from spline
- done: VECX Thrust -> Sound fucked up? Stuttering when playing
- done: VEDI PRETTY Print! Switch Thread from color off; pretty print manually; switch thread on!
- done: DIS add feature to hide columns
- done: VEDI (well did something, gurantee???) delete large selection -> hangs
- done: cannot reproduce DIISI  widerholtes betätigen von "debug" reseted - exceptuon...
- done: so what display very flickery
- done: VEDI MARK and SHIFT MARK selects in between!
- done: (fill mem with 1) polar rescue -> dead on start - debug!
        see: http://vectrex-emu.blogspot.de/2006/07/talking-about-history.html - > 07/07/2006 01 for minstorm, does the trick
        for polar rescue also!
- done: VECX Text in rounders is BAD
- done: (but not gone further yet) implement ray gun!
- done: VECX - added auto sync display generally SUCKS!
- done: VECX added ZERO Offset, zeroing was done to FAST - sd.bin shot is not working not correct
- done: VEDI action, pre and post for project FILES
- done: Starter game list for multi banks
- done: Starter download to download folder!
- done: VEDI parameter übergabe an scripts
- done: VECX Splines in Pole position - Fucked!
- done: VECX hex(alpha) sound?
- done: Starter downloader also for PDF's as Message Box
- done: VEDI Project script FOR compile, AFTER compile
- done: VEDI  Scripts + Pop up execute
- done: upon building in vedi, a cartridge prop should be created and vecx be started with THAT!
- done: VECX panel - splines with drift (chris) look llike shit!
- done: CONFIG config -> save all configs, preferable in different settings!
- done: VEDI file rename -> file properties also rename / delete...
- done: VEDI - project for lineart - so that it compiles and runs
- done: VEDI file properties in general
- done: VEDI scripts for files
- done: VECX bitmaps in lineart not ok
- done: VECX TIMING Lineart (Raster) is not same as vectrex!
- done: VECX spline and real vectors!!! -> should "look" the same!
- done: VEDI new file 
- done: ASSI BUG ASSS  jmp      >main  (optimize jmp to bra, than extended addressing gives error!)
- done: VECX T2 was used for digitla timing, auto sync choked on that! Get into Vectrex not working at all?
- done: DISSI generated CNT file not loaded ith BS project VecFlash! because CNT files is called  mainBank0.cnt and bin file mainBank0_0.bin
- done: VECX test done, nothing really impemented though...do a zero test with pos, and blank off zero on...
- done: VEDI in projexct save all befor compile!
- done: VIDE use vide only as editor, not as assi -> option for not calling assi, but
        let it work alone with pre and post and actions
- done: VECXY glow vectors
- done: VEDI - save as
- done: VEDI switch to editor if open already on tree selection
- done: VECXY not possible, since most lines are not rectangles! instead of x lines - to a ractangle with gradient 

- done: VECXY  check forward backward and "single stape" in between!
- done: VECX Invitron - demo looks bad
- done: VEDI project
- done: DISSI Adding new labels, does not update labbi
- done: DISSI Setting DP to a value in dissi
               should enable dissi to (autromatically) use a label for that address!
- done: DISSI Add CA CB to DP popMenu
- done: VARI add variable in vari
- done: DISSI Setting columns in config does not change dissi (directly)
- done: VEDI dos not save divider position anymore?
- done: VECX shiftreg 18 cycle emulation
- done: ASSI yes that is so, now an error is output! assi bug, forward reference not expandable
- done: VECXY vectrex generations / DAC offset
- done: VECXY probably not finalized DAC timing in general
- done: ANA analog windows, use dac instead of VIA_ORA
- done: SOUND do tiny sound!
- done: SOUND digital output in vecxi has some "crackling" sounds, this is emulation related I think - vecterx does only have aminro crack at
        the end of a complete sample
- done: VECX was false CLR emulation (read) digital.i with clr shiftreg, -> vertical stripe on real vectrex -> not on emulator!
- done: Hmmmm - sound in vfrogger not correct anymore?
- done: SOUND was fals digital counter in PSG amen break -> bad sound? after spikes hopping?
- done: DISSI breakpoints after a restart are not shown in dissi (in table breaki yes!)
- done: DISSI Breakpoints in Vecxy still not cleared (or displayed when allegedly cleared!)
- done: DISSI clear breakpoints when i clear them!!!
- done: VEDI SHIFT TAB NOT WORKING! (autosync)
- done: DISSI softreset should not disable breakpoints!
- done: DISSI BUG no cycle in cylce column for page 1/2 opcode (see sample playing) CMPU / ldy 
- done: DISSI ray gun not working anymore
- done: AUDIO vectrex 3 generation -> low DAC Sound!
- done: ASSI assembler should give warning when file to large!
- done: ANI repeated opening of VIAI does not open ANA
- done: ASSI - assume undefined = 0 as default... codi - doesnt' use projects yet? - Lineart didn't work...
- done: digital sound, dac changes, spikes hopping my old vectrex first sound is not heard...
- done: veccy/dissi VECTOR Screenshot! 
- done: veccy animation in veccy
- done: veccy load and save of animations
- done: veccy veccy select in table -> selects vectors in graph
- done: veccy move "selection"
- done: veccy change setting for seletced vectors (pattern/intesisty...)
- done: veccy easier delete of vectors!
- done: veccy right mousbutton popup not allways working
- done: veccy SHIFT-click on arrow of animation, -> should move the selected frame to anothe rposiition!
- done: codi - no syntx highlihjtin!
- done: ym sound unpack routine generates crappy bytes?
- done: ym only xy registers (also enable registers >11)
- done: ym allow editing of register in a "YM table"
- done: ym allow recording of ym files
- done: vedi - test mod2vectrex
- done: vedi - ym
- done: vedi - wave stuff
- done: vedi vector - pictures ala bad apple
- done: veccy on delete selected vector, the resulting vectors are still marked as relative if it was befor...
- done: veccy point selection display in table is not reseted
- done: veccy - cancle the animation "loading" loads something "random"
- done: veccy save selected
- done: veccy load TO current list as selection
- done: veccy not allow saving of anims when one veftor > 127
- done: veccy build it so that max vetor length is 127!!! DONE
- done: veccy build move vectors must not be larger than 127!
- done: veccy move / rotation vectors must not be larger than 127 
- done: veccy create a runnable BIN file from the current Vevtlrlist / animation / scene
- done: veccy/vecxy build a vector list "scanner " that watches BIOS addresses
        import standard vectrex list from BIOS formats (from binary data) (user import)
- done: vedi in vedi button to add vectorlists or animations
- done: vedi in vedi right mouseclick "insert vectorlist" 
- done: vecxy Bug, less the two NOPS is to fast for real VEC!
- done: veccy display which import formats are possible
- done: veccy  do import export to/from asm
- done: veccy BUG joined more than one, polygon, fill gap -> ordering errors.!
- done: tracky add save to wait recal
- done: dissi labels of system bios not loaded?
- done: veccy vector - raster images, inclusive display routine
- done: veccy - finalyse (animation, building, saving, importing etc)
- done: dissi bankswitch for lst in dissi and assi
- done: vecxy 
        THE HIGHER THE (integrator) Voltage, the longer the delay,
        does that mean, that the delay befor switching ramp on again
        must be higher?
        What happens if not?
        -> see also EXEC PDF page 47/48
        They make a difference between 
        - no delay ((<$40)
        - delay 4*3 cylces (>$40)
        - delay 8*3 cycles (>$64)
        (ABS, positive and negativ!
        -> tested, doesn' seem to to make any difference
- done: veccy compiled vector lists (into ass code)
- done: ALWAYS update (Button) more Visual when switched on
- done: vecci quick keys and visualaization which mode is current
- done: VEDI bookmarks
- done: vedi hotkeys: jump, run, debug, search
- done: edit themes 
- done: edit color for colorer
- done: vedi jump to error display on error by assemblling
- done: dissi not shown on run? -> circumvent with window management, to have dissi iconified
- done: windows management
  iconify
  uniconify
  windows list
  window to front
- done: vedi new project relative paths correct
- done: all bar with buttons for all windows which are open
- done: vedi middle mouse button, jump to function also WHEN already in editor of that function!
- done: dissi bug in Assi (direct -1 was generated by dissi...)
        Exception while assembling: de.malban.vide.assy.AsmjDeath: Asmj bug: format of $FFFFFFFF
- done: dissi cast to bit %0010 1000
- done: dissi add labels in dissi
- done: dissi -> moved to dumpi vector memory scan/window in dissi
- done: dissi number of data items not saved in CNT
- done: dissi int dissi background coors for "regions"
- done: dumpi bitmap preview panel -> dumpy
- done: dissi BUG! Dissi does not show banked data Bank = 0???
- done: dissi association must be possible, if vecx was closed (and dissi destroyed) -> but another vecx remains!
- done: vecx remove veclink left  if left is plugged in other vectrex (right also)
- done: vecx do joystick inputs as interface "in" psg emulation
- done: vecx, was zeroing emulation fault berzerk arena display glitches emu faults?
- done: vecspeech option samples -> re,move silence at end ()
- done: vecx switch on lightpen, if cartridge is configured to use lightpen
- done: codi add code for eeprom if chosen in project
- done: vecx Verzerk does not start correct!
        seems like all buttons are allways pressed!
- done: tinysound evaluate why 1 channel vecvoice does not work as expected
- done: vecspeech vecvox psg output state saving of porta -> use debug out with "out" enabled
- done: doc notice preference DS2430 > bankswitch
- done: dissi still lose "memory" ends...
- done: dissi I think is done
        must be able to RESET a memory setting
        if a memory is set to "nothing" than dissi NEVER again recognizes it!
- done: dissi add breakpoints for PSG input output/ PSG port A bits (both in out)
- done: current implementation should suffice VecLink Build a true sync where both vecx emulate one instruction each step
        a "real" hardlink (emulators running in same thread with cacle sync) was implemendet (see: ENABLE_HARDSYNC) but it 
        runs slow as hell, so I disabled it again

- done: vecx add breakpoint for external line state change
- done: codi example code lightpen
- done: cartridge add emulation for BOTH bankswitch and 1 wire devices
- done: vecci for raster generation add the ability to NOT reverse every second row!
- done: veccy to save state "old_via_ca1"
- done: vecxi lightPen port 1
- done: vecci fitbyte -> must redraw
- done: vecci BUG rotate a single vlist "breaks" continuous vectors
- done: vecci BUG "loadded" vector lists can not be mirrored correctl -> (only non continous vectors???), see "AA"
- done: vecci sync list + anim+scenario
- done: vecci vecci scalefactor to complete animation
- done: vecci vector length in table viewable
- done: vecxi Imager saving set correct displaying of selected joyport devices after loading saved state
- done: examples no drift raster routines
- done: add information to wheels, from what "cycle" the color starts
- done: vecci - not possible! sync list so, that it can be imported (import must be done)
- done: vecxi save state of additional ram
- done: space between include " -> in assy error
- done: vecxi try sync to recalibtration instad of zero... might work wizth imager too!
- done: vecxi in imager mode, sync display to wavelen, and Imager auto sync
- done: codi Imager Example source
- done: vecxi if S is written to - reset call stack! (or redetermine)
        not possible to do correctly, just implemented a complete reset after a lds
- done: reinit carti after load (from save game) the carti
        - no bug! -> enable always update and one sees the changes
- done: vecxi ray gun with imager
- done: dissi add a bank mode, where all breakpoints are set/erased in all banks
- done: vecxi emulaiton MICROCHIP 11AA010
- done: vecxi emulation 3d imager
- done: vedi tooltip in vedi with vectrex bios functions?
- done: dissi analog windows, button correct? -> NO
- done: NO BUG Vectopia looks Vectrace look BAD!
- done: vecxi SPEED COUNTER 
- done: vecxi CODE INJECTION DONE
- done: VInfi with vector count
- done: vecxi vectrex animaction extra ram
- done: vecxi support Spektrum
- done: vecxi animaction
- done: vecxi spectrum (+cart)
- done: vecxi dualVec
- done: vecxi speed increase in Microchip
- done: vecxi logo
- done: dissi, columns not taken from config?
- done: vedi clear last files
- done: vecxi add a "speed" viewer, which shows how fast in a relation to a real vectrex we are
- done: vedi helper - small conversion % to $ to Dez...
- done: vecxi input devices & 
- done: vide Utilities in own menu
- done: instruments editor (ADSR/TWANG)
- done: sound documentation for mods
- done: vecxi Spikes Circus: The cart does have extra RAM on it (2k) so could be that too.
- done: scenario/animation with synced lists
- done: codi: rounders displays paddle and some dots WRONG, source is wrong
- done: vecxi spinner, wheels
- done: vide JInput devices
- done: vecxi input devces not saved with game information
- done: vecxi configureable: width heigth max 
- done: dissi BIOS disasm is allways taken from SYSTEM.IMG
- done: vecci fix to split
- done: vecci fix to order
- done: vecci fix to fill gaps
- done: dissicnt files for BIOS corrected
- done: dissi jump in dissi works again
- done: dissi direct labels corrected
- done: vecxi zero + integrator 
- done: vedi no error large paste -> no coloring - WAit!
- done: vecci auto apply
- done: vecci reduce hline
- done: vec32 do ym for BASIC
- done: vedi row count in editor is not updated
- done: vecci deadlock in animation vecci
- done: vecci selection of single points in table of vecci
- done: vecci select and shift select (strange with table - but working)
- done: vecci fitbyte -> repaint face table
- done: vecci new -> delete faces
- done: doc FAQ Manu Pärssinen The solution is here: https://java.com/en/download/manual.jsp - you need to download (also) the 64-bit version of Java, and it's not the 'normal' download that they offer on the front page.
- done: vecci corrected cloning in Vectorlist (again)
- done: dissi average in recal
- done: ym new ym routine
- done: vecci error in "order" veccy - exports were always disabled!
- done: vedi paste in editor, still messes up syntax highlighting
- done: vecxi psg emulation for psg envelopes seems to be broken
- done: ym in new player ym reg 13 in player -> ignore 0xff
- done: ym record , if 13 not changed -> write ff
- done: ym also ensure that 13 is 8 bit
- done: ym in ym shiftcklick sets complete column
- done: ym save corrected for reg 13
- done: vecci select in Mon does not update VList or Raster!
- done: vecci BUG - Absturz anim edit (lock?)
- done: vecxi bug - if shift reg is enabled, the manual blank does nothing!
- done: vecxi drift only while NOT integrating?
- done: ym do new YM routine
- done: vecci save settings for grid, byteframe, scales
- done: ym (some) in ymplayer, do not set regs to psg, if not changed!
- done: vecxi SHIFT REG DELAY? -> 2/3 cycles it seems in the schematics!
- done: vecci hidden line removal
- done: asm generate doe data how many per line -> groupinh infos
- done: veccy table row height 
- done: VecVox not working? _ T 1 delay!
- done: Font Sizes... (scaleable Vide)
- done: dumpi change memory in table
- done: dissi 16 bit values print
- done: dissi watches (add watch)
- done: dissi poke in dissi -> update memory dump!
- done: vari variables table -> sortable
- done: vedi inject in wrong file could get you into trouble -> savety dialog added
- done: vedi BUG/Feature, when typing in Vedi, the "*" now moves the bottom line!
- done: vecxi implement "color" drift
done: + add a "zero retain" - a integrator offset value that is pro mille of lat position
done: + adjust cycles for zeroing
done: in vedi show current shortcut jump table
done: in vedi do a "set breakpoint, set watch" on the line numbers
done: vari: if table (variable) is sorted - tooltip is wrong
done: includes under windows!!!
done: libemuay in credits
done: do new PSG emulation YMER
done: Watches aus dem Editor
done: FORCE label from assi sources
done: in editor jump to bookmark if tab exists and another tab is currently seen, the other tab is not chosen!
done: Bug breakpoint display on line numbers not working correctly
done Editor, every second entered char destroys line counting, the "correct" chars -> display WRONG line counts!
tried again: vedi still loses information (and does not recover) when files are closed|
done (I think): immedatiate also with "label" or non forcred like cmpa #SPACE 
done: Add default values to storyboard
done: help for storyboard
done: Richard Chadd Is it possible to change the colours of the vectors drawn in vecci? 
      Can you add preferences for this? I ask because i find hard to see the dark grey 
      on black background when you play the
      animated vector list. Getting old eyesight not good lol
done: pretty print in vedi - values
done: codi - line numbers - artifacts of labels remain (see Thrus,asmm"




done?bug: vedi  
  if a variabler is drefined 2 times, and only one is deleted
   the "other" one should be enought to ensure syntax highliting
- done: install BIOS as internal source, and jump on double click there
- done: vedi, periodically in the background, re - check "jumps" to known labels, since after a time of editing they get "off"

done? bug vedi:
  entering new lines in the middle of vedi (only pressing return)
  every second or so time, the line numbering gets fucked
  -> not reprocueable
- done: add watches in vedi via popup
- done: table with current breakpoints/watches in vedi





https://gcc.gnu.org/onlinedocs/gcc/Using-Assembly-Language-with-C.html#Using-Assembly-Language-with-C
https://gcc.gnu.org/onlinedocs/gcc/Constraints.html

http://forum.jogamp.org/JOGL-Overlay-drawing-problem-td4036075.html
 
Am 04.07.2017 13:08 schrieb chrissalo@posteo.de:

Do you use a GLEventListener? Please avoid making the OpenGL context current on several threads, 
call your JOGL code directly or indirectly in GLEventListener.display() or use GLAutoDrawable.invoke().

http://forum.jogamp.org/How-to-Draw-a-Smooth-Curve-through-a-Set-of-2D-Points-td4037677.html

Vertex buffer
https://wadeawalker.wordpress.com/2010/10/17/tutorial-faster-rendering-with-vertex-buffer-objects/

Shader
http://copypastaresearch.tumblr.com/post/1033237190/ported-another-glsl-routine-to-jogl2-this-time-a
http://bentonian.com/teaching/AdvGraph1314/6.%20OpenGL%20and%20shaders%201.pdf
http://www.coding-daddy.xyz/node/16
http://jogamp.org/git/?p=jogl-demos.git;a=blob;f=src/demos/es2/RawGL2ES2demo.java;hb=HEAD
http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc/com/jogamp/opengl/util/glsl/package-summary.html
forum jogl
http://forum.jogamp.org/jogl-f782158.html

----
Just googling - no - potrace can't. It seems a program called "autotrace" can -> 
http://autotrace.sourceforge.net/
You need a feature called "centerline tracing"...

https://graphicdesign.stackexchange.com/questions/60107/convert-a-line-drawing-from-raster-to-vector-lines

autotrace -centerline -color-count 2 -output-file output.svg -output-format SVG input.png
    -line-threshold [real]:
    If a spline does not deviate from the straight line defined by its endpoints by more than the specified number of pixels, then treat it as a straight line (default: 1).

    - line-reversion-threshold [real]:
    If a spline is closer to a straight line than this, weighted by the square of the curve length, keep it a straight line even if it is a list with curves; default is .01.


The conversion is done using a programm called potrace.
Perhaps there are options in potrace that would work - never looked at it. Maybe you can tell potrace "treat bitmap as vector" - if I have spare time I might do some research on that...
http://autotrace.sourceforge.net/index.html#intro




WRONG:
    Don't use the original bios random routine ! It has a bug that might crash your game (it occured during my vector pilot development).

    Here is a patched version of the routine (bios labels are based on fred taft's disassembly):

    get_random_bugfixed:
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ;+This function is a bugfixed version of the original bios get_random_a function.
    ;+
    ;+Inside the get_random_a and get_random_a2 routines of the vectrex BIOS.
    ;+A terrible bug is located: the X-pointer that needs to be pointing to
    ;+the random-seed in RAM is not loaded directly with the random-seed
    ;+address. Instead, it is loaded with the contents of the random-seed.
    ;+In some cases, this causes that new random-seed is written at random-places
    ;+in the memory map. Sometimes in a RAM-space, sometimes in a VIA-register.
    ;+This causes the program to crash !
    ;+
    ;+At entry: none
    ;+At exit : A = random-number.
    ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    pshs b,x ;backup b,x
    clrb ;seed of 0
    get_random_bugfixed_B_rounds:
    ldx #Random_Seed ;BUGFIX : set X-pointer to the ADDRESS-value of the random-seed !
    jmp ran_loop ;continue with remaining ROM-routine (see exec-rom)

    Read more: http://vectorgaming.proboards.com/thread/1329/random#ixzz4fOYFbmQg





NOT done (wont do):
  - LEX Macro syntax where a assembler instruction is concatinated from macros, like:
        ;Set the hi/lo part of a 16-bit register individually
        mCombine macro reg,hival,loval
        ld\1 #(lo hival)<<8 | (lo loval)
    endm
  - LEX same line, wont change lo hi, hi lo, which might be correct but shows as error
        these operators identify as variable, and two variables in a row are an error
        if syntax was not as flexible to allow lo Variable in stead of lo(variable) everything would
        be ok, but I rather be a little lax about the syntax!
  - LEX parenthesis: 
        lda (((2)+(1)) is no error, because at no stage arent enough closing brackets available...
  - ASM Might some day, not a priority- STRUCT Jup! :-( DEF.ASM (is that franks asm outpu???)
        Struct not done
  - LEX in OMEGA.as9  sprite_2           EQU sprite_1+#15       ;Start of structure for Sprite #2
        in the middle of nowhere a '#' should be wrong
        assembler accepts it, but IMHO that is not good, wont change!
  - DIS not done  - won't do ? or? if we are at it, also in between comments!
        (comments for lines which are grouped (in group) are not generated!)
- nope: import from inkscape - SVG
- nope: (or... yes done for potrace, but not user accessable) import from JSON




http://atariage.com/forums/topic/14837-atari-2600-vectrex-video-game-release-party-in-ottawa/

http://mustcalculate.com/electronics/capacitorchargeanddischarge.php

VOLTAGES / capacitor

The general equation for the voltage across the capacitor is

    V=V0+1C∫idt

In the special case where I

is constant this translates to

    V=V0+I×tC

We want to find t

, so rearranging gives us

    t=C(V−V0)I=1F(3V−5V)−10mA=200s

    = 3 minutes and 20 seconds.

The more general solution is where I
is a function of time. I'll assume that the 10mA is the initial current, at V0 = 5V. Then the discharge resistor R=5V10mA=500Ω. The time constant RC

is then 500s. Then

    V=V0×e(−tRC)

or

    t=−RC×ln(VV0)=−500s×ln(3V5V)=255s

    = 4 minutes and 15 seconds.

This makes sense. Following an exponential discharge will get us at 3V later than with the linear discharge.
