Re: New release of SpecEmu
Posted: Sun Dec 04, 2022 10:30 am
The community forum for all Sinclair users
https://spectrumcomputing.co.uk/forums/
From Changelog.txt:
v3.2 build 04/12/22
-------------------
Improved snow effect emulation (thanks, Weiv)
Fixed "tapeinvert" command (in command parser) to invert bit 6 of IN #FE only with tape input (thanks, cngsoft)
Added a list of some of the debugger's command parser commands into the Docs folder
Added a few examples for the conditional breakpoints into the Docs folder
v3.2 build 01/10/22
-------------------
Fixed AY noise frequency running at half clock speed. 20+ years to spot it..
From Debugger command parser.txt:Not really useful yet...
PC, SP
IX, IY
IXH, IXL, IYH, IYL
AF, BC, DE, HL
A, F, B, C, D, E, H, L
AF', BC', DE', HL'
A', F', B', C', D', E', H', L'
MPTR
IR
I, R
IM, IFF1, IFF2
MRA, MWA - mem read addr, mem write addr
MRV, MWV - mem read value, mem write value
PRA, PWA - port read addr, port write addr
PRV, PWV - port read value, port write value
- can use IN, OUT in place of PRA, PWA
P0 - page at #0000 (0-7 or #FF for ROM)
P1 - page at #4000 (0-7 or #FF for ROM)
P2 - page at #8000 (0-7 or #FF for ROM)
P3 - page at #C000 (0-7 or #FF for ROM)
PAGING - combination of P0-P3 combined in 16 bits, so only #F for ROM bits
ie: PAGING = #F527 is ROM at #0000, page 5 at #4000, page 2 at #8000, page 7 at #C000
TS - current T-State counter (up to 65535 only :p)
SNOW - snow effect active? (0 or 1)
SCREEN - active display on 128K models. (0 or 1)
BORDER - current border colour (0-7)
FRAMEINTS - current acknowledged interrupts counter (=1 at next interrupt in current frame or next interrupt after EI, > 1 for next retriggered interrupt)
FDC0 - FDC8 - current FDC parameters specific to individual +3 drive controller commands.
Currently all breakpoint conditions can only be specified as conditions that must all be True (as if all results were ANDed together, but without an AND operator)
Examples:
pc>=32768
hl=de b>128 b <= 255
(23560)=13
(32768.w) = ix iy!=23610
All can be given as one-shot "stop" breakpoints in the command parser, overriding all other conditions until the debugger next opens
stop snow=1
stop pc=0
stop (pc)=#c7 (RST 0 about to be executed)
stop (pc.w)=#b0ed (LDIR about to be executed, little endian!)
stop (pc.w)=#b0ed de>=49152 (LDIR about to be executed, check for legal DE write address range)
stop mwa>=23296 mwa<23552 (if you wanted to find code inadvertently writing to a mem range)
stop P3=7 mwa>=#c000 (what's writing to bank 7 in error)
copymem src,dest,count
fillmem dest,size,value
out port,byte
basic - (attempts to..) return to BASIC leaving mem mostly intact
new ramtop - as CLEAR ramtop, NEW; leaves mem intact above ramtop but any BASIC prog is lost.
set tstates value - change current tstate count in the frame
set intlen value - change the interrupt period for the current machine
keyb - simple list of keyboard ports
ay - lists the currently selected AY register and all AY register values
master "program name" 48|128 filename.tap (if zx7.exe is in SpecEmu's folder)
tk - lists current values of port $FC and $FF for TK-90x
hz - refresh rate of current machine
tapeinvert - invert tape polarity
stop <breakpoint conditions> - creates a conditional breakpoint which overrides all other conditional breakpoints until the debugger next opens
slowmo - creates a false interrupt delay when writing to display memory (see how some games draw the screen)
bw - sets black & white mode (or supply an attribute value parameter), use along with slowmo to see screen drawing at work
asm <opcode> - if pasmo.exe is in the SpecEmu folder, assembles an opcode at the address at the top of the disassembly window
ops - opcodes executed since last time the debugger opened
z80v1 - saves 48k .z80 snaps in v1 format
z80v3 - duh
Seems to be true. Older version v3.2 build 01/10/22 works OK, but not latest v3.2 build 04/12/22 anymore. (I tried with "Retro-Bit Official SEGA Mega
didn't you know about the unreal emulator ?
Code: Select all
examples:
(out+1) | (in+1) - in/out to any port
(in & 8001) == 0 - read keyboard row from <B> to <SPACE>
!(out & 1) - any out to port #FE
(out & 0FF)==0BB && (val==0F3 || val==0F4) - reset General Sound
(out & 0FF)==0FD && (val&7)==3 - set 3rd memory page
(FD & 7) == 3 - the same
M(pc)==0CB && pc->1 >= 10 && pc->1 <= 17
- set break on executing instruction "rl <reg>"
Well, actually I didn't. My problem with Unreal emulator is that it is a real behemoth with hundreds of configuration options, emulating dozens of Russian clones and using dozens of keyboard shortcuts. Or at least I remembered it so. So generally I stick to simple friendly stuff like Spectaculator. Or use things like Spin or SpecEmu when Spectaculator misses something (like advanced breakpoints).didn't you know about the unreal emulator ?
works for me.
v3.2 build 18/02/23
-------------------
Fixed +3 floating bus (again)
Fixed a +3 port contention bug (thanks, azesmbog and Arjun Nair)
Be prepared!edjones wrote: ↑Sat Mar 04, 2023 11:35 am Seems keybase is no more and SpecEmu lives here atm:
https://1drv.ms/u/s!AmOOhLw8lDDyhYYr4AAs2_mKFGtn6Q
Previous version (from 2022.09) isn't.
Where did you get this info?edjones wrote: ↑Sat Mar 04, 2023 11:35 am Seems keybase is no more and SpecEmu lives here atm:
https://1drv.ms/u/s!AmOOhLw8lDDyhYYr4AAs2_mKFGtn6Q