[ZX] CSpect 2.12.3

[0] @ !!! Czwartek, 26 Grudnia 2019 00:54 CET [26-12-2019 00:53 CET]

CSpect oprócz emulacji ZX Spectrum, pozwala na zapoznanie się z softwarem ZX Spectrum NEXT, kickstartowego projektu, którego efektem to nowa wersją Spectrum, nie tylko będącą kompatybilną ze starymi modelami ale dającą nowe, współczesne mechanizmy.

Program wymaga zainstalowanej biblioteki OpenAL (dźwięk) w systemie.

#CSpect V2.12.3

This is a minor update to fix Lowres and ULA scrolling. ULA X scrolling now uses the 2 new NextRegs - $26+$27.
It also fixes an annoying startup issue where if you didn't start in the EXE path, it just wouldn't start properly. This was due to the new plugin system, but should now be fixed. (fingers crossed). I've also added the missing LDWS instruction to SNASM

SNasm 2.0.20

  • Added “LDWS” instruction

#CSpect V2.12.3 changes

  • Lowres scrolling fixed.
  • Added ULA Scrolling registers $26 and $27.
  • Fixed HL being set to $10000 after reading a file at the end of memory...
  • Fixed a command line startup issue when not started in the EXE path

#CSpect V2.12.2

This update is a little different, as it add's the ability for users to write their own "plugins". These plugins can take over memory read/write actions, port in/out's and Next Register access - or all of the above!
They can also query the Next's memory, ports, Next registers and Z80 registers, making it pretty useful for folk to add new toys, or add things like logging or profiling etc.

#CSpect V2.12.2 changes

  • Changed 320x256 mode to use Y/X orientation (0,0)=$0000, (1,0)=$0100, (2,0)=$0200. (0,1)=$0001,(0,2)=$0002 etc...
  • Plugin system can now get/set Z80 registers
  • A better reset on load of an SNA/Nex file. Should be a complete system reset now...
  • 320x256 Layer 2 screen mode added
  • NextReg $70 added ($10=320x256 mode)
  • NextReg $71 added. MSB of Layer 2 XScroll added
  • Added Port 0x123B extended memory mapping mode added - using bit 4 to select (untested)
  • A new plugin system added, so that folk can add their own toys or support custom hardware. See CSpectReadme.txt
NOWSZY [ZX] #CSpect 28/12/2023

#CSpect V2.19.5.1 28 December, 2023

I have moved #CSpect over to Itch.io so that it's properly hosted. I'm looking to get rid of old web sites etc so hosting ZIPs there was gettting more complicated, and this fixes that.

  • Fixed a NEX loading issue when limited numbers of banks are contained
  • Fixed "seeking" to the end of a file when limited numbers of banks contained
  • Added F_GETPOS to RST08 plugin
  • Version check removed (please subscribe to itch.io page)
  • Old analytics disabled

#CSpect V2.19.5.0 02 December, 2023

Lots of fixes to #CSpect this time.

  • Fixed Layer 2, 320x256 right clipping
  • Fixed a sprite clip bug that was causing a hard crash
  • Optimised sprite rendering a little
  • Adding better streaming support through esxDOS
  • Adding in better config mode support
  • Copper can now generate IRQs properly
  • Fixed stackless NMIs
  • Fixed some DIVMMC RAM/ROM stuff
  • Fixed some DIVMMC address paging
  • Fixed a debugger memory window crash
  • First pass at a sprite viewer
  • Fixed "EQUs" being used as debugger address symbols
  • Added NextReg $B2 for extended MD Pad buttons
  • Fixed DMA continuous mode when also in Prescaler mode - though, please don't do this! :D Note: This is a total fudge, it may break.
  • Fixed DMA status register. DMA End flag, and 1 byte transferred flag now works.

#CSpect V2.19.4.4 July 22, 2023

SNasm V3.2.1.0 changes

Some updates and fixes to both CSpect and SNasm

  • Equates can no longer start with a local label symbol
  • Locals are no longer reset by Equates/Sets/Rb/Macro etc.
  • Fixed LDDRX instruction byte codes
  • Proper Version added to assembly EXE
  • Change internal LEX processing and state saving/stacking

#CSpect V2.19.4.4 changes

Some updates and fixes to both CSpect and SNasm

  • OUT ($ff),$40 will not disable ULA Vblanks, while OUT ($ff),$00 will now enable them (see NextReg $22)
  • New debugger command "NEXTBRK" will stop in the debugger after a Next instruction has been executed

#CSpect V2.19.4.3 June 09, 2023

Fixing up some audio issues, and a crash.

  • Reverted the ZIP file detection to fix SDCard access.
  • Updated some demos to fix keyboard reading equates

#CSpect V2.19.4.2 June 02, 2023

Fixing up some audio issues, and a crash.

  • Fixed up DACs, incorrect channels were sometimes being set, and some ports were wrong.
  • Added "-nodelay" startup option to the docs. Totally forgot about it, my bad.
  • AY will now be reset with nextreg 6 (bits 0-1)
  • Fixed a CSpect crash when a streaming file wasn't there. (esxDOS emulation)
  • I now try and detect if you've accidentally provided a ZIP file instead of an SD card image.

#CSpect V2.19.3.0 May 14, 2023

Some debugger and Layer 2 fixes, and fixing the streaming API in the esxDOS emulation system.

  • Extended the debugger's "Display" view to show the whole screen
  • You will now be prompted to install OpenAL if it can't be found (on windows)
  • Fixed Layer 2 pixels in the border area
  • Fixed the esxDOS emulation streaming, allowing Pogie to run with audio from the command line again
  • Added "INPORT <16bitport>" and "OUTPORT <16bitport>" breakpoints in the debugger, allowing a break on a read/write to a port
  • Added a new "TONE" command to the debugger. This switches on a single tone to the audio buffer to test if there are system playback issues

#CSpect V2.19.2.1 March 05, 2023

Minor fix for the debugger screen, and a couple of quick additions.

  • Fixed the debugger screen so it's no longer transparent
  • .NEX file start delay added to loading of NEX files
  • -nodelay added to skip a .NEX file start delay
  • -rot90 Rotate the display 90 degrees
  • -rot180 Rotate the display 180 degrees
  • -rot270 Rotate the display 270 degrees
  • Command line processing cleaned up a bit
  • cspec_win.dat file format changed. Now includes a version [0], and screen rotation [1]
NOWSZY [ZX] #CSpect 3/03/2022

#CSpect March 02, 2023

Minor update, fixing some issues with the large rendering change, and adding super useful debugger command macros.

  • Added new debugger command "LOAD <filename>,<address>[,length]" where address can also be ""<bank>:<offset>""
  • Copper writes fixed up, wasn't executing all CPU TStates, so going slower than it should have been.
  • Updated screen drawing to be later in the line, to account for left border better.
  • Added a little Time base correction when audio/video buffers overflow instead of just throwing the spare frames away.
  • AY chips now respect the ABC,ACB and mono selection for each chip.
  • Added 2 new iCSpect.GetGlobal() calls; ""eGlobal.low_rom"" and ""eGlobal.high_rom"" to return the ROM/RAM at the low/high position
  • Added LoadFile() to iCSpect to load a file from SD card or relative file mmc path.

#CSpect January 25, 2023

Minor update, fixing some issues with the large rendering change, and adding super useful debugger command macros.

  • Rewrote command line processor
  • Added debugger macros to the command line '+def[0-9]"g $8000". use ";" for multiple commands: '+def[0-9]"g $8000;m$4000". ALT+[0-9] to play macro.
  • Fixed a crash when L2 left clip was > L2 right clip
  • L2 no longer renders with top clip was > L2 bottom clip
  • Fixed a bug in the ULA rendering where the border colour was being set to the fallback colour, and not the border colour (which matches global transparancy).
  • Updated TileTest screen mode test app
  • OpenTK upgraded to v3.3.3
NOWSZY [ZX] #CSpect V2.19.3 29/12/2022

#CSpect Wednesday, January 18, 2023

Massive update, with virtually all rendering components touched to properly allow for blending modes. While there has been a concerted effort to beta test this, please report any rendering oddities that you see on the Spectrum Next discord channel.
Also in this version, is a major update to audio/video syncing, producing far smoother and more playable results. The recommended command line for gamers will now be "-60 -vsync [game]". This should give full audio, and nice smooth gameplay.
General timing has also been improved, so without audio running at 60hz and vsync in fullscreen, everything should "glide" nicely again - as it used to in the C++ version.
Plugin authors be aware of a change to the Plugin system. Due to the new Audio/Visual syncing system, the emulator "could" now be running on a different thread, and as such, you can no longer do GUI/OS work from callbacks. ALL UI/OS work must now be managed via the new OSTick() callback. Like the Tick() callback, but this is always called from the OS thread, allowing you to open windows, and refresh/draw them. Please see updated plugins on my github for further example code.
Hope you all enjoy this one, it's been some time in the making - thanks to all who helped beta test it.

V2.19.0.3 changes

  • Fixed Timex Hires non-ULANext ink/paper orders
  • Fixed Timex Hires ULANext ink/paper orders
  • Added wildcard support in F_OPENDIR ($a3)
  • Added better exception reporting to the LOG for loading plugins
  • Fixed DeZog plugin building - DLL has been properly updated with new Plugin interface


  • Fixed up keyboard cross threading issues
  • Fixed up File open cross threading issue
  • Added a new OSTick() call to plugins to allow UI/OS function calls - please note the changes in plugins to avoid crashes
  • Fixed Timex hires with ULA Next ink/paper shift mode
  • Added a "Standard Plugin Keys" section to the readme.txt file


  • Fixed 2 profiler crashes, when clicking on the profile window in different states
  • Fixed ULA last line drawing
  • Fixed sprite in border bugs with new screen rendering
  • Fixed L2 640x256 and 320x256 clipping
  • Fixed Timex border colour issues
  • New Audio/Video syncing system
  • Fixed 320x256 window


  • Fixed a crash in Mode 6 and 7 when the tile window was larger than the screen
  • Fixed blending of tiles to border when in Mode 6 and 7
  • Fixed border when in Mode 6 and 7 when ULA is being used in blending
  • Fixed an esxDOS emulator issue, when a game requests too many bytes than is left in the file, and it fills the extra space with 0s resulting in game crashes
  • Timing fixed. 50hz and 60hz were both running slowly/weirdly both with and without sound. Should now be correct.
  • -60 and -VSYNC should now be perfectly smooth again
  • -fps added to show FPS on title bar
  • -freerun disable all timers and run as fast as we can (must use -sound as well)
  • ULA Y scrcolling fixed to use Yscroll value MOD 192 (instead of anything over 192 being 0)
  • ULA+TILE Stencil mode added. Stencil will use any ULA mode (normal, timex, lowres)
  • Mode6/7 blending can now be used with stencil mode (where ever the hardware allowed it)

#CSpect 2.18.0 Monday, January 02, 2023

Major update as we now support Mode 6 and Mode 7, complete with the fancy blending they can do, and all the tile to sprite weirdness.

#CSpect V2.18.0 changes

  • Mode 6 and 7 added in all it's ULA/Tile ordering weirdness. "(U|T) S (T|U) L" ordering
  • Mode 6 blending added (B+L)
  • Mode 7 blending added (B+L-5)
  • multiface is now paged out on RETN
  • Fixed a couple of RETN's that were marked as RETI's
  • Added the Mode 6 and 7 blend mode (and fiddling) test/demo + source

#CSpect V2.17.1 Thursday, 29/12/2022

Minor update, fixing a profiler crash, and adding a new plugin to do file associations.

  • Fixed a crash in the profiler
  • Added a new extension to associate .NEX and .SNX files with the emulator using ALT+CTRL+SHIFT+A

#CSpect V2.17.0 Thursday, December 22/12/2022

Parallax Demo
  • Fixed auto-mapping when RAM paged in over the ROM
  • IM1 now has IRQs disabled on triggering
  • Added Timex Hires and Timex Hi colour, smooth scrolling
  • Fixed Timex Hires border colour (I think)
  • Added DMA ports $0B and $6B
  • Contended memory no longer affects 7,14 and 28Mhz modes
  • Fixed a bug where all NEXT register stores (for reading back) were being zero'd on direct load of a NEX/SNA/SNX file
  • CTC timers should now always run at 28Mhz regardless of CPU speed.
  • SD card detection no longer crashes when it can't read partitions from a NEX/SNA/SNX file...
  • Fixed using F3 on older card images (2.06 and below)
  • New NextRegister Viewer window, activated by pressing CTRL+ALT+R
  • New Plugin command added "DissasembleMemory()" - see iPlugin.cs for details
  • Instruction TStates added to debugger view
  • New Profiler added, activated by pressing CTRL+ALT+P
  • Fixed up some TStates for Next instruction in the debugger

#CSpect V2.16.6 changes 23/11/2022

  • Regs $6e and $6f set to newer defaults, reading should also be fixed.
  • F_SEEK in esxDOS emulation now takes IXL (instead of L) for the offset type.
  • Hires tile maps now scroll properly - and at the right speed
  • 640 L2 mode now clips in the lower screen properly.
  • Command line will now try and detect what your doing, so passing in
  • an SD card image will setup the proper options, same for NEX files etc.
  • "CSPect.exe card.img" or "CSpect.exe game.nex" is now valid
  • Plugin "CSpect.Debugger(eDebugCommand.Enter)" now triggers on the next instruction, not a frame later.
  • NextRegister 2 - hard reset, should now work.
  • F3 now does a full hard reset, so should be far more dependable.

#CSpect V2.16.5 changes 29/05/2022

Very quick version to allow people to load older SD card versions, and older version of the ROM.

  • Now detects older Next ROM image files and will auto-disable the divMMC auto mapping so they still work

#CSpect V2.16.4 changes 23/05/2022

Will now finally tell the user to install OpenAL, and I've fixed some 4bit relative image stuff.

  • Now correctly detects that OpenAL is not installed, and will message the user and disable audio
  • Added "IR" register to disassembly window
  • Fixed some 4bit relative sprite shape stuff
  • F5 will now screen shot whatever is on screen. The Spectrum screen (pre-shader), or the debugger
  • Window should now start centered on screen (or 0,0 if screen isn't big enough)

#CSpect V2.16.4 changes 20/05/2022

SNASM V3.1.1

  • Fixed bug where LD A,(IX-??) wasn't recognised

Mainly some CTC timer fixes, and fixing the disassembler to display LD ?,(IX/IY-??).

  • Fixed CTC timers, should now be correct
  • CTC cascading timers added (I think)
  • Fixed disassembler, "LD A,(IX-??)" should now be displayed correctly
  • Interrupts are now disabled im start of IM2

#CSpect V2.16.2 changes 24/04/2022

Minor update for SNASM V3.1.1 - I didn't realise it was so out of date.

  • Fixed bug where it didn’t report undefined symbols
  • Added SNA export back in (48k and 128k)
  • Fixed a bug with Macro usage in the first ASM file
  • Fixed 6502 assembling – and PRG export
  • Added “SET” back in for 6502 (can also use DEF)
  • Put in an error when defining a label called “Filesize”
  • Added 45GS02 CPU core for mega65 (opt 45gs02)
  • Added “ADCQ”, “ANDQ”, “ASLQ”.
  • Added CLD after all 32Bit instructions as “work around” for HW bug
  • Fixed “INC A” and “DEC A” instructions
  • Fixed a crash trying to read a file from a non-existant directory


#CSpect V2.16.0 changes xx/xx/2022

Lots of fixes and a few new additions. Improved the new divMMC autopaging for directly loaded NEX files. Added the -mouse option to try and help MAC users a little, and also fixed up the copper when large DMA blocks were running. A nice new feature is being able to visualise both copper and Raster IRQ splits using CTRL+ALT+S (via the copper plugin). Even for non-devs, this is a funky little tool to show just how complex things can get!

  • Added directory functions to RST$08 plugin
  • Fixed screen rendering time a little.
  • on .NEX load, regs $B8-$BB are set to $82,$00,$00,$F0 - same as the OS.
  • Added reg $0A = bit 2, to be able to disable DivMMC auto mapping
  • Fixed crash when typing "BR :" in debugger
  • Added a "-mouse" command line option. This will disable the "grabbing" of the mouse.
  • When specifying an SD card image, you no longer have to specify -zxnext and -nextrom on the command line as well
  • Fixed Copper when the DMA is running and blocking CPU, now counts DMA "TStates" instead of CPU ones
  • .NEX files will automatically disable DivMMC PC address memory mapping
  • Added -divmap command line, so you can force memory mapping of the DIVMMC "on" when directly loading a .NEX file
  • Fixed a raster interrupt issue
  • Added -copwait command line so you can easily visualise where the copper splits are
  • Added -irqwait command line so you can easily visualise where the raster irq splits are
  • You can now toggle the copper and irq visualiser with CTRL+ALT+S via the copper disassembler plugin
  • You can now "set" command line globals via the Plugin interface


#CSpect V2.15.2 changes 29/03/2022

Updated so that the very latest OS now works by adding new Next Registers $B8-$BB, along with a few updates, changes and fixes.

Also please note, if you take over the "whole" machine to haved a full RAM machine, you will now need to set registers $B8-$BB to be able to jump to address $0000, or the DivMMC may well page in.

  • DeZogPlugin added to main distro so it remains upto date.
  • Added stackless NMI support
  • Reset register $02 added
  • Added NextRegs $B8 to $BB for DivMMC direct paging control
  • Current ROM and DivMMC registers added to rewind history
  • F6 now cycles through turbo speed settings
  • F5 Now takes a screen shot (was on CTRL+F3)
  • Fixed a rendering glitch when estimates for the right HBlank timing are "missed" and the line isn't drawn.
  • -log_cpu removed. Rewind probably replaces the need for this.
  • Updated RST$08 read/write to return values in BC,HL and DE as described in NextZXOS
  • Layer 2 banks can now be in the full 2Mb (regs $12 and $13)
  • Parallax demo updated to work with new $B8-$BA registers

#CSpect V2.15.1 changes

  • Fixed SD card access - SpecNext IMG files now boot again

#CSpect V2.15.0 changes

Some fixes and a couple of new open source extension.

  • Fixed a crash when trying to get file info on a file that can't be found (or opened)
  • Fixed ULA colour 3 (where colours are 0-15) on a loaded NEX file.
  • Fixed Border colour when ULA Palette scale set to 255, but ULANext mode is disabled
  • All RST $08 operations have been moved to a new open source extension esxDOS.dll - lightly tested
  • Added Copper Read/Write to extension system - allowing for a copper debugger/assembler etc
  • Added single byte peek/pokes to extension interface for simpler access
  • OpenTK upgraded to v3.3.2, any newer version won't install as it's incompatible with .NET frameworks
  • Added initial open source Copper disassembler/viewer - "ctrl+altc" to open
  • Open source extensions added to Github

#CSpect V2.14.8 changes

  • Fixed a L2 scrolling issue - that I'd just added.... *sigh*

#CSpect V2.14.7 changes

  • Fixed a L2 clip scroll offset issue

#CSpect V2.14.6 changes

  • Forgot to switch on the new rendering again - now done.

#CSpect V2.14.5 changes

  • Fixed L2 left clip (I think)

#CSpect V2.14.4 changes

A few fixes have been requested by devs, so I've done a quick new version.

  • Fixed L2 320 and 640 clip window
  • Fixed LD_R_A in debugger to "LD R,A"
  • Fixed a bug when writing the copper control byte, where it would reset the lower byte of the copper write address
  • Added the raster offset register ($62) but mostly untested.
  • Screen rendering now starts in the HBlank, not at the end of the line, allowing changes for the next line to take place in the HBlank.

Minor update V2.14.3

  • Fixed BIS and Warhawk crash
  • Odd crash with last version, rebuilding zip to try and fix
  • Now alerts you to a new version
  • Did more sprite window fixes
  • Altered FLASH rendering

Minor update V2.14.1

  • Added a check for AY regs above 16, as a common music driver has a bug in it
  • Timers are now reset on F3
  • IRQ TStates are reset back to 30 Pre-Tstates. This isn't correct but helps some games work better.
  • Stopped a crash on exit from fullscreen

Changes V2.14.0

  • Fixed esxDOS Read/Write so it's now returning NEXT pointer IX instead of HL.
  • You no longer need to extract ROM files to run in full SD card mode, they will be copied out the SD card image directly.
  • Sprite right edge clip fixed - I think.
  • AY registers are now readable
  • Some very basic analytics are now collected. Each startup, command line options etc. "-analytics" to disable. Please leave it on if you can, as it'll help me direct developement effort.
  • I have added my new SDCardEditor into the archive. This is very much just a beta, but lets you easy copy files from the SD card. Full editing coming on this.
  • The latest windows update now causes some nasty stalling. To reduce (but not remove), go into "settings" and search for "game mode" and switch it off. This will help a little.

#CSpect V2.13.01 March 03, 2021

  • A few fixes and some new Next hardware that's coming soon....
  • Put some guards around break point setting to check ranges a little.
  • Symbols are uppercased on load (they aren't case sensitive)
  • Fixed memory window. Any address < $10000 is not a physical address, its the 64k mapped. If you need this, use bank/offset
  • Fixed some BASIC key issues - holding down control keys etc
  • Fixed a ULA global transparancy issue
  • Fixed NEX loading and initialising of ULA colours
  • Rewrote the ULA colour system - was a mess.
  • Fixed some Timex rendering issues
  • Basic CTC timers (4) added. Timer mode only, no cascading. Timers can generate IRQs.
  • NextReg $CC and $CD - IRQ DMA suspend mode for timers, liner interrupts and ULA added
  • Z80 CTC Timer example source included in demo

#CSpect V2.13.00 November 22, 2020

Note: I am aware most virus scanners are rejecting this. Apparently it's because I open files in "shared" read/write mode. This is so that SD cards can still be written to while the emulator is running. You'll need to add an exception if you wish to use it.
This is a special 'experimental' release so that everyone can try out the new "rewind" feature in the debugger. Specifying -rewind on the command line, or typing 'REWIND' in the debugger will enable/disable it.
This will then let you step 'backwards' using SHIFT+F7, undoing whatever the CPU has just exectued. Memory and CPU state should be solid (along with MMU and ROM usage), and I've started to add in sprite access as well - but this is more untested.
It's good fun, and super handy for debugging when you need to just roll back a little bit....
Fixed physical breakpoints in the plugins

  • (Highly) Experiminetal "rewind" debugger feature. Simply press SHIFT+F7 to step back. Currently tracks all RAM access and Sprite port access.There's bound to be HEAPs of issues and bugs with this, but for simple debugging, it should be fine.
  • Added UnStep in plugin system
  • Added "REWIND" debugger command, to allow you to switch the CPU history on/off dynamically
  • Added Debugger message display. Now reports errors when you use a non-existant label etc.
  • Fixed a bug in the rewind of MMUs
  • Swapped to 2.13 coz I was bored of 12.??

#CSpect V2.12.38 November 19, 2020

  • Minor changes and fixes...
  • Added NextRegs $2C and $2E (DAC mirrors)
  • DMA read flags (Bit 5 and Bit 1) added and fixed.
  • Added "_" to BASIC key detection
  • I "think" I've fixed the stuck BASIC mode keys (where: just gets stuck and repeats....)
  • Added OpenAL32.dll to the zip.... turns out that's allowed. on loading of a NEX file, NextRegs are set to what the OS NexLoad sets
  • 32bit mode should work this time....in theory

#CSpect V2.12.36/35 November 11, 2020

RAM is now filled with random bytes on power up to help simulate the real machine -fill=$XXXXX allows you top specify a specific byte sequence to fill RAM with

  • Debugger: general layout adjustment.
  • Debugger: text colour changes when user bar over the top for easier reading
  • Debugger: $ added to all hex numbers
  • Debugger: Hex numbers are now coloured for easier spotting
  • Debugger: Added "peek()" of all memory access to the left of the disassembly line
  • Debugger: Added 16bit "peek()" of all 16bit register load/store locations
  • Debugger: Added a small permanent memory dump using 16bit registers as the base address
  • Debugger: ` now displays the current screen in the debugger (Keypad-Enter also works)
  • Debugger: Memory window bookmarks added. CTRL+SHIFT+[0-9] to set, CTRL+[0-9] to jump to.
  • CSpect should now run on 32bit and 64bit machines
  • Now detects if the shader fails to compile, and switches off the shader mode
  • Fixed port $123b 16k bank offset mode
  • Fixed unified attached sprites

SNasm V3.0.3

  • Brand new C# version, which will now run on Linux and macOS. I'm sure there are still bugs in here, so released for community testing. It assembles everything I've got, so should be fine.

#CSpect V2.12.36/35 August 25, 2020

  • Fixed F_RENAME to use IX instead of HL (now working)
  • Fixed sprite clipping (I think)
  • First pass at Tiles and Tilemaps in bank 7
  • Faked esxDOS loading now returns an "access denied" error, if it tried to open a file that is write protected
  • Transparent border now working (ULA off)
  • Added F_RENAME (untested)

#CSpect V2.12.34 July 09, 2020

  • Fixed HEX editing in the memory window so that it's case insensitive. (don't have to press SHIFT)
  • ReadMe.txt now holds the "manual" part of this text file, and this is now "just" the version info.

#CSpect V2.12.33 July 09, 2020

  • You can now click on the memory window to edit bytes directly by typing HEX values into it ENTER or click off to stop
  • You can now press KEYPAD_ENTER to display the game screen while in the debugger

#CSpect V2.12.32 July 09, 2020

  • Fixed reg $8E bit 3 usage - don't change RAM mapping
  • Fixed Layer 2 palette colour offsets (NextReg $70)
  • NextRegs $6E and $6F now return top 2 bits as 0

#CSpect V2.12.31 July 09, 2020

  • Added DAC's B,C and D
  • Added SAVE to the debugger: SAVE "NAME",add,len, SAVE "NAME",BANK:OFFSET,length, SAVE "NAME",BANK:OFFSET,BANK:OFFSET
  • You can now read DMA Registers
  • CTRL+F7 now executes to cursor in the debugger
  • Added the demo "mod_player.nex" added to

#CSpect V2.12.30 June 09, 2020

  • Layer 2 palette offset added to 256,320 and 640 modes.
  • Fixed a crash when a write to E3 happens, and the roms haven't been loaded.
  • Fixed a crash in the debugger when you entered a bank:offset and the offset was an invalid symbol
  • Tilereg $6E set to $2C on power up - same as hardware. (don't assume though, set it)
  • Tilereg $6F set to $0C on power up - same as hardware. (don't assume though, set it)
  • SNasm V2.0.23 changes
  • Fixed a crash when an expression has a divide by 0

#CSpect V2.12.28 changes May 17, 2020

  • Fixed DMA prescaler (usually used for digial audio)
  • 640x256x4 Layer 2 mode added

#CSpect V2.12.27 May 15, 2020

  • Fixed a crash in AY Audio when loading in large files via fake esxDOS.

#CSpect V2.12.26 May 13, 2020

  • Fixed a crash inside the debugger
  • Added a new eDebugCommand.ClearAllBreakpoints to the iCSpect plugin interface

#CSpect V2.12.25 May 12, 2020

  • Tiles over a transparent border now fixed

#CSpect V2.12.24 May 10, 2020

  • Lower border colour fixed (I think)
  • Added some wait states to slow down 28Mhz mode to more closely match the real machine

#CSpect V2.12.23 April 29, 2020

  • CTRL+F3 will now save a screenshot into the current folder (without shader effects)

#CSpect V2.12.22 April 20, 2020

  • Fixed a stupid typo on iCSpect interface to get sprites.
  • NextReg 0x1c can now be read
  • NextRegs 0x61 and 0x62 can now be read correctly
  • Reading/Setting NextReg 255 (which isn't a real one) was crashing the emulator due to plugins
  • Fixed the fallback colour, was only 8 bit instead of 9
  • Fixed reading of the raster line for lower in the screen (upper 64 pixels usually)
  • Fixed some threading issues in the serial coms (on USB hardware)
  • Fixed and changed baud rates, and added in all normal ones (HDMI timing = 27000000/baud )
    • 2000000 = 13
    • 1152000 = 23
    • 921600 = 29
    • 576000 = 46
    • 460800 = 58
    • 256000 = 105
    • 230400 = 117
    • 128000 = 210
    • 115200 = 234
    • 57600 = 468
    • 38400 = 703
    • 31250 = 864
    • 19200 = 1406
    • 9600 = 2812
    • 2400 = 11250
    • 1200 = 22500

SNASM V2.0.22

  • Fixed “align” for use with segments
  • Fixed “org” so it works with segments
  • You can now use _ in binary (ie. %11_00_1111 )


NOWSZY [ZX] #CSpect 2.12.20 14/04/2020

#CSpect V2.12.20 Tuesday, April 14, 2020


Another couple of dev fixes.

CSpect V2.12.20 changes

  • Fixed a bug in 48k Layer 2 offset mapping for 320 and 640 modes(untested)
  • Changed set/clear breakpoints to be a proper set/clear
  • Port FF is now readable if bit 2 of nextreg 8 is set
  • Removed some debug code that could cause a crash, or a random file appearing
NOWSZY [ZX] #CSpect 2.12.18 13/04/2020

#CSpect V2.12.18   Monday, April 13, 2020

Couple of bug fixes for devs....

#CSpect V2.12.18 changes

  •     Fixed Layer 2,320x256 clip window
  •     Fixed a crash in Layer 2, 320x256 rendering
  •     Fixed NextReg0 (machine type) initialisation bug

#CSpect 2.12.17   Saturday, April 11, 2020

Another day, another version. This one for some devs who are trying to use the 1bit tilemaps, and another minor update for plugin writers.

#CSpect V2.12.17 changes

  • 1Bit tilemaps now use Global Transparency for it's transparency, not the tile index
  • Have added GetSprite() and SetSprite() to iCSpect interface for plugin writers

#CSpect V2.12.16  Friday, April 10, 2020

Another very minor update for plugin writers. This gives access to sprite image memory, and undoes a "fix" that wasn't right....

#CSpect V2.12.16 changes

  • Reverted .NEX border colour palette change, was just wrong.
  • Added PeekSprite(address) and PokeSprite(address,value) to iCSpect interface for plugins

#CSpect V2.12.15  Tuesday, April 07, 2020

This release is specifically to add to the plugin API, allowing plugin devs to control the debugger including single stepping and break points.

#CSpect V2.12.15 changes

  • Plugin API TICK() now called while in debugger mode
  • Plugin API can now control the debugger using the new extended eDebugCommand enum
    • remote command line switch added, to disable the "visible" part of the debugger

#CSpect V2.12.13   Sunday, April 05, 2020

So this includes a few fixes users have found in the last version, including an important OS one - hence the quick release.

#CSpect V2.12.13 changes

  • Fixed GetRegister() callback
  • Fixed NextReg 0x05 reading
  • Setup some of the Nextreg on reset (also helps reset a bit better)
  • Fixed bit 3 of new NextReg 0x8E, which fixes dot commands (and sprite editor exiting)
  • Changed number of scanlines to 262 (HDMI) for 60Hz
  • Fixed a crash in plugin creation
  • Added pluging "eAccess.NextReg_Read" type (untested)
NOWSZY [ZX] #CSpect 2.12.9 03/04/2020

#CSpect V2.12.9 changes

Been a while since the last update. This one adds the 2 new Next Registers that are required for the very latest NextOS - which is the main reason for doing this. There are a lot of other fixes as well....

  • 50hz/60hz bit now set in NextReg 5
    • -debug added to the command line. You can now "start" in the debugger.
  • Minor Fix to 60Hz audio
  • Fixed AY partial port decoding
  • Fixed a minor reset stall when it was waiting on a HALT before the reset
  • NextReg 0x8c added
  • NextReg 0x8e added
  • Added AltRom1 support
  • Fixed a serial port "send" bug. Now sends the whole byte
  • Fixed tile attribute byte bit 7 - top bit of palette offset was being ignored
  • Fixed esxDOS date/time function (M_GETDATE $8E)
  • NEX file 1.3 now parsed... should load more things
  • NEX files get IRQs switched off when loaded (as per machine)
  • Fixed esxDOS date is wrong
  • Fixed Border colour now sets the palette entry as well
  • Fixed GetRegister() in plugins not working
  • Fixed Copper run then loop not working
  • Fixed Top line (in 256 pixel high view) is missing
  • Fixed DI followed by HALT should stop the CPU
  • Fixed Hires tilemap has clipping on far right
  • F8 not steps over conditional jumps and branches that go backwards. Branches forwards are taken
  • Fixed ADD HL/DE/BC,A no longer affects flags
  • Fixed OUTI so that B is decemented first. (OTIR was already like that)
  • Minor change to 60hz audio
  • NextReg 0x69 can now be read
  • DMA Continue mode added
  • Fixed a timing issue with DMA, so timing much better
NOWSZY [ZX] CSpect 2.12.5 6/01/2020

CSpect V2.12.5 Monday, January 06, 2020

Fixed plugin loading. This was due to the new loading/reset system that was nuking loaded plugin mappings.I've also added a "Tick" to the plugin interface which gets called once per emulated frame, along with a debugger call which allows you to tell CSpect to enter the debugger. This is handy if you need to debug the operation that "just" happened.
Lastly... I've included a very simple plugin example, along with the interface .CS files to look at.


  • Border now comes from fallback colour if paper/ink mode is 255 (as per hardware)
  • Fixed Plugin loading. Was broken due to new system loading+resetting.
  • Added new "Tick" to iPlugin interface, called once per emulated frame
  • Added Debugger() call to CSpect interface, allowing you to enter the debugger from the emulator
  • Added Plugin example (and current interface)

CSpect V2.12.4 Friday, January 03, 2020

Another minor fix to fix a memory access bug, and a new MMC folder issue that appeared in the last couple of versions.

SNasm 2.0.21

  • Added “SLL” instruction


  • Fixed memory reading of Layer2 mapping in $2000-$3fff
  • Fixed MMC path, it was being reset when loading SNA/NEX from the command line.


→ [ZX] CSpect 2.11.1
Warhawk Demo for ZX Spectrum Next (2018, Rusty Pixel)



This update is to add in (most) of the new hardware/registers that the latest Spectrum Next firmware has added - along with the new OS which uses some of it. There are some amazing advancements in this firmware. 14Mhz CPU speed all the time, 28Mhz copper and 14Mhz DMA, along with things like smooth scrolling the ULA screen. Brilliant update from the Next team.



  • Fixed extra pixel in wrapping scroll of ULA
  • Fixed label on/off
  • Fixed lowres vertex clip "smear"


  • Fixed -tv command line, and made it actually switch off all shader usage
  • if bit 6 in attrib 3 is not set, #CSpect now properly ignores attribute 4
  • Copper now runs at 28Mhz
  • The CPU no longers slows down over the screen
  • ULA can now scroll in 1/2 pixels
  • ULA Shadow screen now works with Layer 2
  • Reg 0x69 added (Layer 2 enable, ULA shadow mirror, and port bits 0-5 goto port 0xFF)
  • Copper Reg 0x63 added
  • DMA is now always 14Mhz...
  • 4 bit lowres mode added (reg 0x6A)
  • Added $123b Read mode
  • Added $123b 48K mapping mode
  • Reg 7 is now R/W, and bits 4/5 now set correctly
  • Window regsiters are now R/W
→ [ZX] CSpect 2.10.1
Cspect i NxTel ze Spectrum Next - coś z wyglądu jak telegazeta lub BBS.


  • Fixed a shader crash on OSX (Probably Linux as well)

v2.10.0 (private)

  • Fixed a crash in relative sprites where the X coordinate could go negative
  • Added +3 "all ram" mode. (ZX81 games now work on the Next SD card)
  • ay8912.dll no longer obfuscated. Didn't realise this was still getting obfuscated. This means you can now compile the DLL yourself using the supplied source.
  • Fixed the fake UART and Wifi - was ignoring a basic AT command.
  • Added a couple of new AT commands to the UART. AT+CIPSTA? will now return your IP address.
  • AT+CIPDNS_CUR? will return googles DNS server - coz why not.
  • AT+GMR will return n00160901 - which is an older version of the wifi chip I believe - any other preference?
  • Fixed the default MMC path (when you don't specify one) on the Mac/Linux. Now uses .Net Path.PathSeparator...
  • Any unknown UART command is now sent to the LOG file
  • CTRL+F1 now enables/disables the TV shader
  • PageUp+PageDown now makes the TV lines less/more visible
  • Home+End now adjusts the TV shader "blur"


  • Added sprite clipping in over border mode (1 = enabled) (bit 5 of reg $15)
  • Composite/Unified mode visibility flag fixed
  • Parallax scrolling demo (and .BAT file to run it) added to CSpect distro.


  • Fixed a sprite window clipping bug
  • Fixed the esxDOS streaming API emulation


  • Improved the timing of the CPU so it should be much closer to the NEXT
  • 48k timing - along with memory contention should also be much closer to the real thing
  • Fixed the sprite over border clip window - no longer resets the user clip window
  • Sprite "composite" mode added
  • Sprite "Unified" mode added
  • Fixed a screen render issue, where the screen was being stretched 1 pixel too much


  • Fixed Left control in BASIC key mode.
  • Fixed a bug where setting port $7ffd or port $1ffd would change the +3 ROM offset - even if next roms weren't enabled.
  • .NEX files are now started in 14Mhz mode - same as the real machine
  • Added IFF 1/2 to the debug display
  • Fixed -fullscreen, just wasn't doing anything....
  • Fixed -r when you exit in "fullscreen" mode (ALT+ENTER). Now exits fullscreen before quiting
  • Added a "wish list" to the bottom of this doc.


  • Right shift now works the same as left shift in BASIC key mode.
  • Left ALT now releases the mouse, Left and Right Control is now SymbShift.
  • In BASIC key mode if you also disable escape (-esc), escape will bring up the menu allowing you to quit BASIC/re-number etc.
  • Fixed a SD card write, now flushes each sector as it writes so that card is always in a complete state


  • Fixed a crash in SD Card writing.
  • Added -sd2 for attaching a second SD card
  • Added a special ZXBASIC keyboard mode, meaning it'll auto map keys to the spectrum version. (" will map to SYM+P for example)
  • Added PageUp, PageDown, Home &  End to ZXBASIC keyboard mode.
  • F10 will toggle between game and ZXBASIC keyboard mode
  • Fixed a bug when setting the sprite index via NextReg and top bit was set, the shap wasn't being offset by $80
  • Added OpenAL install check for windows, if not found sound is disabled. use -sound to bypass check/error dialog
  • The lovely guys at SpecNext.com have added "images" of the distro, making SD card usage much simpler.
  • http://www.zxspectrumnext.online/cspect/

Simply download the one you need.

  • http://www.zxspectrumnext.online/cspect/cspect-next-16gb.zip
  • http://www.zxspectrumnext.online/cspect/cspect-next-8gb.zip
  • http://www.zxspectrumnext.online/cspect/cspect-next-4gb.zip
  • http://www.zxspectrumnext.online/cspect/cspect-next-2gb.zip
  • There are also some empty SD card images on the main site that you can put into the second SD card slot,
  • allowing your work to be separate from the OS (allowing easy upgrading)
  • In BASIC you can do 'SAVE "d:name.bas"' to save to the second slot....


  • Fixed -esc command line, hadn't been ported from 1.x version
  • Swapped Right Shift for SYMSHIFT to Right Control. Both shifts map to CAPS SHIFT.  "," still works as SYMSHIFT
  • Fixed PUSH XXXX opcode in debugger. Was displaying low/high. Now fixed to display high/low.
  • Added "-log_cpu" for tracing the CPU instruction stream
  • Added back in Label "switch" to debugger
  • Missing "LDWS" opcode added to disassembler
  • Fixed bug in ULA off mode where the border was still being drawn
  • Fixed bug in 512 tile mode, where it was always above the ULA screen
  • Added +3 ROM emulation (without RAM only mode)
  • Added divMMC ROM/RAM hardware support via port $E3
  • Added divMMC SD card support via ports $E7 and $EB
  • SD Card SPI commands supported:CMD0,CMD1,CMD8,CMD9,CMD12,CMD13,CMD16,CMD17,CMD24,CMD55,CMD58,ACMD41
  • (see SDCARD setup below to get up and running)


  • Removed debug text output
  • Initial WiFi/UART support added.
  • NXtel.nex added to archive - see weblink above for the latest versions.


  • Fixed Timex Hires mode when using ULANext
  • Fixed Timex Hires border colour


  • Fixed sprites crashing when using default transparency
  • Fixed fallback colour in screen area (I think)


  • Fixed darkening mode - removed debug code
  • Fixed sprites being offset by a 1/2 pixel to the left


  • Fixed new sprite rendering
  • Fixed Lighten and Darkening modes


  • Rendering rewrite to properly fix transparancy.


  • Trying to fix ULA transparancy.


  • Fixed PUSH $1234 to have the right order.
  • Fixed LDWS so that flags are set based on the INC D
  • Fixed BSLA so that it takes bits 4..0 not just bits 3..0
  • Fixed a global colour transparancy issue


  • Palette reading added - untested
  • Fixed a transparency issue with ULA colours


  • HL now gets set properly after an F_READ (address of next byte)
  • 9 bit Layer 2 colour now compares to Global transparency 8 bits correctly.


  • Attempt 3 at 9bit colour (3 bit blue)


  • Fixed a type-o in 9 bit blues


  • Fixed "HALT" instruction so that it waits for the next IRQ or Reset, and doesn't carry on at VBlank.
  • 9 bit colours (and so 3 bit blues), now use the same colour mapping as Red and Green. 8 Bit colour is as before.


  • Inital UART spport added via standard windows serial COM ports. Must use "-com" to setup
  • Fixed the Real Time Clock (RTC) APi... was returing in the wrong order.
  • Added "fine" seconds control to RTC API. "H" now holds full seconds.


  • Copper will now trap uninitialised memory when trying to execute a program, and enter the debugger.
  • Gamepads will now only use the "first" mapped analogue controller. Sorry. Dpad should work fine.
  • Fixed a bug where creating a new file, then trying to open it would fail.


  • Fixed 512 tile mode. ULA Disabled bit has moved to Reg 0x68, bit 7.
  • Border can now be transparent and will use the fallback colour.
  • NEX format file expanded. Default 16k RAM bank at  $C000 now set.
  • NEX format file can now set the file handle on request.
  • Added more window scaling options (-w1 to -w10 now available).
  • Updated 512 tile mode to use NextReg $6B (bits 0 and 1) properly.
  • core version now set to 28 (2.0.28)


  • Screen size changed to 320x256 to allow for full tilemap+sprites display (640x512 actual)
  • Fixed Tiles under ULA screen when in border area (now also under border). Same as H/W
  • Added 2 player Joysticks (first pass)
  • Added MegaDrive joysticks (first pass)


  • Sprite over border clipping fixed
  • Sprite over border *2 on coords fixed
  • Fixed a rasterline reading issue when read at the bottom of the screen.


  • F_FSTAT($A1) and F_STAT($AC) now implemented again
  • -fullscreen added to start in fullscreen mode
  • Fixed loading of NEX files that have pre-set tiles


  • Minor update for tilemap indexing


  • Added ULA scrolling using LowRes scroll registers. Note: X currently byte scrolling only.
  • Added Tilemap screen mode
  • Added X and Y scrolling to tilemaps
  • Fixed a couple of bugs in the streaming API.
  • Fixed USL rendering order - was just buggered. (Layer2 demo was broken)
  • Added a "-vsync" mode for when using "-60 -sound"


  • Fixed regs $75-$79 auto inc then top bit of $35 NOT set
  • Upped sprites to 128 as per new hardware (yum!)


  • Fixed reg 0x43 bit 7- disable palette auto increment.
  • Fixed NextReg access for sprites. Was using the wrong index.
  • Added Auto-increment/port binding for NextReg $35 (sprite number)
  • Added Auto-increment sprite Next registers $75-$79 (mirrors)
  • Fixed MMC path setting from the command line


  • Added logging debug command (see below)
  • Added Layer 2 pixel priority mode - top bit of second colour palette byte (the single bit of blue) specifies over the top of everything.
  • Added Next OS streaming API ( see below  )
  • Added DMA reverse mode (R0 BASE, bit 2)
  • Added BSLA DE,B  (ED 28)  shift DE left by B places - uses bits 4..0 of B only
  • Added BSRA DE,B  (ED 28)  arithmetic shift right DE by B places - uses bits 4..0 of B only - bit 15 is replicated to keep sign
  • Added BSRL DE,B  (ED 2A)  logical shift right DE by B places - uses bits 4..0 of B only
  • Added BSRF DE,B  (ED 2B)  shift right DE by B places, filling from left with 1s - uses bits 4..0 of B only
  • Added BRLC DE,B  (ED 2C)  rotate DE left by B places - uses bits 3..0 of B only (to rotate right, use B=16-places)
  • Added JP (C)     (ED 98)  JP  ( IN(C)*64 + PC&$c000 )
  • Added new sprite control byte
  • Added sprite expand on X (16,32,64 or 128)
  • Added sprite expand on Y (16,32,64 or 128)
  • Added 16 colour shape mode
  • Removed 12 sprite limit, limitations still apply when expanding on X (100 16x16s per line max)
  • Sprite pixel wrapping on X and Y (out one side, back in the other)
  • Added "lighten" mode.  L2+ULA colours clamped. (selected using SLU layer order of 110)
  • Added "darken" mode.  L2+ULA-555 colours clamped. (selected using SLU layer order of 111)


  • Fixed a crash in sprite palettes.


  • Fixed Create/Truncate on esxDOS emulation
  • Mouse support added
  • Gamepads added - not sure about OSX and Linux, but appear fine on Windows.


  • Ported to C#, OpenTL, OpenGL and OpenAL, now fully cross platform!
  • Things NOT yet finished/ported.
  •    Gamepads
  •    Some esxDOS functions  (F_FSTAT, F_STAT, M_GETDATE)
  •    128K SNA files are not currently loading
  •    File dialog (F2) will not work on OSX due to windows Forms not working in x64 mode in mono
  •    Mouse is not currently implemented
  •    Due to the way openAL appears to work, things aren't as smooth as i'd like. Disabling audio (-sound) will smooth out movement for now...
  •    Probably a few more things....


  • added "-16bit" to use only the logical address of the MAP file
  • Execution Breakpoints are now set in physical address space. A HEX number or SHIFT+F9 will set a logical address breakpoint. This means you can now set breakpoints on code that is not banked in yet.
  • Next mode enabled when loading a .NEX file


  • ULA colours updated to match new core colours. Bright Magenta no longer transparent by default. Now matches with $E7 (not $E3)
  • Fixed debugger bug where "0" is just left blank
  • New MAP format allowing overlays mapped in. Labels in the debugger are now based on physical addresses depending on the MMU
  • You can now specify a bank+offset in the debuggers memory view (M $00:$0000) to display physical addresses.
  • Numeric Keypad added for debugger use.
  • EQUates are no longer displayed in the debugger, only addresses. This makes the view much cleaner


  • Fixed sprite transparency to use the index before the palette and colour conversion is done
  • -r on the command line will now allow CSpect to remember the window location, is if you move it somewhere, it'll start up there again next time.
  • Moved command line options to the top of the file, as no one seems to find them. Keys etc are still below.


  • Fixed sprite transparency index. now reads transparancy colour from sprite palette.
  • Timex Hi-Colour mode fixed
  • M_GETDATE added to esxDOS emulation (MSDOS format)
  • BC = DATE
  • DE = TIME
  • Bits    Description
  • 0-4     Day of the month (1–31)
  • 5-8     Month (1 = January, 2 = February, and so on)
  • 9-15    Year offset from 1980 (add 1980 to get actual year)
  • Bits    Description
  • 0-4     Second divided by 2
  • 5-10    Minute (0–59)
  • 11-15   Hour (0–23 on a 24-hour clock)


  • -joy to disable DirectInput gamepads
  • Re-added OUTINB instruction (16Ts)
  • Fixed a but with MMU1 mapping when reading, it was reading using MMU0 instead.
  • In ZXNext mode, if you have RAM paged in MMU0, then RST8 will be called, and esxDOS not simulated
  • Palette control registers are now readable (Hires Pawn demo now works)
  • Reg 0 now returns 10 as Machine ID
  • Reg 1 now returns 0x1A as core version (1.10)
  • Layer2 transparancy now checks the final colour, not the index
  • Fixed sprites in the right border area (the 320x192 picture demo)
  • Timex Hires colours now correct (Pawn demo)


  • Fixed CPU on WRITE and on READ breakpoints
  • -port1f command line removed
  • .NEX format now leaves IRQs enabled
  • Removed some of the old opcodes from the debugger
  • Kempston joystick emulation added using direct input. All controllers map to a single port, port $001F = %000FUDLR
  • Fixed memory contention disable (so now tested!)


  • Added .NEX format oading. (see format below)
  • Added nextreg 8, bit 6 - set to disable memory contention. (untested)
  • Added Specdrum Nextreg mirror ($2D)
  • Removed OUTINB
  • Removed MIRROR DE
  • Added sprite global transparancy register ($4B) - $e3 by default, same as global transparancy ($14).
  • NextReg reg,val timing changed to 20T
  • NextReg reg,a timing changed to 17T
  • Added LDWS instruction (might change)


  • Fixed Lowres window (right edge)
  • You can now use long filenames in  RST $08 commands (as per NextOS), can be set back to 8.3 via command line
  • Layer 2 now defaults to banks 9 and 12 as per NextOS
  • Added command line option to retrun $FF from port $1f
  • Fixed a possible issue in loading 128K SNA files. Last entry in stack (SP) was being wiped - this may have been pointing to ROM....
  • Fixed mouse buttons return value (bit 0 for button 1, bit 1 for button 2)


  • -cur to map cursor keys to 6789 (l/r/d/u)
  • Fixed copper instruction order
  • Copper fixed - and confirmed working. (changes are only visible on next line)
  • Copper increased to 2K - 1024 instructions
  • Fixed a bug in the AY emulation (updated source included)
  • Fixed Lowres colour palette selection
  • Added new "Beast" demo+source to the package to show off the copper


  • Layer 2 is now disabled if "shadow" screen is active  (bit 3 of port $7FFD)
  • Timex mode second ULA screen added (via port $FF bit 0 = 0 or 1). Second screen at $6000.
  • Fixed bit ?,(ix+*) type instructions in the disassembler. All $DD,$CB and $FD,$CB prefix instructions.


  • $123b is now readable
  • Fixed cursor disappearing


  • "Trace" text was still being drawn when window is too small.
  • "POKE"  debugger command added
  • New timings added to enhanced instructions - see below.


  • Border colour should now work again.... (palette paper offsets shifted)


  • Minor update to fix port $303b. If value is >63, it now writes 0 instead (as per the hardware)


  • Palettes now tested and working


  • Missing ay.dll from archive
  • V1.02

  • Quick fix for ULA clip window


  • Fixed a bug in delete key in debugger not working
  • Fixed Raster line IRQ so they now match the hardware
  • Fixed a bug in 128K SNA file loading
  • Fixed a bug in moving the memory window around using SHIFT key(s)
  • Removed SID support  :(
  • Added auto speed throttling.  While rendering the screen, if the speed is over 7Mhz, it will drop to 7Mhz. (*approximated)
  • Removed extra CPU instructions which are now defuct. (final list below)
  • MUL is now D*E=DE (8x8 bit = 16bit)
  • Current Next reg (via port $243b is now shown) in debugger
  • Current 8K MMU banks are now shown in debugger
  • CPU TRACE added to debugger view (see keys below) ( only when in 4x screen size mode)
  • Copper support added. Note: unlike hardware, changes will happen NEXT scanline.
  • Sprite Clip Window support added (Reg 25)
  • Layer 2 Clip Window support added (Reg 24)
  • ULA Clip Window support added (Reg 24)
  • LOWRES Clip Window support added (Reg 24)
  • Layer 2 2x palettes added
  • Sprite 2x palettes added
  • ULA 2x palettes added
  • Regiuster $243b is now readable
  • NOTE: SNASM now requires "opt ZXNEXTREG" to enable the "NextReg" opcode


  • Startup and shut down crash should be fixed
  • You can now use register names in the debugger evaluation  ("M HL" instead of "M $1234", "BC HL" etc.)
  • G <val/reg/sym> to disassemble from address
  • -sound to disable audio
  • Timing fixed when no sound active.
  • -resid to enable loading and using of the reSID DLL. Note: not working yet - feel free to try and fix it! :)
  • -exit  to enable "EXIT" opcode of "DD 00"
  • -brk   to enable "BREAK" opcode of "DD 01"
  • -esc   to disable ESCAPE exit key (use exit opcode, close button or ALT+F4 to exit)
  • Fixed the Kempston Mouse interface, now works like the hardware.
  • Next registers are now readable (as per hardware)
  • local labels beginning with ! or. will now be stripped properly
  • Pressing CONTROL will release the mouse
  • Right shift is now also "Symbol shift"
  • 3xAY audio added - many thanks to Matt Westcott (gasman)  https://github.com/gasman/libayemu
  • Timex Hicolour added
  • Timex Hires added
  • Lowest bit og BLUE can now be set
  • SHIFT+ENTER will set the PC to the current "user bar" address
  • Raster interrupts via Next registers $22 and $23
  • MMU memory mapping via NextReg $50 to $57
  • Added 3xAY demo by Purple Motion.
  • Source for ay.dll and resid.dll included (feel free to fix reSID.DLL!)
  • You can now specify the window size with -w1, -w2, -w3 and -w4(default). If winow is less than 3x then the debugger is not available
  • Cursor keys are now mapped to 5678 (ZX spectrum cursor)
  • Backspace now maps to LeftShift+0 (delete)
  • DMA now available! Simple block transfer (memory to memory, memory to port, port to memory)
  • SpecDrum sample interface included. Port $ffdf takes an 8 bit signed value and is output to audio. (not really tested)
  • Added the lowres demo (press 1+2 to switch demo)
  • Updated Mouse demo and added Raster Interrupts
  • Added DMA demo
  • Added 3xAY music demo


  • register 20 ($14) Global transparancy colour added (defaults to $e3)
  • regisrer 7 Turbo mode selection implemented.
  • Fixed 28Mhz to 14,7,3.5 transition.
  • ULANext mode updated to new spec  (see https://www.specnext.com/tbblue-io-port-system/)
  • LDIRSCALE added
  • LDPIRX added


  • New Lowres layer support added (details below)
  • ULANext palette support added (details below)
  • TEST $XX opcode fixed


  • port $0057 and  $005b are now $xx57 and $xx5b, as per the hardware
  • Fixed some sprite rotation and flipping
  • Can now save via RST $08  (see layer 2 demo)
  • Some additions to SNasm (savebin, savesna, can now use: to seperate asm lines etc)


  • Swapped HLDE to DEHL to aid C compilers
  • ACC32 changed to A32
  • TEST $00 added


  • Added in lots more new Z80 opcodes (see below)
  • 128 SNA snapshots can now be loaded properly
  • Shadow screen (held in bank 7) can now be used


  • New debugger!!!  F1 will enter/exit the debugger
  • Sprite shape port has changed (as per spec) from  $55 to $5B
  • Loading files from RST $08 require the drive to be set (or gotten) properly - as per actual machines.
  •   RST $08/$89 will return the drive needed.
  •   Please see the example filesystem.asm for this.
  •   You can also pass in '*' or '$' to set the current drive to be system or default
  • Basic Audio now added (beeper)
  • New sprite priorities using register 21. Bits 4,3,2
  • New Layer 2 double buffering via Reg 18,Reg 19 and bit 3 of port $123b
wstecz26/12/2019 00:54
Dodatkowe informacje
... bez komentarza
Ostatnio dodane pliki
Newsy Linkownia Emulatory na PC Wideoteka Screenshoty Bajtek Reduks Ready.Run

© Try2emu 1999 - 2024 | Krzysztof 'Faust' Karkosza Kontakt Polityka Prywatności OWU