# zxsp - The Sinclair ZX Home Computer Simulator

# History

[<prev] [next>]

| ## Done ### Current development version 0.7.4 pre 1 After i actually got some requests for it, i made zxsp compile on Lion. It is not very stable, but it's better than nothing. ### 2008-06-24 - Version 0.7.3 pre 5 ##### New in the development versions: Jupiter Ace: generic memory, audio, video Jupiter Ace: save to & load from .Snapshots: .TAPtap file Modifier keys: ZX80ZX80: generic memory, audio, video Modifier keys: ZX81ZX81: generic memory, audio, SLOW Done: 2000 – 0.1.8 and 0.2.2and FAST mode video ZXSP: init with .Snapshots: .TAPtap file / instant .Snapshots: .TAPtap loader verified Modifier keys: ZX80ZX80: init with .o file / instant Snapshots: .TAPtape i/o / Snapshots: .TAPtape i/o to/from audio file / load from Snapshots: .TAPtape Modifier keys: ZX81ZX81: init with .p file / instant Snapshots: .TAPtape i/o / Snapshots: .TAPtape i/o to/from audio file / load from Snapshots: .TAPtape Modifier keys: ZX81ZX81: 32K MMU registers for the +128K / +2: RAM $8000 MMU registers for the +128K / +2: RAM $4000 MMU registers for the +3 / +2A: RAM $8000 MMU registers for the +3 / +2A: RAM $4000Ram support Fixed: save Snapshotssnapshot ### 2008-05-26 - Version 0.7.2 ##### New in this version: Updated: Included Paul Farrow's newest emulator Snapshots: .ROM MMU registers for the +128K / +2: ROM $0000roms for Modifier keys: ZX80ZX80 Done: 2000 – 0.1.8 and 0.2.2and Modifier keys: ZX81ZX81 New: Jupiter Ace emulation using Paul Farrow's emulator Snapshots: .ROM MMU registers for the +128K / +2: ROM $0000rom. New: Bi-Pak ZON X Done: 2000 – 0.1.8 and 0.2.2and Bi-Pak ZON X-81 Soundsound module for Modifier keys: ZX81ZX81 Done: 2000 – 0.1.8 and 0.2.2and Modifier keys: ZX SpectrumZX Spectrum New: stereo output New: volume slider in "Tape recorder: OptionsOptions" menu. (Requires OS X 10.5) New: record Done: 2000 – 0.1.8 and 0.2.2and replay audio files. (Requires OS X 10.4) New: (try to) load Snapshots: .TAPtape files from "Open..." menu item New: .TAP: Instant loading ".tap" filesinstant load from Done: 2000 – 0.1.8 and 0.2.2and save to Snapshots: .TAPtape files in the "Tape recorder: OptionsOptions" menu Updated: load pzx files v1.0 Changed: behaviour of "record" button in the Tape recordertape recorder New: context menu in Tape recordertape recorder for "new Snapshots: .TAPtape", "open Snapshots: .TAPtape" Done: 2000 – 0.1.8 and 0.2.2and "eject Snapshots: .TAPtape" New: context menu in Keyboardkeyboard panel for selection of Game or Basic and Game mode: Basic modeBasic mode Changed: moved "Check Update" to application menu Changed: "Preferences: Auto start/stop tape for loading Options: Auto start/stop tape recorder for loading Options: Auto start/stop tape recorder for saving Preferences: Auto start/stop tape for loadingauto start/stop tape" combined for load Done: 2000 – 0.1.8 and 0.2.2and save (with the new "record" button behaviour) Removed: "waitstates" item in "Tape recorder: OptionsOptions" menu. Setting is still available in ULA panel Fixed: misc. bugs ### 2007-07-28 - Version 0.7.1 ##### New in this version: Mouse: Kempston Mouse InterfaceKempston mouse interface emulation. Saving ".Snapshots: .Z80z80" Done: 2008-05-26 - Version 0.7.2 Done: 2007-07-28 - Version 0.7.1 Done: 2007-05-13 - Version 0.7.0 Done: 2007-05-01 - Version 0.6.7.1 Done: 2007-03-29 - Version 0.6.6 Done: 2006-11-18 - Version 0.6.5 Done: 2005-01-16 - Version 0.6.2 Done: 2004-11-26 - Version 0.6.1version 3.0 files now. Defined IDs for all supported machines. Save ".80", ".o", ".81" Done: 2000 – 0.1.8 and 0.2.2and ".p" Snapshots: .TAPtape files for Modifier keys: ZX80ZX80 Done: 2000 – 0.1.8 and 0.2.2and Modifier keys: ZX81ZX81. Save Done: 2000 – 0.1.8 and 0.2.2and load ".Snapshots: .Z80z80" Snapshotssnapshot files for Modifier keys: ZX80ZX80 Done: 2000 – 0.1.8 and 0.2.2and Modifier keys: ZX81ZX81. Load ".pzx" v0.2 files. Save highres Done: 2000 – 0.1.8 and 0.2.2and flashing Gif Screenshots and Movies: Gif ScreenshotsGif screenshots. Save highres Done: 2000 – 0.1.8 and 0.2.2and animated Gif Screenshots and Movies Gif Screenshots and Movies: Gif MoviesGif movies. Audio-out handler extended to work with any number of channels, 1*n or m*1; but not n*m. Fixed: Tape recordertape recorder playback on systems with different audio-in Done: 2000 – 0.1.8 and 0.2.2and -out device if audio-in is disabled. Fixed: a very old bug (Done: 2000 – 0.1.8 and 0.2.2and, in OS 9 days, a dirty hack Done: 2000 – 0.1.8 and 0.2.2and not yet obviously a bug) in ".Snapshots: .Z80z80" file compression. ### 2007-05-13 - Version 0.7.0 ##### New in this version: Added: Modifier keys: ZX80ZX80 Done: 2000 – 0.1.8 and 0.2.2and Modifier keys: ZX81ZX81 by means of Paul Farrow's emulator cartridges. Machine images, Keyboardkeyboard images, Keyboardkeyboard translation for Modifier keys: ZX80ZX80 Done: 2000 – 0.1.8 and 0.2.2and Modifier keys: ZX81ZX81. Tape recorderTape recorder: added decoder for .P Done: 2000 – 0.1.8 and 0.2.2and .81 files (Modifier keys: ZX81ZX81) Done: 2000 – 0.1.8 and 0.2.2and for .O Done: 2000 – 0.1.8 and 0.2.2and .80 files (Modifier keys: ZX80ZX80) Instant Snapshots: .TAPtape loading of .O, .80, .P Done: 2000 – 0.1.8 and 0.2.2and .81 files AssemblerAssembler: Assemblerassemble + load .Snapshots: .TAPtap, .80, .o, .81, .p files AssemblerAssembler: create list file after failed assembly Fullscreen modeFullscreen mode ### 2007-05-01 - Version 0.6.7.1 ##### New in this version: Tape recorder: tzx filesTZX file: implemented Done: 2008-05-26 - Version 0.7.2 Done: 2007-07-28 - Version 0.7.1 Done: 2007-05-13 - Version 0.7.0 Done: 2007-05-01 - Version 0.6.7.1 Done: 2007-03-29 - Version 0.6.6 Done: 2006-11-18 - Version 0.6.5 Done: 2005-01-16 - Version 0.6.2 Done: 2004-11-26 - Version 0.6.1version 1.20. not yet supported: GOTO/GOSUB blocks. Added: French +2, Spanish +2, Done: 2000 – 0.1.8 and 0.2.2and Spanish +2A ### 2007-03-29 - Version 0.6.6 ##### New in this version: Instant Snapshots: .TAPtape loading of .Snapshots: .TAPtap files (48k only) Support for .Tape recorder: tzx filestzx tape files (loading only) Added: Modifier keys: ZX SpectrumZX Spectrum +2A Added: Spanish Inves Modifier keys: ZX SpectrumZX Spectrum+ Done: 2000 – 0.1.8 and 0.2.2and Sinclair Modifier keys: ZX SpectrumZX Spectrum+ 128K Panels for Joysticks: Built-in Joystick Portsbuilt-in joystick ports (+2, +2A, +3, TC2048) Images of machines Done: 2000 – 0.1.8 and 0.2.2and interfaces ### 2006-11-18 - Version 0.6.5 ##### New in this version: USB Joysticksjoystick support Joysticks: Kempston Joystick InterfaceKempston joystick interface Joysticks: Sinclair Interface 2Sinclair Interface 2 Universal binary: runs on PPC Done: 2000 – 0.1.8 and 0.2.2and Intel Macs natively Check update Recent files menu ### 2005-01-16 - Version 0.6.2 ##### New in this version: Border DebuggerDebugger, improved DebuggerCpu panel, Ula panel Video beam indicator Exact timing Load ASS Assemblerassembler sources, Snapshots: .SCRSCR Gif Screenshots and Moviesscreenshot, Snapshots: .ROM MMU registers for the +128K / +2: ROM $0000ROM Snapshots: .ROM MMU registers for the +128K / +2: ROM $0000roms Posix threads cstrings: quick hack to make the cstrings library multi-thread safe Machine throttle 1 .. 2e7 Hz Splash screen ##### Investigations on certain problems: Crashing: Apple's NSLocks just History: Donedon't work. Maybe because i use the CoreAudio interrupt? I History: Donedon't know. Cpu usage: cpu usage going up Done: 2000 – 0.1.8 and 0.2.2and down w/o reason. This seams to be only virtual, Done: 2000 – 0.1.8 and 0.2.2and in real an interference between sampling frequency of the cpu-meter Done: 2000 – 0.1.8 and 0.2.2and the interrupt frequency within zxsp. At least i have decided so. Keys not going up: Apple sucks. not only, that i can get keyup events with different character code than in the matching key down event. But additionally under certain reproducible conditions i get no matching keyup event at all. Bug report ID 3903027 submitted. Nothing heared. ### 2004-11-26 - Version 0.6.1 ##### New in this version: Recording to .Snapshots: .TAPtap files, Tape recordertape recorder animation Tape recorder: OptionsOption for audio playthrough: -10dB / -30dB / off (playthrough resulted in loop-back hissing on notebooks) Tape recorder: OptionsOption: store individual Fullscreen mode: Preferences .TAP: Preferences Tape recorder: Preferencespreferences for each Snapshotssnapshot KeyboardKeyboard: fixed "autorepeat problem": OSX sends keydown Done: 2000 – 0.1.8 and 0.2.2and keyup events, which are used to update the Modifier keys: ZX SpectrumZX Spectrum keymap. But the keycodes passed in the keyup event may differ from those in the preceeding keydown event for the same key, if a Keyboard: Modifier keysmodifier key toggled in the meantime. Then the pressed key was not found by my 'keyup' handler Done: 2000 – 0.1.8 and 0.2.2and the pressed key stuck forever. ### 2004-11-17 - Version 0.6.0 - First release since 2.5 years ##### New in this version: Load .Snapshots: .TAPtap files Load from audio-in Tape recorder: The built-in virtual tape recorderVirtual tape recorder (work in progress) Keyboard: Virtual keyboardsVirtual keyboards DebuggerCPU panel Sound: AY control panelAY panel Fullscreen mode: Preferences .TAP: Preferences Tape recorder: PreferencesPreferences panel High res screen update Contended MMU registers for the +128K / +2: RAM $8000 MMU registers for the +128K / +2: RAM $4000 MMU registers for the +3 / +2A: RAM $8000 MMU registers for the +3 / +2A: RAM $4000ram wait states $.TAP: EDFB level loaderedfb level loader 2004-11-03 Resumed work on zxsp. installed XCode. restored project. ### File system crash All changes since Done: 2008-05-26 - Version 0.7.2 Done: 2007-07-28 - Version 0.7.1 Done: 2007-05-13 - Version 0.7.0 Done: 2007-05-01 - Version 0.6.7.1 Done: 2007-03-29 - Version 0.6.6 Done: 2006-11-18 - Version 0.6.5 Done: 2005-01-16 - Version 0.6.2 Done: 2004-11-26 - Version 0.6.1version 0.5.2 are lost. ### 2002-03-04 - Version 0.5.10 - Last release in 2002 Save .Snapshots: .SNAsna Done: 2000 – 0.1.8 and 0.2.2and .Snapshots: .Z80z80 Snapshotssnapshot Multiple instances KeyboardKeyboard: game & Basic and Game mode: Basic modebasic mode Audio input from audio-in Using Andrew Owen's file icons ### 2002-02-17 – 0.5.0 – First public release 16k to +2, load Snapshots: .SNAsna&Snapshots: .Z80z80, ay, ay&Snapshots: .Z80z80 register display ### 2002-02-02 – OS X Project started Started port from zxsp-mac (MacOS classic Done: 2008-05-26 - Version 0.7.2 Done: 2007-07-28 - Version 0.7.1 Done: 2007-05-13 - Version 0.7.0 Done: 2007-05-01 - Version 0.6.7.1 Done: 2007-03-29 - Version 0.6.6 Done: 2006-11-18 - Version 0.6.5 Done: 2005-01-16 - Version 0.6.2 Done: 2004-11-26 - Version 0.6.1version) to OS X ### 2000 – 0.1.8 and 0.2.2 zxsp for classic Mac OS, with Keyboard: Virtual keyboardsvirtual keyboard Done: 2000 – 0.1.8 and 0.2.2and Tape recordertape recorder. ### 1999 – zxsp for Linux/X11/QT This source is lost now. ### 1994 - 1996 – Mac Spectacle Done: 1994 - 1996 – Mac SpectacleMac Spectacle for MacOS 7. ## To Do #### high priority - for next release: #### milestones: Timex high color Done: 2000 – 0.1.8 and 0.2.2and high res modes Modifier keys: ZX SpectrumZX Spectrum +3 disc support #### peripherials: serial ports of 128K models 128K keypad ZX Printer Modifier keys: ZX SpectrumZX Spectrum +3 printer support ZX Interface 1 Done: 2000 – 0.1.8 and 0.2.2and Microdrives DevIDE AMX MouseMouse Fuller IF Currah µSpeech Cheetah Sweet Talker Cheetah Spec Drum Multiface 1 to 3 32k MMU registers for the +128K / +2: RAM $8000 MMU registers for the +128K / +2: RAM $4000 MMU registers for the +3 / +2A: RAM $8000 MMU registers for the +3 / +2A: RAM $4000RAM extension (Cheetah, Indescomp) Lightpens (misc.) JoysticksJoystick interfaces (Datel, AGF, Protek, dk'tronics, etc.) #### other: Tape recorder: The built-in virtual tape recorderTapeRecorder, .p files: decoded Snapshots: .TAPtape too long, but loads. why? Modifier keys: ZX81ZX81: .TAP: Instant loading ".tap" filesinstant load from Snapshots: .TAPtape: takes some secs after loading to show prompt. why? bwRenderer: leftmost partial pixel octet seems not to be drawn bwRenderer: vert. center screen$ also if large top border Modifier keys: ZX80ZX80: EI -> r-register D6 -> interrupt Fullscreen mode: Preferences .TAP: Preferences Tape recorder: PreferencesPreference: JoysticksJoystick IF nur laden, wenn auch ein USB-Joystick angeschlossen ist. Tape recordertape recorder: ctrl-click on eject button => insert new & empty Snapshots: .TAPtape NXPanels: 3rd state: open-if-attached "save & restore panel state" Fullscreen mode: Preferences .TAP: Preferences Tape recorder: Preferencespreference "remember last machine used" pref Single stepping: Pause buttonHalt Cpu after last block loaded Audio: high frequency damping .Snapshots: .Z80z80: Fixit for "IF1 required" Jupiter Ace: save/load .Snapshots: .Z80z80 Modifier keys: ZX81ZX81: save to Snapshots: .TAPtape Bug report form Documentation: Done: 2008-05-26 - Version 0.7.2 Done: 2007-07-28 - Version 0.7.1 Done: 2007-05-13 - Version 0.7.0 Done: 2007-05-01 - Version 0.6.7.1 Done: 2007-03-29 - Version 0.6.6 Done: 2006-11-18 - Version 0.6.5 Done: 2005-01-16 - Version 0.6.2 Done: 2004-11-26 - Version 0.6.1version 0.7.2 NSAlert instant Snapshots: .TAPtape loader: Tape recorder: tzx filesTZX files, PZX files Fullscreen modeFullscreen: 8 bit indexed color screens do not work. maybe clut not set? Fullscreen modeFullscreen: if selected Preferences: Resolutionresolution is not found Done: 2000 – 0.1.8 and 0.2.2and current Preferences: Resolutionresolution is not in list of selected Preferences: Refresh raterefresh rate then do not swich to "no change" but to any (first) of available modes Fullscreen modeFullscreen: open Done: 2000 – 0.1.8 and 0.2.2and save dialog in specci screen. also needed for "startup in Fullscreen modefullscreen mode" Fullscreen modeFullscreen: move panels resp. open panels on To Do: other:other display Fullscreen modeFullscreen: open Done: 2000 – 0.1.8 and 0.2.2and save dialog: History: Donedon't quit FS if computer has 2 displays use NSURLDownload instead of NSURLConnection ?!? Spanish plus/128K: charset for Tape recordertape recorder; Keyboardkeyboard pict (drawing), Keyboardkeyboard panel Keyboardkeyboard translation TC2048: MMU, ULA auto-start-tape: monitor only the Snapshots: .ROM MMU registers for the +128K / +2: ROM $0000Rom routines Tape recorderTape Recorder: load aiff, wav, rles, csw Tape recorderTape recorder: save .o Done: 2000 – 0.1.8 and 0.2.2and .p files Tape recorder: tzx filestzx file: 'goto' Done: 2000 – 0.1.8 and 0.2.2and 'gosub' Machine: reload Snapshotssnapshot: History: Donedon't reset timing Done: 2000 – 0.1.8 and 0.2.2and To Do: other:other settings Machine: display real used/remaining processing time, measure long-run fps for performance test Machine: performance monitor -> emergency throttle Machine: precompensate kbd->screen latency by wormhole machine Ass: accept // Done: 2000 – 0.1.8 and 0.2.2and 0x1234 Done: 2000 – 0.1.8 and 0.2.2and != Ass: local variables Ass: #align ! Ass: missing #endif => crash Ass: load .bin files Cpu: re-entry after EI Done: 2000 – 0.1.8 and 0.2.2and superfluxuous prefix opcodes Cpu: re-entry after Single stepping: Pause buttonHALT Cpu: eliminate "+2" in waitmap access DebuggerCpu panel: scroll Debugger: Memory view Memory view: Memory viewmemory view DebuggerCpu panel: edit data in Debugger: Memory view Memory view: Memory viewmemory view DebuggerCpu panel: add "no register selected" DebuggerCpu panel: display & update Debugger: Memory view Memory view: Memory viewmemory view (but History: Donedon't adjust base addr) when running File: load AY file Model: SE Ula panel: show/edit waitmap Done: 2000 – 0.1.8 and 0.2.2and waitmap offset Ula panel: graphical display of dropped frames Ula panel: show contendion indicator for mapped pages ! Ula panel: 'as displayed by crt beam' screen update vs. 'current memory contents' Ula: UnhandledInput(): when read which attribute byte? Audio: re-route audio Audio: mix audio-in to audio-out only if EAR/MIC are hi/lo (as for recording) KeyboardKeyboard: hilighting for scorpion, sam coupé KeyboardKeyboard: Mousemouse clicking for scorpion, sam coupé KeyboardKeyboard: key caps for spanish, french, arabic, scorpion Done: 2000 – 0.1.8 and 0.2.2and sam coupé Video: record in's into video file Video: playback Network: connect two speccis over udp Network: bug/crash reporter |

[<prev] [top] [next>]