<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">Short:        Sinclair ZX Spectrum Emulator (sources)
Author:       Peter McGavin
Uploader:     amigasourcecodepreservation gmail com
Type:         misc/emu
Version:      1.7
Architecture: generic

Source code for the Sinclair ZX Spectrum Emulator by Peter McGavin.
Binaries: http://aminet.net/package/misc/emu/spectrum-1.7
Uploaded to aminet for historical preservation.
Many thanks to Peter McGavin for releasing the source code.

Author notes:
============

The source files are all assembled with Macro68 Release 2.129 and linked with
blink version 7.2.  I used A68k version 2.71a until about December 1991 (i.e,
Spectrum version v1.0).  I did not have the C= include files until I purchased
Macro68, and there are still many definitions that should be changed to use the
official includes.  Macro68 has all the C= include files preloaded, so
"include" statements are not necessary.

Source files are as follows:

	arp.i		Offsets for arp.library
	common.i	Common definitions (included by all #?.a files)
	z80data.i	Structures used by z80 emulator
	z80macros.i	Macros used by z80 emulator
	checkproc.a	Determine and test processor type
	common.a	Data for common definitions
	debug.a		Z80 monitor
	display.a	Handles all screen output
	help.a		Reads and displays IFF help file
	input.a		Handles keyboard and other IDCMP events
	joystick.a	Handles joystick
	loader.a	Tape loader and disk LOAD/MERGE/SAVE
	loadsave.a	Snapshot loader and saver
	main.a		Main line of program
	ports.a		Like AMIGA.LIB CreatePort() and DeletePort()
	request.a	Handles simple requesters and file requesters
	rom.a		Reads ROM from disk file
	sound.a		Handles audio BEEPs
	tasks.a		Like AMIGA.LIB CreateTask() and DeleteTask()
	window.a	Opens intuition screen, window and menus
	z80.a		The z80 emulator
	z80data.a	Data used by the z80 emulator

	compile.script	CLI "execute" script to assemble all the source files
	link.script	CLI "execute" script to link the executable
	backup.script	CLI "execute" script to back up sources to floppy

In the z80#? files, I used ideas from Ulf Nordquist's CP/M emulator on Fred
Fish disk 165.  I have fixed a few bugs (and probably introduced some new
ones), eliminated self-modifying code, added some instructions that were
missing, implemented interrupts, and generally sped up the code by reorganising
flag and register usage.  There still seem to be a few bugs.

Before assembling you should edit common.i to change a few equates.  If you
look there you will see lots of different options you can select.

Assembling and linking are done from the CLI or SHELL.  Make sure Macro68 and
Blink are installed, cd to the directory with all the source files, then
"execute compile.script" and "execute link.script".  This takes about 35
seconds on an A3000.

If you change only a single ".a" file, you don't need to re-assemble
everything.  Just "macro68 the_changed_file.a -o the_changed_file.o", then
"execute link.script".

If you change a ".i" file, you have to re-assemble all the ".a" files that
include it, directly or indirectly.  It's best just to re-assemble everything.


License
=======
Sinclair ZX Spectrum Emulator is distributed under the terms of the GNU General Public License,
version 2 or later. See the COPYING file for details.

Cheers!
https://twitter.com/AmigaSourcePres

  _____ ___   _   __  __     _   __  __ ___ ___   _   
 |_   _| __| /_ |  /  |   /_ |  /  |_ _/ __| /_  
   | | | _| / _ | |/| |  / _ | |/| || | (_ |/ _  
  _|_| |___/_/ __|_ |_|_/_/___|__|_|______/_/__
 / __|/ _ | | | | _ / __| __|  / __/ _ |   | __|  
 __  (_) | |_| |   / (__| _|  | (_| (_) | |) | _|   
 |___/___/____/|_|_\___|___|________/|___/|___|_ 
 | _  _  __/ __| __| _   / /__   _|_ _/ _ | | |
 |  _/   / _|__  _||   / V / _ | |  | | (_) | .` |
 |_| |_|____|___/___|_|_ _/_/ __| |______/|_|_|
                                                      


</pre></body></html>