Friday, February 23, 2018

CSpect 1.10

New version of CSpect, complete with a new demo!!

CSpect changes
  • -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

Monday, February 05, 2018

CSpect 1.09

Couple of minor changes/fixes to CSpect

CSpect changes
  • 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.

SNasm changes (V2.0.11)
  • Changed SET (redefineable EQU) to DEF (as Z80 has a SET instruction!)
  • Number of bytes “lost” using the ALIGN command now reported

Monday, January 29, 2018

CSpect V1.08

Update to both CSpect and SNasm again.

CSpect changes
  • $123b is now readable
  • Fixed cursor disappearing

SNasm changes (V2.0.9)
  • Changed newline detection from 0x0D to 0x0A (what it should be these days…)

Saturday, January 20, 2018

CSpect 1.07

Update to both CSpect and SNasm this time.

CSpect changes
  • "Trace" text was still being drawn when window is too small.
  • "POKE" debugger command added
  • "New timings added to enhanced instructions
    • swapnib - 8Ts
    • mul - 8Ts
    • add hl,a - 8Ts
    • add de,a - 8Ts
    • add bc,a - 8Ts
    • add hl,$0000 - 16Ts
    • add de,$0000 - 16Ts
    • add bc,$0000 - 16Ts
    • outinb - 16Ts
    • ldix - 16Ts
    • ldirx - 21Ts
    • lddx - 16Ts
    • lddrx - 21Ts
    • ldpirx - 16Ts
    • ldirscale - 21Ts (still not on the hardware yet)
    • mirror a - 8Ts
    • mirror de - 8Ts
    • push $0000 - 19Ts
    • nextreg reg,val - 16Ts
    • nextreg reg,a - 12Ts
    • pixeldn - 8Ts
    • pixelad - 8Ts
    • setae - 8Ts
    • test $00 - 11Ts

SNasm changes (V2.0.9)
  • Updated error message format so Sublime text likes it more
  • DJNZ no longer throws errors on pass 1 (forward ref labels)
  • DJNZ and JR now report the correct line numbers on error
  • Fixed CP ‘a’ where character was being upper cased
  • Added “ALIGN <expression>” command for aligning tables and code to boundaries
  • Can now define a symbol on the command line (see manual) : -d SYM[=VALUE]

Saturday, January 06, 2018

CSpect V1.6

Very minor update to fix an issue with port $303b (the sprite select port). Turns out if you write a value 64 and above (sprites being in slots 0 to 63), the port forces the sprite index to be 0. It should really just take the lower 6 bits and "clock", but it currently doesn't. This "may" be addressed in a later firmware update, but for now I'm keeping the emulator as close as possible.
This fixes a 512 colour test cursor the devs have been using to test the hardware (and CSpect), it was a bug in the program but they're getting away with it due to this hardware check.

EDIT: Another minor change to fix the border colour.

  • Port $303B overflow detection added
  • Border colour should now work again. Paper palette offsets had shifted in line with the actual hardware

Friday, January 05, 2018

CSpect V1.4

Okay, colour palettes have been fixed and updated as per specs.

  • Palette formats - including lower blue bit
  • palette number register fixed
  • Support added for Reg 0x44

Wednesday, January 03, 2018

CSpect V1.03

DOH! Yeah... was bound to happen... quick update for ULA clipping. Stupid cut and paste error. To be honest...I'm expecting a couple more! :P
(another fix for missing AY.DLL)

  • Fixed ULA/LowRes clipping

Tuesday, January 02, 2018

CSpect V1.1 release

This one has been sitting in bits for a while, so I thought I'd finish it up and release it.
This version has cut down on the extended opcodes and is now using the (reduced) final list.

  • 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.
  • Layer 2 Clip Window support added (Reg 24)
  • Sprite Clip Window support added (Reg 25)
  • ULA Clip Window support added (Reg 26)
  • LOWRES Clip Window support added (Reg 26)
  • Layer 2 2x palettes added
  • Sprite 2x palettes added
  • ULA 2x palettes added
  • Register $243b is now readable
NOTE: SNASM now requires "opt ZXNEXTREG" to enable the "NextReg" opcode

Tuesday, September 26, 2017

CSpect V1.0!!

Okay, big update this one - so now declaring version 1.0! (coz why the hell not...)

  • 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 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)
  • Timex Hicolour added
  • Timex Hires added
  • Lowest bit of 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
  • 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 demo by Purple Motion.

Sunday, August 27, 2017

CSpect V0.9 released

Update to handle the new (updated) ULANext spec. Other changes listed below....

register 20 ($14) Global transparency 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
LDPIRX added