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 / _ | | | | (_) | .` | |_| |_|____|___/___|_|_ _/_/ __| |______/|_|_|