File: README

package info (click to toggle)
spectemu 0.94a-1
  • links: PTS
  • area: contrib
  • in suites: woody
  • size: 1,240 kB
  • ctags: 3,088
  • sloc: ansic: 15,419; asm: 5,160; sh: 2,533; cpp: 377; makefile: 221
file content (770 lines) | stat: -rw-r--r-- 25,848 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770

                      * * * * * * * * * * * * * * *
                      *                           *
                      *      S P E C T E M U      *
                      *                           *
                      *        Version 0.94       *
                      *                           *
                      * * * * * * * * * * * * * * *


This package contains a 48k ZX-Spectrum emulator for Linux and other
UNIX operating systems, with full Z80 instruction set, comprehensive
screen, sound and tape emulation, and snapshot file saving and
loading. It can run on a Linux console, or in an X11 window.

The program is free software and is copyrighted under the GNU General
Public License. It comes with absolutely no warranty. See the file
COPYING for details.

Written by Miklos Szeredi
Email: mszeredi@inf.bme.hu

It can be downloaded by FTP from:
    tsx-11.mit.edu:/pub/linux/ALPHA/spectemu/spectemu-0.94.tar.gz
or
    sunsite.unc.edu:/pub/Linux/system/emulators/zx/spectemu-0.94.tar.gz 

For news and updates have a look at the Spectemu Page:
    http://www.inf.bme.hu/~mszeredi/spectemu/


You can also join a mailing list (at the Spectemu Page), to receive a
notice when new versions of spectemu are available.


Table of contents
=================

  1.   Requirements

  2.   Recommended

  3.   Features

  4.   Drawbacks

  5.   Compiling and installation

  6.   Using the emulator

  6.1    Command line arguments and configuration files (NEW)

  6.2    Using the Spectrum keyboard

  6.3    Keys that control the emulator

  6.4    Effects of changing frame frequency and sound buffer size

  7.   Where can I get ZX Spectrum games for this emulator

  8.   Tape files

  8.1    Loading a tape file

  8.2    Quick loading of tape files

  8.3    Saving to a tape file

  8.4    Saving a tape file to real tape

  8.5    Making a tape file from a real tape

  9.   Bug reports

  10.  Credits


1. Requirements
===============

Linux or other UNIX OS.
Color X11 server (depths 8, 16 and 32 bits are supported) 
        and/or 
SVGALIB console graphics library on Linux.

2. Recommended
==============

A sound-card on Linux for wonderful spectrum 1-bit sound.  And well, a
fast enough processor... (Especially for the X11 version.)

3. Features
===========

 - Very fast because of assembly code in emulation (only on Intel
   processors).

 - Emulation also in C, which is slower, but supports any processor.

 - X support (with MITSHM if available, optionally double size window)

 - Linux console graphics (with SVGALIB)

 - Sound support (through Linux kernel sound-card driver, 
   or SUN sound drivers)

 - Snapshot saving and loading (.Z80 and .SNA format)

 - Tape emulation: loading from tape files (.TAP and .TZX format)

 - Optional quick loading of tapes. 

 - Saving to tape files.

 - Separate utility to save tape files to real tape

 - Configurable with config files and from command line

4. Drawbacks
============

 - Poor user interface

See the file TODO for a list of things which still need to be done (Maybe
by YOU)

5. Compiling and installation
=============================

To install the precompiled Linux executables just run 'make install'
as root.

To recompile the programs on other platforms first type

   ./configure

This tries to determine the system type and parameters.  Probably you
won't have to give any options to configure, but here is the list of
the most important options:

  --help                Print a full list of options

  --prefix=PREFIX       Install files under PREFIX (default is /usr/local)
                        Executables go under PREFIX/bin, ...

  --without-readline    Do not use the readline library (default is to 
                        use it if it's available on your system)

  --without-i386asm     Do not use the Intel assembly code (default is 
                        to use it, if your system is Intel based)

You may want to have a look at the produced `Makefile' and `config.h'.
Then just type

  make clean
  make

Then to install the program, login as root, and run

  make install

(If you want to compile on another machine be sure to `make realclean'
before re-configuring and re-making the program!)

At the moment, there are two executable programs for running the emulator:

  xspect             the X11 version
  vgaspect           the Linux console version

'vgaspect' uses the SVGALIB library. If you do not have this installed
on your system 'vgaspect' cannot be started. You _MUST_ have SVGALIB
version 1.2.10 or greater installed, and it is STRONGLY recommended,
that you get version 1.2.11 or later!

SVGALIB is available at:
sunsite.unc.edu:/pub/Linux/libs/graphics/

If you have SVGALIB version 1.2.11 or later, the emulator can run in
background when you switch virtual consoles.

6. Using the emulator
=====================

After starting 'xspect' or 'vgaspect' you should get the '(C) 1982 Sinclair
Research Ltd' message, and after pressing a key, the flashing cursor. If
not, then all I can say, is hard luck to you (if you are ambitious, compile
the programs with debug information, and try to figure out what is causing
the problem). Do not start the emulator processes in the background, the
terminal is needed when loading or saving files. 

To load a snapshot immediately after the start of the emulator, you
can enter the name of the snapshot file on the command line. (Also see
section 6.1)

E.g. 

xspect snap/chuckie2

In X you can resize the window. Window size can only be a multiple of
the smallest window size (320x256). Smaller window means faster
emulation, so if emulation doesn't run at full speed, try making the
window smaller.

6.1 Command line arguments and configuration files
--------------------------------------------------

You can give options to Spectemu in three different ways:

 1) In a configuration file (either ~/.spectemurc, or 
    /usr/local/share/spectemu/spectemu.cfg)

 2) With the X Resource Database (.Xdefaults), this applies only to 'xspect'

 3) On the command line

Most of the options are common to all three methods, only the syntax
differs slightly. Here are examples of the different syntax:

Config File:
    scale = 1
    private-map = true
    sound = false
    color-type = grayscale

.Xdefaults:
    xspect.scale:      1
    xspect.privateMap: true
    xspect.sound:      false
    xspect.colorType:  grayscale

Command line:
    xspect -scale 1 -private-map -no-sound -color-type grayscale

List of common options:
~~~~~~~~~~~~~~~~~~~~~~~

 NAME               RANGE     DEFAULT   DESCRIPTION
 ----               -----     -------   -----------

 frame-skip         1...      2         The smaller this is, the more 
                                        often the screen is updatated

 scale              1..4      2         Window size of 'xspect'

 private-map        yes/no    no        Use private colormap in 'xspect'

 mit-shm            yes/no    yes       Use MIT-SHM extension in X server 
                                        if available

 vga-mode           320x200   320x240   Resolution to use in 'vgaspect',
                    320x240             320x200 is faster (but not so nice)

 sound              yes/no    yes       Spectrum sound, if availble

 sound-delay        1...      4         The amount of frames (1/50 seconds) 
                                        to delay sound. See section 6.4

 sound-device       filename  (system   The name of the sound device
                              dependent)  

 sound-sample-rate  4000...   ~15625    Sample rate of sound device

 sound-autoclose    yes/no    yes       Whether to close sound device when
                                        unused (so other programs can use it) 

 sound-dsp-setfrag  yes/no    yes       Set this to 'no' if you use PCSND
                                        sound driver

 keyboard-type      extended  extended  Specifies the mapping of the keys,
                    spectrum            from the PC keyboard to the spectrum
                    compat              keys. See section 6.2
                    custom              

 cursor-type        shifted   shifted   How to use the arrow keys on the
                    raw                 PC keyboard. See section 6.2
                    joystick            

 allow-ascii        yes/no    yes       Interpret other keys on the PC
                                        keyboard. See section 6.2

 true-shift         <modif>*  alt       Modifier to get shifted symbol 
                                        as on the PC.

 func_shift         <modif>*  control   Modifier to get control functions.

 color-type         normal    normal    What type of colors to use. Gray-
                    grayscale           scale looks better on monochrome
                    custom              displays.

 pause-on-iconify   yes/no    no        Whether to pause emulator, when it
                                        is iconified ('xspect' only)

 vga-pause-bg       yes/no    no        Whether to pasue emulator, when you
                                        switch to a different console

 quick-load         yes/no    no        Use built in (quick) loader for
                                        tapefiles.

 auto-stop          yes/no    no        Pause tape after each segment when
                                        quick loading.

 load-immed         yes/no    no        Load tapefile immediately (as if 
                                        you typed LOAD "" / ENTER)

 pause              yes/no    no        Pause the emulator on startup


* <modif> can be one of: none, shift, lock, control, alt, 
                         mod2, mod3, mod4, mod5

Extra command line parameters:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

On the command line you may also use the following options:

 -help              Prints usage information, and a list of available
                    options

 -version           Prints out the version


Also on the command line, a snapshot file and/or a tapefile can be
specified. Spectemu figures out the type of file from the extension.
You can omit the extension, e.g. you have a snapshot file 'snap.z80'
and you start spectemu with 'xspect snap', then it will add the '.z80'
extension.

You can specify what type is the file by preceding it with one of
'-z80', '-sna', '-tap' or '-tzx' options. This is useful for cases,
when the filename does not have an extension (e.g. automatic starting
with the midnight commander). 

Extra config file options:
~~~~~~~~~~~~~~~~~~~~~~~~~~

Color configuration
'''''''''''''''''''
You can configure the custom colors in the config files (and the X
Resource Database) with:

    color[0..15] = R G B

e.g. 

    color-type = custom

    color0 = 10 20 30
    color7 = 40 50 60

changes the 0-th (black) and the 7-th (white) colors. 

Keyboard configuration
''''''''''''''''''''''
You can set custom key bindings in the config file:

    Key_<keysym_name> = K ...
    ...

Or in the X resource database:

    xspect.keys: <keysym_name> = K ...; ...


The <keysym_name> can be set to any keysym (defined in 'spkey_p.h').
The K arguments are the spectrum keys to be assigned to the given PC
key. K can be any letter, number (a..z, 0..9) or the following:

    none, space, enter, capsshift, symbolshift, 
    kempston_up, kempston_down, kempston_left, kempston_right, kempston_fire

e.g.
   
    keyboard-type = custom
    true-shift  = none   

    Key_Insert  = capsshift 9
    Key_Tab     = capsshift symbolshift
    Key_Shift_R = kempston_fire
    Key_Alt_L   = symbolshift
    Key_Alt_R   = symbolshift
    
or as it would appear in a .Xdefaults file:

    xspect.keyboardType: custom
    xspect.trueShift:    none

    xspect.keys:         Insert = capsshift 9;        \
                         Tab = capsshift symbolshift; \
                         Shift_R = kempston_fire;     \
                         Alt_L = symbolshift; Alt_R = symbolshift

6.2 Using the Spectrum keyboard
-------------------------------

Those of you that have at some time used a Spectrum know, that the keyboard
of this little computer is something very strange, with a LOT of keywords
and symbols on and around each key. If you have not seen this keyboard (or
have somehow managed to forget some bit of information that is on it) we
produced quite a good copy of it, found in the 'spectkey.gif' file.

If you are using 'xspect' than pressing 'Ctrl-k' brings up the picture
of the spectrum keyboard. You can press keys with the mouse (even more
than one if you like), and it also shows which keys are pressed.  (You
can see what the emulator does when, for example you press 'BackSpace'
or a '[' key on the PC keyboard).

The default mapping of the spectrum's keyboard to the PC's is the
following:

The numbers, the letters, Enter and Space are the same. The left Shift on
the PC corresponds to the CAPS SHIFT key of the Spectrum, and the right
Shift corresponds to the SYMBOL SHIFT. This is quite simple and with these
keys you can get all the functionality of the original Spectrum (assuming
of course, you know how).

But...

To make life a bit easier, you can also use the Backspace, the arrow
keys, and the following symbols as on a PC keyboard: ,./;'-=<>?:"_+[]{}\|~
(unless you turn the 'allow-ascii' option off) 

To get a symbol which is written above the numbers on the PC, and not
the function or symbol that is on the Spectrum, press Alt (actually
the value of the 'true-shift' option) instead of Shift.

You can slightly modify the mapping with the 'keyboard-type' and
'cursor-type' options. Every mapping includes the basic keys (letters,
numbers, Space and Enter). Here are the mappings special to each
keyboard type and cursor type:

   PC Key            Spectrum Key
   ------            ------------

(Keyboard Types)

extended: (default)
   Left Shift    ->  Caps Shift
   Right Shift   ->  Symbol Shift
   Back Space    ->  Caps Shift + '0'
   Escape        ->  Caps Shift + '1'

spectrum: (spectrum-like layout, useful for some games, e.g. Jumping Jack)
   < same as extended, plus: >
   Comma (,)     ->  Symbol Shift
   Period (.)    ->  Space
   Semicolon (;) ->  Enter    

compat: (similar to other emulators' layouts, e.g. Z80, X128, XZX ...)
   Shift (both)  ->  Caps Shift
   Alt           ->  Symbol Shift
   Back Space    ->  Caps Shift + '0'
   Escape        ->  Caps Shift + '1'

custom:
   Use key bindings specified in the config file (see section 6.1)

(Cursor Types)

shifted: (default)
   Left Arrow    -> Caps Shift + '5'
   Down Arrow    -> Caps Shift + '6'
   Up Arrow      -> Caps Shift + '7'
   Right Arrow   -> Caps Shift + '8'

raw:
   Left Arrow    -> '5'
   Down Arrow    -> '6'
   Up Arrow      -> '7'
   Right Arrow   -> '8'


joystick:
   Left Arrow    -> Kempston Left
   Down Arrow    -> Kempston Down
   Up Arrow      -> Kempston Up
   Right Arrow   -> Kempston Right
   Keypad Ins    -> Kempston Fire
   Keypad Del    -> Kempston Fire
   Keypad Home   -> Kempston Up + Left
   Keypad PgUp   -> Kempston Up + Right
   Keypad End    -> Kempston Down + Left
   Keypad PgDn   -> Kempston Down + Right


6.3 Keys that control the emulator
----------------------------------

All control keys are produced by pressing the Ctrl key and another key.

 Ctrl-c, F10      Quit the emulator immediately
	         
 Ctrl-l, F3       Load a snapshot file; you must type the path and 
                  filename on the terminal where you started the emulator,
                  e.g. 'snap/chuckie2'. The type and extension of the
                  file is determined automatically (.z80 or .sna). 
	         
 Ctrl-t, F2       Save the current state of the emulator in a snapshot file.
                  Format depends on the extension (.z80 or .sna). If no
                  extension is given, .z80 is appended. 

 Ctrl-w, Ctrl-F2  Save a snapshot to a temporary file 

 Ctrl-e, Ctrl-F3  Restore last temporary snapshot saved with 'Ctrl-w'

 Ctrl-q, F5       Reset the Spectrum
		  
 Ctrl-f           Fast mode
		  
 Ctrl-n           Normal speed mode
		  
 Ctrl-b           Pause/Unpause emulator (you can do operations like loading
                  a snapshot file, etc... in paused mode too)
		  
 Ctrl-m           Toggle sound on/off

 Ctrl-h, F1       Print help
		  
 Ctrl-k           Display (undisplay) keyboard of spectrum. See section 6.2.
		  
 Ctrl-p, F4       Play tape. Tape file must be entered on the terminal. 
                  Optionally the starting segment can be entered; 
                  e.g. 'tape/tape1.tap' or 'tape/tape1.tzx 13'
		  
 Ctrl-s, F7       Stop tape
		  
 Ctrl-y           Toggle quick loading
		  
 Ctrl-o, F6       Pause and unpause during tapefile playing (restarts the
                  current segment).
		  
 Ctrl-r           Record to tape file. See section 8.3.
		  
 Ctrl-\, F9       Refresh screen, reset keyboard state and 
                  refresh colors.

 Ctrl-j           Toggle private colormap mode (only X) 
	  
 Ctrl-comma       Decrease window size (only X)

 Ctrl-dot         Increase window size (only X)
		  
 Ctrl-equals      Skip more screen frames
		  
 Ctrl-minus       Skip less screen frames
		  
 Ctrl-]           Increase sound buffer size 
		  
 Ctrl-[           Decrease sound buffer size
		  

6.4 Effects of changing frame frequency and sound buffer size
-------------------------------------------------------------

ONLY READ THIS IF YOU ARE NOT TOTALLY SATISFIED WITH THE EMULATOR'S
PERFORMANCE

This should be totally automatic, so I'm now programming you to do what
the emulator should. (Luckily you are much easier to program) 

Frame skipping determines, after how many frames the emulator displays one
on the screen. There are 50 frames in one second, and normally every other
frame is displayed (25 per second). If the emulator is too slow under X,
increasing frame skipping can have a good effect on performance, but at the
cost of poorer quality. But the interesting thing is, that increasing frame
skipping may cause a worsening of both performance and of picture quality
(I will not explain it here why).

Decreasing frame skipping has the opposite effect of the above.

If the emulator uses sound, but sound is not continuous, then experiment
with increasing sound buffer size, and increasing frame skipping. If you
are lucky you can make things a bit better. Increasing sound buffer size
has also the negative effect of delaying more the sound effects.

7. Where can I get ZX Spectrum games for this emulator
======================================================

On the Spectemu homepage (http://www.inf.bme.hu/~mszeredi/spectemu/)
you can find a list of sites worth checking. Here are some:

http://www.void.demon.nl/spectrum.html
http://www.nvg.unit.no/sinclair/planet/

The fact is, that there were a lot of Spectrum games around on audio tapes,
and some of them are really good. There were always cracked and copyable
versions around, and nobody was interested in copyrights. Unfortunately the
big FTP archives do not allow non free software on their servers, so I
can't include any games in this distribution.

(Because Spectrums have died out, and perhaps some of the software
companies do not exist any more, probably some games could be distributed
freely. But I will not check on those things.)

I've included a program named 'spconv', written by Henk de Groot
(hegr@ensae.ericsson.se) which can convert between snapshot file formats.

Alternatively if you have some old spectrum tapes laying around, and you
are very brave, you can check out section 8.5.

8. Tape files
=============

8.1 Loading a tape file
-----------------------

The emulator now supports G.A. Lunter's .TAP and Tomaz Kac's .TZX tape
files. To load a file, enter

LOAD ""

to the spectrum (by pressing keys j""), then press 'Ctrl-p'.
On the terminal enter the name of the tape file to load, e.g.

tape/cnamemat

The emulator will now load from the tape file 'tape/cnamemat.tzx' or
'tape/cnamemat.tap' whichever exists. Playing automatically stops at
the end of the tape file. To stop loading before this press Ctrl-s.

The default extensions are '.tap' / '.tzx' or '.TAP' / '.TZX' depending
on whether the entered tape file is upper or lower case.

While loading try pressing Ctrl-f, which can speed things up. After loading
the file press press Ctrl-n to restore normal speed.

8.2 Quick loading of tape files 
-------------------------------

Quick loading means bypassing of the tape loading routine in the
spectrum ROM, and loading of tape blocks directly into the memory.
Some programs use their own tape loading routines, and in that case
the tape blocks are always "slow loaded" (see above section).

Quick loading is optional and can be toggled with the 'Ctrl-y' key.

When quick loading is on, after entering 'LOAD ""' you are immediately
prompted for a tapefile. If the tapefile can't be loaded, the quick
loading of the first header block is cancelled, but you can still load
the rest of tape by pressing 'Ctrl-p' and entering the tapefile name.

Even in quick load mode, the playing of tapes is not automatically
paused, when the program doesn't load more blocks, so with '.tap'
files containing multipart games, you have to pause the tape at the
end of each part with 'Ctrl-o' ('.tzx' tapefiles can contain a
"Stop the Tape" mark, to automatically pause playing).

8.3 Saving to a tape file
-------------------------

If you want to save something to a tape file using the spectrum's "SAVE"
command, do the following:

1) Enter 'SAVE "file"' on the spectrum
2) press Ctrl-r to start the recording
3) on the terminal enter the name of the tapefile to use
4) press a key on the spectrum
5) wait for the recording to stop
6) press Ctrl-s to stop recording

If the specified tape file already exists, the newly saved segments are
appended to the old tapefile.


8.4 Saving a tape file to real tape
-----------------------------------

The utility 'tapeout' enables you to save tape files (.tap and .tzx)
to real tape via the soundcard. At the moment it only works on Linux,
because it uses the OSS sound driver. (You can compile it for non
linux systems, by adding -DNO_SOUNDCARD to CFLAGS in Makefile. Then
instead of writing to the sound device, the program writes to a
headerless wav file (bits: 8, sample rate: what you've given).)

You can compile 'tapeout' by entering

  make tapeout

in the main directory of spectemu. The command line parameters are:

  tapeout sample_rate tapefile [start_block [output_file]]

The default value for start_block is 0, for output_file it is "/dev/dsp"
(or if compiled -DNO_SOUNDCARD it is "tape.out").

You can stop recording to the tape by pressing Ctrl-C.

8.5 Making a tape file from a real tape
---------------------------------------

WARNING, ONLY TRY THIS IF YOU REALLY-REALLY WANT TO!

Well it's not so bad as that, I've digitized a lot Spectrum tapes with
ease, but I have the advantage of having played with tapes a lot on the
real Spectrum, and of being able to modify the code which does the
digitization.

First of all you must have a sound-card to do this. If you've got it, then
you have a small chance of succeeding.

First get the cassette player which you used to play Spectrum tapes. Then
plug it in your sound-card's 'line-in' or 'mic' inputs. Then somehow set the
sound driver so that it reads things form the input in which you plugged
your cassette (I use 'xmmix' the 'Motif Audio Mixer' to do this). And if
you've managed to get this far, go to the directory where you want to store
the tape files (remember, there will be a lot of little files: one for each
little segment!), and enter the following command:

  recs - 32000 | filt | spload tapefile

               or     

  recs - 32000 | spload tapefile

(The first type worked better for me)

Where 'recs', 'filt' and 'spload' are programs found in the utils
directory, and 'tapefile' is the name of the tape file without the '.spt'
extension.

'.spt' tape files only exist because of historical reasons (the tape
digitizing program preceeded the emulator, and also at that time I didn't
know of the '.TAP' format), and now it isn't suppurted by the emulator
any more. So you must convert '.spt' files to '.tap' with the utility 
spt2tap (in the utils directory) to use it with the emulator. 

(The contents of the utils directory can be remade by changing to that
directory and entering the command:  'make realclean; make')

Now you can put your favorite Spectrum cassette in the cassette player, and
press the Play button.

'spload' will write a lot of information on the terminal, of which you
might try to make some sense. Also you can do a 'tail -f tapefile.spt' in
another terminal, to see what is happening. Again if nothing happens, then
you are on your own (and most probably at first nothing will happen).

And remember that this digitizer is not better than the real Spectrum, so
if you cannot load a program with a Spectrum, you'll most probably will not
be able to load it with 'spload'.

Good Luck!

9. Bug reports
==============

Please send bug reports to:

mszeredi@inf.bme.hu

If you make any changes to the source, please mail me the 'diff -u' of the
file(s) changed, and also why were the changes needed.

Please also tell me if you would like to maintain, or to continue
developing spectemu.

10. Credits
===========

Szeredi Tamas, for testing the emulator, and for helping with the
'spectkey.gif'.

Egmont Koblinger for helping to write some parts of the emulator, and for
a lot of useful suggestions.

Dani Nagy and Zsazsa for helping to test the emulator.

G.A. Lunter for a very good description of the Spectrum, the undocumented
features of Z80, and the '.z80' snapshot file format.

And lots of others, who sent me good ideas and modifications.