Skip to content
This repository has been archived by the owner on Dec 11, 2023. It is now read-only.

Latest commit

 

History

History
335 lines (263 loc) · 18.3 KB

CHANGELOG.md

File metadata and controls

335 lines (263 loc) · 18.3 KB

Version 2.0.9 (Preview 11)

FIX: Fixed random exception when using Visual Studio. FEATURE: Added support latest ZX Basic version (experimental)

Version 2.0.9 (Preview 10)

FIX: Fixed SRL instruction when using (HL) as target. FIX: Emulator windows distortion fixed. FIX: Fixed issue with .ifdef and lreg. FIX: Fixed issue with "<<" operator. FIX: Improved sound generation, FEATURE: Added support for .injectopt nocls. FEATURE: Added support for labels using dots.

Version 2.0.9 (Preview 9)

FIX: DISP pragma not works properly within a code segment.
FIX: Export program saves the code to the correct location and display error message in case of problems.
FIX: Floating bus issue with ZX Spectrum 48 model fixed.
FEATURE: ZX Spectrum Emulator start, stop, pause, step-into, step-over, and step-out command shortcuts now can be customized: https://dotneteer.github.io/spectnetide/getting-started/zx-spectrum-emulator-window-2#customizing-shortcut-keys

Version 2.0.8 (Preview 8)

FIX: Patch version number is the same as the Preview version number.
FIX: Assembler does not allow non-existing jr m,NN, jr p,NN, jr po,NN, and jr pe,nn instructions anymore.
FIX: Z80 assembly code editor syntax highlighting lag removed.
FIX: A few memory leak and stability issues fixed.
FIX: Distorted sound and sound playback delays after pause/restart fixed.
FEATURE: You can automatically export the compilation to a .tap or .tzx file: https://dotneteer.github.io/spectnetide/getting-started/export-a-z80-program-2#auto-export
FEATURE: Tape File Explorer allows you new commands to export Z80 disassembly and BASIC listing: https://dotneteer.github.io/spectnetide/documents/tape-explorer-commands#article
FEATURE: The ZX Spectrum BASIC List tool window allows exporting the BASIC code: https://dotneteer.github.io/spectnetide/getting-started/list-basic-program#article

Version 2.0.7 (Preview 6)

FEATURE: The INJECTOP pragma allows you to change the "L" cursor to "K" cursor.
FEATURE: You have a SpectNetIDE option to swap SHIFT and ALT-GR, which represent Symbol Shift, ans Caps Shift.
FEATURE: New parse-time functions are available in SpectNetIDE Assembler.
FEATURE: Macro parameters now support late-evaluation.
FIX: The Run program and Debug program command now start the default code file, even if another code file is open.
FIX: The Left and Right arrow keys in the emulator do not move the focus.

Version 2.0.6 (Preview 5)

FIX: Z80 Source code debugging now handles correcly when you change the ORG address.
FIX: The marker of the current debug line now works properly.
FEATURE: You can add build events to your project (https://dotneteer.github.io/spectnetide/getting-started/build-tasks)

Version 2.0.5 (Preview 4)

FIX: Race condition issue when creating the first project with VS 2019 v16.4.x is eliminated.
FEATURE: Large ZX BASIC file support added. FEATURE: You can add ZX BASIC command line options to the main .zxbas file (https://dotneteer.github.io/spectnetide/getting-started/use-zx-basic#option-comments)

Version 2.0.4 (Preview 3)

DOCUMENTATION: The "Install SpectNetIDE" article updated with prerequisits information.
FIX: Sound issue with pause/continue fixed.
FEATURE: When compiling a ZX BASIC file, the intermediate .z80asm file can be added to the project.

Version 2.0.3 (Preview 2)

FIX: Several annoying bugs related to active ZX Spectrum project has been fixed.
FIX: The Run program command now works properly with ZX Spectrum +3E (Z80 Assembly and ZX BASIC)
FIX: You can set default items (program, tape file, annotation file) in inactive projects, too.
FIX: ZX BASIC compilation errors due to case-insensitive compilations removed. Z80 assembly files coming out from ZX BASIC are compiled in case-sensitive manner.
FEATURE: The ZX Spectrum Code Discovery project now has tags that can be seen in the New Project dialog.
DOCUMENTATION: ZX BASIC Setup and Usage documentation updated with useful info.

Version 2.0.2 (Preview 1)

FIX: ZX BASIC setup instructions added. In case of error, the IDE opens the help page for you.

Version 1.20.0

FEATURE: The virtual machine now supports Kempston joystick emulation.

Version 1.19.5

FIX: Bug in code generation for IX, IY bit instructions fixed.

Version 1.19.4

FIX: Virtual machine injection startup phase bug fixed.

Version 1.19.3

FIX: In a few cases the emulator did not remove the breakpoint when you erased that in the code window. Now, it works correctly.
FIX: The Code.z80asm code file in a newly created project missed the .model Spectrum48 pragma, and so it did not run on other architectures than ZX Spectrum 48K.

Version 1.19.2

FIX: The resource issues that prevented SpectNetIDE to load in VS 2019 16.1.2 resolved.

Version 1.19.1

FIX: Typing binary literals starting with "0b" in the code editor does not raise an exception.

Version 1.19.0

FEATURE: Now, you can create assembly output listing file when comiling th code. CHANGE: SpectNetIDE uses the new VS SDK metapackages.

Version 1.18.5

CHANGE: The standalone emulator client has been deleted from the solution.

Version 1.18.4

FEATURE: The ZX Spectrum memory window allows exporting the memory contents.
FEATURE: Z80 Assembler: new .comparebin pragma.
CHANGE: The Z80 Disassembly window uses X commands (instead of XD) for exporting disassembly
FIX: Character literals use syntax highlighting (just like strings).
CHANGE: The SpectNetIDE package now uses the PackageAutoLoadFlags.BackgroundLoad flag.

Version 1.18.3

FEATURE: You can toggle the the breakpoint in the Z80 Disassembly tool window by clicking on an item.
FEATURE: The Z80 Disassembly window allows exporting the disassembly.

Version 1.18.2

FEATURE: SpectNetIDE now can be installed on Visual Studio 2019 Preview 4.1.
CHANGE: Old reference documentation has been moved to the new documentation hub at https://dotneteer.github.io/spectnetide/

Version 1.18.1

FEATURE: The Z80 Assembler has a two new statements, .ifused, and .ifnused, respectively.

Version 1.18.0

FEATURE: Z80 Assembler supports the .xorg pragma to set the segment start address for Intel HEX export.
FEATURE: The Export Z80 Program supports the Intel HEX format.
FEATURE: The Z80 Disassembly tool window now can disassembly to .DEFG pragma with the MG, MG1, MG2, MG3, and MG4 commands.
FEATURE: The Z80 Assembler handles structure definitions and initializations.
FIX: Retrieve annotation commands are documented.
FIX: The command parser now understands extra identifier characters, such as !, ?, @, and #.
CHANGE: Tool window command documentation has been moved to the project's GitHub pages, links has been updated accordingly.

Version 1.17.0

FEATURE: Z80 Assembler — Now you can define binary literals with the b or B suffix.
FEATURE: Z80 Assembler — Now you can define octal literals with the q, Q, o, or O (letter, and not zero) suffix.
FEATURE: Z80 Assembler — Now, block comments (/* ... */) are supported.
FEATURE: Z80 Assembler — The set of characters that can be used in identifiers extended.
FEATURE: Z80 Assembler — New pragma, DEFC. FEATURE: Z80 Assembler now supports modules/scopes.

Version 1.16.0

FIX: Wrong ZX Spectrum keyboard labels fixed.
CHANGE: The default Code.z80asm template now displays "ZX Spectrum IDE" text.
FIX: The G disassembly view command finds symbols pointing to the RAM. FEATURE: Now all commands (ZX Spectrum Memory, Z80 Disassembly, and Watch Memory) accept decimal numbers and symbols (wherever reasonable).
FEATURE: ZX Spectrum Memory view now marks symbol and annotations links; displays decimal value and symbol information.
BREAK: The command syntax of the Z80 Disassembly and Watch Memory tool windows has been slightly changed.

Version 1.15.0

FEATURE: You can add conditional breakpoints in the Disassembly tool window and in the source code.
FIX: New colors of the set and current breakpoint highlights provide better visibility and distinction.

Version 1.14.0

FEATURE: Now, you can use the brand new Watch Memory tool window to display values while you run or debug your program.
FIX: When you click reference pages in Z80 Disassembly, ZX Spectrum Memory, or Watch Memory tool windows, the help pages are displayed in the default browser.
FEATURE: The tool windows display the "(Debugging)" tag in the caption if the ZX Spectrum VM runs is debug mode.
FEATURE: The ZX Spectrum Memory window provides a tooltip when you move the mouse over a memory byte. It highlights memory addresses pointed by BC, DE, HL, IX, IY, SP, and PC. In the Tools | Options dialog (Spect.Net IDE tab) you can define highlight colors.
FEATURE: The debug engine now supports step-out. While you are debugging, step-out completes the current subroutine and steps back to the next instruction right after the subroutine call.

Version 1.13.1

FIX: ZX Spectrum Code Discovery project commands does not show up in Solution Explorer anymore if you work with a non-ZX-Spectrum project.
FIX: When you cancel creating a ZX Spectrun Code Discovery project, it does not create an empty project folder.
FEATURE: When you run or debug a Z80 program, the ZX Spectrum Memory and Z80 Disassembly tool windows automatically position to the entry address of the code.
FIX: Now, you can use the F5, F10, and F11 function keys seamlessly to debug your Z80 code. Whenever a breakpoint is reached, the focus shifts back to the ZX Spectrum emulator window. FIX: To provide a beeter UX for running and debugging Z80 programs, by default the "Confirm code injection", "Confirm code start", and "Confirm machine options" are turned off. You can use these double-key shortcuts:

  • Run Z80 Program: Ctrl+M, Ctrl+R
  • Debug Z80 Program: Ctrl+M, R
  • Stop the virtual machine: Ctrl+M, Ctrl+S

Version 1.13.0

BREAK: The DEFG pragma uses a string pattern and not a string expression any more.
FEATURE: The new DEFGX pragma overtakes the role of the former DEFG pragma. This change was done to be compatible with other Z80 Assemblers.
FEATURE: Now, you can use the * token just like $ and . to obtain the current assembly address.
FEATURE: New built-in functions support screen and color handling: scraddr(), attraddr(), ink(), paper(), bright(), flash(), and attr().
FIX: Documentation of macros now contains explicit statement that macros cannot be used as user-defined functions.

Version 1.12.0

FEATURE: The Z80 assembler supports the PROC..ENDP statement to create local labels.
FEATURE: You can use new pragmas: DEFH (emit bytes from a string with hexadecimal digits), DEFN (emits zero-terminated strings).
FEATURE: The DEFS pragma now supports new aliases: .ds, ds, .DS, and DS.
FEATURE: The Z0201 error message displays the name of symbols that cannot be resolved.
FIX: When you close the current project, the IDE clears the Error List.

Version 1.11.0

FEATURE: Now, yo can specify a LOAD screen when exporting Z80 programs, and you can set an option for "PAUSE 0" statement before running tho code. You can also specify a BORDER color.
FIX: ZX Spectrum Emulator id displayed to fit into the window.

Version 1.10.3

FIX: Rebuild with the latest source to eliminate issue #76, and #77 (Windows 7 with non-English display language)

Version 1.10.2

FIX: Issue #75 fixed: The virtual machine now handles Bit 6 of port $FE properly for ULA Issue 2/3 configurations.

Version 1.10.1

FIX: Issue #73 fixed: Now, no files are installed outside of the extension path.

Version 1.10.0

FEATURE: The SpectNetIde VS Package now loads asynchronously.
FEATURE: You can raise a custom error with the .error pragma.
FEATURE: Now, you can use the str(), lowercase() and uppercase() functions.
FEATURE: You can include binary files with the .includebin pragma.
FEATURE: New parse-time functions are available: isreg8(), isreg8std(), isreg8spec(), isreg8idx(), isreg16(), isreg16std(),isreg16idx(), isregindirect(), iscport(), isindexedaddr(), isexpr(), and iscondition().

Version 1.9.0

FEATURE: Floppy drive emulation added to Spectrum +3e.

  • Drive A: and drive B: supported (0, 1, or 2 floppy configurations)
  • You can choose the configuration when creating a new project
  • All four floppy disk types supported by Spectrum +3 (Spectrum +3, CPC Data, CPC System, Amstrad PCW) can be created, inserted, or ejected.
  • Disks can be marked as write protected
  • The contents of the disks are stored in .vfdd files that are now part of the ZX Spectrum project
  • .vfdd files have an editor that displays the format information of the virtual disk

Version 1.8.0

FEATURE: Macros are now supported.
FEATURE: The Z80 assembler now supports the FOR..NEXT loop.
FEATURE: Unary logical NOT operator (!) added to the language.
FEATURE: The & operator can be used with two string values. The result is the concatenation of the two strings with a \r\n (next line) character pair inserted between them.
FEATURE: You can exit loops with .break, or carry on to the next iteration with .continue.
FEATURE: You can define syntax hightlighting for instruction operands (registers, conditions, etc.), and semi-variable literals ($, $cnt, etc.)
FEATURE: The assembler now supports dynamic macros, a non-preprocessor way of declaring and applying macros in the code.
FEATURE: The lreg() and hreg() parse-time functions can be applied an 16-bit standard registers and 16-bit index registers.
FEATURE: The texof() operator retrieves the compile-time text of a mnemonic, register, or condition.
FEATURE: New comparison operators, === and !== now support case-insensitive string comparison.
FIX: The .defb and .defw pragma accepted string values. Now, they do not.

Version 1.7.0

FEATURE: The Z80 assembler supports the IF..ELIF..ELSE..ENDIF statement.
FEATURE: The Z80 assembler now supports loop statements: LOOP, REPEAT..UNTIL WHILE..WEND.
FIX: The Z80 assembler accepted the invalid sbc ix,de and sbc iy,de operations without an error message — and compiled add ix,de and add iy,de operations. Now, it raises an error message.
FIX: The Z80 assembler did not accepted the ld (ix+MySymbol+2),h expression, you had to write ld (ix+[MySymbol+2]),h. Now, the assembler does not have this restriction, so the first instruction is also correct.
FEATURE: The Z80 assembler now accepts ( and ) as expression delimiters, not only [ and ].
FIX: The Z80 assembler took the ld sp,de and ld sp,bc instructions into account as if they were ld sp,hl. Now, the assembler recognizes that they are invalid, and raises an error message.
FIX: The lists in the Symbols and Fixups tabs of the Z80 Assembler Output window

Version 1.6.0

FEATURE: The Z80 Assembler now allows using floating point numbers and functions.
FEATURE: New pragmas are supported: ALIGN, TRACE, TRACEHEX, DEFG
FEATURE: VAR pragma supports two new alternate token: = and :=
FEATURE: The current address is now accessible not only with $ but with ., too

Version 1.5.0

FEATURE: The ZX Spectrum emulator now supports the +2A/3 "floating bus" feature (http://sky.relative-path.com/zx/floating_bus.html)
FEATURE: The Z80 Registers tool window contains new counters:

  • STP: The number of T-cycles spent since the last pause
  • DEL: The accumulated contention delays since the machine started
  • LCO: The accumulated contention delays since the machine was last paused
  • CON: Contention delay value of the current screen rendering frame

FEATURE: ZX Spectrum I/O port logging can be turned on/off through a SpectNetIde option

Version 1.4.0

FEATURE: Now, the assembler recognises hexadecimal-like identifiers as identifiers. When using the h or H suffix, hexedecimal literals should start with a decimal digit.
FEATURE: The ZX Spectrum emulator now supports the ULA "floating bus" feature (http://ramsoft.bbk.org.omegahg.com/floatingbus.html)

Version 1.3.0

FEATURE: The first version of ZX Spectrum scripting object model is added to the project.
CHANGE: When saving the virtual machine state of a ZX Spectrum 48K model, now, the memory image is compressed.
WARNING: When you work with a ZX Spectrum 48K state file from an older SpectNetIde version, that may cause issues.
WORKAROUND: Delete the entire .SpectNetIde folder under you solution folder.

Version 1.2.1

FIX: Now, Newtonsoft.Json assembly is embedded into the VSOX package. Without this, SpectNetIde caused any Visual Studio solution to crash the IDE during load time.

Version 1.2.0

This is the first version with tracked changes

FEATURE: Code injection logic has been changed:

  • When the Spectrum VM is stopped, the IDE gives a warning to pause it.
  • When the VM is paused, the IDE injects the code to the VM.
  • When the VM is stopped, the IDE starts the VM, pauses it, and then injects the code.

FEATURE: The Disassembly tool window has a new command, JUMP (J hhhh). This command works only when the Spectrum VM is paused. It sets the Program Counter (PC) to the specified hhhh address. When the Spectum VM continues running — after the Start command — it will carry on from the specified address.

FEATURE: Now, you can use the Add VM State to project command in the Spectrum emulator tool window toolbar to save the Spectrum VM state directly into the project hierarchy.

FEATURE: You can execute the Load VM State file command from the context menu of a .vmstate file in Solution Explorer.