1fuse(1)                            Emulators                           fuse(1)
2
3
4

NAME

6       fuse - Sinclair ZX Spectrum emulator
7

SYNOPSIS

9       fuse [options]

DESCRIPTION

11       Fuse  is  a  Sinclair  ZX Spectrum emulator. It supports several models
12       (including the 128), with quite faithful emulation of the  display  and
13       sound.
14
15       The  emulator can load any of the formats supported by libspectrum(3) -
16       this includes Z80, SNA and SZX snapshots, and TAP and TZX  virtual-tape
17       files.  Saving to SZX, Z80 and SNA snapshots and TZX and TAP tape files
18       is supported. The SLT extension to the Z80 format is  partly  supported
19       (enough  for  multi-load  games);  however, loading of the old DAT-file
20       variant is not. DSK disk images are supported when emulating a +3,  TRD
21       and SCL disk images are supported when emulating a Pentagon or Scorpion
22       and DCK cartridge images are supported  when  emulating  a  Timex  2068
23       variant. Interface II ROM cartridges are also supported.
24
25       Finally,  there  is  also support for reading and writing the RZX input
26       recording format.
27
28       See the COMPRESSED FILES section for  details  on  reading  files  com‐
29       pressed with bzip2(3) or gzip(3).
30

OPTIONS

32       --aspect-hint
33              Specify  whether the GTK+ and Xlib user interfaces should `hint'
34              to the window manager about the preferred aspect ratio  for  the
35              graphics  window,  thus  preventing resizing to non-square sizes
36              which lead to Fuse not displaying  correctly.  This  option  has
37              been  observed  to cause problems with some window managers when
38              using the GTK+ UI  which  can  prevent  the  window  from  being
39              resized  or  moved  at all. (Enabled by default, but you can use
40              `--no-aspect-hint'     to     disable).     See     also     the
41              `--strict-aspect-hint' option.
42
43       --autosave-settings
44              Specify  whether Fuse's current settings should be automatically
45              saved on exit. The same as the General  Options  dialog's  Auto-
46              save settings option.
47
48       --auto-load
49              Specify  whether  tape  and  disk  files should be automatically
50              loaded when they  are  opened  using  the  File,  Open...   menu
51              option. (Enabled by default, but you can use `--no-auto-load' to
52              disable). Same as the General Options dialog's  Auto-load  media
53              option.
54
55       --beta128
56              Emulate  a  Beta  128 interface. Same as the Peripherals Options
57              dialog's Beta 128 interface option.
58
59       --beeper-stereo
60              Specify whether fake stereo should be added to the emulation  of
61              the  Spectrum  beeper. Same as the Sound Options dialog's Beeper
62              pseudo-stereo option.
63
64       --bw-tv
65              Specify whether the display should simulate a  colour  or  black
66              and  white  television. This option is effective under the GTK+,
67              Xlib and SDL user interfaces: the others will always simulate  a
68              colour  TV.  The  same as the General Options dialog's Black and
69              white TV option.
70
71       --competition-code code
72              Specify the code to be written to competition  mode  RZX  files.
73              The same as the RZX Options dialog's Competition code option.
74
75       --competition-mode
76              Specify  whether input recordings should be made in `competition
77              mode'.  The same as the RZX Options  dialog's  Competition  mode
78              option.
79
80       --compress-rzx
81              Specify  whether  RZX  files  should  be written out compressed.
82              (Enabled by default, but you can use `--no-compress-rzx' to dis‐
83              able).  Same  as  the  RZX  Options  dialog's  Compress RZX data
84              option.
85
86       --confirm-actions
87              Specify whether `dangerous' actions  (those  which  could  cause
88              data loss, for example resetting the Spectrum) require confirma‐
89              tion before occurring. (Enabled by  default,  but  you  can  use
90              `--no-confirm-actions'  to  disable).  This  option is effective
91              under the GTK+ UI, and is the same as the General  Options  dia‐
92              log's Confirm actions option.
93
94       --detect-loader
95              Specify  whether  Fuse should attempt to detect when the tape is
96              being accessed and start and stop the virtual tape playing auto‐
97              matically.    (Enabled    by    default,   but   you   can   use
98              `--no-detect-loader' to disable). Same as  the  General  Options
99              dialog's Detect loaders option.
100
101       --dock file
102              Insert  the  specified file into the emulated Timex 2068 variant
103              dock; also select the TC2068 on startup if available.
104
105       --embed-snapshot
106              Specify whether a snapshot should be embedded  in  an  RZX  file
107              when recording is started from an existing snapshot. (Enabled by
108              default, but you can use `--no-embed-snapshot' to disable). Same
109              as the RZX Options dialog's Always embed snapshot option.
110
111       --fastload
112              Specify  whether  Fuse  should run at the fastest possible speed
113              when the virtual tape is playing. (Enabled by default,  but  you
114              can  use  `--no-fastload'  to  disable). The same as the General
115              Options dialog's Fastloading option.
116
117       -f frequency
118       --sound-freq frequency
119              Specify what frequency Fuse should use for the sound device, the
120              default  is  32 kHz, but some devices only support a single fre‐
121              quency or a limited range (e.g.  48 kHz or up to 22 kHz).
122
123       --full-screen
124              Specify whether Fuse should  run  in  full  screen  mode.   This
125              option is effective only under the SDL UI.
126
127       -g filter
128       --graphics-filter mode
129              Specify  which  graphics filter to use if available. The default
130              is normal, which uses no filtering. The  available  options  are
131              2x,  2xsai, 3x, advmame2x, advmame3x, dotmatrix, half, halfskip,
132              normal, super2xsai, supereagle, timex15x, timextv, tv2x,  paltv,
133              paltv2x, and paltv3x.  See the GRAPHICS FILTERS section for more
134              details.
135
136       --graphicsfile file
137              Set the filename used for graphical output from the emulated  ZX
138              printer. See the PRINTER EMULATION section for more details.
139
140       -h
141       --help
142              Give brief usage help, listing available options.
143
144       --if2cart file
145              Insert the specified file into the emulated Interface II.
146
147       --interface1
148              Emulate  a Sinclair Interface I. Same as the Peripherals Options
149              dialog's Interface I option.
150
151       --interface2
152              Emulate a Sinclair Interface II. Same as the Peripherals Options
153              dialog's Interface II option.
154
155       --issue2
156              Emulate  an  issue  2 keyboard. Same as the General Options dia‐
157              log's Issue 2 keyboard option.
158
159       -j device
160       --joystick-1 device
161              Read from device to emulate the first joystick.  Fuse  will  use
162              either `/dev/input/js0' or `/dev/js0' by default.
163
164       --joystick-2 device
165              As  for  --joystick-1  but  for the second joystick; the default
166              here is either `/dev/input/js1' or `/dev/js1'.
167
168       --kempston
169              Emulate a Kempston joystick. Same  as  the  Peripherals  Options
170              dialog's Kempston joystick option.
171
172       --kempston-mouse
173              Emulate  a  Kempston mouse. Same as the Peripherals Options dia‐
174              log's Kempston mouse option.
175
176       --loading-sound
177              Specify whether the sound made while tapes are loading should be
178              emulated.  (Enabled  by  default,  but  you  can use `--no-load‐
179              ing-sound' to disable). Same as the Sound Options dialog's Load‐
180              ing sound option.
181
182       -m type
183       --machine type
184              Specify  machine type to emulate initially. The default is 48, a
185              48K Spectrum. The available options  are  16,  48,  128,  plus2,
186              plus2a, plus3, 2048, 2068, ts2068, pentagon, pentagon512, penta‐
187              gon1024, and scorpion.
188
189       --microdrive-file file
190       --microdrive-2-file file
191       --microdrive-3-file file
192       --microdrive-4-file file
193       --microdrive-5-file file
194       --microdrive-6-file file
195       --microdrive-7-file file
196       --microdrive-8-file file
197              Specify Interface I Microdrive cartridge files to open.
198
199       -p file
200       --playback file
201              Specify an RZX file to begin playback from.
202
203       --paltv2x
204              Specify whether the PAL TV 2x and PAL TV 3x scalers should  also
205              produce  scanlines  along  the  lines  of the TV 2x and Timex TV
206              scalers.  The same as the General Options  dialog's  PAL-TV  use
207              TV2x effect option.
208
209       --plus3disk file
210              Insert  the specified file into the emulated +3's A: drive; also
211              select the +3 on startup if available.
212
213       --plusd
214              Emulate a +D interface. Same as the Peripherals Options dialog's
215              +D interface option.
216
217       --plusddisk file
218              Insert the specified file into the emulated +D's drive 1.
219
220       --printer
221              Specify  whether the emulation should include a printer. Same as
222              the Peripherals Options dialog's Emulate printers option.
223
224       --rate frame
225              Specify the frame rate, the ratio of spectrum frame  updates  to
226              real  frame  updates. Same as the General Options dialog's Frame
227              rate option.
228
229       -r file
230       --record file
231              Specify an RZX file to begin recording to.
232
233       --rom-16 file
234       --rom-48 file
235       --rom-128-0 file
236       --rom-128-1 file
237       --rom-plus2-0 file
238       --rom-plus2-1 file
239       --rom-plus2a-0 file
240       --rom-plus2a-1 file
241       --rom-plus2a-2 file
242       --rom-plus2a-3 file
243       --rom-plus3-0 file
244       --rom-plus3-1 file
245       --rom-plus3-2 file
246       --rom-plus3-3 file
247       --rom-plus3e-0 file
248       --rom-plus3e-1 file
249       --rom-plus3e-2 file
250       --rom-plus3e-3 file
251       --rom-tc2048 file
252       --rom-tc2068-0 file
253       --rom-tc2068-1 file
254       --rom-ts2068-0 file
255       --rom-ts2068-1 file
256       --rom-pentagon-0 file
257       --rom-pentagon-1 file
258       --rom-pentagon-2 file
259       --rom-pentagon-3 file
260       --rom-scorpion-0 file
261       --rom-scorpion-1 file
262       --rom-scorpion-2 file
263       --rom-scorpion-3 file
264       --rom-spec-se-0 file
265       --rom-spec-se-1 file
266       --rom-interface-1 file
267       --rom-plusd file
268       --rom-beta128 file
269              Specify the file to be used for ROM(s) used  for  each  machine.
270              The options respectively refer to the 16K Spectrum (48.rom), 48K
271              Spectrum (48.rom), the two ROMs for the 128K Spectrum (128-0.rom
272              and  128-1.rom),  the  two  ROMs  for  the  +2  (plus2-0.rom and
273              plus2-1.rom),  the  four  ROMs   for   the   +2A   (plus3-0.rom,
274              plus3-1.rom, plus3-2.rom and plus3-3.rom), the four ROMs for the
275              +3 (plus3-0.rom, plus3-1.rom, plus3-2.rom and plus3-3.rom),  the
276              TC2048   ROM   (tc2048.rom),   the   two  ROMs  for  the  TC2068
277              (tc2068-0.rom and tc2068-1.rom), the two  ROMs  for  the  TS2068
278              (tc2068-0.rom  and  tc2068-1.rom), the two main ROMs, the TR-DOS
279              ROM and a  reset  service  ROM  for  the  Pentagon  (128p-0.rom,
280              128p-1.rom,  trdos.rom  and  gluck.rom),  the  four ROMs for the
281              Scorpion   256   (256s-0.rom,   256s-1.rom,    256s-2.rom    and
282              256s-3.rom),  the  two  ROMs  for  the Spectrum SE (se-0.rom and
283              se-1.rom),  the  Interface  I  ROM  (if1-2.rom),  the   +D   ROM
284              (plusd.rom),  and the TR-DOS ROM for Beta 128 emulation with the
285              128K or +2  (trdos.rom).   The  names  in  brackets  denote  the
286              defaults.
287
288       --no-rs232-handshake
289              This  option  makes Fuse's Interface I emulation assume that the
290              RS-232 line other end is live when you connect the communication
291              channels.  See also the `--rs232-rx' and `--rs232-tx' options.
292
293       --rs232-rx
294       --rs232-tx
295              Specify the communication channels (FIFO or file) to be used for
296              Interface I RS-232 emulation as RxD and TxD wire. See  also  the
297              `--rs232-handshake' options.
298
299       --separation
300              Give  stereo  separation of the 128's AY sound channels. Same as
301              the General Options dialog's AY stereo separation option.
302
303       --simpleide
304              Specify whether Fuse will emulate the simple 8-bit IDE interface
305              as  used  by  the  Spectrum +3e. Same as the Peripherals Options
306              dialog's Simple 8-bit IDE option.
307
308       --simpleide-masterfile file
309              Specify a HDF file to connect to the emulated Simple  8-bit  IDE
310              interface's master channel.
311
312       --simpleide-slavefile file
313              Specify  a  HDF file to connect to the emulated Simple 8-bit IDE
314              interface's slave channel.
315
316       --slt
317              Support the SLT trap instruction. (Enabled by default,  but  you
318              can use `--no-slt' to disable). Same as the General Options dia‐
319              log's Use .slt traps option.
320
321       -s file
322       --snapshot file
323              Specify a snapshot file to load. The file can be in any snapshot
324              format supported by libspectrum(3).
325
326       --sound
327              Specify  whether Fuse should produce sound. (Enabled by default,
328              but you can use `--no-sound' to  disable).  Same  as  the  Sound
329              Options dialog's Sound enabled option.
330
331       --sound-force-8bit
332              Force  the  use of 8-bit sound, even if 16-bit is possible. Same
333              as the Sound Options dialog's Force 8-bit option.
334
335       --sound-hifi
336              Use higher fidelity sound generation to improve the reproduction
337              of  some  multi-channel  beeper tunes by reducing aliasing noise
338              (e.g.  Fairlight 2). Same as the Sound  Options  dialog's  Hi-fi
339              beeper option.
340
341       -d device
342       --sound-device device
343              Specify  the  sound output device to use and any options to give
344              that device. If you are not using the SDL UI or using  libao  or
345              libasound  (ALSA)  for  sound  output, then the device parameter
346              just specifies the device to be used for sound output.
347
348              If you are using the SDL UI, the device parameter allows you  to
349              specify  the  audio  driver to be used (e.g. dsp, alsa, dma, esd
350              and arts).
351
352              If you are using libao for sound output,  the  device  parameter
353              allows  you  to specify the device used for sound output (either
354              `live' to a speaker or to a file) and the parameters to be  used
355              for  that  device. In general, the device parameter has the form
356              driver[:param[=value][,param[=value][,...]].  driver selects the
357              libao driver to be used, either one of the `live' drivers (aixs,
358              alsa, alsa09, arts, esd, irix , macosx, nas, oss or  sun)  or  a
359              file driver (au, raw, wav or null).  The available parameter and
360              value pairs for each device are:
361
362              ·      aixs: AIX audio system
363
364                     ·      dev=device
365                            `device' gives the AIX sound device.
366
367              ·      alsa: Advanced Linux Sound Architecture version 0.5.x
368
369                     ·      card=num
370                            `num' gives the ALSA card number.
371
372                     ·      dev=num
373                            `num' gives the ALSA device number.
374
375                     ·      buf_size=num
376                            `num' gives the ALSA buffer size in bytes.
377
378              ·      alsa09: Advanced Linux Sound Architecture version 0.9+
379
380                     ·      dev=string
381                            `string' specfies the ALSA device e.g. hw:1.2
382
383                     ·      buffer_time=num
384                            `num' gives the ALSA buffer time in microseconds.
385
386                     ·      period_time=num
387                            `num' gives the ALSA period time in microseconds.
388
389                     ·      use_mmap=yes|y|true|t|1
390                            specifies that libao use memory mapped transfer.
391
392              ·      arts: aRts soundserver: no parameters.
393
394              ·      esd: Enlightened Sound Daemon.
395
396                     ·      host=string
397                            `string' gives the ESD host specification.
398
399              ·      irix: IRIX Audio Library: no parameters.
400
401              ·      macosx: MacOS X CoreAudio: no parameters.
402
403              ·      nas: Network Audio System.
404
405                     ·      host=string
406                            `string' gives the NAS host specification.
407
408                     ·      buf_size=num
409                            `num' gives the buffer size on the server.
410
411              ·      oss: Open Sound System.
412
413                     ·      dsp=string
414                            `string' gives the OSS  device  to  be  used  e.g.
415                            /dev/sound/dsp1
416
417              ·      sun: SUN audio system.
418
419                     ·      dev=string
420                            `string' gives the audio device to be used.
421
422              ·      au: SUN Sparc audio file: no parameters.
423
424              ·      raw: raw file.
425
426                     ·      byteorder=string
427                            `string'  can  be any of native (host native byte‐
428                            order),  big  (big  endian)  or   little   (little
429                            endian).
430
431              ·      wav: Microsoft audio file: no parameters.
432
433              ·      null: null output: no parameters.
434
435              ·      debug: for debugging libao.
436
437              Finally, each of the file output types (au, raw and wav) have an
438              extra option `file=filename' where  `filename'  gives  the  file
439              output  will be directed to. This defaults to `fuse-sound.ao' if
440              it is not specified.
441
442              Some examples of use:
443
444              fuse -d alsa09:dev=hw:1
445
446              causes Fuse to use ALSA 0.9+ output with the second  (#1)  sound
447              card.
448
449              fuse -d raw:byteorder=little,file=enigma.raw
450
451              causes Fuse to save little endian words to `enigma.raw'.
452
453              See the `DEVICE' section of ogg123(1) for up to date information
454              of devices and options (except for the `file'  option  which  is
455              provided by Fuse itself).
456              If  you are using libasound or ALSA for sound output, the device
457              parameter allows you to specify the device used for sound output
458              and  some parameters to be used for that device. In general, the
459              device parameter has the form
460              devstr or
461              param[=value][,param[=value][,...][,devstr].
462
463              ·      devstr: selects the ALSA device used, it can be any  com‐
464                     plex or simple ALSA device name. e.g.: default or hw:0 or
465                     tee:plughw:0,'/tmp/out.raw',raw See the alsa-lib pcm  api
466                     reference                                              at
467                     http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
468                     for further explanation.
469
470              ·      param and values:
471
472                     ·      buffer=nnnn:   set  the  ALSA  buffer  in  frames,
473                            smaller value cause smaller sound  delay  but  may
474                            more  buffer  underrun  (pops  and clicks), larger
475                            value cause longer delay but  fewer  underrun.  By
476                            default  Fuse  determine  the buffer size based on
477                            the actual sound frequency.
478                            If you use some special plugin for your pcm device
479                            (e.g.:  dmix) or your card not support some needed
480                            parameter (e.g.  cannot  play  other  only  48 kHz
481                            stereo  sound like some AC97 sound card) may cause
482                            Fuse unable to set the needed buffer size,  appro‐
483                            priate sound frequency, channels and so on, there‐
484                            fore you cannot get optimal result or not hear the
485                            sound  at  all.  In  this  case  try the plughw:#,
486                            (where # mean your card number counted from 0) for
487                            ALSA device.
488
489                     ·      verbose : if given, fuse report ALSA buffer under‐
490                            runs to stderr
491
492              Some examples of use:
493
494              fuse -d verbose,buffer=2000
495
496              causes Fuse to use the  default  ALSA  device  with  2000  frame
497              length buffer and report ALSA buffer underruns on stderr.
498
499              fuse -d tee:plughw:0,'/tmp/aufwm.raw',raw
500
501              causes  Fuse  to  use  the  first card and parallel save the raw
502              audio samples into /tmp/aufwm.raw file.
503
504       --speed percentage
505              Specify the speed (as a percentage of real  Spectrum  speed)  at
506              which  emulation  should attempt to proceed. Same as the General
507              Options dialog's Emulation speed option.
508
509       --statusbar
510              For the GTK+ UI, enables the statusbar beneath the display.  For
511              the  SDL  UI,  enables the status icons showing whether the disk
512              and tape are being accessed. Same as the  General  Options  dia‐
513              log's Show statusbar option.
514
515       --strict-aspect-hint
516              For the GTK+ UI, use stricter limits for the aspect ratio limits
517              set by the `--aspect-hint' option. This can  cause  some  window
518              managers  (for  example, metacity(1)) to not allow the window to
519              be resized and moved, but is necessary to  prevent  others  (for
520              example,  fvwm(1))  from  being able resize the window away from
521              square.
522
523       -v mode
524       --svgamode mode
525              Specify which mode to use for the SVGAlib and FB UIs.  Available
526              values  for  mode  are `320' (which corresponds to a 320x240x256
527              mode), the default and `640' (a 640x480x256 mode).
528
529       -D mode
530       --doublescan-mode mode
531              Specify whether to use doublescan modes in the  SVGAlib  and  FB
532              UIs.   Available  values for mode are 0, 1 and 2. 0 means `never
533              doublescan' (use 640x480 at either 72 Hz or  60 Hz),  whereas  1
534              and  2  both  mean `try to use doublescan' and will fall back on
535              the 640x480 modes. These latter two are treated identically  for
536              SVGA,  but  for FB, they differ: 1 selects 72 Hz modes (the same
537              size and shape as your typical 640x480),  and  2  selects  60 Hz
538              modes (overscan).
539              If your monitor displays a blank screen when using 1 or 2, press
540              F10 then try a different option or say `--svgamode 640'.
541
542       -t file
543       --tape file
544              Specify a virtual tape file to use. It must be  in  TAP  or  TZX
545              format.
546
547       --textfile file
548              Set  the  filename used for text output from the emulated print‐
549              ers. See the PRINTER EMULATION section below for more details.
550
551       --traps
552              Support traps for ROM tape loading/saving. (Enabled by  default,
553              but  you  can  use `--no-traps' to disable). Same as the General
554              Options dialog's Use tape traps option.
555
556       --betadisk file
557              Insert the specified file into the  emulated  Beta  disk  inter‐
558              face's drive A: and select Pentagon mode on startup.
559
560       -V
561       --version
562              Show which version of Fuse is being used.
563
564       --writable-roms
565              Allow Spectrum programs to overwrite the ROM(s). The same as the
566              General Options dialog's Allow writes to ROM option.
567
568       --zxatasp
569              Specify whether Fuse emulate the ZXATASP interface. Same as  the
570              Peripherals Options dialog's ZXATASP interface option.
571
572       --zxatasp-upload
573              Specify  the  state  of  the  ZXATASP upload jumper. Same as the
574              Peripherals Options dialog's ZXATASP upload option.
575
576       --zxatasp-write-protect
577              Specify the state of the ZXATASP write protect jumper.  Same  as
578              the Peripherals Options dialog's ZXATASP write protect option.
579
580       --zxatasp-masterfile file
581              Specify  a  HDF  file  to connect to the emulated ZXATASP inter‐
582              face's master channel.
583
584       --zxatasp-slavefile file
585              Specify a HDF file to connect to  the  emulated  ZXATASP  inter‐
586              face's slave channel.
587
588       --zxcf
589              Specify  whether  Fuse  emulate  the ZXCF interface. Same as the
590              Peripherals Options dialog's ZXCF interface option.
591
592       --zxcf-upload
593              Specify the state of the ZXCF upload jumper. Same as the Periph‐
594              erals Options dialog's ZXCF upload option.
595
596       --zxcf-cffile file
597              Specify a HDF file to connect to the emulated ZXCF interface.
598
599       All  long  options  which control on/off settings can be disabled using
600       `--no-foo' (for an option  `--foo').   For  example,  the  opposite  of
601       `--issue2'  is `--no-issue2'.  These options can also be modified while
602       the emulator is running, using the options dialogs - see the documenta‐
603       tion for the Options menu in the MENUS AND KEYS section for details.
604

THE VARIOUS FRONT-ENDS

606       Fuse  supports  various front-ends, or UIs (user interfaces). The usual
607       one is GTK+-based, but there are also SDL,  Xlib,  SVGAlib  and  frame‐
608       buffer ones.
609
610       The important difference to note is that the GTK+ version uses `native'
611       dialog boxes etc. (behaving like a  fairly  normal  GUI-based  program)
612       while  the  others  use an alternative, Fuse-specific `widget UI'. This
613       latter front-end is easily spotted by the way it  uses  the  main  Fuse
614       window/screen for menus and dialogs, and uses the Spectrum's own font.
615
617       Since  many of the keys available are devoted to emulation of the Spec‐
618       trum's keyboard, the primary way of  controlling  Fuse  itself  (rather
619       than  the  emulated  machine) is via the menus. There are also function
620       key shortcuts for some menu options.
621
622       In the GTK+ version, the menu bar is always visible at the top  of  the
623       Fuse  window. You can click on a menu name to pop it up. Alternatively,
624       you can press F1 to display a pop-up version of the menu bar, which you
625       can then navigate with the cursor keys or mouse.
626
627       In  the widget UI pressing F1 is the only way to get the main menu; and
628       unlike the GTK+ version, the emulator pauses while the menus are  being
629       navigated.  The  menus  show which key to press for each menu option in
630       brackets. Pressing Esc exits a menu, and pressing Enter exits the  menu
631       system entirely (as well as `confirming' any current dialog).
632
633       Here's  what  the menu options do, along with the function key mappings
634       for those items which have them:
635
636       F3
637       File, Open...
638              Open a Spectrum file. Snapshots will be loaded into memory; tape
639              images  will be inserted into the emulated tape deck, and if the
640              Auto-load media option is set will being loading. Opening a disk
641              image  or  a Timex dock image will cause the appropriate machine
642              type (+3, Pentagon or TC2068) to  be  selected  with  the  image
643              inserted,  and  disks  will  automatically load if the Auto-load
644              media option is set. See the FILE SELECTION  section  below  for
645              details  on  how to choose the file. Note that this behaviour is
646              different from previous versions of Fuse, when this option would
647              open only snapshots.
648
649       F2
650       File, Save Snapshot...
651              Save  a snapshot (machine state, memory contents, etc.) to file.
652              You can select the filename to be saved to. If it  has  a  .szx,
653              .z80  or .sna extension, the snapshot will be saved in that for‐
654              mat. Otherwise, it will be saved as a .szx file.
655
656       File, Recording, Record...
657              Start recording input to an RZX file, initialised from the  cur‐
658              rent  emulation  state.  You  will be prompted for a filename to
659              use.
660
661       File, Recording, Record from snapshot...
662              Start recording input to an RZX file, initialised from  a  snap‐
663              shot.  You  will first be asked for the snapshot to use and then
664              the file to save the recording to.
665
666       Insert
667       File, Recording, Insert snapshot
668              Inserts a snapshot of the current state into the RZX file.  This
669              can  be used at a later point to roll back to the inserted state
670              by using one of the commands below.
671
672       Delete
673       File, Recording, Rollback
674              Rolls back the recording to the  point  at  which  the  previous
675              snapshot was inserted. Recording will continue from that point.
676
677       File, Recording, Rollback to...
678              Roll  back the recording to any snapshot which has been inserted
679              into the recording.
680
681       File, Recording, Play...
682              Playback recorded input from an RZX file. This lets  you  replay
683              keypresses  recorded  previously.  RZX files generally contain a
684              snapshot with the Spectrum's state at the start of  the  record‐
685              ing;  if the selected RZX file doesn't, you'll be prompted for a
686              snapshot to load as well.
687
688       File, Recording, Stop
689              Stop any currently-recording/playing RZX file.
690
691       File, AY Logging, Record...
692              Start recording the bytes output via the AY-3-8192 sound chip to
693              a  PSG  file.  You  will  be prompted for a filename to save the
694              recording to.
695
696       File, AY Logging, Stop
697              Stop any current AY logging.
698
699       File, Open SCR Screenshot...
700              Load an SCR screenshot (essentially just a binary  dump  of  the
701              Spectrum's  video memory) onto the current screen. Fuse supports
702              screenshots saved in the Timex hi-colour  and  hi-res  modes  as
703              well  as  `normal' Spectrum screens, and will make a simple con‐
704              version if a hi-colour or hi-res screenshot  is  loaded  onto  a
705              non-Timex machine.
706
707       File, Save Screen as SCR...
708              Save  a copy of whatever's currently displayed on the Spectrum's
709              screen as an SCR file. You will be prompted for  a  filename  to
710              save the screenshot to.
711
712       File, Save Screen as PNG...
713              Save  the current screen as a PNG file. You will be prompted for
714              a filename to save the screenshot to.
715
716       File, Movies, Record Movie as SCR...
717              Start recording a `movie' as a series of  SCR  screenshots.  You
718              will  be  prompted for a filename, and the screenshots will then
719              be        saved         to         `<name>-frame-000000000.scr',
720              `<name>-frame-000000001.scr' and so on.
721
722       File, Movies, Record Movie as PNG...
723              Start  recording  a `movie' as a series of PNG images. The file‐
724              names used will be the same as for the SCR  movie,  but  with  a
725              `.png' extension instead of `.scr'.
726
727       File, Movies, Stop Movie Recording
728              Stop any movie recording which is currently in progress.
729
730       File, Load Binary Data...
731              Load  binary  data from a file into the Spectrum's memory. After
732              selecting the file to load data from, you can  choose  where  to
733              load the data and how much data to load.
734
735       File, Save Binary Data...
736              Save  an  arbitrary  chunk  of  the Spectrum's memory to a file.
737              Select the file you wish to save to, followed  by  the  location
738              and length of data you wish to save.
739
740       F10
741       File, Exit
742              Exit  the  emulator.  A confirmation dialog will appear checking
743              you actually want to do this.
744
745       F4
746       Options, General...
747              Display the General Options dialog, letting you configure  Fuse.
748              (With  the  widget  UI,  the  keys  shown in brackets toggle the
749              options, Enter confirms any changes, and Esc aborts). Note  that
750              any changed settings only apply to the currently-running Fuse.
751
752              The options available are:
753
754              Emulation speed
755                     Set  how  fast Fuse will attempt to emulate the Spectrum,
756                     as a percentage of the speed at which  the  real  machine
757                     runs.  If  your machine isn't fast enough to keep up with
758                     the requested speed, Fuse will just run  as  fast  as  it
759                     can.  Note  that  if  the  emulation speed is not exactly
760                     100%, no sound output will be produced.
761
762              Frame rate
763                     Specify the frame  rate,  the  ratio  of  spectrum  frame
764                     updates  to  real  frame  updates. This is useful if your
765                     machine is having trouble keeping up  with  the  spectrum
766                     screen updates.
767
768              Issue 2 keyboard
769                     Early versions of the Spectrum used a different value for
770                     unused bits on the keyboard input ports, and a few  games
771                     depended  on  the  old value of these bits. Enabling this
772                     option switches to the old value, to let you run them.
773
774              Use tape traps
775                     Ordinarily, Fuse intercepts calls to the ROM tape-loading
776                     routine  in  order  to  load from tape files more quickly
777                     when possible. But this can (rarely) interfere  with  TZX
778                     loading;  disabling this option avoids the problem at the
779                     cost of  slower  (i.e.  always  real-time)  tape-loading.
780                     When  tape-loading  traps are disabled, you need to start
781                     tape playback manually, by pressing F8  or  choosing  the
782                     Media, Tape, Play menu item. Fuse also uses tape traps to
783                     intercept the tape-saving routine in the ROM to save tape
784                     files  quickly,  tapes can also be saved using the Media,
785                     Tape, Record Start menu item.
786
787              Fastloading
788                     If this option is enabled, then  Fuse  will  run  at  the
789                     fastest  possible speed when the virtual tape is playing,
790                     thus dramatically reducing the time it takes to load pro‐
791                     grams. You may wish to disable this option if you wish to
792                     stop the tape at a specific point.
793
794              Detect loaders
795                     If this option is enabled, Fuse will  attempt  to  detect
796                     when a loading routine is in progress, and then automati‐
797                     cally start the virtual tape to load the program in. This
798                     is  done  by using a heuristic to identify a loading rou‐
799                     tine, so is by no means infallible,  but  works  in  most
800                     cases.
801
802              Auto-load media
803                     On many occasions when you open a tape or disk file, it's
804                     because it's got a program in you want to load  and  run.
805                     If  this option is selected, this will automatically hap‐
806                     pen for you when you open one of these  files  using  the
807                     File,  Open...  menu option - you must then use the Media
808                     menu to use tapes or disks for saving  data  to,  or  for
809                     loading data into an already running program.
810
811              Use .slt traps
812                     The  multi-load  aspect  of  SLT  files  requires  a trap
813                     instruction to be supported. This instruction is not gen‐
814                     erally  used  except  for  this  trap, but since it's not
815                     inconceivable that a program could be wanting to use  the
816                     real  instruction instead, you can choose whether to sup‐
817                     port the trap or not.
818
819              Allow writes to ROM
820                     If this option is selected, Fuse will happily allow  pro‐
821                     grams to overwrite what would normally be ROM. This prob‐
822                     ably isn't very useful in most circumstances,  especially
823                     as the 48K ROM overwrites parts of itself.
824
825              Auto-save settings
826                     If this option is selected, Fuse will automatically write
827                     its currently selected options to its configuration  file
828                     on  exit  (if  libxml2  was  available when Fuse was com‐
829                     piled). If you turn this option off, you'll have to manu‐
830                     ally  use  Options,  Save  afterwards to ensure that this
831                     setting gets written to Fuse's configuration file.
832
833              MDR cartridge len
834                     This option controls the number of blocks in a new Micro‐
835                     drive  cartridge.  If the value smaller than 4 or greater
836                     than 254 Fuse assumes 4 or 254.
837
838              RS-232 handshake
839                     If you turn this option off, Fuse assumes the RS-232 line
840                     other  end  is  live  when  you connect the communication
841                     channels.  See also the `--rs232-rx--rs232-tx' options.
842
843              Black and white TV
844                     This option allows you to choose whether  to  simulate  a
845                     colour  or  black and white television. This is effective
846                     only under the GTK+, Xlib and SDL  user  interfaces:  the
847                     others will always simulate a colour TV.
848
849              PAL-TV use TV2x effect
850                     This  option  allows  you to choose whether the PAL TV 2x
851                     and higher scalers also reproduce scanlines in  the  same
852                     way as the TV 2x, 3x and Timex TV scalers.
853
854              Confirm actions
855                     Specify  whether  `dangerous'  actions (those which could
856                     cause data loss,  for  example  resetting  the  Spectrum)
857                     require confirmation before occurring.
858
859              Show statusbar
860                     For  the  GTK+ UI, enables the statusbar beneath the dis‐
861                     play. For the SDL UI, enables the  status  icons  showing
862                     whether the disk and tape are being accessed. This option
863                     has no effect for the other user interfaces.
864
865              Snap joystick prompt
866                     If set, Fuse will prompt you which physical  joystick  or
867                     keyboard  you  want  to connect to the joystick interface
868                     enabled in the snapshot unless it  already  matches  your
869                     current configuration.
870
871       Options, Sound...
872              Display  the  Sound Options dialog, letting you configure Fuse's
873              sound output. (With the widget UI, the keys  shown  in  brackets
874              toggle the options, Enter confirms any changes, and Esc aborts).
875              Note that any changed settings only apply to the  currently-run‐
876              ning Fuse.
877
878              Sound enabled
879                     Specify  whether  sound  output should be enabled at all.
880                     When this option is disabled,  Fuse  will  not  make  any
881                     sound.
882
883              Loading sound
884                     Normally,  Fuse  emulates tape-loading noise when loading
885                     from TAPs or TZXs in real-time, albeit at a  deliberately
886                     lower  volume  than  on  a real Spectrum. You can disable
887                     this option to eliminate the loading noise entirely.
888
889              AY stereo separation
890                     By default, the sound output is mono, since this  is  all
891                     you  got  from  an unmodified Spectrum. But enabling this
892                     option gives you so-called ACB stereo (for sound from the
893                     128's AY-3-8912 sound chip). This actually works a little
894                     better than ACB  stereo  modifications  for  the  machine
895                     itself, since it uses stereo positioning rather than sim‐
896                     ply playing on one channel only.
897
898              Beeper pseudo-stereo
899                     The Spectrum beeper is inherently mono, but enabling this
900                     option adds a simple fake-stereo effect. While the slight
901                     echo involved  can  sometimes  make  beeper  noise  sound
902                     worse, in many cases it gives an acceptable result.
903
904              Force 8-bit
905                     Force the use of 8-bit sound even if 16-bit (the default)
906                     is available. Note that (when the option is  enabled)  if
907                     8-bit  sound  isn't available then there will be no sound
908                     at all, so it's best not to use this  option  unless  you
909                     have a specific need for it.
910
911              Hi-fi beeper
912                     Use  higher  fidelity  sound  generation  to  improve the
913                     reproduction of some multi-channel beeper tunes by reduc‐
914                     ing aliasing noise (e.g.  Fairlight 2).
915
916       Options, Peripherals...
917              Display  the  Peripherals  Options dialog, letting you configure
918              the peripherals which Fuse will consider to be attached  to  the
919              emulated machines. (With the widget UI, the keys shown in brack‐
920              ets toggle the options, Enter  confirms  any  changes,  and  Esc
921              aborts).  Note  that any changed settings only apply to the cur‐
922              rently-running Fuse.
923
924              Kempston joystick
925                     If this option is selected, Fuse will emulate a  Kempston
926                     joystick  interface  (probably  the most widely supported
927                     type on the Spectrum).  Note that this  option  is  basi‐
928                     cally  equivalent to plugging the interface itself into a
929                     Spectrum, not to connecting a joystick; this affects  how
930                     the  Spectrum responds to a read of input port 31. To use
931                     a Kempston joystick  in  a  game,  this  option  must  be
932                     enabled, and you must also select a Kempston joystick the
933                     Options, Joysticks menu.
934
935              Kempston mouse
936                     If this option is selected, Fuse will emulate a  Kempston
937                     mouse interface.
938
939                     If you're using Fuse full-screen, your mouse is automati‐
940                     cally used as if attached to the Kempston interface. Oth‐
941                     erwise,  you'll  need to click on the Spectrum display in
942                     order to tell Fuse to  grab  the  pointer  (and  make  it
943                     invisible);  to tell Fuse to release it, click the middle
944                     button (or wheel) or press Escape.
945
946                     With the framebuffer UI, Fuse prefers to use GPM; if this
947                     is  not  available,  it  will  fall back to built-in PS/2
948                     mouse support. In this mode,  it  tries  /dev/input/mice,
949                     /dev/mouse then /dev/psaux, stopping when it successfully
950                     opens one. The first of  these  is  preferred  since  (at
951                     least  on  Linux,  with  a 2.6-series kernel) any type of
952                     mouse can be used and any connected mouse may be used.
953
954              Interface I
955                     If this option is selected, Fuse will emulate the  simple
956                     Sinclair  Interface I, and allow Microdrive cartridges to
957                     be connected and disconnected via the Media, Interface I,
958                     Microdrive  menus. It also enables support for the Inter‐
959                     face I RS-232 interface.
960
961              Interface II
962                     If this option is selected, Fuse will emulate a cartridge
963                     port as found on the Interface II. Cartridges can then be
964                     inserted and removed via the Media, Cartridge,  Interface
965                     II  menu. Note that the Pentagon, Scorpion, Interface II,
966                     ZXATASP and ZXCF all use the same hardware mechanism  for
967                     accessing some of their extended features, so only one of
968                     these should be selected at once or unpredictable  behav‐
969                     iour will occur.
970
971              Emulate printers
972                     If  this option is selected, Fuse will emulate a printer.
973                     See the PRINTER EMULATION section for more details.
974
975              Simple 8-bit IDE
976                     If this option is selected, Fuse will emulate the  simple
977                     8-bit  IDE  interface  as  used  by the Spectrum +3e, and
978                     allow hard disks to be connected and disconnected via the
979                     Media, IDE, Simple 8-bit menu.
980
981              ZXATASP interface
982                     If this option is selected, Fuse will emulate the ZXATASP
983                     interface, which provides both additional RAM and an  IDE
984                     interface.  See  the  ZXATASP  AND  ZXCF section for more
985                     details.
986
987              ZXATASP upload
988                     This option controls the  state  of  the  ZXATASP  upload
989                     jumper.  See  the  ZXATASP  AND  ZXCF  section  for  more
990                     details.
991
992              ZXATASP write protect
993                     This option controls the state of the ZXATASP write  pro‐
994                     tect  jumper.  See  the ZXATASP AND ZXCF section for more
995                     details.
996
997              ZXCF interface
998                     If this option is selected, Fuse will  emulate  the  ZXCF
999                     interface,  which provides both additional RAM and a Com‐
1000                     pactFlash interface. See the ZXATASP AND ZXCF section for
1001                     more details.
1002
1003              ZXCF upload
1004                     This option controls the state of the ZXCF upload jumper.
1005                     See the ZXATASP AND ZXCF section for more details.
1006
1007              DivIDE interface
1008                     If this option is selected, Fuse will emulate the  DivIDE
1009                     interface. See the DIVIDE section for more details.
1010
1011              DivIDE write protect
1012                     This  option  controls the state of the DivIDE write pro‐
1013                     tection jumper. See the DIVIDE section for more details.
1014
1015              +D interface
1016                     If this option is selected,  Fuse  will  emulate  the  +D
1017                     interface.    See  the  +D  EMULATION  section  for  more
1018                     details.
1019
1020              Beta 128 interface
1021                     If this option is selected, Fuse will  emulate  the  Beta
1022                     128  interface.   See  the BETA 128 EMULATION section for
1023                     more details. Beta 128 emulation is enabled for the  Pen‐
1024                     tagon and Scorpion machines regardless of this option.
1025
1026       Options, RZX...
1027              Display the RZX Options dialog, letting you configure how Fuse's
1028              deals with RZX input recordings. (With the widget UI,  the  keys
1029              shown  in  brackets  toggle  the  options,  Enter  confirms  any
1030              changes, and Esc aborts). Note that any  changed  settings  only
1031              apply to the currently-running Fuse.
1032
1033              Compress RZX data
1034                     If  this  option is selected, and zlib was available when
1035                     Fuse was compiled, any RZX files written by Fuse will  be
1036                     compressed.  This  is  generally a good thing as it makes
1037                     the files significantly smaller, and you probably want to
1038                     turn  it  off  only  if you're debugging the RZX files or
1039                     there's some other program  which  doesn't  support  com‐
1040                     pressed RZX files.
1041
1042              Competition mode
1043                     Any  input  recordings which are started when this option
1044                     is selected  will  be  made  in  `competition  mode'.  In
1045                     essence,  this  means that Fuse will act just like a real
1046                     Spectrum would: you can't load snapshots, pause the  emu‐
1047                     lation  in any way, change the speed or anything that you
1048                     couldn't do on the real machine. If any of  these  things
1049                     are  attempted,  or  if the emulated Fuse is running more
1050                     than 5% faster or slower than normal Spectrum speed, then
1051                     the recording will immediately be stopped.
1052
1053                     If  libgcrypt  was available when Fuse was compiled, then
1054                     recordings made with competition mode active will be dig‐
1055                     itally  signed,  in  theory to `certify' that it was made
1056                     with the above restrictions in place.  However, this pro‐
1057                     cedure  is  not  secure  (and  cannot be made so), so the
1058                     presence of any signature on an RZX file  should  not  be
1059                     taken  as  providing proof that it was made with competi‐
1060                     tion mode active.   This  feature  is  included  in  Fuse
1061                     solely  as  it was one of the requirements for Fuse to be
1062                     used in an on-line tournament.
1063
1064              Competition code
1065                     The numeric code entered here will be  written  into  any
1066                     RZX  files made in competition mode. This is another fea‐
1067                     ture for on-line tournaments which can be used to `prove'
1068                     that  the  recording  was  made after a specific code was
1069                     released. If you're not playing in such a tournament, you
1070                     can safely ignore this option.
1071
1072              Always embed snapshot
1073                     Specify  whether  a snapshot should be embedded in an RZX
1074                     file when recording is started from an existing snapshot.
1075
1076       Options, Joysticks
1077              Fuse can emulate many of the common types of joystick which were
1078              available  for  the  Spectrum. The input for these emulated joy‐
1079              sticks can be taken from real joysticks attached to the  emulat‐
1080              ing  machine  (configured  via  the Options, Joysticks, Joystick
1081              1...  and Options, Joysticks, Joystick 2...  options),  or  from
1082              the  q,  a,  o, p, and Space keys on the emulating machines key‐
1083              board,  configured  via  the  Options,  Joysticks,   Keyboard...
1084              option. Note that when using the keyboard to emulate a joystick,
1085              the q, a, o, p, and Space keys will not have their normal effect
1086              (to  avoid  problems  with  games which do things like use p for
1087              pause when using a joystick).
1088
1089              Each of the joysticks (including the `fake'  keyboard  joystick)
1090              can  be  configured to emulate any one of the following joystick
1091              types:
1092
1093                     None
1094                            No joystick: any input will simply be ignored.
1095
1096                     Cursor
1097                            A  cursor  joystick,  equivalent  to  pressing   5
1098                            (left), 6 (down), 7 (up), 8 (right), and 0 (fire).
1099
1100                     Kempston
1101                            A Kempston joystick, read from input port 31. Note
1102                            that the Options, Peripherals, Kempston  interface
1103                            option must also be set for the input to be recog‐
1104                            nised.
1105
1106                     Sinclair 1
1107                     Sinclair 2
1108                            The `left' and `right' Sinclair joysticks, equiva‐
1109                            lent  to pressing 1 (left), 2 (right), 3 (down), 4
1110                            (up), and 5 (fire), or  6  (left),  7  (right),  8
1111                            (down), 9 (up), and 0 (fire) respectively.
1112
1113                     Timex 1
1114                     Timex 2
1115                            The  `left'  and  `right' joysticks as attached to
1116                            the Timex 2068 variant's built-in joystick  inter‐
1117                            face.
1118
1119              For  the  real  joysticks,  it  is  also  possible  to configure
1120              (although currently only when using  the  GTK+  interface)  what
1121              effect  each  button on the joystick will have: this can be Joy‐
1122              stick Fire, equivalent to pressing the emulated joystick's  fire
1123              button, Nothing, meaning to have no effect, or any Spectrum key,
1124              meaning that pressing that button will be equivalent to pressing
1125              that Spectrum key.
1126
1127       Options, Select ROMs
1128              An individual dialog is available for each Spectrum variant emu‐
1129              lated by Fuse which allows selection of the ROM(s) used by  that
1130              machine.  Simply  select the ROM you wish to use, and then reset
1131              the Spectrum for the change to take effect.
1132
1133       Options, Filter...
1134              Select the graphics filter currently in use.  See  the  GRAPHICS
1135              FILTERS section for more details.
1136
1137       Options, Save
1138              If libxml2 was available when Fuse was compiled, this will cause
1139              Fuse's current options to be written to  .fuserc  in  your  home
1140              directory,  from which they will be picked up again when Fuse is
1141              restarted. The best way to update this file  is  by  using  this
1142              option,  but it's a simple XML file and shouldn't be too hard to
1143              edit by hand if you really want to.
1144
1145       Pause
1146       Machine, Pause
1147              Pause or unpause emulation. This option is available only  under
1148              the GTK+ UI; to pause the other user interfaces, simply press F1
1149              to bring up the main menu.
1150
1151       F5
1152       Machine, Reset
1153              Reset the emulated Spectrum. Again, you get a chance  to  cancel
1154              this if you're using the GTK+ UI.
1155
1156       Machine, Hard reset
1157              Reset the emulated Spectrum. A hard reset is equivalent to turn‐
1158              ing the Spectrum's power off,  and  then  turning  it  back  on.
1159              Again,  you get a chance to cancel this if you're using the GTK+
1160              UI.
1161
1162       F9
1163       Machine, Select...
1164              Choose a type of Spectrum to emulate. An brief overview  of  the
1165              Sinclair,    Amstrad    and    Timex    can    be    found    at
1166              http://www.nvg.ntnu.no/sinclair/computers/zxspectrum/zxspec
1167              trum.htm  while  more  technical  information  can  be  found at
1168              http://www.worldofspectrum.org/faq/reference/reference.htm,  and
1169              http://www.worldofspectrum.org/faq/reference/tmxreference.htm.
1170
1171              Spectrum 16K
1172              Spectrum 48K
1173                     The  original  machines  as  released by Sinclair in 1982
1174                     with 16 or 48K of RAM respectively.
1175
1176              Spectrum 128K
1177                     The 128K machine as released by Sinclair in 1985  (Spain)
1178                     or 1986 (UK).
1179
1180              Spectrum +2
1181                     The  first  machine released by Amstrad, in 1986. From an
1182                     emulation point of view, the +2 is virtually identical to
1183                     the 128K.
1184
1185              Spectrum +2A
1186              Spectrum +3
1187                     The two machines released by Amstrad in 1988. Technically
1188                     very similar to each other, except that the +3 features a
1189                     3" disk drive while the +2A does not.
1190
1191              Spectrum +3e
1192                     A +3 with modified ROMs allowing access to IDE hard disks
1193                     via the simple 8-bit interface,  as  activated  from  the
1194                     Options,          Peripherals         dialog.         See
1195                     http://www.zxplus3e.plus.com/ for more details.
1196
1197              Timex TC2048
1198              Timex TC2068
1199                     The variants of the Spectrum as released by Timex in Por‐
1200                     tugal.
1201              Timex TS2068
1202                     The  variant  of  the Spectrum released by Timex in North
1203                     America.
1204
1205              Pentagon 128K
1206              Pentagon 512K
1207              Pentagon 1024K
1208              Scorpion ZS 256
1209                     Russian clones of the Spectrum. Some details can be found
1210                     at  http://www.worldofspectrum.org/rusfaq/index.html, but
1211                     possibly the most important  thing  to  note  about  both
1212                     these  machines  is  that  they  have  built in 3.5" disk
1213                     drives, accessed via the Beta disk interface  and  TR-DOS
1214                     (the Technology Research Disk Operating System).
1215
1216              Spectrum SE
1217                     A  recent  variant  designed  by  Andrew  Owen  and Jarek
1218                     Adamski, which is possibly best thought  of  as  a  cross
1219                     between the 128K machine and the Timex variants, allowing
1220                     272K of RAM to be accessed. Some more details are  avail‐
1221                     able     at     http://www.worldofspectrum.org/faq/refer
1222                     ence/sereference.htm.
1223
1224       Machine, Debugger...
1225              Start the monitor/debugger. See the MONITOR/DEBUGGER section for
1226              more information.
1227
1228       Machine, Poke Finder...
1229              Start  the  `poke  finder'. See the POKE FINDER section for more
1230              information.
1231
1232       Machine, Memory Browser...
1233              Start the memory browser. It should be fairly obvious what  this
1234              does;  perhaps  the only thing worth noting is that emulation is
1235              paused until you close the window.
1236
1237       Machine, NMI
1238              Sends a non-maskable interrupt to the emulated Spectrum. Due  to
1239              a  typo  in  the  standard 48K ROM, this will cause a reset, but
1240              modified ROMs are available which make use of this feature. When
1241              the  +D  is emulated, this is used to access the +D's screenshot
1242              and snapshot features (see the +D EMULATION section below).
1243
1244       F7
1245       Media, Tape, Open...
1246              Choose a TAP or TZX virtual-tape file to load from. See the FILE
1247              SELECTION  section  below for details on how to choose the file.
1248              If Auto-load media is set in the General Options dialog  (as  it
1249              is  by  default),  you  may  use  the File, Open...  menu option
1250              instead, and the tape will begin loading automatically.   Other‐
1251              wise,  you  have to start the load in the emulated machine (with
1252              LOAD "" or the 128's Tape Loader option, though you may need  to
1253              reset first).
1254
1255              To  guarantee  that  TZX  files  will  load properly, you should
1256              select the file, make sure tape-loading traps  are  disabled  in
1257              the  General  Options  dialog, then press F8 (or do Media, Tape,
1258              Play).  That said, most TZXs will work with  tape-loading  traps
1259              enabled  (often  quickly  loading partway, then loading the rest
1260              real-time), so you might want to try it that way first.
1261
1262       F8
1263       Media, Tape, Play
1264              Start playing the TAP or TZX file, if  required.  (Choosing  the
1265              option  (or  pressing  F8)  again pauses playback, and a further
1266              press resumes). To explain - if  tape-loading  traps  have  been
1267              disabled  (in  the General Options dialog), starting the loading
1268              process in the emulated machine isn't enough. You also  have  to
1269              `press  play', so to speak :-), and this is how you do that. You
1270              may also need to `press play' like this in certain other circum‐
1271              stances,  e.g. TZXs containing multi-load games may have a stop-
1272              the-tape request (which Fuse obeys).
1273
1274       Media, Tape, Browse
1275              Browse through the current tape. A brief display of each of  the
1276              data  blocks on the current tape will appear, from which you can
1277              select which block Fuse will play next. With the GTK+ UI, emula‐
1278              tion will continue while the browser is displayed; double-click‐
1279              ing on a block will select it. In the other  UIs,  emulation  is
1280              paused and you can use the cursor keys and press Enter to select
1281              it. If you decide you don't want to  change  block,  just  press
1282              Escape.
1283
1284       Media, Tape, Rewind
1285              Rewind  the  current  virtual tape, so it can be read again from
1286              the beginning.
1287
1288       Media, Tape, Clear
1289              Clear the current virtual tape. This is particularly useful when
1290              you  want  a  `clean  slate' to add newly-saved files to, before
1291              doing Media, Tape, Write...  (or F6).
1292
1293       F6
1294       Media, Tape, Write...
1295              Write the current virtual-tape contents to a TZX file. You  will
1296              be  prompted  for  a filename. The virtual-tape contents are the
1297              contents of the previously-loaded tape (if any has  been  loaded
1298              since  you  last did a Media, Tape, Clear), followed by anything
1299              you've saved from the emulated machine since.  These newly-saved
1300              files  are  not  written  to any tape file until you choose this
1301              option!
1302
1303       Media, Tape, Record Start
1304              Starts directly recording the output from the emulated  Spectrum
1305              to  the  current  virtual-tape.  This is useful when you want to
1306              record using a non-standard ROM or from a custom  save  routine.
1307              Most tape operations are disabled during recording. Stop record‐
1308              ing with the Media, Tape, Write...  menu option.
1309
1310       Media, Tape, Record Stop
1311              Stops the direct recording and places the new recording into the
1312              virtual-tape.
1313
1314       Media, Interface I
1315              Virtual Microdrive images are accessible only when the Interface
1316              I is active from the Options, Peripherals menu.  Note  that  any
1317              changes  to the Microdrive image will not be written to the file
1318              on disk until the appropriate `eject and write' option is used.
1319
1320       Media, Interface I, Microdrive 1, Insert New
1321              Insert a new (unformatted) Microdrive  cartridge  into  emulated
1322              Microdrive 1.
1323
1324       Media, Interface I, Microdrive 1, Insert...
1325              Insert  an  existing  Microdrive  cartridge  image into emulated
1326              Microdrive 1. You will be prompted for a filename.
1327
1328       Media, Interface I, Microdrive 1, Eject
1329              Eject the Microdrive image in Microdrive 1.  If  the  image  has
1330              been  modified,  you  will  be  asked as to whether you want any
1331              changes saved.
1332
1333       Media, Interface I, Microdrive 1, Eject and write...
1334              Write the Microdrive image in Microdrive 1 to a file,  and  then
1335              eject the image.  You will be prompted for a filename.
1336
1337       Media, Interface I, Microdrive 1, Write protect, Enable
1338              Enable the write protect tab for the image in Microdrive 1.
1339
1340       Media, Interface I, Microdrive 1, Write protect, Disable
1341              Disable the write protect tab for the image in Microdrive 1.
1342
1343       Media, Interface I, Microdrive 2, ...
1344       Media, Interface I, Microdrive 3, ...
1345       Media, Interface I, Microdrive 4, ...
1346       Media, Interface I, Microdrive 5, ...
1347       Media, Interface I, Microdrive 6, ...
1348       Media, Interface I, Microdrive 7, ...
1349       Media, Interface I, Microdrive 8, ...
1350              Equivalent options for the other emulated Microdrives.
1351
1352       Media, Interface I, RS232, Plug RxD
1353       Media, Interface I, RS232, Unplug RxD
1354       Media, Interface I, RS232, Plug TxD
1355       Media, Interface I, RS232, Unplug TxD
1356              Connect or disconnect a communication channels (FIFO or file) to
1357              use as the RS-232 TxD or RxD wire.
1358
1359       Media, Disk
1360              Virtual floppy disk images are accessible when emulating  a  +3,
1361              +3e,  Pentagon or Scorpion, or when the Beta 128 or +D interface
1362              options are enabled and a machine  compatible  with  the  chosen
1363              interface  is selected. (See THE .DSK FORMAT, BETA 128 EMULATION
1364              and +D EMULATION sections below for notes on  the  file  formats
1365              supported).
1366
1367              Once again, any changes made to a disk image will not affect the
1368              file which was `inserted' into the drive. If you do want to keep
1369              any changes, use the appropriate `eject and write' option before
1370              exiting Fuse.
1371
1372       Media, Disk, +3, Drive A:, Insert...
1373              Select a disk-image file to  read/write  in  the  +3's  emulated
1374              drive A:.
1375
1376       Media, Disk, +3, Drive A:, Eject
1377              Deselect  the disk image currently in the +3's emulated drive A:
1378              - or from the emulated machine's  perspective,  eject  it.  Note
1379              that any changes made to the image will not be saved.
1380
1381       Media, Disk, +3, Drive A:, Eject and write...
1382              Deselect the disk image currently in the +3's drive A: and write
1383              the current state of the disk to a file. You  will  be  prompted
1384              for a filename.
1385
1386       Media, Disk, +3, Drive B:, Insert...
1387              As above, but for the +3's drive B:. Fuse emulates drive B: as a
1388              second 3" drive.
1389
1390       Media, Disk, +3, Drive B:, Eject
1391              As above, but for drive B:.
1392
1393       Media, Disk, +3, Drive B:, Eject and write
1394              As above, but for drive B:.
1395
1396       Media, Disk, Beta, Drive A:, Insert New
1397              Insert a new (unformatted) disk into the emulated Beta drive A:.
1398
1399       Media, Disk, Beta, Drive A:, Insert...
1400       Media, Disk, Beta, Drive A:, Eject
1401       Media, Disk, Beta, Drive A:, Eject and write...
1402              As above, but for the emulated Beta disk drive A:.
1403
1404       Media, Disk, Beta, Drive A:, Write protect, Enable
1405              Enable the write protect tab for the image in Beta drive A:.
1406
1407       Media, Disk, Beta, Drive A:, Write protect, Disable
1408              Disable the write protect tab for the image in Beta drive A:.
1409
1410       Media, Disk, Beta, Drive B:, ...
1411       Media, Disk, Beta, Drive C:, ...
1412       Media, Disk, Beta, Drive D:, ...
1413              As above, but for the remaining  emulated  Beta  disk  interface
1414              drives.
1415
1416       Media, Disk, +D, Drive 1, Insert New
1417       Media, Disk, +D, Drive 1, Insert...
1418       Media, Disk, +D, Drive 1, Eject
1419       Media, Disk, +D, Drive 1, Eject and write...
1420       Media, Disk, +D, Drive 1, Write protect, Enable
1421       Media, Disk, +D, Drive 1, Write protect, Disable
1422       Media, Disk, +D, Drive 2, ...
1423              As above, but for the emulated +D drives.
1424
1425       Media, Cartridge, Timex Dock, Insert...
1426              Insert a cartridge into the Timex 2068 dock. This will cause the
1427              emulated machine to be changed  to  the  TC2068  (if  it  wasn't
1428              already a 2068 variant) and reset.
1429
1430       Media, Cartridge, Timex Dock, Eject
1431              Remove  the  cartridge from the Timex 2068 dock. This will cause
1432              the emulated machine to be reset.
1433
1434       Media, Cartridge, Interface II, Insert...
1435              Insert a cartridge into the Interface II  cartridge  slot.  This
1436              will  cause  the  emulated machine to be reset and the cartridge
1437              loaded.
1438
1439       Media, Cartridge, Interface II, Eject...
1440              Remove the cartridge from the Interface II cartridge slot.  This
1441              will cause the emulated machine to be reset.
1442
1443       Media, IDE, Simple 8-bit, Master, Insert...
1444              Connect  an IDE hard disk to the simple 8-bit interface's master
1445              channel.
1446
1447       Media, IDE, Simple 8-bit, Master, Commit
1448              Cause any writes which have  been  done  to  virtual  hard  disk
1449              attached  to  the  simple 8-bit interface's master channel to be
1450              committed to the real disk, such that they survive  the  virtual
1451              disk being ejected.
1452
1453       Media, IDE, Simple 8-bit, Master, Eject
1454              Eject  the  virtual  hard disk from the simple 8-bit interface's
1455              master channel. Note that any writes to the  virtual  hard  disk
1456              will be lost unless the Media, IDE, Simple 8-bit, Master, Commit
1457              option is used before the disk is ejected.
1458
1459       Media, IDE, Simple 8-bit, Slave, Insert...
1460       Media, IDE, Simple 8-bit, Slave, Commit
1461       Media, IDE, Simple 8-bit, Slave, Eject
1462              The same as the Media, IDE, Simple 8-bit, Master entries  above,
1463              but for the simple 8-bit interface's slave channel.
1464
1465       Media, IDE, ZXATASP, Master, Insert...
1466       Media, IDE, ZXATASP, Master, Commit
1467       Media, IDE, ZXATASP, Master, Eject
1468       Media, IDE, ZXATASP, Slave, Insert...
1469       Media, IDE, ZXATASP, Slave, Commit
1470       Media, IDE, ZXATASP, Slave, Eject
1471              The  same as the Media, IDE, Simple 8-bit, Master entries above,
1472              but for the two channels of the ZXATASP interface.
1473
1474       Media, IDE, ZXCF CompactFlash, Insert...
1475       Media, IDE, ZXCF CompactFlash, Commit
1476       Media, IDE, ZXCF CompactFlash, Eject
1477              The same as the Media, IDE, Simple 8-bit, Master entries  above,
1478              but for the ZXCF interface's CompactFlash slot.
1479
1480       Media, IDE, DivIDE, Master, Insert...
1481       Media, IDE, DivIDE, Master, Commit
1482       Media, IDE, DivIDE, Eject
1483       Media, IDE, DivIDE, Slave, Insert...
1484       Media, IDE, DivIDE, Slave, Commit
1485       Media, IDE, DivIDE, Eject
1486              The  same as the Media, IDE, Simple 8-bit entries above, but for
1487              the two channels of the DivIDE interface.
1488
1489       Help, Keyboard picture...
1490              Display a diagram showing the Spectrum keyboard, and the various
1491              keywords  that  can be generated with each key from (48K) BASIC.
1492              Under the GTK+ UI, this will appear in  a  separate  window  and
1493              emulation  continues.  With  the  other UIs, the picture remains
1494              onscreen (and the emulator paused) until you press Esc or Enter.
1495

KEY MAPPINGS

1497       When emulating the Spectrum, keys F1 to F10 are used as  shortcuts  for
1498       various  menu  items,  as described above. The alphanumeric keys (along
1499       with Enter and Space) are mapped as-is to the Spectrum keys. The  other
1500       key mappings are:
1501
1502       Shift  emulated as Caps Shift
1503
1504       Control, Alt, and Meta
1505              emulated  as  Symbol Shift (most other modifiers are also mapped
1506              to this)
1507
1508       Backspace
1509              emulated as Caps-0 (Delete)
1510
1511       Esc    emulated as Caps-1 (Edit)
1512
1513       Caps Lock
1514              emulated as Caps-2
1515
1516       Cursor keys
1517              emulated as Caps-5/6/7/8 (as appropriate)
1518
1519       Tab    emulated as Caps Shift-Symbol Shift (Extended Mode)
1520
1521       Some further punctuation keys are supported, if they exist on your key‐
1522       board  -  `,', `.', `/', `;', `'', `#', `-', and `='.  These are mapped
1523       to the appropriate symbol-shifted keys on the Spectrum.
1524
1525       A list of keys applicable when using  the  file  selection  dialogs  is
1526       given in the FILE SELECTION section below.
1527

DISPLAY SIZE

1529       Some  of  Fuse's UIs allow resizing of the emulated Spectrum's display.
1530       For the window-based ones (GTK+ and Xlib), you can  resize  the  window
1531       by,  well, resizing it. :-) Exactly how this works depends on your win‐
1532       dow manager; you may have to make the window over twice the  width  and
1533       height of the original size before it actually scales up. Fuse attempts
1534       to keep the window `square', but with some  window  managers  this  can
1535       mean  the window will never resize at all. If you experience this prob‐
1536       lem, the `--no-aspect-hint' option may help.
1537
1538       If you're using the SDL UI under X11,  the  window  will  automatically
1539       resize to be the correct size for the graphics filter selected.
1540

GRAPHICS FILTERS

1542       Fuse  has  the  ability  to apply essentially arbitrary filters between
1543       building its image of the Spectrum's screen, and displaying it  on  the
1544       emulating  machine's  monitor.  These filters can be used to do various
1545       forms of smoothing, emulation of TV scanlines and various other  possi‐
1546       bilities.  Support  for  graphics  filters varies between the different
1547       user interfaces, but there are two general classes: the GTK+, Xlib  and
1548       SDL  user  interfaces  (and  the  saving  of  .png screenshots) support
1549       `interpolating' filters which use a palette larger than the  Spectrum's
1550       16  colours, while the SVGAlib user interface supports only `non-inter‐
1551       polating' filters. The framebuffer user interface  currently  does  not
1552       support filters at all.
1553
1554       A  further  complication arises due to the fact that the Timex machines
1555       have their high-resolution video mode with twice the horizontal resolu‐
1556       tion.  To  deal with this, Fuse treats these machines as having a `nor‐
1557       mal' display size which is  twice  the  size  of  a  normal  Spectrum's
1558       screen, leading to a different set of filters being available for these
1559       machines. Note that any of the  double  or  triple-sizing  filters  are
1560       available for Timex machines only when using the SDL user interface.
1561
1562       The  available filters, along with their short name used to select them
1563       from the command line, are:
1564
1565       Timex half (smoothed) (half)
1566       Timex half (skipping) (halfskip)
1567              Two Timex-machine specific filters which scale the  screen  down
1568              to  half normal (Timex) size; that is, the same size as a normal
1569              Spectrum screen. The difference between these two filters is  in
1570              how they handle the high-resolution mode: the `smoothed' version
1571              is an interpolating filter which averages pairs of adjacent pix‐
1572              els,  while the `skipping' version is a non-interpolating filter
1573              which simply drops every other pixel.
1574
1575       Normal (normal)
1576              The simplest filter: just display one pixel for every  pixel  on
1577              the Spectrum's screen.
1578
1579       Double size (2x)
1580              Scale the displayed screen up to double size.
1581
1582       Triple size (3x)
1583              Scale  the  displayed  screen  up to triple size. Available only
1584              with the GTK+, Xlib and  SDL  user  interfaces  or  when  saving
1585              screenshots of non-Timex machines.
1586
1587       2xSaI (2xsai)
1588       Super 2xSaI (super2xsai)
1589       SuperEagle (supereagle)
1590              Three   interpolating  filters  which  apply  successively  more
1591              smoothing. All three double the size of the displayed screen.
1592
1593       AdvMAME2x (advmame2x)
1594              A double-sizing,  non-interpolating  filter  which  attempts  to
1595              smooth diagonal lines.
1596
1597       AdvMAME3x (advmame3x)
1598              Very  similar  to  AdvMAME2x, except that it triples the size of
1599              the displayed screen. Available only with the GTK+, Xlib and SDL
1600              user   interfaces   or  when  saving  screenshots  of  non-Timex
1601              machines.
1602
1603       TV 2x (tv2x)
1604       TV 3x (tv3x)
1605       Timex TV (timextv)
1606              Three filters which attempt to emulate the effect of  television
1607              scanlines.  The  first  is  a double-sizing filter for non-Timex
1608              machines, the second is a similar  triple-sizing  filter,  while
1609              the last is a single-sizing filter for Timex machines (note that
1610              this means TV 2X and Timex TV produce the same size output).
1611
1612       PAL TV(paltv)
1613       PAL TV 2x (paltv2x)
1614       PAL TV 3x (paltv3x)
1615              Three filters which attempt to emulate the effect of the PAL  TV
1616              system which layers a lower-resolution colour image over the top
1617              of a higher-resolution black-and-white image.  The  filters  can
1618              also optionally add scanlines like the other TV series scalers.
1619
1620       Dot matrix (dotmatrix)
1621              A double-sizing filter which emulates the effect of a dot-matrix
1622              display.
1623
1624       Timex 1.5x (timex15x)
1625              An interpolating Timex-specific filter which  scales  the  Timex
1626              screen up to 1.5x its usual size (which is therefore 3x the size
1627              of a `normal' Spectrum screen). Available only for the GTK+  and
1628              SDL user interfaces or when saving screenshots.
1629

THE EMULATED SPECTRUM

1631       The emulated Spectrum is, by default, an unmodified 48K Spectrum with a
1632       tape player and ZX Printer attached. Oh, and  apparently  some  magical
1633       snapshot  load/save machine which is probably best glossed over for the
1634       sake of the analogy. :-)
1635
1636       To emulate different kinds of Spectrum, select the  Machine,  Select...
1637       menu option, or press F9.
1638
1639       The Spectrum emulation is paused when any dialogs appear. In the widget
1640       UI, it's also paused when menus or the keyboard picture are displayed.
1641

PRINTER EMULATION

1643       The various models of Spectrum supported a range  of  ways  to  connect
1644       printers,  three of which are supported by Fuse. Different printers are
1645       made available for the different models:
1646
1647       16, 48, TC2048, TC2068, TS2068
1648              ZX Printer
1649
1650       128/+2/Pentagon
1651              Serial printer (text-only)
1652
1653       +2A, +3
1654              Parallel printer (text-only)
1655
1656       If +D emulation is in use and printer emulation is  enabled,  text-only
1657       emulation of the +D's parallel printer interface is provided.
1658
1659       Any  printout  is  appended to one (or both) of two files, depending on
1660       the printer - these default to printout.txt for text output, and print‐
1661       out.pbm  for  graphics  (PBM images are supported by most image viewers
1662       and converters). These names can be changed  with  the  --textfile  and
1663       --graphicsfile  options  from  the  command line or configuration file.
1664       While the ZX Printer can only output graphically, simulated text output
1665       is  generated  at  the same time using a crude sort of OCR based on the
1666       current character set (a bit like using SCREEN$). There is currently no
1667       support  for graphics when using the serial/parallel output, though any
1668       escape codes used will be `printed' faithfully. (!)
1669
1670       By the way, it's not a good idea to modify the printout.pbm  file  out‐
1671       side  of Fuse if you want to continue appending to it. The header needs
1672       to have a certain layout for Fuse to be able to continue  appending  to
1673       it  correctly, and the file will be overwritten if it can't be appended
1674       to.
1675

ZXATASP AND ZXCF

1677       The ZXATASP and ZXCF interfaces are two peripherals  designed  by  Sami
1678       Vehmaa  which  significantly  extend  the capabilities of the Spectrum.
1679       More  details   on   both   are   available   from   Sami's   homepage,
1680       http://user.tninet.se/~vjz762w/, but a brief overview is given here.
1681
1682       The  real ZXATASP comes with either 128K or 512K of RAM and the ability
1683       to connect an IDE hard disks and a CompactFlash card,  while  the  ZXCF
1684       comes with 128K, 512K or 1024K of RAM and the ability to connect a Com‐
1685       pactFlash card. From an emulation point of view, the two interfaces are
1686       actually  very  similar as a CompactFlash card is logically just an IDE
1687       hard disk. Currently, Fuse's emulation is fixed at having 512K  of  RAM
1688       in the ZXATASP and 1024K in the ZXCF.
1689
1690       To  activate  the  ZXATASP,  simply select the ZXATASP interface option
1691       from the Options, Peripherals...  dialog. The state of the  upload  and
1692       write  protect  jumpers  is  then  controlled by the ZXATASP upload and
1693       ZXATASP write protect options. Similarly, the ZXCF is controlled by the
1694       ZXCF interface and ZXCF upload options (the ZXCF write protect is soft‐
1695       ware controlled).
1696
1697       If you're using either the ZXATASP or ZXCF, you almost  certainly  want
1698       to  investigate ResiDOS, the operating system designed for use with the
1699       ZXATASP and ZXCF. ResiDOS provides facilities for using the extra  RAM,
1700       accessing  the  mass storage devices and a task manager allowing virtu‐
1701       ally  instant  switching  between  programs  on   the   Spectrum.   See
1702       http://www.zxplus3e.plus.com/residos/index.html for more details.
1703

DIVIDE

1705       The  DivIDE  is  another  IDE interface for the Spectrum, of which full
1706       details can be found at http://baze.au.com/divide/.  The interface  can
1707       be  activated via the DivIDE interface option from the Options, Periph‐
1708       erals...  dialog, and the state of its write protect jumper  controlled
1709       via  the  DivIDE write protect option.  If you're going to be using the
1710       DivIDE, you'll probably want one of the firmwares  available  from  the
1711       DivIDE homepage.
1712

FILE SELECTION

1714       The  way  you  select a file (whether snapshot or tape file) depends on
1715       which UI you're using. So firstly, here's how  to  use  the  GTK+  file
1716       selector.
1717
1718       The  selector  shows the directories and files in the current directory
1719       in two separate subwindows. If either list is too big  to  fit  in  the
1720       window,  you  can  use  the  scrollbar to see the rest (by dragging the
1721       slider, for example), or you can use Shift-Tab (to  move  the  keyboard
1722       focus  to  a  subwindow) and use the cursor keys.  To change directory,
1723       double-click it.
1724
1725       To choose a file to load you can either double-click it,  or  click  it
1726       then click Ok.  Or click Cancel to abort.
1727
1728       If  you're  using  the  keyboard,  probably  the easiest way to use the
1729       selector is to just ignore it and type in the name. This isn't as  irk‐
1730       some as it sounds, since the filename input box has filename completion
1731       - type part of a directory or file name, then  press  Tab.   It  should
1732       complete  it. If it was a directory, it moves to that directory; if the
1733       completion was ambiguous, it completes as much as possible, and narrows
1734       the  filenames  shown to those which match. You should press Enter when
1735       you've finished typing the filename, or Esc to abort.
1736
1737       Now, if you're using the widget UI - the one using the Spectrum font  -
1738       the selector works a bit differently. The files and directories are all
1739       listed in a single two-column-wide window (the directories are shown at
1740       the  top,  ending  in  `/')  -  the  names may be truncated onscreen if
1741       they're too long to fit.
1742
1743       To move the cursor, you can either use the cursor keys, or the Spectrum
1744       equivalents  5/6/7/8,  or (similarly) h/j/k/l. For faster movement, the
1745       Page Up, Page Down, Home, and End keys are supported and do what  you'd
1746       expect.  To  select  a file or directory, press Enter.  To abort, press
1747       Esc.
1748
1749       With both selectors, do bear in mind that all files are shown,  whether
1750       Fuse would be able to load them or not.
1751

MONITOR/DEBUGGER

1753       Firstly,  note  that  the vast majority of this section applies only if
1754       you're using the GTK+ user interface; if you're using one of the widget
1755       user  interfaces,  you'll get a very basic monitor which shows the cur‐
1756       rent values of the registers and allows you to single step through exe‐
1757       cution or continue.
1758
1759       If  you  are  using the GTK+ user interface, Fuse features a moderately
1760       powerful, completely transparent monitor/debugger, which can  be  acti‐
1761       vated  via  the  Machine,  Debugger ...  menu option. A debugger window
1762       will appear, showing the current state of  the  emulated  machine:  the
1763       top-left  `pane'  shows the current state of the Z80 and the last bytes
1764       written to any emulated peripherals. The  bottom-left  pane  lists  any
1765       active  breakpoints.  Moving right, the next pane shows where the Spec‐
1766       trum's 64K memory map (the `W?'  and `C?'   indicate  whether  each  8K
1767       chunk  is writable or contended respectively), and the next a disassem‐
1768       bly, which by default starts at the current program  counter,  although
1769       this can be modified either by the `disassemble' command (see below) or
1770       by dragging the scrollbar next to it. The next pane shows  the  current
1771       stack, and the final pane any `events' which are due to occur and could
1772       affect emulation. Any of these panes can be removed by use of the  View
1773       menu.  Below  the  displays are an entry box for debugger commands, and
1774       five buttons for controlling the debugger:
1775
1776       Evaluate
1777              Evaluate the command currently in the entry box.
1778
1779       Single Step
1780              Run precisely one Z80 opcode and then stop emulation again.
1781
1782       Continue
1783              Restart emulation, but leave the debugger window open. Note that
1784              the  debugger window will not be updated while emulation is run‐
1785              ning.
1786
1787       Break
1788              Stop emulation and return to the debugger.
1789
1790       Close
1791              Close the debugger window and restart emulation.
1792
1793       Double-clicking on an entry in the stack pane will cause  emulation  to
1794       run until the program counter reaches the value stored at that address,
1795       while double-clicking on an entry in the `events' pane will cause  emu‐
1796       lation to run until that time is reached.
1797
1798       The  main  power  of  the debugger is via the commands entered into the
1799       entry box, which are similar in nature (but definitely not identical to
1800       or  as  powerful  as)  to those in gdb(1).  In general, the debugger is
1801       case-insensitive, and numbers will be interpreted  as  decimal,  unless
1802       prefixed  by  either  `0x' or `$' when they will be interpreted as hex.
1803       Each command can be abbreviated to the portion not in curly braces.
1804
1805       ba{se} number
1806              Change the debugger window to displaying output in base  number.
1807              Available values are 10 (decimal) or 16 (hex).
1808
1809       br{eakpoint} [address] [condition]
1810              Set  a  breakpoint  to stop emulation and return to the debugger
1811              whenever an opcode is executed at address and  condition  evalu‐
1812              ates  true.  If  address  is omitted, it defaults to the current
1813              value of PC.
1814
1815       br{eakpoint} p{ort} (r{ead}|w{rite}) port [condition]
1816              Set a breakpoint to trigger whenever IO port port is  read  from
1817              or written to and condition evaluates true.
1818
1819       br{eakpoint} (r{ead}|w{rite}) [address] [condition]
1820              Set  a breakpoint to trigger whenever memory location address is
1821              read from (other than via an opcode fetch)  or  written  to  and
1822              condition evaluates true.  Address again defaults to the current
1823              value of PC if omitted.
1824
1825       br{eakpoint} ti{me} time [condition]
1826              Set a breakpoint to occur time tstates after the  start  of  the
1827              current  frame,  assuming  condition  evaluates  true (if one is
1828              given).
1829
1830       cl{ear} [address]
1831              Remove all breakpoints at address or the current value of PC  if
1832              address is omitted. Port read/write breakpoints are unaffected.
1833
1834       cond{ition} id [condition]
1835              Set  breakpoint  id  to  trigger only when condition is true, or
1836              unconditionally if condition is omitted.
1837
1838       co{ntinue}
1839              Equivalent to the Continue button.
1840
1841       del{ete} [id]
1842              Remove breakpoint id, or all breakpoints if id is omitted.
1843
1844       di{sassemble} address
1845              Set the centre panel disassembly to begin at address.
1846
1847       fi{nish}
1848              Exit from the current CALL or equivalent. This isn't infallible:
1849              it  works  by setting a temporary breakpoint at the current con‐
1850              tents of the stack pointer, so will not  function  correctly  if
1851              the  code returns to some other point or plays with its stack in
1852              other ways. Also, setting this breakpoint doesn't disable  other
1853              breakpoints,  which  may  trigger before this one. In that case,
1854              the temporary breakpoint remains, and the `continue' command can
1855              be used to return to it.
1856
1857       i{gnore} id count
1858              Do  not  trigger  the  next count times that breakpoint id would
1859              have triggered.
1860
1861       n{ext}
1862              Step to the opcode following the current one. As with the  `fin‐
1863              ish'  command,  this  works by setting a temporary breakpoint at
1864              the next opcode, so is not infallible.
1865
1866       o{ut} port value
1867              Write value to IO port port.
1868
1869       se{t} address value
1870              Poke value into memory at address.
1871
1872       se{t} register value
1873              Set the value of the Z80 register register to value.
1874
1875       s{tep}
1876              Equivalent to the Single Step button.
1877
1878       t{breakpoint} [options]
1879              This is the same as the  `breakpoint'  command  in  its  various
1880              forms, except that that breakpoint is temporary: it will trigger
1881              once and once only, and then be removed.
1882
1883       Addresses can be specified in one of  two  forms:  either  an  absolute
1884       addresses,  specified by an integer in the range 0x0000 to 0xFFFF or as
1885       a `page:offset' combination, which refers to a  location  offset  bytes
1886       into into memory bank page, independent of where that bank is currently
1887       paged into memory. RAM pages are indicated simply by an integer,  while
1888       ROMs  are  prefixed by `R' (e.g. offset 0x1234 in ROM 1 is specified as
1889       `R1:0x1234').  Pages selected via the /ROMCS  line  are  prefixed  with
1890       `C',  while  the  Timex Dock and Exrom use prefixes `D' and `X' respec‐
1891       tively. The 48K machines are treated as having a permanent  mapping  of
1892       page  5 at 0x4000, page 2 at 0x8000 and page 0 at 0xC000; the 16K Spec‐
1893       trum is treated as having page 5 at 0x4000 and no page  at  0x8000  and
1894       0xC000.
1895
1896       Anywhere  the  debugger  is  expecting a numeric value, except where it
1897       expects a breakpoint id, you can  instead  use  a  numeric  expression,
1898       which  uses a restricted version of C's syntax; exactly the same syntax
1899       is used for conditional breakpoints, with `0' being false and any other
1900       value being true. In numeric expressions, you can use integer constants
1901       (all calculations is done in integers), register  names  (which  simply
1902       evaluate  to the value of the register), parentheses, the standard four
1903       numeric operations (`+', `-', `*' and `/'), the  (non-)equality  opera‐
1904       tors  `=='  and `!=', the comparison operators `>', `<', `>=' and `<=',
1905       bitwise and (`&'), or (`|') and exclusive  or  (`^')  and  logical  and
1906       (`&&') and or (`||').
1907

THE POKE FINDER

1909       The `poke finder' is a tool which is designed to make the task of find‐
1910       ing (infinite lives etc.) pokes for games a bit easier: it  is  similar
1911       to  the `Lifeguard' utility which was available for use with the Multi‐
1912       face. It works by maintaining a list of locations in which the  current
1913       number  of lives (etc.) may be stored, and having the ability to remove
1914       from that list any locations which don't contain a specified value.
1915
1916       The poke finder dialog contains an entry box for specifying  the  value
1917       to be searched for, a count of the current number of possible locations
1918       and, if there are less than 20 possible locations, a list of the possi‐
1919       ble  locations  (in `page:offset' format). The five buttons act as fol‐
1920       lows:
1921
1922       Incremented
1923              Remove from the list of possible locations all  addresses  which
1924              have not been incremented since the last search.
1925       Decremented
1926              Remove  from  the list of possible locations all addresses which
1927              have not been decremented since the last search.
1928
1929       Search
1930              Remove from the list of possible locations all  addresses  which
1931              do not contain the value specified in the `Search for' field.
1932
1933       Reset
1934              Reset  the poke finder so that all locations are considered pos‐
1935              sible.
1936
1937       Close
1938              Close the dialog. Note that this  does  not  reset  the  current
1939              state of the poke finder.
1940
1941       Double-clicking  on  an  entry  in  the list of possible locations will
1942       cause a breakpoint to be set to trigger whenever that location is writ‐
1943       ten to.
1944
1945       An  example of how to use this may make things a bit clearer. We'll use
1946       the 128K version of Gryzor. Load the game,  define  keys  to  suit  and
1947       start  playing. Immediately pause the game and bring up the poke finder
1948       dialog. We note that we currently have 6 lives, so enter `6'  into  the
1949       `Search  for' field and click `Search'. This reduces the number of pos‐
1950       sible locations to around 931 (you may get a slightly different  number
1951       depending  on  exactly  when you paused the game). Play along a bit and
1952       then (deliberately) lose a life. Pause the game again. As we now have 5
1953       lives,  replace  the `6' in the 'Search for' field with a `5' and click
1954       `Search' again. This then reduces the list  of  possible  locations  to
1955       just  one:  page  2, offset 0x00BC. This is the only location in memory
1956       which stored `6' when we had 6 lives and `5' when we had  5  lives,  so
1957       its pretty likely that this is where the lives count is stored. Double-
1958       clicking on the `2:0x00BC' entry in the dialog will set the appropriate
1959       breakpoint  (you may wish to open the debugger at this point to confirm
1960       this). Play along a bit more. When you next lose a life,  emulation  is
1961       stopped  with  PC at 0x91CD. Scrolling up a few addresses in the debug‐
1962       ger's disassembly pane shows a value was loaded from 0x80BC (our  hypo‐
1963       thetical  lives  counter), decremented and then stored again to 0x80BC,
1964       which looks very much like the code to reduce the number of  lives.  We
1965       can  now  use  the  debugger  to replace the decrement with a NOP (`set
1966       0x91c9 0'), and playing the game some more after this reveals that this
1967       has worked and we now have infinite lives.
1968

THE .DSK FORMAT

1970       In  general, disk images for the +3 Spectrum are thought of as being in
1971       DSK format. However, this is  actually  an  slight  oversimplification;
1972       there in in fact two similar, but not identical, DSK formats. (The dif‐
1973       ference can be seen by doing `head -1 dskfile': one format  will  start
1974       `MV - CPCEMU' and the other will start `EXTENDED').
1975
1976       The  `lib765' library used by Fuse to emulate the +3's FDC supports the
1977       `CPCEMU' format, but not the extended format. If the  `libdsk'  library
1978       was  also  found  while compiling Fuse, this is used to provide support
1979       for the extended format, as well as for  other  goodies  such  as  com‐
1980       pressed disk images.
1981

BETA 128 EMULATION

1983       Fuse  supports .SCL and .TRD images in its Pentagon and Scorpion emula‐
1984       tion, and also under 128K and +2 (but not +2A) emulation  if  the  Beta
1985       128  interface  option  from  the  Options,  Peripherals...   dialog is
1986       enabled.
1987

+D EMULATION

1989       Fuse supports .MGT and .IMG  images  in  its  +D  emulation.  The  +D's
1990       printer  port  is emulated. (See the PRINTER EMULATION section for more
1991       details.) The +D may only be used with 48K, 128K and +2 (not +2A)  emu‐
1992       lation.   To  access  disks, load G+DOS, by inserting a disk containing
1993       the DOS file (+SYS) and entering "RUN".  Once DOS is  loaded,  you  can
1994       load to/from +D disks by prefixing filenames with `dn' where `n' is the
1995       number of the drive in use.  For example, `LOAD d1"myfile"' would  load
1996       the  file  named `myfile' from the emulated drive 1.  Microdrive syntax
1997       may also be used.
1998
1999       To save a snapshot, choose the `Machine, NMI'  menu  option,  and  then
2000       press `4' to save a 48K snapshot, or `5' to save a 128K snapshot.  When
2001       saving a 128K snapshot, you must then press Y or N to indicate  whether
2002       the  screen  changed  while saving the snapshot, to finish saving.  You
2003       can also choose `3' to save a screenshot to disk.  Options `1' and  `2'
2004       allow screenshots to be printed (in monochrome) if printer emulation is
2005       enabled.
2006

DISK FILE FORMATS

2008       Fuse supports several disk image formats in its +D and Beta 128  emula‐
2009       tion.
2010
2011       For reading:
2012
2013       .UDI
2014              Ultra    Disk    Image;    for    specification    please    see
2015              http://zxmak.narod.ru/docs.htm
2016              This is the only image format which can store all  the  relevant
2017              information  of  the recorded data on a magnetic disk, so it can
2018              be used for any non standard disk format.  Fuse  can  store  and
2019              read  not  just MFM but FM formatted disk data in/from this con‐
2020              tainer.
2021
2022       .FDI
2023              UKV Spectrum Debugger disk image format.
2024
2025       .MGT .IMG
2026              DISCiPLE/+D file formats.
2027
2028       .SAD
2029              For compatibility with SAM Coupé disk images using this  format.
2030              Note  that  SAM  Coupé  `.DSK'  images  share the same format as
2031              `.MGT'.
2032
2033       .TRD
2034              TR-DOS  disk  image;  for  detailed   information   please   see
2035              http://www.retroplay.com/Mecenate/ramsoft/tr-info.zip
2036
2037       .SCL
2038              A simple archive format for TR-DOS disk files.
2039
2040       .TD0
2041              Teledisk image format; Fuse supports only files not created with
2042              "Advanced   Compression".   Detailed   description   found    in
2043              http://www.classiccmp.org/dunfield/img/td0notes.txt          and
2044              http://www.fpns.net/willy/wteledsk.htm
2045
2046       .DSK
2047              CPC disk image format; Fuse supports the plain old and  the  new
2048              extended  CPC format too. Further information please see the THE
2049              .DSK  FORMAT  section  and  the  CPCEMU  manual  section   7.7.1
2050              http://www.cpc-emu.org/linux/cpcemu_e.txt
2051
2052       .SDF
2053              TODO
2054
2055       Fuse  supports  most of them for writing: .UDI .FDI .MGT .IMG .SAD .TRD
2056       .SCL .DSK (only the old CPC format).
2057       You can save disk images with any output format, just select the appro‐
2058       priate  extension.  (e.g.  ` elite3.udi ' to save as an UDI file) There
2059       is a .LOG ` image ' format for debugging purpose. This is a plain  text
2060       file contains three dump of the loaded disk image at different details.
2061       Not all image format can store all disk image.  You cannot save a  disk
2062       image  with  an  inappropriate format that loses some information (e.g.
2063       variable track length or sector length).
2064

COMPRESSED FILES

2066       Assuming the appropriate libraries were available  when  libspectrum(3)
2067       was compiled, snapshots, tape images, dock cartridges and input record‐
2068       ing files can be read from files compressed with  bzip2(3)  or  gzip(3)
2069       just as if they were uncompressed.  libdsk provides an equivalent func‐
2070       tionality for +3 images if available, but there is currently no support
2071       for reading compressed +D or Beta disk images.
2072

BUGS

2074       Selecting  a  startup filter doesn't work properly with user interfaces
2075       other than SDL.
2076
2077       Attempting to replay an RZX file without an embedded snapshot from  the
2078       command-line doesn't work if you do `./fuse rzxfile snapshot'.  `./fuse
2079       snapshot rzxfile' does work though, so use that instead.
2080
2081       Changing virtual consoles  when  using  SVGAlib  for  joystick  support
2082       causes  Fuse  to  exit.  If  this  is  a problem, compile Fuse with the
2083       `--disable-ui-joystick' option.
2084
2085       The poke finder can't search outside `normal' RAM.
2086
2087       Using the Options, Joysticks, Joystick  1...   or  Options,  Joysticks,
2088       Joystick  2...   options under GTK+ 2.x produces a large number of GTK+
2089       critical warnings. This is a GTK+ bug (#144427), which is fixed in GTK+
2090       2.4.4.
2091
2092       The  libao  file output devices not work properly with the GTK+ UI.  No
2093       error reporting, but the created file does not contain any sound  data.
2094       If  you  use  a  `weak' machine alsa09 make a lot of click and pop with
2095       `ALSA: underrun, at least 0ms.'  error messages.
2096

FILES

2098       ~/.fuserc
2099

SEE ALSO

2101       bzip2(3), fuse-utils(1), gzip(3), libspectrum(3), ogg123(1), xspect(1),
2102       xzx(1)
2103
2104       The comp.sys.sinclair Spectrum FAQ, at
2105       http://www.worldofspectrum.org/faq/index.html.
2106

AUTHOR

2108       Philip Kendall (philip-fuse@shadowmagic.org.uk).
2109
2110       Matan  Ziv-Av  wrote the SVGAlib and framebuffer UIs, the glib replace‐
2111       ment code, and did some work on the OSS-specific  sound  code  and  the
2112       original widget UI code.
2113
2114       Russell  Marks  wrote  the sound emulation and OSS-specific sound code,
2115       the joystick emulation, some of the printer code, and the original ver‐
2116       sion of this man page.
2117
2118       John  Elliott's  lib765 library emulates the +3's disk controller chip,
2119       providing Fuse's +3 disk support, and his libdsk library provides  sup‐
2120       port for more disk image formats.
2121
2122       Ian Collier wrote the ZX Printer emulation (for xz80).
2123
2124       Darren  Salt  wrote the original versions of the code for +3 emulation,
2125       SLT support, MITSHM support (for the Xlib UI), TZX raw data blocks, RZX
2126       embedded  snapshots  and  compression, the Kempston mouse emulation and
2127       made many improvements to the widget code.
2128
2129       Alexander Yurchenko wrote the OpenBSD/Solaris-specific sound code.
2130
2131       Fredrick Meunier wrote the TC2048, TS2068,  Pentagon  and  Spectrum  SE
2132       support, the CoreAudio sound code, as well as maintaining the OS X port
2133       and importing the graphics filter code.
2134
2135       Ludvig Strigeus and The ScummVM project  wrote  the  original  graphics
2136       filter code.
2137
2138       Dmitry  Sanarin  wrote  the original Beta disk interface emulation (for
2139       Glukalka).
2140
2141       Witold Filipczyk wrote the TC2068 support.
2142
2143       Matthew Westcott wrote the AY logging code and the DivIDE emulation.
2144
2145       Marek Januszewski wrote various bits of code to make  Fuse  work  under
2146       Win32, including the DirectDraw user interface.
2147
2148       Stuart  Brady  wrote the +D emulation, Scorpion emulation and the HP-UX
2149       sound code.
2150
2151       Garry Lancaster wrote the 8-bit IDE, ZXATASP and ZXCF interface  emula‐
2152       tions.
2153
2154       Gergely  Szasz  wrote the Interface I and Microdrive emulation, the PAL
2155       TV scalers, the TV 3x scaler, the movie logging code, the  libao  sound
2156       code, and made many improvements to the widget code.
2157
2158
2159
2160Version 0.9.0                  5th January, 2008                       fuse(1)
Impressum