Z64K developer William McCabe has been hard at working updating Z64K and has reached a 2.0.1 release – [Build 20210509.1953]
The following changes have been made since I last updated this application.
- Updated undocument machine monitor IO command to dump c64/c128 registers. e.g. io d500 will dump detailed c128 mmu values. io by itself will dump values only for all io registers. note: the io command is still work in progress.
- Fixed broken stand alone SID Player
- Improved Spectrum +2A contented memory and border update timing. btime and contend NOP tests match real +3 Spectrum hardware
- C64/C128/VIC 20 – Reset machine if required for autoload
- Improve MEMPTR (Z80 WZ register) behaviour)
- Include Z80 WZ register value in debugger output
- Allow drop and drag of TZX files into ZX spectrum.
- Allow loading of version 2, mode 4 Z80 snapshots
- Fixed bug that could change value of the Z80 OUT (c),0 instruction if it was last instruction being executed before a reset.
- Updates to contended memory timing of Z80 IN and OUT port instructions.
- Adjust Spectrum +2A IRQ by 3 cycles. fusetest results match other emulators but btime is out by 3 cycles compared to other emulators. Need results from real hardware…
- Improved partial decoding of port 7ffd for Spectrum +2A
- TZX block type 2A and 33 implemented.
- Disable tape traps when correct ROM is not banked in.
- Minor adjustments to Spectrum +2A IRQ and contended memory timing
- Start of Spectrum +2A support.
- Option for mono output of beeper and AY. (On by default)
- Enabled saving of ZX spectrum z80 snapshot.
- Fixed a bug with loading z80 files. (A/F and A’/F’ were reversed)
- Support for loading of 128K Z80 files. (V2 hardware type 3 and V3 hardware type 4)
- Include ZX spectrum models 16K, 48K NTSC, and plus 2.
- Adjust border update by one cycle. Fixes BTIME timing
- Loading TAP and TZX via load program automatically resets the emulation (in preparation of autorun.) Loading TAP and TZX via Datasette menu does not automatically reset the emulation (required for multi tape demos/games)
- Improved Z80 port access timing. Fusetest passes all tests in Spectrum 48K and Spectrum 128K.
- TZX Block type 15 support.
- Minor update to ULA snow effect.
- Tape auto stop and trap options.
- Automatically press play when using Spectrum tape fast load.
- Set Spectrum 128 clock to correct speed.
- Set tape block pause time to correct value.
- Improved TZX file support. Included TZX files in tap loader
- Fixed broken .sna file support for ZX Spectrum
- Included missing IR contend memory cycles. Updates to snow effect.
- Implemented TZX tape file support. (incomplete – only available under load program at this stage but will populate the cassette settings preview panel when loaded.)
- Minor tweak to snow effect
- Snow effect extends over entire ULA memory access cycles
- Can save ZX spectrum settings
- Option to enable/disable snow effect.
- Added ULA snow effect
- Fix port timing of Z80 OUTI, OUTD, OTIR and OTDR instructions. ULA test scroll17 displays without jitter.
- Enabled drag and drop of files to ZX spectrum.
- Writes to multiple ZX spectrum IO ports at same time allowed. Displays scroll text above screen for scroll17 ULA test.
- Slightly adjust default ZX spectrum screen position.
- Improved reading of floating bus during contended IO.
- Fix bus timing of LD(IX+d),n and LD(IY+d),n Z80 instructions. FPGA48all test displays correctly
- Improved single stepping of instructions during ZX Spectrum contended memory.
- show correct disassembly of indexed ALU Z80 instructions
- Improved memory bus timing of EX (SP), HL.
- Fixed debugging of memory when switching to ram1 with the machine monitor bank command
- Fixed disassembling of LD (HL),r z80 instructions.
- Improved timing of ZX spectrum border relative to screen.
- Implemented undocumented z80 instructionOUT (c),0 (ed71)
- Show current TAP block in cassette settings.
- Updated ZX spectrum icon.
- Decrease voltage level of ZX spectrum tape data playback through speaker.
- Disable tape player motor and sound from tape when MIC is reset for ZX spectrum.
- Fixed screen size of ZX spectrum 128K.
- ZX spectrum tape rewind and fast forward.
- Added option for normal load of TAP files.
- Use correct ROM for Spectrum 48K.
- Added option for ZX Spectrum 128.
- Implemented Z80 interrupt mode 0.
- Added ZX spectrum cursor key keyboard mapping
- Improve sound output of ZX Spectrum AY on higher sample rates
- Fix floating bus behaviour for arkanoid. Sound no longer has unintended noise.
- Fixed default gain for SID. It was set as though digimax was connected by default meaning sound was playingat half the level it should have been.
- Increased portaddress range of valid read/write to AY registers
- Added awork in progress AY option for ZX spectrum.
- Allow loading of ZX Spectrum tap files. No autoload at the moment, must use load”” enter after loading tap file(using the following keyboard sequence:- j, shift p, shift p, enter)
- All ZX spectrum timing tests pass with uncontended and contend memory. Sidewize plays without flicker
- BOTH versions of Z64K. Fixed loading of all .d71 disks images. Some were failing to load correctly if the BAM double sided flag was not set to $80.
- Updated c128 Z80 port read and port write behaviour
- Improved ZX spectrum beeper output
- Fixed broken C64 CP/M
- Improvements to ZX spectrum contended memory timing.
- Improved ZX spectrum floating bus behaviour. Arkanoid works.
- Updated t-state timing of Z80 RLD, RRD and EX (SP),index instructions.
- Updates to ZX Spectrum ports
- Updated Z80 flag behaviour for undocumented bits. All of Patrik Rak’s Zilog Z80 Test suite including programs including MEMPTRpass.
- Fixed monitor dumping of REU memory.
- Updated flag behaviour for Z80 CCF and SCF instruction.
- Updated some internal Z80 behaviour. MEMPTR test program only fails 5 tests now.
- Implemented undocumented Z80 Flag behaviour. ZEXALL passes all tests.
- Z80 instructions INI, INIR,IND,INDR,OUTI,OTIR,OUTD,OTDR are now cycle exact
- Fix copy highlighting length of Z80 monitor debugging
- More improvements to timing of ZX Spectrum contended memory.
- Z80 instructions CPI,CPIR,CPD, and CPDR are now cycle exact.
- Improved ZX Spectrum keyboard handling to handle all high byte address port range
- More improvements to ZX Spectrum contended memory timing.
- Improved ZX Spectrum contented memory and contented IO. Full screen raster in Shock Megademo 3 shows correctly. ULA test 3 and ULA test 3 modified show same output as reference screen from real ZX spectrum.
- Improved floating bus behaviour. Floatspy passes self test as OK.
- Place 0xff on the bus for ZX spectrum Z80 interrupt mode 2
- Implemented ZX Spectrum floating bus behaviour for disconnected IO reads.
- Greatly improved ZX spectrum contended memory timing.
- ZX spectrum map cap shift to left-CTRL in addition to left-SHIFT. Shift would sometimes get stuck when pressing both left and right shift together.
- Improved Z80 HALT behaviour
- Implemented some contended memory behaviour of the ZX Spectrum
- Add Custom and Gamepad joystick options for ZX Spectrum.
- Improved Z80 instruction cycle exacttiming.
- Fix number of raster lines for ZX Spectrum. It was one less than it was meant to be.
- Correctly set Interrupt flag when loading z80 files.
- Fixed Kensington direction mapping.
- Kensington joystick support using numpad direction keys (0=fire).
- Added ZX spectrum Beeper sound.
- Partial v2 z80 file format support for ZX spectrum.
- Updated some reading of io port behaviour. Fixes unintended animation in Fairlight and Fairlight 2
- Basic z80 file support. (v1 only). Tested with Firelord and Fairlight. Both are in aplayable state.
- ZX spectrum screen timing adjustments.
- Backspace key
- Enabled changing of zx spectrum border color
- Assign correct attribute value to characters. Flashing cursor works now.
- Enabled ZX spectrum keyboard.
- Start of ZX Spectrum proof of concept emulation. Loads up to “1982 Sinclair Research Ltd” screen. No input devices yet. Only minimal interaction available using machine monitor. Still a major work in progress.
- Fixed bug with monitor mem command if no addresswas included.
- Improved speed and display of memory and REU dumps in monitor
- Included monitor reudump (rd) command.
- Fixed monitor input when switching between emulators.
- Centre windows when they arefirst opened.
- Remove some debugging code that triggered monitor during Z80 IO access.
- Update to REU floating bus behaviour.
- Set correct REU size when using command line options
- Set flags correctly for LD A,I and LDA A,R (needs testing)
- Fix bug with Z80 RES/SET instructions that got broken in previous release
- Fix disassembly of Z80 DDCB and FDCB instructions
- Implemented missing Z80 instructions JP (IX) and JP (IY)
- Implement missing Z80 instructions ld a,i (ed57) and in a,(*) (db). Note: in a,(*) is not currently cycle exact so may cause issues with programs that require exact timing. This will be fixed in next release. Both of these instructions in addition to the HALT command require furthertesting.
- Fixed C128 that got broken in 10 February release
- Set default emulation or application via General settings in Global settings
- Set default value of REU floating bus value to 255
- Slight improvement to REU timing. Test b3 of REU Timing 2 passes.
- Improved VIC-II reset code and NTSC/PAL switching to prevent the emulator from ever being in an invalid state that couldpotentially cause it to crash.
- Fixed bug where VICII could crash emulator while doing a hard reset. Always crashed when doing a hard resetusing 50/60Hz mode.
- Save state of 50/60 Hz.
- Include emulated computer name in window title bar
- Show “paused” in title bar when emulator is paused.
- Save Custom IC Glue Logic
- Send labels from Assembler to emulated computer.
- Implemented Z80 HALT command. *requires testing.
- Fixed bug that could crash assembler when loading source code from file.
- Confirm before exiting
- Stand alone Assembler option
- Enabled loading of t64 files into memory. Need to type RUN and ENTER to execute program.
3 February – Version 2 of Z64Konly
- Included option for Custom IC Glue Logic available in the VICII section of model settings. Undead shows “hidden” text.
2 February – Version 2 of Z64K only
- Updated C128 REU to use bits 7 and 6 of register d506 for DMA target. Fixes replays in Volley for Two when using REU as the extended replay method.
31 January – Version 2 of Z64K only
- Allow use of shift key for selection of text in assembler in combination with mouse or arrow keys
- Included more statistics of assembled program in bottom assembler status bar.
- An example of what can be compiled with the Assembler is d030tester2.0 for the c128.
- Fixed bug with assembling indirect JMP. Use official opcodes for assembling NOP and SBC #imm
- Assembler – Ignore assign label ‘=’ inside double quotes
- Assembler – Fix formatting when line with label and command on same line has leading whitespace
- Assembler – Ignore comment character (;) and command delimiter character (:) when in quotes
30 January – Version 2 of Z64K only
- Bug fix toassembler !byte command
- Assembler detects more errors in source
- Assembler available via the Applications menu.
24 January – Version 2 of Z64K only
- Fixed bug that was preventing assembling of indirect indexed and indexed indirect instructions in the machine monitor
3 January – Version 2 of Z64K only
- Command line option -vdc will start in 80 column mode for c128 emulation
2 January – Version 2 of Z64K only
- -moncommands <filename> command line option –
Happy NEW YEAR!!!
31 December – Version 2 of Z64K only
- Load dragged and dropped and autoload prg in c128 mode if emulation was in previously running in c64 mode. Fixes internal testbench running d030 tests.
30 December – Version 2 of Z64K only
- Minor change to exit screenshot support
29 December – Version 2 of Z64K only
- Save screenshots on exit of c128 mode for TestBench
- Screen shot options available in media settings. TestBench screenshots are saved in the format VICE testbench uses for it’s test suite. 1:1 pixel default (aspect ration not maintained), 4:3 aspect ratio – Use X or Y as the base dimension.
28 December – Version 2 of Z64K only
- C128 extra keys options available in model settings
- Enable Copy from screen for Version 2 of Z64K.
- Fix copy from VDC screen for Version 1 of Z64K.
- Add CPU multiplier for C64, C128 and VIC 20 of Version 2 of Z64K. Available under speed settings. Speed up games like Fairlight and Driller without affecting timing of music etc..
25 December – Version 2 of Z64K only
- Updated some CIA shift behaviour. All VICE test repository CIA shift register related tests pass now.
24 December – Version 2 of Z64K only
- Disable VIC-II grey dot for C128 emulation when running testbench.
- Fixed issue with testbench scripts using c64 emulation.
- Enable drives when testbench “debugcart” option is enabled. Allows drive via tests to pass.