Skip to content

Visual Assembler v2.3.9

Latest

Choose a tag to compare

@zstarczali zstarczali released this 10 Sep 19:07
· 16 commits to main since this release
16c89e9

What's New

v2.3.9

  • New: * works in any expression — the program-counter symbol can now be used inside operand expressions, not just on its own: BNE *-5, JMP *+20, LDA #<*, LDA #>(*+63). A * that follows a value (e.g. STRIDE*2) is still multiplication.
  • New: Local (dotted) labels — a label such as .loop belongs to the scope of the nearest preceding global label, so DrawSprite and ClearScreen can each have their own .loop without colliding. Reference them as .loop inside the scope or ClearScreen.loop from outside.
  • New: Long-branch pseudo-opsLBNE, LBEQ, LBCC, LBCS, LBMI, LBPL, LBVC, LBVS assemble to an inverted branch over a JMP (5 bytes) so the target can be any distance away.
  • New: .assert directive.assert end - start <= 256 or .assert * < $A000, "message" is checked at assembly time and fails the build with a clear message (and the actual value) when the expression is false.
  • New: Self-modifying-code labels — write LDA value:#$00 and the label value points at the instruction's operand byte, so STA value later patches it — no separate instruction+1 label needed.
  • Improved: Friendly out-of-range branch errors — a branch that lands outside −128…+127 now reports exactly how far it overshoots and suggests the matching LBxx long branch.
  • New: Workspace save / open — save the exact set of open file-backed tabs, the active tab and each tab's editor mode (Block/Expert/Ultimate Basic) to a .vaws workspace file. Workspaces auto-save on change, and the app auto-restores your last workspace on launch.
  • New: Global memory panel toggle — show or hide the full C64 memory panel from a dedicated UI switch.
  • New: Localized Ultimate Basic command reference — command descriptions in the autocomplete popup and the command reference panel are now available in Hungarian, English, Spanish, German and Dutch, with English fallback for anything not yet translated.
  • Improved: Ultimate Basic graphics documentation — refreshed help text for COLOR PEN and the plot/line/rect/circle and multicolor drawing commands to match current compiler behavior.
  • Fixed: KERNAL routine reference — corrected the SETLFS ($FFBA) and PLOT ($FFF0, carry-flag read/write semantics) entries in the disassembler's KERNAL address table.
  • Fixed: Memory usage with many tabs open — per-tab undo/redo history is now capped (with a small debounce), preventing the unbounded memory growth that a long session with many open documents used to cause.
  • Improved: Editor toolbar cleanup — removed the redundant breakpoint toggle buttons from the Expert and Ultimate Basic toolbars (breakpoints are still set from the line-number gutter), and aligned the Expert toolbar height with the Ultimate Basic toolbar.