Compare commits
270 Commits
before_mer
...
work
Author | SHA1 | Date |
---|---|---|
Tamas Rudnai | 3a353185b8 | |
Tamas Rudnai | 68ef567994 | |
Tamas Rudnai | 41cfb1efde | |
Tamas Rudnai | 67cc9d2359 | |
Tamas Rudnai | 8cafeff4d9 | |
Tamas Rudnai | 5e272a9686 | |
Tamas Rudnai | 112f43fafe | |
Tamas Rudnai | 39f6bdc1bd | |
Tamas Rudnai | 711b68608d | |
Tamas Rudnai | 176d0afa2a | |
Tamas Rudnai | 393fefd342 | |
Tamas Rudnai | 1d7c47e630 | |
tudnai | 0beecc2d36 | |
tudnai | 9741a49b80 | |
tudnai | 15a2fd84ac | |
tudnai | 6889eafb0b | |
tudnai | 8e6617bcee | |
Tamas Rudnai | bd764cf909 | |
tudnai | 68bd815419 | |
tudnai | 06a0e1c9b4 | |
Tamas Rudnai | 7ca5b082dc | |
Tamas Rudnai | bbd00aef46 | |
Tamas Rudnai | 420234fe97 | |
Tamas Rudnai | 73a67d45d4 | |
Tamas Rudnai | 0e00827a08 | |
Tamas Rudnai | 7f62887402 | |
Tamas Rudnai | 6d72a3e2f5 | |
Tamas Rudnai | 90f746b5c0 | |
Tamas Rudnai | 7bf5944573 | |
tudnai | b8d1e1cf78 | |
tudnai | bca5d074db | |
tudnai | c948865ece | |
tudnai | 675959e389 | |
tudnai | 5453fdf5fb | |
Tamas Rudnai | c08cecbbf9 | |
Tamas Rudnai | 9353ad517a | |
Tamas Rudnai | 2b8bbfb606 | |
Tamas Rudnai | 200bb8c125 | |
Tamas Rudnai | 1c7c0d3648 | |
tudnai | f39b3cdad5 | |
tudnai | 2e1f0cf2d0 | |
Tamas Rudnai | 58f9f11bd1 | |
tudnai | 61a81ccaf8 | |
tudnai | 7498489282 | |
tudnai | 7fa1f3c13f | |
Tamas Rudnai | 7b5721e7fd | |
Tamas Rudnai | 943c7f4480 | |
Tamas Rudnai | 47c718f5bc | |
Tamas Rudnai | 9631e62c9a | |
Tamas Rudnai | cd09a0bd04 | |
Tamas Rudnai | b389ab63f3 | |
Tamas Rudnai | de57ef906d | |
Tamas Rudnai | 55a0ccf472 | |
Tamas Rudnai | 794afd46f7 | |
Tamas Rudnai | 5c1d9a096d | |
Tamas Rudnai | 0e9cd203f2 | |
Tamas Rudnai | 7a5dfcd84e | |
Tamas Rudnai | 5ef282d943 | |
Tamas Rudnai | c1e1c940eb | |
Tamas Rudnai | c1953a1711 | |
Tamas Rudnai | b16fa135b6 | |
Tamas Rudnai | 0e853dba55 | |
Tamas Rudnai | b73368b111 | |
tudnai | 244af5ca55 | |
tudnai | 6b43345ca2 | |
tudnai | 7cad219957 | |
tudnai | defb426aa2 | |
tudnai | a4260e6417 | |
Tamas Rudnai | 0199e6397b | |
Tamas Rudnai | 73df543d44 | |
Tamas Rudnai | cfdcdb2f31 | |
Tamas Rudnai | 46a793ba46 | |
Tamas Rudnai | 3d3c3803f3 | |
Tamas Rudnai | 8102a9e662 | |
tudnai | afdf82d620 | |
tudnai | 2265ad7376 | |
Tamas Rudnai | 62c80ed9fb | |
tudnai | 0b2fded774 | |
tudnai | 108da5db09 | |
tudnai | 1355ab215d | |
tudnai | f09585176c | |
tudnai | c7e76ff9e8 | |
tudnai | 6e69b2bf5d | |
tudnai | 99656013ee | |
tudnai | d8d406a044 | |
tudnai | 84e10b33d4 | |
tudnai | 5e7116aba0 | |
tudnai | ce6435cf05 | |
tudnai | e875521dc9 | |
tudnai | e6de74d5a1 | |
tudnai | eb3ac8ff94 | |
tudnai | 6ebe88794c | |
tudnai | ebdc0b045d | |
tudnai | b31c138604 | |
tudnai | 8318b362fb | |
tudnai | ea089cd7c5 | |
tudnai | ad19b6504b | |
tudnai | cb498c415c | |
tudnai | 4751c59fad | |
tudnai | 8a94024636 | |
tudnai | 73078e1a9e | |
tudnai | 5374c8f035 | |
tudnai | 34bd53d9be | |
tudnai | b67c69a660 | |
tudnai | fb85a5f122 | |
tudnai | 72930227f4 | |
tudnai | ec2617c7ae | |
tudnai | 15b4b3252e | |
tudnai | ac36139d0d | |
tudnai | c467b8223c | |
tudnai | 7f6ade463b | |
tudnai | 0ebc75c931 | |
tudnai | e6e43df201 | |
tudnai | e414e13ad4 | |
tudnai | eea48cb7a0 | |
tudnai | c88a7a33a8 | |
tudnai | 3f38d61bf6 | |
tudnai | b5b555a04b | |
tudnai | 2df593f105 | |
tudnai | 6f78b92344 | |
tudnai | 3ef337771b | |
tudnai | ccf53fa6a6 | |
tudnai | 96ae85ec71 | |
tudnai | 2dc3040dc5 | |
tudnai | f09a78c0c8 | |
tudnai | 9e6aebeaa8 | |
tudnai | 00d8b14770 | |
tudnai | 3d8f8f3faf | |
tudnai | 25d4ca31fd | |
tudnai | fad4956135 | |
tudnai | 4106a7ec36 | |
tudnai | bc2ab8512d | |
tudnai | 8dca81904a | |
tudnai | d1d984e33f | |
tudnai | 7940373a0d | |
tudnai | 93fce5e51c | |
tudnai | 55bb6b5fd5 | |
tudnai | 94aeaaefaa | |
tudnai | 145ee55a4d | |
tudnai | a73fb79792 | |
tudnai | f2f725b8c5 | |
tudnai | 19ebe351b5 | |
tudnai | 23bc243a1b | |
tudnai | bfc010901c | |
tudnai | 68a57a4e67 | |
tudnai | 81a929a889 | |
tudnai | 16aa7a8d69 | |
tudnai | 71348d606d | |
tudnai | b6873a3136 | |
tudnai | b91fab6066 | |
tudnai | 469da345f4 | |
tudnai | 4e8cebab37 | |
tudnai | 0aa6098846 | |
tudnai | b6f67f981c | |
tudnai | 697fc3171d | |
tudnai | 2d58c13376 | |
tudnai | b9efc3e009 | |
tudnai | f79be51bb1 | |
tudnai | 04d9ca20eb | |
tudnai | bb42837894 | |
tudnai | cc99e2eba3 | |
tudnai | add26cffc0 | |
tudnai | 17927f4ab0 | |
tudnai | d008094078 | |
tudnai | e18173605b | |
tudnai | 0e1fc3e44b | |
tudnai | cc6b3e27d4 | |
tudnai | 5a0a23f048 | |
tudnai | 3042a98d64 | |
tudnai | c5f16cd15a | |
tudnai | ef4e124043 | |
tudnai | 7758fe3c33 | |
tudnai | ab120dc459 | |
tudnai | 0aea0b9c84 | |
tudnai | 4773c534f1 | |
tudnai | 26341faff2 | |
tudnai | 1b4985d3c8 | |
tudnai | 0fef4708f8 | |
tudnai | 9c4abe97c5 | |
tudnai | 9871cb3886 | |
tudnai | bde4c4d941 | |
tudnai | ae5d8211fb | |
tudnai | c8f09f878d | |
tudnai | 846df28a07 | |
tudnai | cf23cc7983 | |
tudnai | aaf7c0ca83 | |
tudnai | 82e07b5652 | |
tudnai | ca2f023c8c | |
tudnai | b746b1ee5c | |
tudnai | cf2325e6fa | |
tudnai | e96f7bafc9 | |
tudnai | 7b51c83da2 | |
tudnai | 293ba80f41 | |
tudnai | 889b31803a | |
tudnai | 6abcba032d | |
tudnai | bfb226d415 | |
tudnai | c6a7f211dc | |
tudnai | c996f0ce14 | |
tudnai | afc8c6d8d1 | |
tudnai | 572977f5f8 | |
tudnai | 5051c0f8c7 | |
tudnai | 49a9dff6da | |
tudnai | 386d3ea979 | |
tudnai | 4a5b482efa | |
tudnai | 4017d12dc8 | |
tudnai | 303de91fc6 | |
tudnai | 961708373c | |
tudnai | fd63ce5bca | |
tudnai | 5afcb161b6 | |
tudnai | b993009859 | |
tudnai | 303c0f7f95 | |
tudnai | 393b28ab3d | |
tudnai | 368dd13309 | |
tudnai | e18bc9653e | |
tudnai | e871c32202 | |
tudnai | 1cbc67c0eb | |
tudnai | 040ee3af43 | |
tudnai | 54a02f3ea1 | |
tudnai | 424a65e074 | |
tudnai | 75e0f5d528 | |
tudnai | 77bcdc3e73 | |
tudnai | e7dcfd1184 | |
tudnai | 5ee910b681 | |
tudnai | d2f455575d | |
tudnai | 1b2cf4d74e | |
tudnai | 7e6ea1dc32 | |
tudnai | db8c657d0e | |
tudnai | ef6ae3ccc5 | |
tudnai | 315e1aec12 | |
tudnai | 8f80ff59f0 | |
tudnai | fc32252815 | |
tudnai | e3d97a05ae | |
tudnai | 1b95e22568 | |
tudnai | 016a132ba7 | |
tudnai | 5443d91fc7 | |
tudnai | a70937b321 | |
tudnai | 53f81555ea | |
tudnai | f56a2cb8c6 | |
tudnai | deb6373f18 | |
tudnai | 9e32839a4d | |
tudnai | d1f0c8e1db | |
tudnai | d786f4a594 | |
tudnai | 72dc8dfa99 | |
tudnai | 8e61a3403b | |
tudnai | 4ecbc13628 | |
tudnai | 91fd9ac8f9 | |
tudnai | 15911de276 | |
tudnai | da27a21a88 | |
tudnai | 06df29930f | |
tudnai | f12368037e | |
tudnai | 11cd400afb | |
tudnai | 126f76c9a4 | |
Tamas Rudnai | 3a01ee2934 | |
Tamas Rudnai | 06b911be9c | |
Tamas Rudnai | 44681298c1 | |
Tamas Rudnai | 4f5e7aef1c | |
Tamas Rudnai | 206b5a1163 | |
Tamas Rudnai | 44debeb2d1 | |
Tamas Rudnai | cf5f390ed2 | |
Tamas Rudnai | a1038b80dc | |
Tamas Rudnai | 44968a5db3 | |
Tamas Rudnai | 16cc896c0c | |
Tamas Rudnai | 76ad2cfc59 | |
Tamas Rudnai | 9b3b79cca0 | |
Tamas Rudnai | 0c72992e8a | |
Tamas Rudnai | 7e2d93f043 | |
Tamas Rudnai | e33c1dc34b | |
Tamas Rudnai | cea4eed922 | |
Tamas Rudnai | ace3a8f68e | |
Tamas Rudnai | fddb1d9642 |
|
@ -0,0 +1,34 @@
|
|||
# gitignore for A2MAC project
|
||||
@ (c) by Tamas Rudnai
|
||||
|
||||
# logfiles
|
||||
*.log
|
||||
**/*.log
|
||||
|
||||
# XCode debugger settings
|
||||
A2Mac.xcodeproj/xcuserdata/trudnai.xcuserdatad/xcdebugger/
|
||||
|
||||
convert_spkr_buf_to_wav.wav
|
||||
steve2_audio_debug_ema.wav
|
||||
steve2_audio_debug_raw.wav
|
||||
steve2_audio_debug.wav
|
||||
XPS_Aux_Mem_test.txt
|
||||
XPS_Aux_Mem_test.txt.dis
|
||||
Resources/rom/Downloads/Apple II ROMs.zip
|
||||
Resources/rom/Downloads/Apple II ROMs.zip
|
||||
Resources/rom/Downloads/apple_2e_unenhanced_rom.zip
|
||||
Resources/rom/Downloads/APPLE_IIe_ROM_KRK.zip
|
||||
Resources/rom/Downloads/APPLE_IIe_ROM_KRK1.zip
|
||||
Resources/rom/Downloads/APPLE_IIe_ROM_KRK2.zip
|
||||
Resources/rom/Downloads/apple_iie_rom.zip
|
||||
Resources/rom/Downloads/077-0026-0027 for IIe.zip
|
||||
|
||||
**/Contents/**
|
||||
.DS_Store
|
||||
Brewfile
|
||||
1
|
||||
ssasa
|
||||
*.au
|
||||
*.aup
|
||||
*.csv
|
||||
*.swp
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<array/>
|
||||
</plist>
|
BIN
A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/UserInterfaceState.xcuserstate
generated
Normal file
|
@ -0,0 +1,113 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1100"
|
||||
version = "2.0">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB5622EACC630003B53F"
|
||||
BuildableName = "Steve ][.app"
|
||||
BlueprintName = "Steve ]["
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB5622EACC630003B53F"
|
||||
BuildableName = "Steve ][.app"
|
||||
BlueprintName = "Steve ]["
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB6822EACC660003B53F"
|
||||
BuildableName = "A2MacTests.xctest"
|
||||
BlueprintName = "A2MacTests"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB7322EACC660003B53F"
|
||||
BuildableName = "A2MacUITests.xctest"
|
||||
BlueprintName = "A2MacUITests"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
disableMainThreadChecker = "YES"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "NO"
|
||||
debugXPCServices = "NO"
|
||||
debugServiceExtension = "internal"
|
||||
enableGPUValidationMode = "1"
|
||||
allowLocationSimulation = "NO"
|
||||
viewDebuggingEnabled = "No"
|
||||
queueDebuggingEnabled = "No"
|
||||
GPUProfilerEnabled = "No">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB5622EACC630003B53F"
|
||||
BuildableName = "Steve ][.app"
|
||||
BlueprintName = "Steve ]["
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB5622EACC630003B53F"
|
||||
BuildableName = "Steve ][.app"
|
||||
BlueprintName = "Steve ]["
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,98 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1130"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "325EB63F23FBBACF00C6B4A4"
|
||||
BuildableName = "Steve ][ iOS.app"
|
||||
BlueprintName = "Steve ][ iOS"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "325EB65423FBBAD100C6B4A4"
|
||||
BuildableName = "A2iOSTests.xctest"
|
||||
BlueprintName = "A2iOSTests"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "325EB65F23FBBAD100C6B4A4"
|
||||
BuildableName = "A2iOSUITests.xctest"
|
||||
BlueprintName = "A2iOSUITests"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "325EB63F23FBBACF00C6B4A4"
|
||||
BuildableName = "Steve ][ iOS.app"
|
||||
BlueprintName = "Steve ][ iOS"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "325EB63F23FBBACF00C6B4A4"
|
||||
BuildableName = "Steve ][ iOS.app"
|
||||
BlueprintName = "Steve ][ iOS"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,118 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1100"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB5622EACC630003B53F"
|
||||
BuildableName = "Steve ][.app"
|
||||
BlueprintName = "Steve ]["
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB5622EACC630003B53F"
|
||||
BuildableName = "Steve ][.app"
|
||||
BlueprintName = "Steve ]["
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB6822EACC660003B53F"
|
||||
BuildableName = "A2MacTests.xctest"
|
||||
BlueprintName = "A2MacTests"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB7322EACC660003B53F"
|
||||
BuildableName = "A2MacUITests.xctest"
|
||||
BlueprintName = "A2MacUITests"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
enableASanStackUseAfterReturn = "YES"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
enableGPUValidationMode = "1"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32799F78264B1A5700255669"
|
||||
BuildableName = "Steve ][ Debug.app"
|
||||
BlueprintName = "Steve ][ Debug"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB5622EACC630003B53F"
|
||||
BuildableName = "Steve ][.app"
|
||||
BlueprintName = "Steve ]["
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Debug"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB5622EACC630003B53F"
|
||||
BuildableName = "Steve ][.app"
|
||||
BlueprintName = "Steve ]["
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,107 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1100"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB5622EACC630003B53F"
|
||||
BuildableName = "Steve ][.app"
|
||||
BlueprintName = "Steve ]["
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32C4531B2331FED90000EBA1"
|
||||
BuildableName = "Functiontest.app"
|
||||
BlueprintName = "Functiontest"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB6822EACC660003B53F"
|
||||
BuildableName = "A2MacTests.xctest"
|
||||
BlueprintName = "A2MacTests"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB7322EACC660003B53F"
|
||||
BuildableName = "A2MacUITests.xctest"
|
||||
BlueprintName = "A2MacUITests"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32C4531B2331FED90000EBA1"
|
||||
BuildableName = "Functiontest.app"
|
||||
BlueprintName = "Functiontest"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32BFFB5622EACC630003B53F"
|
||||
BuildableName = "Steve ][.app"
|
||||
BlueprintName = "Steve ]["
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,77 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1100"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "NO"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "NO"
|
||||
buildForArchiving = "NO"
|
||||
buildForAnalyzing = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32C453092331F7220000EBA1"
|
||||
BuildableName = "Speedtest.app"
|
||||
BlueprintName = "Speedtest"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32C453092331F7220000EBA1"
|
||||
BuildableName = "Speedtest.app"
|
||||
BlueprintName = "Speedtest"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "32C453092331F7220000EBA1"
|
||||
BuildableName = "Speedtest.app"
|
||||
BlueprintName = "Speedtest"
|
||||
ReferencedContainer = "container:A2Mac.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -9,24 +9,49 @@
|
|||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>Debug.xcscheme</key>
|
||||
<key>A2iOS.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>4</integer>
|
||||
</dict>
|
||||
<key>Debug.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>Function Test.xcscheme</key>
|
||||
<key>Function Test.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<key>Speedtest.xcscheme</key>
|
||||
<key>Speedtest.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>3</integer>
|
||||
</dict>
|
||||
<key>Steve ][ copy.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>5</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>325EB63F23FBBACF00C6B4A4</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>325EB65423FBBAD100C6B4A4</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>325EB65F23FBBAD100C6B4A4</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>32BFFB5622EACC630003B53F</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
|
|
97
A2Mac/6502.h
|
@ -1,97 +0,0 @@
|
|||
//
|
||||
// 6502.h
|
||||
// 6502
|
||||
//
|
||||
// Created by Tamas Rudnai on 7/22/19.
|
||||
// Copyright © 2019 GameAlloy. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef __6502_H__
|
||||
#define __6502_H__
|
||||
|
||||
#import "stdint.h"
|
||||
|
||||
#ifdef DEBUG
|
||||
//#define dbgPrintf(format, ...) printf (format, ## __VA_ARGS__)
|
||||
#define dbgPrintf(format, ...)
|
||||
#define dbgPrintf2(format, ...) printf (format, ## __VA_ARGS__)
|
||||
#else
|
||||
#define dbgPrintf(format, ...)
|
||||
#define dbgPrintf2(format, ...)
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
NO_INT,
|
||||
HLT,
|
||||
NMI,
|
||||
HARDRESET,
|
||||
SOFTRESET,
|
||||
} interrupt_t;
|
||||
|
||||
typedef enum {
|
||||
NO_DEBUG,
|
||||
DISASSEMBLY,
|
||||
DEBUGBRK,
|
||||
STEPBYSTEP,
|
||||
} debugLevel_t;
|
||||
|
||||
typedef struct m6502_s {
|
||||
uint8_t A; // Accumulator
|
||||
uint8_t X; // X index register
|
||||
uint8_t Y; // Y index register
|
||||
// union {
|
||||
// uint8_t instr; // Instruction
|
||||
// struct {
|
||||
// uint8_t cc:2;
|
||||
// uint8_t bbb:3;
|
||||
// uint8_t aaa:3;
|
||||
// };
|
||||
// };
|
||||
union {
|
||||
uint8_t SR; // Status Register
|
||||
struct {
|
||||
uint8_t C:1; // Carry Flag
|
||||
uint8_t Z:1; // Zero Flag
|
||||
uint8_t I:1; // Interrupt Flag
|
||||
uint8_t D:1; // Decimal Flag
|
||||
uint8_t B:1; // B Flag
|
||||
uint8_t res:1; // reserved -- should be always 1
|
||||
uint8_t V:1; // Overflow Flag ???
|
||||
uint8_t N:1; // Negative Flag
|
||||
};
|
||||
};
|
||||
uint16_t PC; // Program Counter
|
||||
uint8_t SP; // Stack Pointer ( stack addr = 0x01 + sp )
|
||||
unsigned clk; // Clock Counter
|
||||
debugLevel_t dbgLevel; // 0: No Debug, 1: Disassembly Only, 2: Run till BRK, 3: StepByStep
|
||||
|
||||
union {
|
||||
unsigned int IF; // interrut flag
|
||||
interrupt_t interrupt;
|
||||
};
|
||||
} m6502_t;
|
||||
|
||||
|
||||
typedef struct disassembly_s {
|
||||
char codeAddr[5]; // 4 digits + \0
|
||||
char hex[4 * 3 + 1]; // max 4 bytes * (2 digits + 1 space) + \0
|
||||
char * pHex;
|
||||
char inst[6 + 1]; // 3 char (unknown instr? -- give it 6 chars) + \0
|
||||
char addr[4 + 2 + 1 + 1 + 1]; // 4 digits + 2 brackets + 1 comma + 1 index + \0
|
||||
char comment[256]; // to be able to add some comments
|
||||
} disassembly_t;
|
||||
|
||||
|
||||
extern m6502_t m6502;
|
||||
extern uint8_t RAM[ 64 * 1024 ];
|
||||
|
||||
extern double mips;
|
||||
extern double mhz;
|
||||
extern const unsigned int fps;
|
||||
|
||||
extern void tst6502();
|
||||
extern void m6502_Reset();
|
||||
extern void m6502_Run();
|
||||
extern void kbdInput ( uint8_t code );
|
||||
|
||||
#endif /* __6502_H__ */
|
|
@ -1,5 +1,44 @@
|
|||
//
|
||||
// A2Mac-Bridging-Header.h
|
||||
// Steve ][
|
||||
//
|
||||
// Created by Tamas Rudnai on 2/17/20.
|
||||
// Copyright © 2019, 2020 Tamas Rudnai. All rights reserved.
|
||||
//
|
||||
// This file is part of Steve ][ -- The Apple ][ Emulator.
|
||||
//
|
||||
// Steve ][ is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Steve ][ is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Steve ][. If not, see <https://www.gnu.org/licenses/>.
|
||||
//
|
||||
//
|
||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||
//
|
||||
|
||||
#ifndef A2Mac_Bridging_Header_h
|
||||
#define A2Mac_Bridging_Header_h
|
||||
|
||||
|
||||
#import "6502.h"
|
||||
#import "6502_bp.h"
|
||||
#import "6502_dbg.h"
|
||||
#import "6502_dis.h"
|
||||
#import "6502_dis_utils.h"
|
||||
#import "speaker.h" // So we can access to speaker stuff from Swift
|
||||
#import "disk.h"
|
||||
#import "dsk2woz.h"
|
||||
#import "mmio.h"
|
||||
#import "hires.h"
|
||||
#import "woz.h"
|
||||
|
||||
|
||||
#endif /* A2Mac_Bridging_Header_h */
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<true/>
|
||||
<key>com.apple.security.files.user-selected.read-only</key>
|
||||
<true/>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<false/>
|
||||
<key>com.apple.security.files.user-selected.read-write</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -1,25 +1,169 @@
|
|||
//
|
||||
// AppDelegate.swift
|
||||
// A2Mac
|
||||
// Steve ][
|
||||
//
|
||||
// Created by Tamas Rudnai on 7/25/19.
|
||||
// Copyright © 2019 GameAlloy. All rights reserved.
|
||||
// Copyright © 2019, 2020 Tamas Rudnai. All rights reserved.
|
||||
//
|
||||
// This file is part of Steve ][ -- The Apple ][ Emulator.
|
||||
//
|
||||
// Steve ][ is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Steve ][ is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Steve ][. If not, see <https://www.gnu.org/licenses/>.
|
||||
//
|
||||
|
||||
import Cocoa
|
||||
import Foundation
|
||||
|
||||
@NSApplicationMain
|
||||
class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
|
||||
static var current : AppDelegate?
|
||||
var preferencesController : PreferencesWindowController?
|
||||
|
||||
|
||||
func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
||||
return true
|
||||
}
|
||||
|
||||
@IBAction func ROM_Selected(_ sender: NSMenuItem) {
|
||||
if let menuIdentifier = sender.identifier {
|
||||
// rom_loadFile( Bundle.main.resourcePath, menuIdentifier.rawValue + ".rom" )
|
||||
ViewController.romFileName = menuIdentifier.rawValue + ".rom"
|
||||
// print("Resource Path: " + Bundle.main.resourcePath!)
|
||||
m6502_ColdReset( Bundle.main.resourcePath! + "/rom/", ViewController.romFileName )
|
||||
}
|
||||
}
|
||||
|
||||
@IBAction func Disk1_Selected(_ sender: NSMenuItem) {
|
||||
if let menuIdentifier = sender.identifier {
|
||||
let woz_err = woz_loadFile( Bundle.main.resourcePath! + "/dsk/" + menuIdentifier.rawValue + ".woz" )
|
||||
ViewController.shared?.chk_woz_load(err: woz_err)
|
||||
woz_flags.image_file_readonly = 1
|
||||
}
|
||||
}
|
||||
|
||||
func applicationDidFinishLaunching(_ aNotification: Notification) {
|
||||
// Insert code here to initialize your application
|
||||
AppDelegate.current = self
|
||||
}
|
||||
|
||||
func applicationWillTerminate(_ aNotification: Notification) {
|
||||
// Insert code here to tear down your application
|
||||
}
|
||||
|
||||
@IBAction func selectAnImageFromFile(sender: AnyObject) {
|
||||
ViewController.shared?.openDiskImageDialog()
|
||||
}
|
||||
|
||||
|
||||
func application(_ sender: NSApplication, openFile filename: String) -> Bool {
|
||||
ViewController.shared?.openDiskImage(url: URL(fileURLWithPath: filename))
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@IBAction func openFile(_ sender: NSMenuItem) {
|
||||
ViewController.shared?.openDiskImageDialog()
|
||||
}
|
||||
|
||||
@IBAction func saveFile(_ sender: NSMenuItem) {
|
||||
ViewController.shared?.saveFile()
|
||||
}
|
||||
|
||||
@IBAction func saveFileAs(_ sender: NSMenuItem) {
|
||||
ViewController.shared?.saveFileAs()
|
||||
}
|
||||
|
||||
@IBAction func Cheat_Wavy_Navy_Vitroy(_ sender: Any) {
|
||||
ViewController.shared?.Cheat_Wavy_Navy_Victory()
|
||||
}
|
||||
|
||||
@IBAction func Cheat_Wavy_Navy_Add_3_Ships(_ sender: Any) {
|
||||
ViewController.shared?.Cheat_Wavy_Navy_Add_3_Ships()
|
||||
}
|
||||
|
||||
@IBAction func Cheat_Wavy_Navy_Never_Lose(_ menuItem: NSMenuItem) {
|
||||
menuItem.state = (ViewController.shared?.Cheat_Wavy_Navy_Never_Lose())!
|
||||
}
|
||||
|
||||
@IBAction func Cheat_Wavy_Navy_Lose_To_Win(_ menuItem: NSMenuItem) {
|
||||
menuItem.state = (ViewController.shared?.Cheat_Wavy_Navy_Lose_To_Win())!
|
||||
}
|
||||
|
||||
@IBOutlet weak var MenuItem_Cheat: NSMenuItem!
|
||||
@IBOutlet weak var MenuItem_Hard_Hat_Mack: NSMenuItem!
|
||||
@IBOutlet weak var MenuItem_Hard_Hat_Mack_Add_3_Macks: NSMenuItem!
|
||||
|
||||
func Cheat_Menu() {
|
||||
// print("Cheat_Menu Menu")
|
||||
let ships = ViewController.shared?.Get_Hard_Hat_Mack()
|
||||
MenuItem_Hard_Hat_Mack_Add_3_Macks.title = String(format: "Add 3 Macks (%d)", ships!)
|
||||
}
|
||||
|
||||
@IBAction func Cheat_Hard_Hat_Mack(_ menuItem: NSMenuItem) {
|
||||
print("Cheat_Hard_Hat_Mack SubMenu")
|
||||
let ships = ViewController.shared?.Get_Hard_Hat_Mack()
|
||||
MenuItem_Hard_Hat_Mack_Add_3_Macks.title = String(format: "Add 3 Macks (%d)", ships!)
|
||||
}
|
||||
@IBAction func Cheat_Hard_Hat_Mack_Add_3_Macks(_ menuItem: NSMenuItem) {
|
||||
let _ = ViewController.shared?.Cheat_Hard_Hat_Mack(add: 3)
|
||||
}
|
||||
|
||||
@IBAction func Cheat_Hard_Hat_Mack_Never_Lose(_ menuItem: NSMenuItem) {
|
||||
menuItem.state = (ViewController.shared?.Cheat_Hard_Hat_Mack_Never_Lose())!
|
||||
}
|
||||
|
||||
@IBAction func showPreferences(_ sender: NSMenuItem) {
|
||||
if ( preferencesController == nil ) {
|
||||
let storyboard = NSStoryboard(name: NSStoryboard.Name("Preferences"), bundle: nil)
|
||||
preferencesController = storyboard.instantiateInitialController() as? PreferencesWindowController
|
||||
}
|
||||
}
|
||||
|
||||
@IBAction func PowerOn(_ sender: Any) {
|
||||
ViewController.shared?.PowerOn(sender)
|
||||
}
|
||||
|
||||
@IBAction func Pause(_ sender: Any) {
|
||||
ViewController.shared?.Pause(sender)
|
||||
}
|
||||
|
||||
@IBAction func PowerOff(_ sender: Any) {
|
||||
ViewController.shared?.PowerOff(sender)
|
||||
}
|
||||
|
||||
@IBAction func ColdReset(_ sender: Any) {
|
||||
ViewController.shared?.Reset(sender)
|
||||
}
|
||||
|
||||
@IBAction func WarmReset(_ sender: Any) {
|
||||
ViewController.shared?.Reset(sender)
|
||||
}
|
||||
|
||||
@IBAction func DebugContinue(_ sender: Any) {
|
||||
DebuggerWindowController.shared?.ContinuePauseButton(sender)
|
||||
}
|
||||
|
||||
@IBAction func DebugStepOver(_ sender: Any) {
|
||||
DebuggerWindowController.shared?.Step_Over(sender)
|
||||
}
|
||||
|
||||
@IBAction func DebugStepIn(_ sender: Any) {
|
||||
DebuggerWindowController.shared?.Step_In(sender)
|
||||
}
|
||||
|
||||
@IBAction func DebugStepOut(_ sender: Any) {
|
||||
DebuggerWindowController.shared?.Step_Out(sender)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,409 +0,0 @@
|
|||
//
|
||||
// main.c
|
||||
// 6502
|
||||
//
|
||||
// Created by Tamas Rudnai on 7/14/19.
|
||||
// Copyright © 2019 GameAlloy. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef __APPLE2_MMIO_H__
|
||||
#define __APPLE2_MMIO_H__
|
||||
|
||||
#include "common.h"
|
||||
#include "6502.h"
|
||||
|
||||
|
||||
enum mmio {
|
||||
io_KBD = 0xC000,
|
||||
io_KBDSTRB = 0xC010,
|
||||
};
|
||||
|
||||
|
||||
uint8_t RAM[ 64 * KB ] = {0};
|
||||
|
||||
#define PAGESIZE 256
|
||||
#define PAGES 16
|
||||
|
||||
//uint8_t ram_0[PAGESIZE];
|
||||
//uint8_t ram_1[PAGESIZE];
|
||||
//uint8_t ram_2[PAGESIZE];
|
||||
//uint8_t ram_3[PAGESIZE];
|
||||
//uint8_t ram_4[PAGESIZE];
|
||||
//uint8_t ram_5[PAGESIZE];
|
||||
//uint8_t ram_6[PAGESIZE];
|
||||
//uint8_t ram_7[PAGESIZE];
|
||||
//uint8_t ram_8[PAGESIZE];
|
||||
//uint8_t ram_9[PAGESIZE];
|
||||
//uint8_t ram_A[PAGESIZE];
|
||||
//uint8_t ram_B[PAGESIZE];
|
||||
//uint8_t aui_C[PAGESIZE];
|
||||
//uint8_t rom_D[PAGESIZE];
|
||||
//uint8_t rom_E[PAGESIZE];
|
||||
//uint8_t rom_F[PAGESIZE];
|
||||
//
|
||||
//uint8_t * ram[PAGES] = {
|
||||
// ram_0,
|
||||
// ram_1,
|
||||
// ram_2,
|
||||
// ram_3,
|
||||
// ram_4,
|
||||
// ram_5,
|
||||
// ram_6,
|
||||
// ram_7,
|
||||
// ram_8,
|
||||
// ram_9,
|
||||
// ram_A,
|
||||
// ram_B,
|
||||
// aui_C,
|
||||
// rom_D,
|
||||
// rom_E,
|
||||
// rom_F,
|
||||
//};
|
||||
|
||||
//uint8_t ( * mmio_read [ 64 * KB ] )( uint16_t addr );
|
||||
|
||||
typedef union address16_u {
|
||||
uint16_t addr;
|
||||
struct {
|
||||
uint8_t offs;
|
||||
uint8_t page;
|
||||
};
|
||||
} address16_t;
|
||||
|
||||
|
||||
INLINE uint8_t ioRead( uint16_t addr ) {
|
||||
// printf("mmio read:%04X\n", addr);
|
||||
switch (addr) {
|
||||
case io_KBD:
|
||||
// if ( RAM[io_KBD] > 0x7F ) printf("io_KBD:%04X\n", addr);
|
||||
return RAM[io_KBD];
|
||||
|
||||
case io_KBDSTRB:
|
||||
// TODO: This is very slow!
|
||||
// printf("io_KBDSTRB\n");
|
||||
return RAM[io_KBD] &= 0x7F;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void kbdInput ( uint8_t code ) {
|
||||
// printf("kbdInput: %02X ('%c')\n", code, isprint(code) ? code : ' ');
|
||||
switch ( code ) {
|
||||
// case '\n':
|
||||
// code = 0x0D;
|
||||
// break;
|
||||
//
|
||||
case 0x7F: // BackSlash
|
||||
code = 0x08;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
code |= 0x80;
|
||||
|
||||
while ( RAM[io_KBD] > 0x7F ) {
|
||||
usleep(10);
|
||||
}
|
||||
|
||||
RAM[io_KBD] = code;
|
||||
}
|
||||
|
||||
|
||||
INLINE void ioWrite( uint16_t addr, uint8_t val ) {
|
||||
// printf("mmio:%04X\n", addr);
|
||||
switch (addr) {
|
||||
case io_KBD:
|
||||
return;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
Naive implementation of RAM read from address
|
||||
**/
|
||||
|
||||
INLINE uint8_t memread_zp( uint8_t addr ) {
|
||||
return RAM[ addr ];
|
||||
}
|
||||
|
||||
INLINE uint8_t memread( uint16_t addr ) {
|
||||
// switch ( ((address16_t)addr).page ) {
|
||||
// case 0xC0:
|
||||
// case 0xC1:
|
||||
// case 0xC2:
|
||||
// case 0xC3:
|
||||
// case 0xC4:
|
||||
// case 0xC5:
|
||||
// case 0xC6:
|
||||
// case 0xC7:
|
||||
// case 0xC8:
|
||||
// case 0xC9:
|
||||
// case 0xCA:
|
||||
// case 0xCB:
|
||||
// case 0xCC:
|
||||
// case 0xCD:
|
||||
// case 0xCE:
|
||||
// case 0xCF:
|
||||
// return ioRead(addr);
|
||||
//
|
||||
// defaut:
|
||||
// break;
|
||||
// }
|
||||
|
||||
if ( (addr >= 0xC000) && (addr < 0xD000) ) {
|
||||
return ioRead(addr);
|
||||
}
|
||||
|
||||
return RAM[ addr ];
|
||||
}
|
||||
|
||||
/**
|
||||
Naive implementation of RAM read from address
|
||||
**/
|
||||
INLINE uint8_t memread8( uint16_t addr ) {
|
||||
// if ( addr == 0xD2AD ) {
|
||||
// dbgPrintf("OUT OF MEMORY!\n");
|
||||
// }
|
||||
|
||||
|
||||
return RAM[ addr ];
|
||||
}
|
||||
/**
|
||||
Naive implementation of RAM read from address
|
||||
**/
|
||||
INLINE uint16_t memread16( uint16_t addr ) {
|
||||
return * (uint16_t*) (& RAM[ addr ]);
|
||||
}
|
||||
|
||||
/**
|
||||
Naive implementation of RAM read from address
|
||||
**/
|
||||
//INLINE uint16_t memioread16( uint16_t addr ) {
|
||||
// return (uint16_t)mmio_read[ addr ](addr);
|
||||
//}
|
||||
|
||||
|
||||
/**
|
||||
Naive implementation of RAM write to address
|
||||
**/
|
||||
static void memwrite_zp( uint8_t addr, uint8_t byte ) {
|
||||
RAM[ addr ] = byte;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Naive implementation of RAM write to address
|
||||
**/
|
||||
static void memwrite( uint16_t addr, uint8_t byte ) {
|
||||
// if ( addr >= 0xD000 ) {
|
||||
// // ROM
|
||||
// return;
|
||||
// }
|
||||
// if ( addr >= 0xC000 ) {
|
||||
// return mmioWrite(addr);
|
||||
// }
|
||||
//
|
||||
|
||||
RAM[ addr ] = byte;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Fetching 1 byte from memory address pc (program counter)
|
||||
increase pc by one
|
||||
**/
|
||||
INLINE uint8_t fetch() {
|
||||
disHexB( disassembly.pHex, RAM[m6502.PC] );
|
||||
return memread( m6502.PC++ );
|
||||
}
|
||||
|
||||
/**
|
||||
Fetching 2 bytes as a 16 bit number from memory address pc (program counter)
|
||||
increase pc by one
|
||||
**/
|
||||
INLINE uint16_t fetch16() {
|
||||
uint16_t word = memread16( m6502.PC );
|
||||
m6502.PC += 2;
|
||||
disHexW( disassembly.pHex, word );
|
||||
return word;
|
||||
}
|
||||
|
||||
/**
|
||||
abs .... absolute OPC $LLHH,X
|
||||
operand is address; effective address is address incremented by X with carry **
|
||||
**/
|
||||
INLINE uint16_t addr_abs() {
|
||||
dbgPrintf("abs:%04X(%02X) ", *((uint16_t*)&RAM[m6502.PC]), RAM[*((uint16_t*)&RAM[m6502.PC])]);
|
||||
disPrintf(disassembly.addr, "$%04X", memread16(m6502.PC))
|
||||
return fetch16();
|
||||
}
|
||||
INLINE uint8_t src_abs() {
|
||||
return memread( addr_abs() );
|
||||
}
|
||||
INLINE uint8_t * dest_abs() {
|
||||
return & RAM[ addr_abs() ];
|
||||
}
|
||||
|
||||
|
||||
INLINE int8_t rel_addr() {
|
||||
disPrintf(disassembly.addr, "$%04X", m6502.PC + 1 + (int)memread8(m6502.PC))
|
||||
return fetch();
|
||||
}
|
||||
INLINE uint16_t abs_addr() {
|
||||
disPrintf(disassembly.addr, "$%04X", memread16(m6502.PC))
|
||||
return fetch16();
|
||||
}
|
||||
INLINE uint16_t ind_addr() {
|
||||
disPrintf(disassembly.addr, "($%04X)", memread16(m6502.PC))
|
||||
return memread16( fetch16() );
|
||||
}
|
||||
|
||||
/**
|
||||
abs,X .... absolute, X-indexed OPC $LLHH,X
|
||||
operand is address; effective address is address incremented by X with carry **
|
||||
**/
|
||||
INLINE uint16_t addr_abs_X() {
|
||||
dbgPrintf("abs,X:%04X(%02X) ", *((uint16_t*)&RAM[m6502.PC]) + m6502.X, RAM[*((uint16_t*)&RAM[m6502.PC]) + m6502.X]);
|
||||
disPrintf(disassembly.addr, "$%04X,X", memread16(m6502.PC))
|
||||
return fetch16() + m6502.X;
|
||||
}
|
||||
INLINE uint8_t src_abs_X() {
|
||||
return memread8( addr_abs_X() );
|
||||
}
|
||||
INLINE uint8_t * dest_abs_X() {
|
||||
return & RAM[ addr_abs_X() ];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
abs,Y .... absolute, Y-indexed OPC $LLHH,Y
|
||||
operand is address; effective address is address incremented by Y with carry **
|
||||
**/
|
||||
INLINE uint16_t addr_abs_Y() {
|
||||
dbgPrintf("abs,Y:%04X(%02X) ", *((uint16_t*)&RAM[m6502.PC]) + m6502.Y, RAM[*((uint16_t*)&RAM[m6502.PC]) + m6502.Y]);
|
||||
disPrintf(disassembly.addr, "$%04X,Y", memread16(m6502.PC))
|
||||
return abs_addr() + m6502.Y;
|
||||
}
|
||||
INLINE uint8_t src_abs_Y() {
|
||||
return memread8(addr_abs_Y());
|
||||
}
|
||||
INLINE uint8_t * dest_abs_Y() {
|
||||
return & RAM[ addr_abs_Y() ];
|
||||
}
|
||||
|
||||
INLINE uint16_t imm() {
|
||||
disPrintf(disassembly.addr, "#$%02X", memread8(m6502.PC))
|
||||
return fetch();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
zpg .... zeropage OPC $LL
|
||||
operand is zeropage address (hi-byte is zero, address = $00LL)
|
||||
**/
|
||||
INLINE uint8_t addr_zp() {
|
||||
dbgPrintf("zp:%02X(%02X) ", RAM[m6502.PC], RAM[ RAM[m6502.PC]] );
|
||||
disPrintf(disassembly.addr, "$%02X", memread8(m6502.PC))
|
||||
return fetch();
|
||||
}
|
||||
INLINE uint8_t src_zp() {
|
||||
return memread_zp(addr_zp());
|
||||
}
|
||||
INLINE uint8_t * dest_zp() {
|
||||
return & RAM[ addr_zp() ];
|
||||
}
|
||||
|
||||
/**
|
||||
get a 16 bit address from the zp:zp+1
|
||||
**/
|
||||
INLINE uint16_t addr_zp_ind( uint8_t addr ) {
|
||||
dbgPrintf("zpi:%02X:%04X(%02X) ", RAM[m6502.PC], *((uint16_t*)&RAM[m6502.PC]), RAM[*((uint16_t*)&RAM[m6502.PC])]);
|
||||
disPrintf(disassembly.addr, "($%02X)", memread8(m6502.PC))
|
||||
return memread16(addr);
|
||||
}
|
||||
|
||||
/**
|
||||
X,ind .... X-indexed, indirect OPC ($LL,X)
|
||||
operand is zeropage address;
|
||||
effective address is word in (LL + X, LL + X + 1), inc. without carry: C.w($00LL + X)
|
||||
**/
|
||||
INLINE uint16_t addr_X_ind() {
|
||||
dbgPrintf("zpXi:%02X:%04X(%02X) ", RAM[m6502.PC], *((uint16_t*)&RAM[m6502.PC]) + m6502.X, RAM[*((uint16_t*)&RAM[m6502.PC]) + m6502.X]);
|
||||
disPrintf(disassembly.addr, "($%02X,X)", memread8(m6502.PC))
|
||||
return addr_zp_ind( fetch() + m6502.X );
|
||||
}
|
||||
INLINE uint8_t src_X_ind() {
|
||||
return memread8( addr_X_ind() );
|
||||
}
|
||||
INLINE uint8_t * dest_X_ind() {
|
||||
return & RAM[ addr_X_ind() ];
|
||||
}
|
||||
|
||||
/**
|
||||
ind,Y .... indirect, Y-indexed OPC ($LL),Y
|
||||
operand is zeropage address;
|
||||
effective address is word in (LL, LL + 1) incremented by Y with carry: C.w($00LL) + Y
|
||||
**/
|
||||
INLINE uint16_t addr_ind_Y() {
|
||||
// uint8_t a = fetch();
|
||||
// dbgPrintf("addr_ind_Y: %04X + %02X = %04X ", addr_zpg_ind( a ), m6502.Y, addr_zpg_ind( a ) + m6502.Y);
|
||||
disPrintf(disassembly.addr, "($%02X),Y", memread8(m6502.PC))
|
||||
return addr_zp_ind( fetch() ) + m6502.Y;
|
||||
}
|
||||
INLINE uint8_t src_ind_Y() {
|
||||
return memread8( addr_ind_Y() );
|
||||
}
|
||||
INLINE uint8_t * dest_ind_Y() {
|
||||
uint16_t addr = addr_ind_Y();
|
||||
if ( (addr >= 0xC000) && (addr <= 0xC0FF) ) {
|
||||
addr = 0xC111;
|
||||
}
|
||||
// return & RAM[ addr_abs_Y() ];
|
||||
return & RAM[ addr ];
|
||||
// return & RAM[ addr_ind_Y() ];
|
||||
}
|
||||
|
||||
/**
|
||||
zpg,X .... zeropage, X-indexed OPC $LL,X
|
||||
operand is zeropage address;
|
||||
effective address is address incremented by X without carry **
|
||||
**/
|
||||
INLINE uint8_t addr_zp_X() {
|
||||
disPrintf(disassembly.addr, "$%02X,X", memread8(m6502.PC))
|
||||
return fetch() + m6502.X;
|
||||
}
|
||||
INLINE uint8_t src_zp_X() {
|
||||
return memread_zp(addr_zp_X());
|
||||
}
|
||||
INLINE uint8_t * dest_zp_X() {
|
||||
return & RAM[ addr_zp_X() ];
|
||||
}
|
||||
|
||||
/**
|
||||
zpg,Y .... zeropage, Y-indexed OPC $LL,Y
|
||||
operand is zeropage address;
|
||||
effective address is address incremented by Y without carry **
|
||||
**/
|
||||
INLINE uint8_t addr_zp_Y() {
|
||||
disPrintf(disassembly.addr, "$%02X,Y", memread8(m6502.PC))
|
||||
return fetch() + m6502.Y;
|
||||
}
|
||||
INLINE uint8_t src_zp_Y() {
|
||||
return memread_zp(addr_zp_Y());
|
||||
}
|
||||
INLINE uint8_t * dest_zp_Y() {
|
||||
return & RAM[ addr_zp_Y() ];
|
||||
}
|
||||
|
||||
|
||||
#endif // __APPLE2_MMIO_H__
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "amber.light.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "amber..dark.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "amber.light.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "amber..dark.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 800 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 800 B |
After Width: | Height: | Size: 717 B |
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "chip.light.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "chip.dark.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "chip.light.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "chip.dark.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 7.8 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 715 B |
After Width: | Height: | Size: 8.1 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 922 B |
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "color.light.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "color.dark.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "color.light.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "color.dark.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 859 B |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 859 B |
After Width: | Height: | Size: 838 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 838 B |
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "copy.light.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "copy.dark.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "copy.light.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "copy.dark.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "ant_dark.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ant.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "Apple Disk II D1 Open Light.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "Apple Disk II D1 Open Dark.png",
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 14 KiB |
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "Apple Disk II D2 Open Light.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "Apple Disk II D2 Open Dark.png",
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "green.light.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "green.dark.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "green.light.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "green.dark.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 697 B |
After Width: | Height: | Size: 810 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 697 B |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 810 B |
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "joystick.light.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "joystick.dark.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "joystick.light.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "joystick.dark.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 11 KiB |
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "old.monitor.light.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "old.monitor.dark.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "old.monitor.light.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "old.monitor.dark.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 748 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 748 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.0 KiB |
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "paste.light.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "paste.dark.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "paste.light.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "paste.dark.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 3.0 KiB |
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "power.light.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "power.dark.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "power.light.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "power.dark.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "Apple Disk II thick.light.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "Apple Disk II thick.png",
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "reset.light.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "reset.dark.64.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "reset.light.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "reset.dark.128.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 2.3 KiB |