zemu 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/zemu/config.rb +312 -0
- data/lib/zemu/instance.rb +179 -0
- data/lib/zemu.rb +172 -0
- data/src/debug.c +118 -0
- data/src/debug.h +30 -0
- data/src/external/Z/API/Z/ABIs/generic/allocator.h +36 -0
- data/src/external/Z/API/Z/ABIs/generic/cipher.h +47 -0
- data/src/external/Z/API/Z/ABIs/generic/data codec.h +33 -0
- data/src/external/Z/API/Z/ABIs/generic/emulation.h +103 -0
- data/src/external/Z/API/Z/ABIs/generic/hash function.h +33 -0
- data/src/external/Z/API/Z/ABIs/generic/module.h +33 -0
- data/src/external/Z/API/Z/ABIs/generic/wave codec.h +40 -0
- data/src/external/Z/API/Z/classes/base/InitializerList.hpp +34 -0
- data/src/external/Z/API/Z/classes/base/OpaqueFunctionPointer.hpp +26 -0
- data/src/external/Z/API/Z/classes/base/OpaqueMemberFunctionPointer.hpp +26 -0
- data/src/external/Z/API/Z/classes/base/Pair.hpp +46 -0
- data/src/external/Z/API/Z/classes/base/Range.hpp +111 -0
- data/src/external/Z/API/Z/classes/base/SizedString.hpp +66 -0
- data/src/external/Z/API/Z/classes/base/Status.hpp +89 -0
- data/src/external/Z/API/Z/classes/base/Symbol.hpp +39 -0
- data/src/external/Z/API/Z/classes/base/Tuple.hpp +111 -0
- data/src/external/Z/API/Z/classes/base/Value2D.hpp +389 -0
- data/src/external/Z/API/Z/classes/base/Value3D.hpp +368 -0
- data/src/external/Z/API/Z/classes/buffering/RingBuffer.hpp +93 -0
- data/src/external/Z/API/Z/classes/buffering/TripleBuffer.hpp +68 -0
- data/src/external/Z/API/Z/classes/functional/Functor.hpp +265 -0
- data/src/external/Z/API/Z/classes/functional/MemberFunction.hpp +98 -0
- data/src/external/Z/API/Z/classes/functional/ObjectMemberFunction.hpp +172 -0
- data/src/external/Z/API/Z/classes/functional/ObjectSelector.hpp +219 -0
- data/src/external/Z/API/Z/classes/functional/Selector.hpp +146 -0
- data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/AABB.hpp +81 -0
- data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/AABR.hpp +685 -0
- data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Box.hpp +219 -0
- data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Circle.hpp +80 -0
- data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Line2D.hpp +93 -0
- data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Line3D.hpp +80 -0
- data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Rectangle.hpp +675 -0
- data/src/external/Z/API/Z/classes/mathematics/geometry/euclidean/Sphere.hpp +0 -0
- data/src/external/Z/API/Z/classes/memory/Shared.hpp +90 -0
- data/src/external/Z/API/Z/constants/base.h +35 -0
- data/src/external/Z/API/Z/constants/chemical elements.h +6385 -0
- data/src/external/Z/API/Z/constants/numbers.h +963 -0
- data/src/external/Z/API/Z/constants/version.h +15 -0
- data/src/external/Z/API/Z/formats/character set/ASCII.h +158 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP437.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP737.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP775.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP850.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP852.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP855.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP857.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP858.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP860.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP861.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP862.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP863.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP864.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP865.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP866.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP869.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP872.h +159 -0
- data/src/external/Z/API/Z/formats/character set/DOS CP874.h +159 -0
- data/src/external/Z/API/Z/formats/character set/Unicode.h +30119 -0
- data/src/external/Z/API/Z/formats/data model/I16LP32.h +19 -0
- data/src/external/Z/API/Z/formats/data model/ILP32.h +19 -0
- data/src/external/Z/API/Z/formats/data model/ILP64.h +19 -0
- data/src/external/Z/API/Z/formats/data model/IP16L32.h +19 -0
- data/src/external/Z/API/Z/formats/data model/LLP64.h +19 -0
- data/src/external/Z/API/Z/formats/data model/LP32.h +19 -0
- data/src/external/Z/API/Z/formats/data model/LP64.h +19 -0
- data/src/external/Z/API/Z/formats/data model/SILP64.h +19 -0
- data/src/external/Z/API/Z/formats/file system/FAT12.h +61 -0
- data/src/external/Z/API/Z/formats/floating-point/IEEE 754.h +141 -0
- data/src/external/Z/API/Z/formats/floating-point/x87.h +74 -0
- data/src/external/Z/API/Z/formats/image/ICNS.h +39 -0
- data/src/external/Z/API/Z/formats/keymap/Mac OS.h +284 -0
- data/src/external/Z/API/Z/formats/keymap/Z.h +141 -0
- data/src/external/Z/API/Z/formats/multimedia/Creative Voice.h +106 -0
- data/src/external/Z/API/Z/formats/multimedia/Microsoft Wave.h +49 -0
- data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/ACH.h +44 -0
- data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/FRZ.h +54 -0
- data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/PRG.h +33 -0
- data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SEM.h +46 -0
- data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SIT.h +34 -0
- data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SNA.h +117 -0
- data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SNP.h +37 -0
- data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/SP.h +62 -0
- data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/Z80.h +117 -0
- data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/ZX.h +56 -0
- data/src/external/Z/API/Z/formats/snapshot/machine/computer/ZX Spectrum/ZX82.h +70 -0
- data/src/external/Z/API/Z/formats/storage medium image/NES Game Pak/UNIF.h +26 -0
- data/src/external/Z/API/Z/formats/storage medium image/NES Game Pak/iNES.h +76 -0
- data/src/external/Z/API/Z/formats/storage medium image/audio/TAP.h +25 -0
- data/src/external/Z/API/Z/formats/storage medium image/audio/TZX.h +1185 -0
- data/src/external/Z/API/Z/formats/storage medium image/audio/Warajevo TAP.h +32 -0
- data/src/external/Z/API/Z/formats/storage medium image/floppy disk/FDI.h +45 -0
- data/src/external/Z/API/Z/functions/base/Z2D.h +583 -0
- data/src/external/Z/API/Z/functions/base/Z3D.h +712 -0
- data/src/external/Z/API/Z/functions/base/ZRange.h +137 -0
- data/src/external/Z/API/Z/functions/base/all.h +16 -0
- data/src/external/Z/API/Z/functions/base/casting.hpp +37 -0
- data/src/external/Z/API/Z/functions/base/character.h +38 -0
- data/src/external/Z/API/Z/functions/base/constructors.h +326 -0
- data/src/external/Z/API/Z/functions/base/structure.hpp +26 -0
- data/src/external/Z/API/Z/functions/base/type.hpp +60 -0
- data/src/external/Z/API/Z/functions/base/value.h +1901 -0
- data/src/external/Z/API/Z/functions/base/value.hpp +112 -0
- data/src/external/Z/API/Z/functions/buffering/ZRingBuffer.h +85 -0
- data/src/external/Z/API/Z/functions/buffering/ZTripleBuffer.h +65 -0
- data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/Z2DLine.h +179 -0
- data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/Z3DLine.h +168 -0
- data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZAABB.h +361 -0
- data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZAABR.h +1081 -0
- data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZBox.h +340 -0
- data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZCircle.h +142 -0
- data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZRectangle.h +1267 -0
- data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/ZSphere.h +156 -0
- data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/all.h +18 -0
- data/src/external/Z/API/Z/functions/mathematics/geometry/euclidean/constructors.h +620 -0
- data/src/external/Z/API/Z/functions/time/date.h +29 -0
- data/src/external/Z/API/Z/hardware/CPU/architecture/6502.h +90 -0
- data/src/external/Z/API/Z/hardware/CPU/architecture/Z80.h +245 -0
- data/src/external/Z/API/Z/hardware/CPU/architecture/i4004.h +37 -0
- data/src/external/Z/API/Z/hardware/PSG/General Instrument/AY-3-891x.h +180 -0
- data/src/external/Z/API/Z/hardware/VDC/Ricoh/RP2C0x.h +625 -0
- data/src/external/Z/API/Z/hardware/bus/AGP.h +24 -0
- data/src/external/Z/API/Z/hardware/bus/USB.h +510 -0
- data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/Inves Spectrum +.h +47 -0
- data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/Pentagon.h +13 -0
- data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/Scorpion.h +13 -0
- data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum + 128K.h +158 -0
- data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +.h +82 -0
- data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +2.h +13 -0
- data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +2A.h +13 -0
- data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum +3.h +13 -0
- data/src/external/Z/API/Z/hardware/machine/model/computer/ZX Spectrum/ZX Spectrum.h +109 -0
- data/src/external/Z/API/Z/hardware/machine/model/console/Nintendo Entertainment System/NES-001 (NTSC).h +29 -0
- data/src/external/Z/API/Z/hardware/machine/model/console/Nintendo Entertainment System/NES-001 (PAL).h +29 -0
- data/src/external/Z/API/Z/hardware/machine/platform/computer/ZX Spectrum.h +405 -0
- data/src/external/Z/API/Z/hardware/machine/platform/console/Game Boy.h +49 -0
- data/src/external/Z/API/Z/hardware/machine/platform/console/Nintendo Entertainment System.h +350 -0
- data/src/external/Z/API/Z/hardware/storage medium/ROM cartridge/SNES Game Pak.h +238 -0
- data/src/external/Z/API/Z/inspection/C/completion.h +178 -0
- data/src/external/Z/API/Z/inspection/C/modules/C11.h +41 -0
- data/src/external/Z/API/Z/inspection/C/modules/C18.h +13 -0
- data/src/external/Z/API/Z/inspection/C/modules/C89.h +19 -0
- data/src/external/Z/API/Z/inspection/C/modules/C90.h +13 -0
- data/src/external/Z/API/Z/inspection/C/modules/C94.h +15 -0
- data/src/external/Z/API/Z/inspection/C/modules/C99.h +29 -0
- data/src/external/Z/API/Z/inspection/C/modules/KR C.h +19 -0
- data/src/external/Z/API/Z/inspection/C++/completion.h +512 -0
- data/src/external/Z/API/Z/inspection/C++/modules/C++03.h +15 -0
- data/src/external/Z/API/Z/inspection/C++/modules/C++11.h +80 -0
- data/src/external/Z/API/Z/inspection/C++/modules/C++14.h +26 -0
- data/src/external/Z/API/Z/inspection/C++/modules/C++17.h +55 -0
- data/src/external/Z/API/Z/inspection/C++/modules/C++85.h +11 -0
- data/src/external/Z/API/Z/inspection/C++/modules/C++89.h +13 -0
- data/src/external/Z/API/Z/inspection/C++/modules/C++98.h +17 -0
- data/src/external/Z/API/Z/inspection/C++.h +78 -0
- data/src/external/Z/API/Z/inspection/C.h +79 -0
- data/src/external/Z/API/Z/inspection/CPU/completion.h +56 -0
- data/src/external/Z/API/Z/inspection/CPU/detection.h +714 -0
- data/src/external/Z/API/Z/inspection/CPU/modules/6502.h +25 -0
- data/src/external/Z/API/Z/inspection/CPU/modules/AArch32.h +32 -0
- data/src/external/Z/API/Z/inspection/CPU/modules/AArch64.h +32 -0
- data/src/external/Z/API/Z/inspection/CPU/modules/Z80.h +26 -0
- data/src/external/Z/API/Z/inspection/CPU/modules/x86-32.h +31 -0
- data/src/external/Z/API/Z/inspection/CPU/modules/x86-64.h +312 -0
- data/src/external/Z/API/Z/inspection/CPU.h +209 -0
- data/src/external/Z/API/Z/inspection/OS/completion.h +36 -0
- data/src/external/Z/API/Z/inspection/OS/detection.h +768 -0
- data/src/external/Z/API/Z/inspection/OS/modules/Linux.h +22 -0
- data/src/external/Z/API/Z/inspection/OS/modules/MS-DOS.h +16 -0
- data/src/external/Z/API/Z/inspection/OS/modules/Mac OS X.h +23 -0
- data/src/external/Z/API/Z/inspection/OS/modules/Windows.h +19 -0
- data/src/external/Z/API/Z/inspection/OS/modules/iPhone OS.h +23 -0
- data/src/external/Z/API/Z/inspection/OS.h +236 -0
- data/src/external/Z/API/Z/inspection/Objective-C/completion.h +8 -0
- data/src/external/Z/API/Z/inspection/Objective-C/modules/Objective-C v1.0.h +11 -0
- data/src/external/Z/API/Z/inspection/Objective-C/modules/Objective-C v2.0.h +15 -0
- data/src/external/Z/API/Z/inspection/Objective-C.h +51 -0
- data/src/external/Z/API/Z/inspection/Z.h +19 -0
- data/src/external/Z/API/Z/inspection/build.h +22 -0
- data/src/external/Z/API/Z/inspection/character set.h +66 -0
- data/src/external/Z/API/Z/inspection/compiler/completion.h +2885 -0
- data/src/external/Z/API/Z/inspection/compiler/modules/Apple LLVM.h +26 -0
- data/src/external/Z/API/Z/inspection/compiler/modules/Clang.h +1664 -0
- data/src/external/Z/API/Z/inspection/compiler/modules/GCC.h +1366 -0
- data/src/external/Z/API/Z/inspection/compiler/modules/SCCZ80.h +473 -0
- data/src/external/Z/API/Z/inspection/compiler/modules/Visual C++.h +606 -0
- data/src/external/Z/API/Z/inspection/compiler/modules/cc65.h +529 -0
- data/src/external/Z/API/Z/inspection/compiler/modules/generic.h +13 -0
- data/src/external/Z/API/Z/inspection/compiler/modules/template.h +650 -0
- data/src/external/Z/API/Z/inspection/compiler.h +299 -0
- data/src/external/Z/API/Z/inspection/data model/completion.h +128 -0
- data/src/external/Z/API/Z/inspection/data model/deduction.h +9 -0
- data/src/external/Z/API/Z/inspection/data model/detection.h +45 -0
- data/src/external/Z/API/Z/inspection/data model.h +362 -0
- data/src/external/Z/API/Z/inspection/floating-point/completion.h +50 -0
- data/src/external/Z/API/Z/inspection/floating-point.h +324 -0
- data/src/external/Z/API/Z/inspection/language.h +163 -0
- data/src/external/Z/API/Z/inspection/platform/detection.h +9 -0
- data/src/external/Z/API/Z/inspection/platform.h +29 -0
- data/src/external/Z/API/Z/keys/C++.h +27 -0
- data/src/external/Z/API/Z/keys/C.h +29 -0
- data/src/external/Z/API/Z/keys/CPU.h +80 -0
- data/src/external/Z/API/Z/keys/OS.h +182 -0
- data/src/external/Z/API/Z/keys/Objective-C.h +17 -0
- data/src/external/Z/API/Z/keys/chemistry.h +26 -0
- data/src/external/Z/API/Z/keys/compiler.h +178 -0
- data/src/external/Z/API/Z/keys/data model.h +32 -0
- data/src/external/Z/API/Z/keys/endianness.h +24 -0
- data/src/external/Z/API/Z/keys/language.h +21 -0
- data/src/external/Z/API/Z/keys/layout.h +20 -0
- data/src/external/Z/API/Z/keys/mathematics/geometry.h +29 -0
- data/src/external/Z/API/Z/keys/mathematics/number.h +21 -0
- data/src/external/Z/API/Z/keys/order.h +18 -0
- data/src/external/Z/API/Z/keys/platform.h +87 -0
- data/src/external/Z/API/Z/keys/program.h +39 -0
- data/src/external/Z/API/Z/keys/science/chemical elements.h +200 -0
- data/src/external/Z/API/Z/keys/science/electricity.h +18 -0
- data/src/external/Z/API/Z/keys/science/magnetism.h +19 -0
- data/src/external/Z/API/Z/keys/status.h +69 -0
- data/src/external/Z/API/Z/keys/text.h +27 -0
- data/src/external/Z/API/Z/keys/value.h +88 -0
- data/src/external/Z/API/Z/macros/arguments.h +25 -0
- data/src/external/Z/API/Z/macros/casting.h +22 -0
- data/src/external/Z/API/Z/macros/character.h +159 -0
- data/src/external/Z/API/Z/macros/date.h +14 -0
- data/src/external/Z/API/Z/macros/key.h +20 -0
- data/src/external/Z/API/Z/macros/language.h +126 -0
- data/src/external/Z/API/Z/macros/language.hpp +81 -0
- data/src/external/Z/API/Z/macros/members.h +86 -0
- data/src/external/Z/API/Z/macros/pasting.h +308 -0
- data/src/external/Z/API/Z/macros/pointer.h +33 -0
- data/src/external/Z/API/Z/macros/repetition.h +283 -0
- data/src/external/Z/API/Z/macros/structure.h +104 -0
- data/src/external/Z/API/Z/macros/templating.h +407 -0
- data/src/external/Z/API/Z/macros/tokens.h +14 -0
- data/src/external/Z/API/Z/macros/type enumeration.h +43 -0
- data/src/external/Z/API/Z/macros/type selection.hpp +76 -0
- data/src/external/Z/API/Z/macros/value.h +489 -0
- data/src/external/Z/API/Z/macros/variadic pasting.h +21 -0
- data/src/external/Z/API/Z/macros/variadic selection.h +56 -0
- data/src/external/Z/API/Z/macros/variadic.h +46 -0
- data/src/external/Z/API/Z/macros/version.h +17 -0
- data/src/external/Z/API/Z/network/3/IP.h +36 -0
- data/src/external/Z/API/Z/network/4/TCP.h +24 -0
- data/src/external/Z/API/Z/network/4/UDP.h +26 -0
- data/src/external/Z/API/Z/network/7/ED2K.h +104 -0
- data/src/external/Z/API/Z/network/7/HTTP.h +100 -0
- data/src/external/Z/API/Z/traits/SelectType.hpp +71 -0
- data/src/external/Z/API/Z/traits/TernaryType.hpp +20 -0
- data/src/external/Z/API/Z/traits/Type.hpp +4516 -0
- data/src/external/Z/API/Z/traits/TypeCount.hpp +52 -0
- data/src/external/Z/API/Z/traits/TypeList.hpp +376 -0
- data/src/external/Z/API/Z/traits/base.hpp +19 -0
- data/src/external/Z/API/Z/traits/filtering.hpp +30 -0
- data/src/external/Z/API/Z/traits/mathematics.hpp +48 -0
- data/src/external/Z/API/Z/types/arguments.h +19 -0
- data/src/external/Z/API/Z/types/base.h +1655 -0
- data/src/external/Z/API/Z/types/base.hpp +169 -0
- data/src/external/Z/API/Z/types/buffering.h +27 -0
- data/src/external/Z/API/Z/types/mathematics.h +135 -0
- data/src/external/Z/API/Z/types/time.h +23 -0
- data/src/external/Z/COPYING.LESSER +165 -0
- data/src/external/Z/development/Qt Creator/Z.pro +253 -0
- data/src/external/Z/distribution/CocoaPods/Zeta.podspec +18 -0
- data/src/external/Z/distribution/Gentoo Linux/Zeta-0.1.ebuild +22 -0
- data/src/external/Z/distribution/Gentoo Linux/metadata.xml +8 -0
- data/src/external/Z/distribution/Homebrew/Zeta.rb +11 -0
- data/src/external/z80/API/emulation/CPU/Z80.h +201 -0
- data/src/external/z80/README.md +229 -0
- data/src/external/z80/building/premake4.lua +33 -0
- data/src/external/z80/development/Xcode/Z80.xcodeproj/project.pbxproj +520 -0
- data/src/external/z80/sources/Z80.c +1660 -0
- data/src/interrupt.c +6 -0
- data/src/interrupt.h +3 -0
- data/src/io.c.erb +115 -0
- data/src/io.h.erb +18 -0
- data/src/main.c +69 -0
- data/src/memory.c.erb +43 -0
- data/src/memory.h.erb +9 -0
- metadata +329 -0
@@ -0,0 +1,33 @@
|
|
1
|
+
/* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/PRG.h
|
2
|
+
_____ _______________
|
3
|
+
/_ /_/ -_/_ _/ _ |
|
4
|
+
/____/\___/ /__//___/_| Kit
|
5
|
+
Copyright (C) Kevin Phair.
|
6
|
+
Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
|
7
|
+
Released under the terms of the GNU Lesser General Public License v3.
|
8
|
+
|
9
|
+
.-------------------------------------.
|
10
|
+
| Extensions: prg |
|
11
|
+
| Endianness: Little |
|
12
|
+
| Created by: Phair, Kevin |
|
13
|
+
| Used by: Spectrum Emulator [DOS] |
|
14
|
+
| |
|
15
|
+
| http://code.google.com/p/specem |
|
16
|
+
'------------------------------------*/
|
17
|
+
|
18
|
+
#ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_PRG_H_
|
19
|
+
#define _Z_formats_snapshot_machine_computer_ZX_Spectrum_PRG_H_
|
20
|
+
|
21
|
+
#include <Z/types/base.h>
|
22
|
+
|
23
|
+
Z_DEFINE_STRICT_STRUCTURE (
|
24
|
+
zuint8 file_type; /* Always 05h */
|
25
|
+
zuint8 program_name[10]; /* 20h, name[], 20h */
|
26
|
+
zuint16 file_sector_count; /* BIG ENDIAN */
|
27
|
+
zuint8 file_first_sector_track_index;
|
28
|
+
zuint8 file_first_sector_sector_index;
|
29
|
+
zuint8 sector_allocation_bitmap[195];
|
30
|
+
/* ..... TO DO */
|
31
|
+
) ZPRG;
|
32
|
+
|
33
|
+
#endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_PRG_H_ */
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/SEM.h
|
2
|
+
_____ _______________
|
3
|
+
/_ /_/ -_/_ _/ _ |
|
4
|
+
/____/\___/ /__//___/_| Kit
|
5
|
+
Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
|
6
|
+
Released under the terms of the GNU Lesser General Public License v3.
|
7
|
+
|
8
|
+
.-----------------------------------------------------.
|
9
|
+
| Extensions: sem |
|
10
|
+
| Endianness: Little |
|
11
|
+
| Created by: Waschke, Bernd |
|
12
|
+
| Used by: ZX Spectrum-Emulator (SpecEmu) [MS-DOS] |
|
13
|
+
'----------------------------------------------------*/
|
14
|
+
|
15
|
+
#ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_SEM_H_
|
16
|
+
#define _Z_formats_snapshot_machine_computer_ZX_Spectrum_SEM_H_
|
17
|
+
|
18
|
+
#include <Z/types/base.h>
|
19
|
+
|
20
|
+
Z_DEFINE_STRICT_STRUCTURE_BEGIN
|
21
|
+
zuint8 signature_size; /* 5 */
|
22
|
+
zuint8 signature[5]; /* 'SPEC1' */
|
23
|
+
zuint8 ram[1024 * 48];
|
24
|
+
Z16Bit af, bc, de, hl;
|
25
|
+
Z16Bit af_, bc_, de_, hl_;
|
26
|
+
zuint16 pc, sp;
|
27
|
+
Z16Bit ix, iy;
|
28
|
+
zuint8 i, zero_0;
|
29
|
+
zuint8 r, zero_1;
|
30
|
+
zuint8 iff1, zero_2;
|
31
|
+
zuint8 iff2, zero_3;
|
32
|
+
zuint8 im, zero_4;
|
33
|
+
Z_DEFINE_STRICT_STRUCTURE_END ZSEMSnapshot;
|
34
|
+
|
35
|
+
Z_DEFINE_STRICT_STRUCTURE (
|
36
|
+
zuint16 address;
|
37
|
+
zuint8 value;
|
38
|
+
) ZSEMPoke;
|
39
|
+
|
40
|
+
Z_DEFINE_STRICT_STRUCTURE (
|
41
|
+
ZSEMSnapshot snapshot;
|
42
|
+
ZSEMPoke poke; /* Optional */
|
43
|
+
zuint16 speed_factor; /* Optional (only if poke included) */
|
44
|
+
) ZSEM;
|
45
|
+
|
46
|
+
#endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_SEM_H_ */
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/SIT.h
|
2
|
+
_____ _______________
|
3
|
+
/_ /_/ -_/_ _/ _ |
|
4
|
+
/____/\___/ /__//___/_| Kit
|
5
|
+
Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
|
6
|
+
Released under the terms of the GNU Lesser General Public License v3.
|
7
|
+
|
8
|
+
.-------------------------------------------.
|
9
|
+
| Extensions: sit |
|
10
|
+
| Endianness: Little |
|
11
|
+
| Created by: Rodríguez Salas, Pedro Manuel |
|
12
|
+
| Used by: SINCLAIR [DOS] |
|
13
|
+
| |
|
14
|
+
| http://www.ugr.es/~pedrom/sinclair.htm |
|
15
|
+
'------------------------------------------*/
|
16
|
+
|
17
|
+
#ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_SIT_H_
|
18
|
+
#define _Z_formats_snapshot_machine_computer_ZX_Spectrum_SIT_H_
|
19
|
+
|
20
|
+
#include <Z/types/base.h>
|
21
|
+
|
22
|
+
Z_DEFINE_STRICT_STRUCTURE_BEGIN
|
23
|
+
Z16Bit bc, de, hl, af, ix, iy;
|
24
|
+
zuint16 sp, pc;
|
25
|
+
zuint8 r, i;
|
26
|
+
Z16Bit bc_, de_, hl_, af_;
|
27
|
+
zuint8 im;
|
28
|
+
zuint8 border_color;
|
29
|
+
|
30
|
+
/* complete ROM+RAM memory of a standard ZX Spectrum 48K */
|
31
|
+
zuint8 memory[1024 * 64];
|
32
|
+
Z_DEFINE_STRICT_STRUCTURE_END ZSIT;
|
33
|
+
|
34
|
+
#endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_SIT_H_ */
|
@@ -0,0 +1,117 @@
|
|
1
|
+
/* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/SNA.h
|
2
|
+
_____ _______________
|
3
|
+
/_ /_/ -_/_ _/ _ |
|
4
|
+
/____/\___/ /__//___/_| Kit
|
5
|
+
Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
|
6
|
+
Released under the terms of the GNU Lesser General Public License v3.
|
7
|
+
|
8
|
+
.---------------------------------------------.
|
9
|
+
| Extensions: sna, snap, snapshot |
|
10
|
+
| Endianness: Little |
|
11
|
+
| Created by: McGavin, Peter |
|
12
|
+
| Used by: Any decent ZX Spectrum emulator |
|
13
|
+
'--------------------------------------------*/
|
14
|
+
|
15
|
+
#ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNA_H_
|
16
|
+
#define _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNA_H_
|
17
|
+
|
18
|
+
#include <Z/types/base.h>
|
19
|
+
|
20
|
+
/* MARK: - v48K
|
21
|
+
.-------------------------------------------------------------------------.
|
22
|
+
| From SinclairFAQ: |
|
23
|
+
| |
|
24
|
+
| " This format is one of the most well-supported of all snapshot |
|
25
|
+
| formats (for the ZX Spectrum), but has a drawback: |
|
26
|
+
| |
|
27
|
+
| As the program counter is pushed onto the stack so that a RETN |
|
28
|
+
| instruction can restart the program, 2 bytes of memory are overwritten. |
|
29
|
+
| This will usually not matter; the game (or whatever) will have stack |
|
30
|
+
| space that can be used for this. However, if this space is all in use |
|
31
|
+
| when the snap is made, memory below the stack space will be corrupted. |
|
32
|
+
| According to Rui Ribeiro (Author of WSpecEm), the effects of this can |
|
33
|
+
| sometimes be avoided by replacing the corrupted bytes with zeros; e.g. |
|
34
|
+
| take the PC from the stack pointer, replace that word with 0000 and |
|
35
|
+
| then increment SP. This worked with snapshots of Batman, Bounder and |
|
36
|
+
| others which had been saved at critical points. Theoretically, this |
|
37
|
+
| problem could cause a complete crash on a real Spectrum if the stack |
|
38
|
+
| pointer happened to be at address 16384; the push would try and write |
|
39
|
+
| to the ROM. |
|
40
|
+
| |
|
41
|
+
| When the registers have been loaded, a RETN command is required to |
|
42
|
+
| start the program. IFF2 is short for interrupt flip-flop 2, and for all |
|
43
|
+
| practical purposes is the interrupt-enabled flag. Set means enabled. " |
|
44
|
+
'------------------------------------------------------------------------*/
|
45
|
+
|
46
|
+
#define Z_SNA_V48K_PC_VALUE 0x72
|
47
|
+
|
48
|
+
Z_DEFINE_STRICT_STRUCTURE_BEGIN
|
49
|
+
zuint8 i;
|
50
|
+
Z16Bit hl_, de_, bc_, af_;
|
51
|
+
Z16Bit hl, de, bc, iy, ix;
|
52
|
+
|
53
|
+
struct {Z_BIT_FIELD(8, 3) (
|
54
|
+
zuint8 unused_0 :5,
|
55
|
+
zuint8 iff2 :1,
|
56
|
+
zuint8 unused_1 :2
|
57
|
+
)} interrupt;
|
58
|
+
|
59
|
+
zuint8 r;
|
60
|
+
Z16Bit af;
|
61
|
+
zuint16 sp;
|
62
|
+
zuint8 im;
|
63
|
+
zuint8 border_color;
|
64
|
+
zuint8 ram[1024 * 48]; /* RAM dump [16384-65535] */
|
65
|
+
Z_DEFINE_STRICT_STRUCTURE_END ZSNAv48K;
|
66
|
+
|
67
|
+
#define Z_SNA_IM_0 0
|
68
|
+
#define Z_SNA_IM_1 1
|
69
|
+
#define Z_SNA_IM_2 2
|
70
|
+
|
71
|
+
/* MARK: - v128K
|
72
|
+
.-------------------------------------------------------------------------.
|
73
|
+
| From SinclairFAQ: |
|
74
|
+
| |
|
75
|
+
| " The 128K version of the SNA format is the same as above, with |
|
76
|
+
| extensions to include the extra memory banks of the 128K/+2 machines, |
|
77
|
+
| and fixes the problem with the PC being pushed onto the stack - now it |
|
78
|
+
| is located in an extra variable in the file (and is not pushed onto the |
|
79
|
+
| stack at all). The first 49179 bytes of the snapshot are otherwise |
|
80
|
+
| exactly as described above. |
|
81
|
+
| |
|
82
|
+
| The third RAM bank saved (ram_bank_n) is always the one currently |
|
83
|
+
| paged, even if this is page 5 or 2 - in this case, the bank is actually |
|
84
|
+
| included twice. The remaining RAM banks are saved in ascending order. |
|
85
|
+
| |
|
86
|
+
| Example: If RAM bank 4 is paged in, the snapshot is made up of banks |
|
87
|
+
| 5, 2 and 4 to start with, and banks 0, 1, 3, 6 and 7 afterwards. If RAM |
|
88
|
+
| bank 5 is paged in, the snapshot is made up of banks 5, 2 and 5 again, |
|
89
|
+
| followed by banks 0, 1, 3, 4, 6 and 7. " |
|
90
|
+
'------------------------------------------------------------------------*/
|
91
|
+
|
92
|
+
Z_DEFINE_STRICT_STRUCTURE_BEGIN
|
93
|
+
zuint8 i;
|
94
|
+
Z16Bit hl_, de_, bc_, af_;
|
95
|
+
Z16Bit hl, de, bc, iy, ix;
|
96
|
+
|
97
|
+
struct {Z_BIT_FIELD(8, 3) (
|
98
|
+
zuint8 unused_0 :5,
|
99
|
+
zuint8 iff2 :1,
|
100
|
+
zuint8 unused_1 :2
|
101
|
+
)} interrupt;
|
102
|
+
|
103
|
+
zuint8 r;
|
104
|
+
Z16Bit af;
|
105
|
+
zuint16 sp;
|
106
|
+
zuint8 im;
|
107
|
+
zuint8 border_color;
|
108
|
+
zuint8 ram_bank_5[1024 * 16];
|
109
|
+
zuint8 ram_bank_2[1024 * 16];
|
110
|
+
zuint8 ram_bank_n[1024 * 16];
|
111
|
+
zuint16 pc;
|
112
|
+
zuint8 port_7ffd_value;
|
113
|
+
zuint8 tr_dos_rom_paged; /* boolean */
|
114
|
+
zuint8 remaining_ram_banks[1024 * 16 * 6];
|
115
|
+
Z_DEFINE_STRICT_STRUCTURE_END ZSNAv128K;
|
116
|
+
|
117
|
+
#endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNA_H_ */
|
@@ -0,0 +1,37 @@
|
|
1
|
+
/* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/SNP.h
|
2
|
+
_____ _______________
|
3
|
+
/_ /_/ -_/_ _/ _ |
|
4
|
+
/____/\___/ /__//___/_| Kit
|
5
|
+
Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
|
6
|
+
Released under the terms of the GNU Lesser General Public License v3.
|
7
|
+
|
8
|
+
.--------------------------------------------------.
|
9
|
+
| Extensions: snp |
|
10
|
+
| Endianness: Little |
|
11
|
+
| Created by: Garabik, Radovan - Salanci, Lubomir |
|
12
|
+
| Used by: Nuclear ZX [DOS] |
|
13
|
+
| |
|
14
|
+
| http://korpus.juls.savba.sk/~garabik/old/zx.html |
|
15
|
+
'-------------------------------------------------*/
|
16
|
+
|
17
|
+
#ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNP_H_
|
18
|
+
#define _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNP_H_
|
19
|
+
|
20
|
+
#include <Z/types/base.h>
|
21
|
+
|
22
|
+
Z_DEFINE_STRICT_STRUCTURE_BEGIN
|
23
|
+
zuint8 ram[1024 * 48];
|
24
|
+
Z16Bit af;
|
25
|
+
zuint8 border_color;
|
26
|
+
zuint8 reserved;
|
27
|
+
Z16Bit bc, de, hl;
|
28
|
+
zuint16 pc, sp;
|
29
|
+
Z16Bit ix, iy;
|
30
|
+
zuint8 iff2; /* not used actually */
|
31
|
+
zuint8 iff1;
|
32
|
+
zuint8 im;
|
33
|
+
zuint8 r, i;
|
34
|
+
Z16Bit af_, bc_, de_, hl_;
|
35
|
+
Z_DEFINE_STRICT_STRUCTURE_END ZSNP;
|
36
|
+
|
37
|
+
#endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_SNP_H_ */
|
@@ -0,0 +1,62 @@
|
|
1
|
+
/* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/SP.h
|
2
|
+
_____ _______________
|
3
|
+
/_ /_/ -_/_ _/ _ |
|
4
|
+
/____/\___/ /__//___/_| Kit
|
5
|
+
Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
|
6
|
+
Released under the terms of the GNU Lesser General Public License v3.
|
7
|
+
|
8
|
+
.----------------------------------------------------------------------------.
|
9
|
+
| Extensions: sp |
|
10
|
+
| Endianness: Little |
|
11
|
+
| Created by: Gimeno Fortea, Pedro |
|
12
|
+
| Used by: VGASpec, Spectrum [DOS] |
|
13
|
+
| |
|
14
|
+
| http://www.formauri.es/personal/pgimeno/spec/spec.html |
|
15
|
+
| |
|
16
|
+
| From the sources of MESS: |
|
17
|
+
| |
|
18
|
+
| " There are two kinds of .sp files: 'old' and 'new'. |
|
19
|
+
| The old version is always 49184 bytes long and is created by a leaked copy |
|
20
|
+
| of the VGASpec emulator. |
|
21
|
+
| Subsequently Pedro Gimeno (the author of VGASpec) renamed it to 'Spectrum' |
|
22
|
+
| (but it's colloquially known as the 'Spanish Spectrum emulator') and added |
|
23
|
+
| a header in the snapshot to break backward compatibility: the new format |
|
24
|
+
| supports both 16K and 48K images and it's 16422 or 49190 bytes long. " |
|
25
|
+
'---------------------------------------------------------------------------*/
|
26
|
+
|
27
|
+
#ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_SP_H_
|
28
|
+
#define _Z_formats_snapshot_machine_computer_ZX_Spectrum_SP_H_
|
29
|
+
|
30
|
+
#include <Z/types/base.h>
|
31
|
+
|
32
|
+
Z_DEFINE_STRICT_STRUCTURE (
|
33
|
+
zuint8 signature[2]; /* 'SP' */
|
34
|
+
zuint16 ram_size; /* 1024 * 16 or 1024 * 48 */
|
35
|
+
zuint16 ram_load_address; /* 1024 * 16 */
|
36
|
+
) ZSPHeader;
|
37
|
+
|
38
|
+
Z_DEFINE_STRICT_STRUCTURE_BEGIN
|
39
|
+
Z16Bit bc, de, hl, af, ix, iy;
|
40
|
+
Z16Bit bc_, de_, hl_, af_;
|
41
|
+
zuint8 r, i;
|
42
|
+
zuint16 sp, pc;
|
43
|
+
zuint16 zero1; /* reserved for future use */
|
44
|
+
zuint8 border_color;
|
45
|
+
zuint8 zero2; /* reserved for future use */
|
46
|
+
|
47
|
+
struct {Z_BIT_FIELD(8, 7) (
|
48
|
+
zuint8 zero :2, /* reserved for internal use */
|
49
|
+
zuint8 flash :1, /* boolean */
|
50
|
+
zuint8 int_pending :1,
|
51
|
+
zuint8 im_0 :1,
|
52
|
+
zuint8 iff2 :1,
|
53
|
+
zuint8 im :1,
|
54
|
+
zuint8 iff1 :1
|
55
|
+
)} status;
|
56
|
+
|
57
|
+
Z_FLEXIBLE_ARRAY_MEMBER(zuint8 ram[];)
|
58
|
+
Z_DEFINE_STRICT_STRUCTURE_END ZSPBody;
|
59
|
+
|
60
|
+
#define Z_SP_BODY_IM(p) (Z_SP_BODY(p)->im_0 ? 0 : ((p)->im ? 2 : 1))
|
61
|
+
|
62
|
+
#endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_SP_H_ */
|
@@ -0,0 +1,117 @@
|
|
1
|
+
/* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/Z80.h
|
2
|
+
_____ _______________
|
3
|
+
/_ /_/ -_/_ _/ _ |
|
4
|
+
/____/\___/ /__//___/_| Kit
|
5
|
+
Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
|
6
|
+
Released under the terms of the GNU Lesser General Public License v3.
|
7
|
+
|
8
|
+
.---------------------------------------------.
|
9
|
+
| Extensions: z80 |
|
10
|
+
| Endianness: Little |
|
11
|
+
| Created by: Lunter, Gerton |
|
12
|
+
| Used by: Any decent ZX Spectrum emulator |
|
13
|
+
'--------------------------------------------*/
|
14
|
+
|
15
|
+
#ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_Z80_H_
|
16
|
+
#define _Z_formats_snapshot_machine_computer_ZX_Spectrum_Z80_H_
|
17
|
+
|
18
|
+
#include <Z/types/base.h>
|
19
|
+
|
20
|
+
Z_DEFINE_STRICT_STRUCTURE_BEGIN
|
21
|
+
zuint8 a, f;
|
22
|
+
zuint16 bc, hl, pc, sp;
|
23
|
+
zuint8 i, r;
|
24
|
+
|
25
|
+
struct {Z_BIT_FIELD(8, 5) (
|
26
|
+
zuint8 r7 :1,
|
27
|
+
zuint8 border_color :3,
|
28
|
+
zuint8 basic_samrom :1,
|
29
|
+
zuint8 data_block_is_compressed :1,
|
30
|
+
zuint8 unused :2
|
31
|
+
)} bitfield1;
|
32
|
+
|
33
|
+
zuint16 de;
|
34
|
+
zuint16 bc_, de_, hl_;
|
35
|
+
zuint8 a_, f_;
|
36
|
+
zuint16 iy, ix;
|
37
|
+
zuint8 iff1, iff2;
|
38
|
+
|
39
|
+
struct {Z_BIT_FIELD(8, 5) (
|
40
|
+
zuint8 im :2,
|
41
|
+
zuint8 issue_2_emulation :1,
|
42
|
+
zuint8 int_frequency :1,
|
43
|
+
zuint8 video_synchronization :2,
|
44
|
+
zuint8 joystick_type :2
|
45
|
+
)} bitfield2;
|
46
|
+
Z_DEFINE_STRICT_STRUCTURE_END ZZ80v1Header;
|
47
|
+
|
48
|
+
Z_DEFINE_STRICT_STRUCTURE (
|
49
|
+
zuint16 pc;
|
50
|
+
zuint8 hardware;
|
51
|
+
zuint8 output_state;
|
52
|
+
zuint8 interface_1_paginated_or_timex_output_state;
|
53
|
+
|
54
|
+
struct {Z_BIT_FIELD(8, 4) (
|
55
|
+
zuint8 r_register_emulation :1,
|
56
|
+
zuint8 ldir_instruction_emulation :1,
|
57
|
+
zuint8 zero :5,
|
58
|
+
zuint8 hardware_modification :1
|
59
|
+
)} bitfield;
|
60
|
+
|
61
|
+
zuint8 last_output_to_fffd;
|
62
|
+
zuint8 sound_chip_registers;
|
63
|
+
) ZZ80v2AdditionalHeader;
|
64
|
+
|
65
|
+
#define Z_Z80_HARDWARE_SAM_RAM 2
|
66
|
+
#define Z_Z80_HARDWARE_PENTAGON_128K 9
|
67
|
+
#define Z_Z80_HARDWARE_SCORPION_256K 10
|
68
|
+
#define Z_Z80_HARDWARE_DIDAKTIK_KOMPAKT 11
|
69
|
+
#define Z_Z80_HARDWARE_ZX_SPECTRUM_PLUS_2 12
|
70
|
+
#define Z_Z80_HARDWARE_ZX_SPECTRUM_PLUS_2A 13
|
71
|
+
#define Z_Z80_HARDWARE_TIMEX_TC_2048 14
|
72
|
+
#define Z_Z80_HARDWARE_TIMEX_TC_2068 15
|
73
|
+
#define Z_Z80_HARDWARE_TIMEX_TS_2068 128
|
74
|
+
|
75
|
+
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_48K 0
|
76
|
+
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_48K_AND_IF1 1
|
77
|
+
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_128K_AND_IF1 5
|
78
|
+
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_128K_AND_MGT 6
|
79
|
+
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS_3 7
|
80
|
+
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS_3_ 8
|
81
|
+
|
82
|
+
#define Z_Z80_HARDWARE_B_ZX_SPECTRUM_16K 0
|
83
|
+
#define Z_Z80_HARDWARE_B_ZX_SPECTRUM_16K_AND_IF1 1
|
84
|
+
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS_2_AND_IF1 5
|
85
|
+
#define Z_Z80_HARDWARE_A_ZX_SPECTRUM_PLUS_2_AND_MGT 6
|
86
|
+
#define Z_Z80_HARDWARE_B_ZX_SPECTRUM_PLUS_2A 7
|
87
|
+
#define Z_Z80_HARDWARE_B_ZX_SPECTRUM_PLUS_2A_ 8
|
88
|
+
|
89
|
+
#define Z_Z80_V2_HARDWARE_A_ZX_SPECTRUM_128K 3
|
90
|
+
#define Z_Z80_V2_HARDWARE_A_ZX_SPECTRUM_128K_AND_IF1 4
|
91
|
+
|
92
|
+
#define Z_Z80_V2_HARDWARE_B_ZX_SPECTRUM_PLUS_2 3
|
93
|
+
#define Z_Z80_V2_HARDWARE_B_ZX_SPECTRUM_PLUS_2_AND_IF1 4
|
94
|
+
|
95
|
+
#define Z_Z80_V3_HARDWARE_A_ZX_SPECTRUM_48K_AND_MGT 3
|
96
|
+
#define Z_Z80_V3_HARDWARE_A_ZX_SPECTRUM_128K 4
|
97
|
+
|
98
|
+
#define Z_Z80_V3_HARDWARE_B_ZX_SPECTRUM_PLUS_2_AND_MGT 3
|
99
|
+
#define Z_Z80_V3_HARDWARE_B_ZX_SPECTRUM_PLUS_2 4
|
100
|
+
|
101
|
+
Z_DEFINE_STRICT_STRUCTURE (
|
102
|
+
zuint16 low_t_state_counter;
|
103
|
+
zuint8 high_t_state_counter;
|
104
|
+
zuint8 zero[3];
|
105
|
+
zuint8 mgt_rom_paged;
|
106
|
+
zuint8 multiface_rom_paged;
|
107
|
+
zuint8 memory_type_between_0000_and_1fff;
|
108
|
+
zuint8 memory_type_between_2000_and_3fff;
|
109
|
+
zuint16 keyboard_mappings[5];
|
110
|
+
zuint16 ascii_values[5];
|
111
|
+
zuint8 mgt_type;
|
112
|
+
zuint8 disciple_inhibitor_button_state;
|
113
|
+
zuint8 disciple_inhibitor_button_flag;
|
114
|
+
zuint8 last_output_to_1ffd;
|
115
|
+
) ZZ80v3ExtendedHeader;
|
116
|
+
|
117
|
+
#endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_Z80_H_ */
|
@@ -0,0 +1,56 @@
|
|
1
|
+
/* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/ZX.h
|
2
|
+
_____ _______________
|
3
|
+
/_ /_/ -_/_ _/ _ |
|
4
|
+
/____/\___/ /__//___/_| Kit
|
5
|
+
Information contributed by Troels Norgaard.
|
6
|
+
Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
|
7
|
+
Released under the terms of the GNU Lesser General Public License v3.
|
8
|
+
|
9
|
+
.-----------------------------.
|
10
|
+
| Extensions: zx |
|
11
|
+
| Endianness: Big |
|
12
|
+
| Created by: KGB support BBS |
|
13
|
+
| Used by: KGB [Amiga] |
|
14
|
+
'----------------------------*/
|
15
|
+
|
16
|
+
#ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_H_
|
17
|
+
#define _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_H_
|
18
|
+
|
19
|
+
#include <Z/types/base.h>
|
20
|
+
|
21
|
+
Z_DEFINE_STRICT_STRUCTURE_BEGIN
|
22
|
+
zuint8 rom_tail[132]; /* Last 132 bytes of ROM */
|
23
|
+
zuint8 ram[1024 * 48];
|
24
|
+
zuint8 zero_0[132];
|
25
|
+
zuint16 settings[5]; /* KGB settings, usually = {10, 10, 4, 1, 1} */
|
26
|
+
zuint8 iff;
|
27
|
+
zuint8 constants[2]; /* {0, 3} */
|
28
|
+
zuint8 color_mode;
|
29
|
+
zuint32 zero_1;
|
30
|
+
Z16Bit bc, bc_, de, de_, hl, hl_, ix, iy;
|
31
|
+
zuint8 i, r;
|
32
|
+
zuint8 zero_2[3];
|
33
|
+
zuint8 a_, zero_3;
|
34
|
+
zuint8 a, zero_4;
|
35
|
+
zuint8 f_, zero_5;
|
36
|
+
zuint8 f;
|
37
|
+
zuint16 zero_6, pc;
|
38
|
+
zuint16 zero_7, sp;
|
39
|
+
zuint16 sound_mode;
|
40
|
+
zuint16 halt; /* boolean */
|
41
|
+
zsint16 im;
|
42
|
+
zuint8 zero_8[10];
|
43
|
+
Z_DEFINE_STRICT_STRUCTURE_END ZZX;
|
44
|
+
|
45
|
+
#define Z_ZX_COLOR_MODE_BW 0
|
46
|
+
#define Z_ZX_COLOR_MODE_COLOR 1
|
47
|
+
|
48
|
+
#define Z_ZX_SOUND_MODE_SIMPLE 0
|
49
|
+
#define Z_ZX_SOUND_MODE_PITCH 1
|
50
|
+
#define Z_ZX_SOUND_MODE_ROM_ONLY 2
|
51
|
+
|
52
|
+
#define Z_ZX_IM_0 -1
|
53
|
+
#define Z_ZX_IM_1 0
|
54
|
+
#define Z_ZX_IM_2 1
|
55
|
+
|
56
|
+
#endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX_H_ */
|
@@ -0,0 +1,70 @@
|
|
1
|
+
/* Z Kit - formats/snapshot/machine/computer/ZX Spectrum/ZX82.h
|
2
|
+
_____ _______________
|
3
|
+
/_ /_/ -_/_ _/ _ |
|
4
|
+
/____/\___/ /__//___/_| Kit
|
5
|
+
Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
|
6
|
+
Released under the terms of the GNU Lesser General Public License v3.
|
7
|
+
|
8
|
+
.-------------------------------------------------------------------------.
|
9
|
+
| Extensions: zx82 |
|
10
|
+
| Endianness: Big |
|
11
|
+
| Created by: James, William |
|
12
|
+
| Used by: Speculator '97 [Amiga] |
|
13
|
+
| |
|
14
|
+
| IMPORTANT NOTICE: This format is not well known at all, |
|
15
|
+
| so the types and constants declared here can be useless. |
|
16
|
+
| The only documentation I have found is from the SinclairFAQ. |
|
17
|
+
| |
|
18
|
+
| From SinclairFAQ: |
|
19
|
+
| |
|
20
|
+
| " Amiga Speculator has its own file format called ZX82 format because |
|
21
|
+
| it contains a file identifier in the first four bytes consisting of the |
|
22
|
+
| ASCII characters "ZX82". The format has a 12 byte header which contains |
|
23
|
+
| the normal Spectrum type file information like length, type, start etc. |
|
24
|
+
| as well as a compression flag which is set if the file is byte run |
|
25
|
+
| compressed. |
|
26
|
+
| |
|
27
|
+
| The 'data_type' field is derived from the MGT disciple directory |
|
28
|
+
| MGT_Type-1, so further file types may be supported in this way in the |
|
29
|
+
| future. |
|
30
|
+
| |
|
31
|
+
| The compression used is the standard byte run compression as used by |
|
32
|
+
| ILBM IFF files. The whole 48K data block is compressed as if it were |
|
33
|
+
| one long row. " |
|
34
|
+
| |
|
35
|
+
| See: |
|
36
|
+
| Amiga ROM Kernel Reference Manual: Devices (Third Edition) |
|
37
|
+
| - Appendix A - IFF Specification (Page 347) |
|
38
|
+
| - Appendix C - Example Packer C code (Page 538) |
|
39
|
+
'------------------------------------------------------------------------*/
|
40
|
+
|
41
|
+
#ifndef _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX82_H_
|
42
|
+
#define _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX82_H_
|
43
|
+
|
44
|
+
#include <Z/types/base.h>
|
45
|
+
|
46
|
+
Z_DEFINE_STRICT_STRUCTURE (
|
47
|
+
zuint8 identifier[4]; /* {'Z', 'X', '8', '2'} */
|
48
|
+
zuint8 data_type;
|
49
|
+
zuint8 data_compressed; /* boolean */
|
50
|
+
zuint16 data_size; /* File length up to 64k (ELINE-PROG for BASIC) */
|
51
|
+
zuint16 start_address; /* Start address for code (AUTOSTART for BASIC) */
|
52
|
+
zuint16 program_size;
|
53
|
+
) ZZX82Header;
|
54
|
+
|
55
|
+
#define Z_ZX82_DATA_TYPE_BASIC 0
|
56
|
+
#define Z_ZX82_DATA_TYPE_NUMERIC 1
|
57
|
+
#define Z_ZX82_DATA_TYPE_STRINC 2
|
58
|
+
#define Z_ZX82_DATA_TYPE_CODE 3
|
59
|
+
#define Z_ZX82_DATA_TYPE_SNAPSHOT 4
|
60
|
+
|
61
|
+
Z_DEFINE_STRICT_STRUCTURE_BEGIN
|
62
|
+
zuint8 border_color, im; /* (0 = use I register, 1 = IM 1 and 2 = IM 2) (?) */
|
63
|
+
Z16Bit iy, ix;
|
64
|
+
Z16Bit de, bc, hl, af;
|
65
|
+
Z16Bit de_, bc_, hl_, af_, sp;
|
66
|
+
Z16Bit i, r;
|
67
|
+
Z16Bit pc;
|
68
|
+
Z_DEFINE_STRICT_STRUCTURE_END ZZX82SnapshotHeader;
|
69
|
+
|
70
|
+
#endif /* _Z_formats_snapshot_machine_computer_ZX_Spectrum_ZX82_H_ */
|
@@ -0,0 +1,26 @@
|
|
1
|
+
/* Z Kit - formats/storage medium image/NES Game Pak/UNIF.h
|
2
|
+
_____ _______________
|
3
|
+
/_ /_/ -_/_ _/ _ |
|
4
|
+
/____/\___/ /__//___/_| Kit
|
5
|
+
Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
|
6
|
+
Released under the terms of the GNU Lesser General Public License v3.
|
7
|
+
|
8
|
+
.----------------------------------------.
|
9
|
+
| Extensions: unf, unif |
|
10
|
+
| Endianness: Little |
|
11
|
+
| Created by: Carmel-Veilleux, Tennessee |
|
12
|
+
| Used by: |
|
13
|
+
'---------------------------------------*/
|
14
|
+
|
15
|
+
#ifndef _Z_formats_storage_medium_image_NES_Game_Pak_UNIF_H_
|
16
|
+
#define _Z_formats_storage_medium_image_NES_Game_Pak_UNIF_H_
|
17
|
+
|
18
|
+
#include <Z/types/base.h>
|
19
|
+
|
20
|
+
Z_DEFINE_STRICT_STRUCTURE (
|
21
|
+
zuint8 unif[4]; /* 55 4E 49 46 ('UNIF') */
|
22
|
+
zuint32 minimum_version_required;
|
23
|
+
zuint8 zero[24];
|
24
|
+
) ZUNIFHeader;
|
25
|
+
|
26
|
+
#endif /* _Z_formats_storage_medium_image_NES_Game_Pak_UNIF_H_ */
|
@@ -0,0 +1,76 @@
|
|
1
|
+
/* Z Kit - formats/storage medium image/NES Game Pak/iNES.h
|
2
|
+
_____ _______________
|
3
|
+
/_ /_/ -_/_ _/ _ |
|
4
|
+
/____/\___/ /__//___/_| Kit
|
5
|
+
Copyright (C) 2006-2018 Manuel Sainz de Baranda y Goñi.
|
6
|
+
Released under the terms of the GNU Lesser General Public License v3.
|
7
|
+
|
8
|
+
.------------------------------.
|
9
|
+
| Extensions: nes |
|
10
|
+
| Endianness: Little |
|
11
|
+
| Created by: Fayzullin, Marat |
|
12
|
+
| Used by: Any NES emulator |
|
13
|
+
'-----------------------------*/
|
14
|
+
|
15
|
+
#ifndef _Z_formats_storage_medium_image_NES_Game_Pak_iNES_H_
|
16
|
+
#define _Z_formats_storage_medium_image_NES_Game_Pak_iNES_H_
|
17
|
+
|
18
|
+
#include <Z/types/base.h>
|
19
|
+
|
20
|
+
Z_DEFINE_STRICT_STRUCTURE (
|
21
|
+
zuint8 nes[4]; /* 4E 45 53 1A ('NES' + MS-DOS EOF) */
|
22
|
+
zuint8 prg_rom_page_count;
|
23
|
+
zuint8 chr_rom_page_count;
|
24
|
+
zuint8 rom_control_0;
|
25
|
+
zuint8 rom_control_1;
|
26
|
+
zuint8 nes_rom;
|
27
|
+
zuint8 vs_unisystem_rom;
|
28
|
+
zuint8 playchoice_rom;
|
29
|
+
zuint8 zero_0;
|
30
|
+
zuint8 zero_1;
|
31
|
+
zuint8 full_ntsc_compatible;
|
32
|
+
zuint8 not_necessarily_pal_compatible;
|
33
|
+
zuint8 extra_ram_at_6000h_7fffh;
|
34
|
+
zuint8 dont_have_bus_conflicts;
|
35
|
+
zuint8 zero_2[6];
|
36
|
+
) ZiNESHeader;
|
37
|
+
|
38
|
+
/*#define Z_INES_MAPPER_NONE 00
|
39
|
+
#define Z_INES_MAPPER_NINTENDO_MMC1_CHIPSET 01
|
40
|
+
#define Z_INES_MAPPER_PRG_ROM_SWITCH 02
|
41
|
+
#define Z_INES_MAPPER_CHR_VROM_SWITCH 03
|
42
|
+
#define Z_INES_MAPPER_NINTENDO_MMC3_CHIPSET 04
|
43
|
+
#define Z_INES_MAPPER_NINTENDO_MMC5_CHIPSET 05
|
44
|
+
#define Z_INES_MAPPER_FFE_F4XXX_GAMES 06
|
45
|
+
#define Z_INES_MAPPER_32K_PRG_ROM_SWITCH 07
|
46
|
+
#define Z_INES_MAPPER_FFE_F3XXX_GAMES 08
|
47
|
+
#define Z_INES_MAPPER_NINTENDO_MMC2_CHIPSET 09
|
48
|
+
#define Z_INES_MAPPER_NINTENDO_MMC4_CHIPSET 10
|
49
|
+
#define Z_INES_MAPPER_COLOR_DREAMS_CHIPSET 11
|
50
|
+
#define Z_INES_MAPPER_FFE_F6XXX_GAMES 12
|
51
|
+
#define Z_INES_MAPPER_100_IN_1_CART_SWITCH 15
|
52
|
+
#define Z_INES_MAPPER_BAN_DAI_CHIPSET 16
|
53
|
+
#define Z_INES_MAPPER_FFE_F8XXX_GAMES 17
|
54
|
+
#define Z_INES_MAPPER_JALECO_SS8806_CHIPSET 18
|
55
|
+
#define Z_INES_MAPPER_NAMCOT_106_CHIPSET 19
|
56
|
+
#define Z_INES_MAPPER_FAMICOM_DISK_SYSTEM 20
|
57
|
+
#define Z_INES_MAPPER_KONAMI_VRC4_2A_CHIPSET 21
|
58
|
+
#define Z_INES_MAPPER_KONAMI_VRC4_1B_CHIPSET 22
|
59
|
+
#define Z_INES_MAPPER_KONAMI_VRC4_1A_CHIPSET 23
|
60
|
+
#define Z_INES_MAPPER_KONAMI_VRC6_CHIPSET 24
|
61
|
+
#define Z_INES_MAPPER_KONAMI_VRC4_CHIPSET 25
|
62
|
+
#define Z_INES_MAPPER_IREM_G_101_CHIPSET 32
|
63
|
+
#define Z_INES_MAPPER_TAITO_TC0190_TC0350 33
|
64
|
+
#define Z_INES_MAPPER_32K_PRG_ROM_SWITCH 34
|
65
|
+
#define Z_INES_MAPPER_IREM_H3001_CHIPSET 65
|
66
|
+
#define Z_INES_MAPPER_74161_32_CHIPSET 66
|
67
|
+
#define Z_INES_MAPPER_SUNSOFT_MAPPER_3 67
|
68
|
+
#define Z_INES_MAPPER_SUNSOFT_MAPPER_4 69
|
69
|
+
#define Z_INES_MAPPER_74161_32_CHIPSET 70
|
70
|
+
#define Z_INES_MAPPER_X_005_CHIPSET 80
|
71
|
+
#define Z_INES_MAPPER_C075_CHIPSET 81
|
72
|
+
#define Z_INES_MAPPER_X1_17_CHIPSET 82
|
73
|
+
#define Z_INES_MAPPER_CONY_MAPPER 83
|
74
|
+
#define Z_INES_MAPPER_PASOFAMI_MAPPER 84*/
|
75
|
+
|
76
|
+
#endif /* _Z_formats_storage_medium_image_NES_Game_Pak_iNES_H_ */
|