- Palette formats - including lower blue bit
- palette number register fixed
- Support added for Reg 0x44
Friday, January 05, 2018
CSpect V1.4
Okay, colour palettes have been fixed and updated as per specnext.com specs.
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)
(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.
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
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) https://github.com/gasman/libayemu
- 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 https://www.specnext.com/tbblue-io-port-system/)
LDIRSCALE added
LDPIRX added
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 https://www.specnext.com/tbblue-io-port-system/)
LDIRSCALE added
LDPIRX added
Saturday, August 26, 2017
Update to SNasm
A couple of important fixes for my SNasm assembler, so I thought I'd release an updated version..
Note: This is newer than the version in the CSpect bundle.
Fixed ld (ix+UNDEFINED),a (and IY)
Fixed locals being defined after an equate
Fixed (IX+forward_label) issue
SNA saving now saves some default registers so you can call ROM stuff better
XOR A,REG/IMM now throws an error
SUB A,REG/IMM now throws an error
Please remember SNasm's Z80 mode is still very new, so there will still be issues with them. If you find any, please let me know.
Enjoy!
Note: This is newer than the version in the CSpect bundle.
Fixed ld (ix+UNDEFINED),a (and IY)
Fixed locals being defined after an equate
Fixed (IX+forward_label) issue
SNA saving now saves some default registers so you can call ROM stuff better
XOR A,REG/IMM now throws an error
SUB A,REG/IMM now throws an error
Please remember SNasm's Z80 mode is still very new, so there will still be issues with them. If you find any, please let me know.
Enjoy!
Monday, August 21, 2017
CSpect V0.8 released
New Lowres layer support added (see readme for details)
ULANext palette support added (see readme for details)
TEST $XX opcode fixed
Enjoy!
ULANext palette support added (see readme for details)
TEST $XX opcode fixed
Enjoy!
Saturday, August 19, 2017
CSpect V0.7 released
port $57 and $5B are now mapped as $xx57 and $xx5B
Fixed a couple of sprite flipping and rotation issues
Can now use RST $08 to save (see the layer 2 demo)
Some more additions to SNasm - see docs
Enjoy!
Fixed a couple of sprite flipping and rotation issues
Can now use RST $08 to save (see the layer 2 demo)
Some more additions to SNasm - see docs
Enjoy!
Wednesday, August 16, 2017
Shock! CSpect V0.6
Okay... shock... new version.
HLDE has been renamed to DEHL, and ACC32 has been renamed to A32
I've also added the new TEST $XX opcode
And I've added SAVEBIN "filename",start,len
and I've added SAVESNA "filename",PC [,STACK]
'*' as current drive now working properly
HLDE has been renamed to DEHL, and ACC32 has been renamed to A32
I've also added the new TEST $XX opcode
And I've added SAVEBIN "filename",start,len
and I've added SAVESNA "filename",PC [,STACK]
'*' as current drive now working properly
swapnib ED 23 A bits 7-4 swap with A bits 3-0 mul ED 30 multiply HL*DE = HLDE (no flags set) add hl,a ED 31 Add A to HL (no flags set) add de,a ED 32 Add A to DE (no flags set) add bc,a ED 33 Add A to BC (no flags set) add hl,$0000 ED 34 LO HI Add A to HL (no flags set) add de,$0000 ED 35 LO HI Add A to DE (no flags set) add bc,$0000 ED 36 LO HI Add A to BC (no flags set) outinb ED 90 out (c),(hl), hl++ ldix ED A4 As LDI, but if byte==A does not copy ldirx ED B4 As LDIR, but if byte==A does not copy lddx ED AC As LDD, but if byte==A does not copy, and DE is incremented lddrx ED BC As LDDR, but if byte==A does not copy fillde ED B5 Using A fill from DE for BC bytes ld hl,sp ED 25 transfer SP to HL ld acc32,hlde ED 20 transfer HLDE into ACC32 ld hlde,acc32 ED 21 transfer ACC32 into HLDE ex acc32,hlde ED 22 swap ACC32 with HLDE inc hlde ED 37 increment 32bit HLDE dec hlde ED 38 increment 32bit HLDE add hlde,a ED 39 Add A to 32bit HLDE add hlde,bc ED 3A Add BC to 32bit HLDE add hlde,$0000 ED 3B LO HI Add $0000 to 32bit HLDE sub hlde,a ED 3C Subtract A from 32bit HLDE sub hlde,bc ED 3D Subtract BC from 32bit HLDE mirror a ED 24 mirror the bits in A mirror de ED 26 mirror the bits in DE push $0000 ED 8A LO HI push 16bit immidiate value popx ED 8B pop value and disguard nextreg reg,val ED 91 reg,val Set a NEXT register (like doing out($243b),reg then out($253b),val ) nextreg reg,a ED 92 reg Set a NEXT register using A (like doing out($243b),reg then out($253b),A ) pixeldn ED 93 Move down a line on the ULA screen pixelad ED 94 using D,E (as Y,X) calculate the ULA screen address and store in HL setae ED 95 Using the lower 3 bits of E (X coordinate), set the correct bit value in A test $00 ED 27 And A with $XX and set all flags. A is not affected.
Download: CSpect Emulator
Tuesday, August 15, 2017
CSpect V0.5
Will just say.... These are all subject to change. Looks like HLDE will swap to DEHL to help compilers, and ACC32 changes to A32. So be aware when using.
Okay, this this (might) be the last one for a little - I really want to carry on with my game, and not get drawn into doing emulators and assemblers all the time!
There are also several new Z80 opcodes to play with! My included assembler will assemble these correctly for use in the emulator. There are a few more to come.....
Okay, this this (might) be the last one for a little - I really want to carry on with my game, and not get drawn into doing emulators and assemblers all the time!
There are also several new Z80 opcodes to play with! My included assembler will assemble these correctly for use in the emulator. There are a few more to come.....
swapnib ED 23 A bits 7-4 swap with A bits 3-0 mul ED 30 multiply HL*DE = HLDE (no flags set) add hl,a ED 31 Add A to HL (no flags set) add de,a ED 32 Add A to DE (no flags set) add bc,a ED 33 Add A to BC (no flags set) add hl,$0000 ED 34 LO HI Add A to HL (no flags set) add de,$0000 ED 35 LO HI Add A to DE (no flags set) add bc,$0000 ED 36 LO HI Add A to BC (no flags set) outinb ED 90 out (c),(hl), hl++ ldix ED A4 As LDI, but if byte==A does not copy ldirx ED B4 As LDIR, but if byte==A does not copy lddx ED AC As LDD, but if byte==A does not copy, and DE is incremented lddrx ED BC As LDDR, but if byte==A does not copy fillde ED B5 Using A fill from DE for BC bytes ld hl,sp ED 25 transfer SP to HL ld acc32,hlde ED 20 transfer HLDE into ACC32 ld hlde,acc32 ED 21 transfer ACC32 into HLDE ex acc32,hlde ED 22 swap ACC32 with HLDE inc hlde ED 37 increment 32bit HLDE dec hlde ED 38 increment 32bit HLDE add hlde,a ED 39 Add A to 32bit HLDE add hlde,bc ED 3A Add BC to 32bit HLDE add hlde,$0000 ED 3B LO HI Add $0000 to 32bit HLDE sub hlde,a ED 3C Subtract A from 32bit HLDE sub hlde,bc ED 3D Subtract BC from 32bit HLDE mirror a ED 24 mirror the bits in A mirror de ED 26 mirror the bits in DE push $0000 ED 8A LO HI push 16bit immidiate value popx ED 8B pop value and disguard nextreg reg,val ED 91 reg,val Set a NEXT register (like doing out($243b),reg then out($253b),val ) nextreg reg,a ED 92 reg Set a NEXT register using A (like doing out($243b),reg then out($253b),A ) pixeldn ED 93 Move down a line on the ULA screen pixelad ED 94 using D,E (as Y,X) calculate the ULA screen address and store in HL setae ED 95 Using the lower 3 bits of E (X coordinate), set the correct bit value in A
Download: CSpect Emulator
Subscribe to:
Posts (Atom)