mirror of
https://github.com/trudnai/Steve2.git
synced 2024-10-09 15:55:04 +00:00
- Proper Graphics - Text switching
- Suports graphics buffer (Page) changes - Supports Mixed mode
This commit is contained in:
parent
16cc896c0c
commit
44968a5db3
@ -20,6 +20,45 @@
|
||||
325EB64F23FBBAD100C6B4A4 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 325EB64D23FBBAD100C6B4A4 /* LaunchScreen.storyboard */; };
|
||||
325EB65A23FBBAD100C6B4A4 /* A2iOSTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 325EB65923FBBAD100C6B4A4 /* A2iOSTests.swift */; };
|
||||
325EB66523FBBAD100C6B4A4 /* A2iOSUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 325EB66423FBBAD100C6B4A4 /* A2iOSUITests.swift */; };
|
||||
325EB67423FBC0AA00C6B4A4 /* RepeatingTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32C45305232E3EEF0000EBA1 /* RepeatingTimer.swift */; };
|
||||
325EB67523FBC43E00C6B4A4 /* 6502.c in Sources */ = {isa = PBXBuildFile; fileRef = 32439F7422ECD8AD0077AAE0 /* 6502.c */; };
|
||||
325EB67623FBC44400C6B4A4 /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 325EB63823F9E48100C6B4A4 /* common.c */; };
|
||||
325EB67723FBC45300C6B4A4 /* woz.c in Sources */ = {isa = PBXBuildFile; fileRef = 325EB62E23F8856F00C6B4A4 /* woz.c */; };
|
||||
325EB67823FBC45300C6B4A4 /* disk.c in Sources */ = {isa = PBXBuildFile; fileRef = 325EB63523F8F78300C6B4A4 /* disk.c */; };
|
||||
325EB67923FBC48400C6B4A4 /* spk_dn.wav in Resources */ = {isa = PBXBuildFile; fileRef = 3262F37423E169F8008BDB95 /* spk_dn.wav */; };
|
||||
325EB67A23FBC48400C6B4A4 /* spk_up.wav in Resources */ = {isa = PBXBuildFile; fileRef = 3262F37523E169F8008BDB95 /* spk_up.wav */; };
|
||||
325EB67C23FBD43800C6B4A4 /* PrintChar21.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 325EB67B23FBD43800C6B4A4 /* PrintChar21.ttf */; };
|
||||
325EB67D23FBD43800C6B4A4 /* PrintChar21.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 325EB67B23FBD43800C6B4A4 /* PrintChar21.ttf */; };
|
||||
325EB67E23FBDEE700C6B4A4 /* apple.rom in Resources */ = {isa = PBXBuildFile; fileRef = 32439F8422ECD8AD0077AAE0 /* apple.rom */; };
|
||||
325EB68023FBDF8F00C6B4A4 /* Apple2Plus.rom in Resources */ = {isa = PBXBuildFile; fileRef = 325EB67F23FBDF8F00C6B4A4 /* Apple2Plus.rom */; };
|
||||
325EB68123FBDF8F00C6B4A4 /* Apple2Plus.rom in Resources */ = {isa = PBXBuildFile; fileRef = 325EB67F23FBDF8F00C6B4A4 /* Apple2Plus.rom */; };
|
||||
325EB68323FBDFBB00C6B4A4 /* DISK_II_C600.ROM in Resources */ = {isa = PBXBuildFile; fileRef = 325EB68223FBDFBA00C6B4A4 /* DISK_II_C600.ROM */; };
|
||||
325EB68423FBDFBB00C6B4A4 /* DISK_II_C600.ROM in Resources */ = {isa = PBXBuildFile; fileRef = 325EB68223FBDFBA00C6B4A4 /* DISK_II_C600.ROM */; };
|
||||
325EB68623FC707A00C6B4A4 /* Apple DOS 3.3 January 1983.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB68523FC707A00C6B4A4 /* Apple DOS 3.3 January 1983.woz */; };
|
||||
325EB68723FC707A00C6B4A4 /* Apple DOS 3.3 January 1983.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB68523FC707A00C6B4A4 /* Apple DOS 3.3 January 1983.woz */; };
|
||||
325EB68923FDDF6200C6B4A4 /* Hard Hat Mack - Disk 1, Side A.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB68823FDDF6200C6B4A4 /* Hard Hat Mack - Disk 1, Side A.woz */; };
|
||||
325EB68A23FDDF6200C6B4A4 /* Hard Hat Mack - Disk 1, Side A.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB68823FDDF6200C6B4A4 /* Hard Hat Mack - Disk 1, Side A.woz */; };
|
||||
325EB68C23FDDFD200C6B4A4 /* Merlin-8 v2.48 (DOS 3.3).woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB68B23FDDFD200C6B4A4 /* Merlin-8 v2.48 (DOS 3.3).woz */; };
|
||||
325EB68D23FDDFD200C6B4A4 /* Merlin-8 v2.48 (DOS 3.3).woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB68B23FDDFD200C6B4A4 /* Merlin-8 v2.48 (DOS 3.3).woz */; };
|
||||
325EB69023FE028800C6B4A4 /* Donkey Kong.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB68F23FE028800C6B4A4 /* Donkey Kong.woz */; };
|
||||
325EB69123FE028800C6B4A4 /* Donkey Kong.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB68F23FE028800C6B4A4 /* Donkey Kong.woz */; };
|
||||
325EB69323FE6C6200C6B4A4 /* HiRes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32DBF7632334657900DD50E7 /* HiRes.swift */; };
|
||||
325EB69D2401118300C6B4A4 /* Lode Runner.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6942401118200C6B4A4 /* Lode Runner.woz */; };
|
||||
325EB69E2401118300C6B4A4 /* Lode Runner.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6942401118200C6B4A4 /* Lode Runner.woz */; };
|
||||
325EB69F2401118300C6B4A4 /* Crossfire.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6952401118200C6B4A4 /* Crossfire.woz */; };
|
||||
325EB6A02401118300C6B4A4 /* Crossfire.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6952401118200C6B4A4 /* Crossfire.woz */; };
|
||||
325EB6A12401118300C6B4A4 /* Wavy Navy.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6962401118200C6B4A4 /* Wavy Navy.woz */; };
|
||||
325EB6A22401118300C6B4A4 /* Wavy Navy.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6962401118200C6B4A4 /* Wavy Navy.woz */; };
|
||||
325EB6A32401118300C6B4A4 /* qbit.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6972401118200C6B4A4 /* qbit.woz */; };
|
||||
325EB6A42401118300C6B4A4 /* qbit.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6972401118200C6B4A4 /* qbit.woz */; };
|
||||
325EB6A52401118300C6B4A4 /* ProDOS_312.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6982401118200C6B4A4 /* ProDOS_312.woz */; };
|
||||
325EB6A62401118300C6B4A4 /* ProDOS_312.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6982401118200C6B4A4 /* ProDOS_312.woz */; };
|
||||
325EB6A72401118300C6B4A4 /* ProDOS_402_System.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6992401118200C6B4A4 /* ProDOS_402_System.woz */; };
|
||||
325EB6A82401118300C6B4A4 /* ProDOS_402_System.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB6992401118200C6B4A4 /* ProDOS_402_System.woz */; };
|
||||
325EB6A92401118300C6B4A4 /* Sneakers.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB69A2401118300C6B4A4 /* Sneakers.woz */; };
|
||||
325EB6AA2401118300C6B4A4 /* Sneakers.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB69A2401118300C6B4A4 /* Sneakers.woz */; };
|
||||
325EB6AB2401118300C6B4A4 /* Xonix.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB69B2401118300C6B4A4 /* Xonix.woz */; };
|
||||
325EB6AC2401118300C6B4A4 /* Xonix.woz in Resources */ = {isa = PBXBuildFile; fileRef = 325EB69B2401118300C6B4A4 /* Xonix.woz */; };
|
||||
3262F37623E169F8008BDB95 /* spk_dn.wav in Resources */ = {isa = PBXBuildFile; fileRef = 3262F37423E169F8008BDB95 /* spk_dn.wav */; };
|
||||
3262F37723E169F8008BDB95 /* spk_up.wav in Resources */ = {isa = PBXBuildFile; fileRef = 3262F37523E169F8008BDB95 /* spk_up.wav */; };
|
||||
326ED2EF232D7A0000A41337 /* 6502_functional_test.bin in Resources */ = {isa = PBXBuildFile; fileRef = 326ED2EE232D7A0000A41337 /* 6502_functional_test.bin */; };
|
||||
@ -32,7 +71,6 @@
|
||||
32C4530B2331F7220000EBA1 /* 6502.c in Sources */ = {isa = PBXBuildFile; fileRef = 32439F7422ECD8AD0077AAE0 /* 6502.c */; };
|
||||
32C4530C2331F7220000EBA1 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32BFFB5C22EACC630003B53F /* ViewController.swift */; };
|
||||
32C4530D2331F7220000EBA1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32BFFB5A22EACC630003B53F /* AppDelegate.swift */; };
|
||||
32C4530E2331F7220000EBA1 /* RepeatingTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32C45305232E3EEF0000EBA1 /* RepeatingTimer.swift */; };
|
||||
32C453112331F7220000EBA1 /* fail1.txt in Resources */ = {isa = PBXBuildFile; fileRef = 32EDB7A123272CA80073AF2D /* fail1.txt */; };
|
||||
32C453122331F7220000EBA1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 32BFFB5E22EACC660003B53F /* Assets.xcassets */; };
|
||||
32C453132331F7220000EBA1 /* apple.rom in Resources */ = {isa = PBXBuildFile; fileRef = 32439F8422ECD8AD0077AAE0 /* apple.rom */; };
|
||||
@ -40,7 +78,6 @@
|
||||
32C4531D2331FED90000EBA1 /* 6502.c in Sources */ = {isa = PBXBuildFile; fileRef = 32439F7422ECD8AD0077AAE0 /* 6502.c */; };
|
||||
32C4531E2331FED90000EBA1 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32BFFB5C22EACC630003B53F /* ViewController.swift */; };
|
||||
32C4531F2331FED90000EBA1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32BFFB5A22EACC630003B53F /* AppDelegate.swift */; };
|
||||
32C453202331FED90000EBA1 /* RepeatingTimer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32C45305232E3EEF0000EBA1 /* RepeatingTimer.swift */; };
|
||||
32C453232331FED90000EBA1 /* fail1.txt in Resources */ = {isa = PBXBuildFile; fileRef = 32EDB7A123272CA80073AF2D /* fail1.txt */; };
|
||||
32C453242331FED90000EBA1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 32BFFB5E22EACC660003B53F /* Assets.xcassets */; };
|
||||
32C453252331FED90000EBA1 /* apple.rom in Resources */ = {isa = PBXBuildFile; fileRef = 32439F8422ECD8AD0077AAE0 /* apple.rom */; };
|
||||
@ -51,10 +88,6 @@
|
||||
32C4533123335E560000EBA1 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 32BFFB6022EACC660003B53F /* Main.storyboard */; };
|
||||
32C4533223335E570000EBA1 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 32BFFB6022EACC660003B53F /* Main.storyboard */; };
|
||||
32C4533323335E570000EBA1 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 32BFFB6022EACC660003B53F /* Main.storyboard */; };
|
||||
32DBF7642334657900DD50E7 /* HiRes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32DBF7632334657900DD50E7 /* HiRes.swift */; };
|
||||
32DBF7652334657900DD50E7 /* HiRes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32DBF7632334657900DD50E7 /* HiRes.swift */; };
|
||||
32DBF7662334657900DD50E7 /* HiRes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32DBF7632334657900DD50E7 /* HiRes.swift */; };
|
||||
32EDB7A223272CA80073AF2D /* fail1.txt in Resources */ = {isa = PBXBuildFile; fileRef = 32EDB7A123272CA80073AF2D /* fail1.txt */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@ -128,6 +161,22 @@
|
||||
325EB66023FBBAD100C6B4A4 /* A2iOSUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = A2iOSUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
325EB66423FBBAD100C6B4A4 /* A2iOSUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = A2iOSUITests.swift; sourceTree = "<group>"; };
|
||||
325EB66623FBBAD100C6B4A4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
325EB67323FBBF0C00C6B4A4 /* A2iOS-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "A2iOS-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
325EB67B23FBD43800C6B4A4 /* PrintChar21.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = PrintChar21.ttf; sourceTree = "<group>"; };
|
||||
325EB67F23FBDF8F00C6B4A4 /* Apple2Plus.rom */ = {isa = PBXFileReference; lastKnownFileType = file; path = Apple2Plus.rom; sourceTree = "<group>"; };
|
||||
325EB68223FBDFBA00C6B4A4 /* DISK_II_C600.ROM */ = {isa = PBXFileReference; lastKnownFileType = file; path = DISK_II_C600.ROM; sourceTree = "<group>"; };
|
||||
325EB68523FC707A00C6B4A4 /* Apple DOS 3.3 January 1983.woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Apple DOS 3.3 January 1983.woz"; sourceTree = "<group>"; };
|
||||
325EB68823FDDF6200C6B4A4 /* Hard Hat Mack - Disk 1, Side A.woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Hard Hat Mack - Disk 1, Side A.woz"; sourceTree = "<group>"; };
|
||||
325EB68B23FDDFD200C6B4A4 /* Merlin-8 v2.48 (DOS 3.3).woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Merlin-8 v2.48 (DOS 3.3).woz"; sourceTree = "<group>"; };
|
||||
325EB68F23FE028800C6B4A4 /* Donkey Kong.woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Donkey Kong.woz"; sourceTree = "<group>"; };
|
||||
325EB6942401118200C6B4A4 /* Lode Runner.woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Lode Runner.woz"; sourceTree = "<group>"; };
|
||||
325EB6952401118200C6B4A4 /* Crossfire.woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = Crossfire.woz; sourceTree = "<group>"; };
|
||||
325EB6962401118200C6B4A4 /* Wavy Navy.woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Wavy Navy.woz"; sourceTree = "<group>"; };
|
||||
325EB6972401118200C6B4A4 /* qbit.woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = qbit.woz; sourceTree = "<group>"; };
|
||||
325EB6982401118200C6B4A4 /* ProDOS_312.woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = ProDOS_312.woz; sourceTree = "<group>"; };
|
||||
325EB6992401118200C6B4A4 /* ProDOS_402_System.woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = ProDOS_402_System.woz; sourceTree = "<group>"; };
|
||||
325EB69A2401118300C6B4A4 /* Sneakers.woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = Sneakers.woz; sourceTree = "<group>"; };
|
||||
325EB69B2401118300C6B4A4 /* Xonix.woz */ = {isa = PBXFileReference; lastKnownFileType = file; path = Xonix.woz; sourceTree = "<group>"; };
|
||||
3262F37423E169F8008BDB95 /* spk_dn.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = spk_dn.wav; sourceTree = "<group>"; };
|
||||
3262F37523E169F8008BDB95 /* spk_up.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = spk_up.wav; sourceTree = "<group>"; };
|
||||
3264261023284F6F008B615F /* Apple2_mmio_8bit_ioaddr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Apple2_mmio_8bit_ioaddr.h; sourceTree = "<group>"; };
|
||||
@ -274,6 +323,7 @@
|
||||
325EB63723F9492200C6B4A4 /* util */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
32C45305232E3EEF0000EBA1 /* RepeatingTimer.swift */,
|
||||
32439F8622ECD8AD0077AAE0 /* common.h */,
|
||||
325EB63823F9E48100C6B4A4 /* common.c */,
|
||||
32DBF76723373FB400DD50E7 /* disassembler.h */,
|
||||
@ -310,6 +360,7 @@
|
||||
325EB64B23FBBAD100C6B4A4 /* Assets.xcassets */,
|
||||
325EB64D23FBBAD100C6B4A4 /* LaunchScreen.storyboard */,
|
||||
325EB65023FBBAD100C6B4A4 /* Info.plist */,
|
||||
325EB67323FBBF0C00C6B4A4 /* A2iOS-Bridging-Header.h */,
|
||||
);
|
||||
path = A2iOS;
|
||||
sourceTree = "<group>";
|
||||
@ -337,6 +388,22 @@
|
||||
children = (
|
||||
3262F37423E169F8008BDB95 /* spk_dn.wav */,
|
||||
3262F37523E169F8008BDB95 /* spk_up.wav */,
|
||||
325EB67B23FBD43800C6B4A4 /* PrintChar21.ttf */,
|
||||
32439F8422ECD8AD0077AAE0 /* apple.rom */,
|
||||
325EB67F23FBDF8F00C6B4A4 /* Apple2Plus.rom */,
|
||||
325EB68223FBDFBA00C6B4A4 /* DISK_II_C600.ROM */,
|
||||
325EB68523FC707A00C6B4A4 /* Apple DOS 3.3 January 1983.woz */,
|
||||
325EB68823FDDF6200C6B4A4 /* Hard Hat Mack - Disk 1, Side A.woz */,
|
||||
325EB68B23FDDFD200C6B4A4 /* Merlin-8 v2.48 (DOS 3.3).woz */,
|
||||
325EB6952401118200C6B4A4 /* Crossfire.woz */,
|
||||
325EB6942401118200C6B4A4 /* Lode Runner.woz */,
|
||||
325EB6982401118200C6B4A4 /* ProDOS_312.woz */,
|
||||
325EB68F23FE028800C6B4A4 /* Donkey Kong.woz */,
|
||||
325EB6992401118200C6B4A4 /* ProDOS_402_System.woz */,
|
||||
325EB6972401118200C6B4A4 /* qbit.woz */,
|
||||
325EB69A2401118300C6B4A4 /* Sneakers.woz */,
|
||||
325EB6962401118200C6B4A4 /* Wavy Navy.woz */,
|
||||
325EB69B2401118300C6B4A4 /* Xonix.woz */,
|
||||
);
|
||||
path = Resources;
|
||||
sourceTree = "<group>";
|
||||
@ -377,16 +444,14 @@
|
||||
32BFFB5922EACC630003B53F /* A2Mac */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
32439F8422ECD8AD0077AAE0 /* apple.rom */,
|
||||
326ED2EE232D7A0000A41337 /* 6502_functional_test.bin */,
|
||||
32B18438233FAB3900DBB4AB /* verticies.swift */,
|
||||
32BFFB5A22EACC630003B53F /* AppDelegate.swift */,
|
||||
32BFFB5C22EACC630003B53F /* ViewController.swift */,
|
||||
32B18435233F10BC00DBB4AB /* Shaders.metal */,
|
||||
32C4532D233345420000EBA1 /* MonitorView.swift */,
|
||||
32DBF7632334657900DD50E7 /* HiRes.swift */,
|
||||
32C453072331C0910000EBA1 /* NSLayoutManager-Extension.swift */,
|
||||
32C45305232E3EEF0000EBA1 /* RepeatingTimer.swift */,
|
||||
32DBF7632334657900DD50E7 /* HiRes.swift */,
|
||||
32EDB7A123272CA80073AF2D /* fail1.txt */,
|
||||
32BFFB5E22EACC660003B53F /* Assets.xcassets */,
|
||||
32BFFB6022EACC660003B53F /* Main.storyboard */,
|
||||
@ -623,9 +688,27 @@
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
325EB6A22401118300C6B4A4 /* Wavy Navy.woz in Resources */,
|
||||
325EB67E23FBDEE700C6B4A4 /* apple.rom in Resources */,
|
||||
325EB64F23FBBAD100C6B4A4 /* LaunchScreen.storyboard in Resources */,
|
||||
325EB68423FBDFBB00C6B4A4 /* DISK_II_C600.ROM in Resources */,
|
||||
325EB69E2401118300C6B4A4 /* Lode Runner.woz in Resources */,
|
||||
325EB68123FBDF8F00C6B4A4 /* Apple2Plus.rom in Resources */,
|
||||
325EB6AA2401118300C6B4A4 /* Sneakers.woz in Resources */,
|
||||
325EB6A82401118300C6B4A4 /* ProDOS_402_System.woz in Resources */,
|
||||
325EB69123FE028800C6B4A4 /* Donkey Kong.woz in Resources */,
|
||||
325EB68A23FDDF6200C6B4A4 /* Hard Hat Mack - Disk 1, Side A.woz in Resources */,
|
||||
325EB6A02401118300C6B4A4 /* Crossfire.woz in Resources */,
|
||||
325EB67923FBC48400C6B4A4 /* spk_dn.wav in Resources */,
|
||||
325EB64C23FBBAD100C6B4A4 /* Assets.xcassets in Resources */,
|
||||
325EB68D23FDDFD200C6B4A4 /* Merlin-8 v2.48 (DOS 3.3).woz in Resources */,
|
||||
325EB6A62401118300C6B4A4 /* ProDOS_312.woz in Resources */,
|
||||
325EB6AC2401118300C6B4A4 /* Xonix.woz in Resources */,
|
||||
325EB67D23FBD43800C6B4A4 /* PrintChar21.ttf in Resources */,
|
||||
325EB6A42401118300C6B4A4 /* qbit.woz in Resources */,
|
||||
325EB68723FC707A00C6B4A4 /* Apple DOS 3.3 January 1983.woz in Resources */,
|
||||
325EB64A23FBBACF00C6B4A4 /* Main.storyboard in Resources */,
|
||||
325EB67A23FBC48400C6B4A4 /* spk_up.wav in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -647,10 +730,24 @@
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
32EDB7A223272CA80073AF2D /* fail1.txt in Resources */,
|
||||
325EB6A12401118300C6B4A4 /* Wavy Navy.woz in Resources */,
|
||||
325EB68023FBDF8F00C6B4A4 /* Apple2Plus.rom in Resources */,
|
||||
325EB68323FBDFBB00C6B4A4 /* DISK_II_C600.ROM in Resources */,
|
||||
325EB67C23FBD43800C6B4A4 /* PrintChar21.ttf in Resources */,
|
||||
325EB69D2401118300C6B4A4 /* Lode Runner.woz in Resources */,
|
||||
3262F37723E169F8008BDB95 /* spk_up.wav in Resources */,
|
||||
325EB6A92401118300C6B4A4 /* Sneakers.woz in Resources */,
|
||||
325EB6A72401118300C6B4A4 /* ProDOS_402_System.woz in Resources */,
|
||||
325EB69023FE028800C6B4A4 /* Donkey Kong.woz in Resources */,
|
||||
325EB68923FDDF6200C6B4A4 /* Hard Hat Mack - Disk 1, Side A.woz in Resources */,
|
||||
325EB69F2401118300C6B4A4 /* Crossfire.woz in Resources */,
|
||||
32C4533123335E560000EBA1 /* Main.storyboard in Resources */,
|
||||
32BFFB5F22EACC660003B53F /* Assets.xcassets in Resources */,
|
||||
325EB68C23FDDFD200C6B4A4 /* Merlin-8 v2.48 (DOS 3.3).woz in Resources */,
|
||||
325EB6A52401118300C6B4A4 /* ProDOS_312.woz in Resources */,
|
||||
325EB6AB2401118300C6B4A4 /* Xonix.woz in Resources */,
|
||||
325EB68623FC707A00C6B4A4 /* Apple DOS 3.3 January 1983.woz in Resources */,
|
||||
325EB6A32401118300C6B4A4 /* qbit.woz in Resources */,
|
||||
32439F8822ECD8AD0077AAE0 /* apple.rom in Resources */,
|
||||
326ED2EF232D7A0000A41337 /* 6502_functional_test.bin in Resources */,
|
||||
3262F37623E169F8008BDB95 /* spk_dn.wav in Resources */,
|
||||
@ -702,9 +799,14 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
325EB67623FBC44400C6B4A4 /* common.c in Sources */,
|
||||
325EB67523FBC43E00C6B4A4 /* 6502.c in Sources */,
|
||||
325EB67823FBC45300C6B4A4 /* disk.c in Sources */,
|
||||
325EB64723FBBACF00C6B4A4 /* ViewController.swift in Sources */,
|
||||
325EB64323FBBACF00C6B4A4 /* AppDelegate.swift in Sources */,
|
||||
325EB67723FBC45300C6B4A4 /* woz.c in Sources */,
|
||||
325EB64523FBBACF00C6B4A4 /* SceneDelegate.swift in Sources */,
|
||||
325EB67423FBC0AA00C6B4A4 /* RepeatingTimer.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -729,10 +831,10 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
32439F8722ECD8AD0077AAE0 /* 6502.c in Sources */,
|
||||
32DBF7642334657900DD50E7 /* HiRes.swift in Sources */,
|
||||
325EB63623F8F78300C6B4A4 /* disk.c in Sources */,
|
||||
325EB63923F9E48100C6B4A4 /* common.c in Sources */,
|
||||
32BFFB5D22EACC630003B53F /* ViewController.swift in Sources */,
|
||||
325EB69323FE6C6200C6B4A4 /* HiRes.swift in Sources */,
|
||||
32C4532E233345430000EBA1 /* MonitorView.swift in Sources */,
|
||||
325EB62F23F8856F00C6B4A4 /* woz.c in Sources */,
|
||||
32BFFB5B22EACC630003B53F /* AppDelegate.swift in Sources */,
|
||||
@ -761,11 +863,9 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
32C4530B2331F7220000EBA1 /* 6502.c in Sources */,
|
||||
32DBF7652334657900DD50E7 /* HiRes.swift in Sources */,
|
||||
32C4530C2331F7220000EBA1 /* ViewController.swift in Sources */,
|
||||
32C4532F233345820000EBA1 /* MonitorView.swift in Sources */,
|
||||
32C4530D2331F7220000EBA1 /* AppDelegate.swift in Sources */,
|
||||
32C4530E2331F7220000EBA1 /* RepeatingTimer.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -774,11 +874,9 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
32C4531D2331FED90000EBA1 /* 6502.c in Sources */,
|
||||
32DBF7662334657900DD50E7 /* HiRes.swift in Sources */,
|
||||
32C4531E2331FED90000EBA1 /* ViewController.swift in Sources */,
|
||||
32C45330233345820000EBA1 /* MonitorView.swift in Sources */,
|
||||
32C4531F2331FED90000EBA1 /* AppDelegate.swift in Sources */,
|
||||
32C453202331FED90000EBA1 /* RepeatingTimer.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -847,9 +945,11 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
OTHER_SWIFT_FLAGS = "-DHIRES -DHIRESDRAW -D_NO_HIRESLOW";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.gamealloy.A2iOS;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "A2iOS/A2iOS-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
@ -867,9 +967,11 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
OTHER_SWIFT_FLAGS = "-DHIRES -DHIRESDRAW -D_NO_HIRESLOW";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.gamealloy.A2iOS;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "A2iOS/A2iOS-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
@ -1106,8 +1208,9 @@
|
||||
OTHER_CFLAGS = (
|
||||
"-DDISASSEMBLER",
|
||||
"-DINTERRUPT_CHECK_PER_STEP",
|
||||
"-DCLK_ABSOLUTE_PRECISE",
|
||||
);
|
||||
OTHER_SWIFT_FLAGS = "-D_NO_HIRES -DHIRESDRAW -D_NO_HIRESLOW";
|
||||
OTHER_SWIFT_FLAGS = "-DHIRES -DHIRESDRAW -D_NO_HIRESLOW";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.gamealloy.A2Mac;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
@ -1141,8 +1244,9 @@
|
||||
OTHER_CFLAGS = (
|
||||
"-DDISASSEMBLER",
|
||||
"-DINTERRUPT_CHECK_PER_STEP",
|
||||
"-DCLK_ABSOLUTE_PRECISE",
|
||||
);
|
||||
OTHER_SWIFT_FLAGS = "-D_NO_HIRES -DHIRESDRAW -D_NO_HIRESLOW";
|
||||
OTHER_SWIFT_FLAGS = "-DHIRES -DHIRESDRAW -D_NO_HIRESLOW";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.gamealloy.A2Mac;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "A2Mac/A2Mac-Bridging-Header.h";
|
||||
|
@ -32,6 +32,21 @@
|
||||
</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>
|
||||
|
@ -1,5 +1,19 @@
|
||||
//
|
||||
// A2Mac-Bridging-Header.h
|
||||
// A2Mac
|
||||
//
|
||||
// Created by Tamas Rudnai on 2/17/20.
|
||||
// Copyright © 2020 GameAlloy. All rights reserved.
|
||||
//
|
||||
//
|
||||
// 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"
|
||||
|
||||
|
||||
#endif /* A2Mac_Bridging_Header_h */
|
||||
|
@ -756,6 +756,9 @@
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<customView translatesAutoresizingMaskIntoConstraints="NO" id="LlM-EV-ruZ" customClass="HiRes" customModule="A2Mac" customModuleProvider="target">
|
||||
<rect key="frame" x="16" y="8" width="568" height="384"/>
|
||||
</customView>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mfd-12-bcR">
|
||||
<rect key="frame" x="594" y="362" width="82" height="32"/>
|
||||
<constraints>
|
||||
@ -782,24 +785,20 @@
|
||||
</connections>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LlM-EV-ruZ" customClass="HiRes" customModule="A2Mac" customModuleProvider="target">
|
||||
<rect key="frame" x="16" y="8" width="568" height="384"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
</customView>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Fb7-Jc-jmt">
|
||||
<rect key="frame" x="598" y="186" width="74" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="17" id="xCE-LE-hVy"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" alignment="left" title="CPU Speed" id="b3T-0k-ama">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<stackView distribution="fill" orientation="vertical" alignment="leading" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" fixedFrame="YES" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="lVP-FP-u6x">
|
||||
<rect key="frame" x="600" y="44" width="52" height="136"/>
|
||||
<rect key="frame" x="600" y="19" width="70" height="161"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Fb7-Jc-jmt">
|
||||
<rect key="frame" x="-2" y="144" width="74" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="17" id="xCE-LE-hVy"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" alignment="left" title="CPU Speed" id="b3T-0k-ama">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="7Pw-e8-92m">
|
||||
<rect key="frame" x="-1" y="119" width="55" height="18"/>
|
||||
<buttonCell key="cell" type="radio" title="1.023" bezelStyle="regularSquare" imagePosition="left" alignment="left" state="on" inset="2" id="AgQ-Np-TYQ">
|
||||
@ -868,6 +867,7 @@
|
||||
<integer value="1000"/>
|
||||
<integer value="1000"/>
|
||||
<integer value="1000"/>
|
||||
<integer value="1000"/>
|
||||
</visibilityPriorities>
|
||||
<customSpacing>
|
||||
<real value="3.4028234663852886e+38"/>
|
||||
@ -876,6 +876,7 @@
|
||||
<real value="3.4028234663852886e+38"/>
|
||||
<real value="3.4028234663852886e+38"/>
|
||||
<real value="3.4028234663852886e+38"/>
|
||||
<real value="3.4028234663852886e+38"/>
|
||||
</customSpacing>
|
||||
</stackView>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="FZk-VW-alq">
|
||||
@ -896,14 +897,18 @@
|
||||
<constraint firstAttribute="trailing" secondItem="rR3-9T-NFu" secondAttribute="trailing" constant="10" id="68s-0C-BVZ"/>
|
||||
<constraint firstAttribute="bottom" secondItem="FZk-VW-alq" secondAttribute="bottom" constant="20" id="E2f-MY-c2Y"/>
|
||||
<constraint firstItem="iIF-Q5-Onc" firstAttribute="leading" secondItem="m2S-Jp-Qdl" secondAttribute="leading" id="LGA-tZ-gFh"/>
|
||||
<constraint firstItem="LlM-EV-ruZ" firstAttribute="leading" secondItem="iIF-Q5-Onc" secondAttribute="leading" constant="16" id="Lak-zX-Szi"/>
|
||||
<constraint firstItem="rR3-9T-NFu" firstAttribute="leading" secondItem="iIF-Q5-Onc" secondAttribute="trailing" constant="8" id="ON4-IE-HmP"/>
|
||||
<constraint firstAttribute="trailing" secondItem="FZk-VW-alq" secondAttribute="trailing" constant="10" id="Q0s-uC-GPT"/>
|
||||
<constraint firstItem="SEL-hl-0c0" firstAttribute="bottom" secondItem="iIF-Q5-Onc" secondAttribute="bottom" constant="-8" id="Q2B-a3-gBp"/>
|
||||
<constraint firstItem="SEL-hl-0c0" firstAttribute="leading" secondItem="iIF-Q5-Onc" secondAttribute="leading" constant="16" id="QGx-a9-RR9"/>
|
||||
<constraint firstItem="LlM-EV-ruZ" firstAttribute="bottom" secondItem="iIF-Q5-Onc" secondAttribute="bottom" constant="-8" id="Vfh-f8-sRz"/>
|
||||
<constraint firstItem="SEL-hl-0c0" firstAttribute="top" secondItem="iIF-Q5-Onc" secondAttribute="top" constant="8" id="aWz-Ad-PIM"/>
|
||||
<constraint firstAttribute="bottom" secondItem="iIF-Q5-Onc" secondAttribute="bottom" id="acb-Dy-fu5"/>
|
||||
<constraint firstItem="SEL-hl-0c0" firstAttribute="trailing" secondItem="iIF-Q5-Onc" secondAttribute="trailing" constant="-8" id="cmY-Vb-ckJ"/>
|
||||
<constraint firstItem="iIF-Q5-Onc" firstAttribute="top" secondItem="m2S-Jp-Qdl" secondAttribute="top" id="m3e-ww-N7S"/>
|
||||
<constraint firstItem="LlM-EV-ruZ" firstAttribute="top" secondItem="iIF-Q5-Onc" secondAttribute="top" constant="8" id="mJ3-xG-dB3"/>
|
||||
<constraint firstItem="LlM-EV-ruZ" firstAttribute="trailing" secondItem="iIF-Q5-Onc" secondAttribute="trailing" constant="-8" id="nCM-Ge-DZf"/>
|
||||
<constraint firstItem="rR3-9T-NFu" firstAttribute="top" secondItem="mfd-12-bcR" secondAttribute="bottom" constant="10" id="ycb-iY-X4I"/>
|
||||
<constraint firstItem="mfd-12-bcR" firstAttribute="top" secondItem="m2S-Jp-Qdl" secondAttribute="top" constant="10" id="zDl-Cs-xmz"/>
|
||||
</constraints>
|
||||
|
@ -18,12 +18,17 @@ class HiRes: NSView {
|
||||
static let PixelWidth = 280
|
||||
static let PixelMixedHeight = 160
|
||||
static let PixelHeight = 192
|
||||
static let MixedTextHeight = 4
|
||||
static let MixedHeight = 160
|
||||
static let blockRows = 24
|
||||
static let blockCols = 40
|
||||
static let blockWidth = PixelWidth / blockCols
|
||||
static let blockHeight = PixelHeight / blockRows
|
||||
|
||||
let HiResBufferPointer = UnsafeRawBufferPointer(start: RAM + Page1Addr, count: PageSize * 2)
|
||||
let HiResBuffer1 = UnsafeRawBufferPointer(start: RAM + Page1Addr, count: PageSize * 2)
|
||||
let HiResBuffer2 = UnsafeRawBufferPointer(start: RAM + Page2Addr, count: PageSize * 2)
|
||||
var HiResBufferPointer = UnsafeRawBufferPointer(start: RAM + Page1Addr, count: PageSize * 2)
|
||||
|
||||
let HiResRawPointer = UnsafeRawPointer(RAM + Page1Addr)
|
||||
|
||||
#if METAL_YES
|
||||
@ -179,6 +184,7 @@ class HiRes: NSView {
|
||||
|
||||
|
||||
func render() {
|
||||
|
||||
guard let drawable = metalLayer?.nextDrawable() else { return }
|
||||
let renderPassDescriptor = MTLRenderPassDescriptor()
|
||||
renderPassDescriptor.colorAttachments[0].texture = drawable.texture
|
||||
@ -459,48 +465,168 @@ class HiRes: NSView {
|
||||
let boundingBox = CGRect(x: 0, y: 0, width: CGFloat(HiRes.PixelWidth), height: CGFloat(HiRes.PixelHeight))
|
||||
currentContext!.draw (image, in: boundingBox)
|
||||
}
|
||||
#elseif HIRESDRAW
|
||||
#elseif HIRESDRAWCOLOR
|
||||
|
||||
let colorPalette : [NSColor] = [
|
||||
NSColor(calibratedRed: 0.0000, green: 0.000, blue: 0.000, alpha: 0.0), // black
|
||||
NSColor(calibratedRed: 0.0314, green: 0.635, blue: 0.071, alpha: 1.0), // green
|
||||
NSColor(calibratedRed: 0.0314, green: 0.635, blue: 0.071, alpha: 1.0), // purple
|
||||
NSColor(calibratedRed: 1.0000, green: 1.000, blue: 1.000, alpha: 1.0), // white
|
||||
NSColor(calibratedRed: 0.0000, green: 0.000, blue: 0.000, alpha: 0.0), // black
|
||||
NSColor(calibratedRed: 0.0314, green: 0.635, blue: 0.071, alpha: 1.0), // orange
|
||||
NSColor(calibratedRed: 0.0314, green: 0.635, blue: 0.071, alpha: 1.0), // blue
|
||||
NSColor(calibratedRed: 1.0000, green: 1.000, blue: 1.000, alpha: 1.0), // white
|
||||
]
|
||||
|
||||
let path = NSBezierPath()
|
||||
|
||||
override func draw(_ rect: CGRect) {
|
||||
// NSColor.green.setFill()
|
||||
NSColor(calibratedRed: 0.0314, green: 0.635, blue: 0.071, alpha: 0.5).setStroke()
|
||||
NSColor(calibratedRed: 0.0314, green: 0.635, blue: 0.071, alpha: 1.0).setStroke()
|
||||
|
||||
let path = NSBezierPath()
|
||||
path.lineWidth=1
|
||||
path.removeAllPoints()
|
||||
path.lineWidth = 0.7
|
||||
path.move(to: NSPoint(x: 0, y: 0))
|
||||
|
||||
// path.appendRect(NSRect(x: 0, y: 0, width: 10, height: 10))
|
||||
|
||||
for y in 0 ..< HiRes.PixelHeight {
|
||||
var color : UInt = 0
|
||||
var lastColor : UInt = 0
|
||||
path.move(to: NSPoint(x: 0, y: y))
|
||||
|
||||
// for color screen we need to process blocks in a pair
|
||||
for blockX in 0 ..< HiRes.blockCols / 2 {
|
||||
|
||||
let lineAddr = HiResLineAddrTbl[y]
|
||||
var x = blockX * HiRes.blockWidth * 2
|
||||
|
||||
var block0 = UInt(HiResBufferPointer[ Int(lineAddr + blockX * 2) + 0 ])
|
||||
var block1 = UInt(HiResBufferPointer[ Int(lineAddr + blockX * 2) + 1 ])
|
||||
let b70 : UInt = (block0 & 0x80) >> 5
|
||||
let b71 : UInt = (block1 & 0x80) >> 5
|
||||
|
||||
var block7 : [UInt] = [0,0,0,0,0,0,0]
|
||||
var i = 0
|
||||
|
||||
for _ in 0 ... 2 {
|
||||
block7[i] = b70
|
||||
block7[i] |= block0 & 3
|
||||
block0 >>= 2
|
||||
i += 1
|
||||
}
|
||||
|
||||
block7[i] = b70
|
||||
block7[i] |= ((block0 & 1) << 1) | (block1 & 1)
|
||||
block1 >>= 1
|
||||
i += 1
|
||||
|
||||
for _ in 0 ... 2 {
|
||||
block7[i] = b71
|
||||
block7[i] |= block1 & 3
|
||||
block1 >>= 2
|
||||
i += 1
|
||||
}
|
||||
|
||||
|
||||
for px in 0 ... 6 { // stride(from: 0, through: 6, by: 1) {
|
||||
color = block7[px]
|
||||
if (color != lastColor) {
|
||||
colorPalette[Int(color)].setStroke()
|
||||
path.line(to: NSPoint(x: x, y: y))
|
||||
path.stroke()
|
||||
path.removeAllPoints()
|
||||
lastColor = color
|
||||
}
|
||||
|
||||
x += 1
|
||||
}
|
||||
} // x
|
||||
// make sure we close the path at the end of the horizontal line
|
||||
if (color != lastColor) {
|
||||
path.line(to: NSPoint(x: 279, y: y))
|
||||
lastColor = color
|
||||
}
|
||||
}
|
||||
// path.fill()
|
||||
|
||||
path.stroke()
|
||||
|
||||
}
|
||||
#elseif HIRESDRAW
|
||||
let path = NSBezierPath()
|
||||
override func draw(_ rect: CGRect) {
|
||||
|
||||
// self.hidden = videoMode.text == 1
|
||||
|
||||
// NSColor.green.setFill()
|
||||
NSColor(calibratedRed: 0.0314, green: 0.635, blue: 0.071, alpha: 1.0).setStroke()
|
||||
|
||||
path.removeAllPoints()
|
||||
path.lineWidth=0.7
|
||||
path.move(to: NSPoint(x: 0, y: 0))
|
||||
|
||||
// path.appendRect(NSRect(x: 0, y: 0, width: 10, height: 10))
|
||||
|
||||
var height = HiRes.PixelHeight
|
||||
|
||||
// do not even render it...
|
||||
if videoMode.text == 1 {
|
||||
return
|
||||
}
|
||||
else {
|
||||
if videoMode.mixed == 1 {
|
||||
height = HiRes.MixedHeight
|
||||
}
|
||||
if videoMode.page == 1 {
|
||||
HiResBufferPointer = HiResBuffer2
|
||||
}
|
||||
else {
|
||||
HiResBufferPointer = HiResBuffer1
|
||||
}
|
||||
}
|
||||
|
||||
for y in 0 ..< height {
|
||||
var inX = false
|
||||
path.move(to: NSPoint(x: 0, y: y))
|
||||
|
||||
for blockX in 0 ..< HiRes.blockCols {
|
||||
|
||||
let lineAddr = HiResLineAddrTbl[y]
|
||||
let block = Int(HiResBufferPointer[ Int(lineAddr + blockX) ])
|
||||
let block = UInt(HiResBufferPointer[ Int(lineAddr + blockX) ])
|
||||
|
||||
// if( shadowScreen[ screenIdx ] != block ) {
|
||||
// shadowScreen[ screenIdx ] = block
|
||||
//
|
||||
var x = blockX * HiRes.blockWidth
|
||||
for bit in stride(from: 0, through: 6, by: 1) {
|
||||
let bitMask = 1 << bit
|
||||
if (block & bitMask) == 0 {
|
||||
if inX {
|
||||
inX = false
|
||||
path.line(to: NSPoint(x: x, y: 192-y))
|
||||
if block != 0 && block != 0x80 {
|
||||
for bit in 0 ... 6 { // stride(from: 0, through: 6, by: 1) {
|
||||
let bitMask : UInt = 1 << bit
|
||||
if (block & bitMask) == 0 {
|
||||
if inX {
|
||||
inX = false
|
||||
path.line(to: NSPoint(x: x, y: 192-y))
|
||||
}
|
||||
}
|
||||
}
|
||||
else { // 28CD41
|
||||
if ( inX == false ) {
|
||||
inX = true
|
||||
path.move(to: NSPoint(x: x, y: 192-y))
|
||||
else { // 28CD41
|
||||
if ( inX == false ) {
|
||||
inX = true
|
||||
path.move(to: NSPoint(x: x, y: 192-y))
|
||||
}
|
||||
}
|
||||
|
||||
x += 1
|
||||
}
|
||||
}
|
||||
else {
|
||||
// make sure we close the path if the next block is completely zero
|
||||
if inX {
|
||||
inX = false
|
||||
path.line(to: NSPoint(x: x, y: 192-y))
|
||||
}
|
||||
|
||||
x += 1
|
||||
}
|
||||
} // x
|
||||
// make sure we close the path at the end of the horizontal line
|
||||
if inX {
|
||||
inX = false
|
||||
path.line(to: NSPoint(x: 279, y: 192-y))
|
||||
|
@ -9,7 +9,46 @@
|
||||
import Cocoa
|
||||
|
||||
class MonitorView: NSView {
|
||||
override func performKeyEquivalent(with event: NSEvent) -> Bool {
|
||||
return true
|
||||
}
|
||||
// override func performKeyEquivalent(with event: NSEvent) -> Bool {
|
||||
// return true
|
||||
// }
|
||||
|
||||
// override func keyDown(with event: NSEvent) {
|
||||
// print("MV KBD Event")
|
||||
// // switch event.modifierFlags.intersection(.deviceIndependentFlagsMask) {
|
||||
// // case [.command] where event.characters == "l",
|
||||
// // [.command, .shift] where event.characters == "l":
|
||||
// // print("command-l or command-shift-l")
|
||||
// // default:
|
||||
// // break
|
||||
// // }
|
||||
// // print( "key = " + (event.charactersIgnoringModifiers ?? ""))
|
||||
// // print( "\ncharacter = " + (event.characters ?? ""))
|
||||
//
|
||||
// #if FUNCTIONTEST
|
||||
// #else
|
||||
// let keyCode = UInt32(event.keyCode)
|
||||
// switch keyCode {
|
||||
// case eLeftArrowKey:
|
||||
// kbdInput(0x08)
|
||||
// case eRightArrowKey:
|
||||
// kbdInput(0x15)
|
||||
// case eLeftArrowKey:
|
||||
// kbdInput(0x0B)
|
||||
// case eRightArrowKey:
|
||||
// kbdInput(0x0A)
|
||||
// default:
|
||||
// // print("keycode: %d", keyCode)
|
||||
// if let chars = event.characters {
|
||||
// let char = chars.uppercased()[chars.startIndex]
|
||||
// if let ascii = char.asciiValue {
|
||||
// kbdInput(ascii)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// #endif
|
||||
//
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
@ -112,7 +112,7 @@ class ViewController: NSViewController {
|
||||
DispatchQueue.global().async(execute: workItem!);
|
||||
}
|
||||
#else
|
||||
m6502_ColdReset()
|
||||
m6502_ColdReset( Bundle.main.resourcePath )
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -130,14 +130,61 @@ class ViewController: NSViewController {
|
||||
}
|
||||
|
||||
|
||||
static let textBaseAddr = 0x400
|
||||
static let textBufferSize = 0x400
|
||||
let textLines = 24
|
||||
let textCols = 40
|
||||
let lineEndChars = 1
|
||||
|
||||
var frameCnt = 0
|
||||
// let spaceChar : Character = "\u{E17F}"
|
||||
// let blockChar : Character = "\u{E07F}"
|
||||
let spaceChar : Character = " "
|
||||
let blockChar : Character = "░"
|
||||
var flashingSpace : Character = " "
|
||||
|
||||
let ramBufferPointer = UnsafeRawBufferPointer(start: RAM, count: 64 * 1024)
|
||||
let textBufferPointer = UnsafeRawBufferPointer(start: RAM + textBaseAddr, count: textBufferSize)
|
||||
var txtClear = [Character](repeating: " ", count: textBufferSize)
|
||||
var txtArr = [Character](repeating: " ", count: textBufferSize)
|
||||
|
||||
var s = String()
|
||||
|
||||
func HexDump() {
|
||||
var txt : String = ""
|
||||
|
||||
for y in 0...textLines - 1 {
|
||||
txt += String(format: "%04X: ", y * 16)
|
||||
for x in 0...15 {
|
||||
let byte = ramBufferPointer[ y * 16 + x ]
|
||||
let chr = String(format: "%02X ", byte)
|
||||
txt += chr
|
||||
}
|
||||
txt += "\n"
|
||||
}
|
||||
|
||||
DispatchQueue.main.async {
|
||||
self.display.stringValue = txt
|
||||
self.speedometer.stringValue = String(format: "%0.3lf MHz", mhz);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// AppleScript Keycodes
|
||||
let leftArrowKey = 123
|
||||
let rightArrowKey = 124
|
||||
let upArrowKey = 126
|
||||
let downArrowKey = 125
|
||||
|
||||
var ddd = 9;
|
||||
|
||||
override func keyDown(with event: NSEvent) {
|
||||
// print("KBD Event")
|
||||
print("KBD Event")
|
||||
|
||||
for i in 0...65536 {
|
||||
ddd = Int(event.keyCode) + i
|
||||
}
|
||||
ddd = ddd * 2
|
||||
// switch event.modifierFlags.intersection(.deviceIndependentFlagsMask) {
|
||||
// case [.command] where event.characters == "l",
|
||||
// [.command, .shift] where event.characters == "l":
|
||||
@ -154,12 +201,20 @@ class ViewController: NSViewController {
|
||||
switch keyCode {
|
||||
case leftArrowKey:
|
||||
kbdInput(0x08)
|
||||
setIO(0xC064, 0);
|
||||
print("LEFT", ddd);
|
||||
case rightArrowKey:
|
||||
kbdInput(0x15)
|
||||
case leftArrowKey:
|
||||
setIO(0xC064, 255);
|
||||
print("RIGHT")
|
||||
case downArrowKey:
|
||||
kbdInput(0x0B)
|
||||
case rightArrowKey:
|
||||
setIO(0xC065, 255);
|
||||
print("DOWN")
|
||||
case upArrowKey:
|
||||
kbdInput(0x0A)
|
||||
setIO(0xC065, 0);
|
||||
print("UP")
|
||||
default:
|
||||
// print("keycode: %d", keyCode)
|
||||
if let chars = event.characters {
|
||||
@ -173,6 +228,51 @@ class ViewController: NSViewController {
|
||||
|
||||
}
|
||||
|
||||
override func keyUp(with event: NSEvent) {
|
||||
print("KBD Event")
|
||||
// switch event.modifierFlags.intersection(.deviceIndependentFlagsMask) {
|
||||
// case [.command] where event.characters == "l",
|
||||
// [.command, .shift] where event.characters == "l":
|
||||
// print("command-l or command-shift-l")
|
||||
// default:
|
||||
// break
|
||||
// }
|
||||
// print( "key = " + (event.charactersIgnoringModifiers ?? ""))
|
||||
// print( "\ncharacter = " + (event.characters ?? ""))
|
||||
|
||||
#if FUNCTIONTEST
|
||||
#else
|
||||
let keyCode = Int(event.keyCode)
|
||||
switch keyCode {
|
||||
case leftArrowKey:
|
||||
// kbdInput(0x08)
|
||||
setIO(0xC064, 127);
|
||||
print("left")
|
||||
case rightArrowKey:
|
||||
// kbdInput(0x15)
|
||||
setIO(0xC064, 128);
|
||||
print("right")
|
||||
case downArrowKey:
|
||||
// kbdInput(0x0B)
|
||||
setIO(0xC065, 127);
|
||||
print("down")
|
||||
case upArrowKey:
|
||||
// kbdInput(0x0A)
|
||||
setIO(0xC065, 128);
|
||||
print("up")
|
||||
default:
|
||||
// print("keycode: %d", keyCode)
|
||||
// if let chars = event.characters {
|
||||
// let char = chars.uppercased()[chars.startIndex]
|
||||
// if let ascii = char.asciiValue {
|
||||
// kbdInput(ascii)
|
||||
// }
|
||||
// }
|
||||
break
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
// override func flagsChanged(with event: NSEvent) {
|
||||
// switch event.modifierFlags.intersection(.deviceIndependentFlagsMask) {
|
||||
// case [.shift]:
|
||||
@ -210,43 +310,7 @@ class ViewController: NSViewController {
|
||||
// }
|
||||
// }
|
||||
|
||||
static let textBaseAddr = 0x400
|
||||
static let textBufferSize = 0x400
|
||||
let textLines = 24
|
||||
let textCols = 40
|
||||
let lineEndChars = 1
|
||||
|
||||
var frameCnt = 0
|
||||
// let spaceChar : Character = "\u{E17F}"
|
||||
// let blockChar : Character = "\u{E07F}"
|
||||
let spaceChar : Character = " "
|
||||
let blockChar : Character = "░"
|
||||
var flashingSpace : Character = " "
|
||||
|
||||
let ramBufferPointer = UnsafeRawBufferPointer(start: RAM, count: 64 * 1024)
|
||||
let textBufferPointer = UnsafeRawBufferPointer(start: RAM + textBaseAddr, count: textBufferSize)
|
||||
var txtArr = [Character](repeating: " ", count: textBufferSize)
|
||||
|
||||
var s = String()
|
||||
|
||||
func HexDump() {
|
||||
var txt : String = ""
|
||||
|
||||
for y in 0...textLines - 1 {
|
||||
txt += String(format: "%04X: ", y * 16)
|
||||
for x in 0...15 {
|
||||
let byte = ramBufferPointer[ y * 16 + x ]
|
||||
let chr = String(format: "%02X ", byte)
|
||||
txt += chr
|
||||
}
|
||||
txt += "\n"
|
||||
}
|
||||
|
||||
DispatchQueue.main.async {
|
||||
self.display.stringValue = txt
|
||||
self.speedometer.stringValue = String(format: "%0.3lf MHz", mhz);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
var was = 0;
|
||||
@ -277,42 +341,36 @@ class ViewController: NSViewController {
|
||||
|
||||
var txt : String = ""
|
||||
|
||||
for y in 0...textLines-1 {
|
||||
// let textAddr = textBaseAddr + textLineOfs[y]
|
||||
|
||||
// let linePointer = UnsafeMutableRawPointer( mutating: &RAM + textBaseAddr + y * textCols ) //( start: &RAM + 0x400, count: 0x400)
|
||||
// let lineStr = String(bytesNoCopy: linePointer, length: textCols, encoding: .ascii, freeWhenDone: false)!
|
||||
// txt += lineStr + "\n"
|
||||
var fromLines = 0
|
||||
var toLines = textLines
|
||||
|
||||
for x in 0...textCols-1 {
|
||||
if videoMode.text == 0 {
|
||||
if videoMode.mixed == 1 {
|
||||
fromLines = toLines - 4
|
||||
}
|
||||
else {
|
||||
toLines = 0
|
||||
}
|
||||
}
|
||||
|
||||
txtArr = txtClear
|
||||
|
||||
for y in fromLines ..< toLines {
|
||||
for x in 0 ..< textCols {
|
||||
let byte = textBufferPointer[ textLineOfs[y] + x ]
|
||||
let idx = Int(byte);
|
||||
let chr = ViewController.charConvTbl[idx]
|
||||
|
||||
// is it a cursor? (slashing space)
|
||||
// if ( chr == "blockChar" ) {
|
||||
// chr = flashingSpace
|
||||
// }
|
||||
// print("byte \(index): \(chr)")
|
||||
// txt = txt + "\(chr)"
|
||||
|
||||
txtArr[ y * (textCols + lineEndChars) + x ] = chr
|
||||
}
|
||||
|
||||
|
||||
// for (_, byte) in textBufferPointer.enumerated() {
|
||||
// let idx = Int(byte);
|
||||
// var chr = ViewController.charConvTbl[idx]
|
||||
// // is it a cursor? (slashing space)
|
||||
// if ( chr == blockChar ) {
|
||||
// chr = flashingSpace
|
||||
// }
|
||||
// // print("byte \(index): \(chr)")
|
||||
// txt = txt + "\(chr)"
|
||||
// }
|
||||
|
||||
// txt = txt + "\n"
|
||||
txtArr[ y * (textCols + lineEndChars) + textCols ] = "\n"
|
||||
}
|
||||
// txtArr[ textLines * (textCols+1) + textCols ] = "\0"
|
||||
|
||||
txt = String(txtArr)
|
||||
|
||||
DispatchQueue.main.async {
|
||||
@ -362,6 +420,10 @@ class ViewController: NSViewController {
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
for y in 0 ... textLines - 1 {
|
||||
txtClear[ y * (textCols + lineEndChars) + textCols ] = "\n"
|
||||
}
|
||||
|
||||
|
||||
let spk_up_path = Bundle.main.path(forResource: "spk_up", ofType:"wav")!
|
||||
let spk_up_url = URL(fileURLWithPath: spk_up_path)
|
||||
|
20
A2iOS/A2iOS-Bridging-Header.h
Normal file
20
A2iOS/A2iOS-Bridging-Header.h
Normal file
@ -0,0 +1,20 @@
|
||||
//
|
||||
// A2iOS-Bridging-Header.h
|
||||
// A2Mac
|
||||
//
|
||||
// Created by Tamas Rudnai on 2/17/20.
|
||||
// Copyright © 2020 GameAlloy. All rights reserved.
|
||||
//
|
||||
//
|
||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||
//
|
||||
|
||||
#ifndef A2iOS_Bridging_Header_h
|
||||
#define A2iOS_Bridging_Header_h
|
||||
|
||||
|
||||
#import "6502.h"
|
||||
#import "disk.h"
|
||||
|
||||
|
||||
#endif /* A2iOS_Bridging_Header_h */
|
@ -1,24 +1,359 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
|
||||
<device id="retina6_1" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<customFonts key="customFonts">
|
||||
<array key="PrintChar21.ttf">
|
||||
<string>PrintChar21</string>
|
||||
</array>
|
||||
</customFonts>
|
||||
<scenes>
|
||||
<!--View Controller-->
|
||||
<scene sceneID="tne-QT-ifu">
|
||||
<objects>
|
||||
<viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<viewController id="BYZ-38-t0r" customClass="ViewController" customModule="A2iOS" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" xcode11CocoaTouchSystemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UDx-40-ORS" userLabel="Background View">
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="294"/>
|
||||
<subviews>
|
||||
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" editable="NO" textAlignment="natural" adjustsFontForContentSizeCategory="YES" selectable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nMe-JQ-ldk" userLabel="Display View">
|
||||
<rect key="frame" x="8" y="8" width="398" height="278"/>
|
||||
<string key="text">1234567890123456789012345678901234567890
|
||||
@@@@@@@@@1@@@@@@@@@2@@@@@@@@@3@@@@@@@@@4
|
||||
@@@@@@@@@@@@@@@@@@@3@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@4@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@5@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@6@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@7@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@8@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@@9@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@10@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@11@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@12@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@13@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@14@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@15@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@16@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@17@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@18@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@19@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@20@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@21@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@22@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@23@@@@@@@@@@@@@@@@@@@@
|
||||
@@@@@@@@@@@@@@@@@@24@@@@@@@@@@@@@@@@@@@@</string>
|
||||
<color key="textColor" systemColor="systemGreenColor" red="0.20392156859999999" green="0.78039215689999997" blue="0.34901960780000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<fontDescription key="fontDescription" name="PrintChar21" family="Print Char 21" pointSize="11"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
|
||||
</textView>
|
||||
<view alpha="0.5" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Vi7-A0-0Jo" userLabel="HiRes" customClass="HiRes" customModule="A2iOS" customModuleProvider="target">
|
||||
<rect key="frame" x="8" y="8" width="568" height="384"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="568" id="Zt7-jR-A9l"/>
|
||||
<constraint firstAttribute="height" constant="384" id="yhH-Mi-66m"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<constraint firstItem="Vi7-A0-0Jo" firstAttribute="leading" secondItem="nMe-JQ-ldk" secondAttribute="leading" id="4nE-P5-f7w"/>
|
||||
<constraint firstItem="Vi7-A0-0Jo" firstAttribute="top" secondItem="nMe-JQ-ldk" secondAttribute="top" id="6Lq-A0-E1c"/>
|
||||
<constraint firstAttribute="bottom" secondItem="nMe-JQ-ldk" secondAttribute="bottom" constant="8" id="DPv-PT-d2d"/>
|
||||
<constraint firstAttribute="trailing" secondItem="nMe-JQ-ldk" secondAttribute="trailing" constant="8" id="GEu-gM-CNF"/>
|
||||
<constraint firstAttribute="width" secondItem="UDx-40-ORS" secondAttribute="height" multiplier="69:49" id="RZg-ls-eky"/>
|
||||
<constraint firstItem="nMe-JQ-ldk" firstAttribute="leading" secondItem="UDx-40-ORS" secondAttribute="leading" constant="8" id="t9T-Pg-eMl"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<navigationBar contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NfH-Md-IFn">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="44" id="wqp-NV-x0V"/>
|
||||
</constraints>
|
||||
<color key="barTintColor" cocoaTouchSystemColor="viewFlipsideBackgroundColor"/>
|
||||
<textAttributes key="titleTextAttributes">
|
||||
<color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</textAttributes>
|
||||
<items>
|
||||
<navigationItem title="A2iOS" id="vFD-A6-f26">
|
||||
<barButtonItem key="leftBarButtonItem" title="Power" id="wzl-9p-KCO">
|
||||
<connections>
|
||||
<action selector="Power:" destination="BYZ-38-t0r" id="9BP-2y-d77"/>
|
||||
</connections>
|
||||
</barButtonItem>
|
||||
<barButtonItem key="rightBarButtonItem" title="Reset" id="icP-Ci-Ygt">
|
||||
<color key="tintColor" red="1" green="0.36774935790000002" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="Reset:" destination="BYZ-38-t0r" id="xXh-Mp-ybp"/>
|
||||
</connections>
|
||||
</barButtonItem>
|
||||
</navigationItem>
|
||||
</items>
|
||||
</navigationBar>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Q9J-69-63J">
|
||||
<rect key="frame" x="274" y="346" width="120" height="26"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="120" id="Nub-YK-2HW"/>
|
||||
<constraint firstAttribute="height" constant="26" id="f39-gy-BwM"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LWV-xR-zzl">
|
||||
<rect key="frame" x="327" y="380" width="67" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="67" id="WHb-SE-Gkk"/>
|
||||
<constraint firstAttribute="height" constant="30" id="qDC-k4-fB7"/>
|
||||
</constraints>
|
||||
<state key="normal" title="1.023">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="speedSelected:" destination="BYZ-38-t0r" eventType="touchUpInside" id="MTU-in-qfq"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rYe-dy-hot">
|
||||
<rect key="frame" x="327" y="418" width="67" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="67" id="Mkd-qV-Kj1"/>
|
||||
<constraint firstAttribute="height" constant="30" id="oKy-qh-d9O"/>
|
||||
</constraints>
|
||||
<state key="normal" title="4">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="speedSelected:" destination="BYZ-38-t0r" eventType="touchUpInside" id="ple-Iy-dbb"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f9G-OM-FNm">
|
||||
<rect key="frame" x="327" y="456" width="67" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="67" id="8Y3-Vw-dfz"/>
|
||||
<constraint firstAttribute="height" constant="30" id="iTY-HK-wl7"/>
|
||||
</constraints>
|
||||
<state key="normal" title="10">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="speedSelected:" destination="BYZ-38-t0r" eventType="touchUpInside" id="qZz-rf-0Lj"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TLZ-33-q0M">
|
||||
<rect key="frame" x="327" y="494" width="67" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="30" id="8pg-Fn-9at"/>
|
||||
<constraint firstAttribute="width" constant="67" id="9SL-QA-6sZ"/>
|
||||
</constraints>
|
||||
<state key="normal" title="100">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="speedSelected:" destination="BYZ-38-t0r" eventType="touchUpInside" id="y7q-kK-3h3"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qNn-GH-aIG">
|
||||
<rect key="frame" x="327" y="532" width="67" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="67" id="mSD-q3-vE4"/>
|
||||
<constraint firstAttribute="height" constant="30" id="rXv-K3-Vr2"/>
|
||||
</constraints>
|
||||
<state key="normal" title="666">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="speedSelected:" destination="BYZ-38-t0r" eventType="touchUpInside" id="ILu-FW-q5i"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="InU-ap-ckM">
|
||||
<rect key="frame" x="8" y="346" width="67" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="30" id="ATG-c1-PNL"/>
|
||||
<constraint firstAttribute="width" constant="67" id="hoo-za-ij5"/>
|
||||
</constraints>
|
||||
<state key="normal" title="CATALOG">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="Command:" destination="BYZ-38-t0r" eventType="touchUpInside" id="vew-QM-cMf"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lGY-TL-dYl">
|
||||
<rect key="frame" x="8" y="384" width="67" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="67" id="TJ7-tO-TV6"/>
|
||||
<constraint firstAttribute="height" constant="30" id="rNb-jZ-CLx"/>
|
||||
</constraints>
|
||||
<state key="normal" title="LIST">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="Command:" destination="BYZ-38-t0r" eventType="touchUpInside" id="y6a-4h-noZ"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lBw-C9-kAw">
|
||||
<rect key="frame" x="8" y="422" width="67" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="67" id="C5g-6H-QPQ"/>
|
||||
<constraint firstAttribute="height" constant="30" id="Xsx-5I-uow"/>
|
||||
</constraints>
|
||||
<state key="normal" title="NEW">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="Command:" destination="BYZ-38-t0r" eventType="touchUpInside" id="aMt-1f-TfX"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xbl-kL-cRQ">
|
||||
<rect key="frame" x="8" y="460" width="280" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="280" id="4g2-2b-aRp"/>
|
||||
<constraint firstAttribute="height" constant="30" id="gGm-Qo-Gvf"/>
|
||||
</constraints>
|
||||
<state key="normal" title="LOAD RENUMBER">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="Command:" destination="BYZ-38-t0r" eventType="touchUpInside" id="pC3-Ii-hiD"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Wuq-OJ-QCj">
|
||||
<rect key="frame" x="8" y="498" width="280" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="280" id="RyG-XC-bdy"/>
|
||||
<constraint firstAttribute="height" constant="30" id="yiN-OC-wrq"/>
|
||||
</constraints>
|
||||
<state key="normal" title="BLOAD INTBASIC">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="Command:" destination="BYZ-38-t0r" eventType="touchUpInside" id="pju-Np-drJ"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PL9-nx-yy4">
|
||||
<rect key="frame" x="8" y="536" width="280" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="280" id="VYA-Dc-Vyv"/>
|
||||
<constraint firstAttribute="height" constant="30" id="Vc1-xv-qLq"/>
|
||||
</constraints>
|
||||
<state key="normal" title="FOR I = 1 TO 65536: PRINT I : NEXT">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="Command:" destination="BYZ-38-t0r" eventType="touchUpInside" id="gdZ-gr-yul"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Disk Accel" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DQV-kq-kpF">
|
||||
<rect key="frame" x="274" y="574" width="120" height="26"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="26" id="Bdd-pU-rtD"/>
|
||||
<constraint firstAttribute="width" constant="120" id="CHD-6p-heI"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" white="0.66666666669999997" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="XuV-wg-S6w">
|
||||
<rect key="frame" x="327" y="608" width="67" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="67" id="8rZ-oM-unL"/>
|
||||
<constraint firstAttribute="height" constant="30" id="Iho-Oo-RVC"/>
|
||||
</constraints>
|
||||
<state key="normal" title="1">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="diskAccelSepected:" destination="BYZ-38-t0r" eventType="touchUpInside" id="KV0-fG-qPP"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nzo-cq-BqT">
|
||||
<rect key="frame" x="327" y="646" width="67" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="30" id="GZe-0n-i9h"/>
|
||||
<constraint firstAttribute="width" constant="67" id="bfg-tJ-krJ"/>
|
||||
</constraints>
|
||||
<state key="normal" title="25">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="diskAccelSepected:" destination="BYZ-38-t0r" eventType="touchUpInside" id="mdd-la-FFe"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0PZ-a6-C0R">
|
||||
<rect key="frame" x="327" y="684" width="67" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="30" id="Ngo-hs-Tpl"/>
|
||||
<constraint firstAttribute="width" constant="67" id="RIc-Ya-YCY"/>
|
||||
</constraints>
|
||||
<state key="normal" title="100">
|
||||
<color key="titleColor" red="0.69019607839999997" green="0.90980392160000001" blue="0.51764705879999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="diskAccelSepected:" destination="BYZ-38-t0r" eventType="touchUpInside" id="1fW-4M-Vme"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" cocoaTouchSystemColor="viewFlipsideBackgroundColor"/>
|
||||
<constraints>
|
||||
<constraint firstItem="xbl-kL-cRQ" firstAttribute="top" secondItem="lBw-C9-kAw" secondAttribute="bottom" constant="8" id="0oS-2D-WjN"/>
|
||||
<constraint firstItem="Wuq-OJ-QCj" firstAttribute="leading" secondItem="xbl-kL-cRQ" secondAttribute="leading" id="1a6-oO-MR9"/>
|
||||
<co |