The ZX Spectrum Emulator for Macintosh

 
------------------------------------

Version History

Manual  |  Version History


Version 1.0.i (first public release)
  Compiling with Think C 6.0 under System 7.1 on my LC III
Version 1.0.n
  Corrected loading of .z80 version 1.45 snapshots 
  Implemented loading of .z80 version 2.01 snapshots 
(48k Specci only)
  Changed .z80 file type to " Z80" (same as MacSpecci uses)
  Changed .sna file type to "Snap" (same as MacSpecci uses)
Version 1.0.p
  Helpscreen with Specci keyboard picture added
  Unused and DAA related flags are now preserved with push/pop af
Version 1.0.r
  New "about" box for English and German version
Version1.0.s
  Now compiling with Think C 7.0 under System 7.1.2 on my new PPC 6100 
  (Think C 7.0 still crashes under System 7.5 like version 6.0 did...)
Version 1.0.t
  Windows menu added
  Select language (english/german) from menu
  Tape recorder window now with normal title bar
• Support for 8 bit indexed color displays
Version 1.0.u  
  Compiled with Think C 7.0.4 under System 7.5
  Now checking for system requirements at start up
  Decided to remove all commercial distribution restrictions
Version 1.0.v (public release)
• Added preferences
  Windows are no longer generated from 'WIND' templates
Version 1.0.w
  Fixed a bug in the parity calculation
  Added emulation of IM0 (though there seems to be no real need for this...)
  Fixed event response delay when z80 program crashes with interrupts off
Version 1.1.0
  Replaced old tape file format by .tap file format of Gerton Lunter's Z80
  Replaced Specci keyboard scan with Bo Lindbergh's Specci keyboard pict
  Added save snapshot in .Z80 file format
Version 1.1.1
  Modified logic for external command calls to speed up i/o commands
  Implemented single step trace mode for the Z80 engine
  First try to check my Z80 engine against another interpreter. 
Version 1.1.2
  Added optional code for ROM write protection
  Added optional code to generate debugger information for some instructions
  Added optional code for "used instruction" and "executed location" profiles
  Added code for debugger information on first use of instruction / location
  Shortened source of Z80 engine drastically by using a lot of macros
  Up to 3 missed interrupts are now delayed => better timer results
Version 1.1.3
  Fixed error with bit 7 of r register
  Fixed error with iff2 on normal interrupt processing
  Fixed problem with notebooks going to sleep mode (thanks to Fabrizio Oddone)
Version 1.1.4
  Added a lot of illegal instructions with prefix 0xED
Version 1.1.5
  Removed weird bug which triggered nmi after restarting halted Z80
  Now suspending the Z80 while Mac Spectacle is not the frontmost application
  Added a lot of illegal instructions with prefix IX / IY
Version 1.1.6 (public release)
  Removed new bugs in Z80 engine which were introduced in version 1.1.2
  Removed bug in ex de,hl after ix/iy prefix
Version 1.1.7
  Added Apple-W to close top window
  Removed bug in ld sp,nn opcode  ->  virus.sna now o.k.
  Reset now releases halt instruction with interrupts off
Version 1.1.8
  Better random generation for r register
  Optional exact r register emulation in Z80 engine
  Optional exact T cycle timing in Z80 engine
Version 1.1.9
• New menu option to limit emulation speed to 100%
Version 1.1.a
  Revised exact speed option
  Added display of real speed [%] in cycle counting version
  DAA should now work after index register operations too (ever needed?)
Version 1.1.b
  Combined fast and exact speed Z80 engine into a single version
Version 1.2.0
• First version with sampled sound output!
Version 1.2.1
  Fixed severe bug in Do_Info() calls for illegal opcodes
Version 1.3.0
• Compiled successfully with MW CodeWarrior (excluding assembler coded screen update)
Version 1.3.1
  High speed screen update routine rewritten in C (only very slight decrease in speed)
Version 1.4.0
• Z80 engine rewritten in C - Jee, it works! - Now PPC native!
Version 1.4.1
  Now patching ExitToShell to remove ticker routine (thanks to Jose Soares)
  Discarding frames missed during PollEvents()
  Now preserving windows position after closing them
  Revised preferences handling
Version 1.4.2
  Removed bug in im2 handling in PPC version, now most games run ok
Version 1.4.3
  Added Do_Info() calls etc. in PPC version
  Added ROM write protection in PPC version (-> Starquake, Fred)
Version 1.4.4
  Compared Z80 engines of 68k and PPC version: 1 x bug, 1 x timing, 1 x undocumented flags 
Version 1.4.5
  Separate preferences for PPC and 68k version
  New option in 68k version to use C coded Z80 engine (same as PPC version but slow!)
Version 1.4.6 (public release)
  Improved screen refresh: test for visibility, hiding of mouse arrow
  Load ROM added (-> Shadow of the unicorn)
  tried to use offscreen bitmaps ... failed!
Version 1.4.7
  Display of name of loaded snapshot in windows drag bar
  Menu entry to select sampling rate of sound output
  Removed bug in saving .z80 files which didn't release temporary memory
  Reduced memory requirement of display driver
Version 1.4.8
  Load and save .scr screenshots
  Save .rom ROM image file
  Save .pict screenshot no longer separate menu item (included in standard 'save' menu item)
  Fixed patch for PPC version of interrupt trigger routine (thanks to Jose Soares)
Version 1.4.9
  Improved screen update routines, added 32 bit true color screens support
  "about" box now 'programmed' and no longer a simple pict, saving 24 kByte disc space
  ShieldCursor() now works, don't know why it didn't work prior...
  Custom icon for .scr files
Version 1.5.0
• Offscreen pixmap used to refresh partially hidden screens
  Fast screen update for b&w screens
Version 1.5.1
  Revised handling of windows menu (more conformant with Mac GUI guide lines)
  Now fat binary instead of two versions
Version 1.5.2
  Highres screen update mode
Version 1.5.3
  Combined ear and mic sound output
  Highres border update
Version 1.5.4
• Secondary monitors are now handled correctly
  The total of user and programmer friendlyness of any given OS is less or equal to 100%.
  The user friendlyness of Apple Macintosh computers is 95%.
  Unluckily i have decided to program....
Version 1.5.5 (public release)
  Revised keyboard handling in 'game' mode; added pict to keyboard manual
  Kempston joystick interface emulation in 'game' mode
Version 1.5.6 - 1.5.8
  A lot of improvements but i got stuck while i was implementing the paged memory model.
  So i reset the project to version 1.5.5
Version 1.6.0
  Screen magnification 3 and 4
  Improved b&w display
• All opcodes decoded, no unsupported opcodes in C coded Z80 engine
Version 1.6.1
  Added debugging stuff (info calls and profiling)
Version 1.6.2/1.6.3
  Cleaned up source: preparation for paged memory model rework!
  Removed bug in save pict routine, which was introduced in an earlier version
Version 1.6.4
  Now using Infinity windoid WDEF for tape recorder window
  Removed bug in console which did not released memory when the console window was closed
Version 1.7.0
• Paged memory model implemented in C coded Z80 engine; speed decreases to 75%
Version 1.8.0
• AY-3-8912 sound chip emulation
Version 1.8.1
  Fuzzed around with the sound chip emulation - didn't improve
  Removed bug in quad sized 1/2/4 bit deep screen update
  Added INI, IND, OUTI, and OUTD to the 68k coded Z80 engine (oops!)
  Emulation of IN(0xFF) included -> Target Renegade
Version 1.8.2 (intermediate public release)
  Option to switch off multi tasking and black out rest of screen
  Profiling and info calls re-implemented in 68k coded z80 engine
Version 1.8.3
  .z80 version 3.0 files now supported
Version 1.8.4
  replaced quick_strings by strings (you won't notice that, though)
  replaced console window by terminal window -> resizable
  Detected new introduced error in best emulation: probably s.th. with the interrupt handling
  Clicking in keyboard pict triggers corresponding keys
  Select "Load..." with "shift" or "option" pressed to open any file ignoring file type
Version 1.8.5
  Hunted and extinguished new error in best emulation (LD L,H garbaged... grrr!)
Version 1.8.6
  Hunted new error in better emulation, found one, but there is still another ... grrr!
Version 1.8.7
• Worked on the tape recorder:
  create empty tape
  erase blocks on tape
  save to arbitrary position
  verify block
  copy deck (dual tape drive)
Version 1.8.8
  Predictable r register guessing in not exact r register emulation 
  -> surprisingly error in 'better emulation' no longer shows up!
Version 1.9.2 (public release)
  Reworked from garbaged source
  Sound output modified to work on MacOS 8.xx
Version 1.9.3
• Removed bug in paged memory handling of zx 128 (yes, there really was a bug!)
  thanks to Jonathan!
Version 1.9.4
  Shortcut for keybord mode, ROM writable switch, no reset after loading buggy .scr files.
Version 1.9.5
  Union Jack for british language selection, +2 roms added. thanks to Andrew Owen.
Version 1.9.6
• finally found that bug in the 68k assembler coded z80 engine (aka 'better' emulation) 
  which haunted Mac Spectacle since version 1.8.6. it was a bogus macro definition for BC register access 
  which used HL instead... It seems that BC is not often used as a single 16 bit register.
Version 1.9.7
  Bug in LDDR emulation removed, which under very rare circumstances crashes the whole Mac.

back to top   |  Manual   |  Version History