├── .gitignore ├── .gitmodules ├── AUTHORS ├── COPYING ├── ChangeLog ├── INSTALL ├── Makefile.am ├── PORTING ├── README ├── THANKS ├── TODO ├── autogen.sh ├── bitmap.h ├── compat.h ├── compat ├── Makefile.am ├── amiga │ ├── osname.c │ └── paths.c ├── dirname.c ├── getopt.c ├── getopt.h ├── getopt1.c ├── linux │ └── relative_paths.c ├── morphos │ └── osname.c ├── unix │ ├── dir.c │ ├── file.c │ ├── osname.c │ ├── paths.c │ ├── relative_paths.c │ ├── socket.c │ ├── timer.c │ └── tuntap.c ├── wii │ ├── dir.c │ ├── osname.c │ ├── paths.c │ └── timer.c └── win32 │ ├── osname.c │ ├── paths.c │ ├── socket.c │ └── timer.c ├── configure.ac ├── data ├── Makefile.am ├── fuse.desktop.in ├── fuse.xml.in ├── icons │ ├── 128x128 │ │ ├── application-x-spectrum.png │ │ └── fuse.png │ ├── 16x16 │ │ ├── application-x-spectrum.png │ │ └── fuse.png │ ├── 256x256 │ │ ├── application-x-spectrum.png │ │ └── fuse.png │ ├── 32x32 │ │ ├── application-x-spectrum.png │ │ └── fuse.png │ ├── 48x48 │ │ ├── application-x-spectrum.png │ │ └── fuse.png │ └── 64x64 │ │ ├── application-x-spectrum.png │ │ └── fuse.png ├── shell-completion │ ├── bash │ │ └── fuse │ └── diff_options.sh └── win32 │ ├── distribution.mk │ ├── fuse.manifest.in │ ├── installer.nsi.in │ └── winfuse.ico ├── debugger ├── Makefile.am ├── arch.h ├── breakpoint.c ├── breakpoint.h ├── command.c ├── commandl.l ├── commandy.y ├── debugger.c ├── debugger.h ├── debugger_internals.h ├── disassemble.c ├── event.c ├── expression.c ├── gdbserver.c ├── gdbserver.h ├── gdbserver_utils.c ├── gdbserver_utils.h ├── packets.c ├── packets.h ├── system_variable.c └── variable.c ├── display.c ├── display.h ├── event.c ├── event.h ├── fuse.c ├── fuse.h ├── fusepb ├── AppSandboxFileAccess.h ├── AppSandboxFileAccess.m ├── AppSandboxFileAccessOpenSavePanelDelegate.h ├── AppSandboxFileAccessOpenSavePanelDelegate.m ├── AppSandboxFileAccessPersist.h ├── AppSandboxFileAccessPersist.m ├── Credits.html ├── English.lproj │ └── InfoPlist.strings ├── Fuse.iconset │ ├── icon_128x128.png │ ├── icon_128x128@2x.png │ ├── icon_16x16.png │ ├── icon_16x16@2x.png │ ├── icon_256x256.png │ ├── icon_256x256@2x.png │ ├── icon_32x32.png │ ├── icon_32x32@2x.png │ ├── icon_512x512.png │ └── icon_512x512@2x.png ├── FuseHelp │ ├── .gitignore │ ├── Info.plist │ ├── Makefile │ ├── _English.lproj │ │ ├── InfoPlist.strings │ │ ├── about.md │ │ ├── changelog.md │ │ ├── compressed.md │ │ ├── didaktik80.md │ │ ├── disciple.md │ │ ├── divide.md │ │ ├── divmmc.md │ │ ├── dsk.md │ │ ├── emulation.md │ │ ├── filters.md │ │ ├── formats.md │ │ ├── general.md │ │ ├── graphics_filter.md │ │ ├── index.md │ │ ├── joysticks.md │ │ ├── machine.md │ │ ├── mappings.md │ │ ├── menus.md │ │ ├── monitor.md │ │ ├── movies.md │ │ ├── opus.md │ │ ├── peripherals.md │ │ ├── plusd.md │ │ ├── pokefinder.md │ │ ├── pokememory.md │ │ ├── printer.md │ │ ├── quicklook.md │ │ ├── roms.md │ │ ├── rzx.md │ │ ├── sound.md │ │ ├── spectranet.md │ │ ├── spotlight.md │ │ ├── topic-1.md │ │ ├── topic-2.md │ │ ├── topic-3.md │ │ ├── trdos.md │ │ ├── weak.md │ │ └── zxatasp.md │ ├── _config.yml │ ├── _includes │ │ ├── footer.html │ │ ├── head.html │ │ └── header.html │ ├── _layouts │ │ ├── default.html │ │ ├── help-page.html │ │ └── title-page.html │ ├── _plugins │ │ ├── help-filters.rb │ │ └── page-rel-root.rb │ ├── _sass │ │ ├── _apple-help.scss │ │ ├── _base.scss │ │ └── _syntax-highlighting.scss │ ├── book-icon.png │ ├── css │ │ └── main.scss │ ├── jekyll-server.command │ └── nav.js ├── FuseMenus.h ├── FuseMenus.m ├── FuseX.entitlements ├── FuseX.xcodeproj │ └── project.pbxproj ├── Info-FuseX.plist ├── Makefile ├── NumberFormatter.h ├── NumberFormatter.m ├── compat │ └── darwin │ │ └── paths.c ├── config.h ├── content_arrays │ ├── CAMachines.h │ ├── CAMachines.m │ ├── HIDJoysticks.h │ ├── HIDJoysticks.m │ ├── Joysticks.h │ └── Joysticks.m ├── controllers │ ├── DebuggerController.h │ ├── DebuggerController.m │ ├── FuseController.h │ ├── FuseController.m │ ├── JoystickConfigurationController.h │ ├── JoystickConfigurationController.m │ ├── KeyboardController.h │ ├── KeyboardController.m │ ├── LoadBinaryController.h │ ├── LoadBinaryController.m │ ├── MemoryBrowserController.h │ ├── MemoryBrowserController.m │ ├── PokeFinderController.h │ ├── PokeFinderController.m │ ├── PokeMemoryController.h │ ├── PokeMemoryController.m │ ├── PreferencesController.h │ ├── PreferencesController.m │ ├── RollbackController.h │ ├── RollbackController.m │ ├── SaveBinaryController.h │ ├── SaveBinaryController.m │ ├── TapeBrowserController.h │ └── TapeBrowserController.m ├── generate.pl ├── keystate.c ├── keystate.h ├── libspectrum.h ├── main.h ├── main.m ├── models │ ├── Emulator.h │ └── Emulator.m ├── resources │ ├── 48k.png │ ├── Graphics_Filter.png │ ├── Machine.png │ ├── Peripherals.png │ ├── RZX.png │ ├── Select_ROMs.png │ ├── Sound.png │ ├── blank.icns │ ├── cassette_green.png │ ├── cassette_red.png │ ├── csw.icns │ ├── dck.icns │ ├── debug.png │ ├── dsk.icns │ ├── hdf.icns │ ├── mdr.icns │ ├── microdrive_green.png │ ├── microdrive_red.png │ ├── plus3disk_green.png │ ├── plus3disk_red.png │ ├── qs2t_icon.png │ ├── raw.icns │ ├── rom.icns │ ├── rzx.icns │ ├── scl.icns │ ├── scr.icns │ ├── slt.icns │ ├── sna.icns │ ├── snp.icns │ ├── sp.icns │ ├── szx.icns │ ├── tap.icns │ ├── trd.icns │ ├── ts2068.png │ ├── tzx.icns │ ├── z80.icns │ └── zxs.icns ├── scaler │ └── scalers16.c ├── settings-cocoa-header.pl ├── settings-header.pl ├── settings_cocoa.h ├── timer │ └── timer.c ├── transformers │ ├── MachineNameToIdTransformer.h │ ├── MachineNameToIdTransformer.m │ ├── MachineScalerIsEnabled.h │ ├── MachineScalerIsEnabled.m │ ├── ScalerNameToIdTransformer.h │ ├── ScalerNameToIdTransformer.m │ ├── VolumeSliderToPrefTransformer.h │ └── VolumeSliderToPrefTransformer.m ├── views │ ├── DisplayOpenGLView.h │ ├── DisplayOpenGLView.m │ ├── Texture.h │ └── Texture.m └── xibs │ ├── Debugger.xib │ ├── JoystickConfiguration.xib │ ├── Keyboard.xib │ ├── LoadBinary.xib │ ├── MainMenu.xib │ ├── MemoryBrowser.xib │ ├── PokeFinder.xib │ ├── PokeMemory.xib │ ├── Preferences.xib │ ├── Rollback.xib │ ├── SaveBinary.xib │ ├── SavePanelAccessoryView.xib │ └── TapeBrowser.xib ├── hacking ├── Makefile.am ├── code_beautifiers.txt ├── coding_style.txt ├── cvs-tags ├── implementation_notes.txt ├── input.txt ├── peripheral_tests.txt ├── sound.txt ├── spectranet.txt ├── tc2048_tech_notes.txt ├── timer.txt ├── ui.txt ├── uncrustify.cfg └── valgrind.supp ├── infrastructure ├── Makefile.am ├── startup_manager.c └── startup_manager.h ├── input.c ├── input.h ├── keyboard.c ├── keyboard.h ├── keysyms.dat ├── keysyms.pl ├── lib ├── Makefile.am ├── cassette.bmp ├── keyboard.png ├── keyboard.scr ├── microdrive.bmp ├── plus3disk.bmp └── tests │ ├── fatware-success.hdf.bz2 │ ├── idedos-success.hdf.bz2 │ ├── success.d80.bz2 │ ├── success.mdr │ ├── success.mgt.bz2 │ ├── success.opd │ └── success.udi ├── loader.c ├── loader.h ├── m4 ├── ax_create_stdint_h.m4 ├── ax_pthread.m4 ├── ax_string_strcasecmp.m4 ├── gtk-2.0.m4 ├── pkg.m4 └── sdl.m4 ├── machine.c ├── machine.h ├── machines ├── Makefile.am ├── machines.h ├── machines_periph.c ├── machines_periph.h ├── pentagon.c ├── pentagon.h ├── pentagon1024.c ├── pentagon512.c ├── scorpion.c ├── scorpion.h ├── spec128.c ├── spec128.h ├── spec16.c ├── spec48.c ├── spec48.h ├── spec48_ntsc.c ├── spec_se.c ├── specplus2.c ├── specplus2a.c ├── specplus3.c ├── specplus3.h ├── specplus3e.c ├── tc2048.c ├── tc2068.c ├── tc2068.h └── ts2068.c ├── man ├── Makefile.am └── fuse.1 ├── memory_pages.c ├── memory_pages.h ├── mempool.c ├── mempool.h ├── menu.c ├── menu.h ├── menu_data.dat ├── menu_data.pl ├── module.c ├── module.h ├── movie.c ├── movie.h ├── movie_tables.h ├── periph.c ├── periph.h ├── peripherals ├── Makefile.am ├── ay.c ├── ay.h ├── covox.c ├── covox.h ├── dck.c ├── dck.h ├── disk │ ├── beta.c │ ├── beta.h │ ├── crc.c │ ├── crc.h │ ├── didaktik.c │ ├── didaktik.h │ ├── disciple.c │ ├── disciple.h │ ├── disk.c │ ├── disk.h │ ├── fdd.c │ ├── fdd.h │ ├── opus.c │ ├── opus.h │ ├── plusd.c │ ├── plusd.h │ ├── trdos.c │ ├── trdos.h │ ├── upd_fdc.c │ ├── upd_fdc.h │ ├── wd_fdc.c │ └── wd_fdc.h ├── flash │ ├── am29f010.c │ └── am29f010.h ├── fuller.c ├── fuller.h ├── ide │ ├── divide.c │ ├── divide.h │ ├── divmmc.c │ ├── divmmc.h │ ├── divxxx.c │ ├── divxxx.h │ ├── ide.c │ ├── ide.h │ ├── simpleide.c │ ├── simpleide.h │ ├── zxatasp.c │ ├── zxatasp.h │ ├── zxcf.c │ ├── zxcf.h │ ├── zxmmc.c │ └── zxmmc.h ├── if1.c ├── if1.h ├── if2.c ├── if2.h ├── joystick.c ├── joystick.h ├── kempmouse.c ├── kempmouse.h ├── melodik.c ├── melodik.h ├── multiface.c ├── multiface.h ├── nic │ ├── enc28j60.c │ ├── enc28j60.h │ ├── w5100.c │ ├── w5100.h │ ├── w5100_internals.h │ └── w5100_socket.c ├── printer.c ├── printer.h ├── scld.c ├── scld.h ├── speccyboot.c ├── speccyboot.h ├── specdrum.c ├── specdrum.h ├── spectranet.c ├── spectranet.h ├── ttx2000s.c ├── ttx2000s.h ├── ula.c ├── ula.h ├── usource.c └── usource.h ├── perl ├── Fuse.pm ├── Fuse │ └── Dialog.pm ├── Makefile.am └── cpp-perl.pl ├── phantom_typist.c ├── phantom_typist.h ├── pokefinder ├── Makefile.am ├── pokefinder.c ├── pokefinder.h ├── pokemem.c └── pokemem.h ├── profile.c ├── profile.h ├── psg.c ├── psg.h ├── rectangle.c ├── rectangle.h ├── roms ├── 128-0.rom ├── 128-1.rom ├── 48.rom ├── Makefile.am ├── README.copyright ├── disciple.rom ├── plus2-0.rom ├── plus2-1.rom ├── plus3-0.rom ├── plus3-1.rom ├── plus3-2.rom ├── plus3-3.rom ├── plus3e-0.rom ├── plus3e-1.rom ├── plus3e-2.rom ├── plus3e-3.rom ├── plusd.rom ├── se-0.rom ├── se-1.rom ├── speccyboot-1.4.rom ├── spectranet.rom ├── tc2048.rom ├── tc2068-0.rom └── tc2068-1.rom ├── rzx.c ├── rzx.h ├── screenshot.c ├── screenshot.h ├── settings-header.pl ├── settings.dat ├── settings.pl ├── slt.c ├── slt.h ├── snapshot.c ├── snapshot.h ├── sound.c ├── sound.h ├── sound ├── Makefile.am ├── alsasound.c ├── aosound.c ├── blipbuffer.c ├── blipbuffer.h ├── coreaudiosound.c ├── dxsound.c ├── hpsound.c ├── nullsound.c ├── osssound.c ├── pulsesound.c ├── sdlsound.c ├── sfifo.c ├── sfifo.h ├── sunsound.c ├── wiisound.c └── win32sound.c ├── spectrum.c ├── spectrum.h ├── svg.c ├── svg.h ├── tape.c ├── tape.h ├── timer ├── Makefile.am ├── native.c ├── sdl.c ├── timer.c └── timer.h ├── ui.c ├── ui ├── Makefile.am ├── cocoa │ ├── SDL_joystick │ │ ├── SDL_joystick.c │ │ ├── SDL_joystick.h │ │ ├── SDL_joystick_c.h │ │ ├── SDL_sysjoystick.c │ │ └── SDL_sysjoystick.h │ ├── cocoadisplay.h │ ├── cocoadisplay.m │ ├── cocoaerror.m │ ├── cocoajoystick.c │ ├── cocoascreenshot.h │ ├── cocoascreenshot.m │ ├── cocoastatusbar.m │ ├── cocoaui.h │ ├── cocoaui.m │ ├── dirty.c │ ├── dirty.h │ ├── dirtyrects.txt │ ├── keysyms.m │ ├── options-cocoa-header.pl │ ├── options-header.pl │ └── options.pl ├── fb │ ├── Makefile.am │ ├── fbdisplay.c │ ├── fbdisplay.h │ ├── fbjoystick.c │ ├── fbkeyboard.c │ ├── fbkeyboard.h │ ├── fbmouse.c │ ├── fbmouse.h │ └── fbui.c ├── gtk │ ├── Makefile.am │ ├── binary.c │ ├── browse.c │ ├── confirm.c │ ├── debugger.c │ ├── fileselector.c │ ├── gtkcompat.c │ ├── gtkcompat.h │ ├── gtkdisplay.c │ ├── gtkinternals.h │ ├── gtkjoystick.c │ ├── gtkkeyboard.c │ ├── gtkmouse.c │ ├── gtkui.c │ ├── memory.c │ ├── memory_gtk2.c │ ├── options-header.pl │ ├── options.pl │ ├── picture.c │ ├── pixmaps.c │ ├── pokefinder.c │ ├── pokemem.c │ ├── rollback.c │ ├── roms.c │ ├── statusbar.c │ └── stock.c ├── null │ ├── Makefile.am │ ├── null_ui.c │ ├── options-header.pl │ └── options.pl ├── options.dat ├── scaler │ ├── Makefile.am │ ├── scaler.c │ ├── scaler.h │ ├── scaler_hq2x.c │ ├── scaler_hq3x.c │ ├── scaler_hq4x.c │ ├── scaler_internals.h │ └── scalers.c ├── sdl │ ├── Makefile.am │ ├── sdldisplay.c │ ├── sdldisplay.h │ ├── sdljoystick.c │ ├── sdljoystick.h │ ├── sdlkeyboard.c │ ├── sdlkeyboard.h │ └── sdlui.c ├── ui.h ├── uidisplay.h ├── uijoystick.c ├── uijoystick.h ├── uimedia.h ├── widget │ ├── Makefile.am │ ├── about.c │ ├── binary.c │ ├── browse.c │ ├── debugger.c │ ├── error.c │ ├── filesel.c │ ├── fuse.font.sbf │ ├── memory.c │ ├── menu.c │ ├── mkfusefont.pl │ ├── options-header.pl │ ├── options.pl │ ├── picture.c │ ├── pokefinder.c │ ├── pokemem.c │ ├── query.c │ ├── roms.c │ ├── select.c │ ├── text.c │ ├── widget.c │ ├── widget.h │ └── widget_internals.h ├── wii │ ├── Makefile.am │ ├── wiidisplay.c │ ├── wiidisplay.h │ ├── wiijoystick.c │ ├── wiikeyboard.c │ ├── wiikeyboard.h │ ├── wiikeysyms.h │ ├── wiimouse.c │ ├── wiimouse.h │ └── wiiui.c ├── win32 │ ├── Makefile.am │ ├── about.c │ ├── about.h │ ├── about.rc │ ├── binary.c │ ├── binary.h │ ├── binary.rc │ ├── browse.c │ ├── browse.h │ ├── browse.rc │ ├── confirm.c │ ├── debugger.c │ ├── debugger.h │ ├── debugger.rc │ ├── fileselector.c │ ├── hyperlinks.c │ ├── hyperlinks.h │ ├── icons │ │ ├── disk_active.bmp │ │ ├── disk_inactive.bmp │ │ ├── mdr_active.bmp │ │ ├── mdr_inactive.bmp │ │ ├── mouse_active.bmp │ │ ├── mouse_inactive.bmp │ │ ├── pause_active.bmp │ │ ├── pause_inactive.bmp │ │ ├── tape_active.bmp │ │ ├── tape_inactive.bmp │ │ ├── tape_marker.bmp │ │ └── tape_marker_mask.bmp │ ├── memorybrowser.c │ ├── memorybrowser.h │ ├── memorybrowser.rc │ ├── options-header.pl │ ├── options-resource.pl │ ├── options.pl │ ├── picture.c │ ├── picture.h │ ├── picture.rc │ ├── pokefinder.c │ ├── pokefinder.h │ ├── pokefinder.rc │ ├── pokemem.c │ ├── pokemem.h │ ├── pokemem.rc │ ├── rollback.c │ ├── rollback.h │ ├── rollback.rc │ ├── roms.c │ ├── roms.h │ ├── roms.rc │ ├── select_template.h │ ├── select_template.rc │ ├── statusbar.c │ ├── statusbar.rc │ ├── win32display.c │ ├── win32internals.h │ ├── win32joystick.c │ ├── win32joystick.h │ ├── win32joystick.rc │ ├── win32keyboard.c │ ├── win32mouse.c │ └── win32ui.c └── xlib │ ├── Makefile.am │ ├── xdisplay.c │ ├── xdisplay.h │ ├── xerror.c │ ├── xjoystick.c │ ├── xkeyboard.c │ ├── xkeyboard.h │ ├── xstatusbar.pl │ ├── xui.c │ └── xui.h ├── uidisplay.c ├── uimedia.c ├── unittests ├── Makefile.am ├── unittests.c └── unittests.h ├── utils.c ├── utils.h ├── windres.rc └── z80 ├── Makefile.am ├── coretest.c ├── opcodes_base.dat ├── opcodes_cb.dat ├── opcodes_ddfd.dat ├── opcodes_ddfdcb.dat ├── opcodes_ed.dat ├── tests ├── README ├── tests.expected └── tests.in ├── z80.c ├── z80.h ├── z80.pl ├── z80_checks.h ├── z80_debugger_variables.c ├── z80_internals.h ├── z80_macros.h └── z80_ops.c /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "fusepb/libspectrum"] 2 | path = fusepb/libspectrum 3 | url = https://github.com/speccytools/libspectrum.git 4 | -------------------------------------------------------------------------------- /PORTING: -------------------------------------------------------------------------------- 1 | Porting Fuse 2 | ============ 3 | 4 | Sorry, at the moment this isn't a helpful guide as to what you need to do 5 | to port Fuse to a new platform. 6 | 7 | Unfortunately, various people have failed to read and understand the GNU 8 | General Public License (see 'COPYING') before porting Fuse, so this is a 9 | very brief guide to what you can and can't do with Fuse's code: 10 | 11 | * If you release a binary of Fuse, you *must* release *all* the source 12 | code you used to create it at the same time. "Soon" or "when I've 13 | tidied up the code" is NOT acceptable. 14 | 15 | * If you use any code which you haven't written yourself, it must be 16 | available under a licence compatible with the GPL. As an example, this 17 | means you may *not* use any code which "may not be used for commercial 18 | purposes". Any code which is licenced under the GPL (v2), the modified 19 | BSD license or which is truly in the public domain is OK. 20 | 21 | Note that above is not an exhaustive list of what you can and cannot 22 | do with Fuse's code. For the full details, see the GPL. 23 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | TODO 2 | 3 | * Better show which machines are usable given ROM availability 4 | * Pentagon port #ff returning floating bus issues - it does it because the 5 | RusFAQ says so? 6 | * PAL Compsite emulation 7 | * Separate out sound buffer interleaving code to allow for the use of hardware 8 | etc. sound mixing 9 | * Randomise FRAMES sys var after autoload snapshot loaded in order to try and 10 | get less deterministic program behaviour after load is complete 11 | * Use sheets rather than modal dialogs (for Save As) 12 | * Allow Cmd-w to close as many windows as possible 13 | * Make border display/size optional 14 | * Make activity icons transparent 15 | * SZX +3 block - seems to be redundant? 16 | * Add QuickLook HTML view showing Title, etc. like QuickLook on MP3s 17 | * Pentagon border emulation? 18 | -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # autogen.sh: autotools invocation 4 | # Copyright (c) 2004 Philip Kendall 5 | # Copyright (c) 2014 Sergio Baldoví 6 | 7 | # This program is free software; you can redistribute it and/or modify 8 | # it under the terms of the GNU General Public License as published by 9 | # the Free Software Foundation; either version 2 of the License, or 10 | # (at your option) any later version. 11 | 12 | # This program is distributed in the hope that it will be useful, 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | # GNU General Public License for more details. 16 | 17 | # You should have received a copy of the GNU General Public License along 18 | # with this program; if not, write to the Free Software Foundation, Inc., 19 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20 | 21 | # Author contact information: 22 | 23 | # E-mail: Philip Kendall 24 | 25 | # Exit on errors 26 | set -e 27 | 28 | autoreconf -f -i -I m4 29 | -------------------------------------------------------------------------------- /bitmap.h: -------------------------------------------------------------------------------- 1 | /* bitmap.h: Bitmap routines 2 | Copyright (c) 2007-2015 Stuart Brady 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | Philip: philip-fuse@shadowmagic.org.uk 21 | 22 | Stuart: stuart.brady@gmail.com 23 | 24 | */ 25 | 26 | #ifndef FUSE_BITMAP_H 27 | #define FUSE_BITMAP_H 28 | 29 | static inline void 30 | bitmap_set( libspectrum_byte *b, const size_t n ) 31 | { 32 | b[ n / 8 ] |= ( 1 << ( n % 8 ) ); 33 | } 34 | 35 | static inline void 36 | bitmap_reset( libspectrum_byte *b, const size_t n ) 37 | { 38 | b[ n / 8 ] &= ~( 1 << ( n % 8 ) ); 39 | } 40 | 41 | static inline int 42 | bitmap_test( const libspectrum_byte *b, const size_t n ) 43 | { 44 | return b[ n / 8 ] & ( 1 << ( n % 8 ) ); 45 | } 46 | 47 | #endif /* #ifndef FUSE_BITMAP_H */ 48 | -------------------------------------------------------------------------------- /compat/linux/relative_paths.c: -------------------------------------------------------------------------------- 1 | /* relative_paths.c: Path-related compatibility routines 2 | Copyright (c) 1999-2012 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "config.h" 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | #include "fuse.h" 31 | #include "ui/ui.h" 32 | 33 | void 34 | get_relative_directory( char *buffer, size_t bufsize ) 35 | { 36 | ssize_t retval = readlink( "/proc/self/exe", buffer, bufsize - 1 ); 37 | if( retval < 0 ) { 38 | ui_error( UI_ERROR_ERROR, "error getting current working directory: %s", 39 | strerror( -errno ) ); 40 | fuse_abort(); 41 | } 42 | buffer[ retval ] = '\0'; 43 | } 44 | -------------------------------------------------------------------------------- /compat/morphos/osname.c: -------------------------------------------------------------------------------- 1 | /* osname.c: Get a representation of the OS we're running on 2 | Copyright (c) 1999-2007 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "config.h" 25 | 26 | #include 27 | #include 28 | 29 | int compat_osname( char *buffer, size_t length ) 30 | { 31 | snprintf( buffer, length, "%s %s %s", "MorphOS", "Pegasos", "1.4.4" ); 32 | 33 | return 0; 34 | } 35 | -------------------------------------------------------------------------------- /compat/unix/osname.c: -------------------------------------------------------------------------------- 1 | /* osname.c: Get a representation of the OS we're running on 2 | Copyright (c) 1999-2007 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "config.h" 25 | 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | #include "ui/ui.h" 32 | 33 | int compat_osname( char *buffer, size_t length ) 34 | { 35 | struct utsname osname; 36 | int error; 37 | 38 | error = uname( &osname ); 39 | if( error < 0 ) { 40 | ui_error( UI_ERROR_ERROR, "error getting system information: %s", 41 | strerror( errno ) ); 42 | return 1; 43 | } 44 | 45 | snprintf( buffer, length, "%s %s %s", osname.sysname, osname.machine, 46 | osname.release ); 47 | return 0; 48 | } 49 | -------------------------------------------------------------------------------- /compat/unix/relative_paths.c: -------------------------------------------------------------------------------- 1 | /* relative_paths.c: Path-related compatibility routines 2 | Copyright (c) 1999-2012 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "config.h" 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | #include "fuse.h" 31 | #include "ui/ui.h" 32 | 33 | void 34 | get_relative_directory( char *buffer, size_t bufsize ) 35 | { 36 | size_t len = bufsize - strlen( fuse_progname ) - strlen( FUSE_DIR_SEP_STR ); 37 | if( !getcwd( buffer, len ) ) { 38 | ui_error( UI_ERROR_ERROR, "error getting current working directory: %s", 39 | strerror( -errno ) ); 40 | fuse_abort(); 41 | } 42 | strcat( buffer, FUSE_DIR_SEP_STR ); 43 | strcat( buffer, fuse_progname ); 44 | } 45 | -------------------------------------------------------------------------------- /compat/unix/timer.c: -------------------------------------------------------------------------------- 1 | /* timer.c: UNIX speed routines for Fuse 2 | Copyright (c) 1999-2008 Philip Kendall, Marek Januszewski, Fredrick Meunier 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "config.h" 25 | 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | #include "compat.h" 32 | #include "ui/ui.h" 33 | 34 | double 35 | compat_timer_get_time( void ) 36 | { 37 | struct timeval tv; 38 | int error; 39 | 40 | error = gettimeofday( &tv, NULL ); 41 | if( error ) { 42 | ui_error( UI_ERROR_ERROR, "%s: error getting time: %s", __func__, strerror( errno ) ); 43 | return -1; 44 | } 45 | 46 | return tv.tv_sec + tv.tv_usec / 1000000.0; 47 | } 48 | 49 | void 50 | compat_timer_sleep( int ms ) 51 | { 52 | usleep( ms * 1000 ); 53 | } 54 | -------------------------------------------------------------------------------- /compat/wii/dir.c: -------------------------------------------------------------------------------- 1 | /* dir.c: Directory-related compatibility routines 2 | Copyright (c) 2009 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "config.h" 25 | 26 | #include "compat.h" 27 | 28 | compat_dir 29 | compat_opendir( const char *path ) 30 | { 31 | return diropen( path ); 32 | } 33 | 34 | compat_dir_result_t 35 | compat_readdir( compat_dir directory, char *path, size_t length ) 36 | { 37 | struct stat fstat; 38 | 39 | int done = dirnext( directory, path, &fstat ); 40 | 41 | return done ? COMPAT_DIR_RESULT_END : COMPAT_DIR_RESULT_OK; 42 | } 43 | 44 | int 45 | compat_closedir( compat_dir directory ) 46 | { 47 | return dirclose( directory ); 48 | } 49 | -------------------------------------------------------------------------------- /compat/wii/osname.c: -------------------------------------------------------------------------------- 1 | /* osname.c: Get a representation of the OS we're running on 2 | Copyright (c) 1999-2009 Philip Kendall, Bjoern Giesler 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "config.h" 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | #include "ui/ui.h" 31 | 32 | int 33 | compat_osname( char *buffer, size_t length ) 34 | { 35 | snprintf(buffer, length, "Wii"); 36 | return 0; 37 | } 38 | -------------------------------------------------------------------------------- /compat/win32/timer.c: -------------------------------------------------------------------------------- 1 | /* timer.c: Win32 speed routines for Fuse 2 | Copyright (c) 1999-2008 Philip Kendall, Marek Januszewski, Fredrick Meunier 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "config.h" 25 | 26 | #include 27 | 28 | #include "compat.h" 29 | 30 | double 31 | compat_timer_get_time( void ) 32 | { 33 | return GetTickCount() / 1000.0; 34 | } 35 | 36 | void 37 | compat_timer_sleep( int ms ) 38 | { 39 | Sleep( ms ); 40 | } 41 | -------------------------------------------------------------------------------- /data/fuse.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Categories=Game;Emulator;GTK; 5 | Name=Fuse 6 | GenericName=Spectrum Emulator 7 | Comment=Emulator of the 1980s ZX Spectrum home computer and its various clones 8 | MimeType=@MIME_TYPES@ 9 | Exec=fuse %f 10 | Icon=fuse 11 | Keywords=sinclair;zx;game;retro; 12 | -------------------------------------------------------------------------------- /data/icons/128x128/application-x-spectrum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/128x128/application-x-spectrum.png -------------------------------------------------------------------------------- /data/icons/128x128/fuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/128x128/fuse.png -------------------------------------------------------------------------------- /data/icons/16x16/application-x-spectrum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/16x16/application-x-spectrum.png -------------------------------------------------------------------------------- /data/icons/16x16/fuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/16x16/fuse.png -------------------------------------------------------------------------------- /data/icons/256x256/application-x-spectrum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/256x256/application-x-spectrum.png -------------------------------------------------------------------------------- /data/icons/256x256/fuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/256x256/fuse.png -------------------------------------------------------------------------------- /data/icons/32x32/application-x-spectrum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/32x32/application-x-spectrum.png -------------------------------------------------------------------------------- /data/icons/32x32/fuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/32x32/fuse.png -------------------------------------------------------------------------------- /data/icons/48x48/application-x-spectrum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/48x48/application-x-spectrum.png -------------------------------------------------------------------------------- /data/icons/48x48/fuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/48x48/fuse.png -------------------------------------------------------------------------------- /data/icons/64x64/application-x-spectrum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/64x64/application-x-spectrum.png -------------------------------------------------------------------------------- /data/icons/64x64/fuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/icons/64x64/fuse.png -------------------------------------------------------------------------------- /data/shell-completion/diff_options.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # diff_options.sh: diff shell-completion and man options with settings.dat 4 | 5 | echo BASH 6 | echo ==== 7 | 8 | # --help and --version options are not stored as settings 9 | sed -e '1,/if \[\[ "$cur" == -\* \]\]; then/d' < bash/fuse | \ 10 | grep -o -E '\-\-[a-Za-z0-9\-]+' | sort | 11 | grep -v -e "\-\-help" -e "\-\-version" > bash.txt 12 | 13 | awk < ../../settings.dat \ 14 | 'BEGIN{ FS = "," } \ 15 | { \ 16 | if( $1 ~ "^#" ) next; \ 17 | if( $2 ~ "null" ) next; \ 18 | if( $5 != "" ) option = $5; else option = $1; \ 19 | gsub( /^[ \t]+/, "", option ); \ 20 | if( option != "" ) { \ 21 | print option; 22 | if( $2 ~ "boolean" ) print "no-" option; \ 23 | } 24 | }' | \ 25 | sed -e 's/_/\-/g' -e 's/^/\-\-/' | sort > settings.txt 26 | 27 | diff -U 0 bash.txt settings.txt 28 | 29 | echo 30 | echo MAN 31 | echo === 32 | 33 | grep -o -E '\\\-\\\-[a-Za-z0-9\\\-]+' ../../man/fuse.1 | \ 34 | sed -e 's/\\\-/\-/g' -e 's/\-\-no\-/\-\-/g' | sort | uniq | \ 35 | grep -v -e "\-\-disable\-ui\-joystick" -e "\-\-foo" -e "\-\-help" \ 36 | -e "\-\-version" > man.txt 37 | 38 | grep -v -e "\-\-no\-" settings.txt | diff -U 0 man.txt - 39 | -------------------------------------------------------------------------------- /data/win32/fuse.manifest.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | Fuse (Free Unix Spectrum Emulator) 10 | 11 | 12 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /data/win32/winfuse.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/data/win32/winfuse.ico -------------------------------------------------------------------------------- /debugger/arch.h: -------------------------------------------------------------------------------- 1 | #ifndef ARCH_H 2 | #define ARCH_H 3 | 4 | #include 5 | 6 | #define SZ 2 7 | #define FEATURE_STR "l"\ 8 | ""\ 9 | ""\ 10 | ""\ 11 | ""\ 12 | ""\ 13 | ""\ 14 | ""\ 15 | ""\ 16 | ""\ 17 | ""\ 18 | ""\ 19 | ""\ 20 | ""\ 21 | ""\ 22 | ""\ 23 | ""\ 24 | "z80"\ 25 | "" 26 | 27 | #define EXTRA_NUM 25 28 | #define EXTRA_REG 16 29 | #define EXTRA_SIZE 4 30 | 31 | #endif /* ARCH_H */ 32 | -------------------------------------------------------------------------------- /debugger/gdbserver.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef FUSE_DEBUGGER_GDBSERVER_H 3 | #define FUSE_DEBUGGER_GDBSERVER_H 4 | 5 | void gdbserver_init(); 6 | int gdbserver_start( int port ); 7 | void gdbserver_stop(); 8 | int gdbserver_activate(); 9 | void gdbserver_refresh_status(); 10 | 11 | #endif /* #ifndef FUSE_DEBUGGER_GDBSERVER_H */ 12 | -------------------------------------------------------------------------------- /debugger/gdbserver_utils.c: -------------------------------------------------------------------------------- 1 | #include "gdbserver_utils.h" 2 | 3 | int hex(char ch) 4 | { 5 | if ((ch >= 'a') && (ch <= 'f')) 6 | return (ch - 'a' + 10); 7 | if ((ch >= '0') && (ch <= '9')) 8 | return (ch - '0'); 9 | if ((ch >= 'A') && (ch <= 'F')) 10 | return (ch - 'A' + 10); 11 | return (-1); 12 | } 13 | 14 | char *mem2hex(const uint8_t *mem, char *buf, int count) 15 | { 16 | unsigned char ch; 17 | for (int i = 0; i < count; i++) 18 | { 19 | ch = *(mem++); 20 | *buf++ = hexchars[ch >> 4]; 21 | *buf++ = hexchars[ch % 16]; 22 | } 23 | *buf = 0; 24 | return (buf); 25 | } 26 | 27 | uint8_t *hex2mem(const char *buf, uint8_t *mem, int count) 28 | { 29 | unsigned char ch; 30 | for (int i = 0; i < count; i++) 31 | { 32 | ch = hex(*buf++) << 4; 33 | ch = ch + hex(*buf++); 34 | *(mem++) = ch; 35 | } 36 | return (mem); 37 | } 38 | 39 | int unescape(char *msg, int len) 40 | { 41 | char *w = msg, *r = msg; 42 | while (r - msg < len) 43 | { 44 | char v = *r++; 45 | if (v != '}') 46 | { 47 | *w++ = v; 48 | continue; 49 | } 50 | *w++ = *r++ ^ 0x20; 51 | } 52 | return w - msg; 53 | } 54 | -------------------------------------------------------------------------------- /debugger/gdbserver_utils.h: -------------------------------------------------------------------------------- 1 | #ifndef GDBSERVER_UTILS_H 2 | #define GDBSERVER_UTILS_H 3 | 4 | #include 5 | 6 | static const char hexchars[] = "0123456789abcdef"; 7 | 8 | int hex(char ch); 9 | char *mem2hex(const uint8_t *mem, char *buf, int count); 10 | uint8_t *hex2mem(const char *buf, uint8_t *mem, int count); 11 | int unescape(char *msg, int len); 12 | 13 | #endif /* GDBSERVER_UTILS_H */ 14 | -------------------------------------------------------------------------------- /debugger/packets.h: -------------------------------------------------------------------------------- 1 | #ifndef PACKETS_H 2 | #define PACKETS_H 3 | 4 | #include 5 | 6 | #define PACKET_BUF_SIZE 0x4000 7 | 8 | static const char INTERRUPT_CHAR = '\x03'; 9 | 10 | uint8_t *inbuf_get(); 11 | int inbuf_end(); 12 | void inbuf_reset(); 13 | void inbuf_erase_head(ssize_t end); 14 | void write_flush(int sockfd); 15 | void write_packet(const char *data); 16 | void write_binary_packet(const char *pfx, const uint8_t *data, ssize_t num_bytes); 17 | int read_packet(int sockfd); 18 | void acknowledge_packet(int sockfd); 19 | 20 | #endif /* PACKETS_H */ 21 | -------------------------------------------------------------------------------- /fusepb/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /fusepb/Fuse.iconset/icon_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/Fuse.iconset/icon_128x128.png -------------------------------------------------------------------------------- /fusepb/Fuse.iconset/icon_128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/Fuse.iconset/icon_128x128@2x.png -------------------------------------------------------------------------------- /fusepb/Fuse.iconset/icon_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/Fuse.iconset/icon_16x16.png -------------------------------------------------------------------------------- /fusepb/Fuse.iconset/icon_16x16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/Fuse.iconset/icon_16x16@2x.png -------------------------------------------------------------------------------- /fusepb/Fuse.iconset/icon_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/Fuse.iconset/icon_256x256.png -------------------------------------------------------------------------------- /fusepb/Fuse.iconset/icon_256x256@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/Fuse.iconset/icon_256x256@2x.png -------------------------------------------------------------------------------- /fusepb/Fuse.iconset/icon_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/Fuse.iconset/icon_32x32.png -------------------------------------------------------------------------------- /fusepb/Fuse.iconset/icon_32x32@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/Fuse.iconset/icon_32x32@2x.png -------------------------------------------------------------------------------- /fusepb/Fuse.iconset/icon_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/Fuse.iconset/icon_512x512.png -------------------------------------------------------------------------------- /fusepb/Fuse.iconset/icon_512x512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/Fuse.iconset/icon_512x512@2x.png -------------------------------------------------------------------------------- /fusepb/FuseHelp/.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | .sass-cache 3 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleIdentifier 8 | net.sourceforge.projects.fuse-for-macosx.$(PROJECT_NAME:rfc1034identifier).help 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | $(PROJECT_NAME)Help 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | hbwr 19 | CFBundleVersion 20 | 1 21 | HPDBookAccessPath 22 | index.html 23 | HPDBookIconPath 24 | book-icon.png 25 | HPDBookIndexPath 26 | search.helpindex 27 | HPDBookTitle 28 | $(PROJECT_NAME) Help 29 | HPDBookType 30 | 3 31 | 32 | 33 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/Makefile: -------------------------------------------------------------------------------- 1 | # For command-line debugging, use the Jekyll default destination 2 | TARGET_BUILD_DIR ?= _site 3 | 4 | HELP := $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH) 5 | 6 | # Xcode shells have a default environment with no locale settings, so set if undefined (needed by Jekyll to process UTF-8 SCSS) 7 | export LANG ?= en_US.UTF-8 8 | 9 | $(HELP) : * **/* 10 | [[ -s "$(HOME)/.rvm/environments/default" ]] && source "$(HOME)/.rvm/environments/default" ; \ 11 | (which -s jekyll || (echo "error: Jekyll not found - check setup requirements" ; false )) \ 12 | && jekyll build --destination "$(HELP)" 13 | for LPROJ in "$(HELP)"/*.lproj ; do \ 14 | LOCALE=$$(basename "$$LPROJ" .lproj) ; \ 15 | echo "Indexing: $$LPROJ" ; \ 16 | hiutil -1 -vv --create --anchors --locale=$$LOCALE --file "$$LPROJ/search.helpindex" "$$LPROJ" 2>&1 | \ 17 | awk "{ if (/error:/) {printf \"error: \" ; err = 1} else {printf \"warning: \"} ; print} END {exit err}" ; \ 18 | done 19 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | HPDBookTitle = "Fuse Help"; 3 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: About Fuse 3 | description: This section describes the Fuse emulator. 4 | order: 10 5 | --- 6 | 7 | Fuse is a Sinclair ZX Spectrum emulator. It supports several models (including 8 | the 128, Timex and Russian clone machines), with quite faithful emulation of the 9 | display and sound. 10 | 11 | The emulator can load many snapshot formats including Z80, SNA and SZX 12 | snapshots, as well as TAP, TZX and PZX virtual-tape files. Saving to SZX, Z80, 13 | and SNA snapshots and TZX and TAP tape files is supported. The SLT extension to 14 | the Z80 format is partly supported (enough for multi-load games); however, 15 | loading of the old DAT-file variant is not. 16 | 17 | DSK, UDI, FDI, TD0, MGT, IMG, D40, D80, SAD, TRD, SCL and OPD disk images are 18 | supported when a disk interface is being emulated, including the integrated disk 19 | drives on +3, Pentagon or Scorpion machines as well as the +D, DISCiPLE, DivIDE, 20 | DivMMC, ZXMMC, Opus Discovery, Beta 128 and Didaktik 80 interfaces. DCK 21 | cartridge images are supported when emulating a Timex 2068 variant. Interface 2 22 | ROM cartridges are also supported. 23 | 24 | Finally, there is also support for reading and writing the RZX input recording 25 | format. 26 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/compressed.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Compressed Files 3 | description: This section describes Fuses support of compressed files. 4 | order: 220 5 | --- 6 | 7 | Snapshots, tape images, dock cartridges and input recording files (RZX) can be 8 | read from files compressed with bzip2, gzip or zip just as if they were 9 | uncompressed. In the zip case, only the first supported file found inside the 10 | archive is loaded. There is currently no support for reading compressed +3, +D, 11 | Opus or Beta disk images. 12 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/didaktik80.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Didaktik 80 Emulation 3 | description: This section describes the Didaktik 80 interface emulation in Fuse. 4 | order: 90 5 | group: Floppy Disk Interfaces 6 | --- 7 | 8 | Fuse supports Didaktik 80 (and Didaktik 40) emulation. It emulates the original 9 | version of the Didaktik 80, running MDOS 1 and with a WD2797 floppy controller. 10 | 11 | The ROM file is not supplied with Fuse for macOS and so must be installed before 12 | the interface can be used. The expected file is a 14KB dump of the 13 | Didaktik 40/80 MDOS 1 ROM named didaktik80.rom and placed in the Fuse packages 14 | Contents/Resources directory. 15 | 16 | See the [Disk File Formats](formats.html) section for more details on supported 17 | disk file formats. 18 | 19 | The Didaktik 80 may only be used with 16K, 48K and TC2048 emulation. 20 | 21 | To press the Didaktik 80's 'SNAP' button, choose the Machine > Didaktik SNAP 22 | menu option. 23 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/divide.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: DivIDE Emulation 3 | description: This section describes the DivIDE interface emulation in Fuse. 4 | order: 100 5 | group: Hard Disk Interfaces 6 | --- 7 | 8 | The DivIDE is another IDE interface for the Spectrum, of which full details can 9 | be found on the 10 | [DivIDE homepage](http://web.archive.org/web/20150302052256/http://baze.au.com/divide/). 11 | The interface can be activated via the *DivIDE interface* option on the 12 | [Peripherals preferences](peripherals.html) dialog, and the state of its write 13 | protect jumper controlled via the *DivIDE write protect* option. If you're going 14 | to be using the DivIDE, you'll probably want one of the firmwares available from 15 | the DivIDE homepage. 16 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/divmmc.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: DivMMC Emulation 3 | description: This section describes the DivMMC interface emulation in Fuse. 4 | order: 105 5 | group: Hard Disk Interfaces 6 | --- 7 | 8 | The DivMMC is a MMC interface for the Spectrum. Originally designed by 9 | Alessandro Dorigatti for the V6Z80P+ FPGA board as the fusion of DivIDE and 10 | ZXMMC+ interfaces, later assembled as an interface for real spectrums by Mario 11 | Prato. Currently there are variants with different RAM size, one/two memory 12 | cards slots, optional kempston jostick, etc. 13 | 14 | The interface can be activated via the *DivMMC interface* option from the 15 | [Peripherals preferences](peripherals.html) dialog, and the state of its EEPROM 16 | write protect jumper controlled via the *DivMMC write protect* option. 17 | 18 | If you're going to be using the DivMMC, you'll need to load the 19 | [ESXDOS firmware](http://www.esxdos.org/) or use the ZX Spectrum +3e ROMs by 20 | Garry Lancaster. 21 | 22 | You'll also need a HDF image to store the contents of the memory card. There are 23 | several tools to create and manipulate this file format, e.g., 24 | [hdfmonkey](https://github.com/gasman/hdfmonkey). 25 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/dsk.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: The .DSK Format 3 | description: This section describes the .DSK format for Spectrum +3 disks. 4 | order: 185 5 | group: Floppy Disk Interfaces 6 | --- 7 | 8 | In general, disk images for the +3 Spectrum are thought of as being in DSK 9 | format. However, this is actually an slight oversimplification; there in in fact 10 | two similar, but not identical, DSK formats. (The difference can be seen by 11 | doing `head -1 dskfile`: one format will start 'MV - CPCEMU' and the other will 12 | start 'EXTENDED'). 13 | 14 | The Fuse +3 FDC emulation supports both the 'CPCEMU' format and the extended 15 | format, as well as other goodies such as compressed disk images. 16 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/emulation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: The Emulated Spectrum 3 | description: This section describes the machine as emulated by Fuse. 4 | order: 60 5 | --- 6 | 7 | The emulated Spectrum is, by default, an unmodified 48K Spectrum with a tape 8 | player and ZX Printer attached. Oh, and apparently some magical snapshot 9 | load/save machine which is probably best glossed over for the sake of the 10 | analogy. :-) 11 | 12 | To emulate different kinds of Spectrum, use the [Machines](machine.html) tab on 13 | the preferences screen (available from the *Fuse > Preferences* menu option). 14 | 15 | The Spectrum emulation is paused when any dialogs appear. 16 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/graphics_filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Video Preferences 3 | description: This section describes the Fuse video preferences dialog. 4 | order: 30 5 | group: Fuse Preferences 6 | --- 7 | 8 | Use the Video pane of Fuse preferences to select the graphics filter currently 9 | in use. See the [Graphics Filters](filters.html) section for more details. 10 | 11 | OPTION | DESCRIPTION 12 | :--- | :--- 13 | *Bilinear* | This filter can be used in addition to any of the other graphics filters and sets each pixels colour based on it's nearest neighbours vertically and horizontally. 14 | *Black and white TV* | This option allows you to choose whether to simulate a colour or black and white television. 15 | *Use scanlines in PAL TV filters* | This option allows you to choose whether the PAL TV scalers should also simulate TV scanlines. 16 | *Panoramic full screen* | This option allows you to choose whether the full screen mode should fill the whole screen on a widescreen monitor by trimming the upper and lower borders, or whether the full border should be shown with black bars on the left and right of the square spectrum image. 17 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: title-page 3 | title: Fuse Help 4 | apple_title: Fuse Help 5 | anchor: title-page 6 | menu_exclude: true 7 | robots: anchors 8 | group_order: {"Fuse Preferences":30, "Floppy Disk Interfaces":62, "Hard Disk Interfaces":63} 9 | --- 10 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/mappings.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Key Mappings 3 | description: This section describes the key mappings for the emulated computer. 4 | order: 40 5 | --- 6 | 7 | When emulating the Spectrum, the alphanumeric keys (along with Enter and Space) are mapped as-is to the Spectrum keys. The other key mappings are: 8 | 9 | KEY | EMULATION 10 | :--- | :--- 11 | *Shift* | emulated as Caps Shift 12 | *Command (⌘) and Option* | emulated as Symbol Shift 13 | *Delete* | emulated as Caps-0 (Delete) 14 | *Esc* | emulated as Caps-1 (Edit) 15 | *Caps Lock* | emulated as Caps-2 16 | *Cursor keys* | emulated as 5/6/7/8 (with or without Caps) depending on the [Machine > Use Shift with Cursor Keys](menus.html) setting 17 | *Tab* | emulated as emulated as Caps Shift-Symbol Shift (Extended Mode) 18 | 19 |
20 | Some further punctuation keys are supported, if they exist on your keyboard - 21 | ',', '.', '/', ';', ''', '#', '-', '\_', '+', ';', ':', ''', '"', '<', '>' and 22 | '='. These are mapped to the appropriate symbol-shifted keys on the Spectrum. 23 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/opus.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Opus Discovery Emulation 3 | description: This section describes the Opus Discovery interface emulation in Fuse. 4 | order: 130 5 | group: Floppy Disk Interfaces 6 | --- 7 | 8 | By default, Fuse emulates the Opus Discovery interface with the optional 2k RAM 9 | expansion and a second 40 track single sided disk drive. 10 | 11 | See the [Disk File Formats](formats.html) section for more details on supported 12 | disk file formats. The Opus Discoveries' printer port is also emulated for 13 | output only. (See the [Printer Emulation](printer.html) section for more 14 | details). The Opus Discovery may only be used with 16K, 48K, 128K, TC2048 and +2 15 | (not +2A) emulation. 16 | 17 | To access disks, use the same syntax as the Interface I and Microdrives. 18 | 19 | ## ROM File 20 | 21 | The ROM file for the Opus Discovery is not freely distributable and so is not 22 | included in this package. In order to use the Opus Discovery emulation you will 23 | need to download a copy of the ROM file and use the *Preferences > ROM* dialog 24 | to configure the file for use with Fuse. 25 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/pokememory.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: POKEs/Cheats 3 | description: This section describes the Fuse poke file support. 4 | order: 170 5 | --- 6 | 7 | Fuse supports multiface POKEs, allowing to modify specific memory addresses in 8 | order to cheat (infinite lives, infinite ammo, etc.). 9 | 10 | The 'POKEs/Cheats' dialog contains a list of recently loaded POKEs from a POK 11 | file. It is accessed from the *Machine > POKEs/Cheats* menu option. 12 | 13 | It is possible to load POKEs from an external file using the *File > Open…* menu 14 | option or the drag‐and‐drop functionality. After loading a snapshot or tape, 15 | Fuse will try to automatically locate a POK file with the same file name. This 16 | means that if we open 'GAME.TAP' then Fuse will try to open 'GAME.POK' and 17 | 'POKES/GAME.POK' See [the description at the World of Spectrum](http://www.worldofspectrum.org/POKformat.txt) for more details about this file format. 18 | 19 | POKEs loaded in the list can be activated or deactivated as the user wants and 20 | will remain in memory until a machine reset. 21 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/quicklook.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Quick Look Generator 3 | description: This section describes Fuses support of the Quick Look feature of macOSX 10.5 and newer. 4 | order: 250 5 | --- 6 | 7 | On macOSX 10.5 and newer, the Fuse Quick Look generator allows viewing 8 | thumbnails and previews of ZX Spectrum emulation related files. The supported 9 | types are: 10 | 11 | ## SCR and MLT Screen dumps 12 | 13 | Preview and thumbnails for SCR and MLT screen dumps in all graphics modes. 14 | 15 | ## Snapshots (SZX, Z80, SNA, etc.) 16 | 17 | The screen image embedded in the snapshot is extracted and used as the 18 | thumbnail for the file. Advanced graphics effects produced in some demo programs 19 | cannot be reproduced in this way in the same way as SCR files. 20 | 21 | ## RZX Spectrum recordings 22 | 23 | The first embedded snapshot in the file is extracted and used as the thumbnail 24 | for the file in the same way as snapshots above. 25 | 26 | ## Tape images (TAP and TZX) 27 | 28 | The first Spectrum screen file (SCREEN$) stored with the standard ROM loader in 29 | the tape is extracted and used as the thumbnail of the file in the same way as 30 | snapshot files above. 31 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/topic-1.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Setting Fuse Preferences 3 | group: Fuse Preferences 4 | --- 5 | 6 | Fuse has many options to control various details of the emulator and the machine 7 | being emulated. You use preferences to specify things such as the model of 8 | Sinclair Spectrum that you want to emulate, or the peripherals you would like to 9 | have connected to the virtual machine. Also note that any changes that enable 10 | and disable peripherals may result in a hard reset of the emulated machine. 11 | 12 | To view or change preferences choose *Fuse > Preferences*. 13 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/topic-2.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Floppy Disk Interfaces 3 | group: Floppy Disk Interfaces 4 | --- 5 | 6 | Fuse emulates many floppy drive interfaces developed for the ZX Spectrum and 7 | clones. Read more about them in this section. 8 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/topic-3.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Hard Disk Interfaces 3 | group: Hard Disk Interfaces 4 | --- 5 | 6 | Fuse emulates many hard drive interfaces developed for the ZX Spectrum and 7 | clones. Read more about them in this section. 8 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/trdos.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Beta 128 Emulation 3 | description: This section describes the TR-DOS disk formats supported by Fuse. 4 | order: 80 5 | group: Floppy Disk Interfaces 6 | --- 7 | 8 | Fuse supports Betadisk emulation in its Pentagon and Scorpion emulation, and 9 | also under 128K and +2 (but not +2A) emulation if the *Beta 128 interface* 10 | option from the *Preferences > Peripherals…* dialog is enabled. 11 | 12 | See the [Disk File Formats](formats.html) section for more details on supported 13 | disk file formats. 14 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_English.lproj/weak.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Weak Disk Data 3 | description: This section describes the Fuse poke finder. 4 | order: 190 5 | group: Floppy Disk Interfaces 6 | --- 7 | 8 | Some copy protections have what is described as 'weak/random’ data. Each time 9 | the sector is read one or more bytes will change, the value may be random 10 | between consecutive reads of the same sector. Two disk image formats (Extended 11 | DSK and UDI) can store this type of data. Fuse can read and use weak sector data 12 | from EDSK and UDI files when present, and can save back weak sector data to UDI 13 | image format files. 14 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_config.yml: -------------------------------------------------------------------------------- 1 | # Site settings 2 | apple_help: true # Flag for conditional markup, if needed. 3 | 4 | # Build settings 5 | markdown: kramdown 6 | 7 | # Localization collections for Help topics. Add more languages as needed. 8 | collections: 9 | English.lproj: 10 | output: true 11 | Japanese.lproj: 12 | output: true 13 | Dutch.lproj: 14 | output: true 15 | French.lproj: 16 | output: true 17 | Italian.lproj: 18 | output: true 19 | German.lproj: 20 | output: true 21 | Spanish.lproj: 22 | output: true 23 | 24 | defaults: 25 | - 26 | scope: 27 | path: "" 28 | values: 29 | layout: "help-page" 30 | order: 0 31 | 32 | exclude: ['Makefile', 'jekyll-server.command', 'Info.plist'] 33 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_includes/footer.html: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | Apple Help's hiutil doesn't index text inside FOOTER elements, see comment in header.html for details. 3 | {% endcomment %} 4 |
5 |
6 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_includes/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ page.title }} 5 | {% if page.apple_title %}{% endif %} 6 | {% if page.description %}{% endif %} 7 | {% if page.keywords %}{% endif %} 8 | {% if page.robots %}{% endif %} 9 | 10 | {% if page.style %}{% endif %} 11 | 12 | {% if page.script %}{% endif %} 13 | 14 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_includes/header.html: -------------------------------------------------------------------------------- 1 | 34 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include head.html %} 5 | 6 | {% include header.html %} 7 |
8 | {{ content }} 9 |
10 | {% include footer.html %} 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_layouts/help-page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |

{% if page.anchor %}{% endif %}{{ page.title }}

6 | 7 | {{ content }} 8 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_layouts/title-page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
6 |

{{ page.title }}

7 | 8 |
9 | 10 | {{ content }} 11 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/_plugins/page-rel-root.rb: -------------------------------------------------------------------------------- 1 | # Generator to add relative path to root to every page/collection doc with the key rel_root 2 | # 3 | # Example Usage: 4 | 5 | module PageRelRoot 6 | class Generator < Jekyll::Generator 7 | 8 | def generate(site) 9 | pages = site.pages + site.collections.flat_map{ |k,v| v.docs } 10 | pages.each do |page| 11 | depth = page.url.split("/", -1).count - 2 12 | page.data['rel_root'] = depth > 0 ? ".." + "/.."*(depth-1) : "." 13 | end 14 | end 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/book-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/FuseHelp/book-icon.png -------------------------------------------------------------------------------- /fusepb/FuseHelp/css/main.scss: -------------------------------------------------------------------------------- 1 | --- 2 | # Only the main Sass file needs front matter (the dashes are enough) 3 | --- 4 | @charset "utf-8"; 5 | 6 | // Default variables that can be overridden 7 | 8 | // $base-font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, sans-serif; 9 | // $base-font-size: 12px; 10 | // $small-font-size: $base-font-size * 0.875; 11 | // $base-line-height: 1.5; 12 | 13 | // $spacing-unit: 30px; 14 | 15 | // $text-color: #484848; 16 | // $background-color: #ffffff; 17 | // $brand-color: #007aff; 18 | 19 | // Import apple-help styles from `sass_dir` (defaults to `_sass`) 20 | @import "apple-help"; 21 | 22 | -------------------------------------------------------------------------------- /fusepb/FuseHelp/jekyll-server.command: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eux 4 | 5 | BASE=$(dirname "$0") 6 | SITE=$(basename "$BASE") 7 | URL=http://127.0.0.1:4000/ 8 | SITEROOT=_site 9 | 10 | cd "$BASE" 11 | 12 | # Title the window 13 | echo -n -e "\033]0;$SITE Jekyll Server\007" 14 | 15 | # Auto-refresh using fswatch, if available... 16 | if which fswatch 17 | then 18 | fswatch -o _site | xargs -n1 -I{} osascript -e "tell application \"Safari\" to do JavaScript \"location.reload(true)\" in documents whose URL starts with \"$URL\"" > /dev/null & 19 | else 20 | echo "NOTE: Install fswatch (e.g. brew install fswatch) to allow auto-refresh" 21 | fi 22 | 23 | # Open a window, if one isn't found 24 | osascript -e "tell application \"Safari\" to if ((documents whose URL starts with \"$URL\") = {}) then open location \"$URL\"" 25 | 26 | jekyll serve --watch 27 | -------------------------------------------------------------------------------- /fusepb/FuseMenus.h: -------------------------------------------------------------------------------- 1 | /* FuseMenus.h: Functions which provide an interface for C code to call the 2 | FuseController's functions 3 | Copyright (c) 2003 Fredrick Meunier 4 | 5 | $Id$ 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 | 21 | Author contact information: 22 | 23 | E-mail: pak21-fuse@srcf.ucam.org 24 | 25 | */ 26 | 27 | #ifndef FUSEMENUS_H 28 | #define FUSEMENUS_H 29 | 30 | void SetEmulationHz(float); 31 | 32 | #endif /* #ifndef FUSEMENUS_H */ 33 | -------------------------------------------------------------------------------- /fusepb/FuseX.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.files.user-selected.read-write 8 | 9 | com.apple.security.network.client 10 | 11 | com.apple.security.files.bookmarks.app-scope 12 | 13 | com.apple.security.network.server 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /fusepb/NumberFormatter.h: -------------------------------------------------------------------------------- 1 | /* NumberFormatter.h: A formatter that only allows numbers to be entered 2 | Copyright (c) 2003 Fredrick Meunier 3 | 4 | $Id$ 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | 20 | Author contact information: 21 | 22 | E-mail: pak21-fuse@srcf.ucam.org 23 | 24 | */ 25 | 26 | #import 27 | 28 | @interface NumberFormatter : NSNumberFormatter { 29 | } 30 | 31 | - (BOOL)isPartialStringValid:(NSString *)partial 32 | newEditingString:(NSString **)newString 33 | errorDescription:(NSString **)error; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /fusepb/content_arrays/CAMachines.h: -------------------------------------------------------------------------------- 1 | /* CAMachines.h: Object encapsulating libspectrum machines 2 | Copyright (c) 2005 Fredrick Meunier 3 | 4 | $Id$ 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | 20 | Author contact information: 21 | 22 | E-mail: pak21-fuse@srcf.ucam.org 23 | 24 | */ 25 | 26 | #import 27 | 28 | @interface Machine : NSObject 29 | { 30 | NSString *name; 31 | int type; 32 | } 33 | 34 | + (NSArray *)allMachines; 35 | + (id)machineWithName:(NSString *)aTitle andType:(int)aValue; 36 | + (Machine *)machineForName:(NSString *)theName; 37 | + (Machine *)machineForType:(int)theType; 38 | @property (copy,getter=machineName,setter=setMachineName:) NSString *name; 39 | @property (getter=machineType,setter=setMachineType:) int type; 40 | 41 | - (id)copyWithZone:(NSZone *)zone; 42 | - (id)valueForUndefinedKey:(NSString *)key; 43 | @end 44 | -------------------------------------------------------------------------------- /fusepb/content_arrays/HIDJoysticks.h: -------------------------------------------------------------------------------- 1 | /* HIDJoysticks.h: Object encapsulating SDL joysticks 2 | Copyright (c) 2005 Fredrick Meunier 3 | 4 | $Id$ 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | 20 | Author contact information: 21 | 22 | E-mail: pak21-fuse@srcf.ucam.org 23 | 24 | */ 25 | 26 | #import 27 | 28 | @interface HIDJoystick : NSObject 29 | { 30 | NSString *name; 31 | int type; 32 | } 33 | 34 | + (NSArray *)allJoysticks; 35 | + (id)joystickWithName:(NSString *)aTitle andType:(int)aValue; 36 | + (HIDJoystick *)joystickForName:(NSString *)theName; 37 | + (HIDJoystick *)joystickForType:(int)theType; 38 | @property (retain,getter=joystickName,setter=setJoystickName:) NSString *name; 39 | @property (getter=joystickType,setter=setJoystickType:) int type; 40 | 41 | - (id)copyWithZone:(NSZone *)zone; 42 | - (id)valueForUndefinedKey:(NSString *)key; 43 | @end 44 | -------------------------------------------------------------------------------- /fusepb/content_arrays/Joysticks.h: -------------------------------------------------------------------------------- 1 | /* Joysticks.h: Object encapsulating libspectrum joysticks 2 | Copyright (c) 2005 Fredrick Meunier 3 | 4 | $Id$ 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | 20 | Author contact information: 21 | 22 | E-mail: pak21-fuse@srcf.ucam.org 23 | 24 | */ 25 | 26 | #import 27 | 28 | @interface Joystick : NSObject 29 | { 30 | NSString *name; 31 | int type; 32 | } 33 | 34 | + (NSArray *)allJoysticks; 35 | + (id)joystickWithName:(NSString *)aTitle andType:(int)aValue; 36 | + (Joystick *)joystickForName:(NSString *)theName; 37 | + (Joystick *)joystickForType:(int)theType; 38 | @property (retain,getter=joystickName,setter=setJoystickName:) NSString *name; 39 | @property (getter=joystickType,setter=setJoystickType:) int type; 40 | 41 | - (id)copyWithZone:(NSZone *)zone; 42 | - (id)valueForUndefinedKey:(NSString *)key; 43 | @end 44 | -------------------------------------------------------------------------------- /fusepb/controllers/KeyboardController.h: -------------------------------------------------------------------------------- 1 | /* KeybboardController.h: Routines for dealing with the Keyboard Panel 2 | Copyright (c) 2002 Fredrick Meunier 3 | 4 | $Id$ 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | 20 | Author contact information: 21 | 22 | E-mail: pak21-fuse@srcf.ucam.org 23 | 24 | */ 25 | 26 | #import 27 | 28 | 29 | @interface KeyboardController : NSWindowController { 30 | IBOutlet NSImageView *keyboardView; 31 | 32 | int window_open; 33 | } 34 | 35 | - (id)init; 36 | - (void)dealloc; 37 | - (void)showWindow:(id)sender; 38 | - (void)showCloseWindow:(id)sender; 39 | - (void)handleWillClose:(NSNotification *)note; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /fusepb/controllers/LoadBinaryController.h: -------------------------------------------------------------------------------- 1 | /* LoadBinaryController.h: Routines for dealing with the Load Binary Panel 2 | Copyright (c) 2003 Fredrick Meunier 3 | 4 | $Id$ 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | 20 | Author contact information: 21 | 22 | E-mail: pak21-fuse@srcf.ucam.org 23 | 24 | */ 25 | 26 | #import 27 | 28 | @interface LoadBinaryController : NSWindowController 29 | { 30 | IBOutlet NSFormCell *file; 31 | IBOutlet NSFormCell *start; 32 | IBOutlet NSFormCell *length; 33 | IBOutlet NSButton *apply; 34 | } 35 | 36 | - (IBAction)apply:(id)sender; 37 | - (IBAction)cancel:(id)sender; 38 | - (void)showWindow:(id)sender; 39 | - (IBAction)chooseFile:(id)sender; 40 | - (void)awakeFromNib; 41 | - (void)controlTextDidChange:(NSNotification *)notification; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /fusepb/controllers/MemoryBrowserController.h: -------------------------------------------------------------------------------- 1 | /* MemoryBrowserController.h: Routines for dealing with the Memory Browser Panel 2 | Copyright (c) 2004 Fredrick Meunier 3 | 4 | $Id$ 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | 20 | Author contact information: 21 | 22 | E-mail: pak21-fuse@srcf.ucam.org 23 | 24 | */ 25 | #import 26 | 27 | 28 | @interface MemoryBrowserController : NSWindowController 29 | { 30 | IBOutlet NSTableView *memoryBrowser; 31 | NSMutableArray *tableContents; 32 | } 33 | - (void)showWindow:(id)sender; 34 | - (int)numberOfRowsInTableView:(NSTableView *)table; 35 | - (id)tableView:(NSTableView *)table objectValueForTableColumn:(NSTableColumn *)col row:(int)row; 36 | - (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(int)rowIndex; 37 | @end 38 | -------------------------------------------------------------------------------- /fusepb/controllers/PokeMemoryController.h: -------------------------------------------------------------------------------- 1 | /* PokeMemoryController.h: Routines for dealing with the POK file Panel 2 | Copyright (c) 2012 Fredrick Meunier 3 | 4 | $Id$ 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | 20 | Author contact information: 21 | 22 | E-mail: pak21-fuse@srcf.ucam.org 23 | 24 | */ 25 | #import 26 | 27 | 28 | @interface PokeMemoryController : NSWindowController 29 | { 30 | IBOutlet NSTableView *trainers; 31 | IBOutlet NSArrayController *trainersController; 32 | } 33 | - (void)showWindow:(id)sender; 34 | - (void)addObjectToPokeList:(NSDictionary*)poke; 35 | 36 | @property (retain,getter=trainersController,readonly) NSArrayController *trainersController; 37 | @end 38 | -------------------------------------------------------------------------------- /fusepb/controllers/PreferencesController.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/controllers/PreferencesController.m -------------------------------------------------------------------------------- /fusepb/controllers/RollbackController.h: -------------------------------------------------------------------------------- 1 | /* RollbackController.h: Routines for dealing with the Rollback Panel 2 | Copyright (c) 2004 Fredrick Meunier 3 | 4 | $Id$ 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | 20 | Author contact information: 21 | 22 | E-mail: pak21-fuse@srcf.ucam.org 23 | 24 | */ 25 | #import 26 | 27 | 28 | @interface RollbackController : NSWindowController 29 | { 30 | IBOutlet NSTableView *rollbackPoints; 31 | IBOutlet NSButton *okButton; 32 | NSMutableArray *tableContents; 33 | } 34 | - (IBAction)apply:(id)sender; 35 | - (IBAction)cancel:(id)sender; 36 | - (void)showWindow:(id)sender; 37 | - (void)awakeFromNib; 38 | - (int)numberOfRowsInTableView:(NSTableView *)table; 39 | - (id)tableView:(NSTableView *)table objectValueForTableColumn:(NSTableColumn *)col row:(int)row; 40 | - (void)update; 41 | - (void)rollbackPointsDoubleAction:(id)sender; 42 | @end 43 | -------------------------------------------------------------------------------- /fusepb/controllers/SaveBinaryController.h: -------------------------------------------------------------------------------- 1 | /* SaveBinaryController.h: Routines for dealing with the Save Binary Panel 2 | Copyright (c) 2003 Fredrick Meunier 3 | 4 | $Id$ 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | 20 | Author contact information: 21 | 22 | E-mail: pak21-fuse@srcf.ucam.org 23 | 24 | */ 25 | 26 | #import 27 | 28 | @interface SaveBinaryController : NSWindowController 29 | { 30 | IBOutlet NSButton *apply; 31 | IBOutlet NSFormCell *file; 32 | IBOutlet NSFormCell *length; 33 | IBOutlet NSFormCell *start; 34 | } 35 | 36 | - (IBAction)apply:(id)sender; 37 | - (IBAction)cancel:(id)sender; 38 | - (void)showWindow:(id)sender; 39 | - (IBAction)chooseFile:(id)sender; 40 | - (void)awakeFromNib; 41 | - (void)controlTextDidChange:(NSNotification *)notification; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /fusepb/keystate.h: -------------------------------------------------------------------------------- 1 | /* keystate.h: keyboard input state machine - prevents problems with pressing 2 | one "special" key and releasing another (because more than one 3 | were pressed or shift was released before the key) 4 | Copyright (c) 2010 Fredrick Meunier 5 | 6 | $Id$ 7 | 8 | This program is free software; you can redistribute it and/or modify 9 | it under the terms of the GNU General Public License as published by 10 | the Free Software Foundation; either version 2 of the License, or 11 | (at your option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | GNU General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License along 19 | with this program; if not, write to the Free Software Foundation, Inc., 20 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 21 | 22 | Author contact information: 23 | 24 | E-mail: fredm@spamcop.net 25 | 26 | */ 27 | 28 | #ifndef KEYSTATE_H 29 | #define KEYSTATE_H 30 | 31 | enum events { 32 | PRESS_NORMAL, 33 | RELEASE_NORMAL, 34 | PRESS_SPECIAL, 35 | RELEASE_SPECIAL, 36 | MAX_EVENTS 37 | }; 38 | 39 | void process_keyevent( enum events event, input_key keysym ); 40 | void reset_keystate( void ); 41 | 42 | #endif /* #ifndef KEYSTATE_H */ 43 | -------------------------------------------------------------------------------- /fusepb/main.h: -------------------------------------------------------------------------------- 1 | #ifndef MAIN_H 2 | #define MAIN_H 3 | 4 | extern int ac; 5 | extern char **av; 6 | 7 | #endif /* #ifndef MAIN_H */ 8 | -------------------------------------------------------------------------------- /fusepb/resources/48k.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/48k.png -------------------------------------------------------------------------------- /fusepb/resources/Graphics_Filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/Graphics_Filter.png -------------------------------------------------------------------------------- /fusepb/resources/Machine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/Machine.png -------------------------------------------------------------------------------- /fusepb/resources/Peripherals.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/Peripherals.png -------------------------------------------------------------------------------- /fusepb/resources/RZX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/RZX.png -------------------------------------------------------------------------------- /fusepb/resources/Select_ROMs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/Select_ROMs.png -------------------------------------------------------------------------------- /fusepb/resources/Sound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/Sound.png -------------------------------------------------------------------------------- /fusepb/resources/blank.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/blank.icns -------------------------------------------------------------------------------- /fusepb/resources/cassette_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/cassette_green.png -------------------------------------------------------------------------------- /fusepb/resources/cassette_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/cassette_red.png -------------------------------------------------------------------------------- /fusepb/resources/csw.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/csw.icns -------------------------------------------------------------------------------- /fusepb/resources/dck.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/dck.icns -------------------------------------------------------------------------------- /fusepb/resources/debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/debug.png -------------------------------------------------------------------------------- /fusepb/resources/dsk.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/dsk.icns -------------------------------------------------------------------------------- /fusepb/resources/hdf.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/hdf.icns -------------------------------------------------------------------------------- /fusepb/resources/mdr.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/mdr.icns -------------------------------------------------------------------------------- /fusepb/resources/microdrive_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/microdrive_green.png -------------------------------------------------------------------------------- /fusepb/resources/microdrive_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/microdrive_red.png -------------------------------------------------------------------------------- /fusepb/resources/plus3disk_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/plus3disk_green.png -------------------------------------------------------------------------------- /fusepb/resources/plus3disk_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/plus3disk_red.png -------------------------------------------------------------------------------- /fusepb/resources/qs2t_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/qs2t_icon.png -------------------------------------------------------------------------------- /fusepb/resources/raw.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/raw.icns -------------------------------------------------------------------------------- /fusepb/resources/rom.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/rom.icns -------------------------------------------------------------------------------- /fusepb/resources/rzx.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/rzx.icns -------------------------------------------------------------------------------- /fusepb/resources/scl.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/scl.icns -------------------------------------------------------------------------------- /fusepb/resources/scr.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/scr.icns -------------------------------------------------------------------------------- /fusepb/resources/slt.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/slt.icns -------------------------------------------------------------------------------- /fusepb/resources/sna.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/sna.icns -------------------------------------------------------------------------------- /fusepb/resources/snp.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/snp.icns -------------------------------------------------------------------------------- /fusepb/resources/sp.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/sp.icns -------------------------------------------------------------------------------- /fusepb/resources/szx.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/szx.icns -------------------------------------------------------------------------------- /fusepb/resources/tap.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/tap.icns -------------------------------------------------------------------------------- /fusepb/resources/trd.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/trd.icns -------------------------------------------------------------------------------- /fusepb/resources/ts2068.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/ts2068.png -------------------------------------------------------------------------------- /fusepb/resources/tzx.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/tzx.icns -------------------------------------------------------------------------------- /fusepb/resources/z80.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/z80.icns -------------------------------------------------------------------------------- /fusepb/resources/zxs.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/fusepb/resources/zxs.icns -------------------------------------------------------------------------------- /fusepb/scaler/scalers16.c: -------------------------------------------------------------------------------- 1 | /* scalers.c: the actual graphics scalers 2 | * Copyright (C) 2003 Fredrick Meunier, Philip Kendall 3 | * 4 | * $Id$ 5 | * 6 | * Originally taken from ScummVM - Scumm Interpreter 7 | * Copyright (C) 2001 Ludvig Strigeus 8 | * Copyright (C) 2001/2002 The ScummVM project 9 | * 10 | * This program is free software; you can redistribute it and/or 11 | * modify it under the terms of the GNU General Public License 12 | * as published by the Free Software Foundation; either version 2 13 | * of the License, or (at your option) any later version. 14 | 15 | * This program is distributed in the hope that it will be useful, 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | * GNU General Public License for more details. 19 | 20 | * You should have received a copy of the GNU General Public License 21 | * along with this program; if not, write to the Free Software 22 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 23 | * 24 | */ 25 | 26 | #define SCALER_DATA_SIZE 2 27 | 28 | #include "ui/scaler/scalers.c" 29 | -------------------------------------------------------------------------------- /fusepb/settings_cocoa.h: -------------------------------------------------------------------------------- 1 | /* settings_cocoa.h: Handling configuration settings 2 | Copyright (c) Copyright (c) 2001-2003 Philip Kendall, Fredrick Meunier 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_SETTINGS_COCOA_H 25 | #define FUSE_SETTINGS_COCOA_H 26 | 27 | #import 28 | 29 | #include "settings.h" 30 | 31 | struct settings_cocoa { 32 | 33 | NSMutableArray *recent_snapshots; 34 | 35 | }; 36 | 37 | #define NUM_RECENT_ITEMS 10 38 | 39 | NSMutableArray* 40 | settings_set_rom_array( settings_info *settings ); 41 | void 42 | settings_get_rom_array( settings_info *settings, NSArray *machineroms ); 43 | NSInteger 44 | machineroms_compare( id dict1, id dict2, void *context ); 45 | 46 | #endif /* #ifndef FUSE_SETTINGS_COCOA_H */ 47 | -------------------------------------------------------------------------------- /fusepb/transformers/MachineNameToIdTransformer.h: -------------------------------------------------------------------------------- 1 | /* MachineNameToIdTransformer.h: A transformer that converts between machine 2 | names and ids 3 | Copyright (c) 2005 Fredrick Meunier 4 | 5 | $Id$ 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 | 21 | Author contact information: 22 | 23 | E-mail: pak21-fuse@srcf.ucam.org 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface MachineNameToIdTransformer : NSValueTransformer { 30 | } 31 | + (Class)transformedValueClass; 32 | + (BOOL)allowsReverseTransformation; 33 | - (id)transformedValue:(id)value; 34 | - (id)reverseTransformedValue:(id)value; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /fusepb/transformers/MachineScalerIsEnabled.h: -------------------------------------------------------------------------------- 1 | /* MachineScalerIsEnabled.m: A transformer that tells whether a Timex machine 2 | is enabled 3 | Copyright (c) 2005 Fredrick Meunier 4 | 5 | $Id$ 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 | 21 | Author contact information: 22 | 23 | E-mail: pak21-fuse@srcf.ucam.org 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface MachineScalerIsEnabled : NSValueTransformer { 30 | int timex; 31 | } 32 | + (MachineScalerIsEnabled *)machineScalerIsEnabledWithInt:(int)value; 33 | + (Class)transformedValueClass; 34 | + (BOOL)allowsReverseTransformation; 35 | - (id)initWithInt:(int)value; 36 | - (id)transformedValue:(id)value; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /fusepb/transformers/ScalerNameToIdTransformer.h: -------------------------------------------------------------------------------- 1 | /* ScalerNameToIdTransformer.h: A transformer that converts between scaler names 2 | and ids 3 | Copyright (c) 2005 Fredrick Meunier 4 | 5 | $Id$ 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 | 21 | Author contact information: 22 | 23 | E-mail: pak21-fuse@srcf.ucam.org 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface ScalerNameToIdTransformer : NSValueTransformer { 30 | } 31 | + (Class)transformedValueClass; 32 | + (BOOL)allowsReverseTransformation; 33 | - (id)transformedValue:(id)value; 34 | - (id)reverseTransformedValue:(id)value; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /fusepb/transformers/VolumeSliderToPrefTransformer.h: -------------------------------------------------------------------------------- 1 | /* VolumeSliderToPrefTransformer.h: A transformer that converts volume settings 2 | to a valuble suitable for a slider 3 | Copyright (c) 2005 Fredrick Meunier 4 | 5 | $Id$ 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, write to the Free Software 19 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 | 21 | Author contact information: 22 | 23 | E-mail: pak21-fuse@srcf.ucam.org 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface VolumeSliderToPrefTransformer : NSValueTransformer { 30 | } 31 | + (Class)transformedValueClass; 32 | + (BOOL)allowsReverseTransformation; 33 | - (id)transformedValue:(id)value; 34 | - (id)reverseTransformedValue:(id)value; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /fusepb/views/Texture.h: -------------------------------------------------------------------------------- 1 | /* Texture.h: Implementation for the Texture class 2 | Copyright (c) 2007 Fredrick Meunier 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | 18 | Author contact information: 19 | 20 | E-mail: fredm@spamcop.net 21 | 22 | */ 23 | 24 | #import 25 | 26 | #include 27 | #include 28 | #include 29 | 30 | #include "ui/cocoa/cocoadisplay.h" 31 | 32 | @interface Texture : NSObject 33 | { 34 | Cocoa_Texture texture; 35 | GLuint textureId; 36 | } 37 | -(id) initWithImageFile:(NSString*)filename withXOrigin:(int)x 38 | withYOrigin:(int)y; 39 | -(void) dealloc; 40 | 41 | -(Cocoa_Texture*) getTexture; 42 | @property (getter=getTextureId,readonly) GLuint textureId; 43 | 44 | -(void) uploadIconTexture; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /hacking/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | ## Copyright (c) 2002-2011 Philip Kendall 3 | ## Copyright (c) 2015 Sergio Baldoví 4 | 5 | ## This program is free software; you can redistribute it and/or modify 6 | ## it under the terms of the GNU General Public License as published by 7 | ## the Free Software Foundation; either version 2 of the License, or 8 | ## (at your option) any later version. 9 | ## 10 | ## This program is distributed in the hope that it will be useful, 11 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ## GNU General Public License for more details. 14 | ## 15 | ## You should have received a copy of the GNU General Public License along 16 | ## with this program; if not, write to the Free Software Foundation, Inc., 17 | ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | ## 19 | ## Author contact information: 20 | ## 21 | ## E-mail: philip-fuse@shadowmagic.org.uk 22 | 23 | EXTRA_DIST += \ 24 | hacking/code_beautifiers.txt \ 25 | hacking/coding_style.txt \ 26 | hacking/cvs-tags \ 27 | hacking/implementation_notes.txt \ 28 | hacking/input.txt \ 29 | hacking/peripheral_tests.txt \ 30 | hacking/sound.txt \ 31 | hacking/spectranet.txt \ 32 | hacking/tc2048_tech_notes.txt \ 33 | hacking/timer.txt \ 34 | hacking/ui.txt \ 35 | hacking/uncrustify.cfg \ 36 | hacking/valgrind.supp 37 | -------------------------------------------------------------------------------- /hacking/code_beautifiers.txt: -------------------------------------------------------------------------------- 1 | Uncrustify 2 | ========== 3 | This program modifies .c or .h files, using a coding style similar to the 4 | rest of Fuse source. It is intended for use with new code. 5 | 6 | Copy uncrustify.cfg to $HOME/.uncrustify.cfg to set as default options, 7 | or use: 8 | 9 | uncrustify -c uncrustify.cfg input.c 10 | 11 | Web Site: 12 | 13 | http://uncrustify.sourceforge.net/ 14 | 15 | Known issues 16 | ------------ 17 | The configuration allow extra spaces around operators for aligning purposes, 18 | that could bypass unwanted extra spaces. You can check this by enabling the 19 | strict rules and doing a side-by-side comparison with both outputs. 20 | 21 | When using nl_if_brace to remove newlines between `if' and `{', a newline 22 | is added between `}' and `else', so nl_brace_else is set to `remove' as a 23 | workaround. It should be valid both `} else' and `} \n else' forms. 24 | 25 | 26 | GNU Indent 27 | ========== 28 | This is another code beautifier available at: 29 | 30 | https://www.gnu.org/software/indent/ 31 | 32 | Use: 33 | indent -br -ce -prs -npcs -nsaf -nsai -nsaw -nsob input.c -o output.c 34 | 35 | Known issues 36 | ------------ 37 | There isn't an option to remove a space after switch statement, but you can 38 | use this expression with sed: 's/switch (/switch(/g' 39 | 40 | There isn't an option to remove spaces between parentheses in a function call 41 | when there are no arguments, but you can use this expression with sed: 42 | 's/( )/()/g' 43 | -------------------------------------------------------------------------------- /hacking/sound.txt: -------------------------------------------------------------------------------- 1 | What you need to implement for Fuse's low-level sound routines 2 | ============================================================== 3 | 4 | Fuse's sound routines require three functions to be implemented: 5 | 6 | * int sound_lowlevel_init( const char *device, int *freqptr, int *stereoptr ) 7 | 8 | Initialise the sound card etc. If 'device' is non-null, use the device 9 | specified there, otherwise use a sensible default. '*freqptr' and 10 | '*stereoptr' give desired states for the output frequency and 11 | stereoness respectively, and should be set to the values actually 12 | obtained from the hardware. 13 | 14 | void sound_lowlevel_end( void ); 15 | 16 | Close down the sound card etc. 17 | 18 | void sound_lowlevel_frame( libspectrum_signed_word *data, int len ); 19 | 20 | Write the 'len' 16-bit items of sound data in 'data' to the sound hardware. 21 | -------------------------------------------------------------------------------- /hacking/timer.txt: -------------------------------------------------------------------------------- 1 | What you need to implement for Fuse's timing routines 2 | ===================================================== 3 | 4 | If you're using SDL as the user interface, Fuse will use SDL's timing routines 5 | and no further implementation is required. 6 | 7 | If you're not using SDL, two routines are required: 8 | 9 | * double compat_timer_get_time( void ) 10 | 11 | Return the number of seconds since an arbitrary epoch, or a value < 0 if 12 | the time could not be determined. 13 | 14 | * void compat_timer_sleep( int ms ) 15 | 16 | Cause Fuse to go to sleep for the given number of milliseconds. 17 | -------------------------------------------------------------------------------- /hacking/valgrind.supp: -------------------------------------------------------------------------------- 1 | { 2 | gtk_init_1 3 | Memcheck:Cond 4 | fun:__GI___strcasecmp_l 5 | fun:__gconv_open 6 | fun:_nl_find_msg 7 | fun:__dcigettext 8 | fun:gtk_get_option_group 9 | fun:gtk_parse_args 10 | fun:gtk_init_check 11 | fun:gtk_init 12 | } 13 | { 14 | gtk_init_2 15 | Memcheck:Value8 16 | fun:__GI___strcasecmp_l 17 | fun:__gconv_open 18 | fun:_nl_find_msg 19 | fun:__dcigettext 20 | fun:gtk_get_option_group 21 | fun:gtk_parse_args 22 | fun:gtk_init_check 23 | fun:gtk_init 24 | } 25 | { 26 | asound 27 | Memcheck:Overlap 28 | fun:memcpy 29 | fun:snd_pcm_area_copy 30 | fun:snd_pcm_areas_copy 31 | obj:/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0 32 | obj:/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0 33 | obj:/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0 34 | obj:/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0 35 | obj:/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0 36 | obj:/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0 37 | obj:/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0 38 | obj:/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0 39 | fun:snd_pcm_mmap_writei 40 | } 41 | { 42 | zlib 43 | Memcheck:Cond 44 | fun:inflateReset2 45 | fun:inflateInit2_ 46 | fun:zlib_inflate 47 | } 48 | -------------------------------------------------------------------------------- /infrastructure/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | ## Copyright (c) 2016 Philip Kendall 3 | 4 | ## This program is free software; you can redistribute it and/or modify 5 | ## it under the terms of the GNU General Public License as published by 6 | ## the Free Software Foundation; either version 2 of the License, or 7 | ## (at your option) any later version. 8 | ## 9 | ## This program is distributed in the hope that it will be useful, 10 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | ## GNU General Public License for more details. 13 | ## 14 | ## You should have received a copy of the GNU General Public License along 15 | ## with this program; if not, write to the Free Software Foundation, Inc., 16 | ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | ## 18 | ## Author contact information: 19 | ## 20 | ## E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | fuse_SOURCES += infrastructure/startup_manager.c 23 | 24 | noinst_HEADERS += infrastructure/startup_manager.h 25 | -------------------------------------------------------------------------------- /lib/cassette.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/cassette.bmp -------------------------------------------------------------------------------- /lib/keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/keyboard.png -------------------------------------------------------------------------------- /lib/keyboard.scr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/keyboard.scr -------------------------------------------------------------------------------- /lib/microdrive.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/microdrive.bmp -------------------------------------------------------------------------------- /lib/plus3disk.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/plus3disk.bmp -------------------------------------------------------------------------------- /lib/tests/fatware-success.hdf.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/tests/fatware-success.hdf.bz2 -------------------------------------------------------------------------------- /lib/tests/idedos-success.hdf.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/tests/idedos-success.hdf.bz2 -------------------------------------------------------------------------------- /lib/tests/success.d80.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/tests/success.d80.bz2 -------------------------------------------------------------------------------- /lib/tests/success.mdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/tests/success.mdr -------------------------------------------------------------------------------- /lib/tests/success.mgt.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/tests/success.mgt.bz2 -------------------------------------------------------------------------------- /lib/tests/success.opd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/tests/success.opd -------------------------------------------------------------------------------- /lib/tests/success.udi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/lib/tests/success.udi -------------------------------------------------------------------------------- /loader.h: -------------------------------------------------------------------------------- 1 | /* loader.h: loader detection 2 | Copyright (c) 2006 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_LOADER_H 25 | #define FUSE_LOADER_H 26 | 27 | #include "libspectrum.h" 28 | 29 | void loader_frame( libspectrum_dword frame_length ); 30 | void loader_tape_play( void ); 31 | void loader_tape_stop( void ); 32 | void loader_detect_loader( void ); 33 | void loader_set_acceleration_flags( int flags, int from_acceleration ); 34 | 35 | #endif /* #ifndef FUSE_LOADER_H */ 36 | -------------------------------------------------------------------------------- /machines/machines_periph.h: -------------------------------------------------------------------------------- 1 | /* machines_periph.h: various machine-specific peripherals 2 | Copyright (c) 2011-2016 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_MACHINES_PERIPH_H 25 | #define FUSE_MACHINES_PERIPH_H 26 | 27 | void machines_periph_register_startup( void ); 28 | 29 | void machines_periph_48( void ); 30 | void machines_periph_128( void ); 31 | void machines_periph_plus3( void ); 32 | void machines_periph_timex( void ); 33 | void machines_periph_pentagon( void ); 34 | 35 | #endif /* #ifndef FUSE_MACHINES_PERIPH_H */ 36 | -------------------------------------------------------------------------------- /machines/scorpion.h: -------------------------------------------------------------------------------- 1 | /* scorpion.h: Scorpion 256K specific routines 2 | Copyright (c) 1999-2004 Philip Kendall and Fredrick Meunier 3 | Copyright (c) 2004 Stuart Brady 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation; either version 2 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License along 16 | with this program; if not, write to the Free Software Foundation, Inc., 17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | 19 | Author contact information: 20 | 21 | E-mail: philip-fuse@shadowmagic.org.uk 22 | 23 | */ 24 | 25 | #ifndef FUSE_SCORPION_H 26 | #define FUSE_SCORPION_H 27 | 28 | #include "machine.h" 29 | 30 | int scorpion_init( fuse_machine_info *machine ); 31 | void scorpion_memoryport2_write( libspectrum_word port, libspectrum_byte b ); 32 | 33 | #endif /* #ifndef FUSE_SCORPION_H */ 34 | -------------------------------------------------------------------------------- /machines/spec128.h: -------------------------------------------------------------------------------- 1 | /* spec128.h: Spectrum 128K specific routines 2 | Copyright (c) 1999-2004 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_SPEC128_H 25 | #define FUSE_SPEC128_H 26 | 27 | #include "libspectrum.h" 28 | 29 | #include "machine.h" 30 | 31 | int spec128_init( fuse_machine_info *machine ); 32 | int spec128_common_reset( int contention ); 33 | 34 | void spec128_memoryport_write( libspectrum_word port, libspectrum_byte b ); 35 | void spec128_select_rom( int rom ); 36 | void spec128_select_page( int page ); 37 | 38 | int spec128_memory_map( void ); 39 | 40 | #endif /* #ifndef FUSE_SPEC128_H */ 41 | -------------------------------------------------------------------------------- /machines/spec48.h: -------------------------------------------------------------------------------- 1 | /* spec48.h: Spectrum 48K specific routines 2 | Copyright (c) 1999-2004 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_SPEC48_H 25 | #define FUSE_SPEC48_H 26 | 27 | #include "libspectrum.h" 28 | 29 | #include "machine.h" 30 | 31 | int spec48_port_from_ula( libspectrum_word port ); 32 | 33 | int spec48_init( fuse_machine_info *machine ); 34 | void spec48_common_display_setup( void ); 35 | int spec48_common_reset( void ); 36 | int spec48_memory_map( void ); 37 | 38 | #endif /* #ifndef FUSE_SPEC48_H */ 39 | -------------------------------------------------------------------------------- /man/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | ## Copyright (c) 1999-2002 Philip Kendall 3 | ## Copyright (c) 2015 Sergio Baldoví 4 | 5 | ## This program is free software; you can redistribute it and/or modify 6 | ## it under the terms of the GNU General Public License as published by 7 | ## the Free Software Foundation; either version 2 of the License, or 8 | ## (at your option) any later version. 9 | ## 10 | ## This program is distributed in the hope that it will be useful, 11 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ## GNU General Public License for more details. 14 | ## 15 | ## You should have received a copy of the GNU General Public License along 16 | ## with this program; if not, write to the Free Software Foundation, Inc., 17 | ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | ## 19 | ## Author contact information: 20 | ## 21 | ## E-mail: philip-fuse@shadowmagic.org.uk 22 | 23 | man_MANS = man/fuse.1 24 | 25 | EXTRA_DIST += $(man_MANS) 26 | -------------------------------------------------------------------------------- /movie.h: -------------------------------------------------------------------------------- 1 | /* movie.h: header for movie.c 2 | Copyright (c) 2006 Gergely Szasz 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | /* 25 | FSMF - Fuse Spectrum Movie File 26 | */ 27 | extern int movie_recording; 28 | 29 | void movie_init( void ); 30 | void movie_start( const char *name ); 31 | void movie_stop( void ); 32 | void movie_pause( void ); 33 | void movie_add_area( int x, int y, int w, int h ); 34 | void movie_start_frame( void ); 35 | void movie_init_sound( int f, int s ); 36 | void movie_add_sound( libspectrum_signed_word *buf, int len ); 37 | -------------------------------------------------------------------------------- /peripherals/covox.h: -------------------------------------------------------------------------------- 1 | /* covox.h: Routines for handling the Covox 2 | Copyright (c) 2011-2017 Jon Mitchell, Philip Kendall, Fredrick Meunier 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | Philip: philip-fuse@shadowmagic.org.uk 21 | 22 | Jon: ooblick@gmail.com 23 | 24 | */ 25 | 26 | #ifndef FUSE_COVOX_H 27 | #define FUSE_COVOX_H 28 | 29 | #include "libspectrum.h" 30 | 31 | typedef struct covox_info { 32 | libspectrum_byte covox_dac; /* Current byte in the Covox 8bit DAC */ 33 | } covox_info; 34 | 35 | void covox_register_startup( void ); 36 | void covox_write( libspectrum_word port, libspectrum_byte val ); 37 | 38 | #endif /* #ifndef FUSE_COVOX_H */ 39 | -------------------------------------------------------------------------------- /peripherals/dck.h: -------------------------------------------------------------------------------- 1 | /* dck.h: dock snapshot (Warajevo .DCK) handling routines 2 | Copyright (c) 2003 Darren Salt, Fredrick Meunier 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | Philip: philip-fuse@shadowmagic.org.uk 21 | 22 | Darren: linux@youmustbejoking.demon.co.uk 23 | Fred: fredm@spamcop.net 24 | 25 | */ 26 | 27 | #ifndef FUSE_DCK_H 28 | #define FUSE_DCK_H 29 | 30 | /* Dock cart inserted? */ 31 | extern int dck_active; 32 | 33 | int dck_insert( const char *filename ); 34 | void dck_eject( void ); 35 | int dck_reset( void ); 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /peripherals/disk/crc.h: -------------------------------------------------------------------------------- 1 | /* crc.h: Routines for CRC16/CRC32 2 | Copyright (c) 2007 Gergely Szasz 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | Philip: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | #ifndef FUSE_CRC_H 24 | #define FUSE_CRC_H 25 | 26 | libspectrum_word crc_fdc( libspectrum_word crc, libspectrum_byte data ); 27 | libspectrum_signed_dword crc_udi( libspectrum_signed_dword crc, libspectrum_byte data ); 28 | 29 | #endif /* FUSE_CRC_H */ 30 | -------------------------------------------------------------------------------- /peripherals/flash/am29f010.h: -------------------------------------------------------------------------------- 1 | /* am29f010.c 1Mbit flash chip emulation 2 | 3 | Emulates the AMD 29F010 flash chip 4 | 5 | Copyright (c) 2011 Guesser, Philip Kendall 6 | 7 | This program is free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License along 18 | with this program; if not, write to the Free Software Foundation, Inc., 19 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20 | 21 | */ 22 | 23 | #ifndef FUSE_AM29F010_H 24 | #define FUSE_AM29F010_H 25 | 26 | #include "libspectrum.h" 27 | 28 | typedef struct flash_am29f010_t flash_am29f010_t; 29 | 30 | flash_am29f010_t* flash_am29f010_alloc( void ); 31 | void flash_am29f010_free( flash_am29f010_t *self ); 32 | void flash_am29f010_init( flash_am29f010_t *self, libspectrum_byte *memory ); 33 | 34 | void flash_am29f010_write( flash_am29f010_t *self, libspectrum_byte page, libspectrum_word address, libspectrum_byte b ); 35 | 36 | #endif /* #ifndef FUSE_AM29F010_H */ 37 | -------------------------------------------------------------------------------- /peripherals/fuller.h: -------------------------------------------------------------------------------- 1 | /* fuller.h: Routines for handling the Fuller Box 2 | Copyright (c) 2007-2016 Stuart Brady, Fredrick Meunier, Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | Philip: philip-fuse@shadowmagic.org.uk 21 | 22 | Stuart: stuart.brady@gmail.com 23 | 24 | */ 25 | 26 | #ifndef FUSE_FULLER_H 27 | #define FUSE_FULLER_H 28 | 29 | void fuller_register_startup( void ); 30 | 31 | #endif /* #ifndef FUSE_FULLER_H */ 32 | -------------------------------------------------------------------------------- /peripherals/ide/simpleide.h: -------------------------------------------------------------------------------- 1 | /* simpleide.h: Simple 8-bit IDE interface routines 2 | Copyright (c) 2003-2016 Garry Lancaster, Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | */ 21 | 22 | #ifndef FUSE_SIMPLEIDE_H 23 | #define FUSE_SIMPLEIDE_H 24 | 25 | #include "libspectrum.h" 26 | 27 | void simpleide_register_startup( void ); 28 | void simpleide_reset( int hard_reset ); 29 | int simpleide_insert( const char *filename, libspectrum_ide_unit unit ); 30 | int simpleide_commit( libspectrum_ide_unit unit ); 31 | int simpleide_eject( libspectrum_ide_unit unit ); 32 | 33 | #endif /* #ifndef FUSE_SIMPLEIDE_H */ 34 | -------------------------------------------------------------------------------- /peripherals/ide/zxatasp.h: -------------------------------------------------------------------------------- 1 | /* zxatasp.h: ZXATASP interface routines 2 | Copyright (c) 2003-2016 Garry Lancaster, Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: Philip Kendall 21 | 22 | */ 23 | 24 | #ifndef FUSE_ZXATASP_H 25 | #define FUSE_ZXATASP_H 26 | 27 | #include "libspectrum.h" 28 | 29 | void zxatasp_register_startup( void ); 30 | int zxatasp_insert( const char *filename, libspectrum_ide_unit unit ); 31 | int zxatasp_commit( libspectrum_ide_unit unit ); 32 | int zxatasp_eject( libspectrum_ide_unit unit ); 33 | 34 | int zxatasp_unittest( void ); 35 | 36 | #endif /* #ifndef FUSE_ZXATASP_H */ 37 | -------------------------------------------------------------------------------- /peripherals/ide/zxcf.h: -------------------------------------------------------------------------------- 1 | /* zxcf.h: ZXCF interface routines 2 | Copyright (c) 2003-2004 Garry Lancaster, 3 | 2004 Philip Kendall 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation; either version 2 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License along 16 | with this program; if not, write to the Free Software Foundation, Inc., 17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | 19 | Author contact information: 20 | 21 | E-mail: Philip Kendall 22 | 23 | */ 24 | 25 | #ifndef FUSE_ZXCF_H 26 | #define FUSE_ZXCF_H 27 | 28 | #include "libspectrum.h" 29 | 30 | void zxcf_register_startup( void ); 31 | int zxcf_insert( const char *filename ); 32 | int zxcf_commit( void ); 33 | int zxcf_eject( void ); 34 | libspectrum_byte zxcf_last_memctl( void ); 35 | 36 | int zxcf_unittest( void ); 37 | 38 | #endif /* #ifndef FUSE_ZXCF_H */ 39 | 40 | -------------------------------------------------------------------------------- /peripherals/ide/zxmmc.h: -------------------------------------------------------------------------------- 1 | /* zxmmc.h: ZXMMC interface routines 2 | Copyright (c) 2017 Philip Kendall, Sergio Baldoví 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: Philip Kendall 21 | 22 | */ 23 | 24 | #ifndef FUSE_ZXMMC_H 25 | #define FUSE_ZXMMC_H 26 | 27 | #include "libspectrum.h" 28 | 29 | void zxmmc_register_startup( void ); 30 | int zxmmc_insert( const char *filename ); 31 | void zxmmc_commit( void ); 32 | int zxmmc_eject( void ); 33 | 34 | #endif /* #ifndef FUSE_ZXMMC_H */ 35 | -------------------------------------------------------------------------------- /peripherals/if2.h: -------------------------------------------------------------------------------- 1 | /* if2.h: Interface 2 cartridge handling routines 2 | Copyright (c) 2004-2016 Fredrick Meunier, Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | Philip: philip-fuse@shadowmagic.org.uk 21 | 22 | Fred: fredm@spamcop.net 23 | 24 | */ 25 | 26 | #ifndef FUSE_IF2_H 27 | #define FUSE_IF2_H 28 | 29 | #include "libspectrum.h" 30 | 31 | /* IF2 cart inserted? */ 32 | extern int if2_active; 33 | 34 | void if2_register_startup( void ); 35 | int if2_insert( const char *filename ); 36 | void if2_eject( void ); 37 | 38 | int if2_unittest( void ); 39 | 40 | #endif /* #ifndef FUSE_IF2_H */ 41 | -------------------------------------------------------------------------------- /peripherals/kempmouse.h: -------------------------------------------------------------------------------- 1 | /* kempmouse.h: Kempston mouse emulation 2 | Copyright (c) 2004-2016 Darren Salt, Fredrick Meunier, Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: linux@youmustbejoking.demon.co.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_KEMPMOUSE_H 25 | #define FUSE_KEMPMOUSE_H 26 | 27 | void kempmouse_register_startup( void ); 28 | void kempmouse_update( int dx, int dy, int button, int down ); 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /peripherals/melodik.h: -------------------------------------------------------------------------------- 1 | /* melodik.h: Routines for handling the Melodik interface 2 | Copyright (c) 2009-2016 Fredrick Meunier, Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | Philip: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_MELODIK_H 25 | #define FUSE_MELODIK_H 26 | 27 | void melodik_register_startup( void ); 28 | 29 | #endif /* #ifndef FUSE_MELODIK_H */ 30 | -------------------------------------------------------------------------------- /peripherals/multiface.h: -------------------------------------------------------------------------------- 1 | /* multiface.h: Multiface One/128/3 handling routines 2 | Copyright (c) 2005,2007 Gergely Szasz 3 | Copyright (c) 2017 Fredrick Meunier 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation; either version 2 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License along 16 | with this program; if not, write to the Free Software Foundation, Inc., 17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | 19 | Author contact information: 20 | 21 | Gergely: szaszg@hu.inter.net 22 | 23 | */ 24 | 25 | #ifndef FUSE_MULTIFACE_H 26 | #define FUSE_MULTIFACE_H 27 | 28 | extern int multiface_activated; /* RED BUTTON PUSHED */ 29 | extern int multiface_active; 30 | extern int multiface_available; 31 | 32 | void multiface_register_startup( void ); 33 | 34 | void multiface_status_update( void ); 35 | 36 | void multiface_red_button( void ); 37 | void multiface_setic8( void ); 38 | int multiface_unittest( void ); 39 | 40 | #endif /* #ifndef FUSE_MULTIFACE_H */ 41 | -------------------------------------------------------------------------------- /peripherals/printer.h: -------------------------------------------------------------------------------- 1 | /* printer.h: Printer support 2 | Copyright (c) 2001-2016 Ian Collier, Russell Marks, Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_PRINTER_H 25 | #define FUSE_PRINTER_H 26 | 27 | #include "libspectrum.h" 28 | 29 | void printer_frame( void ); 30 | void printer_serial_write( libspectrum_byte b ); 31 | void printer_parallel_strobe_write( int on ); 32 | void printer_parallel_write( libspectrum_word port, libspectrum_byte b ); 33 | void printer_register_startup( void ); 34 | /* macOS: we want to be able to reset the printer path when preferences 35 | change, so make printer_init() and printer_end() available */ 36 | int printer_init( void *context ); 37 | void printer_end( void ); 38 | 39 | #endif /* #ifndef FUSE_PRINTER_H */ 40 | -------------------------------------------------------------------------------- /peripherals/speccyboot.h: -------------------------------------------------------------------------------- 1 | /* speccyboot.h: SpeccyBoot Ethernet emulation 2 | 3 | Emulates SPI communication and (a minimal subset of) the 4 | functionality of the Microchip ENC28J60 Ethernet controller. Refer 5 | to the ENC28J60 data sheet and SpeccyBoot documentation for 6 | details. 7 | 8 | ENC28J60 data sheet: 9 | http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en022889 10 | 11 | SpeccyBoot: 12 | http://patrikpersson.github.io/speccyboot/ 13 | 14 | Copyright (c) 2009-2016 Patrik Persson, Philip Kendall 15 | 16 | This program is free software; you can redistribute it and/or modify 17 | it under the terms of the GNU General Public License as published by 18 | the Free Software Foundation; either version 2 of the License, or 19 | (at your option) any later version. 20 | 21 | This program is distributed in the hope that it will be useful, 22 | but WITHOUT ANY WARRANTY; without even the implied warranty of 23 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 24 | GNU General Public License for more details. 25 | 26 | You should have received a copy of the GNU General Public License along 27 | with this program; if not, write to the Free Software Foundation, Inc., 28 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 29 | 30 | Author contact information: 31 | 32 | E-mail: philip-fuse@shadowmagic.org.uk 33 | 34 | */ 35 | 36 | #ifndef FUSE_SPECCYBOOT_H 37 | #define FUSE_SPECCYBOOT_H 38 | 39 | void speccyboot_register_startup( void ); 40 | 41 | int speccyboot_unittest( void ); 42 | 43 | #endif /* #ifndef FUSE_SPECCYBOOT_H */ 44 | -------------------------------------------------------------------------------- /peripherals/specdrum.h: -------------------------------------------------------------------------------- 1 | /* specdrum.h: Routines for handling the Specdrum Drum Kit 2 | Copyright (c) 2011-2016 Jon Mitchell, Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | Philip: philip-fuse@shadowmagic.org.uk 21 | 22 | Jon: ooblick@gmail.com 23 | 24 | */ 25 | 26 | #ifndef FUSE_SPECDRUM_H 27 | #define FUSE_SPECDRUM_H 28 | 29 | #include "libspectrum.h" 30 | 31 | typedef struct specdrum_info { 32 | libspectrum_signed_byte specdrum_dac; /* Current byte in the SpecDrum 8bit DAC */ 33 | } specdrum_info; 34 | 35 | void specdrum_register_startup( void ); 36 | void specdrum_write( libspectrum_word port, libspectrum_byte val ); 37 | 38 | #endif /* #ifndef FUSE_SPECDRUM_H */ 39 | -------------------------------------------------------------------------------- /peripherals/ttx2000s.h: -------------------------------------------------------------------------------- 1 | /* ttx2000s.h: Routines for handling the TTX2000S teletext adapter 2 | Copyright (c) 2018 Alistair Cree 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | */ 19 | 20 | #ifndef FUSE_TTX2000S_H 21 | #define FUSE_TTX2000S_H 22 | 23 | extern int ttx2000s_paged; 24 | 25 | void ttx2000s_register_startup( void ); 26 | void ttx2000s_page( void ); 27 | void ttx2000s_unpage( void ); 28 | int ttx2000s_unittest( void ); 29 | libspectrum_byte ttx2000s_sram_read( libspectrum_word address ); 30 | void ttx2000s_sram_write( libspectrum_word address, libspectrum_byte b ); 31 | 32 | #endif /* #ifndef FUSE_TTX2000S_H */ 33 | -------------------------------------------------------------------------------- /peripherals/ula.h: -------------------------------------------------------------------------------- 1 | /* ula.h: ULA routines 2 | Copyright (c) 1999-2016 Philip Kendall, Darren Salt 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_ULA_H 25 | #define FUSE_ULA_H 26 | 27 | #define ULA_CONTENTION_SIZE 80000 28 | 29 | /* How much contention do we get at every tstate when MREQ is active? */ 30 | extern libspectrum_byte ula_contention[ ULA_CONTENTION_SIZE ]; 31 | 32 | /* And how much when it is inactive */ 33 | extern libspectrum_byte ula_contention_no_mreq[ ULA_CONTENTION_SIZE ]; 34 | 35 | void ula_register_startup( void ); 36 | 37 | libspectrum_byte ula_last_byte( void ); 38 | 39 | libspectrum_byte ula_tape_level( void ); 40 | 41 | void ula_contend_port_early( libspectrum_word port ); 42 | void ula_contend_port_late( libspectrum_word port ); 43 | 44 | #endif /* #ifndef FUSE_ULA_H */ 45 | -------------------------------------------------------------------------------- /peripherals/usource.h: -------------------------------------------------------------------------------- 1 | /* usource.h: Routines for handling the Currah uSource interface 2 | Copyright (c) 2007-2016 Stuart Brady, Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | Philip: philip-fuse@shadowmagic.org.uk 21 | 22 | Stuart: stuart.brady@gmail.com 23 | 24 | */ 25 | 26 | #ifndef FUSE_USOURCE_H 27 | #define FUSE_USOURCE_H 28 | 29 | extern int usource_active; 30 | extern int usource_available; 31 | 32 | void usource_register_startup( void ); 33 | 34 | void usource_toggle( void ); 35 | 36 | int usource_unittest( void ); 37 | 38 | #endif /* #ifndef FUSE_USOURCE_H */ 39 | -------------------------------------------------------------------------------- /perl/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | ## Copyright (c) 2002 Philip Kendall 3 | ## Copyright (c) 2015 Sergio Baldoví 4 | 5 | ## This program is free software; you can redistribute it and/or modify 6 | ## it under the terms of the GNU General Public License as published by 7 | ## the Free Software Foundation; either version 2 of the License, or 8 | ## (at your option) any later version. 9 | ## 10 | ## This program is distributed in the hope that it will be useful, 11 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ## GNU General Public License for more details. 14 | ## 15 | ## You should have received a copy of the GNU General Public License along 16 | ## with this program; if not, write to the Free Software Foundation, Inc., 17 | ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | ## 19 | ## Author contact information: 20 | ## 21 | ## E-mail: philip-fuse@shadowmagic.org.uk 22 | 23 | EXTRA_DIST += \ 24 | perl/cpp-perl.pl \ 25 | perl/Fuse.pm \ 26 | perl/Fuse/Dialog.pm 27 | -------------------------------------------------------------------------------- /pokefinder/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | ## Copyright (c) 2003 Philip Kendall 3 | ## Copyright (c) 2015 Sergio Baldoví 4 | 5 | ## This program is free software; you can redistribute it and/or modify 6 | ## it under the terms of the GNU General Public License as published by 7 | ## the Free Software Foundation; either version 2 of the License, or 8 | ## (at your option) any later version. 9 | ## 10 | ## This program is distributed in the hope that it will be useful, 11 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ## GNU General Public License for more details. 14 | ## 15 | ## You should have received a copy of the GNU General Public License along 16 | ## with this program; if not, write to the Free Software Foundation, Inc., 17 | ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | ## 19 | ## Author contact information: 20 | ## 21 | ## E-mail: philip-fuse@shadowmagic.org.uk 22 | 23 | fuse_SOURCES += \ 24 | pokefinder/pokefinder.c \ 25 | pokefinder/pokemem.c 26 | 27 | noinst_HEADERS += \ 28 | pokefinder/pokefinder.h \ 29 | pokefinder/pokemem.h 30 | -------------------------------------------------------------------------------- /pokefinder/pokefinder.h: -------------------------------------------------------------------------------- 1 | /* pokefinder.h: help with finding pokes 2 | Copyright (c) 2003-2004 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_POKEFINDER_H 25 | #define FUSE_POKEFINDER_H 26 | 27 | #include "libspectrum.h" 28 | 29 | extern libspectrum_byte pokefinder_possible[][ MEMORY_PAGE_SIZE ]; 30 | extern libspectrum_byte pokefinder_impossible[][ MEMORY_PAGE_SIZE / 8 ]; 31 | extern size_t pokefinder_count; 32 | 33 | void pokefinder_clear( void ); 34 | int pokefinder_search( libspectrum_byte value ); 35 | int pokefinder_incremented( void ); 36 | int pokefinder_decremented( void ); 37 | 38 | #endif /* #ifndef FUSE_POKEFINDER_H */ 39 | -------------------------------------------------------------------------------- /profile.h: -------------------------------------------------------------------------------- 1 | /* profile.h: Z80 profiler 2 | Copyright (c) 2005-2016 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: Philip Kendall 21 | 22 | */ 23 | 24 | #ifndef FUSE_PROFILE_H 25 | #define FUSE_PROFILE_H 26 | 27 | extern int profile_active; 28 | 29 | void profile_register_startup( void ); 30 | void profile_start( void ); 31 | void profile_map( libspectrum_word pc ); 32 | void profile_frame( libspectrum_dword frame_length ); 33 | void profile_finish( const char *filename ); 34 | 35 | #endif /* #ifndef FUSE_PROFILE_H */ 36 | -------------------------------------------------------------------------------- /psg.h: -------------------------------------------------------------------------------- 1 | /* psg.h: recording AY chip output to .psg files 2 | Copyright (c) 2003-2016 Matthew Westcott, Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_PSG_H 25 | #define FUSE_PSG_H 26 | 27 | #include "libspectrum.h" 28 | 29 | /* Are we currently recording a .psg file? */ 30 | extern int psg_recording; 31 | 32 | void psg_register_startup( void ); 33 | 34 | int psg_start_recording( const char *filename ); 35 | int psg_stop_recording( void ); 36 | 37 | int psg_frame( void ); 38 | 39 | int psg_write_register( libspectrum_byte reg, libspectrum_byte value ); 40 | 41 | #endif /* #ifndef FUSE_PSG_H */ 42 | -------------------------------------------------------------------------------- /roms/128-0.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/128-0.rom -------------------------------------------------------------------------------- /roms/128-1.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/128-1.rom -------------------------------------------------------------------------------- /roms/48.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/48.rom -------------------------------------------------------------------------------- /roms/disciple.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/disciple.rom -------------------------------------------------------------------------------- /roms/plus2-0.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/plus2-0.rom -------------------------------------------------------------------------------- /roms/plus2-1.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/plus2-1.rom -------------------------------------------------------------------------------- /roms/plus3-0.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/plus3-0.rom -------------------------------------------------------------------------------- /roms/plus3-1.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/plus3-1.rom -------------------------------------------------------------------------------- /roms/plus3-2.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/plus3-2.rom -------------------------------------------------------------------------------- /roms/plus3-3.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/plus3-3.rom -------------------------------------------------------------------------------- /roms/plus3e-0.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/plus3e-0.rom -------------------------------------------------------------------------------- /roms/plus3e-1.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/plus3e-1.rom -------------------------------------------------------------------------------- /roms/plus3e-2.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/plus3e-2.rom -------------------------------------------------------------------------------- /roms/plus3e-3.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/plus3e-3.rom -------------------------------------------------------------------------------- /roms/plusd.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/plusd.rom -------------------------------------------------------------------------------- /roms/se-0.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/se-0.rom -------------------------------------------------------------------------------- /roms/se-1.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/se-1.rom -------------------------------------------------------------------------------- /roms/speccyboot-1.4.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/speccyboot-1.4.rom -------------------------------------------------------------------------------- /roms/spectranet.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/spectranet.rom -------------------------------------------------------------------------------- /roms/tc2048.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/tc2048.rom -------------------------------------------------------------------------------- /roms/tc2068-0.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/tc2068-0.rom -------------------------------------------------------------------------------- /roms/tc2068-1.rom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/roms/tc2068-1.rom -------------------------------------------------------------------------------- /slt.h: -------------------------------------------------------------------------------- 1 | /* slt.h: SLT data handling routines 2 | Copyright (c) 2004-2016 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_SLT_H 25 | #define FUSE_SLT_H 26 | 27 | #include "libspectrum.h" 28 | 29 | void slt_register_startup( void ); 30 | 31 | int slt_trap( libspectrum_word address, libspectrum_byte level ); 32 | 33 | #endif /* #ifndef FUSE_SLT_H */ 34 | -------------------------------------------------------------------------------- /snapshot.h: -------------------------------------------------------------------------------- 1 | /* snapshot.h: snapshot handling routines 2 | Copyright (c) 1999,2001-2002 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_SNAPSHOT_H 25 | #define FUSE_SNAPSHOT_H 26 | 27 | #ifndef LIBSPECTRUM_LIBSPECTRUM_H 28 | #include "libspectrum.h" 29 | #endif /* #ifndef LIBSPECTRUM_LIBSPECTRUM_H */ 30 | 31 | int snapshot_read( const char *filename ); 32 | int snapshot_read_buffer( const unsigned char *buffer, size_t length, 33 | libspectrum_id_t type ); 34 | 35 | int snapshot_copy_from( libspectrum_snap *snap ); 36 | 37 | int snapshot_write( const char *filename ); 38 | int snapshot_copy_to( libspectrum_snap *snap ); 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /sound/nullsound.c: -------------------------------------------------------------------------------- 1 | /* nullsound.c: dummy sound routines 2 | Copyright (c) 2003-2004 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | */ 19 | 20 | #include "config.h" 21 | 22 | /* Dummy functions for when we don't have a sound device; should never be 23 | called, so just abort if they are */ 24 | 25 | #include "fuse.h" 26 | 27 | int 28 | sound_lowlevel_init( const char *device, int *freqptr, int *stereoptr ) 29 | { 30 | /* Audio driver not initialised */ 31 | return 1; 32 | } 33 | 34 | void 35 | sound_lowlevel_end( void ) 36 | { 37 | fuse_abort(); 38 | } 39 | 40 | void 41 | sound_lowlevel_frame( unsigned char *data, int len ) 42 | { 43 | fuse_abort(); 44 | } 45 | -------------------------------------------------------------------------------- /svg.h: -------------------------------------------------------------------------------- 1 | /* svg.h: Routines to capture ROM graphics statements to Scalable Vector 2 | Graphics files 3 | Copyright (c) 2014 Stefano Bodrato 4 | Portions taken from svgwrite.c, (c) J.J. Green 2005 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License along 17 | with this program; if not, write to the Free Software Foundation, Inc., 18 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 19 | 20 | Author contact information: 21 | 22 | E-mail: stefano@bodrato.it 23 | 24 | */ 25 | 26 | #ifndef FUSE_SVG_H 27 | #define FUSE_SVG_H 28 | 29 | extern int svg_capture_active; /* SVG capture enabled? */ 30 | 31 | typedef enum svg_capture_type { 32 | SVG_CAPTURE_DOTS, 33 | SVG_CAPTURE_LINES, 34 | } svg_capture_type; 35 | 36 | void svg_startcapture( const char *name, svg_capture_type mode ); 37 | void svg_stopcapture( void ); 38 | 39 | void svg_capture( void ); 40 | void svg_capture_end( void ); 41 | 42 | #endif /* #ifndef FUSE_SVG_H */ 43 | -------------------------------------------------------------------------------- /timer/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | ## Copyright (c) 2004-2008 Philip Kendall 3 | ## Copyright (c) 2015 Sergio Baldoví 4 | 5 | ## This program is free software; you can redistribute it and/or modify 6 | ## it under the terms of the GNU General Public License as published by 7 | ## the Free Software Foundation; either version 2 of the License, or 8 | ## (at your option) any later version. 9 | ## 10 | ## This program is distributed in the hope that it will be useful, 11 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ## GNU General Public License for more details. 14 | ## 15 | ## You should have received a copy of the GNU General Public License along 16 | ## with this program; if not, write to the Free Software Foundation, Inc., 17 | ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | ## 19 | ## Author contact information: 20 | ## 21 | ## E-mail: philip-fuse@shadowmagic.org.uk 22 | 23 | fuse_SOURCES += timer/timer.c 24 | 25 | EXTRA_fuse_SOURCES += \ 26 | timer/native.c \ 27 | timer/sdl.c 28 | 29 | fuse_DEPENDENCIES += $(TIMER_LIBADD) 30 | fuse_LDADD += $(TIMER_LIBADD) 31 | 32 | noinst_HEADERS += timer/timer.h 33 | -------------------------------------------------------------------------------- /timer/native.c: -------------------------------------------------------------------------------- 1 | /* native.c: native speed routines for Fuse 2 | Copyright (c) 1999-2008 Philip Kendall, Marek Januszewski, Fredrick Meunier 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "config.h" 25 | 26 | #include "compat.h" 27 | #include "timer.h" 28 | 29 | double 30 | timer_get_time( void ) 31 | { 32 | return compat_timer_get_time(); 33 | } 34 | 35 | void 36 | timer_sleep( int ms ) 37 | { 38 | compat_timer_sleep( ms ); 39 | } 40 | 41 | -------------------------------------------------------------------------------- /timer/sdl.c: -------------------------------------------------------------------------------- 1 | /* sdl.c: SDL speed routines for Fuse 2 | Copyright (c) 1999-2008 Philip Kendall, Marek Januszewski, Fredrick Meunier 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "config.h" 25 | 26 | #include 27 | 28 | #include "timer.h" 29 | 30 | double 31 | timer_get_time( void ) 32 | { 33 | return SDL_GetTicks() / 1000.0; 34 | } 35 | 36 | void 37 | timer_sleep( int ms ) 38 | { 39 | SDL_Delay( ms ); 40 | } 41 | -------------------------------------------------------------------------------- /timer/timer.h: -------------------------------------------------------------------------------- 1 | /* timer.h: Speed routines for Fuse 2 | Copyright (c) 1999-2017 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_TIMER_H 25 | #define FUSE_TIMER_H 26 | 27 | #include "libspectrum.h" 28 | 29 | int timer_estimate_reset( void ); 30 | int timer_estimate_speed( void ); 31 | 32 | void timer_register_startup( void ); 33 | 34 | extern float current_speed; 35 | extern int timer_event; 36 | 37 | void timer_start_fastloading( void ); 38 | void timer_stop_fastloading( void ); 39 | int timer_fastloading_active( void ); 40 | 41 | int fastloading_active( void ); 42 | 43 | /* Internal routines */ 44 | 45 | double timer_get_time( void ); 46 | void timer_sleep( int ms ); 47 | 48 | #endif /* #ifndef FUSE_TIMER_H */ 49 | -------------------------------------------------------------------------------- /ui/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | ## Copyright (c) 2001-2013 Philip Kendall 3 | ## Copyright (c) 2015 Sergio Baldoví 4 | 5 | ## This program is free software; you can redistribute it and/or modify 6 | ## it under the terms of the GNU General Public License as published by 7 | ## the Free Software Foundation; either version 2 of the License, or 8 | ## (at your option) any later version. 9 | ## 10 | ## This program is distributed in the hope that it will be useful, 11 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ## GNU General Public License for more details. 14 | ## 15 | ## You should have received a copy of the GNU General Public License along 16 | ## with this program; if not, write to the Free Software Foundation, Inc., 17 | ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | ## 19 | ## Author contact information: 20 | ## 21 | ## E-mail: philip-fuse@shadowmagic.org.uk 22 | 23 | noinst_HEADERS += \ 24 | ui/ui.h \ 25 | ui/uidisplay.h \ 26 | ui/uijoystick.h \ 27 | ui/uimedia.h 28 | 29 | EXTRA_DIST += \ 30 | ui/options.dat \ 31 | ui/uijoystick.c 32 | -------------------------------------------------------------------------------- /ui/cocoa/cocoascreenshot.h: -------------------------------------------------------------------------------- 1 | /* cocoascreenshot.h: Routines for saving .png etc. screenshots 2 | Copyright (c) 2006 Fredrick Meunier 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef COCOASCREENSHOT_H 25 | #define COCOASCREENSHOT_H 26 | 27 | int screenshot_write( const char *filename ); 28 | 29 | int get_rgb24_data( libspectrum_byte *rgb24_data, size_t stride, 30 | size_t height, size_t width, size_t height_offset, 31 | size_t width_offset ); 32 | 33 | #endif /* #ifndef COCOASCREENSHOT_H */ 34 | -------------------------------------------------------------------------------- /ui/cocoa/cocoaui.h: -------------------------------------------------------------------------------- 1 | /* cocoaui.h: Routines for dealing with the Cocoa UI 2 | Copyright (c) 2006 Fredrick Meunier 3 | 4 | $Id$ 5 | 6 | This program is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation; either version 2 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License along 17 | with this program; if not, write to the Free Software Foundation, Inc., 18 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 19 | 20 | Author contact information: 21 | 22 | E-mail: philip-fuse@shadowmagic.org.uk 23 | 24 | */ 25 | 26 | int cocoaui_confirm( const char *message ); 27 | -------------------------------------------------------------------------------- /ui/fb/fbdisplay.h: -------------------------------------------------------------------------------- 1 | /* fbdisplay.h: Routines for dealing with the framebuffer display 2 | Copyright (c) 2003 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_FBDISPLAY_H 25 | #define FUSE_FBDISPLAY_H 26 | 27 | int fbdisplay_init( void ); 28 | int fbdisplay_end( void ); 29 | 30 | #endif /* #ifndef FUSE_FBDISPLAY_H */ 31 | -------------------------------------------------------------------------------- /ui/fb/fbjoystick.c: -------------------------------------------------------------------------------- 1 | /* fbjoystick.c: Joystick emulation 2 | Copyright (c) 2003 Darren Salt 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | Darren: linux@youmustbejoking.demon.co.uk 23 | 24 | */ 25 | 26 | #include "config.h" 27 | 28 | #include "peripherals/joystick.h" 29 | #include "../uijoystick.c" 30 | -------------------------------------------------------------------------------- /ui/fb/fbkeyboard.h: -------------------------------------------------------------------------------- 1 | /* fbkeyboard.h: routines for dealing with the buttons interface 2 | Copyright (c) 2000-2001 Philip Kendall, Matan Ziv-Av 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_FBKEYBOARD_H 25 | #define FUSE_FBKEYBOARD_H 26 | 27 | int fbkeyboard_init(void); 28 | 29 | int fbkeyboard_keypress(int keysym); 30 | void fbkeyboard_keyrelease(int keysym); 31 | 32 | int fbkeyboard_end(void); 33 | 34 | void keyboard_update(void); 35 | 36 | #endif /* #ifndef FUSE_FBKEYBOARD_H */ 37 | -------------------------------------------------------------------------------- /ui/fb/fbmouse.h: -------------------------------------------------------------------------------- 1 | /* fbmouse.h: Linux mouse handling code (requires kernel input layer) 2 | Copyright (c) 2004 Darren Salt 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: linux@youmustbejoking.demon.co.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_FBMOUSE_H 25 | #define FUSE_FBMOUSE_H 26 | 27 | int fbmouse_init(void); 28 | int fbmouse_end(void); 29 | void mouse_update(void); 30 | 31 | #endif /* #ifndef FUSE_FBMOUSE_H */ 32 | -------------------------------------------------------------------------------- /ui/sdl/sdldisplay.h: -------------------------------------------------------------------------------- 1 | /* sdldisplay.h: Routines for dealing with the SDL display 2 | Copyright (c) 2000-2003 Philip Kendall, Fredrick Meunier 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_SDLDISPLAY_H 25 | #define FUSE_SDLDISPLAY_H 26 | 27 | #include 28 | 29 | #include "ui/ui.h" 30 | 31 | extern SDL_Surface *sdldisplay_gc; /* Hardware screen */ 32 | extern ui_statusbar_state sdl_disk_state, sdl_mdr_state, sdl_tape_state; 33 | 34 | #endif /* #ifndef FUSE_SDLDISPLAY_H */ 35 | -------------------------------------------------------------------------------- /ui/sdl/sdljoystick.h: -------------------------------------------------------------------------------- 1 | /* sdljoystick.h: routines for dealing with the SDL joystick 2 | Copyright (c) 2003 Fredrick Meunier 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | Fred: fredm@spamcop.net 23 | 24 | */ 25 | 26 | #ifndef FUSE_SDLJOYSTICK_H 27 | #define FUSE_SDLJOYSTICK_H 28 | 29 | void sdljoystick_buttonpress( SDL_JoyButtonEvent *buttonevent ); 30 | void sdljoystick_buttonrelease( SDL_JoyButtonEvent *buttonevent ); 31 | void sdljoystick_axismove( SDL_JoyAxisEvent *axisevent ); 32 | void sdljoystick_hatmove( SDL_JoyHatEvent *hatevent ); 33 | 34 | #endif /* #ifndef FUSE_SDLJOYSTICK_H */ 35 | -------------------------------------------------------------------------------- /ui/sdl/sdlkeyboard.h: -------------------------------------------------------------------------------- 1 | /* sdlkeyboard.h: routines for dealing with the SDL keyboard 2 | Copyright (c) 2000-2002 Philip Kendall, Matan Ziv-Av, Fredrick Meunier 3 | Copyright (c) 2005 Fredrick Meunier 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation; either version 2 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License along 16 | with this program; if not, write to the Free Software Foundation, Inc., 17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | 19 | Author contact information: 20 | 21 | E-mail: philip-fuse@shadowmagic.org.uk 22 | 23 | */ 24 | 25 | #ifndef FUSE_SDLKEYBOARD_H 26 | #define FUSE_SDLKEYBOARD_H 27 | 28 | void sdlkeyboard_init(void); 29 | void sdlkeyboard_end(void); 30 | void sdlkeyboard_keypress(SDL_KeyboardEvent *keyevent); 31 | void sdlkeyboard_keyrelease(SDL_KeyboardEvent *keyevent); 32 | 33 | #endif /* #ifndef FUSE_SDLKEYBOARD_H */ 34 | -------------------------------------------------------------------------------- /ui/wii/wiidisplay.h: -------------------------------------------------------------------------------- 1 | /* wiidisplay.h: Routines for dealing with the wii's framebuffer display 2 | Copyright (c) 2008 Bjoern Giesler 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: bjoern@giesler.de 21 | 22 | */ 23 | 24 | #ifndef FUSE_WIIDISPLAY_H 25 | #define FUSE_WIIDISPLAY_H 26 | 27 | int wiidisplay_init( void ); 28 | int wiidisplay_end( void ); 29 | 30 | void wiidisplay_showmouse( float mousex, float mousey ); 31 | 32 | #endif /* #ifndef FUSE_WIIDISPLAY_H */ 33 | -------------------------------------------------------------------------------- /ui/wii/wiikeyboard.h: -------------------------------------------------------------------------------- 1 | /* wiikeyboard.h: routines for dealing with the Wii USB keyboard 2 | Copyright (c) 2008 Bjoern Giesler 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: bjoern@giesler.de 21 | 22 | */ 23 | 24 | #ifndef FUSE_WIIKEYBOARD_H 25 | #define FUSE_WIIKEYBOARD_H 26 | 27 | int wiikeyboard_init( void ); 28 | 29 | int wiikeyboard_keypress( int keysym ); 30 | void wiikeyboard_keyrelease( int keysym ); 31 | 32 | int wiikeyboard_end( void ); 33 | 34 | void keyboard_update( void ); 35 | 36 | #endif /* #ifndef FUSE_WIIKEYBOARD_H */ 37 | -------------------------------------------------------------------------------- /ui/wii/wiimouse.h: -------------------------------------------------------------------------------- 1 | /* wiimouse.h: routines for dealing with the Wiimote as a mouse 2 | Copyright (c) 2008 Bjoern Giesler 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: bjoern@giesler.de 21 | 22 | */ 23 | 24 | #ifndef FUSE_WIIMOUSE_H 25 | #define FUSE_WIIMOUSE_H 26 | 27 | int wiimouse_init( void ); 28 | int wiimouse_end( void ); 29 | void wiimouse_get_position( int *x, int *y ); 30 | 31 | void mouse_update( void ); 32 | 33 | #endif /* FUSE_WIIMOUSE_H */ 34 | -------------------------------------------------------------------------------- /ui/win32/about.h: -------------------------------------------------------------------------------- 1 | /* about.h: about dialog box 2 | Copyright (c) 2011 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #define IDD_ABOUT 1800 25 | #define IDC_ABOUT_STATIC_VERSION 1801 26 | #define IDC_ABOUT_STATIC_NAME 1802 27 | #define IDC_ABOUT_STATIC_COPYRIGHT 1802 28 | #define IDC_ABOUT_STATIC_WEBSITE 1804 29 | -------------------------------------------------------------------------------- /ui/win32/binary.h: -------------------------------------------------------------------------------- 1 | /* binary.h: Win32 routines to load/save chunks of binary data 2 | Copyright (c) 2008 Marek Januszewski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #define IDD_BINARY 1300 25 | #define IDC_BINARY_STATIC_FILENAME 1301 26 | #define IDC_BINARY_STATIC_PATH 1302 27 | #define IDC_BINARY_BUTTON_BROWSE 1303 28 | #define IDC_BINARY_STATIC_START 1304 29 | #define IDC_BINARY_EDIT_START 1305 30 | #define IDC_BINARY_STATIC_LENGTH 1306 31 | #define IDC_BINARY_EDIT_LENGTH 1307 32 | -------------------------------------------------------------------------------- /ui/win32/browse.h: -------------------------------------------------------------------------------- 1 | /* browse.h: tape browser dialog box 2 | Copyright (c) 2008 Marek Januszewski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #define IDD_BROWSE 1400 25 | #define IDC_BROWSE_LV 1401 26 | #define IDC_BROWSE_MODIFIED 1402 27 | -------------------------------------------------------------------------------- /ui/win32/hyperlinks.h: -------------------------------------------------------------------------------- 1 | /* hyperlinks.h: hyperlink control 2 | Copyright 2002 Neal Stublen 3 | 4 | Taken (almost) verbatim from public domain code found on CodeGuru: 5 | http://www.codeguru.com/cpp/controls/staticctrl/article.php/c5803 6 | Copyright 2002 Neal Stublen 7 | All rights reserved. 8 | 9 | The CodeGuru license is a bit vague, but they state: 10 | "While we are talking about copyrights, you retain copyright of your 11 | article and code, but by submitting it to CodeGuru you give permission 12 | to use it in a fair manner and also permit all developers to freely use 13 | the code in their own applications -even if they are commercial." 14 | License: CodeGuru-specific, 2009 15 | 16 | Author contact information: 17 | 18 | E-mail: philip-fuse@shadowmagic.org.uk 19 | 20 | */ 21 | 22 | #ifndef FUSE_HYPERLINKS_H 23 | #define FUSE_HYPERLINKS_H 24 | 25 | BOOL ConvertStaticToHyperlink( HWND hwndCtl ); 26 | BOOL ConvertCtlStaticToHyperlink( HWND hwndParent, UINT uiCtlId ); 27 | 28 | #endif /* #ifndef FUSE_HYPERLINKS_H */ 29 | -------------------------------------------------------------------------------- /ui/win32/icons/disk_active.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/disk_active.bmp -------------------------------------------------------------------------------- /ui/win32/icons/disk_inactive.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/disk_inactive.bmp -------------------------------------------------------------------------------- /ui/win32/icons/mdr_active.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/mdr_active.bmp -------------------------------------------------------------------------------- /ui/win32/icons/mdr_inactive.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/mdr_inactive.bmp -------------------------------------------------------------------------------- /ui/win32/icons/mouse_active.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/mouse_active.bmp -------------------------------------------------------------------------------- /ui/win32/icons/mouse_inactive.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/mouse_inactive.bmp -------------------------------------------------------------------------------- /ui/win32/icons/pause_active.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/pause_active.bmp -------------------------------------------------------------------------------- /ui/win32/icons/pause_inactive.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/pause_inactive.bmp -------------------------------------------------------------------------------- /ui/win32/icons/tape_active.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/tape_active.bmp -------------------------------------------------------------------------------- /ui/win32/icons/tape_inactive.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/tape_inactive.bmp -------------------------------------------------------------------------------- /ui/win32/icons/tape_marker.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/tape_marker.bmp -------------------------------------------------------------------------------- /ui/win32/icons/tape_marker_mask.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/icons/tape_marker_mask.bmp -------------------------------------------------------------------------------- /ui/win32/memorybrowser.h: -------------------------------------------------------------------------------- 1 | /* memorybrowser.h: the Win32 memory browser 2 | Copyright (c) 2008 Marek Januszewski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #define IDD_MEM 4000 25 | #define IDC_MEM_LV 4001 26 | #define IDC_MEM_SB 4002 27 | -------------------------------------------------------------------------------- /ui/win32/memorybrowser.rc: -------------------------------------------------------------------------------- 1 | /* memorybrowser.rc: the Win32 memory browser 2 | Copyright (c) 2008 Marek Januszewski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "memorybrowser.h" 25 | 26 | IDD_MEM DIALOGEX DISCARDABLE 0,0,371,264 27 | CAPTION "Fuse - Memory Browser" 28 | FONT 8,"MS Sans Serif" 29 | STYLE WS_POPUP | WS_CAPTION | WS_VISIBLE | WS_SYSMENU 30 | EXSTYLE WS_EX_APPWINDOW 31 | BEGIN 32 | CONTROL "", IDC_MEM_LV, "SysListView32", \ 33 | WS_CHILD | WS_TABSTOP | WS_VISIBLE | LVS_REPORT | \ 34 | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSCROLL, \ 35 | 0,0,360,240, WS_EX_CLIENTEDGE 36 | SCROLLBAR IDC_MEM_SB, 360,0,11,240, WS_CHILD | SBS_VERT 37 | PUSHBUTTON "&Close", IDCLOSE, 315,245,51,14 38 | END 39 | -------------------------------------------------------------------------------- /ui/win32/picture.h: -------------------------------------------------------------------------------- 1 | /* picture.h: Win32 routines to draw the keyboard picture 2 | Copyright (c) 2008 Marek Januszewski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #define IDD_PICTURE 1200 25 | #define IDC_PICTURE_FRAME 1201 26 | -------------------------------------------------------------------------------- /ui/win32/picture.rc: -------------------------------------------------------------------------------- 1 | /* picture.rc: Win32 resource file for the keyboard picture 2 | Copyright (c) 2008 Marek Januszewski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include 25 | #include 26 | 27 | #include "picture.h" 28 | 29 | IDD_PICTURE DIALOG DISCARDABLE 0, 0, 50, 28 30 | STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION 31 | | WS_SYSMENU | WS_THICKFRAME | WS_CLIPCHILDREN 32 | EXSTYLE WS_EX_APPWINDOW 33 | CAPTION "Fuse - Keyboard" 34 | FONT 8, "Ms Shell Dlg 2" 35 | BEGIN 36 | CONTROL "", IDC_PICTURE_FRAME, WC_STATIC, SS_OWNERDRAW, 0, 0, 1, 1 37 | DEFPUSHBUTTON "Close", IDCLOSE, 0, 7, 50, 14 38 | END 39 | -------------------------------------------------------------------------------- /ui/win32/pokefinder.h: -------------------------------------------------------------------------------- 1 | /* pokefinder.h: Win32 interface to the poke finder 2 | Copyright (c) 2004 Marek Januszwski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #define IDD_POKEFINDER 1500 25 | #define IDC_PF_SEARCH_FOR 1501 26 | #define IDC_PF_EDIT 1502 27 | #define IDC_PF_LOCATIONS 1503 28 | #define IDC_PF_LIST 1504 29 | #define IDC_PF_INC 1505 30 | #define IDC_PF_DEC 1506 31 | #define IDC_PF_SEARCH 1507 32 | #define IDC_PF_RESET 1508 33 | -------------------------------------------------------------------------------- /ui/win32/pokemem.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/pokemem.h -------------------------------------------------------------------------------- /ui/win32/pokemem.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/win32/pokemem.rc -------------------------------------------------------------------------------- /ui/win32/rollback.h: -------------------------------------------------------------------------------- 1 | /* rollback.h: select a rollback point 2 | Copyright (c) 2008 Marek Januszewski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #define IDD_ROLLBACK 1600 25 | #define IDC_ROLLBACK_LV 1601 26 | -------------------------------------------------------------------------------- /ui/win32/rollback.rc: -------------------------------------------------------------------------------- 1 | /* rollback.rc: select a rollback point 2 | Copyright (c) 2008 Marek Januszewski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "rollback.h" 25 | 26 | IDD_ROLLBACK DIALOGEX 0,0,125,100 27 | STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_FIXEDSYS | WS_VISIBLE | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU 28 | EXSTYLE WS_EX_APPWINDOW 29 | CAPTION "Fuse - Select Rollback Point" 30 | FONT 8,"Ms Shell Dlg 2",400,0,1 31 | BEGIN 32 | CONTROL "",IDC_ROLLBACK_LV,"SysListView32",WS_TABSTOP | WS_BORDER | LVS_ALIGNLEFT | LVS_REPORT,0,0,125,75, WS_EX_CLIENTEDGE 33 | DEFPUSHBUTTON "OK",IDOK,5,80,50,14 34 | PUSHBUTTON "Cancel",IDCANCEL,70,80,50,14 35 | END 36 | -------------------------------------------------------------------------------- /ui/win32/roms.h: -------------------------------------------------------------------------------- 1 | /* roms.h: ROM selector dialog box 2 | Copyright (c) 2008 Marek Januszewski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #define IDD_ROMS 1100 25 | -------------------------------------------------------------------------------- /ui/win32/select_template.h: -------------------------------------------------------------------------------- 1 | /* select_template.h: Machine Select dialog box 2 | Copyright (c) 2008 Marek Januszewski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #define IDD_SELECT_DIALOG 1000 25 | #define IDC_SELECT_OFFSET 1001 26 | -------------------------------------------------------------------------------- /ui/win32/select_template.rc: -------------------------------------------------------------------------------- 1 | /* select_template.rc: Machine Select dialog box 2 | Copyright (c) 2008 Marek Januszewski 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #include "select_template.h" 25 | 26 | IDD_SELECT_DIALOG DIALOGEX 0,0,177,247 27 | STYLE DS_MODALFRAME | DS_SETFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_POPUP | WS_SYSMENU 28 | EXSTYLE WS_EX_APPWINDOW 29 | CAPTION "Fuse - Select" 30 | FONT 8,"Ms Shell Dlg 2",400,0,1 31 | BEGIN 32 | /* those will be generated at runtime on WM_INITDIALOG - easier to control the size and position */ 33 | /* DEFPUSHBUTTON "&OK",IDOK,6,193,75,23 */ 34 | /* PUSHBUTTON "&Cancel",IDCANCEL,90,193,75,23 */ 35 | END 36 | -------------------------------------------------------------------------------- /ui/xlib/xdisplay.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/speccytools/fuse-for-macosx/54a010b9328edb16fc69aa7da88e9d8efbee3193/ui/xlib/xdisplay.c -------------------------------------------------------------------------------- /ui/xlib/xdisplay.h: -------------------------------------------------------------------------------- 1 | /* xdisplay.h: Routines for dealing with the X display 2 | Copyright (c) 2000 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_XDISPLAY_H 25 | #define FUSE_XDISPLAY_H 26 | 27 | int xdisplay_init( void ); 28 | int xdisplay_end( void ); 29 | 30 | int xdisplay_configure_notify(int width, int height); 31 | void xdisplay_area(int x, int y, int width, int height); 32 | 33 | /* Are we expecting an X error to occur? */ 34 | extern int xerror_expecting; 35 | 36 | /* Which error occurred? */ 37 | extern int xerror_error; 38 | 39 | /* The X error handler */ 40 | int xerror_handler( Display *display, XErrorEvent *error ); 41 | 42 | #endif /* #ifndef FUSE_XDISPLAY_H */ 43 | -------------------------------------------------------------------------------- /ui/xlib/xjoystick.c: -------------------------------------------------------------------------------- 1 | /* xjoystick.c: Joystick emulation 2 | Copyright (c) 2003 Darren Salt 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | Darren: linux@youmustbejoking.demon.co.uk 23 | 24 | */ 25 | 26 | #include "config.h" 27 | #include "peripherals/joystick.h" 28 | 29 | #if !defined USE_JOYSTICK || defined HAVE_JSW_H 30 | /* Fake joystick, or override UI-specific handling */ 31 | #include "../uijoystick.c" 32 | 33 | #else /* #if !defined USE_JOYSTICK || defined HAVE_JSW_H */ 34 | 35 | #include "../sdl/sdljoystick.c" 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /ui/xlib/xkeyboard.h: -------------------------------------------------------------------------------- 1 | /* xkeyboard.h: X routines for dealing with the keyboard 2 | Copyright (c) 2000 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_XKEYBOARD_H 25 | #define FUSE_XKEYBOARD_H 26 | 27 | void xkeyboard_keypress(XKeyEvent *event); 28 | void xkeyboard_keyrelease(XKeyEvent *event); 29 | 30 | #endif /* #ifndef FUSE_XKEYBOARD_H */ 31 | -------------------------------------------------------------------------------- /ui/xlib/xui.h: -------------------------------------------------------------------------------- 1 | /* xui.h: Routines for dealing with the Xlib user interface 2 | Copyright (c) 2000 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_XUI_H 25 | #define FUSE_XUI_H 26 | 27 | #ifndef _XLIB_H_ 28 | #include 29 | #endif 30 | 31 | extern Display *display; /* Which display are we connected to? */ 32 | extern int xui_screenNum; /* Which screen are we using on our 33 | X server? */ 34 | extern Window xui_mainWindow; /* Window ID for the main Fuse window */ 35 | 36 | #endif /* #ifndef FUSE_XUI_H */ 37 | -------------------------------------------------------------------------------- /unittests/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | ## Copyright (c) 2008 Philip Kendall 3 | ## Copyright (c) 2015 Sergio Baldoví 4 | 5 | ## This program is free software; you can redistribute it and/or modify 6 | ## it under the terms of the GNU General Public License as published by 7 | ## the Free Software Foundation; either version 2 of the License, or 8 | ## (at your option) any later version. 9 | ## 10 | ## This program is distributed in the hope that it will be useful, 11 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | ## GNU General Public License for more details. 14 | ## 15 | ## You should have received a copy of the GNU General Public License along 16 | ## with this program; if not, write to the Free Software Foundation, Inc., 17 | ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | ## 19 | ## Author contact information: 20 | ## 21 | ## E-mail: philip-fuse@shadowmagic.org.uk 22 | 23 | fuse_SOURCES += unittests/unittests.c 24 | 25 | noinst_HEADERS += unittests/unittests.h 26 | -------------------------------------------------------------------------------- /unittests/unittests.h: -------------------------------------------------------------------------------- 1 | /* unittests.h: Unit testing framework for Fuse 2 | Copyright (c) 2008-2015 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_UNITTESTS_H 25 | #define FUSE_UNITTESTS_H 26 | 27 | int unittests_run( void ); 28 | 29 | int unittests_assert_2k_page( libspectrum_word base, int source, int page ); 30 | int unittests_assert_4k_page( libspectrum_word base, int source, int page ); 31 | int unittests_assert_8k_page( libspectrum_word base, int source, int page ); 32 | int unittests_assert_16k_page( libspectrum_word base, int source, int page ); 33 | int unittests_assert_16k_ram_page( libspectrum_word base, int page ); 34 | 35 | int unittests_paging_test_48( int ram8000 ); 36 | 37 | #endif /* #ifndef FUSE_UNITTESTS_H */ 38 | -------------------------------------------------------------------------------- /z80/opcodes_ed.dat: -------------------------------------------------------------------------------- 1 | 0x40 IN B,(C) 2 | 0x41 OUT (C),B 3 | 0x42 SBC HL,BC 4 | 0x43 LD (nnnn),BC 5 | 0x44 6 | 0x4c 7 | 0x54 8 | 0x5c 9 | 0x64 10 | 0x6c 11 | 0x74 12 | 0x7c NEG 13 | 0x45 14 | 0x4d 15 | 0x55 16 | 0x5d 17 | 0x65 18 | 0x6d 19 | 0x75 20 | 0x7d RETN 21 | 0x46 22 | 0x4e 23 | 0x66 24 | 0x6e IM 0 25 | 0x47 LD I,A 26 | 0x48 IN C,(C) 27 | 0x49 OUT (C),C 28 | 0x4a ADC HL,BC 29 | 0x4b LD BC,(nnnn) 30 | 0x4f LD R,A 31 | 0x50 IN D,(C) 32 | 0x51 OUT (C),D 33 | 0x52 SBC HL,DE 34 | 0x53 LD (nnnn),DE 35 | 0x56 36 | 0x76 IM 1 37 | 0x57 LD A,I 38 | 0x58 IN E,(C) 39 | 0x59 OUT (C),E 40 | 0x5a ADC HL,DE 41 | 0x5b LD DE,(nnnn) 42 | 0x5e 43 | 0x7e IM 2 44 | 0x5f LD A,R 45 | 0x60 IN H,(C) 46 | 0x61 OUT (C),H 47 | 0x62 SBC HL,HL 48 | 0x63 LD (nnnn),HL 49 | 0x67 RRD 50 | 0x68 IN L,(C) 51 | 0x69 OUT (C),L 52 | 0x6a ADC HL,HL 53 | 0x6b LD HL,(nnnn) 54 | 0x6f RLD 55 | 0x70 IN F,(C) 56 | 0x71 OUT (C),0 57 | 0x72 SBC HL,SP 58 | 0x73 LD (nnnn),SP 59 | 0x78 IN A,(C) 60 | 0x79 OUT (C),A 61 | 0x7a ADC HL,SP 62 | 0x7b LD SP,(nnnn) 63 | 0xa0 LDI 64 | 0xa1 CPI 65 | 0xa2 INI 66 | 0xa3 OUTI 67 | 0xa8 LDD 68 | 0xa9 CPD 69 | 0xaa IND 70 | 0xab OUTD 71 | 0xb0 LDIR 72 | 0xb1 CPIR 73 | 0xb2 INIR 74 | 0xb3 OTIR 75 | 0xb8 LDDR 76 | 0xb9 CPDR 77 | 0xba INDR 78 | 0xbb OTDR 79 | 0xfb slttrap 80 | -------------------------------------------------------------------------------- /z80/z80_checks.h: -------------------------------------------------------------------------------- 1 | SETUP_CHECK( profile, profile_active ) 2 | SETUP_CHECK( rzx, rzx_playback ) 3 | SETUP_CHECK( debugger, (debugger_mode != DEBUGGER_MODE_INACTIVE) || is_debugger_enabled() ) 4 | SETUP_CHECK( beta, beta_available ) 5 | SETUP_CHECK( plusd, plusd_available ) 6 | SETUP_CHECK( didaktik80, didaktik80_available ) 7 | SETUP_CHECK( disciple, disciple_available ) 8 | SETUP_CHECK( usource, usource_available ) 9 | SETUP_CHECK( multiface, multiface_activated ) 10 | SETUP_CHECK( if1p, if1_available ) 11 | SETUP_CHECK( divide_early, settings_current.divide_enabled ) 12 | SETUP_CHECK( divmmc_early, settings_current.divmmc_enabled ) 13 | SETUP_CHECK( spectranet_page, spectranet_available && !settings_current.spectranet_disable ) 14 | SETUP_NEXT( opcode_delay ) 15 | SETUP_CHECK( evenm1, even_m1 ) 16 | SETUP_NEXT( run_opcode ) 17 | SETUP_CHECK( if1u, if1_available ) 18 | SETUP_CHECK( divide_late, settings_current.divide_enabled ) 19 | SETUP_CHECK( divmmc_late, settings_current.divmmc_enabled ) 20 | SETUP_CHECK( opus, opus_available ) 21 | SETUP_CHECK( spectranet_unpage, spectranet_available ) 22 | SETUP_CHECK( z80_iff2_read, z80.iff2_read ) 23 | SETUP_CHECK( didaktik80snap, didaktik80_snap ) 24 | SETUP_CHECK( svg_capture, svg_capture_active ) 25 | SETUP_NEXT( end_opcode ) 26 | -------------------------------------------------------------------------------- /z80/z80_internals.h: -------------------------------------------------------------------------------- 1 | /* z80_internals.h: routines which are internal to the Z80 core 2 | Copyright (c) 2016 Philip Kendall 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation; either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License along 15 | with this program; if not, write to the Free Software Foundation, Inc., 16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 | 18 | Author contact information: 19 | 20 | E-mail: philip-fuse@shadowmagic.org.uk 21 | 22 | */ 23 | 24 | #ifndef FUSE_Z80_INTERNALS_H 25 | #define FUSE_Z80_INTERNALS_H 26 | 27 | void z80_debugger_variables_init( void ); 28 | 29 | #endif /* #ifndef FUSE_Z80_INTERNALS */ 30 | --------------------------------------------------------------------------------