Basic compiler simulation test examples page
Basic compiler debug test examples page - retro processors
OshonSoft common editor component update info
News in version 14.83 (2025-04-13)
- Improved unofficial instructions internal management
- Application infrastructure improvements
- Small app improvements/bug fixes
News in version 14.81 (2025-03-27)
- Small app improvements
News in version 14.80 (2025-03-14)
- New items in Miscellaneous Options: Simulation Rate Slow/Normal/Fast Delay Constants; can be used to tune these simulation rates
- Basic compiler, Assembler: Fixed missing 'Save changes' prompt when using recent files shortcuts
- Small app improvements
News in version 14.79 (2025-02-20)
- Basic Compiler: New #sim and #simio directives; can be used to set memory location and i/o port (bit) values at desired moments
during the simulation of the compiled program; #sim (4095) = 22; #sim (0x0FFF.1) = 0; #simio (0xFE) = 55; #simio (254.3) = 1;
generated HEX file is not affected at all; basic program tracking feature is not required
- Updated Basic compiler reference manual - LINK
- Small app improvements
News in version 14.77 (2025-02-13)
- Basic Compiler: Fixed bug related to 'Fast disappearing if insert mode not used immediately' item in Help Panel Options;
more intelligent Help Panel insert mode
- Small app improvements/bug fixes
News in version 14.76 (2025-01-26)
- Input/Output Terminal(s): Busy Time implemented for the Transmit Data Register Empty signal;
keeps it low after a data byte has been received for the number of clock cycles specified during control bit setup
- Input/Output Terminal: Fixed bug related to Transmit Data Register Empty signal
when both input and output control bits are on the same I/O port
- Small app improvements/bug fixes
News in version 14.75 (2025-01-07)
- Basic Compiler: Reimplementation of the advanced compiler options
- Basic Compiler: New item in Options menu - Help Panel Options:
Autocomplete Dim statement, Autocomplete #define directive, Autocomplete Gosub statement,
Autocomplete Call statement, Fast disappearing if insert mode not used immediately
- Basic Compiler: New feature; array elements can be initialized in the form: arr() = (n1, n2, n3, ..., nx);
array variable must be declared first
- Main Window: New item in Options menu - Miscellaneous Options;
currently various options related to Find/Replace dialogs
- Updated OshonSoft common editor component; improved Find operation
- Various small app improvements/bug fixes
News in version 14.73 (2024-12-30)
- Small app improvements
News in version 14.72 (2024-11-27)
- Bug fixes
News in version 14.71 (2024-11-16)
- Basic Compiler: New item in Options menu - Advanced Compiler Options: Print Debug Comment Lines in Compiler Listing, Complex Expressions related (Allow Multiple Assignment Operators, Post-increment Returns Temp Var, Ascii Print # Returns String Temp Var, Use Result As Temp Var, Allow 1-Byte Math Temp Results, Optimize String Temp Vars, Allow Arbitrary Use of User Function Name)
- Basic Compiler and Assembler editors: Improved Find/Replace dialog
- Small app improvements
News in version 14.70 (2024-10-31)
- Assembler: DS directive improvement; new optional second argument implemented; used to specify the desired fill value
- Basic Compiler: New warning added - Standalone expression without an assignment operator
- Small app improvements
News in version 14.67 (2024-10-01)
- Assembler: New item in Options menu - No Operator Precedence (TASM Compatibility); default off
- Small app improvements
News in version 14.65 (2024-09-17)
- Small app improvements and bug fixes
News in version 14.62 (2024-08-28)
- New OshonSoft Launcher in OshonSoft Software Suite setup packages
- screenshot
News in version 14.61 (2024-08-27)
- Small app improvements
News in version 14.58 (2024-07-30)
- New tool in Assembler File menu - Quick Assembler Editor;
it is new tabbed editor window with always on top feature;
now also used to expand error tracking, assembler code tracking and breakpoints
operation to the included files when using OshonSoft assembler
- Renamed and improved tool in Basic Compiler File menu - Quick Basic Editor;
it is now tabbed editor window with always on top feature;
now also used to expand error tracking, basic program tracking and breakpoints
operation to the included files when using OshonSoft basic compiler
- Small app improvements
News in version 14.57 (2024-07-23)
- Updated OshonSoft common editor component
- App improvements
- Bug fixes
News in version 14.52 (2024-07-13)
- Basic Compiler and Assembler editors: New Find/Replace floating dialog with Match Case and Whole Words Only options
- Updated OshonSoft common editor component (added Find/Replace features)
News in version 14.51 (2024-07-12)
- Assembler: Fixed navigation through errors
- Assembler: Improved TASM integration - navigation through errors implemented
- Assembler: Added support for bitwise shift operators '<<' and '>>' in argument expressions; 'upper' operator discontinued - 'low highw' should be used instead
- Small app improvements
News in version 14.50 (2024-07-10)
- Basic Compiler: Maximal number of arguments for procedures and functions extended to 30
- Basic Compiler: Case statement now accepts range of values in the form - Case exp1 To exp2
- Watch Variables: Improved Add New Variable dialog
- Small app improvements and bug fixes
News in version 14.49 (2024-07-08)
- Basic Compiler: Support for UTF-8 characters in string constants
- Watch Variables: New Options menu item - Add Compiler Temporary Variables Only; default off
- Updated OshonSoft common editor component (added support for files with UTF-8 BOM)
- Small app improvements and bug fixes
News in version 14.47 (2024-07-05)
- Basic Compiler: Implemented support for extensive set of String functions:
Len, Asc, Chr, LeftStr, RightStr, MidStr, LTrim, RTrim, LTrimChr, RTrimChr, FillStr, InStr, InStrRev,
ReverseStr, CountChr, ReplaceChr, LCase, UCase, LShiftStr, RShiftStr, LRotateStr, RRotateStr,
HexStr, DecFromHex, StrValB, StrValW, StrValL, StrValS
- Basic Compiler: Byte and Word now available as aliases for UShort and UInteger
- Basic Compiler Reference Manual updated - String data type related basic elements section
- Basic Compiler Debug Test Examples page for retro processors
(LINK)
updated with recent work related test examples
- Watch Variables: New Options menu item - Track Variable Write Access Auto Focus; default on
- Reduced flickering in Watch Variables window at Extremely Fast simulation rate
News in version 14.46 (2024-06-16)
- Fight against Microsoft Defender's False Positives
- Updated software installer
News in version 14.45 (2024-04-16)
- Bug fixes
News in version 14.44 (2024-04-11)
- Basic Compiler: New StrPtr data type - string pointer; new statement SetStrPtr;
address stored in a string pointer can be dynamically changed with SetStrPtr;
string pointers can be used everythere along with String variables and constants;
ByRef String arguments of procedures and functions now implemented using string pointers
minimizing the required RAM memory
- Basic Compiler: Highly optimized management of temporary String variables
- Basic Compiler: New Options menu item - Dynamic Temporary Variables Management
(temporary variables created by compiler will not reserve allocated RAM memory permanently;
allocated memory will be released immediately after use, thus minimizing the total RAM memory required to compile the program;
as a consequence, temporary compiler variables will not be listed in the Watch Variables tool)
- Basic Compiler: New Options menu item - Basic Program Tracking Mode; Mode 1 (focus only if needed);
Mode 2 (always focus in the middle; slower); original Mode 2 by default
- Improved functionality of Assembler and Basic Compiler breakpoints
- Updated OshonSoft common editor component
News in version 14.43 (2024-03-22)
- Updated OshonSoft common editor component
- Bug fixes
News in version 14.42 (2024-03-19)
- ZX Spectrum ROM Interface - new special tool for the simulation of the original ZX Spectrum ROM
(LINK)
- Improved simulation performance
News in version 13.41 (2024-03-11)
- Basic Compiler: ByRef and ByRefOut support extended to function arguments
- Small app improvements and bug fixes
News in version 13.40 (2024-03-09)
- Basic Compiler: New data type: String
- Basic Compiler: New data types: UShort, UInteger, ULong,
- Basic Compiler: New revised and improved complex expressions evaluation engine;
it will now accept both Basic and C-inspired syntax for the operators;
supported arithmetic operators: +, -, *, /, % (Mod), ++ (post or pre-increment),
-- (post or pre-decrement), unary +, unary -; assignment operators: =, +=, -=, *=, /=;
comparison operators: == (=), != (<>), <, <=, >, >=; logical operators: unary ! (Not, ~),
&& (And, &), || (Or, |), ^ (Xor), << (ShiftLeft), >> (ShiftRight);
# unary operator (ascii print); the engine can now evaluate all possible and meaningful
expressions containing any number of supported operators, operands, functions and parentheses;
complex expressions accepted in all basic compiler elements
- Basic Compiler: New functions for data type conversions - CShort, CInteger, CLong, CSingle, CUShort, CUInteger, CULong,
- Basic Compiler: New statements for C-like for loops - CFor, CNext; init expression,
condition expression and loop expression should be separated by the semicolon ';' symbol;
init and loop expressions can contain multiple statements separated by commas
- New Basic Compiler Debug Test Examples page for retro processors
(LINK) with many test examples
- New Complex expressions section in Basic compiler reference manual
- Basic Compiler: Alternative Bit name for Boolean data type
- Basic Compiler: Support for String data type: + (addition) operation, Len() function
- Basic Compiler: Logical operators Nand, Nor and Nxor discontinued
- Basic Compiler: New structure implementation: Select, Case, EndSelect
- Basic Compiler: New .LB, .HB, .3B, .4B, .LW and .HW variable name extensions for addressing bytes and words of multi-byte variables
- Basic Compiler: New elements implementation: InvertBit
- Basic Compiler: Changed syntax for MakeBit
- Basic Compiler: It is now allowed to use all numeric data type variables in Bit type expressions
and While/If condition expressions; applicable warnings will be generated instead of errors;
any non-zero value will be interpreted as True
- Basic Compiler: New parameters for #define directive: ROMEND, RAMSTART
- Basic Compiler: New parameter for #define directive: STRING_MAX_LENGTH (8-100 allowed range; default 16)
- Basic Compiler: New parameter for #define directive: SINGLE_DECIMAL_PLACES (1-6 allowed range; default 3)
- Basic Compiler editor: F12 shortcut moved from Auto Case Control to Auto Format Text menu command
- New advanced menu item in Watch Variables tool: Add System Variables;
can be used to watch temporary variables created by the expression evaluation engine
and other internal compiler variables
- Watch Variables: New item in Options menu - Add System Variables Automatically; default off
- Small app improvements
News in version 13.23 (2024-02-22)
- Bug fixes
News in version 13.22 (2024-02-08)
- Assembler: Implementation of the INCLUDE directive; used to insert code from external ASM files; can be nested with no limitations
- Small app improvements
News in version 13.20 (2024-02-03)
- Internal app improvements
News in version 13.18 (2024-01-23)
- Basic Compiler: New ReturnValue statement to specify value returned by function
- Improved display of Info Message Frames
- Updated OshonSoft common editor component (fixed selecting with mouse beyond visible range; fixed #var color styling)
News in version 13.17 (2024-01-05)
- Basic Compiler and Assembler editors: Improved Help Panel functionality
- Updated OshonSoft common editor component
News in version 13.16 (2023-12-21)
- Basic Compiler: Fixed issues related to errors in included files
News in version 13.15 (2023-12-15)
- Small app improvements
- Several important bug fixes
News in version 13.10 (2023-11-10)
- New OshonSoft editor component in Basic Compiler and Assembler; based on the latest version of Scintilla; fully OshonSoft developed custom oshonsoftsci.ocx wrapper editor control; immeasurable performance and visual appearance improvement
- New fully functional Editor Setup; all colors used in the editor are customizable; three new simple editor options - Line Wrapping, Auto Case Control (on by default for the compiler) and Auto Format Text (off by default; more relaxed in relation to previous solution; preserved line and comment indentation with both spaces and tabs)
- Format Text command in the compiler editor now performs Auto Case Control if it is off
- New Auto Format Text command in the compiler editor performs Auto Format Text editor feature if it is off
- Bookmarks and breakpoints feature visually improved; all known issues related to 'save to file' option now fixed
- Basic program tracking and assembler code tracking (two new display modes) now look and perform much better - screenshot
- New editor now uses UTF-8 encoding; instruction to use new Open ANSI File command will be displayed if needed
News in version 12.35 (2023-10-02)
- Small app improvements related to detection of incorrect program structure; Main Routine added
- Exit Sub bug fix
News in version 12.34 (2023-09-30)
- Basic Compiler: New approach for using subroutines compatible with procedures and functions; Sub, Exit Sub, End Sub statements implemented; basic compiler reference manual updates
- Basic Compiler: Advanced detection of incorrect program structure implemented with enhanced error messages
- Detection of missing folder write permissions to prevent run-time errors
- Updated OshonSoft common editor component
- Small app improvements
News in version 12.33 (2023-09-26)
- Three new modern app color themes: New Windows 1, New Windows 2, New Windows 3
- Small app improvements
News in version 12.32 (2023-09-23)
- New modern application look and feel; modern windows common controls
- New item in Options menu - Reset Windows Layout Settings; command needed for window layout updates;
it should be executed when upgrading the software to this release from any previous version
News in version 12.31 (2023-09-12)
- Modernized application look and feel
- New modern application installer/uninstaller
- Improved application Windows 10+ compatibility
- Updated OshonSoft common components
- Small and/or invisible improvements/bug fixes
News in version 12.22 (2023-07-07)
- Fixed issues related to the multi-user setups of the operating system
- Simulator window: New File menu command - Exit; shortcut Ctrl+Q
- Small and/or invisible improvements/bug fixes
News in version 12.17 (2023-05-14)
- Some work on the app infrastructure completed
News in version 12.16 (2023-03-04)
- Basic Compiler: Fixed bug related to some cases when Single type constant is used in the test expression
of While and If statements
News in version 12.15 (2023-02-28)
- Basic Compiler: Recent files list implemented in the File menu; Clear Recent Files List command;
new Options menu item - Show Recent Files; default on
- Assembler: Recent files list implemented in the File menu; Clear Recent Files List command;
new Options menu item - Show Recent Files; default on
- Simulator: Recent files list implemented in the File menu; Clear Recent Files List command;
new Options menu item - Show Recent Files; default on
News in version 12.14 (2023-01-26)
- Small and/or invisible improvements/bug fixes
News in version 12.13 (2023-01-24)
- Improved printing from the application; the first and the last pages selection added to the printing dialog;
horizontal and vertical margins selection also added; improved printing of long lines; fixed bug related to the invisible runtime error
(If previous software release was used on the computer, 'HKEY_CURRENT_USER\Software\Z80 Simulator IDE\Form004' registry key
should be manually deleted using Windows regedit.exe, or Clear App Registry Settings command should be executed,
in order to see the correct new Print dialog layout.)
News in version 12.12 (2022-12-17)
- Basic Compiler editor: The number of tabs between the code line and the comment is now preserved
allowing user-defined comments alignment; also, the comments are not left trimmed any more;
new and improved smart formatting of the operators and special symbols
- Updated OshonSoft common editor component
- Small and/or invisible improvements/bug fixes
News in version 11.83 (2022-11-23)
- Assembler: Fixed bug when using # and + prefixes for constants
- Small and/or invisible improvements/bug fixes
News in version 11.81 (2022-11-10)
- Very significant improvement of the integrated assembler (new BYTE, WORD and BLOCK aliases can be used for the DB, DW and DS directives;
= will be recognized as the EQU directive; the assembler is now able to evaluate any expression, no matter how complicated it is;
parentheses in the expression are now also supported; the list of binary operators based on the increasing precedence implemented: |,^,&,(+,-),(*,/,\);
the assembler can now work with the full range of the unsigned 4-byte integer values, so loww and highw prefixes are now also available
to return the low and high words of the argument; all the prefixes are now treated as unary operators by the expression evaluation engine;
updated Assembler overview section in the Help Topics document)
- Assembler: Relative branch instructions will now distinguish absolute and relative arguments
- Basic Compiler: Changed order of arguments for SetBit and ResetBit statements; bit number goes first now
- Small and/or invisible improvements/bug fixes
News in version 11.78 (2022-11-06)
- Memory Editor, Memory Editor 2, Memory Editor 3: New read/write access tracking feature - the simulator will automatically
focus and mark the last read and the last written memory location if they are in the user-defined memory range; also,
the new efficient performance optimization option for the Ultimate simulation rate is on by default
News in version 11.77 (2022-11-01)
- New simulation tools - Input/Output Terminals (both I/O ports and memory mapped); designed to make it easy
to communicate with various Z80 firmwares supporting serial input/output during the simulation of the code execution
News in version 11.76 (2022-10-30)
- Simulator: Significant simulation performance acceleration (Ultimate rate)
- Breakpoints Manager: Now Fast Debugger - Breakpoints Manager; extreme performance acceleration, especially in Hold PC in Focus mode;
support for the unlimited number of breakpoints; click to focus the breakpoint line feature;
new commands to customize visual appearance: Change Color Scheme, Change Number Of Lines, Borders On/Off;
new quick Load and Save breakpoints commands; improved behavior of the Hold PC In Focus feature;
new command to disassemble the memory buffer to get the debugger listing
- Simulator: New command in File menu - Load Another Program File; without clearing the memory first
- Simulator: New item in Options menu - Infinite Loop Stops Simulation; automatically stops the simulation when
an unconditional branch to the same address is encountered
- Disassembler: New item in Options menu - Skip Empty Memory Ranges; on by default; used to detect and skip
blocks of disassembler memory buffer with $00 values
- Simulator: Fixed '10,000,000 instructions freeze' bug; finally...
- Improved IEEE 754 Conversion Tool; new Calculate exact real number from the four FP hex bytes command
- Important but not directly visible app infrastructure improvements
News in version 11.758 (2022-06-01)
- (updates during work in progress)
News in version 11.757 (2022-05-10)
- Small and/or invisible improvements/bug fixes
News in version 11.752 (2022-04-24)
- Assembler: Improved TASM assembler interface functionality; now direct assembling in source file folder; assistance related to possible problems with tasm #include directive; support for assembler code tracking and breakpoints features
- Assembler: New command in Tools menu - Assemble With TASM & Load; Ctrl+F9 shortcut
- New and improved Print dialog; font selection added
- Small and/or invisible improvements/bug fixes
News in version 11.75 (2022-04-12)
- External Modules: Register Module command added - used to register module executable file; especially needed when the file path has been changed
- Assembler: New item in Options menu - Auto Load LST File; on by default
- Assembler: Improved assembler code tracking functionality
- Small and/or invisible improvements/bug fixes
News in version 11.742 (2022-04-07)
- External modules interface extensions: getmem_arr, setmem_arr, writemem, readmem; more info in the manual
- Simulator window: Improved algorithm to shorten display path of the loaded program file
- Small and/or invisible improvements/bug fixes
News in version 11.73 (2022-04-01)
- Simulator: Fixed bugs and performance issues during quick stepping with F2 key repeat (press and hold)
- OshonSoft icon updated - Improved Win7+ shortcut visual appearance
- Small and/or invisible improvements/bug fixes
News in version 11.722 (2022-03-18)
- Basic Compiler: Improved functionality of the Reference Manual Assistant
- Small and/or invisible improvements/bug fixes
News in version 11.72 (2022-03-08)
- Basic Compiler: Fixed bug related to For-Next loops with Short, Long and Single variables
- Updated OshonSoft common editor component (improved paste operation)
- Simulator: New Clear Memory/Load Program click-shortcuts on the main simulator window (If previous release of Z80 Simulator IDE was used on the computer, 'HKEY_CURRENT_USER\Software\Z80 Simulator IDE\Form1' registry key should be manually deleted using Windows regedit.exe, or Clear App Registry Settings command should be executed, in order to see correct main Simulator window layout.)
- Small and/or invisible improvements/bug fixes
News in version 11.714 (2022-02-20)
- Disassembler: New commands in File menu: Clear Memory, Load Program File With Offset; this command can be used to load multiple program files into the disassembler memory buffer at different offset addresses
- Disassembler: New command in Tools menu: Disassemble From Address
- Assembler: Error related to reaching the end of available memory implemented
- Assembler: Three new bitwise logical operations (&,|,^) now implemented in addition to 5 arithmetic operations (+,-,*,/,\) that can be used in expressions in place of numeric arguments of assembler instructions; multiple operations will be now accepted, but evaluated from left to right assigning equal precedence to all the operators
- Small and/or invisible improvements/bug fixes
News in version 11.712 (2022-02-03)
- Basic Compiler: Array index check warnings implemented; works also in For-Next loops with index variable
- Small and/or invisible improvements/bug fixes
News in version 11.69 (2021-11-25)
- Simulator: New intuitive and easy to use tool in Tools menu - Video Memory Screen; setup includes starting address, columns and rows settings; several screen color schemes also available
- Small and/or invisible improvements/bug fixes
News in version 11.68 (2021-11-22)
- Assembler: New editor features - Bookmarks and Breakpoints; enabled using Options menu; on by default; analogous to the same features in basic compiler editor
- Assembler: New Edit\Bookmarks menu (and context menu) items - Toggle Bookmark, Clear All Bookmarks, Previous Bookmark, Next Bookmark
- Assembler: New Edit\Breakpoints menu (and context menu) items - Toggle Breakpoint, Clear All Breakpoints, Previous Breakpoint, Next Breakpoint
- Assembler: New Options menu items - Info On Bookmarks And Breakpoints, Save Bookmarks And Breakpoints In ASM File; on by default
- Assembler: New simulation related Edit menu (and context menu) items; handy when using breakpoints; visible only when the simulation is running
- Assembler: New Options menu item - Change Starting Address For OBJ Files Creation
- Updated OshonSoft common editor component
- Small and/or invisible improvements/bug fixes
News in version 11.67 (2021-07-18)
- Tighter integration between the Simulator and Basic Compiler breakpoints feature
- Basic Compiler: New Edit\Breakpoints menu (and context menu) commands - Start Simulation, Stop Simulation, Resume With Fast, Resume With Extremely Fast, Resume With Ultimate
- Redesigned approach to Basic Program Tracking feature; improved operation
- Basic Compiler: New Edit menu (and context menu) items - Simulation-Step (shortcut F2), Run To Next BASIC Statement (shortcut F4), Basic Program Tracking; visible only when the simulation is running
- Updated OshonSoft common editor component
News in version 11.65 (2021-07-14)
- Basic Compiler: New features - Bookmarks and Breakpoints; enabled using Options menu; on by default; when the bookmarks and/or breakpoints are enabled, the special marks column in the editor will be displayed; left click on the marks column will toggle bookmark for the corresponding line; right mouse click will toggle breakpoint; also, special Navigate to bookmarks and breakpoints B-button will be displayed in the editor bottom right corner; left click on the B-button will display the list of bookmarks in the Help Panel, for easy navigation through the code with a single click; right mouse click on the B-button will display the list of breakpoints; when the basic code line marked with a breakpoint has been reached during the code simulation, the simulation rate will be switched to Step By Step
- Basic Compiler: New Edit\Bookmarks menu (and context menu) items - Toggle Bookmark, Clear All Bookmarks, Previous Bookmark, Next Bookmark
- Basic Compiler: New Edit\Breakpoints menu (and context menu) items - Toggle Breakpoint, Clear All Breakpoints, Previous Breakpoint, Next Breakpoint
- Basic Compiler: New Options menu items - Info On Bookmarks And Breakpoints, Save Bookmarks And Breakpoints In BAS File; on by default
- Basic Compiler and Assembler windows: New Options menu item - Focus With MouseMove; on by default; pointing mouse over the editor area will bring its window to the focus
- Updated OshonSoft common editor component
News in version 11.64 (2021-07-09)
- Basic Compiler and Assembler editors: New Options menu item - Auto Save; enables the backup copies auto saving functionality; configurable time interval and number of copies parameters
- Basic Compiler editors, Assembler editor: New Edit menu item - Redo; totally revised and improved Undo function with Redo function added; Undo level info displayed in the status bar; New editor functions: Select whole line with a left click on the Line number; move cursor position with a right click
- Assembler: New item in Options menu - Generate OBJ File Copy; for setting the file extension for the copies of the OBJ files that will be generated by the assembler
- Assembler: New item in Options menu - OBJ File Fill Value; for setting byte value (0-FF) that will be used by the assembler to fill in the unused ranges in the generated OBJ files
- Basic Compiler: New Options menu item - Automatically Select Compiled ASM File; on by default; the ASM file generated by the compiler for the current basic program will be automatically displayed in the Assembler editor when started
- Assembler: New File menu command - Reload; shortcut F5
- Simulator window: New File menu command - Reload; shortcut F5
- Basic Compiler and Assembler editors: Improved function of the Comment/Uncomment command
- Basic Compiler editor window 2: Edit menu command added - Comment/Uncomment
- Basic Compiler: Improved Help Panel operation
- Updated OshonSoft common editor component
News in version 11.63 (2021-06-01)
- Basic Compiler: New Options menu item - Show Help Panel; this program editing tool makes it easy to complete Dim, #define, Gosub and Call statements with a single click by showing the list of all possible arguments; auto-hide; on by default; features selection of the panel color mode, also
- Updated OshonSoft common editor component (improved operation related to vertical arrow keys movements through the code)
News in version 11.62 (2021-05-25)
- Watch Variables tool: New Options menu item - Track Variable Write Access; used to easily track the last three variables that have changed values during the simulation using different coloring and keeping in focus; very useful for programs with large number of variables; on by default
- Assembler editor will recognize and highlight TASM directives
- TASM assember now included in the install package
- Basic Compiler: Fixed bug related to treatment of numeric constants defined by Const directive
- Basic Compiler: Revised treatment of warnings
- Basic Compiler: New function implemeted - VarAddr(); can be used everywhere; VarAddr returns the actual address of a variable assign to it by the compiler
News in version 11.61 (2021-05-16)
- Assembler: New Options menu item - Change TASM Command Line Options; used to customize interface with external TASM assembler; for advanced use only
- Small and/or invisible improvements/bug fixes
News in version 11.593 (2021-05-10)
- Peripheral Devices tool: New Input Terminal with port input queue; Send String, Send Hex Bytes and Send Dec Bytes commands (If previous release of Z80 Simulator IDE was used on the computer, 'HKEY_CURRENT_USER\Software\Z80 Simulator IDE\Form5' registry key should be manually deleted using Windows regedit.exe, or Clear App Registry Settings command should be executed, in order to see the new Peripheral Devices window layout.)
- Assembler: Fixed bugs related to EX AF,AF' instruction
- Configure Info Message Frames command: Changed range for the info message display duration to 1-10 seconds
- New item in Options menu - Clear App Registry Settings; command to restore the state of the first application start
News in version 11.59 (2021-05-02)
- Simulator: New item in Options menu - Run To Next BASIC Statement Simulation Rate; setting used by Run To Next BASIC Statement command
News in version 11.58 (2021-04-21)
- Basic Compiler: New item in Options menu - Show Compile Progress; used to display the frame showing the status of the compilation process, turned on by default
News in version 11.573 (2020-09-23)
- Peripheral Devices window: Fixed bug related to Resize Windows feature
- Basic Compiler: Fixed bugs related to Short data type operations
- Small and/or invisible improvements/bug fixes
News in version 11.57 (2020-09-14)
- Basic Compiler: Detection of incorrect program structure
- Check For Updates window: New option to check for updates automatically (default is off); new Visit Download Page command
News in version 11.56 (2020-09-13)
- Basic Compiler: New RAMEND parameter for Define directive for systems with less than 64K RAM memory
- Assembler: Basic assembler overview appended to the main Help Topics file; extended list of formats for the numeric arguments accepted now in the assembler
- Assembler: There is now no limit for the number of arguments for DB and DW directives
- Assembler: New item in Edit menu - Format Code; used to format assembler source code following various rules defined in Format Code Options dialog
- Assembler: New item in Options menu - Assembler Code Tracking; used to enable new visual tracking feature; related options: Mark Next Instruction, Keep In Focus, Display Mode
- Assembler window: Default color theme changed to Visual Basic
- Basic Compiler and Assembler Windows: Smooth window resize operation
- Updated OshonSoft common editor component
News in version 11.54 (2020-01-20)
- Resize Windows functionality extended for windows: Resize Windows
News in version 11.53 (2019-12-29)
- Updated OshonSoft common editor component (bug fix related to right-click insertion point; improved double-click word select)
News in version 11.52 (2019-12-22)
- Extended Resize Windows functionality: Memory Editor Window (Including windows: Memory Editor 2, Memory Editor 3, I/O Ports Editor, Peripheral Devices, HEX Value Entry Dialog, ASCII Keyboard, IN Instruction Entry Dialog...)
- Extended Resize Windows functionality: Info Message Frames (Including: Pop-up Info Message Boxes, Input Boxes...)
- Small and/or invisible improvements/bug fixes
News in version 11.51 (2019-12-11)
- Main Simulator Window can now be resized with the new Resize Windows command in the Options menu
- Small and/or invisible improvements/bug fixes
News in version 11.43 (2019-11-28)
- Basic Compiler: Revised treatment of arrays in complex expressions
- Basic Compiler: When working with arrays in assignment statements, complex expressions are now accepted for the array index
- Hidden Feature: Print Debug Comment Lines in Compiler Listing registry item (set to 1 to turn it on)
- Run-time error 62 fixed on Chinese, Japanese and Korean Windows installations
- Recently discovered bugs/oversights fixed
News in version 11.42 (2019-11-13)
- New item in Options menu - Basic Program Tracking; marking program line in Basic Compiler window currently being simulated
- New item in Simulation menu - Run To Next BASIC Statement; enabled in Step By Step simulation mode
- Small and/or invisible improvements/bug fixes
News in version 11.41 (2019-11-08)
- Basic Compiler: Mathematical functions work now with all types of variables
- Basic Compiler: Arithmetic operations work now with mixed types of variables also
- Basic Compiler: Include and IncludeASM will accept now multiple comma-separated arguments
- Basic Compiler: Improved complex expressions evaluation engine
- Basic Compiler: In assignment statements, absolutely all kinds of expressions can be now calculated, including those containing user-defined function calls
- Basic Compiler: More detailed error messages related to complex expressions evaluation
- Basic Compiler: More code-efficient evaluation of expressions containing user-defined functions
- Basic Compiler: Complex expressions including function calls can be used now as direct arguments when calling procedures and functions in the code
- Basic Compiler: Complex expressions can be used now in Print statement
- Small and/or invisible improvements/bug fixes
News in version 11.33 (2019-09-14)
- New item in Options menu - Show ASCII Characters; used in Memory Editor windows for the expanded display
- Memory Editor windows: Stack Pointer location is now marked on the memory table; Focus SP command implemented
- Basic Compiler window: New item in Options menu - Show Compile Buttons; used for new handy shortcuts panel
- Basic Compiler window: New item in Tools menu - Open Assembler Editor
- Basic Compiler: More informative compiler error messages
- Updated OshonSoft common editor component (smart double-click word select implemented)
- Small and/or invisible improvements/bug fixes
News in version 11.32 (2019-08-22)
- Basic Compiler: Revised compiler string engine; allowed declaration of string constants with Const directive; string related bug fixes
- Basic Compiler: Fixed bugs related to multiple declarations in one Dim statement
- Updated OshonSoft common editor component (bug fixes)
- Small and/or invisible improvements/bug fixes
News in version 11.29 (2019-07-24)
- Basic Compiler: Dim statement will now allow multiple declarations in one line of code (comma-separated list of variable names)
- Basic Compiler: Missing Cr symbolic constant for ASCII character 13 added to existing set (Qt, CrLf, Lf)
- New item in Options menu - Configure Info Message Frames
- Higher quality OshonSoft icon
- Small and/or invisible improvements/bug fixes
News in version 11.28 (2019-07-01)
- Assembler window: New item in Options menu - Change TASM Path
- Bug fixes in Save As dialogs related to filenames containing dot character
- Basic Compiler: Comment sign '//' is a new alternative for the standard single quote sign
- Small and/or invisible improvements/bug fixes
News in version 11.27 (2019-04-12)
- Updated OshonSoft common editor component (features added)
- Small and/or invisible improvements/bug fixes
News in version 11.26 (2019-02-09)
- Basic Compiler: Capital letters can now be used in the variable names, names of the procedures, functions, subroutines, constants, symbols and labels (feature of the new Compiler Extensions add-on module)
- Basic Compiler: Two new passing mechanisms for passing arguments to procedures by reference - ByRef and ByRefOut (more info in the reference manual) (feature of the new Compiler Extensions add-on module)
- Editor Setup window: New User Keyword Color setting for Basic Compiler editor; used for user-defined program element names
- Basic Compiler window: Source Explorer width range extended to 500 pixels
- Basic Compiler window: New item in Options menu - Editor Setup
- Assembler window: New item in Options menu - Editor Setup
- Basic Compiler Reference Manual updated
- Small and/or invisible improvements/bug fixes
News in version 11.25 (2019-02-05)
- Updated OshonSoft common editor component (bug fixes)
News in version 11.24 (2019-02-01)
- Updated and improved software installer
- Updated OshonSoft common editor component to support future features (work in progress...)
News in version 11.23 (2018-11-30)
- Basic Compiler: Procedures and functions can be called without the Call statement; procedure name should be followed by comma-separated list of arguments
- Basic Compiler window: Now smooth operation of the Definition command from the Source Explorer (from context menu or by double-click)
- New item in Options menu - Change Main Font; setting used in all application windows
- More attractive application look with new default fonts - Tahoma and Lucida Console
- Small and/or invisible improvements/bug fixes
News in version 11.22 (2018-10-31)
- Improved display of confirmation messages; two modes now available; customizing by clicking on the message (left-click for display duration, right-click for display mode)
- Small and/or invisible improvements/bug fixes
News in version 11.21 (2018-09-21)
- Support for all 440 Z80 unofficial instructions implemented in assembler and disassembler; simulations already implemented
- Integrated assembler will now generate much more informative error messages
- New Auto Load Program Loaded in the Simulator option in Disassembler Options menu
- New direct Disassemble command on the Disassembler window menu; improved overall tool performance
- Small optimization of the simulation speed performance
- Small and/or invisible improvements/bug fixes
News in version 10.41 (2018-08-29)
- Fixed bugs related to loading .BAS, .ASM and .HEX files containing LF newline control character
- Fixed bug related to loading .HEX files containing 03 record type
- File/Load command will remember the last loaded file type
- New Show Tips command in the Help menu
- Spending an evaluation session can now be canceled
- Small and/or invisible improvements/bug fixes
News in version 10.38 (2018-08-06)
- Basic Compiler: New Comment/Uncomment command for single lines and selected blocks of code
- Assembler: New Comment/Uncomment command in the Edit and context menus
- Small and/or invisible improvements/bug fixes
News in version 10.37 (2018-07-03)
- Fixed bug in the Check For Updates utility
- Small and/or invisible improvements/bug fixes
News in version 10.36 (2017-05-06)
- Keeping infrastructure compatibility with microcontroller IDEs
- Small and/or invisible improvements/bug fixes, application infrastructure improvements, security related updates
News in version 10.35 (2016-12-09)
- Improved Windows 7+ compatibility: The application will now automatically request the needed administrative permissions, related crashes fixed
- Improved Windows 7+ compatibility: The application will now store the files in the AppData folder by default, related crashes fixed
- Small and/or invisible improvements/bug fixes, application infrastructure improvements, security related updates
News in version 10.34 (2016-04-14)
- Updated availability of the TASM assembler
- Small and/or invisible improvements/bug fixes, application infrastructure improvements, security related updates
News in version 10.33 (2016-01-17)
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
- Security related updates
News in version 10.32 (2015-08-08)
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 10.31 (2015-03-28)
- New options in the Watch Variables window: Sort By Location, Sort By Name, Sort By Address, Sort By Type
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 10.30 (2015-01-04)
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 10.29 (2014-12-25)
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 10.28 (2014-12-17)
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 10.27 (2014-09-11)
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 10.26 (2014-07-28)
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 10.23 (2014-06-02)
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 10.22 (2014-05-18)
- Basic Compiler: Improved functionality of the Reference Manual Assistant
- Watch Variables tool: Fixed bug related to Delete Variable command
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 10.21 (2014-04-30)
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 10.20 (2014-04-20)
- Small and/or invisible improvements/bug fixes, application infrastructure improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 10.19 (2014-04-09)
- Basic Compiler: IncludeASM directive implemented - assembler source code from an external file can now be included to the current program. More info in the Reference Manual.
- Improved Shortcuts Panel Configuration
- Several small and/or invisible improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 9.89 (2014-03-30)
- New item in Options menu: Shortcuts Panel Configuration - it is now possible to turn on and configure the shortcuts panel on the main IDE window, for an easy access to the most frequently used menu commands
- New item in Options menu: Change Offset Address For OBJ Files Loading
- Two extra memory editors for external 64K memory added, to simultaneously view/edit three different memory ranges during the simulation
- Several small and/or invisible improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 9.88 (2014-03-03)
- Improved appearance of all application dialog windows
- Several small and/or invisible improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 9.87 (2014-02-13)
- Several small and/or invisible improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 9.86 (2013-12-22)
- Several small and/or invisible improvements (keeping infrastructure compatibility with microcontroller IDEs)
News in version 9.84 (2013-09-30)
- Several bugs from the previous release fixed
- Several small and/or invisible improvements
News in version 9.83 (2013-09-08)
- All fonts on all windows updated to true type fonts
- Fixed some Windows Theme related window display bugs
- Several small and/or invisible improvements
News in version 9.82
- Updates of the application infrastructure
- Several bugs from the previous release fixed
- Several small and/or invisible improvements
News in version 9.81
- Basic Compiler and Assembler: Assemble and Load command will stop the simulation if running
- Basic Compiler Editor: New option in the Options menu: Optimize Variables Declaration. This routine will optimize the variables declaration order based on the usage frequency of the variables. With programs using a lot of variables this could result in possibly smaller size of the generated code.
- Several bugs from the previous release fixed
- Several small and/or invisible improvements
News in version 9.80
- Basic Compiler: For statement will now accept all available variable types for the running variable
- Basic Compiler: New statement - Exit For
- Basic Compiler: User defined functions and single precision math functions can be used now in complex math expressions
- Basic Compiler Editor: When Enter is pressed - leading tabs from the current line will be automatically inserted at the beginning of the next line; this is also valid for the ASM: directive
- Assembler: Improved calling of external assembler
- Basic Compiler: Important improvements of the internal infrastructure
- Several bugs from the previous release fixed
- Several small and/or invisible improvements
News in version 9.75
- Assembler will automatically reload the updated ASM file after the compilation
- New Copy command in the Watch Variables window
- Several small and/or invisible improvements
News in version 9.74
- Basic Compiler Editor, Source Explorer panel: Two new options in the right-click popup menu - Sort By Name, Sort By Location
- Basic Compiler Warnings window: New option in the right-click popup menu - Focus Line, works also with a double-click on the warning line
- Several bugs from the previous release fixed
- Several small and/or invisible improvements
News in version 9.73
- Basic Compiler Editor: New option in the Options menu: Reference Manual Assistant
- Several bugs from the previous release fixed
News in version 9.72
- Basic Compiler Editor: New option in the Options menu: Do Not Compile Unused Code. If this option is enabled, Basic compiler will not compile unused declarations, subroutines, procedures and functions, in order to save memory resources.
- Several critical bugs from the previous release fixed
News in version 9.70
- Basic Compiler Editor: New panel in the editor - Source Explorer - for easy navigation through all elements of user program - variables, symbols, constants, subroutines, procedures and functions. Three new options in the Options menu: Show Source Explorer, Change Source Explorer Width, Change Source Explorer Font Size
- Basic Compiler: Full localization of variables, constants and line labels is implemented. Variables can now be global (declared in the main program, before the End statement) or local (declared in subroutines, procedures and functions). Variable name used for a variable with global scope can be used again for local variable names. The compiler will reserve separate memory locations for them. The same is valid for constant and line label names.
- Basic Compiler: Support for procedures and functions implemented. New keywords: Proc, End Proc, Function, End Function, Call, Exit. More info in the Reference Manual.
- Basic Compiler: INCLUDE directive implemented - basic source code from an external file can now be included to the current program. More info in the Reference Manual.
- Basic Compiler: New feature: After IF-THEN statement in the same line can be placed almost every other possible statement and then ENDIF is not used
- Basic Compiler: New feature: Implemented support for inline assembler source in basic programs. New keyword: ASM. More info in the Reference Manual.
- Basic Compiler: New feature: Implemented support for evaluation of complex arithmetic expressions. More info in the Reference Manual.
- Basic Compiler Editor: New commands in the Options menu: User Variables, Instructions Usage Statistics
- Basic Compiler Editor: New commands in the Tools menu: Compile & Assemble, Compile & Assemble & Load
- Basic Compiler Editor: New command in the File menu: Open Another Editor Window
- Basic Compiler Editor: New option in the Options menu: Show Warnings. If Show Warnings option is enabled, in the Warnings window Basic compiler will show information about unused declarations, subroutines, procedures and functions, that will not be compiled in order to save memory.
- Basic Compiler Editor: New option in the Options menu: Initialize Variables On Declaration. If this option is enabled, Basic compiler will reset to zero all memory locations allocated for variables, at the position of their declaration in the basic program.
- Assembler: New Tools menu command: Assemble & Load
- Simulator: New simulation tool in the Tools menu: Watch Variables. More info in the Help Topics.
- Simulator: New command in the Options menu: Auto Start Options (With this utility users can define actions that will be performed on the application startup. These actions include automatic opening of various tools and simulation interfaces from the Tools menu and automatic loading of the last used files in the simulator, assembler and basic compiler.)
- Simulator: New option in the Options menu: Save Always On Top. More info in the Help Topics.
- Simulator: New feature: Once loaded program file can be quickly reloaded by clicking on its location field on the main program interface
- Simulator: New command in the Help menu: Bug Report Interface. More info in the Help Topics.
- Completely new attractive help viewer for Help Topics, BASIC Compiler Reference Manual, External Modules Manual. All manuals can now be accessed from the Help menu. BASIC Compiler Reference Manual can also be accessed from the Basic Compiler Editor window with F1 keyboard shortcut. More info about help viewer features can be found in the Help Topics.
- Start menu program group now contains manuals in PDF format
- MANY small and/or invisible improvements
News in version 9.60
- New option in Options menu: Change Ultimate Rate Refresh Interval
- New Check For Updates command in Help menu
- Several small and/or invisible improvements
News in version 9.53
- New properties for basic compiler syntax highlight editor: Auto Format Text Enabled, Auto Case Control Enabled
- Improved performance at Ultimate (No Refresh) simulation rate
- The display duration of information messages can be changed by a click on the gray message area
- Several small and/or invisible improvements
News in version 9.52
- New property for syntax highlight editors: Line Numbers Enabled
- Several small and/or invisible improvements
News in version 9.51
- New improved syntax highlight code editors for basic compiler and assembler. Various editor properties can be customized using rich Editor Setup dialog in Options menu.
- Several small and/or invisible improvements
News in version 9.41
- Show Frames option in Change Color Theme
- Several small and/or invisible improvements
News in version 9.40
- Added option to use simple editor components in basic compiler and assembler
- Right mouse button support in editor components, Find, Find Next and Replace All commands
- Several small and/or invisible improvements
News in version 9.36
- External modules template for Microsoft Visual Basic 6.0
- Several small and/or invisible improvements
News in version 9.33
- Mouse wheel support added
- Fixed some issues in basic compiler related to ' and " characters
- Several small and/or invisible improvements
News in version 9.31
- Added support for limited access accounts, small change in license structure
- Several small and/or invisible improvements
News in version 9.30
- Winamp inspired color themes added
- In Breakpoints Manager window improved Hold PC In Focus functionality and increased horizontal resize limit
- New Change Registers Arrangement option in Options menu
- Several small and/or invisible improvements
News in version 9.2
- Fixed some issues in new editors for assembler and basic compiler
- Several small and/or invisible improvements
News in version 9.1.2
- Help windows will not disappear when they lose focus
- Fixed some issues in new editors for assembler and basic compiler
- Option to generate Intel HEX files in integrated assembler
- Several small and/or invisible improvements
News in version 9.1
- New basic compiler and asembler editors (Edit menu with Copy, Cut, Paste and 20 levels of Undo) and cursor position coordinates display
- Fixed some issues in Breakpoints Manager
- Slight lookout change: new Oshon Software logo and icon added
- Several small and/or invisible improvements
News in version 9.0
- Z80 Simulator IDE is now an automation (ActiveX) server/client application. This feature enables communication with external simulation modules that can be developed by home developers and third parties using various Development Systems for Windows. For more information please visit my website and take a look on Special Features page. The first external simulation module that I developed is Character LCD Simulation Module and it is available for free download. Enjoy!
- Improved integrated basic compiler:
- You can write constants now in all three common number systems (Constants can be used in decimal number system with no special marks, in hexadecimal number system with leading 0x notation (or with H at the end) and in binary system with leading % mark (or with B at the end). Keywords True and False are also available for Boolean type constants.)
- New CONST directive for defining symbolic constants
- New SETBIT and RESETBIT statements
- Extension of logical operations to Short data type variables Please take a look at updates Basic Compiler Help Topics.
- Improved functionality of memory editor (When the entered value is confirmed by pressing Enter key, edit box will automatically move to the next memory location. Edit box can be moved freely over the memory table using arrow keys and it can be closed by Esc key.)
- New I/O Ports Editor (This is access to the graphical interface for the control over the complete I/O ports range. Information in the I/O Ports Editor window is consistent with the Peripheral Devices window.)
- Three standard features by now are now optional:
- Prompt For Value Before IN Instruction (This option will force the program to always prompt user to manually enter every incoming byte on all ports. If it is off the value will be taken from Peripheral Devices or I/O Ports Editor window.)
- Enable IN/OUT Instructions Logging (When this option is enabled the program will log all IN and OUT instructions in IO.TXT file located in application folder. Every IN and OUT instruction will append a new line in that file.)
- Show Confirmation Boxes (When this option is enabled the confirmation boxes showing results of operations will be displayed and will require user response to be closed.)
- Several small and/or invisible improvements
News in version 8.7
- Among some issues fixed, Z80 Simulator IDE now comes with revised set of examples and new HTML Getting Started presentation with screenshots
- Several small and/or invisible improvements
News in version 8.5
- New Ultimate (No Refresh) simulation rate. (From Help: The main simulator window is not refreshed that significantly increase the simulation execution. This rate should be used in combination with Breakpoints Manager to simulate long delay routines as fast as possible.)
- Fixed some Hex Files Loading issues
- Fixed some Breakpoints Manager issues
- Fixed some Assemble With TASM issues
- Fixed some Disassembler issues
- Several small and/or invisible improvements
News in version 8.43
- Now you can see what is the next instruction that will be executed
- Simulation of unofficial features is now just an option available from Options menu
- Several small and/or invisible improvements
News in version 8.42
- Fixed bug related to DAA instruction simulation
- Enhanced IN instruction dialog
- Support for binary arguments (10101010B) in integrated assembler
- Enhanced disassembler
- Several small and/or invisible improvements
News in version 8.41
- Optimized internal realization of some routines related to basic compiler that results in smaller z80simulator.exe file
- Fixed bug in Simulation Log Viewer (it used to crash when reaching record number 32768)
- Settings in Peripheral Devices window will be remembered for future sessions
- Fixed bug in disassembler when using it with very large files
- Several small and/or invisible improvements
News in version 8.4
- New treatment of errors in assembler and basic compiler editors
- Breakpoints manager can now be resized horizontally
- Extended support for directives in integrated assembler: .ORG (ORG), .EQU (EQU), .DB (DB, .DEFB, DEFB), .DW (DW, .DEFW, DEFW), .DS (DS, .DEFS, DEFS) and .END (END)
- .DB can now have up to 8 arguments (including characters, like 'a')
- .DW can now have up to 4 arguments
- Support for elementary arithmetics (+,-,*,/) in assembler
- Several small and/or invisible improvements