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