From 43ec68068e665cdab443b4887177364e82c5309b Mon Sep 17 00:00:00 2001 From: "Derek Knight (mac)" Date: Sat, 26 May 2018 15:52:10 +1200 Subject: [PATCH] Code copied from 2.0.2 DMG Sources folder --- ASR33/ASR33.h | 83 + ASR33/ASR33.m | 484 + ASR33/ASR33TextView.h | 35 + ASR33/ASR33TextView.m | 161 + ASR33/ASR33WindowController.h | 46 + ASR33/ASR33WindowController.m | 242 + ASR33/ASR33iot.c | 151 + ASR33/ASR33iot.h | 39 + ASR33/English.lproj/ASR33.nib/designable.nib | 1694 ++++ .../English.lproj/ASR33.nib/keyedobjects.nib | Bin 0 -> 19110 bytes .../English.lproj/ASR33OnlineHelp/index.html | 307 + ASR33/English.lproj/ASR33OnlineHelp/pdp8e.png | Bin 0 -> 1166 bytes .../English.lproj/ASR33OnlineHelp/styles.css | 239 + ASR33/English.lproj/InfoPlist.strings | 28 + ASR33/English.lproj/auxtty-io-info.plist | 59 + ASR33/English.lproj/io-info.plist | 59 + ASR33/Info.plist | 32 + ASR33/SpeakerLoud.png | Bin 0 -> 1210 bytes ASR33/SpeakerQuiet.png | Bin 0 -> 444 bytes ASR33/TypeaheadBuffer.h | 41 + ASR33/TypeaheadBuffer.m | 91 + ASR33/tty-backspace.mp3 | Bin 0 -> 7305 bytes ASR33/tty-bell.mp3 | Bin 0 -> 27821 bytes ASR33/tty-carriage-return.mp3 | Bin 0 -> 7456 bytes ASR33/tty-keystroke1.mp3 | Bin 0 -> 5251 bytes ASR33/tty-keystroke2.mp3 | Bin 0 -> 5256 bytes ASR33/tty-keystroke3.mp3 | Bin 0 -> 5257 bytes ASR33/tty-keystroke4.mp3 | Bin 0 -> 5257 bytes ASR33/tty-space.mp3 | Bin 0 -> 5565 bytes ASR33Preferences/ASR33Preferences.h | 28 + ASR33Preferences/ASR33Preferences.m | 41 + .../ASR33Preferences.nib/designable.nib | 884 ++ .../ASR33Preferences.nib/keyedobjects.nib | Bin 0 -> 17282 bytes .../English.lproj/InfoPlist.strings | 26 + ASR33Preferences/Info.plist | 56 + ASR33Preferences/asr33PrefIcon.jpg | Bin 0 -> 5054 bytes CPUPreferences/CPUPreferences.h | 37 + CPUPreferences/CPUPreferences.m | 43 + .../CPUPreferences.nib/designable.nib | 1035 ++ .../CPUPreferences.nib/keyedobjects.nib | Bin 0 -> 13509 bytes .../CPUPreferences~.nib/classes.nib | 34 + .../CPUPreferences~.nib/info.nib | 16 + .../CPUPreferences~.nib/keyedobjects.nib | Bin 0 -> 10441 bytes .../English.lproj/InfoPlist.strings | 26 + CPUPreferences/Info.plist | 34 + CPUPreferences/cpuPrefIcon.jpg | Bin 0 -> 1601 bytes CPUWindow/CPUMemoryViewController.h | 44 + CPUWindow/CPUMemoryViewController.m | 654 ++ CPUWindow/CPUWindowController.h | 60 + CPUWindow/CPUWindowController.m | 461 + CPUWindow/IOFlagController.h | 42 + CPUWindow/IOFlagController.m | 199 + CPUWindow/SkipController.h | 38 + CPUWindow/SkipController.m | 174 + Categories/FileDropControlTargetProtocol.h | 35 + Categories/NSControl+FileDrop.h | 30 + Categories/NSControl+FileDrop.m | 71 + Categories/NSFileManager+Additions.h | 32 + Categories/NSFileManager+Additions.m | 150 + Categories/NSMutableArray+BinarySearch.h | 30 + Categories/NSMutableArray+BinarySearch.m | 96 + Categories/NSTableView+Scrolling.h | 29 + Categories/NSTableView+Scrolling.m | 53 + Categories/NSThread+MainThread.h | 29 + Categories/NSThread+MainThread.m | 39 + Emulation/PDP8.h | 316 + Emulation/PDP8.m | 1345 +++ Emulation/eae.c | 1255 +++ Emulation/eae.h | 171 + Emulation/iot.c | 576 ++ Emulation/iot.h | 109 + Emulation/itab.c | 1095 +++ Emulation/itab.h | 25 + Emulation/mri.c | 587 ++ Emulation/mri.h | 95 + Emulation/opr.c | 3062 ++++++ Emulation/opr.h | 472 + Emulation/pdp8defines.h | 80 + .../GeneralPreferences.nib/classes.nib | 59 + .../GeneralPreferences.nib/info.nib | 20 + .../GeneralPreferences.nib/keyedobjects.nib | Bin 0 -> 24007 bytes .../GeneralPreferences~.nib/classes.nib | 35 + .../GeneralPreferences~.nib/info.nib | 16 + .../GeneralPreferences~.nib/keyedobjects.nib | Bin 0 -> 14402 bytes .../English.lproj/InfoPlist.strings | 26 + GeneralPreferences/GeneralPreferences.h | 26 + GeneralPreferences/GeneralPreferences.m | 41 + GeneralPreferences/Info.plist | 34 + GeneralPreferences/generalPrefIcon.tiff | Bin 0 -> 2046 bytes KC8EA/BackgroundView.h | 33 + KC8EA/BackgroundView.m | 47 + KC8EA/ConsoleSwitchCell.h | 46 + KC8EA/ConsoleSwitchCell.m | 92 + KC8EA/English.lproj/InfoPlist.strings | 28 + KC8EA/English.lproj/KC8EA.nib/designable.nib | 5123 ++++++++++ .../English.lproj/KC8EA.nib/keyedobjects.nib | Bin 0 -> 43115 bytes .../English.lproj/KC8EAOnlineHelp/index.html | 314 + KC8EA/English.lproj/KC8EAOnlineHelp/pdp8e.png | Bin 0 -> 1166 bytes .../English.lproj/KC8EAOnlineHelp/styles.css | 239 + KC8EA/English.lproj/io-info.plist | 37 + KC8EA/Info.plist | 32 + KC8EA/KC8EA.h | 103 + KC8EA/KC8EA.m | 555 ++ KC8EA/KnobCell.h | 38 + KC8EA/KnobCell.m | 119 + KC8EA/StateMachine.h | 61 + KC8EA/StateMachine.m | 415 + KC8EA/addrload_down.png | Bin 0 -> 3435 bytes KC8EA/addrload_up_extdaddrload_down.png | Bin 0 -> 3920 bytes KC8EA/addrload_up_extdaddrload_up.png | Bin 0 -> 3931 bytes KC8EA/background.png | Bin 0 -> 1236777 bytes KC8EA/clear_down.png | Bin 0 -> 3356 bytes KC8EA/clear_up_cont_down.png | Bin 0 -> 3940 bytes KC8EA/clear_up_cont_up.png | Bin 0 -> 3989 bytes KC8EA/cont_down.png | Bin 0 -> 3186 bytes KC8EA/cont_up_exam_down.png | Bin 0 -> 3628 bytes KC8EA/cont_up_exam_up.png | Bin 0 -> 3676 bytes KC8EA/dep_down.png | Bin 0 -> 3823 bytes KC8EA/dep_up.png | Bin 0 -> 3758 bytes KC8EA/exam_down.png | Bin 0 -> 3339 bytes KC8EA/exam_up_halt_down.png | Bin 0 -> 3823 bytes KC8EA/exam_up_halt_up.png | Bin 0 -> 3872 bytes KC8EA/extdaddrload_down.png | Bin 0 -> 3407 bytes KC8EA/extdaddrload_up.png | Bin 0 -> 3904 bytes KC8EA/halt_down.png | Bin 0 -> 3376 bytes KC8EA/halt_up_singstep_down.png | Bin 0 -> 3550 bytes KC8EA/halt_up_singstep_up.png | Bin 0 -> 3574 bytes KC8EA/key0.png | Bin 0 -> 17119 bytes KC8EA/key1.png | Bin 0 -> 16942 bytes KC8EA/key2.png | Bin 0 -> 17506 bytes KC8EA/knob0.png | Bin 0 -> 14794 bytes KC8EA/knob1.png | Bin 0 -> 14897 bytes KC8EA/knob2.png | Bin 0 -> 14860 bytes KC8EA/knob3.png | Bin 0 -> 14822 bytes KC8EA/knob4.png | Bin 0 -> 14793 bytes KC8EA/knob5.png | Bin 0 -> 14780 bytes KC8EA/light_off.png | Bin 0 -> 642 bytes KC8EA/light_on.png | Bin 0 -> 814 bytes KC8EA/singstep_down.png | Bin 0 -> 3588 bytes KC8EA/singstep_up.png | Bin 0 -> 3847 bytes KC8EA/sr0down.png | Bin 0 -> 3406 bytes KC8EA/sr0up_sr1down.png | Bin 0 -> 3706 bytes KC8EA/sr0up_sr1up.png | Bin 0 -> 3749 bytes KC8EA/sr10down.png | Bin 0 -> 3247 bytes KC8EA/sr10up_sr11down.png | Bin 0 -> 3711 bytes KC8EA/sr10up_sr11up.png | Bin 0 -> 3753 bytes KC8EA/sr11down.png | Bin 0 -> 3385 bytes KC8EA/sr11up.png | Bin 0 -> 3768 bytes KC8EA/sr1down.png | Bin 0 -> 3399 bytes KC8EA/sr1up_sr2down.png | Bin 0 -> 3765 bytes KC8EA/sr1up_sr2up.png | Bin 0 -> 3807 bytes KC8EA/sr2down.png | Bin 0 -> 3326 bytes KC8EA/sr2up_sr3down.png | Bin 0 -> 3699 bytes KC8EA/sr2up_sr3up.png | Bin 0 -> 3723 bytes KC8EA/sr3down.png | Bin 0 -> 3318 bytes KC8EA/sr3up_sr4down.png | Bin 0 -> 3634 bytes KC8EA/sr3up_sr4up.png | Bin 0 -> 3702 bytes KC8EA/sr4down.png | Bin 0 -> 3386 bytes KC8EA/sr4up_sr5down.png | Bin 0 -> 3676 bytes KC8EA/sr4up_sr5up.png | Bin 0 -> 3728 bytes KC8EA/sr5down.png | Bin 0 -> 3265 bytes KC8EA/sr5up_sr6down.png | Bin 0 -> 3666 bytes KC8EA/sr5up_sr6up.png | Bin 0 -> 3713 bytes KC8EA/sr6down.png | Bin 0 -> 3439 bytes KC8EA/sr6up_sr7down.png | Bin 0 -> 3899 bytes KC8EA/sr6up_sr7up.png | Bin 0 -> 3914 bytes KC8EA/sr7down.png | Bin 0 -> 3417 bytes KC8EA/sr7up_sr8down.png | Bin 0 -> 3911 bytes KC8EA/sr7up_sr8up.png | Bin 0 -> 3940 bytes KC8EA/sr8down.png | Bin 0 -> 3296 bytes KC8EA/sr8up_sr9down.png | Bin 0 -> 3817 bytes KC8EA/sr8up_sr9up.png | Bin 0 -> 3860 bytes KC8EA/sr9down.png | Bin 0 -> 3376 bytes KC8EA/sr9up_sr10down.png | Bin 0 -> 3814 bytes KC8EA/sr9up_sr10up.png | Bin 0 -> 3872 bytes KC8EA/sw_down.png | Bin 0 -> 3686 bytes KC8EA/sw_up.png | Bin 0 -> 4035 bytes Main/MainController.h | 61 + Main/MainController.m | 324 + Main/main.m | 31 + MemoryInspector/MemoryInspector6BitASCII.m | 164 + MemoryInspector/MemoryInspector8BitASCII.m | 149 + MemoryInspector/MemoryInspectorController.h | 51 + MemoryInspector/MemoryInspectorController.m | 448 + .../MemoryInspectorDWSignedInteger.m | 139 + .../MemoryInspectorDWUnsignedInteger.m | 137 + .../MemoryInspectorFPP8AEPFloatingPoint.m | 136 + .../MemoryInspectorFPP8AFPFloatingPoint.m | 129 + .../MemoryInspectorFortranIIFloatingPoint.m | 131 + .../MemoryInspectorOS8Packed8BitASCII.m | 178 + .../MemoryInspectorPascalSFloatingPoint.m | 131 + MemoryInspector/MemoryInspectorProtocol.h | 44 + .../MemoryInspectorSignedInteger.m | 145 + .../MemoryInspectorUnsignedInteger.m | 139 + PC8E/English.lproj/InfoPlist.strings | 28 + PC8E/English.lproj/PC8E.nib/designable.nib | 1213 +++ PC8E/English.lproj/PC8E.nib/keyedobjects.nib | Bin 0 -> 12099 bytes .../PC8EOnlineHelp/ascii_tape.png | Bin 0 -> 7944 bytes .../English.lproj/PC8EOnlineHelp/bin_tape.png | Bin 0 -> 8705 bytes PC8E/English.lproj/PC8EOnlineHelp/index.html | 194 + PC8E/English.lproj/PC8EOnlineHelp/pdp8e.png | Bin 0 -> 1166 bytes .../English.lproj/PC8EOnlineHelp/rim_tape.png | Bin 0 -> 8034 bytes PC8E/English.lproj/PC8EOnlineHelp/styles.css | 239 + PC8E/English.lproj/io-info.plist | 59 + PC8E/Info.plist | 32 + PC8E/PC8E.h | 73 + PC8E/PC8E.m | 382 + PC8E/PC8Eiot.c | 124 + PC8E/PC8Eiot.h | 36 + Panels/BootstrapPanelController.h | 39 + Panels/BootstrapPanelController.m | 121 + Panels/BreakpointController.h | 43 + Panels/BreakpointController.m | 228 + Panels/PreferencesController.h | 36 + Panels/PreferencesController.m | 228 + Plugins/HelpMenuManager.h | 35 + Plugins/HelpMenuManager.m | 167 + Plugins/Info.plist | 22 + Plugins/PluginAPI.h | 93 + Plugins/PluginAPI.m | 149 + Plugins/PluginManager.h | 39 + Plugins/PluginManager.m | 280 + RK8E/English.lproj/InfoPlist.strings | 28 + RK8E/English.lproj/RK8E.nib/designable.nib | 4652 +++++++++ RK8E/English.lproj/RK8E.nib/keyedobjects.nib | Bin 0 -> 41635 bytes RK8E/English.lproj/RK8EOnlineHelp/index.html | 268 + RK8E/English.lproj/RK8EOnlineHelp/pdp8e.png | Bin 0 -> 1166 bytes RK8E/English.lproj/RK8EOnlineHelp/styles.css | 239 + RK8E/English.lproj/io-info.plist | 47 + RK8E/Info.plist | 32 + RK8E/RK05.h | 77 + RK8E/RK05.m | 512 + RK8E/RK05Controller.h | 40 + RK8E/RK05Controller.m | 252 + RK8E/RK8E.h | 141 + RK8E/RK8E.m | 427 + RK8E/RK8EController.h | 61 + RK8E/RK8EController.m | 184 + RK8E/RK8Eiot.c | 383 + RK8E/RK8Eiot.h | 32 + ReadMe.rtf | 9 + Resources/English.lproj/Credits.html | 73 + Resources/English.lproj/InfoPlist.strings | Bin 0 -> 2148 bytes .../English.lproj/MainMenu.nib/designable.nib | 8665 +++++++++++++++++ .../MainMenu.nib/keyedobjects.nib | Bin 0 -> 114470 bytes .../AsciiCharacterTable.html | 240 + .../OnlineHelp/DataFormats/DataFormats.html | 157 + .../OnlineHelp/DataFormats/fortran2fp.png | Bin 0 -> 11256 bytes .../OnlineHelp/DataFormats/fpp8a_fp.png | Bin 0 -> 12508 bytes .../ExtendedArithmeticElement.html | 461 + .../InterruptControl/InterruptControl.html | 170 + .../MemoryExtension/MemoryExtension.html | 164 + .../MRI-Example.png | Bin 0 -> 44672 bytes .../MemoryReferenceInstructions.html | 221 + .../OperateInstructions.html | 745 ++ .../PDP8InstructionFormat.html | 196 + Resources/English.lproj/OnlineHelp/index.html | 71 + .../OnlineHelp/resources/pdp8e.png | Bin 0 -> 1166 bytes .../OnlineHelp/resources/pdp8e_256x256.png | Bin 0 -> 262950 bytes .../OnlineHelp/resources/styles.css | 239 + Resources/English.lproj/disassembler.plist | 1358 +++ Resources/Info.plist | 122 + Resources/alignMemoryArrow.tiff | Bin 0 -> 966 bytes Resources/assembler.plist | 1005 ++ Resources/bb.tiff | Bin 0 -> 1298 bytes Resources/binLoader.rim | Bin 0 -> 556 bytes Resources/bootstrapToolbarIcon.tiff | Bin 0 -> 4314 bytes Resources/bracket.png | Bin 0 -> 392 bytes Resources/breakOpcode.tiff | Bin 0 -> 842 bytes Resources/breakOpcodeS.tiff | Bin 0 -> 1274 bytes Resources/breakOpcodeU.tiff | Bin 0 -> 1274 bytes Resources/breakpoint.tiff | Bin 0 -> 844 bytes Resources/breakpointsToolbarIcon.tiff | Bin 0 -> 1424 bytes Resources/decpack.icns | Bin 0 -> 117504 bytes Resources/goToolbarIcon.tiff | Bin 0 -> 2208 bytes Resources/highspeedRIM.bin | Bin 0 -> 38 bytes Resources/interruptArrow.tiff | Bin 0 -> 1118 bytes Resources/lowspeedRIM.bin | Bin 0 -> 38 bytes Resources/memoryInspectorToolbarIcon.tiff | Bin 0 -> 4412 bytes Resources/papertape.icns | Bin 0 -> 115597 bytes Resources/pcArrowBlue.tiff | Bin 0 -> 1738 bytes Resources/pcArrowGraphite.tiff | Bin 0 -> 1722 bytes Resources/pdp8e.icns | Bin 0 -> 239363 bytes Resources/plugin.icns | Bin 0 -> 160466 bytes Resources/resetToolbarIcon.tiff | Bin 0 -> 2454 bytes Resources/rk8eBootcode.bin | 1 + Resources/skipArrow.tiff | Bin 0 -> 1118 bytes Resources/stepToolbarIcon.tiff | Bin 0 -> 2232 bytes Resources/stopToolbarIcon.tiff | Bin 0 -> 2110 bytes Resources/traceToolbarIcon.tiff | Bin 0 -> 2302 bytes TSC8/English.lproj/InfoPlist.strings | 28 + TSC8/English.lproj/TSC8.nib/designable.nib | 919 ++ TSC8/English.lproj/TSC8.nib/keyedobjects.nib | Bin 0 -> 8814 bytes TSC8/English.lproj/TSC8OnlineHelp/index.html | 211 + TSC8/English.lproj/TSC8OnlineHelp/pdp8e.png | Bin 0 -> 1166 bytes TSC8/English.lproj/TSC8OnlineHelp/styles.css | 239 + TSC8/English.lproj/io-info.plist | 47 + TSC8/Info.plist | 32 + TSC8/TSC8.h | 42 + TSC8/TSC8.m | 293 + TSC8/TSC8iot.c | 120 + TSC8/TSC8iot.h | 35 + Utilities/Assembler.h | 39 + Utilities/Assembler.m | 340 + Utilities/Breakpoint.h | 47 + Utilities/Breakpoint.m | 92 + Utilities/BreakpointArray.h | 58 + Utilities/BreakpointArray.m | 183 + Utilities/Disassembler.h | 46 + Utilities/Disassembler.m | 281 + Utilities/EnableDisableTextField.h | 29 + Utilities/EnableDisableTextField.m | 40 + Utilities/FloatingPointNumber.h | 50 + Utilities/FloatingPointNumber.m | 170 + Utilities/InputConsumerProtocol.h | 29 + Utilities/KeepInMenuWindow.h | 32 + Utilities/KeepInMenuWindow.m | 103 + Utilities/NonWrappingTableView.h | 30 + Utilities/NonWrappingTableView.m | 70 + Utilities/OctalFormatter.h | 39 + Utilities/OctalFormatter.m | 159 + Utilities/Opcode.h | 44 + Utilities/Opcode.m | 104 + Utilities/OpcodeFormatter.h | 46 + Utilities/OpcodeFormatter.m | 78 + Utilities/PaperTapeController.h | 46 + Utilities/PaperTapeController.m | 266 + Utilities/PaperTapeProgressIndicator.h | 34 + Utilities/PaperTapeProgressIndicator.m | 82 + Utilities/RegisterFormCell.h | 37 + Utilities/RegisterFormCell.m | 97 + Utilities/TableCornerView.h | 35 + Utilities/TableCornerView.m | 167 + Utilities/Unicode.h | 48 + Utilities/Utilities.c | 96 + Utilities/Utilities.h | 102 + pdp8e-simulator.xcodeproj/bb.mode1 | 1637 ++++ pdp8e-simulator.xcodeproj/bb.perspective | 1482 +++ pdp8e-simulator.xcodeproj/project.pbxproj | 3468 +++++++ .../contents.xcworkspacedata | 7 + 340 files changed, 64392 insertions(+) create mode 100644 ASR33/ASR33.h create mode 100644 ASR33/ASR33.m create mode 100644 ASR33/ASR33TextView.h create mode 100644 ASR33/ASR33TextView.m create mode 100644 ASR33/ASR33WindowController.h create mode 100644 ASR33/ASR33WindowController.m create mode 100644 ASR33/ASR33iot.c create mode 100644 ASR33/ASR33iot.h create mode 100644 ASR33/English.lproj/ASR33.nib/designable.nib create mode 100644 ASR33/English.lproj/ASR33.nib/keyedobjects.nib create mode 100644 ASR33/English.lproj/ASR33OnlineHelp/index.html create mode 100644 ASR33/English.lproj/ASR33OnlineHelp/pdp8e.png create mode 100644 ASR33/English.lproj/ASR33OnlineHelp/styles.css create mode 100644 ASR33/English.lproj/InfoPlist.strings create mode 100644 ASR33/English.lproj/auxtty-io-info.plist create mode 100644 ASR33/English.lproj/io-info.plist create mode 100644 ASR33/Info.plist create mode 100644 ASR33/SpeakerLoud.png create mode 100644 ASR33/SpeakerQuiet.png create mode 100644 ASR33/TypeaheadBuffer.h create mode 100644 ASR33/TypeaheadBuffer.m create mode 100644 ASR33/tty-backspace.mp3 create mode 100644 ASR33/tty-bell.mp3 create mode 100644 ASR33/tty-carriage-return.mp3 create mode 100644 ASR33/tty-keystroke1.mp3 create mode 100644 ASR33/tty-keystroke2.mp3 create mode 100644 ASR33/tty-keystroke3.mp3 create mode 100644 ASR33/tty-keystroke4.mp3 create mode 100644 ASR33/tty-space.mp3 create mode 100644 ASR33Preferences/ASR33Preferences.h create mode 100644 ASR33Preferences/ASR33Preferences.m create mode 100644 ASR33Preferences/English.lproj/ASR33Preferences.nib/designable.nib create mode 100644 ASR33Preferences/English.lproj/ASR33Preferences.nib/keyedobjects.nib create mode 100644 ASR33Preferences/English.lproj/InfoPlist.strings create mode 100644 ASR33Preferences/Info.plist create mode 100644 ASR33Preferences/asr33PrefIcon.jpg create mode 100644 CPUPreferences/CPUPreferences.h create mode 100644 CPUPreferences/CPUPreferences.m create mode 100644 CPUPreferences/English.lproj/CPUPreferences.nib/designable.nib create mode 100644 CPUPreferences/English.lproj/CPUPreferences.nib/keyedobjects.nib create mode 100644 CPUPreferences/English.lproj/CPUPreferences~.nib/classes.nib create mode 100644 CPUPreferences/English.lproj/CPUPreferences~.nib/info.nib create mode 100644 CPUPreferences/English.lproj/CPUPreferences~.nib/keyedobjects.nib create mode 100644 CPUPreferences/English.lproj/InfoPlist.strings create mode 100644 CPUPreferences/Info.plist create mode 100644 CPUPreferences/cpuPrefIcon.jpg create mode 100644 CPUWindow/CPUMemoryViewController.h create mode 100644 CPUWindow/CPUMemoryViewController.m create mode 100644 CPUWindow/CPUWindowController.h create mode 100644 CPUWindow/CPUWindowController.m create mode 100644 CPUWindow/IOFlagController.h create mode 100644 CPUWindow/IOFlagController.m create mode 100644 CPUWindow/SkipController.h create mode 100644 CPUWindow/SkipController.m create mode 100644 Categories/FileDropControlTargetProtocol.h create mode 100644 Categories/NSControl+FileDrop.h create mode 100644 Categories/NSControl+FileDrop.m create mode 100644 Categories/NSFileManager+Additions.h create mode 100644 Categories/NSFileManager+Additions.m create mode 100644 Categories/NSMutableArray+BinarySearch.h create mode 100644 Categories/NSMutableArray+BinarySearch.m create mode 100644 Categories/NSTableView+Scrolling.h create mode 100644 Categories/NSTableView+Scrolling.m create mode 100644 Categories/NSThread+MainThread.h create mode 100644 Categories/NSThread+MainThread.m create mode 100644 Emulation/PDP8.h create mode 100644 Emulation/PDP8.m create mode 100644 Emulation/eae.c create mode 100644 Emulation/eae.h create mode 100644 Emulation/iot.c create mode 100644 Emulation/iot.h create mode 100644 Emulation/itab.c create mode 100644 Emulation/itab.h create mode 100644 Emulation/mri.c create mode 100644 Emulation/mri.h create mode 100644 Emulation/opr.c create mode 100644 Emulation/opr.h create mode 100644 Emulation/pdp8defines.h create mode 100644 GeneralPreferences/English.lproj/GeneralPreferences.nib/classes.nib create mode 100644 GeneralPreferences/English.lproj/GeneralPreferences.nib/info.nib create mode 100644 GeneralPreferences/English.lproj/GeneralPreferences.nib/keyedobjects.nib create mode 100644 GeneralPreferences/English.lproj/GeneralPreferences~.nib/classes.nib create mode 100644 GeneralPreferences/English.lproj/GeneralPreferences~.nib/info.nib create mode 100644 GeneralPreferences/English.lproj/GeneralPreferences~.nib/keyedobjects.nib create mode 100644 GeneralPreferences/English.lproj/InfoPlist.strings create mode 100644 GeneralPreferences/GeneralPreferences.h create mode 100644 GeneralPreferences/GeneralPreferences.m create mode 100644 GeneralPreferences/Info.plist create mode 100644 GeneralPreferences/generalPrefIcon.tiff create mode 100644 KC8EA/BackgroundView.h create mode 100644 KC8EA/BackgroundView.m create mode 100644 KC8EA/ConsoleSwitchCell.h create mode 100644 KC8EA/ConsoleSwitchCell.m create mode 100644 KC8EA/English.lproj/InfoPlist.strings create mode 100644 KC8EA/English.lproj/KC8EA.nib/designable.nib create mode 100644 KC8EA/English.lproj/KC8EA.nib/keyedobjects.nib create mode 100644 KC8EA/English.lproj/KC8EAOnlineHelp/index.html create mode 100644 KC8EA/English.lproj/KC8EAOnlineHelp/pdp8e.png create mode 100644 KC8EA/English.lproj/KC8EAOnlineHelp/styles.css create mode 100644 KC8EA/English.lproj/io-info.plist create mode 100644 KC8EA/Info.plist create mode 100644 KC8EA/KC8EA.h create mode 100644 KC8EA/KC8EA.m create mode 100644 KC8EA/KnobCell.h create mode 100644 KC8EA/KnobCell.m create mode 100644 KC8EA/StateMachine.h create mode 100644 KC8EA/StateMachine.m create mode 100644 KC8EA/addrload_down.png create mode 100644 KC8EA/addrload_up_extdaddrload_down.png create mode 100644 KC8EA/addrload_up_extdaddrload_up.png create mode 100644 KC8EA/background.png create mode 100644 KC8EA/clear_down.png create mode 100644 KC8EA/clear_up_cont_down.png create mode 100644 KC8EA/clear_up_cont_up.png create mode 100644 KC8EA/cont_down.png create mode 100644 KC8EA/cont_up_exam_down.png create mode 100644 KC8EA/cont_up_exam_up.png create mode 100644 KC8EA/dep_down.png create mode 100644 KC8EA/dep_up.png create mode 100644 KC8EA/exam_down.png create mode 100644 KC8EA/exam_up_halt_down.png create mode 100644 KC8EA/exam_up_halt_up.png create mode 100644 KC8EA/extdaddrload_down.png create mode 100644 KC8EA/extdaddrload_up.png create mode 100644 KC8EA/halt_down.png create mode 100644 KC8EA/halt_up_singstep_down.png create mode 100644 KC8EA/halt_up_singstep_up.png create mode 100644 KC8EA/key0.png create mode 100644 KC8EA/key1.png create mode 100644 KC8EA/key2.png create mode 100644 KC8EA/knob0.png create mode 100644 KC8EA/knob1.png create mode 100644 KC8EA/knob2.png create mode 100644 KC8EA/knob3.png create mode 100644 KC8EA/knob4.png create mode 100644 KC8EA/knob5.png create mode 100644 KC8EA/light_off.png create mode 100644 KC8EA/light_on.png create mode 100644 KC8EA/singstep_down.png create mode 100644 KC8EA/singstep_up.png create mode 100644 KC8EA/sr0down.png create mode 100644 KC8EA/sr0up_sr1down.png create mode 100644 KC8EA/sr0up_sr1up.png create mode 100644 KC8EA/sr10down.png create mode 100644 KC8EA/sr10up_sr11down.png create mode 100644 KC8EA/sr10up_sr11up.png create mode 100644 KC8EA/sr11down.png create mode 100644 KC8EA/sr11up.png create mode 100644 KC8EA/sr1down.png create mode 100644 KC8EA/sr1up_sr2down.png create mode 100644 KC8EA/sr1up_sr2up.png create mode 100644 KC8EA/sr2down.png create mode 100644 KC8EA/sr2up_sr3down.png create mode 100644 KC8EA/sr2up_sr3up.png create mode 100644 KC8EA/sr3down.png create mode 100644 KC8EA/sr3up_sr4down.png create mode 100644 KC8EA/sr3up_sr4up.png create mode 100644 KC8EA/sr4down.png create mode 100644 KC8EA/sr4up_sr5down.png create mode 100644 KC8EA/sr4up_sr5up.png create mode 100644 KC8EA/sr5down.png create mode 100644 KC8EA/sr5up_sr6down.png create mode 100644 KC8EA/sr5up_sr6up.png create mode 100644 KC8EA/sr6down.png create mode 100644 KC8EA/sr6up_sr7down.png create mode 100644 KC8EA/sr6up_sr7up.png create mode 100644 KC8EA/sr7down.png create mode 100644 KC8EA/sr7up_sr8down.png create mode 100644 KC8EA/sr7up_sr8up.png create mode 100644 KC8EA/sr8down.png create mode 100644 KC8EA/sr8up_sr9down.png create mode 100644 KC8EA/sr8up_sr9up.png create mode 100644 KC8EA/sr9down.png create mode 100644 KC8EA/sr9up_sr10down.png create mode 100644 KC8EA/sr9up_sr10up.png create mode 100644 KC8EA/sw_down.png create mode 100644 KC8EA/sw_up.png create mode 100644 Main/MainController.h create mode 100644 Main/MainController.m create mode 100644 Main/main.m create mode 100644 MemoryInspector/MemoryInspector6BitASCII.m create mode 100644 MemoryInspector/MemoryInspector8BitASCII.m create mode 100644 MemoryInspector/MemoryInspectorController.h create mode 100644 MemoryInspector/MemoryInspectorController.m create mode 100644 MemoryInspector/MemoryInspectorDWSignedInteger.m create mode 100644 MemoryInspector/MemoryInspectorDWUnsignedInteger.m create mode 100644 MemoryInspector/MemoryInspectorFPP8AEPFloatingPoint.m create mode 100644 MemoryInspector/MemoryInspectorFPP8AFPFloatingPoint.m create mode 100644 MemoryInspector/MemoryInspectorFortranIIFloatingPoint.m create mode 100644 MemoryInspector/MemoryInspectorOS8Packed8BitASCII.m create mode 100644 MemoryInspector/MemoryInspectorPascalSFloatingPoint.m create mode 100644 MemoryInspector/MemoryInspectorProtocol.h create mode 100644 MemoryInspector/MemoryInspectorSignedInteger.m create mode 100644 MemoryInspector/MemoryInspectorUnsignedInteger.m create mode 100644 PC8E/English.lproj/InfoPlist.strings create mode 100644 PC8E/English.lproj/PC8E.nib/designable.nib create mode 100644 PC8E/English.lproj/PC8E.nib/keyedobjects.nib create mode 100644 PC8E/English.lproj/PC8EOnlineHelp/ascii_tape.png create mode 100644 PC8E/English.lproj/PC8EOnlineHelp/bin_tape.png create mode 100644 PC8E/English.lproj/PC8EOnlineHelp/index.html create mode 100644 PC8E/English.lproj/PC8EOnlineHelp/pdp8e.png create mode 100644 PC8E/English.lproj/PC8EOnlineHelp/rim_tape.png create mode 100644 PC8E/English.lproj/PC8EOnlineHelp/styles.css create mode 100644 PC8E/English.lproj/io-info.plist create mode 100644 PC8E/Info.plist create mode 100644 PC8E/PC8E.h create mode 100644 PC8E/PC8E.m create mode 100644 PC8E/PC8Eiot.c create mode 100644 PC8E/PC8Eiot.h create mode 100644 Panels/BootstrapPanelController.h create mode 100644 Panels/BootstrapPanelController.m create mode 100644 Panels/BreakpointController.h create mode 100644 Panels/BreakpointController.m create mode 100644 Panels/PreferencesController.h create mode 100644 Panels/PreferencesController.m create mode 100644 Plugins/HelpMenuManager.h create mode 100644 Plugins/HelpMenuManager.m create mode 100644 Plugins/Info.plist create mode 100644 Plugins/PluginAPI.h create mode 100644 Plugins/PluginAPI.m create mode 100644 Plugins/PluginManager.h create mode 100644 Plugins/PluginManager.m create mode 100644 RK8E/English.lproj/InfoPlist.strings create mode 100644 RK8E/English.lproj/RK8E.nib/designable.nib create mode 100644 RK8E/English.lproj/RK8E.nib/keyedobjects.nib create mode 100644 RK8E/English.lproj/RK8EOnlineHelp/index.html create mode 100644 RK8E/English.lproj/RK8EOnlineHelp/pdp8e.png create mode 100644 RK8E/English.lproj/RK8EOnlineHelp/styles.css create mode 100644 RK8E/English.lproj/io-info.plist create mode 100644 RK8E/Info.plist create mode 100644 RK8E/RK05.h create mode 100644 RK8E/RK05.m create mode 100644 RK8E/RK05Controller.h create mode 100644 RK8E/RK05Controller.m create mode 100644 RK8E/RK8E.h create mode 100644 RK8E/RK8E.m create mode 100644 RK8E/RK8EController.h create mode 100644 RK8E/RK8EController.m create mode 100644 RK8E/RK8Eiot.c create mode 100644 RK8E/RK8Eiot.h create mode 100644 ReadMe.rtf create mode 100644 Resources/English.lproj/Credits.html create mode 100644 Resources/English.lproj/InfoPlist.strings create mode 100644 Resources/English.lproj/MainMenu.nib/designable.nib create mode 100644 Resources/English.lproj/MainMenu.nib/keyedobjects.nib create mode 100644 Resources/English.lproj/OnlineHelp/AsciiCharacterTable/AsciiCharacterTable.html create mode 100644 Resources/English.lproj/OnlineHelp/DataFormats/DataFormats.html create mode 100644 Resources/English.lproj/OnlineHelp/DataFormats/fortran2fp.png create mode 100644 Resources/English.lproj/OnlineHelp/DataFormats/fpp8a_fp.png create mode 100644 Resources/English.lproj/OnlineHelp/ExtendedArithmeticElement/ExtendedArithmeticElement.html create mode 100644 Resources/English.lproj/OnlineHelp/InterruptControl/InterruptControl.html create mode 100644 Resources/English.lproj/OnlineHelp/MemoryExtension/MemoryExtension.html create mode 100644 Resources/English.lproj/OnlineHelp/MemoryReferenceInstructions/MRI-Example.png create mode 100644 Resources/English.lproj/OnlineHelp/MemoryReferenceInstructions/MemoryReferenceInstructions.html create mode 100644 Resources/English.lproj/OnlineHelp/OperateInstructions/OperateInstructions.html create mode 100644 Resources/English.lproj/OnlineHelp/PDP8InstructionFormat/PDP8InstructionFormat.html create mode 100644 Resources/English.lproj/OnlineHelp/index.html create mode 100644 Resources/English.lproj/OnlineHelp/resources/pdp8e.png create mode 100644 Resources/English.lproj/OnlineHelp/resources/pdp8e_256x256.png create mode 100644 Resources/English.lproj/OnlineHelp/resources/styles.css create mode 100644 Resources/English.lproj/disassembler.plist create mode 100644 Resources/Info.plist create mode 100644 Resources/alignMemoryArrow.tiff create mode 100644 Resources/assembler.plist create mode 100644 Resources/bb.tiff create mode 100644 Resources/binLoader.rim create mode 100644 Resources/bootstrapToolbarIcon.tiff create mode 100644 Resources/bracket.png create mode 100644 Resources/breakOpcode.tiff create mode 100644 Resources/breakOpcodeS.tiff create mode 100644 Resources/breakOpcodeU.tiff create mode 100644 Resources/breakpoint.tiff create mode 100644 Resources/breakpointsToolbarIcon.tiff create mode 100644 Resources/decpack.icns create mode 100644 Resources/goToolbarIcon.tiff create mode 100644 Resources/highspeedRIM.bin create mode 100644 Resources/interruptArrow.tiff create mode 100644 Resources/lowspeedRIM.bin create mode 100644 Resources/memoryInspectorToolbarIcon.tiff create mode 100644 Resources/papertape.icns create mode 100644 Resources/pcArrowBlue.tiff create mode 100644 Resources/pcArrowGraphite.tiff create mode 100644 Resources/pdp8e.icns create mode 100644 Resources/plugin.icns create mode 100644 Resources/resetToolbarIcon.tiff create mode 100644 Resources/rk8eBootcode.bin create mode 100644 Resources/skipArrow.tiff create mode 100644 Resources/stepToolbarIcon.tiff create mode 100644 Resources/stopToolbarIcon.tiff create mode 100644 Resources/traceToolbarIcon.tiff create mode 100644 TSC8/English.lproj/InfoPlist.strings create mode 100644 TSC8/English.lproj/TSC8.nib/designable.nib create mode 100644 TSC8/English.lproj/TSC8.nib/keyedobjects.nib create mode 100644 TSC8/English.lproj/TSC8OnlineHelp/index.html create mode 100644 TSC8/English.lproj/TSC8OnlineHelp/pdp8e.png create mode 100644 TSC8/English.lproj/TSC8OnlineHelp/styles.css create mode 100644 TSC8/English.lproj/io-info.plist create mode 100644 TSC8/Info.plist create mode 100644 TSC8/TSC8.h create mode 100644 TSC8/TSC8.m create mode 100644 TSC8/TSC8iot.c create mode 100644 TSC8/TSC8iot.h create mode 100644 Utilities/Assembler.h create mode 100644 Utilities/Assembler.m create mode 100644 Utilities/Breakpoint.h create mode 100644 Utilities/Breakpoint.m create mode 100644 Utilities/BreakpointArray.h create mode 100644 Utilities/BreakpointArray.m create mode 100644 Utilities/Disassembler.h create mode 100644 Utilities/Disassembler.m create mode 100644 Utilities/EnableDisableTextField.h create mode 100644 Utilities/EnableDisableTextField.m create mode 100644 Utilities/FloatingPointNumber.h create mode 100644 Utilities/FloatingPointNumber.m create mode 100644 Utilities/InputConsumerProtocol.h create mode 100644 Utilities/KeepInMenuWindow.h create mode 100644 Utilities/KeepInMenuWindow.m create mode 100644 Utilities/NonWrappingTableView.h create mode 100644 Utilities/NonWrappingTableView.m create mode 100644 Utilities/OctalFormatter.h create mode 100644 Utilities/OctalFormatter.m create mode 100644 Utilities/Opcode.h create mode 100644 Utilities/Opcode.m create mode 100644 Utilities/OpcodeFormatter.h create mode 100644 Utilities/OpcodeFormatter.m create mode 100644 Utilities/PaperTapeController.h create mode 100644 Utilities/PaperTapeController.m create mode 100644 Utilities/PaperTapeProgressIndicator.h create mode 100644 Utilities/PaperTapeProgressIndicator.m create mode 100644 Utilities/RegisterFormCell.h create mode 100644 Utilities/RegisterFormCell.m create mode 100644 Utilities/TableCornerView.h create mode 100644 Utilities/TableCornerView.m create mode 100644 Utilities/Unicode.h create mode 100644 Utilities/Utilities.c create mode 100644 Utilities/Utilities.h create mode 100644 pdp8e-simulator.xcodeproj/bb.mode1 create mode 100644 pdp8e-simulator.xcodeproj/bb.perspective create mode 100644 pdp8e-simulator.xcodeproj/project.pbxproj create mode 100644 pdp8e-simulator.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/ASR33/ASR33.h b/ASR33/ASR33.h new file mode 100644 index 0000000..4cb7598 --- /dev/null +++ b/ASR33/ASR33.h @@ -0,0 +1,83 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ASR33.h - ASR 33 Teletype for the PDP-8/E Simulator + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#define KBB_CHANGED_NOTIFICATION @"asr33KeyboardBufferChangedNotification" +#define TTO_CHANGED_NOTIFICATION @"asr33TeletypeOutputChangedNotification" +#define TTY_ONLINE_CHANGED_NOTIFICATION @"asr33TTYOnlineChangedNotification" + + +@class NSCondition, PaperTapeController, ASR33TextView, ASR33WindowController, TypeaheadBuffer; + + +@interface ASR33 : PDP8Plugin +{ +@public +/* The attributes are public, so the C functions implementing the PDP-8 instructions can + access them directly. No other Cocoa code should use them directly. To ensure this, + the register names are mapped to dummy names with the #defines below. In the source + codes files with the instruction C functions, #define USE_ASR33_REGISTERS_DIRECTLY + to make the registers available. */ + unsigned short KBB; + unsigned long inflag; + unsigned long outflag; + unsigned short output; +@private + unsigned short TTO; // private: not accessed by IOTs + short int input; // int: can be EOF == -1 + unsigned short inAddress; + unsigned short outAddress; + unsigned short punchMask; + IBOutlet PaperTapeController *reader; + IBOutlet PaperTapeController *punch; + IBOutlet ASR33TextView *textview; + IBOutlet ASR33WindowController *windowController; + IBOutlet TypeaheadBuffer *typeaheadBuffer; + BOOL online; + NSConditionLock *inputLock; + NSConditionLock *outputLock; + NSCondition *outputOnline; + BOOL runWithRealtimeSpeed; + BOOL playSound; + float soundVolume; + BOOL isConsoleTTY; +} + +- (unsigned short) getKBB; +- (void) setKBB:(unsigned short)kbb; +- (unsigned short) getTTO; +- (void) setTTO:(unsigned short)tto; +- (BOOL) getOnline; +- (void) setOnline:(BOOL)onlineOffline; +- (void) canContinueOutput; + +@end + + +#if ! USE_ASR33_REGISTERS_DIRECTLY +#define KBB __dont_use_KBB__ +#define inflag __dont_use_inflag__ +#define outflag __dont_use_outflag__ +#define input __dont_use_input__ +#define output __dont_use_output__ +#endif diff --git a/ASR33/ASR33.m b/ASR33/ASR33.m new file mode 100644 index 0000000..f1198fe --- /dev/null +++ b/ASR33/ASR33.m @@ -0,0 +1,484 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ASR33.m - ASR 33 Teletype for the PDP-8/E Simulator + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "PluginFramework/PluginAPI.h" +#import "PluginFramework/PDP8.h" +#import "PluginFramework/Utilities.h" +#import "PluginFramework/FileDropControlTargetProtocol.h" +#import "PluginFramework/PaperTapeController.h" +#import "PluginFramework/InputConsumerProtocol.h" +#import "PluginFramework/NSThread+MainThread.h" + +#define USE_ASR33_REGISTERS_DIRECTLY 1 + +#import "ASR33.h" +#import "ASR33TextView.h" +#import "ASR33WindowController.h" +#import "ASR33iot.h" +#import "ASR33Preferences.h" +#import "TypeaheadBuffer.h" + + +#define ASR33_CONTTY_PLUGIN_NAME NSLocalizedStringFromTableInBundle( \ + @"ASR 33 Console Teletype.pdp8Plugin", nil, [self bundle], @"") +#define ASR33_AUXTTY_IO_INFO_FILENAME @"auxtty-io-info" + +#define CODER_KEY_KBB @"kbb" +#define CODER_KEY_TTO @"tto" +#define CODER_KEY_INFLAG @"inflag" +#define CODER_KEY_INMASK @"inmask" +#define CODER_KEY_OUTFLAG @"outflag" +#define CODER_KEY_OUTMASK @"outmask" +#define CODER_KEY_ONLINE @"online" + +#define NO_OUTPUT 0 +#define OUTPUT 1 +#define NO_INPUT 0 +#define INPUT 1 + +#define TELETYPE_DELAY 100000 // 100.000 microseconds = 0.1 second + +#define SOUND_BACKSPACE @"tty-backspace" +#define SOUND_BELL @"tty-bell" +#define SOUND_CARRIAGE_RETURN @"tty-carriage-return" +#define SOUND_KEYSTROKE1 @"tty-keystroke1" +#define SOUND_KEYSTROKE2 @"tty-keystroke2" +#define SOUND_KEYSTROKE3 @"tty-keystroke3" +#define SOUND_KEYSTROKE4 @"tty-keystroke4" +#define SOUND_SPACE @"tty-space" +#define SOUND_TYPE @"mp3" + + +@interface NSSound (SetVolume) + +- (void) setVolume:(float)volume; // this is a Leopard method, not available with Tiger + +@end + + +@implementation ASR33 + + +API_VERSION + + +#pragma mark Plugin Methods + + +- (NSString *) ioInformationPlistName +{ + isConsoleTTY = [[self pluginName] isEqualToString:ASR33_CONTTY_PLUGIN_NAME]; + return isConsoleTTY ? [super ioInformationPlistName] : ASR33_AUXTTY_IO_INFO_FILENAME; +} + + +- (NSArray *) iotsForAddress:(int)ioAddress +{ + if (inAddress == 0) { + inAddress = ioAddress; + return [NSArray arrayWithObjects: + [NSValue valueWithPointer:i6030], + [NSValue valueWithPointer:i6031], + [NSValue valueWithPointer:i6032], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:i6034], + [NSValue valueWithPointer:i6035], + [NSValue valueWithPointer:i6036], + [NSValue valueWithPointer:nil], + nil]; + } else { + outAddress = ioAddress; + return [NSArray arrayWithObjects: + [NSValue valueWithPointer:i6040], + [NSValue valueWithPointer:i6041], + [NSValue valueWithPointer:i6042], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:i6044], + [NSValue valueWithPointer:i6045], + [NSValue valueWithPointer:i6046], + [NSValue valueWithPointer:nil], + nil]; + } +} + + +- (NSArray *) skiptestsForAddress:(int)ioAddress +{ + return ioAddress == inAddress ? + [NSArray arrayWithObjects: + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:s6031], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + nil] : + [NSArray arrayWithObjects: + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:s6041], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:s6045], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + nil]; +} + + +- (void) setIOFlag:(unsigned long)flag forIOFlagName:(NSString *)name; +{ + if (inflag) + outflag = flag; + else + inflag = flag; +} + + +- (void) CAF:(int)ioAddress +{ + if (ioAddress == inAddress) { // CAF is called twice, ignore second call + KBB = 0; + TTO = 0; + [pdp8 setInterruptMaskBits:inflag | outflag]; + [pdp8 clearIOFlagBits:inflag | outflag]; + } +} + + +- (void) clearAllFlags:(int)ioAddress +{ +/* Don't modify the online state - software can't turn the TTY power knob. + Don't modify the on/off state of the reader/punch (else the user cannot + load BIN tapes as described in the Small Computer Systems Handbook, + where he must operate CLEAR/CONT *after* turning on the reader). */ + if (ioAddress == inAddress) { // CAF is called twice, ignore second call + [self setKBB:0]; + [self setTTO:0]; + [pdp8 setInterruptMaskBits:inflag | outflag]; + [pdp8 clearIOFlagBits:inflag | outflag]; + } +} + + +- (void) resetDevice +{ + [typeaheadBuffer flush:self]; + [self setKBB:0]; + [self setTTO:0]; + [pdp8 setInterruptMaskBits:inflag | outflag]; + [pdp8 clearIOFlagBits:inflag | outflag]; + [self setOnline:YES]; +} + + +#pragma mark Thread Handling + + +- (void) playSound:(unsigned short)key +{ + NSString *soundname; + + NSAssertRunningOnMainThread (); + key &= 0177; + if (playSound || key == '\a') { + if (isblank(key)) + soundname = SOUND_SPACE; + else if (key == '\b') + soundname = SOUND_BACKSPACE; + else if (key == '\a') + soundname = SOUND_BELL; + else if (key == '\r') + soundname = SOUND_CARRIAGE_RETURN; + else if (isupper(key)) + soundname = SOUND_KEYSTROKE1; + else if (islower(key)) + soundname = SOUND_KEYSTROKE2; + else if (isdigit(key)) + soundname = SOUND_KEYSTROKE3; + else + soundname = SOUND_KEYSTROKE4; + NSSound *sound = [[NSSound alloc] initWithContentsOfFile: + [[self bundle] pathForResource:soundname ofType:SOUND_TYPE] byReference:YES]; + [sound autorelease]; + if ([sound respondsToSelector:@selector(setVolume:)]) + [sound setVolume:soundVolume]; + [sound play]; + } +} + + +- (void) canContinueInput +{ + if ([inputLock tryLockWhenCondition:NO_INPUT]) + [inputLock unlockWithCondition:INPUT]; + /* else + User typed so fast that input would be lost, but the typeahead buffer keeps this input. */ +} + + +- (void) canContinueOutput +{ + if ([outputLock tryLockWhenCondition:NO_OUTPUT]) + [outputLock unlockWithCondition:OUTPUT]; +#if ! defined(NS_BLOCK_ASSERTIONS) + else + NSLog (@"PDP-8 software bug: TPC or TLS executed before preceding TTY output finished"); +#endif +} + + +- (void) setTeletypeOutputFlag +{ + NSAssertRunningOnMainThread (); + [pdp8 setIOFlagBits:outflag]; +} + + +- (void) processInput +{ + NSAssertRunningOnMainThread (); + input &= 0377; // strip off Unicode characters etc. + if (online) { + [self setKBB:input]; + [pdp8 setIOFlagBits:inflag]; + } else { + [self playSound:input]; + [punch putChar:input & punchMask handleBackspace:YES]; + [textview putChar:input & 0177]; + } +} + + +- (void) processOutput +{ + NSAssertRunningOnMainThread (); + [self playSound:output]; + [self setTTO:output]; + [punch putChar:output & punchMask handleBackspace:NO]; + [textview putChar:output & 0177]; +} + + +- (void) getReaderChar +{ + NSAssertRunningOnMainThread (); + input = [reader getChar]; +} + + +- (uint64_t) realtimeDelay:(uint64_t)maTime +{ + if (runWithRealtimeSpeed) { + uint64_t us = absolute2nanoseconds(mach_absolute_time() - maTime) / 1000; + if (us < TELETYPE_DELAY) + usleep (TELETYPE_DELAY - us); + maTime = mach_absolute_time(); + } + return maTime; +} + + +- (void) asr33InputThread:(id)object +{ + [[NSAutoreleasePool alloc] init]; + for (;;) { + [inputLock lockWhenCondition:INPUT]; + uint64_t maTime = mach_absolute_time(); + while ((! online || [pdp8 getIOFlagBits:inflag] == 0) && + ([self performSelectorOnMainThread:@selector(getReaderChar) + withObject:nil waitUntilDone:YES], input != EOF)) { + maTime = [self realtimeDelay:maTime]; + [self performSelectorOnMainThread:@selector(processInput) + withObject:nil waitUntilDone:YES]; + } + while ([typeaheadBuffer hasCharacters] && + (! online || [pdp8 isStopped] || [pdp8 getIOFlagBits:inflag] == 0)) { + input = [typeaheadBuffer getNextChar] | 0200; + maTime = [self realtimeDelay:maTime]; + [self performSelectorOnMainThread:@selector(processInput) + withObject:nil waitUntilDone:YES]; + } + [inputLock unlockWithCondition:NO_INPUT]; + } +} + + +- (void) asr33OutputThread:(id)object +{ + [[NSAutoreleasePool alloc] init]; + [outputOnline lock]; + for (;;) { + if (! online) + [outputOnline wait]; + [outputLock lockWhenCondition:OUTPUT]; + uint64_t maTime = mach_absolute_time(); + [self performSelectorOnMainThread:@selector(processOutput) + withObject:nil waitUntilDone:YES]; + [self realtimeDelay:maTime]; + [outputLock unlockWithCondition:NO_OUTPUT]; + [self performSelectorOnMainThread:@selector(setTeletypeOutputFlag) + withObject:nil waitUntilDone:YES]; + } +} + + +#pragma mark Register Access + + +- (unsigned short) getKBB +{ + return KBB; +} + + +- (void) setKBB:(unsigned short)kbb +{ + NSAssert1 ((kbb & ~0377) == 0, @"Bad KBB: 0%o", kbb); + KBB = kbb; + [[NSNotificationCenter defaultCenter] postNotificationName:KBB_CHANGED_NOTIFICATION object:self]; +} + + +- (unsigned short) getTTO +{ + return TTO; +} + + +- (void) setTTO:(unsigned short)tto +{ + NSAssert1 ((tto & ~0377) == 0, @"Bad TTO: 0%o", tto); + TTO = tto; + [[NSNotificationCenter defaultCenter] postNotificationName:TTO_CHANGED_NOTIFICATION object:self]; +} + + +- (BOOL) getOnline +{ + return online; +} + + +- (void) setOnline:(BOOL)onlineOffline +{ + online = onlineOffline; + [outputOnline signal]; + if (! online) + [self canContinueInput]; + [[NSNotificationCenter defaultCenter] + postNotificationName:TTY_ONLINE_CHANGED_NOTIFICATION object:self]; +} + + +#pragma mark Initialization + + +- (id) initWithCoder:(NSCoder *)coder +{ + self = [super init]; + [self setKBB:[coder decodeIntForKey:CODER_KEY_KBB]]; + [self setTTO:[coder decodeIntForKey:CODER_KEY_TTO]]; + [coder decodeBoolForKey:CODER_KEY_INFLAG] ? + [pdp8 setIOFlagBits:inflag] : [pdp8 clearIOFlagBits:inflag]; + [coder decodeBoolForKey:CODER_KEY_INMASK] ? + [pdp8 setInterruptMaskBits:inflag] : [pdp8 clearInterruptMaskBits:inflag]; + [coder decodeBoolForKey:CODER_KEY_OUTFLAG] ? + [pdp8 setIOFlagBits:outflag] : [pdp8 clearIOFlagBits:outflag]; + [coder decodeBoolForKey:CODER_KEY_OUTMASK] ? + [pdp8 setInterruptMaskBits:outflag] : [pdp8 clearInterruptMaskBits:outflag]; + [self setOnline:[coder decodeBoolForKey:CODER_KEY_ONLINE]]; + return self; +} + + +- (void) encodeWithCoder:(NSCoder *)coder +{ + [coder encodeInt:[self getKBB] forKey:CODER_KEY_KBB]; + [coder encodeInt:[self getTTO] forKey:CODER_KEY_TTO]; + [coder encodeBool:[pdp8 getIOFlagBits:inflag] ? YES : NO forKey:CODER_KEY_INFLAG]; + [coder encodeBool:[pdp8 getInterruptMaskBits:inflag] ? YES : NO forKey:CODER_KEY_INMASK]; + [coder encodeBool:[pdp8 getIOFlagBits:outflag] ? YES : NO forKey:CODER_KEY_OUTFLAG]; + [coder encodeBool:[pdp8 getInterruptMaskBits:outflag] ? YES : NO forKey:CODER_KEY_OUTMASK]; + [coder encodeBool:[self getOnline] forKey:CODER_KEY_ONLINE]; +} + + +- (void) notifyApplicationWillTerminate:(NSNotification *)notification +{ + // NSLog (@"ASR33 notifyApplicationWillTerminate"); + [[NSNotificationCenter defaultCenter] removeObserver:self name:NSUserDefaultsDidChangeNotification + object:nil]; + NSMutableData *data = [NSMutableData data]; + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + [self encodeWithCoder:archiver]; + [archiver finishEncoding]; + [archiver release]; + [[NSUserDefaults standardUserDefaults] setObject:data forKey:[self pluginName]]; +} + + +- (void) notifyPreferencesChanged:(NSNotification *)notification +{ + // NSLog (@"ASR33 notifyPreferencesChanged"); + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + runWithRealtimeSpeed = [defaults integerForKey:ASR33_PREFS_SPEED_KEY]; + playSound = runWithRealtimeSpeed && [defaults boolForKey:ASR33_PREFS_PLAY_SOUND]; + soundVolume = [defaults objectForKey:ASR33_PREFS_SOUND_VOLUME] ? + [defaults floatForKey:ASR33_PREFS_SOUND_VOLUME] : 0.5f; + punchMask = [defaults boolForKey:ASR33_PREFS_MASK_HIGHBIT_KEY] ? 0177 : 0377; +} + + +- (void) pluginDidLoad +{ + NSData *data = [[NSUserDefaults standardUserDefaults] dataForKey:[self pluginName]]; + if (data) { + NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; + self = [self initWithCoder:unarchiver]; + [unarchiver finishDecoding]; + [unarchiver release]; + } else + [self setOnline:YES]; + inputLock = [[NSConditionLock alloc] initWithCondition:NO_INPUT]; + outputLock = [[NSConditionLock alloc] initWithCondition:NO_OUTPUT]; + outputOnline = [[NSCondition alloc] init]; + [NSThread detachNewThreadSelector:@selector(asr33InputThread:) toTarget:self withObject:nil]; + [NSThread detachNewThreadSelector:@selector(asr33OutputThread:) toTarget:self withObject:nil]; + [windowController setWindowTitle:[[self pluginName] stringByDeletingPathExtension]]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyApplicationWillTerminate:) + name:NSApplicationWillTerminateNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPreferencesChanged:) + name:NSUserDefaultsDidChangeNotification object:nil]; + [self notifyPreferencesChanged:nil]; +} + + +@end diff --git a/ASR33/ASR33TextView.h b/ASR33/ASR33TextView.h new file mode 100644 index 0000000..d6a4b91 --- /dev/null +++ b/ASR33/ASR33TextView.h @@ -0,0 +1,35 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ASR33TextView.h - NSTextView for the ASR 33 Teletype + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class TypeaheadBuffer; + + +@interface ASR33TextView : NSTextView { +@private + IBOutlet TypeaheadBuffer *typeaheadBuffer; +} + +- (void) putChar:(unichar)c; + +@end diff --git a/ASR33/ASR33TextView.m b/ASR33/ASR33TextView.m new file mode 100644 index 0000000..817140f --- /dev/null +++ b/ASR33/ASR33TextView.m @@ -0,0 +1,161 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ASR33TextView.m - NSTextView for the ASR 33 Teletype + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "ASR33TextView.h" +#import "TypeaheadBuffer.h" + + +@implementation ASR33TextView + + +- (BOOL) validateUserInterfaceItem:(id )item +{ + SEL action = [item action]; + return (action == @selector(copy:) || + action == @selector(paste:) || + action == @selector(selectAll:) || + action == @selector(_learnSpellingFromMenu:) || + action == @selector(spotlight:) || + action == @selector(_searchWithGoogleFromMenu:) || + action == @selector(_lookUpIndefiniteRangeInDictionaryFromMenu:) || + action == @selector(startSpeaking:) || + action == @selector(stopSpeaking:)) ? + [super validateUserInterfaceItem:item] : FALSE; +} + + +- (void) doCommandBySelector:(SEL)selector +{ + NSString *selectorName = NSStringFromSelector(selector); + // NSLog (@"doCommandByselector %@", selectorName); + if (selector == @selector(insertNewline:)) + [typeaheadBuffer typeahead:@"\r"]; + else if (selector == @selector(deleteBackward:)) + [typeaheadBuffer typeahead:@"\b"]; + else if (selector == @selector(deleteForward:)) + [typeaheadBuffer typeahead:@"\177"]; // Rubout + else if (selector == @selector(cancelOperation:)) + [typeaheadBuffer typeahead:@"\033"]; // Escape + else if (selector == @selector(centerSelectionInVisibleArea:)) + [typeaheadBuffer typeahead:@"\f"]; // Ctrl-L + else if (selector == @selector(pageDown:)) + [typeaheadBuffer typeahead:@"\026"]; // Ctrl-V + else if (selector == @selector(noop:)) { + NSEvent *currentEvent = [NSApp currentEvent]; + unsigned modifierFlags = [currentEvent modifierFlags]; + unsigned c = [[currentEvent charactersIgnoringModifiers] characterAtIndex:0]; + if (modifierFlags & NSControlKeyMask) { + switch (c) { + case 'c' : + case 'C' : + [typeaheadBuffer typeahead:@"\003"]; // Ctrl-C + break; + case 'z' : + case 'Z' : + [typeaheadBuffer typeahead:@"\032"]; // Ctrl-Z + break; + default : + NSLog (@"character %c (%o) ignored", c, c); + break; + } + } else if (modifierFlags & NSFunctionKeyMask) { + if (c == 0xf739) // fn-6 = forward delete on notebook keyboards + [typeaheadBuffer typeahead:@"\177"]; // Rubout + } + } else if (selector != @selector(complete:) && + ! [selectorName hasPrefix:@"delete"]) // ignore all delete* selectors + [super doCommandBySelector:selector]; +} + + +- (BOOL) readSelectionFromPasteboard:(NSPasteboard *)pasteboard type:(NSString *)type +{ + [pasteboard types]; // required before accessing the pasteboards data + if ([type isEqualToString:NSStringPboardType]) { + [typeaheadBuffer typeahead:[pasteboard stringForType:type]]; + return YES; + } + return NO; +} + + +- (void) insertText:(NSString *)string +{ + [typeaheadBuffer typeahead:string]; +} + + +- (void) putChar:(unichar)c +{ + NSTextStorage *storage = [self textStorage]; + int length = [storage length]; + NSRange endOfText = NSMakeRange(length, 0); + [self scrollRangeToVisible:endOfText]; + [self setSelectedRange:endOfText]; + switch (c) { + case '\a' : + // NSBeep (); // handled by the ASR33 method playSound: + break; + case '\b' : + if (length && [[storage string] characterAtIndex:length - 1] != '\n') + [super deleteBackward:self]; + break; + default : + [super insertText:[NSString stringWithCharacters:&c length:1]]; + break; + } +} + + +- (void) awakeFromNib +{ + // set size of container - to make horizontal scroller appear + NSTextContainer *container = [self textContainer]; + NSSize size = [container containerSize]; + size.width = UINT_MAX; + [container setContainerSize:size]; + [container setWidthTracksTextView:NO]; + + // set default font + NSFont *font = [NSFont userFixedPitchFontOfSize:11]; + [self setFont:font]; + + // set tabstop every 8 character + NSMutableParagraphStyle *style = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] autorelease]; + [style setTabStops:[NSArray array]]; + NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName, nil]; + NSAttributedString *str = + [[[NSAttributedString alloc] initWithString:@" " attributes:attrs] autorelease]; + [style setDefaultTabInterval:8 * [str size].width /* == 7 */]; + [self setTypingAttributes:[NSDictionary dictionaryWithObjectsAndKeys: + style, NSParagraphStyleAttributeName, font, NSFontAttributeName, nil]]; + if ([self respondsToSelector:@selector(setAutomaticTextReplacementEnabled:)]) + [self performSelector:@selector(setAutomaticTextReplacementEnabled:) + withObject:(NSObject *) NO]; +} + + +@end diff --git a/ASR33/ASR33WindowController.h b/ASR33/ASR33WindowController.h new file mode 100644 index 0000000..3938059 --- /dev/null +++ b/ASR33/ASR33WindowController.h @@ -0,0 +1,46 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ASR33WindowController.h - ASR 33 Teletype Window Controller + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class ASR33, PaperTapeController, ASR33TextView, RegisterFormCell, KeepInMenuWindow; + + +@interface ASR33WindowController : NSObject +{ +@private + IBOutlet ASR33 *asr33; + IBOutlet KeepInMenuWindow *window; + IBOutlet NSView *ttyToolbarView; + IBOutlet NSView *readerToolbarView; + IBOutlet NSView *punchToolbarView; + IBOutlet NSSegmentedControl *localOnline; + IBOutlet RegisterFormCell *kbb; + IBOutlet RegisterFormCell *tto; + IBOutlet PaperTapeController *readerController; + IBOutlet PaperTapeController *punchController; +} + +- (IBAction) localOnlineClicked:(id)sender; +- (void) setWindowTitle:(NSString *)title; + +@end diff --git a/ASR33/ASR33WindowController.m b/ASR33/ASR33WindowController.m new file mode 100644 index 0000000..a38be8d --- /dev/null +++ b/ASR33/ASR33WindowController.m @@ -0,0 +1,242 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ASR33WindowController.h - ASR 33 Teletype Window Controller + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "PluginFramework/PluginAPI.h" +#import "PluginFramework/KeepInMenuWindow.h" +#import "PluginFramework/Utilities.h" +#import "PluginFramework/InputConsumerProtocol.h" +#import "PluginFramework/RegisterFormCell.h" + +#import "ASR33WindowController.h" +#import "ASR33.h" + + +@implementation ASR33WindowController + + +#define TTY_TOOLBAR_ITEM_IDENTIFIER @"ttyTBItemIdentifier" +#define READER_TOOLBAR_ITEM_IDENTIFIER @"readerTBItemIdentifier" +#define PUNCH_TOOLBAR_ITEM_IDENTIFIER @"punchTBItemIdentifier" + + +#pragma mark Toolbar + + +- (void) setupToolbar +{ + NSToolbar *toolbar = [[[NSToolbar alloc] initWithIdentifier:@"ASR33WindowToolbar"] autorelease]; + [toolbar setAllowsUserCustomization:NO]; + [toolbar setAutosavesConfiguration:YES]; + [toolbar setDisplayMode:NSToolbarDisplayModeIconAndLabel]; + [toolbar setSizeMode:NSToolbarSizeModeDefault]; + [toolbar setDelegate:self]; + [window setToolbar:toolbar]; + [window setShowsToolbarButton:YES]; + adjustToolbarControlForTiger ([kbb controlView]); + adjustToolbarControlForTiger ([tto controlView]); +} + + +- (NSToolbarItem *) toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdent + willBeInsertedIntoToolbar:(BOOL)willBeInserted +{ + NSRect rect; + + NSBundle *bundle = [NSBundle bundleForClass:[self class]]; + NSToolbarItem *toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier:itemIdent] autorelease]; + + if ([itemIdent isEqual:TTY_TOOLBAR_ITEM_IDENTIFIER]) { + [toolbarItem setLabel:NSLocalizedStringFromTableInBundle( + @"ASR 33 Teletype", nil, bundle, @"")]; + [toolbarItem setPaletteLabel:NSLocalizedStringFromTableInBundle( + @"ASR 33 Teletype", nil, bundle, @"")]; + [toolbarItem setToolTip:NSLocalizedStringFromTableInBundle( + @"This area contains the registers and switches of the ASR 33 teletype", + nil, bundle, @"")]; + [toolbarItem setView:ttyToolbarView]; + rect = [ttyToolbarView frame]; + [toolbarItem setMinSize:NSMakeSize(NSWidth(rect), NSHeight(rect))]; + [toolbarItem setMaxSize:NSMakeSize(NSWidth(rect), NSHeight(rect))]; + } else if ([itemIdent isEqual:READER_TOOLBAR_ITEM_IDENTIFIER]) { + [toolbarItem setLabel:NSLocalizedStringFromTableInBundle( + @"Low Speed Paper Tape Reader", nil, bundle, @"")]; + [toolbarItem setPaletteLabel:NSLocalizedStringFromTableInBundle( + @"Low Speed Paper Tape Reader", nil, bundle, @"")]; + [toolbarItem setToolTip:NSLocalizedStringFromTableInBundle( + @"This area displays the state of the low speed paper tape reader", + nil, bundle, @"")]; + [toolbarItem setView:readerToolbarView]; + rect = [readerToolbarView frame]; + [toolbarItem setMinSize:NSMakeSize(NSWidth(rect), NSHeight(rect))]; + [toolbarItem setMaxSize:NSMakeSize(NSWidth(rect), NSHeight(rect))]; + } else if ([itemIdent isEqual:PUNCH_TOOLBAR_ITEM_IDENTIFIER]) { + [toolbarItem setLabel:NSLocalizedStringFromTableInBundle( + @"Low Speed Paper Tape Punch", nil, bundle, @"")]; + [toolbarItem setPaletteLabel:NSLocalizedStringFromTableInBundle( + @"Low Speed Paper Tape Punch", nil, bundle, @"")]; + [toolbarItem setToolTip:NSLocalizedStringFromTableInBundle( + @"This area displays the state of the low speed paper tape punch", + nil, bundle, @"")]; + [toolbarItem setView:punchToolbarView]; + rect = [punchToolbarView frame]; + [toolbarItem setMinSize:NSMakeSize(NSWidth(rect), NSHeight(rect))]; + [toolbarItem setMaxSize:NSMakeSize(NSWidth(rect), NSHeight(rect))]; + } else + toolbarItem = nil; + return toolbarItem; +} + + +- (NSArray *) toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar +{ + return [NSArray arrayWithObjects: + TTY_TOOLBAR_ITEM_IDENTIFIER, NSToolbarSeparatorItemIdentifier, + READER_TOOLBAR_ITEM_IDENTIFIER, NSToolbarSeparatorItemIdentifier, + PUNCH_TOOLBAR_ITEM_IDENTIFIER, + nil]; +} + + +- (NSArray *) toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar +{ + return [NSArray arrayWithObjects: + TTY_TOOLBAR_ITEM_IDENTIFIER, READER_TOOLBAR_ITEM_IDENTIFIER, + PUNCH_TOOLBAR_ITEM_IDENTIFIER, NSToolbarSeparatorItemIdentifier, + nil]; +} + + +- (void) windowDidBecomeMain:(NSNotification *)notification +{ + if (runningOnLionOrNewer()) { + [kbb setEnabled:YES]; + [tto setEnabled:YES]; + [readerController setEnabled:YES]; + [punchController setEnabled:YES]; + } +} + + +- (void) windowDidResignMain:(NSNotification *)notification +{ + if (runningOnLionOrNewer()) { + [kbb setEnabled:NO]; + [tto setEnabled:NO]; + [readerController setEnabled:NO]; + [punchController setEnabled:NO]; + } +} + + +#pragma mark Notifications + + +- (void) windowWillBeginSheet:(NSNotification *)notification +{ + [localOnline setEnabled:NO]; + [kbb setEnabled:NO]; + [tto setEnabled:NO]; + [readerController setEnabled:NO]; + [punchController setEnabled:NO]; +} + + +- (void) windowDidEndSheet:(NSNotification *)notification; +{ + [localOnline setEnabled:YES]; + [kbb setEnabled:YES]; + [tto setEnabled:YES]; + [readerController setEnabled:YES]; + [punchController setEnabled:YES]; +} + + +- (void) notifyPluginsLoaded:(NSNotification *)notification +{ + [self windowDidResignMain:notification]; + [window orderBackFromDefaults:self]; +} + + +- (void) setupNotifications +{ + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + [defaultCenter addObserver:self + selector:@selector(notifyOnlineChanged:) name:TTY_ONLINE_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyPluginsLoaded:) + name:PLUGINS_LOADED_NOTIFICATION object:nil]; +} + + +#pragma mark Controls + + +- (IBAction) localOnlineClicked:(id)sender +{ + [asr33 setOnline:[sender selectedSegment]]; +} + + +- (void) notifyOnlineChanged:(NSNotification *)notification +{ + [localOnline setSelectedSegment:[asr33 getOnline]]; +} + + +#pragma mark Initialization + + +- (void) setWindowTitle:(NSString *)title +{ + BOOL isAuxTTY = ! [[window title] isEqualToString:title]; + NSRect oldFrame = [window frame]; + [window setTitle:title]; + [window setFrameAutosaveName:title]; + /* this is a hack to move the AuxTTY window away from the exact position of the ConTTY when the + simulator starts for the first time without existing preferences file */ + if (isAuxTTY && NSEqualRects(oldFrame, [window frame])) + [window setFrameOrigin:NSMakePoint(oldFrame.origin.x + 20, oldFrame.origin.y - 20)]; +} + + +- (void) setupRegisters +{ + [kbb setupRegisterFor:asr33 getRegisterValue:@selector(getKBB) setRegisterValue:@selector(setKBB:) + changedNotificationName:KBB_CHANGED_NOTIFICATION mask:0377 base:8]; + [tto setupRegisterFor:asr33 getRegisterValue:@selector(getTTO) setRegisterValue:@selector(setTTO:) + changedNotificationName:TTO_CHANGED_NOTIFICATION mask:0377 base:8]; +} + + +- (void) awakeFromNib +{ + [self setupToolbar]; + [self setupNotifications]; + [self setupRegisters]; +} + + +@end diff --git a/ASR33/ASR33iot.c b/ASR33/ASR33iot.c new file mode 100644 index 0000000..cab8f3b --- /dev/null +++ b/ASR33/ASR33iot.c @@ -0,0 +1,151 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ASR33iot.c - ASR 33 Teletype IOTs + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#define USE_ASR33_REGISTERS_DIRECTLY 1 +#define USE_PDP8_REGISTERS_DIRECTLY 1 + +#import "PluginFramework/PluginAPI.h" +#import "PluginFramework/PDP8.h" +#import "PluginFramework/InputConsumerProtocol.h" + +#import "ASR33iot.h" +#import "ASR33.h" + + +void i6030 (void) /* KCF 6030 */ +{ + pdp8->IOFLAGS &= ~PLUGIN_POINTER(ASR33)->inflag; + EXECUTION_TIME (12); +} + + +void i6031 (void) /* KSF 6031 */ +{ + if (pdp8->IOFLAGS & PLUGIN_POINTER(ASR33)->inflag) + pdp8->PC++; + EXECUTION_TIME (12); +} + + +unsigned s6031 (void) /* KSF 6031 stiptest */ +{ + return pdp8->IOFLAGS & PLUGIN_POINTER(ASR33)->inflag; +} + + +void i6032 (void) /* KCC 6032 */ +{ + pdp8->IOFLAGS &= ~PLUGIN_POINTER(ASR33)->inflag; + pdp8->AC &= 010000; + [PLUGIN_POINTER(ASR33) canContinueInput]; + EXECUTION_TIME (12); +} + + +void i6034 (void) /* KRS 6034 */ +{ + pdp8->AC |= PLUGIN_POINTER(ASR33)->KBB; + EXECUTION_TIME (12); +} + + +void i6035 (void) /* KIE 6035 */ +{ + if (pdp8->AC & 1) + pdp8->IMASK |= PLUGIN_POINTER(ASR33)->inflag | PLUGIN_POINTER(ASR33)->outflag; + else + pdp8->IMASK &= ~(PLUGIN_POINTER(ASR33)->inflag | PLUGIN_POINTER(ASR33)->outflag); + EXECUTION_TIME (12); +} + + +void i6036 (void) /* KRB 6036 */ +{ + pdp8->AC = (pdp8->AC & 010000) | PLUGIN_POINTER(ASR33)->KBB; + pdp8->IOFLAGS &= ~PLUGIN_POINTER(ASR33)->inflag; + [PLUGIN_POINTER(ASR33) canContinueInput]; + EXECUTION_TIME (12); +} + + +void i6040 (void) /* TFL 6040 */ +{ + pdp8->IOFLAGS |= PLUGIN_POINTER(ASR33)->outflag; + EXECUTION_TIME (12); +} + + +void i6041 (void) /* TSF 6041 */ +{ + if (pdp8->IOFLAGS & PLUGIN_POINTER(ASR33)->outflag) + pdp8->PC++; + EXECUTION_TIME (12); +} + + +unsigned s6041 (void) /* TSF 6041 skiptest */ +{ + return pdp8->IOFLAGS & PLUGIN_POINTER(ASR33)->outflag; +} + + +void i6042 (void) /* TCF 6042 */ +{ + pdp8->IOFLAGS &= ~PLUGIN_POINTER(ASR33)->outflag; + EXECUTION_TIME (12); +} + + +void i6044 (void) /* TPC 6044 */ +{ + PLUGIN_POINTER(ASR33)->output = (pdp8->AC & 0377); + [PLUGIN_POINTER(ASR33) canContinueOutput]; + EXECUTION_TIME (12); +} + + +void i6045 (void) /* TSK 6045 */ +{ + + if (pdp8->IOFLAGS & pdp8->IMASK & (PLUGIN_POINTER(ASR33)->inflag | PLUGIN_POINTER(ASR33)->outflag)) + pdp8->PC++; + EXECUTION_TIME (12); +} + + +unsigned s6045 (void) /* TSK 6045 skiptest */ +{ + return pdp8->IOFLAGS & pdp8->IMASK & (PLUGIN_POINTER(ASR33)->inflag | PLUGIN_POINTER(ASR33)->outflag); +} + + +void i6046 (void) /* TLS 6046 */ +{ + PLUGIN_POINTER(ASR33)->output = (pdp8->AC & 0377); + pdp8->IOFLAGS &= ~PLUGIN_POINTER(ASR33)->outflag; + [PLUGIN_POINTER(ASR33) canContinueOutput]; + EXECUTION_TIME (12); +} diff --git a/ASR33/ASR33iot.h b/ASR33/ASR33iot.h new file mode 100644 index 0000000..119239c --- /dev/null +++ b/ASR33/ASR33iot.h @@ -0,0 +1,39 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ASR33iot.h - ASR 33 Teletype IOTs + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +extern void i6030 (void); /* KCF 6030 */ +extern void i6031 (void); /* KSF 6031 */ +extern unsigned s6031 (void); /* KSF (skip test) */ +extern void i6032 (void); /* KCC 6032 */ +extern void i6034 (void); /* KRS 6034 */ +extern void i6035 (void); /* KIE 6035 */ +extern void i6036 (void); /* KRB 6036 */ +extern void i6040 (void); /* TFL 6040 */ +extern void i6041 (void); /* TSF 6041 */ +extern unsigned s6041 (void); /* TSF (skip test) */ +extern void i6042 (void); /* TCF 6042 */ +extern void i6044 (void); /* TPC 6044 */ +extern void i6045 (void); /* TSK 6045 */ +extern unsigned s6045 (void); /* TSK (skip test) */ +extern void i6046 (void); /* TLS 6046 */ diff --git a/ASR33/English.lproj/ASR33.nib/designable.nib b/ASR33/English.lproj/ASR33.nib/designable.nib new file mode 100644 index 0000000..5884fcf --- /dev/null +++ b/ASR33/English.lproj/ASR33.nib/designable.nib @@ -0,0 +1,1694 @@ + + + + 1040 + 13E28 + 851 + 1265.21 + 698.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + ASR33 + + + FirstResponder + + + NSApplication + + + 4111 + 2 + {{568, 392}, {562, 360}} + 1618477056 + ASR 33 Console Teletype + KeepInMenuWindow + + View + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + {562, 150} + + + 256 + + + + 274 + + + + 2304 + + + + 2325 + + Apple HTML pasteboard type + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + Apple URL pasteboard type + CorePasteboardFlavorType 0x6D6F6F76 + CorePasteboardFlavorType 0x75726C20 + NSColor pasteboard type + NSFilenamesPboardType + NSStringPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT RTFD pasteboard type + NeXT Rich Text Format v1.0 pasteboard type + NeXT TIFF v4.0 pasteboard type + NeXT font pasteboard type + NeXT ruler pasteboard type + WebURLsWithTitlesPboardType + public.url + + {{0, 15}, {562, 360}} + + + + + + + + + + + + + + 6 + + + + 562 + 1 + + + 33556739 + 0 + + + 3 + MQA + + + + 6 + System + selectedTextBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + selectedTextColor + + 3 + MAA + + + + + + + 1 + MCAwIDEAA + + + + + + 0 + + 7 + {10000000, 10000000} + + + + {{1, 1}, {562, 360}} + + + + + + {4, 5} + + 12582912 + + + + + + TU0AKgAAAHCAFUqgBVKsAAAAwdVQUqwaEQeIRGJRGFlYqwWLQ+JxuOQpVRmEx2RROKwOQyOUQSPyaUym +SxqWyKXyeYxyZzWbSuJTScRCbz2Nz+gRKhUOfTqeUai0OSxiWTiBQSHSGFquGwekxyAgAAAOAQAAAwAA +AAEAEAAAAQEAAwAAAAEAEAAAAQIAAwAAAAIACAAIAQMAAwAAAAEABQAAAQYAAwAAAAEAAQAAAREABAAA +AAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAEAAAARcABAAAAAEAAABnARwAAwAA +AAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + + + + + + 3 + MCAwAA + + + + 4 + + + + 256 + {{548, 1}, {15, 354}} + + NO + + _doScroller: + 0.93723851442337036 + + + + 256 + {{1, 346}, {556, 15}} + + + NO + 1 + + _doScroller: + 0.99454545974731445 + + + {{-1, -1}, {564, 362}} + + + 133170 + + + + 0.25 + 4 + 1 + + + {562, 360} + + + {{0, 0}, {1280, 778}} + {562, 172} + {1.7976931348623157e+308, 1.7976931348623157e+308} + + YES + + + ASR33WindowController + + + + 256 + + + + -2147482368 + {{0, 2}, {182, 12}} + + 16652 + 100 + + + + -2147483392 + {{0, 22}, {182, 19}} + + + YES + + 71303232 + 138545664 + Filename + + LucidaGrande + 11 + 3088 + + + 1 + + 2 + MC44NDcwNTg4OSAwLjg0NzA1ODg5IDAuODQ3MDU4ODkAA + + + 6 + System + controlTextColor + + + + NO + 1 + + + + 256 + {{0, 46}, {62, 20}} + + + YES + + 67108864 + 131072 + + + + + 56 + Load + 2 + + + -1 + 2 + + NO + + + + 256 + {{66, 46}, {120, 20}} + + + YES + + 603979776 + 131072 + + + + + 56.5 + On + 2 + + + 56.5 + Off + 1 + YES + 2 + + + 1 + + NO + + + {185, 66} + + + NSView + NSResponder + + + + 256 + + + + -2147482368 + {{0, 2}, {182, 12}} + + 16650 + 100 + + + + -2147483392 + {{0, 22}, {182, 19}} + + YES + + 608174144 + 138545664 + Filename + + + YES + 1 + + 6 + System + controlColor + + + + + NO + 1 + + + + 256 + {{0, 46}, {62, 20}} + + 1 + YES + + 67108864 + 131072 + + + + + 56 + Load + 2 + + + -1 + 2 + + NO + + + + 256 + {{66, 46}, {120, 20}} + + YES + + 603979776 + 131072 + + + + + 56.5 + On + 2 + + + 56.5 + Off + 1 + YES + 2 + + + 1 + + NO + + + {185, 66} + + + NSView + + NSResponder + + + + 256 + + + + 258 + {{0, 46}, {127, 20}} + + YES + + 67108864 + 131072 + + + + + 59 + Local + 2 + + + 61 + Online + 1 + 2 + + + -1 + + NO + + + + 256 + + {{-2, 22}, {57, 19}} + + YES + NO + 1 + 1 + + + -1804599231 + 205521920 + 000 + + + 23.83544921875 + + 67108864 + 67108864 + KBB + + + + + + {57, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 23.83544921875 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + LucidaGrande + 13 + 1040 + + + + + 256 + + {{63, 22}, {60, 19}} + + YES + NO + 1 + 1 + + + -1804599231 + 205521920 + 000 + + + 27 + + 67108864 + 67108864 + TTO + + + + + + {60, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 27 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + -2147483380 + {{1, -1}, {121, 17}} + + YES + + 67108864 + 134479872 + Flush Typeahead Buffer + + LucidaGrande + 9 + 3600 + + + -2036580352 + 45 + + 549650432 + {1, 1} + + + + + + TU0AKgAAAAoAAAANAQAAAwAAAAEAAQAAAQEAAwAAAAEAAQAAAQIAAwAAAAIACAAIAQMAAwAAAAEAAQAA +AQYAAwAAAAEAAQAAAREABAAAAAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEAAgAAARYAAwAAAAEAAQAA +ARcABAAAAAEAAAACARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAIAAQABAAAAAA + + + + + + + + + 400 + 75 + + NO + + + {126, 66} + + + NSView + + NSResponder + + + PaperTapeController + + + PaperTapeController + + + TypeaheadBuffer + + + + + + + window + + + + 20 + + + + localOnline + + + + 83 + + + + kbb + + + + 84 + + + + tto + + + + 85 + + + + asr33 + + + + 106 + + + + localOnlineClicked: + + + + 107 + + + + readerToolbarView + + + + 108 + + + + punchToolbarView + + + + 109 + + + + ttyToolbarView + + + + 110 + + + + readerController + + + + 115 + + + + punchController + + + + 116 + + + + loadUnloadClicked: + + + + 127 + + + + onOffClicked: + + + + 128 + + + + loadUnloadClicked: + + + + 129 + + + + onOffClicked: + + + + 130 + + + + loadUnloadButton + + + + 133 + + + + onOffButton + + + + 134 + + + + progressIndicator + + + + 135 + + + + filenameField + + + + 136 + + + + loadUnloadButton + + + + 137 + + + + onOffButton + + + + 138 + + + + filenameField + + + + 139 + + + + progressIndicator + + + + 140 + + + + reader + + + + 144 + + + + punch + + + + 145 + + + + textview + + + + 264 + + + + delegate + + + + 329 + + + + windowController + + + + 347 + + + + flushTypeaheadBufferButton + + + + 350 + + + + typeaheadBuffer + + + + 390 + + + + typeaheadBuffer + + + + 392 + + + + inputConsumer + + + + 418 + + + + inputConsumer + + + + 419 + + + + inputConsumer + + + + 420 + + + + flush: + + + + 460 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 5 + + + + + + ASR33Window + + + 6 + + + + + + + + 247 + + + + + + + + + + 250 + + + + + 18 + + + ASR33WindowController + + + 49 + + + + + + + + + Reader + + + 52 + + + + + 56 + + + + + + + + 59 + + + + + + + + 60 + + + + + + + + 61 + + + + + + + + + Punch + + + 62 + + + + + + + + 63 + + + + + + + + 64 + + + + + + + + 65 + + + + + 66 + + + + + + + + + TTY + + + 68 + + + + + + + + 71 + + + + + + + + + 74 + + + + + 75 + + + + + + + + + 76 + + + + + 342 + + + + + + + + 112 + + + ReaderController + + + 113 + + + PunchController + + + 349 + + + TypeaheadBuffer + + + 475 + + + + + 476 + + + + + 477 + + + + + 478 + + + + + 479 + + + + + 480 + + + + + 481 + + + + + 482 + + + + + 483 + + + + + 484 + + + + + 485 + + + + + 486 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + ASR33TextView + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Click here to discard buffered input, e. g. after accidentally pasting a large amount of text. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{42, 633}, {185, 66}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{91, 133}, {562, 360}} + + {562, 150} + PaperTapeProgressIndicator + + ToolTip + + ToolTip + + Progress indicator for the paper tape reader + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Filename of the paper tape currently loaded into the reader + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + TG9hZHMgb3IgdW5sb2FkcyBhIHBhcGVyIHRhcGUgZm9yIHRoZSByZWFkZXIuCgpZb3UgYWxzbyBjYW4g +ZHJhZyBmaWxlcyBmcm9tIHRoZSBGaW5kZXIgdG8gdGhpcyBidXR0b24gdG8gbG9hZCB0aGVtLg + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Turns the paper tape reader on or off + + + com.apple.InterfaceBuilder.CocoaPlugin + {{259, 677}, {185, 66}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + TG9hZHMgb3IgdW5sb2FkcyBhIHBhcGVyIHRhcGUgZm9yIHRoZSBwdW5jaC4KCllvdSBhbHNvIGNhbiBk +cmFnIGZpbGVzIGZyb20gdGhlIEZpbmRlciB0byB0aGlzIGJ1dHRvbiB0byBsb2FkIHRoZW0uA + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Turns the paper tape punch on or off + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Filename of the paper tape currently loaded into the punch + + + com.apple.InterfaceBuilder.CocoaPlugin + PaperTapeProgressIndicator + + ToolTip + + ToolTip + + Progress indicator for the paper tape punch + + + com.apple.InterfaceBuilder.CocoaPlugin + {{579, 569}, {126, 66}} + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Toggles between local and online mode of the ASR 33. When the TTY is online, keystrokes or characters read from the tape are not printed or punched, but their ASCII value is loaded into KBB. When the TTY runs locally, keystrokes or characters read from the tape are printed or punched; KBB, TTO and the I/O flags are not affected. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When the TTY in online, KBB (Keyboard Buffer) receives the characters typed at the keyboard or read from the paper tape. After putting a new value into KBB, the TTY raises its input flag. + + + com.apple.InterfaceBuilder.CocoaPlugin + RegisterFormCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When the CPU initializes an output operation by loading a value from AC into TTO (Teletype Output Buffer), the TTY prints or punches the character and raises then its output flag. + + + com.apple.InterfaceBuilder.CocoaPlugin + RegisterFormCell + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 489 + + + + + ASR33 + PDP8Plugin + + PaperTapeController + PaperTapeController + ASR33TextView + TypeaheadBuffer + ASR33WindowController + + + + punch + PaperTapeController + + + reader + PaperTapeController + + + textview + ASR33TextView + + + typeaheadBuffer + TypeaheadBuffer + + + windowController + ASR33WindowController + + + + IBProjectSource + ASR33/ASR33.h + + + + ASR33TextView + NSTextView + + typeaheadBuffer + TypeaheadBuffer + + + typeaheadBuffer + + typeaheadBuffer + TypeaheadBuffer + + + + IBProjectSource + ASR33/ASR33TextView.h + + + + ASR33WindowController + NSObject + + localOnlineClicked: + id + + + localOnlineClicked: + + localOnlineClicked: + id + + + + ASR33 + RegisterFormCell + NSSegmentedControl + PaperTapeController + NSView + PaperTapeController + NSView + RegisterFormCell + NSView + KeepInMenuWindow + + + + asr33 + ASR33 + + + kbb + RegisterFormCell + + + localOnline + NSSegmentedControl + + + punchController + PaperTapeController + + + punchToolbarView + NSView + + + readerController + PaperTapeController + + + readerToolbarView + NSView + + + tto + RegisterFormCell + + + ttyToolbarView + NSView + + + window + KeepInMenuWindow + + + + IBProjectSource + ASR33/ASR33WindowController.h + + + + FirstResponder + NSObject + + : + id + + + : + + : + id + + + + IBUserSource + + + + + KeepInMenuWindow + NSWindow + + id + id + + + + orderBackFromDefaults: + id + + + orderFrontFromDefaults: + id + + + + IBProjectSource + Utilities/KeepInMenuWindow.h + + + + NSControl + + IBProjectSource + Categories/NSControl+FileDrop.h + + + + PDP8Plugin + NSObject + + IBProjectSource + Plugins/PluginAPI.h + + + + PaperTapeController + NSObject + + id + id + + + + loadUnloadClicked: + id + + + onOffClicked: + id + + + + NSTextField + id + NSSegmentedControl + NSSegmentedControl + PaperTapeProgressIndicator + + + + filenameField + NSTextField + + + inputConsumer + id + + + loadUnloadButton + NSSegmentedControl + + + onOffButton + NSSegmentedControl + + + progressIndicator + PaperTapeProgressIndicator + + + + IBProjectSource + ASR33/PaperTapeController.h + + + + PaperTapeProgressIndicator + NSProgressIndicator + + IBProjectSource + ASR33/PaperTapeProgressIndicator.h + + + + RegisterFormCell + NSFormCell + + registerOwner + id + + + registerOwner + + registerOwner + id + + + + IBProjectSource + Utilities/RegisterFormCell.h + + + + TypeaheadBuffer + NSObject + + flush: + id + + + flush: + + flush: + id + + + + NSButton + id + + + + flushTypeaheadBufferButton + NSButton + + + inputConsumer + id + + + + IBProjectSource + ASR33/TypeaheadBuffer.h + + + + + + KeepInMenuWindow + NSWindow + + IBFrameworkSource + PluginFramework.framework/Headers/KeepInMenuWindow.h + + + + NSControl + + IBFrameworkSource + PluginFramework.framework/Headers/NSControl+FileDrop.h + + + + PDP8Plugin + NSObject + + IBFrameworkSource + PluginFramework.framework/Headers/PluginAPI.h + + + + RegisterFormCell + NSFormCell + + IBFrameworkSource + PluginFramework.framework/Headers/RegisterFormCell.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + YES + ../../pdp8e-simulator.xcodeproj + 3 + + diff --git a/ASR33/English.lproj/ASR33.nib/keyedobjects.nib b/ASR33/English.lproj/ASR33.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..eeed41890ea927962192063f5700bd0ef2b366cc GIT binary patch literal 19110 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⩰1CEi@FqbFX~y;r>I|1NztI9 zp+&=rMig0#s)}lg8j2c=nu?|t%_~||w617l(F^iH0S4Z>pdaD9{MYwg^y2>mxRsz$ literal 0 HcmV?d00001 diff --git a/ASR33/English.lproj/ASR33OnlineHelp/index.html b/ASR33/English.lproj/ASR33OnlineHelp/index.html new file mode 100644 index 0000000..c809b70 --- /dev/null +++ b/ASR33/English.lproj/ASR33OnlineHelp/index.html @@ -0,0 +1,307 @@ + + + + + + ASR 33 Teletype Help + + + + + + + +

ASR 33 Teletype Help

+ +

+The ASR 33 Teletype can operate under program control or independent of the PDP-8 unter manual +control. When operated in manual mode, characters typed at the keyboard are printed by the type +writer of the teletype. When additionally the paper tape punch is turned on, the typed +characters are punched on the papter tape, too. When a paper tape is loaded into the reader and +the reader is turned on, the teletype ignores the keyboard input and reads characters to print +or punch from the reader paper tape. +

+ +

+When the teletype is used in online mode, characters typed at the keyboard or read from the reader paper +tape are not printed or punched, but their ASCII value is transferred into the keyboard buffer register +KBB, from where the PDP-8 can read it into the accumulator AC. The PDP-8 then can use teletype output +IOTs to write the character to the teletype output buffer register TTO to initiate the printing or +punching of the character. +

+ +

+The teletypes of the PDP-8/E Simulator have the following improvements compared to hardware ASR 33 +Teletypes: +

+ +

    +
  • +Backspace handling: When the teletype is operated in local mode, typing the backspace key causes the +last character to be removed from the output display and — when the punch is turned on — +from the punch paper tape. The Macintosh clear key (at the top left of the numeric key pad or fn-6 on +notebook keyboards) has the function of the ASR 33 rubout key. +
  • +
  • +Tabulator handling: The teletype handles the output of tabulator characters with tabulator stops at every +8th column. (Tab characters are punched to paper tapes unaltered.) +
  • +
  • +Speed: The simulated teletype can run with the speed of a hardware ASR 33 teletype (about ten characters +per second) or as fast as possible. Use the ASR 33 preference pane to change the speed of the teletype. +
  • +
  • +High bit masking for the punch: When this feature is enabled (in the ASR 33 preference pane), the paper +tape punch masks the most significant bit of the punched characters. This is useful when you run PDP-8 +software that use the 8th bit as a checksum and save the output to a paper tape. When the MSB is +masked out, you can open and read the paper tape file with any Mac text editor. (When punching BIN or +RIM format paper tapes, you normally won't have to disable the MSB masking because these formats use +the 8th bit only for punching leaders or trailers, which are not needed with paper tapes stored in +files. One exception: BIN format with field settings uses values 3x0 (x=0,…,7) to signal that +the following code is to be loaded to memory field x.) +
  • +
  • +“Copy & Paste” and “Drag & Drop” is supported for the teletype: +When you paste text into the teletype window, the text is inserted into a typeahead buffer +from where the teletype reads it sccessively as if the characters were typed at the keyboard. +New keyboard input is appended at the end of the typeahead buffer. While the typeahead buffer is not +empty, a button “Flush Typeahead Buffer” appears in the toolbar of the ASR 33 window that +you can use to clear the buffer prematurely. +
  • +
+ +

Console Teletype

+ +

+The console teletype uses I/O address 03 for the keyboard and reader and 04 for the printer +and punch and supports the following IOTs: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Mnemonic
Symbol
Octal
Code

Description
KCF6030 + Clear the keyboard/reader I/O flag (“Console TTY In” in the CPU window). + Do not start the reader to read the next tape character. +
KSF6031 + Skip the next instruction when the keyboard/reader I/O flag is raised, i. e. a new + character is loaded into the keyboard buffer register KBB. +
KCC6032 + Clear AC and the keyboard/reader I/O flag. When the paper tape reader is turned on, + start to read the next character from the tape. When a new value is loaded into KBB + (from the tape or — when the reader is turned off — because the user + typed a key), the flag is raised again. +
KRS6034 + Transfer KBB into AC(4–11) by performing a logical OR (“static” read). +
KIE6035 + Load the keyboard/reader and printer/punch interrupt enable flag from AC(11) to enable + or disable teletype interrupts. +
KRB6036 + Clear AC and the keyboard/reader I/O flag, then read KBB into AC(4–11). + Microprogrammed combination of KCC and KRS. +
TFL6040 + Set the printer/punch I/O flag (“Console TTY Out” in the CPU window). +
TSF6041 + Skip the next instruction when the printer/punch I/O flag is set. +
TCF6042 + Clear the printer/punch I/O flag. +
TPC6044 + Load the teletype output buffer register TTO with the contents of AC(4–11) and + start to print and, when the punch is turned on, to punch the character from TTO. + When the output is completed, the printer/punch I/O flag is raised. +
TSK6045 + Skip the next instruction when an interrupt was caused by the teletype, i. e. when + the interrupt mask flag for input or output and the corresponding I/O flag are both set. +
TLS6046 + Clear the printer/punch I/O flag, load TTO from AC(4–11) and start the output. + When the output is completed, the printer/punch I/O flag is raised again. + Microprogrammed combination of TCF and TPC. +
+ +

Remark

+ +

+Earlier PDP-8 models (PDP-8, -8/S, -8/I, -8/L) do not support the IOTs KCF (6030), KIE (6035), +TFL (6040), and TSK (6045). +

+ +

Auxiliary Teletype

+ +

+The PDP-8/E Simulator includes an Auxiliary Teletype that you can activate in the Finder information +window for the PDP-8/E Simulator application in the area “Plug-ins”. (With Mac OS X 10.6 +“Snow Leopard”, Apple has removed the Plug-ins section from the Finder information window, +and you must open the application package manually and move the Auxiliary Teletype from the folder +“Contents/PlugIns Disabled” to “Contents/PlugIns”.) +

+ +

+In the CPU window, +the flags for the Auxiliary Teletype are called “Auxiliary TTY In” and +“Auxiliary TTY Out”. It uses the I/O addressed 40 for input and 41 for output and +supports the following IOTs: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Mnemonic
Symbol
Octal
Code
Corresponding
Console Teletype IOT
AKCF6400KCF (6030)
AKSF6401KSF (6031)
AKCC6402KCC (6032)
AKRS6404KRS (6034)
AKIE6405KIE (6035)
AKRB6406KRB (6036)
ATFL6410TFL (6040)
ATSF6411TSF (6041)
ATCF6412TCF (6042)
ATPC6414TPC (6044)
ATSK6415TSK (6045)
ATLS6416TLS (6046)
+ +

Additional Teletypes

+ +

+When you need additional teletypes, you can duplicate the Console or Auxiliary Teletype plugin and +then modify the property list that describes the I/O addresses and IOTs for the plugin. You find +this property list inside the plugin package at Contents/Resources/English.lproj/auxtty-io-info.plist. +

+ + + \ No newline at end of file diff --git a/ASR33/English.lproj/ASR33OnlineHelp/pdp8e.png b/ASR33/English.lproj/ASR33OnlineHelp/pdp8e.png new file mode 100644 index 0000000000000000000000000000000000000000..2c0c485d23a4a9a335fe22dfb2ae4604c93d63b3 GIT binary patch literal 1166 zcmY*YZ)_A*5TCcZw|BjA^k^+1)|5s(S}<5?LRyS8Kw3&esEybU`k{de8vS4ie{!Ul znjjP#Vp1hQpjIdrnvhf^%0sPw|Bk0+kJ1Gx4jmf&D)vx zo0;Ftdpp}+UsvPvKIsJjU+u=Kmr48O^62zlY~VIhdef$wDnR+1x!QY_kgS~>U)>Fm zohKKAQ=cp%(7mU2bG3WiotM9;cv;7_asaKMwrbrg6$_YOo3tq6u^^&5)m5aE4sygH ze&-_cyR;C8X$4cC7U_aw9%lfs|8C+I?sNZoiEwLEvm?gR(5YuFuK6CW)JWi zJ%IKMjuKC+OjV8byl4ACn22I9*1A;050s&>EEJrhux&IiA3~$01k<;!V0?cGTDQMJ zkxrrg#|XyTD$r;Rh=~{mA@Xqg7h@L%jNNdO<45YyzI)5Djol?^et#iDY9XJ95Q#bC zd+$ZO^VjrmnrE zPByMU^Lih0Zlko5Uv@ifCV#ksiL-5vE%B+h*Es&zp{+Ri=4$+Dd?KQlY4e<*j|rY^ znku4}LKVSGP|IFO_xCzbPUlVVHg`bIiSJpvc>=-#ncu{l%x z3u#y$fkFY2OxzoF2%Wni3qgQT6%21b^WlaU%33l#16&P{jFo=Wu!Kg0p`t=o{aax6 z$$xZ4s1Pv5fHQ$3yDpAbmM(opdgch^rZ@C;$EwIcv;XELltdDn6+!=Gth}BL1~wes zQnU7*S^R%NR7I^W@Z~mje$kSf>u)F=>8C>j+F~e<<8SIj4!k2f We4z#BSEoX9Q(IkE_4)d(2mS@W-_sBP literal 0 HcmV?d00001 diff --git a/ASR33/English.lproj/ASR33OnlineHelp/styles.css b/ASR33/English.lproj/ASR33OnlineHelp/styles.css new file mode 100644 index 0000000..c18751d --- /dev/null +++ b/ASR33/English.lproj/ASR33OnlineHelp/styles.css @@ -0,0 +1,239 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * styles.css - Online help - Style sheet + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +p { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +p.small { + font-size: 8pt; +} + +a { + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +a:hover { + text-decoration: underline +} + +ul { + margin-left: 1.25em; padding-left: 0em; +} + +li { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +#mainbox { + background-color: #fff; + margin-top: 30px; + margin-right: 26px; + margin-left: 18px; + position: absolute; + top: 10px +} + +#taskbox { + background-color: #eee; + list-style-type: decimal; + list-style-position: outside; + margin-top: 12px; + margin-bottom: 12px; + border: solid 1px #444 +} + +h1 { + font-size: 12pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 6pt; +} + +h2 { + font-size: 12pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 8pt; +} + +h3 { + font-size: 10pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 5pt; +} + +h4 { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 4pt; +} + +/* index.html */ + +table.index { + padding-top: 20px; + width: 100%; +} + +td.banner { + padding: 20px; +} + +td.toc { + padding-top: 10px; + padding-bottom: 10px; + padding-left: 20px; + padding-right:20px; + border-left: 1px solid darkgray; +} + +p.toc { + line-height: 40px; +} + +/* other pages */ + +table { + border-collapse: separate; + border-spacing: 0px; +} + +th { + font-family: "Lucida Grande", Arial, "Sans Serif"; + font-size: 9pt; + font-style: bold; + border-bottom: 1px solid gray; + padding-left: 10px; + padding-right: 10px; +} + +th.left { + text-align: left; +} + +td { + text-align: center; + vertical-align: top; + font-family: "Lucida Grande", Arial, "Sans Serif"; + font-size: 9pt; + padding-left: 10px; + padding-right: 10px; +} + +td.left { + text-align: left; +} + +td.right { + text-align: right; +} + +td.br { + border-right: 1px solid gray; +} + +td.bb { + border-bottom: 1px solid lightgray; +} + +td.bb_left { + text-align: left; + border-bottom: 1px solid lightgray; +} + +td.bbr { + border-bottom: 1px solid lightgray; + border-right: 1px solid gray; +} + +td.opcode { + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_right { + text-align: right; + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_left { + text-align: left; + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tb { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-bottom: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tlb { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-left: 1px solid black; + border-bottom: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tbr { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-bottom: 1px solid black; + border-right: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tlbr { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} diff --git a/ASR33/English.lproj/InfoPlist.strings b/ASR33/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..0eedff6 --- /dev/null +++ b/ASR33/English.lproj/InfoPlist.strings @@ -0,0 +1,28 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * InfoPlist.strings - Localized strings for Info.plist + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +CFBundleName = "ASR 33 Teletype"; +CFBundleGetInfoString = "ASR 33 Teletype 2.0.2, Copyright © 1994-2015 Bernhard Baehr"; +NSHumanReadableCopyright = "Copyright © 1994-2015 Bernhard Baehr"; +CFBundleHelpBookName = "ASR 33 Teletype Help"; \ No newline at end of file diff --git a/ASR33/English.lproj/auxtty-io-info.plist b/ASR33/English.lproj/auxtty-io-info.plist new file mode 100644 index 0000000..0b86e48 --- /dev/null +++ b/ASR33/English.lproj/auxtty-io-info.plist @@ -0,0 +1,59 @@ + + + + + + ioflags + + Auxiliary TTY In + Auxiliary TTY Out + + ioaddresses + + 40 + 41 + + iots + + + AKCF + AKSF + AKCC + + AKRS + AKIE + AKRB + + + ATFL + ATSF + ATCF + + ATPC + ATSK + ATLS + + + + diff --git a/ASR33/English.lproj/io-info.plist b/ASR33/English.lproj/io-info.plist new file mode 100644 index 0000000..92af7f2 --- /dev/null +++ b/ASR33/English.lproj/io-info.plist @@ -0,0 +1,59 @@ + + + + + + ioflags + + Console TTY In + Console TTY Out + + ioaddresses + + 3 + 4 + + iots + + + KCF + KSF + KCC + + KRS + KIE + KRB + + + TFL + TSF + TCF + + TPC + TSK + TLS + + + + diff --git a/ASR33/Info.plist b/ASR33/Info.plist new file mode 100644 index 0000000..770ac76 --- /dev/null +++ b/ASR33/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleHelpBookFolder + ASR33OnlineHelp + CFBundleHelpBookName + ASR 33 Teletype Help + CFBundleIconFile + + CFBundleIdentifier + de.bernhard-baehr.pdp8e.ASR33 + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 2.0.2 + CFBundleSignature + ???? + CFBundleVersion + 2.0.2 + NSPrincipalClass + ASR33 + + diff --git a/ASR33/SpeakerLoud.png b/ASR33/SpeakerLoud.png new file mode 100644 index 0000000000000000000000000000000000000000..3cce1a583c38e0d1f3fd99b3c684d5b1e7e2e7dd GIT binary patch literal 1210 zcmV;r1V#IaP)(_`g8%^ZB>(_~(EtE#UjP8;Yybc}ivR!{ScB&W zcmMzdKuJVFRCwCtS50VLMHK$doVj=2gFqmVRiIK33W0(k6qHJ(qO=GNN~PjTNl~=P zrb0ow5TV@^val@`q@}LJY%DDm!9p=uEDFU!Ay^O!#Rq}H14+0)GiPSp%$4_(Xc8Z0 z;eiA1&D^>7JKy;oiZNm*MPY|!#{uZ($B7dskY!olCK16oH?-DhpCxKtTiO5+V=Nn2 z_qzQ2`SYV=AcQcaM0AOne*rMP6E4`VwSLnzLKgOrO%V^P;RcUVNaN+~wRTm|r~_Z}kh zv50hu2wLmYTV>#MtJS)!wdN+58(m#pZJrtT-UGl=S(Yy)zqhs4m(qIITKj1T0nB^= zz|)%raKRXJMk$3D<4~?A*{78H9l%_o{C-)Mr@Z%I=6wKO^WMWbcSS^eI&*XoKwM9a zF>_6o>$N<_h@vO}fQjf*mStncm&A55S;xo7E(px~@MA zAwVg$8^Cmo5#Iad^s%ufM!ffr)48d>W;F1^f0X9g6kq^wzln($<5Y}s8Nfy=uN~t~Gdsu5fO7CH2 zK9*u(Nht+uEsQbGB?cZ0rXdY#Q53o?%g>y1e|5TE&GWp;g88bd){3H-2e6pfd6$TG zB~VwawE!?hMAIPzIOl%uV_*aE06wUys$+~f)1>9#WCP%?h&)9^-4qjhvn*Rk%-#cV zEmgo-BI0DswXKxmvt?Nxch32qeh&b>V_Y|7#9Miu|G>;`5h<;;?%ReTYiKIog4`*~@cw4-O>* za*&x9(%oXsS~~;a!GAfH-*(P@QP=gux~^XUaQkm>Mx(fxtRwRw1W!ceM(5~%e>?tj Y0LJkx(_`g8%^ZB>(_~(EtE#UjP8;Yybc}ivR!{ScB&W zcmMzaLPfSvUET8_QDuy!oCa7-NK#B1o*+z-&PEJ(%Y?Xsy@w5D`KM z8++etw86?iVPex^OI6)ks^er#+aqndIu4=ehV&*F?UL- z3;-a;2z^KV7#X-><_jWPd$5R%ZlJRyW(J}!kiV-Qoj{glpj7wqF65&V7}D2C2+RgV zq<3E@$v_BUqbfuMA_5|U_VDRTV8|fC_A1L#S!-`Y2+%amiqa5T|DA*l0GvDLuIjo5 z5m{wr3Ic!W+FE-SLTG+Wq<9(KJLgWk_ja2tXzS5AcjUeQNM!&3;MrPxSXI?~%8$}l m5!vr`wdP;5*+6Oop9270oxsLdJKya90000. + */ + + +@protocol InputConsumer; + + +@interface TypeaheadBuffer : NSObject { +@private + IBOutlet id inputConsumer; + IBOutlet NSButton *flushTypeaheadBufferButton; + NSMutableString *typeaheadBuffer; +} + +- (IBAction) flush:(id)sender; + +- (BOOL) hasCharacters; +- (signed short) getNextChar; +- (void) typeahead:(NSString *)string; + +@end diff --git a/ASR33/TypeaheadBuffer.m b/ASR33/TypeaheadBuffer.m new file mode 100644 index 0000000..fb3689c --- /dev/null +++ b/ASR33/TypeaheadBuffer.m @@ -0,0 +1,91 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * TypeaheadBuffer.m - Typeahead buffer for a keyboard input device + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "PluginFramework/Utilities.h" +#import "PluginFramework/InputConsumerProtocol.h" + +#import "TypeaheadBuffer.h" + + +@implementation TypeaheadBuffer + + +#define MIN_LENGTH_TO_SHOW_FLUSH_TYPEAHEAD_BUTTON 5 + + +- (IBAction) flush:(id)sender +{ + [typeaheadBuffer deleteCharactersInRange:NSMakeRange(0, [typeaheadBuffer length])]; + [flushTypeaheadBufferButton setHidden:YES]; +} + + +- (BOOL) hasCharacters +{ + return [typeaheadBuffer length] > 0; +} + + +- (signed short) getNextChar +{ + signed short c = 0; + int length = [typeaheadBuffer length]; + if (length < MIN_LENGTH_TO_SHOW_FLUSH_TYPEAHEAD_BUTTON) + [flushTypeaheadBufferButton setHidden:YES]; + if (length > 0) { + c = [typeaheadBuffer characterAtIndex:0]; + [typeaheadBuffer deleteCharactersInRange:NSMakeRange(0, 1)]; + } + return c; +} + + +- (void) typeahead:(NSString *)string +{ + int length = [typeaheadBuffer length]; + [typeaheadBuffer appendString:string]; + if ([typeaheadBuffer length] >= MIN_LENGTH_TO_SHOW_FLUSH_TYPEAHEAD_BUTTON) + [flushTypeaheadBufferButton setHidden:NO]; + if (length == 0) + [inputConsumer canContinueInput]; +} + + +- (void) awakeFromNib +{ + if (runningOnTiger()) { + NSPoint p = [flushTypeaheadBufferButton frame].origin; + p.x += 2; p.y += 1; + [flushTypeaheadBufferButton setFrameOrigin:p]; + [flushTypeaheadBufferButton setBezelStyle:NSRoundRectBezelStyle]; + [flushTypeaheadBufferButton setShowsBorderOnlyWhileMouseInside:NO]; + [[flushTypeaheadBufferButton cell] setImagePosition:NSNoImage]; + } + typeaheadBuffer = [[NSMutableString stringWithCapacity:128] retain]; +} + + +@end diff --git a/ASR33/tty-backspace.mp3 b/ASR33/tty-backspace.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..1c4e904213a0a5ff92863e62ce5f061df70580be GIT binary patch literal 7305 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 literal 0 HcmV?d00001 diff --git a/ASR33/tty-bell.mp3 b/ASR33/tty-bell.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..ce92e985484d00f7b0d2bf02066bac6f7912dbe9 GIT binary patch literal 27821 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

a>ca9Ye-A1T2ipo3%AjGE^U(C7 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 literal 0 HcmV?d00001 diff --git a/ASR33/tty-carriage-return.mp3 b/ASR33/tty-carriage-return.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2ae3ee02724f1949ae412dea8998e481d4eb2099 GIT binary patch literal 7456 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 literal 0 HcmV?d00001 diff --git a/ASR33/tty-keystroke1.mp3 b/ASR33/tty-keystroke1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..dcfe98a6bc32b518b4a612890dc9b6a9ef4e09e0 GIT binary patch literal 5251 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 Z;4hBN$jynu>Gy$RsiD94zx;2n|94&M8p;3w literal 0 HcmV?d00001 diff --git a/ASR33/tty-keystroke2.mp3 b/ASR33/tty-keystroke2.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..82af16619843fb65d740dce97c60b1979ab46f68 GIT binary patch literal 5256 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 O3y%I3KJ-8P!#@C;;1ZGm literal 0 HcmV?d00001 diff --git a/ASR33/tty-keystroke3.mp3 b/ASR33/tty-keystroke3.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..bcd351c025a142600fd333f9e516631073735b0c GIT binary patch literal 5257 zcmeHK=U3C&7X77Aqy&i6yvQWr z5BF8+_m^_-J_j0r!fqCkYW5X;!CwJ|`X~6tUqD z{&U+ml|JrIIl-Lz?cC-NEOj^T8}SwB@528F^KH!k2bGu;S4CjCR@MECCD8bBow&{i?15$w0Wh$JklaLvwG)>EMYqv<> z`ytjxmFoc=xPX>%eLO4qs*cv|f~eS~Tq#c$;nBdmAv|$_BmwoRK?BnwC^k~kr-a7u z_{xG^JFi!y%?FBpRO0u+f~3^nn6U%T^7m}vUyaW=W#2dN%GOqzc0sZud2DoC>)8+U zbK_WT>1E_OtR~EiG@$3}elcrLTRq0Md4KjBgJA|bu8nqNJ#J}LIVOANOoPeX**R%t zqUr@*YJomD_z^gIh2S(`UweW{i?MXZ0jAQqmt;_%MW#jpE&HGM{F51OGU3e*IJH+}SVOD9SkWJs>K<OrDUG8IK} zT75tyii^T}Ludef{OME1gJN^I3+k0@uXx@H>f{wY1gsKfvvpQazfgpr*&cZb!x;}s zkm(`H$=IX`e>}rF`!7{1@Ja}LWoer#g-fkfJ3`qfJveU|wAKH}jK1)Nphv-iY`CIFbJP@rH?slvj@LB9;LtO|LT^^?u$`D^3O^}IDXyIQ*nMz`rjja*M^&OP1F|AC%9j|eTC)X14tnax|UfJ}3nPw?= z_?p(XDb~M=SNr7=;N;pJlp-Md-rW71W;)zgzvUfUJt|%%CTmT{I4Is}UStv+acg0u zXvgn`zLOQ59F?&WyFuri+vYaWN1bg_>AR;qehxf;Zr132`ZGn3>SLk3-d5*|6)-r& z)qIbp#)#F1SElE}BijaPT(Q``H~`XmDNP6}DISgUZjT4CHX|oX?Uqjf4`XZ7-NwM8 zSka{9LKdQ$TxcuH-|H!QIpcC&sT)V9t@1_JDbIOz{CTIibPZz#sj7$cy2Q)S@Mpos zW<^hbYOS`EcOhT(gWs%B@b}K!-h@x}wcQmRSDCYt`$9!;Dp=X*{FAXeMFi2Miq5ml|ko|8+vD|S5?`TK=Igd_QMu2s6G1H0X= zvf6@py2=d+U9i4-p?P2I9_e=t?xRW&!^oF2COyJSZ~PBQ+77y>woL}tL=!v2&<^`C z0oZ^e!KOFst+o+fhs-|B?VfXc9p?YY|HO~$CPLBG9h1!+uK+0`r zh_RC&*#<+%q5b|7x3fl`+o{^l=>pb#lJPx$Q2~ZhgK)V3kbJClEO%EIq$C&D+jQbg zhE2YQsg%S6IgJ?5UfrZ7GA`E4YkHDH9L`ehOKb1D!V^e_Mxb@eQ|J#8SlTmXj>b5t z<&+eJW#U0Cr(lbdk&vAQ+Ij-`P}Cacw)IN=;>K9u+(!Gx+RObT2CpikPw0FyD=>Q2 zoc3vs9jdruh`bj-kE*gGP9)wa{P=P4rll=f@wKPMRvu_GatMofy%caCw%$g+RkpA} z+s4XXWl2iL%gYX4oWH!?tixecIj0}$MjZ7WB)5np*1fwa6YeB1dZhH+RGI-6UMhbY zCF9vYSwpB&Wyzs?HMkeB)Tg64std;JpYfvPFkNf3LQ9>SIm$;mcAzT{-Z#$(JrY^m$f5w=e9h@1g6Yk=5X0moqOuFKEL2L|AaC zFqfKYcw;bX9giPYuzE_iv`tn$Ld@Ty3k_#PH9cZl!m`H?LZIUZ-mnkKaYMYT9dc$1+Z^9DzpJ@NtJO-46R}I3cfQNML3Xy)&Tp}G~s{B@8X5|OT`l>z%-@)Rv%gDBqVOJP?E1NR$I z#btt&CU|;ynJ#rAoxG1s*w3-HRr{>_tG826ZLN-P&t1$-Vfc$fx0W7t;;>N`D zl+l9w!R(~faC)-9Hfc5Eb|SoZq1ZWK;m*$Bt4r1A@01QMh6GyYKc?TslnfXA=6(QE zSmx+!bL7rWM(yE0+TDuwh3=3rk8Lh@E@shb(Zr(a5D%?RD+ez`aHojK+#%APn;3<)Hishaof3pAG7?K?vDds=;ukb&v F{%={~mqGvl literal 0 HcmV?d00001 diff --git a/ASR33/tty-keystroke4.mp3 b/ASR33/tty-keystroke4.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..5fcc2f37b5e94dd9c5e8d09a38c1c0dba6794df9 GIT binary patch literal 5257 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 literal 0 HcmV?d00001 diff --git a/ASR33/tty-space.mp3 b/ASR33/tty-space.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..bb03c4b3106bea10467d3d4a43f7b14dded2fd39 GIT binary patch literal 5565 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 Gd;A^R{-IC+ literal 0 HcmV?d00001 diff --git a/ASR33Preferences/ASR33Preferences.h b/ASR33Preferences/ASR33Preferences.h new file mode 100644 index 0000000..70f1042 --- /dev/null +++ b/ASR33Preferences/ASR33Preferences.h @@ -0,0 +1,28 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ASR33Preferences.h - ASR 33 Teletype Preferences Pane + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#define ASR33_PREFS_SPEED_KEY @"ASR33RunWith10CharsPerSecond" +#define ASR33_PREFS_MASK_HIGHBIT_KEY @"ASR33MaskPunchedHighBit" +#define ASR33_PREFS_PLAY_SOUND @"ASR33PlaySound" +#define ASR33_PREFS_SOUND_VOLUME @"ASR33SoundVolume" diff --git a/ASR33Preferences/ASR33Preferences.m b/ASR33Preferences/ASR33Preferences.m new file mode 100644 index 0000000..90e6c24 --- /dev/null +++ b/ASR33Preferences/ASR33Preferences.m @@ -0,0 +1,41 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ASR33Preferences.m - ASR 33 Teletype Preferences Pane + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "ASR33Preferences.h" + + +@interface ASR33Preferences : NSPreferencePane +{ +} + +@end + + +@implementation ASR33Preferences + +// empty class, otherwise the preference pane bundle has no loadable code and does not load + +@end diff --git a/ASR33Preferences/English.lproj/ASR33Preferences.nib/designable.nib b/ASR33Preferences/English.lproj/ASR33Preferences.nib/designable.nib new file mode 100644 index 0000000..64deac6 --- /dev/null +++ b/ASR33Preferences/English.lproj/ASR33Preferences.nib/designable.nib @@ -0,0 +1,884 @@ + + + + 1050 + 10D573 + 740 + 1038.29 + 460.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 740 + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + ASR33Preferences + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{123, 459}, {500, 135}} + 1886912512 + ASR33Preferences + + NSWindow + + + View + + {1.79769e+308, 1.79769e+308} + {213, 107} + + + 256 + + + + 261 + + + + 268 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{436, 25}, {24, 24}} + + YES + + 130560 + 33554432 + + NSImage + SpeakerLoud + + 0 + 0 + 0 + NO + + YES + + + + 268 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{169, 25}, {24, 24}} + + YES + + 130560 + 33554432 + + NSImage + SpeakerQuiet + + 0 + 0 + 0 + NO + + YES + + + + 268 + {{201, 26}, {227, 21}} + + YES + + -2079981824 + 131072 + + + 1 + 0.0 + 0.5 + 0.0 + 0 + 0 + NO + NO + + + + + 268 + {{18, 28}, {145, 18}} + + YES + + 67239424 + 0 + Play teletype sound + + LucidaGrande + 13 + 1044 + + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + {{0, 57}, {251, 38}} + + YES + 2 + 1 + + + -2080244224 + 0 + Run as fast as possible + + + 1211912703 + 0 + + NSRadioButton + + + + 200 + 25 + + + 67239424 + 0 + Run with 10 characters per second + + + 1 + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +AAAAAF1KAAA0kQAACCVYWVogAAAAAAAAdCAAALRgAAAjPVhZWiAAAAAAAAAlbAAAFyoAAKfDWFlaIAAA +AAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1 +cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAAD +AQAAAQACBAUGBwkKCw0ODxASExQWFxgaGxweHyAiIyQmJygpKywtLzAxMjM1Njc4OTs8PT5AQUJDREZH +SElKS0xOT1BRUlNUVVZXWFlaW1xdXl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SF +hoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnZ6foKGio6SlpqanqKmqq6ytra6vsLGysrO0tba3uLi5uru8 +vL2+v8DBwcLDxMXGxsfIycrKy8zNzs7P0NHS0tPU1dbW19jZ2drb3Nzd3t/g4eLi4+Tl5ufo6enq6+zt +7u/w8fHy8/T19vf4+fr7/P3+/v8AAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR8gISIjJCUnKCkq +Ky0uLzAxMzQ1Njc4OTo7PD0/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaWltcXV5fYGFiY2RlZmdo +aWprbG1ub3BxcnN0dXZ3d3h5ent8fH1+f4CBgoKDhIWGh4iIiYqLjI2Oj5CRkpOUlJWWl5iZmpucnZ2e +n6ChoqOkpaamp6ipqqusra6vsLCxsrO0tba3uLm5uru8vb6/wMHCw8TFx8jJysvMzc7P0NDR0tPU1dbX +2Nna29ze3+Dh4uPk5ebn6err7O3u7/Hy8/T19vf5+vv8/f7/AAIDAwQFBgcICQoKCwwNDg8QERITFBUW +FxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODg5Ojs8PT4+P0BBQkNDREVGR0hJSUpLTE1O +Tk9QUVJSU1RVVVZXWFhZWltbXF1eXl9gYWFiY2RkZWZnZ2hpaWprbGxtbm5vcHFxcnNzdHV1dnd4eHl6 +ent8fH1+fn+AgYGCg4SEhYaHiImJiouMjY6Oj5CRkpOTlJWWl5iZmZqbnJ2en6ChoqOkpaanqKmqq6yt +rq+xsrO0tba3uLq7vL2+wMHDxMbHycrMzs/R0tTW19nb3d7g4uTm6Ors7vDy9Pb4+vz+/wAAbmRpbgAA +AAAAAAY2AACXGgAAVjoAAFPKAACJ3gAAJ8IAABaoAABQDQAAVDkAAiuFAAIZmQABeFEAAwEAAAIAAAAA +AAEABgANABcAIwAxAEAAUgBlAHsAkwCrAMUA4gD/AR8BPwFhAYUBqgHQAfgCIAJLAncCpQLSAwIDMwNl +A5gDzgQFBD0EdQSvBOsFKQVnBacF6AYqBm4GtQb8B0UHkgfkCDkIkAjnCT4JmAn0ClAKrQsLC2sLygwq +DIwM8Q1XDcAOKA6SDv4PbA/bEE0QxBE7EbQSMRKwEzITuRREFNAVYBXxFocXHhfAGGIZBBmsGlQa+RuU +HC4czh1yHhQeux9jIA0gvCFoIhkizyOJJEEk+SW6JnknOygFKMspkypiKzIsASzXLawuhy9gMD4xGzH8 +MtszvzSgNYY2cjdcOEw5OTorOxs8CD0EPfU+6z/nQOFB2ELUQ9VE00XcRttH5EjxSgBLCUwdTTFOUE9v +UI9Rt1LdVAVVNlZsV6VY4FohW21ct135X09goGH0Y0tkqGYFZ19oxGova5ptCG54b/BxbnLsdG119Xd/ +eQh6knwqfcV/W4D4gpSEO4Xih4CJKorYjIqOOY/jkZuTWJUOlsyYiZpSnB6d4Z+soX+jWqUvpxOo+6rj +rMuuwLC4sra0rra0uL+60LzfvwDBHcLdxLXGhchYyi7MCs3lz7rRmtOA1WPXR9kq2xPc/97s4M/iveSn +5o3obupT7ELuLPAM8fLz0PW396H5f/tZ/T3//wAAAAEAAwALABYAJQA3AE0AZQCBAJ8AwQDlAQsBNQFh +AZABwQH1AisCZAKfAtwDHANfA6MD6gQ0BH8EzQT1BR0FcAXEBhsGdAbPBy0HXAeMB+4IUgi4CSAJVAmK +CfYKZArVC0cLgQu8DDIMqw0mDaIOIQ6hDyQPqRAvELgQ/RFDEc8SXRLuE4AUFRSrFUMV3RZ5FxcXthhY +GPwZoRpIGvEbnBxJHPgdqB5bHw8fxSB9ITch8iKwJDAk8yW3Jn4nRigQKNwpqSp5K0osHCzxLccuoC95 +MFUxMzISMvMz1TS5NaA2hzdxOFw5STo4Oyg8Gj4DPvs/9EDuQepD6ETpRexG8Uf3SP9LFEwhTTBOQE9S +UGZSklOrVMVV4Vb/WB5ZP1phW4Vcq13SXvthUmJ/Y69k4GYSZ0dofGm0au1tZG6ib+FxInJlc6l073Y2 +d396FXtjfLJ+A39VgKmB/4NWhK+GCYjCiiGLgYzjjkePrJESknuT5Ja8mCuZm5sMnH+d9J9qoOGiWqPV +pVGmz6eOqE6pzqtRrNSuWq/gsWmy8rR+tgu5Kbq6vE294b93wQ7Cp8RBxd3He8kZyrrLisxbzf/Po9FK +0vHUm9ZF1/HZn9tO3Cbc/96x4GTiGePQ5YjnQegf6Pzquex27jbv9/G583z0X/VC9wj40Pqa/GX+Mf// +AAAAAQADAAsAJQA3AE0AZQCBAJ8AwQELATUBYQGQAcEB9QIrAmQCnwLcAxwDXwOjA+oENAR/BM0FHQVw +BcQGGwZ0Bs8HLQeMB+4IUgi4CSAJign2CmQK1QtHC7wMMgyrDSYNog4hDqEPJA+pEC8QuBFDEl0S7hOA +FBUUqxVDFnkXFxe2GFgY/BpIGvEbnBxJHPgdqB8PH8UgfSE3IfIjbyQwJPMltydGKBAo3Cp5K0osHC3H +LqAveTEzMhIy8zS5NaA2hzhcOUk6ODwaPQ4+Az/0QO5C6EPoROlG8Uf3SglLFEwhTkBPUlF7UpJUxVXh +Vv9ZP1phXKtd0mAlYVJjr2TgZhJofGm0au1tZG6ib+FxInJldO92Nnd/eMl6FXyyfgN/VYCpgf+Er4YJ +h2WIwoohi4GOR4+skRKSe5PklVCWvJgrmZubDJx/nfSfaqDholqj1aVRps+oTqnOq1Gs1K2Xrlqv4LFp +svK0frYLt5m5Kbnxurq8Tb3hv3fBDsHawqfEQcUPxd3He8hKyRnKusuKzFvN/87Rz6PQdtFK0vHTxtSb +1kXXG9fx2MjZn9tO3Cbc/93Y3rHfiuBk4hni9ePQ5KzliOZk50HoH+j86drqueuX7HbtVu427xbv9/DX +8bnymvN89F/1QvYl9wj37PjQ+bX6mvt//GX9S/4x//8AAGRlc2MAAAAAAAAACkNvbG9yIExDRAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAABIAAAAcAEMAbwBsAG8AcgAgAEwAQwBE +AABtbW9kAAAAAAAABhAAAJxOAAAAAL5zkQAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQg +QXBwbGUgQ29tcHV0ZXIsIEluYy4sIDIwMDUAAAAAA + + + + + + 3 + MCAwAA + + + + 400 + 75 + + + {251, 18} + {4, 2} + 1151868928 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + TU0AKgAABRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAADwRERGLJycnySsrK/A1NTXw +IyMjyRwcHIsJCQk8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUVdVBQUOCoqKj/ +29vb//n5+f/6+vr/2tra/6qqqv9UVFTgHx8fdQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZGRl5 +dXV198PDw//8/Pz////////////////////////////U1NT/fHx89yUlJXkAAAAFAAAAAAAAAAAAAAAA +AAAAAxEREUZqamrmtbW1/+3t7f/+/v7//v7+//7+/v/9/f3//f39//39/f/39/f/xMTE/3d3d+YZGRlG +AAAAAwAAAAAAAAAAAAAACkJCQqGtra3/xsbG/+vr6//y8vL/9fX1//X19f/z8/P/9fX1//Ly8v/u7u7/ +0tLS/6+vr/9KSkqhAAAACgAAAAAAAAAAAAAAF3h4eN2/v7//z8/P/93d3f/q6ur/7+/v/+/v7//w8PD/ +7e3t/+3t7f/i4uL/zs7O/8XFxf98fHzdAAAAFwAAAAAAAAADAAAAJKSkpPjOzs7/2dnZ/+Dg4P/i4uL/ +5eXl/+bm5v/n5+f/5eXl/+Li4v/e3t7/2tra/9DQ0P+srKz4AAAAJAAAAAMAAAADAAAALrCwsPrW1tb/ +3t7e/+Tk5P/p6en/6+vr/+zs7P/p6en/6+vr/+fn5//k5OT/4ODg/9nZ2f+zs7P6AAAALgAAAAMAAAAD +AAAALp2dnezg4OD/5eXl/+rq6v/u7u7/8PDw//Dw8P/x8fH/8PDw/+7u7v/q6ur/5ubm/+Hh4f+ZmZns +AAAALgAAAAMAAAADAAAAJG5ubs/l5eX/6enp/+/v7//y8vL/9vb2//r6+v/5+fn/9/f3//b29v/x8fH/ +6+vr/+Tk5P9ra2vPAAAAJAAAAAMAAAAAAAAAFy4uLpPCwsL67Ozs//Pz8//5+fn//v7+//7+/v/+/v7/ +/v7+//v7+//19fX/8PDw/8LCwvosLCyTAAAAFwAAAAAAAAAAAAAACgAAAENfX1/S5OTk/vn5+f/+/v7/ +///////////////////////////8/Pz/5ubm/l9fX9IAAABDAAAACgAAAAAAAAAAAAAAAwAAABcAAABl +YmJi3NLS0v3////////////////////////////////V1dX9ZGRk3AAAAGUAAAAXAAAAAwAAAAAAAAAA +AAAAAAAAAAUAAAAfAAAAZTMzM8KAgIDwv7+//O3t7f/t7e3/v7+//ICAgPAzMzPCAAAAZQAAAB8AAAAF +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAFwAAAEMAAAB3AAAAnwAAALMAAACzAAAAnwAAAHcAAABD +AAAAFwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAoAAAAXAAAAJAAAAC4AAAAu +AAAAJAAAABcAAAAKAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQEAAAMAAAABABIAAAEB +AAMAAAABABIAAAECAAMAAAAEAAAFugEDAAMAAAABAAEAAAEGAAMAAAABAAIAAAERAAQAAAABAAAACAES +AAMAAAABAAEAAAEVAAMAAAABAAQAAAEWAAMAAAABABIAAAEXAAQAAAABAAAFEAEcAAMAAAABAAEAAAFS +AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA + + + + + + + + 400 + 75 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 3 + MQA + + + + + + 256 + {{0, -1}, {253, 18}} + + YES + + 67239424 + 0 + Mask high bit of punched characters + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{20, 20}, {460, 95}} + + NSView + NSResponder + + + {500, 135} + + + {{0, 0}, {1440, 878}} + {213, 129} + {1.79769e+308, 1.79769e+308} + + + YES + + + + + + + _window + + + + 8 + + + + value: values.ASR33MaskPunchedHighBit + + + + + + value: values.ASR33MaskPunchedHighBit + value + values.ASR33MaskPunchedHighBit + + + + + + + 2 + + + 164 + + + + selectedIndex: values.ASR33RunWith10CharsPerSecond + + + + + + selectedIndex: values.ASR33RunWith10CharsPerSecond + selectedIndex + values.ASR33RunWith10CharsPerSecond + + + + + + + + + + + + + 2 + + + 181 + + + + nextKeyView + + + + 186 + + + + _firstKeyView + + + + 190 + + + + _lastKeyView + + + + 191 + + + + _initialKeyView + + + + 192 + + + + nextKeyView + + + + 207 + + + + nextKeyView + + + + 208 + + + + nextKeyView + + + + 209 + + + + value: values.ASR33PlaySound + + + + + + value: values.ASR33PlaySound + value + values.ASR33PlaySound + + + + + + 2 + + + 231 + + + + enabled: values.ASR33RunWith10CharsPerSecond + + + + + + enabled: values.ASR33RunWith10CharsPerSecond + enabled + values.ASR33RunWith10CharsPerSecond + 2 + + + 235 + + + + enabled: values.ASR33RunWith10CharsPerSecond + + + + + + enabled: values.ASR33RunWith10CharsPerSecond + enabled + values.ASR33RunWith10CharsPerSecond + 2 + + + 238 + + + + value: values.ASR33SoundVolume + + + + + + value: values.ASR33SoundVolume + value + values.ASR33SoundVolume + + + 0.5 + + + 2 + + + 239 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 5 + + + + + + ASR33Preferences + + + 6 + + + + + + + + 46 + + + + + + + + + + + + + 124 + + + + + + + + + + 126 + + + + + 127 + + + + + 128 + + + + + + + + 144 + + + Shared User Defaults Controller + + + 195 + + + + + 196 + + + + + 197 + + + + + + + + 198 + + + + + 199 + + + + + + + + 200 + + + + + 203 + + + + + + + + 204 + + + + + 205 + + + + + + + + 206 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Setting the teletype volume individually does not work with Mac OS X 10.4. With “Tiger”, please use the system volume settings. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{74, 577}, {500, 135}} + com.apple.InterfaceBuilder.CocoaPlugin + {{74, 577}, {500, 135}} + + + {213, 107} + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + 239 + + + + + ASR33Preferences + NSPreferencePane + + IBProjectSource + ASR33Preferences/ASR33Preferences.h + + + + ASR33Preferences + NSPreferencePane + + IBUserSource + + + + + FirstResponder + NSObject + + IBUserSource + + + + + NSControl + + IBProjectSource + Categories/NSControl+FileDrop.h + + + + NSControl + NSView + + IBUserSource + + + + + NSPreferencePane + NSObject + + IBUserSource + + + + + + + NSControl + + IBFrameworkSource + PluginFramework.framework/Headers/NSControl+FileDrop.h + + + + NSPreferencePane + NSObject + + NSView + NSView + NSView + NSWindow + + + IBFrameworkSource + PreferencePanes.framework/Headers/NSPreferencePane.h + + + + + 0 + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + YES + ../../pdp8e-simulator.xcodeproj + 3 + + diff --git a/ASR33Preferences/English.lproj/ASR33Preferences.nib/keyedobjects.nib b/ASR33Preferences/English.lproj/ASR33Preferences.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..474e8874e5b99b7f1bf7b47165da272de3b1dd1d GIT binary patch literal 17282 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. + */ + + +NSPrefPaneIconLabel = "ASR 33"; +PrefPaneWindowTitle = "ASR 33 Teletype Preferences"; diff --git a/ASR33Preferences/Info.plist b/ASR33Preferences/Info.plist new file mode 100644 index 0000000..aebef0f --- /dev/null +++ b/ASR33Preferences/Info.plist @@ -0,0 +1,56 @@ + + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + de.bernhard-baehr.pdp8e.ASR33Preferences + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleSignature + ???? + CFBundleVersion + 2.0.2 + CFBundleShortVersionString + 2.0.2 + NSMainNibFile + ASR33Preferences + NSPrefPaneIconFile + asr33PrefIcon.jpg + NSPrefPaneIconLabel + ASR 33 + NSPrincipalClass + ASR33Preferences + OrderInPreferencesPanelToolbar + 10 + PrefPaneWindowTitle + ASR 33 Teletype Preferences + + diff --git a/ASR33Preferences/asr33PrefIcon.jpg b/ASR33Preferences/asr33PrefIcon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..04e1ef6426ee730a1b7f18c2a06b33e0ec8f1b79 GIT binary patch literal 5054 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 SNQe{G=Epe}5O$8fn*A3qiRf. + */ + + +#define CPU_PREFS_EAE_KEY @"KE8E" +#define CPU_PREFS_KM8E_KEY @"KM8E" +#define CPU_PREFS_TIMESHARING_KEY @"KM8ETimesharing" +#define CPU_PREFS_MEMORYSIZE_KEY @"MemorySize" + + +@interface CPUPreferences : NSPreferencePane +{ +} + +- (IBAction) km8eClick:(id)sender; + +@end diff --git a/CPUPreferences/CPUPreferences.m b/CPUPreferences/CPUPreferences.m new file mode 100644 index 0000000..e1348d4 --- /dev/null +++ b/CPUPreferences/CPUPreferences.m @@ -0,0 +1,43 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * CPUPreferences.m - CPU Preferences Pane + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "CPUPreferences.h" + + +@implementation CPUPreferences + + +// the rest is done via bindings and NSUserDefaultsController + + +- (IBAction) km8eClick:(id)sender; +{ + [[NSUserDefaults standardUserDefaults] setInteger: + ([sender state] == NSOnState) ? 020000 : 010000 forKey:CPU_PREFS_MEMORYSIZE_KEY]; +} + + +@end diff --git a/CPUPreferences/English.lproj/CPUPreferences.nib/designable.nib b/CPUPreferences/English.lproj/CPUPreferences.nib/designable.nib new file mode 100644 index 0000000..8c5eabb --- /dev/null +++ b/CPUPreferences/English.lproj/CPUPreferences.nib/designable.nib @@ -0,0 +1,1035 @@ + + + + 1050 + 11A511 + 1617 + 1138 + 566.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 1617 + + + NSView + NSMatrix + NSWindowTemplate + NSTextField + NSTextFieldCell + NSCustomView + NSButtonCell + NSButton + NSUserDefaultsController + NSCustomObject + + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + CPUPreferences + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{123, 430}, {284, 164}} + 1886912512 + CPUPreferences + + NSWindow + + + View + + + {213, 107} + + + 256 + + + + 261 + + + + 256 + {{18, 0}, {228, 38}} + + + + 4096 + YES + 2 + 4 + + + -2080373760 + 0 + 4K + + LucidaGrande + 13 + 1044 + + + 4096 + 1211912703 + 0 + + NSRadioButton + + + + + + 200 + 25 + + + 67239424 + 0 + 8K + + + 8192 + 1211912703 + 0 + + + + 400 + 75 + + + 67239424 + 0 + 12K + + + 12288 + 1211912703 + 0 + + + + 400 + 75 + + + 67239424 + 0 + 16K + + + 16384 + 1211912703 + 0 + + + + 400 + 75 + + + 67239424 + 0 + 20K + + + 20480 + 1211912703 + 0 + + + + 200 + 25 + + + 67239424 + 0 + 24K + + + 24576 + 1211912703 + 0 + + + + 400 + 75 + + + 67239424 + 0 + 28K + + + 28672 + 1211912703 + 0 + + + + 400 + 75 + + + 67239424 + 0 + 32K + + + 32768 + 1211912703 + 0 + + + + 400 + 75 + + + {57, 18} + {0, 2} + 1143480320 + NSActionCell + + 67239424 + 0 + Radio + + 1211912703 + 0 + + 549453824 + {18, 18} + + + + + + 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 +LCAyMDA1AAAAAA + + + + + + 3 + MCAwAA + + + + 400 + 75 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 3 + MQA + + + + + + 256 + {{17, 45}, {89, 17}} + + + + YES + + 67239424 + 272629760 + Memory Size: + + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 256 + {{18, 66}, {228, 18}} + + + + YES + + 67239424 + 0 + Enable Time Sharing Option + + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 256 + {{-2, 88}, {248, 18}} + + + + YES + + 67239424 + 0 + KM8-E Memory Extension + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 256 + {{-2, 108}, {248, 18}} + + + + YES + + -2080244224 + 0 + KE8-E Extended Arithmetic Element + + + 1211912703 + 2 + + + + + 200 + 25 + + + + {{20, 20}, {244, 126}} + + + + NSView + NSResponder + + + {284, 164} + + + + + {{0, 0}, {1280, 778}} + {213, 129} + {10000000000000, 10000000000000} + YES + + + YES + + + + + + + _window + + + + 8 + + + + km8eClick: + + + + 103 + + + + nextKeyView + + + + 108 + + + + nextKeyView + + + + 109 + + + + nextKeyView + + + + 110 + + + + nextKeyView + + + + 111 + + + + _initialKeyView + + + + 113 + + + + _lastKeyView + + + + 114 + + + + _firstKeyView + + + + 115 + + + + initialFirstResponder + + + + 116 + + + + nextKeyView + + + + 117 + + + + value: values.KM8E + + + + + + value: values.KM8E + value + values.KM8E + + + + + + + + + + + + + 2 + + + 139 + + + + value: values.KE8E + + + + + + value: values.KE8E + value + values.KE8E + + + + + + + 2 + + + 140 + + + + value: values.KM8ETimesharing + + + + + + value: values.KM8ETimesharing + value + values.KM8ETimesharing + + + + + + + 2 + + + 141 + + + + enabled: values.KM8E + + + + + + enabled: values.KM8E + enabled + values.KM8E + + + + + 2 + + + 142 + + + + selectedTag: values.MemorySize + + + + + + selectedTag: values.MemorySize + selectedTag + values.MemorySize + + + + + + + + + + + + + 2 + + + 144 + + + + enabled: values.KM8E + + + + + + enabled: values.KM8E + enabled + values.KM8E + + + + + + + NSNegateBoolean + + 2 + + + 155 + + + + enabled: values.KM8E + + + + + + enabled: values.KM8E + enabled + values.KM8E + + + + + + + + 2 + + + 157 + + + + enabled: values.KM8E + + + + + + enabled: values.KM8E + enabled + values.KM8E + + + + + + + + 2 + + + 159 + + + + enabled: values.KM8E + + + + + + enabled: values.KM8E + enabled + values.KM8E + + + + + + + + 2 + + + 161 + + + + enabled: values.KM8E + + + + + + enabled: values.KM8E + enabled + values.KM8E + + + + + + + + 2 + + + 164 + + + + enabled: values.KM8E + + + + + + enabled: values.KM8E + enabled + values.KM8E + + + + + + + + 2 + + + 166 + + + + enabled: values.KM8E + + + + + + enabled: values.KM8E + enabled + values.KM8E + + + + + + + + 2 + + + 168 + + + + enabled: values.KM8E + + + + + + enabled: values.KM8E + enabled + values.KM8E + + + + + + + + 2 + + + 170 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 5 + + + + + + CPUPreferences + + + 6 + + + + + + + + 46 + + + + + + + + + + + + 80 + + + + + + + + + + + + + + + + 81 + + + + + 82 + + + + + 83 + + + + + 84 + + + + + 85 + + + + + 86 + + + + + 87 + + + + + 88 + + + + + 89 + + + + + + + + 90 + + + + + + + + 91 + + + + + + + + 92 + + + + + + + + 124 + + + Shared User Defaults Controller + + + 173 + + + + + 174 + + + + + 175 + + + + + 176 + + + + + 177 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 177 + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + YES + 3 + + NSSwitch + {15, 15} + + + diff --git a/CPUPreferences/English.lproj/CPUPreferences.nib/keyedobjects.nib b/CPUPreferences/English.lproj/CPUPreferences.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..14d1874eec9a8ea2cdc7c55be49ebf617afc241f GIT binary patch literal 13509 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 C`2T7E literal 0 HcmV?d00001 diff --git a/CPUPreferences/English.lproj/CPUPreferences~.nib/classes.nib b/CPUPreferences/English.lproj/CPUPreferences~.nib/classes.nib new file mode 100644 index 0000000..45fad94 --- /dev/null +++ b/CPUPreferences/English.lproj/CPUPreferences~.nib/classes.nib @@ -0,0 +1,34 @@ +{ + IBClasses = ( + { + ACTIONS = { + eaeClick = id; + km8eClick = id; + memSizeClick = id; + timeSharingOptionClick = id; + }; + CLASS = CPUPreferences; + LANGUAGE = ObjC; + OUTLETS = { + eaeCheckbox = NSButton; + km8eCheckbox = NSButton; + memSizeRadiobuttons = NSMatrix; + timeSharingOptionCheckbox = NSButton; + }; + SUPERCLASS = NSPreferencePane; + }, + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + CLASS = NSPreferencePane; + LANGUAGE = ObjC; + OUTLETS = { + "_firstKeyView" = NSView; + "_initialKeyView" = NSView; + "_lastKeyView" = NSView; + "_window" = NSWindow; + }; + SUPERCLASS = NSObject; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/CPUPreferences/English.lproj/CPUPreferences~.nib/info.nib b/CPUPreferences/English.lproj/CPUPreferences~.nib/info.nib new file mode 100644 index 0000000..a718e51 --- /dev/null +++ b/CPUPreferences/English.lproj/CPUPreferences~.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 135 64 356 240 0 0 1440 878 + IBFramework Version + 443.0 + IBOpenObjects + + 5 + + IBSystem Version + 8I1119 + + diff --git a/CPUPreferences/English.lproj/CPUPreferences~.nib/keyedobjects.nib b/CPUPreferences/English.lproj/CPUPreferences~.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..0545905d33c2d89335f2a66513e191065d1d56f4 GIT binary patch literal 10441 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 QnJK*ZKFV*)cT(^F2gY=)x&QzG literal 0 HcmV?d00001 diff --git a/CPUPreferences/English.lproj/InfoPlist.strings b/CPUPreferences/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..d2e13a6 --- /dev/null +++ b/CPUPreferences/English.lproj/InfoPlist.strings @@ -0,0 +1,26 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * InfoPlist.strings - Localized strings for CPU preference pane Info.plist + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +NSPrefPaneIconLabel = "CPU"; +PrefPaneWindowTitle = "PDP-8/E CPU Preferences"; diff --git a/CPUPreferences/Info.plist b/CPUPreferences/Info.plist new file mode 100644 index 0000000..cb01b5c --- /dev/null +++ b/CPUPreferences/Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + de.bernhard-baehr.pdp8e.CPUPreferences + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 2.0.2 + CFBundleSignature + ???? + CFBundleVersion + 2.0.2 + NSMainNibFile + CPUPreferences + NSPrefPaneIconFile + cpuPrefIcon.jpg + NSPrefPaneIconLabel + CPU + NSPrincipalClass + CPUPreferences + OrderInPreferencesPanelToolbar + 02 + PrefPaneWindowTitle + PDP-8/E CPU Preferences + + diff --git a/CPUPreferences/cpuPrefIcon.jpg b/CPUPreferences/cpuPrefIcon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9cbdacf39973c36638f741ea4b6098553adc3f02 GIT binary patch literal 1601 zcmbtPdpOez82)X;s3se$T+W(>vV|;XQf)YG8q$=xY(zV5vB-V(oH9I#YK*k8ba9HL zSi(phm7-Xgj;zR~3yJO6D$P^R89VFroIlRrz2EbF|Gbyy{d7aR*MOOykFO5^0)YUk zegNGYUjEqR01N?r@A~~3n?MYqMtaKL3;>|||G;1{xQS?jX=mc$eI2MsIAQ5U5(&e3U_~`fz zE1o1+e!0v%>I*TeA>&i=m@I*_^`J$EOWS73m+>BdS6tI2|JnSwQycEVM4&mbr}|ng zPB`1J{*Nz1zj1QRI^9}O8XgIcZk2lnO1v23Zs1b(GO|3)EC>oYrtA=Bg@9P%^ zHM@Fp=?XWvVJTS$fZv8$UAr8dZx&4bXfq~dUwx(wEWmW9L=B~XKo~pFrD}Jv=cH<1 z%NQs8Jy=B&sl#Q>sUjRx7;Rk@(u{RV9q~DB6`iQbOI$;&4cX^$DX|7`re-`D5f9w( z6Q5dpYz=iNws(ehVO65GqW|vKGV?(XlP6{mtYfBwy;QHn_KnyF4YMYlT{P) zh*61K3G4GM%?xROQEjz_t}mGYFja{LrfCh)Ue}uqru-eNjN=O4N})wP8AkJ7ByflO z`Pl&FY1ektu?OAiRTJ(b&=bt2Fxx<^9ji9%d{7O;-^}x(7fdnH6;45B$0{S*Oq<^x zRM+6=2p8ks7Xmh|#fQ8+TJ3Zw;-ePF;7c@T&TTsq$+5;tjhwVGPRF_G`pmY6*~{(v z$8)(j!G|=0srvZ_82=fH`e^>n@xFRD3U<9JI0?LC;Oj9~7B9cBsQ!s_A8%Y#NtXHP zfWrItX=4~R4FqkCXDii4 zRJY9Ztb+sjJ+h2Elf(JkzoLWG*VLzWy7r0ad*jx!p|037<0I_*3~6^zQ+R}Yl-uQ$qHV(Z7w1V@_nqV*hmQ zmhoauxjChvz@6#q+9^Q`j+K)L$%pbmLYJd;+T;Nx-nBe=Sp2v@pz!rO1DQ7&cKP%b z=Usulm)9Buxexq47f{pO^lbL&sm#O|#h*m!`e8~z86orux^ literal 0 HcmV?d00001 diff --git a/CPUWindow/CPUMemoryViewController.h b/CPUWindow/CPUMemoryViewController.h new file mode 100644 index 0000000..364df09 --- /dev/null +++ b/CPUWindow/CPUMemoryViewController.h @@ -0,0 +1,44 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * CPUMemoryViewController.h - Controller for CPU window memory view + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class BreakpointArray, PDP8, CPUMemoryTableView; + + +@interface CPUMemoryViewController : NSObject +{ +@private + IBOutlet CPUMemoryTableView *memoryView; + IBOutlet BreakpointArray *breakpoints; + IBOutlet BreakpointArray *breakopcodes; + IBOutlet PDP8 *pdp8; + BOOL ignoreUpdateMemoryNotification; + BOOL ignorePCChangedNotification; + NSRange visibleMemoryRange; + unsigned pcDefaultRow; +} + +- (IBAction) handleContextMenu:(id)sender; +- (NSString *) operandInfoAtAddress:(int)addr; // private delegate method, declared here to avoid warning + +@end diff --git a/CPUWindow/CPUMemoryViewController.m b/CPUWindow/CPUMemoryViewController.m new file mode 100644 index 0000000..a08915a --- /dev/null +++ b/CPUWindow/CPUMemoryViewController.m @@ -0,0 +1,654 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * CPUMemoryViewController.m - Controller for the CPU window memory view + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import +#import // for Help Manger functions + +#import "CPUMemoryViewController.h" +#import "PDP8.h" +#import "Opcode.h" +#import "Breakpoint.h" +#import "BreakpointArray.h" +#import "NSTableView+Scrolling.h" +#import "NonWrappingTableView.h" +#import "OpcodeFormatter.h" +#import "Disassembler.h" +#import "Unicode.h" +#import "Utilities.h" + + +#define PC_ARROW_BLUE_IMAGE @"pcArrowBlue" +#define PC_ARROW_GRAPHITE_IMAGE @"pcArrowGraphite" +#define PC_ARROW_DRAG_TYPE @"pcArrowDragType" +#define UPDATE_MEMORY_NOTIFICATION @"UpdateMemoryNotification" + +#define PC_DEFAULT_ROW_PREFS_KEY @"DefaultPCRow" + +#define PC_DEFAULT_ROW 10 + +#define PC_COLUMN 0 +#define PC_COLUMN_STR @"0" +#define BP_COLUMN 1 +#define ADDR_COLUMN 2 +#define WORD_COLUMN 3 +#define OPCODE_COLUMN 4 + +#define CONTEXTMENU_SET_BREAKPOINT 0 +#define CONTEXTMENU_SET_BREAKOPCODE 1 +#define CONTEXTMENU_SET_SYSTEM_BREAKOPCODE 2 +#define CONTEXTMENU_SET_USER_BREAKOPCODE 3 +#define CONTEXTMENU_SET_PC 4 +#define CONTEXTMENU_GO_AND_STOP_HERE 5 +#define CONTEXTMENU_TRACE_AND_STOP_HERE 6 +#define CONTEXTMENU_SCROLL_TO_PC 7 +#define CONTEXTMENU_SET_DEFAULT_PC_ROW 8 + + +@interface CPUMemoryTableView : NonWrappingTableView +{ +} +@end + + +@implementation CPUMemoryTableView + + +- (BOOL) canDragRowsWithIndexes:(NSIndexSet *)rows atPoint:(NSPoint)mouseDownPoint +{ + // allow drag only for current PC row to avoid minor screen flicker with the clicked cell with Yosemite + return [rows count] == 1 && [[self delegate] tableView:self + objectValueForTableColumn:[self tableColumnWithIdentifier:PC_COLUMN_STR] row:[rows firstIndex]] + != nil; +} + + +- (NSImage *) dragImageForRowsWithIndexes:(NSIndexSet *)dragRows tableColumns:(NSArray *)tableColumns + event:(NSEvent*)dragEvent offset:(NSPointPointer)dragImageOffset +{ + return [NSImage imageNamed:[NSColor currentControlTint] == NSGraphiteControlTint ? + PC_ARROW_GRAPHITE_IMAGE : PC_ARROW_BLUE_IMAGE]; +} + + +- (NSMenu *) menuForEvent:(NSEvent *)event +{ + int row = [self rowAtPoint:[self convertPoint:[event locationInWindow] fromView:nil]]; + [self selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO]; + return [self menu]; +} + + +- (void) mouseDown:(NSEvent *)event +{ + CFStringRef tipContent; + + NSPoint point = [self convertPoint:[event locationInWindow] fromView:nil]; + int row = [self rowAtPoint:point]; + [self selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO]; + // why does [super mouseDown:event] not select the clicked row immediately? + if (([event modifierFlags] & NSShiftKeyMask) && [self columnAtPoint:point] == OPCODE_COLUMN && + (tipContent = (CFStringRef) [[self delegate] operandInfoAtAddress:row])) { + HMHelpContentRec tip; + tip.version = kMacHelpVersion; + NSRect rect = [self frameOfCellAtColumn:OPCODE_COLUMN row:row]; + rect.origin = [[self window] convertBaseToScreen: + [self convertPoint:rect.origin toView:nil]]; + float scale = [[self window] userSpaceScaleFactor]; + tip.absHotRect.left = rect.origin.x / scale + 33; + tip.absHotRect.right = (rect.origin.x + rect.size.width) / scale; + tip.absHotRect.top = + ([[[NSScreen screens] objectAtIndex:0] frame].size.height - rect.origin.y) / scale; + tip.absHotRect.bottom = tip.absHotRect.top + rect.size.height / scale; + tip.tagSide = kHMOutsideBottomLeftAligned; + tip.content[0].contentType = tip.content[1].contentType = kHMCFStringContent; + tip.content[0].u.tagCFString = tip.content[1].u.tagCFString = tipContent; + HMDisplayTag (&tip); + } + [super mouseDown:event]; + HMHideTag (); +} + + +- (void) selectRowIndexes:(NSIndexSet *)indexes byExtendingSelection:(BOOL)extend +{ + if ((int) [indexes firstIndex] != [self selectedRow]) + HMHideTag (); + [super selectRowIndexes:indexes byExtendingSelection:extend]; +} + + +- (int) getCurrentAddress // OpcodeFormatterAddressGetter protocol +{ + return [self selectedRow]; +} + + +@end + + +@implementation CPUMemoryViewController + + +- (void) setYosemiteTitleKerning:(NSCell *)cell +{ + // otherwise, the title of the PC and BP columns is clipped + // (capitals are longer with Helvetica Neue than with Lucida Grande + if (runningOnYosemiteOrNewer()) { + double kern = 0.4; + if (runningOnElCapitanOrNewer()) + kern = -0.5; + [cell setTitle:[[[NSAttributedString alloc] initWithString:[cell title] attributes: + [NSDictionary dictionaryWithObject:[NSNumber numberWithDouble:kern] forKey:NSKernAttributeName]] + autorelease]]; + } +} + + +- (void) awakeFromNib +{ + NSSize size; + + NSFont *font = [NSFont userFixedPitchFontOfSize:11]; + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + + [self setYosemiteTitleKerning:[[[memoryView tableColumns] objectAtIndex:PC_COLUMN] headerCell]]; + [self setYosemiteTitleKerning:[[[memoryView tableColumns] objectAtIndex:BP_COLUMN] headerCell]]; + adjustTableHeaderForElCapitan (memoryView); + size.width = 1; + size.height = [memoryView rowHeight] + 2; + [[memoryView window] setResizeIncrements:size]; + [[[[memoryView tableColumns] objectAtIndex:ADDR_COLUMN] dataCell] setFont:font]; + [[[[memoryView tableColumns] objectAtIndex:WORD_COLUMN] dataCell] setFont:font]; + [[[[memoryView tableColumns] objectAtIndex:OPCODE_COLUMN] dataCell] setFont:font]; + [[[[memoryView tableColumns] objectAtIndex:OPCODE_COLUMN] dataCell] setFormatter: + [OpcodeFormatter formatterWithPDP8:pdp8 addressGetter:memoryView]]; + [memoryView setTarget:self]; + [memoryView setDoubleAction:@selector(memoryViewDoubleClick:)]; + [memoryView registerForDraggedTypes:[NSArray arrayWithObject:PC_ARROW_DRAG_TYPE]]; + pcDefaultRow = [[NSUserDefaults standardUserDefaults] integerForKey:PC_DEFAULT_ROW_PREFS_KEY]; + if (pcDefaultRow == 0) + pcDefaultRow = PC_DEFAULT_ROW; + [memoryView scrollRowToTop:0200 + 1 - pcDefaultRow]; + // frame changed notification seems not work for the tableview itself + [[memoryView superview] setPostsFrameChangedNotifications:YES]; + // save the visible range now to be able to scroll to the correct location after "go" + visibleMemoryRange = [memoryView rowsInRect:[memoryView visibleRect]]; + ignoreUpdateMemoryNotification = NO; + ignorePCChangedNotification = NO; + [defaultCenter addObserver:self selector:@selector(notifyMemoryViewSizeChanged:) + name:NSViewFrameDidChangeNotification object:[memoryView superview]]; + [defaultCenter addObserver:self selector:@selector(notifyMemoryChanged:) + name:MEMORY_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyMemoryChanged:) + name:EAE_MODE_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyMemoryChanged:) + name:BREAKPOINTS_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyMemoryChanged:) + name:PROGRAM_COUNTER_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyMemoryChanged:) + name:DF_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyUpdateMemoryView:) + name:UPDATE_MEMORY_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyGoPDP8:) + name:PDP8_GO_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyStepPDP8:) + name:PDP8_STEP_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyStopPDP8:) + name:PDP8_STOP_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyPCChanged:) + name:PROGRAM_COUNTER_CHANGED_NOTIFICATION object:nil]; + if (runningOnYosemiteOrNewer()) { + [defaultCenter addObserver:self selector:@selector(notifyMainOrKeyWindowChanged:) + name:NSWindowDidBecomeMainNotification object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyMainOrKeyWindowChanged:) + name:NSWindowDidResignMainNotification object:nil]; + } else { + [defaultCenter addObserver:self selector:@selector(notifyMainOrKeyWindowChanged:) + name:NSWindowDidBecomeKeyNotification object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyMainOrKeyWindowChanged:) + name:NSWindowDidResignKeyNotification object:nil]; + } +} + + +- (void) updateVisibleMemoryRange +{ + // save the visible range now to be able to scroll to the correct location after "go" + // calculate number of rows manually because otherwise it is one to large when the view is not exactly aligned + // see also [MemoryInspectorController visibleRange] and [NSTableView(Scrolling) scrollRowToTop:] + NSRect rect = [memoryView visibleRect]; + if (rect.size.height > 0) { // zero immediately after "Stop" when the window is not yet enlarged + if (runningOnElCapitanOrNewer()) + rect.origin.y += [memoryView rectOfRow:0].size.height; + unsigned pixelPerRow = (unsigned) ([memoryView rowHeight] + [memoryView intercellSpacing].height); + visibleMemoryRange.location = [memoryView rowsInRect:rect].location; + visibleMemoryRange.length = rect.size.height / pixelPerRow; + } +} + + +- (BOOL) tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)column row:(int)row +{ + return 0 <= row && row < [pdp8 memorySize]; +} + + +- (BOOL) tableView:(NSTableView *)tableView shouldSelectRow:(int)row +{ + return YES; +} + + +- (void) scrollToPC +{ + [self updateVisibleMemoryRange]; + [memoryView scrollRowToTop:max(0, min((int) (PDP8_MEMSIZE - visibleMemoryRange.length), + (int) ([pdp8 getProgramCounter] - pcDefaultRow + 1)))]; +} + + +- (BOOL) tableView:(NSTableView *)tableView shouldSelectTableColumn:(NSTableColumn *)column +{ + if ([[column identifier] intValue] == PC_COLUMN) + [self scrollToPC]; + return NO; +} + + +- (BOOL) tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rows + toPasteboard:(NSPasteboard *)pboard +{ + if ([rows count] != 1 || [rows firstIndex] != [pdp8 getProgramCounter]) + return NO; + [pboard declareTypes:[NSArray arrayWithObject:PC_ARROW_DRAG_TYPE] owner:nil]; + return YES; +} + + +- (NSDragOperation) tableView:(NSTableView *)tableView validateDrop:(id )info + proposedRow:(int)row proposedDropOperation:(NSTableViewDropOperation)operation +{ + return operation == NSTableViewDropOn ? NSDragOperationPrivate : NSDragOperationNone; +} + + +- (BOOL) tableView:(NSTableView *)tableView acceptDrop:(id )info + row:(int)row dropOperation:(NSTableViewDropOperation)operation +{ + if ((row > 07777) & ! [pdp8 hasKM8E]) + return NO; + [pdp8 setProgramCounter:row]; + return YES; +} + + +- (int) numberOfRowsInTableView:(NSTableView *)tableView +{ + return PDP8_MEMSIZE; +} + + +- (id) tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)column row:(int)row +{ + switch ([[column identifier] intValue]) { + case PC_COLUMN : + if (row == [pdp8 getProgramCounter]) + return [NSImage imageNamed:([NSColor currentControlTint] == NSBlueControlTint) + && (runningOnYosemiteOrNewer() ? + [[tableView window] isMainWindow] : [[tableView window] isKeyWindow]) ? + PC_ARROW_BLUE_IMAGE : PC_ARROW_GRAPHITE_IMAGE]; + break; + case BP_COLUMN : + if ([breakpoints valueForIdentifier:row]) + return [NSImage imageNamed:@"breakpoint"]; + switch ([breakopcodes valueForIdentifier:[pdp8 memoryAt:row]]) { + case BREAKOPCODE : + return [NSImage imageNamed:@"breakOpcode"]; + case USERMODE_BREAKOPCODE : + return [NSImage imageNamed:@"breakOpcodeU"]; + case SYSTEMMODE_BREAKOPCODE : + return [NSImage imageNamed:@"breakOpcodeS"]; + } + break; + case ADDR_COLUMN : + if ((row & 007770) == 000010) { // autoincrement locations are underlined + NSMutableParagraphStyle *style = + [[[NSMutableParagraphStyle alloc] init] autorelease]; + [style setAlignment:NSCenterTextAlignment]; + return [[[NSAttributedString alloc] + initWithString:[NSString stringWithFormat:@"%5.5o", row] + attributes:[NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithInt:NSSingleUnderlineStyle], + NSUnderlineStyleAttributeName, + style, NSParagraphStyleAttributeName, + nil]] autorelease]; + } + return [NSString stringWithFormat:@"%5.5o", row]; + case WORD_COLUMN : + return [NSString stringWithFormat:@"%4.4o", [pdp8 memoryAt:row]]; + case OPCODE_COLUMN : + return [Opcode opcodeWithAddress:row value:[pdp8 memoryAt:row]]; + } + return nil; +} + + +- (NSString *) tableView:(NSTableView *)tableView toolTipForCell:(NSCell *)cell + rect:(NSRectPointer)rect tableColumn:(NSTableColumn *)column row:(int)row + mouseLocation:(NSPoint)mouseLocation +{ + switch ([[column identifier] intValue]) { + case PC_COLUMN : + return NSLocalizedString( + @"In this column, an arrow indicates the PDP-8/E program counter.\n\n" + "Drag the arrow or double-click a location to modify the program counter.\n\n" + "Click the column header to scroll to the current program counter location.", @""); + case BP_COLUMN : + return NSLocalizedString(@"This column shows breakpoints with a red dot. " + "Break opcodes are indicated with a yellow dot. " + "A small " UNICODE_LEFT_DOUBLEQUOTE_UTF8 "s" UNICODE_RIGHT_DOUBLEQUOTE_UTF8 " or " + UNICODE_LEFT_DOUBLEQUOTE_UTF8 "u" UNICODE_RIGHT_DOUBLEQUOTE_UTF8 " in the dot " + "indicate system or user mode break opcodes.\n\n" + "Double-click sets or clears a breakpoint.\n\n" + "Option-double-click and command-option-double-click toogles break opcodes.", @""); + case ADDR_COLUMN : + return NSLocalizedString(@"This column displays the memory adresses. " + "Adresses of autoincrement memory locations are underlined.", @""); + case WORD_COLUMN : + return NSLocalizedString(@"This column displays the octal memory content.", @""); + case OPCODE_COLUMN : + return NSLocalizedString(@"This column displays the disassembled PDP-8 instruction.\n\n" + "Shift-click to view the operands of MRIs.", @""); + } + return nil; +} + + +- (void) tableView:(NSTableView *)tableView setObjectValue:(Opcode *)opcode + forTableColumn:(NSTableColumn *)column row:(int)row +{ + // why do we get this setObjectValue message for read-only cells? + if (row < [pdp8 memorySize]) { + ignoreUpdateMemoryNotification = YES; + [pdp8 setMemoryAtAddress:row toValue:[opcode word0]]; + if ([opcode word1] >= 0) + [pdp8 setMemoryAtNextAddress:row toValue:[opcode word1]]; + } +} + + +- (BOOL) control:(NSControl *)control didFailToFormatString:(NSString *)string + errorDescription:(NSString *)error +{ + NSRange range; + + NSScanner *scanner = [NSScanner scannerWithString:error]; + NSAlert *alert = [[NSAlert alloc] init]; + [scanner scanInt:(signed *) &range.location]; + range.length = [string length] - range.location; + [[control currentEditor] setSelectedRange:range]; + [alert setMessageText:[error substringFromIndex:[scanner scanLocation] + 1]]; + [alert beginSheetModalForWindow:[control window] + modalDelegate:nil didEndSelector:nil contextInfo:nil]; + [alert release]; + return NO; +} + + +- (BOOL) control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)command +{ + if (command == @selector(cancelOperation:)) { + // ESC aborts editing of the current cell + [control abortEditing]; + return YES; + } + return NO; +} + + +- (void) memoryViewDoubleClick:(id)sender +{ + unsigned modifiers; + + int row = [sender clickedRow]; + if (row < 0 || [pdp8 isRunning]) + return; + switch ([sender clickedColumn]) { + case PC_COLUMN : + if ([pdp8 hasKM8E] || row < 010000) + [pdp8 setProgramCounter:row]; + break; + case BP_COLUMN : + case ADDR_COLUMN : + modifiers = [[NSApp currentEvent] modifierFlags]; + if (modifiers & NSAlternateKeyMask) { + unsigned opcode = [pdp8 memoryAt:row]; + unsigned value = [breakopcodes valueForIdentifier:opcode]; + if (modifiers & NSCommandKeyMask) + value = (value + BREAKOPCODE) & BREAKOPCODE; + else + value = value ? 0 : BREAKOPCODE; + [breakopcodes setBreakpointWithIdentifier:opcode value:value]; + } else + [breakpoints setBreakpointWithIdentifier:row + value:[breakpoints valueForIdentifier:row] ? 0 : BREAKPOINT]; + [sender reloadData]; + break; + case WORD_COLUMN : + break; + case OPCODE_COLUMN : + // with Leopard, this is required, don't know why: for editable cells, the + // double action should not be called, but the editing should start automatically + // (NSTableView documentation) + if (row < [pdp8 memorySize]) + [sender editColumn:OPCODE_COLUMN row:row withEvent:nil select:YES]; + break; + } +} + + +- (BOOL) validateMenuItem:(NSMenuItem *)menuItem +{ + if ([pdp8 isRunning]) + return FALSE; + int row = [memoryView selectedRow]; + unsigned breakop = [breakopcodes valueForIdentifier:[pdp8 memoryAt:row]]; + switch ([menuItem tag]) { + case CONTEXTMENU_SET_BREAKPOINT : + [menuItem setTitle:[breakpoints valueForIdentifier:row] ? + NSLocalizedString(@"Clear Breakpoint", @"") : + NSLocalizedString(@"Set Breakpoint", @"")]; + return TRUE; + case CONTEXTMENU_SET_BREAKOPCODE : + [menuItem setTitle:breakop == BREAKOPCODE ? + NSLocalizedString(@"Clear Break Opcode", @"") : + NSLocalizedString(@"Set Break Opcode", @"")]; + return breakop == BREAKOPCODE || breakop == 0; + case CONTEXTMENU_SET_SYSTEM_BREAKOPCODE : + [menuItem setTitle:(breakop & SYSTEMMODE_BREAKOPCODE) ? + NSLocalizedString(@"Clear System Mode Break Opcode", @"") : + NSLocalizedString(@"Set System Mode Break Opcode", @"")]; + return TRUE; + case CONTEXTMENU_SET_USER_BREAKOPCODE : + [menuItem setTitle:(breakop & USERMODE_BREAKOPCODE) ? + NSLocalizedString(@"Clear User Mode Break Opcode", @"") : + NSLocalizedString(@"Set User Mode Break Opcode", @"")]; + return TRUE; + case CONTEXTMENU_SET_PC : + case CONTEXTMENU_GO_AND_STOP_HERE : + case CONTEXTMENU_TRACE_AND_STOP_HERE : + return row < 010000 || [pdp8 hasKM8E]; + case CONTEXTMENU_SCROLL_TO_PC : + case CONTEXTMENU_SET_DEFAULT_PC_ROW : + return TRUE; + } + return FALSE; +} + + +- (IBAction) handleContextMenu:(id)sender +{ + int row = [memoryView selectedRow]; + unsigned opcode = [pdp8 memoryAt:row]; + unsigned breakop = [breakopcodes valueForIdentifier:opcode]; + switch ([sender tag]) { + case CONTEXTMENU_SET_BREAKPOINT : + [breakpoints setBreakpointWithIdentifier:row + value:[breakpoints valueForIdentifier:row] ? 0 : BREAKPOINT]; + break; + case CONTEXTMENU_SET_BREAKOPCODE : + [breakopcodes setBreakpointWithIdentifier:opcode value:breakop ? 0 : BREAKOPCODE]; + break; + case CONTEXTMENU_SET_SYSTEM_BREAKOPCODE : + [breakopcodes setBreakpointWithIdentifier:opcode value:breakop ^ SYSTEMMODE_BREAKOPCODE]; + break; + case CONTEXTMENU_SET_USER_BREAKOPCODE : + [breakopcodes setBreakpointWithIdentifier:opcode value:breakop ^ USERMODE_BREAKOPCODE]; + break; + case CONTEXTMENU_SET_PC : + if ([pdp8 hasKM8E] || row < 010000) + [pdp8 setProgramCounter:row]; + break; + case CONTEXTMENU_GO_AND_STOP_HERE : + [pdp8 go:row]; + break; + case CONTEXTMENU_TRACE_AND_STOP_HERE : + [pdp8 trace:row]; + break; + case CONTEXTMENU_SCROLL_TO_PC : + [self scrollToPC]; + break; + case CONTEXTMENU_SET_DEFAULT_PC_ROW : + [self updateVisibleMemoryRange]; + pcDefaultRow = row - visibleMemoryRange.location + 1; + [[NSUserDefaults standardUserDefaults] setInteger:pcDefaultRow + forKey:PC_DEFAULT_ROW_PREFS_KEY]; + [self scrollToPC]; + break; + } +} + + +- (NSString *) operandInfoAtAddress:(int)addr +{ + return [[Disassembler sharedDisassembler] operandInfoForPDP8:pdp8 atAddress:addr]; +} + + +#pragma mark Notifications + + +- (void) notifyMainOrKeyWindowChanged:(NSNotification *)notification +{ + // NSLog (@"CPUMemoryViewController notifyMainOrKeyWindowChanged"); + if ([[notification object] isEqual:[memoryView window]]) + [memoryView setNeedsDisplayInRect: + [memoryView frameOfCellAtColumn:PC_COLUMN row:[pdp8 getProgramCounter]]]; +} + + +- (void) notifyMemoryViewSizeChanged:(NSNotification *)notification +{ + // NSLog (@"CPUMemoryViewController notifyMemoryViewSizeChanged"); + [self updateVisibleMemoryRange]; + if (visibleMemoryRange.length < pcDefaultRow) { + pcDefaultRow = PC_DEFAULT_ROW; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:PC_DEFAULT_ROW_PREFS_KEY]; + } +} + + +- (void) notifyMemoryChanged:(NSNotification *)notification +{ + /* coalesc the multiple MEMORY_CHANGED_NOTIFICATIONS (caused by the different register update + notifications) to one UPDATE_MEMORY_NOTIFICATION to avoid time consuming repeated memory + view updates */ + // NSLog (@"CPUMemoryViewController notifyMemoryChanged"); + [[NSNotificationQueue defaultQueue] enqueueNotification: + [NSNotification notificationWithName:UPDATE_MEMORY_NOTIFICATION object:self] + postingStyle:NSPostASAP coalesceMask:NSNotificationCoalescingOnName forModes:nil]; +} + + +- (void) notifyUpdateMemoryView:(NSNotification *)notification +{ + // NSLog (@"CPUMemoryViewController notifyUpdateMemoryView ign=%d", ignoreUpdateMemoryNotification); + if (ignoreUpdateMemoryNotification) + ignoreUpdateMemoryNotification = NO; + else + [memoryView reloadData]; +} + + +- (void) notifyGoPDP8:(NSNotification *)notification +{ + // NSLog (@"CPUMemoryViewController notifyGoPDP8"); + [self updateVisibleMemoryRange]; +} + + +- (void) notifyStepPDP8:(NSNotification *)notification +{ + // NSLog (@"CPUMemoryViewController notifyStepPDP8"); + [self updateVisibleMemoryRange]; + unsigned pc = [pdp8 getProgramCounter]; + if (visibleMemoryRange.location + visibleMemoryRange.length == pc) + [memoryView scrollRowToVisible:pc]; + else if (pc < visibleMemoryRange.location || visibleMemoryRange.location + visibleMemoryRange.length <= pc) + [memoryView scrollRowToTop: + max(0, min((int) (PDP8_MEMSIZE - visibleMemoryRange.length), (int) (pc - pcDefaultRow + 1)))]; + [memoryView reloadData]; + ignoreUpdateMemoryNotification = YES; + ignorePCChangedNotification = YES; +} + + +- (void) notifyStopPDP8:(NSNotification *)notification +{ + // NSLog (@"CPUMemoryViewController notifyStopPDP8"); + [self updateVisibleMemoryRange]; + unsigned pc = [pdp8 getProgramCounter]; + if (pc < visibleMemoryRange.location || visibleMemoryRange.location + visibleMemoryRange.length <= pc) + [memoryView scrollRowToTop: + max(0, min((int) (PDP8_MEMSIZE - visibleMemoryRange.length), (int) (pc - pcDefaultRow + 1)))]; + ignorePCChangedNotification = YES; +} + + +- (void) notifyPCChanged:(NSNotification *)notification +{ + // NSLog (@"CPUMemoryViewController notifyPCChanged %d", ignorePCChangedNotification); + if (ignorePCChangedNotification) { + ignorePCChangedNotification = NO; + return; + } + [self updateVisibleMemoryRange]; + unsigned pc = [pdp8 getProgramCounter]; + if (pc < visibleMemoryRange.location || visibleMemoryRange.location + visibleMemoryRange.length <= pc) + [memoryView scrollRowToTop: + max(0, min((int) (PDP8_MEMSIZE - visibleMemoryRange.length), (int) (pc - pcDefaultRow + 1)))]; +} + + +@end diff --git a/CPUWindow/CPUWindowController.h b/CPUWindow/CPUWindowController.h new file mode 100644 index 0000000..422f4a8 --- /dev/null +++ b/CPUWindow/CPUWindowController.h @@ -0,0 +1,60 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * CPUWindowController.h - Controller for the CPU window + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class RegisterFormCell, EnableDisableTextField, PDP8; + + +@interface CPUWindowController : NSObject +{ +@private + IBOutlet NSWindow *window; + IBOutlet RegisterFormCell *sr; + IBOutlet RegisterFormCell *l; + IBOutlet RegisterFormCell *ac; + IBOutlet RegisterFormCell *pc; + IBOutlet RegisterFormCell *sc; + IBOutlet RegisterFormCell *gtf; + IBOutlet RegisterFormCell *mq; + IBOutlet EnableDisableTextField *mode; + IBOutlet NSButton *a; + IBOutlet NSButton *b; + IBOutlet RegisterFormCell *df; + IBOutlet RegisterFormCell *_if; + IBOutlet RegisterFormCell *ib; + IBOutlet RegisterFormCell *uf; + IBOutlet RegisterFormCell *ub; + IBOutlet RegisterFormCell *sf; + IBOutlet NSButton *enable; + IBOutlet NSButton *delay; + IBOutlet NSButton *inhibit; + IBOutlet PDP8 *pdp8; + float normalContentHeight; +} + +- (IBAction) eaeModeButtonClick:(id)sender; +- (IBAction) enableCheckboxClicked:(id)sender; +- (IBAction) delayCheckboxClicked:(id)sender; +- (IBAction) inhibitCheckboxClicked:(id)sender; + +@end diff --git a/CPUWindow/CPUWindowController.m b/CPUWindow/CPUWindowController.m new file mode 100644 index 0000000..6300f8a --- /dev/null +++ b/CPUWindow/CPUWindowController.m @@ -0,0 +1,461 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * CPUWindowController.m - Controller for the CPU window + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "CPUWindowController.h" +#import "MainController.h" +#import "PDP8.h" +#import "RegisterFormCell.h" +#import "GeneralPreferences.h" +#import "Unicode.h" + + +@implementation CPUWindowController + + +#define STOP_TOOLBAR_ITEM_IDENTIFIER @"stopTBItemIdentifier" +#define GO_TOOLBAR_ITEM_IDENTIFIER @"goTBItemIdentifier" +#define TRACE_TOOLBAR_ITEM_IDENTIFIER @"traceTBItemIdentifier" +#define STEP_TOOLBAR_ITEM_IDENTIFIER @"stepTBItemIdentifier" +#define BREAKPOINT_TOOLBAR_ITEM_IDENTIFIER @"breakpointTBItemIdentifier" +#define BOOTSTRAP_TOOLBAR_ITEM_IDENTIFIER @"bootstrapTBItemIdentifier" +#define RESET_TOOLBAR_ITEM_IDENTIFIER @"resetTBItemIdentifier" +#define MEMORYINSPECTOR_TOOLBAR_ITEM_IDENTIFIER @"memoryInspectorTBItemIdentifier" + +#define RESIZE_WINDOW_ON_PDP8STOP_NOTIFICATION @"cpuwindowResizeOnPDP8StopNotification" +#define RESIZE_WINDOW_ON_PDP8GO_NOTIFICATION @"cpuwindowResizeOnPDP8GoNotification" + + +#pragma mark Toolbar + + +- (void) setupToolbar +{ + NSToolbar *toolbar = [[[NSToolbar alloc] initWithIdentifier:@"CPUWindowToolbar"] autorelease]; + [toolbar setAllowsUserCustomization:YES]; + [toolbar setAutosavesConfiguration:YES]; + [toolbar setDisplayMode: NSToolbarDisplayModeIconOnly]; + [toolbar setSizeMode:NSToolbarSizeModeSmall]; + [toolbar setDelegate:self]; + [window setToolbar:toolbar]; + [window setShowsToolbarButton:YES]; +} + + +- (NSToolbarItem *) toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdent + willBeInsertedIntoToolbar:(BOOL) willBeInserted +{ + NSToolbarItem *toolbarItem = [[[NSToolbarItem alloc] + initWithItemIdentifier:itemIdent] autorelease]; + + if ([itemIdent isEqual:STOP_TOOLBAR_ITEM_IDENTIFIER]) { + [toolbarItem setLabel:NSLocalizedString(@"Stop", @"")]; + [toolbarItem setPaletteLabel:NSLocalizedString(@"Stop", @"")]; + [toolbarItem setToolTip:NSLocalizedString( + @"Stops the running PDP-8/E", @"")]; + [toolbarItem setImage:[NSImage imageNamed:@"stopToolbarIcon"]]; + [toolbarItem setTarget:[NSApp delegate]]; + [toolbarItem setAction:@selector(stop:)]; + } else if ([itemIdent isEqual:GO_TOOLBAR_ITEM_IDENTIFIER]) { + [toolbarItem setLabel:NSLocalizedString(@"Go", @"")]; + [toolbarItem setPaletteLabel:NSLocalizedString(@"Go", @"")]; + [toolbarItem setToolTip:NSLocalizedString( + @"Starts the simulated PDP-8/E to run continuously", @"")]; + [toolbarItem setImage:[NSImage imageNamed:@"goToolbarIcon"]]; + [toolbarItem setTarget:[NSApp delegate]]; + [toolbarItem setAction:@selector(go:)]; + } else if ([itemIdent isEqual:TRACE_TOOLBAR_ITEM_IDENTIFIER]) { + [toolbarItem setLabel:NSLocalizedString(@"Trace", @"")]; + [toolbarItem setPaletteLabel:NSLocalizedString(@"Trace", @"")]; + [toolbarItem setToolTip:NSLocalizedString( + @"Starts the simulated PDP-8/E to run in trace mode", @"")]; + [toolbarItem setImage:[NSImage imageNamed:@"traceToolbarIcon"]]; + [toolbarItem setTarget:[NSApp delegate]]; + [toolbarItem setAction:@selector(trace:)]; + } else if ([itemIdent isEqual:STEP_TOOLBAR_ITEM_IDENTIFIER]) { + [toolbarItem setLabel:NSLocalizedString(@"Step", @"")]; + [toolbarItem setPaletteLabel:NSLocalizedString(@"Step", @"")]; + [toolbarItem setToolTip:NSLocalizedString( + @"Executes a single PDP-8/E instruction", @"")]; + [toolbarItem setImage:[NSImage imageNamed:@"stepToolbarIcon"]]; + [toolbarItem setTarget:[NSApp delegate]]; + [toolbarItem setAction:@selector(step:)]; + } else if ([itemIdent isEqual:BREAKPOINT_TOOLBAR_ITEM_IDENTIFIER]) { + [toolbarItem setLabel:NSLocalizedString(@"Breakpoints", @"")]; + [toolbarItem setPaletteLabel:NSLocalizedString(@"Breakpoints", @"")]; + [toolbarItem setToolTip:NSLocalizedString( + @"Shows or hides the Breakpoints & Break Opcodes Panel", @"")]; + [toolbarItem setImage:[NSImage imageNamed:@"breakpointsToolbarIcon"]]; + [toolbarItem setTarget:[NSApp delegate]]; + [toolbarItem setAction:@selector(showHideBreakpointPanel:)]; + } else if ([itemIdent isEqual:BOOTSTRAP_TOOLBAR_ITEM_IDENTIFIER]) { + [toolbarItem setLabel:NSLocalizedString(@"Bootstrap Loader", @"")]; + [toolbarItem setPaletteLabel:NSLocalizedString(@"Bootstrap Loader", @"")]; + [toolbarItem setToolTip:NSLocalizedString( + @"Shows or hides the Bootstrap Loader Panel", @"")]; + [toolbarItem setImage:[NSImage imageNamed:@"bootstrapToolbarIcon"]]; + [toolbarItem setTarget:[NSApp delegate]]; + [toolbarItem setAction:@selector(showHideBootstrapPanel:)]; + } else if ([itemIdent isEqual:RESET_TOOLBAR_ITEM_IDENTIFIER]) { + [toolbarItem setLabel:NSLocalizedString(@"Reset", @"")]; + [toolbarItem setPaletteLabel:NSLocalizedString(@"Reset", @"")]; + [toolbarItem setToolTip:NSLocalizedString( + @"Resets registers and memory of the PDP-8/E", @"")]; + [toolbarItem setImage:[NSImage imageNamed:@"resetToolbarIcon"]]; + [toolbarItem setTarget:[NSApp delegate]]; + [toolbarItem setAction:@selector(reset:)]; + } else if ([itemIdent isEqual:MEMORYINSPECTOR_TOOLBAR_ITEM_IDENTIFIER]) { + [toolbarItem setLabel:NSLocalizedString(@"Memory Inspector", @"")]; + [toolbarItem setPaletteLabel:NSLocalizedString(@"Memory Inspector", @"")]; + [toolbarItem setToolTip:NSLocalizedString( + @"Shows or hides the memory inspector drawer", @"")]; + [toolbarItem setImage:[NSImage imageNamed:@"memoryInspectorToolbarIcon"]]; + [toolbarItem setTarget:[NSApp delegate]]; + [toolbarItem setAction:@selector(toggleMemoryInspectorDrawer:)]; + } else + toolbarItem = nil; + return toolbarItem; +} + + +- (NSArray *) toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar +{ + return [NSArray arrayWithObjects: + NSToolbarFlexibleSpaceItemIdentifier, + RESET_TOOLBAR_ITEM_IDENTIFIER, + NSToolbarSpaceItemIdentifier, + BREAKPOINT_TOOLBAR_ITEM_IDENTIFIER, BOOTSTRAP_TOOLBAR_ITEM_IDENTIFIER, + NSToolbarSpaceItemIdentifier, + STOP_TOOLBAR_ITEM_IDENTIFIER, STEP_TOOLBAR_ITEM_IDENTIFIER, + TRACE_TOOLBAR_ITEM_IDENTIFIER, GO_TOOLBAR_ITEM_IDENTIFIER, + NSToolbarSpaceItemIdentifier, + MEMORYINSPECTOR_TOOLBAR_ITEM_IDENTIFIER, + nil]; +} + + +- (NSArray *) toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar +{ + return [NSArray arrayWithObjects: + STOP_TOOLBAR_ITEM_IDENTIFIER, STEP_TOOLBAR_ITEM_IDENTIFIER, + TRACE_TOOLBAR_ITEM_IDENTIFIER, GO_TOOLBAR_ITEM_IDENTIFIER, + BREAKPOINT_TOOLBAR_ITEM_IDENTIFIER, BOOTSTRAP_TOOLBAR_ITEM_IDENTIFIER, + MEMORYINSPECTOR_TOOLBAR_ITEM_IDENTIFIER, RESET_TOOLBAR_ITEM_IDENTIFIER, + NSToolbarCustomizeToolbarItemIdentifier, NSToolbarSeparatorItemIdentifier, + NSToolbarFlexibleSpaceItemIdentifier, NSToolbarSpaceItemIdentifier, + nil]; +} + + +#pragma mark Notifications + + +- (void) setupNotifications +{ + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + + [defaultCenter addObserver:self + selector:@selector(notifyResizeWindowOnPDP8Stop:) + name:RESIZE_WINDOW_ON_PDP8STOP_NOTIFICATION object:nil]; + [defaultCenter addObserver:self + selector:@selector(notifyResizeWindowOnPDP8Go:) + name:RESIZE_WINDOW_ON_PDP8GO_NOTIFICATION object:nil]; + [defaultCenter addObserver:self + selector:@selector(notifyStopPDP8:) name:PDP8_STOP_NOTIFICATION object:nil]; + [defaultCenter addObserver:self + selector:@selector(notifyTracePDP8:) name:PDP8_TRACE_NOTIFICATION object:nil]; + [defaultCenter addObserver:self + selector:@selector(notifyGoPDP8:) name:PDP8_GO_NOTIFICATION object:nil]; + + [defaultCenter addObserver:self selector:@selector(notifyEnableChanged:) + name:ENABLE_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyDelayChanged:) + name:DELAY_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyInhibitChanged:) + name:INHIBIT_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyEAEModeChanged:) + name:EAE_MODE_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyEAEMount:) + name:EAE_MOUNT_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyKM8EMount:) + name:KM8E_MOUNT_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyPreferencesChanged:) + name:NSUserDefaultsDidChangeNotification object:nil]; + + [defaultCenter addObserver:self selector:@selector(notifyApplicationWillTerminate:) + name:NSApplicationWillTerminateNotification object:nil]; +} + + +- (void) notifyResizeWindowOnPDP8Stop:(NSNotification *)notification +{ + // NSLog (@"CPUWindowController got a notifyResizeWindowOnPDP8Stop notification"); + NSRect rect = [window frame]; + rect.size.height += normalContentHeight; + rect.origin.y -= normalContentHeight; + normalContentHeight = 0; + [window setFrame:rect display:YES animate:YES]; + [window setTitle:NSLocalizedString(@"PDP-8/E CPU", @"")]; + [[window contentView] setAutoresizesSubviews:YES]; + [[window toolbar] validateVisibleItems]; +} + + +- (void) notifyStopPDP8:(NSNotification *)notification +{ + // NSLog (@"CPUWindowController got a STOP PDP8 notification"); + // delay the resizing until all GUI elements in the CPU window and other windows are updated + [[NSNotificationQueue defaultQueue] enqueueNotification: + [NSNotification notificationWithName:RESIZE_WINDOW_ON_PDP8STOP_NOTIFICATION object:self] + postingStyle:NSPostWhenIdle]; // don't use NSPostNow or NSPostASAP, that's too fast +} + + +- (void) setGoWindowTitle +{ + NSString *title; + + switch ([[NSUserDefaults standardUserDefaults] integerForKey:GENERAL_PREFS_GO_SPEED_KEY]) { + case GO_AS_FAST_AS_POSSIBLE : + title = NSLocalizedString( + @"PDP-8/E CPU " UNICODE_EM_DASH_UTF8 " running as fast as possible", @""); + break; + case GO_WITH_PDP8_SPEED : + title = NSLocalizedString( + @"PDP-8/E CPU " UNICODE_EM_DASH_UTF8 " running with real speed", @""); + break; + case GO_WITH_PDP8_SPEED_PRECISE : + title = NSLocalizedString( + @"PDP-8/E CPU " UNICODE_EM_DASH_UTF8 " running with precise timing", @""); + break; + default : + title = @""; + NSAssert (FALSE, @"Illegal go speed in the preferences"); + break; + } + [window setTitle:title]; +} + + +- (void) notifyPreferencesChanged:(NSNotification *)notification +{ + if ([pdp8 isGoing]) + [self setGoWindowTitle]; +} + + +- (void) notifyResizeWindowOnPDP8Go:(NSNotification *)notification +{ + // NSLog (@"CPUWindowController got a notifyResizeWindowOnPDP8Go notification"); + NSRect rect = [window frame]; + normalContentHeight = [[window contentView] frame].size.height; + rect.origin.y += normalContentHeight; + rect.size.height -= normalContentHeight; + [[window contentView] setAutoresizesSubviews:NO]; + [window setFrame:rect display:YES animate:YES]; + [self setGoWindowTitle]; + [[window toolbar] validateVisibleItems]; +} + + +- (void) notifyGoPDP8:(NSNotification *)notification +{ + // NSLog (@"CPUWindowController got a GO PDP8 notification"); + // delay the resizing until all GUI elements in the CPU window and other windows are in "Go" mode + // (the memory view needs the old size to remember the visible memory area) + [[NSNotificationQueue defaultQueue] enqueueNotification: + [NSNotification notificationWithName:RESIZE_WINDOW_ON_PDP8GO_NOTIFICATION object:self] + postingStyle:NSPostASAP]; + // don't use NSPostNow, that's too fast; don't use NSPostWhenIdle, that's too slow +} + + +- (void) notifyTracePDP8:(NSNotification *)notification +{ + // NSLog (@"CPUWindowController got a TRACE PDP8 notification"); + [[window toolbar] validateVisibleItems]; +} + + +- (void) notifyApplicationWillTerminate:(NSNotification *)notification +{ + // NSLog (@"CPUWindowController notifyApplicationWillTerminate"); + /* When the simulator quits while the PDP-8 is running, the CPU window is shrunk, and this size + is stored in the user defaults. On the next launch, it resizes to the default height at the top + of the screen and not to the last position/size. To avoid that, resize it before quitting. */ + if (normalContentHeight) { + [window orderOut:self]; + NSRect rect = [window frame]; + rect.size.height += normalContentHeight; + rect.origin.y -= normalContentHeight; + normalContentHeight = 0; + [window setFrame:rect display:NO]; + [window saveFrameUsingName:[window frameAutosaveName]]; + } +} + + +#pragma mark Delegate Methods + + +- (NSSize) windowWillResize:(NSWindow *)sender toSize:(NSSize)newSize +{ + return normalContentHeight ? [window frame].size : newSize; +} + + +- (BOOL) windowShouldZoom:(NSWindow *)sender toFrame:(NSRect)newFrame +{ + return normalContentHeight ? NO : YES; +} + + +#pragma mark Registers + + +- (void) notifyEAEMount:(NSNotification *)notification +{ + BOOL hasEAE = [pdp8 hasEAE]; + [sc setEnabled:hasEAE]; + [gtf setEnabled:hasEAE]; + [mode setEnabled:hasEAE]; + [a setEnabled:hasEAE]; + [b setEnabled:hasEAE]; +} + + +- (IBAction) eaeModeButtonClick:(id)sender +{ + [pdp8 setEAEmode:EAE_MODE_A + [sender tag]]; +} + + +- (void) notifyEAEModeChanged:(NSNotification *)notification +{ + [a setIntValue:EAE_MODE_B - [pdp8 getEAEmode]]; + [b setIntValue:[pdp8 getEAEmode] - EAE_MODE_A]; +} + + +- (void) notifyKM8EMount:(NSNotification *)notification +{ + BOOL hasKM8E = [pdp8 hasKM8E]; + [df setEnabled:hasKM8E]; + [_if setEnabled:hasKM8E]; + [ib setEnabled:hasKM8E]; + [uf setEnabled:hasKM8E]; + [ub setEnabled:hasKM8E]; + [sf setEnabled:hasKM8E]; + [inhibit setEnabled:hasKM8E]; +} + + +- (IBAction) enableCheckboxClicked:(id)sender +{ + [pdp8 setEnable:[sender intValue]]; +} + + +- (void) notifyEnableChanged:(NSNotification *)notification +{ + [enable setIntValue:[pdp8 getEnable]]; +} + + +- (IBAction) delayCheckboxClicked:(id)sender; +{ + [pdp8 setDelay:[sender intValue]]; +} + + +- (void) notifyDelayChanged:(NSNotification *)notification +{ + [delay setIntValue:[pdp8 getDelay]]; +} + + +- (IBAction) inhibitCheckboxClicked:(id)sender; +{ + [pdp8 setInhibit:[sender intValue]]; +} + + +- (void) notifyInhibitChanged:(NSNotification *)notification +{ + [inhibit setIntValue:[pdp8 getInhibit]]; +} + + +#pragma mark Initialization + + +- (void) setupRegisters +{ + // KK8-E CPU + [sr setupRegisterFor:pdp8 getRegisterValue:@selector(getSR) setRegisterValue:@selector(setSR:) + changedNotificationName:SR_CHANGED_NOTIFICATION mask:07777 base:8]; + [l setupRegisterFor:pdp8 getRegisterValue:@selector(getL) setRegisterValue:@selector(setL:) + changedNotificationName:ACCUMULATOR_CHANGED_NOTIFICATION mask:01 base:8]; + [ac setupRegisterFor:pdp8 getRegisterValue:@selector(getAC) setRegisterValue:@selector(setAC:) + changedNotificationName:ACCUMULATOR_CHANGED_NOTIFICATION mask:07777 base:8]; + [pc setupRegisterFor:pdp8 getRegisterValue:@selector(getPC) setRegisterValue:@selector(setPC:) + changedNotificationName:PROGRAM_COUNTER_CHANGED_NOTIFICATION mask:07777 base:8]; + // KE8-E EAE + [sc setupRegisterFor:pdp8 getRegisterValue:@selector(getSC) setRegisterValue:@selector(setSC:) + changedNotificationName:SC_CHANGED_NOTIFICATION mask:037 base:8]; + [gtf setupRegisterFor:pdp8 getRegisterValue:@selector(getGTF) setRegisterValue:@selector(setGTF:) + changedNotificationName:GTF_CHANGED_NOTIFICATION mask:01 base:8]; + [mq setupRegisterFor:pdp8 getRegisterValue:@selector(getMQ) setRegisterValue:@selector(setMQ:) + changedNotificationName:MQ_CHANGED_NOTIFICATION mask:07777 base:8]; + // KM8-E Memory Extension + [df setupRegisterFor:pdp8 getRegisterValue:@selector(getDF) setRegisterValue:@selector(setDF:) + changedNotificationName:DF_CHANGED_NOTIFICATION mask:07 base:8]; + [_if setupRegisterFor:pdp8 getRegisterValue:@selector(getIF) setRegisterValue:@selector(setIF:) + changedNotificationName:PROGRAM_COUNTER_CHANGED_NOTIFICATION mask:07 base:8]; + [ib setupRegisterFor:pdp8 getRegisterValue:@selector(getIB) setRegisterValue:@selector(setIB:) + changedNotificationName:PROGRAM_COUNTER_CHANGED_NOTIFICATION mask:07 base:8]; + [uf setupRegisterFor:pdp8 getRegisterValue:@selector(getUF) setRegisterValue:@selector(setUF:) + changedNotificationName:UF_CHANGED_NOTIFICATION mask:01 base:8]; + [ub setupRegisterFor:pdp8 getRegisterValue:@selector(getUB) setRegisterValue:@selector(setUB:) + changedNotificationName:UB_CHANGED_NOTIFICATION mask:01 base:8]; + [sf setupRegisterFor:pdp8 getRegisterValue:@selector(getSF) setRegisterValue:@selector(setSF:) + changedNotificationName:SF_CHANGED_NOTIFICATION mask:0177 base:8]; +} + + +- (void) awakeFromNib +{ + [self setupToolbar]; + [self setupNotifications]; + [self setupRegisters]; + /* set max width = min width of the panel: IB only allows max width one pixel more + than min width, so the user can resize the width for one pixel - bug in IB? */ + NSSize size = [window minSize]; + size.height = [window maxSize].height; + [window setMaxSize:size]; +} + + +@end diff --git a/CPUWindow/IOFlagController.h b/CPUWindow/IOFlagController.h new file mode 100644 index 0000000..b65ca29 --- /dev/null +++ b/CPUWindow/IOFlagController.h @@ -0,0 +1,42 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * IOFlagController.h - Controller for the I/O flags table view in the CPU window + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class PDP8; + + +@interface IOFlagController : NSObject +{ +@private + IBOutlet NSTableView *ioFlagsView; + IBOutlet PDP8 *pdp8; + NSMutableArray *deviceNames; + unsigned long enabledFlags; +} + +- (unsigned) numberOfAvailableFlags; +- (unsigned long) addIODevice:(NSString *)name; // returns the I/O mask for the new device or 0 on error +- (void) disableIODevice:(unsigned long)ioflag; +- (void) enableIODevice:(unsigned long)ioflag; + +@end diff --git a/CPUWindow/IOFlagController.m b/CPUWindow/IOFlagController.m new file mode 100644 index 0000000..bb7a5e5 --- /dev/null +++ b/CPUWindow/IOFlagController.m @@ -0,0 +1,199 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * IOFlagController.m - Controller for the I/O flags table view in the CPU window + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "IOFlagController.h" +#import "PDP8.h" + + +#define NAME_COLUMN 0 +#define IENABLE_COLUMN 1 +#define IOFLAG_COLUMN 2 + +#define USER_MODE_ROW 0 + + +@implementation IOFlagController + + +- (void) awakeFromNib +{ + adjustTableHeaderForElCapitan (ioFlagsView); + deviceNames = [[NSMutableArray alloc] init]; + [self addIODevice:NSLocalizedString(@"User Mode", @"")]; + [[[[ioFlagsView tableColumns] objectAtIndex:NAME_COLUMN] dataCell] + setFont:[NSFont userFontOfSize:11]]; + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + [defaultCenter addObserver:self selector:@selector(notifyIOFlagsChanged:) + name:IOFLAGS_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyKM8EMount:) + name:KM8E_MOUNT_NOTIFICATION object:nil]; + /* Under certain contitions, the checkboxes in the I/O column are not activated/deactivated + when the CPU window activates/deactivates. The notifyKeyWindowChanged notification is + a workaround. Maybe a Cocoa bug with 10.4 and 10.5 (it does not appear when the table + control has the 10.5 only hilight style "sourcelist"). */ + [defaultCenter addObserver:self selector:@selector(notifyMainWindowChanged:) + name:NSWindowDidResignMainNotification object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyMainWindowChanged:) + name:NSWindowDidBecomeMainNotification object:nil]; +} + + +- (void) notifyMainWindowChanged:(NSNotification *)notification +{ + if ([[notification object] isEqualTo:[ioFlagsView window]]) + [ioFlagsView reloadData]; +} + + +- (void) notifyIOFlagsChanged:(NSNotification *)notification +{ + [ioFlagsView reloadData]; +} + + +- (void) notifyKM8EMount:(NSNotification *)notification +{ + if ([pdp8 hasKM8E]) + [self enableIODevice:userFLAG]; + else + [self disableIODevice:userFLAG]; +} + + +- (unsigned) numberOfAvailableFlags +{ + return 8 * sizeof(enabledFlags) - [deviceNames count]; +} + + +- (unsigned long) addIODevice:(NSString *)name +{ + unsigned long ioflag; + + if ([deviceNames count] == 8 * sizeof(enabledFlags)) + return 0; // all flags already allocated + [deviceNames addObject:name]; + [ioFlagsView noteNumberOfRowsChanged]; + ioflag = 1 << ([deviceNames count] - 1); + enabledFlags |= ioflag; + return ioflag; +} + + +- (void) disableIODevice:(unsigned long)ioflag +{ + NSAssert1 ((((1 << [deviceNames count]) - 1) & ioflag) == ioflag, @"Invalid IO flag: %o", ioflag); + enabledFlags &= ~ioflag; + [pdp8 clearInterruptMaskBits:ioflag]; + [pdp8 clearIOFlagBits:ioflag]; + [ioFlagsView reloadData]; +} + + +- (void) enableIODevice:(unsigned long)ioflag +{ + NSAssert1 ((((1 << [deviceNames count]) - 1) & ioflag) == ioflag, @"Invalid IO flag: %o", ioflag); + enabledFlags |= ioflag; + [ioFlagsView reloadData]; +} + + +- (int) numberOfRowsInTableView:(NSTableView *)tableView +{ + return [deviceNames count]; +} + + +- (BOOL) tableView:(NSTableView *)tableView shouldSelectRow:(int)row +{ + return ((1 << row) & enabledFlags) != 0; +} + + +- (id) tableView:(NSTableView *)tableView + objectValueForTableColumn:(NSTableColumn *)column row:(int)row +{ + switch ([[column identifier] intValue]) { + case NAME_COLUMN : + if ((1 << row) & enabledFlags) + return [deviceNames objectAtIndex:row]; + // disabled devices are gray + return [[[NSAttributedString alloc] initWithString:[deviceNames objectAtIndex:row] + attributes:[NSDictionary dictionaryWithObject:[NSColor grayColor] + forKey:NSForegroundColorAttributeName]] autorelease]; + case IENABLE_COLUMN : + return [NSNumber numberWithBool:[pdp8 getInterruptMaskBits:1 << row] != 0]; + case IOFLAG_COLUMN : + return [NSNumber numberWithBool:[pdp8 getIOFlagBits:1 << row] != 0]; + } + return nil; +} + + +- (void) tableView:(NSTableView *)tableView setObjectValue:(id)val + forTableColumn:(NSTableColumn *)column row:(int)row +{ + // when the currently selected row becomes deactivated, the user can still click the check boxes + if (((1 << row) & enabledFlags) == 0) + return; + switch ([[column identifier] intValue]) { + case IENABLE_COLUMN : + if (row == USER_MODE_ROW) // can't clear or set this flag manually, + break; // it's set iff the KM8-E is present + if ([val intValue]) + [pdp8 setInterruptMaskBits:1 << row]; + else + [pdp8 clearInterruptMaskBits:1 << row]; + break; + case IOFLAG_COLUMN : + if ([val intValue]) + [pdp8 setIOFlagBits:1 << row]; + else + [pdp8 clearIOFlagBits:1 << row]; + break; + } +} + + +- (NSString *) tableView:(NSTableView *)tableView toolTipForCell:(NSCell *)cell + rect:(NSRectPointer)rect tableColumn:(NSTableColumn *)column row:(int)row + mouseLocation:(NSPoint)mouseLocation +{ + switch ([[column identifier] intValue]) { + case NAME_COLUMN : + break; + case IENABLE_COLUMN : + return NSLocalizedString(@"When the Interrupt Enable Flag is set, the " + @"corresponding device can cause interrupts.", @""); + case IOFLAG_COLUMN : + return NSLocalizedString(@"A device raises its I/O Flag to signal to the CPU " + @"that it has completed an I/O operation.", @""); + } + return nil; +} + + +@end diff --git a/CPUWindow/SkipController.h b/CPUWindow/SkipController.h new file mode 100644 index 0000000..c23eec4 --- /dev/null +++ b/CPUWindow/SkipController.h @@ -0,0 +1,38 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * SkipController.h - Controller for the skip indicator in the CPU window + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class TableCornerView, PDP8; + + +@interface SkipController : NSObject +{ +@private + IBOutlet TableCornerView *view; + IBOutlet PDP8 *pdp8; + NSMutableDictionary *dictionary; +} + +- (void) addSkiptest:(NSValue *)skiptest forInstruction:(NSValue *)instruction; + +@end diff --git a/CPUWindow/SkipController.m b/CPUWindow/SkipController.m new file mode 100644 index 0000000..c416be4 --- /dev/null +++ b/CPUWindow/SkipController.m @@ -0,0 +1,174 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * SkipController.h - Controller for the skip indicator in the CPU window + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "SkipController.h" +#import "TableCornerView.h" +#import "PDP8.h" +#import "mri.h" +#import "eae.h" +#import "iot.h" +#import "opr.h" + + +#define UPDATE_SKIPINDICATOR_NOTIFICATION @"updateSkipIndicatorNotification" + + +#define SKIP_IMAGE_NAME @"skipArrow" +#define INTERRUPT_IMAGE_NAME @"interruptArrow" + + +// Key Value pair for the skiptest dictionary initialization +#define KV(i, s) [NSValue valueWithPointer:s], [NSValue valueWithPointer:i] + + +typedef unsigned (*PDP8SkiptestFunctionPointer)(void); + + +@implementation SkipController + + +- (void) awakeFromNib +{ + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:MEMORY_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:PROGRAM_COUNTER_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:ACCUMULATOR_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:GTF_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:MQ_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:EAE_MODE_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:DF_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:UF_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:ENABLE_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:DELAY_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:INHIBIT_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:IOFLAGS_CHANGED_NOTIFICATION object:nil]; + [defaultCenter addObserver:self selector:@selector(notifySkipIndicator:) + name:SF_CHANGED_NOTIFICATION object:nil]; // required for TSC8 ESME + [defaultCenter addObserver:self selector:@selector(notifyUpdateSkipIndicator:) + name:UPDATE_SKIPINDICATOR_NOTIFICATION object:nil]; + /* PDP-8 notifications that probably can't change the skip/interrupt indicator: + SR_CHANGED_NOTIFICATION + SC_CHANGED_NOTIFICATION + UB_CHANGED_NOTIFICATION + SF_CHANGED_NOTIFICATION + */ + dictionary = [[NSMutableDictionary alloc] initWithObjectsAndKeys: + /* MRI skip instructions */ + KV(i2000, s2000), KV(i2200, s2200), KV(i2400, s2400), KV(i2410, s2410), + KV(i2600, s2600), KV(i2610, s2610), + /* EAE skip instructions */ + KV(i7451, s7451), + /* IOT skip instructions */ + KV(i6000, s6000), KV(i6003, s6003), KV(i6006, s6006), KV(i6254, s6254), + /* OPR skip instructions */ + KV(i7410, s7410), KV(i7412, s7410), KV(i7414, s7410), KV(i7416, s7410), + KV(i7420, s7420), KV(i7422, s7420), KV(i7424, s7420), KV(i7426, s7420), + KV(i7430, s7430), KV(i7432, s7430), KV(i7434, s7430), KV(i7436, s7430), + KV(i7440, s7440), KV(i7442, s7440), KV(i7444, s7440), KV(i7446, s7440), + KV(i7450, s7450), KV(i7452, s7450), KV(i7454, s7450), KV(i7456, s7450), + KV(i7460, s7460), KV(i7462, s7460), KV(i7464, s7460), KV(i7466, s7460), + KV(i7470, s7470), KV(i7472, s7470), KV(i7474, s7470), KV(i7476, s7470), + KV(i7500, s7500), KV(i7502, s7500), KV(i7504, s7500), KV(i7506, s7500), + KV(i7510, s7510), KV(i7512, s7510), KV(i7514, s7510), KV(i7516, s7510), + KV(i7520, s7520), KV(i7522, s7520), KV(i7524, s7520), KV(i7526, s7520), + KV(i7530, s7530), KV(i7532, s7530), KV(i7534, s7530), KV(i7536, s7530), + KV(i7540, s7540), KV(i7542, s7540), KV(i7544, s7540), KV(i7546, s7540), + KV(i7550, s7550), KV(i7552, s7550), KV(i7554, s7550), KV(i7556, s7550), + KV(i7610, s7410), KV(i7612, s7410), KV(i7614, s7410), KV(i7616, s7410), + KV(i7620, s7420), KV(i7622, s7420), KV(i7624, s7420), KV(i7626, s7420), + KV(i7630, s7430), KV(i7632, s7430), KV(i7634, s7430), KV(i7636, s7430), + KV(i7640, s7440), KV(i7642, s7440), KV(i7644, s7440), KV(i7646, s7440), + KV(i7650, s7450), KV(i7652, s7450), KV(i7654, s7450), KV(i7656, s7450), + KV(i7660, s7460), KV(i7662, s7460), KV(i7664, s7460), KV(i7666, s7460), + KV(i7670, s7470), KV(i7672, s7470), KV(i7674, s7470), KV(i7676, s7470), + KV(i7700, s7500), KV(i7702, s7500), KV(i7704, s7500), KV(i7706, s7500), + KV(i7710, s7510), KV(i7712, s7510), KV(i7714, s7510), KV(i7716, s7510), + KV(i7720, s7520), KV(i7722, s7520), KV(i7724, s7520), KV(i7726, s7520), + KV(i7730, s7530), KV(i7732, s7530), KV(i7734, s7530), KV(i7736, s7530), + KV(i7740, s7540), KV(i7742, s7540), KV(i7744, s7540), KV(i7746, s7540), + KV(i7750, s7550), KV(i7752, s7550), KV(i7754, s7550), KV(i7756, s7550), + KV(i7760, s7560), KV(i7762, s7560), KV(i7764, s7560), KV(i7766, s7560), + KV(i7770, s7570), KV(i7772, s7570), KV(i7774, s7570), KV(i7776, s7570), + nil + ]; +} + + +- (void) notifySkipIndicator:(NSNotification *)notification +{ + /* coalesc the multiple ..._CHANGED_NOTIFICATIONS to one UPDATE_SKIPINDICATOR_NOTIFICATION + to avoid time consuming repeated updates */ + // NSLog (@"notifySkipIndicator"); + [[NSNotificationQueue defaultQueue] enqueueNotification: + [NSNotification notificationWithName:UPDATE_SKIPINDICATOR_NOTIFICATION object:self] + postingStyle:NSPostASAP coalesceMask:NSNotificationCoalescingOnName forModes:nil]; +} + + +- (void) notifyUpdateSkipIndicator:(NSNotification *)notification +{ + // NSLog (@"SkipController notifyUpdateSkipIndicator"); + NSAssert (! [pdp8 isGoing], @"PDP-8 is running"); + if ([pdp8 getEnable] && ([pdp8 getIOFlagBits:~0] & [pdp8 getInterruptMaskBits:~0]) && + ! ([pdp8 getDelay] || [pdp8 getInhibit])) + [view setImageNamed:INTERRUPT_IMAGE_NAME toolTip: + NSLocalizedString(@"An interrupt is pending", @"")]; + else { + NSValue *skipfunc = [dictionary objectForKey: + [NSValue valueWithPointer:[pdp8 getNextInstruction]]]; + if (skipfunc) { + if (((PDP8SkiptestFunctionPointer)[skipfunc pointerValue])()) + [view setImageNamed:SKIP_IMAGE_NAME toolTip: + NSLocalizedString(@"The next instruction will be skipped", @"")]; + else + [view setImageNamed:nil toolTip:nil]; + } else + [view setImageNamed:nil toolTip:nil]; + } +} + + +- (void) addSkiptest:(NSValue *)skiptest forInstruction:(NSValue *)instruction +{ + if (skiptest && [skiptest pointerValue] && instruction && [instruction pointerValue]) + [dictionary setObject:skiptest forKey:instruction]; +} + + +@end diff --git a/Categories/FileDropControlTargetProtocol.h b/Categories/FileDropControlTargetProtocol.h new file mode 100644 index 0000000..361ad94 --- /dev/null +++ b/Categories/FileDropControlTargetProtocol.h @@ -0,0 +1,35 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * FileDropControlTargetProtocol.h - Protocol to support file drop controls + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +/* When a NSControl is registered as a file drop destination (via [FileDrop registerAsFileDropTarget:]), + the target of the control must implement the FileDragControlTarget protocol that is used to + communicate between the drag actions and the control target. */ + + +@protocol FileDropControlTarget + +- (BOOL) willAcceptFile:(NSString *)path; // check if file is allowed to be dropped +- (BOOL) acceptFile:(NSString *)path; // actually perform the drop action, return success status + +@end diff --git a/Categories/NSControl+FileDrop.h b/Categories/NSControl+FileDrop.h new file mode 100644 index 0000000..2a4b437 --- /dev/null +++ b/Categories/NSControl+FileDrop.h @@ -0,0 +1,30 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * NSControl+FileDrop.h - Category to support file drop for controls + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@interface NSControl (FileDrop) + +- (void) registerAsFileDropTarget; +- (void) unregisterAsFileDropTarget; + +@end diff --git a/Categories/NSControl+FileDrop.m b/Categories/NSControl+FileDrop.m new file mode 100644 index 0000000..b66b9e1 --- /dev/null +++ b/Categories/NSControl+FileDrop.m @@ -0,0 +1,71 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * NSControl+FileDrop.m - Category to support file drop for controls + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "NSControl+FileDrop.h" +#import "FileDropControlTargetProtocol.h" +#import "NSFileManager+Additions.h" + + +@implementation NSControl (FileDrop) + + +- (void) registerAsFileDropTarget +{ + [self registerForDraggedTypes:[NSArray arrayWithObject:NSFilenamesPboardType]]; +} + + +- (void) unregisterAsFileDropTarget +{ + [self unregisterDraggedTypes]; +} + + +- (NSDragOperation) draggingEntered:(id )sender +{ + NSAssert ([[self target] conformsToProtocol:@protocol(FileDropControlTarget)], + @"Control target does not conform to the DragDropControlTarget protocol"); + if (! [self isEnabled]) + return NSDragOperationNone; + if (([sender draggingSourceOperationMask] & NSDragOperationGeneric) != NSDragOperationGeneric) + return NSDragOperationNone; + NSArray *paths = [[sender draggingPasteboard] propertyListForType:NSFilenamesPboardType]; + if ([paths count] != 1) // HIG: don't accept a drag with more than one allowed item + return NSDragOperationNone; + if (! [[self target] willAcceptFile:[paths objectAtIndex:0]]) + return NSDragOperationNone; + return NSDragOperationCopy; +} + + +- (BOOL) performDragOperation:(id )sender +{ + return [[self target] acceptFile:[[NSFileManager defaultManager] resolveAliasPath: + [[[sender draggingPasteboard] propertyListForType:NSFilenamesPboardType] objectAtIndex:0]]]; +} + + +@end diff --git a/Categories/NSFileManager+Additions.h b/Categories/NSFileManager+Additions.h new file mode 100644 index 0000000..6e9653c --- /dev/null +++ b/Categories/NSFileManager+Additions.h @@ -0,0 +1,32 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * NSFileManager+Additions.h - Additional functions for file management + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@interface NSFileManager (Additions) + +- (BOOL) fsRef:(FSRef *)fsRef forPath:(NSString *)path; +- (NSString *) pathResolved:(NSString *)path; // resolved path, returns nil on failure +- (BOOL) isAliasPath:(NSString *)inPath; +- (NSString *) resolveAliasPath:(NSString *)path; // resolved path, returns original path on failure + +@end diff --git a/Categories/NSFileManager+Additions.m b/Categories/NSFileManager+Additions.m new file mode 100644 index 0000000..79fd46c --- /dev/null +++ b/Categories/NSFileManager+Additions.m @@ -0,0 +1,150 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * NSFileManager+Additions.h - Additional functions for file management + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "utilities.h" +#import "NSFileManager+Additions.h" + + +/* declarations from Mac OS X 10.6 CFURL.h to dynamically load und call new APIs while building + with the Mac OS X 10.4 SDK */ + +#import + +typedef struct __CFError *CFErrorRef; +typedef CFOptionFlags CFURLBookmarkResolutionOptions; + +enum { + kCFBookmarkResolutionWithoutUIMask = ( 1UL << 8 ), + // don't perform any UI during bookmark resolution + kCFBookmarkResolutionWithoutMountingMask = ( 1UL << 9 ), + // don't mount a volume during bookmark resolution +}; + +static CFDataRef (*CFURLCreateBookmarkDataFromFile) (CFAllocatorRef allocator, + CFURLRef fileURL, CFErrorRef *errorRef); +static CFURLRef (*CFURLCreateByResolvingBookmarkData) (CFAllocatorRef allocator, + CFDataRef bookmark, CFURLBookmarkResolutionOptions options, CFURLRef relativeToURL, + CFArrayRef resourcePropertiesToInclude, Boolean* isStale, CFErrorRef* error); + + +/* + NSFileManager: Resolve an alias + Original Source: + (See copyright notice at ) + + The old Alias Manager functions are depecated since Mac OS 10.8 and no longer work with OS X 10.10. + The CFURL Bookmark functions are available since Mac OS 10.6. Because we build against the + Mac OS X 10.4 SDK, we call them dynamically. For the new code, see + http://stackoverflow.com/questions/21244781 +*/ + + +@implementation NSFileManager (Additions) + + +- (BOOL) fsRef:(FSRef *)fsRef forPath:(NSString *)path +{ + BOOL ok = NO; + CFURLRef url = CFURLCreateWithFileSystemPath(NULL, (CFStringRef) path, kCFURLPOSIXPathStyle, NO); + if (url) { + ok = CFURLGetFSRef(url, fsRef); + CFRelease (url); + } + return ok; +} + + +- (NSString *) pathResolvedNew:(NSString *)path +// This code runs with Mac OS 10.6 and better; the dlsym() is only required until we build with newer SDKs +{ + if (CFURLCreateBookmarkDataFromFile == NULL) + CFURLCreateBookmarkDataFromFile = dlsym(RTLD_NEXT, "CFURLCreateBookmarkDataFromFile"); + if (CFURLCreateByResolvingBookmarkData == NULL) + CFURLCreateByResolvingBookmarkData = dlsym(RTLD_NEXT, "CFURLCreateByResolvingBookmarkData"); + CFStringRef resolvedPath = nil; + CFURLRef url = CFURLCreateWithFileSystemPath(NULL, (CFStringRef) path, kCFURLPOSIXPathStyle, NO); + if (url != NULL) { + CFErrorRef *err = nil; + CFDataRef bookmark = CFURLCreateBookmarkDataFromFile(NULL, url, err); + if (bookmark != NULL) { + CFURLRef resolvedurl = CFURLCreateByResolvingBookmarkData(NULL, bookmark, + kCFBookmarkResolutionWithoutUIMask, NULL, NULL, NO, err); + if (resolvedurl != NULL) { + resolvedPath = CFURLCopyFileSystemPath(resolvedurl, kCFURLPOSIXPathStyle); + CFRelease (resolvedurl); + } + } + CFRelease (url); + } + return [((NSString *) resolvedPath) autorelease]; +} + + +- (NSString *) pathResolvedOld:(NSString *)path +// This code runs with Mac OS 10.4 to 10.9, it is deprecated since Mac OS 10.8, it doesn't work with Yosemite +{ + CFStringRef resolvedPath = nil; + CFURLRef url = CFURLCreateWithFileSystemPath(NULL, (CFStringRef) path, kCFURLPOSIXPathStyle, NO); + if (url != NULL) { + FSRef fsRef; + if (CFURLGetFSRef(url, &fsRef)) { + Boolean targetIsFolder, wasAliased; + if (FSResolveAliasFile(&fsRef, true, &targetIsFolder, &wasAliased) == noErr && + wasAliased) { + CFURLRef resolvedurl = CFURLCreateFromFSRef(NULL, &fsRef); + if (resolvedurl != NULL) { + resolvedPath = CFURLCopyFileSystemPath(resolvedurl, + kCFURLPOSIXPathStyle); + CFRelease (resolvedurl); + } + } + } + CFRelease (url); + } + return [((NSString *) resolvedPath) autorelease]; +} + + +- (NSString *) pathResolved:(NSString *)path +{ + return runningOnSnowLeopardOrNewer() ? [self pathResolvedNew:path] : [self pathResolvedOld:path]; +} + + +- (BOOL) isAliasPath:(NSString *)path +{ + return [self pathResolved:path] != nil; +} + + +- (NSString *) resolveAliasPath:(NSString *)path +{ + NSString *resolved = [self pathResolved:path]; + return resolved ? resolved : path; +} + + +@end diff --git a/Categories/NSMutableArray+BinarySearch.h b/Categories/NSMutableArray+BinarySearch.h new file mode 100644 index 0000000..2b2d90b --- /dev/null +++ b/Categories/NSMutableArray+BinarySearch.h @@ -0,0 +1,30 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * NSMutableArray+BinarySearch.h - Category for binary search + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@interface NSMutableArray (BinarySearch) + +- (unsigned) addObject:(id)object toArraySortedBy:(SEL)compare replaceExistingObject:(BOOL)replace; +- (unsigned) indexOfObject:(id)object inArraySortedBy:(SEL)compare; + +@end diff --git a/Categories/NSMutableArray+BinarySearch.m b/Categories/NSMutableArray+BinarySearch.m new file mode 100644 index 0000000..e82343d --- /dev/null +++ b/Categories/NSMutableArray+BinarySearch.m @@ -0,0 +1,96 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * NSMutableArray+BinarySearch.m - Category for binary search + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "NSMutableArray+BinarySearch.h" + + +@implementation NSMutableArray (BinarySearch) + + +- (unsigned) addObject:(id)object toArraySortedBy:(SEL)compare replaceExistingObject:(BOOL)replace +{ + int n = [self count]; + if (n == 0) { + [self addObject:object]; + return 0; + } + NSRange range = NSMakeRange(0, n); + while (range.length > 0) { + unsigned m = range.location + range.length / 2; + switch ((NSComparisonResult) + [[self objectAtIndex:m] performSelector:compare withObject:object]) { + case NSOrderedAscending: + n = range.location + range.length; + range.location = m + 1; + range.length = n - range.location; + break; + case NSOrderedDescending: + range.length = m - range.location; + break; + case NSOrderedSame: + if (replace) + [self replaceObjectAtIndex:m withObject:object]; + return m; + default: + NSAssert (FALSE, @"Invalid comparison result"); + break; + } + } + [self insertObject:object atIndex:range.location]; + return range.location; +} + + +- (unsigned) indexOfObject:(id)object inArraySortedBy:(SEL)compare; +{ + int n = [self count]; + if (n == 0) + return NSNotFound; + NSRange range = NSMakeRange(0, n); + while (range.length > 0) { + unsigned m = range.location + range.length / 2; + switch ((NSComparisonResult) + [[self objectAtIndex:m] performSelector:compare withObject:object]) { + case NSOrderedAscending: + n = range.location + range.length; + range.location = m + 1; + range.length = n - range.location; + break; + case NSOrderedDescending: + range.length = m - range.location; + break; + case NSOrderedSame: + return m; + default: + NSAssert (FALSE, @"Invalid comparison result"); + break; + } + } + return NSNotFound; +} + + +@end diff --git a/Categories/NSTableView+Scrolling.h b/Categories/NSTableView+Scrolling.h new file mode 100644 index 0000000..fb216b8 --- /dev/null +++ b/Categories/NSTableView+Scrolling.h @@ -0,0 +1,29 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * NSTableView+Scrolling.m - Category with additional scrolling methods + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@interface NSTableView (Scrolling) + +- (void) scrollRowToTop:(int)row; + +@end diff --git a/Categories/NSTableView+Scrolling.m b/Categories/NSTableView+Scrolling.m new file mode 100644 index 0000000..3206f14 --- /dev/null +++ b/Categories/NSTableView+Scrolling.m @@ -0,0 +1,53 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * NSTableView+Scrolling.m - Category with additional scrolling methods + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "NSTableView+Scrolling.h" +#import "Utilities.h" + + +@implementation NSTableView (Scrolling) + + +- (void) scrollRowToTop:(int)row +{ + NSClipView *clipView = (NSClipView *) [self superview]; + if (clipView) { + NSRect rowRect = [self rectOfRow:row]; + if (runningOnElCapitanOrNewer()) + rowRect.origin.y -= rowRect.size.height; + NSPoint newOrigin = [self convertPoint:rowRect.origin toView:clipView]; + [clipView scrollToPoint:newOrigin]; + NSScrollView *scrollView = (NSScrollView *) [clipView superview]; + if (scrollView) + [scrollView reflectScrolledClipView:clipView]; + } +} + + +@end + + + diff --git a/Categories/NSThread+MainThread.h b/Categories/NSThread+MainThread.h new file mode 100644 index 0000000..e031f6d --- /dev/null +++ b/Categories/NSThread+MainThread.h @@ -0,0 +1,29 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * NSThread+MainThread.h - Category for [NSThread isMainThread], not available with the 10.4 SDK + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@interface NSThread (MainThread) + ++ (BOOL) isMainThread; + +@end diff --git a/Categories/NSThread+MainThread.m b/Categories/NSThread+MainThread.m new file mode 100644 index 0000000..9e2f5d6 --- /dev/null +++ b/Categories/NSThread+MainThread.m @@ -0,0 +1,39 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * NSThread+MainThread.m - Category for [NSThread isMainThread], not available with the 10.4 SDK + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "NSThread+MainThread.h" + + +@implementation NSThread (MainThread) + + ++ (BOOL) isMainThread +{ + return (pthread_main_np() != 0); +} + + +@end diff --git a/Emulation/PDP8.h b/Emulation/PDP8.h new file mode 100644 index 0000000..fa28a0c --- /dev/null +++ b/Emulation/PDP8.h @@ -0,0 +1,316 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * PDP8.h - The PDP-8/E Emulator Class + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class BreakpointArray; + + +#define MEMORY_CHANGED_NOTIFICATION @"pdp8MemoryChangedNotification" +#define PROGRAM_COUNTER_CHANGED_NOTIFICATION @"pdp8PCChangedNotification" +#define ACCUMULATOR_CHANGED_NOTIFICATION @"pdp8LACChangedNotification" +#define SR_CHANGED_NOTIFICATION @"pdp8SRChangedNotification" +#define SC_CHANGED_NOTIFICATION @"pdp8SCChangedNotification" +#define GTF_CHANGED_NOTIFICATION @"pdp8GTFChangedNotification" +#define MQ_CHANGED_NOTIFICATION @"pdp8MQChangedNotification" +#define EAE_MODE_CHANGED_NOTIFICATION @"pdp8EAEModeChangedNotification" +#define DF_CHANGED_NOTIFICATION @"pdp8DFChangedNotification" +#define UF_CHANGED_NOTIFICATION @"pdp8UFChangedNotification" +#define UB_CHANGED_NOTIFICATION @"pdp8UBChangedNotification" +#define SF_CHANGED_NOTIFICATION @"pdp8SFChangedNotification" +#define ENABLE_CHANGED_NOTIFICATION @"pdp8EnableChangedNotification" +#define DELAY_CHANGED_NOTIFICATION @"pdp8DelayChangedNotification" +#define INHIBIT_CHANGED_NOTIFICATION @"pdp8InhibitChangedNotification" +#define IOFLAGS_CHANGED_NOTIFICATION @"pdp8IOFlagsChangedNotification" + +#define EAE_MOUNT_NOTIFICATION @"pdp8EAEMountNotification" +#define KM8E_MOUNT_NOTIFICATION @"pdp8KM8EMountNotification" + +#define CLEAR_ALL_FLAGS_NOTIFICATION @"pdp8ClearAllFlagsNotification" + +#define PDP8_STEP_NOTIFICATION @"pdp8StepNotification" +#define PDP8_TRACE_NOTIFICATION @"pdp8TraceNotification" +#define PDP8_GO_NOTIFICATION @"pdp8GoNotification" +#define PDP8_STOP_NOTIFICATION @"pdp8StopNotification" + + +#define PDP8_FIELDSIZE 0010000 /* size of a 4K PDP-8 memory field */ +#define PDP8_MEMSIZE 0100000 /* maximal PDP-8 memory size is 32K */ +#define PDP8_IOADDRS 0100 /* number of I/O addresses: 6xx? */ + +#define EAE_MODE_A 'A' /* values for pdp8->eaeMode */ +#define EAE_MODE_B 'B' + +#define userFLAG 1ul /* hard coded user mode flag (see IOFlagController) */ + +#define STOPPED 0 /* for state.running */ +#define GOING 1 +#define TRACING 2 +#define RUNNING (GOING | TRACING) + +#define GO_AS_FAST_AS_POSSIBLE 0 /* for state.goSpeed, setGoSpeed: and getGoSpeed */ +#define GO_WITH_PDP8_SPEED 1 +#define GO_WITH_PDP8_SPEED_PRECISE 2 + +#define NO_STOP_ADDRESS -1 /* for trace: and go: without stop address */ + + +typedef unsigned long ulong; +typedef void (*PDP8InstructionFunctionPointer)(void); + + +/* Structure with information about the optional devices currently simulated */ +typedef struct { + ushort memsize; /* memory size in 12-bit words - Data Break I/O devices must know + this value to avoid writing into non-existing PDP-8 memory */ + BOOL hasEAE; /* the simulated hardware has an EAE */ + BOOL hasKM8E; /* the simulated hardware has an KM8-E */ + BOOL hasKM8Etimesharing; /* the time sharing jumper of the KM8-E is present */ +} HW; + + +/* Registers of the TSC8-75 board are kept within the PDP-8 class */ +typedef struct { + ulong flag; /* interrupt mask of the TSC8-75 (0 when TSC8-75 not present) */ + ushort eriot; /* last instruction (IOT, JMP, JMS) that caused an user mode trap */ + ushort ertb; /* address of last JMP or JMS that caused an user mode trap */ + ushort ecdf; /* set when a CDF is executed in user mode, cleared by ECDF or ESME */ + ushort esmeEnabled; /* TSC8-75 supports the ESME mode, i. e. the IOT 6365 */ +} TSC8_75; + + +/* Structure with information about the internal state of the PDP-8/E emulation */ +typedef struct { + ushort running; /* STOPPED, TRACING or GOING */ + BOOL halted; /* YES iff the HALT or SINGSTEP key of the KC8-EA console is pressed */ + ushort currInst; /* code of current PDP-8 instruction, the functions */ + /* implementing the PDP-8 instructions can inspect this */ + ulong executionTime; /* every PDP-8 instruction must add to this value the execution */ + /* time (in 0.1 microseconds) of the instruction */ + /* for IOTs of I/O devices implemented by plugins these are: */ + /* 12 (1.2 microseconds) for IOTs of devices directly attached to */ + /* the OMNIBUS; */ + /* for devices attached via the KA8-E Positive I/O Bus Interface: */ + /* 12 (1.2 microseconds) for IOTs ending in 0 */ + /* 26 (2.6 microseconds) for IOTs ending in 1, 2 or 4 */ + /* 36 (3.6 microseconds) for IOTs ending in 3, 5 or 6 */ + /* 46 (4.6 microseconds) for IOTs ending in 7 */ + /* use the macro EXECUTION_TIME() for this purpose */ + uint64_t absoluteTime; /* Mach kernel absolut time corresponding to PDP-8 executionTime */ + int goSpeed; /* GO_AS_FAST_AS_POSSIBLE, GO_WITH_PDP8_SPEED, GO_WITH_PDP8_SPEED_PRECISE */ + ulong usecTraceDelay; /* delay (in microseconds) between two instructions in trace mode */ + void *pluginPointer[PDP8_IOADDRS]; /* for each I/O address, a pointer pointing to the plugin */ +} STATE; + + +@interface PDP8 : NSObject { +@public +/* The attributes are public, so the C functions implementing the PDP-8 instructions can + access them directly. No other Cocoa code should use them directly. To ensure this, + the register names are mapped to dummy names with the #defines below. In the source + code files with the instruction C functions, #define USE_PDP8_REGISTERS_DIRECTLY + to make the registers available. */ + +/* Registers of the PDP-8/E CPU */ + ushort SR; + ushort AC; /* including L flag */ + ushort PC; + ushort SC; + ushort MQ; + ushort GTF; + ushort IF; /* W: for write access to nonexisting memory */ + ushort IB, W_IB; /* W_IB == IB when memory exists, */ + ushort DF, W_DF; /* W_IB == 0100000 when memory does not exist */ + /* write accesses to current IF are only by JMS, */ + /* but then IB is used, so no W_IF needed. */ + /* dto. for DF, W_DF */ + /* field registers are 0n0000 for field n (0 <= n <= 7) */ + ushort UF; + ushort UB; /* UF, UB is 000000 or 010000 */ + ushort SF; + ushort IENABLE; + ushort IINHIBIT; + ushort IDELAY; + ulong IMASK; + ulong IOFLAGS; + char eaeMode; /* 'A' - Mode A, 'B' - Mode B */ + ushort mem[PDP8_MEMSIZE + PDP8_FIELDSIZE]; /* 9th field for non-existing core */ + +/* additional attributes */ + TSC8_75 _tsc8; + HW _hw; + STATE _state; + +@private + IBOutlet BreakpointArray *breakpoints; + IBOutlet BreakpointArray *breakopcodes; + char bp[PDP8_MEMSIZE]; + NSMutableDictionary *saveopcodes; +} + + +- (void) mountEAE:(BOOL)mount; // mount or unmount +- (BOOL) hasEAE; + +- (void) mountKM8E:(BOOL)mount memorySize:(unsigned)memsize timesharingEnabled:(BOOL)timesharing; +- (BOOL) hasKM8E; +- (BOOL) isTimesharingEnabled; +- (ushort) memorySize; // memory size in 12-bit words, e. g. 010000 for a 4K machine + +- (BOOL) isIOAddressAvailable:(int)addr; +- (void) setIOT:(NSValue *)iot forOpcode:(int)opcode; +- (void) setPluginPointer:(void *)pointer forIOAddress:(int)addr; // see PLUGIN_POINTER macro below + +- (NSString *) loadPaperTape:(NSString *)filename toField:(ushort)field; +// returns an error message; nil == everything ok + +- (void) setTraceSpeed:(double)speed; // trace with frequency of 1/speed Hz +- (void) setGoSpeed:(int)goSpeed; // see state.goSpeed and the three GO_ macros +- (int) getGoSpeed; // may change with a NSUserDefaultsDidChangeNotification + +- (void) step; +- (void) trace:(int)stopAddress; // stopAddress == -1 for no stop address +- (void) go:(int)stopAddress; +- (void) stop; // stop the running or tracing PDP-8 + +- (void) clearAllFlags; +- (void) loadExtendedAddress; +- (void) reset; + +- (BOOL) isStopped; +- (BOOL) isTracing; +- (BOOL) isGoing; +- (BOOL) isRunning; // running in trace or go mode + +- (BOOL) isHalted; // restart is inhibited (HALT or SINGSTEP console key is up) +- (void) setHalt:(BOOL)halt; // stop and inhibit restart (for the HALT or SINGSTEP console keys) + +- (ushort) getPC; +- (void) setPC:(ushort)pc; +- (ushort) getProgramCounter; // returns IF | PC +- (void) setProgramCounter:(ushort)programCounter; // sets IB, IF and PC +- (ushort) getIF; +- (void) setIF:(ushort)_if; +- (ushort) getIB; +- (void) setIB:(ushort)ib; +- (ushort) getDF; +- (void) setDF:(ushort)df; +- (ushort) getUF; +- (void) setUF:(ushort)uf; +- (ushort) getUB; +- (void) setUB:(ushort)ub; +- (ushort) getSF; +- (void) setSF:(ushort)sf; +- (ushort) getSR; +- (void) setSR:(ushort)sr; +- (ushort) getL; +- (void) setL:(ushort)l; +- (ushort) getAC; +- (void) setAC:(ushort)ac; +- (ushort) getLAC; +- (void) setLAC:(ushort)lac; +- (ushort) getSC; +- (void) setSC:(ushort)sc; +- (ushort) getGTF; +- (void) setGTF:(ushort)gtf; +- (ushort) getMQ; +- (void) setMQ:(ushort)mq; +- (char) getEAEmode; +- (void) setEAEmode:(char)mode; +- (ushort) getEnable; +- (void) setEnable:(ushort)enable; +- (ushort) getDelay; +- (void) setDelay:(ushort)delay; +- (ushort) getInhibit; +- (void) setInhibit:(ushort)inhibit; +- (ulong) getInterruptMaskBits:(ulong)bitmask; +- (void) setInterruptMaskBits:(ulong)bitmask; +- (void) clearInterruptMaskBits:(ulong)bitmask; +- (ulong) getIOFlagBits:(ulong)bitmask; +- (void) setIOFlagBits:(ulong)bitmask; +- (void) clearIOFlagBits:(ulong)bitmask; +- (BOOL) interruptRequest; +- (ushort) memoryAt:(int)address; +- (ushort) memoryAtNext:(int)address; +- (ushort *) directMemoryAccess; // pointer to the PDP-8 memory, only for Data Break I/O devices +- (void) directMemoryWriteFinished; // call this method when the memory modifying Data Break is finished +- (void) setMemoryAtAddress:(int)address toValue:(int)value; +- (void) setMemoryAtNextAddress:(int)address toValue:(int)value; +- (void) setMemoryAtAddress:(int)address toValues:(NSArray *)values withMask:(BOOL)withMask; +- (void) clearMemory; + +- (ushort) getCurrentOpcode; +- (PDP8InstructionFunctionPointer) getNextInstruction; + +- (ushort) getTSC8ertb; +- (void) setTSC8ertb:(ushort)ertb; +- (ushort) getTSC8eriot; +- (void) setTSC8eriot:(ushort)eriot; +- (ushort) getTSC8ecdf; +- (void) setTSC8ecdf:(ushort)ecdf; +- (ulong) getTSC8flag; +- (void) setTSC8flag:(ulong)flag; +- (BOOL) getTSC8esmeEnabled; +- (void) setTSC8esmeEnabled:(BOOL)enabled; + + +#if ! defined(NS_BLOCK_ASSERTIONS) +- (id) pluginPointer:(Class)pluginClass; // with assertion; see PLUGIN_POINTER macro below +#endif + +@end + + +#if USE_PDP8_REGISTERS_DIRECTLY +extern PDP8 *pdp8; +#define EXECUTION_TIME(time) (pdp8->_state.executionTime += (time)) +#if defined(NS_BLOCK_ASSERTIONS) +#define PLUGIN_POINTER(plugin) ((plugin *) pdp8->_state.pluginPointer[(pdp8->_state.currInst >> 3) & 077]) +#else +#define PLUGIN_POINTER(plugin) ((plugin *) [pdp8 pluginPointer:[plugin class]]) +#endif +#else +#define SR __dont_use_SR__ +#define AC __dont_use_AC__ +#define PC __dont_use_PC__ +#define SC __dont_use_SC__ +#define MQ __dont_use_MQ__ +#define GTF __dont_use_GTF__ +#define IF __dont_use_IF__ +#define IB __dont_use_IB__ +#define W_IB __dont_use_W_IB__ +#define DF __dont_use_DF__ +#define W_DF __dont_use_W_DF__ +#define UF __dont_use_UF__ +#define UB __dont_use_UB__ +#define SF __dont_use_SF__ +#define IENABLE __dont_use_IENABLE__ +#define IINHIBIT __dont_use_IINHIBIT__ +#define IDELAY __dont_use_IDELAY__ +#define IMASK __dont_use_IMASK__ +#define IOFLAGS __dont_use_IOFLAGS__ +#define eaeMode __dont_use_eaeMode__ +#define mem __dont_use_mem__ +#define _tsc8 __dont_use_tsc8__ +#define _hw __dont_use_hw__ +#define _state __dont_use_state__ +#endif diff --git a/Emulation/PDP8.m b/Emulation/PDP8.m new file mode 100644 index 0000000..9aedbd3 --- /dev/null +++ b/Emulation/PDP8.m @@ -0,0 +1,1345 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * PDP8.m - The PDP-8/E Emulator Class + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import +#import +#import + +#define USE_PDP8_REGISTERS_DIRECTLY 1 + +#import "PDP8.h" +#import "itab.h" +#import "eae.h" +#import "iot.h" +#import "opr.h" +#import "Breakpoint.h" +#import "BreakpointArray.h" +#import "Utilities.h" +#import "PluginAPI.h" +#import "NSThread+MainThread.h" + + +#define PDP8_PREFS_KEY @"PDP-8/E" + +#define CODER_KEY_HAS_EAE @"EAE" +#define CODER_KEY_HAS_KM8E @"KM8E" +#define CODER_KEY_MEMSIZE @"MEMSIZE" +#define CODER_KEY_TIMESHARING @"TIMESHARING" +#define CODER_KEY_SR @"SR" +#define CODER_KEY_LAC @"LAC" +#define CODER_KEY_PC @"PC" +#define CODER_KEY_SC @"SC" +#define CODER_KEY_MQ @"MQ" +#define CODER_KEY_GTF @"GTF" +#define CODER_KEY_IF @"IF" +#define CODER_KEY_IB @"IB" +#define CODER_KEY_DF @"DF" +#define CODER_KEY_UF @"UF" +#define CODER_KEY_UB @"UB" +#define CODER_KEY_SF @"SF" +#define CODER_KEY_ENABLE @"ENABLE" +#define CODER_KEY_INHIBIT @"INHIBIT" +#define CODER_KEY_DELAY @"DELAY" +#define CODER_KEY_USERMASK @"USERMASK" +#define CODER_KEY_USERFLAG @"USERFLAG" +#define CODER_KEY_EAEMODE @"EAEMODE" +#define CODER_KEY_MEMORY @"MEMORY" + + +PDP8 *pdp8; /* the one and only instance of the PDP8 class, only used by the opcode C functions */ + + +@implementation PDP8 + + +#pragma mark Hardware Configuration + + +- (void) mountEAEforced:(BOOL)mount // mount or unmount anyway (used only on startup) +{ + static void (*eaetab[])(void) = { + i7401, i7403, i7405, i7407, i7411, i7413, i7415, i7417, + i7421, i7423, i7425, i7427, i7431, i7433, i7435, i7437, + i7441, i7443, i7445, i7447, i7451, i7453, i7455, i7457, + i7461, i7463, i7465, i7467, i7471, i7473, i7475, i7477, + i7501, i7503, i7505, i7507, i7511, i7513, i7515, i7517, + i7521, i7523, i7525, i7527, i7531, i7533, i7535, i7537, + i7541, i7543, i7545, i7547, i7551, i7553, i7555, i7557, + i7561, i7563, i7565, i7567, i7571, i7573, i7575, i7577, + i7601, i7603, i7605, i7607, i7611, i7613, i7615, i7617, + i7621, i7623, i7625, i7627, i7631, i7633, i7635, i7637, + i7641, i7643, i7645, i7647, i7651, i7653, i7655, i7657, + i7661, i7663, i7665, i7667, i7671, i7673, i7675, i7677, + i7701, i7703, i7705, i7707, i7711, i7713, i7715, i7717, + i7721, i7723, i7725, i7727, i7731, i7733, i7735, i7737, + i7741, i7743, i7745, i7747, i7751, i7753, i7755, i7757, + i7761, i7763, i7765, i7767, i7771, i7773, i7775, i7777 + }; + static void (*noeaetab[])(void) = { + i7401, i7421, i7401, i7421, i7501, i7521, i7501, i7521, + i7601, i7621, i7601, i7621, i7701, i7721, i7701, i7721 + }; + + int i, j; + + _hw.hasEAE = mount; + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + if (mount) { + for (i = 07401, j = 0; i < 010000; i += 2) + itab[i] = eaetab[j++]; + for (i = 017401, j = 0; i < 020000; i += 2) + itab[i] = eaetab[j++]; + } else { + for (i = 07401, j = 0; i < 010000; i += 2) + itab[i] = noeaetab[j++ >> 3]; + for (i = 017401, j = 0; i < 020000; i += 2) + itab[i] = noeaetab[j++ >> 3]; + SC = 0; + GTF = 0; + eaeMode = EAE_MODE_A; + if (_state.running != GOING) { + [defaultCenter postNotificationName:SC_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:GTF_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:EAE_MODE_CHANGED_NOTIFICATION object:self]; + } + } + [defaultCenter postNotificationName:EAE_MOUNT_NOTIFICATION object:self]; +} + + +- (void) mountEAE:(BOOL)mount // mount only when needed (to avoid multiple executions due to notifications) +{ + if (_hw.hasEAE != mount) + [self mountEAEforced:mount];; +} + + +- (BOOL) hasEAE +{ + return _hw.hasEAE; +} + + +- (void) mountKM8Eforced:(BOOL)mount memorySize:(unsigned)memsize timesharingEnabled:(BOOL)timesharing +// mount or unmount anyway (used only on startup) +{ + static const struct { + ushort addr; + void (*inst)(void); + } km8etab[] = { + { 06201, i6201 }, { 06202, i6202 }, { 06203, i6203 }, { 06204, i6204 }, + { 06211, i6211 }, { 06212, i6212 }, { 06213, i6213 }, { 06214, i6214 }, + { 06221, i6221 }, { 06222, i6222 }, { 06223, i6223 }, { 06224, i6224 }, + { 06231, i6231 }, { 06232, i6232 }, { 06233, i6233 }, { 06234, i6234 }, + { 06241, i6241 }, { 06242, i6242 }, { 06243, i6243 }, { 06244, i6244 }, + { 06251, i6251 }, { 06252, i6252 }, { 06253, i6253 }, { 06254, i6254 }, + { 06261, i6261 }, { 06262, i6262 }, { 06263, i6263 }, { 06264, i6264 }, + { 06271, i6271 }, { 06272, i6272 }, { 06273, i6273 }, { 06274, i6274 }, + { 0, NULL } + }; + + int i; + + NSAssert ((memsize & ~0170000) == 0, @"Bad memory size"); + NSAssert ((mount && memsize > PDP8_FIELDSIZE) || memsize == PDP8_FIELDSIZE, + @"Memory size does not match KM8-E state"); + NSAssert (mount || ! timesharing, @"Timesharing option does not match KM8-E state"); + + _hw.hasKM8E = mount; + _hw.hasKM8Etimesharing = timesharing; + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + if (mount) { + for (i = 0; km8etab[i].addr; i++) + itab[km8etab[i].addr] = km8etab[i].inst; + IMASK |= userFLAG; + } else { + for (i = 0; km8etab[i].addr; i++) + itab[km8etab[i].addr] = i7000; + DF = W_DF = 0; + IF = IB = W_IB = 0; + UF = UB = 0; + SF = 0; + IINHIBIT = 0; + IMASK &= ~userFLAG; + IOFLAGS &= ~userFLAG; + if (_state.running != GOING) { + [defaultCenter postNotificationName:DF_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:PROGRAM_COUNTER_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:UF_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:UB_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:SF_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:INHIBIT_CHANGED_NOTIFICATION object:self]; + } + } + i = _hw.memsize = memsize; + W_DF = (DF < _hw.memsize) ? DF : 0100000; + W_IB = (IB < _hw.memsize) ? IB : 0100000; + while (i < 0100000) + mem[i++] = 0; + if (_state.running != GOING) { + [defaultCenter postNotificationName:IOFLAGS_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:MEMORY_CHANGED_NOTIFICATION object:self]; + } + [defaultCenter postNotificationName:KM8E_MOUNT_NOTIFICATION object:self]; +} + + +- (void) mountKM8E:(BOOL)mount memorySize:(unsigned)memsize timesharingEnabled:(BOOL)timesharing +// mount only when needed (to avoid multiple executions due to notifications) +{ + if (_hw.hasKM8E != mount || _hw.hasKM8Etimesharing != timesharing || _hw.memsize != memsize) + [self mountKM8Eforced:mount memorySize:memsize timesharingEnabled:timesharing]; +} + + +- (BOOL) hasKM8E +{ + return _hw.hasKM8E; +} + + +- (BOOL) isTimesharingEnabled +{ + return _hw.hasKM8Etimesharing; +} + + +- (ushort) memorySize +{ + return _hw.memsize; +} + + +- (BOOL) isIOAddressAvailable:(int)addr +{ + int i; + + NSAssert1 ((addr & ~077) == 0, @"Bad I/O address %o", addr); + addr = 06000 | (addr << 3); + for (i = 0; i < 8; i++) { + if (itab[addr | i] != i7000) + return NO; + } + return YES; +} + + +- (void) setIOT:(NSValue *)iot forOpcode:(int)opcode +{ + NSAssert1 ((opcode & ~0777) == 06000, @"Invalid IOT %o", opcode); + if (iot) { + PDP8InstructionFunctionPointer p = [iot pointerValue]; + if (p) + itab[opcode] = p; + } +} + + +- (void) setPluginPointer:(void *)pointer forIOAddress:(int)addr +{ + NSAssert1 ((addr & ~077) == 0, @"Bad I/O address %o", addr); + _state.pluginPointer[addr] = pointer; +} + + +#if ! defined(NS_BLOCK_ASSERTIONS) + +- (id) pluginPointer:(Class)pluginClass; +{ + id pluginPointer = _state.pluginPointer[(_state.currInst >> 3) & 077]; + NSAssert (pluginPointer && [pluginPointer isMemberOfClass:pluginClass], @"Bad plugin pointer"); + return pluginPointer; +} + +#endif + + +#pragma mark Initialization + + +- (void) notifyApplicationWillFinishLaunching:(NSNotification *)notification +{ + // NSLog (@"PDP8 notifyApplicationWillFinishLaunching"); + NSData *data = [[NSUserDefaults standardUserDefaults] dataForKey:PDP8_PREFS_KEY]; + if (data) { + NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; + [self initWithCoder:unarchiver]; + [unarchiver finishDecoding]; + [unarchiver release]; + } else { + [self mountEAEforced:NO]; + [self mountKM8Eforced:NO memorySize:PDP8_FIELDSIZE timesharingEnabled:NO]; + [self reset]; + } +} + + +- (void) notifyApplicationWillTerminate:(NSNotification *)notification +{ + // NSLog (@"PDP8 notifyApplicationWillTerminate"); + NSMutableData *data = [NSMutableData data]; + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + [self encodeWithCoder:archiver]; + [archiver finishEncoding]; + [archiver release]; + [[NSUserDefaults standardUserDefaults] setObject:data forKey:PDP8_PREFS_KEY]; +} + + +- (void) awakeFromNib +{ + pdp8 = self; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyApplicationWillFinishLaunching:) + name:NSApplicationWillFinishLaunchingNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyApplicationWillTerminate:) + name:NSApplicationWillTerminateNotification object:nil]; +} + + +- (id) initWithCoder:(NSCoder *)coder +{ + self = [super init]; + // hardware configuration - note: redundant to prefs settings + [self mountEAEforced:[coder decodeBoolForKey:CODER_KEY_HAS_EAE]]; + [self mountKM8Eforced:[coder decodeBoolForKey:CODER_KEY_HAS_KM8E] + memorySize:[coder decodeIntForKey:CODER_KEY_MEMSIZE] + timesharingEnabled:[coder decodeBoolForKey:CODER_KEY_TIMESHARING]]; + // registers + [self setSR:[coder decodeIntForKey:CODER_KEY_SR]]; + [self setLAC:[coder decodeIntForKey:CODER_KEY_LAC]]; + [self setPC:[coder decodeIntForKey:CODER_KEY_PC]]; + [self setSC:[coder decodeIntForKey:CODER_KEY_SC]]; + [self setMQ:[coder decodeIntForKey:CODER_KEY_MQ]]; + [self setGTF:[coder decodeIntForKey:CODER_KEY_GTF]]; + [self setIF:[coder decodeIntForKey:CODER_KEY_IF]]; + [self setIB:[coder decodeIntForKey:CODER_KEY_IB]]; + [self setDF:[coder decodeIntForKey:CODER_KEY_DF]]; + [self setUF:[coder decodeIntForKey:CODER_KEY_UF]]; + [self setUB:[coder decodeIntForKey:CODER_KEY_UB]]; + [self setSF:[coder decodeIntForKey:CODER_KEY_SF]]; + [self setEnable:[coder decodeIntForKey:CODER_KEY_ENABLE]]; + [self setInhibit:[coder decodeIntForKey:CODER_KEY_INHIBIT]]; + [self setDelay:[coder decodeIntForKey:CODER_KEY_DELAY]]; + [coder decodeBoolForKey:CODER_KEY_USERMASK] ? + [self setInterruptMaskBits:userFLAG] : [self clearInterruptMaskBits:userFLAG]; + [coder decodeBoolForKey:CODER_KEY_USERFLAG] ? + [self setIOFlagBits:userFLAG] : [self clearIOFlagBits:userFLAG]; + [self setEAEmode:[coder decodeIntForKey:CODER_KEY_EAEMODE]]; + // memory + NSData *data = [coder decodeObjectForKey:CODER_KEY_MEMORY]; + unsigned long memsize = _hw.memsize * sizeof(mem[0]); + int err = uncompress((void *) mem, &memsize, [data bytes], [data length]); + if (err) + NSLog (@"PDP8 decodeWithCoder memory uncompress error %d", err); + return self; +} + + +- (void) encodeWithCoder:(NSCoder *)coder +{ + // hardware configuration - note: redundant to prefs settings + [coder encodeBool:[self hasEAE] forKey:CODER_KEY_HAS_EAE]; + [coder encodeBool:[self hasKM8E] forKey:CODER_KEY_HAS_KM8E]; + [coder encodeInt:[self memorySize] forKey:CODER_KEY_MEMSIZE]; + [coder encodeBool:[self isTimesharingEnabled] forKey:CODER_KEY_TIMESHARING]; + // registers + [coder encodeInt:[self getSR] forKey:CODER_KEY_SR]; + [coder encodeInt:[self getLAC] forKey:CODER_KEY_LAC]; + [coder encodeInt:[self getPC] forKey:CODER_KEY_PC]; + [coder encodeInt:[self getSC] forKey:CODER_KEY_SC]; + [coder encodeInt:[self getMQ] forKey:CODER_KEY_MQ]; + [coder encodeInt:[self getGTF] forKey:CODER_KEY_GTF]; + [coder encodeInt:[self getIF] forKey:CODER_KEY_IF]; + [coder encodeInt:[self getIB] forKey:CODER_KEY_IB]; + [coder encodeInt:[self getDF] forKey:CODER_KEY_DF]; + [coder encodeInt:[self getUF] forKey:CODER_KEY_UF]; + [coder encodeInt:[self getUB] forKey:CODER_KEY_UB]; + [coder encodeInt:[self getSF] forKey:CODER_KEY_SF]; + [coder encodeInt:[self getEnable] forKey:CODER_KEY_ENABLE]; + [coder encodeInt:[self getInhibit] forKey:CODER_KEY_INHIBIT]; + [coder encodeInt:[self getDelay] forKey:CODER_KEY_DELAY]; + [coder encodeBool:[self getInterruptMaskBits:userFLAG] ? YES : NO forKey:CODER_KEY_USERMASK]; + [coder encodeBool:[self getIOFlagBits:userFLAG] ? YES : NO forKey:CODER_KEY_USERFLAG]; + [coder encodeInt:[self getEAEmode] forKey:CODER_KEY_EAEMODE]; + // memory + unsigned long datasize = compressBound(_hw.memsize * sizeof(mem[0])); + NSMutableData *data = [NSMutableData dataWithLength:datasize]; + int err = compress2([data mutableBytes], &datasize, (void *) mem, + _hw.memsize * sizeof(mem[0]), Z_BEST_COMPRESSION); + if (err) + NSLog (@"PDP8 encodeWithCoder memory compress2 error %d", err); + [data setLength:datasize]; + [coder encodeObject:data forKey:CODER_KEY_MEMORY]; +} + + +#pragma mark Utilities + + +- (NSString *) loadPaperTape:(NSString *)filename toField:(ushort)field +/* this code is based on a very careful analysis of the PDP-8 BIN loader */ +{ + ushort c, x, oldchecksum; + + NSAssert1 ((field & ~07) == 0, @"Bad memory field 0%o", field); + x = oldchecksum = 0; /* to avoid compiler "used uninitialized" warning */ + field <<= 12; + if (field >= _hw.memsize) + return NSLocalizedString(@"Cannot load code to non-existing memory field.", @""); + FILE *fp = fopen([filename cStringUsingEncoding:NSASCIIStringEncoding], "r"); + if (! fp) + return NSLocalizedString(@"Cannot open the paper tape for reading.", @""); + ushort origin = 0; + ushort checksum = 0; + BOOL isRimTape = TRUE; + BOOL lastWordWasOrigin = FALSE; + for (c = 0200; c == 0200 && ! feof(fp); c = getc(fp)) /* leader */ + ; + while (c != 0200 && ! feof(fp)) { + if ((c & 0300) == 0300) { /* field setting */ + if (c != 0377) { /* all holes punched are ignored */ + isRimTape = FALSE; /* RIM cannot have field setting */ + field = ((ushort) (c & 070)) << 9; + if (field >= _hw.memsize) + field = 0100000u; + /* field setting are not included in the checksum */ + } + c = getc(fp); + } else if ((c & 0300) == 0100) { /* origin */ + lastWordWasOrigin = TRUE; + origin = (c & 077) << 6; + oldchecksum = checksum; + checksum += c; + c = getc(fp); + origin += c; + checksum += c; + c = getc(fp); + } else { /* value to deposit in memory */ + if (! lastWordWasOrigin) + isRimTape = FALSE; + lastWordWasOrigin = FALSE; + x = (c & 077) << 6; + oldchecksum = checksum; + checksum += c; + c = getc(fp); + x += c; + checksum += c; + c = getc(fp); + if ((c != 0200 && ! feof(fp)) || isRimTape) { + mem[field | origin] = x; + origin = (origin + 1) & 07777; + } + } + } + [[NSNotificationCenter defaultCenter] + postNotificationName:MEMORY_CHANGED_NOTIFICATION object:self]; + while (c == 0200 && ! feof(fp)) + c = getc(fp); + if (! feof(fp)) { + fclose (fp); + return NSLocalizedString(@"There is something wrong with the paper tape, " + @"maybe garbage before leader or after trailer.", @""); + } + fclose (fp); + if (! isRimTape && (oldchecksum & 07777) != (lastWordWasOrigin ? origin : x)) + return NSLocalizedString(@"The paper tape contains a checksum error.", @""); + return nil; +} + + +- (void) notifyEverythingChanged +{ + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + + [defaultCenter postNotificationName:PROGRAM_COUNTER_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:ACCUMULATOR_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:SR_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:SC_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:GTF_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:MQ_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:EAE_MODE_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:DF_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:UF_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:UB_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:SF_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:ENABLE_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:DELAY_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:INHIBIT_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:IOFLAGS_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:MEMORY_CHANGED_NOTIFICATION object:self]; +} + + +- (void) clearAllFlags +{ + [self setLAC:0]; + [self setEnable:0]; + [self setInhibit:0]; + [self setDelay:0]; + [self clearInterruptMaskBits:~userFLAG]; + [self clearIOFlagBits:~0]; + [self setEAEmode:EAE_MODE_A]; + [self setGTF:0]; + int i; + for (i = 0; i < PDP8_IOADDRS; i++) { + if (_state.pluginPointer[i]) + [(PDP8Plugin *) _state.pluginPointer[i] clearAllFlags:i]; + } + [[NSNotificationCenter defaultCenter] postNotificationName:CLEAR_ALL_FLAGS_NOTIFICATION object:self]; +} + + +- (void) loadExtendedAddress +{ + if (_hw.hasKM8E) { + [self setIB:(SR & 070) >> 3]; + [self setIF:(SR & 070) >> 3]; + [self setDF:SR & 007]; + [self setUB:0]; + [self setUF:0]; + [self clearIOFlagBits:userFLAG]; + } +} + + +- (void) reset +{ + [self setProgramCounter:0200]; + [self setLAC:0]; + [self setSR:0]; + [self setSC:0]; + [self setMQ:0]; + [self setGTF:0]; + [self setDF:0]; + [self setUF:0]; + [self setUB:0]; + [self setSF:0]; + [self setEAEmode:EAE_MODE_A]; + [self setEnable:0]; + [self setDelay:0]; + [self setInhibit:0]; + [self clearInterruptMaskBits:~userFLAG]; + [self clearIOFlagBits:~0]; + [self clearMemory]; +} + + +#pragma mark Step - Trace - Go + + +- (void) setTraceSpeed:(double)speed +{ + _state.usecTraceDelay = (unsigned) (speed * 1000000.0); +} + + +- (void) setGoSpeed:(int)goSpeed +{ + NSAssert (goSpeed == GO_AS_FAST_AS_POSSIBLE || goSpeed == GO_WITH_PDP8_SPEED || + goSpeed == GO_WITH_PDP8_SPEED_PRECISE, @"Illegal go speed specififed"); + /* reset the timer - required when the PDP-8 runs while this method is called */ + _state.executionTime = 0; + _state.absoluteTime = mach_absolute_time(); + _state.goSpeed = goSpeed; +} + + +- (int) getGoSpeed +{ + return _state.goSpeed; +} + + +- (BOOL) isStopped +{ + return _state.running == STOPPED; +} + + +- (BOOL) isTracing +{ + return _state.running == TRACING; +} + + +- (BOOL) isGoing; +{ + return _state.running == GOING; +} + + +- (BOOL) isRunning +{ + return _state.running != STOPPED; +} + + +- (BOOL) isHalted +{ + return _state.halted; +} + + +- (void) setHalt:(BOOL)halt +{ + if (halt) + [self stop]; + _state.halted = halt; +} + + +static void breakInstruction (void) /* used for break opcodes */ +{ + pdp8->_state.running = STOPPED; + pdp8->PC--; +} + + +- (void) setupBreakpoints:(int)stopAddress +{ + NSEnumerator *enumerator; + Breakpoint *next; + + NSAssert (stopAddress == -1 || (stopAddress & ~077777) == 0, @"Invalid stop address"); + + // breakpoints + enumerator = [breakpoints enumerator]; + bzero (bp, sizeof(bp)); + while ((next = (Breakpoint *)[enumerator nextObject])) + bp[[next identifier]] = [next value]; + if (stopAddress >= 0) + bp[stopAddress] = BREAKPOINT; + + // break opcodes + NSAssert (saveopcodes == nil, @"saveopcodes not nil"); + saveopcodes = [[NSMutableDictionary alloc] init]; + enumerator = [breakopcodes enumerator]; + while ((next = (Breakpoint *)[enumerator nextObject])) { + unsigned opcode = [next identifier]; + if ([next value] & USERMODE_BREAKOPCODE) { + [saveopcodes setObject:[NSValue valueWithPointer:itab[opcode]] + forKey:[NSNumber numberWithInt:opcode]]; + itab[opcode] = breakInstruction; + } + if ([next value] & SYSTEMMODE_BREAKOPCODE) { + opcode |= 010000; + [saveopcodes setObject:[NSValue valueWithPointer:itab[opcode]] + forKey:[NSNumber numberWithInt:opcode]]; + itab[opcode] = breakInstruction; + } + } +} + + +- (void) resetBreakpoints +{ + NSNumber *next; + + NSEnumerator *enumerator = [saveopcodes keyEnumerator]; + while ((next = (NSNumber *)[enumerator nextObject])) + itab[[next intValue]] = [[saveopcodes objectForKey:next] pointerValue]; + [saveopcodes release]; + saveopcodes = nil; +} + + +- (void) sendStopNotification // must run on main thread +{ + NSAssertRunningOnMainThread (); + [[NSNotificationCenter defaultCenter] postNotificationName:PDP8_STOP_NOTIFICATION object:self]; + [self notifyEverythingChanged]; +} + + +- (void) oneRunLoopPass +{ + NSAssertRunningOnMainThread (); + [[NSRunLoop currentRunLoop] limitDateForMode:NSDefaultRunLoopMode]; +} + + +- (void) pdp8Step +{ + /* Check for interrupts */ + if (IENABLE && (IOFLAGS & IMASK) && ! (IDELAY || IINHIBIT)) { + mem[0] = PC; + PC = 1; + SF = (UF >> 6) | (IF >> 9) | (DF >> 12); + W_IB = IB = IF = W_DF = DF = UB = UF = IENABLE = 0; + EXECUTION_TIME (14); /* count the execute cycle of JMS 0 */ + } else { + IDELAY = 0; + /* Fetch and execute an instruction */ + itab[UF | (_state.currInst = mem[IF | PC])](); + /* Update the program counter */ + if (++PC & 010000) + PC &= 07777; + } +} + + +- (void) sendStepNotifications +{ + NSAssertRunningOnMainThread (); + [[NSNotificationCenter defaultCenter] postNotificationName:PDP8_STEP_NOTIFICATION object:self]; + [self notifyEverythingChanged]; +} + + +- (void) step +{ + NSAssert (_state.running == STOPPED, @"PDP-8 not stopped"); + [self pdp8Step]; + [self sendStepNotifications]; +} + + +- (void) traceThread:(NSNumber *)stopAddress +{ + struct timeval tv0, tv1; + struct timezone tz; + + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + BOOL installBreakpoints = TRUE; + [NSThread setThreadPriority:0]; + // low priority for the trace thread, so the main thread can process user interactions + _state.running = TRACING; + while (_state.running) { + gettimeofday (&tv0, &tz); + [self pdp8Step]; + [self performSelectorOnMainThread:@selector(sendStepNotifications) + withObject:nil waitUntilDone:YES]; + if (installBreakpoints) { // one step without breakpoints + [self setupBreakpoints:[stopAddress intValue]]; + installBreakpoints = FALSE; + } + if (bp[IF | PC]) + _state.running = STOPPED; + else if (_state.running) { + /* Give the main thread the chance to handle events. When tracing with full + speed (state.usecTraceDelay == 0), on dual core machines, the trace thread + calls the step method so fast on the main thread that it can't handle user + events. */ + [self performSelectorOnMainThread:@selector(oneRunLoopPass) + withObject:nil waitUntilDone:YES]; + gettimeofday (&tv1, &tz); + timersub (&tv1, &tv0, &tv0); + if (_state.usecTraceDelay > (ulong) tv0.tv_usec) + usleep (_state.usecTraceDelay - tv0.tv_usec); + } + } + [self resetBreakpoints]; + [self performSelectorOnMainThread:@selector(sendStopNotification) + withObject:nil waitUntilDone:YES]; + [pool release]; +} + + +- (void) trace:(int)stopAddress +{ + NSAssert (_state.running == STOPPED, @"PDP-8 not stopped"); + NSAssert (! _state.halted, @"PDP8 trace while halted"); + if (_state.halted) + [self step]; + else { + [[NSNotificationCenter defaultCenter] postNotificationName:PDP8_TRACE_NOTIFICATION object:self]; + [NSThread detachNewThreadSelector:@selector(traceThread:) toTarget:self + withObject:[NSNumber numberWithInt:stopAddress]]; + } +} + + +- (void) goThread:(id)object +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + // _state.running = GOING; // already set, see comment below in the go method + _state.executionTime = 0; + _state.absoluteTime = mach_absolute_time(); + while (_state.running) { + [self pdp8Step]; + /* Check for breakpoints */ + if (bp[IF | PC]) + _state.running = STOPPED; + /* Realtime speed */ + if (_state.goSpeed != GO_AS_FAST_AS_POSSIBLE) { + uint64_t delayUntilAbsolute = _state.absoluteTime + + nanoseconds2absolute(_state.executionTime * 100l); + if (_state.goSpeed == GO_WITH_PDP8_SPEED_PRECISE) { + // precise timing: delay after each PDP-8 instruction using busy waiting + // this delay takes about 0.1 microseconds longer than required + // (precision in the order of 0.1 PDP-8 instructions) + while (mach_absolute_time() < delayUntilAbsolute) + ; + } else if (mach_absolute_time() + nanoseconds2absolute(15000l) < delayUntilAbsolute) { + // PDP-8 speed without precise timing: delay when a forerun of at least + // 15 microseconds has accumulated (to avoid high kernel load on slower Macs) + // mach_wait_until() delays about 10 microseconds longer than required + // (precision in the order of about some dozen PDP-8 instructions) + mach_wait_until (delayUntilAbsolute); + } + // consider the time lag due to too long delays for the next loop + _state.absoluteTime = delayUntilAbsolute; + _state.executionTime = 0; + } + } + [self resetBreakpoints]; + [self performSelectorOnMainThread:@selector(sendStopNotification) + withObject:nil waitUntilDone:YES]; + [pool release]; +} + + +- (void) go:(int)stopAddress +{ + NSAssert (_state.running == STOPPED, @"PDP-8 not stopped"); + NSAssert (! _state.halted, @"PDP-8 trace while halted"); + if (_state.halted) + [self step]; + else { + /* set GOING right now, otherwise [self pdp8Step] might post GUI notifications + (e. g. IOFLAGS_CHANGED_NOTIFICATION via the CAF instruction) that are processed later + when the CPU is already running, and that can cause a crash, e. g. with the skip + indicator update */ + _state.running = GOING; + [self pdp8Step]; // one step without breakpoints and without GUI notifications + [self setupBreakpoints:stopAddress]; + [[NSNotificationCenter defaultCenter] postNotificationName:PDP8_GO_NOTIFICATION object:self]; + [NSThread detachNewThreadSelector:@selector(goThread:) toTarget:self withObject:nil]; + } +} + + +- (void) stop +{ + _state.running = STOPPED; +} + + +#pragma mark Register Access + + +#define NOTIFY(notification) if (_state.running != GOING && [NSThread isMainThread]) { \ + [[NSNotificationCenter defaultCenter] \ + postNotificationName:(notification) object:self]; \ + } + + +- (ushort) getPC +{ + return PC; +} + + +- (void) setPC:(ushort)pc +{ + NSAssert1 ((pc & ~07777) == 0, @"Bad PC: 0%o", pc); + PC = pc; + NOTIFY (PROGRAM_COUNTER_CHANGED_NOTIFICATION); +} + + +- (ushort) getProgramCounter +{ + return IF | PC; +} + + +- (void) setProgramCounter:(ushort)programCounter +{ + NSAssert1 ((programCounter & ~077777) == 0, @"Bad IF|PC: 0%o", programCounter); + NSAssert1 (programCounter < 010000 || _hw.hasKM8E, @"Can't set IF|PC to field %o without KM8-E", + programCounter >> 12); + IB = IF = programCounter & 070000; + PC = programCounter & 007777; + NOTIFY (PROGRAM_COUNTER_CHANGED_NOTIFICATION); +} + + +- (ushort) getIF +{ + return IF >> 12; +} + + +- (void) setIF:(ushort)_if +{ + NSAssert1 ((_if & ~07) == 0, @"Bad IF: 0%o", _if); + IF = _if << 12; + NOTIFY (PROGRAM_COUNTER_CHANGED_NOTIFICATION); +} + + +- (ushort) getIB +{ + return IB >> 12; +} + + +- (void) setIB:(ushort)ib +{ + NSAssert1 ((ib & ~07) == 0, @"Bad IB: 0%o", ib); + W_IB = IB = ib << 12; + if (W_IB >= _hw.memsize) + W_IB = 0100000; + NOTIFY (PROGRAM_COUNTER_CHANGED_NOTIFICATION); +} + + +- (ushort) getDF +{ + return DF >> 12; +} + + +- (void) setDF:(ushort)df +{ + NSAssert1 ((df & ~07) == 0, @"Bad DF: 0%o", df); + W_DF = DF = df << 12; + if (W_DF >= _hw.memsize) + W_DF = 0100000; + NOTIFY (DF_CHANGED_NOTIFICATION); +} + + +- (ushort) getUF +{ + return UF >> 12; +} + + +- (void) setUF:(ushort)uf +{ + NSAssert1 ((uf & ~01) == 0, @"Bad UF: 0%o", uf); + UF = uf << 12; + NOTIFY (UF_CHANGED_NOTIFICATION); +} + + +- (ushort) getUB +{ + return UB >> 12; +} + + +- (void) setUB:(ushort)ub +{ + NSAssert1 ((ub & ~01) == 0, @"Bad UB: %o", ub); + UB = ub << 12; + NOTIFY (UB_CHANGED_NOTIFICATION); +} + + +- (ushort) getSF +{ + return SF; +} + + +- (void) setSF:(ushort)sf +{ + NSAssert1 ((sf & ~0177) == 0, @"Bad SF: 0%o", sf); + SF = sf; + NOTIFY (SF_CHANGED_NOTIFICATION); +} + + +- (ushort) getSR +{ + return SR; +} + + +- (void) setSR:(ushort)sr +{ + NSAssert1 ((sr & ~077777) == 0, @"Bad SR: 0%o", sr); + SR = sr; + NOTIFY (SR_CHANGED_NOTIFICATION); +} + + +- (ushort) getL +{ + return AC >> 12; +} + + +- (void) setL:(ushort)l +{ + NSAssert1 ((l & ~01) == 0, @"Bad Link: 0%o", l); + AC = (l << 12) | (AC & 07777); + NOTIFY (ACCUMULATOR_CHANGED_NOTIFICATION); +} + + +- (ushort) getAC +{ + return AC & 07777; +} + + +- (void) setAC:(ushort)ac +{ + NSAssert1 ((ac & ~07777) == 0, @"Bad AC: 0%o", ac); + AC = (AC & 010000) | ac; + NOTIFY (ACCUMULATOR_CHANGED_NOTIFICATION); +} + + +- (ushort) getLAC +{ + return AC; +} + + +- (void) setLAC:(ushort)lac +{ + NSAssert1 ((lac & ~017777) == 0, @"Bad L|AC: 0%o", lac); + AC = lac; + NOTIFY (ACCUMULATOR_CHANGED_NOTIFICATION); +} + + +- (ushort) getSC +{ + return SC; +} + + +- (void) setSC:(ushort)sc +{ + NSAssert1 ((sc & ~037) == 0, @"Bad SC: 0%o", sc); + SC = sc; + NOTIFY (SC_CHANGED_NOTIFICATION); +} + + +- (ushort) getGTF +{ + return GTF; +} + + +- (void) setGTF:(ushort)gtf +{ + NSAssert1 ((gtf & ~01) == 0, @"Bad GTF: 0%o", gtf); + GTF = gtf; + NOTIFY (GTF_CHANGED_NOTIFICATION); +} + + +- (ushort) getMQ +{ + return MQ; +} + + +- (void) setMQ:(ushort)mq +{ + NSAssert1 ((mq & ~07777) == 0, @"Bad MQ: 0%o", mq); + MQ = mq; + NOTIFY (MQ_CHANGED_NOTIFICATION); +} + + +- (char) getEAEmode +{ + return eaeMode; +} + + +- (void) setEAEmode:(char)mode +{ + NSAssert1 (mode == 'A' || mode == 'B', @"Bad EAE mode: %c", mode); + eaeMode = mode; + NOTIFY (EAE_MODE_CHANGED_NOTIFICATION); +} + + +- (ushort) getEnable +{ + return IENABLE; +} + + +- (void) setEnable:(ushort)enable +{ + NSAssert1 ((enable & ~01) == 0, @"Bad Interrupt Enable Flag: 0%o", enable); + IENABLE = enable; + NOTIFY (ENABLE_CHANGED_NOTIFICATION); +} + + +- (ushort) getDelay +{ + return IDELAY; +} + + +- (void) setDelay:(ushort)delay +{ + NSAssert1 ((delay & ~01) == 0, @"Bad Interrupt Delay Flag: 0%o", delay); + IDELAY = delay; + NOTIFY (DELAY_CHANGED_NOTIFICATION); +} + + +- (ushort) getInhibit +{ + return IINHIBIT; +} + + +- (void) setInhibit:(ushort)inhibit +{ + NSAssert1 ((inhibit & ~01) == 0, @"Bad Interrupt Inhibit Flag: 0%o", inhibit); + IINHIBIT = inhibit; + NOTIFY (INHIBIT_CHANGED_NOTIFICATION); +} + + +- (ulong) getInterruptMaskBits:(ulong)bitmask +{ + return IMASK & bitmask; +} + + +- (void) setInterruptMaskBits:(ulong)bitmask +{ + IMASK |= bitmask; + NOTIFY (IOFLAGS_CHANGED_NOTIFICATION); +} + + +- (void) clearInterruptMaskBits:(ulong)bitmask +{ + IMASK &= ~bitmask; + NOTIFY (IOFLAGS_CHANGED_NOTIFICATION); +} + + +- (ulong) getIOFlagBits:(ulong)bitmask +{ + return IOFLAGS & bitmask; +} + + +- (void) setIOFlagBits:(ulong)bitmask +{ + IOFLAGS |= bitmask; + NOTIFY (IOFLAGS_CHANGED_NOTIFICATION); +} + + +- (void) clearIOFlagBits:(ulong)bitmask +{ + IOFLAGS &= ~bitmask; + NOTIFY (IOFLAGS_CHANGED_NOTIFICATION); +} + + +- (BOOL) interruptRequest +{ + return (IOFLAGS & IMASK) ? YES : NO; +} + + +#pragma mark Memory Access + + +- (ushort) memoryAt:(int)address +{ + NSAssert1 ((address & ~077777) == 0, @"Bad address: 0%o", address); + NSAssert2 ((mem[address] & ~07777) == 0, + @"Bad memory content: pdp8.mem[%5.5o] = 0%o", address, mem[address]); + return mem[address]; +} + + +- (ushort) memoryAtNext:(int)address +{ + NSAssert1 ((address & ~077777) == 0, @"Bad address: 0%o", address); + NSAssert2 ((mem[(address & 070000) | ((address + 1) & 07777)] & ~07777) == 0, + @"Bad memory content: pdp8.mem[%5.5o] = 0%o", + (address & 070000) | ((address + 1) & 07777), + mem[(address & 070000) | ((address + 1) & 07777)]); + return mem[(address & 070000) | ((address + 1) & 07777)]; +} + + +- (ushort *) directMemoryAccess +{ + return mem; +} + + +- (void) notifyMemoryChanged +{ + NSAssertRunningOnMainThread (); + NSAssert (_state.running != GOING, @"PDP-8 is running"); + [[NSNotificationCenter defaultCenter] postNotificationName:(MEMORY_CHANGED_NOTIFICATION) object:self]; +} + + +- (void) directMemoryWriteFinished +{ + if (_state.running != GOING) + [self performSelectorOnMainThread:@selector(notifyMemoryChanged) + withObject:nil waitUntilDone:YES]; +} + + +- (void) setMemoryAtAddress:(int)address toValue:(int)value +{ + NSAssert1 ((address & ~077777) == 0, @"Bad address: 0%o", address); + NSAssert1 (address < _hw.memsize, @"Address out of available memory: 0%o", address); + NSAssert2 ((value & ~07777) == 0, @"Bad value 0%o for pdp8.mem[%5.5o]", value, address); + mem[address] = value; + NOTIFY (MEMORY_CHANGED_NOTIFICATION); +} + + +- (void) setMemoryAtNextAddress:(int)address toValue:(int)value +{ + NSAssert1 ((address & ~077777) == 0, @"Bad address: 0%o", address); + NSAssert2 ((value & ~07777) == 0, @"Bad value 0%o for pdp8.mem[%5.5o]", + value, (address & 070000) | ((address + 1) & 07777)); + NSAssert1 (address < _hw.memsize, @"Address out of available memory: 0%o", address); + mem[(address & 070000) | ((address + 1) & 07777)] = value; + NOTIFY (MEMORY_CHANGED_NOTIFICATION); +} + + +- (void) setMemoryAtAddress:(int)address toValues:(NSArray *)values withMask:(BOOL)withMask +{ + int i; + + int count = [values count]; + NSAssert (values, @"values is nil"); + NSAssert1 ((address & ~077777) == 0, @"Bad start address: 0%o", address); + NSAssert1 (((address + count - 1) & ~077777) == 0, @"Bad end address: 0%o", address + count - 1); + NSAssert1 ((address + count - 1) < _hw.memsize, + @"End address out of available memory: 0%o", address); + for (i = 0; i < count; i++) { + int value = [[values objectAtIndex:i] intValue]; + NSAssert2 ((value & ~(withMask ? 077777777 : 07777)) == 0, + @"Bad mask/value 0%o for pdp8.mem[%5.5o]", value, address + i); + int mask = withMask ? (value >> 12) : 07777; + mem[address + i] = (mem[address + i] & ~mask) | (value & mask); + } + NOTIFY (MEMORY_CHANGED_NOTIFICATION); +} + + +- (void) clearMemory +{ + bzero (mem, sizeof(mem)); + NOTIFY (MEMORY_CHANGED_NOTIFICATION); +} + + +- (ushort) getCurrentOpcode +{ + return _state.currInst; +} + + +- (PDP8InstructionFunctionPointer) getNextInstruction +{ + NSAssert (_state.running != GOING, @"PDP-8 is running"); + _state.currInst = mem[IF | PC]; // the skiptest function may use the PLUGIN_POINTER() macro + return itab[UF | mem[IF | PC]]; +} + + +#pragma mark TSC8-75 + + +- (ushort) getTSC8ertb +{ + return _tsc8.ertb; +} + + +- (void) setTSC8ertb:(ushort)ertb +{ + NSAssert1 ((ertb & ~07777) == 0, @"Bad ERTB: %o", ertb); + _tsc8.ertb = ertb; +} + + +- (ushort) getTSC8eriot +{ + return _tsc8.eriot; +} + + +- (void) setTSC8eriot:(ushort)eriot +{ + NSAssert1 ((eriot & ~07777) == 0, @"Bad ERIOT: %o", eriot); + _tsc8.eriot = eriot; + NOTIFY (IOFLAGS_CHANGED_NOTIFICATION); // ESME might change its skip behaviour on new ERIOT +} + + +- (ushort) getTSC8ecdf +{ + return _tsc8.ecdf; +} + + +- (void) setTSC8ecdf:(ushort)ecdf +{ + NSAssert1 ((ecdf & ~01) == 0, @"Bad ECDF: %o", ecdf); + _tsc8.ecdf = ecdf; + NOTIFY (IOFLAGS_CHANGED_NOTIFICATION); // ESME might change its skip behaviour on new ECDF +} + +- (ulong) getTSC8flag +{ + return _tsc8.flag; +} + + +- (void) setTSC8flag:(ulong)flag +{ + _tsc8.flag = flag; +} + + +- (BOOL) getTSC8esmeEnabled +{ + return _tsc8.esmeEnabled; +} + + +- (void) setTSC8esmeEnabled:(BOOL)enabled +{ + _tsc8.esmeEnabled = enabled; + NOTIFY (IOFLAGS_CHANGED_NOTIFICATION); // ESME might change its skip behaviour when enabled +} + + +@end diff --git a/Emulation/eae.c b/Emulation/eae.c new file mode 100644 index 0000000..37fceb4 --- /dev/null +++ b/Emulation/eae.c @@ -0,0 +1,1255 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * eae.c - EAE instructions code for the PDP-8/E + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +/* + * EMUL-8: a pdp8e emulator. + * + * Author: + * Bill Haygood + * 41832 Ernest Road + * Loon Lake, WA 99148-9607 + * Internet: billh@comtch.iea.com + * Voice/AnsMach/FAX \ + * or 509-233-2555 + * Cellular/Pager / + * + * Copyright 1992, 1993, 1994 by the author with all rights reserved. + * + * Operate microinstruction (OPR) module to handle EAE instructions. + * + * Questions: + */ + + +#import + +#define USE_PDP8_REGISTERS_DIRECTLY 1 + +#include "PDP8.h" +#include "eae.h" +#include "pdp8defines.h" + + +/* + * Operate microinstructions + * + * | | | | + * |---|---|---|---|---|---|---|---|---| + * | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| + * | 1 |CLA|MQA| 0 |MQL| 0 | 0 | 0 | 1 | Group III + * |---|---|---|---|---|---|---|---|---| + * Sequence: 1 2 2 + * + * | | | | + * |---|---|---|---|---|---|---|---|---| + * | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| + * | 1 |CLA|MQA|SCA|MQL| | | | 1 | Group III Mode A + * |---|---|---|---|---|---|---|---|---| + * Sequence: 1 2 2 \____3____/ + * V + * 0 = NOP 4 = NMI + * 1 = SCL 5 = SHL + * 2 = MUY 6 = ASR + * 3 = DVI 7 = LSR + * + * | | | | + * |---|---|---|---|---|---|---|---|---| + * | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| + * | 1 |CLA|MQA| |MQL| | | | 1 | Group III Mode B + * |---|---|---|---|---|---|---|---|---| + * Sequence: 1 2 \ 2 / + * \_______3_______/ + * V + * 0 = NOP 10 = SCA + * 1 = ACS 11 = DAD + * 2 = MUY 12 = DST + * 3 = DVI 13 = SWBA + * 4 = NMI 14 = DPSZ + * 5 = SHL 15 = DPIC (MQL & MQA set) + * 6 = ASR 16 = DCM (MQL & MQA set) + * 7 = LSR 17 = SAM + * + * In the code below, the author refers to DPIC and DCM + * instructions without both MQL & MQA bits set as DPIC- + * and DCM- respectively (the author wonders whether he + * has implemented these odd-balls correctly). + */ +/* -------------------------------------------------------------------- */ +VOID i7401 (VOID) /* NOP Grp III */ +{ + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7403 (VOID) +{ + if (EAE == 'A') /* SCL */ + { + if (++PC & 010000) + PC &= 07777 ; + SC = (~(*(base + (IF | PC)))) & 037 ; + EXECUTION_TIME (26); + } + else /* ACS */ + { + SC = AC & 037 ; + AC &= 010000 ; + EXECUTION_TIME (12); + } +} +/* -------------------------------------------------------------------- */ +VOID i7405 (VOID) /* MUY */ +{ + REG UWORD *p ; + REG ULONG temp ; + if (++PC & 010000) + PC &= 07777 ; + p = base + (IF | PC) ; + if (EAE == 'B') + { + if ((PC & 07770) == 010 && (++*p & 010000)) + *p = 0 ; + p = base + (DF | *p) ; + EXECUTION_TIME (86); + } else + EXECUTION_TIME (74); + temp = ((ULONG) *p * MQ) + (AC & 07777) ; + AC = temp >> 12 ; /* no overflow into L can occure */ + MQ = temp & 07777 ; + SC = 014 ; +} +/* -------------------------------------------------------------------- */ +VOID i7407 (VOID) /* DVI */ +{ + REG UWORD *p ; + + if (++PC & 010000) + PC &= 07777 ; + p = base + (IF | PC) ; + if (EAE == 'B') + { + if ((PC & 07770) == 010 && (++*p & 010000)) + *p = 0 ; + p = base + (DF | *p) ; + } +/* + * Note from Bob Supnik at DEC: supnik@human.enet.dec.com + * DVI. If overflow occurs, the MQ is not changed, and the AC + * contains the original AC minus the divisor (result of first + * subtraction). + * Another note from Bob Supnik corrected the above: + * On a divide overflow, the action taken by the EAE is as follows: + * L = 1 + * AC = unchanged + * MQ = ((MQ << 1) + 1) & 07777 + * Also, the SC is 01 (normally, at end of divide, SC is 015). + * This from the EAE diagnostic. + */ + AC &= 07777 ; + if (AC < *p) /* Normal divide */ + { + REG ULONG temp = ((ULONG) AC << 12) | MQ ; + MQ = temp / *p ; + AC = temp - ((ULONG) *p * MQ) ; + SC = 015 ; + EXECUTION_TIME (EAE == 'A' ? 74 : 86); + } + else /* Divide overflow */ + { + AC |= 010000 ; + MQ = ((MQ << 1) + 1) & 07777 ; + SC = 01 ; + EXECUTION_TIME (EAE == 'A' ? 26 : 86); + } +} +/* -------------------------------------------------------------------- */ +VOID i7411 (VOID) /* NMI */ +{ +/* + * Note from Bob Supnik at DEC: supnik@human.enet.dec.com + * NMI. The hardware executes a "for" loop with these conditions: + * for (sc = 0; (AC<0> == AC<1>) && ((AC<2:11>|MQ) != 0); sc++) { + * shift link'ac'mq left 1; } + * If, at the end of normalization, the AC'MQ = 4000'0000 + * and the mode is B, AC is cleared. + */ + REG ULONG temp = ((ULONG) AC << 12) | MQ ; + + for (SC = 0 ; (temp & 040000000) == ((temp & 020000000) << 1) + && (temp & 017777777) ; SC++) + temp <<= 1 ; + if (EAE == 'B' && (temp & 077777777) == 040000000) + temp &= 0100000000 ; + AC = (temp >> 12) & 017777 ; + MQ = temp & 07777 ; + EXECUTION_TIME (15 + 3 * SC); +} +/* -------------------------------------------------------------------- */ +VOID i7413 (VOID) /* SHL */ +{ + REG INT count ; + REG ULONG temp = ((ULONG) AC << 12) | MQ ; + if (++PC & 010000) + PC &= 07777 ; + count = *(base + (IF | PC)) & 037 ; + EXECUTION_TIME (29 + 3 * count); /* A: 2.6 + 0.3 * count; B: 2.9 + 0.3 * count */ + if (EAE == 'A') + count++ ; + if (count) + temp <<= count ; + AC = (temp >> 12) & 017777 ; + MQ = temp & 07777 ; + SC = (EAE == 'B') ? 037 : 0 ; + +} +/* -------------------------------------------------------------------- */ +VOID i7415 (VOID) /* ASR */ +{ + REG INT count ; + REG LONG gtf ; + + AC = ((AC & 04000) << 1) | (AC & 07777) ; + if (++PC & 010000) + PC &= 07777 ; + count = *(base + (IF | PC)) & 037 ; + EXECUTION_TIME (29 + 3 * count); /* A: 2.6 + 0.3 * count; B: 2.9 + 0.3 * count */ + if (EAE == 'A') + count++ ; + if (count) + { + REG LONG temp = ((ULONG) AC << 12) | MQ ; + if (AC & 04000) + temp |= 0xff000000 ; + gtf = (count < 24) ? (temp & (1l << (count - 1))) : (AC & 04000) ; + if (AC & 04000) + { + while (count > 8) + { + temp = (temp >> 8) | 0xffff0000 ; + count -= 8 ; + } + } + temp >>= count ; + if (temp & 040000000) + temp |= 0100000000 ; +/* + * Note from Bob Supnik at DEC: supnik@human.enet.dec.com + * ASR, LSR. If B and count == 0, the GTF is not changed, + * rather than cleared. + */ + if (EAE == 'B') + GTF = (gtf) ? true : false ; + AC = (temp >> 12) & 017777 ; + MQ = temp & 07777 ; + } + SC = (EAE == 'B') ? 037 : 0 ; +} +/* -------------------------------------------------------------------- */ +VOID i7417 (VOID) /* LSR */ +{ + REG INT count ; + REG ULONG temp ; + + if (++PC & 010000) + PC &= 07777 ; + count = *(base + (IF | PC)) & 037 ; + EXECUTION_TIME (29 + 3 * count); /* A: 2.6 + 0.3 * count; B: 2.9 + 0.3 * count */ + if (EAE == 'A') + count++ ; + AC &= 07777 ; + temp = ((ULONG) AC << 12) | MQ ; + if (EAE == 'B' && count) + GTF = (temp >> (count - 1)) & 1; + temp >>= count ; + AC = (temp >> 12) & 07777 ; + MQ = temp & 07777 ; + SC = (EAE == 'B') ? 037 : 0 ; +} +/* -------------------------------------------------------------------- */ +VOID i7421 (VOID) /* MQL */ +{ + MQ = AC & 07777 ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7423 (VOID) /* MQL SCL */ +{ + MQ = AC & 07777 ; + AC &= 010000 ; + i7403 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7425 (VOID) /* MQL MUY */ +{ + MQ = AC & 07777 ; + AC &= 010000 ; + i7405 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7427 (VOID) /* MQL DVI */ +{ + MQ = AC & 07777 ; + AC &= 010000 ; + i7407 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7431 (VOID) /* SWAB */ +{ + MQ = AC & 07777 ; + AC &= 010000 ; + EAE = 'B' ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7433 (VOID) /* MQL SHL */ +{ + MQ = AC & 07777 ; + AC &= 010000 ; + i7413 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7435 (VOID) /* MQL ASR */ +{ + MQ = AC & 07777 ; + AC &= 010000 ; + i7415 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7437 (VOID) /* MQL LSR */ +{ + MQ = AC & 07777 ; + AC &= 010000 ; + i7417 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7441 (VOID) /* SCA */ +{ + AC |= SC ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7443 (VOID) +{ + REG UWORD *p ; + if (++PC & 010000) + PC &= 07777 ; + p = base + (IF | PC) ; + if (EAE == 'A') /* A: SCA SCL */ + { + AC |= SC ; + SC = (~*p) & 037 ; + EXECUTION_TIME (26); + } + else /* B: DAD */ + { + REG ULONG temp ; + REG UINT addr; + if ((PC & 07770) == 010 && (++*p & 010000)) + *p = 0 ; + addr = *p; + temp = MQ + *(base + (DF | addr)) ; + temp += ((ULONG) ((AC & 07777) + + *(base + (DF | ((addr+1) & 07777))))) << 12 ; + AC = temp >> 12 ; + MQ = temp & 07777 ; + EXECUTION_TIME (52); + } +} +/* -------------------------------------------------------------------- */ +VOID i7445 (VOID) +{ + if (EAE == 'A') /* A: SCA MUY */ + { + AC |= SC ; + i7405 () ; + } + else /* B: DST */ + { + REG UWORD *p ; + REG UINT addr; + if (++PC & 010000) + PC &= 07777 ; + p = base + (IF | PC) ; + if ((PC & 07770) == 010 && (++*p & 010000)) + *p = 0 ; + addr = *p; + *(base + (W_DF | addr)) = MQ ; + *(base + (W_DF | ((addr+1) & 07777))) = AC & 07777 ; + EXECUTION_TIME (52); + } +} +/* -------------------------------------------------------------------- */ +VOID i7447 (VOID) /* SWBA */ +{ + EAE = 'A' ; + GTF = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7451 (VOID) +{ + if (EAE == 'A') /* A: SCA NMI */ + { + AC |= SC ; + i7411 () ; + } + else /* B: DPSZ */ + { + if (!((AC & 07777) | MQ)) + ++PC ; + EXECUTION_TIME (12); + } +} +unsigned s7451 (VOID) +{ + if (EAE == 'A') /* A: SCA NMI */ + return (false); + else /* B: DPSZ */ + return (!((AC & 07777) | MQ)); +} +/* -------------------------------------------------------------------- */ +VOID i7453 (VOID) +{ + if (EAE == 'A') /* A: SCA SHL */ + { + AC |= SC ; + i7413 () ; + } + else /* B: DPIC- */ + { +/* + * Note from Bob Supnik at DEC: supnik@human.enet.dec.com + * DPIC, DCOM without SWP. The instructions use the swap to + * bring the MQ into the AC, perform step 1, swap back, + * perform step 2: + * + * + * increment/complement AC, carry out to link + * + * add link/complement and add link, carry out to link + */ + REG ULONG temp = (((ULONG) MQ << 12) | (AC & 07777)) + 1 ; + AC = temp >> 12 ; + MQ = temp & 07777 ; + EXECUTION_TIME (18); /* time of DPIC */ + } +} +/* -------------------------------------------------------------------- */ +VOID i7455 (VOID) +{ + if (EAE == 'A') /* A: SCA ASR */ + { + AC |= SC ; + i7415 () ; + } + else /* B: DCM- */ + { +/* + * Note from Bob Supnik at DEC: supnik@human.enet.dec.com + * DPIC, DCOM without SWP. The instructions use the swap to + * bring the MQ into the AC, perform step 1, swap back, + * perform step 2: + * + * + * increment/complement AC, carry out to link + * + * add link/complement and add link, carry out to link + */ + REG ULONG temp = - (((ULONG) MQ << 12) | (AC & 07777)) ; + AC = (temp >> 12) & 017777 ; + MQ = temp & 07777 ; + EXECUTION_TIME (18); /* time of DCM */ + } +} +/* -------------------------------------------------------------------- */ +VOID i7457 (VOID) +{ + if (EAE == 'A') /* A: SCA LSR */ + { + AC |= SC ; + i7417 () ; + } + else /* B: SAM */ + { +/* + * SAM code supplied by Bob Supnik at supnik@human.enet.dec.com + */ + REG INT temp = AC & 07777 ; + AC = MQ + (temp ^ 07777) + 1 ; + GTF = (temp <= MQ) ^ ((temp ^ MQ) >> 11) ; + EXECUTION_TIME (12); + } +} +/* -------------------------------------------------------------------- */ +VOID i7461 (VOID) /* MQL SCA */ +{ + MQ = AC & 07777 ; + AC &= 010000 ; + AC |= SC ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7463 (VOID) /* A: MQL SCA SCL */ +{ /* B: MQL DAD */ + MQ = AC & 07777 ; + AC &= 010000 ; + i7443 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7465 (VOID) /* A: MQL SCA MUY */ +{ /* B: MQL DST */ + MQ = AC & 07777 ; + AC &= 010000 ; + i7445 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7467 (VOID) /* A: MQL SCA DVI */ +{ /* B: MQL SWBA (SWBA ignored) */ + MQ = AC & 07777 ; + AC &= 010000 ; + if (EAE == 'A') { + AC |= SC; + i7407 (); + } else + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7471 (VOID) /* A: MQL SCA NMI */ +{ /* B: MQL DPSZ */ + MQ = AC & 07777 ; + AC &= 010000 ; + i7451 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7473 (VOID) /* A: MQL SCA SHL */ +{ /* B: MQL DPIC- (7453) */ + MQ = AC & 07777 ; + AC &= 010000 ; + i7453 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7475 (VOID) /* A: MQL SCA ASR */ +{ /* B: MQL DCM- (7455) */ + MQ = AC & 07777 ; + AC &= 010000 ; + i7455 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7477 (VOID) /* A: MQL SCA LSR */ +{ /* B: MQL SAM */ + MQ = AC & 07777 ; + AC &= 010000 ; + i7457 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7501 (VOID) /* MQA */ +{ + AC |= MQ ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7503 (VOID) /* A: MQA SCL */ +{ /* B: MQA ACS */ + AC |= MQ ; + i7403 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7505 (VOID) /* MQA MUY */ +{ + AC |= MQ ; + i7405 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7507 (VOID) /* MQA DVI */ +{ + AC |= MQ ; + i7407 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7511 (VOID) /* MQA NMI */ +{ + AC |= MQ ; + i7411 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7513 (VOID) /* MQA SHL */ +{ + AC |= MQ ; + i7413 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7515 (VOID) /* MQA ASR */ +{ + AC |= MQ ; + i7415 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7517 (VOID) /* MQA LSR */ +{ + AC |= MQ ; + i7417 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7521 (VOID) /* SWP */ +{ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7523 (VOID) /* A: SWP SCL */ +{ /* B: SWP ACS */ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7403 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7525 (VOID) /* SWP MUY */ +{ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7405 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7527 (VOID) /* SWP DVI */ +{ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7407 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7531 (VOID) /* SWP NMI */ +{ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7411 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7533 (VOID) /* SWP SHL */ +{ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7413 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7535 (VOID) /* SWP ASR */ +{ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7415 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7537 (VOID) /* SWP LSR */ +{ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7417 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7541 (VOID) /* MQA SCA */ +{ + AC |= MQ ; + AC |= SC ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7543 (VOID) /* A: MQA SCA SCL */ +{ /* B: MQA DAD */ + AC |= MQ ; + i7443 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7545 (VOID) /* A: MQA SCA MUY */ +{ /* B: MQA DST */ + AC |= MQ ; + i7445 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7547 (VOID) /* A: MQA SCA DVI */ +{ /* B: MQA SWBA (SWBA ignored) */ + AC |= MQ ; + if (EAE == 'A') { + AC |= SC; + i7407 (); + } else + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7551 (VOID) /* A: MQA SCA NMI */ +{ /* B: MQA DPSZ */ + AC |= MQ ; + i7451 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7553 (VOID) /* A: MQA SCA SHL */ +{ /* B: MQA DPIC- (7453) */ + AC |= MQ ; + i7453 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7555 (VOID) /* A: MQA SCA ASR */ +{ /* B: MQA DCM- (7455) */ + AC |= MQ ; + i7455 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7557 (VOID) /* A: MQA SCA LSR */ +{ /* B: MQA SAM */ + AC |= MQ ; + i7457 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7561 (VOID) /* SWP SCA */ +{ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp | SC ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7563 (VOID) /* A: SWP SCA SCL */ +{ /* B: SWP DAD */ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7443 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7565 (VOID) /* A: SWP SCA MUY */ +{ /* B: SWP DST */ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7445 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7567 (VOID) /* A: SWP SCA DVI */ +{ /* B: SWP SWBA (SWBA ignored) */ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + if (EAE == 'A') { + AC |= SC; + i7407 (); + } else + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7571 (VOID) /* A: SWP SCA NMI */ +{ /* B: SWP DPSZ */ + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7451 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7573 (VOID) /* A: SWP SCA SHL */ +{ /* B: DPIC */ + if (EAE == 'A') + { + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7453 () ; + } + else + { + REG ULONG temp = (((ULONG) (AC & 07777) << 12) | MQ) + 1 ; + AC = temp >> 12 ; + MQ = temp & 07777 ; + EXECUTION_TIME (18); + } +} +/* -------------------------------------------------------------------- */ +VOID i7575 (VOID) /* A: SWP SCA ASR */ +{ /* B: DCM */ + if (EAE == 'A') + { + REG UINT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7455 () ; + } + else + { + REG ULONG temp = (((((ULONG) (AC & 07777)) << 12) | MQ) + ^ 077777777) + 1 ; + AC = (temp >> 12) & 017777 ; + MQ = temp & 07777 ; + EXECUTION_TIME (18); + } +} +/* -------------------------------------------------------------------- */ +VOID i7577 (VOID) /* A: SWP SCA LSR */ +{ /* B: SWP SAM */ + REG INT temp = MQ ; + MQ = AC & 07777 ; + AC = (AC & 010000) | temp ; + i7457 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7601 (VOID) /* CLA Grp III */ +{ + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7603 (VOID) /* CLA SCA */ +{ + AC &= 010000 ; + i7403 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7605 (VOID) /* CLA MUY */ +{ + AC &= 010000 ; + i7405 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7607 (VOID) /* CLA DVI */ +{ + AC &= 010000 ; + i7407 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7611 (VOID) /* CLA NMI */ +{ + AC &= 010000 ; + i7411 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7613 (VOID) /* CLA SHL */ +{ + AC &= 010000 ; + i7413 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7615 (VOID) /* CLA ASR */ +{ + AC &= 010000 ; + i7415 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7617 (VOID) /* CLA LSR */ +{ + AC &= 010000 ; + i7417 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7621 (VOID) /* CLA MQL */ +{ + AC &= 010000 ; + MQ = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7623 (VOID) /* CLA MQL SCL */ +{ + AC &= 010000 ; + MQ = 0 ; + i7403 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7625 (VOID) /* CLA MQL MUY */ +{ + AC &= 010000 ; + MQ = 0 ; + i7405 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7627 (VOID) /* CLA MQL DVI */ +{ + AC &= 010000 ; + MQ = 0 ; + i7407 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7631 (VOID) /* CLA MQL NMI */ +{ + AC &= 010000 ; + MQ = 0 ; + i7411 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7633 (VOID) /* CLA MQL SHL */ +{ + AC &= 010000 ; + MQ = 0 ; + i7413 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7635 (VOID) /* CLA MQL ASR */ +{ + AC &= 010000 ; + MQ = 0 ; + i7415 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7637 (VOID) /* CLA MQL LSR */ +{ + AC &= 010000 ; + MQ = 0 ; + i7417 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7641 (VOID) /* CLA SCA */ +{ + AC = (AC & 010000) | SC ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7643 (VOID) /* A: CLA SCA SCL */ +{ /* B: CLA DAD */ + AC &= 010000 ; + i7443 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7645 (VOID) /* A: CLA SCA MUY */ +{ /* B: CLA DST */ + AC &= 010000 ; + i7445 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7647 (VOID) /* A: CLA SCA DVI */ +{ /* B: CLA SWBA (SWBA ignored) */ + AC &= 010000 ; + if (EAE == 'B') { + AC |= SC; + i7407 (); + } else + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7651 (VOID) /* A: CLA SCA NMI */ +{ /* B: CLA DPSZ */ + AC &= 010000 ; + i7451 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7653 (VOID) /* A: CLA SCA SHL */ +{ /* B: CLA DPIC- (7453) */ + AC &= 010000 ; + i7453 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7655 (VOID) /* A: CLA SCA ASR */ +{ /* B: CLA DCM- (7455) */ + AC &= 010000 ; + i7455 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7657 (VOID) /* A: CLA SCA LSR */ +{ /* B: CLA SAM */ + AC &= 010000 ; + i7457 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7661 (VOID) /* CLA MQL SCA */ +{ + AC = (AC & 010000) | SC ; + MQ = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7663 (VOID) /* A: CLA MQL SCA SCL */ +{ /* B: CLA MQL DAD (DLD) */ + AC &= 010000 ; + MQ = 0 ; + i7443 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7665 (VOID) /* A: CLA MQL SCA MUY */ +{ /* B: CLA MQL DST (DDZ) */ + AC &= 010000 ; + MQ = 0 ; + i7445 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7667 (VOID) /* A: CLA MQL SCA DVI */ +{ /* B: CLA MQL SWBA (SWBA ignored) */ + AC &= 010000 ; + MQ = 0 ; + if (EAE == 'A') { + AC |= SC; + i7407 (); + } else + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7671 (VOID) /* A: CLA MQL SCA NMI */ +{ /* B: CLA MQL DPSZ */ + AC &= 010000 ; + MQ = 0 ; + i7451 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7673 (VOID) /* A: CLA MQL SCA SHL */ +{ /* B: CLA MQL DPIC- (7453) */ + AC &= 010000 ; + MQ = 0 ; + i7453 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7675 (VOID) /* A: CLA MQL SCA ASR */ +{ /* B: CLA MQL DCM- (7455) */ + AC &= 010000; + MQ = 0; + i7455 (); +} +/* -------------------------------------------------------------------- */ +VOID i7677 (VOID) /* A: CLA MQL SCA LSR */ +{ /* B: CLA MQL SAM */ + AC &= 010000 ; + MQ = 0 ; + i7457 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7701 (VOID) /* CLA MQA */ +{ + AC = (AC & 010000) | MQ ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7703 (VOID) /* CLA MQA SCL */ +{ + AC = (AC & 010000) | MQ ; + i7403 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7705 (VOID) /* CLA MQA MUY */ +{ + AC = (AC & 010000) | MQ ; + i7405 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7707 (VOID) /* CLA MQA DVI */ +{ + AC = (AC & 010000) | MQ ; + i7407 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7711 (VOID) /* CLA MQA NMI */ +{ + AC = (AC & 010000) | MQ ; + i7411 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7713 (VOID) /* CLA MQA SHL */ +{ + AC = (AC & 010000) | MQ ; + i7413 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7715 (VOID) /* CLA MQA ASR */ +{ + AC = (AC & 010000) | MQ ; + i7415 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7717 (VOID) /* CLA MQA LSR */ +{ + AC = (AC & 010000) | MQ ; + i7417 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7721 (VOID) /* CLA SWP */ +{ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7723 (VOID) /* CLA SWP SCL */ +{ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + i7403 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7725 (VOID) /* CLA SWP MUY */ +{ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + i7405 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7727 (VOID) /* CLA SWP DVI */ +{ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + i7407 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7731 (VOID) /* CLA SWP NMI */ +{ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + i7411 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7733 (VOID) /* CLA SWP SHL */ +{ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + i7413 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7735 (VOID) /* CLA SWP ASR */ +{ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + i7415 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7737 (VOID) /* CLA SWP LSR */ +{ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + i7417 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7741 (VOID) /* CLA MQA SCA */ +{ + AC = (AC & 010000) | MQ | SC ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7743 (VOID) /* A: CLA MQA SCA SCL */ +{ /* B: CLA MQA DAD */ + AC = (AC & 010000) | MQ ; + i7443 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7745 (VOID) /* A: CLA MQA SCA MUY */ +{ /* B: CLA MQA DST */ + AC = (AC & 010000) | MQ ; + i7445 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7747 (VOID) /* A: CLA MQA SCA DVI */ +{ /* B: CLA MQA SWBA (SWBA ignored) */ + AC = (AC & 010000) | MQ ; + if (EAE == 'A') { + AC |= SC; + i7407 (); + } else + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7751 (VOID) /* A: CLA MQA SCA NMI */ +{ /* B: CLA MQA DPSZ */ + AC = (AC & 010000) | MQ ; + i7451 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7753 (VOID) /* A: CLA MQA SCA SHL */ +{ /* B: CLA MQA DPIC- (7453) */ + AC = (AC & 010000) | MQ ; + i7453 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7755 (VOID) /* A: CLA MQA SCA ASR */ +{ /* B: CLA MQA DCM- (7455) */ + AC = (AC & 010000) | MQ ; + i7455 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7757 (VOID) /* A: CLA MQA SCA LSR */ +{ /* B: CLA MQA SAM */ + AC = (AC & 010000) | MQ ; + i7457 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7761 (VOID) /* CLA SWP SCA */ +{ + AC = (AC & 010000) | MQ | SC ; + MQ = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7763 (VOID) /* A: CLA SWP SCA SCL */ +{ /* B: CLA DAD */ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + i7443 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7765 (VOID) /* A: CLA SWP SCA MUY */ +{ /* B: CLA DST */ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + i7445 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7767 (VOID) /* A: CLA SWP SCA DVI */ +{ /* B: CLA SWP SWBA (SWBA ignored) */ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + if (EAE == 'A') { + AC |= SC; + i7407 (); + } else + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7771 (VOID) /* CLA SWP DPSZ */ +{ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + i7451 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7773 (VOID) /* A: CLA SWP SCA SHL */ +{ /* B: CLA DPIC */ + AC &= 010000 ; + if (EAE == 'A') + { + AC |= MQ ; + MQ = 0 ; + i7453 () ; + } + else + i7573 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7775 (VOID) /* A: CLA SWP SCA ASR */ +{ /* B: CLA DCM */ + AC &= 010000 ; + i7575 () ; +} +/* -------------------------------------------------------------------- */ +VOID i7777 (VOID) /* A: CLA SWP SCA LSR */ +{ /* B: CLA SWP SAM */ + AC = (AC & 010000) | MQ ; + MQ = 0 ; + i7457 () ; +} +/* -------------------------------------------------------------------- */ diff --git a/Emulation/eae.h b/Emulation/eae.h new file mode 100644 index 0000000..1d4e497 --- /dev/null +++ b/Emulation/eae.h @@ -0,0 +1,171 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * eae.h - Interface for the EAE instructions code for the PDP-8/E + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +/* + * EMUL-8: a pdp8e emulator. + * + * Author: + * Bill Haygood + * 41832 Ernest Road + * Loon Lake, WA 99148-9607 + * Internet: billh@comtch.iea.com + * Voice/AnsMach/FAX \ + * or 509-233-2555 + * Cellular/Pager / + * + * Copyright 1992, 1993, 1994 by the author with all rights reserved. + * + * Include file for Operate microinstruction (OPR) module + * to handle EAE instructions. + */ +/* -------------------------------------------------------------------- */ +extern void i7401 (void) ; /* NOP Grp III */ +extern void i7403 (void) ; +extern void i7405 (void) ; /* MUY */ +extern void i7407 (void) ; /* DVI */ +extern void i7411 (void) ; /* NMI */ +extern void i7413 (void) ; /* SHL */ +extern void i7415 (void) ; /* ASR */ +extern void i7417 (void) ; /* LSR */ +extern void i7421 (void) ; /* MQL */ +extern void i7423 (void) ; /* MQL SCL */ +extern void i7425 (void) ; /* MQL MUY */ +extern void i7427 (void) ; /* MQL DVI */ +extern void i7431 (void) ; /* SWAB */ +extern void i7433 (void) ; /* MQL SHL */ +extern void i7435 (void) ; /* MQL ASR */ +extern void i7437 (void) ; /* MQL LSR */ +extern void i7441 (void) ; /* SCA */ +extern void i7443 (void) ; +extern void i7445 (void) ; +extern void i7447 (void) ; /* SWBA */ +extern void i7451 (void) ; +extern unsigned s7451 (void) ; /* (skip test) */ +extern void i7453 (void) ; +extern void i7455 (void) ; +extern void i7457 (void) ; +extern void i7461 (void) ; /* MQL SCA */ +extern void i7463 (void) ; /* A: MQL SCA SCL */ +extern void i7465 (void) ; /* A: MQL SCA MUY */ +extern void i7467 (void) ; /* MQL SWBA */ +extern void i7471 (void) ; /* A: MQL SCA NMI */ +extern void i7473 (void) ; /* A: MQL SCA SHL */ +extern void i7475 (void) ; /* A: MQL SCA ASR */ +extern void i7477 (void) ; /* A: MQL SCA LSR */ +extern void i7501 (void) ; /* MQA */ +extern void i7503 (void) ; /* A: MQA SCL */ +extern void i7505 (void) ; /* MQA MUY */ +extern void i7507 (void) ; /* MQA DVI */ +extern void i7511 (void) ; /* MQA NMI */ +extern void i7513 (void) ; /* MQA SHL */ +extern void i7515 (void) ; /* MQA ASR */ +extern void i7517 (void) ; /* MQA LSR */ +extern void i7521 (void) ; /* SWP */ +extern void i7523 (void) ; /* A: SWP SCL */ +extern void i7525 (void) ; /* SWP MUY */ +extern void i7527 (void) ; /* SWP DVI */ +extern void i7531 (void) ; /* SWP NMI */ +extern void i7533 (void) ; /* SWP SHL */ +extern void i7535 (void) ; /* SWP ASR */ +extern void i7537 (void) ; /* SWP LSR */ +extern void i7541 (void) ; /* MQA SCA */ +extern void i7543 (void) ; /* A: MQA SCA SCL */ +extern void i7545 (void) ; /* A: MQA SCA MUY */ +extern void i7547 (void) ; /* A: MQA SWBA */ +extern void i7551 (void) ; /* A: MQA SCA NMI */ +extern void i7553 (void) ; /* A: MQA SCA SHL */ +extern void i7555 (void) ; /* A: MQA SCA ASR */ +extern void i7557 (void) ; /* A: MQA SCA LSR */ +extern void i7561 (void) ; /* SWP SCA */ +extern void i7563 (void) ; /* A: SWP SCA SCL */ +extern void i7565 (void) ; /* A: SWP SCA MUY */ +extern void i7567 (void) ; /* SWP SWBA */ +extern void i7571 (void) ; /* A: SWP SCA NMI */ +extern void i7573 (void) ; /* A: SWP SCA SHL */ +extern void i7575 (void) ; +extern void i7577 (void) ; /* A: SWP SCA LSR */ +extern void i7601 (void) ; /* CLA Grp III */ +extern void i7603 (void) ; /* CLA SCA */ +extern void i7605 (void) ; /* CLA MUY */ +extern void i7607 (void) ; /* CLA DVI */ +extern void i7611 (void) ; /* CLA NMI */ +extern void i7613 (void) ; /* CLA SHL */ +extern void i7615 (void) ; /* CLA ASR */ +extern void i7617 (void) ; /* CLA LSR */ +extern void i7621 (void) ; /* CLA MQL */ +extern void i7623 (void) ; /* CLA MQL SCL */ +extern void i7625 (void) ; /* CLA MQL MUY */ +extern void i7627 (void) ; /* CLA MQL DVI */ +extern void i7631 (void) ; /* CLA MQL NMI */ +extern void i7633 (void) ; /* CLA MQL SHL */ +extern void i7635 (void) ; /* CLA MQL ASR */ +extern void i7637 (void) ; /* CLA MQL LSR */ +extern void i7641 (void) ; /* CLA SCA */ +extern void i7643 (void) ; /* A: CLA SCA SCL */ +extern void i7645 (void) ; /* A: CLA SCA MUY */ +extern void i7647 (void) ; /* CLA SWBA */ +extern void i7651 (void) ; /* A: CLA SCA NMI */ +extern void i7653 (void) ; /* A: CLA SCA SHL */ +extern void i7655 (void) ; /* A: CLA SCA ASR */ +extern void i7657 (void) ; /* A: CLA SCA LSR */ +extern void i7661 (void) ; /* CLA MQL SCA */ +extern void i7663 (void) ; /* A: CLA MQL SCA SCL */ +extern void i7665 (void) ; /* A: CLA MQL SCA MUY */ +extern void i7667 (void) ; /* CLA MQL SWBA */ +extern void i7671 (void) ; /* A: CLA MQL SCA NMI */ +extern void i7673 (void) ; /* A: CLA MQL SCA SHL */ +extern void i7675 (void) ; /* A: CLA MQL SCA ASR */ +extern void i7677 (void) ; /* A: CLA MQL SCA LSR */ +extern void i7701 (void) ; /* CLA MQA */ +extern void i7703 (void) ; /* CLA MQA SCL */ +extern void i7705 (void) ; /* CLA MQA MUY */ +extern void i7707 (void) ; /* CLA MQA DVI */ +extern void i7711 (void) ; /* CLA MQA NMI */ +extern void i7713 (void) ; /* CLA MQA SHL */ +extern void i7715 (void) ; /* CLA MQA ASR */ +extern void i7717 (void) ; /* CLA MQA LSR */ +extern void i7721 (void) ; /* CLA SWP */ +extern void i7723 (void) ; /* CLA SWP SCL */ +extern void i7725 (void) ; /* CLA SWP MUY */ +extern void i7727 (void) ; /* CLA SWP DVI */ +extern void i7731 (void) ; /* CLA SWP NMI */ +extern void i7733 (void) ; /* CLA SWP SHL */ +extern void i7735 (void) ; /* CLA SWP ASR */ +extern void i7737 (void) ; /* CLA SWP LSR */ +extern void i7741 (void) ; /* CLA MQA SCA */ +extern void i7743 (void) ; /* A: CLA MQA SCA SCL */ +extern void i7745 (void) ; /* A: CLA MQA SCA MUY */ +extern void i7747 (void) ; /* A: CLA MQA SWBA */ +extern void i7751 (void) ; /* A: CLA MQA SCA NMI */ +extern void i7753 (void) ; /* A: CLA MQA SCA SHL */ +extern void i7755 (void) ; /* A: CLA MQA SCA ASR */ +extern void i7757 (void) ; /* A: CLA MQA SCA LSR */ +extern void i7761 (void) ; /* CLA SWP SCA */ +extern void i7763 (void) ; /* A: CLA SWP SCA SCL */ +extern void i7765 (void) ; /* A: CLA SWP SCA MUY */ +extern void i7767 (void) ; /* A: CLA SWP SCA DVI */ +extern void i7771 (void) ; /* CLA SWP DPSZ */ +extern void i7773 (void) ; /* A: CLA SWP SCA SHL */ +extern void i7775 (void) ; +extern void i7777 (void) ; /* A: CLA SWP SCA LSR */ +/* -------------------------------------------------------------------- */ diff --git a/Emulation/iot.c b/Emulation/iot.c new file mode 100644 index 0000000..b2b8ba0 --- /dev/null +++ b/Emulation/iot.c @@ -0,0 +1,576 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * iot.c - IOT instructions code for the PDP-8/E + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +/* + * EMUL-8: a pdp8e emulator. + * + * Author: + * Bill Haygood + * 41832 Ernest Road + * Loon Lake, WA 99148-9607 + * Internet: billh@comtch.iea.com + * Voice/AnsMach/FAX \ + * or 509-233-2555 + * Cellular/Pager / + * + * Copyright 1992, 1993, 1994 by the author with all rights reserved. + * + * Input / Output Transfer (IOT) module. + */ + + +#import + +#define USE_PDP8_REGISTERS_DIRECTLY 1 + +#include "PDP8.h" +#include "iot.h" +#include "pdp8defines.h" +#include "PluginAPI.h" // for CAF for I/O devices + + +/* -------------------------------------------------------------------- */ +VOID iuser (VOID) +{ + io_flags |= userFLAG; + tsc8.eriot = INST; + tsc8.ecdf = ((tsc8.eriot & 07707) == 06201); + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6000 (VOID) /* SKON 6000 */ +{ + if (int_ena) + ++PC ; + int_ena = delay = false ; + EXECUTION_TIME (12); +} +unsigned s6000 (VOID) /* SKON 6000 */ +{ + return (int_ena); +} +/* -------------------------------------------------------------------- */ +VOID i6001 (VOID) /* ION 6001 */ +{ + int_ena = delay = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6002 (VOID) /* IOF 6002 */ +{ + int_ena = delay = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6003 (VOID) /* SRQ 6003 */ +{ + if (io_flags & int_mask) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s6003 (VOID) /* SRQ 6003 */ +{ + return (io_flags & int_mask); +} +/* -------------------------------------------------------------------- */ +VOID i6004 (VOID) /* GTF 6004 */ +{ + AC = (AC & 010000) | ((AC & 010000) >> 1) /* Save the LINK */ + | ((EAE == 'B' && GTF) ? BIT1 : 0) /* Save the GTF */ + | ((io_flags & int_mask) ? BIT2 : 0) /* Save Interrupt Req */ + /* | (int_inh << 8) */ /* Save Interrupt Inh */ + /* AC(3) should become the inhibit flag, but the PDP-8/E + hardware does not implement this - detected by the + Extended Memory Control and Timeshare Test MAINDEC-8E-D1HA */ + | (int_ena << 7) /* Save Interrupt Ena */ + | SF ; /* Save UF, IF, DF */ + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6005 (VOID) /* RTF 6005 */ +{ + AC = (AC & 07777) | ((AC & BIT0) << 1) ; /* Restore LINK */ + if (EAE == 'B') + GTF = (AC & BIT1) >> 10 ; /* Restore GTF */ + SF = AC & 0177 ; /* Restore SF */ + UB = (AC & BIT5) << 6; /* Restore UB */ + W_IB = IB = (AC & 070) << 9 ; /* Restore IB */ + if (IB >= hw.memsize) + W_IB = 0100000; + W_DF = DF = (AC & 07) << 12 ; /* Restore DF */ + if (DF >= hw.memsize) + W_DF = 0100000; + int_ena = delay = int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6006 (VOID) /* SGT 6006 */ +{ + if (EAE == 'B' && GTF) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s6006 (VOID) /* SGT 6006 */ +{ + return (EAE == 'B' && GTF); +} +/* -------------------------------------------------------------------- */ +VOID i6007 (VOID) /* CAF 6007 */ +{ + AC = 0 ; /* Clear pdp8 registers */ + int_ena = int_inh = delay = false ; + io_flags = false ; /* no flags, but serial IE's = 1! */ + EAE = 'A' ; /* Set EAE mode A */ + GTF = false ; + int i; + for (i = 0; i < PDP8_IOADDRS; i++) { + if (pdp8->_state.pluginPointer[i]) + [(PDP8Plugin *) pdp8->_state.pluginPointer[i] CAF:i]; + } + +#ifdef FPP + if (FPP) + { + io_flags &= ~fppFLAG ; /* Clear FPP Int flag */ + fpp_mode = LEAV ; /* Interleaved mode */ + fpp_run = false ; /* Stop the FPP */ + fpp_pause = false ; /* ditto */ + fpp_data = FP ; /* Enable FP mode */ + fpp_stat = 0 ; /* Clear FPP status */ + } + rx5command = 0 ; /* Clear RX50 regs */ + rx5curaddr = 0 ; + rx5block = 0 ; + rx5status = 0 ; + rx5unit = 0 ; + rx5lock = false ; +#endif + + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +/* + * Field change IOTs. + */ +/* -------------------------------------------------------------------- */ +VOID i6201 (VOID) /* CDF 0 6201 */ +{ + W_DF = DF = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6202 (VOID) /* CIF 0 6202 */ +{ + W_IB = IB = 0 ; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6203 (VOID) /* CIF CDF 0 6203 */ +{ + W_IB = IB = W_DF = DF = 0 ; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +/* + * Clear User Interrupt. + */ +/* -------------------------------------------------------------------- */ +VOID i6204 (VOID) /* CINT 6204 */ +{ + io_flags &= ~userFLAG ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6211 (VOID) /* CDF 1 6211 */ +{ + if ((W_DF = DF = 010000) >= hw.memsize) + W_DF = 0100000; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6212 (VOID) /* CIF 1 6212 */ +{ + if ((W_IB = IB = 010000) >= hw.memsize) + W_IB = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6213 (VOID) /* CIF CDF 1 6213 */ +{ + if ((W_IB = IB = W_DF = DF = 010000) >= hw.memsize) + W_IB = W_DF = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6214 (VOID) /* RDF 6214 */ +{ + AC |= DF >> 9 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6221 (VOID) /* CDF 2 6221 */ +{ + if ((W_DF = DF = 020000) >= hw.memsize) + W_DF = 0100000; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6222 (VOID) /* CIF 2 6222 */ +{ + if ((W_IB = IB = 020000) >= hw.memsize) + W_IB = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6223 (VOID) /* CIF CDF 2 6223 */ +{ + if ((W_IB = IB = W_DF = DF = 020000) >= hw.memsize) + W_IB = W_DF = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6224 (VOID) /* RIF 6224 */ +{ + AC |= IF >> 9 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6231 (VOID) /* CDF 3 6231 */ +{ + if ((W_DF = DF = 030000) >= hw.memsize) + W_DF = 0100000; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6232 (VOID) /* CIF 3 6232 */ +{ + if ((W_IB = IB = 030000) >= hw.memsize) + W_IB = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6233 (VOID) /* CIF CDF 3 6233 */ +{ + if ((W_IB = IB = W_DF = DF = 030000) >= hw.memsize) + W_IB = W_DF = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6234 (VOID) /* RIB 6234 */ +{ + AC |= SF ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6241 (VOID) /* CDF 4 6241 */ +{ + if ((W_DF = DF = 040000) >= hw.memsize) + W_DF = 0100000; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6242 (VOID) /* CIF 4 6242 */ +{ + if ((W_IB = IB = 040000) >= hw.memsize) + W_IB = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6243 (VOID) /* CIF CDF 4 6243 */ +{ + if ((W_IB = IB = W_DF = DF = 040000) >= hw.memsize) + W_IB = W_DF = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6244 (VOID) /* RMF 6244 */ +{ + UB = (SF & BIT5) << 6 ; + if ((W_IB = IB = (SF & 070) << 9) >= hw.memsize) + W_IB = 0100000; + if ((W_DF = DF = (SF & 07) << 12) >= hw.memsize) + W_DF = 0100000; + int_inh = true; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6251 (VOID) /* CDF 5 6251 */ +{ + if ((W_DF = DF = 050000) >= hw.memsize) + W_DF = 0100000; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6252 (VOID) /* CIF 5 6252 */ +{ + if ((W_IB = IB = 050000) >= hw.memsize) + W_IB = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6253 (VOID) /* CIF CDF 5 6253 */ +{ + if ((W_IB = IB = W_DF = DF = 050000) >= hw.memsize) + W_IB = W_DF = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +/* + * Skip on User Interrupt. + */ +/* -------------------------------------------------------------------- */ +VOID i6254 (VOID) /* SINT 6254 */ +{ + if (io_flags & userFLAG) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s6254 (VOID) /* SINT 6254 */ +{ + return (io_flags & userFLAG); +} +/* -------------------------------------------------------------------- */ +VOID i6261 (VOID) /* CDF 6 6261 */ +{ + if ((W_DF = DF = 060000) >= hw.memsize) + W_DF = 0100000; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6262 (VOID) /* CIF 6 6262 */ +{ + if ((W_IB = IB = 060000) >= hw.memsize) + W_IB = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6263 (VOID) /* CIF CDF 6 6263 */ +{ + if ((W_IB = IB = W_DF = DF = 060000) >= hw.memsize) + W_IB = W_DF = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +/* + * Clear the User Flag. + */ +/* -------------------------------------------------------------------- */ +VOID i6264 (VOID) /* CUF 6264 */ +{ + UB = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6271 (VOID) /* CDF 7 6271 */ +{ + if ((W_DF = DF = 070000) >= hw.memsize) + W_DF = 0100000; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6272 (VOID) /* CIF 7 6272 */ +{ + if ((W_IB = IB = 070000) >= hw.memsize) + W_IB = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i6273 (VOID) /* CIF CDF 7 6273 */ +{ + if ((W_IB = IB = W_DF = DF = 070000) >= hw.memsize) + W_IB = W_DF = 0100000; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +/* + * Set the User Flag. + */ +/* -------------------------------------------------------------------- */ +VOID i6274 (VOID) /* SUF 6274 */ +{ + UB = 1 << 12 ; + int_inh = true ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +/* + * FPP-8/A Floating Point Processor + */ +/* -------------------------------------------------------------------- */ +#ifdef FPP +VOID i6551 (VOID) /* FPINT 6551 */ +{ + if (io_flags & fppFLAG) + ++PC ; + EXECUTION_TIME (12); +} +#error "s6551 missing" +#endif +/* -------------------------------------------------------------------- */ +#ifdef FPP +VOID i6552 (VOID) /* FPICL 6552 */ +{ + io_flags &= ~fppFLAG ; /* Clear FPP Int flag */ + fpp_mode = LEAV ; /* Interleaved mode */ + fpp_run = false ; /* Stop the FPP */ + fpp_pause = false ; /* ditto */ + fpp_data = FP ; /* Enable FP mode */ + fpp_stat = 0 ; /* Clear FPP status */ + EXECUTION_TIME (12); +} +#endif +/* -------------------------------------------------------------------- */ +#ifdef FPP +VOID i6553 (VOID) /* FPCOM 6553 */ +{ + if (fpp_run == false && !(io_flags & fppFLAG)) + { + fpp_command = (AC & 07777) | 0100000 ; /* Insure non-zero */ + /* See FPEP below */ + fpp_stat &= ~(BIT0 | BIT8 | BIT9) ; /* Set FPP mode FP */ + if (fpp_command & BIT0) + { + fpp_stat |= BIT0 ; /* Set DP in status */ + fpp_data = DP ; /* Set DP mode */ + } + int_mask &= ~fppFLAG ; /* Clear interrupts */ + if (fpp_command & BIT3) /* Enable interrupts ? */ + int_mask |= fppFLAG ; /* Yes */ + fpp_mode = LEAV ; /* Set interleave mode */ + if (fpp_command & BIT8) /* Lockout mode ? */ + { + fpp_mode = LOCK ; /* Yes */ + fpp_stat |= BIT8 ; + } + } + EXECUTION_TIME (12); +} +#endif +/* -------------------------------------------------------------------- */ +#ifdef FPP +VOID i6554 (VOID) /* FPHLT 6554 */ +{ + if (fpp_run) + { + fpp_pause = true ; + fpp_stat |= BIT2 ; + if (fpp_stat & BIT10) /* If FPP paused, */ + fpp_pc = --fpp_pc & 077777 ; /* decrement FPC */ + } + EXECUTION_TIME (12); +} +#endif +/* -------------------------------------------------------------------- */ +#ifdef FPP +VOID i6555 (VOID) /* FPST 6555 */ +{ + if (fpp_run == false && !(io_flags & fppFLAG)) + { + fpp_aptp = ((fpp_command & 07) << 12) | (AC & 07777) ; + fpp_pc = ((*(base + fpp_aptp) & 07) << 12) + + (*(base + fpp_aptp + 1)) ; + fpp_opadd = fpp_pc ; /* OPADD (2-5) */ + if (!(fpp_command & BIT5)) + fpp_x0 = ((*(base + fpp_aptp) & 070) << 9) + + (*(base + fpp_aptp + 2)) ; + if (!(fpp_command & BIT6)) + fpp_br = ((*(base + fpp_aptp) & 0700) << 6) + + (*(base + fpp_aptp + 3)) ; + if (!(fpp_command & BIT7)) + { + fpp_ac [0] = *(base + fpp_aptp + 5) ; + fpp_ac [1] = *(base + fpp_aptp + 6) ; + fpp_ac [2] = *(base + fpp_aptp + 7) ; + if (fpp_data == EP) + { + fpp_ac [3] = *(base + fpp_aptp + 8) ; + fpp_ac [4] = *(base + fpp_aptp + 9) ; + fpp_ac [5] = *(base + fpp_aptp + 10) ; + } + } + fpp_stat &= ~BIT10 ; /* Clear FPAUSE in stat */ + fpp_run = true ; + fpp_stat |= BIT11 ; /* Set RUN in status */ + ++PC ; + } + EXECUTION_TIME (12); +} +#error "s6555 missing" +#endif +/* -------------------------------------------------------------------- */ +#ifdef FPP +VOID i6556 (VOID) /* FPRST 6556 */ +{ + AC = (AC & 010000) | fpp_stat ; + EXECUTION_TIME (12); +} +#endif +/* -------------------------------------------------------------------- */ +#ifdef FPP +VOID i6557 (VOID) /* FPIST 6557 */ +{ + if (io_flags & fppFLAG) + { + ++PC ; + AC = (AC & 010000) | fpp_stat ; + fpp_stat = 0 ; + io_flags &= ~fppFLAG ; + } + EXECUTION_TIME (12); +} +#error "s6557 missing" +#endif +/* -------------------------------------------------------------------- */ +#ifdef FPP +VOID i6567 (VOID) /* FPEP 6567 */ +{ + if ((AC & BIT0) && fpp_run == false && fpp_command) + { + fpp_stat &= ~BIT0 ; /* Remove DP mode */ + if (fpp_command & 0100000) + { + fpp_stat |= 4 ; /* Set EP in status */ + fpp_data = EP ; /* Set EP mode */ + fpp_command &= 0107777 ; + } + } + AC &= 010000 ; + EXECUTION_TIME (12); +} +#endif diff --git a/Emulation/iot.h b/Emulation/iot.h new file mode 100644 index 0000000..82a8763 --- /dev/null +++ b/Emulation/iot.h @@ -0,0 +1,109 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * iot.c - Interface for the IOT instructions code for the PDP-8/E + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +/* + * EMUL-8: a pdp8e emulator. + * + * Author: + * Bill Haygood + * 41832 Ernest Road + * Loon Lake, WA 99148-9607 + * Internet: billh@comtch.iea.com + * Voice/AnsMach/FAX \ + * or 509-233-2555 + * Cellular/Pager / + * + * Copyright 1992, 1993, 1994 by the author with all rights reserved. + * + * Include file for Input / Output Transfer (IOT) module. + */ +/* -------------------------------------------------------------------- */ +/* + * IOT Instructions + */ +/* -------------------------------------------------------------------- */ +extern void iuser (void) ; +extern void i6000 (void) ; /* SKON 6000 */ +extern unsigned s6000 (void) ; /* SKON (skip test) */ +extern void i6001 (void) ; /* ION 6001 */ +extern void i6002 (void) ; /* IOF 6002 */ +extern void i6003 (void) ; /* SRQ 6003 */ +extern unsigned s6003 (void) ; /* SRQ (skip test) */ +extern void i6004 (void) ; /* GTF 6004 */ +extern void i6005 (void) ; /* RTF 6005 */ +extern void i6006 (void) ; /* SGT 6006 */ +extern unsigned s6006 (void) ; /* SGT (skip test) */ +extern void i6007 (void) ; /* CAF 6007 */ +extern void i6201 (void) ; /* CDF 0 6201 */ +extern void i6202 (void) ; /* CIF 0 6202 */ +extern void i6203 (void) ; /* CIF CDF 0 6203 */ +extern void i6204 (void) ; /* CINT 6204 */ +extern void i6211 (void) ; /* CDF 1 6211 */ +extern void i6212 (void) ; /* CIF 1 6212 */ +extern void i6213 (void) ; /* CIF CDF 1 6213 */ +extern void i6214 (void) ; /* RDF 6214 */ +extern void i6221 (void) ; /* CDF 2 6221 */ +extern void i6222 (void) ; /* CIF 2 6222 */ +extern void i6223 (void) ; /* CIF CDF 2 6223 */ +extern void i6224 (void) ; /* RIF 6224 */ +extern void i6231 (void) ; /* CDF 3 6231 */ +extern void i6232 (void) ; /* CIF 3 6232 */ +extern void i6233 (void) ; /* CIF CDF 3 6233 */ +extern void i6234 (void) ; /* RIB 6234 */ +extern void i6241 (void) ; /* CDF 4 6241 */ +extern void i6242 (void) ; /* CIF 4 6242 */ +extern void i6243 (void) ; /* CIF CDF 4 6243 */ +extern void i6244 (void) ; /* RMF 6244 */ +extern void i6251 (void) ; /* CDF 5 6251 */ +extern void i6252 (void) ; /* CIF 5 6252 */ +extern void i6253 (void) ; /* CIF CDF 5 6253 */ +extern void i6254 (void) ; /* SINT 6254 */ +extern unsigned s6254 (void) ; /* SINT (skip test) */ +extern void i6261 (void) ; /* CDF 6 6261 */ +extern void i6262 (void) ; /* CIF 6 6262 */ +extern void i6263 (void) ; /* CIF CDF 6 6263 */ +extern void i6264 (void) ; /* CUF 6264 */ +extern void i6271 (void) ; /* CDF 7 6271 */ +extern void i6272 (void) ; /* CIF 7 6272 */ +extern void i6273 (void) ; /* CIF CDF 7 6273 */ +extern void i6274 (void) ; /* SUF 6274 */ +extern void i6551 (void) ; /* FPINT 6551 */ +extern unsigned s6551 (void) ; /* FPINT (skip test) */ +extern void i6552 (void) ; /* FPICL 6552 */ +extern void i6553 (void) ; /* FPCOM 6553 */ +extern void i6554 (void) ; /* FPHLT 6554 */ +extern void i6555 (void) ; /* FPST 6555 */ +extern unsigned s6555 (void) ; /* FPST (skip test) */ +extern void i6556 (void) ; /* FPRST 6556 */ +extern void i6557 (void) ; /* FPIST 6557 */ +extern unsigned s6557 (void) ; /* FPIST (skip test) */ +extern void i6567 (void) ; /* FPEP 6567 */ +extern void rxsel (void) ; /* SEL 6750 */ +extern void rxlcd (void) ; /* LCD 6751 */ +extern void rxxdr (void) ; /* XDR 6752 */ +extern void rxstr (void) ; /* STR 6753 */ +extern void rxser (void) ; /* SER 6754 */ +extern void rxsdn (void) ; /* SDN 6755 */ +extern void rxintr (void) ; /* INTR 6756 */ +extern void rxinit (void) ; /* INIT 6757 */ +/* -------------------------------------------------------------------- */ diff --git a/Emulation/itab.c b/Emulation/itab.c new file mode 100644 index 0000000..1eed27c --- /dev/null +++ b/Emulation/itab.c @@ -0,0 +1,1095 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * itab.c - The PDP-8/E instruction table + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +/* + * EMUL-8: a pdp8e emulator. + * + * Author: + * Bill Haygood + * 41832 Ernest Road + * Loon Lake, WA 99148-9607 + * Internet: billh@comtch.iea.com + * Voice/AnsMach/FAX \ + * or 509-233-2555 + * Cellular/Pager / + * + * Copyright 1992, 1993, 1994 by the author with all rights reserved. + * + * Instruction pointer table and initialization. + */ + + +#include "itab.h" +#include "pdp8defines.h" +#include "mri.h" +#include "iot.h" +#include "opr.h" +#include "eae.h" + + +void (*itab[])(void) = { +/* + * Normal mode instruction vector table. + */ + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, /* 0000 */ + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, /* 0100 */ + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, /* 0200 */ + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, /* 0300 */ + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, /* 0400 */ + i0410, i0410, i0410, i0410, i0410, i0410, i0410, i0410, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, /* 0500 */ + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, /* 0600 */ + i0610, i0610, i0610, i0610, i0610, i0610, i0610, i0610, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, /* 0700 */ + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, /* 1000 */ + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, /* 1100 */ + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, /* 1200 */ + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, /* 1300 */ + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, /* 1400 */ + i1410, i1410, i1410, i1410, i1410, i1410, i1410, i1410, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, /* 1500 */ + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, /* 1600 */ + i1610, i1610, i1610, i1610, i1610, i1610, i1610, i1610, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, /* 1700 */ + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, /* 2000 */ + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, /* 2100 */ + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, /* 2200 */ + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, /* 2300 */ + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, /* 2400 */ + i2410, i2410, i2410, i2410, i2410, i2410, i2410, i2410, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, /* 2500 */ + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, /* 2600 */ + i2610, i2610, i2610, i2610, i2610, i2610, i2610, i2610, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, /* 2700 */ + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, /* 3000 */ + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, /* 3100 */ + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, /* 3200 */ + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, /* 3300 */ + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, /* 3400 */ + i3410, i3410, i3410, i3410, i3410, i3410, i3410, i3410, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, /* 3500 */ + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, /* 3600 */ + i3610, i3610, i3610, i3610, i3610, i3610, i3610, i3610, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, /* 3700 */ + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, /* 4000 */ + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, /* 4100 */ + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4000, i4000, i4000, i4000, i4000, i4000, i4000, i4000, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, /* 4200 */ + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, /* 4300 */ + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4200, i4200, i4200, i4200, i4200, i4200, i4200, i4200, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, /* 4400 */ + i4410, i4410, i4410, i4410, i4410, i4410, i4410, i4410, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, /* 4500 */ + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4400, i4400, i4400, i4400, i4400, i4400, i4400, i4400, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, /* 4600 */ + i4610, i4610, i4610, i4610, i4610, i4610, i4610, i4610, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, /* 4700 */ + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + i4600, i4600, i4600, i4600, i4600, i4600, i4600, i4600, + + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, /* 5000 */ + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, /* 5100 */ + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5000, i5000, i5000, i5000, i5000, i5000, i5000, i5000, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, /* 5200 */ + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, /* 5300 */ + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5200, i5200, i5200, i5200, i5200, i5200, i5200, i5200, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, /* 5400 */ + i5410, i5410, i5410, i5410, i5410, i5410, i5410, i5410, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, /* 5500 */ + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5400, i5400, i5400, i5400, i5400, i5400, i5400, i5400, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, /* 5600 */ + i5610, i5610, i5610, i5610, i5610, i5610, i5610, i5610, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, /* 5700 */ + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + i5600, i5600, i5600, i5600, i5600, i5600, i5600, i5600, + + i6000, i6001, i6002, i6003, i6004, i6005, i6006, i6007, /* 6000 */ + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, /* 6100 */ + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, /* 6200 */ + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, /* 6300 */ + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, /* 6400 */ + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, /* 6500 */ + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, /* 6600 */ + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, /* 6700 */ + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + i7000, i7000, i7000, i7000, i7000, i7000, i7000, i7000, + + i7000, i7001, i7002, i7003, i7004, i7005, i7006, i7007, /* 7000 */ + i7010, i7011, i7012, i7013, i7014, i7015, i7016, i7017, + i7020, i7021, i7022, i7023, i7024, i7025, i7026, i7027, + i7030, i7031, i7032, i7033, i7034, i7035, i7036, i7037, + i7040, i7041, i7042, i7043, i7044, i7045, i7046, i7047, + i7050, i7051, i7052, i7053, i7054, i7055, i7056, i7057, + i7060, i7061, i7062, i7063, i7064, i7065, i7066, i7067, + i7070, i7071, i7072, i7073, i7074, i7075, i7076, i7077, + i7100, i7101, i7102, i7103, i7104, i7105, i7106, i7107, /* 7100 */ + i7110, i7111, i7112, i7113, i7114, i7115, i7116, i7117, + i7120, i7121, i7122, i7123, i7124, i7125, i7126, i7127, + i7130, i7131, i7132, i7133, i7134, i7135, i7136, i7137, + i7140, i7141, i7142, i7143, i7144, i7145, i7146, i7147, + i7150, i7151, i7152, i7153, i7154, i7155, i7156, i7157, + i7160, i7161, i7162, i7163, i7164, i7165, i7166, i7167, + i7170, i7171, i7172, i7173, i7174, i7175, i7176, i7177, + i7200, i7201, i7202, i7203, i7204, i7205, i7206, i7207, /* 7200 */ + i7210, i7211, i7212, i7213, i7214, i7215, i7216, i7217, + i7220, i7221, i7222, i7223, i7224, i7225, i7226, i7227, + i7230, i7231, i7232, i7233, i7234, i7235, i7236, i7237, + i7240, i7241, i7242, i7243, i7244, i7245, i7246, i7247, + i7250, i7251, i7252, i7253, i7254, i7255, i7256, i7257, + i7260, i7261, i7262, i7263, i7264, i7265, i7266, i7267, + i7270, i7271, i7272, i7273, i7274, i7275, i7276, i7277, + i7300, i7301, i7302, i7303, i7304, i7305, i7306, i7307, /* 7300 */ + i7310, i7311, i7312, i7313, i7314, i7315, i7316, i7317, + i7320, i7321, i7322, i7323, i7324, i7325, i7326, i7327, + i7330, i7331, i7332, i7333, i7334, i7335, i7336, i7337, + i7340, i7341, i7342, i7343, i7344, i7345, i7346, i7347, + i7350, i7351, i7352, i7353, i7354, i7355, i7356, i7357, + i7360, i7361, i7362, i7363, i7364, i7365, i7366, i7367, + i7370, i7371, i7372, i7373, i7374, i7375, i7376, i7377, + i7400, i7401, i7402, i7401, i7404, i7401, i7406, i7401, /* 7400 */ + i7410, i7401, i7412, i7401, i7414, i7401, i7416, i7401, + i7420, i7421, i7422, i7421, i7424, i7421, i7426, i7421, + i7430, i7421, i7432, i7421, i7434, i7421, i7436, i7421, + i7440, i7401, i7442, i7401, i7444, i7401, i7446, i7401, + i7450, i7401, i7452, i7401, i7454, i7401, i7456, i7401, + i7460, i7421, i7462, i7421, i7464, i7421, i7466, i7421, + i7470, i7421, i7472, i7421, i7474, i7421, i7476, i7421, + i7500, i7501, i7502, i7501, i7504, i7501, i7506, i7501, /* 7500 */ + i7510, i7501, i7512, i7501, i7514, i7501, i7516, i7501, + i7520, i7521, i7522, i7521, i7524, i7521, i7526, i7521, + i7530, i7521, i7532, i7521, i7534, i7521, i7536, i7521, + i7540, i7501, i7542, i7501, i7544, i7501, i7546, i7501, + i7550, i7501, i7552, i7501, i7554, i7501, i7556, i7501, + i7560, i7521, i7562, i7521, i7564, i7521, i7566, i7521, + i7570, i7521, i7572, i7521, i7574, i7521, i7576, i7521, + i7600, i7601, i7602, i7601, i7604, i7601, i7606, i7601, /* 7600 */ + i7610, i7601, i7612, i7601, i7614, i7601, i7616, i7601, + i7620, i7621, i7622, i7621, i7624, i7621, i7626, i7621, + i7630, i7621, i7632, i7621, i7634, i7621, i7636, i7621, + i7640, i7601, i7642, i7601, i7644, i7601, i7646, i7601, + i7650, i7601, i7652, i7601, i7654, i7601, i7656, i7601, + i7660, i7621, i7662, i7621, i7664, i7621, i7666, i7621, + i7670, i7621, i7672, i7621, i7674, i7621, i7676, i7621, + i7700, i7701, i7702, i7701, i7704, i7701, i7706, i7701, /* 7700 */ + i7710, i7701, i7712, i7701, i7714, i7701, i7716, i7701, + i7720, i7721, i7722, i7721, i7724, i7721, i7726, i7721, + i7730, i7721, i7732, i7721, i7734, i7721, i7736, i7721, + i7740, i7701, i7742, i7701, i7744, i7701, i7746, i7701, + i7750, i7701, i7752, i7701, i7754, i7701, i7756, i7701, + i7760, i7721, i7762, i7721, i7764, i7721, i7766, i7721, + i7770, i7721, i7772, i7721, i7774, i7721, i7776, i7721, +/* + * User mode instruction vector table. + */ + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, /* 0000 */ + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, /* 0100 */ + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0000, i0000, i0000, i0000, i0000, i0000, i0000, i0000, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, /* 0200 */ + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, /* 0300 */ + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0200, i0200, i0200, i0200, i0200, i0200, i0200, i0200, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, /* 0400 */ + i0410, i0410, i0410, i0410, i0410, i0410, i0410, i0410, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, /* 0500 */ + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0400, i0400, i0400, i0400, i0400, i0400, i0400, i0400, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, /* 0600 */ + i0610, i0610, i0610, i0610, i0610, i0610, i0610, i0610, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, /* 0700 */ + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + i0600, i0600, i0600, i0600, i0600, i0600, i0600, i0600, + + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, /* 1000 */ + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, /* 1100 */ + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1000, i1000, i1000, i1000, i1000, i1000, i1000, i1000, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, /* 1200 */ + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, /* 1300 */ + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1200, i1200, i1200, i1200, i1200, i1200, i1200, i1200, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, /* 1400 */ + i1410, i1410, i1410, i1410, i1410, i1410, i1410, i1410, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, /* 1500 */ + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1400, i1400, i1400, i1400, i1400, i1400, i1400, i1400, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, /* 1600 */ + i1610, i1610, i1610, i1610, i1610, i1610, i1610, i1610, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, /* 1700 */ + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + i1600, i1600, i1600, i1600, i1600, i1600, i1600, i1600, + + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, /* 2000 */ + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, /* 2100 */ + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2000, i2000, i2000, i2000, i2000, i2000, i2000, i2000, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, /* 2200 */ + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, /* 2300 */ + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2200, i2200, i2200, i2200, i2200, i2200, i2200, i2200, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, /* 2400 */ + i2410, i2410, i2410, i2410, i2410, i2410, i2410, i2410, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, /* 2500 */ + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2400, i2400, i2400, i2400, i2400, i2400, i2400, i2400, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, /* 2600 */ + i2610, i2610, i2610, i2610, i2610, i2610, i2610, i2610, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, /* 2700 */ + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + i2600, i2600, i2600, i2600, i2600, i2600, i2600, i2600, + + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, /* 3000 */ + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, /* 3100 */ + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3000, i3000, i3000, i3000, i3000, i3000, i3000, i3000, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, /* 3200 */ + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, /* 3300 */ + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3200, i3200, i3200, i3200, i3200, i3200, i3200, i3200, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, /* 3400 */ + i3410, i3410, i3410, i3410, i3410, i3410, i3410, i3410, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, /* 3500 */ + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3400, i3400, i3400, i3400, i3400, i3400, i3400, i3400, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, /* 3600 */ + i3610, i3610, i3610, i3610, i3610, i3610, i3610, i3610, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, /* 3700 */ + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + i3600, i3600, i3600, i3600, i3600, i3600, i3600, i3600, + + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, /* 4000 */ + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, /* 4100 */ + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4000, u4000, u4000, u4000, u4000, u4000, u4000, u4000, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, /* 4200 */ + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, /* 4300 */ + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4200, u4200, u4200, u4200, u4200, u4200, u4200, u4200, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, /* 4400 */ + u4410, u4410, u4410, u4410, u4410, u4410, u4410, u4410, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, /* 4500 */ + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4400, u4400, u4400, u4400, u4400, u4400, u4400, u4400, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, /* 4600 */ + u4610, u4610, u4610, u4610, u4610, u4610, u4610, u4610, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, /* 4700 */ + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + u4600, u4600, u4600, u4600, u4600, u4600, u4600, u4600, + + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, /* 5000 */ + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, /* 5100 */ + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5000, u5000, u5000, u5000, u5000, u5000, u5000, u5000, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, /* 5200 */ + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, /* 5300 */ + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5200, u5200, u5200, u5200, u5200, u5200, u5200, u5200, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, /* 5400 */ + u5410, u5410, u5410, u5410, u5410, u5410, u5410, u5410, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, /* 5500 */ + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5400, u5400, u5400, u5400, u5400, u5400, u5400, u5400, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, /* 5600 */ + u5610, u5610, u5610, u5610, u5610, u5610, u5610, u5610, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, /* 5700 */ + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + u5600, u5600, u5600, u5600, u5600, u5600, u5600, u5600, + + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, /* 6000 */ + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, /* 6100 */ + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, /* 6200 */ + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, /* 6300 */ + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, /* 6400 */ + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, /* 6500 */ + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, /* 6600 */ + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, /* 6700 */ + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + iuser, iuser, iuser, iuser, iuser, iuser, iuser, iuser, + + i7000, i7001, i7002, i7003, i7004, i7005, i7006, i7007, /* 7000 */ + i7010, i7011, i7012, i7013, i7014, i7315, i7316, i7317, + i7020, i7021, i7022, i7023, i7024, i7025, i7026, i7027, + i7030, i7031, i7032, i7033, i7034, i7335, i7336, i7337, + i7040, i7041, i7042, i7043, i7044, i7045, i7046, i7047, + i7050, i7051, i7052, i7053, i7054, i7355, i7356, i7357, + i7060, i7061, i7062, i7063, i7064, i7065, i7066, i7067, + i7070, i7071, i7072, i7073, i7074, i7375, i7376, i7377, + i7100, i7101, i7102, i7103, i7104, i7105, i7106, i7107, /* 7100 */ + i7110, i7111, i7112, i7113, i7114, i7115, i7116, i7117, + i7120, i7121, i7122, i7123, i7124, i7125, i7126, i7127, + i7130, i7131, i7132, i7133, i7134, i7135, i7136, i7137, + i7140, i7141, i7142, i7143, i7144, i7145, i7146, i7147, + i7150, i7151, i7152, i7153, i7154, i7155, i7156, i7157, + i7160, i7161, i7162, i7163, i7164, i7165, i7166, i7167, + i7170, i7171, i7172, i7173, i7174, i7175, i7176, i7177, + i7200, i7201, i7202, i7203, i7204, i7205, i7206, i7207, /* 7200 */ + i7210, i7211, i7212, i7213, i7214, i7215, i7216, i7217, + i7220, i7221, i7222, i7223, i7224, i7225, i7226, i7227, + i7230, i7231, i7232, i7233, i7234, i7235, i7236, i7237, + i7240, i7241, i7242, i7243, i7244, i7245, i7246, i7247, + i7250, i7251, i7252, i7253, i7254, i7255, i7256, i7257, + i7260, i7261, i7262, i7263, i7264, i7265, i7266, i7267, + i7270, i7271, i7272, i7273, i7274, i7275, i7276, i7277, + i7300, i7301, i7302, i7303, i7304, i7305, i7306, i7307, /* 7300 */ + i7310, i7311, i7312, i7313, i7314, i7315, i7316, i7317, + i7320, i7321, i7322, i7323, i7324, i7325, i7326, i7327, + i7330, i7331, i7332, i7333, i7334, i7335, i7336, i7337, + i7340, i7341, i7342, i7343, i7344, i7345, i7346, i7347, + i7350, i7351, i7352, i7353, i7354, i7355, i7356, i7357, + i7360, i7361, i7362, i7363, i7364, i7365, i7366, i7367, + i7370, i7371, i7372, i7373, i7374, i7375, i7376, i7377, + i7400, i7401, iuser, i7401, iuser, i7401, iuser, i7401, /* 7400 */ + i7410, i7401, u7412, i7401, u7412, i7401, u7412, i7401, + i7420, i7421, u7422, i7421, u7422, i7421, u7422, i7421, + i7430, i7421, u7432, i7421, u7432, i7421, u7432, i7421, + i7440, i7401, u7442, i7401, u7442, i7401, u7442, i7401, + i7450, i7401, u7452, i7401, u7452, i7401, u7452, i7401, + i7460, i7421, u7462, i7421, u7462, i7421, u7462, i7421, + i7470, i7421, u7472, i7421, u7472, i7421, u7472, i7421, + i7500, i7501, u7502, i7501, u7502, i7501, u7502, i7501, /* 7500 */ + i7510, i7501, u7512, i7501, u7512, i7501, u7512, i7501, + i7520, i7521, u7522, i7521, u7522, i7521, u7522, i7521, + i7530, i7521, u7532, i7521, u7532, i7521, u7532, i7521, + i7540, i7501, u7542, i7501, u7542, i7501, u7542, i7501, + i7550, i7501, u7552, i7501, u7552, i7501, u7552, i7501, + i7560, i7521, u7562, i7521, u7562, i7521, u7562, i7521, + i7570, i7521, u7572, i7521, u7572, i7521, u7572, i7521, + i7600, i7601, u7602, i7601, u7602, i7601, u7602, i7601, /* 7600 */ + i7610, i7601, u7612, i7601, u7612, i7601, u7612, i7601, + i7620, i7621, u7622, i7621, u7622, i7621, u7622, i7621, + i7630, i7621, u7632, i7621, u7632, i7621, u7632, i7621, + i7640, i7621, u7642, i7621, u7642, i7621, u7642, i7621, + i7650, i7601, u7652, i7601, u7652, i7601, u7652, i7601, + i7660, i7621, u7662, i7621, u7662, i7621, u7662, i7621, + i7670, i7621, u7672, i7621, u7672, i7621, u7672, i7621, + i7700, i7701, u7702, i7701, u7702, i7701, u7702, i7701, /* 7700 */ + i7710, i7701, u7712, i7701, u7712, i7701, u7712, i7701, + i7720, i7721, u7722, i7721, u7722, i7721, u7722, i7721, + i7730, i7721, u7732, i7721, u7732, i7721, u7732, i7721, + i7740, i7701, u7742, i7701, u7742, i7701, u7742, i7701, + i7750, i7701, u7752, i7701, u7752, i7701, u7752, i7701, + i7760, i7721, u7762, i7721, u7762, i7721, u7762, i7721, + i7770, i7721, u7772, i7721, u7772, i7721, u7772, i7721 +}; diff --git a/Emulation/itab.h b/Emulation/itab.h new file mode 100644 index 0000000..9f22465 --- /dev/null +++ b/Emulation/itab.h @@ -0,0 +1,25 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * itab.h - The PDP-8/E instruction table + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +extern void (*itab[])(void); diff --git a/Emulation/mri.c b/Emulation/mri.c new file mode 100644 index 0000000..375980b --- /dev/null +++ b/Emulation/mri.c @@ -0,0 +1,587 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * mri.c - MRI instructions code for the PDP-8/E + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +/* + * EMUL-8: a pdp8e emulator. + * + * Author: + * Bill Haygood + * 41832 Ernest Road + * Loon Lake, WA 99148-9607 + * Internet: billh@comtch.iea.com + * Voice/AnsMach/FAX \ + * or 509-233-2555 + * Cellular/Pager / + * + * Copyright 1992, 1993, 1994 by the author with all rights reserved. + * + * Memory Reference Instruction (MRI) module. + */ + + +#import + +#define USE_PDP8_REGISTERS_DIRECTLY 1 + +#include "PDP8.h" +#include "mri.h" +#include "pdp8defines.h" + + +/* -------------------------------------------------------------------- */ +VOID i0000 (VOID) +{ + AC &= *(base + (IF + INST)) | 010000 ; + EXECUTION_TIME (26); +} +/* -------------------------------------------------------------------- */ +VOID i0200 (VOID) +{ + AC &= *(base + (IF | (PC & 07600) | (INST & 0177))) | 010000 ; + EXECUTION_TIME (26); +} +/* -------------------------------------------------------------------- */ +VOID i0400 (VOID) +{ + AC &= *(base + (DF | *(base + (IF | (INST & 0177))))) | 010000 ; + EXECUTION_TIME (38); +} +/* -------------------------------------------------------------------- */ +VOID i0410 (VOID) +{ + REG UWORD *p = base + (IF | (INST & 0177)) ; + AC &= *(base + (DF | (*p = (*p + 1) & 07777))) | 010000 ; + EXECUTION_TIME (40); +} +/* -------------------------------------------------------------------- */ +VOID i0600 (VOID) +{ + AC &= *(base + (DF | *(base + (IF | (PC & 07600) + | (INST & 0177))))) | 010000 ; + EXECUTION_TIME (38); +} +/* -------------------------------------------------------------------- */ +VOID i0610 (VOID) +{ + REG UINT page = PC & 07600 ; + REG UWORD *p = base + (IF | page | (INST & 0177)) ; + if (!page && (++*p & 010000)) + *p &= 07777 ; + AC &= *(base + (DF | *p)) | 010000 ; + EXECUTION_TIME (page ? 38 : 40); +} +/* -------------------------------------------------------------------- */ +VOID i1000 (VOID) +{ + AC = (AC + *(base + (IF | (INST & 0177)))) & 017777 ; + EXECUTION_TIME (26); +} +/* -------------------------------------------------------------------- */ +VOID i1200 (VOID) +{ + AC = (AC + *(base + (IF | (PC & 07600) | (INST & 0177)))) & 017777 ; + EXECUTION_TIME (26); +} +/* -------------------------------------------------------------------- */ +VOID i1400 (VOID) +{ + AC = (AC + *(base + (DF | *(base + (IF | (INST & 0177)))))) & 017777 ; + EXECUTION_TIME (38); +} +/* -------------------------------------------------------------------- */ +VOID i1410 (VOID) +{ + REG UWORD *p = base + (IF | (INST & 0177)) ; + AC = (AC + *(base + (DF | (*p = (*p + 1) & 07777)))) & 017777 ; + EXECUTION_TIME (40); +} +/* -------------------------------------------------------------------- */ +VOID i1600 (VOID) +{ + AC = (AC + *(base + (DF | *(base + (IF | (PC & 07600) + | (INST & 0177)))))) & 017777 ; + EXECUTION_TIME (38); +} +/* -------------------------------------------------------------------- */ +VOID i1610 (VOID) +{ + REG UINT page = PC & 07600 ; + REG UWORD *p = base + (IF | page | (INST & 0177)) ; + if (!page && (++*p & 010000)) + *p &= 07777 ; + AC = (AC + *(base + (DF | *p))) & 017777 ; + EXECUTION_TIME (page ? 38 : 40); +} +/* -------------------------------------------------------------------- */ +VOID i2000 (VOID) +{ + REG UWORD *p = base + (IF | (INST & 0177)) ; + if (!(*p = (*p + 1) & 07777)) + ++PC ; + EXECUTION_TIME (26); +} +unsigned s2000 (VOID) +{ + REG UWORD *p = base + (IF | (base[IF | PC] & 0177)); + /* Don´t use INST but pdp8.mem[pdp8.IF | pdp8.PC] because + state.currInst is not set up for skip tests */ + return (!((*p + 1) & 07777)); +} +/* -------------------------------------------------------------------- */ +VOID i2200 (VOID) +{ + REG UWORD *p = base + (IF | (PC & 07600) | (INST & 0177)) ; + if (!(*p = (*p + 1) & 07777)) + ++PC ; + EXECUTION_TIME (26); +} +unsigned s2200 (VOID) +{ + REG UWORD *p = base + (IF | (PC & 07600) | (base[IF | PC] & 0177)) ; + return (!((*p + 1) & 07777)); +} +/* -------------------------------------------------------------------- */ +VOID i2400 (VOID) +{ + REG UWORD addr = base[IF | (INST & 0177)]; + REG UWORD *p = base + (DF | addr); + REG UWORD *wp = base + (W_DF | addr); + + *wp = (*p + 1) & 07777; + if (! *wp) /* MB is checked, no re-read from memory */ + PC++; + EXECUTION_TIME (38); +} +unsigned s2400 (VOID) +{ + REG UWORD addr = base[IF | (base[IF | PC] & 0177)]; + REG UWORD *p = base + (DF | addr); + + return (! ((*p + 1) & 07777)); +} +/* -------------------------------------------------------------------- */ +VOID i2410 (VOID) +{ + REG UWORD *p = base + (IF | (INST & 0177)) ; + REG UWORD *wp; + *p = (*p + 1) & 07777 ; + wp = base + (W_DF | *p); + p = base + (DF | *p) ; + *wp = (*p + 1) & 07777; + if (! *wp) /* MB is checked, no re-read from memory */ + ++PC ; + EXECUTION_TIME (40); +} +unsigned s2410 (VOID) +{ + REG UWORD *p = base + (IF | (base[IF | PC] & 0177)) ; + REG UWORD *pp; + REG UWORD inc; + + pp = base + (DF | ((*p + 1) & 07777)) ; + inc = (pp == p) ? 1 : 0; + return (! ((*pp + 1 + inc) & 07777)); +} +/* -------------------------------------------------------------------- */ +VOID i2600 (VOID) +{ + REG UWORD addr = base[IF | (PC & 07600) | (INST & 0177)]; + REG UWORD *p = base + (DF | addr); + REG UWORD *wp = base + (W_DF | addr); + + *wp = (*p + 1) & 07777; + if (! *wp) /* MB is checked, no re-read from memory */ + ++PC ; + EXECUTION_TIME (38); +} +unsigned s2600 (VOID) +{ + REG UWORD addr = base[IF | (PC & 07600) | (base[IF | PC] & 0177)]; + REG UWORD *p = base + (DF | addr); + + return (! ((*p + 1) & 07777)); +} +/* -------------------------------------------------------------------- */ +VOID i2610 (VOID) +{ + REG UWORD page = PC & 07600 ; + REG UWORD *p = base + (IF | page | (INST & 0177)) ; + REG UWORD *wp; + if (!page) + *p = (*p + 1) & 07777 ; + wp = base + (W_DF | *p); + p = base + (DF | *p) ; + *wp = (*p + 1) & 07777; + if (! *wp) /* MB is checked, no re-read from memory */ + ++PC; + EXECUTION_TIME (page ? 38 : 40); +} +unsigned s2610 (VOID) +{ + REG UWORD page = PC & 07600 ; + REG UWORD *p = base + (IF | page | (base[IF | PC] & 0177)) ; + REG UWORD *pp; + REG UWORD inc; + if (!page) { + pp = base + (DF | ((*p + 1) & 07777)) ; + inc = (pp == p) ? 1 : 0; + } else { + pp = base + (DF | *p) ; + inc = 0; + } + return (! ((*pp + 1 + inc) & 07777)); +} +/* -------------------------------------------------------------------- */ +VOID i3000 (VOID) +{ + *(base + (IF | (INST & 0177))) = AC & 07777 ; + AC &= 010000 ; + EXECUTION_TIME (26); +} +/* -------------------------------------------------------------------- */ +VOID i3200 (VOID) +{ + *(base + (IF | (PC & 07600) | (INST & 0177))) = AC & 07777 ; + AC &= 010000 ; + EXECUTION_TIME (26); +} +/* -------------------------------------------------------------------- */ +VOID i3400 (VOID) +{ + *(base + (W_DF | *(base + (IF | (INST & 0177))))) = AC & 07777 ; + AC &= 010000 ; + EXECUTION_TIME (38); +} +/* -------------------------------------------------------------------- */ +VOID i3410 (VOID) +{ + REG UWORD *p = base + (IF | (INST & 0177)) ; + *p = ++*p & 07777 ; + *(base + (W_DF | *p)) = AC & 07777 ; + AC &= 010000 ; + EXECUTION_TIME (40); +} +/* -------------------------------------------------------------------- */ +VOID i3600 (VOID) +{ + *(base + (W_DF | *(base + (IF | (PC & 07600) | (INST & 0177))))) + = AC & 07777 ; + AC &= 010000 ; + EXECUTION_TIME (38); +} +/* -------------------------------------------------------------------- */ +VOID i3610 (VOID) +{ + REG UINT page = PC & 07600 ; + REG UWORD *p = base + (IF | page | (INST & 0177)) ; + if (!page) + *p = (*p + 1) & 07777 ; + *(base + (W_DF | *p)) = AC & 07777 ; + AC &= 010000 ; + EXECUTION_TIME (page ? 38 : 40); +} +/* -------------------------------------------------------------------- */ +VOID i4000 (VOID) +{ + REG UINT temp = INST & 0177 ; + *(base + (W_IB | temp)) = (PC + 1) & 07777 ; + PC = temp ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (26); +} +VOID u4000 (VOID) /* user mode with TSC8-75 */ +{ + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + PC = INST & 0177; + EXECUTION_TIME (26); + } else + i4000 (); +} +/* -------------------------------------------------------------------- */ +VOID i4200 (VOID) +{ + REG UINT temp = (PC & 07600) | (INST & 0177) ; + *(base + (W_IB | temp)) = (PC + 1) & 07777 ; + PC = temp ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (26); +} +VOID u4200 (VOID) /* user mode with TSC8-75 */ +{ + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + PC = (PC & 07600) | (INST & 0177); + EXECUTION_TIME (26); + } else + i4200 (); +} +/* -------------------------------------------------------------------- */ +VOID i4400 (VOID) +{ + REG UINT temp = *(base + (IF | (INST & 0177))) ; + *(base + (W_IB | temp )) = (PC + 1) & 07777 ; + PC = temp ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (38); +} +VOID u4400 (VOID) /* user mode with TSC8-75 */ +{ + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + PC = *(base + (IF | (INST & 0177))); + EXECUTION_TIME (38); + } else + i4400 (); +} +/* -------------------------------------------------------------------- */ +VOID i4410 (VOID) +{ + REG UWORD *p = base + (IF | (INST & 0177)) ; + *(base + (W_IB | (*p = (*p + 1) & 07777))) = (PC + 1) & 07777 ; + PC = *p ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (40); +} +VOID u4410 (VOID) /* user mode with TSC8-75 */ +/* this opcode is not checked by the TSC8.SV hardware diagnostics */ +{ + REG UWORD *p; + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + p = base + (IF | (INST & 0177)); + PC = *p = (*p + 1) & 07777; + EXECUTION_TIME (40); + } else + i4410 (); +} +/* -------------------------------------------------------------------- */ +VOID i4600 (VOID) +{ + REG UINT temp = *(base + (IF | (PC & 07600) | (INST & 0177))) ; + *(base + (W_IB | temp)) = (PC + 1) & 07777 ; + PC = temp ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (38); +} +VOID u4600 (VOID) /* user mode with TSC8-75 */ +{ + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + PC = *(base + (IF | (PC & 07600) | (INST & 0177))); + EXECUTION_TIME (38); + } else + i4600 (); +} +/* -------------------------------------------------------------------- */ +VOID i4610 (VOID) +{ + REG UINT page = PC & 07600 ; + REG UWORD *p = base + (IF | page | (INST & 0177)) ; + if (!page) + *p = (*p + 1) & 07777 ; + *(base + (W_IB | *p)) = (PC + 1) & 07777 ; + PC = *p ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (page ? 38 : 40); +} +VOID u4610 (VOID) /* user mode with TSC8-75 */ +/* the TSC8.SV hardware diagnostics doesn´t check this opcode at the autoincrement memory locations */ +{ + REG UINT page; + REG UWORD *p; + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + page = PC & 07600; + p = base + (IF | page | (INST & 0177)); + if (! page) + *p = (*p + 1) & 07777; + PC = *p; + EXECUTION_TIME (page ? 38 : 40); + } else + i4610 (); +} +/* -------------------------------------------------------------------- */ +VOID i5000 (VOID) +{ + PC = (INST & 0177) - 1 ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (12); +} +VOID u5000 (VOID) /* user mode with TSC8-75 */ +{ + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + } + i5000 (); +} +/* -------------------------------------------------------------------- */ +VOID i5200 (VOID) +{ + PC = ((PC & 07600) | (INST & 0177)) - 1 ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (12); +} +VOID u5200 (VOID) /* user mode with TSC8-75 */ +{ + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + } + i5200 (); +} +/* -------------------------------------------------------------------- */ +VOID i5400 (VOID) +{ + PC = *(base + (IF | (INST & 0177))) - 1 ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (24); +} +VOID u5400 (VOID) /* user mode with TSC8-75 */ +{ + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + } + i5400 (); +} +/* -------------------------------------------------------------------- */ +VOID i5410 (VOID) +{ + REG UWORD *p = base + (IF | (INST & 0177)) ; + PC = *p ; + *p = (*p + 1) & 07777 ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (26); +} +VOID u5410 (VOID) /* user mode with TSC8-75 */ +/* this opcode is not checked by the TSC8.SV hardware diagnostics */ +{ + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + } + i5410 (); +} +/* -------------------------------------------------------------------- */ +VOID i5600 (VOID) +{ + PC = *(base + (IF | (PC & 07600) | (INST & 0177))) - 1 ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (24); +} +VOID u5600 (VOID) /* user mode with TSC8-75 */ +{ + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + } + i5600 (); +} +/* -------------------------------------------------------------------- */ +VOID i5610 (VOID) +{ + REG UINT page = PC & 07600 ; + REG UWORD *p = base + (IF | page | (INST & 0177)) ; + if (!page) + *p = (*p + 1) & 07777 ; + PC = *p - 1 ; + IF = IB ; + if (hw.hasKM8Etimesharing) + UF = UB ; + int_inh = false ; + EXECUTION_TIME (page ? 24 : 26); +} +VOID u5610 (VOID) /* user mode with TSC8-75 */ +{ + tsc8.eriot = INST; + tsc8.ecdf = 0; + if (int_mask & tsc8.flag) { + tsc8.ertb = PC; + io_flags |= tsc8.flag; + } + i5610 (); +} +/* -------------------------------------------------------------------- */ diff --git a/Emulation/mri.h b/Emulation/mri.h new file mode 100644 index 0000000..e39dc90 --- /dev/null +++ b/Emulation/mri.h @@ -0,0 +1,95 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * mri.h - Interface for the MRI instructions code for the PDP-8/E + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +/* + * EMUL-8: a pdp8e emulator. + * + * Author: + * Bill Haygood + * 41832 Ernest Road + * Loon Lake, WA 99148-9607 + * Internet: billh@comtch.iea.com + * Voice/AnsMach/FAX \ + * or 509-233-2555 + * Cellular/Pager / + * + * Copyright 1992, 1993, 1994 by the author with all rights reserved. + * + * Memory Reference Instruction (MRI) module. + */ +/* -------------------------------------------------------------------- */ +extern void i0000 (void) ; +extern void i0200 (void) ; +extern void i0400 (void) ; +extern void i0410 (void) ; +extern void i0600 (void) ; +extern void i0610 (void) ; +extern void i1000 (void) ; +extern void i1200 (void) ; +extern void i1400 (void) ; +extern void i1410 (void) ; +extern void i1600 (void) ; +extern void i1610 (void) ; +extern void i2000 (void) ; +extern unsigned s2000 (void) ; +extern void i2200 (void) ; +extern unsigned s2200 (void) ; +extern void i2400 (void) ; +extern unsigned s2400 (void) ; +extern void i2410 (void) ; +extern unsigned s2410 (void) ; +extern void i2600 (void) ; +extern unsigned s2600 (void) ; +extern void i2610 (void) ; +extern unsigned s2610 (void) ; +extern void i3000 (void) ; +extern void i3200 (void) ; +extern void i3400 (void) ; +extern void i3410 (void) ; +extern void i3600 (void) ; +extern void i3610 (void) ; +extern void i4000 (void) ; +extern void u4000 (void) ; +extern void i4200 (void) ; +extern void u4200 (void) ; +extern void i4400 (void) ; +extern void u4400 (void) ; +extern void i4410 (void) ; +extern void u4410 (void) ; +extern void i4600 (void) ; +extern void u4600 (void) ; +extern void i4610 (void) ; +extern void u4610 (void) ; +extern void i5000 (void) ; +extern void u5000 (void) ; +extern void i5200 (void) ; +extern void u5200 (void) ; +extern void i5400 (void) ; +extern void u5400 (void) ; +extern void i5410 (void) ; +extern void u5410 (void) ; +extern void i5600 (void) ; +extern void u5600 (void) ; +extern void i5610 (void) ; +extern void u5610 (void) ; +/* -------------------------------------------------------------------- */ diff --git a/Emulation/opr.c b/Emulation/opr.c new file mode 100644 index 0000000..46d08c8 --- /dev/null +++ b/Emulation/opr.c @@ -0,0 +1,3062 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * opr.c - Operate instructions code for the PDP-8/E + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +/* + * EMUL-8: a pdp8e emulator. + * + * Author: + * Bill Haygood + * 41832 Ernest Road + * Loon Lake, WA 99148-9607 + * Internet: billh@comtch.iea.com + * Voice/AnsMach/FAX \ + * or 509-233-2555 + * Cellular/Pager / + * + * Copyright 1992, 1993, 1994 by the author with all rights reserved. + * + * Operate microinstruction (OPR) module for all OPRs except EAE. + * + * Questions: + * 1. Does every microprogrammed combo of MQL MQA + * yield a SWP instruction ? (page 3-17) + */ + + +#import + +#define USE_PDP8_REGISTERS_DIRECTLY 1 + +#include "PDP8.h" +#include "opr.h" +#include "pdp8defines.h" + + +/* + * Operate microinstructions + * + * | | | | + * |---|---|---|---|---|---|---|---|---| + * | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| Group I + * | 0 |CLA|CLL|CMA|CML|RAR|RAL|BSW|IAC| + * |---|---|---|---|---|---|---|---|---| + * Sequence: 1 1 2 2 4 4 4 3 + * + * | | | | + * |---|---|---|---|---|---|---|---|---| + * | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| + * | 1 |CLA|SMA|SZA|SNL|FL |OSR|HLT| 0 | Group II + * | 1 |CLA|SPA SNA SZL| AG|OSR|HLT| 0 | + * |---|---|---|---|---|---|---|---|---| + * Sequence: 2 1 1 1 1 3 4 + * + */ +/* -------------------------------------------------------------------- */ +VOID i7000 (VOID) /* NOP */ +{ + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7001 (VOID) /* IAC */ +{ + AC = (AC + 1) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7002 (VOID) /* BSW */ +{ + AC = (AC & 010000) | ((AC & 077) << 6) | ((AC & 07700) >> 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7003 (VOID) /* IAC BSW */ +{ + AC++; + AC = (AC & 010000) + ((AC & 077) << 6) + ((AC & 07700) >> 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7004 (VOID) /* RAL */ +{ + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7005 (VOID) /* IAC RAL */ +{ + AC = (AC + 1) & 017777 ; + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7006 (VOID) /* RTL */ +{ + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7007 (VOID) /* IAC RTL */ +{ + AC = (AC + 1) & 017777 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7010 (VOID) /* RAR */ +{ + AC = ((AC << 12) + (AC >> 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7011 (VOID) /* IAC RAR */ +{ + AC = (AC + 1) & 017777 ; + AC = ((AC << 12) + (AC >> 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7012 (VOID) /* RTR */ +{ + AC = ((AC << 11) + (AC >> 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7013 (VOID) /* IAC RTR */ +{ + AC = (AC + 1) & 017777 ; + AC = ((AC << 11) + (AC >> 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7014 (VOID) /* RAR RAL (reserved) */ +{ + AC = AC & 017014; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7015 (VOID) /* IAC RAR RAL (reserved) */ +{ + AC = (AC + 1) & 017015 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7016 (VOID) /* RTR RTL (reserved) */ +{ + AC = (AC & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7017 (VOID) /* IAC RTR RTL (reserved) */ +{ + AC = ((AC + 1) & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7020 (VOID) /* CML */ +{ + AC ^= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7021 (VOID) /* CML IAC */ +{ + AC = ((AC ^ 010000) + 1) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7022 (VOID) /* CML BSW */ +{ + AC = ((AC ^ 010000) & 010000) + + ((AC & 077) << 6) + ((AC & 07700) >> 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7023 (VOID) /* CML IAC BSW */ +{ + AC = (AC ^ 010000) + 1 ; + AC = (AC & 010000) + ((AC & 077) << 6) + ((AC & 07700) >> 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7024 (VOID) /* CML RAL */ +{ + AC ^= 010000 ; + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7025 (VOID) /* CML IAC RAL */ +{ + AC = ((AC ^ 010000) + 1) & 017777 ; + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7026 (VOID) /* CML RTL */ +{ + AC = (((AC ^ 010000) >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7027 (VOID) /* CML IAC RTL */ +{ + AC = ((AC ^ 010000) + 1) & 017777 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7030 (VOID) /* CML RAR */ +{ + AC = ((AC << 12) + ((AC ^ 010000) >> 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7031 (VOID) /* CML IAC RAR */ +{ + AC = ((AC ^ 010000) + 1) & 017777 ; + AC = ((AC << 12) + (AC >> 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7032 (VOID) /* CML RTR */ +{ + AC = (((AC ^ 010000) >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7033 (VOID) /* CML IAC RTR */ +{ + AC = ((AC ^ 010000) + 1) & 017777 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7034 (VOID) /* CML RAR RAL (reserved) */ +{ + AC ^= 010000 ; + AC &= 017034 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7035 (VOID) /* CML IAC RAR RAL (reserved) */ +{ + AC = ((AC ^ 010000) + 1) & 017035 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7036 (VOID) /* CML RTR RTL (reserved) */ +{ + AC ^= 010000 ; + AC = (AC & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7037 (VOID) /* CML IAC RTR RTL (reserved) */ +{ + AC = (AC ^ 010000) + 1 ; + AC = (AC & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7040 (VOID) /* CMA */ +{ + AC ^= 07777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7041 (VOID) /* CMA IAC */ +{ + AC = ((AC ^ 07777) + 1) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7042 (VOID) /* CMA BSW */ +{ + AC ^= 07777 ; + AC = (AC & 010000) + ((AC & 077) << 6) + ((AC & 07700) >> 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7043 (VOID) /* CMA IAC BSW */ +{ + AC = (AC ^ 07777) + 1 ; + AC = (AC & 010000) + ((AC & 077) << 6) + ((AC & 07700) >> 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7044 (VOID) /* CMA RAL */ +{ + AC ^= 07777 ; + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7045 (VOID) /* CMA IAC RAL */ +{ + AC = ((AC ^ 07777) + 1) & 017777 ; + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7046 (VOID) /* CMA RTL */ +{ + AC ^= 07777 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7047 (VOID) /* CMA IAC RTL */ +{ + AC = ((AC ^ 07777) + 1) & 017777 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7050 (VOID) /* CMA RAR */ +{ + AC ^= 07777 ; + AC = ((AC >> 1) + (AC << 12)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7051 (VOID) /* CMA IAC RAR */ +{ + AC = ((AC ^ 07777) + 1) & 017777 ; + AC = ((AC >> 1) + (AC << 12)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7052 (VOID) /* CMA RTR */ +{ + AC ^= 07777 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7053 (VOID) /* CMA IAC RTR */ +{ + AC = ((AC ^ 07777) + 1) & 017777 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7054 (VOID) /* CMA RAR RAL (reserved) */ +{ + AC ^= 07777 ; + AC &= 017054 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7055 (VOID) /* CMA IAC RAR RAL (reserved) */ +{ + AC = ((AC ^ 07777) + 1) & 017055 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7056 (VOID) /* CMA RTR RTL (reserved) */ +{ + AC = (AC & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7057 (VOID) /* CMA IAC RTR RTL (reserved) */ +{ + AC = (((AC ^ 07777) + 1) & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7060 (VOID) /* CMA CML */ +{ + AC ^= 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7061 (VOID) /* CMA CML IAC */ +{ + AC = (-AC) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7062 (VOID) /* CMA CML BSW */ +{ + AC ^= 017777 ; + AC = (AC & 010000) + ((AC & 077) << 6) + ((AC & 07700) >> 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7063 (VOID) /* CMA CML IAC BSW */ +{ + AC = -AC ; + AC = (AC & 010000) + ((AC & 077) << 6) + ((AC & 07700) >> 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7064 (VOID) /* CMA CML RAL */ +{ + AC ^= 017777 ; + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7065 (VOID) /* CMA CML IAC RAL */ +{ + AC = (-AC) & 017777 ; + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7066 (VOID) /* CMA CML RTL */ +{ + AC ^= 017777 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7067 (VOID) /* CMA CML IAC RTL */ +{ + AC = (-AC) & 017777 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7070 (VOID) /* CMA CML RAR */ +{ + AC ^= 017777 ; + AC = ((AC >> 1) + (AC << 12)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7071 (VOID) /* CMA CML IAC RAR */ +{ + AC = (-AC) & 017777 ; + AC = ((AC >> 1) + (AC << 12)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7072 (VOID) /* CMA CML RTR */ +{ + AC ^= 017777 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7073 (VOID) /* CMA CML IAC RTR */ +{ + AC = (-AC) & 017777 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7074 (VOID) /* CMA CML RAR RAL (reserved) */ +{ + AC ^= 017777 ; + AC &= 017074 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7075 (VOID) /* CMA CML IAC RAR RAL */ +{ /* (reserved) */ + AC = (-AC) & 017075 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7076 (VOID) /* CMA CML RTR RTL (reserved) */ +{ + AC = ((AC ^ 010000) & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7077 (VOID) /* CMA CML IAC RTR RTL */ +{ /* (reserved) */ + AC = ((-AC) & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7100 (VOID) /* CLL */ +{ + AC &= 07777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7101 (VOID) /* CLL IAC */ +{ + AC = (AC & 07777) + 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7102 (VOID) /* CLL BSW */ +{ + AC = ((AC & 077) << 6) + ((AC & 07700) >> 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7103 (VOID) /* CLL IAC BSW */ +{ + AC = (AC & 07777) + 1 ; + AC = (AC & 010000) + ((AC & 077) << 6) + ((AC & 07700) >> 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7104 (VOID) /* CLL RAL */ +{ + AC = (AC & 07777) << 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7105 (VOID) /* CLL IAC RAL */ +{ + AC = (AC & 07777) + 1 ; + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7106 (VOID) /* CLL RTL */ +{ + AC &= 07777 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7107 (VOID) /* CLL IAC RTL */ +{ + AC = (AC & 07777) + 1 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7110 (VOID) /* CLL RAR */ +{ + AC = ((AC & 07776) >> 1) + ((AC & 1) << 12) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7111 (VOID) /* CLL IAC RAR */ +{ + AC = (AC & 07777) + 1 ; + AC = ((AC >> 1) + (AC << 12)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7112 (VOID) /* CLL RTR */ +{ + AC &= 07777 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7113 (VOID) /* CLL IAC RTR */ +{ + AC = (AC & 07777) + 1 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7114 (VOID) /* CLL RAR RAL (reserved) */ +{ + AC &= 07114 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7115 (VOID) /* CLL IAC RAR RAL (reserved) */ +{ + AC = ((AC & 07777) + 1) & 017115 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7116 (VOID) /* CLL RTR RTL (reserved) */ +{ + AC = (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7117 (VOID) /* CLL IAC RTR RTL (reserved) */ +{ + AC = (((AC & 07777) + 1) & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7120 (VOID) /* CLL CML */ +{ + AC |= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7121 (VOID) /* CLL CML IAC */ +{ + AC = ((AC | 010000) + 1) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7122 (VOID) /* CLL CML BSW */ +{ + AC = 010000 + ((AC & 07700) >> 6) + ((AC & 077) << 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7123 (VOID) /* CLL CML IAC BSW */ +{ + AC = (AC | 010000) + 1 ; + AC = (AC & 010000) + ((AC & 07700) >> 6) + ((AC & 077) << 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7124 (VOID) /* CLL CML RAL */ +{ + AC |= 010000 ; + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7125 (VOID) /* CLL CML IAC RAL */ +{ + AC = ((AC | 010000) + 1) & 017777 ; + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7126 (VOID) /* CLL CML RTL */ +{ + AC |= 010000 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7127 (VOID) /* CLL CML IAC RTL */ +{ + AC = ((AC | 010000) + 1) & 017777 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7130 (VOID) /* CLL CML RAR */ +{ + AC = ((AC | 010000) >> 1) + ((AC & 1) << 12) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7131 (VOID) /* CLL CML IAC RAR */ +{ + AC = ((AC | 010000) + 1) & 017777 ; + AC = ((AC >> 1) + (AC << 12)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7132 (VOID) /* CLL CML RTR */ +{ + AC = ((AC | 010000) >> 2) + ((AC & 3) << 11) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7133 (VOID) /* CLL CML IAC RTR */ +{ + AC = ((AC | 010000) + 1) & 017777 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7134 (VOID) /* CLL CML RAR RAL (reserved) */ +{ + AC = (AC | 010000) & 017134 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7135 (VOID) /* CLL CML IAC RAR RAL */ +{ /* (reserved) */ + AC = ((AC | 010000) + 1) & 017135 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7136 (VOID) /* CLL CML RTR RTL (reserved) */ +{ + AC = 010000 | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7137 (VOID) /* CLL CML IAC RTR RTL */ +{ /* (reserved) */ + AC = (((AC | 010000) + 1) & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7140 (VOID) /* CLL CMA */ +{ + AC = (AC & 07777) ^ 07777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7141 (VOID) /* CLL CMA IAC */ +{ + AC = ((AC & 07777) ^ 07777) + 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7142 (VOID) /* CLL CMA BSW */ +{ + AC ^= 07777 ; + AC = ((AC & 07700) >> 6) + ((AC & 077) << 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7143 (VOID) /* CLL CMA IAC BSW */ +{ + AC = ((AC & 07777) ^ 07777) + 1 ; + AC = (AC & 010000) + ((AC & 07700) >> 6) + ((AC & 077) << 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7144 (VOID) /* CLL CMA RAL */ +{ + AC = ((AC & 07777) ^ 07777) << 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7145 (VOID) /* CLL CMA IAC RAL */ +{ + AC = ((AC & 07777) ^ 07777) + 1 ; + AC = ((AC >> 12) + (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7146 (VOID) /* CLL CMA RTL */ +{ + AC = (AC & 07777) ^ 07777 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7147 (VOID) /* CLL CMA IAC RTL */ +{ + AC = ((AC & 07777) ^ 07777) + 1 ; + AC = ((AC >> 11) + (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7150 (VOID) /* CLL CMA RAR */ +{ + AC = (AC & 07777) ^ 07777 ; + AC = ((AC >> 1) + (AC << 12)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7151 (VOID) /* CLL CMA IAC RAR */ +{ + AC = ((AC & 07777) ^ 07777) + 1 ; + AC = ((AC >> 1) + (AC << 12)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7152 (VOID) /* CLL CMA RTR */ +{ + AC = (AC & 07777) ^ 07777 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7153 (VOID) /* CLL CMA IAC RTR */ +{ + AC = ((AC & 07777) ^ 07777) + 1 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7154 (VOID) /* CLL CMA RAR RAL (reserved) */ +{ + AC = ((AC & 07777) ^ 07777) & 07154 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7155 (VOID) /* CLL CMA IAC RAR RAL */ +{ /* (reserved) */ + AC = (((AC & 07777) ^ 07777) + 1) & 017155 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7156 (VOID) /* CLL CMA RTR RTL (reserved) */ +{ + AC = (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7157 (VOID) /* CLL CMA IAC RTR RTL */ +{ /* (reserved) */ + AC = ((((AC & 07777) ^ 07777) + 1) & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7160 (VOID) /* CLL CMA CML */ +{ + AC = (AC & 07777) ^ 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7161 (VOID) /* CLL CMA CML IAC */ +{ + AC = (((AC & 07777) ^ 017777) + 1) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7162 (VOID) /* CLL CMA CML BSW */ +{ + AC ^= 07777 ; + AC = 010000 + ((AC & 07700) >> 6) + ((AC & 077) << 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7163 (VOID) /* CLL CMA CML IAC BSW */ +{ + AC = ((AC & 07777) ^ 017777) + 1 ; + AC = (AC & 010000) + ((AC & 07700) >> 6) + ((AC & 077) << 6) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7164 (VOID) /* CLL CMA CML RAL */ +{ + AC = (((AC & 07777) ^ 07777) << 1) | 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7165 (VOID) /* CLL CMA CML IAC RAL */ +{ + AC = (((AC & 07777) ^ 017777) + 1) & 017777 ; + AC = ((AC >> 12) | (AC << 1)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7166 (VOID) /* CLL CMA CML RTL */ +{ + AC = (AC & 07777) ^ 017777 ; + AC = ((AC >> 11) | (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7167 (VOID) /* CLL CMA CML IAC RTL */ +{ + AC = (((AC & 07777) ^ 017777) + 1) & 017777 ; + AC = ((AC >> 11) | (AC << 2)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7170 (VOID) /* CLL CMA CML RAR */ +{ + AC = (AC & 07777) ^ 017777 ; + AC = ((AC >> 1) + (AC << 12)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7171 (VOID) /* CLL CMA CML IAC RAR */ +{ + AC = (((AC & 07777) ^ 017777) + 1) & 017777 ; + AC = ((AC >> 1) + (AC << 12)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7172 (VOID) /* CLL CMA CML RTR */ +{ + AC = (AC & 07777) ^ 017777 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7173 (VOID) /* CLL CMA CML IAC RTR */ +{ + AC = (((AC & 07777) ^ 017777) + 1) & 017777 ; + AC = ((AC >> 2) + (AC << 11)) & 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7174 (VOID) /* CLL CMA CML RAR RAL */ +{ /* (reserved) */ + AC = ((AC & 07777) ^ 017777) & 017174 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7175 (VOID) /* CLL CMA CML IAC RAR RAL */ +{ /* (reserved) */ + AC = (((AC & 07777) ^ 017777) + 1) & 017175 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7176 (VOID) /* CLL CMA CML RTR RTL */ +{ /* (reserved) */ + AC = (((AC & 07777) ^ 017777) & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7177 (VOID) /* CLL CMA CML IAC RTR RTL */ +{ /* (reserved) */ + AC = ((((AC & 07777) ^ 017777) + 1) & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7200 (VOID) /* CLA */ +{ + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7201 (VOID) /* CLA IAC */ +{ + AC = (AC & 010000) + 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7202 (VOID) /* CLA BSW */ +{ + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7203 (VOID) /* CLA IAC BSW */ +{ + AC = (AC & 010000) + 0100 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7204 (VOID) /* CLA RAL */ +{ + AC >>= 12 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7205 (VOID) /* CLA IAC RAL */ +{ + AC = (AC >> 12) + 2 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7206 (VOID) /* CLA RTL */ +{ + AC = (AC & 010000) >> 11 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7207 (VOID) /* CLA IAC RTL */ +{ + AC = ((AC & 010000) >> 11) + 4 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7210 (VOID) /* CLA RAR */ +{ + AC = (AC & 010000) >> 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7211 (VOID) /* CLA IAC RAR */ +{ + AC = 010000 + ((AC & 010000) >> 1) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7212 (VOID) /* CLA RTR */ +{ + AC = (AC & 010000) >> 2 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7213 (VOID) /* CLA IAC RTR */ +{ + AC = 04000 + ((AC & 010000) >> 2) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7214 (VOID) /* CLA RAR RAL (reserved) */ +{ + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7215 (VOID) /* CLA IAC RAR RAL (reserved) */ +{ + AC = (AC & 010000) + 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7216 (VOID) /* CLA RTR RTL (reserved) */ +{ + AC = (AC & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7217 (VOID) /* CLA IAC RTR RTL (reserved) */ +{ + AC = (AC & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7220 (VOID) /* CLA CML */ +{ + AC = (AC & 010000) ^ 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7221 (VOID) /* CLA CML IAC */ +{ + AC = ((AC & 010000) ^ 010000) + 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7222 (VOID) /* CLA CML BSW */ +{ + AC = (AC & 010000) ^ 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7223 (VOID) /* CLA CML IAC BSW */ +{ + AC = ((AC & 010000) ^ 010000) + 0100 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7224 (VOID) /* CLA CML RAL */ +{ + AC = ((AC & 010000) ^ 010000) >> 12 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7225 (VOID) /* CLA CML IAC RAL */ +{ + AC = (((AC & 010000) ^ 010000) >> 12) + 2 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7226 (VOID) /* CLA CML RTL */ +{ + AC = ((AC & 010000) ^ 010000) >> 11 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7227 (VOID) /* CLA CML IAC RTL */ +{ + AC = (((AC & 010000) ^ 010000) >> 11) + 4 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7230 (VOID) /* CLA CML RAR */ +{ + AC = ((AC & 010000) ^ 010000) >> 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7231 (VOID) /* CLA CML IAC RAR */ +{ + AC = 010000 + (((AC & 010000) ^ 010000) >> 1) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7232 (VOID) /* CLA CML RTR */ +{ + AC = ((AC & 010000) ^ 010000) >> 2 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7233 (VOID) /* CLA CML IAC RTR */ +{ + AC = 04000 + (((AC & 010000) ^ 010000) >> 2) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7234 (VOID) /* CLA CML RAR RAL (reserved) */ +{ + AC = (AC & 010000) ^ 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7235 (VOID) /* CLA CML IAC RAR RAL */ +{ /* (reserved) */ + AC = ((AC & 010000) ^ 010000) + 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7236 (VOID) /* CLA CML RTR RTL (reserved) */ +{ + AC = ((AC & 010000) ^ 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7237 (VOID) /* CLA CML IAC RTR RTL */ +{ /* (reserved) */ + AC = ((AC & 010000) ^ 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7240 (VOID) /* CLA CMA */ +{ + AC = (AC & 010000) + 07777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7241 (VOID) /* CLA CMA IAC */ +{ + AC = (AC & 010000) ^ 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7242 (VOID) /* CLA CMA BSW */ +{ + AC |= 07777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7243 (VOID) /* CLA CMA IAC BSW */ +{ + AC = (AC & 010000) ^ 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7244 (VOID) /* CLA CMA RAL */ +{ + AC = (AC >> 12) | 017776 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7245 (VOID) /* CLA CMA IAC RAL */ +{ + AC = ((AC & 010000) ^ 010000) >> 12 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7246 (VOID) /* CLA CMA RTL */ +{ + AC = 017775 + ((AC & 010000) >> 11) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7247 (VOID) /* CLA CMA IAC RTL */ +{ + AC = ((AC & 010000) ^ 010000) >> 11 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7250 (VOID) /* CLA CMA RAR */ +{ + AC = 013777 + ((AC & 010000) >> 1) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7251 (VOID) /* CLA CMA IAC RAR */ +{ + AC = ((AC & 010000) ^ 010000) >> 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7252 (VOID) /* CLA CMA RTR */ +{ + AC = 015777 + ((AC & 010000) >> 2) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7253 (VOID) /* CLA CMA IAC RTR */ +{ + AC = ((AC & 010000) ^ 010000) >> 2 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7254 (VOID) /* CLA CMA RAR RAL (reserved) */ +{ + AC = (AC & 010000) | 07254 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7255 (VOID) /* CLA CMA IAC RAR RAL */ +{ /* (reserved) */ + AC = (AC & 010000) ^ 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7256 (VOID) /* CLA CMA RTR RTL (reserved) */ +{ + AC = (AC & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7257 (VOID) /* CLA CMA IAC RTR RTL */ +{ /* (reserved) */ + AC = ((AC & 010000) ^ 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7260 (VOID) /* CLA CMA CML */ +{ + AC = (AC | 07777) ^ 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7261 (VOID) /* CLA CMA CML IAC */ +{ + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7262 (VOID) /* CLA CMA CML BSW */ +{ + AC = (AC | 07777) ^ 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7263 (VOID) /* CLA CMA CML IAC BSW */ +{ + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7264 (VOID) /* CLA CMA CML RAL */ +{ + AC = 017776 | (AC >> 12) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7265 (VOID) /* CLA CMA CML IAC RAL */ +{ + AC = (AC & 010000) >> 12 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7266 (VOID) /* CLA CMA CML RTL */ +{ + AC = 017775 | (AC >> 11) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7267 (VOID) /* CLA CMA CML IAC RTL */ +{ + AC = (AC & 010000) >> 11 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7270 (VOID) /* CLA CMA CML RAR */ +{ + AC = 013777 | (AC >> 1) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7271 (VOID) /* CLA CMA CML IAC RAR */ +{ + AC = (AC & 010000) >> 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7272 (VOID) /* CLA CMA CML RTR */ +{ + AC = 015777 | (AC >> 2) ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7273 (VOID) /* CLA CMA CML IAC RTR */ +{ + AC = (AC & 010000) >> 2 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7274 (VOID) /* CLA CMA CML RAR RAL */ +{ /* (reserved) */ + AC = ((AC & 010000) ^ 010000) | 07274 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7275 (VOID) /* CLA CMA CML IAC RAR RAL */ +{ /* (reserved) */ + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7276 (VOID) /* CLA CMA CML RTR RTL */ +{ /* (reserved) */ + AC = ((AC & 010000) ^ 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7277 (VOID) /* CLA CMA CML IAC RTR RTL */ +{ /* (reserved) */ + AC = (AC & 010000) | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7300 (VOID) /* CLA CLL */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7301 (VOID) /* CLA CLL IAC */ +{ + AC = 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7302 (VOID) /* CLA CLL BSW */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7303 (VOID) /* CLA CLL IAC BSW */ +{ + AC = 0100 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7304 (VOID) /* CLA CLL RAL */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7305 (VOID) /* CLA CLL IAC RAL */ +{ + AC = 2 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7306 (VOID) /* CLA CLL RTL */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7307 (VOID) /* CLA CLL IAC RTL */ +{ + AC = 4 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7310 (VOID) /* CLA CLL RAR */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7311 (VOID) /* CLA CLL IAC RAR */ +{ + AC = 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7312 (VOID) /* CLA CLL RTR */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7313 (VOID) /* CLA CLL IAC RTR */ +{ + AC = 04000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7314 (VOID) /* CLA CLL RAR RAL (reserved) */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7315 (VOID) /* CLA CLL IAC RAR RAL */ +{ /* (reserved) */ + AC = 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7316 (VOID) /* CLA CLL RTR RTL (reserved) */ +{ + AC = (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7317 (VOID) /* CLA CLL IAC RTR RTL */ +{ /* (reserved) */ + AC = (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7320 (VOID) /* CLA CLL CML */ +{ + AC = 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7321 (VOID) /* CLA CLL CML IAC */ +{ + AC = 010001 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7322 (VOID) /* CLA CLL CML BSW */ +{ + AC = 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7323 (VOID) /* CLA CLL CML IAC BSW */ +{ + AC = 010100 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7324 (VOID) /* CLA CLL CML RAL */ +{ + AC = 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7325 (VOID) /* CLA CLL CML IAC RAL */ +{ + AC = 3 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7326 (VOID) /* CLA CLL CML RTL */ +{ + AC = 2 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7327 (VOID) /* CLA CLL CML IAC RTL */ +{ + AC = 6 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7330 (VOID) /* CLA CLL CML RAR */ +{ + AC = 04000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7331 (VOID) /* CLA CLL CML IAC RAR */ +{ + AC = 014000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7332 (VOID) /* CLA CLL CML RTR */ +{ + AC = 02000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7333 (VOID) /* CLA CLL CML IAC RTR */ +{ + AC = 06000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7334 (VOID) /* CLA CLL CML RAR RAL */ +{ /* (reserved) */ + AC = 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7335 (VOID) /* CLA CLL CML IAC RAR RAL */ +{ /* (reserved) */ + AC = 010001 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7336 (VOID) /* CLA CLL CML RTR RTL */ +{ /* (reserved) */ + AC = 010000 | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7337 (VOID) /* CLA CLL CML IAC RTR RTL */ +{ /* (reserved) */ + AC = 010000 | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7340 (VOID) /* CLA CLL CMA */ +{ + AC = 07777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7341 (VOID) /* CLA CLL CMA IAC */ +{ + AC = 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7342 (VOID) /* CLA CLL CMA BSW */ +{ + AC = 07777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7343 (VOID) /* CLA CLL CMA IAC BSW */ +{ + AC = 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7344 (VOID) /* CLA CLL CMA RAL */ +{ + AC = 017776 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7345 (VOID) /* CLA CLL CMA IAC RAL */ +{ + AC = 1 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7346 (VOID) /* CLA CLL CMA RTL */ +{ + AC = 017775 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7347 (VOID) /* CLA CLL CMA IAC RTL */ +{ + AC = 02 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7350 (VOID) /* CLA CLL CMA RAR */ +{ + AC = 013777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7351 (VOID) /* CLA CLL CMA IAC RAR */ +{ + AC = 04000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7352 (VOID) /* CLA CLL CMA RTR */ +{ + AC = 05777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7353 (VOID) /* CLA CLL CMA IAC RTR */ +{ + AC = 02000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7354 (VOID) /* CLA CLL CMA RAR RAL */ +{ /* (reserved) */ + AC = 07354 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7355 (VOID) /* CLA CLL CMA IAC RAR RAL */ +{ /* (reserved) */ + AC = 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7356 (VOID) /* CLA CLL CMA RTR RTL */ +{ /* (reserved) */ + AC = (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7357 (VOID) /* CLA CLL CMA IAC RTR RTL */ +{ /* (reserved) */ + AC = 010000 | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7360 (VOID) /* CLA CLL CMA CML */ +{ + AC = 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7361 (VOID) /* CLA CLL CMA CML IAC */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7362 (VOID) /* CLA CLL CMA CML BSW */ +{ + AC = 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7363 (VOID) /* CLA CLL CMA CML IAC BSW */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7364 (VOID) /* CLA CLL CMA CML RAL */ +{ + AC = 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7365 (VOID) /* CLA CLL CMA CML IAC RAL */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7366 (VOID) /* CLA CLL CMA CML RTL */ +{ + AC = 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7367 (VOID) /* CLA CLL CMA CML IAC RTL */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7370 (VOID) /* CLA CLL CMA CML RAR */ +{ + AC = 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7371 (VOID) /* CLA CLL CMA CML IAC RAR */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7372 (VOID) /* CLA CLL CMA CML RTR */ +{ + AC = 017777 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7373 (VOID) /* CLA CLL CMA CML IAC RTR */ +{ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7374 (VOID) /* CLA CLL CMA CML RAR RAL */ +{ /* (reserved) */ + AC = 017374 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7375 (VOID) /* CLA CLL CMA CML IAC RAR RAL */ +{ /* (reserved) */ + AC = 0 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7376 (VOID) /* CLA CLL CMA CML RTR RTL */ +{ /* (reserved) */ + AC = 010000 | (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7377 (VOID) /* CLA CLL CMA CML IAC RTR RTL */ +{ /* (reserved) */ + AC = (PC & 07600) | 016 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7400 (VOID) /* NOP Grp II */ +{ + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7402 (VOID) /* HLT */ +{ + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7404 (VOID) /* OSR */ +{ + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7406 (VOID) /* OSR HLT */ +{ + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7410 (VOID) /* SKP */ +{ + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7410 (VOID) /* SKP */ +{ + return (true); +} +/* -------------------------------------------------------------------- */ +VOID i7412 (VOID) /* SKP HLT */ +{ + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7412 (VOID) /* SKP HLT (user mode) */ +{ + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7414 (VOID) /* SKP OSR */ +{ + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7416 (VOID) /* SKP OSR HLT */ +{ + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7420 (VOID) /* SNL */ +{ + if (AC & 010000) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7420 (VOID) /* SNL */ +{ + return (AC & 010000); +} +/* -------------------------------------------------------------------- */ +VOID i7422 (VOID) /* SNL HLT */ +{ + if (AC & 010000) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7422 (VOID) /* SNL HLT (user mode) */ +{ + if (AC & 010000) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7424 (VOID) /* SNL OSR */ +{ + if (AC & 010000) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7426 (VOID) /* SNL OSR HLT */ +{ + if (AC & 010000) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7430 (VOID) /* SZL */ +{ + if (!(AC & 010000)) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7430 (VOID) /* SZL */ +{ + return (! (AC & 010000)); +} +/* -------------------------------------------------------------------- */ +VOID i7432 (VOID) /* SZL HLT */ +{ + if (!(AC & 010000)) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7432 (VOID) /* SZL HLT (user mode) */ +{ + if (!(AC & 010000)) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7434 (VOID) /* SZL OSR */ +{ + if (!(AC & 010000)) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7436 (VOID) /* SZL OSR HLT */ +{ + if (!(AC & 010000)) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7440 (VOID) /* SZA */ +{ + if (!(AC & 07777)) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7440 (VOID) /* SZA */ +{ + return (! (AC & 07777)); +} +/* -------------------------------------------------------------------- */ +VOID i7442 (VOID) /* SZA HLT */ +{ + if (!(AC & 07777)) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7442 (VOID) /* SZA HLT (user mode) */ +{ + if (!(AC & 07777)) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7444 (VOID) /* SZA OSR */ +{ + if (!(AC & 07777)) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7446 (VOID) /* SZA OSR HLT */ +{ + if (!(AC & 07777)) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7450 (VOID) /* SNA */ +{ + if (AC & 07777) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7450 (VOID) /* SNA */ +{ + return (AC & 07777); +} +/* -------------------------------------------------------------------- */ +VOID i7452 (VOID) /* SNA HLT */ +{ + if (AC & 07777) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7452 (VOID) /* SNA HLT (user mode) */ +{ + if (AC & 07777) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7454 (VOID) /* SNA OSR */ +{ + if (AC & 07777) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7456 (VOID) /* SNA OSR HLT */ +{ + if (AC & 07777) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7460 (VOID) /* SZA SNL */ +{ + if ((AC & 07777) == 0 || (AC & 010000)) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7460 (VOID) /* SZA SNL */ +{ + return ((AC & 07777) == 0 || (AC & 010000)); +} +/* -------------------------------------------------------------------- */ +VOID i7462 (VOID) /* SZA SNL HLT */ +{ + if ((AC & 07777) == 0 || (AC & 010000)) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7462 (VOID) /* SZA SNL HLT (user mode) */ +{ + if ((AC & 07777) == 0 || (AC & 010000)) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7464 (VOID) /* SZA SNL OSR */ +{ + if ((AC & 07777) == 0 || (AC & 010000)) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7466 (VOID) /* SZA SNL OSR HLT */ +{ + if ((AC & 07777) == 0 || (AC & 010000)) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7470 (VOID) /* SNA SZL */ +{ + if ((AC & 07777) && !(AC & 010000)) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7470 (VOID) /* SNA SZL */ +{ + return ((AC & 07777) && ! (AC & 010000)); +} +/* -------------------------------------------------------------------- */ +VOID i7472 (VOID) /* SNA SZL HLT */ +{ + if ((AC & 07777) && !(AC & 010000)) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7472 (VOID) /* SNA SZL HLT (user mode) */ +{ + if ((AC & 07777) && !(AC & 010000)) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7474 (VOID) /* SNA SZL OSR */ +{ + if ((AC & 07777) && !(AC & 010000)) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7476 (VOID) /* SNA SZL OSR HLT */ +{ + if ((AC & 07777) && !(AC & 010000)) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7500 (VOID) /* SMA */ +{ + if (AC & 04000) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7500 (VOID) /* SMA */ +{ + return (AC & 04000); +} +/* -------------------------------------------------------------------- */ +VOID i7502 (VOID) /* SMA HLT */ +{ + if (AC & 04000) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7502 (VOID) /* SMA HLT (user mode) */ +{ + if (AC & 04000) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7504 (VOID) /* SMA OSR */ +{ + if (AC & 04000) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7506 (VOID) /* SMA OSR HLT */ +{ + if (AC & 04000) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7510 (VOID) /* SPA */ +{ + if (!(AC & 04000)) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7510 (VOID) /* SPA */ +{ + return (! (AC & 04000)); +} +/* -------------------------------------------------------------------- */ +VOID i7512 (VOID) /* SPA HLT */ +{ + if (!(AC & 04000)) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7512 (VOID) /* SPA HLT (user mode) */ +{ + if (!(AC & 04000)) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7514 (VOID) /* SPA OSR */ +{ + if (!(AC & 04000)) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7516 (VOID) /* SPA OSR HLT */ +{ + if (!(AC & 04000)) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7520 (VOID) /* SMA SNL */ +{ + if (AC & 014000) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7520 (VOID) /* SMA SNL */ +{ + return (AC & 014000); +} +/* -------------------------------------------------------------------- */ +VOID i7522 (VOID) /* SMA SNL HLT */ +{ + if (AC & 014000) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7522 (VOID) /* SMA SNL HLT (user mode) */ +{ + if (AC & 014000) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7524 (VOID) /* SMA SNL OSR */ +{ + if (AC & 014000) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7526 (VOID) /* SMA SNL OSR HLT */ +{ + if (AC & 014000) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7530 (VOID) /* SPA SZL */ +{ + if (!(AC & 014000)) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7530 (VOID) /* SPA SZL */ +{ + return (! (AC & 014000)); +} +/* -------------------------------------------------------------------- */ +VOID i7532 (VOID) /* SPA SZL HLT */ +{ + if (!(AC & 014000)) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7532 (VOID) /* SPA SZL HLT (user mode) */ +{ + if (!(AC & 014000)) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7534 (VOID) /* SPA SZL OSR */ +{ + if (!(AC & 014000)) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7536 (VOID) /* SPA SZL OSR HLT */ +{ + if (!(AC & 014000)) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7540 (VOID) /* SMA SZA */ +{ + if ((AC & 04000) || !(AC & 07777)) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7540 (VOID) /* SMA SZA */ +{ + return ((AC & 04000) || ! (AC & 07777)); +} +/* -------------------------------------------------------------------- */ +VOID i7542 (VOID) /* SMA SZA HLT */ +{ + if ((AC & 04000) || !(AC & 07777)) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7542 (VOID) /* SMA SZA HLT (user mode) */ +{ + if ((AC & 04000) || !(AC & 07777)) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7544 (VOID) /* SMA SZA OSR */ +{ + if ((AC & 04000) || !(AC & 07777)) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7546 (VOID) /* SMA SZA OSR HLT */ +{ + if ((AC & 04000) || !(AC & 07777)) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7550 (VOID) /* SPA SNA */ +{ + if (!(AC & 04000) && (AC & 03777)) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7550 (VOID) /* SPA SNA */ +{ + return (! (AC & 04000) && (AC & 03777)); +} +/* -------------------------------------------------------------------- */ +VOID i7552 (VOID) /* SPA SNA HLT */ +{ + if ((AC & 04000) == 0 && (AC & 03777)) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7552 (VOID) /* SPA SNA HLT (user mode) */ +{ + if ((AC & 04000) == 0 && (AC & 03777)) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7554 (VOID) /* SPA SNA OSR */ +{ + if ((AC & 04000) == 0 && (AC & 03777)) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7556 (VOID) /* SPA SNA OSR HLT */ +{ + if ((AC & 04000) == 0 && (AC & 03777)) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7560 (VOID) /* SMA SZA SNL */ +{ + if ((AC & 07777) == 0 || (AC & 014000)) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7560 (VOID) /* SMA SZA SNL */ +{ + return ((AC & 07777) == 0 || (AC & 014000)); +} +/* -------------------------------------------------------------------- */ +VOID i7562 (VOID) /* SMA SZA SNL HLT */ +{ + if ((AC & 07777) == 0 || (AC & 014000)) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7562 (VOID) /* SMA SZA SNL HLT (user mode) */ +{ + if ((AC & 07777) == 0 || (AC & 014000)) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7564 (VOID) /* SMA SZA SNL OSR */ +{ + if ((AC & 07777) == 0 || (AC & 014000)) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7566 (VOID) /* SMA SZA SNL OSR HLT */ +{ + if ((AC & 07777) == 0 || (AC & 014000)) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7570 (VOID) /* SPA SNA SZL */ +{ + if (!(AC & 04000) && (AC & 03777) && !(AC & 010000)) + ++PC ; + EXECUTION_TIME (12); +} +unsigned s7570 (VOID) /* SPA SNA SZL */ +{ + return (! (AC & 04000) && (AC & 03777) && ! (AC & 010000)); +} +/* -------------------------------------------------------------------- */ +VOID i7572 (VOID) /* SPA SNA SZL HLT */ +{ + if (!(AC & 04000) && (AC & 03777) && !(AC & 010000)) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7572 (VOID) /* SPA SNA SZL HLT (user mode) */ +{ + if (!(AC & 04000) && (AC & 03777) && !(AC & 010000)) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7574 (VOID) /* SPA SNA SZL OSR */ +{ + if (!(AC & 04000) && (AC & 03777) && !(AC & 010000)) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7576 (VOID) /* SPA SNA SZL OSR HLT */ +{ + if (!(AC & 04000) && (AC & 03777) && !(AC & 010000)) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7600 (VOID) /* CLA Grp II */ +{ + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7602 (VOID) /* CLA HLT */ +{ + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7602 (VOID) /* CLA HLT (user mode) */ +{ + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7604 (VOID) /* CLA OSR */ +{ + AC = (AC & 010000) | SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7606 (VOID) /* CLA OSR HLT */ +{ + AC = (AC & 010000) | SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7610 (VOID) /* SKP CLA */ +{ + AC &= 010000 ; + ++PC ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7612 (VOID) /* SKP CLA HLT */ +{ + AC &= 010000 ; + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7612 (VOID) /* SKP CLA HLT (user mode) */ +{ + AC &= 010000 ; + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7614 (VOID) /* SKP CLA OSR */ +{ + AC &= 010000 ; + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7616 (VOID) /* SKP CLA OSR HLT */ +{ + AC &= 010000 ; + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7620 (VOID) /* SNL CLA */ +{ + if (AC &= 010000) + ++PC ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7622 (VOID) /* SNL CLA HLT */ +{ + if (AC &= 010000) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7622 (VOID) /* SNL CLA HLT (user mode) */ +{ + if (AC &= 010000) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7624 (VOID) /* SNL CLA OSR */ +{ + if (AC &= 010000) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7626 (VOID) /* SNL CLA OSR HLT */ +{ + if (AC &= 010000) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7630 (VOID) /* SZL CLA */ +{ + if (!(AC &= 010000)) + ++PC ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7632 (VOID) /* SZL CLA HLT */ +{ + if (!(AC &= 010000)) + ++PC ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7632 (VOID) /* SZL CLA HLT (user mode) */ +{ + if (!(AC &= 010000)) + ++PC ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7634 (VOID) /* SZL CLA OSR */ +{ + if (!(AC &= 010000)) + ++PC ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7636 (VOID) /* SZL CLA OSR HLT */ +{ + if (!(AC &= 010000)) + ++PC ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7640 (VOID) /* SZA CLA */ +{ + if (!(AC & 07777)) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7642 (VOID) /* SZA CLA HLT */ +{ + if (!(AC & 07777)) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7642 (VOID) /* SZA CLA HLT (user mode) */ +{ + if (!(AC & 07777)) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7644 (VOID) /* SZA CLA OSR */ +{ + if (!(AC & 07777)) + ++PC ; + AC = (AC & 010000) | SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7646 (VOID) /* SZA CLA OSR HLT */ +{ + if (!(AC & 07777)) + ++PC ; + AC &= 010000 ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7650 (VOID) /* SNA CLA */ +{ + if (AC & 07777) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7652 (VOID) /* SNA CLA HLT */ +{ + if (AC & 07777) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7652 (VOID) /* SNA CLA HLT (user mode) */ +{ + if (AC & 07777) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7654 (VOID) /* SNA CLA OSR */ +{ + if (AC & 07777) + ++PC ; + AC &= 010000 ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7656 (VOID) /* SNA CLA OSR HLT */ +{ + if (AC & 07777) + ++PC ; + AC &= 010000 ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7660 (VOID) /* SZA SNL CLA */ +{ + if ((AC & 07777) == 0 || (AC & 010000)) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7662 (VOID) /* SZA SNL CLA HLT */ +{ + if ((AC & 07777) == 0 || (AC & 010000)) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7662 (VOID) /* SZA SNL CLA HLT (user mode) */ +{ + if ((AC & 07777) == 0 || (AC & 010000)) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7664 (VOID) /* SZA SNL CLA OSR */ +{ + if ((AC & 07777) == 0 || (AC & 010000)) + ++PC ; + AC &= 010000 ; + AC |= SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7666 (VOID) /* SZA SNL CLA OSR HLT */ +{ + if ((AC & 07777) == 0 || (AC & 010000)) + ++PC ; + AC &= 010000 ; + AC |= SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7670 (VOID) /* SNA SZL CLA */ +{ + if ((AC & 07777) && !(AC & 010000)) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7672 (VOID) /* SNA SZL CLA HLT */ +{ + if ((AC & 07777) && !(AC & 010000)) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7672 (VOID) /* SNA SZL CLA HLT (user mode) */ +{ + if ((AC & 07777) && !(AC & 010000)) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7674 (VOID) /* SNA SZL CLA OSR */ +{ + if ((AC & 07777) && !(AC & 010000)) + ++PC ; + AC = (AC & 010000) | SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7676 (VOID) /* SNA SZL CLA OSR HLT */ +{ + if ((AC & 07777) && !(AC & 010000)) + ++PC ; + AC = (AC & 010000) | SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7700 (VOID) /* SMA CLA */ +{ + if (AC & 04000) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7702 (VOID) /* SMA CLA HLT */ +{ + if (AC & 04000) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7702 (VOID) /* SMA CLA HLT */ +{ + if (AC & 04000) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7704 (VOID) /* SMA CLA OSR */ +{ + if (AC & 04000) + ++PC ; + AC = (AC & 010000) | SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7706 (VOID) /* SMA CLA OSR HLT */ +{ + if (AC & 04000) + ++PC ; + AC = (AC & 010000) | SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7710 (VOID) /* SPA CLA */ +{ + if (!(AC & 04000)) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7712 (VOID) /* SPA CLA HLT */ +{ + if (!(AC & 04000)) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7712 (VOID) /* SPA CLA HLT (user mode) */ +{ + if (!(AC & 04000)) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7714 (VOID) /* SPA CLA OSR */ +{ + if (!(AC & 04000)) + ++PC ; + AC = (AC & 010000) | SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7716 (VOID) /* SPA CLA OSR HLT */ +{ + if (!(AC & 04000)) + ++PC ; + AC = (AC & 010000) | SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7720 (VOID) /* SMA SNL CLA */ +{ + if (AC & 014000) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7722 (VOID) /* SMA SNL CLA HLT */ +{ + if (AC & 014000) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7722 (VOID) /* SMA SNL CLA HLT (user mode) */ +{ + if (AC & 014000) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7724 (VOID) /* SMA SNL CLA OSR */ +{ + if (AC & 014000) + ++PC ; + AC = (AC & 010000) | SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7726 (VOID) /* SMA SNL CLA OSR HLT */ +{ + if (AC & 014000) + ++PC ; + AC = (AC & 010000) | SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7730 (VOID) /* SPA SZL CLA */ +{ + if (!(AC & 014000)) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7732 (VOID) /* SPA SZL CLA HLT */ +{ + if (!(AC & 014000)) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7732 (VOID) /* SPA SZL CLA HLT (user mode) */ +{ + if (!(AC & 014000)) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7734 (VOID) /* SPA SZL CLA OSR */ +{ + if (!(AC & 014000)) + ++PC ; + AC = (AC & 010000) | SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7736 (VOID) /* SPA SZL CLA OSR HLT */ +{ + if (!(AC & 014000)) + ++PC ; + AC = (AC & 010000) | SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7740 (VOID) /* SMA SZA CLA */ +{ + if ((AC & 04000) || !(AC & 07777)) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7742 (VOID) /* SMA SZA CLA HLT */ +{ + if ((AC & 04000) || !(AC & 07777)) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7742 (VOID) /* SMA SZA CLA HLT (user mode) */ +{ + if ((AC & 04000) || !(AC & 07777)) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7744 (VOID) /* SMA SZA CLA OSR */ +{ + if ((AC & 04000) || !(AC & 07777)) + ++PC ; + AC = (AC & 010000) | SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7746 (VOID) /* SMA SZA CLA OSR HLT */ +{ + if ((AC & 04000) || !(AC & 07777)) + ++PC ; + AC = (AC & 010000) | SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7750 (VOID) /* SPA SNA CLA */ +{ + if ((AC & 07777) && (AC & 07777) < 04000) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7752 (VOID) /* SPA SNA CLA HLT */ +{ + if ((AC & 07777) && (AC & 07777) < 04000) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7752 (VOID) /* SPA SNA CLA HLT (user mode) */ +{ + if ((AC & 07777) && (AC & 07777) < 04000) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7754 (VOID) /* SPA SNA CLA OSR */ +{ + if ((AC & 07777) && (AC & 07777) < 04000) + ++PC ; + AC = (AC & 010000) | SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7756 (VOID) /* SPA SNA CLA OSR HLT */ +{ + if ((AC & 07777) && (AC & 07777) < 04000) + ++PC ; + AC = (AC & 010000) | SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7760 (VOID) /* SMA SZA SNL CLA */ +{ + if ((AC & 07777) == 0 || (AC & 014000)) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7762 (VOID) /* SMA SZA SNL CLA HLT */ +{ + if ((AC & 07777) == 0 || (AC & 014000)) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7762 (VOID) /* SMA SZA SNL CLA HLT */ +{ /* (user mode) */ + if ((AC & 07777) == 0 || (AC & 014000)) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7764 (VOID) /* SMA SZA SNL CLA OSR */ +{ + if ((AC & 07777) == 0 || (AC & 014000)) + ++PC ; + AC = (AC & 010000) | SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7766 (VOID) /* SMA SZA SNL CLA OSR HLT */ +{ + if ((AC & 07777) == 0 || (AC & 014000)) + ++PC ; + AC = (AC & 010000) | SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7770 (VOID) /* SPA SNA SZL CLA */ +{ + if ((AC & 07777) && !(AC & 014000)) + ++PC ; + AC &= 010000 ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7772 (VOID) /* SPA SNA SZL CLA HLT */ +{ + if ((AC & 07777) && !(AC & 014000)) + ++PC ; + AC &= 010000 ; + run = false ; + EXECUTION_TIME (12); +} +VOID u7772 (VOID) /* SPA SNA SZL CLA HLT */ +{ /* (user mode) */ + if ((AC & 07777) && !(AC & 014000)) + ++PC ; + AC &= 010000 ; + io_flags |= userFLAG ; + tsc8.eriot = INST; + tsc8.ecdf = 0; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7774 (VOID) /* SPA SNA SZL CLA OSR */ +{ + if ((AC & 07777) && !(AC & 014000)) + ++PC ; + AC = (AC & 010000) | SR ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ +VOID i7776 (VOID) /* SPA SNA SZL CLA OSR HLT */ +{ + if ((AC & 07777) && !(AC & 014000)) + ++PC ; + AC = (AC & 010000) | SR ; + run = false ; + EXECUTION_TIME (12); +} +/* -------------------------------------------------------------------- */ diff --git a/Emulation/opr.h b/Emulation/opr.h new file mode 100644 index 0000000..29e4964 --- /dev/null +++ b/Emulation/opr.h @@ -0,0 +1,472 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * opr.h - Interface for the operate instructions code for the PDP-8/E + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +/* + * EMUL-8: a pdp8e emulator. + * + * Author: + * Bill Haygood + * 41832 Ernest Road + * Loon Lake, WA 99148-9607 + * Internet: billh@comtch.iea.com + * Voice/AnsMach/FAX \ + * or 509-233-2555 + * Cellular/Pager / + * + * Copyright 1992, 1993, 1994 by the author with all rights reserved. + * + * Include file for Operate microinstruction (OPR) module + * for all OPRs except EAE. + */ +/* -------------------------------------------------------------------- */ +extern void i7000 (void) ; /* NOP */ +extern void i7001 (void) ; /* IAC */ +extern void i7002 (void) ; /* BSW */ +extern void i7003 (void) ; /* IAC BSW */ +extern void i7004 (void) ; /* RAL */ +extern void i7005 (void) ; /* IAC RAL */ +extern void i7006 (void) ; /* RTL */ +extern void i7007 (void) ; /* IAC RTL */ +extern void i7010 (void) ; /* RAR */ +extern void i7011 (void) ; /* IAC RAR */ +extern void i7012 (void) ; /* RTR */ +extern void i7013 (void) ; /* IAC RTR */ +extern void i7014 (void) ; /* RAR RAL (reserved) */ +extern void i7015 (void) ; /* IAC RAR RAL (reserved) */ +extern void i7016 (void) ; /* RTR RTL (reserved) */ +extern void i7017 (void) ; /* IAC RTR RTL (reserved) */ +extern void i7020 (void) ; /* CML */ +extern void i7021 (void) ; /* CML IAC */ +extern void i7022 (void) ; /* CML BSW */ +extern void i7023 (void) ; /* CML IAC BSW */ +extern void i7024 (void) ; /* CML RAL */ +extern void i7025 (void) ; /* CML IAC RAL */ +extern void i7026 (void) ; /* CML RTL */ +extern void i7027 (void) ; /* CML IAC RTL */ +extern void i7030 (void) ; /* CML RAR */ +extern void i7031 (void) ; /* CML IAC RAR */ +extern void i7032 (void) ; /* CML RTR */ +extern void i7033 (void) ; /* CML IAC RTR */ +extern void i7034 (void) ; /* CML RAR RAL (reserved) */ +extern void i7035 (void) ; /* CML IAC RAR RAL (reserved) */ +extern void i7036 (void) ; /* CML RTR RTL (reserved) */ +extern void i7037 (void) ; /* CML IAC RTR RTL (reserved) */ +extern void i7040 (void) ; /* CMA */ +extern void i7041 (void) ; /* CMA IAC */ +extern void i7042 (void) ; /* CMA BSW */ +extern void i7043 (void) ; /* CMA IAC BSW */ +extern void i7044 (void) ; /* CMA RAL */ +extern void i7045 (void) ; /* CMA IAC RAL */ +extern void i7046 (void) ; /* CMA RTL */ +extern void i7047 (void) ; /* CMA IAC RTL */ +extern void i7050 (void) ; /* CMA RAR */ +extern void i7051 (void) ; /* CMA IAC RAR */ +extern void i7052 (void) ; /* CMA RTR */ +extern void i7053 (void) ; /* CMA IAC RTR */ +extern void i7054 (void) ; /* CMA RAR RAL (reserved) */ +extern void i7055 (void) ; /* CMA IAC RAR RAL (reserved) */ +extern void i7056 (void) ; /* CMA RTR RTL (reserved) */ +extern void i7057 (void) ; /* CMA IAC RTR RTL (reserved) */ +extern void i7060 (void) ; /* CMA CML */ +extern void i7061 (void) ; /* CMA CML IAC */ +extern void i7062 (void) ; /* CMA CML BSW */ +extern void i7063 (void) ; /* CMA CML IAC BSW */ +extern void i7064 (void) ; /* CMA CML RAL */ +extern void i7065 (void) ; /* CMA CML IAC RAL */ +extern void i7066 (void) ; /* CMA CML RTL */ +extern void i7067 (void) ; /* CMA CML IAC RTL */ +extern void i7070 (void) ; /* CMA CML RAR */ +extern void i7071 (void) ; /* CMA CML IAC RAR */ +extern void i7072 (void) ; /* CMA CML RTR */ +extern void i7073 (void) ; /* CMA CML IAC RTR */ +extern void i7074 (void) ; /* CMA CML RAR RAL (reserved) */ +extern void i7075 (void) ; /* CMA CML IAC RAR RAL */ +extern void i7076 (void) ; /* CMA CML RTR RTL (reserved) */ +extern void i7077 (void) ; /* CMA CML IAC RTR RTL */ +extern void i7100 (void) ; /* CLL */ +extern void i7101 (void) ; /* CLL IAC */ +extern void i7102 (void) ; /* CLL BSW */ +extern void i7103 (void) ; /* CLL IAC BSW */ +extern void i7104 (void) ; /* CLL RAL */ +extern void i7105 (void) ; /* CLL IAC RAL */ +extern void i7106 (void) ; /* CLL RTL */ +extern void i7107 (void) ; /* CLL IAC RTL */ +extern void i7110 (void) ; /* CLL RAR */ +extern void i7111 (void) ; /* CLL IAC RAR */ +extern void i7112 (void) ; /* CLL RTR */ +extern void i7113 (void) ; /* CLL IAC RTR */ +extern void i7114 (void) ; /* CLL RAR RAL (reserved) */ +extern void i7115 (void) ; /* CLL IAC RAR RAL (reserved) */ +extern void i7116 (void) ; /* CLL RTR RTL (reserved) */ +extern void i7117 (void) ; /* CLL IAC RTR RTL (reserved) */ +extern void i7120 (void) ; /* CLL CML */ +extern void i7121 (void) ; /* CLL CML IAC */ +extern void i7122 (void) ; /* CLL CML BSW */ +extern void i7123 (void) ; /* CLL CML IAC BSW */ +extern void i7124 (void) ; /* CLL CML RAL */ +extern void i7125 (void) ; /* CLL CML IAC RAL */ +extern void i7126 (void) ; /* CLL CML RTL */ +extern void i7127 (void) ; /* CLL CML IAC RTL */ +extern void i7130 (void) ; /* CLL CML RAR */ +extern void i7131 (void) ; /* CLL CML IAC RAR */ +extern void i7132 (void) ; /* CLL CML RTR */ +extern void i7133 (void) ; /* CLL CML IAC RTR */ +extern void i7134 (void) ; /* CLL CML RAR RAL (reserved) */ +extern void i7135 (void) ; /* CLL CML IAC RAR RAL */ +extern void i7136 (void) ; /* CLL CML RTR RTL (reserved) */ +extern void i7137 (void) ; /* CLL CML IAC RTR RTL */ +extern void i7140 (void) ; /* CLL CMA */ +extern void i7141 (void) ; /* CLL CMA IAC */ +extern void i7142 (void) ; /* CLL CMA BSW */ +extern void i7143 (void) ; /* CLL CMA IAC BSW */ +extern void i7144 (void) ; /* CLL CMA RAL */ +extern void i7145 (void) ; /* CLL CMA IAC RAL */ +extern void i7146 (void) ; /* CLL CMA RTL */ +extern void i7147 (void) ; /* CLL CMA IAC RTL */ +extern void i7150 (void) ; /* CLL CMA RAR */ +extern void i7151 (void) ; /* CLL CMA IAC RAR */ +extern void i7152 (void) ; /* CLL CMA RTR */ +extern void i7153 (void) ; /* CLL CMA IAC RTR */ +extern void i7154 (void) ; /* CLL CMA RAR RAL (reserved) */ +extern void i7155 (void) ; /* CLL CMA IAC RAR RAL */ +extern void i7156 (void) ; /* CLL CMA RTR RTL (reserved) */ +extern void i7157 (void) ; /* CLL CMA IAC RTR RTL */ +extern void i7160 (void) ; /* CLL CMA CML */ +extern void i7161 (void) ; /* CLL CMA CML IAC */ +extern void i7162 (void) ; /* CLL CMA CML BSW */ +extern void i7163 (void) ; /* CLL CMA CML IAC BSW */ +extern void i7164 (void) ; /* CLL CMA CML RAL */ +extern void i7165 (void) ; /* CLL CMA CML IAC RAL */ +extern void i7166 (void) ; /* CLL CMA CML RTL */ +extern void i7167 (void) ; /* CLL CMA CML IAC RTL */ +extern void i7170 (void) ; /* CLL CMA CML RAR */ +extern void i7171 (void) ; /* CLL CMA CML IAC RAR */ +extern void i7172 (void) ; /* CLL CMA CML RTR */ +extern void i7173 (void) ; /* CLL CMA CML IAC RTR */ +extern void i7174 (void) ; /* CLL CMA CML RAR RAL */ +extern void i7175 (void) ; /* CLL CMA CML IAC RAR RAL */ +extern void i7176 (void) ; /* CLL CMA CML RTR RTL */ +extern void i7177 (void) ; /* CLL CMA CML IAC RTR RTL */ +extern void i7200 (void) ; /* CLA */ +extern void i7201 (void) ; /* CLA IAC */ +extern void i7202 (void) ; /* CLA BSW */ +extern void i7203 (void) ; /* CLA IAC BSW */ +extern void i7204 (void) ; /* CLA RAL */ +extern void i7205 (void) ; /* CLA IAC RAL */ +extern void i7206 (void) ; /* CLA RTL */ +extern void i7207 (void) ; /* CLA IAC RTL */ +extern void i7210 (void) ; /* CLA RAR */ +extern void i7211 (void) ; /* CLA IAC RAR */ +extern void i7212 (void) ; /* CLA RTR */ +extern void i7213 (void) ; /* CLA IAC RTR */ +extern void i7214 (void) ; /* CLA RAR RAL (reserved) */ +extern void i7215 (void) ; /* CLA IAC RAR RAL (reserved) */ +extern void i7216 (void) ; /* CLA RTR RTL (reserved) */ +extern void i7217 (void) ; /* CLA IAC RTR RTL (reserved) */ +extern void i7220 (void) ; /* CLA CML */ +extern void i7221 (void) ; /* CLA CML IAC */ +extern void i7222 (void) ; /* CLA CML BSW */ +extern void i7223 (void) ; /* CLA CML IAC BSW */ +extern void i7224 (void) ; /* CLA CML RAL */ +extern void i7225 (void) ; /* CLA CML IAC RAL */ +extern void i7226 (void) ; /* CLA CML RTL */ +extern void i7227 (void) ; /* CLA CML IAC RTL */ +extern void i7230 (void) ; /* CLA CML RAR */ +extern void i7231 (void) ; /* CLA CML IAC RAR */ +extern void i7232 (void) ; /* CLA CML RTR */ +extern void i7233 (void) ; /* CLA CML IAC RTR */ +extern void i7234 (void) ; /* CLA CML RAR RAL (reserved) */ +extern void i7235 (void) ; /* CLA CML IAC RAR RAL */ +extern void i7236 (void) ; /* CLA CML RTR RTL (reserved) */ +extern void i7237 (void) ; /* CLA CML IAC RTR RTL */ +extern void i7240 (void) ; /* CLA CMA */ +extern void i7241 (void) ; /* CLA CMA IAC */ +extern void i7242 (void) ; /* CLA CMA BSW */ +extern void i7243 (void) ; /* CLA CMA IAC BSW */ +extern void i7244 (void) ; /* CLA CMA RAL */ +extern void i7245 (void) ; /* CLA CMA IAC RAL */ +extern void i7246 (void) ; /* CLA CMA RTL */ +extern void i7247 (void) ; /* CLA CMA IAC RTL */ +extern void i7250 (void) ; /* CLA CMA RAR */ +extern void i7251 (void) ; /* CLA CMA IAC RAR */ +extern void i7252 (void) ; /* CLA CMA RTR */ +extern void i7253 (void) ; /* CLA CMA IAC RTR */ +extern void i7254 (void) ; /* CLA CMA RAR RAL (reserved) */ +extern void i7255 (void) ; /* CLA CMA IAC RAR RAL */ +extern void i7256 (void) ; /* CLA CMA RTR RTL (reserved) */ +extern void i7257 (void) ; /* CLA CMA IAC RTR RTL */ +extern void i7260 (void) ; /* CLA CMA CML */ +extern void i7261 (void) ; /* CLA CMA CML IAC */ +extern void i7262 (void) ; /* CLA CMA CML BSW */ +extern void i7263 (void) ; /* CLA CMA CML IAC BSW */ +extern void i7264 (void) ; /* CLA CMA CML RAL */ +extern void i7265 (void) ; /* CLA CMA CML IAC RAL */ +extern void i7266 (void) ; /* CLA CMA CML RTL */ +extern void i7267 (void) ; /* CLA CMA CML IAC RTL */ +extern void i7270 (void) ; /* CLA CMA CML RAR */ +extern void i7271 (void) ; /* CLA CMA CML IAC RAR */ +extern void i7272 (void) ; /* CLA CMA CML RTR */ +extern void i7273 (void) ; /* CLA CMA CML IAC RTR */ +extern void i7274 (void) ; /* CLA CMA CML RAR RAL */ +extern void i7275 (void) ; /* CLA CMA CML IAC RAR RAL */ +extern void i7276 (void) ; /* CLA CMA CML RTR RTL */ +extern void i7277 (void) ; /* CLA CMA CML IAC RTR RTL */ +extern void i7300 (void) ; /* CLA CLL */ +extern void i7301 (void) ; /* CLA CLL IAC */ +extern void i7302 (void) ; /* CLA CLL BSW */ +extern void i7303 (void) ; /* CLA CLL IAC BSW */ +extern void i7304 (void) ; /* CLA CLL RAL */ +extern void i7305 (void) ; /* CLA CLL IAC RAL */ +extern void i7306 (void) ; /* CLA CLL RTL */ +extern void i7307 (void) ; /* CLA CLL IAC RTL */ +extern void i7310 (void) ; /* CLA CLL RAR */ +extern void i7311 (void) ; /* CLA CLL IAC RAR */ +extern void i7312 (void) ; /* CLA CLL RTR */ +extern void i7313 (void) ; /* CLA CLL IAC RTR */ +extern void i7314 (void) ; /* CLA CLL RAR RAL (reserved) */ +extern void i7315 (void) ; /* CLA CLL IAC RAR RAL */ +extern void i7316 (void) ; /* CLA CLL RTR RTL (reserved) */ +extern void i7317 (void) ; /* CLA CLL IAC RTR RTL */ +extern void i7320 (void) ; /* CLA CLL CML */ +extern void i7321 (void) ; /* CLA CLL CML IAC */ +extern void i7322 (void) ; /* CLA CLL CML BSW */ +extern void i7323 (void) ; /* CLA CLL CML IAC BSW */ +extern void i7324 (void) ; /* CLA CLL CML RAL */ +extern void i7325 (void) ; /* CLA CLL CML IAC RAL */ +extern void i7326 (void) ; /* CLA CLL CML RTL */ +extern void i7327 (void) ; /* CLA CLL CML IAC RTL */ +extern void i7330 (void) ; /* CLA CLL CML RAR */ +extern void i7331 (void) ; /* CLA CLL CML IAC RAR */ +extern void i7332 (void) ; /* CLA CLL CML RTR */ +extern void i7333 (void) ; /* CLA CLL CML IAC RTR */ +extern void i7334 (void) ; /* CLA CLL CML RAR RAL */ +extern void i7335 (void) ; /* CLA CLL CML IAC RAR RAL */ +extern void i7336 (void) ; /* CLA CLL CML RTR RTL */ +extern void i7337 (void) ; /* CLA CLL CML IAC RTR RTL */ +extern void i7340 (void) ; /* CLA CLL CMA */ +extern void i7341 (void) ; /* CLA CLL CMA IAC */ +extern void i7342 (void) ; /* CLA CLL CMA BSW */ +extern void i7343 (void) ; /* CLA CLL CMA IAC BSW */ +extern void i7344 (void) ; /* CLA CLL CMA RAL */ +extern void i7345 (void) ; /* CLA CLL CMA IAC RAL */ +extern void i7346 (void) ; /* CLA CLL CMA RTL */ +extern void i7347 (void) ; /* CLA CLL CMA IAC RTL */ +extern void i7350 (void) ; /* CLA CLL CMA RAR */ +extern void i7351 (void) ; /* CLA CLL CMA IAC RAR */ +extern void i7352 (void) ; /* CLA CLL CMA RTR */ +extern void i7353 (void) ; /* CLA CLL CMA IAC RTR */ +extern void i7354 (void) ; /* CLA CLL CMA RAR RAL */ +extern void i7355 (void) ; /* CLA CLL CMA IAC RAR RAL */ +extern void i7356 (void) ; /* CLA CLL CMA RTR RTL */ +extern void i7357 (void) ; /* CLA CLL CMA IAC RTR RTL */ +extern void i7360 (void) ; /* CLA CLL CMA CML */ +extern void i7361 (void) ; /* CLA CLL CMA CML IAC */ +extern void i7362 (void) ; /* CLA CLL CMA CML BSW */ +extern void i7363 (void) ; /* CLA CLL CMA CML IAC BSW */ +extern void i7364 (void) ; /* CLA CLL CMA CML RAL */ +extern void i7365 (void) ; /* CLA CLL CMA CML IAC RAL */ +extern void i7366 (void) ; /* CLA CLL CMA CML RTL */ +extern void i7367 (void) ; /* CLA CLL CMA CML IAC RTL */ +extern void i7370 (void) ; /* CLA CLL CMA CML RAR */ +extern void i7371 (void) ; /* CLA CLL CMA CML IAC RAR */ +extern void i7372 (void) ; /* CLA CLL CMA CML RTR */ +extern void i7373 (void) ; /* CLA CLL CMA CML IAC RTR */ +extern void i7374 (void) ; /* CLA CLL CMA CML RAR RAL */ +extern void i7375 (void) ; /* CLA CLL CMA CML IAC RAR RAL */ +extern void i7376 (void) ; /* CLA CLL CMA CML RTR RTL */ +extern void i7377 (void) ; /* CLA CLL CMA CML IAC RTR RTL */ +extern void i7400 (void) ; /* NOP Grp II */ +extern void i7402 (void) ; /* HLT */ +extern void i7404 (void) ; /* OSR */ +extern void i7406 (void) ; /* OSR HLT */ +extern void i7410 (void) ; /* SKP */ +extern unsigned s7410 (void) ; /* SKP (skip test) */ +extern void i7412 (void) ; /* SKP HLT */ +extern void u7412 (void) ; /* SKP HLT (user mode) */ +extern void i7414 (void) ; /* SKP OSR */ +extern void i7416 (void) ; /* SKP OSR HLT */ +extern void i7420 (void) ; /* SNL */ +extern unsigned s7420 (void) ; /* SNL (skip test) */ +extern void i7422 (void) ; /* SNL HLT */ +extern void u7422 (void) ; /* SNL HLT (user mode) */ +extern void i7424 (void) ; /* SNL OSR */ +extern void i7426 (void) ; /* SNL OSR HLT */ +extern void i7430 (void) ; /* SZL */ +extern unsigned s7430 (void) ; /* SZL (skipt test) */ +extern void i7432 (void) ; /* SZL HLT */ +extern void u7432 (void) ; /* SZL HLT (user mode) */ +extern void i7434 (void) ; /* SZL OSR */ +extern void i7436 (void) ; /* SZL OSR HLT */ +extern void i7440 (void) ; /* SZA */ +extern unsigned s7440 (void) ; /* SZA (skip test) */ +extern void i7442 (void) ; /* SZA HLT */ +extern void u7442 (void) ; /* SZA HLT (user mode) */ +extern void i7444 (void) ; /* SZA OSR */ +extern void i7446 (void) ; /* SZA OSR HLT */ +extern void i7450 (void) ; /* SNA */ +extern unsigned s7450 (void) ; /* SNA (skip test) */ +extern void i7452 (void) ; /* SNA HLT */ +extern void u7452 (void) ; /* SNA HLT (user mode) */ +extern void i7454 (void) ; /* SNA OSR */ +extern void i7456 (void) ; /* SNA OSR HLT */ +extern void i7460 (void) ; /* SZA SNL */ +extern unsigned s7460 (void) ; /* SZA SNL (skip test) */ +extern void i7462 (void) ; /* SZA SNL HLT */ +extern void u7462 (void) ; /* SZA SNL HLT (user mode) */ +extern void i7464 (void) ; /* SZA SNL OSR */ +extern void i7466 (void) ; /* SZA SNL OSR HLT */ +extern void i7470 (void) ; /* SNA SZL */ +extern unsigned s7470 (void) ; /* SNA SZL (skip test) */ +extern void i7472 (void) ; /* SNA SZL HLT */ +extern void u7472 (void) ; /* SNA SZL HLT (user mode) */ +extern void i7474 (void) ; /* SNA SZL OSR */ +extern void i7476 (void) ; /* SNA SZL OSR HLT */ +extern void i7500 (void) ; /* SMA */ +extern unsigned s7500 (void) ; /* SMA (skip test) */ +extern void i7502 (void) ; /* SMA HLT */ +extern void u7502 (void) ; /* SMA HLT (user mode) */ +extern void i7504 (void) ; /* SMA OSR */ +extern void i7506 (void) ; /* SMA OSR HLT */ +extern void i7510 (void) ; /* SPA */ +extern unsigned s7510 (void) ; /* SPA (skip test) */ +extern void i7512 (void) ; /* SPA HLT */ +extern void u7512 (void) ; /* SPA HLT (user mode) */ +extern void i7514 (void) ; /* SPA OSR */ +extern void i7516 (void) ; /* SPA OSR HLT */ +extern void i7520 (void) ; /* SMA SNL */ +extern unsigned s7520 (void) ; /* SMA SNL (skip test) */ +extern void i7522 (void) ; /* SMA SNL HLT */ +extern void u7522 (void) ; /* SMA SNL HLT (user mode) */ +extern void i7524 (void) ; /* SMA SNL OSR */ +extern void i7526 (void) ; /* SMA SNL OSR HLT */ +extern void i7530 (void) ; /* SPA SZL */ +extern unsigned s7530 (void) ; /* SPA SZL (skip test) */ +extern void i7532 (void) ; /* SPA SZL HLT */ +extern void u7532 (void) ; /* SPA SZL HLT (user mode) */ +extern void i7534 (void) ; /* SPA SZL OSR */ +extern void i7536 (void) ; /* SPA SZL OSR HLT */ +extern void i7540 (void) ; /* SMA SZA */ +extern unsigned s7540 (void) ; /* SMA SZA (skip test) */ +extern void i7542 (void) ; /* SMA SZA HLT */ +extern void u7542 (void) ; /* SMA SZA HLT (user mode) */ +extern void i7544 (void) ; /* SMA SZA OSR */ +extern void i7546 (void) ; /* SMA SZA OSR HLT */ +extern void i7550 (void) ; /* SPA SNA */ +extern unsigned s7550 (void) ; /* SPA SNA (skip test) */ +extern void i7552 (void) ; /* SPA SNA HLT */ +extern void u7552 (void) ; /* SPA SNA HLT (user mode) */ +extern void i7554 (void) ; /* SPA SNA OSR */ +extern void i7556 (void) ; /* SPA SNA OSR HLT */ +extern void i7560 (void) ; /* SMA SZA SNL */ +extern unsigned s7560 (void) ; /* SMA SZA SNL (skip test) */ +extern void i7562 (void) ; /* SMA SZA SNL HLT */ +extern void u7562 (void) ; /* SMA SZA SNL HLT (user mode) */ +extern void i7564 (void) ; /* SMA SZA SNL OSR */ +extern void i7566 (void) ; /* SMA SZA SNL OSR HLT */ +extern void i7570 (void) ; /* SPA SNA SZL */ +extern unsigned s7570 (void) ; /* SPA SNA SZL (skip test) */ +extern void i7572 (void) ; /* SPA SNA SZL HLT */ +extern void u7572 (void) ; /* SPA SNA SZL HLT (user mode) */ +extern void i7574 (void) ; /* SPA SNA SZL OSR */ +extern void i7576 (void) ; /* SPA SNA SZL OSR HLT */ +extern void i7600 (void) ; /* CLA Grp II */ +extern void i7602 (void) ; /* CLA HLT */ +extern void u7602 (void) ; /* CLA HLT (user mode) */ +extern void i7604 (void) ; /* CLA OSR */ +extern void i7606 (void) ; /* CLA OSR HLT */ +extern void i7610 (void) ; /* SKP CLA */ +extern void i7612 (void) ; /* SKP CLA HLT */ +extern void u7612 (void) ; /* SKP CLA HLT (user mode) */ +extern void i7614 (void) ; /* SKP CLA OSR */ +extern void i7616 (void) ; /* SKP CLA OSR HLT */ +extern void i7620 (void) ; /* SNL CLA */ +extern void i7622 (void) ; /* SNL CLA HLT */ +extern void u7622 (void) ; /* SNL CLA HLT (user mode) */ +extern void i7624 (void) ; /* SNL CLA OSR */ +extern void i7626 (void) ; /* SNL CLA OSR HLT */ +extern void i7630 (void) ; /* SZL CLA */ +extern void i7632 (void) ; /* SZL CLA HLT */ +extern void u7632 (void) ; /* SZL CLA HLT (user mode) */ +extern void i7634 (void) ; /* SZL CLA OSR */ +extern void i7636 (void) ; /* SZL CLA OSR HLT */ +extern void i7640 (void) ; /* SZA CLA */ +extern void i7642 (void) ; /* SZA CLA HLT */ +extern void u7642 (void) ; /* SZA CLA HLT (user mode) */ +extern void i7644 (void) ; /* SZA CLA OSR */ +extern void i7646 (void) ; /* SZA CLA OSR HLT */ +extern void i7650 (void) ; /* SNA CLA */ +extern void i7652 (void) ; /* SNA CLA HLT */ +extern void u7652 (void) ; /* SNA CLA HLT (user mode) */ +extern void i7654 (void) ; /* SNA CLA OSR */ +extern void i7656 (void) ; /* SNA CLA OSR HLT */ +extern void i7660 (void) ; /* SZA SNL CLA */ +extern void i7662 (void) ; /* SZA SNL CLA HLT */ +extern void u7662 (void) ; /* SZA SNL CLA HLT (user mode) */ +extern void i7664 (void) ; /* SZA SNL CLA OSR */ +extern void i7666 (void) ; /* SZA SNL CLA OSR HLT */ +extern void i7670 (void) ; /* SNA SZL CLA */ +extern void i7672 (void) ; /* SNA SZL CLA HLT */ +extern void u7672 (void) ; /* SNA SZL CLA HLT (user mode) */ +extern void i7674 (void) ; /* SNA SZL CLA OSR */ +extern void i7676 (void) ; /* SNA SZL CLA OSR HLT */ +extern void i7700 (void) ; /* SMA CLA */ +extern void i7702 (void) ; /* SMA CLA HLT */ +extern void u7702 (void) ; /* SMA CLA HLT */ +extern void i7704 (void) ; /* SMA CLA OSR */ +extern void i7706 (void) ; /* SMA CLA OSR HLT */ +extern void i7710 (void) ; /* SPA CLA */ +extern void i7712 (void) ; /* SPA CLA HLT */ +extern void u7712 (void) ; /* SPA CLA HLT (user mode) */ +extern void i7714 (void) ; /* SPA CLA OSR */ +extern void i7716 (void) ; /* SPA CLA OSR HLT */ +extern void i7720 (void) ; /* SMA SNL CLA */ +extern void i7722 (void) ; /* SMA SNL CLA HLT */ +extern void u7722 (void) ; /* SMA SNL CLA HLT (user mode) */ +extern void i7724 (void) ; /* SMA SNL CLA OSR */ +extern void i7726 (void) ; /* SMA SNL CLA OSR HLT */ +extern void i7730 (void) ; /* SPA SZL CLA */ +extern void i7732 (void) ; /* SPA SZL CLA HLT */ +extern void u7732 (void) ; /* SPA SZL CLA HLT (user mode) */ +extern void i7734 (void) ; /* SPA SZL CLA OSR */ +extern void i7736 (void) ; /* SPA SZL CLA OSR HLT */ +extern void i7740 (void) ; /* SMA SZA CLA */ +extern void i7742 (void) ; /* SMA SZA CLA HLT */ +extern void u7742 (void) ; /* SMA SZA CLA HLT (user mode) */ +extern void i7744 (void) ; /* SMA SZA CLA OSR */ +extern void i7746 (void) ; /* SMA SZA CLA OSR HLT */ +extern void i7750 (void) ; /* SPA SNA CLA */ +extern void i7752 (void) ; /* SPA SNA CLA HLT */ +extern void u7752 (void) ; /* SPA SNA CLA HLT (user mode) */ +extern void i7754 (void) ; /* SPA SNA CLA OSR */ +extern void i7756 (void) ; /* SPA SNA CLA OSR HLT */ +extern void i7760 (void) ; /* SMA SZA SNL CLA */ +extern void i7762 (void) ; /* SMA SZA SNL CLA HLT */ +extern void u7762 (void) ; /* SMA SZA SNL CLA HLT */ +extern void i7764 (void) ; /* SMA SZA SNL CLA OSR */ +extern void i7766 (void) ; /* SMA SZA SNL CLA OSR HLT */ +extern void i7770 (void) ; /* SPA SNA SZL CLA */ +extern void i7772 (void) ; /* SPA SNA SZL CLA HLT */ +extern void u7772 (void) ; /* SPA SNA SZL CLA HLT */ +extern void i7774 (void) ; /* SPA SNA SZL CLA OSR */ +extern void i7776 (void) ; /* SPA SNA SZL CLA OSR HLT */ +/* -------------------------------------------------------------------- */ diff --git a/Emulation/pdp8defines.h b/Emulation/pdp8defines.h new file mode 100644 index 0000000..432271b --- /dev/null +++ b/Emulation/pdp8defines.h @@ -0,0 +1,80 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * pdp8defines.h - #defines making the PDP8 class from + * PDP8.h compatible to Bill Haygoods pdp8 + * instruction execution routines + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +/* Types */ +#define VOID void +#define REG register +#define UWORD unsigned short +#define ULONG unsigned long +#define LONG long +#define INT short +#define UINT unsigned short +#define BYTE char +#define UBYTE unsigned char + + +/* Attributes of the PDP8 class */ +#define base (pdp8->mem) +#define SR (pdp8->SR) +#define AC (pdp8->AC) +#define PC (pdp8->PC) +#define SC (pdp8->SC) +#define MQ (pdp8->MQ) +#define GTF (pdp8->GTF) +#define IF (pdp8->IF) +#define IB (pdp8->IB) +#define W_IB (pdp8->W_IB) +#define DF (pdp8->DF) +#define W_DF (pdp8->W_DF) +#define UF (pdp8->UF) +#define UB (pdp8->UB) +#define SF (pdp8->SF) +#define int_ena (pdp8->IENABLE) +#define int_inh (pdp8->IINHIBIT) +#define delay (pdp8->IDELAY) +#define io_flags (pdp8->IOFLAGS) +#define int_mask (pdp8->IMASK) +#define EAE (pdp8->eaeMode) +#define tsc8 (pdp8->_tsc8) +#define hw (pdp8->_hw) +#define INST (pdp8->_state.currInst) +#define run (pdp8->_state.running) + + +/* The 12 bits of a PDP-8 word are numered 0-11 from left to right. + The following defines reflect this numbering. */ +#define BIT0 04000 +#define BIT1 02000 +#define BIT2 01000 +#define BIT3 00400 +#define BIT4 00200 +#define BIT5 00100 +#define BIT6 00040 +#define BIT7 00020 +#define BIT8 00010 +#define BIT9 00004 +#define BIT10 00002 +#define BIT11 00001 diff --git a/GeneralPreferences/English.lproj/GeneralPreferences.nib/classes.nib b/GeneralPreferences/English.lproj/GeneralPreferences.nib/classes.nib new file mode 100644 index 0000000..6e434bb --- /dev/null +++ b/GeneralPreferences/English.lproj/GeneralPreferences.nib/classes.nib @@ -0,0 +1,59 @@ + + + + + IBClasses + + + CLASS + NSControl + LANGUAGE + ObjC + SUPERCLASS + NSView + + + ACTIONS + + + id + + CLASS + FirstResponder + LANGUAGE + ObjC + SUPERCLASS + NSObject + + + CLASS + NSPreferencePane + LANGUAGE + ObjC + OUTLETS + + _firstKeyView + NSView + _initialKeyView + NSView + _lastKeyView + NSView + _window + NSWindow + + SUPERCLASS + NSObject + + + CLASS + GeneralPreferences + LANGUAGE + ObjC + SUPERCLASS + NSPreferencePane + + + IBVersion + 1 + + diff --git a/GeneralPreferences/English.lproj/GeneralPreferences.nib/info.nib b/GeneralPreferences/English.lproj/GeneralPreferences.nib/info.nib new file mode 100644 index 0000000..27bcd3a --- /dev/null +++ b/GeneralPreferences/English.lproj/GeneralPreferences.nib/info.nib @@ -0,0 +1,20 @@ + + + + + IBFramework Version + 644 + IBLastKnownRelativeProjectPath + ../../pdp8e-simulator.xcodeproj + IBOldestOS + 5 + IBOpenObjects + + 67 + + IBSystem Version + 9C31 + targetFramework + IBCocoaFramework + + diff --git a/GeneralPreferences/English.lproj/GeneralPreferences.nib/keyedobjects.nib b/GeneralPreferences/English.lproj/GeneralPreferences.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..3808a6a0cd7d9269610d842d850aa577a6e369fd GIT binary patch literal 24007 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 WH-bV9E*c`bkc%~0|0{mg`~DX&q&Bwz literal 0 HcmV?d00001 diff --git a/GeneralPreferences/English.lproj/GeneralPreferences~.nib/classes.nib b/GeneralPreferences/English.lproj/GeneralPreferences~.nib/classes.nib new file mode 100644 index 0000000..856f592 --- /dev/null +++ b/GeneralPreferences/English.lproj/GeneralPreferences~.nib/classes.nib @@ -0,0 +1,35 @@ +{ + IBClasses = ( + { + ACTIONS = {"" = id; }; + CLASS = FirstResponder; + LANGUAGE = ObjC; + SUPERCLASS = NSObject; + }, + { + ACTIONS = {driftChange = id; goSpeedClick = id; traceSpeedChange = id; }; + CLASS = GeneralPreferences; + LANGUAGE = ObjC; + OUTLETS = { + driftSlider = NSSlider; + driftSliderLeftLabel = NSTextField; + driftSliderRightLabel = NSTextField; + goSpeedRadiobuttons = NSMatrix; + traceSpeedSlider = NSSlider; + }; + SUPERCLASS = NSPreferencePane; + }, + { + CLASS = NSPreferencePane; + LANGUAGE = ObjC; + OUTLETS = { + "_firstKeyView" = NSView; + "_initialKeyView" = NSView; + "_lastKeyView" = NSView; + "_window" = NSWindow; + }; + SUPERCLASS = NSObject; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/GeneralPreferences/English.lproj/GeneralPreferences~.nib/info.nib b/GeneralPreferences/English.lproj/GeneralPreferences~.nib/info.nib new file mode 100644 index 0000000..51215fc --- /dev/null +++ b/GeneralPreferences/English.lproj/GeneralPreferences~.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 156 102 356 240 0 0 1440 878 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8L2127 + + diff --git a/GeneralPreferences/English.lproj/GeneralPreferences~.nib/keyedobjects.nib b/GeneralPreferences/English.lproj/GeneralPreferences~.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..9907ecdebc1bb74db63ba94a04c542b36269b067 GIT binary patch literal 14402 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 literal 0 HcmV?d00001 diff --git a/GeneralPreferences/English.lproj/InfoPlist.strings b/GeneralPreferences/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..0005eb5 --- /dev/null +++ b/GeneralPreferences/English.lproj/InfoPlist.strings @@ -0,0 +1,26 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * InfoPlist.strings - Localized strings for General preference pane Info.plist + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +NSPrefPaneIconLabel = "General"; +PrefPaneWindowTitle = "General Preferences"; diff --git a/GeneralPreferences/GeneralPreferences.h b/GeneralPreferences/GeneralPreferences.h new file mode 100644 index 0000000..bd2077f --- /dev/null +++ b/GeneralPreferences/GeneralPreferences.h @@ -0,0 +1,26 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * GeneralPreferences.h - General Preferences Pane + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#define GENERAL_PREFS_TRACE_SPEED_KEY @"TraceSpeed" +#define GENERAL_PREFS_GO_SPEED_KEY @"GoSpeed" diff --git a/GeneralPreferences/GeneralPreferences.m b/GeneralPreferences/GeneralPreferences.m new file mode 100644 index 0000000..a50a8e3 --- /dev/null +++ b/GeneralPreferences/GeneralPreferences.m @@ -0,0 +1,41 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * GeneralPreferences.m - General Preferences Pane + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "GeneralPreferences.h" + + +@interface GeneralPreferences : NSPreferencePane +{ +} + +@end + + +@implementation GeneralPreferences + +// empty class, otherwise the preference pane bundle has no loadable code and does not load + +@end diff --git a/GeneralPreferences/Info.plist b/GeneralPreferences/Info.plist new file mode 100644 index 0000000..a2353f7 --- /dev/null +++ b/GeneralPreferences/Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + de.bernhard-baehr.pdp8e.GeneralPreferences + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleSignature + ???? + CFBundleVersion + 2.0.2 + CFBundleShortVersionString + 2.0.2 + NSMainNibFile + GeneralPreferences + NSPrefPaneIconFile + generalPrefIcon.tiff + NSPrefPaneIconLabel + General + NSPrincipalClass + GeneralPreferences + OrderInPreferencesPanelToolbar + 01 + PrefPaneWindowTitle + General Preferences + + diff --git a/GeneralPreferences/generalPrefIcon.tiff b/GeneralPreferences/generalPrefIcon.tiff new file mode 100644 index 0000000000000000000000000000000000000000..5fd226bc41941120ded1ff52711de25d470808d1 GIT binary patch literal 2046 zcmYk7c{tSj9>;%U8)S)WQzBv9_WWY22d}DiwmWkJ!5#jlXiCLWTNBo!n0gYLfGQ~z0z~s z5!2lFm$Y2Z!xy?advFZ7O?Q54_j@k*(360Da|u=H_5>U0ZFUp3=ZqPped!-kQ{1i3dEZe}2Ze*|c9(nX;Def(fsQR{YkrkRU5xrUbV)!|T35kk}Tw<$( zF|!1MPMN)6@bc@}E%qGoOxgf1UNxE)BdGWLk&v7_rrAL5U`G8KKK3s`q;VNz_B294 z&=rPQ$+tW~HSOeFiJf#T2TQ?EO^mtQ*7pVGn)xRD!#JJ2`V8OXZRjqv7xXhwaob`| zt%AuU99h$c_O)w>mke4GZ};LE+zK&reXsPLZx)hA+Gnb$wV%GDX;QOERgQeUq_)mn zge1#|$(3*E*H{1fM`!KsL(gfiG147z%RwqE_x8{Oma$hpC%4g;l zDn%KJmeb&dHLPVVs%o=pRa^7to?H5&uxCp$5wH&my|+$vt;^6vJ0oY(uXRC5)7Kd5 zffL5A>w#=j*P-~VM<4Km7V_}VH~8cXtdu}%kh+bqWz701+3VF>EE%vof1;W7zq-Lg z_ubb1ho&Ai!Gb)}NfIPhcE(t{jT&n>dt*o5ok1D#VlG(@%r2&Q_(FFGL5vw74bI?P z_=I|zP!wRqQffTw<(F{AK74#M@)t3$B8~7wjUwZhiSW&i#%Oj^2P@Wd>}wh&jNHJR?eAo%$7+SeV@<%ud}d2}-_ zq3Tj`-OYx%=EoYi$7<)R>$KW}Z%vC}i%XvG~y44FQ0!DU!2oAAH{=-p9pqg6PR9^Gc zju=hOffE}&CcWKCX5w)JUl&s>sadIDm7}4rqxp{dstmamF#y5qNKg)Hid)spt>Ms| z3|qb;6KiwTfe$+wVkl<}6f5>^cf+*#v2ET~=E{e*k_u2_t=4@a7rVAIZTXha!ELZd zv>}~SG{Iu_V!muxQS0U4?P{7BDBC<$o3GG5{P;xHyp^Q2B$-y9bPBrN534rKlp9k8 zaCfA$5OgiN2YBE!dQ)@0z|vtn&O>W9T>bi;EArbsjnKa*(r+zVI5w{Xc=QfDbhb-& z#07Y0v*pFrv+EiX$mvjOtU|@`2j->C@aFv~9ugMa<9nJjQnPt4ry}X7Kg6hNV3A_2 zR8LEgKE9M&e2(I2rdoCKIMeLV@G?0kI~CKORiG$$^bECLpcifhsyvts$X|PhoW4Gs zfBHSP&uMv@o?4yvjZ#C0y*24nnyf&kkoqOc^#g|1OkX@dc790EnehaaTJLLzrmtc; zkd#AV=^Hd_fiVp$U39gOrTJ3mZ-a@5Uv@*5U7}ddig7o_6 zG=X9vZplO$;4+>>rZ9K)zro_XinR&;S$dZ_L^?oIypO00uXry7fIaI>`u z(=OfupZOGSbM~G|%pUXQN0Be=Z5M(IrLaZSkQ+GSdetzwu=%=RoNXQz)AqzidTeF7 zzTC&U)!@Z_#fLG)B%~5_cQKKJkIu^(Qv7xk_TKy0&h+k5D)G_I`;Uvi=e3!noN@=> zm9&^m{VoP^Qd97VJl%Rh&0caf31l{(YYlc5y|Ma1nT5V68$4-BU2W20CDG(VoJHas z>_;0o7!~=|C0g$Vg`@bkKxu0*v2GmOX$xwIyCl=sRxq6t&|_gTc?G{)+I0J=>V!>} z6kZ8;>mF$(cMU0qFe#!UH)IqGjND3IK}7z!Lo-U3>Ad^OFrv?|1{LlyRfbH9>Nour z9TE7(s$m*>6t8`TH!RLT3eteXqSo^UQujAd*@I@MZ07qEs$cu$4f|UFfTsu`2LS+4 z001DsQQ-yo3yb`h#e~1=97J^Aiwk=s_E|*83V^UK%mRQUM0wu}4MgQn4*?*me=^hv uau^U!_)kA{1#;wnya`d?&k8FLy}!)&{J$6Ggj@EHG(Q~xbPodi@4o?}!l2dw literal 0 HcmV?d00001 diff --git a/KC8EA/BackgroundView.h b/KC8EA/BackgroundView.h new file mode 100644 index 0000000..c0d6a70 --- /dev/null +++ b/KC8EA/BackgroundView.h @@ -0,0 +1,33 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * BackgroundView.h - NSView for a background image for a window + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@interface BackgroundView : NSView +{ +@private + NSImage *backgroundImage; +} + +- (void) setBackgroundImage:(NSString *)imageName ofType:(NSString *)type; + +@end diff --git a/KC8EA/BackgroundView.m b/KC8EA/BackgroundView.m new file mode 100644 index 0000000..c7b0cb9 --- /dev/null +++ b/KC8EA/BackgroundView.m @@ -0,0 +1,47 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * BackgroundView.m - NSView for a background image for a window + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "BackgroundView.h" + + +@implementation BackgroundView + + +- (void) setBackgroundImage:(NSString *)imageName ofType:(NSString *)type; +{ + backgroundImage = [[NSImage alloc] initByReferencingFile: + [[NSBundle bundleForClass:[self class]] pathForResource:imageName ofType:type]]; +} + + +- (void) drawRect:(NSRect)rect +{ + [backgroundImage drawInRect:[self bounds] fromRect:NSZeroRect + operation:NSCompositeSourceOver fraction:1]; +} + + +@end diff --git a/KC8EA/ConsoleSwitchCell.h b/KC8EA/ConsoleSwitchCell.h new file mode 100644 index 0000000..d3f852b --- /dev/null +++ b/KC8EA/ConsoleSwitchCell.h @@ -0,0 +1,46 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ConsoleSwitchCell.h - NSButtonCell subclass for the console switches + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +// for toggles with default position "up" +// - image is up image with shaddow +// - alternate image is down position +// - alternate title is the name of the up position image with shadow +// for switches +// - image is the down image +// - alternate image is the up position image without shadow +// - alternate title is the name of the up position image with shadow +// tag value == -1 for a momentary changing switch, otherwise it is a dual state switch + + +@interface ConsoleSwitchCell : NSButtonCell +{ +@private + IBOutlet ConsoleSwitchCell *leftNeighbour; + NSImage *upWithShadow; + NSImage *upWithoutShadow; +} + +- (void) updateShadow:(BOOL)showShadow; + +@end diff --git a/KC8EA/ConsoleSwitchCell.m b/KC8EA/ConsoleSwitchCell.m new file mode 100644 index 0000000..05e734d --- /dev/null +++ b/KC8EA/ConsoleSwitchCell.m @@ -0,0 +1,92 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ConsoleSwitchCell.h - NSButtonCell subclass for the console switches + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "ConsoleSwitchCell.h" + + +@implementation ConsoleSwitchCell + + +- (void) awakeFromNib +{ + if ([self tag] == -1) { + upWithoutShadow = [[NSImage alloc] initByReferencingFile: + [[NSBundle bundleForClass:[self class]] + pathForResource:[self alternateTitle] ofType:@"png"]]; + upWithShadow = [[self image] retain]; + } else { + upWithoutShadow = [[self alternateImage] retain]; + upWithShadow = [[NSImage alloc] initByReferencingFile: + [[NSBundle bundleForClass:[self class]] + pathForResource:[self alternateTitle] ofType:@"png"]]; + } + [(NSButton *)[self controlView] setAlternateTitle:nil]; +} + + +- (void) highlight:(BOOL)flag withFrame:(NSRect)frame inView:(NSView *)view +{ + // we need highlight only for momentary changing switches, detected via tag value -1 + if ([self tag] == -1) { + [super highlight:flag withFrame:frame inView:view]; + [leftNeighbour updateShadow:! flag]; + } + else + [view setNeedsDisplay:YES]; +} + + +- (void) performClick:(id)sender +{ + // called by the key equivalents; the default method causes the switch to highlight + // we need highlight only for momentary changing switches, detected via tag value -1 + if ([self tag] == -1) + [super performClick:sender]; + else { + [self setState:! [self state]]; + [[self target] performSelector:[self action] withObject:sender]; + } + [[self controlView] setNeedsDisplay:YES]; // to show keyboad operation via space key with Tiger +} + + +- (void) setState:(int)state +{ + [super setState:state]; + [leftNeighbour updateShadow:state]; +} + + +- (void) updateShadow:(BOOL)showShadow +{ + if ([self tag] == -1) + [self setImage:showShadow ? upWithShadow : upWithoutShadow]; + else + [self setAlternateImage:showShadow ? upWithShadow : upWithoutShadow]; +} + + +@end diff --git a/KC8EA/English.lproj/InfoPlist.strings b/KC8EA/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..5c9eeda --- /dev/null +++ b/KC8EA/English.lproj/InfoPlist.strings @@ -0,0 +1,28 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * InfoPlist.strings - Localized strings for Info.plist + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +CFBundleName = "KC8-EA Programmer’s Console"; +CFBundleGetInfoString = "KC8-EA Programmer’s Console 2.0.2, Copyright © 1994-2015 Bernhard Baehr"; +NSHumanReadableCopyright = "Copyright © 1994-2015 Bernhard Baehr"; +CFBundleHelpBookName = "KC8-EA Programmer's Console Help"; \ No newline at end of file diff --git a/KC8EA/English.lproj/KC8EA.nib/designable.nib b/KC8EA/English.lproj/KC8EA.nib/designable.nib new file mode 100644 index 0000000..f783dec --- /dev/null +++ b/KC8EA/English.lproj/KC8EA.nib/designable.nib @@ -0,0 +1,5123 @@ + + + + 1040 + 13E28 + 851 + 1265.21 + 698.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + KC8EA + + + FirstResponder + + + NSApplication + + + 7 + 2 + {{0, 171}, {1280, 585}} + 1618478080 + KC8-EA Programmer’s Console + KeepInMenuWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + YES + + + 268 + {{361, 84}, {38, 54}} + + + 1 + YES + + 67108864 + 167804928 + + + LucidaGrande + 13 + 1040 + + + 1 + 1212960768 + 134217730 + + NSImage + sr1down + + + NSImage + sr1up_sr2down + + sr1up_sr2up + 1 + 400 + 75 + + NO + + + + 268 + {{323, 84}, {38, 54}} + + + YES + + 67108864 + 167804928 + + + + 1212960768 + 134217730 + + NSImage + sr0down + + + NSImage + sr0up_sr1down + + sr0up_sr1up + 0 + 400 + 75 + + NO + + + + 268 + {{246, 82}, {41, 55}} + + + YES + + 67108864 + 167804928 + + + + 1212960768 + 134217730 + + NSImage + sw_down + + + NSImage + sw_up + + sw_up + w + 400 + 75 + + NO + + + + 268 + {{810, 84}, {39, 55}} + + + YES + + -2080374784 + 167804928 + + + + -1 + 139214848 + 134217730 + + NSImage + addrload_up_extdaddrload_up + + + NSImage + addrload_down + + addrload_up_extdaddrload_down + l + 400 + 75 + + NO + + + + 268 + {{849, 84}, {38, 55}} + + + YES + + 67108864 + 167804928 + + + + -1 + 139214848 + 134217730 + + NSImage + extdaddrload_up + + + NSImage + extdaddrload_down + + extdaddrload_up + x + 400 + 75 + + NO + + + + 268 + {{922, 84}, {39, 55}} + + + YES + + 67108864 + 167804928 + + + + -1 + 139214848 + 134217730 + + NSImage + clear_up_cont_up + + + NSImage + clear_down + + clear_up_cont_down + c + 400 + 75 + + NO + + + + 268 + {{961, 84}, {37, 55}} + + + YES + + 67108864 + 167804928 + + + + -1 + 139214848 + 134217730 + + NSImage + cont_up_exam_up + + + NSImage + cont_down + + cont_up_exam_down + t + 400 + 75 + + NO + + + + 268 + {{998, 84}, {39, 55}} + + + YES + + 67108864 + 167804928 + + + + -1 + 139214848 + 134217730 + + NSImage + exam_up_halt_up + + + NSImage + exam_down + + exam_up_halt_down + e + 400 + 75 + + NO + + + + 268 + {{399, 84}, {37, 54}} + + + 2 + YES + + 67108864 + 167804928 + + + + 2 + 1212960768 + 134217730 + + NSImage + sr2down + + + NSImage + sr2up_sr3down + + sr2up_sr3up + 2 + 400 + 75 + + NO + + + + 268 + {{436, 84}, {37, 54}} + + + 3 + YES + + 67108864 + 167804928 + + + + 3 + 1212960768 + 134217730 + + NSImage + sr3down + + + NSImage + sr3up_sr4down + + sr3up_sr4up + 3 + 400 + 75 + + NO + + + + 268 + {{473, 84}, {38, 54}} + + + 4 + YES + + 67108864 + 167804928 + + + + 4 + 1212960768 + 134217730 + + NSImage + sr4down + + + NSImage + sr4up_sr5down + + sr4up_sr5up + 4 + 400 + 75 + + NO + + + + 268 + {{511, 84}, {37, 54}} + + + 5 + YES + + 67108864 + 167804928 + + + + 5 + 1212960768 + 134217730 + + NSImage + sr5down + + + NSImage + sr5up_sr6down + + sr5up_sr6up + 5 + 400 + 75 + + NO + + + + 268 + {{548, 84}, {38, 54}} + + + 6 + YES + + 67108864 + 167804928 + + + + 6 + 1212960768 + 134217730 + + NSImage + sr6down + + + NSImage + sr6up_sr7down + + sr6up_sr7up + 6 + 400 + 75 + + NO + + + + 268 + {{586, 84}, {38, 54}} + + + 7 + YES + + 67108864 + 167804928 + + + + 7 + 1212960768 + 134217730 + + NSImage + sr7down + + + NSImage + sr7up_sr8down + + sr7up_sr8up + 7 + 400 + 75 + + NO + + + + 268 + {{624, 84}, {37, 54}} + + + 8 + YES + + 67108864 + 167804928 + + + + 8 + 1212960768 + 134217730 + + NSImage + sr8down + + + NSImage + sr8up_sr9down + + sr8up_sr9up + 8 + 400 + 75 + + NO + + + + 268 + {{661, 84}, {38, 54}} + + + 9 + YES + + 67108864 + 167804928 + + + + 9 + 1212960768 + 134217730 + + NSImage + sr9down + + + NSImage + sr9up_sr10down + + sr9up_sr10up + 9 + 400 + 75 + + NO + + + + 268 + {{699, 84}, {37, 54}} + + + 10 + YES + + 67108864 + 167804928 + + + + 10 + 1212960768 + 134217730 + + NSImage + sr10down + + + NSImage + sr10up_sr11down + + sr10up_sr11up + a + 400 + 75 + + NO + + + + 268 + {{736, 84}, {38, 54}} + + + 11 + YES + + 67108864 + 167804928 + + + + 11 + 1212960768 + 134217730 + + NSImage + sr11down + + + NSImage + sr11up + + sr11up + b + 400 + 75 + + NO + + + + 268 + {{1037, 84}, {37, 55}} + + + YES + + -2080374784 + 167804928 + + + + 1212960768 + 134217730 + + NSImage + halt_down + + + NSImage + halt_up_singstep_down + + halt_up_singstep_up + h + 400 + 75 + + NO + + + + 268 + {{1074, 84}, {39, 55}} + + + YES + + -2080374784 + 167804928 + + + + 1212960768 + 134217730 + + NSImage + singstep_down + + + NSImage + singstep_up + + singstep_up + s + 400 + 75 + + NO + + + + 268 + {{1148, 84}, {42, 55}} + + YES + + 67108864 + 167804928 + + + + -1 + 139214848 + 134217730 + + NSImage + dep_down + + + NSImage + dep_up + + dep_up + d + 400 + 75 + + NO + + + + 268 + {{809, 214}, {82, 92}} + + + YES + + 67108864 + 167804928 + + + + 6 + 139214848 + 134217730 + + NSImage + knob0 + + + knob + < + 400 + 75 + + NO + + + + 268 + {{84, 77}, {127, 70}} + + + YES + + 67108864 + 167804928 + + + + -3 + 139214848 + 134217730 + + NSImage + key0 + + + key + > + 400 + 75 + + NO + + + + 268 + {{221, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + NSImage + light_off + + + NSImage + light_on + + + + 200 + 25 + + NO + + + + 268 + {{258, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{295, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{333, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{370, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{407, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{445, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{482, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{519, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{557, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{594, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{631, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{669, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{706, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{743, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{890, 361}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{333, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{370, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{407, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{445, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{482, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{519, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{557, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{594, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{631, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{669, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{706, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{743, 320}, {18, 18}} + + + YES + + 603979776 + 134217728 + + + + 1212436480 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{323, 293.30859375}, {111, 19}} + + _NS:1109 + NSCustomView + + + + 268 + {{435, 293}, {112, 19}} + + _NS:1109 + NSCustomView + + + + 268 + {{548.75, 275}, {110, 17}} + + _NS:1109 + NSCustomView + + + + 268 + {{511, 275}, {36, 17}} + + _NS:1109 + NSCustomView + + + + 268 + {{473, 275}, {37, 17}} + + _NS:1109 + NSCustomView + + + + 268 + {{435.5, 275}, {36, 17}} + + _NS:1109 + NSCustomView + + + + 268 + {{398, 275}, {36, 17}} + + _NS:1109 + NSCustomView + + + + 268 + {{360.5, 275}, {36, 17}} + + _NS:1109 + NSCustomView + + + + 268 + {{323, 275}, {36, 17}} + + _NS:1109 + NSCustomView + + + + 268 + {{660, 275}, {112, 17}} + + _NS:1109 + NSCustomView + + + + 268 + {{548.5, 293}, {36, 19}} + + _NS:1109 + NSCustomView + + + + 268 + {{586, 293}, {35, 19}} + + _NS:1109 + NSCustomView + + + + 268 + {{622, 293}, {37, 19}} + + _NS:1109 + NSCustomView + + + + 268 + {{660, 293}, {36, 19}} + + _NS:1109 + NSCustomView + + + + 268 + {{697.5, 293}, {36, 19}} + + _NS:1109 + NSCustomView + + + + 268 + {{735, 293}, {37, 19}} + + _NS:1109 + NSCustomView + + + {1280, 585} + + + + {{0, 0}, {1280, 778}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + KC8EAWindow + YES + + + + + YES + + + window + + + + 3 + + + + sr1 + + + + 129 + + + + sr2 + + + + 130 + + + + sr3 + + + + 131 + + + + sr4 + + + + 132 + + + + sr5 + + + + 133 + + + + sr6 + + + + 134 + + + + sr7 + + + + 135 + + + + sr8 + + + + 136 + + + + sr9 + + + + 137 + + + + sr10 + + + + 138 + + + + sr11 + + + + 139 + + + + srClicked: + + + + 141 + + + + srClicked: + + + + 142 + + + + srClicked: + + + + 143 + + + + srClicked: + + + + 144 + + + + srClicked: + + + + 145 + + + + srClicked: + + + + 146 + + + + srClicked: + + + + 147 + + + + srClicked: + + + + 148 + + + + srClicked: + + + + 149 + + + + srClicked: + + + + 150 + + + + srClicked: + + + + 151 + + + + srClicked: + + + + 156 + + + + sr0 + + + + 157 + + + + addrload + + + + 210 + + + + sw + + + + 211 + + + + addrloadClicked: + + + + 212 + + + + swClicked: + + + + 213 + + + + extdaddrloadClicked: + + + + 217 + + + + extdaddrload + + + + 218 + + + + clear + + + + 224 + + + + clearClicked: + + + + 225 + + + + cont + + + + 235 + + + + contClicked: + + + + 236 + + + + exam + + + + 237 + + + + examClicked: + + + + 238 + + + + halt + + + + 244 + + + + haltClicked: + + + + 245 + + + + singstep + + + + 252 + + + + stingstepClicked: + + + + 253 + + + + leftNeighbour + + + + 254 + + + + leftNeighbour + + + + 255 + + + + leftNeighbour + + + + 256 + + + + leftNeighbour + + + + 257 + + + + leftNeighbour + + + + 258 + + + + leftNeighbour + + + + 259 + + + + leftNeighbour + + + + 260 + + + + leftNeighbour + + + + 261 + + + + leftNeighbour + + + + 262 + + + + leftNeighbour + + + + 263 + + + + leftNeighbour + + + + 264 + + + + leftNeighbour + + + + 265 + + + + leftNeighbour + + + + 266 + + + + leftNeighbour + + + + 267 + + + + leftNeighbour + + + + 268 + + + + leftNeighbour + + + + 269 + + + + depClicked: + + + + 274 + + + + dep + + + + 275 + + + + knobClicked: + + + + 305 + + + + knob + + + + 309 + + + + key + + + + 310 + + + + keyClicked: + + + + 311 + + + + addr0 + + + + 369 + + + + addr1 + + + + 370 + + + + addr2 + + + + 371 + + + + addr3 + + + + 372 + + + + addr14 + + + + 373 + + + + addr13 + + + + 374 + + + + addr12 + + + + 375 + + + + addr11 + + + + 376 + + + + addr10 + + + + 377 + + + + addr9 + + + + 378 + + + + addr4 + + + + 384 + + + + addr5 + + + + 385 + + + + addr6 + + + + 386 + + + + addr7 + + + + 387 + + + + addr8 + + + + 388 + + + + run + + + + 401 + + + + display0 + + + + 403 + + + + display1 + + + + 404 + + + + display2 + + + + 405 + + + + display11 + + + + 406 + + + + display10 + + + + 407 + + + + display9 + + + + 408 + + + + display3 + + + + 409 + + + + display4 + + + + 410 + + + + display5 + + + + 411 + + + + display6 + + + + 412 + + + + display7 + + + + 413 + + + + display8 + + + + 414 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + 2 + + + YES + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 106 + + + YES + + + + + + 107 + + + + + 108 + + + YES + + + + + + 109 + + + + + 110 + + + YES + + + + + + 111 + + + + + 112 + + + YES + + + + + + 113 + + + + + 114 + + + YES + + + + + + 115 + + + + + 116 + + + YES + + + + + + 117 + + + + + 118 + + + YES + + + + + + 119 + + + + + 120 + + + YES + + + + + + 121 + + + + + 122 + + + YES + + + + + + 123 + + + + + 124 + + + YES + + + + + + 125 + + + + + 126 + + + YES + + + + + + 127 + + + + + 154 + + + YES + + + + + + 155 + + + + + 203 + + + YES + + + + + + 204 + + + + + 207 + + + YES + + + + + + 208 + + + + + 214 + + + YES + + + + + + 215 + + + + + 220 + + + YES + + + + + + 221 + + + + + 226 + + + YES + + + + + + 227 + + + + + 231 + + + YES + + + + + + 232 + + + + + 240 + + + YES + + + + + + 241 + + + + + 247 + + + YES + + + + + + 248 + + + + + 270 + + + YES + + + + + + 271 + + + + + 303 + + + YES + + + + + + 304 + + + + + 306 + + + YES + + + + + + 307 + + + + + 312 + + + YES + + + + + + 313 + + + + + 315 + + + YES + + + + + + 316 + + + + + 317 + + + YES + + + + + + 318 + + + + + 319 + + + YES + + + + + + 320 + + + + + 321 + + + YES + + + + + + 322 + + + YES + + + + + + 323 + + + YES + + + + + + 324 + + + YES + + + + + + 325 + + + + + 326 + + + + + 327 + + + + + 328 + + + + + 329 + + + YES + + + + + + 330 + + + YES + + + + + + 331 + + + YES + + + + + + 332 + + + YES + + + + + + 333 + + + YES + + + + + + 334 + + + YES + + + + + + 335 + + + YES + + + + + + 336 + + + + + 337 + + + + + 338 + + + + + 339 + + + + + 340 + + + + + 341 + + + + + 342 + + + + + 343 + + + YES + + + + + + 344 + + + YES + + + + + + 345 + + + YES + + + + + + 346 + + + YES + + + + + + 347 + + + YES + + + + + + 348 + + + YES + + + + + + 349 + + + YES + + + + + + 350 + + + YES + + + + + + 351 + + + YES + + + + + + 352 + + + YES + + + + + + 353 + + + YES + + + + + + 354 + + + YES + + + + + + 355 + + + + + 356 + + + + + 357 + + + + + 358 + + + + + 359 + + + + + 360 + + + + + 361 + + + + + 362 + + + + + 363 + + + + + 364 + + + + + 365 + + + + + 366 + + + + + 367 + + + YES + + + + + + 368 + + + + + 416 + + + + + 417 + + + + + 418 + + + + + 420 + + + + + 421 + + + + + 422 + + + + + 423 + + + + + 424 + + + + + 425 + + + + + 426 + + + + + 427 + + + + + 428 + + + + + 429 + + + + + 430 + + + + + 431 + + + + + 432 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBWindowTemplateEditedContentRect + 1.NSWindowTemplate.visibleAtLaunch + 106.IBAttributePlaceholdersKey + 106.IBPluginDependency + 107.CustomClassName + 107.IBPluginDependency + 108.IBAttributePlaceholdersKey + 108.IBPluginDependency + 109.CustomClassName + 109.IBPluginDependency + 110.IBAttributePlaceholdersKey + 110.IBPluginDependency + 111.CustomClassName + 111.IBPluginDependency + 112.IBAttributePlaceholdersKey + 112.IBPluginDependency + 113.CustomClassName + 113.IBPluginDependency + 114.IBAttributePlaceholdersKey + 114.IBPluginDependency + 115.CustomClassName + 115.IBPluginDependency + 116.IBAttributePlaceholdersKey + 116.IBPluginDependency + 117.CustomClassName + 117.IBPluginDependency + 118.IBAttributePlaceholdersKey + 118.IBPluginDependency + 119.CustomClassName + 119.IBPluginDependency + 120.IBAttributePlaceholdersKey + 120.IBPluginDependency + 121.CustomClassName + 121.IBPluginDependency + 122.IBAttributePlaceholdersKey + 122.IBPluginDependency + 123.CustomClassName + 123.IBPluginDependency + 124.IBAttributePlaceholdersKey + 124.IBPluginDependency + 125.CustomClassName + 125.IBPluginDependency + 126.IBAttributePlaceholdersKey + 126.IBPluginDependency + 127.CustomClassName + 127.IBPluginDependency + 154.IBAttributePlaceholdersKey + 154.IBPluginDependency + 155.CustomClassName + 155.IBPluginDependency + 2.CustomClassName + 2.IBAttributePlaceholdersKey + 2.IBPluginDependency + 203.IBAttributePlaceholdersKey + 203.IBPluginDependency + 204.CustomClassName + 204.IBPluginDependency + 207.IBAttributePlaceholdersKey + 207.IBPluginDependency + 208.CustomClassName + 208.IBPluginDependency + 214.IBAttributePlaceholdersKey + 214.IBPluginDependency + 215.CustomClassName + 215.IBPluginDependency + 220.IBAttributePlaceholdersKey + 220.IBPluginDependency + 220.IBViewBoundsToFrameTransform + 221.CustomClassName + 221.IBPluginDependency + 226.IBAttributePlaceholdersKey + 226.IBPluginDependency + 227.CustomClassName + 227.IBPluginDependency + 231.IBAttributePlaceholdersKey + 231.IBPluginDependency + 232.CustomClassName + 232.IBPluginDependency + 240.IBAttributePlaceholdersKey + 240.IBPluginDependency + 241.CustomClassName + 241.IBPluginDependency + 247.IBAttributePlaceholdersKey + 247.IBPluginDependency + 247.IBViewBoundsToFrameTransform + 248.CustomClassName + 248.IBPluginDependency + 270.IBAttributePlaceholdersKey + 270.IBPluginDependency + 271.CustomClassName + 271.IBPluginDependency + 303.IBAttributePlaceholdersKey + 303.IBPluginDependency + 304.CustomClassName + 304.IBPluginDependency + 306.IBAttributePlaceholdersKey + 306.IBPluginDependency + 307.CustomClassName + 307.IBPluginDependency + 312.IBAttributePlaceholdersKey + 312.IBPluginDependency + 313.IBPluginDependency + 315.IBAttributePlaceholdersKey + 315.IBPluginDependency + 316.IBPluginDependency + 317.IBAttributePlaceholdersKey + 317.IBPluginDependency + 318.IBPluginDependency + 319.IBAttributePlaceholdersKey + 319.IBPluginDependency + 320.IBPluginDependency + 321.IBAttributePlaceholdersKey + 321.IBPluginDependency + 322.IBAttributePlaceholdersKey + 322.IBPluginDependency + 323.IBAttributePlaceholdersKey + 323.IBPluginDependency + 324.IBAttributePlaceholdersKey + 324.IBPluginDependency + 325.IBPluginDependency + 326.IBPluginDependency + 327.IBPluginDependency + 328.IBPluginDependency + 329.IBAttributePlaceholdersKey + 329.IBPluginDependency + 330.IBAttributePlaceholdersKey + 330.IBPluginDependency + 331.IBAttributePlaceholdersKey + 331.IBPluginDependency + 332.IBAttributePlaceholdersKey + 332.IBPluginDependency + 333.IBAttributePlaceholdersKey + 333.IBPluginDependency + 334.IBAttributePlaceholdersKey + 334.IBPluginDependency + 335.IBAttributePlaceholdersKey + 335.IBPluginDependency + 336.IBPluginDependency + 337.IBPluginDependency + 338.IBPluginDependency + 339.IBPluginDependency + 340.IBPluginDependency + 341.IBPluginDependency + 342.IBPluginDependency + 343.IBAttributePlaceholdersKey + 343.IBPluginDependency + 344.IBAttributePlaceholdersKey + 344.IBPluginDependency + 345.IBAttributePlaceholdersKey + 345.IBPluginDependency + 346.IBAttributePlaceholdersKey + 346.IBPluginDependency + 347.IBAttributePlaceholdersKey + 347.IBPluginDependency + 348.IBAttributePlaceholdersKey + 348.IBPluginDependency + 349.IBAttributePlaceholdersKey + 349.IBPluginDependency + 350.IBAttributePlaceholdersKey + 350.IBPluginDependency + 351.IBAttributePlaceholdersKey + 351.IBPluginDependency + 352.IBAttributePlaceholdersKey + 352.IBPluginDependency + 353.IBAttributePlaceholdersKey + 353.IBPluginDependency + 354.IBAttributePlaceholdersKey + 354.IBPluginDependency + 355.IBPluginDependency + 356.IBPluginDependency + 357.IBPluginDependency + 358.IBPluginDependency + 359.IBPluginDependency + 360.IBPluginDependency + 361.IBPluginDependency + 362.IBPluginDependency + 363.IBPluginDependency + 364.IBPluginDependency + 365.IBPluginDependency + 366.IBPluginDependency + 367.IBAttributePlaceholdersKey + 367.IBPluginDependency + 368.IBPluginDependency + 416.IBAttributePlaceholdersKey + 416.IBPluginDependency + 416.IBViewBoundsToFrameTransform + 416.IBViewIntegration.shadowBlurRadius + 416.IBViewIntegration.shadowColor + 416.IBViewIntegration.shadowOffsetHeight + 416.IBViewIntegration.shadowOffsetWidth + 417.IBAttributePlaceholdersKey + 417.IBPluginDependency + 417.IBViewBoundsToFrameTransform + 417.IBViewIntegration.shadowBlurRadius + 417.IBViewIntegration.shadowColor + 417.IBViewIntegration.shadowOffsetHeight + 417.IBViewIntegration.shadowOffsetWidth + 418.IBAttributePlaceholdersKey + 418.IBPluginDependency + 418.IBViewBoundsToFrameTransform + 418.IBViewIntegration.shadowBlurRadius + 418.IBViewIntegration.shadowColor + 418.IBViewIntegration.shadowOffsetHeight + 418.IBViewIntegration.shadowOffsetWidth + 420.IBAttributePlaceholdersKey + 420.IBPluginDependency + 420.IBViewBoundsToFrameTransform + 420.IBViewIntegration.shadowBlurRadius + 420.IBViewIntegration.shadowColor + 420.IBViewIntegration.shadowOffsetHeight + 420.IBViewIntegration.shadowOffsetWidth + 421.IBAttributePlaceholdersKey + 421.IBPluginDependency + 421.IBViewBoundsToFrameTransform + 421.IBViewIntegration.shadowBlurRadius + 421.IBViewIntegration.shadowColor + 421.IBViewIntegration.shadowOffsetHeight + 421.IBViewIntegration.shadowOffsetWidth + 422.IBAttributePlaceholdersKey + 422.IBPluginDependency + 422.IBViewBoundsToFrameTransform + 422.IBViewIntegration.shadowBlurRadius + 422.IBViewIntegration.shadowColor + 422.IBViewIntegration.shadowOffsetHeight + 422.IBViewIntegration.shadowOffsetWidth + 423.IBAttributePlaceholdersKey + 423.IBPluginDependency + 423.IBViewBoundsToFrameTransform + 423.IBViewIntegration.shadowBlurRadius + 423.IBViewIntegration.shadowColor + 423.IBViewIntegration.shadowOffsetHeight + 423.IBViewIntegration.shadowOffsetWidth + 424.IBAttributePlaceholdersKey + 424.IBPluginDependency + 424.IBViewBoundsToFrameTransform + 424.IBViewIntegration.shadowBlurRadius + 424.IBViewIntegration.shadowColor + 424.IBViewIntegration.shadowOffsetHeight + 424.IBViewIntegration.shadowOffsetWidth + 425.IBAttributePlaceholdersKey + 425.IBPluginDependency + 425.IBViewBoundsToFrameTransform + 425.IBViewIntegration.shadowBlurRadius + 425.IBViewIntegration.shadowColor + 425.IBViewIntegration.shadowOffsetHeight + 425.IBViewIntegration.shadowOffsetWidth + 426.IBAttributePlaceholdersKey + 426.IBPluginDependency + 426.IBViewBoundsToFrameTransform + 426.IBViewIntegration.shadowBlurRadius + 426.IBViewIntegration.shadowColor + 426.IBViewIntegration.shadowOffsetHeight + 426.IBViewIntegration.shadowOffsetWidth + 427.IBAttributePlaceholdersKey + 427.IBPluginDependency + 427.IBViewBoundsToFrameTransform + 427.IBViewIntegration.shadowBlurRadius + 427.IBViewIntegration.shadowColor + 427.IBViewIntegration.shadowOffsetHeight + 427.IBViewIntegration.shadowOffsetWidth + 428.IBAttributePlaceholdersKey + 428.IBPluginDependency + 428.IBViewBoundsToFrameTransform + 428.IBViewIntegration.shadowBlurRadius + 428.IBViewIntegration.shadowColor + 428.IBViewIntegration.shadowOffsetHeight + 428.IBViewIntegration.shadowOffsetWidth + 429.IBAttributePlaceholdersKey + 429.IBPluginDependency + 429.IBViewBoundsToFrameTransform + 429.IBViewIntegration.shadowBlurRadius + 429.IBViewIntegration.shadowColor + 429.IBViewIntegration.shadowOffsetHeight + 429.IBViewIntegration.shadowOffsetWidth + 430.IBAttributePlaceholdersKey + 430.IBPluginDependency + 430.IBViewBoundsToFrameTransform + 430.IBViewIntegration.shadowBlurRadius + 430.IBViewIntegration.shadowColor + 430.IBViewIntegration.shadowOffsetHeight + 430.IBViewIntegration.shadowOffsetWidth + 431.IBAttributePlaceholdersKey + 431.IBPluginDependency + 431.IBViewBoundsToFrameTransform + 431.IBViewIntegration.shadowBlurRadius + 431.IBViewIntegration.shadowColor + 431.IBViewIntegration.shadowOffsetHeight + 431.IBViewIntegration.shadowOffsetWidth + 432.IBAttributePlaceholdersKey + 432.IBPluginDependency + 432.IBViewBoundsToFrameTransform + 432.IBViewIntegration.shadowBlurRadius + 432.IBViewIntegration.shadowColor + 432.IBViewIntegration.shadowOffsetHeight + 432.IBViewIntegration.shadowOffsetWidth + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{1404, 21}, {1280, 585}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1404, 21}, {1280, 585}} + + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Switch Register with twelve switches enable communication between the operator and the machine. It allows a 12-bit word to be input. A switch up means a binary 1; switch down is a 0. SR is used during manual functions or under program control. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + BackgroundView + + YES + + + YES + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + V2hlbiBTVyBTd2l0Y2ggaXMgdXAsIHRoZSBTVyBsaW5lIG9uIHRoZSBPTU5JQlVTIGlzIGhpZ2g7IHdo +ZW4gaXQgaXMgZG93biwgdGhlIGxpbmUgaXMgbG93LiBJdCBpcyB1c2VkIGJ5IHNwZWNpYWwgcGVyaXBo +ZXJhbCBjb250cm9scywgc3VjaCBhcyB0aGUgYm9vdHN0cmFwIGxvYWRlci4KCldpdGggdGhlIFBEUC04 +L0UgU2ltdWxhdG9yLCB0aGlzIHNpZ25hbCBpcyBhdmFpbGFibGUgZm9yIEkvTyBkZXZpY2VzIHZpYSB0 +aGUg4oCca2M4ZWFTV0NoYW5nZWROb3RpZmljYXRpb27igJ0gbm90aWZpY2F0aW9uLg + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Address Load Key loads the contents of the Switch Register into the CPMA and forces the processor to the Fetch state. (On a hardware PDP-8/E, no major state is set while this key is depressed.) + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Extended Address Load Key loads the contents of SR(6-8) into the Instruction Field (IF, IB), SR(9-11) into the Data Field (DF) of the KM8-E Memory Extension and forces the machine to system mode by clearing the user mode flags UF and UB. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Clear Key issues an initialize pulse, clearing the AC, Link, the interrupt system, and the I/O flags. + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABEZoAAwwkAAA + + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Continue Key resumes the computer program by issuing a memory start and setting the Run flip-flop. The word stored at the address currently held by the CPMA is taken as the first instruction. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Examine Key puts the contents of core memory at the address specified by the contents of the CPMA into the MB. Then the contents of the PC and CPMA are incremented by one to allow examination of the contents of sequential core memory addresses. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + SGFsdCBTd2l0Y2ggY2xlYXJzIHRoZSBSdW4gZmxpcC1mbG9wIGFuZCBjYXVzZXMgdGhlIG1hY2hpbmUg +dG8gc3RvcCBhdCBUUzEgb2YgdGhlIG5leHQgRmV0Y2ggY3ljbGUuIFdoZW4gdGhpcyBzd2l0Y2ggaXMg +aW4gdGhlIGRvd24gcG9zaXRpb24gKGFuZCBTaW5nbGUgU3RlcCBpcyB1cCkgYW5kIHRoZSBjb250aW51 +ZSBrZXkgaXMgb3BlcmF0ZWQsIHRoZSBtYWNoaW5lIGV4ZWN1dGVzIGEgc2luZ2xlIGluc3RydWN0aW9u +LgoKV2l0aCB0aGUgUERQLTgvRSBTaW11bGF0b3IsIHRoZSBTdGVwLCBUcmFjZSwgR28gYW5kIEhhbHQg +YnV0dG9ucyBpbiB0aGUgQ1BVIHdpbmRvdyBhcmUgbm90IGF2YWlsYWJsZSB3aGlsZSB0aGUgSGFsdCBT +d2l0Y2ggaXMgaW4gdGhlIGRvd24gcG9zaXRpb24uA + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + U2luZ2xlIFN0ZXAgU3dpdGNoIGNsZWFycyB0aGUgUnVuIGZsaXAtZmxvcCBhbmQgY2F1c2VzIHRoZSBt +YWNoaW5lIHRvIHN0b3AgYXQgVFMxIG9mIHRoZSBuZXh0IGN5Y2xlLiBXaGVuIHRoaXMgc3dpdGNoIGlz +IGluIHRoZSBkb3duIHBvc2l0aW9uIGFuZCB0aGUgY29udGludWUga2V5IGlzIG9wZXJhdGVkLCB0aGUg +bWFjaGluZSBleGVjdXRlcyBleGFjdGx5IG9uZSBtZW1vcnkgY3ljbGUuCgpXaXRoIHRoZSBQRFAtOC9F +IFNpbXVsYXRvciwgdGhlIFN0ZXAsIFRyYWNlLCBHbyBhbmQgSGFsdCBidXR0b25zIGluIHRoZSBDUFUg +d2luZG93IGFyZSBub3QgYXZhaWxhYmxlIHdoaWxlIHRoZSBTaW5nbGUgU3RlcCBTd2l0Y2ggaXMgaW4g +dGhlIGRvd24gcG9zaXRpb24uA + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABEhkAAwwkAAA + + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Deposit Key loads the contents of SR into MB and core memory at the address given by the contents of the CPMA. Then the PC and CPMA are incremented by one. This allows storing of information in sequential memory locations by repeated deposit operation. + + + com.apple.InterfaceBuilder.CocoaPlugin + ConsoleSwitchCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Indicator Selector Switch is a six-position rotary switch, used to select a register for display. For STATE, the first line of the table at the left describes the displayed bits; for STATUS, refer to the second line. + + + com.apple.InterfaceBuilder.CocoaPlugin + KnobCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Power Key is a key operated switch. The OFF position quits the PDP-8/E Simulator. The POWER position enables all manual controls. The PANEL LOCK position disables all controls (except SR and SW) and turns off all panel indicators (except RUN). + + + com.apple.InterfaceBuilder.CocoaPlugin + KnobCell + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Extended Memory Address indicates which extended memory field (data or instruction field) is beeing accessed. When no KM8-E Memory Extension is present, EMA is always zero. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Extended Memory Address indicates which extended memory field (data or instruction field) is beeing accessed. When no KM8-E Memory Extension is present, EMA is always zero. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Extended Memory Address indicates which extended memory field (data or instruction field) is beeing accessed. When no KM8-E Memory Extension is present, EMA is always zero. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Memory Address indicates the memory address which will be accessed next. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Depending on the position of the Indicator Selector Switch, STATE or STATUS bits of the CPU, the AC, the memory buffer MD, the MQ, or the CPU´s data BUS is displayed here. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When the Run light is lit, the machine´s timing is enabled and capable of executing instructions. + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATE, these three lights of the display indicate the current major state of the CPU: Fetch, Defer, Execute. + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUOhgABDkqeAA + + + + 3 + MAA + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATE, these three lights of the display show the Instruction Register (IR), i. e. indicate the opcode of the instruction currently processed by the CPU. + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUPZgABDkoAAA + + + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATE, this bit of the display indicates the direction of data transfer between the memory buffer and core memory. When the light is lit, transfer occurs from memory to MD, else vice versa. + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUQJQABDkoAAA + + + + + + + ToolTip + + ToolTip + + V2hlbiB0aGUgaW5kaWNhdG9yIHNlbGVjdG9yIHN3aXRjaCBpcyB0dXJuZWQgdG8gU1RBVEUsIHRoaXMg +Yml0IG9mIHRoZSBkaXNwbGF5IGluZGljYXRlcyB0aGUgQlJLIERBVEEgQ09OVCBzaWduYWwgb2YgdGhl +IE9NTklCVVMuCgpXaXRoIHRoZSBQRFAtOC9FIFNpbXVsYXRvciwgdGhpcyBzaWduYWwgaXMgbm90IGF2 +YWlsYWJsZS4 + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUQSgABDkoAAA + + + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATE, this bit of the display indicates the SW line of the OMNIBUS, set by the SW console switch. + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUQbYABDkoAAA + + + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATE, this bit of the display indicates the I/O PAUSE signal of the OMNIBUS. + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUQlAABDkoAAA + + + + + + + ToolTip + + ToolTip + + V2hlbiB0aGUgaW5kaWNhdG9yIHNlbGVjdG9yIHN3aXRjaCBpcyB0dXJuZWQgdG8gU1RBVEUsIHRoaXMg +Yml0IG9mIHRoZSBkaXNwbGF5IGluZGljYXRlcyB0aGUgQlJLIElOIFBST0cgc2lnbmFsIG9mIHRoZSBP +TU5JQlVTLgoKV2l0aCB0aGUgUERQLTgvRSBTaW11bGF0b3IsIHRoaXMgc2lnbmFsIGlzIG5vdCBhdmFp +bGFibGUuA + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUQuQABDkoAAA + + + + + + + ToolTip + + ToolTip + + V2hlbiB0aGUgaW5kaWNhdG9yIHNlbGVjdG9yIHN3aXRjaCBpcyB0dXJuZWQgdG8gU1RBVEUsIHRoaXMg +Yml0IG9mIHRoZSBkaXNwbGF5IGluZGljYXRlcyB0aGUgQlJFQUsgQ1lDTEUgc2lnbmFsIG9mIHRoZSBP +TU5JQlVTLgoKV2l0aCB0aGUgUERQLTgvRSBTaW11bGF0b3IsIHRoaXMgc2lnbmFsIGlzIG5vdCBhdmFp +bGFibGUuA + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUQIQABDkoAAA + + + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATUS and the machine has a KM8-E Memory Extension, these three bit of the display indicate the current Instruction Field (IF). + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUQJQABDiQAAA + + + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATUS and the machine has a KM8-E Memory Extension, these three bit of the display indicate the current Data Field (DF). + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUPZAABDkoAAA + + + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATUS and the machine has a KM8-E Memory Extension, this bit of the display indicates the state of the User Mode. When lit, the CPU runs in user mode (UF=1), else in system mode (UF=0). + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUP/gABDiQAAA + + + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATUS, this bit of the display indicates the state of the Interrupt Enable Flag of the CPU. + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUPsQABDiQAAA + + + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATUS, this bit of the display indicates if interrupts are not allowed (e. g. in the instruction sequence ION, JMP I 0). + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUPZwABDiQAAA + + + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATUS, this bit of the display indicates whether an interrupt request is pending. + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUP+wABDiQAAA + + + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATUS and the machine has a KE8-E Extended Arithmetic Element, this bit of the display indicates the GTF (Greater Than Flag) of the EAE. + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUPrAABDiQAAA + + + + + + + ToolTip + + ToolTip + + When the indicator selector switch is turned to STATUS, this bit of the display indicates the Link register of the CPU. + + + com.apple.InterfaceBuilder.CocoaPlugin + + AUQJQABDiIAAA + + + + + + + + + YES + + + YES + + + + + YES + + + YES + + + + 432 + + + + YES + + BackgroundView + NSView + + IBProjectSource + KC8EA/BackgroundView.h + + + + ConsoleSwitchCell + NSButtonCell + + leftNeighbour + ConsoleSwitchCell + + + leftNeighbour + + leftNeighbour + ConsoleSwitchCell + + + + IBProjectSource + KC8EA/ConsoleSwitchCell.h + + + + KC8EA + PDP8Plugin + + YES + + YES + addrloadClicked: + clearClicked: + contClicked: + depClicked: + examClicked: + extdaddrloadClicked: + haltClicked: + keyClicked: + knobClicked: + srClicked: + stingstepClicked: + swClicked: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + addrloadClicked: + clearClicked: + contClicked: + depClicked: + examClicked: + extdaddrloadClicked: + haltClicked: + keyClicked: + knobClicked: + srClicked: + stingstepClicked: + swClicked: + + + YES + + addrloadClicked: + id + + + clearClicked: + id + + + contClicked: + id + + + depClicked: + id + + + examClicked: + id + + + extdaddrloadClicked: + id + + + haltClicked: + id + + + keyClicked: + id + + + knobClicked: + id + + + srClicked: + id + + + stingstepClicked: + id + + + swClicked: + id + + + + + YES + + YES + addr0 + addr1 + addr10 + addr11 + addr12 + addr13 + addr14 + addr2 + addr3 + addr4 + addr5 + addr6 + addr7 + addr8 + addr9 + addrload + clear + cont + dep + display0 + display1 + display10 + display11 + display2 + display3 + display4 + display5 + display6 + display7 + display8 + display9 + exam + extdaddrload + halt + key + knob + run + singstep + sr0 + sr1 + sr10 + sr11 + sr2 + sr3 + sr4 + sr5 + sr6 + sr7 + sr8 + sr9 + sw + window + + + YES + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + KeepInMenuWindow + + + + YES + + YES + addr0 + addr1 + addr10 + addr11 + addr12 + addr13 + addr14 + addr2 + addr3 + addr4 + addr5 + addr6 + addr7 + addr8 + addr9 + addrload + clear + cont + dep + display0 + display1 + display10 + display11 + display2 + display3 + display4 + display5 + display6 + display7 + display8 + display9 + exam + extdaddrload + halt + key + knob + run + singstep + sr0 + sr1 + sr10 + sr11 + sr2 + sr3 + sr4 + sr5 + sr6 + sr7 + sr8 + sr9 + sw + window + + + YES + + addr0 + NSButton + + + addr1 + NSButton + + + addr10 + NSButton + + + addr11 + NSButton + + + addr12 + NSButton + + + addr13 + NSButton + + + addr14 + NSButton + + + addr2 + NSButton + + + addr3 + NSButton + + + addr4 + NSButton + + + addr5 + NSButton + + + addr6 + NSButton + + + addr7 + NSButton + + + addr8 + NSButton + + + addr9 + NSButton + + + addrload + NSButton + + + clear + NSButton + + + cont + NSButton + + + dep + NSButton + + + display0 + NSButton + + + display1 + NSButton + + + display10 + NSButton + + + display11 + NSButton + + + display2 + NSButton + + + display3 + NSButton + + + display4 + NSButton + + + display5 + NSButton + + + display6 + NSButton + + + display7 + NSButton + + + display8 + NSButton + + + display9 + NSButton + + + exam + NSButton + + + extdaddrload + NSButton + + + halt + NSButton + + + key + NSButton + + + knob + NSButton + + + run + NSButton + + + singstep + NSButton + + + sr0 + NSButton + + + sr1 + NSButton + + + sr10 + NSButton + + + sr11 + NSButton + + + sr2 + NSButton + + + sr3 + NSButton + + + sr4 + NSButton + + + sr5 + NSButton + + + sr6 + NSButton + + + sr7 + NSButton + + + sr8 + NSButton + + + sr9 + NSButton + + + sw + NSButton + + + window + KeepInMenuWindow + + + + + IBProjectSource + KC8EA/KC8EA.h + + + + KeepInMenuWindow + NSWindow + + YES + + YES + orderBackFromDefaults: + orderFrontFromDefaults: + + + YES + id + id + + + + YES + + YES + orderBackFromDefaults: + orderFrontFromDefaults: + + + YES + + orderBackFromDefaults: + id + + + orderFrontFromDefaults: + id + + + + + IBProjectSource + Utilities/KeepInMenuWindow.h + + + + KnobCell + NSButtonCell + + IBProjectSource + KC8EA/KnobCell.h + + + + NSControl + + IBProjectSource + Categories/NSControl+FileDrop.h + + + + PDP8Plugin + NSObject + + IBProjectSource + Plugins/PluginAPI.h + + + + + YES + + KeepInMenuWindow + NSWindow + + IBFrameworkSource + PluginFramework.framework/Headers/KeepInMenuWindow.h + + + + NSControl + + IBFrameworkSource + PluginFramework.framework/Headers/NSControl+FileDrop.h + + + + PDP8Plugin + NSObject + + IBFrameworkSource + PluginFramework.framework/Headers/PluginAPI.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../../pdp8e-simulator.xcodeproj + 3 + + YES + + YES + addrload_down + addrload_up_extdaddrload_up + clear_down + clear_up_cont_up + cont_down + cont_up_exam_up + dep_down + dep_up + exam_down + exam_up_halt_up + extdaddrload_down + extdaddrload_up + halt_down + halt_up_singstep_down + key0 + knob0 + light_off + light_on + singstep_down + singstep_up + sr0down + sr0up_sr1down + sr10down + sr10up_sr11down + sr11down + sr11up + sr1down + sr1up_sr2down + sr2down + sr2up_sr3down + sr3down + sr3up_sr4down + sr4down + sr4up_sr5down + sr5down + sr5up_sr6down + sr6down + sr6up_sr7down + sr7down + sr7up_sr8down + sr8down + sr8up_sr9down + sr9down + sr9up_sr10down + sw_down + sw_up + + + YES + {39, 55} + {39, 55} + {39, 55} + {39, 55} + {37, 55} + {37, 55} + {42, 55} + {42, 55} + {39, 55} + {39, 55} + {38, 55} + {38, 55} + {37, 55} + {37, 55} + {127, 70} + {82, 90} + {18, 18} + {18, 18} + {39, 55} + {39, 55} + {38, 54} + {38, 54} + {37, 54} + {37, 54} + {38, 54} + {38, 54} + {38, 54} + {38, 54} + {37, 54} + {37, 54} + {37, 54} + {37, 54} + {38, 54} + {38, 54} + {37, 54} + {37, 54} + {38, 54} + {38, 54} + {38, 54} + {38, 54} + {37, 54} + {37, 54} + {38, 54} + {38, 54} + {41, 55} + {41, 55} + + + + diff --git a/KC8EA/English.lproj/KC8EA.nib/keyedobjects.nib b/KC8EA/English.lproj/KC8EA.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..0471f126a0f21acaa3d7814fef3c4b1a32f0616f GIT binary patch literal 43115 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 + + + + + KC8-EA Programmer’s Console Help + + + + + + + +

Controls and Indicators of the KC8-EA Programmer’s Console

+ +

+The controls and indicators on the Programmer’s Console provide manual control and indicate the +program conditions of the PDP-8/E. Controls on the Programmer’s Console provide the operator +with the hardware to start, stop, examine, modify, or continue a program. The indicators on the console +provide a visual indication of the machine status and current program, the contents of the major registers, +and the condition of the control flip-flops. A lighted indicator denotes the presence of a binary 1 in +a specific register bit position or control flip-flop. The table below lists the functions of controls and +indicators. The controls are divided into two groups; switches and keys. Keys are momentary, or +spring-return, switches. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Control or IndicatorFunction
Off / Power / Panel Lock + This is a key operated switch. In the counter-clockwise, or OFF, position, the + switch disconnects all primary power to the machiine. In the POWER, or straight up position, + it enables all manual controls and applies primary computer power. In the PANEL LOCK or + clockwise position, it disables all keys and switches with the exception of the Switch + Register and the SW switch. In this position, a running program is protected from + inadvertent switch operation and all panel indicators except the RUN light are turned off. +
SW + When this switch is up, the line on the OMNIBUS called SW is high; when the lever is down, + the line is low. This switch is used by special peripheral controls, such as the + Bootstrap Loader. +
Switch Register Switches
(SR)
+ These 12 switches provide a means of communication between operator and machine. + They allow a 12-bit word to be input. When the switch is up, it designates a binary 1 + to the machine; switch down is a 0. These switches are used during manual functions or + under program control. +
Load Address Key
(ADDR LOAD)
+ This key loads the contents of the Switch Register into the CPMA and forces Fetch to be + set (no Major States while the Load Address Key is depressed). +
Extended Address Load
(EXTD ADDR LOAD)
+ This switch loads the contents of SR(6–11) into the Data Field and Instruction Field + registers of the Memory Extension Control. SR(9–11) goes to Data Field 0–2, + SR(6–8) goes to Instruction Field 0–2. +
Clear Key (CLEAR) + This key issues an Initialize Pulse, clearing the AC, Link, Interrupt system, and I/O Flags. +
Continue Key (CONT) + This key resumes the computer program by issuing a Memory Start and setting the Run + flip-flop. The word stored at the address currently held by the CPMA is taken as the first + instruction. +
Examine Key (EXAM) + Puts the contents of core memory at the address specified by the contents of the CPMA + into the MB. Then the contents of the PC and CPMA are incremented by one to allow + examination of the contents of sequential core memory addresses by repeating the operation + of the Examine switch. +
Halt Switch (HALT) + This switch clears the Run flip-flop and and causes the machine to stop at TS1 of the next + Fetch cycle. This switch is also used for single instruction stepping. +
Single Step Switch
(SING STEP)
+ This switch clears the Run flip-flop and causes the machine to stop at TS1 of the next + cycle. Thereafter, repeated depressing of the Continue key steps the program one cycle at + a time, so that the contents of registers can be observed in each state. +
Deposit Key (DEP) + Loads the contents of the SR into the MB and core memory at the address given by the + current contents of the CPMA. Then the contents of the PC and CPMA are incremented by one. + This allows storing of information in sequential memory addresses by repeated operation + of the Deposit switch. +
Indicator Selector Switch + This is a six-position rotary switch, used to select a register for display. The six + positions are as follows: +
    +
  • STATE — Indicates an individual function for each bit:
    + + + + + + + + + + + + + +
    0Fetch
    1Defer
    2Execute
    3Instruction Register 0
    4Instruction Register 1
    5Instruction Register 2
    6MD DIR
    7Data Control
    8SW
    9Pause
    10Break in Prog
    11Break
    +
  • +
  • STATUS — Indicates an individual function each bit:
    + + + + + + + + + + + + + +
    0Link
    1Greater Than Flag
    2Interrupt Bus
    3No Interrupt Allowed
    4Interrupt On
    5User Mode
    6Instruction Field 0
    7Instruction Field 1
    8Instruction Field 2
    9Data Field 0
    10Data Field 1
    11Data Field 2
    +
  • +
  • AC — Indicates bits 0–11 of the Accumulator at TS1.
  • +
  • MD — Indicates information just written or rewritten into memory.
  • +
  • MQ — Indicates contents of MQ register during TS1.
  • +
  • BUS — Indicates bis 0–11 of the DATA lines.
  • +
+
Memory Address + Indicates the contents of the memory address which will be accessed next. +
EMA + Indicates which Extended Memory field is being accessed. +
Run Light + When lit means machine’s timing is enabled and capable of executing instructions. +
+ +

Limitations and extensions of the simulated KC8-EA Programmer’s Console

+ +

+The simulated KC8-EA has some limitations and extensions compared to a hardware KC8-EA: +

+ +
    +
  • + The console is able to simulate single step execution. This simulation is done console + internally because the PDP-8/E Simulator itself performs PDP-8/E instructions atomically. + While executing a Fetch and Defer memory cycle, no state changes occur in the simulators + PDP-8/E, only the display lights of the console reflect the accompanying state changes. + When the final Execute memory cycle (or, for single cycle instructions, e. g. OPRs, the + Fetch cycle) is performed, the simulators PDP-8/E is instructed by the console to perform + the complete PDP-8/E instruction at once. So, while the console is in a Defer or Execute + state, there may be inconsistencies between the register values visible in the CPU window + and the corresponding values displayed by the KC8-EA. To avoid confusion, it is suggested + not to alternately use single step execution of the console and the instruction stepping + of the simulator. +
  • +
  • + When the user depresses the Single Step switch while the PDP-8/E is running, + it halts at TS1 of a Fetch cycle, like with the Halt switch, and not at TS1 of any memory cycle. + When the Single Step or Halt switch is down, the simulator can’t be started + in Step, Trace or Go mode. +
  • +
  • + When the machine is in single instruction mode (Halt switch down) and an interrupt is pending, + depressing the Continue switch once brings the simulator to the first instruction of the + interrupt service routine at location 1. On a real PDP-8/E, the switch must be operated twice + to reach this state. When the interrupt is caused by a privileged instruction executed in + user mode, the simulator halts after the privileged instruction, a hardware PDP-8/E halts + at location 0. The next operation of the Continue switch brings both the simulator and a + real PDP-8/E to the first instruction of the interrupt service routine at location 1. + This different behaviour is also present when stepping on memory cycle level (Single Step switch + down). +
  • +
  • + The state of the SW switch is not directly available for other I/O devices. But whenever the + user operates this switch, a Cocoa notification with the name + “kc8eaSWChangedNotification” is posted; the notification object is a number representing + the state of the switch, 0 for down and 1 for up. +
  • +
  • + Turning the Power key to OFF quits the PDP-8/E Simulator. +
  • +
  • + When the PDP-8/E is running, the display lights are sampled with a frequency of 60 Hz. They then + display the state at the end of the Fetch cycle, before the instruction is actually executed, + of the next PDP-8/E instruction to be performed; so the STATE display display can indicate Defer + and Execute cycles. +
  • +
  • + At least in the following points the display differs from a hardware PDP-8/E: +
      +
    • + The DATA CONT, BRK PROG and BRK indicators of the STATE display are always off. +
    • +
    • + The PAUSE indicator of the STATE display may be inprecise. +
    • +
    • + The NO INT indicator of the STATUS display is illuminated when the Interrupt Delay or + Interrupt Inhibit flag is set. On a hardware PDP-8/E, this indicator is derived from + signals not available with the PDP-8/E Simulator. +
    • +
    • + The BUS display may be inprecise under certain circumstances, e. g. for group 3 OPRs + of the EAE or for IOT instructions, where always the AC is shown. +
    • +
    • + The MD display does not reflect the additional memory access of EAE two word instructions. +
    • +
    • + When the PDP-8/E halts from the Step, Trace or Go mode of the simulator, the STATE, MD and + BUS display may be inprecise. E. g. the MD DIR is always turned on, MD shows the opcode + of the last instruction executed, but not the memory references eventually performed by + the instruction. (When you execute single PDP-8/E instructions by pressing the + Continue key of the console while the Halt switch is down, the display is more precise + because then the KC8-EA internally simulates the Fetch, Defer and Execute cycle of the + instruction.) +
    • +
    +
  • +
  • + The console keys and switches can be operated using the following keyboard shortcuts: + + + + + + + + + + + + + + +
    ⌥wOperate the SW switch
    ⌥0,…,⌥9, ⌥a, ⌥bOperate the corresponding switch of the Switch Register
    ⌥lOperate the Load Address key
    ⌥xOperate the Extended Address Load key
    ⌥cOperate the Clear key
    ⌥tOperate the Continue key
    ⌥eOperate the Examine key
    ⌥hOperate the Halt switch
    ⌥sOperate the Single Step switch
    ⌥dOperate the Deposit key
    ⌥<Turn the Indicator Selector switch anticlockwise
    ⌥>Turn the Power key clockwise
    +
  • +
+ + + diff --git a/KC8EA/English.lproj/KC8EAOnlineHelp/pdp8e.png b/KC8EA/English.lproj/KC8EAOnlineHelp/pdp8e.png new file mode 100644 index 0000000000000000000000000000000000000000..2c0c485d23a4a9a335fe22dfb2ae4604c93d63b3 GIT binary patch literal 1166 zcmY*YZ)_A*5TCcZw|BjA^k^+1)|5s(S}<5?LRyS8Kw3&esEybU`k{de8vS4ie{!Ul znjjP#Vp1hQpjIdrnvhf^%0sPw|Bk0+kJ1Gx4jmf&D)vx zo0;Ftdpp}+UsvPvKIsJjU+u=Kmr48O^62zlY~VIhdef$wDnR+1x!QY_kgS~>U)>Fm zohKKAQ=cp%(7mU2bG3WiotM9;cv;7_asaKMwrbrg6$_YOo3tq6u^^&5)m5aE4sygH ze&-_cyR;C8X$4cC7U_aw9%lfs|8C+I?sNZoiEwLEvm?gR(5YuFuK6CW)JWi zJ%IKMjuKC+OjV8byl4ACn22I9*1A;050s&>EEJrhux&IiA3~$01k<;!V0?cGTDQMJ zkxrrg#|XyTD$r;Rh=~{mA@Xqg7h@L%jNNdO<45YyzI)5Djol?^et#iDY9XJ95Q#bC zd+$ZO^VjrmnrE zPByMU^Lih0Zlko5Uv@ifCV#ksiL-5vE%B+h*Es&zp{+Ri=4$+Dd?KQlY4e<*j|rY^ znku4}LKVSGP|IFO_xCzbPUlVVHg`bIiSJpvc>=-#ncu{l%x z3u#y$fkFY2OxzoF2%Wni3qgQT6%21b^WlaU%33l#16&P{jFo=Wu!Kg0p`t=o{aax6 z$$xZ4s1Pv5fHQ$3yDpAbmM(opdgch^rZ@C;$EwIcv;XELltdDn6+!=Gth}BL1~wes zQnU7*S^R%NR7I^W@Z~mje$kSf>u)F=>8C>j+F~e<<8SIj4!k2f We4z#BSEoX9Q(IkE_4)d(2mS@W-_sBP literal 0 HcmV?d00001 diff --git a/KC8EA/English.lproj/KC8EAOnlineHelp/styles.css b/KC8EA/English.lproj/KC8EAOnlineHelp/styles.css new file mode 100644 index 0000000..c18751d --- /dev/null +++ b/KC8EA/English.lproj/KC8EAOnlineHelp/styles.css @@ -0,0 +1,239 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * styles.css - Online help - Style sheet + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +p { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +p.small { + font-size: 8pt; +} + +a { + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +a:hover { + text-decoration: underline +} + +ul { + margin-left: 1.25em; padding-left: 0em; +} + +li { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +#mainbox { + background-color: #fff; + margin-top: 30px; + margin-right: 26px; + margin-left: 18px; + position: absolute; + top: 10px +} + +#taskbox { + background-color: #eee; + list-style-type: decimal; + list-style-position: outside; + margin-top: 12px; + margin-bottom: 12px; + border: solid 1px #444 +} + +h1 { + font-size: 12pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 6pt; +} + +h2 { + font-size: 12pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 8pt; +} + +h3 { + font-size: 10pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 5pt; +} + +h4 { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 4pt; +} + +/* index.html */ + +table.index { + padding-top: 20px; + width: 100%; +} + +td.banner { + padding: 20px; +} + +td.toc { + padding-top: 10px; + padding-bottom: 10px; + padding-left: 20px; + padding-right:20px; + border-left: 1px solid darkgray; +} + +p.toc { + line-height: 40px; +} + +/* other pages */ + +table { + border-collapse: separate; + border-spacing: 0px; +} + +th { + font-family: "Lucida Grande", Arial, "Sans Serif"; + font-size: 9pt; + font-style: bold; + border-bottom: 1px solid gray; + padding-left: 10px; + padding-right: 10px; +} + +th.left { + text-align: left; +} + +td { + text-align: center; + vertical-align: top; + font-family: "Lucida Grande", Arial, "Sans Serif"; + font-size: 9pt; + padding-left: 10px; + padding-right: 10px; +} + +td.left { + text-align: left; +} + +td.right { + text-align: right; +} + +td.br { + border-right: 1px solid gray; +} + +td.bb { + border-bottom: 1px solid lightgray; +} + +td.bb_left { + text-align: left; + border-bottom: 1px solid lightgray; +} + +td.bbr { + border-bottom: 1px solid lightgray; + border-right: 1px solid gray; +} + +td.opcode { + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_right { + text-align: right; + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_left { + text-align: left; + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tb { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-bottom: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tlb { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-left: 1px solid black; + border-bottom: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tbr { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-bottom: 1px solid black; + border-right: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tlbr { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} diff --git a/KC8EA/English.lproj/io-info.plist b/KC8EA/English.lproj/io-info.plist new file mode 100644 index 0000000..a6c4c7b --- /dev/null +++ b/KC8EA/English.lproj/io-info.plist @@ -0,0 +1,37 @@ + + + + + + ioflags + + + ioaddresses + + + iots + + + + diff --git a/KC8EA/Info.plist b/KC8EA/Info.plist new file mode 100644 index 0000000..ce6e981 --- /dev/null +++ b/KC8EA/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleHelpBookFolder + KC8EAOnlineHelp + CFBundleHelpBookName + KC8-EA Programmer's Console Help + CFBundleIconFile + + CFBundleIdentifier + de.bernhard-baehr.pdp8e.KC8EA + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleSignature + ???? + CFBundleVersion + 2.0.2 + CFBundleShortVersionString + 2.0.2 + NSPrincipalClass + KC8EA + + diff --git a/KC8EA/KC8EA.h b/KC8EA/KC8EA.h new file mode 100644 index 0000000..243fecd --- /dev/null +++ b/KC8EA/KC8EA.h @@ -0,0 +1,103 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * KC8EA.h - KC8-EA Programmer’s Console for the PDP-8/E Simulator + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class KeepInMenuWindow, StateMachine; + + +@interface KC8EA : PDP8Plugin +{ +@private + IBOutlet KeepInMenuWindow *window; + IBOutlet NSButton *addr0; + IBOutlet NSButton *addr1; + IBOutlet NSButton *addr2; + IBOutlet NSButton *addr3; + IBOutlet NSButton *addr4; + IBOutlet NSButton *addr5; + IBOutlet NSButton *addr6; + IBOutlet NSButton *addr7; + IBOutlet NSButton *addr8; + IBOutlet NSButton *addr9; + IBOutlet NSButton *addr10; + IBOutlet NSButton *addr11; + IBOutlet NSButton *addr12; + IBOutlet NSButton *addr13; + IBOutlet NSButton *addr14; + IBOutlet NSButton *display0; + IBOutlet NSButton *display1; + IBOutlet NSButton *display2; + IBOutlet NSButton *display3; + IBOutlet NSButton *display4; + IBOutlet NSButton *display5; + IBOutlet NSButton *display6; + IBOutlet NSButton *display7; + IBOutlet NSButton *display8; + IBOutlet NSButton *display9; + IBOutlet NSButton *display10; + IBOutlet NSButton *display11; + IBOutlet NSButton *run; + IBOutlet NSButton *sr0; + IBOutlet NSButton *sr1; + IBOutlet NSButton *sr2; + IBOutlet NSButton *sr3; + IBOutlet NSButton *sr4; + IBOutlet NSButton *sr5; + IBOutlet NSButton *sr6; + IBOutlet NSButton *sr7; + IBOutlet NSButton *sr8; + IBOutlet NSButton *sr9; + IBOutlet NSButton *sr10; + IBOutlet NSButton *sr11; + IBOutlet NSButton *sw; + IBOutlet NSButton *addrload; + IBOutlet NSButton *extdaddrload; + IBOutlet NSButton *clear; + IBOutlet NSButton *cont; + IBOutlet NSButton *exam; + IBOutlet NSButton *halt; + IBOutlet NSButton *singstep; + IBOutlet NSButton *dep; + IBOutlet NSButton *knob; + IBOutlet NSButton *key; + NSTimer *goTimer; + unsigned short addressValue; + unsigned short displayValue; + int powerKeyPosition; + StateMachine *stateMachine; +} + +- (IBAction) srClicked:(id)sender; +- (IBAction) swClicked:(id)sender; +- (IBAction) addrloadClicked:(id)sender; +- (IBAction) extdaddrloadClicked:(id)sender; +- (IBAction) clearClicked:(id)sender; +- (IBAction) contClicked:(id)sender; +- (IBAction) examClicked:(id)sender; +- (IBAction) haltClicked:(id)sender; +- (IBAction) stingstepClicked:(id)sender; +- (IBAction) depClicked:(id)sender; +- (IBAction) knobClicked:(id)sender; +- (IBAction) keyClicked:(id)sender; + +@end diff --git a/KC8EA/KC8EA.m b/KC8EA/KC8EA.m new file mode 100644 index 0000000..78c6f01 --- /dev/null +++ b/KC8EA/KC8EA.m @@ -0,0 +1,555 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * KC8EA.m - KC8-EA Programmer’s Console for the PDP-8/E Simulator + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "PluginFramework/PluginAPI.h" +#import "PluginFramework/PDP8.h" +#import "PluginFramework/KeepInMenuWindow.h" +#import "PluginFramework/Utilities.h" + +#import "KC8EA.h" +#import "StateMachine.h" +#import "BackgroundView.h" + + +// notifications +#define KC8EA_UPDATE_DISPLAY_NOTIFICATION @"kc8eaUpdateDisplayNotification" +#define KC8EA_SW_CHANGED_NOTIFICATION @"kc8eaSWChangedNotification" + /* Notification posted when the SW switch changes; notification object is a NSNumber + with the new state of SW (0 or 1) */ + +// coder keys +#define CODER_KEY_POWER_KEY @"power" +#define CODER_KEY_DISPLAY_SELECTOR_KNOB @"knob" +#define CODER_KEY_SW @"sw" +#define CODER_KEY_HALT @"halt" +#define CODER_KEY_SINGSTEP @"singstep" + +// tag values of the display selection knob +#define DISPLAY_STATE 0 +#define DISPLAY_STATUS 1 +#define DISPLAY_AC 2 +#define DISPLAY_MD 3 +#define DISPLAY_MQ 4 +#define DISPLAY_BUS 5 + +// tag values of the power key +#define KEY_OFF 0 +#define KEY_POWER 1 +#define KEY_PANEL_LOCK 2 + +// states of the console switches +#define UP 1 +#define DOWN 0 + +// states of the lights +#define OFF 0 +#define ON 1 + + +@implementation KC8EA + + +API_VERSION + + +#pragma mark GUI + + +- (void) updateDisplay +{ + unsigned short val = 0; + if ([key tag] == KEY_POWER) { + switch ([knob tag]) { + case DISPLAY_STATE : + val = [stateMachine state:! [sw state]]; + break; + case DISPLAY_STATUS : + val = [stateMachine status]; + break; + case DISPLAY_AC : + val = [pdp8 getAC]; + break; + case DISPLAY_MD : + val = [stateMachine md]; + break; + case DISPLAY_MQ : + val = [pdp8 getMQ]; + break; + case DISPLAY_BUS : + val = [stateMachine bus]; + break; + default : + NSAssert (FALSE, @"Invalid display selection knob tag"); + break; + } + } + if (displayValue != val) { // optimization + [display0 setState:val & 00001]; + [display1 setState:val & 00002]; + [display2 setState:val & 00004]; + [display3 setState:val & 00010]; + [display4 setState:val & 00020]; + [display5 setState:val & 00040]; + [display6 setState:val & 00100]; + [display7 setState:val & 00200]; + [display8 setState:val & 00400]; + [display9 setState:val & 01000]; + [display10 setState:val & 02000]; + [display11 setState:val & 04000]; + displayValue = val; + } +} + + +- (void) updateAddress +{ + unsigned short addr = 0; + if ([key tag] == KEY_POWER) + addr = [stateMachine cpma]; + if (addressValue != addr) { // optimization + [addr0 setState:addr & 000001]; + [addr1 setState:addr & 000002]; + [addr2 setState:addr & 000004]; + [addr3 setState:addr & 000010]; + [addr4 setState:addr & 000020]; + [addr5 setState:addr & 000040]; + [addr6 setState:addr & 000100]; + [addr7 setState:addr & 000200]; + [addr8 setState:addr & 000400]; + [addr9 setState:addr & 001000]; + [addr10 setState:addr & 002000]; + [addr11 setState:addr & 004000]; + [addr12 setState:addr & 010000]; + [addr13 setState:addr & 020000]; + [addr14 setState:addr & 040000]; + addressValue = addr; + } +} + + +- (void) update +{ + [self updateDisplay]; + [self updateAddress]; +} + + +- (IBAction) srClicked:(id)sender +{ + [pdp8 setSR:[pdp8 getSR] ^ (04000 >> [sender tag])]; +} + + +- (IBAction) swClicked:(id)sender +{ + [self updateDisplay]; + /* The SW switch is not used by the simulator, but plugins that want to know about the + corresponding OMNIBUS signal can listen for this notification */ + [[NSNotificationCenter defaultCenter] postNotificationName:KC8EA_SW_CHANGED_NOTIFICATION + object:[NSNumber numberWithInt:[sender state] == UP]]; +} + + +- (IBAction) addrloadClicked:(id)sender +{ + if (powerKeyPosition != KEY_PANEL_LOCK) { + [stateMachine loadAddress]; + [self update]; + } +} + + +- (IBAction) extdaddrloadClicked:(id)sender +{ + if (powerKeyPosition != KEY_PANEL_LOCK) { + [stateMachine loadExtendedAddress]; + [self update]; + } +} + + +- (IBAction) clearClicked:(id)sender +{ + if (powerKeyPosition != KEY_PANEL_LOCK) + [pdp8 clearAllFlags]; +} + + +- (IBAction) contClicked:(id)sender +{ + if (powerKeyPosition != KEY_PANEL_LOCK && [pdp8 isStopped]) { + [run setState:ON]; + [window display]; + if ([singstep state] == DOWN) { + [stateMachine executeSingleCycle]; + [self update]; + [run setState:OFF]; + } else if ([halt state] == DOWN) { + do { + [stateMachine executeSingleCycle]; + [self update]; + [window display]; + } while (! [stateMachine isInFetchCycle]); + [run setState:OFF]; + } else { + while (! [stateMachine isInFetchCycle]) + [stateMachine executeSingleCycle]; + [[NSApp delegate] performSelector:@selector(go:) withObject:self]; + + } + } +} + + +- (IBAction) examClicked:(id)sender +{ + if (powerKeyPosition != KEY_PANEL_LOCK && [pdp8 isStopped]) { + [run setState:ON]; + [window display]; + [stateMachine examine]; + [self update]; + [run setState:OFF]; + } +} + + +- (IBAction) haltClicked:(id)sender +{ + if (powerKeyPosition != KEY_PANEL_LOCK) { + [pdp8 setHalt:[sender state] == DOWN || [singstep state] == DOWN]; + [NSApp setWindowsNeedUpdate:YES]; // cause Step/Trace/Go CPU window toolbar items update + } +} + + +- (IBAction) stingstepClicked:(id)sender +{ + if (powerKeyPosition != KEY_PANEL_LOCK) { + [pdp8 setHalt:[sender state] == DOWN || [halt state] == DOWN]; + [NSApp setWindowsNeedUpdate:YES]; // cause Step/Trace/Go CPU window toolbar items update + } +} + + +- (IBAction) depClicked:(id)sender +{ + if (powerKeyPosition != KEY_PANEL_LOCK && [pdp8 isStopped]) { + [run setState:ON]; + [window display]; + [stateMachine deposit]; + [self update]; + [run setState:OFF]; + } +} + + +- (IBAction) knobClicked:(id)sender +{ + [self updateDisplay]; +} + + +- (IBAction) keyClicked:(id)sender +{ + NSEventType eventType = [[NSApp currentEvent] type]; + switch ([sender tag]) { + case KEY_OFF : + if (eventType == NSLeftMouseUp || eventType == NSKeyDown) { + NSAlert *alert = [[NSAlert alloc] init]; + NSBundle *bundle = [NSBundle bundleForClass:[self class]]; + [alert setMessageText:NSLocalizedStringFromTableInBundle( + @"Do you really want to power off the\nPDP-8/E Simulator?", nil, bundle, @"")]; + [alert addButtonWithTitle: + NSLocalizedStringFromTableInBundle(@"No", nil, bundle, @"")]; + [alert addButtonWithTitle: + NSLocalizedStringFromTableInBundle(@"Yes", nil, bundle, @"")]; + if ([alert runModal] == NSAlertFirstButtonReturn) { + [[sender cell] setTag:eventType == NSKeyDown ? KEY_POWER : powerKeyPosition]; + [self update]; + } else + [NSApp terminate:self]; + [alert release]; + } + break; + case KEY_POWER : + powerKeyPosition = KEY_POWER; + [self update]; + [pdp8 setHalt:[halt state] == DOWN || [singstep state] == DOWN]; + [NSApp setWindowsNeedUpdate:YES]; // cause Step/Trace/Go CPU window toolbar items update + break; + case KEY_PANEL_LOCK : + powerKeyPosition = KEY_PANEL_LOCK; + [self update]; + [pdp8 setHalt:NO]; + [NSApp setWindowsNeedUpdate:YES]; // cause Step/Trace/Go CPU window toolbar items update + break; + default : + NSAssert (FALSE, @"Invalid power key tag"); + break; + } +} + + +#pragma mark Notifications + + +- (void) goTimerFireMethod:(NSTimer *)timer +{ + [stateMachine updateState:NO]; + [self update]; +} + + +- (void) notifyGo:(NSNotification *)notification +{ + // hardcoded refresh rate at 60 Hz + goTimer = [NSTimer scheduledTimerWithTimeInterval:1/60.0 target:self + selector:@selector(goTimerFireMethod:) userInfo:nil repeats:YES]; + [run setState:ON]; +} + + +- (void) notifyStep:(NSNotification *)notification +{ + [stateMachine updateState:NO]; + [self update]; +} + + +- (void) notifyTrace:(NSNotification *)notification +{ + [run setState:YES]; +} + + +- (void) notifyStop:(NSNotification *)notification +{ + [goTimer invalidate]; + goTimer = nil; + [run setState:OFF]; + [stateMachine updateState:YES]; + [self update]; +} + + +- (void) notifyPDP8Changed:(NSNotification *)notification +{ + // NSLog (@"KC8EA notifyPDP8Changed"); + [[NSNotificationQueue defaultQueue] enqueueNotification: + [NSNotification notificationWithName:KC8EA_UPDATE_DISPLAY_NOTIFICATION object:self] + postingStyle:NSPostASAP coalesceMask:NSNotificationCoalescingOnName forModes:nil]; +} + + +- (void) notifyUpdateDisplay:(NSNotification *) notification +{ + // NSLog (@"KC8EA notifyUpdateDisplay"); + [stateMachine updateState:NO]; + [self update]; +} + + +- (void) notifySRChanged:(NSNotification *)notification +{ + unsigned short sreg = [pdp8 getSR]; + [sr0 setState:sreg & 04000 ? 1 : 0]; + [sr1 setState:sreg & 02000 ? 1 : 0]; + [sr2 setState:sreg & 01000 ? 1 : 0]; + [sr3 setState:sreg & 00400 ? 1 : 0]; + [sr4 setState:sreg & 00200 ? 1 : 0]; + [sr5 setState:sreg & 00100 ? 1 : 0]; + [sr6 setState:sreg & 00040 ? 1 : 0]; + [sr7 setState:sreg & 00020 ? 1 : 0]; + [sr8 setState:sreg & 00010 ? 1 : 0]; + [sr9 setState:sreg & 00004 ? 1 : 0]; + [sr10 setState:sreg & 00002 ? 1 : 0]; + [sr11 setState:sreg & 00001 ? 1 : 0]; +} + + +- (void) notifyClearAllFlags:(NSNotification *)notification +{ + [clear highlight:UP]; + [NSTimer scheduledTimerWithTimeInterval:0.1 target:self + selector:@selector(unhighliteClearTimerFireMethod:) userInfo:nil repeats:NO]; +} + + +- (void) unhighliteClearTimerFireMethod:(NSTimer *)timer +{ + [clear highlight:DOWN]; +} + + +#pragma mark Initialization + + +- (void) resetDevice +{ + [[key cell] setTag:KEY_POWER]; + [[knob cell] setTag:DISPLAY_AC]; + [sw setState:UP]; + [halt setState:UP]; + [singstep setState:UP]; + [stateMachine updateState:NO]; + [self update]; +} + + +- (id) init +{ + self = [super init]; + powerKeyPosition = KEY_POWER; + [[key cell] setTag:powerKeyPosition]; + [[knob cell] setTag:DISPLAY_AC]; + [sw setState:UP]; + addressValue = displayValue = -1; + /* dummy assignments to suppress Analyzer warning "never used" for the GUI elements not + accessed by source code; for the sake of completeness, they are connected in Interface Builder */ + addrload = nil; + extdaddrload = nil; + cont = nil; + dep = nil; + exam = nil; + return self; +} + + +- (id) initWithCoder:(NSCoder *)coder +{ + self = [super init]; + powerKeyPosition = [coder decodeIntForKey:CODER_KEY_POWER_KEY]; + [[key cell] setTag:powerKeyPosition]; + [[knob cell] setTag:[coder decodeIntForKey:CODER_KEY_DISPLAY_SELECTOR_KNOB]]; + [sw setState:[coder decodeBoolForKey:CODER_KEY_SW]]; + [halt setState:[coder decodeBoolForKey:CODER_KEY_HALT]]; + [singstep setState:DOWN]; // to cause the HALT cell update shaddow to be called + [singstep setState:[coder decodeBoolForKey:CODER_KEY_SINGSTEP]]; + [pdp8 setHalt:[key tag] == KEY_PANEL_LOCK ? NO : ([halt state] == DOWN || [singstep state] == DOWN)]; + addressValue = displayValue = -1; + return self; +} + + +- (void) encodeWithCoder:(NSCoder *)coder +{ + [coder encodeInt:powerKeyPosition forKey:CODER_KEY_POWER_KEY]; + [coder encodeInt:[knob tag] forKey:CODER_KEY_DISPLAY_SELECTOR_KNOB]; + [coder encodeBool:[sw state] forKey:CODER_KEY_SW]; + [coder encodeBool:[halt state] forKey:CODER_KEY_HALT]; + [coder encodeBool:[singstep state] forKey:CODER_KEY_SINGSTEP]; +} + + +- (void) notifyApplicationWillTerminate:(NSNotification *)notification +{ + // NSLog (@"KC8EA notifyApplicationWillTerminate"); + NSMutableData *data = [NSMutableData data]; + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + [self encodeWithCoder:archiver]; + [stateMachine encodeWithCoder:archiver]; + [archiver finishEncoding]; + [archiver release]; + [[NSUserDefaults standardUserDefaults] setObject:data forKey:[self pluginName]]; +} + + +- (void) notifyPluginsLoaded:(NSNotification *)notification +{ + [self notifySRChanged:nil]; + [self swClicked:sw]; + [self notifyUpdateDisplay:nil]; + [window orderBackFromDefaults:self]; +} + + +- (void) pluginDidLoad +{ + NSData *data = [[NSUserDefaults standardUserDefaults] dataForKey:[self pluginName]]; + if (data) { + NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; + self = [self initWithCoder:unarchiver]; + stateMachine = [[StateMachine alloc] initWithCoder:unarchiver pdp8:pdp8]; + [unarchiver finishDecoding]; + [unarchiver release]; + } else { + self = [self init]; + stateMachine = [[StateMachine alloc] initWithPDP8:pdp8]; + } + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + [defaultCenter addObserver:self selector:@selector(notifyApplicationWillTerminate:) + name:NSApplicationWillTerminateNotification object:nil]; + [defaultCenter addObserver:self selector:@selector(notifyPluginsLoaded:) + name:PLUGINS_LOADED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyGo:) name:PDP8_GO_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyStop:) name:PDP8_STOP_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyStep:) name:PDP8_STEP_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyTrace:) name:PDP8_TRACE_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifySRChanged:) name:SR_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:MEMORY_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:PROGRAM_COUNTER_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:ACCUMULATOR_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:SC_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:GTF_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:MQ_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:EAE_MODE_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:DF_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:UF_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:UB_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:SF_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:ENABLE_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:DELAY_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:INHIBIT_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPDP8Changed:) name:IOFLAGS_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyUpdateDisplay:) name:KC8EA_UPDATE_DISPLAY_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyClearAllFlags:) name:CLEAR_ALL_FLAGS_NOTIFICATION object:nil]; + [(BackgroundView *) [window contentView] setBackgroundImage:@"background" ofType:@"png"]; +} + + +@end diff --git a/KC8EA/KnobCell.h b/KC8EA/KnobCell.h new file mode 100644 index 0000000..ea92472 --- /dev/null +++ b/KC8EA/KnobCell.h @@ -0,0 +1,38 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * KnobCell.h - NSButtonCell subclass for the console turning switches + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +// alternate title of the control is the prefix for the images of the knob +// the tag of the cell is the number of positions / images of the knob +// when this number is negative, the knob is operated horizontally, otherwise upright +// the control tag always contains the current knob position +// use [[control cell] setTag:x] to set the tag (i. e. position) of the knob and update the image + + +@interface KnobCell : NSButtonCell +{ +@private + NSMutableArray *images; +} + +@end diff --git a/KC8EA/KnobCell.m b/KC8EA/KnobCell.m new file mode 100644 index 0000000..d9ca5e2 --- /dev/null +++ b/KC8EA/KnobCell.m @@ -0,0 +1,119 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * KnobCell.m - NSButtonCell subclass for the console turning switches + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "KnobCell.h" + + +@implementation KnobCell + + +- (void) awakeFromNib +{ + int i; + + NSString *imageNamePrefix = [self alternateTitle]; + [(NSButton *)[self controlView] setAlternateTitle:nil]; + int numberOfImages = [self tag]; + if (numberOfImages < 0) + numberOfImages = -numberOfImages; + images = [[NSMutableArray alloc] initWithCapacity:numberOfImages]; + for (i = 0; i < numberOfImages; i++) { + [images insertObject:[[[NSImage alloc] initByReferencingFile: + [[NSBundle bundleForClass:[self class]] + pathForResource:[imageNamePrefix stringByAppendingFormat:@"%d", i] + ofType:@"png"]] autorelease] + atIndex:i]; + } +} + + +- (void) setTag:(int)tag +// correctly, we would have to overwrite [NSButton setTag], but to avoid subclassing NSButton, +// we use the cell method to set the buttons tag and image +{ + NSButton *button = (NSButton *)[self controlView]; + [button setTag:tag]; + [button setImage:[images objectAtIndex:tag]]; + [button setAlternateImage:[images objectAtIndex:tag]]; +} + + +- (void) performClick:(id)sender +{ + // called by the key equivalents + int newsegment = ([sender tag] + 1) % [images count]; + [sender setImage:[images objectAtIndex:newsegment]]; + [sender setAlternateImage:[images objectAtIndex:newsegment]]; + [sender setTag:newsegment]; + [[self target] performSelector:[self action] withObject:sender]; + [[self controlView] setNeedsDisplay:YES]; // to show keyboad operation via space key with Tiger +} + + + +- (BOOL) startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView +{ + return YES; +} + + +- (void) trackAt:(NSPoint)currentPoint inView:(NSButton *)control sendAction:(BOOL)sendAction +{ + int segments = [self tag]; + NSSize size = [control bounds].size; + float length = size.height; + float pos = currentPoint.y; + if (segments < 0) { + segments = -segments; + length = size.width; + pos = currentPoint.x; + } + int newsegment = pos / length * segments; + if (newsegment != [control tag]) { + [control setImage:[images objectAtIndex:newsegment]]; + [control setAlternateImage:[images objectAtIndex:newsegment]]; + [control setTag:newsegment]; + if (sendAction) + [[self target] performSelector:[self action] withObject:control]; + } +} + + +- (BOOL) continueTracking:(NSPoint)lastPoint at:(NSPoint)currentPoint inView:(NSButton *)control +{ + [self trackAt:currentPoint inView:control sendAction:YES]; + return YES; +} + + +- (void) stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:(NSButton *)control mouseIsUp:(BOOL)up +{ + if (up) + [self trackAt:stopPoint inView:control sendAction:NO]; +} + + +@end diff --git a/KC8EA/StateMachine.h b/KC8EA/StateMachine.h new file mode 100644 index 0000000..55cc466 --- /dev/null +++ b/KC8EA/StateMachine.h @@ -0,0 +1,61 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * StateMachine.h - State Machine for the KC8-EA Programmer’s Console + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class PDP8; + + +@interface StateMachine : NSObject { +@private + PDP8 *pdp8; + unsigned short cycle; + unsigned short md; + unsigned short mdDir; + unsigned short ir; + unsigned short cpma; + unsigned short bus; + BOOL pause; + unsigned short autoindex; + BOOL interruptInProgress; + unsigned short oldpc; + unsigned short oldinst; +} + +- (StateMachine *) initWithPDP8:(PDP8 *)p8; +- (StateMachine *) initWithCoder:(NSCoder *)coder pdp8:(PDP8 *)p8; + +- (unsigned short) state:(BOOL)sw; +- (unsigned short) status; +- (unsigned short) md; +- (unsigned short) bus; +- (unsigned short) cpma; + +- (BOOL) isInFetchCycle; +- (void) loadAddress; +- (void) loadExtendedAddress; +- (void) updateState:(BOOL)exitFromGo; +- (void) executeSingleCycle; +- (void) examine; +- (void) deposit; + +@end diff --git a/KC8EA/StateMachine.m b/KC8EA/StateMachine.m new file mode 100644 index 0000000..a56f9a2 --- /dev/null +++ b/KC8EA/StateMachine.m @@ -0,0 +1,415 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * StateMachine.c - State Machine for the KC8-EA Programmer’s Console + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "PluginFramework/PDP8.h" +#import "PluginFramework/Utilities.h" + +#import "StateMachine.h" + + +// these bits are in the positions of the "state" display +#define FETCH 04000 +#define DEFER 02000 +#define EXECUTE 01000 +#define NO_CYCLE 00000 + +// opcodes in the instruction register +#define IR_AND 00000 +#define IR_TAD 00100 +#define IR_ISZ 00200 +#define IR_DCA 00300 +#define IR_JMS 00400 +#define IR_JMP 00500 +#define IR_IOT 00600 +#define IR_OPR 00700 + +// values for mdDir: to or from memory +#define MB_TO_MEM 00000 +#define MB_FROM_MEM 00040 + +// coder keys +#define CODER_KEY_CYCLE @"cycle" +#define CODER_KEY_MD @"md" +#define CODER_KEY_MDDIR @"mdDir" +#define CODER_KEY_IR @"ir" +#define CODER_KEY_CPMA @"cpma" +#define CODER_KEY_BUS @"bus" +#define CODER_KEY_PAUSE @"pause" +#define CODER_KEY_AUTOINDEX @"autoindex" +#define CODER_KEY_INTERRUPT_IN_PROGRESS @"interruptInProgress" +#define CODER_KEY_OLDPC @"oldpc" +#define CODER_KEY_OLDINST @"oldinst" + + +@implementation StateMachine + + +- (StateMachine *) initWithPDP8:(PDP8 *)p8 +{ + self = [super init]; + pdp8 = p8; + [self updateState:NO]; + return self; +} + + +- (StateMachine *) initWithCoder:(NSCoder *)coder pdp8:(PDP8 *)p8 +{ + self = [self initWithCoder:coder]; + pdp8 = p8; + [self updateState:NO]; + return self; +} + + +- (id) initWithCoder:(NSCoder *)coder +{ + self = [super init]; + cycle = [coder decodeIntForKey:CODER_KEY_CYCLE]; + md = [coder decodeIntForKey:CODER_KEY_MD]; + mdDir = [coder decodeIntForKey:CODER_KEY_MDDIR]; + ir = [coder decodeIntForKey:CODER_KEY_IR]; + cpma = [coder decodeIntForKey:CODER_KEY_CPMA]; + bus = [coder decodeIntForKey:CODER_KEY_BUS]; + pause = [coder decodeBoolForKey:CODER_KEY_PAUSE]; + autoindex = [coder decodeIntForKey:CODER_KEY_AUTOINDEX]; + interruptInProgress = [coder decodeBoolForKey:CODER_KEY_INTERRUPT_IN_PROGRESS]; + oldpc = [coder decodeIntForKey:CODER_KEY_OLDPC]; + oldinst = [coder decodeIntForKey:CODER_KEY_OLDINST]; + return self; +} + + +- (void) encodeWithCoder:(NSCoder *)coder +{ + [coder encodeInt:cycle forKey:CODER_KEY_CYCLE]; + [coder encodeInt:md forKey:CODER_KEY_MD]; + [coder encodeInt:mdDir forKey:CODER_KEY_MDDIR]; + [coder encodeInt:ir forKey:CODER_KEY_IR]; + [coder encodeInt:cpma forKey:CODER_KEY_CPMA]; + [coder encodeInt:bus forKey:CODER_KEY_BUS]; + [coder encodeBool:pause forKey:CODER_KEY_PAUSE]; + [coder encodeInt:autoindex forKey:CODER_KEY_AUTOINDEX]; + [coder encodeBool:interruptInProgress forKey:CODER_KEY_INTERRUPT_IN_PROGRESS]; + [coder encodeInt:oldpc forKey:CODER_KEY_OLDPC]; + [coder encodeInt:oldinst forKey:CODER_KEY_OLDINST]; +} + + +- (unsigned short) state:(BOOL)sw +{ + return cycle | ir | mdDir | (sw ? 00010 : 0) | (pause ? 00004 : 0); +} + + +- (unsigned short) status +{ + return ([pdp8 getL] ? 04000 : 0) // Link + | ([pdp8 getGTF] ? 02000 : 0) // Greater Than Flag + | ([pdp8 interruptRequest] ? 01000 : 0) // Interrupt Request + | ([pdp8 getInhibit] || [pdp8 getDelay] ? 00400 : 0) // NO INT + | ([pdp8 getEnable] ? 00200 : 0) // Interrupt On + | (interruptInProgress ? 0 : [pdp8 getUF] ? 00100 : 0) // User Flag + | ([pdp8 getIF] << 3) // Instruction Field + | [pdp8 getDF]; // Data Field +} + + +- (unsigned short) md +{ + return md; +} + + +- (unsigned short) bus +{ + return bus; +} + + +- (unsigned short) cpma +{ + return cpma; +} + + +- (BOOL) isInFetchCycle +{ + return cycle == FETCH; +} + + +- (void) loadAddress +{ + if ([pdp8 isStopped]) { + cpma = ([pdp8 getIF] << 12) | [pdp8 getSR]; + bus = [pdp8 getSR]; + [pdp8 setPC:bus]; + cycle = FETCH; + } +} + + +- (void) loadExtendedAddress +{ + if ([pdp8 isStopped]) { + bus = [pdp8 getSR]; + [pdp8 loadExtendedAddress]; + } +} + + +- (void) setDatabus +{ + bus = [pdp8 getAC]; + if ((md & 07200) == 07200) // 7200 == CLA at seq. 1 + bus = 0; + if ((md & 07501) == 07501) // 7501 == MQA at seq. 2 + bus |= [pdp8 getMQ]; + if ((md & 07404) == 07404) // 7404 == OSR at seq. 3 + bus |= [pdp8 getSR]; + /* the bus setting may be wrong for group 3 OPRs implemented by the EAE */ +} + + +- (void) updateState:(BOOL)exitFromGo +{ + autoindex = -1; + if ([pdp8 isStopped]) { + if ([pdp8 getProgramCounter] != oldpc || [pdp8 memoryAt:oldpc] != oldinst) { + oldpc = cpma = [pdp8 getProgramCounter]; + oldinst = [pdp8 memoryAt:oldpc]; + cycle = FETCH; + if (exitFromGo) { + ir = ([pdp8 getCurrentOpcode] & 07000) >> 3; + mdDir = MB_FROM_MEM; + md = [pdp8 getCurrentOpcode]; + [self setDatabus]; + } + } + } else { + /* set state at the end of the next instructions fetch cycle, + before the instruction is executed */ + bus = [pdp8 getAC]; + if ([pdp8 getEnable] && [pdp8 interruptRequest] && + ! ([pdp8 getDelay] || [pdp8 getInhibit])) { /* interrupt */ + cpma = 0; + ir = IR_JMS; + cycle = EXECUTE; + } else { /* normal instruction fetch */ + md = [pdp8 memoryAt:[pdp8 getProgramCounter]]; + mdDir = MB_FROM_MEM; + ir = (md & 07000) >> 3; + cpma = ([pdp8 getIF] << 12) | + ((md & 00200) ? (cpma & 07600) : 0) | (md & 0177); + if (ir <= IR_JMP && (md & 00400)) /* indirect MRI */ + cycle = DEFER; + else if (ir < IR_JMP) /* direct MRI != JMP */ + cycle = EXECUTE; + else { /* OPR, IOT or direct JMP */ + cycle = FETCH; + if (ir == IR_JMP) + cpma = ([pdp8 getIB] << 12) | (cpma & 07777); + else { + cpma = ([pdp8 getIF] << 12) | (([pdp8 getPC] + 1) & 07777); + [self setDatabus]; + if (ir == IR_IOT) + pause = YES; + } + } + } + } +} + + +- (void) eaeExecute +/* check for memory cycles of EAE operate instructions */ +{ + switch (md) { + case 07403 : /* SCL */ + if ([pdp8 getEAEmode] == EAE_MODE_A) { + cpma = ([pdp8 getIF] << 12) | (([pdp8 getPC] + 1) & 07777); + md = [pdp8 memoryAt:cpma]; + mdDir = MB_FROM_MEM; + } + break; + case 07405 : /* MUY */ + case 07407 : /* DVI */ + cpma = ([pdp8 getIF] << 12) | (([pdp8 getPC] + 1) & 07777); + md = [pdp8 memoryAt:cpma]; + mdDir = MB_FROM_MEM; + if ([pdp8 getEAEmode] == EAE_MODE_B) { + if ((cpma & 07770) == 010) { + autoindex = cpma; + md = (md + 1) & 07777; + mdDir = MB_TO_MEM; + } + cpma = ([pdp8 getDF] << 12) | md; + md = (cpma == autoindex) ? ([pdp8 memoryAt:cpma] + 1) & 07777 : [pdp8 memoryAt:cpma]; + mdDir = MB_FROM_MEM; + } + break; + case 07413 : /* SHL */ + case 07415 : /* ASR */ + case 07417 : /* LSR */ + cpma = ([pdp8 getIF] << 12) | (([pdp8 getPC] + 1) & 07777); + md = [pdp8 memoryAt:cpma]; + mdDir = MB_FROM_MEM; + break; + case 07443 : /* DAD */ + if ([pdp8 getEAEmode] == EAE_MODE_B) { + cpma = ([pdp8 getIF] << 12) | (([pdp8 getPC] + 1) & 07777); + md = [pdp8 memoryAt:cpma]; + mdDir = MB_FROM_MEM; + if ((cpma & 07770) == 010) { + autoindex = cpma; + md = (md + 1) & 07777; + mdDir = MB_TO_MEM; + } + cpma = ([pdp8 getDF] << 12) | ((md + 1) & 07777); + md = (cpma == autoindex) ? ([pdp8 memoryAt:cpma] + 1) & 07777 : [pdp8 memoryAt:cpma]; + mdDir = MB_FROM_MEM; + } + break; + case 07445 : /* DST */ + if ([pdp8 getEAEmode] == EAE_MODE_B) { + cpma = ([pdp8 getIF] << 12) | (([pdp8 getPC] + 1) & 07777); + md = [pdp8 memoryAt:cpma]; + mdDir = MB_FROM_MEM; + if ((cpma & 07770) == 010) { + autoindex = cpma; + md = (md + 1) & 07777; + mdDir = MB_TO_MEM; + } + cpma = ([pdp8 getDF] << 12) | ((md + 1) & 07777); + md = [pdp8 getAC]; + mdDir = MB_TO_MEM; + } + break; + } +} + + +- (void) executeSingleCycle +{ + switch (cycle) { + case FETCH : + autoindex = -1; + bus = [pdp8 getAC]; + if ([pdp8 getEnable] && ! ([pdp8 getDelay] || [pdp8 getInhibit]) && [pdp8 interruptRequest]) { + interruptInProgress = YES; /* interrupt */ + cpma = 0; + ir = IR_JMS; + cycle = EXECUTE; + } else { /* normal instruction fetch */ + cpma = [pdp8 getProgramCounter]; + md = [pdp8 memoryAt:cpma]; + mdDir = MB_FROM_MEM; + ir = (md & 07000) >> 3; + cpma = ([pdp8 getIF] << 12) | + ((md & 0200) ? (cpma & 07600) : 0) | (md & 0177); + if (ir <= IR_JMP && (md & 0400)) + cycle = DEFER; + else if (ir < IR_JMP) + cycle = EXECUTE; + else { + [self setDatabus]; + [self eaeExecute]; + if (ir == IR_IOT) { + bus = [pdp8 getAC]; + pause = YES; + } + [pdp8 step]; + } + } + break; + case DEFER : + if ((cpma & 07770) == 00010) { /* autoindex */ + autoindex = cpma; + md = ([pdp8 memoryAt:cpma] + 1) & 07777; + mdDir = MB_TO_MEM; /* incremented value is written back */ + } else { + md = [pdp8 memoryAt:cpma]; + mdDir = MB_FROM_MEM; + } + cpma = ([pdp8 getDF] << 12) | md; + cycle = EXECUTE; + break; + case EXECUTE : + switch (ir) { + case IR_AND : + md = (cpma == autoindex) ? ([pdp8 memoryAt:cpma] + 1) & 07777 : [pdp8 memoryAt:cpma]; + mdDir = MB_FROM_MEM; + break; + case IR_TAD : + md = (cpma == autoindex) ? ([pdp8 memoryAt:cpma] + 1) & 07777 : [pdp8 memoryAt:cpma]; + mdDir = MB_FROM_MEM; + break; + case IR_ISZ : + md = (cpma == autoindex) ? ([pdp8 memoryAt:cpma] + 1) & 07777 : [pdp8 memoryAt:cpma]; + md = (md + 1) & 07777; + mdDir = MB_TO_MEM; + break; + case IR_DCA : + bus = md = [pdp8 getAC]; + mdDir = MB_TO_MEM; + break; + case IR_JMS : + md = ([pdp8 getPC] + (interruptInProgress ? 0 : 1)) & 07777; + mdDir = MB_TO_MEM; + break; + case IR_JMP : + break; + } + interruptInProgress = NO; + cycle = FETCH; + [pdp8 step]; + break; + } +} + + +- (void) examine +{ + md = [pdp8 memoryAt:cpma]; + [pdp8 setPC:([pdp8 getPC] + 1) & 07777]; + cpma = [pdp8 getProgramCounter]; +} + + +- (void) deposit +{ + cpma = [pdp8 getProgramCounter]; + md = bus = [pdp8 getSR]; + if ([pdp8 memorySize] > cpma) + [pdp8 setMemoryAtAddress:cpma toValue:md]; + mdDir = MB_TO_MEM; + [pdp8 setPC:([pdp8 getPC] + 1) & 07777]; + cpma = [pdp8 getProgramCounter]; +} + + +@end diff --git a/KC8EA/addrload_down.png b/KC8EA/addrload_down.png new file mode 100644 index 0000000000000000000000000000000000000000..5f37bb7fe05d69f0c5756b3bcd66049bfe09c06d GIT binary patch literal 3435 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 @=ohDW%pJFF!?6!+#zEZ__Tc^d_jr7KMGMEV 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

`g|_+PUSdOrZ0^xCt2xSQ-(V;i+c_`R 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

DgnEyM-@zjfqrGEf zyR3?%2Sv@@BOCZE2q&DIXP}Zb;@osdC{!2OBM2l8Ktlm-kRd3hFv$aIsf3Yu>my=cEjoZ%@A=C^iJ1H=NEm9&lx%YXT z|G-PQ^3o|BeeK=Yz4IREW(P6??a~EoUw9V&o=U2=*-LN)_V`7&#-$a3~zd_FhJO`~k>`SHdf=O>GB=mri5X$s`%x zp|4-D@pMhFO zgy859T-*b0d()TkI*Fj0tn31NmwEq)U@KcpWdf$%j5OrUJt&Y53^JH9@}VNw>=eu| zoyTT60qh)2a8U&=T!f+X!8jNJ)ZDi6nxjbGdIKg32%|^h2ZgrbSm5Bip1mt34P5&C zXMqpDAGq%=!1XsTu%xT#I)=^8F;trnjZ8|qBL;ek&p6m$MP{}+@=$vt2A=!l|BPEt zUJu;+CBStz|E(6j^@;fC!#MTSysu@Z!)}G4gq_M3h_vO$1)jp?Z)dHD%%hS_zqs^v17knS&Stb+(XU-7ry=Se*b? z5Od3-AnSSA3+ldi3T+2(4d1NE}}sr5Gg1jK?vd8Z0ADk*sgM2a9mZcD%ZK+ z_TJyS)-&g%F~+mLZ3#=3t#hjOx4-vY>v`s7jNd4qLSi5 zmkbn~M;$M=5wxA29Z{WHMhBhC-sgV#$`IKvJ)0UH>0$F@J>{u_T2@BY8PkI%pV z5#s0n9Pnd5ga6HmfPqp#!b=YK3K;%mr$fl-5j1!2;y@vK`( ztSJTyt*>Mh1%fI*$&k$KmHB>MJkwYS$6^V_*qJaE1pk*a(KNwCnogD7Z zOx??}L^~T5E-YyQCU>c?po?xT!lXPIK~7Cgsp`@&Ffd1=@{Wj&Lr{7y$a+#YQE;)I z7UUbW{S;&aUFrrYHq8*m&n(3P_RYn)+K|Qip^JRjZhk&yWN2Ug&T z*jj17t|Ub=j$puiJo%lXXgS6!{$JyeU{|n5i;O{k50h2h4u#&O+St-lZ8nDdSi z#&<2(xSRnbWej*4Hh?i{|Hp~Zv>2XtO6|2&Im`Je&Zlq6%m#3t7^<6}?$6e^>lKb~ z)1GXR7xQ=p#vvf3)sQl}xiGMTa%7$oJ)LRysV3QjPL@oCTa3ggQ$nUxo%)fLf$4^5 z4U>&3Fjx3Q8f|svEp{`7cXQscdx!_Mk{}IGLK zAxoJWhx#1p{<_4c3*)u1)NV^TrbSQVRK4o((U+|~p}|n;v$jT_sgR#ma1U9A*?B!T zZ0e;Oa>wXb2MVDC&onVf47vlO7!YLU^QhexKEeJn3@U$HqF|7EXalykGl3dA5{EbZLc$%s7VVgX*L?b;l)x=Vmbw*vR(g5?kMe zD-1$+3*r3pspMM!PjiXF0d-w}KSOZPnq-q18Z8F+O4!Vq>?OwjB$V-;DeIJr@Lowe zZh(Vl5lTbmb!Q0=fQ6D+-0!ErpH<)1D?@bl+)`)5k(lV9lB}C3D)*-aJq=t;X{}UU#8>{4i(iHR15nUhxdDI0YwWRO~3 zAeP#R3n#ZgPq8O;8xId0hZv<@TpAfI&?xBn99oue2peXoX=q>fN)tDPB&K2Cfn&bkVM148i^CH zMW{#S6S14456&zKQeJ9kd#?l51Fj%8Lm^L!XwIXq^Kkfp&BAR2P9si6M-e%nlb?)* z!XOQJkrTrjo6fyUVOVk)2J2w6;8M`Y-M3EF-UDZGsnw&d6l&h08%}?Y&yJTEF{Geh z`56>-5pC$Khn<*^2osKFqk1~I3@_C+VFA4OlrD~J*1aG~r=P@*AlL=@CkB5}pl8^N zU#i~7Ig2sY!=DmtlNQ>PjdL+bd=Rb)rPamQ_~918wdMmi+wgoEas);-_8tO6CMBaD z*G9)zdI})*TobbBzQXW0^jqPM0IW(c+#qx_`;tO#9%wT>zPMw=4T*vM^#`1fCzC@R zQbjR6X4Ob}PuRA>jm2IG@a#@r)Mg=jR{}V3+d$?}O9Co@y1jC^cLWn29mu;O!Z8e( zIAPZ?j+i>DDyxE@tzx}@=f7|eWzlQO~ z>o})jj6#3*5uR;r z_;q~v-~1=2xS=23L{H(X=5u`h#YZgk1=S9mC_%Zs1+Lz<1#-mLcRDWH@#3RT@fHkt zzIa6k@VU?9^%C2x-EiP!r;{hhyxkAMAtgZ8;05Z# z@8R`&4)cZ=hg_%ef@!H}eDNMy{0XJr0S(VW`Y8)pV-8;IKYIKz-uoZ^3)GvR$Fo2C zm+IzLIdOjW4)W7?aeU)wo$ef$ahJFmz4q z=SzIl0q?#8 zy!$TVlMit7M*D_YY=OHcttC#&46{{+^yQ|;k3VZxatPQ4i>a_a6ON%V?PRF`qudl`pf@2zW1O1Lu_C8X}tA|{|>e<{Uq=c zKMFj&O?Kyzzz3gT{=skJeDC}C^!NWE^8N4P?JxZq;K#oR{K2>I*|)xf*ZL8C-hm-T zY&XgSqZ|+U0uO)m&+y5A|IaZWUWfhAPvQ1MKL&gIOTd0(GW$pG;_>6}!`}NA_Q%ig z`r`-OP@6Jh?K#2ATS2@9!M&47j@Gig8uGkL{k4K9CfX-Pk+as#K?Kz#Og&}MtU+Km z0*>Q;VB6F*nye}?I3^6IY*_h(Pgr(@PRyKaR_7xMgQy|Dad{=Xe;}yP$mZa{2Ge;< zJhD*Q^<|&4>)vS%EINq@!Aek_k8s7bLXnTl2uCH^>gkTT3S}FcWizF=Q{x#y8(c4?r9y+umtujeoLYffQhu$^*u%Bb*sfY{CEa?jC5d=Y zD?Dz2-J2MKN*3TQ6(zsQ7HVP{lvhgiN=Zzdb7Bnfe|;!0W(ncf--@aMmnS_u;4L+q z?Amkv&HL&5slFp$232N4KxB<8opT>j^Psu3!xXR0E@o0R72`JePE=DF(I$JQtilDd zg;9kmaK1^^&7|DKu;B7`7Cbfv1}L@O;J8T%>q2zwt-)6_1#u}asiF#{NK!e(`6F3< zWu*bbq~%bM_^0`TYv`4{`z;iBZ#pMh|6YT5{k~?bdFmw7+Q9d1srkv?R7d~_zvoTH z;h*`CtD8!+EMUh5$3)0^1YtSM8YLkDheqR43RSU*pJJmyDc&`Jt!QZ;!3EvoYO=<6 z4t%U}_JN^+63k$-{0nGEOZ6r@dOf)&(Fva#hUdX_>u#~LXdm}6_!(&MPJW{a(V*u$ zU12v%E#wR@N%5X-C7{y^=Sq@}7&@nogC8_Gx)|sjHW6<3?Mnx$brLP3A=v zacQZdL5-;f#7_5*n<_Y+91$rq8JL&hYO6Dfy>{9&j$quaNjWRcZD{F)SVMK6JvkC%))3YcefFk zNc1K|PI1UzCMLH7eXg@Z0h|1in7n$P8sIbq6vJ`Drtgje`nrObXw_eM5gWv1c_tO0 z+s5I3D~z#dr#3auT@yDA%*c%d%K7hI*4SvHXxqWijpom+1!(lvnM88%*bP4CHJr-X z7-Lsh4e$KT`FT`P)#hH9)|^!s8LQDLRWoH^Ht{DGLzqdYk%G#OIpOY@b@H8@tUbdA z6riji_`W#9>|=l}HtO27Qysz7-&&mG&MWjO#PA%k)6Llf@WA8C=ND4#G{bptY3Byk z3kWWSX0xX>9{h(C^fq)p+C;~|y;L1U;lXd1#rF|2aT^15pTKQL^}&UY#dSYs2V$%+ zy@4rZwKo-$tq{DM^WUKz1C4mtam)kWMZCnB*lvdH_8RtWM`vD!KPYf0LcO47QWt8U ze|d7TgU@|cW2){L8^?>sO6-OP&z`WJI_wRjukD{2359mJ22^b!>2zru&rJ*Y1pEt^ zJHj_iDTg8kP~-->R55)n>j`_<5rqRM4j9@7?f_%vp@Et4k{=OBZQ){)ljFs-KNum@ zFvpR!eDEN1*dVmsw(XURLI+nF&X*^~ZNu1Z=%O{MA17{tE}sgz@D7AEH&w}j$WX#! zIu%j3v7-xk*q&({#Dld`C^X-xywGrA#g<0|&SPE~3W-7)H*8f?z}fUy1GGfqz){^hHV{{|3 znY1PU35AISYI^fvf;Li53+}+!4R$_<<2mN1@A8mIpe#^M&P>WBmc>8{*Gq^3@OT1m zz6KnL?MNW+cw;2K_w}#ft@94-55S8P7!G{$9`O1z{LHWZNBF6~_;2C(=zZKi_XhmO zevFBtP8hJ_p@98$++Y z^Znx1$=hJY?L?|^SS*<_HXL&*tcOa&?O8AjuqSpabj%Ark_ccXdN>}vu-j*d&tBl= zKl*EU+}=QZ?uU4WofGr;1peY4sW*&J?xt_?ee*gOlU zK9wq#*n*sga;9}g@95s})|fc{@SouQ|L(uU{?-@yneC17_=q9lU9_@R!Y{yZiCAdy~hYOI3Op-s%7IVViLw+VVNNYr?`uy_DM|2%{qmm1tp6HEdx0|CXF(FVe1`}En*z87L z#}4@Y`{?h!hfm-6GV+Zd1Z>0Y;Q@6P`u-{M{0!s8$9SU~Z_bI&{_bCg|K4w6?w`Xa z_d9;-OaB?*8wRBmn9Gt@7yi;;0dAke@xl8z@6YiAmGIc4HevxddZ%S#e}uQ;p-)tP1b_FdnD2fA z8G~Guwh))7lf!oyVuV6N_|I+A;9B>NmB963m{k~?mM$=|^U`7Q+NC1sIyfL|1p@%G zJNA`6xYtl(pzLT%eQ_mlt6*CdQ0P$~o7gfA)8M6rIIvp0{Q+kzGP)<`l%1{{ft`aI zBUHX7tsgL8DD0=O!IP@#YV_8?kvB3C$d)ZSJN@q;fQDUW@&z1VSQd1?fGOtTf*puM~tDZSqOHngm(BcfS zdXZGngm&lmd5FOcbd$Hc(!Duv@>icWvZ@NmunWXqqM}n_vyoVxP5Yz*t@vuLAw~0U zsFD?0R^$~l_=+vvMu;s9c-$~^DsX}WC|vg1;12qHN_`#@2b9!#96IGwO;oKwkt^cx z3Wz8qT{L1wvBnMtk}U;+IC8cYwCgvRv^;JROrh3rns#|y!yWQCaS0$Q6Hw6JwmndJ zs8RDe$GcOiHNTqOE-H*nNzAoUfs;#L2qm%tHJEyCaJzA2;CO{+M{I&OkUcN3ykTha z#Nmt=of_DpA>ggK_A zltr{v)^Sn+FAgt*XbQ1C4QrV)K2Ro0ZZJ(Zn?r0j;uu0UzNILP7^ni}i=*Nz#q$dB{q+ki+;F$QnMwi8(9I0FWRf)|YNdinU35I+r!B zbB;BrTi|Gh_i#ui$chH0whe@EW@q1pqZkZhL*T4L=fuMvI1gbbjAzr3Etsbh8PWU& z2iztQ48buQu-O{+OVHyAiA?fA+-Wt&T9|nu&UNQY7z8ekZN$aPH=zQ$I2i9mlgt1M>|?{xQ*2NEUB-S>;zOY4o$1@_yA0fvOH-Nr`dK$~n|Hyrc8_V7%Sef>O=Zs8DfukZXE zN23pV!7~p;v?A_Vyv7LHu4Vt&#BTARMA~fQfCP;(wkuJOmY0e24W1`_8*<1xd1mKC z=SluRk%i*Rn&UyazSIK4Ob)ab#U%g$AOJ~3K~#gr86j&=OWuBJP{iVTi-9^$)gQKE zr7*qGgF`EWb34tq5#0yU4c;5P3Wt?SELlr@1Cohh*^hj6XQ28-Y&)B|Y$j?xxMcLe z*|h9J7qFY*T)^C(OhOZvfki(z%;ObFJ{gJ!hCk5rZ^s3uCFhWn`Fke(w!_btIKTFL zIDYNdu>b0>@=%&A>T#UF!;c_-_DAq+MHA}tVaKG^&kwu>eES=C{|9kC65Ki^a7SXfyI1-ggYUUmTF0Dl9C~lbhXRJ8(R%HOofG za5cB~DIl`gqvY2=N7;sF+30Wn18(W_fW?kZ$7>c+VYPxjpayG*Bgu=g?gtw@Yw|o5 zcG6Nw5VAj6QX4G;X+Tw6tPV=*OXk3S<()AVxT;5FT_$^V!ovx3j}3hu*vqgLgDE-# zwket2jD{gMcR^JQGm^g%^l)JiNTaK6(%Nov*MNYasW=(1Ia+L)L~5?>GF&FZ>b! z$BRGuCXRQ$g<+>`2!>-$Aov}&H^!ad(S^OFOClXB6xQgxjC&E3t39v5N27`rtE3ubZJ!0Q#xVWO_?l^G^Cd*wgW;9}mPo(-HLAzlTq$G|LpHYST_*g$x2B*?Gj_%CCV*i#HpKe* zrZ5XOC7Rv!hO~qAk`;1t(G@*#+?!3)&bnkRtZf@ilXVTSZ#*wejaAsd35H`3t0Fx_ z6El)ZJ#0`VhqX}j2^$KBa0gn2e6OrA2Ev4qpADy7&}*PAaUK(6>_9P%Fc5I#fTz4(V**n0M^XnzNNsXw4?4z$GG^ z!(7NivgO>#Ypeq}ULt%aSf`j)38|9ZN(<^n+krYAzA-7eds#WD;^DETMRPGcr88Lv zVuM>?ioeO>8sY4<20E4El`rNen|Sgp#g}$9#SMlOAg{qA5g&_9Y6yk=br*6j>nj%? zW2KVYzz8k@J%&&uLv5Vteas6=pRv*^H9UJ6Ihci1?*DD#~`)?mRt-wBO$A%?28SvDY|aGh4UX!;h1x8j?3zV-f=Xr6^XQubqJ#$#R_nYc_HE~~ z)nq4cT8wkv8GvR~NZO|KZ4chJSYc5@l=Z=xgi4e!2|6-4+?TL}watw!SW^if?X0z; zaGz7W^2AJ|opsR0O0mt3vdLb+6=W($ku`%>W@$;R0Liu7Nk}zXse8u7IL(C^=FDad z_HC&@X}6!*7;)q0C>`>^GonF^#K!7Vfjf;XE;(2y^yNN)2iz#k$>cH*+4%6qbAE^7 zP5Y45J&TS#qjGw7(3~<#VRT%W-8BqHPB(RVGgD;o1&sGel_nW1~fL%a#c0|Fb)qcCpl z;fBS9crh)$;VlGwzmjNA5f?4loNobvm?zJ*4y2Q9+d;t`%rMe6412lA6;B3u4TI8n z$O@bzRS_Q;+W3)6DP;-95$wL&bD4mg=};uHgSs3iDAO*nB%CE6ZvgpQjyAmnT5Wycs!1R{^w|^g%BCX%nCA(&QTBP<(Z0jfgn4Y}v$2g}p>pWb4@P6NZ#u73!;rjwrIxn1 zRx26EZNR#u5@7LgRw7mctp04z0WTiH=C5oDn(0{{v?6r`EG8Q|eI~DRY8VSX7)u}A zl$AS2B`(dpr0=5xhzXna#F4l>E;^E1s!>5$M{KmS6$?*ugT*tPRUCX8CFWdNy}Xi+ zu?LQ`kPZCg_7T4M*Z*7m%Rl`yz`y$EfKQ(*zE8#DBY2R-`e&*--h7LLsDJ!V@yS_KO>$lf|{Q-S6j%2Y;lL&i#SzeLFEbTp~kUMMa!0YK(sZ6 zC88g&$7}NEF~#rNIy#lJra%HphHvl&4x5O$@mbj)a8|;%l5K%az8H5sJo=i4G(XP={ zXw;nCz6A$9yz-nj(wF)!+!11q&Y@;_awxE?UL~88JDLbT;j>ZjCvO++f z$#bTuV!_xHyt5-W*Skh#i#4Pg(Ezi6#G{@mDxjEbt*sk4d`c9Ltr4)Gf`Oo7eYYrd z2Q8@0Af*`sl(!N{!Hucgrr%xPLm1wfkNCNt{uv;j?R?pL+0=xEn5A5hq#{wKY@}!n1ht@YNI^8X2+Tb7U6}Y; zCH@gDx?NQBFwItWyxE)GJW%Zz13Cjk9IdreY{cXMI!54l6pBOYK?Bu;w7#}%vif|$ zboG)IJ)G~0bv&^-JFv$_tGBpSX2zk;QYpHlCfS0px)fh+vR`5)RZ}57a}sIPWO;Hw z$z^9Z7nrQI#Z9g$qR->S!Q>y1Qp`!gyZBWZvUjEmJSbH=MaNyqv`VygzNfJ>aLO{_ z;{jDu!(T2;ZIE-hLM~>d5I}J)`pP)8w*}{SVVN56Otdk%JPJr(n2Tnbuk7LGyt~>s zm8z10RA>h(rj84(K<#HBb>5W14#>=Nz&V(QhWggDVsoMpyFUMRWR~v7MB)H?BZ?#&zEgELkA!Wvt2bs5k{T*0uuy@h zTuI1W+yo5MC(0*$S(O93{CcAdnKpqE|qXD$iO>O6QU}By7ZO56#->es&BycvJ1=Umo#|kHl4cG>T zDZw@ZkM&6WS@UzMJGsM084$^HR70<^wrK!x-top_{dU2c{enjzntjK1yJ2P`kBQgz z9rH}MmripkogdsWb*F7MloC!(=2<6pGi(Zt;_%JzQX0GA0~X1JfG}#apYwAp#S8}n zJ|eaB9U&E`mQ~5;DOLMDF;3OTjt$cjn2EC))aGUig`z8gG9F+=-LGw};R)hv*{CpP z%xwd6CJG0KDz@_v>_(emIGe3@$2k-3i5g33pm=5^>}EJ$-0|@2h8)1Nha2vvV#ZT;YEvLo7KQugKF7pT@H2Bb&hx-F)^&vh&TU>iB~EUoLRiJ3dB7fA$$pX$>hrF4 zHk9*~6Db8(gp?8H_;e=T z`oS+SUHjvY@%)ny@!I{4VezE=Qi@xRAhXt8uhVLv61EKzu4HksD`b=ktO&ka?0u#z zXE_9t=U4amC#K8oIDYb)Em{-7sd*M9q zWOU6}o@JESlcDcoLrpfH9tPZX|HwvG&7m#MM0&!DDjP1|q{>;g?U1z`ch$ChSKN1W zB&~SY^GJo-QjWINm>yg(Fa)L%K9xin9NwQNd~tj$)O<<7R0HLA?n#%8&6Xle%f&31 zZL$Rpz~+@UZmq>~l~`3$wiG#Gt&oYf!Bw|{TxJ%Z>1C~KIR?@g=+MDoG79s|D-1!I zpJFa02PP3xE|MRWeZUm3Fq2AtIG1s$)WlwLSlDHOv{&vWPK>mmSMg*%xYju95){NP zmA`DA) zlsfMLA5$sYxD-6I4727nP-{#KcX8A<@};~{3c@HP+Hnn|vPzcg;skG5P1gV_6K-7O zhlWrPm)bU2pe1@(z~0-sZOgcSy&q|&uaQ!28nKU)Ek zOWo>&f(hwJq*f}FF-bVKz)_E6v5rAk)V||XAmLejm%CE|Dz2ZkZ1l^e&~hEA514j^ zZ?R^uixUSW^pd@}>7_4%d{syc~Zfs})_LUMc{XQQr^^oeZ@ zrT?CY;jr2`#0v3owfJ7o{+yG1yC%QBP7S=9it2ex_}CeA*6g9sEj2PjJk?4&qj8f@-F3~ei$AUF^|6M91e45rNSfgQklYareQa&}>=mBWLqLxnwZP+nY~9mi9Z)6MLQPT=7Iw~c6x7D87rAGNM#9bHhFy$2@7>bOJ)D=vc`fY_Nwh)i#Y^ZcS5>%W3zabTm($NFj!7*$3+l4$>?p1~f!7MSh!1?k8A7TJwxU3KX?+Mrqqk)8> zLkT;YXtz0oHH>zPu!k$jauuQI2JXr2WiM`B0Otv8LuqWhq@jT&i&Hgwy-88k0>w6g z&|>3NZQTBM!B5#QOxu>h3p)1OHBhp}hXG-pIe~|9qJHQ9z<0j(kMZ!MKZA#V8h23ZO4LAStT6SnY-@O^4ghiLpI{W#K#~ z6E8IZow7%`6n=F~g!e1@m4;U+);(k$oSZ`oeqUnS;pK~0)W@;`DcZj3M8XMTz)Z7ww>>c#SNX1y>Hip%%dsbVl}DowO|vo1_7WHpBB%9Lj&BX z)Ut#HnItS(fO$+RwKT}L(=Ik2y0jUev62t@)$L|DYa%evrEm!iZn_gTSZGCs3SHV(1A%*| z(rOzuMKKvvp23{W;d(pk1Y(B|0@kB&{kzU0{Jm4kCvL^B@DU}9#t7W4Fc#ezd8uO} zmc2N+NYgXO#tk^{kC#P(HJTx9pzV;IoeiI9pcO$&bGXnC`sW?a;m2a4RVn?p)C5Z1 zR~#U5e(AdF*aTLkQi*Ac+{LWvO4uuIh~$feHbdAZczZr!7;L}TN!^W#O}FM0TZuNT zp#({5a$3AK#Izkl|NW%`A(~^UTNpGml~icSWJlX}%z0qvj!r^%$D$x5zo06XC zGKQzYLd?iXYaUo%WUoZl!2P^q3@TC)gusWmX#suCi6BS&khwWAKI{wQqb0Lz04+Pu^qrF7oGh&O8`Iz!4Bz%`6>7&>19 z&O3h}4^$(hcvVYE6(!e7$pYxaXj}n;4%a&|#P931YFP{P-J~W-4g6%WtJZzWB+(~A z7#o@$j+{jnoCn$hjX?Er4PuU@?X?s9IW5kf241ime_ruU%h+L=Qr4_Hn@TkFoy($` z$ZXuk1M*08=sPGj^ffu?TZ%v0L?5pOzDpf9c3030Ig>FQ^C087jZ7vn`iPNu+W5F22xgT=U<43;uMAeP-a zu#x{hQ;DC25xftpGz6-G*J8Li5Qf?|cmn4UbnWZ|CzcdFaS@gCty zt!7H^%k#v|nMhAJmaqyrX%{zsr&W&FitOYS_G1(<%`EuV!h9$+ri}OHl=JFZVDs)Z zSwblwS&Gqy3r{w7AqQ6f2PRf`7q;5DaKwh=ej>)MAtez3+%TrB+zoqZ)wb;6X-;$A zv4g|hHreRmXbpJ77;J?}^|p_}6x%#e&Ys90ZnXVB3-6W6pwm$z|Y(@j!f= ztr64Ud#O9d5U{2L!kCzb^ElC)BRVmfXQWkeNgs|;E6~9jQ&UA>Q|UD%7*b!j5hz{+ zESs@_=vp~ZPbsn7;I#@*HqR!`+P-g6@)cSDN8dN}bZrCu+I&|7aZL1}UC^aI>Y{34 z1HIMr0*tfLeXw1yeO&gCNSfzdte}kGi{9LL-0yiEta({%p6o1J1X^k?*Se(@&5gl? zpVwb|^Map-F7I9fCm5o)%VL-~X+Z@6?7nZ>>@M)|$yhtT?4@ zjo{HreS+V8JQ@H1AOJ~3K~!wlTpsUII=o`L877|9(ktMy%`w7^%~>F59|;G>hANr` zX<5M)THr$oOIY@d0q=mH^D0&YpScp6jY+r!u;|iTU@<4geJ;7Z1(gyb@Ok?L zkKg$%Jb&lwc=7N$;_V*=_SaxLlY<^V{Rna1QJ=hrc=-{=IkEMm{Vb`Tn6hpY_WFt` ztT}L^%CE%bH+X^@lVvF%16e1xoVqX~LP5@bJ=b0YL~mo`21e?R)vTd`$B#b78(W|R z^!6aDWi{a(J}-r4$cn%rMuFQ6&8awm-Bz=%RLb!*1Ohk@i`dbr!PR2K%qhz+3&&w~ zZMrH6M0fd5Ndy3~qUqGL9(pIe|?HZtYaC*1Vb? zz~Oc3&tt-5t}ToWbl(Y(*7Cq=(=aQjP;%a=RC#nfQF(5A2;M_m_blEahfZ>?u`x^xy#2F3Po~-PNBH9l+&VEQpN$lo z4-L$DikD)5Z7P|A+@(GVPWPdsr7))S*t%n?ix^SiG-giP(zFEN_B@qsR5xSo(+N;d51(V0ng`q)R_0*QzuEg2J ziCL;{b4MD#uYKQen!&56J_;ANQ?|=44pMBXifQqojp<1pINER&;Dc$}HXO(kb5a>F z=ZT7;`;>N#tS4~)dS;heKa0Z%_kmdl6JLWxek@jB11)Q@i5q2N*m7{eKWm5c**_uM z7oL@eY+v^&PGN!UDxpk1mxDSfgy z=vhkCo?14z!V!9<0pn`?TWZjY1*%kEI#I;(e#P9LvL)K-Xs1=q$BhH|nH;dTQw>o` z`}fET{h*Efr3&}UkwM-irrb9m`euynX(6G21uMJkc*|QKEoG)iUw-m)|Wn%+Zo9x5fHEwU9$K()k@_PuhfKk44e>MRwS7?kvvq>W`-ev0}4o_y;#^9yrfC`+|)N z)F4#`H7D6=QI~?%7Q0i6@U?E4>fb!XtDASYkujeO*O3W?Qi(N8X+0;_ecgLQby*h$ zFuA+xoF`6WRKl9QK{bTH0jeE77PGSfAGqBXK0x7LlPILa62qvr^s!xmN9Qpyf(x9) zfiX5YEjSp3gWr*v&Pp==*lbZ{TsYC{&CK~WMhwkAbdG1^7DMlITuXSvWyWK%oMiQx z8^Q|RyvI73PcQ~>+$Z+f=z?fA$JUNf3a@l13^WiM?@}g4FRL>bW9ARC*)yn%--lx= z*d&X*Z;yd<-m!1&rTFjd$sOcI6`vRSJgJ2Az?|zlms&T^>s+N0^LXMY_K7ua7&i`_ zr?C#t26Eo%f^w?Q?KY4WIIJ;ZEu}bAeR(`0ZX3db%P={>=9H2fiCK*^=(Mm-T9B<^ zTd1cr-JN{jX7GF&?eG-q&;zq4?zx`hLhb>ZjnlPYP2#RnDcB)=(-O;eHx<92V!IJy z=F*9vON>jS&7ZP1urNG%g?N~F?Ky=b5SE}O6Yp`SeLtg_ZPW!6Kc6uMP6Ng)$7mDO z*2MEzNibyn5%OxVqFN$$*T#Ue=jm$Tma<+(ve>vSC7qVRdjS<>qhtftCvK)MX#^E= z4#rfgn6EP>8E5#2H*nL?3LdB(I7mOj!|SgJ+>toXJLWm@>4z_{1=(vD`kib?b|N1c zf9|6h5gkmaLvR@2R@@G4J8DjG{RZW^$t@TgYo!b4z(8Q)#2AK60Ai{_n(Reu6##Li zDsI7MejUQyrUH)J0^6AY=RPn}X~CF?%`r}ee_RD8AB2a8fz6!IeQWr5pp7S+DT8Jh z8#nS}e^7Cqg1>T5VL@xtvhs}D$ZeZ-4aZu|=$VPzcH`y_v~ZdSzkh8_6A6EC;CQmZ zm<{pJ>PpAG0)!11n`5qYUo?<+R8KrOC+?Z^n$#Z}+<1Npd;THp`L}^NkyV&5JnT!k zM!ROm0CHoHf|Cz5whb@OLOgp0dQb;&dl0kn8MpPuU<^OBak1_C`va%!8b(%SGvT)= zo8f2QvS+F(ZXL?#1Hdzk+lH=*JU+v{h>o^SS#DmjH#J!;vkW5y!jHHb^`%-|N=~m( z;-gE2d0t8y4rpd{>^s}I|DDBY295^S7Q5&?WGc%JaFdPRk z9xk;_3SN6{woF#O;x^`3K?6n}=@NGj19>Tn%xA6CPHw?-GPnkLUJI2HrvkZbytMsX z>19n0$8k{Y6I!MmbzqDK^emJY?IOm&gJqk?dEhbcxIcf1&)1>!$PHnBsieCcj+2F7 z1vV+xs#tJzQ>{cx6w^*aoQpadHb9wv-8JZO*;c7w$~6RPF67U9_V1R zQ)mrCY2oTRR9sWJ{6#NCA#uX z3~U~HkDP;YrE@bGn2k&*85LV92!Z$XR9f8SEU3nS-Z9rOrrCV80b|^#d_0xB=%I6@ z6pFyl4$X}q=HxpiULGA>D{*il&*oM*fxF!?dJPytibp->PG-wW)mzfLQ?QSI?R~h6ZSZwoNnmzN@jOVs9!*)!mRM2aXE{{=_|| z1#XN@e7$+4YqD`mF?pY?d(hjD;nz^J{iLXdk{;rCx>)DL&}TX@hhZw+H|N2EPT?&h zl{C4LgT(sK7`WO@h~6WBjR4)86U!O524SKhoas_tx#a?i$ZC=X}@t?tOkaKK60!Bz96Kj@^)yL?LN`rYb*_ zs#ULms25e?rU(H-^cD#rQErjA=zmZNaaD@MRf|%Bf+$MTP>7Q#Kb;yk&hfE*_St)X z*Lvri&%?zS^IdCi8wrUcML9m_?C*E|c;ETXIi4{-LlO2;7+>upP&c9uOoDI;-CM#! zKx=767n{>~2rR3>1@Ig^6jctKd~s}Jz%$Ux;`Eif*kYAv7)Lv>1=k&@d#ec>;j1`l zfY0C3S26loAS&Y@yc;Hy2B<#`yd1% zy^`f50d*SVy{A*d5Oax6wQ?{g*R2&faWpaDhHANSoHf``L}_BR33m-qnBZxfgzhqU z=y$`kU|Y5=m${<8?u;4RgqMo!7Z#2P1Ht_<5S^US2nrn~)p8gG6FU!+rfYpUxg}zb zL1av-6k+UaqURumahi<4^g?cyCouM-3@DB9z)YxRm@butDxxEwC>ch9o%?J>;uhlM zz~6W%f=S>yKYK@WvZY$117{AE*OU|MTqJDs@XOC6|1mCCd%2>nyZ1Z0b_O!l4fUOtZ@J4+J{m6 zv%@uY;BbV@Vdmu|mS_T%dn_`|tKx%&2!bXtCFC&GqHY@ASxva&$3tv5vTZpe8qrab z5mg&JS55$EruZSxKczOcR7VqU&+v`c*4i5$uCL&l9n)wQ@Pbm~ z6^Gz3AU283W+;P=+*6G5j5rcP(9w;oR91z#5`Hr#wpKY5i7A#U9hP(NYzc?fS1_I& zbKV@E<{aD*%6}vRE$xs#C+O5mH3nzihG1m$OIRLk7p)4xiDgb+K(HPW?5PKskCj(gr6AWAIb01A~5DI2Qt$DP8E{^ z_(;H-f;c=+bKq0iv{4F*8@2+RlKm1zX&67;#C#mgxz?|ObQ+$#kj45&RLsuAPE{q- zTz!x*K$xJA$!8>8^j$Q@9^5;WIuFx=3u%HeP%Lphaqm-&g1*raaV(Rep$^-8c}-bq zc=_U`3=m2YN8!CPje9!j92Tx5q>N&*2DudjSIoxpRamI-G>!pYL&XHI!7+&ws~4Qm z%ET7qSYVE+-rC$JC^AK$IF;g3R_U zSe_6`H%bh;ifXGzgfC)8sSRW7+$_g{Wq~)AGL)tp&)>lL2Y(Rnoc-B<{&!6M>{_v0S;D(YLJPUe!8xG)HDW;~{d>jrhnj(487KV|r-aD!l)QyY1yQ8;? zX;0}yNLq_acEsZaFCKY_%`Kr?<mI#8)n+4p{U94LBwb%!WYrg4_j5pMy@&NjP## zCkVITnDlIExXR%YIZ#`{kj*|j0n{lT--2+%*Tj^EKd&r8fVez423l=swV}?b;u#7Z z7C^X!4+{#xIpF>jtvKT&;X)V3F@a^2kJsrc6*AO=GXrC6ZXcR#hf00~H_Zq}p9U~6 zxL^yo>y|5U#`eDHI>1gKHVqHRB&jRYzd+RTMG3Vt`$XqmfNtkhP~4TR-njZF}MZ1 zJpt?l{K!w>lYjMZ;QI0zPJiZSfYSpmZWvxLyrSfg!)-+z=-?a}Dw`k`GkvwX+rdwo zll+nt*Np<{L@OtxaWkC}5|HHgPy}&Bj*%O#A*XpM^vn#3 z7LW_K+;}uSaD0ZT89oCK1{Ie90JBSxp~E@TxC`Ij$|?7 z{KE~=2TCE2t3)2i2G`(kxn&4I7T-l8(28b9f~?O2a=y!PD;7*Cbl@mfPGOiPIJFJrESRNY7K$!$6nOCStgDb<#miEB-6W@JeQ(7aJFX~M zC42^~=iz)^oL%0gEJm68K-)Gt>x$3>Mgb+ga@ZyXH5NKyP8N+AH-bYElAxWH&!-gg z&qJ{e!P?zbY$cbl3J|jJbF53?Gn1gGdqTo&ro^eDf0ucPPKPTm_&Ou#qONXw{<`*b z8rnDoKSM)+Ew+$*swUS$3<1&2=qSomp^;JqT2CedB~>evP&D|W=oxNemm2&^aPnPz z9)&dfK2T~!_0VRz(XBq&EbWk^-G=ynb_{D){L!_&oQJ~g4g@FQE zZAHw$fwZQ9eh8*d0g(zGhd?x|uHq8B(vE16h@!%uTtz060&|gT!V7Lwi_kSL@P3+L z^g+Cc&N`T(`;F-Wcf-gItH6}|B{aBpC(g$r*akW~#S{ena7hQxI2zL%Mic>e7M~JF zLB!F z{w56&R=G|sk@k2pB^h8C1lP}CF<1hy^Cs&o#p6iru@>W8bq>`S^R9~a(`LbEGX~xH z+)leV^ZN3AWS2}BSR<*kVC7w${LUU?>rE@62A+)pnE*H05 zj6TbDe7Z5`@j0>CdX zSFf+Bf#MR8-OwZH#EQUHtIFGSEo+-=R&McHmrHVVVsdU}0~!cY)Mk0~&5S^d*$JsV zFx)UuVL61_Sq?rG*bPT%;*{SVBV+M2mN>kG{UaFV@IvRD2?G>!VyiU$5U&OFaYb=H z3yQ6#@cX}nJ)11kqWZoA=@LJMA<+8BK}#Nq0;?5?&H+x)Ic!msdaKxjCV*NQm3Lzd z+7t`UOxRAGl(|~jO~po`_#GzkgdqS zqyn2c5hEocyLN(f8!|oY$VN8lbsuP@qHJXCSpX#+mWH#R_?!!;$-@VS!!yvl39ZCH ze>c=1MXtlEiTZ`h49=q?9k#lXy4|Pc^-$3G1>Ih>ITci$r~9A za$mt1RSrwG1v_tmjKo%5O~6SDwm1+Li4?dwvuguEFzDGE{2Fxo%#OEy>d)b=pT4WH zH%|T0cgQz*aw}2Dq9gejo(QmaBkq;&;{1DTa?lSX47PjBk#N|CbFes z!NFz6KD^0_nXSkv)uy?++o6#YaH`^nB*=nx;N=TE`H7#xkALaM#04<97do9MeR4v} z`k(`v$!0D!V5u)X-I0CXwE_bpT_C?KdS?pUjBIG188zX zX*n1Vi@*9C=)(grui6l8_}29$K6w5S9>x`Ou;tKQ zt(E3LTsdu?WKh5q-Bgs&j0ek7%8joUh8S1Il;7Kc{R%vJz?eJwwd4Iid4?@JDgw16 z{FI125lNw-RXScMguLV=*MlJT!Zz>H91Z2Wqs<(}uef%_C5E9G#o5}#ZyJeHY3Q@Vs>*aU(E#foDUH`?350Q4dK7k)!pLtilrU9|43t7~ui6P#Hkfb788|_} z_L|sij3$SY87GaOdDDQu|964+K8sI(<_Cf8MBdKt`~gmnFOadr zZAa>mHPz%!o)XZkvOvcwJQ+uriw|2M_R4A)WXmhG@tEM`m&Fy1jy!}N0bDpyw@OfV z<;KvGQ|DrV(+R*I{4VgX{OkCM|Lkw8Fl7K`L)i+pQ$@aDWY?fWW{?LvG3e+hateDQ zW}x_XxQ$?jJt(H<0#}=y%sMm{$U#2k{4E==C6iDPz`Qpa||-S7`a#Kzn^TB+hWR`Gld**3e1{eQ? zkbriZ_!jCMg)4Qpu zcb5x|qB6vwWw8ol&@s7*UP{OEGc?8dV1-k8ahl!fP{;{via@%Y`dh1*J=BFT(Pg6J zy{!QKyCW1dH!HN>obF4SJ6?i0+FWSICJmdlHW7gCTjzmvQgywZgOuI zInr;16|1<32oxhrGT1grAikWW;9#p2Ii04~*rbF2H;Qd3=V6emSZYBS5jQ@ETzm4* z`^EyO#j6W8?mw;aZ32{^6E95jIe^ie^ukA{rA}Hn}E) zsjAhIe%{cp6LyrYn7DE`N0~IBBa+t?-NbZQ4Q!QBVv5Z!1}DF_=@S)n*TWXmk^9cw z17%h+G?TcBu?9e+3yEN`Cge{hvL}X5;!4!gZJ-+$2pSrkDJ~%3aw?9&GRw*c!}0wZ zD%W)j4!}`RtXWq5fchOu~UvCfU{!K(x-k}>st4pftsLV~HyDhFgi7}qG%b!*P+m?)k+ zj>VoS7Ue`n6|YXBM{#jP2deg!tJI^%M3%~HZw+u)YQ^UfNvD9G3y}w#ewYO?t{f=N z0aQQkk%ZB`IB$rHl>j=L;0q}9=Y(M+|1&4|hq=rZkTbX*y#X^R(6#!M?=`t@%*psI z-G+e~Y-EPf)fH1t`5D|_)F~D&&&l3cp0VfSVT!3%xJRBwColq5FUY|?R|bXAT*W!5 z0?y=pmsP`2GwofBvF~Q^QFMl=N1;;D^-$6<0w^|+NzU-h1a}Zjyez(W2Bm=F4LLiI z1+%-{?<+Dh1aGqR8a1o4YRIbnG*Uu+hLS6dLNI6A{oh^g)M@E5eXdolyWv z7NN!{c1{coX)0C>*XzK8y9yR3CJJ&em0GTJs82VgLIY_PC22M|SwR-1GAASEH3ymj z=UU0MJ~gCqPiV$-3X5j)7|gOXj#!y+HJQ&H>A?X*KrPTTe@z26uegjI73_uBGf`V! z5ia%a=>5Q3XXl5Abp_Jaio z?McHJ2cr-Z$3kF=hm}(3G}5Ffyy_+|jBLz-Jv#8%2~2(ZR3hJ9K?!!?^u}GQ<~)iI za0sYQR@$nZl?Dw>+_+E^UW)CEvwf7x=Rd0 z#L)=3qAixW$^i8~c?f8c{CN)Gt*1DD&r@K2R)1EO+tpSw#4cLjg{4>-&es4xn#!=a zQ06>*Onn!Zmnt3WfNl8LPyGx&_LD!!&tb{!DRFfy(f1Zd!XP6Mi)pyN?@6W_`GWeM z##Eb!KDX-y`1rf{m;TfL0(f>oR*DblhPYhGqqtsyy1~Xk`jp#rBKjb&ao>+NsMI1d zM_}YY&5mXh@A>%3Pwu*TO`3i91g;~O*Z{)-POPK^d>f;kDahFwZWHr^ui||9HYRq2JNk=+ z4dMYN$W@|)qi9MBjF7Xf4GK0{;ThayRVSESYkLJ-57+nFO2w4Nc5Ny*cVO;>dJlzP zePR!X*M@h>z_b7H@1p+d{|Y>P7gjgfj~w>Z-@-fJ{2I2s%Ph*)Zp@Ba3^gk`UTGM8 zhq>dSIA(v;1lZUTdGPO+V8+cxj1H7~u)pXu7HhJwxtM3qiE6;ZNpNwk-(&2sVsJ}D zF%%=}VTK_eJC_fRG94(f$ zs6a<09;M2Wl3aSt2HiPkf|xVXX6{_WicEm>Hr0pm;9kvv#?9Kl-K z2RE$-)N|qOZ3!=V2vF-;+)CpzZrs$?vH_Xcd^twMVNKmzFbq{EZ>&CIAx(1l$0qxE zpbbn{;z&lzvsP@4F`9L#LK;iB5^Uy0Vh*`KRs;BQ0b4nq5liHrog3O({kFck%kd~g z1fT+qO2$$;9eu%=fA(=ivY`mGB^wS`H#w)pbgi2lJehQ}7P%f{aTg0MF&qG%Q)LBy@740S7*BaYH6gP5ktbu$%*U(Y)C6ec+3 zIADpGqhJp<;<;@Yo!4(EVjeAs`f{2&Q44G@goMNb=wQboJ@1te*Ks1m2r^iZfysmG z0I*@^h4a~1+%z?VCY^BKe3 zAvva^#iepjkjX!p1JB}Sa=xgrt}+(ielQk%BQLo!C@G=Ed@GCshB(4%lF5Q^P7#X!mXlOK~L#vcITp%c<5oU%@4zup}@z)nq@GZ=UaD>u9?pGh=p)ze4vHvpI3@`h6abS*OmEkUjX-9KxEcS+sggR zI!Sh3Y7%SkTG2Bw3Y!vpI)%tJ!pNen91xWg$sV+!mg1;psGuFRm?pd8UYt!gYzPpvq$hP-OCTM{n@TO@1Sc@K&%y9|TG{ar&xe#HrGV1&h?b z(1wq8UPd=qY0pScm6ccGMsXk1g3T)d= z{8TB!@&6IPgWp=4k0zxlhgiRDI-k6G2aIp83Zhv5E$)O}yAyBoCd@8nbFs+$?!Qf` zR;6*J8B07Zz*`B_cY*f=X&>CkdUQ@J=a6e^IXV5#re4InbH#TgEUu~iWYh@=vJszO z(0<@^c>A+|3b#{f-o$5DhGgZWjn--s@BP)!M$;kWiesn{CKj(J_}aepP2e-%hcEsI ze@m_c9kf^UrP!_LLX#e>ctYBtqaU9whORID`51cr3B3FW*b{j65#IUpKZl?Fxjzq_ zl&SV6K}Di`^i`ipmxdy~$X!j_OW2l}Y?|iBIABaaI<9;jV+Szt!~gz&2+Y69*RzD` zp?j%c^;w35YkgJ(Pu(sl)(zqqpP3=Y&dVnh9iJB-Tq`+1Gc^;PyaobOHlJI82SxFY zz*Qnm#VNT)M{%x)n#yA8z#w)@jw>R>DH4Rj5k1?1=dG@eZrJ`5hva&%3QsC6iY#{v$9HT2%$a~=gpjGSttE#_58 z$55kqDU5vQ9B7*Z9mnCxy};+h#1*xixCa<2Ffld`&&l@q1v)QYR02W7K=dozfL6r! zF{THq)5Vv?4)Nh|p@5v1TxzK`U>N4O!qp1szRE*3wuTy$5hZpy-6oJu$acD;TB4_; zwhd#yV2p`}^AlY6NA!K*{BY9VVB%E$fRJM*(i0O-?kiY!HB%y@T!;zB?w!KpWaQIa z@zs$MZ|OxYZisAv4b(K`RnvV`#;8{pZ&d^343xsg+Bt%eQMu+euh{2B5-J_^59bs1 zm01MPGI5y`t?HTY$$eD{Y(6L~!W>|Ex*h&SmQQR^w6o$vR6_V)G zn1$a1O2L>c=)>vB0dCK+v*d7dlvZ?K0;h93_LFYg5rcC8CMPoY4IOrBDu_zdx?%4F zPYN(g9;Hl0Ldh871)dt_*lBE7O|rS^Ol3!$GGbz@PG?HdQM**0V={4Wbc;u-KoCug zvx$hpm~T}S79ob)Ne#JbFiyIbN65Y16qz-aDp+jff_tFO#6Snm6%mG#Ra?9uSJF?g zQZSR>&9;?eIGhHQ-O-*r5!M9g8md;|G{!#JC^{yZSGw7RWa7ZvP|K!*u?dW+AsZq8 z-4f?AiLWxJaNL1YiKFPsvm%^m3OALAO(LL*qKrKL(D9d}vzgg&aQ~hbHi7mz;MLHt z6Wg|7#*P`lc{`);7Y!X8%_cC1ili7T%pMrYGKZ8~ZvvRn(R@RHIWT7;b4L@8ZDKHm z&=+f&SRMuxcd~=ck)8Wz@@07)o(e@D^MdIGy%Wcf^QtwyYp*sDSru28Q#t~(4-{|2 zRQau-j19tMtQEVe#EH3;8B@`94y$Gm4O81DCl;UEedoHy0wI$#JMXKa?ADm*G?82d+Lm(N|r6l^;WJ->=o^vO@L zmLmKOkq9w&qKzEb;V9Nn&nN6Jcao@bB6C+{)^OUK@zhq4Nh1KR!SuyYX=vMM@~Uj_ zEyXy;D&bKv`xPyL8N{!6IQBUeFcimAd-SS8q)4(BqX1pWm0T^tNOVsO3sk3> zE1ZRnQ7XpceiW|qp9)`696bZAIQrNnC>q^`#jzz(0V5}}6G3pDQ+>TGDg=P64&Mq; z$;WReuKD2;n*>t;G2ET?0fWse3pQpl9u`~xV4SYPn3JC|7?HTuo$0}4m_q>KWLsW=b86QE>1wyr zd3_8W8b|=sWSbL!0G&_81^CtU5XQ~@-o+kB9JTMO*{jxsO}>w_tGpm5W}(WPlTOAE z+h)v(=DdJB5?gJ!WM>pau_tq5o1)W#KRPq|m>u@wpX2fC{}j0V7B?N*3MQZ!5kDI% z6=NRu~JrI9e-S=Czws2CO$$r z9h1&*I(*o|$5`Hq@^C>Q%(+AZTGK=#1hofDn*I&Os`yYC{d6WI#tTW=vhdPKbZrZ$IXKI~oXP&SdtjSK3A ze%-Ns^3y!@Kl_MLwE7_Co^$%MI4R38xg2JuO`0k4Y~^S&q}T&slc2R=`qmMb3p^*X zZ9LeH3OsCzT{nq55?cbdn00LuFm)L6)6ud-(P@)FvmA>%U4kQ34k9SG@2cav%D&@t zWX=oFD<|{k4H%nV%O)|2Og%w7`THIWc)BJIP1eg>^y>Kg1)nEvTcIWUiZKJP@( zyyII)=-&W53B3AOk)T@c{+R^b!!^6s7jhI)m#47Gxul=zo&U^lY#_YxhThv?#CkFO zs-ghL=du<;`N&s9-W|yEvZzY1bhX(9aLU89t1JzezjS^NHVB^YckV_VLa|s^5h@Il z*cXcRk8vk*u5yK&5MEA|Ld*=HP>9C}vVw}*87mLZH7M{Lj$F0Z$(qFXl{=9HOGsV9 zBUn7ZpCwVW3U8pp7piL9mPp@<&;}+!m##pxaudU+K4%!k=;o_c;_muc0-WDO-6gml zqp~=nu&mTAhua$qZhkmQ7DC}pM8Cms`Msd4{nR90heT>QKZ>k2_uroiBn}wd60gU8 zyOvjtr(%j&K;yjoj$^EPY!yj09O}ms$*2CC^?S@1=Qq>)Z~FOD&8v5>Z(#;BRJ!Hq z=rn*g;Bq~t@*?VMQfk_LOrabUGZtTlO{I+Vgxp&zc8qC9(H5UMa>EF9!QzS~s&=v2 z6xmiwBb|Y2gu?>brv`x`Qbies~i(F1$m$yY5V29R7^ppc%Rlb1`-Dzg}LKb54Dt2*48 z$`Q_hZFIzlfi%ZNDLhP#A$73?%SquM6(9iGHpc%GgPDwN-?i2+Y8P2rlHi1J~~c~u9XoxMfn-X zc_EXRwnlhm3o%lMLNK{A#>5^2)lX=(ax|bp8iy;y1JPjuu`PjCSwcXung|mpR+s_! ze69j4vc9a=<2$t^qiLGydT$3KFXn{hPG`p|Ad8zba*h}LdBuU4T=L~yDM$=lQMZk5 znw?GIY!0W>#Z`2)%J3j2b<7>^g1;jGdt?i)3D=SXBP6U8x@Rp`>#NEAPu5dRIbXdU zj>&xt9?om!+7}!u6?dUu*vdTTE|;Vu`b##V_UlpM5gud|=i+}=wR{f6yl))im^|1n z?w5t3lm_!5wy>TlbqX&_=XI$Cz!f1UBZS_uP;;`ahU|i3Oo~mHEMiVBU_BvTOd?nc zkke4Mf-x(dV56WG8aehCR}IZLbcc_p)~DBkKD2XH$h%2wzO-N%mXJBT+QNH^5>aFisBaY4=wFBPZyfZ0xf zZ}9U2>UM^?lRF2NSj`b?`Q}-0D+T-I5j&Qfv|xMk25O<>tDeqmZdTFd5I%`5&g0l& zjtE#tFy04dCQijr>Io0Vw30dS1j(Ycx)_X;Nep93BSz323cAE5#4C@0mlLWpX3B)2 z;>)Gb0iBGPTcIo5iV;*(D&|h7zNwh6g5nnN*ZnOI&&+)>5MR5TdPN295u3(6R0Q!Hd%hLqM>YaHAgYvYKTI|0E>;%prX^@)F3E>WgQ2FQ&4giK z4}&*OJ!1sgsd93Rg0Y%$b*kBiA`3QAb-*u*5ZK_sx8xLX)zNBED-d7vr3a^w&RCFb z217wD1gsu>J~i4!?%4OQ;w}6RrX|V@8lq+bokGGG1GNDy*iKq95YK^Tte<8n1*2No z$!)1-d{}@FCdSX`L^9*Sy}_}eV0JBPZU^~fUBr{i-FKmYrv*WX2*e~d8;ve05*ts&!zo(A)G z@c!ec@csYpe+?@q#Q*ZY;rZ8o31$2?iUmrt?bf{Bgqd_T7~2sKPDL5HITTmRDmS)X zFb3Huo(%(U;OQ6sZQ#%T737!yPkiuC|9kl3AENp*x+$l@O2F)?rtpkZoK9z!3)qJ1 z9ArDBUYjU2&~%mD3pRRY48R8>ospkV)rKc9D$F;uVtD^~!)Jc>=Ydau9v}VVe}Mks zAK$fQ(mSUY90$MrP zNk}@8@%)hw=u=Z1UZRtWCL8-*p^jebSa^d3I<5Q^HWmL+;SI!UJr<1axA%ITH?aw~ zXcAq|t87DppUE9+cjC0Qn+UsNt5ea~YCu^fFze6MTQq+$)ehkr61LapcK27i6QgnG zw#Ig}W8VI6-u=vb!FmEX>F>wg4-frS|NQ%ZcYht$yU*tJ>+$|)&byz9yU!lq<#WSp zzsv82M)$vaz1Md4ea_deC;j={S%mb;>$KNi`~9_9UK>o!@BEpsT&wxo^&NL>#NF>) z2Ohio`LWUx_S!X!*S=p3FRT$4vxNBd-WMP5_%q|RKVQD{HOJkW8Vm7~xAsGG4MF_2 zULQp`N@gtgebL&wUT1B0oM$~J=LEKibx)??@ZmVO-YGF7*5=dIqGvyFPA-iBfNaw&N18SBEzy$GnDUvdd_AsA1q3+EcpT zpQ@gR?#0mO82Z^ocp6(t0KFc&OIj?H1&n8{n73zM+^_@(T4o5Jucc(PadOof}p4lzkQ19cN+B=8ce$N;jhR&Tot6y(of%c79jQO0mbjRA?jG@1` zTdG5Yh~s`r+}38Bcj%(KJ=B3hy88~-{gxUq`~5Ig??th0eorfrwr+cUck5?oa6q~) z@HLdHjeNO-5o)*f-TYNllWB;y2BVR8kIcOL{&Q8X-v*b*_osA^-*e^1tLd9^x93`) z)fyU_*4e?P*VQn(%5hLnGDYaVUr3|l5uSJHu)Eg5my&t>Z_t@R*8+VVv zyJwLVi8C7X7T5jP?%wavu7cR9wg#{|pR9Y%#yAFhe*ame-n%Vi0h2bEw|%++K)=G; zcBBKC#?u~k^(f>@fK4Et>RO7s!S(&4X|>erd9~i(rsqY*Z9TNgYwHaIdIHUH886ww zJ9jj%=wph<=?GWB*QCj5Q!>UTMYah#h(`%{378jDI7~Q!Ob7M>6SqDTq24M{BTS~Q z@}ZDfj2v%Ihvz`Gis%%5%gJcKLdVF!Rs7dF;xNOZ-f>Wq#Y4p#!)Maa(#grEW~V|v z^;FzEAbFfyr%GC?7b1)<7nXySM1<2V8+i<9%^lUX{-%EM8d|M3CnA?RdddQS%o+1o zOUx$Ep0y(Tt2dFmsg|7w@<^aRUNA;r*bdYUZ9)frpadIvG94~Q&dfwM(-%OSZrutz z?O;MRb|=FpU3JLUw&h8|aC(Ki(UD-l-qoyY9Wy3I2I|%nWif21v{_nVd`mFVbY8?U zCfezY;^e$pt2)RQv1%&%YSAickXnsN!RYRgLW__{C&q|ZN1$NFRcmWui;%qA_A4_|Af;4SX?*Qi3Ta>_g-US_s)wR%)-wR zXlD4v^G=Qq9#DG2X}{uhI^m;V|1!#pui;$2g*v{DoFCz%m%z*l)P|A|Ky-}w1HAmD z{{b(rZ{qDweIHOC06XF3M+JB>@Ya)oQ!@ZN#-4b2EvSuC)aw9V?r#GA0F)EFJVAQJ zlXd~-M5%!>2F8V8=TaS|Hr^biq9DmKn~F-o32+5fbi@^^V@PAo{m49>0e2 z^4swF0;l)}w)`qK`-oF27vE-9WOW*RGBGZJhej*J3If!@EsP0l-?!B&CjUxDXuU`F6<71JFy%dtVF zJ)X?S<{S2FVyheaAk28ij&wt-j(zWFi_xZXo;k_dYpH8dKx%VmyBXLXJQI9RW*9lq z>H}g<>|(As4A-8jp-q#Lomjk(0aWe?`tzn9A4I~8Cb!W?;oMm*) zm|{K-fQ2Me@o%<+cWkGMuA+~Eis1vEbeBB(32(gjS&SDuUOxW-PvRqio>}N*#-gQV zoa-uDa&4X#PVrT^P|(N#bVKBR80ZT4IrmA|)Y_26Wb_SQkg+pjm6L0& zRXPdOT6-M0R-C#d5Ne38hA{?H(R0U>H_nJ`u=0RVNrjtB;9Lh{K7Y8@4mBpBx= zfoh$%LPlGVQwK9-zcAL(D$4d0Zco&nJuvp?(rznidlTko#(X4#mddF+qsfI$y-nKDtOsrEx9x@@xZj`C%5x{gx(=m{hsV&yRxs+rS&91s zDZd?}%;l8Mdj(b7gK_&Dmq@!Dqblh_bjIutjdm4d;Z{iH_G)b2?gYYGZwK5ZjAz~* z;FqxCH>Wl<6k3N1UpS0A!6f6=js2WJ+jOv8Zs62GBn2j1j+VYgtL52K*VdJ zY^&Qt}9_3)KzE}TF;oa{Hrd`m&mb1;CUy49M2Se53$|SF&b{u=IA%Eu*6LiTn_rG^)#pW z;CAPzzY``??`;iwP0y_q=Y7n(TX-?kJAYSKnkcz6*k14K&u8S8mVSC8|y(BZ|cDxy1Uo`#y}K_K>I= zc|%sEMD{iOetn=e=^$4%u>P6ccQeV|Tz_VCvg6_ojfP1hK{<(mKM%nzBSj19aEXU$ zbm!MbvoY%s@`axOyrR{LR!%5m$IQX9M)QMP z+jTC=n25o`m^8+8$G8o>!W`8L<|JENL{E%j7>ZDrSldBrDYKA6nfkt`J8B^|s7j-u zGuvU)ah)u1O*kwYp6D93HgTO-MsLwjqQNcUjcw$vSz1KGnz+A{jn$cnqD0G9D)ywd zGZz{PJXa4Hf^2fXYsPe6@w>ggv6d^4sD`2TFNzB5KOh^9AV^;&9;@-{5Q|+^@${1P zPF9R-!7`&_>P~2C&WVNw^CY~zZt!q)BY)5>FvY6!<;?Ix$D5w*wbDw=L%Uw%=%`t- zD>7_YEC(F0>{1HrnRn8LdRfiBhIt(*wV+kn+z}Ma4n{q)@Uz@W1jv9oO&YWzHnq5F-(>B`)_%%)9G6YvwK!fj7VKMWFm3`fvO)zG**-_dfrVc=t0O<7MLt zy!T0b@QeQwo_z6#;a~q2qHe(R7x2%13E%hGzs(23SAGRw|IJ@UZNSI>#lMWFZ+rsz z>^a8%h&R9QQ>efCzpEK}L&qbXXp_u@uU~%%AN$jP4G-V*8CZ6__-DU|>mUC^Joq00 z`xW1qZ{eLU`~n_6^&^@x7y=l?Za9-rXF zl}w{}@d3uSe*^vUA-0cy3FXOq$d_Nkc>E*0UB7~yAK^M0p1pVr?d>1q0^R=vPs*Rb z>KRx20bH+d;5t|~Q1Ky3d;{ZU0`&|a@v?jZAC@1(ix-B6(@RAEJ$M_~W`{ZO;%a!= zPq@T}YCGP1c!r15m4aOap1*MHcn4+^@0>0uZD4=-0@wYF>1WLT3}_E%Heh*09~J2n z7>+p;=O>9LXQ0#$iwchm=B$`k;1UhB1|De9!{xf8_l{_9VBfE(r@+(G6`MDF`1}!L z7|c&-#c+*x@U6$s;L}D9V;O;GU;8I`db+^29r*pv0S}+T6aN6${<}E)H_@^pW$3UzB60FF983<8HCKMJSiU2eEfi}S6R(HhXlBWO-)eaXr)y29tO9G0Goc{L7=W07%Kq0 zNSsg*=?A>N!jQHh9{wuIpZRMj?|%(1|H&^RzxCf?=KDCUecQId)EpU}XywGU5=qyx z5fLy`4Q~Z#;95pUC)*IYPfQ{c%+*fZFb3U|3(#&ZAq_-EENHkRh)huAXvz|gy}p6Be*A9$ zKmBju@(=zVzVVG;!5i_LDCyc*i63Z$^_H@R5p;oi)}vr+=F;IOQsq@%9pjp6`zDhu zC*jdq0k@&X+jUU(<9jrfaFL~@4XYw}V-n`RHYtEJ>S}&4!?-DQm{-Q&3Q)4*ibTt% zXA7GW=jbX2QPkneq1z0C^7lUAWul6On<(f(7eDvb12G57Y$ECSO%)tP3bEM^aXjUG zEv6D10nqu4^59mS92T>ixE(ezjL|+h}yjl<1mhxlwY*)ljLObvCpV&Win#I!js zwP1ERaSID6Y(+QKxs4!#WR+=H4w-^OCW;M_CV^Oyu^!k?XQUwa#B~(Rxdx_;3!9jd zR@MQ6hqGdiDaL6%1Ui)iy>eYLViUq>l=+&QenrxJu$@u(5l7`dLYy9xijn*^llO}e09Q*rL@ORtg9Srk zdzL$GE5UWOkDbHAxYO;NJiwzJ+43mOh~5=5B&TwYo!0?^2`UV_K{FMgC>SFck3XDg z{pP@QiWD=+X+6q&kczS0@Goo!WptE{)d>qj-T3?&*Ifs^O{NF6_|6sMWRx-y5+MqT zNwCOrlsu}sR{NHQRFR^W(6cyn{w>G-#I;w$wVcwS3UV5nHI}AWV4|a8un9CM`jEld zmBnJQ3S)dkOk9Iz6GNgH*_JBH@mWs$e_07|d=)CzS@M zZ7Ue#rQ(IeZedQeR&br%=TwP4GlukA#e^fdr@#O(;AInPYBDZ7Z>5dN(5-aGc_hz5 zCcJcS}|BIG}Y+e#fG*t+z zz&P?P=FF57+(e)WB_s22_j11_yoUpOFuC;PIlA@&fj4_yBXP=cn63da~7!vk|Bwrn_oNw+yVCV-LU7))QT7o1LS zkbSPk`t$~O4n9U7Xsw|Ki~BNe&-h4kEF%&xuUCBHV{el;sdAG5gmdAYSj^C2sAj1} z?aoFn(a(~M9BdnXE>8B^gh1bOM>)DzTyW#tgdj3jg6%*hh1B!~f}N8$L8vjtz3KIE zGsX6%#C~;nohZxoF}YZEu+G{HY*UL#wO)>tD2@VhTq>YACO7l85AswB`7}O_aLF8W zjDgLHDuB~W&M*;p@Dq0M05UAFp|Krkv7a&#gFioIeLWI>87N{WM0RfA{lrIM@Bm6^ zdFRy60?|wgC#(VhOzxua;_r8~l z+RGg{e@t-Yw^85vIPm0MY;Qjx`U_xgT;MM+fl~48qk?xn_b=o0V?P13j{$qa-mYjf zfb%=p-u?D*0IA~vW{Dmfz8*hYQTky|)2KeYh)XST=e)xy@;PDY}ed!l~CvW48`hUT{_~Yom z`YU+*3tz-JE8cqgjwW{A8 zEKiOdZcO*C*)_Aa2`mFMxcwnp-}|TB{OA=fe)j9E-v22$a^54BbLKC7i=V#tI*HOq}Tz}_JS#A@@zWg7+3}`2|`MiC{ zHjGD3!E6^s6FZgcZ!v%WW%hsahcx*eru88cQ;)*(CfwcP?koQ`U-&H`@WD6# z0Y{fsp&2pV+hKdY!I3jR&-l@=GLB=WmtN!6^;ekRdYkjV@^_#tGvAxCGM>;po{%k;!Scx35y} zzQjtnLK8c-`VC4w%Xsq<`Wo21eVe13C+Oz~q!3l}59cybxIXKv6)EI<$+GWN;(7MkO zJIqQ!CTHk!Lpxf5*$mW57fKz|q!ofFH})EsPssh$8qZ^9B`Iwa*_~E89g)Z^PkNd* zI0kP->3a4KlC|8rYbr`%X(W_5r)1ch22x`K#Zq#nNA1Zavfr7&y3`tgTw?1YQ{iAb zhuSh;YD`F?(vAWtC?zX9^9-@2l}v3LYCa0AKsrvRn@E3+aSSk;quP+WOzAV@c5H2M zS}D0lrKf3HW2RBb-5g?}NiCC_T>O~%7~>77X->%_rgarYC*agc=I^}Cm{kI|p~+NE z6674LUZlVN0YNiSW?q!!1q~&eI2I!{t8FC$c8-&6zAwQtse?&HPcQM zQVhoIGsvwKC3u@*Rg;yq%7QDB9EOZHem4G2Rj~odex9-@-7=h&HIhmi(d3~K!8gM$ zwJpLrK^giUH7hiBP#U!+IJ7Mk4D#&zRC~u3YfKjrGcAX>5Qv8Iu|-mTXmE{+mH;tR zE3^aKGel2WRcrsQ#Y!P0`qIq`hP2T|^hKmWb09}6DWO_BA)%o2Oib-z3w*$#&+Z_V z?1Mw3^pHf|bYrW2RTC3!0PyzIU|gFh1IML7amJ4qz}Vm#kiHUBD035fYN;fxhU{oY zhIVi)LCI>a;8{-y>LHil;<*(=kLJ~&Xy@q%was>{5Vc3=-Ub^2Ee>{{IooFt za=aW%v@y<>7oq83z7lJ`jX}KN&cwnb4*V7?{;>u~N5}-j;TW1U7@J7!TpFtL6Ni+c z3v<~;@LCNtAGDC`oKUTx#xN6h$WMr&C2FxDvvkH?W>`@5=ulkc&W#xCy2^c~jSYRV z@&sJ`8bv>^d(5?}Er4tGw%`~X6;p`r>W{&2Cbih05ebBvAllEY_mUT-H*_f03TgL& zF2pGj8`z=@1DMM|TI_jJGcD1X-!{<45XjQ|{T&vG(Z$k!KM*mfz5s3G?v`x#zRUk! zkP-bJ$lgHe!+DAXEkubBt?VKC;ExNZQN8{^!lFf1tDWbED5NaVEyn5&RjuV*@Mnd6 z)_^4;ta&vVR#a!++MAq7n5=Zf?>BW9ajqs@X?4eT&DLOEjE7xwc1KM1l#uZRB}AVk z1`|TZCe_BqiCLlZ_c3#TT8~ zr$$d$EZV6(z8BP@cH-Z|;@+9rB4iTnd&?m#X3kQSR&2RzLcFowtp6r^;YO zXo*M7>r|NpM+;%C>B$AWMe}Vfv@XzBEpBpFie)Cvg+;N~tVEkNgVNMPjL(3aF2zcT z2Ei;!q()0@1x>_0dCIxc23r^;^@L$Hfh36W)D9c2P5dijY*nh+SJan83t&Ylj2lY> zX;nKXsZIK-mf|uKlbd3Ese>qqh?YQY%RQz(E65CDd{Cn*B%|&a;L+~EVE1Hg18s<| zU3j@$ti!>#d#TG2?uzKN0|B=x5E1g%7S&Z{-V8+XkqLE0O0&RuVI|8k=9GPQVq;o=ORW+7Ug2ghCT|ZHpc2_AQjDt z(r}Q17iv0+P^{H{5y>UHh-&Z3Mr_erN{1#dHYu*tWT6UFvCkD^ON^OV3Q~t8ekA## zn~*4}rSChI#uFqarY_=(n0`b7P1PE!oh>VBWkz=FsBTIKsPvvh%8**?)+obb&Y#KZ zE%qUi?D#E<1D?8_Sez}VM5vjl#X*U~p~<1xi~Rl&Nz+B1e>hHNEeprDc0ElR*|srf zW6Y^oT+1K2MG8uX6k!}2G@9+v6n~+wl_n}(b^e&xOSld#s$l>Y_oiYK2o85ozTvJl zJ6pe6Mm*Z~EG98=&bMIHLUe1nDkOrr=W|bNgQckyYN^a~wHql$=nw16Yc*z_-J)vT zx?ok#NVKYLj}GdvjrLY5GYy&`J8;LuA3pZ8i{8*|D!&~Vlt@LYX}=PpIYcD+2xeQ} z(t9hK^pK)$kwdV}rvH7p?@7t6)Fpe%U`H)NBY~b}whvY~ao^+6EWulEGQE45oGYtO ze;Ou7o#|n0kkU4Abj4f~KYo+h-c4j_nbG}^!TJ%35AGVaOt@Tb;N7?Auf2=*x0%f< zYmYn+?F#kH*XXye(`=q096JT$B`Y})cU6QbK{9t{CpiE7*I=|sed{mTyLE>&9x=J^ z0&?MD6RsVYCX%YmA>ZehcCZb5J8<*}oVdXHsf);H-9-IcAGjzVNV9zs zbD{(e<|jD&>~F*U&pOn22Fn}BGrvIp@l{UV*TTauny6d+u<_VuIN46P_U;?3%rh*X zwa?uqSS!@)*K9CcJ`UrNy%ERjj85E#9_;Y`8=1$y_;q;ftI&>Zo49eBBP%QHeed5u z+%)0v!jr~I3zg$vShf|*`f-mu^~9qGFc}k8wqRCZX&sK=XW}V|@%p21?0J~9?EmBv zC!c?g=CLop(s7_+a{ehMH$Kbj-}v9*#FNmhGa9dejA+Sh?tYQm-(F#N@B3`XyCfnt zWcKF`dF28;@+p?jb}(6iu*}llSJ=4nK51|H1#q-FN;E%HDNOf8q}a z5B;2p(3&{5e+$-D*?Qw;);5kJ_nqO^AO4TbrZ016H*n#v{^yX+vHjMotbgj~*qG0t z9U08`<~!`Y{T=RJ`IpQ~;>44`#p)Bk0ZS9uo!a+);t1h8f5!TAPs3hs*V*zI_HJ_d zd;gZR4?c{Xy=cji>(|}!Fj|zq1Sx#HeUx**|My_0QoAW(c|zT}&7GgV&fV<~IrHRm zG$$WLcXzq{#y8mCeVwD}J?_p{7#;Z}8=v|W;>rg5A73Laj~TBu+1Lwl064+3x$allwXH#4kb9a&Yy1c5b{(Xk-B*j;B6}gh#k>+?MX%(Pjj$)m%8-|Ys=fLq%C&ygn2#+ z?bCMnnE!;e(E*|LxTlV2#wWRP_eqwUIrD={EVl*d(Po8ya)I0XpP^-&wfr_Q>~nX2 zLf3Cl<1w_`XJcv3xZOcQr1PUwt1VUR&}{GSWP+Es`ho%H%{|~8DhJ0`9SRR@KoWO3 zNU*Iwk_^5t$q&7H&$`K6CnhGi(?8e6CNjjvk~Hqd2|gqlU&e3&Ap~7q6u4uhy-Zu+Rn#6>aZj+6)*y&2W92sL;-J6OAIZ5H^aD6(kH41x^+Vgqe# z2Zv_zrJTC!Qz&XfxJadhhExKg)rQGXsE$xE+0mmwX((bTi$60q&SDmenA?D9gLMcN z2MjcaNh$yQwR#Cf^^zS`qT2a^fQg-@`Y`4N4r-+WRk9`YITQm_BNDs-rbL1y7d*wV z0omd)#Rng8n11z*w@898@|cvlb1XR-T;z*>ZZXj})Iu(5OY9nektfFrLSvsDXX?az zSm|Oh`-t&M2Q19cASoimCQ@obs~Cnfh@b0i1aniVfz&CPCK^L&Kwe~jBB-dPL!wf%8kP^^)JjaKc0SY$tU+@Mh6)-RYRTsA z@l`g9^id!%@ffHjIwDHxdL&J#D)d@tMk7kG5)o91ZR`A4D`qIc&i+Xh7%lGKl*D1~ zt>JO1wJ&EshpW4Rq>jwR2dMN2-U=Oh2_ zeV$aikJNc;k%`^wHCnT3tpx2&n2+wa&F&ryBXbF5doQLmqG~qBR&0@2t*BD$`B1A6 zqTx7lwmV8(*s}Mke{a&4jI1c4a5+=$g|ko>m@-TRFCpk zPaP;?m@ooWj743@kSjSwb3{6WFjpaYLIp3oFgJE{$ds16;Ahu?H>vh)zy)$&)p)Er zEJWa-c!|WwdJDwFCmmdLV(-xy5BYND_%qjJ?F}6x63L|_glL6CHM?dJEr}s6UOL}S zgBRrt>~Qt>jH9{QfaxqXF%Kr@1~tc?%qy)V!*hkhGnQx|g|PUJdR5|RLal|SIMl!q zLydJ7dC5_sBTyRGO|p7dVB=`RVjUGh=vBN>^&T=r5Oe>!=T`z$vHLO-h_yG+N=h8e zW{k%xm|@b>JgqI`gQsm{uzUTm4AIJPOSRKYkU&aG-_0S75l7^tIHJqdzxO~^Go+=W ziKxA8d;E|ahJX0rolntYCIe%xAhGd_!Y$SQd&Hrl5`s0ig~Kh0J&zl5*HOAm;{eI3 z(b`n1wVY_Q8$hDa4}7@nH25mdTT}_C|ZVA^<_EM(t1w=N>sQ&o^{4b(f6lEtGtSq)L3`$?AvESQi!Q5kBFZj1SH4B+-$T}3 zfct+Fu3n{F{T|bgzstw3DGz+=_u=?)e?cmYy|}10@C8Oc|2H^t?jp3upx;A3`~jEW{07bPeVqF3{{rTBn7#3*bT?n4Hb>a_ z^6%1~et>gl9)_?Aced&8-XQlMG1)u~r_OWip{JplKtE&l%D0$ac^g?j%Eo8^3dbIL z%$Sue?7jZ)m|y=f%l+#}oH5E<^nGUef!~8?z6RH?)4l&L`yao=`sO*p(Q~Y{V9p5qTaLwN83xP6o9_r6EB zbBndJk0MWfg7K4I;h~L(;E|```VGpp%k15{!s_PzgcrWZ+0Xn6bW>v=z4a!u8<*Ih z-safzUxm$0cR^eH6|-%6*^wb=Vg;y$0{T#q`c~ChI5Q;m0`k>~FC3<_h~C-lpVT zRF+_ALe&Q5V;C)y-+Z0eXXK%WN#~w2Tf+7Y^rs&pr_M0?+}Ejhr>riugwOseOeMSK5qtla-BAN{k)<1c<0 zPCpFu8Eo&u#!2U(Euqa3$P+kr2KKgL_W=53&i%^YG(m9p224hzhwg_wgMR;K_(IdN z4((YuvrI^1n9T{NSJ-^?t85-@!_tzK58W5oeBz7n)(`m6H~&7*{*Av2Yv&*x1tKdC zD$Mp_4Be%k)6e}roPQW<%Os4M(84=k;?3{;A&>v^@4(qdfK_0`u}}XF)H}TOfBtto z`1sSTeEK&a9swH(VZLnk=uXzO)mWMFTvylu*wkx>MjQ_ z{Sohe@1OA4um5Lo`bk(mY0ruI7WK{Va`mb46*e-YZ=%4+!%(t)e@Ynxq*gOwxK;456-{Iqb|39#%?=uQ}6m6X0Sp2|c z$LK#a-pNEYLaF6osL?EIrGCHldf zV$Hjbrz(B`wq>mtKL)j?);crMEsksnNaO7I!$xdXT|_b$|5+`rmMb>M`tWA4ZV#2z zu;4LSw3NXT+?a&wr)!lA2 zc)v=udrU1Jr31T6thi6LBGMT1sj>FeB<30{K|LyOgReQoYz7EfiA}KUvKXepBGEQz zlPel#etyIUc5{RmK$?b7%<)mlUT)_xr=~Hss@gRpA_%=RdPja97J^nQ0~Bk;HG#4x z+*2B34w`5}U5pl!_X{<8v$frmmf{Hm3v>Ychh*g})!aWrE?Crlo{bMWHgwvjE!sO8 z!RCzM+%%EaMK!VWZmre_g2!^P^pZX68VZNa@ru}d<#A!-o_j1Y*xW%Ba;bzk7&{24^jGXBC<)DJsP1$T0!JiS>Z&qdpbi(GqX@+0 z3m03Y0CcsQ@kEoA->G=bRbBM0W$j6+H3#PK9PORu?(^2b61N84K+r(zPcXwi>7uPy z7lkIlyHK*V3 z!LFG!l*wQMM-}nsww-5&_l=oliZjPu#DzuKXfEn!gt`#F8fmQiC@MKmJ*M9f8gsJO znoX$I_OKW)nkZWwjZ&&1U@VbnOG5QCaw+{iMKjf%!8Sw3kjPzyU^tYJqkXO#sKJD9 z9Wwc9*n*m~&6ZKnUXW%&4&_i(igq4pQcLbSUq~FXQtc_`Z0I6{IJUUGhzET8pIHcN z?a|;lg(xnfSNhU>31o4RGyiN1p6ClLTdp)>?^;Vdww^4p>l2CIyIDz1>uuYPa4Xf9 zjD{}>M?!K%6r1UIF zAcRa;0|j$|3c+wtp^#A;0;$^1DSN6k7e}uljFK(!k_dCv#kn~JOSU$CHt4%dJ2A~l zd=WP*9ipZ$#As3f#!&{r7h~f0M(J%iVo3mRbjNih?0H|a=|*kSm`Tl@f_2{0q{anh zbGc_#Qb0+uAlVgXg{(?D98eu5nnFa9{q{B{d+2z+y5h~59<{LSz8&C<6J;CQtd;S= zmN2^jNfKQ#fTB8!Nc`q116a}3^h`Fck#mMR=RGJEabn)vK}nzw=H6>l;|4`xW(jYS zG=A`hrZGEf6C#<6s+!$41?FOcUG953To>CmS1%5jmY$|QL2#p=eZx2KlgT4>zO&=ScyL^R5x9duR$C6CzJ-RIcy#MJwt zIZN<^5-?dIcVp%U=8z0&4Om9iUg#Q>pboo@Eu;~-uf{1lu+Kl6?ILW^O^Y4MD8@-? z?9YfP(7DUTAgjfkbRpVcosC`5u6TsC77A1Lrti_Ft1#U&mVuZdx`S8Q zEl1hlH<89H!Ndq_n>5GI(e(TFZ;4BcHcp$1Zhk&&nHIXl-*ao;naAgpY_4lo|k?OtZS{VH2GE_3XcejWC1a&Y%urq{pE-Mu|dHG8Df zr!0C?6vlztUuFOHAJOYBO?d#aQc|Q{SvD@^8*ehb{3lHByo2ViGFkm)CYz@m-alu0 z<2`0KU+2yTJ!g;pE}T3`^TAPW#;3UOTYn9%-{8aV|0_n5Wf(=cb%pu0SGjxrP0sR5 z$Rp3gts5MC_zqhi{+N}IPP6u_{}H2&ldPROV%Oh?KVk2^mpC}s=EUcI6ONzphkCZd zejcKOy>T(sc{8H~x39DF#-GsNxy`Xpe+AAz&WYm>z{xW(-KBr!M|9gCGC6jh@ZeLh zd5)@ccUVv9-~1srue{5d=RXJW7`*>F-G}eccXO7X{Q|778l$X=SI4`(JlIOB|M7R3 z-~O1DGxx)}`z;p!!Q0F(y-Av^lAiwpJn$gL9{e0^oUy3VE8nBcb{IYK2?ND9W4ry< zk3ogq?|hR)$LRDK!rk{7)5H2Xm@0RF_)Xe=kEMqmMkpLxJ45@(CvD;M<`2;MlyKp3 zV_oV#ad{2SK490w+drnC?$bQ>1Z4te-bOiN^~iCMRk(AD>7|#L96JFgPB4lMn-6^+9(clB2p_(Nv@M)COZen3F}{2Y zx(ab0F8|aPL*s_nO^sF?6s}&jd$3k02XxaZ$1gk$8>iv+Hq^Ut{5V{A4qkeMZnj6u z4jOtw6*NYRbxNiLXQahSuAO~P12-1HOHITXSy2lEZLX+LvU3Bg9Co>?{7h4B@@?ZF z1QlJZpD8u_!l|IKHv!BA2GvX!a~ueQNV{OHsPy)~S3&8`B_z;gi(y!aNjxlA#mcp$ zmcxUx8b3HXlS|7Xv#H0qh$wBa!k*!uJ%GKV;6so)TiqOWR=lVVQ?_{e!2LAykPe=D zUycq!+0aX(3qZ5Aw^_7Wf2J%WSSb-K9RGx9Tks*h;QqBx#m7-0#m3Phf+iuW5}eB= zK5(lTyQkE9nQFxy8qo`DZBR{(o!5#pzwG1dq6lf=6UKW)wLo>Zj~zxAU60;@VX^pp zSfp9p6(@&&(ozrGoKs44T}RtmAybfOB2G*`*qdXeipdx1sS0rxkvJ!-E{4X#l7~{V z2^VVTDfI-4G4ck`wgJ(DxXZw~*nwyTnf~XNni-|muK5@SJ(8HkT(rG45E{D<6MTzB zs$+moD?wU^uSa66R2_JxotGtu7cKhIePC%jBP{pX;OUraH+cNtenuwqRE)_=n_cHK zZsjPB=!+0S^$2!$!$P2nl1g%Sq&w>bV~+y03B(!}jkW6R$-dNkJi?$+A$vqKlm)A9 z(OoSbgG0!DXRcc>8Bk|z4Q{hq%^@bvT~q(HHs}TyC7MMah32|I;tWL+=3cQUUJ^k( z*<=Mg4ku7SLqpDDKa+dVKSFX2+h9(qG%k!4abXO@65u6$1vNhBP}ET6unAW40^V<; zXrSau9zgkcah4YM>J-1e&8sREYKR1^5z|B&wWDmc!7t(0j4wQj2&MLm2G|$|*H>=> zi#WH?nPEdjT(weTuu??Lh*RUm(_+RA9pcl0zSzA~+|d=BXDl(9t5U0pGG5*kLL{lN zSxYrPY1PA2S&)Wavk6y2Ns|l@lwl{}KWEh6OU~gEj|2}n-DD*K)pDLhXm2-DXyuspy@xQiz@1bg+1`q=*yq&9a2$;xQB3wN-5f zPq8&~PqxTxm4>3x8SWVkmA=BLjwt@wq}cU8ETg0tZc7m3Gpe{_Qy1@yYULgPy?CE|SNXvP*>GzLOyZ0@TSb?2s)sU@m-i)MN|Xh$PrCZmNo7JViUbn{~FS{Ebh@IGpUQ0<+Qq6wEO>Szu7 zu3|}+Nv*|EYvPPUCD0l!EG8HC4!Z^HpYG?TDDLpgl)-`&bkUZbtKoM_XGfE%u4aPN;@}INhDb`Y}UnJ6fn@O zmP)O2Vr}S>u~%Z_#US+_HCPI<3{eMbU37iVviff6jnaDfYFM%0CH4v3KR;djHtaINu`nqq?-J~G$lH^h-Mqj zVlkDh#%PE(+=S7H(r1X+1tqo#2m&kjM2%2k+$_^qto>@bj~0u@;7y*rgSYG80>rpK z;%*FkpB?fS?Xc7NX<8kTZ5LSfm#sR)7T?5)zwkwpZ8NpdMu(M`IH0-h#p(@4$^gQRn|3~T2>$2NpkfzgEN z&MlVrPr&9G)}H!BCRCZ3YWWwIq}d1bM0gs80nRe3ru%m^EA!U zd2Y+&%;RYuzW5@rN`LolM#oP&b81R0Gjiv(@Uf!hfXLjo&wYnB4SBXpv%CVk+Z_Dm zOVm7NJYGTR*xj3P^!ZOi3>@@5$c)*+(8{IMZcYp%R8}~cu2JOzlZ`V>4{o8lhwSdM zdUopl( zwCvJ#Q#_|YT$(@(%=WjK?OtM>K4foe56ZrMpK1@?Jlkise~DanAuU6gQg&}J+4~9o zY>(NkcUhsJr8B{|D9omexJzK4St&3!28E7Hi0)^1nQs4(rSJhew~sTKeu6kzGXby& z-QEq#_N(k~@5A&L;m9dQ?HC=eK)Vh{Ht54qTJgrx=|20{USX-c%GTv|jy&-=On0bT zKVdxo7Pl`QVU6Eqyt)cUPQcb3_C9`t{?`9ZQ@5DDv&LlYHzCX*EZIGt>~I@&I7xQy zoCbDpad7RAY4+cxdw+%Y{DU03a1qifdifppKKj=*vzNGZX`Kh!{}?vEMo0qV26ngD zz4Bek{x)p{_@Lpz zul<)0h5e6SW%k}bVrvQyJ@E)EZ*by)XYBL5`3iSm{l94P`|MtNj?FLqbyzxO%b(mq zNUXl_BHa0yvh@+ye)=6|(<{*J!O`O!`NRvbdx!qx*SPh;dz^guaX5NEyzxVBzx+>W zW*@*uUt;|$f0H^b96xy$mX5-kuW{$Ke}qh5CA~30HZIc7*J1J{xOtV^ul*7I_B$NA z_9D$M{vJoqJ#22vY=C8zNDTJOszprD9#5b|(l~H%{SEeB`o~=V_zF+|&fhgo>9rg5 zTeqmCV_Y(vImgDii`Krnzs1fw-z8uDSFFTsm}lbI{}hOHmtJA($`4qYexGpz%|Xw2 z>64IFpdPUO)+-$R@#~DrF6;A`Y11{(IYAnWffa9zcZLbt*uPnQKpJ>{RO9L()R?Hn z4gk@My;PMb)rQJCH1S#UVvJ&J8!es$7*OCs?_1#oJ_H}gdRxl%UYJ1`5wSLLSrjR@ zlp=_>i*`Q|V}=SHv zZAg?*4!eDawm)x)7qOyd5N|#=Jg9B8yF4SM z#$&NwUZzUzjagiREq{Z5Cm}TCQV-ov1Ioq)(BSWrIuzV3eoge{wa|;XS931TDHAH$ ziv!h42%K>=I6YGw8p&;lvS^w>V`5?wTcnG#C9@WDMXCvl4JKqFUijc{)$9O$D|tI~ z2Z?(kvm3Wvr7mjP^D;#?KU-(Qc!OhF4c-L zY8lSqgKd5^bQ#!sVudf_&bh+^+OR00&_zSA z31&geNmqk?*IDrAR%7KqWJ2u;w1g0y!Iyug%31NqaZ&$y`1~r-Bej88?AfDIovCKe zS`D6lQya#snptGAgfmsn=QiUKR%fhMtt1LnTAR(hBq^%BpCm>?XzjZo($g&*g7$#u zEsmf4x>aMU7IzI=>eRl`B4xp&*TH=j3?ovhBvb6bmm9TuWZaiPNNX`hkG%G!TZpd& zb0Atw*|?y&`ZLXOS|SC==CG5*yf_aRFDxqN;?5s; z3%6ceRkgT}@Saw3RnV3u+PgxWrKnjC`wZ$(?1azSW#RHO)I;?og^6>9>Ix7#zt<`u z8Zs*o7KL)$Q%;IN>CKg9iT6UTLTp;&`sz@o;w{9%5f0gwn1kV``l5D72a1AqEraVl=~$ zUw>V+B~%DvOk|9!-PK46%F1X&Emp0g5o+lWRYoZhCD2zhSsB6DyuodVB(N@U|Hy>Xf9}m*5SDHLKfpZv;-suzZn88VbS3?D^G7W!ABu@^y%Y!2=0&_pMQu~&RngI# zm~-!ZliGnOaTMu-EDroZq77XkI4r#)YK*2L+2T?Dvc!T>6k3$QeW%o74K68GYQZ)t z&Q7q0xiwx@72+cPV?bb$?C0O=H*P%~auyAc5KFaIn_L%-F~ruk{t~TC%@3y`CDuk$ zrtiGOWOM}1UL&RZ7sfE;1 zYhJv32td* zZhi>IAEJ5u7ifqqJ@X~_-Z#vh+!r|i0PXol9P-?Qj9Fbh3b6qx%<_~m*9hqjv74BK z6x&?(-4;vfDmCwOY9fQz>FP&uJ zA&@3|q|~;+15-_cMf|E(J4;AB973FxMjV7!@u-SYLm>qR;`?Dnow1h01wz5Lx79rL z;)}DC8WTCHQZ+0hdfMB8+BT%YVdD1~^RNL>Yj(i0y@E`naE8$!kcoP0Fz$F4sI5o5 z0)*;CCCS7`XCW2!mSw^M?yi1b5R4NnVSwPb3n4-Ldp9@IfB+eS`^B9QvJm(VxsZow z7p0PQMv_BLTK2~01-H;yg+;TaKJv_jC}|dD8AFqz9epxQJ2GrY7y=~K+xx`Me|pH9 z4o&jssK-w|23^%t83Py5&y0&mavc!@^h2V;7pme8K{q(Ki_!+7GUsNghxbZwsEjHl&n!|+u=BZE zTvsJPIOHXjQmu#yp;lu;O7&s6n&T#Fbe5-G2!%`^EPgAYb?0gC&Rn6_p+v7bL(@x; zO1WoXACezxb43^m`@}_Gi!(+7weLx!MeNaWlmo^g zPNtx7WL_leR3g_xO74O6a+tx$5aiIgoI>louR44P7oJUU4H6JqiuR_O`Qu7rv{IM_ z^UO2zUWyW;anAgMM|9ff)I7VVJ|ElcxS0GoG4|G*eZ~DJ_f8SnD zI}<#k6?8~6s#&RO4ngtgJwt317g_vgba-O&XXp^Eub$`%J}bC5t7< z_nHn%!zg5Tf=7c=m>ZF31t%nWDT`QXb{=j|kLE&Z+65Xylatk1ohgw$s(FD4^ED9nfEV70QNtX8;`%vWn?;n*1KP~xKfIrno*+Tlf+YGoL; z4zYPdWXZ7fsnv>CC>B2jYuAp(5so3!=S-9lDJ)2fh8$3(5u3lOWk;U-e-$Ud-0EiaOecQ=l+rqkYWzx zAOri-3I(aqhwP=QhJUHW&lWLKN;OYv@OOVvPmbC(UJ!EE(;y@jq!gN9hAQ=<*pw1O z(@88aSEbJ#O)|8_C=_aF%+OTSOLeSNCW|eGO73V5Mm@AtQe$qv&=~T%YNf08s){uc%K+enpw8=aN1%j4NEXX!wMR5sm2D}|Bby{-)8y3?;^{a)UZs*b68$xwDU1#dV_c^q0_6hXU|cu|CIdGpQ0&J zv}Nh!X;>Ot?Dm7VVfPkC`}ev1t?#pT`YD=+UbHvE)sN7fo9yr3W#ysgVB-i(JDB%y z>L{ap3wFkE_c|%>(1saH;~59r-(vq8%PfELufoPAlrg;bK3x70_c}{Y z{T>`S4QazlJl2*Orx7>bdx?|N%W(EdICcuAQ&?JogPFz8W2Nl}H`?3^QBEJV7tPLX zcM3s151sb4iGMyc@T zUyyfi!_xA?reAvF5U@0Y$%OvS6?iAYBQLV~@N;(1=w|eHwi(Hse)~1LKlul=U;ewK zXTHdVXTD%B$oZ6}{|mOh_wU&F(r+Qpe4dA&{W;tAhX3R*IOoU3= z8UW`RmX34s*ZvMChyLu+Q-AzTuD<(S?w2V%^%YK?dW=(LYL3pD*?Ij(tev+a4++NO zTyCyY|Lk89KK1LYefc+8`~0ukHmln6s7#;t{GEr_Xd(8 zH!i=&+53*egHQ4B=6`R8&(#EJjolAkX5;C{p{``oV4qRg zB7E8M~;lydqeD1Ha_3>wU;!78- z7zPN9H*f>77V5#f)OUYO_~dVKQ>Wc8sJpjoE&g%Vepoc<~YTkpc19jxLi zF)#aw9w4=~2{S^?_PImvk!68?y3GiP4?T{4_<1hhKE)%S{~An=Kn-LvN1yvNb!&^u z|NMWZ86D%~v!8`?7g<03JnN4?LcRVWSN{3`iYT0U@z>zKN10!}LYl$&!ZUpM)(c$O z`H1I!{_8MV2U_;GZ?eHfMi(Ao{>~@)$*pBBKKlY2<4rEVcXjZ=lRQq3K<&XXsYF%RG)J56{pCUf~MOJsV*}L>D+U^d7Lehasq7HC(kG3>+-Kj1LrmDx# zM2BPWz#yvhf*)AT8B?^9v$IjTkGdXIf56)oY=VWzgStHs`HH3WuU0ac|& zU!fKZbY2}!t~LzC;E;Tig&ef(!&j561V`=esx5xt4Y#Va*xQGetBGGZX zx`-uPF>zXmGFk!}9l%|U{}-J*6JjLy&P|qR6(5@DyUM6F#*x8?++nm3!IBAh5*8d8 zCqWuZQq^KamgpjvK%_DD^Wb(1LgylG&`8OdCM8OC$5)dmB`;w6TD-w>5dTE{c_W8I zYJ%)ya&cjGXv?joTeLPSy(5F_VNBCsJ$MBg6&pUq!u$ z&CAeiC+_X3CVu3u5Q6>L(UTUav!TVxRbm)>LIh{w8P#oYx!X0NUX;)o6VsW1$vJ@w z1cQt0fkKsGWp6RKAVQ~Q5mk-R+z7EovUnq?iws^j;#@to2H}dcxXt01-I-8T2%_|A z-*IuVD}_MLnHaK_)o3zD91Rq6$_zy{X~CTws)NMMD0W>oBooHP%K`>R8$Cf9S}cm5 zOSWfLaF$`M9`SVdiw~`-iS7)upLCJlqsxIO z|JS9jY;}_qNlBzAQL^r$tV^uKF(Nw&5*RR$#Btz919`|>lBYZ*k3oPWh!Ge8ghbJc zoFEo#*^whfS5vkqnisWrQBx%QeqmR2b=U3x&)$2jIrA{)+UHcMNzpda0Ku-Vs`H=A zK5MTv<`~})7R;5RSel~>hdds19&LpS!$+7g<=#8XMO^c`5n?6=*UwAtt$7xW9O^1| zfTi_`@@!Htf_$fj%*g`!bFOE;KfPy-YiB|rb3>`KKFbjs;) ztAS0=bX-%05oIC7aNPI2O${8!7_@m`;ppi`mMrSYb;S#$5-Fo_sCKki^BQ3sl%-)5 zvBVVZu&^x`j7xe1YGR<&$iYJ~x(}U9K+D!%?>t+34%e)6CDS(aNlDif&)uFyLv5jx z8J5pkbZbNIrRM$6QixXo6F=W@x&xi(&{1TnN@M{IFosEMVyx(7Yc4b;C4b)}*`1?+ z2xR<^XsE~p?<<|u483pn-H6EV8&`myk7pS<7FVt{(GsoT(hghGo5kj{b-o6slEX zbHMec^*{}Wr;)M?o4=9evVJmvE`{bA4@cvO6qd|S4`AsFYGscFjaUjZOOe;JIFCY` z77owUI}U9H3LEF!+E7r?u|V>kS#6hYZNs|GIUx7Erj?0-2$pO0M(1@=#*?$DTr%z1 zI?V}YY+hzsB~5R_?<_*mq?2Z52KWjOC0aoz8aWh@g>mg-kuYTLb&7-SD4GpF8wVim z`qd2Rj!6|QWu3)ADs(J09lnEPv!sD-4jBd(T1*(NYtKUb-5YY!gP z-U`NyN1{P+hTadDq{7Z;`1;4V|Kk6KdiFSaTt{D4gaOqKSi%9jiu?B_T>tpbK(D?B z(+e+QxpN!)vkIJ7;PO6p?FQ~W_et#VI^^&c_JbH30PB1Qrh@QG#5>PocmGA;w|)WGKZ)hebFg>|*QW#UJAVf# z*I<_~!Qu|CmJa;>F9G@__Wf17^T)5?>aDM0dg|khSlzjSe)n0_%NKxu{;Pmpfh@0M zXDeiP8~CH&1kOKhVM;O>hk_x=QTZ$FRtv;j|kALM=C3EV#*UVRSj_E%6Y?*ez<0dC)g^!o^# zA^j??^m|3T@;v1H3NT#*?%V+Gyn%M>i@4H0hr7>R;M)1qz|$WBrZbAZU;Yf*t(Soh zJPp7xiQ%0Nob4}h>(&1UPm~Gr=l*Tr`V+u9GeWwXAm=;Wyzy1M_X`61bAOQy%W;YI zbDu-~*!Kdx^igO% zM_^)8o=zw>p<4iW1h{q;Ejp?jdYypXlYqU0DtojNn2P}V2&OBK;*GC<8Q0%@19<8q zsNegZ6Bmg>5BG8Ntv7J}m9GKs{~nw@^Fc5eaS4XfC<)k z2Ty+VM@qp<$Os+%IK>#smFL2#)qP^Pzm~i*T*KzgsZQzk- z@ZP`l*Mao_#FcD7Gc?%&@A(esGmqi@Pk$7CaTj>>DPXt@X8SLs4z%rrFcktAQKaBFRkK?Jg zU&cFM`a@{h(UpoB_rCTVu0H)i*oQudcJVq)8t@(OhwcoA=RS@8{MTSV_|tge!#{{M z{sta@`hC#v|5@Dljem^u6{z3&19;{T=!YN0`49eioF{7@k3NF-`Oo6DKY0!xxb_6_ zR!^s1 z#)1$ng=jwhICO_c^4GJm9+r*_4#^Z0ZY*6QL!yY5u~8e$*$Qz!hv-6Rvs$w7{CE$_ z!!GezgDtDcXwp1FZGhc$sUn?#6d${+*>207pbi7o>SWfywnO!TbYw|7p=6YBF~(bE z0@A(U-Wiz_|ri^>`>~`(k2utpnBpqjHj#8#< zXY_=mJ4_V|IH}jcCk9SLZ(9qi z5txdxFmXiP!(hcWM-k5vX}Bn|3F~YKXAyvCPt!w|DUJ9m*n|lq zmV)BEdPZ``z{`_Ef9gc)i3A{epl?M0TQxB{T4Pd*6_N!ijvjQK zMmB)<G+gjYR1!SHHpE6`=%yAMwGOGE_4KZV8u%>gCf zr-f|Z@qN!ry)}pB&+pM-Ijqp+KW=P37+SV{w>D>tl)E-}hX<1j8ZFtmbiuL0jj?&x ziOIES6m!ujcB&Iu<3}MpHmRTawhLMfPghoWO=6-@+d@90isjvI%<5_vslB%9H1ra=XQ z-dZwTdk)k)YAL9d*a}?S=U%2%NFlzfx0%k%9R3%T{6%1krHr;73F+&Ms)`AHQ5<6&C z%}WRh0!VI1eTH|z#A?6upM|b znL-3}TUNNQL+0kjI-?`qXUJ|sZxnN@#s*(rA)L|{ZpijU(HB;XZ&3(Oz;{Bl#hox# za8uZ$Wt0dRL+&`V1>(zk_)5cTktF!r}#V2zF{f5478V1TjSc4SNzA^L4R8E+x_0i}N$7tj53#Ph$1vU@+m zuA#LB({v7%3p{@N^SHcuiRrn&iQv&_<7W89|!i= zfaNY)dmWG6{u=r(e-bi10^E5CXLtqYXEWyC`LD6N{=MkS4P3RaW6;IVw}5|i1K2+fz4v+4ck89-~ZvBJ*1&_b)`+$%A zH1v_{!0mV7FMblcum3*o|HEf-<%2&CeAiE+KK2ao_ATHm{}lbz-^9(Aeicvt@P7b& z_fJx!edirue-5mQ^Yu;K`nCTNkAK%+0KVrZf$|J+^G#fS^`D~Md5uLu^$e3%SXWrQ z4Ipss+Eu*xrQgC6pY=Z!;s5|307*naRGoki{}AlMKM7pi0?r?U1@OkF{u$oa1o)1R z;nAP^k0`6%da{=e{ZC_nHQ@qr)s zOWfq$zKQj%FXGIfM~xZu9#n)FdSA#cjC6!RP&VG1ZxhIfIVbFN+GV(pQLxd@na!LL zEmIDb2m560qGW4d7Jx`)gI_iu%5eI0-j^)0D6A&~P08Ak5d(t5+k%||4SQJ01A1ox z7G3QlgS90KS%~0$4E8s~5(Y~}?WBP?-G>2arWhiY1kjXQQP7vn8Xk)Ac7p2AOvXd@7bMeP9wt zR~zSn{4CRTXU1WocN7@bg@^qDMNhV3AA2&DBrK8$R>Xi>5bMHdw0EdYTVdJes*~Wv zdk6$08kZ#%?n}lPb&wSJK3E(%jvm;lG9;pOkqJiA?h#EA=`x6s)KDJCBZzj1aJZ~_ zFcPTqF^~lYktZPmQx7(P_s&S1_tEaSKqMHmG!SALaLh;+ug*0NP4n>H-WS`McBOhBvT#inqsT8y}BP6hPL8&#x z8U8%3*X`Jj+2}ANY_efp8+Mg$5o+iH2~T%3kTdo6r=qwW&0DZVgB7A8dAX6Gs)z< zrX*1TjMOhM)}ce9r1%@@bX_wg<=bj)P}1arLRAIV0`DD?Wk%?OLFshyCKFGUNG6tA zu$h$HvLQN=%hnrNo*Hy*nU&#{xVO@qKwjm?>De27UDI8!cb5RE(=-4vPVw=Wc)Ob8`&wE%) zhGU9<8rj4y*(~jdESxkeSUvBXU}-{YEMla4HM#cMAuW4RdxL5vj|`e9D-QBT1X4g( zo2lh zU(zfAXVC=jjfPQNlpO-f&rc#wBu8xQM9Zc0JY9b7Ssw%m4z-6 zDp`)`X<`uw{_mKd+ z&)C(h5^~+F)h~U#R46psx#xQF)c<+Z#q) znL>k>RB_3sHG({k_0vLjTnce!hNgj4fVnF=SOv}mk?}avOS%LCE{#oh#!-qCfyJ~j zDvArD@O7ve*t8wnO$9lrOS2v=$dT=|DQImAcfJSOxIwE5%;9h~#2VO@Tv46vSDNgY z!@Az2Q2FfE3%bYMY2IG?Zn&8BRY8t=_aTm zoP76;TRGcuG#rPvu;HrHX1p8@uu{;_QAM!&3=7A-cF7IZ03Y|2@Y}Va)=EpaFJ#qt zx(YLH#)(=W=EljPXN&_1#fpB(X`jXnKRBHPrifVJZN+-$4{`q1B_4VCP1LK8B9;a7 z{aZNP{vz(b`5L5mOyvXF1~#}GM&T1HId|#IU~^hPY(tCIILWnh z^!puR3JZs5vJ1RyF|HQ(us_^{zwsR6=GSp?_Xc`vxLDRByf$6=(r3UFJ5#!;E*-TW zV9RX)_p?sQ(dIebpDVD=yrJoWlKd$ycr6_ZoQSCfdRw8oz;O>dZdWZnIWruR{cp*3J4b(jZ9q&pN1MOL6a4@kqlI(jDuFR%i*fW=+3dBIr~xUSGz zP%)$XZMKMe=ft8YAba3^!qUEi5-(#fZ^Oe-r7^M*0*}|B>l-kyXluZV^E)2*(B~T) zh_@D?g`yS(^krCo4gCP9cE}2N2&U4Y)#2?EkUn8)4Ofj^(zriCdxu(s>f2~{UxD7A z;AKKVgHJ2^L@Y8=ikNr(&wOW{0=bf(2~1xWp@Q}SP`H2J$S!^rysq6`IG+>rro2^d#~V{ zzKzg=i_iW7&L4Xp;^J)-+`^T!6_=m;d7Pa;4Vz!bmBX93^Cw@x?$uADOpoEvDP~;R z38v)+`n}KL?(?69zVZ90=TAY`ORRUF#hJf~c6-L1FMJN?Z#)Z+GpJl(y?hN<{If8h zare_Vv48PXDD^5X+5(e~X}5!3JdfS{1zbG$HPkmh2iO%vo6+t(i{0gI;5RP-sW@+6 zMU^`^Tz($&ul#q|U3msi;RW3N!e>!m`aaahzYpu&A+@0DB_72e-R9l ziwH?~d``cM(V59iwcj@0~`axjKt-7 z4*`}X<3L67UZe>Wk4+FPg|36>g6!vjfYBOqL+Qp0C@pO6xfX98wQb`qIjo{9K8y0= z_*{p`IT$?Q$KM|Z*HX^W2WKYHZY|w{CX%rb-y%ugl7ExUmZd0Kmn}%0HX=I1Tgwf; zB(7uKM8ENPmSPzdBC?Ppg(hO11gaAo`udtPRPL=-XIp1mJ8Gs0HZd@qlkjw_St;4_ zm{a3CRE((DAa)I!7o5z*-aFK4wlL=5$CYJOj*Qj%#_d5zMv++1P*NNYvyG)h!9X*P z>sz~~rIXDzK@D4QoLCgu_CyjnWa_pF3ME}X;zLr#24R=6k&b>W9LYUmWb}T*zSeFCm!fSsxGsk**JbfiHVa~^8(L;2e=Q^C*tuS)r#~m(JEElj;5ny~ZnT>%4&4$^H zg$sceo;e~@QxXGLk?qyW7^rwjlgpq>$(FiOb4aheDxCrP5f!A9M&MX8SYJq#5U#gq z+4^l1_QmMpEXg$-@qRU+Ef<)|4xZ6c_mvoeXgTy4<&Clx+F+DMrURH*XbR+RlI^0h zMMmMBVrHTxyrpwV(yWtCe$VrYAhA)|LhIlfuUe9zK;uafULVr)^%Y?YbTMI8RcJbDLc><5KxIX9MtgfF>oISn6vJc!qM-^0jo}z00*KWt z`bscO50qNbRzaj-q(!j0W19Fqj7Wa!!X%FaFeA1ADyTYP@fE!}v=C3>=+po@_dO85 z^wt@>h8V8y_NWuF1WJrN2e4xg;f_+1LphQ$ohj2$?uUEl8ibWB=OPBID}0?%>%`AV zL3Bf+XdD8$eEtu^qQPQ5!lFl;4LT<=(;n}<_%hyj<8|2C4*T71iwJKTRjS%P;Pm-8 z5;#tbM6r{Kdw1T#ul&+4^xV{Mb@}kTtM~^w4)aXR$x*? zt$Td-g%|NlfA<&hvp@Z>B}CR!BAp53f1qkzHv8^)-A4j>JMJ`3Cbz?WjcoThX1255 zJ{0Kf#14@}RnHuljm;ljox??l1Hs>-sADpOVp;QN(gN;%21-sY zqa%C;ym7+iJ^4sIZ?+Z7e1KrVJTKTy6#~J!UTi>hZ*6n8AR4?Ml0y<$)|HQAh3%k& zmm!gjc#+PU1l)IuiM=;eEtuy8raTpQU-Odd@J0){hQdtHv7q$@5u9lB@&v9t{t-O> z)JJje)|$1*`Z_Rd)0-Gl#GiFE{ErY9pMn$QDhZ`4JOHGK=z()7_MpI z4)IFRz zq)2l>k^9NupLlKi%y6twh-euprwP{+5n;KhKb9aUQj{45P$CKFjt#~=!~;{~y>BB! zWSjy=IJqR%y7vxK9)=fd&=}34gTFT7wb+JKHh6bI{0BK{#CoWaQ{^q7g%JnK;hlmT zTupA6h|$P0n3>9erAoTrdIL(K2xQqbA4kZ4mJ?D$=~=7--d9XY=C0DIV7xBLZ1NPK z$PXibNshPRh)rUntU(b?`_T;$$&T|ASBq!lPts*Ua5`Q5S~AjT6@BdxDrm_*<7ZP$ z(W7%sFUfoB+yi)UBiWL5Ga|b5FZjuUg2@9q=?+k0g=L$mJ6GiJ^R>JeX~qfxq%S=N$U&30G5{uqB&6kQEi8{0lx zI<7M68&1d6=78$T`{`(<93r2`_FjguiJ4#mJ=t;#A}qJg%NDQ7)#G?AB8!NeWi%~a z9N`pBObc5slVQj-Re=wdYPy)+J0gbzEEkDm+A0kaOYd8G136YXL}3n|B5dl#swvpy z>mAW-WFdm|EcAlpnx0M8ypkYN=mXDqIC;{NZXDg-KLJIbwRJ{ZQ@HTtuSL4DdC!o| z1=zN7mDs*pnj%2tR-EM(REh(Eke+UH-QvGob1Wmh6ehW6<@y`lN2e7uIh@;dz7>HC zW*e`uCDs(qlCy@vUKJF0Vx|Q?H#(Q3@gAM1CcyH@#Cv`q=sxp+)qyMUty`Gi`!%0Y zIvaB^0zEc&BIsUivQd4Le;XUdp@ikI2Pr=0dz>zH6N5#=nr=r3BZF!R!J5s$X%01> zZ&eLTzPE0PClEvQo}9uI;qqA#Uv=dEBFi*;3cXMtS2HzXO|vMn51G+XIAODjAe$`x^K4Q7ST`%tnV<9N+O`f=!( zMG<`MjHWW$dSqWpMq?wRz6##c8Vnr9rlAY8j#=YAqTfoz3C^psnRDqL7{F zkv!5YA4~Br)DYTvb`sk-$fn8W)%A$dU@ZlY*M;JgWcd@aM}Wuf*j@wKl**yYe8@|e z2nka~WEvrRnKz@3M@vU6o#$F8x-+`Y=x+!2C59D;1Mu`u{#Vc+`*-0N=lJ*k=HJ50 zfATe4)dLQFxW>7*MsMhOPwJg6)HPeccg2otO}bDMa*0^h9H4T2HBqdsC3`n<7a83y zX6Q=;N}$C8!x^O0VTm|VYgVA{D#8ztA_&j(RBLF7KM>90s_rPZ!?!8$xBlwCh4+8w z2XS`&F}lMMdGDv|wtGV{GM#Nh#bnHWSy)OXiaQsVxP9{`zWte}@Ufrz30z#>+Wo`0<{y($SuoF_~e&m z0X%En5wK`DlL>RehZ%91;O=PAVOmfP=spwJs?Moh7>Z1ovL(%f*6BkEi4p`UOY%zK zih1VL72zl#+);&1W8HZ%wce=+8%sGn3p!LOob6TU|LTDq$TbuItu6TAewA*4Gp6z#1 zXsLy1s={_`I+7Ill+fn~uGFe26gp6Lz#K=BQ4>@x{Mo2kRIzlx_S@zcwPdVsP4O;8 zz+J}7w!l++pzZ3xe~%L(G>(Gf{s^@{DxLa}h#C zu!p+fY^doaorb64sQ2y0l)%j6>xy!GeL2yhK$?wC1i+j;zr3NV(OxrminL`%{$3eB zr||bmZd^2l*HAnrz+?F96iQnFQw7#`1Tu}vve7x;;`n;7vI%%Rf3*|gSNQufp&hM{LpIR+frn}{HhKp)8N~`Ng{}*Yn(KL|z~w6$atR4fCN!Eix@;sjy^+#v zwu_F9#F#|@E5BabHket=6$ICn!?7111?lX8t6R9U*=E8P$U zC8={fl%WK|7nrQ@=7=azsRSrXO9vTY!abvqh8f{21?o^p8~|f10xB@+@U;W_C><>d zNM~?!uy%--@QstD!X`D<29=)9x*6^(**Lo6fh7-ZmJXlj_sP8J7YHNcFJ$E;x^XjT znj$h9dRMY;(h;a2pdJojx&(Sbu{|O*2OOTI4#=3WJ+eXB9Ul+*mi>ADXO4#ieq+SWAJdO9J%?+Bu?cqQ^VcR-}0 zwfj(Ggsu17%&v}AJsE3)qS=2~Vr!!ep}?^(iq#tS z;+JZ`Q*;$&B$$pB!K4Jphg6n@#Dc0dn>}Ou+!VyBP~5uA)$m*|kFC{|&@$8x`bSfH{Rj_YU$P$r5t=}sYg+|v05ggR8#bnn^b zrlT<1QTHq`7>$JE@QF;IOr?|8CKQ`QD7c2Di?GY)Y>i-@fXT9P-fSmqyHr69g=k5f z2gOnJ4i_HkB{)>--eA^~VX0_Q0AHc$F6;@-F0>b>+n*SiKtuRR6m~?`5wH+OD=}QV zg04pvTl5uWBCF5h$bQohV9x_(30_ZiVxdSaSzwU+?9hN#3P8K5QV>@T_)R9vtm9@} z*aq)!@K968D%{UDtSD-zDICzH$NdtWBRuy^y9!B>(P4CdV7S`ILxayLQVI(RUC`2L zG$O-mqaYX#l>I~(TAs039+2~KUnvx2vns{bj;YjiUlHwy(o zx8#iVG*F0VMBKI}Tb2&8TXPa%Nx>2xjD%X@YuBDG-`pOGbEPf?qGXw?2%6LFJrv25 zWmpE(S4=~6?i|W2y}@*cu5^F_4RuO4qaaf&S>hs~<5v_-0u_!H4W%js4Q_y{XXy#| zU6=~Qm+b_gN|Eqrv7i8|8rZ9%tquEW%EVOUnLrU8sFR_2gH65(yG2qA0Ue9v;jK_f zcWK5hyVKq7HmYwZmTOds0G*A}YCPO$1t_A7*q@;0xhbNdqA=p96&jJnCAr4-L~o?K zSxgZ5eon>s`%z$pdyFO%)I9mR6s2t{=&j>yw@YVy$F`>E3_Ea z<#_(KaD?*L((-dk*R^TKJkK2Bo-m!Iu&H+p^2r3Q@Sy%d!^8wFbRMoNorYr62h`a< zi)d&*v$RJlQz7n%p8j$h7z9IGE1vEX&;^(4ie+xxN3=`scft{_=nLJ6yK=@sl`hFQ zO*})V%hOD^bF`Xpm{pC(xfC9o!?LuZ=JJ>V^HwQzl03$Ok&+2f)gP*q_ukp~`u z9e{4U$A;{&IL&OP{r|X${Z#P8^=r6#b_H!&H!eUan$vsD#yE#*rTi6O&9y4( z*@S7@vuGm0j-Kr@y|37nN}#U;Jw-#$hNE!jjXK31Q)M|xB%EC3mHx9o!ppG3Krq} zSF+)Xjc_FkOc-&SrkbvU}WM8=PMk(0FD7w!Ke^x_@q)T!-YKiam&-v8{f4x7$H~ptR z^y~2f6nty{yxVj6Mt}G0L|nD25B}MA{X0WsO&4q(@98*X_lLybVUX=74>$zZA;jvt zJjo<)_y7PP07*naRK7jrl(iE_?dkug7(JY;;|+^Lj=qv@h2bzAqv@kdU~`{JPxow3 zzxIhxJRRyxEqMZ*1V0+vfYr?vu9#gu3Q_z?C3(@UZ0NBAE)(^&)w?w*`Rfx>`%(B z7GM>?c0j*4I*a1~OxftZl}VN3Wi{G&QGu9`*Rp4|nkd(dNMXC@wIAGgBLVbWlp5bN zj^p#bnb4^rN~>?c?c;Zt1c>fCxy!>8tCvA>B3mjq1p0~!TXb_;8J)^MjkH1SxSLy09HE=e7rUEbw;!m9t}Ep zU~q1PJ(*XL)A8uJbYzrO1z701@W^5i)=H)T!L^|I!mpAhVQJ#`xA}~+tLU4HCz7`~ z9G-MAdn2BsA9@O^01jg)o9%&;^$jW%GV+@4(kRFYP*(00dgFbvFP&b|Y`D!D1`bQZ zM&CjL*A-GSZkFqr2e9Aouq<@@wtkAFxsE=pHcXjLsT|6bLr_(oukHNgcMmV@wLe3EU}y z)dDnUESBwz>Dj1kU){!w(vQoQTDG(g98L0|T0_It9Id3IG?haOwuO#3TI6udL^d{N zkXX(Z;^?S(xE!T8%~zCZq6;S!CN)VVDX5R{l}f(!MrVyFqkh{`*4d@Ryb$+~YUwh~ zKLp#_n0s%@nDT^@J4+W#l848XLAM#va)D9~T6~l^q)SJWMb_tq>56gq$0!%!U}^hY zGhXf*TjGeOX+5SjG~vX)%lFmTYYZO;NF6WYwItFSOxpN3_abakyqfUErsn?#j z!i-H9gSW`n4x)0jprw;qz=518fY;*D_5Q1ky= z>#&*vhn}Z7lIyi8DDbn7HC>XN_bkdqjq9qQ)Qn_C z!74MRa>n-3Wb-lNN4BS@fYGx7c(lR}r`15^C zpkz~N>j9e>O|{w3f{wj1++^T+Q?dk$XP$*(y{{454EUO0R$MUQ(vPo}>HfCI$p=JvvxPTldH9`Cm@PRe0(HohD8_kA6$tD~TWXSgve zk~HP08uuwpIizrhH;0$OvmMb&4%T6XTfmwnY#k{3%5DT>uy;6`Ynd|XH98mgoIM3L zo46LtrEfh1Gv#nujq&}KFcBHWCfs`r%_6r5D7DZvKKA>=00W1pVRdEU zm>B%pd!W5wzPN8x)K>SXUeBTaA*x~0d+x`VG)OmqSk`Bt>m(L05+pSP=)9%wF;|&799Xy zK%u|u+%~PvgnNejmj`%PSef`e3*KwJgV>dbL`&evj7&#rK;VjGPIeCT;K1b!5k`bv z1knPeq`>bAzEw(>ilqCdd*52WA|ablMqNzupy#~7v~1bn-i?Qz)^gIJzS;Z9j4PQB zC-C@enoxxo^8I1Ytpz(;RRBpZ4)+|6b$ASiH0#(J`ckbZr*75pl zH!{wwtfgl-2j2PK@Pi4oWu_C+dBZMZa41?ER@^`-mK%P;XfLCqZVaXcVVuO3vO}~E z)rt^c?X00M;Rxy3RF?|5je2aFsKf%kuGpFJa~NlIEd*;@!@4X9&1Igx?j}lY-ttS% zL(nu;wC-#{6bhaq*?yQ8tW<-EV42r!cT|WovR2Z0V>{mL_j_Krn+wJa`-ungzB+2D zxSS8z=fNTX6yukuXu&)tLGA=o8{-JO!b7#U1w{*{-Hww$8+c*fY$q#N+lnrNopND) z^pQv5>xwDcu3M)wVVWwIbww>T8B8nowZcqMv~rp>8H!N=Wo$WJp;EA}mw*U%365SC zLXr1pXMh`ay9!?y?t{z30v=O-$(_%kC}R#X6(9_ya0)q93c9URSROr4s+ONqQoF=5 z&djNuW;_xB*hC(W2(9I%j5T1ikS3Vbva;SNE>Bt@)zU1<_NAb`3f>+2y2E}q!Mmdt zPNhoWw9sO-4^|i`LO7Hl`tG@y`nHMF!7^|WB``7QvQ1A~6@I44f$Ap-v?*Z3(`L*E^(@xagO zIQ6X_1?PvJ>JV!m_>F$@8gO(KpTwLV_&y*p8B$KZD-U1)^3dmJ$M?fMzxO!)-OXWr z`rg^eFy$Lu1EbkH?+8bH$?5xmqvQPadQ5mde95(7$F*o%BjxzM491^kyQAjk?tzmE z=i_S~NE116Xb(`YB``Z(^Kj4^UvzU*@~v5ugg>16Iqd5_-;!fX>c*sKC%m~BWf;!k zOUa+tM_S_KHATxyXw*yF@n?3339F=$hudFGf7L7W?VF-;Ze(Z#jI-&p-FD z$Clf1ZH(cQABSa{Ln4pk8aW0>P^LLr{=6~V7R_N_-oMuzY@ufAXY2#w?y4m_Kg4bv6J<~3kOM424+rMiL{Cz+v zk0yYgL%*@-Q9D_JgP)n?cfRY%P%WLIW8jFBbs#)}wf*Gh9Z?b6I`3mRnSZAmuw)C6 z$9KXTwpa&F+8|7h_p?6IOzq^4^#{N6lDzLWo@bmSXinBf z%>+$bd0&Wx_HN&E$=^Tu&P303d^)aW>zbyFp8MC6y@%;>Fd)c*%DDH&@%@cdP&~Ll zUNX(JGyQgxzKaC{e>6Y+;{gNNQdm-bXo%iWn zOVNRrXN$3?+Fr}a_2YiBpWr=V8Z4*OUQiY1k6hx`+wTC?aK{h%T+1egA$1tlJR=5R z-cc&eQmRTJvN@))G(sR=P*s^+&7zE26m8|ulM$T%MZbXW53PbIj5+Q(PUNF@?x&a}EA{1^c$ilH`+y1u) zTb~+65lBv}L--sUKkN|2tZZRw-e}{7LQ`Cnw3oJ#cV9YFe#yG1rjV}a3Ya^PjGYjH zFXRhZBV2NgP5^AW_KFy0Z;&!@dBJmSnaHaFP=cPw)&ZRg^ZT97gl<9pg(}Y7fnCMg z9J}2flhWZcXN0>o3Zk|v5O>sU?rUvDspOb!@oX`4b*$kiyL~Ul%=3pg&Y>QK3+0 z1g^CP(@INp^K5M6Jy|DXgO!1fSQo78jPv~t%d#AAbJ3x-qQ^jS>lT5U>I97rjlgtv zMs^qkZFN}T+EYTXE(@+-zmD#Lxu<>F6#I!yh^0()#pDKR4M#{}1jc#u2utQeZV-HH z+XkX_x&t)e#jrSV?feR~Cm?+x17waB`yFFPmQBp=j>+~oFFTaogi>op%-AO0rXlN-}o zk2h}h+=!0@NNoJTO^g_u<1R<1Uf_6e9sI}bkdm7`OF+7wY${9A_(#iC(c{70#{oGH z3>wExns{zJQw$axH-l_8&HGo&1G$}`29RROvgAQaQhXW0mmLKL#fdm{V#nAxv?&5$ zI47qEg{*hgcuxh^`md(pzMC%hFYNf@MnIDkN>Sc5BVnlZQw!1 z!R+0hpMDGf{(w_``qMwlzR6>}+sn}XyZ`xjdmQ;QE|+)v`ww3m@8*ivlWVm;B*NOa z@SZEa`Jc6aLAU?6`j34J>4Wkw`8fZ|1C@RpMt#eF=iQ#~sS;@q{WpCGH>2M`M30A( z2kp4-Zi2c#G&s?R20VCZcyao8{auC|cJlB3(3>0&{r|f?k9hc`&)?g9llSgVEh+ua z_;B;@?!Liq@4nT~+`qvh@h<;;|L`C!9{TM3n_QG*09C&EbJ^)bkL@Si_lK{Qcl&%E zz8)U__lI7?{?8g3;$1%PZ}oljhpzL}*M)EXUQOTP_wUd8oToqI*9G5Xu-hN}Z}oI& z7AFs|o(v2daDJXYtDFqGPPq5m5MPc%nUTneAw;KmJOt9IoIJG@<%bws&T=cWOVPGH zG)rYXnF*f`)UzBG<$!Q9;IJO|ZaRed0?aGLRyX+0dcHCxF&oEuX-t&zJP(V1H8fd$E)1l_*Tmvog9330Y( zVd_#VzH;j}>SQ?FzXR_bRp}(J8LjtBV62|yYn_G@l2eMv!QQp6=-! zE|3eE#LnIkR?z(TJ<#l%z$mmzvHlPaZA4nIkcc0Bi@}xU`PZaCdH|U4|{&E%Esi>y~0yxxn<&mx7bZ!UZ;;}Bz3(4wPt9<1g@cGl84A!UWOW=n0t zCRf0+#kS{UFS6B22UK|+&>a6CRd3U4U6x&GjXCF9`?K9Eo3YH^(=5{<7bRX@@;WAgzwdHGB9$flHa z+GLVW0So-X!b?2FEzs}>&MK_EG3Ow{yi3e1hBstU%Dk(w&(gxRI3RE%OKJv|hK?5c z{7tq4EysEuIJ0rSPoylr;RDv>wuC!&#ckyd=cel8@tt^m1FzVq;Gps7hAo1+eLn8g z!ZO+5+|ZTeR~Z=O0l?11n%AhXTRUZX0P1{mh}wl|9LStq_{$%E!i)hw3+0Y4U&xZ0 zZrJN9d0~&n{)y?nnJv?7f=eI@YcUtT~Z9_BdF*a>{hWMXAec8p|DiANJK zYk{i&n}1FL?`&GQb15kf=s*3J9Ozi^-s+O2g8#jfHn=O7s!YJ%ZVrVEh&kxM-Gvck zmg~O_(3YPj7Ay_*tL>JV08toG6y|KX5PitO!{2VrWOaH7Puv1`QgT=v= zyy1+vuM~8???K(#3*(qL&lBH{L(XBtw!~UYqx%>KGMVZZgG1Lmx2!lN6aobPb)gO< zlydU0sv7x9Au9P969-^Q^As4q64@Gd7cHWD75q3f*kVw}5;y5F17|G_TrbN_qBkMY z*Y8`_nByT}aAQovS_|$PMxJk_mIiDk9yTxrLw(*-ijT=amxl-5YttHQ;^j4mj#jil zt+*iZ98iBmp!UY&n!&UAU zx&sV2tuRX$a{Jy9XQ5=AnxR6 z;Y~{%)}qbF1{Ro*H^VUFfK}7cV8L3bH;@a*prs`=ByTMh91~_NpjR@0<~R;oz|8S{ ze!%C%I+@DMMOSmCT(s#v=Y!m}raGW&^Yd{&D=Yb#SyMfJ461e*ekWP1HE^#gv^%=^v+tCBMN5mTDcQP5#(Xeb zK<^X3uhd+b?Eue>Q1}&-P?0HGL1698q*NwlAh!_^KN)N?{Llh$;IJmU7lNvXw&@pF zt8m+tw;KQL&16X9GgnGue#Qi}%rSBCt`Gr=y!d`|$p+fkl}Oyhnx)E+Vd#D0Ip<|; zSN+cOa<~F4!fsVerg&;fWWB@~JNX?{ZG=)=%Yodfun>75WN`$5V@{clcrM0exi-U$ zClv;=N6tBr>!iCN9cQJ;X^rSc?q(QRB~q!P-Ues<4(8w@V?Lk!Z2YsSrU1$HygJ^^ z^TDMs>z(4153JmX2h$)kPaN~$GHKAV%!L}y^AH<61hdaFtfq_SQo{^)tUTGr?_Y#FaeJ zTYM->F$109PCL0s-pN3@nEd-n@w`Iw8tnaN&?4M0%sKJiC#p9d7;;!`g}E6+N`&*s zdZD&>gsXVZN1&2cy5SBV4;T`wo1r}CRsty0I0te|#cqcA5DsA{e6ycRQ7lFTHpuRy zS%K`&7-S6E=Fou)#b%Enw~zI_#VWLJ^S)WV$S;&o^DS0s_SRBYwW0Z)s6H$(jzc{e zKhw&hYo?hT?3W_Ao3&#Ct7$?krJ$QE?PDH*2llzqy)iuayRK8u79CLU*Vj*8wL~=U z*H;FAwPAUq_vUA|ftZ2bz+e0A4}MNg*VtZ*OgRZ1EVvk6yYCR5=b##jVNXn2j!Acm zxnX~KNetc$FLA?upX{60!Z89N8)NN_-HGG*M94Ap+6%`pFCr+a3O{^#VIET=PA3Q8+%>MLOz$PdDes(9&;eqrU*s90|Q4lzWwGK{P@F9+>4Hh_xS~$45-_= zaP~$=vuw zzrOf6A9QT_wYbTI2bs<1`wg29yebh^7>llr(}(I4;=R`12*fR3;Xn?o?K81$kxSfl ztI&H;RALu{)mvtQLK~Htt)%5M$^A@^QM*|Wkj~YH+eo`G&ZaN^WY3;o@ z>&@^gHi0VopiqkPE0(&+`GJ7y;YxeLEtwt7e_w8(qmjXbwt7pQPvunB3GYCkEc#8L zN_WFB4jvq!s;Ls#ETZ;4(H%%zl+nswJbmI_v^x%W9Ck@x2SKaG^h}sZ#1eSrVm?g- zSsiQPDYhb(fWxYFj?hqd7vkYk{Mg-OVx6>S*McLklEa#aU{O(24w)=N-awx!rUscA zJ2xJ|0Y*ux9L2>}cacd6hm{&IB)a9*FUJ7WC(leom_Y6Xn)Vp zCmVor9%8u~F%Nh*^IxEp>p8G&!#1}kR=|K`HyitvY}Sr(VCTk`owZg`;k8Sl$cA^F zWKJU6hd1O{g66qZ7Kf_#m0FJwCzna*N$ zB~@OoF2~T6f-B_WV?NmkTn;H8cnl?QCWkc*NBCsaeG+y(?I0KGVl@?)8q+zP%_@9+ ze2dq5i%*g`9#3+&YLL4l9$Z%f599E%nDBUv$0v#*Q<8SSodNwceBwWX&#*`sX3}Emutcw#<&1LHGAcWf-{_zb0jm{I}`K??Cj@%o^ z@qwL<)rI2-tV;NyWa(=1NBc9RAnZVxBMu;qcg|M?=KR2G8xOwN;>-{qh z6^B~`29JU41F*!G^Q)AbT*NF!Z!$bWiM0V*tzUU+u)$omfT5jfX8;4a<~*=+bD(f; zAPZmCU*Iu6;O^K~sK5B099aNmiSd4+D+pZfMz+uu`4Z}afdOL#h8f=H!W)Uh9rJhq zXuRM5FCNDPLIV{I6?PV81YWN_9Aq9CmYk;bmKX<^=z1o zh5UPyBUFWPJcQY}94RbhOU|B5<`yqPa_|VHO)A{1L1aR2-VZHS6cE@#7mh1ky6b1D z<{UbjHO_saY~pDX(^+TiwXr&355eAU%+;~o^ zpWnM+gU##+({dKrt1%~C9ge=!lHccIGddnDGLs8YI*xd+mujtG>I}+&^W=L*4UKDH z*Hi&F7ZH0k9ufS!g`U}2n8zS1NrO6fn`L`h361q8bD5GdY}y3AcgQ>qjlHu0_rRwHC}9k1_B%IrK); zr4b$|-G6DkM*-lyQbS>54VjG5NhRJ+ofDZ%xOEhkI7+(>Go*rOVAYAT#>aQx;Qe|_ z{=mUmGy`iI!U18i-tWNs{S_b253G}%K667vVi)h^y%+DPD$K_duTw!uawSKwc_QZy*F|-I)=*tyENVXprlh1MB z^?Ktm$V6xQq+`UuT5s%396n);3x|)1b1(6<3S&%sU2idgp-)k+@B2%@* z& zi<8TB)SE-f5U1;y6R+2s!j&=L4!p#Peh$ZaGqHSUs!zEvQtWTYvl9;53cDIAy|K-3 z$kkyk&5^y-BR9^qfycn!OoOkzID}oiPmjmM`9AS@K7dvDI41wU z@-Mk8)$c61{9TMk!?_c_IXi$8CzYA(1Lj0KgC!ms2Ahj3>xS`o@Lg`6lkmnfxO5G| z<#>)f4xkHP-Wn>OU$L_=CT+s&>kDHBvmwUN8IkB>3i`01!?6wac#=VifvPtehO-zv zhJ7+RZB8r)dMGHzC*TZwF?swuCA^8onM(pK&WZNgcS`l~crbVshMk3TZ+vsH$DP4D z1rB1ZaQ9U$_iJiV-q;wyW!}UD;y_s4{Ye+ zM=e+{&9q9~IU0Yf8u1ML#sBdq__II%m+a8>$+2t+{k$I?4rVY{y z*gt*6fB)b7xA?FByZ-@yu^KNAtj1?leHW|^!vy-A0R(Uy2Ydr#PRu!Bb@7gxLpV1T zb`ImM{~GfR8FCQ zbS4(ZppTzPVH+NU4Pvt}!f><(jT~~Cc=F`aVFV60MDe?N{hT6e>_8l#iSm@%++ zqQYfMd}CnB&dh?{40y&sosHGBvX|V4j~K9(=x{chO_;kErM@M*Dx?%E#unl{UqVGN zV|&8zszf_Di~_;0E!jE~!D*o!=sR1bt8p5ck#0aQgMn(bw$?vM)n0G17CiWSp~yz? z!*9ohH5={g(##^5xFe+MlSad-ZL|hvo6>rz%G`1u=4kRZi)Y0c6XAtCIq)vSoz{hQ zHArkCS{HW+w{u$JVIfsvV-?SvN)`bTY%(enV-B5Vx;S7r=4Ka%ctCS_1i`nPX?ET~ zXA$yibz6q_N}QnWm+y?undUig7-6)TB_$hezq?y->XK%=3D|9NMYn;2)x9y|;5#q- zvw0wfQ%RD6w=F~mTDc%u#f{|{Xb&uW0TR5VgtEUY?gox z4v^7}9aO6}1pY=MdZ2cqJyi6HZJC>D(VfIU9AxGUaIiGsXg5(BmF#T?mjn+6G?_sB zM4NEfW=7sdYUAkP=w%vW8v;BViHd3!bR1IV7Erz$ap911i51Git_(=q5^>b6?s<&X z+06mYu;zE7#6TN|k|CLTT(wa#Z~ViBLNn_dYm=EoWPs`$%TEXKZIKAanY2P=CRS33 zHXPV*sx2+0`VPJ?b58UsoONQ(gP&bdS>kZ)a27Xm-%z16a2A!{gm`allBo#Vxv0!- z{xz6kM`;_*RJ#$uaE5Bk5eg}24TV@&Om8%<;hiw^O&duzhx%C!dvGu`j0uTX;%gD+ zB84GYJC|ClN_9(2sekLnI*jqT-DcuuvoS)e7UBQj3r z%#9cj$X_g8#t8NQ*3jupAm@3pD^?KkTzdtmoc zBV0J(s4{}i_r@_9HgMQy$V4ez!vK&C?^+CAjuH<0Jss0|2F8O+xm{Fj40CjyN{0nb z=kr7a9Z?O@b{o}bsObAUfg47dEIRx%&-W?L6&G0MK$3N?UC??6TTKM*OU<8LT zJ2#ueaB+t(#{?G|4dCle3<*VDihPR9_DvSBV!C~1Qmtp~A$Bx;CqCxnqWc)A^NrO& zjH!jSl=q8YGQ;#X5^B)grF?#49#0KoxYQUL22@}7bl^hDUrpGld-xD5x|O0GX!SD> zWEUzM)7~PG58`BM-JvdBhOPQ*I2Y2Xp->Gm5!*OO*&E9Ph(MrmfXj;ITOlD6(*jnd zzySsqT=*kt_yMPj%I;eqc)wm4!6nq*w8c?fNbJwvTqIdD@W3qaK3`JIUzs<2zulNx zZPn-ihXAh7hl91qUK^c;=Xh|zZI@yeWIihpBAYIoR8&q`;}I_MsomLas10<&rj(tX z7~_H0I|I-Yl2 zaG$(a^zPPWi*?pP2l-i838ZO}>~?eV-2=TDy!6hEVFS=YY7B*Xx?`PR6sTcRD1M@$ zYi}(A>JGu!7FecWkInPjw7e$aCdHq>Qp_153g_}+M%-9I3W=Pl^grtzYBTXQtFVep zxG}Co^#e31>hpLX!l?ZB zLHVTT- zXh<#O#G##Vqz$ZfQYn2Yr`X)xLZPl?lKADC>B0lN8#36pj^a7d#yj(H26+HZET(hl z|2j`PzOTyDBuWA;J zW;pzb4O&~aHwPjC9?amTx{a2d0yoXm;!X?=b7XUC-`SM$D%FSq#&~%Uicx{xt<7Tv)hRCnJ_DabM&Dl^!2i}_@Fg~0Iw*`}o zn?nsB4md5=mW9IxLW3!wX&XUdq0!TH_+L%X;FhVC1SzFLnjsYk`Ve&1oLqu^0b#o^ zF|^rLmTvIRNp1C(=baklFw|yxS!N>CL`NIm?pOnqwKq5G%Ql>US9(`7PRl8FgEbC!QpT>(h7TVd*)8XC=-Q0${R!SBe$B)?g)SsY*&8N4L(A4U$u+gYiAG6Tl?NsQ68Nu6lpTh*#8<)Z#1kJ2f}^?rcy8{l^2>yawel{QKQehnnP=beKD;a;JqAr=TkOble)hE zYzzJlU=g_Y24d=W=MZGZfDK1S;grH~H?3_xT%2(Z2xD^K)@tr}{)mKGe5Ttz(Hb09 zF&Xw^z_&i@OBo#oJdHz|fd4Eygk8)+-ZF+VxuxatpM@DX$dcEL6ow%$A|!A<_6nIFD2C4^_}R~X(0p%n448=> zt3i>OW5t23A$;l%YGbA0KB$PmeBFsON10?E!wn*%l0p;Wx_?g*WI zM1Y`8%+^F(pi)qGBL_Pb9d!ciwhcRRdN^WH*=72&g>K)~I5N=PL=)x1pL_ zI14DX@dz#u(u^!{b3~a&Xa<{nmU1Vi1EWpLL8Ua`Ii(I@VwXOfBpQ|6Dn~)X6HxuR z&`7`dQ~@BAqDob62o>bX=P|~>nT4>)A&nd-OH1Mnem~`Wzbpc|xWLOKORJK}vf-01 zkzlfICGGNt>wUQRz(NgG(bD`@2FV>f$1&2f6ldP$N;y7%f1?_HVc(o=2M2FUV0;Ee z1|klGRGJ8iO>XSed^s9q>7+0MPC`cCXJ)xm?m1AZo$0EZf( zX*$sgRDCvp-i4i49SqEIAjM;bsrDDj%gPbfTAbx|67lR#B?#N#xlpQqgg_Z)m`$Z# z6%*Y_|8H_z>Wic1biou zMaAKI<1L1CDFNPsJ$nkNVLnlnf_?^G@*YP)h z^?O*a^F9ySxDYf2&RPWGzx?&z{|&Wal*|tOr#a7tYFdBaKYWibudmw51>=PUlibN+ z3GK6b8I8jvwZ0h6bf0k?Kor0w3~&HgDDo`C)DH1`!kt^C zrqW<&$j9H26cu;FS(jyy_Jb~2Fa6?A6ea@G9axQ_$QPp)OZ^1xWy=DuD&!bgFuYxx z4im%A9itQ8g~%f3%nhEcjRV=C;g|YFytQV+u}?zrOA5H<9Ei4s4ye!;PO=kYS!V$T z3oLF--PmMLZEMGFj3mD@+!0OYRH-3>IaV&gL>r!ohtHe;)ULUfj;_}3$;9ScR`5yt zg}*muaWcQFgq3E|I=}{s!4hN%Z5WG*CX*vMTICCBt&I&7d~wjQ&0_YVSsr+QweyfquPR&!X{G%!GSTHY0(&bpRUlhFkTQT zn@o(5O@r@>8|^SudlpJeKfv(_1_4a#boqsbXEW>g+_Kk!cul@S+cw(k;mo zbrxoB`GOz_NFYoXSO$1#95GEk-Xv#UXn zWx5A6MkR9yyJ1%F5Gu_sWId| zs4Ar>u1ey>)SzE>&VY%-NK5lZ!-mOX4cHud9_k)&m^BiKy=hf0H&hSw;&7#1eX3@I zE$fA2+h;mqcPN2U|6~P9D&e!Z(Abt(U3c?U!d9TKd)@HrEoB4M16GaUOgryR?54$< z7TThfOhZAFeX7f7BLk>ty907f>b%d^n)Bl;C0z4XEzsP#S?0%OnC)WUu?xv2qv_n6 z+iLG?tapbjE!T3Oi|Ww5VS_`K_9p6NF##{N8!6|1*A0TUMD=FfAnP81;)&6Ts74%z z26|9K=6H4UPU_^6N$*mG0h^Z87=sq?!KH+OtQd048-*o)Pw*MFMVoz+mlRIiNG4Rn zfLH_vI;a#155NO&YgUm>mGi2kO?Yh%U%|n0?nP!9fME_RhO1Hd#`D>XHu|>a`y(d- zy7b4$RSpm776Ss_j@#mDtSU6hli&ad+>F;5%SIa6rYS2Im#>2Z_+D(Q&9yAxV57(2;JT@79^%aHO$?HC&>HN9 zw86h-1H;(dU8=aYeFp@Lm>eKP@EJ5G7rcv#vVzb7LMIuJp2#Wp2I3AqW?Jn)bg(HG zcawq2h7m&%A6&GvX61mdyK#(x7+lzt8u$@I3~#AUuUccWPx7BBsj3@2fK%_jh{BE9OqSNu(slm}C`>Pr~17C6z(J>BUluAKmgCPGUzNl#d z($1T)YvJ*jeAZ0j4FerAT?}ZGAOb>?40F6Kv7I)5>uX48_o9&)9LIaNRtlzbl=Xy{ z!8YK>C+n~DOahHjg8_6qv73!}qVE97q4zDK=&%3-f4vI>$=>D;edV2;#o?-H8D$C_ zpB^ahd+0K>@Z2pfw)*+E6<+Hk)+C54*j=21Hc*30&@G3-xays9Jm%B_vcygv3VLoF z)rcb6ORsI?xfi9hv>*?HEWBGzt;{d}C+4(RO4vRy@X_MAVa8ZpI67YzB z*#P>)7$$5I@6l)qc~S?P;S%Wt_C9IRm)qjuMpRii(ts0W4Qh9Rb|y@Rda_j5|~VQ0yFiD1!M$qLJjyf%;NJ0qqrt^5$OTq2CBLAO))3Y^sQ~Q%e;AFSsrqt<`NaP6#$WyL zmuP2d>$HjT%T_zcpsPmMZ{@FkMpYf0Xh;9~FkTtha?K~7)d^uOhh$3VzWk_Dz3+F>* zZfJ|o=;_VEr=)&a$%e56J#T>Ort6RzfwMVm@Z*7(4hk1zAi*tt=>;+O+lqRGeTIw( zN=%h7ITRISLUF;%#)1VnUmmgwS-dU{DQB^Wk5&q*@iR_KAUDDwOO4!dn_(K$$e=q+ zYC8MOf|^d-a809Pt`n)j3#4x2=S4a65wsV#2M0(>%6ZGKoKB|69G_BVzUYC`rk{aLMR7MB}#NIRS~t3G$^bwrHY}lUpft&??&CFvm*ZRwInwLmB0?ZGVixp;xzlUjF~e zwPlr>_G}IzLcB_o6_$t4<{(H3)Kyzc16qjtXMto6Zo}hX<5*H$cJquPAf4x6Wa5}? zgxeTyVye#4`1t`$M1}^4Cdl~iEdaGCC7S1J$@AHZ(tCanEyja}mPTITP8Me=b_7RI z?YbjEDv(VdE4Swcac9;1WTEV{zz@moPIbb!xK(2ptQ77%5K-s26!rj zIS>f=bhy!CJX+h`7!09sZ5%a_>VP(<9H^K%hM2ag290U%4IK00(aRdF#v|0sGrs~G z8(S(->QF+BnUdD6vCk9mAScJEK6wsWMybZWwjY-a`w zh)o1EIDD;U@Kq0^vP@Pfq!zJ8PEi?)TC(ho$>4wny$;Inc7gx^AOJ~3K~$T3&Qk?p zgc!9ZZ-qM#d80KbWo<<5+eJcFnTA9#DN)Tp1G<>*HAhYCz|evtlMQ)^8L0e9+JGIfqUFoPIBj7e zTKC(fvNm%Z&53mxZbjIL!r2=U6G*BpTSJf4S702&rg#nnb}CI&+`foVh-mwI}#cDaXs zQkCc_4FPOsc618_CQ&goV^%e7+vz!8^MPF{Hjm z0@JXnp= zxo|@x9J!>r%7!_Ul}hz{;Bq3cJ~}J)Twk7I1u4nN<9*d|(&4L~jke4DhI8#ZlbLQY za#W`q6@G2xtTt2|jN5sa4ZMuQ-Vp<7(tVPAy&Sdar108g|pj$jzafu^f6Np_z6xkM^ zPcF&QUC@`+w6*-C>Yd^#p1V7@uoQONOIu9jE@D-N1;b&l<@fj;lmmsWyAUnsi(HBY zLobNy2yAoKta5{;kXFMuB>R#lm8^h*xLD7n)0NZiNJ}D!j4arzkLIhxLFnbONC}~; z8E9tWk4FpDMimgoIMB7RH;2y$0*9X8RfV$?b_AveW{bhSH+m%wH2$66``h@}e)&tx zZ@;^w1YG7`7R3w8V1_bAaiV$eG{`W7an`h6KjF8(ed2Ha@|Rpl25UZ)@x9aR%*+x0 z`LF-e-wbSA!gP})x4~bmbVz;q{(JoRDT4EXiT?-zQFLIWOTf4Uf zSdBmaqd&qw{AYiP91oluIBi{N(mYHh^LA5e%Jnh~+Fr~D6XzPJI$4;`N$yee<=sj{ z^U2~OZmNYIx;**kA*2v8dDH`I@#1~^#h*#0Afw1@QchOc25L(rExU43@*0}Br?ye9 zbkgmGg+hXc5L!8`uK4IH;+ES6Y*~Ms@K6W0&sQ>XJDC7!+;|Kr1+PJt zHD9Pwj_pPv{J}za1fl~&wqzpe#q$bI^0PP;=wWvPwHX;!d$bzst2iSMj2uE?9 zz!>BrNKsUSsxOxsilN?yY^twV*z)plbL2`)a}3!f3&Ekwg%~JW7oHws<7fk$dcMTi zu}(_X8}P-Di%u%ULInzoB@QJTOi!(pRnUeuUu2k=C)3z^lkcYVD#ze<(U^AGR{&N( zslQ;4d`6UFmxg27Y_7xvIgb%erk>Fnbt#Lfs^W9%Lj#p!Le}uW0Yh&}Jln;gfg>*t zhSYJcaF%i=n=Ym5?QYm~d@UBPRU2j;wt6;3D|xSU1_U=hQyeHa!|=jVLhc(08+=yv zWw6gT!{Hx@i^~DSTX)2PK)J&v6YxsKLONBRjcY0|m1wYFoe+$iD|t4^*Ty%KmM*77 zvV(AWcLvL(eQv4@49%iKRXu$emu}8?~%ux zOik-Tbi?+-Hpf;F)iRVeO1TPJAs9Bv+*`$SjY`UN|>7FDICies&Ui-U*-cMw6_fVg|;PHVz)O;4}xUbY?J-nL`A^!zgH;V}E+(hbYLuz%zhK+F3kM7z7I@l_3R_mv5qS5;j)8YB4#9QSQMg0y zO&ilBsW>{&Yb&ic#N`p&SBe!5PAG*eFIl&MhchH1bw`*rJjJ^bOudasw<*TXCr|1^ z)(!05VvSODX2!JXb|ti~!f3|*9LKqI?c63a1$kbBvxg^7#P|qNxtiEf_S{#_Zi(J`kVBo#T?ee-3&e?d|a4i-K z&uQ>sSPGyiVJ1ANbT0+MJ&bsQIVNp*$wj6QE(*_^g=jdt?qTA^i!^cctPRf?V&d`d zx$)cz6Yot6&$g?Hl%hL}s*fyWC=kmOc66tjwrc!fgN4OrGq|*mt8z02)NvVhRpR`< z8IF|XR^`^{>9cX;AfaGBVPncxPQ~xH3g5|g*yPY+fV`Dkf-sB=4Sfp4hHz1`6|onT(=jY33np-X z4Pb%6P05M*&6C}G)4thMrF~Yq^uXQ$>N4sW8q zG866NW+htjM9rp}(tg(S&0x^pWy&pUSY66EE^ZiRD2$O0&Q4a}!Z5_(Gs{gYZtti& z%C}G{b-M;GmY(PEmHBZ7BaOFUK0Gp*rwZA?)Jk!L0a?|g)IoCV9m zxR=^|UmIM+7aZtKTv;U^;jm;qoJM7)4LA;8ZisPE-TD0w__zMf@8aM1yMGrr z4&r>;6b5o3@az^Ugq4CZ2gPPd7X`Aha^wB|_xQyxeu2O7%iqP;T^3($Ej7LG-gckva|)1lHg*}>~8qHu)=I$ zQd`*&}~c>w$4p}U>szEbfGo~Zrz2YBteU9C-SEce&@9=|%wSn_SkU?sE(-^ry?q6K1T>r-cbah9#i=nu{2M9? zKA+=Hb*`EeqwRpoT3Xg}C+)`F9L7f|K~*yJ=Cf0wAR{UFF6CFY!+qSz#1?Tk!B8S} z3WVE63j%qCQZ|-}p(3k8HL_3Ik2ILLm_LYOQI{NO_24kL`%1A@)~eW?hJCB491Klr zDK0Pj^Tm?5EJye7$+*d$u9TP#P@pt!Y5YpUaT|@^OY-zj%W$-lzo=xcafP$!{GFk| zgxqk`-r1UAKvviqfI>k_l?&Sn?Se=qbn*@9a(}s2c!LSBmAL`~|BCZtZMTNRG zb|)X5w*#&hBdEF0qQt<8IN z#6YNeNQBT0I{OFhvX=wl+~kS2lIgEaEdt1;U=y)#NP%Wi9D_g8%EWoe6O18HdvC-H ze2jz7q0j`^Fz@1{txfysm0Y~ELrEkp*iNn~jOzOaReSNX`^Q;$Y48jUSUCLhrt;_F z`p`b2jd^h?GYm>Cbu~o%tQ1?xhA5fV{p!n7BrJ;-1_(9-TZ`OA-HhCwn_G9sZCSf& zmk9rvI<>J^0W;8xwc##?dW|^9_3ONGB3r{CM`G^_>d!zdWa8Q4Y)MjQgG0fItVeivkDsp3%PkNBus5KwPmy(Dk$Y*?^-y+C}5J?Gh|Gg>O6R#I!JxlS}XsbDrM zw5)t}an2jalNL6>u&rSunCx0q`gJCHvQh0Tj7i~5BjgNnVsLf}ub}T~cgdP013j+v&9ZB;E*1Oc^MGN$ z7h>TT9*3cobur-;6m~%+Oq{|hzPl%+3U`KDjAL@CC~-rhG3S#@1IkFT&vp0K0ViLT z%_+QC^IbuNfZ?zMYi+W;$Ag2}E-?@j;S6_KyEw4DID`j3$0?3-Ir-=0#!`LT8n8lc z5DpaC8v#(sdtA~_ub70lF zZkpTmP*TY48@)uuwz&&m!XBC7W@KnS!qJO(D8KJ9*5Ba+>)c#Oj?X!UUoj`G@Gvbb zSN*I{*&Cx>y{A-wl^8(*L_mq&3gJVy)Nb7T&hbQQ$b}0@BYP-k6TE-MFf#r%UobJC zJvjsmOw0@ngqVGH?E*Pxu!&j;FBf+-VX8k%nF9=(W3PQJE?eGzPhrfOj+e{s>YAlg zB|LdPmQ=l=8f}0JXmsAx`M$75j;o2`9bUptupqm8F?VCV+97NO1xj4DY24V&;aqdc z$U7~ugtb7h2dztydg1N#{$6VHyrxU`xv)b6_FiQCjd7zZJoqzi&}jgHo9lOE#f_V_PP?yWAG55yb`-9)ZuYT|Ez@Ja-W*)+r2WJLG97f#&6xq-BhC7v? z{9A>!HqM`Z!teafZ{ctJo4=3!KE-Z!2@MQevm$sPe)H@9=rzENSnH%ST;WG?NdLMOMwyzvoopeS#Nmm0`|%_v^K7Ij;LgRdvsGjwwryC^?EOiV+nV$WsEu29ghxHvvvw zqyRx43|Ig^qZ7d35HES}UbDNZ@-Rlvee*yN1P;&Hd#yRU>(3a!0m`+n zWACkokAeGM|CML zX+IXL4YPds7sEO1pP=&25U4GSSsw{L59yU}z?tS%vbTFWrmX34>|bht_^WRXK*&xB zfWwe|E4i#N#ByjjSeXP(KfyuXbzSIG1Ux1!5mImL_3?mhVM-%ByhbUIT7!p=OhGGM zfdh^w*Dq*^xHO>KN3A>fJx`_64sEV-FSr*jr-Yv?Y8Tv>iGGCOZd7l?oXCA+82K>M z3ATT4foQ|Um^ndG916MAE(gpTKG|5tfZZjP3JdfsEmh9a!6w`a)+tD{8tb4H?XjY0 zYnZ|e>|$fsK}Gu*7cckL&*of&xzn1@42>bBR^z=J@X6xXN?Y7Q_X``2jg4~Xyr)vw zv+-dqNW5?m#>Njev9M&BlNiy5vn)E6S zyFwh)kP1XevS2D4l|-(0>7)w}+)}MpF2E)}_IjAAwm1+QM;WwJn`{s`9~@A7Cte8j zN)3mc4XaNs9OHzAD1BGRg^l9;wt@X-b*ej*Ta;&1F=I(^YP#wY)$Wy-^>r9HjGz|D^FYLaBcOa8> zjPY<_+0Zf!!EL}d@KtHxHyUpghp$J$2rBt6V`FpBD^*gCqsZJ1hBAdUUg@}k3$B(u zcA=2QP_b78UIvWa*lQ!4Y~nGfK5%D1gN1{FT`*JFfw;6ndxKEA`=kt0=X-Ga96C)J zhtk>&Z`F!s#l+vHS}mI4H*Z_OBy!>Fc!^=zde^BafB`lG!&vK?xdtJ!VYv}yB5t%P zwKgq~LKaw`dmBZNyIGU|M>K;kor5`<&=X;(W}2By_%w%ZHF{*}b3ekX3*+|GjH) zv0F+8cCn=W3_C55#pW}GBZvlT^ZU)Jyn?(h3`|@Y#&@tkfl9D#h{0a&4B>_n)e+5Q z?i@srD2;UpheXmNS<(PgwowaXj>o#!o6qiXwPX{~(&4yqGZk9lLN4Z3IZ)2;Xc?cw zy;CYbAQo#FGHRVRaV?W;IV_Id4XPXE0|n8qC!)Px*o2auVSK^us zx>%V&JLdJ3?`lk{2Neo)Si%_`;?jlYh^=?BH6Yi3y};$qs?Fh#t8Xg~L=jA--mV&V z7`BtqY(q{Wcd8s;T)1)I2V80BeG5Nx7^AEqOQ%XCWRm5XQB=D84XWG!#US6ld%fKGPPmU#((>x-@zaL(LaTcFKBmo zC?(v5#gRMJ+u$VyzSNjIm-@zFn)t_e_=mst6~Fa6zm5C-7E4t4q)pe)2~LVX`;$NZ z=?UvF@kt&{Uodvp^qh5<81uHPKiELmTwnE=zNfP<1PsA-#9MT-%cAL3nc*LnOpmuVNf-8hi*KOB(&izw*J3eYiL%6YCKp>NDB!4L z6<8Xw7=1LBu#aDUMuJ3#^F?t#YhDRY|I-5*GlB&Wh zE*22QP>eAyRBzN_j>dd=V3&u+TZX+CObX|{*ud`n!A+g2Wp}dw%o!ueb@@G7cRhEai6dto#O;vu%{G@f-ss?L*+8*t2WL^rMn)`P~CDh z3znB(xSaM&ZiSUjd5ewJNA=%$4aW?VC7ql18C)*qCak`p6xIVocUMZi!-5Ilo@6|Q zQC)DFcn>Zcs+dwl^~zvCj0*ac>V%t6Vi4GvFi~2$u#dIH!2!J;?l6pl9R&moai&tX z$W=@~Klj+y?c?WrR^0QV+=fcXrUGUtC2t%%V>4Lky%Tm4bCuo}lS3NL>RH&~AmttC zJSpKk_ofew4&+*xG1#=dCRLzd(&IGXV%iOs)6VwB;|50I1D7#5x~pK3*!dO!eV~Jb zw~c1wr8{F7ZRp1iw3XCZ0D;z4#DZV%4dg0PtLIE*( zur`g>ba3%%Rp`BG>klq0&wbL>Le8l6G@ie0jrZY+iM_nQCfsdcl%cmj!+`?tpYwiR zw1Oat7E~6OhR%gC1_%D5q|oO5(wpb{)V=3mKm?!vt#F$p=--^S)FSU{xYIt_WGjY1 z`BAL^AIEo{SiRBiYY1_(S~ zdTXJ46rO54BRE82zd-wOivx9-wY@mxYj-R_0T>*9nnVcGiBa*UaH03s@A?_|l1G!T zaJzeNF31k*$0#T;2i79vvwbr86p5=h2BXS|DtLMT-aQN+2)?s}@A2|}0>7$@Hsvv> znunodh}Fk%MIXd)l=U+ZVQtO^8L|Oyv2!CRIky_{4$RGZV~(MvlN5d-MY>ia@4YCf zxX6~j_Xe(zt+r4*F@r%YwBsH#tP7vCF@{3Yu8DUiFb8ddHw7lc$&4Na+(kAwUQE+; zt%WIFqPi`V9Dh=|0mt2&@6`~hsk!v7PA>dx%UVx?8uN)ZPxH&vD zM~oN4Lp+FXP}aGTAf;vO&wa$#OjAWJ+{X`QHsHdc{Gkyjf2S z4yHRlgL1Y4tj16n$(C)|=`1|`e1R7J(D(hZ?(cCK4b_{$b4~kZ09wFO9q1Ww<@tC6 zm(Hx%46-@lL)u--!cApy3MO49L_<&{@)Fk?o2q#aIVNY|yIRP z(-$^;AU6l3jzlEY>{(15#^GyAFyjT(YB_wE&h1?o9oT#01tQgu8tON#@8(jJnmxgV zM%V~?{@(8*-}^}!Cu7qQD6*@4 zApY!6|M;hP1_u2Ab@ffNh#vzV-+Y6QUw(tk#`Sv98sOu35l#+YgK*obPfJNx!e(Ii z#%o?!-@fs0{`Wt}U;WMhi*GY&@zfT|BT&8AXa)(7rfrXdECn}%Gm-^YT(XNcY_}35 z6W5@k&D0Fc2y`#R@l)&Pu4bB`35*@?7$XQ9J=B13es~R8Ou1daml=WwmJI3)EC1TCWGb%dVf0SZFegptKZ9CbZzNl}fvM z7-lPho`W_r0O?E^s}o7D!J!!?(AC_G9BV;K=0DEF9kRDg)&^)h z?5^Zu*(I2e$BKR@g9mU}0L@KX2wq>tVS+0yce~@Q#GKu{to+306i~ad^Oo|?kwqCz z4}r#q3wTP%G>bt~dKqQ*nFN|fkg?N}?Ni2F56|o{&zNvW7-*o_Obg(el^8}_ZrY$~ zu7T+nuEW&P-}8(DwJj#siAiy^JuXx>rc2p+q|{%)}^szO7bjEswdOC0a_MYHB`P+^Oltd)_rH9)^h_ zR%|0W9=k@2iCu3tXvs!o094Q0Kopm((+6_PURJ=1DKl_4+`BO5i)T^9voLk%BJc;- zMU;a$!sPWN7Lv=`v-n63s}sqgn}VZ?@fuV}C=nOaU}Lhei6JG)iw(aEZr`OeLn`l9 z^1O;Uu=5t@l|cvq8;ab?`yvc+1qaL_>_Pz%149Z!IPE*`Qg3KUd3agpINRU=e;lBA z`vY9hE~JuEXN*UEGJ?&G%hF@D5#{hXurj3%3fK_i%!=yf;&*yDl({#&Y12F*MPZZA z%V=5)i)x&u8g7S%W*T$>3m9ywS|MZ}RDD5VZQH>>2LC*J)5HNp!RqFMc#h}!usEsq zt>-`uNSx54e6TeQ;L9~|jY%c9bBO2%daCAJ&OY2(7~?`TZKpE^!pJYHZoK04SeTDW z>AXWb_rvhC9%73brn8O;6K}1RHf%(=aKMnXQ0bm2KY!0g7WU4-mr4)wI9wF z*YhEs+2PW0$en1!i@`lx>a*dW0b}DRF*+XwB2gkO&N8tC93V6Fkm|cnE17rF`l!U# zg`iqrc5j$MOS+lPJ;YuX7uSo+XwRu6NftunYEu<9ha>MrTYhgUGG(cIy(R}ynY4J1 z&?1h?OuRQ{Fu^k=Bzf1d7s?T)8fVC|?M~)zZd!RE1e575F>knC90fNklh#?58WtZ= zRJM4jVQPALKXfMR_6VwRntPf{*uiumQ{#Qm47xS_Skqo}bg?qB5z@ z%mSG9peag$HaOY1amn7RU@M>G9Ag1Uyw_Wnal^aV>r5?iKh}5p92~pqd2d`?wQ9Pp zh)YdjF2!WFMjeK-78D`gFu?QT-bB@Sus-$*Cj2%BQUx&RQS*YOcbOuB*8RpiAtD&y z2r0f5Cc;#4J@-tU!MONmhjjIw`PAWIRK86cbbWMFrP#ce#>+JX<)WdI!I=#Hfb6>d z@FBg(hQqNgBeb|9Q`|LZIrhxn`!qsA_7s+v`XoLV(DN8$pp{r3df!tPR&%-x(S}aG zW3Rzw>=p}pIN8z4ASEpX#nt?whnQhwBZea?wZNd4m^h7FeJ0O4(?Aq%PvUVmm)EBG zL=8Ilpui7?kn*lXHF=RZA{W=B2XMQ@g@3W`=tf6lZ=yOzn1U494-OC2T|{h6;k~R) zH5c(yuJ6vBA)0fBxQ6k#9zD3Qq!SOgW+<3O;*dT8>W%FRA2Oahjx(F#(E0_(%NT=Q zXX@~%fXPT5r#BT}@$QtvgZ+^^XB6(CTEq~VFGM*y?FscI-a`R;VW?mJ694>*j^c%eOUc z-5Lz)@aV#~NMrzMTasdKQKvCQYwrYJ;{n(^NuUo8trU5lc9M`M<_P%a0HkC&?&OSk zgg(pWgGRPXVky?%FMhsTOgJs)9hL}-JUPdE-QsYOSU^63Ft$OZ zrB`Z;U}8G)@T;W73N49j0d{d?-d(tCA`auh&JYF2wFwTDvS>9^`R=CTA%d3Ds741F zf$dbMO#s(XAVwg|X?KNV8#gVXWL$_Nwv`CoD)Jmm+cG6Z337#HELg(GG;rDP7+udn zLWz4woH~^<35D56N!JR@p?amIOlkOV>{>c}&#Ii;rZx_f!yRrXdYqfREqmVr)9_L% z-7gwWqy{czRtP{UPFg<&HPr)YY$`7}E}K$wv4N{~UHe2u#|zB4vmkVV)uTwNu&u7;mJ zlw9lF&>Iq8!!a;vV{Tf+Fha>|AOJRx$)Bnj7y>p_XDd!c9EK zq40+T1L}tjg~0;)Af9)ZxIXjQmYc#pO26ane3wq}OC}3c$Z|Xyi0J}%7u*)29WNz5 zFAyew?*#-G856*^&C9v?Iff6sYtv3IW=LptAN-IJ4LrcHr0Jy~+w6gEj4&*_OX$p*3OnH2Zk7b4xY?Sv=v>O@0 zjlvJcB?V4t@M}7=IgC5}VHf`Ph*S@T=uDm4$My*&+=X#5QHyNZp`bPFjoF2f9E_JG?w0z0 zx>SjaceIuZ)&;A6tgSW!1CDhsEdvJjom96RMb}xpRy_@(Yax;-Q~>EgOJhqxZCn~3 zX#8m2rKcI2;^&43-jzhq%n6LZ4W~7@IlLM%cyu`LOfN%ah)u;>`-D|^(5cco^Q?mQ zq$SR5i^XIOi^i&jJ2zhb1!3c1CXJ!tmgYzExC;)RzozztNe+zD(C)HGN$ zW)Cs$sHA`SX_6TtmvXUWa%fAgR{#sVo%Axb67L(0%LnW7I|X*wQ&QaZP(DIbPq1ATGWI@O!7h8vGt0j8S02c|jJ-Lj?yrVX^L zhpg)ZBZh{J91NOqpiRCo8{Ms@vX1IQrHprK=$ns~JuDC@6_z<76SKf&alPf)YN?xhCv`SId85o zDGLfHo+VoYBZz7+N6x_Z&xLVn0Cwzv94<03ICUo;K5DD3GTB&JMjm@IY)#sG6&v=5zXU= z;TkXYXf5mVaR%(gV4l^)F2uMvKRyF>@oG^C*hYZJfFUMs3zfBM<8p&l66sKlo}qyy z>twe=m4Zb5q#~Ov=USGEzuQMur@<>l4@1EnMAGc0)2ZF?HZIq^G!Q!hp`gNgH#5Uk6mAr2yYtjVP|3F2maZA`Fr^NpZq@j>sK-( zb?$_V{qIaZhL)J<{cusMG!wDL&cw$ze~9FtotT_J0|=zO^?k?0O|fzx{&F|F)Bkl3}0Sf@T*^b zgTMOAe}_N+tACG=0@g`gE!sCZ9hE)IfH^JS&^x@7E`;Gc`F#A`?)A?j#ev@we?*~dP)V26>|vMKuHfX6j(7UpI){o(f&)ev84XHK>fvM*B?BMIjfcLP6%(w}Wfjh&0(8SL zHeCy60P65FxERhMng`5V8~MhxDJU&)#iZh`8gHXQY2!_GsdF%JcRn8aN(P5q=QZiBrjV@?Z>v67GM^)I9uvwVpCe4;6JR~h}Xmd z;jyjFtVw;kWJ3(80%Fo4(3|SGvjN4i)OJ(Bvw>^yXI`~fa9F7*KC{B}E*_+{A#J0F z;X@Z%c9Ib|H00}2XawyCw2xm@Gqvn%2n-wW6Zmt$=SuyBf>fXe#T&?}!m@y!H{Um- z0(d7kgC`g!)cny#(9br?nu9unJs|5Lo?*}Nuw@t)L>rp9E5`mQM z`ci7};DY0X)HqcPyN~VZ0R~_RHVznBi%lzqs|og#+NIJp=G4Yfshs8764 z6T@aW-_y*}){{;7?k%3F;qswBXIN`Xl}i?1%eH$0q2N5{rEd_TFrI|!*08RW$dy4` zm&0k*(U5`mKfUu(VNiO{LFvRv8Y}G3Hq?11%_rKI>?ChsHrb4>v`~{JEB8YCr9>_k zVMNX~q6||NLpBR2%s|!6;xcH5%T_Bc6>}+6g-~_{Zuuq4ScsP+&XKsS=e^HNObm1z zUhb%+KrmT$;I6=s<~+ayeo=)8sfF3>yZSR07a9E|*R?j$Eo<6VVlKi_gM;!+a$y)Y zL|b|5-HgLekG=`teDmcg~<9D`?+R&K%?4bRlY^WCC;ADuzemPZO$9|{oSIeLfdzhBI z%6#sTmQp&!r+tpvG4RftcWzJ}x|)GfpJ6|2sHj%#hcn4w1fD}(w`v{^Soo|J&qh<= zj#2sZQo*}+J^*xg!wZHXi+uD^CwxNCtu~8r@$Bk+zp|E|qTj^R3~`6DsV;1R+7a=n zy-kHb>ZnqsK$TTFu6P^EN; zjdI6jOq)L`x{kw!)N^IuYjOq=8tFvb#NLjh=+-5AtdmR<=e@@*3xC{XCM%-_ zpZY8=ze9?)iOFHL)TkyGl*@4wx^IpQx&=y%~7FI?sfno$^l zjiKQ(e?Rsq;~2Fb`{VKAv>7H!xSGT@F4R8h=X401d#J6*Bo>0=GO`0pso4x{Ys{yY z3%~}pk+b)jRN&DiQ4ISk+G#6OeC5vsW)Alb#;e676Ssc)gX~Jsj_!fyJ~a(14~l5O zh{jRP@Xnhm#C@Zb?^Mb6DVwV8tQ042A&opgVlJdmN)0{j7-0&R5BR2V1kOOoB^=e> zH(dlK6`8XhJPUjCfc3(3!wjLaPW|0He-ssk+ze2f<`{8dt;RLU_8Vg|OpSnX_Ml+D z&n>nP2UNOfW)MQQaG7%=I7kzagG;>R%z9XP$c7txJ|Ya}<|BTxflsu= zoN`<^rVU_Bti`&Rd+N>bGbtAHAZg|k7x_3I+8XH`j6?248_+Vb)We++Qe*g^4ImZ7 zWJZ3k!j=34*NMY?>QFS%O(}#}8DQ^k@!$QykMNT}{6k=VQF{1WUBF(6``hpE4}bmF@WUVd2>U*~MJ8o1Pyg}nVAn-<4h&{fkj)eB&~OtJ{d*xHkX5q*SQhHLH~!C`|0Vw7um2x>mw|Uu zy*7Qoot8msS?wgmj~EKKaN6XIgCK%T8(3VL(Zg1iu4NaU+aK=enI%!2i#rv7uCN{>!0&k; zXy>IB-FTrflBrYMQcQ=1Ep8n$nbz0bc!vcUEi(i=Z8eAeq?~#<13nI`tXuKk#lt&T z1ib5msxqG_D}lZp5f`7=OuXrVtzA;hv--LXY>Oj_M}sARd@M zZAu}lA6X~%sDGDn<5bB3Ynvf`z`{k+Q+SOLew@M0A|kLCtxK2b`H?!%4#}?AeBRCd zr?vQ48ZNjK{4Y$M>;gr=ayN@!P&tTQfEQD?H1uju4XA>b3;Y2smj<7ii3{`DEI|yc z+&3l~GufzaC2CJsfCrKnUK#8b{M-zCZ+w)7tv<^2wOm7z|7glcEwy}yfOf$ff!>QYtZj5;N z#^hWIe*iPYxYYblJx7kKjZKC)hKEJey|D3S5m4m#P|em-9&$*#(F*&aH6`4|NaNC@ z_r}*Ti8<)P-OLaqbeDr;=WYO3Cza8)n533s3I>Ca;D#Es&JM=1V*16wHE1y>W6?3Y zaUlrMW;8Ey6x{l`o2io4T>watBm{#)_UKSc&p}c3W^%U9PVd4sxTG_mNJzDLZz?#o z?OiUbM3@rZjdmal$fSfj8yA3Cg)lE<{0Gq zilMdl{cx4WFx0*=Y>M8DKOu$-zU5&s?D}f;k>LyoZKON13RQ zhizQMW+uk2C}Z8 zD#x^Np`vzUVq&^s6hi?d)Fq2E{7GleXGO$Cba&&L7b**1jkUy#fxMT*bHVy!yx_YK z-df@;S#9-qjRW?+AGtu)Mw(VF&RVsVzzqxBOICRS*$u$UCoOK!bD4>uVUrn~>jZ86 z)j^(>adEfhN})r-FpB{$)l|lmyO>`lySv;9&6+cnGF%N@^FnXE&w~u{Mw5rxL=IR? zE~gf&^_O2nxF{u<%Mzylz*pk{03ZNKL_t(J9wme~0~1zm!So$bOl&@B(&nyI*E3i$ zOrLnK8@p0A*+R8gb=!$%5LQPkHd=I>!4J{?q!f1*>{#!VN{qoJ9TmR{X$Z&8Bz|tl zp`*InbK`P0@u&8(&B3CfH6-W#Gxo+r)57nv+DnWO7^uZT2txtswkQNX_9g~sv4%Dc zbmAnKHNh!o5Z61!elzd}Ds=MR50{k}WSO=G{0_26!yzs$xd#pn`(r%JbzTgO;TKUI zeHwGtQdf{^n%Iaz%tm%nVO472H?b&gyc1e#IXAL2J-Ni*=IAi~tg`jOfDDEwh4}Jq zz`e)>d+BraZd}27+Rx`vjw>!iJ9ag~FD_nv0!911As!a<>QvvVfE+dFsbq5oH3eo+ zN!@b&%ov!7$I{sf13L?(d*yRZLMWe)k}|27I!fF^GeveEBovct(J53AIkSgr&2u&I z2D$842xTSFLjsshM9eifsKJ)0xjA&sn@*JOC3KaTi1umWK1uebMJ-N3^9+I*&a%LH zj$Xkfhace$m@d6RA&ZSb_0YY@lr9uM3jDUl98B+?8nkBRiJfJzl%4Zi!D(?4uQev*|A`iJ@!((H0O(*k z2pF@$pJRMFI!d8ZJq$Ut*mI(y9As4Y`&any|LdRNCx7%4*w-I0C&P)}F)ccWau~A6 zL_Nzzb4TwRz16E!;r{p*|M~Cy7XHyc{!P4dNv%1^o7Iv&#CDGV^?&=9KOK3)@#dEz zPD5x4ZPl>r!uuD$z&F461;%it*zu6-J`@4+P#9CbX_+~8r{vJW0vJB<@%|S7$G`s9 z`161Nw|FCP3k;6kvR?3oaSbIi=r8l2tQ%6nxj0DdL0JSWC5J_D*oYHk@eS*u$B~Cor}JZ8wf))8i(V!Is*P4_T{-HbCI;b0{93AP+Ly?Icq@8!;nz zx~e2x3B314`NR?*;Ye9c0M~MIRu~J<;>CJNonsjGqN-6r3UiPF(!dj@;l@P0;j)jx zP@CZd9#lT|hSW<2Y$>sv0S7U-E!s#9NceOJ)Tt!7c}cJdK5TYolUL z&~XnbX^jJ=K54%=HW^yYPmK97u>j;g^b}b_lKL?})et8B12^*wcW9EdpUv5{!D2!U z`H7rQE2LA+*C=dkY_CTKjl&B%mfT$oIcUD$OvMYzLS?OW8w$sBxGCu=<`bZE)VkRP z6hm6>oBX9QCkqf8wC?Jn9Rd;triSphK95pEGLY}}aM23DT^!tmQ%x6YeoaMlE2VYz zCoeHh8riY737DU^iXLmAZ-lj;Q)u|NSwNhWQpRau##B>8RvS|>x%t|eu5vX(Mfj4X)g@_OiNFXMkk1_C06_HA$XYK^m^xfo3aoJ_h zw*N4ktewoIF|gO0;aKhhf%EJ%Fwh`nDTEoWGR4k{(XmFk(T00?px+s`Ul0Uk}OI)bW2`(98M(*Qr~b1IBW zOja&8txF71J0cQ7{0BL)Xw^mvU+PNQ3(KF>!PIc8i+&jOA95Qc(;=NTMua`?lgo|j z6jShuk@W}zIte0o4@42sf*?=vBX6GF-VZ|+^%>{LiQExM+HVMdjca^)IC6or9Bu^`8VWX!v?`@83=i*Dha}@)9%((=bxPVDZc!8|9Dh{7!12b8Nr8B8#+Mt?8P8B9^OO&y1 z45PAYe*J>VlyZ_`8hdTnMTM-vxLgs2Ae(BmM3Vtrhc(HdENH+KaiNXNJ-TK3=>v{m zcqt9_aAX@?a=QjQ2ZI8%6sm|{%(v(d#E{8S6)f0JzDByo(ru|xKjVoRqFe79)o96N^CP{@NS90 z0kVRd&>MSm;V^@Cd!`+8_~*&m&t*$D-Q^4W(e`rTWZ4O_05P^c4v&pV3!8SE%RlU2L=GA^39SpR`d*aGjoGR!z(Cp;@h zhxo$`5Q~^kuXC1GWZMTu6M3=o3|Pt8ZEGekLqe=7VEDshhFGYywnO~wC6*!uUg2Co zpT6L@And$U3Qs~)S<5Ay!>yHO&$G8GF@r7v7p5!Dvylo0m6*zXpn?L3`z+Gq!rjK+ z)#zNI+>%%@*Am+g3x09Y=vjOoTubOKeAyfS{11K~zxU%GBVJz*Oh7@0jRUVTr=oX= z?<$iB+1VOY@7?(Bo4?0z{_uzRjo}J_){16X2kd&bo{XE z3^6C(zx)OM{+qv-baUu~#)&<^_ZA%#&&Hs|iElRTRT?mUd@TI@XFtck`Ro6HZ{fI| zEF_;3ySN2dN}m}{TU=<+a=l(El~{06QN|ROF)sxxXfPK{ZMocGNgyz%vV=qLX2VLA zN@E8vJz7$EFurBUDf*v8UXVUlY_zS*zR=jI4Xhspl|2@T?;2RzrVnsa*#MTG-`S31 z`p{O`l=c~1YPfSY__9~F^aMNVac)@`hC*7p3Rmz#B!`sn_5u_1(gW{KY<#9yxev@u zj=;PaOmT(}t2P!k0l)&TcP&|~$bgI(kNU+-ydPa31*$_q)q>X4^{H{@?FOy>>Lc2VFERkU5z0nTw}NC|HBm3Xf}BWrtp{&Ist``D757ooUB9YP|YRb zNlV>S5!7l12+~f)((}NdYM{C}_#z*VjrF}Z!VMQ&V)E1MY;=@7Yq}_P(9oU97<;P5 zsIcl}%36kT;$Qq5EJ6AB#f{6(O?F5FUz|24+RpXRC@Fa9!noHKcZ$Q+%mU9Zmwf$& z7EpaaX|hcl!4(rPpZH<}tp+zvJf8-LakloA+-S>U%H&1Yb5ja_SMsO@Lu<~1u42-R zh2}{I-bvM*9aTq%hGZ9d17B?71ztP>hM>^S9<lS);I`M`xOZX?zRRucyIh4FKBB2+wF#FkG!A2R24W~RbxcG+5c(4j` zb#p!w=McIh$w`@0!%{LouW_-!sK$FSjG%PaRZ;DBjqxZ{I1my}APnWS5Y!1U5woS0 zlxQ)r*G4Gi)q{=1mcm?*znbxWfYcrwVpVO}Fw`)-f(2I(@#`A6f*a#jDAkOk(MI3LA`xfMP2QG^b!FjXTVdepp+S7Zrqk9He1CH%ddlKiY7}E2V$#Ah z$EUj16Sy4n;&oW>S}8gDuP z!jx7UT#$Hh`4%2PnwWJ|EBLdxbX@Vm6b8ZJ3@rl-^&!N7sRC_t?Bv-|T8J`%ntYv9 zy>wa&U$PY`K%xPK8c=!N+OWfvD#`u@w=Ct`OO{I6@S#94qgAnbE5)xAjC))h051M) zRG?}(5dk|&oYpx4NI8jz7yT@pbyl`4(;ZG6f-!I`Y$65k4o%rEP(Aqt1FJT|#8W~e z#zY7bUYS%uQI^WVQ*JsIl)`+@cLx>B(Ses3if8yxZb~U+C3)9kXinAxN0>^(?RLO} z1G#Q2r81_K>a=4KF4ay{nV)8rZYHW3F{zMG)v7M{&EdReCmDw$h+}XL?^YkXQ_}$v zgOZfZz=CeF$Z5B$hrMJl%;p_A=L>06!ERaeWP8N7Xf22UV*NUm`1q#6RceojP_Q0{GYm5<4t10O-qYcO zXHqo~V+y^bWt(v+192n)*L_On>tVl}kUq2PQHr?iZnPMRONmDAH|9a|D1GyGx=#j( zKC)@p9Zd36SYo%-r-33~4u0KW_;)EN_Gn%|V4Z`<5=Eof2EaGA-(zau-`1?sT)>3uB^cpzsRuWbHFh zz$`R0;r(=$HI=jt^K2ux(=%CvO$rh!Zwe@R$irePAgP}_QI+EpvV;JT47{^$w3zsJ zZM3tl-D`89C1#;yd8`+wDZD}hq+}4mG^(MjX%8=jHH7x$hY!3qhth~fZn}do_y@Ri zY<{=kzZ(%;gw&GSi9@A#8agJNo+ySqN^*4B;oA>#!mFivcd1T8eFTRi+r)=np&f+VXAzcvQGbih)s#A_n&{elBh&AMdW5#uQ8#0_jCH@^*aH>L)ZDMdV>+NFR!0;>u=CqA&rPYu3TV+{C8ibR+R zk9*%-T9m;P@Zj9%PAV@QhHEmE#Kf|*V10yOZ(zfb-cNAPNsl&{df&JpAA|LrJ4G5H zN05auUVG7TI`kSPol)I}%jm+10)~P*qP2(`yc32^gtY=3kIU3?4~7piVMVAP2mDU_ zH$V9?{@}m*BlznJQ5jmW4=rZ8OTl&&iRlWYigGn_%Nem2*8LrR{Rc1n@OOU)`EiS> zTyiK1Vz-yOZ@EL{v7}AZ~p^6l(6UfY?a6gs?DU-GGHU|b-p+-INR=5JZiwR zRWw3rFm)Na@sy{eT1m4Kol}iFq|%WZNJGCuP3SrAa!VC$Z2>u3s4^>8&5s<7X&4~HYUoY(o&)%RMa!UF=Pp+jrf8f z*al!2*5cH>li@5UbOK$lP5VGwV=V?ijLDa2?nKP%vA-O3q#@v42*0p;qlaYR<`}Y! zucYO(KpD0_YAvM~N_A=|S^$C)4l%9{fogwg#Ms1cw1BKH=a+YJ}TE zYN+t@?=#*$TglE)Vi)XbW_Kys)B(#+&Kbm1A`TaXGcepCHdr0G`>`I%{-+|KwE3Z(ryg(i z0>sB5~zH5Q)t7OddE7o{XXZe!YP#e=W1r}^~M+j_fDXK!4`wh*-0^Ha_$-6 zn1%=}D91$$*h%nmoiRs+c)-EoVxeX-fw~WHpRB=7+K#hNjs@Ni*VRr=#FWTF`CaFE$*L<6jhew@g0@zlQeBb4%g84 zAWwEnS+Z-RmExAk^xubj<{W-baG3NYiHqq-E|C;+=*MMXS%PFcrcc7wG0{7jlsZ{M zgqqlKRLg6_(x~c$DRF!~o9xS{63HEDiCt`@viV&M0q5x;C>8P?Twe-id4_y@D~N-| z>CmvxvHyQbpKT2DN@ogfI+?4q_zu`^rDn6(yPOIT7*mTaIH=F2LSfhEXOKs^`>=Pp z#jf0VU6U#-un2CcT3i+-+Gaxd5Qek3fc73h=3yX8t}jbARZ}3!!T2TH_X6hH3mN$+ zG1|!bVyZE)>%7@qjJ}-5Z9Qh>2j)L zVh-H*V$&9EXjZ0x;A}YCN=dY=i##SuiMZWtuuAFOhs|i_R2%q&)j~J$UT>-eQ^62s z7{i}%5mYfmK>SGru>$WcM~6bB#xP`)W7kHIxi{~)m0MwWfhl#u(0$sw^kd%esUY0mx)q z%|Fwsp9TVG$6id%jn*JWmgv$@dP-f=^OHNgkqU^QE2+KFE4f57Ej3yT0+-`uKpZMs z#VcJwV{CSvkRrge;4&(xs|$N4#RbLtnM?e_1P3lIi@mqOHWjJvtYOU5XhQe`AMj|| zM!Dp?@5Q=XOIkNat~#j&Vo7s=uy&%H=XIeG#({<>@CveR!-pRyu zP*AF+c)-S9po)vr0l;=WEQ7leWn={gAzVCHLt+dcOp*5?X4xn6GreIK6-XXTK5dkS znJ#-g)i~x#NNE7u9>#Wq3r24jD-TLC#;2{$sDkcheTB7g#f9(D?G?u1SQ35gPWU7i z$HHKn=fA7I{1AF6j3F!x@)|q`iv#hOhMX?uWGc-4a-&JyV=_hLjy4iVW4raw1wJ8RfMl~mKa>DA_C&0G5 z{15;1C-^5n{wIhpUr@a;#$=}}^hgSGQDBW|o#F(y!gaau$xggKzQb?+@YnIf-~BzT zVxN0ZGedz@w2)tjKl{^v@l)%=qdDobCdLGZ3N{`0ufD;rzWL?DFl!}~w!RgUyxc5h zSz|%i0zp#^SeS9){_c&x_}O3LXaCp#jq(fa6WafSrSOLdW$`x&{XEJ%z_ChUxjLST$99C~`o zt~X)jPq0ORTs{i|`3;S>O?hg{UTTTicwn&`AlqOk{(=jg53BOjg$e|G%Z=n?6x1AG>8sitm#3 zP9+Wj_M`=xc&d_}F}Zo3&8!+rvu9HugGrW`6O?{Z;5-5=Zw>f3)yHHJ)5D}xRN7ek zGyO+1DJayKvPyjbo=A zr(CI2aDpuyh^vSb2S}*ICV_GsJFXZAjtrGh2Fiwt5lEH+#m0awz@RI-BB5KWFKYGe z?ES4Z=NKbD-m$);R`lChL^pm|BUYDE3lTVj!}9 zZ>`{}QQ%U(v{Y+2A_JiTw=yPyU(RFL(3Fw>rk#QZX`Jvo*<04h8%cM9M2+02z1Po> zY?S*5O#i~e8GX}p_A8R z2vLa)$%Ky@(bYEJQ?Y?Ej3$Z}tuFsYnMan%Xw+6%$)7s@E^%;g>RHn+jE=gtr1Lvm zLxLR%Zvqd3g|jxpQ_J2J&d-=fRmurO&rA$SoJ(9F%`j$GvPmww^#k5J<$yDz;M@v; z1D!lrAI{$U>H?h{(4;Ei#HJVUGY4CF;U4zlAabKj)(nL=to8H~nH+q&-I5oaqjIfe zfO$*|-&oV_WQRo6Ok_F_kO$}Eh^^Q2mb|1I*hLiJwzzDU?{b!~hQnw_(mq$owp22@ z;&O1LeXarr&v%_|MsUt?BS;zE*E-O%WIJE}Y!b@Ybg3TLE>H(~6K`eYvbW^|`t94wh3(OX*ZG|o+ zA932_u9hprWV$80@-veB9H!Ca%tSSZGqLWwEkUGZEd^j=r#}eb?yw}Au8=sZ*VyZSGnA)g>h#p)kB+ZM<%D+P< z`qDA$XJf|iXjovcWmoUK#4n_=VJ|sQR-+=32=>6)oQR`X>$R*RBPfC5jPl(h!U0lL znodhu2rByvd>)7{= z7?KS1r6YZ#=%55ysX!Pjm`sh)$~Y_#mDUW;vd=eUaBL5_k@F& z)(!i%qlsbLYe|GM!8Q(oA_6fTVup2Dp;0`zLo}l$L6~f#9cJIwj0?ErdyHHwN6sCK z@s1*TU{B-@xq>Kh001BWNkl8ITj>TDxyhRqV-%9rk%awU9R%WIcAl9IRQA z9bIX&Ah}yhf}oQq0Be*JXrk(m^?gAjP#DV)v0G`BMOYQqG1VO|N$1lvRPuTslArkrDt1G&`C z;~ar=4w_@DCck?vqO}s>0f;q>Ozd?}jT+K&soyEcY75U7Aojw*rB4ID^GCP@+9+30 zL#m*4rpZyL05+?bZ~~&v+gkVDVvC|MSp{#>sD(|{ET=pA1-Aig*!jLm^747G+PK2ezP6uaek{UEEAyGth*Ud&nV9VT;2d*d&Wj%#>Rr z1d~gY0>-s!-*6Vu$l?t$GNZnSv&^%tSGu$i9Ww))@BHt}A|AqXFA5EyjqirF*Ar%>T z``D05E`Q9Ol0QuTEUmLKRCkJ-B&tc3c&DgpdDak8FfTUyEaX8*V$VSaD3sQFr|bvC z1SSrzDzr&?*)ji-Ms_QaPQWe`OJ~1`+-IKSd+*0}uLPi6q%#H^C8=S?c^{5h_i@)F zLS z##5g8bYdcEri4sPt-B58ZKfFD?S$AGpyh> zf{HG}3RDz75B^bb13P9Qp=4v|f;5y$+>p%?(s<#A!GoJCbAr0P*lr1aS~Uc*PuQwe zf8}9Bg0+){+9Sl|(1a%N$=#MWYfdiaY#029kn=B_M=t52v;Y^q!YTj#^g z9oZW>H6iG&wiDsVNyZHI>UpX0xh88a%BemYw{A>27~Cc!=w{q14sOqu&MoGa&I*hH zut0-i3~rMNuCB{u&@4JU(AEXo%V1b+tZkos;r9l0_V`;}+GosqkaCMnfr?h51~>^* zJsWB1WpJcE-YUYJD%g^S))|gd=eF2Hpq@Ms7kpie@J|gMq%-PUD~zP?bs*w%VY03k zfJ85Lmtu+HIt3Y7^SG<{#tV*u2S^dDZAFY7C>|oR)s~1!jfUFPEsW)Nqqt^iWI;+< zlog4rhi8b8!&F-=4vuPOX;IK|R{C=C1t8$VUrJWtlP^PB+e$DX2F;H20cn8DO7doc zung8rQcD_V=hhu|b zEh)%hkkYCOu?E)~pIKyOco~)XGHb0a7vN_UAfUIaU=GR}a-k;C!HQv5flqGjU4j=s zn~32M;h_I8)P*b^D#j|dY*SzvNCq7ybRt8jtEXY3`B;&TicuvD}pdom6a zC3v}yOd6S0;A7tT%#>0r=wYch3h5OjApexXDvKSd{lsMLYo^a6Hdn5(wM4* zG}?`ua{yECUU;A@Yt?6;u;@&Q9`NEa*e}*G0X#l7Kn&-bGp^PZ%izf3p>Yk&Sy+yS z2S4)&9^V43bztGMcDa4Vv!D7@bOk>B#A9#?Jp1X-fQsV5haSW>&uG^1^k+OBCsRD} z_-*|Dr#^vuo^mft6pudeAYS(T=i}DZlQ3cUo%eqb*ZUcw{9OAPc=2qb9>NQV^4b~c37#?}zj8EM60Hig%;Mq^d z-OGY-$My9M-uM2G;P$qW8>)h5-upB>>#5HG?1aZ}-^RcB)Q6BG_>vdHAAa`d;GV0F z(Fev8j`x4!4{+^+i^bjXw0rKs3!d{l%y4|*qrZanF z;(!<{ZSIzJMyk|Mvqo$50`g{+16e5LEAA6sLk;QV9W|xt9W!vtPB=S#v0WA*0&^y^ z6D2}JCKUs%b!hPHHN&~w5<_T^^~^946ZlZ5ll?1%{h*gknw3PRj5QQCgAyePGy}{N zZVT}Mv;M9Dwjscp6^G(Xt7HxDxuBFw)i>+RXeo6$N{SAup4TDJje~|W>Uru+^+<`h zrq}N>6z6@zQVc{K1JIcW6RhoodEV->Vpx<|7TLTigq1pSXN^z=L+s84Yf@$rJ_+d; z!JI^0C@5x&F_@rEE9t_(dg_;VQr2L1F}oO`XF6suHMBO$%&Y`mEfxEyBo-7W?HI{t zm?gQ==9Tz5ex}I^U`rZ#DeWL@*T592X-R^j6kW=6u`BDrQtZ|)h8w>|q@g)*3yP@% zw}#!z1D;ynA1>pw+LI&LJPPOUllIsh+di3Wg7b2i6Egwz;+vM*nvE7Ndks8K_;jLL ze3nqK(q|&TQf-bxFm)796T-{=m`qB0UGn9K#IUN&_Ra(hm2c;J$RiNJ_h2?)mW}VY zv}0-Toz+!?LYIcIZ){5WWU6#w<~xxU)Lf88D`#w65O}d856;-ZNrkWhl{#P%#RX+8 zEk{5sF@)!lOkjc5FsSHaiV`{kBvMKO!?eFu180^gltW{- z^8`wsK_$M@{gPHrJ2=pS>6Q96!@dvnN`cB!CRtNxIEUWNu-E6ew>tMbQBFKhO{8?T zo!rrk0yE0{5>qJ&^5eUbNwJ|4>m^-~lcAD>=gdPrPf&s6ol=Q9N(ih(oQ?{C&V97gYOg{H$vr%AfKqVUw?84M2tSN`?R?@;l zM(M@wK4d_34B(mD8us9G07lL!YDs3s!Jdx2&=!GSsIG8F)Y6#d?po~b6gWvT?VXjb zK2QM7aWVC_R^q;D-H0T5f@wU}nx8D#55smh%(PlAve{z`#WI#eD>1!H%uY^c;?Rt! zh~S-NI$4rjR4Uy0e9Gx)wo-^!NHZpNxv0@flSU@i<%BsCkpnvnp~q5Ua`{y6mzWc~ zRP9)cKik-}Q4>TZcM%N!M5RHAa@sGUEU042fVy+=d9;f|A-ID2V+fyY4<=ch)*8|W zLrt5U0Q7>`7H8~^yqz(vY#cB&4mhlAk4;!b&>E@`F3cCj1PYkQ%{C6+%s#QGVqFX! zi3P!pi6%04XgF3=tW6*eq#GotgYFVgc!7w4*0`--`@#=UDnbRD*VMIS2<2U(7z2Sk z8PGaxIicGXTGb6w3_A=v1XCNbuRO?r_023#TI!0c4lEgHnU_BJNq}1#SnAU|gTf8b z&JT?zq;o?*)5-rR&X9^#gp)sKV(}ciL@{X+qoBCt7$~L~rZgH~iyPGBPQZB1veqck zuO+_oWPYUSi0&j?19F#$A8>DX{aila%f34{;N768U5c1Uu2S&H~WU$5Qx zyO5671QL!l9UVX~6n2I)NfTb1H4e1)Ot_H#a72zHH>|k;1K4L^7X^Al>kDGCg<{&U zwuV(2)+xyA!ELWNR2;w#QP#}bOe_%O7>by)=acf%CJp=fKRsRN$%B~{^|IWP)taur92?=M$wSxN2F;>DrWm<4+>&iDT)P0#q0yKg64u~74mpUxgQ>ME zF?3`7ueT1-3GJ*PMpase2i&E;167BRqzD8PqE1s>a?=iwKhd4Fg!NbmRdserrYu$! zG+DTzpFoJ=oC9Z1G;L@ukn_Nz3uXlNxtFz$<;TFps5(>33GFLFTZvc5wleT%=pdIX zGy&P**s$l0uu1gM1Wuy-JQQ~$GGU=u)o?;Xn}S6QS9-eCmlI4RMMLpW66piOyy`0n znHyRLPQr={Kn7g5h6RRGD%x~h=|V1w3v>#)tS}hPI&s@K%+F%Fj^G7HX8`qLole%Q zd*K5*c{ORr_LIPR6SAdNLv4`f|JTw5y$Emwf-8_!+vFB7I|K_-r9?OU-W@`ko`Ngs z=-J3N$x1k+;4WRzqLHwuD?Egk%GS}elLwO&GlT$J?5r2=4sq7^t?{C%2?RE*t5y<= zhT5fAhgr3{yZeHx)>x~l%TC)B7!9MggD-jE=i(jjd=K9LzTd}pf7`dg=MC<^|D*W8 zdp>{TxADM3kK$+k;XlB0p7u06_?buX*Z%tV;QYkI10Q<`_kHvM zT%Qx){+GWUpV=P6hd%W&eCDy+*v^jgbz zy%OBMy(7p!@)A z3fi7%b3k*lT9;*zhQsHEeN1c-fHg9X1RM}F*8Q?2Yp~XlVb})XOT(^#t_@FaD@+GW zCam-Sn*uHl$~u&QY{KC{Uv#U%C{xnc>DcN!+muU0%tY)HJ_ce;3}L-x3B@{rTe6fT z^#HLK|H~aCCU)f_Wg;+Jz%6RoXwYp|3q>y@+r1<|M@>v3K1&=?XR~@T?Wx#JaV?3H zw!#SjyBZv1FE{O!B`ghMg0pYrSt)Rh#D>7wCl~9jV-v%!f}5DQLEx;0Ex~h;tQe}e z9XoCpieVL6&t(B_dSa{%dnjTku5edXHiJtubo5+d&Si(`f_(~N3Pu_{6|G-YYF*$# z+`!rvbg@gV-GvR3O?G&UO6jvnpdHZF;9YS8$BjC63xbJDO6Dl;@re44@ItaTD}yor z85eMPl!|c00@`Cu9K#)t&l_6nP0J8pEN$P5soIcY7brg_|6VsWG`WJ|q#SbZn9#Q1 z)EY0uZZy=|f+2=$5uA;tl>-Z-b+Lw;UY;pBoAR{+Ihb0jQ++FO*RBRP#STiiMh13WfR%`elQN082dj&BNyFkOv_*r3z*TXE!$uwW@Ja!5c27ZWqdQBBZnB+;OIpbde# z0DB<4!P;6}e_+eN?RmzQ8?*sFgV>c)l~re}27(;KCZ~{9IaO#f6tX~(lQq^=4d_5O z;qbjUyg8gpPy}*SjK+3G7Jf&Jcaht3$CLxD;jk_xD-?{KjU<-<*1{5iXsc|A9fQ2* z>}c*-+Ja@_(9%T_y)*S@3zOhA^HpucI#sX$^}c8Q(6OKQG9{CTZ=TRhGXF7QowEYS zL};PMWZ`qq8l<1l5?Bt#<(MTu<1>7Uz|Hs!QPzTGDh75;b&LjVG9itFMF+!HdvN$} zsaVCJGjP=wrrWB0!Mm(u?H%xhJ3|-C+Bv83z?0nYR9UgkVqQhm_f9Uhcg|Z_*CtYg zvRE~GGMHk$gXS?+tVtQ>I8QQSOCouyN<+^eE4su&RyF&CW1pkE8w|iubm^{4fK57z&t+K_DlZr{KM!QFc(b_9)&kkZ|W*SM%7}QT$oci2kU#F-EOBS zn-8`Ui{vcmxCa?qBG8~66cR+vyF(o~87~9cS3-%=C>e3Vt#%6;6Q@RKYbb4S#&0&l zq;&NpV2N_rv={$mmBv4Nl7Bbh$i@Su3tz&92J?x)ia8y~i9L2S<3-Xcl_13;h>H1Z zu@#oS)D|KrXo|@fu1GP47W6LMsF?93>WXDCm@_TvVBNbXkbPnO$0sx@)@{XONK`HK zjLZfTrb}mV&>jGKC!g_Le`laqEo@$FQ>!+NWU?w3qb<(s=V(kQ4F0v@9#|KJ45q#! zXm)ia#=AAbURP1p$u#4xF<(tzKbacgPNh3QDLqj<5^7EDeg zU=oCK3ougA){Y!IW;brGOlUIA6WWDa8HeT+W8MI*!F_`n4=Wx!V#=jnIIDtQQ7cw! z0BCSC>VEJ`1v8ma)y_)t@W~p6pSek#1V5;3Bz<-8nuJ-1QYK}{wCd^(?}1!foH0b45hG?Rbd zto>)!I}HZ@tYMItB{p&l@q+yu(wNlDB;#)>qqR)(JbPnpAd8s>EhA=9aDfdNNv76n zE6!)fDi_{zF=ekT+R4xFBZZ~hbCfbaSK@58tK#s7pA$?G$o zaqAWyJn`rJTW|bD{L6p-&+x#5pF$vUGXsC{p%3CqzvPSfM7-zec?Vyz1+|8Q<{rUyrxF`Txe3eZ!x^U-)zX0eA?czw>Lqf!F?#KZ0jH_t^k|cmDD(;+Nj^ zOL)QaUVuOSUEhgs{FZ+oFMswk@!Wf#0|5B3zxn-m&%57^=X}mH@!dc0H}MmH|9{87 z_heXM0ulkzT z;pNZzJbc}2Ux&|o>C5pe|K}UrZoHU>sG2T#R^ zJ8Dx0HyCh42vU17J9#PFli$nXUIPcdw?;ZTjQnDu9B7fobXwK$5)&K4f~?4>;l>9x z5!^yYgL8-i#VH#w2h;V&<@IVS59y#yG$Ww8@FHY}eQ>CnIibpAm+QPFyQBm#DuNq0 z7AUSFaaS#2;e0ZRD&{1M(psn7!xJr{7-zuTZx`#3GKOem+IsFla$K6eA(O}mDA|_= zh0K7CKsH5MNv9++@;2+J?LhwkUMVu>&JYYOQ>F$Pzb<<+z4okFU!JM^Z z7*+kO`X847w1)FcAZST^z&^;7RWzt3?^}cKF_`mxSwa$c0>iQN6EY{x=}@mQ0N658 zWzw}7hx)F9Jt;s@7@9DZs@iZ@Yq;JwIA*;oJ4Jq;=!0h;DG391hxJ}VU39t#R= zLH_=_EN~Z`a~^%_3u1k6I3OsR3H6d4taqcBK>=YCT`7zZ@q%?8VvF)slbvc!3}=l*ov}QCCkdsNpPul%NA^-miVd+ z$0X%A2E$nb(-S6+yRU8`-En&mV=!vwpa&OE8qM`Num}y`?t3xhm_7?(`{+CeKO0WD zOUz_z#G_y~iI{_OMl4Wi=)%xRdRDlmY;p(hUr_v0@-S1f?mYsuj_@6k6^cPM12fSk z1&qXGl`T1iOx5Y|bc|qHa1?W$yu69F7$i8r*XWr0EG8$@(rQ*xmBb1@hsJb34Y!sR zenYnRdDg%!QR(%`q_iIr9EOf^lJ7~wb)^WK!dx(wbD})8UYM6LAR;kzSc(yeaQE+i}q2rrRgv6GW|M-zc~u*RK<;R@9g3@3;fVvu92 zg$m($h<8jfV2N37nN4ttAjVvow3vi#ZvqP5yoLT>5j6D9dLQ3n5JLzmsEB%U_xc(rVzb=iu{mGFh;wW z!6pYb?u?bLs7rOF2jOC<5c32h4jw5i)3|37St2pynbC9+NR# z?3@Hg8J?7?=+q9xAndm|R+{{RS}LZL*|1V4%{Wb#kg_)^c26w(K$C{ z@_KL*b4HcARYiH}y#^%%sfi~1J;1F%-4{1m4I7wM9#uW$?}iW24cshEsbqy0-63gY zUbAAtjS`pXRYyRXA+;E0vudgaEIH7WsYElTAtVT;MZZ%o^pX-tQpKLWBZHd)CZz~A z&HCL3m0#Gi>S0wCpBXej6-iprs#3rUm((Wsf*~|sQfN!QQx8t?8Ki2+F_^UQlW5P; z001BWNklfuxs}Q89PcBUCsPL?nMk8CA1u$eak#s%w$2 zvN>Nos(g7P9qz1)r2-y1mNJ3C8TDTp5ZNHXw5wm}wG%!9Lyf7{&f4IZ ztg0lis+Q1&W?$#-0GgvX6UhOwafsEWm&l0qC#mERMGuqwrW(XLSiun|12Ti$r(^R) zsY~Gk5(r_HT$L9aGsRwq4W9#TCcKp~T@I!gf8P{uL=DXgQDOXjyHE0`!qJqykmIH9 z5xgXpx!DemYC6ONCdpK)C{(fl^c5Z@#)}zXR zXUL09c=HLYSAgH(DKB{mUh<+B;#xc2~cfA9TK5`rFYQd(cB?2&W$EO~82rv1PufT)v{arlcWv|8; zfAN>Xw+SDPt)4UYKl&Jc`PY9HZ+h#mz)kVz{`0?zyBFH90pN)zHvG(+-w5%6FaM)o zfoFfgYw*%negPhQ_|pJ@x4-WLc;j2&3WVc7`u4w!XWV-ap8JQM#S}9p-tY_m7!N;k z8&ALYDR|mF_uzr+#{gY`(+O|**`LF^-unSO^_PAbum1Tr;{K2S0bcW!UkX6+oRJEBxe}{wY$K6v>^4l5Q)-DJ36^g8^m|L++lF~xil*uA-!Ch9BQe6O_=otWZGT;j8t;ys_?vA^b#=)2h zwDXMQHH_p6v|XeL*=nkgWyz?s1;!v(w}9c9jv>kmW$-L&XvoP6kSQpr(SZ!50ou7G zli;&VX#L^Y!BGo48spWum_DSs=vFNh4iB3uhEqgE=o&8KzojpTIXL(;fz<-5Su4MT z!Do~_ifKkEewWlDI|`ow707g0H@X~!hEsLcM$3sd2Mjzk7cuI>X;pAA-Ni4%ex!Y_Vi_e$<0luNAwuA^+Es_0jX{Z@ zE2E2!VodvhG-7GU0Ss1Yr*e6h!3Sn0u^m3a<2tL+!;><*YJfE1B~FBlxC{>AosnbDN&0+ zo?!-RSYN+8D@J34W1l-YytZEMOcVwX&C-g;X%NiMVt=kE^nnSqEfDZrDaG)$h2Np+ zgMyYqh4?7_jB2LD=B&C9UTcQjitCKGb!F=5(~ z!Nq%|KwOFSDVApgnZ>i}p3NGDRU#>wwvtHL?JBP z5mq0;!MA8FhDu=5t^_(AxhK4ag>!O_(3Ia-u@&$NQq0NkyC!yLnhyfrJ&Ws@qKGjN z#yenNh?Lm2?IPq7ODw@e?7jo3Y?5_t(Cpau3A;$7{Agq&kM!Wt5X)9lFon$q!>sqC zmX({KA>L zTS>N(_5guEe!n#sf^(k9^Ubm}L{3Bidocy3?^x}`GfchwOo>!u3{6?<&xCpBJFp9U zZWMwl2ejnK^9&Mo|DL%aWx;ZY7)5K4T;dy1)_a38u&Z_D^P(yGx*$QWvx`^FxF$E5 z*yoN`Th)UdDT3lYvjytmSj3okJMNrEz$XPNWG89}Wa&`V15E^{GR{bF z&@j`1k?<%cj~f|=85B04l8;DeIy43l8*a*)xH%QrJ%PKmVO26KZV-s#;csYi2PdnCcIvP@ynep^ZbV4o1{F7OX;Gc^WXi(gSJew&1j^tU72Jgu@`R zp!E||X;$#_W{6^EX}#DovlxmT0JkGSP=nM{He6waY?KQecHA)XX51DG=jS5DFhi=Q zin4q2r6o}pU#*&60L=;Qrz}QrnvN@LB~vM;TqaTi(s}`d6X(GzIJBd+yP&yp5Hxoz zxkGb96JXKCVS0iVLlHz=Lvn}AdEv-OD)vZh0*s|$SH&5?HU=T)SP|3E;ZQ}lLe6ts#jGX zTwr#>Qh@J+4dUT&HS9tluLRHrfISd9S*ZLy4}R`*@;j#Bg{Nd39HO)CzN8f&u_0S8 zu}6pI!e@EOP8LRtu@qqHB#NbV>@jgOc5aJ>0-7NQgRMwxWf|^e{gmJZ!i06ucmAt? z1z^R0{XO4@FaOG~#HZi)4%Vw%;}9MLU;AhOJbvXJ@5iH=_`d(??_kFQ7sHe9c`|N3 z`B9ud{s;J)*L@9s@CSYnpLqLkQ4=r%f9M&X13+;9CqIQ>`}Mc+(7G)6yFcLK(qH>8fq9LGANn+Y^WE>jUwQqvyA}>Sf9P-h zAb#h!eiI*g|9kPwm%S42{m_ST|HBUfaNPTx=iuG%{9WAl&?ETsf8jsGZ8)C)yl3HO zf9!vS-F+9{_U`xN+7oa4^`c{18 zllLK;0%l|YI;)UY>?MtakkZdY8#?XiDOj@MmabgNh`^jCQE662VTDFRmj%CmcFPID}6#k!oZ=t`7AqxGCAm>S+Ijm)jyM;dw&Gikk(PMNssOu&U1LJZRl zZQ*5cO~F+vt`2Tc6P)bC%Wob&!^9Q?Lkv?5p`GJRS#br$8ddv^mJJzZViz{+cq#~kNmJ`AqV+?HjfJCj>1+5lIiH4}Ocdxd=QOyfOVPhI{E^Hx{ z0HSB03x^iX*vQbjOiVbuH;l3X4*|3-Xwq?oTUgT2lR`03pf3&GjBTcQhcVV6c#=HP<6Ji<3l0z$IIfn4d#+YoMMLuj-}%35kR29D z-rf>S_ne(lK`e&d$U{>AD^_$BvWRO4lc)-_Qr@S@p>YciPqiziIIH86R#u<<(#b*QWb zj9P#)yPFwSr3KX|Yn0K+B0gxYGbi?_%AeDqtC}U&6Wr=68VvisbBR%l1t>7O;AVAP z%fNNqU|<5`m^sK5G@gSwS0umRB%zWuP-NmWGnf)8E@~f%Wdc0{>H`e}3)rAoae@Vf zO3S*S_0Gg9iVdd$=}dZ`F%exc8_zIJ$+_Le2H6}-uz9l?FdNWTLu-cYK&(V{xpFYs z3Nh6bTu_-qEvvxGrV8)L6X^p94xHf=BNMss?=M(j*7=P}frVa{A68)$E-EN3I+*3A zlt;{D2;j;TC!bhAluu-$cLsMTV4j-!*J0xog{toSU^;=~ISXqB{=Om<|W-D$tvFgme0d911)12w-igU;u756Yc@{Mr!fhVJj8F9 z7)Hs;kzhenxbZjLOD&)EXAWoQyR8LzcG{Wt(wJLC(KWJCla7%bg!R7GhL0cK8G(_3 z^S)yr1N%P9@YG<%7x78n!C}PetpT02Kxjiu!jUC-z1gNC8xOyRg>_m0!?P|uTIOgg z)2u?!`QJm)amTzX$7LNf+fmTc(Ax^-ZxsphX;^_A{GBBaiM1l;9xUjLax4PD&zgHNE*kdm8rBC4&WmdV)B@HM znHv+wpm<~{ptRQKeB{9HjE56a-z#BP;MoAIWxb$wh!gG#(4x9Pxj_qBJ((h8-9bk3 z!0G(|1!|aG=}_|M65RxSCM>*$%48VjoG?);;OoDhN7cclHq=0m-g{ zXO}L3 zOxQ)^`9&NvCxO@2aqWSqO`sXDh{1Ef&9V8oR7rd~*65dt36fj&y%N<^1bWqJW39TA zwhlyxi((Xe(PPKNhT;6qxg>3CNZjfR5|c0I*pSK>X~TdE56fEYt!#|UpUn9C5rI2x z?ZJm4OcG65Z*IwSlsGqRs3k&^#^JXZObkuiE^K`xz9WPY)FGeV`8T%b^&h0 z!IC_8@&RDW<3P)D@&x%QqP*y4@tRC2EdYRze&l1oBM;z@ee1Vi+`f%R9=%38T|tfM zQJ~@R54;DT{5QXjhky6&xcmABx7?v~M?cYe_>SLwJ6`yj*WgRO_G|Ew-~SMBzQNMl zWr25f*DY*wM|KXCudi=o`i9-l&`vA|&NsMwPCWPdFUHM>KZdvb)KBAG?|v7a`Lw6u zm)`tlVBP=-{KjwoYkc&RALTP5P^o&ra$;QH;9I`&8w+c&YWm%oCji24pW zfMsboU7hgg?Z^4=cTapxeNc`vN@qbMX7W@yqyyH@*>{ z`qceg6kVV3#C=ZyPu#{!pZ!97&RzFnZ7Y8KAN~Zs@Acn-x4-30c;tP*hiAX!75E?i z#^1&Zp8b40dcKYCef@umfA$Z47>~X0J$S|oUxx4gZ~q4Vov(f!#(Ch%8Z>w(*wV2} z!i|aPQAu|+!9F)^;U$U?i1Hv8Na!M1nvu`hDGHjEG!;3Pu(VU3$C>F{QDhEa^5V|{ z8{glvxPk~P(>J9Xm*z%E-a-ywe64zotgpLTgStb4O%S9Zg2vgss!9@uIf}tn?Tgiz z(9h}Uty93%XjDBo{5#hyYce3~#z|J$3YLb1)$Y{0ZCVw7v)|3pWJ1oglC#m|51v%z~I=T4EX{Fdo48&)a zluj5RnEMVS&qSVra}4a&JVFT(QWYa6MkJ zH8e2}@WU`Cuz6W$0f-xxSjg5-;5>soL1)6;YpfC54&MM9$~#L;E@GvUeyQ*fC>)D% zNuDxTp*#|6Xqbfn8x#jrqvNK zZL1*yZ)|hy7|33Di;7q>binUQc)})eOUd~;&!r%TQ;{W7t^2a>lo08`=BwvN6U_X7 zS$p4DUDK<)?^xi$AgFDMQz8tNF=34HA3Sz2HvYr-|BS~o$_Td*TFAma5U{#ilb?|+fbEgSq z(v7QS9GKe%B%P>R5T%sPeNq=DwM3YPjEpju1XP^NeK7fuRVs=~_evR#8mfuSJ&P|v z36ZV?BUtmaFu&jU6MJ}BFr^m0qv}a8_DKaF!9ykFLBnpfx(zVIy=TLyjX59)6O5T? zQaq_vR`Yd5`b4j&B>=2?!hl0cAUk**+nf}}f-zz$c{^Z)Qo0A-Zke!U#TI@MH8t%b z=B>qNfC;7~x}NCnOTjJ!CV^!SKsaF(0J(G1IpQI^a`Cs|hmO$}VIx<}V$?XGWb||) zFHIHLr^C{qgE1C3nRqiQ<|%=5-131n%95)owwSP_t4UQk4UvI}UW>i)09`G%2o{G( zwPkwna)H4}M_XD|kW*DQ6`a${p_UgXT~V*FYA2%z#$0}x(o7oq%C;?JT%rgLM=ymt z8gLWAhglB+WrHOTfsthHEk@P~e8OzO?uActlydr+1ihHua&jSuwXpgp}2r@k&vjieqx8Rc4<}G?R zeg=x?hidWd%8N;NXN*LTHa32ip~{F`F+7_!P7;L>W!@LP))*(7B$ClhciO~L*y!!# zN3oTTElnc>!vos5$mcFN8K)w9;{;ip9H<5YR#BH*5yANoD{bM=Y-Bw_vYO|Ntycg{ z1E;nCJDn(97UU3&oNTPs#zsV=i>0aIC=v6l7Dm;Jogb1cw>cu6#b0m;FQwH=o7`Ek z7_j?56mwLAf|nhwplYzCBZ3n$0R{H1jfa$O*ozm}giJL^Ma&FvbYxPXQ(;@Q7Hca9 zd9NYlH+4~{b<7>mW|%u8KZj5%RqC`9^CozI{b_ktOR2^m|l zVJYTrvB6resIhR3jEc_ds0%4G-06TD#iNt}wDA&Do3SZfl4Ri~*R@8mMd##2q<4%A zG2!K7oJqKmQ|q`76)CP2t_(TVfxMJC9u9(O-WLzWsZ?3$PPD@ySo&PkzUr z!ScF0xO;m8tFp(@aO*8-@xNP^E3F;Gtc7A8@>v+n`7L&L4Q5)z7Kr}FW=r`mXpo0EJ)Gt+_TT% zNB`b`0i5sQd;a|Q;`aW10Ki}TzQ2U`KK4Pb`vBIq!uo=jUws*GdCQvt0Jkr{NUQ;; zVOZ{T+`GBPoB!Q^hit!l*YKM&0N^M8`=7+;KK*I@<9EFqum7sA!`px97x9|&y}I|} zv-pAU|H}wXoF^|6+aCDn=f8jtKmIu0{lWJ_=Z0_pwr|Hj_}QPsPyCnv4gT}D{TP1c zpS}a{eE0kD`k($E@cX|08}Wbs+}rVEfAdH1xBl+m!OhJzq7w^p6i5Wv?s80WhXb}= zl|wo(wux+xQ$N861uLjxrjYMP&55y`L|p@HxFK)2&GF!-& zC>NL(2YB1h=u0QlPRXUpiec}})}ccn#=@J);yQFq44>$h$Q1|?v;_8j)IP^c`(DDY zRARzfM^xNVGtr7WGLz>?6|#J!c&ob!S`vDX1+|_7=}IxN)}U+)-2lRiY&4!f=K0LF z`ikmwC^iweb-uXEiVkuQn^vT!1i#IhQ1BSgX7J&R14W=!18lR#xa`5iwuU$ckl82> zM6o^(wq9`Xyx_zraB`2+1VYI}?0q2*&*?H66WI4_v}LJ*JBQ8UTx(nd=a?KM&4#`J zYhUSdt~N|jg-)LHu8LF1^Cn9GXA|ra{CozTr7;=r_USk+#<;G|ON49g6WJIe6g6!7 zD0jTUL@~C3t{tp&a7JFO!(yThsc5ldu*U)GvI27=VpNotjyE+TG(T(331%NM%urn388`jAYGigMzWrRaSWHB~~*rfPVKiK>z?C07*na zRLINvJ&yE`2qY9C0cTqxoxdt@;bpr8&|8Na-}4mmpEC)u59j*b!Qz0$03UlXmx<44 z2n;C9S)>x~h50aO<1iglFXv$uU=i+{Ba4j}PKRe`C1H9cF@njKauhA~^;#Uwzk&?I zxjEbFGhk^nSZG7{iiFbm%xLaPN0%7IAOT?Oit|k3W~vdGPFtS2O%;1gtfnBNW#5mV+AUr*L}mMLsf#6&8QR=szObP8f4$lpqX z2Q|>%>2PgOY;(H|w3ewnuQUaghHX;hwxvPlL{7)Dt}H0g&bYoW@I7jf!n5~H<@g%N zQVR>X6nEPNVGBG0%^eDI@Ga{#ES8`eVAV9cc-`6C%6NY8o>)IQIqL-;9uVZxD-p;u zzC*EZL@$jJK@QB0RYw5tO^Q|s81_wMag2q}Ly{MNwX7V7gW}cNdXX0c*#a}^{u2n! z`+zBtQl5ae#6BxhJtunc4V#hG<_T!$eXv#gsvxl?F<}7~z}#7Cn4^FMjV7I{8Fm5A zW5Y=rdMo#s9qdS+E!C9K+oMLLGXgG`=c-CcgM08+Jn9Yu3NAbckbk z4HmL7IWbuh6o}#{I@g#8EW*zMi)pzxZDL5FbK7&^s&$0$ev4#_d+JKGz$Ak(8w+ZC z8I05#qJhGD#h#DGWGj4-Ly@gP+QOk-u?aH`Fk&B&j*JQA0VyF`&73M1CeUGh#dd=u zQ!A=aBV1oZA}gV5y^wkB2C#gUYk z;!sJ2V>)=b>}rHiGS!9A*>D3}kVm;la6CEZBu`L)Ehh#5Pqv8~SS`DIuwilvu55)$ zR(u&47HkEp_CJ1LD%u)V9|=Xv1`|U%7g+IzzAunLVX#HuB!Zp}nLCh!F;w5sgw3Ig zbWRXMAbUbaO;{B;gRFq4oc<_wz^xB##dB~7q9VsoE4GBg9IyzqbhIqQxh=&r;)Fvw zE#icFc-4dRJrMBXk7`tPX{={IqR*jlO@tX-7>mZz%h|w5-r*48q=P(11TPv(H2%yf zKno-WopoBU^pR+jZCW0R-2~nQ+8F^)A*&IoxXOk{(x4#Y>y!&l0h|(OPQmunwc^wY zoeJIA2HDVX8sxZG@ooa-1T<1Zpf!T%qBz-tHHBp>A}|52jBS418(DKzdLqiU*wzf* z=(aj7SG2^Zz&ayGRu*9dBbk|o8HVY=1e?(IO4PUpq%q>0m_Qo{9T?)6#wl2@iSUda zjsb&HcoEdZ!k}U}X~U^03{Iy@F!m=RwE*(-A?a8=&>dJbD{REb=fTPe;lUvyC?sj) zCRffFl}2|#wLDrieYrB$oEDJIp9`31L5RMkRu0z4G1ov~Ldw@CwA(3ddA)r`($3K{bfujsA8 zf({644OwlAS?$w3DH0qUqlqMU)aYzM(ggx-oHhsGYlF1~nnsRX(&^|eaoYrGwBfhp zjH>O71c&kG=>lM%z=-0F(WPsVFrVnoM&ve=oXVtcL`u9jrKlGu5m<|d7Hl8X*2)VD zj7f)NniQ{v>#7e%sIuDCO;>`Ni`8h+FlSA+3$T3v^8sL4SA66nzXbsJ;*-y?d}%eD zx?-uRd%yG5cx5_1^z2=H___P|=uMQuni_hZk|MX7-06z1{PvYg5UZg0uEO_p@=kT-t*Z%ca>{{Vjb zz_B#b=`0L1`!Pd07CIDM-N?{w5&pBQ6cD5FH$ zSeVsXV`Dt{43A(ey+>IU$-scAP;{*119l=<4$Ot?L`cFG@=e9KKf?!`dLwwYn-u@Z zi7tj&CX1lXgBSBS&K{tcXbQnZI=R3p)&7@*2%N!!kq}^r5>;Y68;7vT(p1reLY#=A z_g)Sip2Ik-D=%;=6oja2u=UgGEHqeZOx`gBs*af(qrt|37+vl>uSw8vpLO9qEgcQX zJxc0~(74ucXh)x6YXYBveH&;&F*TBVWM3D+*e0)4j5X$t85`_qf97HAfyk9a@oYYk zIdC#VuLj&@S!(E;NZ*-Im}R}=X#rb$we@zufm5)|YuAJ?bVW7?T1&X!0@%u(-vKp< zD{Lxyt`Kc3aub6E_h*j@821Tl3osLsf<7i}RxyB-7~6m*JbRJbCKvvpE(?b9A|KHa zXdE~V#{I_J>$1kO49N-A4VoLv59)Pu4-N{8mp5Z)%1ElTXHLMK8J1$m&fGA3;OtBV zZSWF-0t1d#=i0UVb5If^l9^a)9}tN$ zU?f5V-C8+r0_waUMREQ#lCnfHO`%y1S7rMttX3wOFij+O*h;6~Nd=1-WarM=OKsSnUOEnNnGwk7TkO4h}g>K;i(+O({w*hDsaRAtiNP_`T zI2NNj6pn6%nL5~#gKeVoyg{Ak@D+wD6&9Y%4L*06@En{wf4vx4)}G{j#=c{QL-p7b z4(FQFg%y6mD?y2Pl8QI7myjY|!eH4cgjUg0YGTBM^@eGVP>1@YfTc{~AST4=fJN~0 z0L8`B5}B72i%Bs~8_1xwRxQtErYN?k9WF{E{z5_A6(TVAsMtSIR-O)5vY7`LK@O|I zHq=O<*YID1h@=+4sV}v!8|EyhcvJM&S=I+YCFlfRxF*`7(38Q|hFlEyePEZw5XF5T zILE;4Wcp2OShbz5da=+7Z?;QgO&}UO?Jxf%Xqy*i1t0ER*k&^)00x-Y} zyF|yk7w*e=-%mE{a>!q9^~U(R8rNL4d~k1@4hhFn+&F2S%*V1~XYhShuk*Jwv@~ER zCtgx$&?p}9k!FE*h;ulub?32$im%J1br?eIh@=6cbXI!8;=yoSz!qf#`Px2brC=QA zImy|U8omkB2ehy??3oxU2xI26X&IX8<0(j@%OGXWpc*A%z|KyDR_+~@gEP(v+DylJ zII`|W)A$Uc-1-PcuIJp5Qe7G%XiAO1(3k?01r0_O!R2fj1KhxmhR#6_7IxWg?8J!*V1fFXBgnHLE=` ztX}x4=>`%p9YPxXrCkZe3+2%$%^#qky5%@Qa>jo{`A zlsb}rQ?H6{Cm{a-YxCuai_jUMsthY(0KlAC3NzmjE1S0fxLU~a*^wA!iT7~ywp;`Q zK+&X^TAtOmMo4prA(p)kt7QXDg|vodcW@r_0Y4(i(%XHIUj+hLB?B$0{ZoScvrI~% z8Cc6woyC_~`vRZBL$e4O3|Ui4YkZ(Hks7e0RSkv_PNhEqalSUEeuZ?lRkdIx0WZ{y zrkE-ABnJy+1vgbX0W&c&(K-d6@M@&mce-Y(`Pe#{2R;cZC)S3gHjW*(7$OpyRtuM7 zb-hH5XYOcPu+C(Bm~^`O`Hq(AX)GQY&KQ4X@H>nV*0L*$C1y@E)#6z)?&medGbCIW z3f@g1LcFt0psUoxP8cEdpl}rdiGglL+q`8J#8B{=F<{ooxl=yFCTtg-!B|8_wFE2S zy|;4!-EcA>Vv^GXg_pqM?pPa1$kTV6+DeDw;B?IDvoULmv$;UBVO7S7c5rhX7@Vc{ z_8@}5Zf64i^AJ@C$wlLPE7>rWjtJB=n(cbQDM}U`U4W$-qCSjS2UXLGR|JrLp zIG_Mi5g1qsv*1Yw4XR1n|@OsUIwCE;T0JRz$VYpW`G-=5_E?% zhLEixAav|P3gMsxYa3mD9&8hCnQTDa8NUn}Xlnl@_VmvE<@@GHOktN49C@!#Ti9{&{H{HNcHZ+q@V z*m4K=U%LhX{PFMjPW<2B@tv39p1<+}-ul+RhG(CA0_W#nhUAL3{q?_rZ}~%i7>~a9 z{dn8;z@CAxdczy>xBt%H#eep>FW?7%go;n?N5FZuYC4X_=a!&9<54;b*`shE$zTMypUwIDy%RhNL{>*p(1^kN-{RRNwhkxuR@WVg$6EypM`APiT z|N4*d!gDX-tQ4HT_xrvd0DS$w`OSFzi%;X>zy8!8c@uu~J@3U2eBTe^2mb00U;g>c7e0$$ z{%5~{SFZ2k@BR3XPrS)l4BZ^ zqMQo6Eo>7EhYnt}hZNH;h0YK6OH>qHFqLH;J_!g9aomvw(`xDu#j1@CFjLqd(>W zXBJf3=n7L+4s?QD^&$=8JFZSEL=syVWF*$EkfF%zRNeQ)X=${m#{xBAJn6cyB>Ex*Se6wcft%Y~bi1P1 z7>;N>OO2gtRI^6pNCMLp9*k&dlCf-($YLO)&bmIlE(?O*7P6QVh(YJNDRB-W<-iPz z7b=R84c<7gaM{T;6|i+#fWEMBLXrhky;`QjfY+3JN7IUi)}VEU!)L-nuo=sg_GB5t zvIth^S$(gvJgK&KIM7cgq6X^q*!Np>UCBR17qwkRXVDa&tMO-Id`8FJfjMzDm~N@&8{337y`%$L>&SiZES3s2I@BC2`;cUuuAw1YgE>EoYcmWBMo4QYYa$4( z3Me&rY>ehsE=9oK+svR!_X-OJ?NVgm7HHNnw_7}N>STC>5kZSi;md>rORKw2%qrPn zYw_F%FVn)$;^Kl+F7SD zylBMMF)Xoz@GsN4o)T<;Ip`vMRFENjozuAx1}XYbE?oHrK97v`_$$ zPSFdop()Edj)~(;o>f#EFa|UNP!>y?*8Rkp#z-}!bu#A1fPs!nmXs6&Ujj4eKF;Jh zKF)h3&-@6zP(-O%F-mYi0_(bxr|CSWLIWWJyBHiAkc~~{i4p}l__8Xn@WSC}qbS_X zATwAvg8^$?AI82zTLVvT2@Q&pF`Un|2|0n`)u7xt$Onr$BZ*q^$>w5l<4|9dgM1-( zEsXDlB~x5miCSx6vX+&lms2@>laXjm;n`5zA0l|?)2P9I^%-;%Z2NY(Z)Pgjb0go> ztGLzU45%P#Zyv>tgwWaU!CxoMh@@~13Yv7R%ffP=8e*5c%sYegeX!2KdI&}H2sRv~zUvr4?v2=#g?l?=?WfWRXbt#EJ#$LKomUM#Y+mr?7m$ zMjgk#V1``}bQsGZLr}5Vfh_g!NF2X8X()C2M(@~VkW+6uWv#=&n zz&|)^*MvO(eV^z@TG#W^!Lippvl)lY5rDnzZ~dn~u0=7C0&*kB%M#FuWq0mid-YXZ z-@gwRHr^Q6z9fyzH?8<0;B^TyKxl=R$-{00qb8P#CqMTEeCDYyV?c3+6j-xUkTW(1 zsT!f06`5+b0LJ2pQ$;bdTEn8+?hYF5>n9pVg@RW0c>p}8=+Ze5sI)aR7%LuZWMPt$k~&MTPR}!R*@j6U`SL$c4u=@ z9ke0>_ioO3`lWk#{{D_v&u82}54?K+jC(it@zSfW;+5@;*CO!3`HUCG!2NyV?)et4 zp3ivgcH-WixEYS?ZQ}lU!0N|yMXjZ^+z7uPAv{nOeh3*td&K9pK*~653fTx#mjvT zI?$4?U6H`rjRg-?Rs-e5R=Jv1lPl2lM2NC+VyG2`S)>sH-W!(FTD+93atI@era}XR z<_eb9u(rnLJ7qI*W-vlaiIc@C!e|RX%lRyho@t=fp}J|gXF53(`jDIX;2~Pe`gME; znl|)m-80FGRr9q#p%GfO%xM9-*~(_T1lDuL*4zdZpcqn(zFH0sIK?Sd=-?rz8#!L8 z}qI{wPDbWLzi(}TtO(1@DYEj;TPMYmG74|x*U(lVbg=lR08#! zjLjE+#iU`aVyRXOcLt;Xvj#cM4&E$3!)A6l^tsQP@D<}EgTs~N^q-((x+<8U7o4Z_ zz+4S;NUpKx$+qk+ik^Hn*c3g=eVPvr=|af(%%G?nwFjxe%cj3a@=ymlks(r-8*a)? zYJ%w;WVw?=6HyNQiXLZi#X=N0dBD+Q^-tjD<{BS(|F7f8FFt|m>-+fZ=Rb?*Uw8o@ z|M(~H#23DR&piG(o_ppQJoEUcaQo$_@r954CZ7DrNAbi*KZ=h$_7Obs#V7IM-}+5_ z>8YpimV1|R#x$8mkTV|ZXwU>r?+0MrESe8yuR{19$lyAM^x-B(_P-Q42YFFlP9 zy#E7u<>@cs?o(gFXFvLz_{~Qj#jn5TQT)O?e+knai*_vAEuQ-+O-zzww@5#eC^yy!6E{;=_;r3LgEncjF_U`fWV_ z!t?m8_q`7C72CYpAH z@hqf$A^%6p!6s~%uay9;@vI0{xX^tliXJA&*l+^`SsxkUJC$5p`Ydsgm zLxwg+x#U4Qhi%d2qbOLsOSSK+URcQoz4{pRBn+wx#OVT2RWt~?kQYVAQ()1B?n^Mb zWzw+=eTOEzEW;l(64P~5pA92hRU|n83PH1k`$iyr7*k})*q{`P4xupZWMqkA>Af6@ zeEnNrS(H^`se=1PfTdBMH2`jmm*x?bugH~ye9c+BTOv3VUhSW)V#L8p9%KYsTM;wh zT0_~oD2voN9_7rf;e2LsoQ3Sf3!X%v%5gad(D#+qW~snV6F#SoWE zl8~u}Y#hk*bH@FxH$h9QGceCz>bwV!oj59MEEBRh0I3+PRjn;3q-VLztXzVvc&xet9QC>%X<|;W6Jt()A?(2cKu;#y0`=Z^#fVxDAxw@s_aqJvi*H&sQm;LIQKs@T z61oOFCIqdpXkKWsgnFU}6N0MTTkVo&WePSkAPe1`B|2KV8=~jvqXB@lkwM;+N*zXX4s`%Bb3xkQG!2Nr7@dy9lAHbbA zzLEEFp&LV!rADYWZ>T|TzxdH?aa)&CTDFh4$5D)=R|{Ty>S;Xp+zS|%c;s}47s%wL zMrT0HXc?DD_%Fx-WEp~0J6*9HUcJFD{nKB-FaE}3xH|;*LAdM8VgT3zsp$-yY=N~c zFiYsw2`-MMUDX>ksfHF$U|Cm0#TO`g0Xb{xU#*z~UK~Dy&xyt8;xQ=PDYS^uoigX7 z5)QU*&f>(0GA5#`@SSl(HVHc%jJL66ssRCv;G_qK6F@1sF2?Tx#q`jiXzEpyEeOm> zK97`WV!}Uv1}FA=P|O?W9j)8tfP1tWC;V_As*;azEFa2gNUN4U_oOvCSQ2AqEY>I? zIGe$Px#UHRi(FHx>Ls0+7)uN?9|#yIepnq&=f0yaCq{WB*$h^P$iww?wE68$Yq_Z4 zj;?SKJazX4y!D5E2!HXvA3pif|>8P7h=b_$)3*L46a+iyD9tb#S6}4(BrgxO0yB zOtI?S#~`F!732B_!*^`M$)GD9BzcJnRIN`suc+A#hlva29?BVUD3?&>iv5Nk;hCalK=o907*naRJv60;C#E^mQ$Ez zG1?Yn4z$jgUDR5zv;}k9(TuN?R?{+y$;1n(A&tT?pH1MZH?9%Freg)CIoYH>FT5)RG7fQuF8CB>UO3l4o-7(P{ z%Z2t}xq>b%w{bUe5`9BV+V2BL0g9oSA?AR#Mu$m>H&WAEH@gglj&++Q09Na>6kivR z;Z@e)a3^;+MELw>GFrMcjIlFfAN11Z?p%K=n#?fAk>!>Fqs#!{`x(8lyy@&w4(xI`gM*m^=YVo0_qDSSChE1;#@I=eTV+`>_5n>t z>^s5*x;A1+>UER}48N&8W5ONi{feKR9B645u}4a1J1r~jjT>MBD+K#?i&RHzoohxa zWbK$c;ndhCW;oWRL5zEWm2)?IKzxun35E29dre(_tcD{HmM5U_1DS$V44(7C`&&;P zkc1CzeFGDV=;ctEbLBo~xefVw4b@`hIczn= z+!>XIQMf2K+UXEYjjlIsyab@JF?eYWIk|p{Nb!`42^$kuI2jSGXlT$emsRlOfo>cW z@&aEm8RNR*9&Ap9aiBO@-2OoMz{3Of#;P2z;T#i9DpC~!!uF&K&>f%5v9L74QI-3qwyC|#-B`D!6Cx3(51MYWbIRit`wYU~wtN7WO zSF*+GjK!hW+)GU59F8LB!FDc2rjJA#3tl+iW{Qac96^I(jJ=E$wVoX>uO3Bb$JsE8 zZOo$0=>ulVMS_Wt`?jp4NM%I7w?>>PDmW3 zB^2dS7)fu%{SU~6pP!y(DxxVNswU;&`>{-3s-!T={VxayPG(#$FC4$9_%J^=;pA*b zI3TUkOoqd@viW4vESW4peLrZtqvWjrEmFmg2|ZC?Narv^!jMLMNEXLX_2{)&$nwp} zGf21MKoV)UHbeMeq&`{7aXSYi@nd4OjeL`X)f=MZ8@tsvL z(9m2OEE|B0dG9K45O5PBupKN?Fh(Y+fODehG2l%RIWNZGp(-0czX=?Zi?Cqu8S}kgef$AjG~IT|Q|nz8G^}nsgSajajvNm8gKS zwYHTIXNYpLX%qP1CgpIfp-^p{Vpo(^0C?A`6f#5zT328UWC=z9Z9tO0jQ4g-8C1-V z#@=d!fdn_?;_)1e7{1gz@No#iCa6~Dlc~;4I}=vG+W`elI^|kwv{@hgu)VG_KWk8C>-Z!IKZ~bIqHH<0lK9Y#GM;y zOT|{Nt>pq~4JW$-RIu;2wAXWi#Otbu*3co+G2P+0^I`=$rva8%*xIYzF|qFhuZ>Z{ z!UU2&$S#bEIXdQfLVN>s=jX1XFZ&+Qym0qXI61MJwtEE|OCAdQUH(ofhv;$gZ0M4Ttr;iOb2`SH=vODkZff1IzA%oU zEGCkrV`(SGuLj-I!*8ms6%bw7EZ*wEQUi%O1JsanN7RoXNm*dj2` z6Mb2+tP7n(b7G8yT0=L*<{Np*XynyE$fs;9(Q3;|!6^cw_1_x>{Jtt?0DAzBJhGzM z!1euG%;wM(ER93KnLPWc084N1^FZr|EzS zI8SpeS*+Ho{j;@>{k)@VLb?JNYzNGpKa&=FwYF3`^ca;g1;lzm(+y)f_8hQCobD)e z4k!d86)AMqybc{(8*JyzK&TPLP-kg1sS-lEUua7c%--SC(VNxuffHHLK({LjU!7~! z>FN$J_OcHMhpY*l+DehLcMKt$>0}+d?^y4g5Zi{+a^fX1+Qq3ck|l3agA=+MSM0*U z-c4+1p+vA&t zTUz0IKm))S6w&HP6q*l?BAFZnTnasS#yp}=Efj76(}nH9=oitYwT|>zMJ8Hj6AFwY zlJT%Spzv%~?TwDIDA6+w4-hxju+2e-w*_J!#nVHzv*x9Q$LC}$yN3GdRR{;emK4P^ z0!=%_2TSrcnjLx&#J_e!yXq^}N)4~^X-v@_j z>xlz0HRPSfvxEm0>pb%&Tekb!F*mlDPHfN)q))sd4Y^O8uC6cv+`qZuz^kv&EK7(| zus(#kQz3}RCQa9H(E0!w%;St$z&WSX^z3rBT z9CL7=?Ukld@>z4TiQ6-Zcg^#T)%tq4sUw11U&qBc=bjkCd#rL&h*o>PPBxWrSjW3T znjn2*nS4g3QryOzXxY)*iADo2bQc73Zgf``hpnc%955CyTo)iGpEt7B1Y!-t4L&S7)xK4867@uFPZ@;S8xFAnX* zl8$5mG59|0U5dLp>8uW-n2=GTk3gO0`ms-n<~7W({s+jx+N^;m~XS>oh}+w13BqHMk+LbK&w0IL^mm1 z2Zdl2<`Arx;X)j@li-2fgYDQpOO&U`=)vM1cdvp}wv%t^ETzmHD++HH3AM>#qz1H- zuKU=~`U;3(T^IP=(fS>x(D*{bN1@D&#Y9pZ*>iB{?os!_ia^tq-izDJJvfdbu_%Ym zIgwM*7e!;GFh4RWQOvEHydD3U!P@EFnfrDMCIo_3tD`Alz)>PZ`q8)y#3W??u#aoP zgPam<6E=aUs_LnZJPJna5eNihA6Twvx0M8zs5c4?QyAMzcbKz{RfR0O!MSs?}?%A_?qunM|<@Jb#RhmQ^^sN-xH~GY-d(F4Pz& z_Km8qR5Q#h4g{CkM22CCL(=G~ia=i)0*1LeRq@sU6U40FUmrrTUals?xmXir@x>sqo?++UqOBsp99Vltgz%CBAcStIQ4wObh91rb#|I&s3_@~+D#o6JoB^vk zZR)P%?Md<{=w=juB;ngY?;ZQ3m=FcJ&ES-10~dYF!2?NKSogjs+Xy;y}o*vgh<-eDW{dz?gVQU3Gv%jAUOVp6=bRw7=h z!8HZFe4pjeMa3)7PseUj0^sDYxrEU0(BA{H-l-Ne)Uib$I&Sf6*uQiH%ZJ3shlR`I zpZW1Z94$Ka=RGWN=0o4l{9WHyJ`i0W%%XAlL-}=Q{k;~cn3w;_H}m1&b6Azuhx(SK z{_YQb567Q>{IgpCrw8x*gAmU{-{&RRcl0>d*RI+;w1>Xu-|N5pp+8gqKVGZfi@)M` zeedym^t1e{zD_*!djJ3Zn*3M%jQP-K#p^wYhd!&n``6&1Uw8bT0I<}5ug_X+2Mib3 z2cJtR!T;e$${Hup$H$&|Ha^#L0?P{QXa36^Yy%Uf^Wh+L96+=7fKzoufy!l+DA!ub z1uGFEXkru`7Vd*U4Vr=?nvaPtioF0OGiQlam%1qDli<2U z&M{aRCUe%%!Yca7sAf#3bK+QoqxgL(*tU)Fz?^jGoF^yW3Zx&GH)14WryDAnaiw^W zY*^1^YT;;l_Tjb0v(0_%12G+YOx#%>0UCKtV;^YNIIvT>#A;ewScVaFpvz0q!8zKVR+ySx6M4gv*VoVMpcn-Gw&W*0ZJn>?+?;Bl4KJeAQ{|`{WNk9b-C9NGxg?b7HScUN{Gz{kR0B0{g(WEEJ!bq2fzJ2@ zcDrHoZGHc@2uL?_LK}1Z?*lzA&?G4yoqf1M9X4TfP-UbZB zEmA_(y*SFSin0f+8?MJhG%MGgVMIcsF@ha}wh(<_A;3Oh+Srn8baw6n^rZolOlQkL zBpvYyg_HyTxEDk@oHBxu<<9dWw86&)?TQ_R)G-!SU5{I6H;gK9Qq>11in^e+#$rNd zcmRo6u1QA9S5c;Vj7~`&tr{Q!ck;Zgge9bq+2xK!i-(+nu*Qp;JFbiktr7vpM6cof zQe{3_ZS!ke;Ye(VT2|bUvoNU z4&G|B5$a!puqiPpBL|He!gIc5M{_~O;SL9xea7cx47z~eEbIP#b@o+ijf0W z+}@c3izxQ#xYIj}I{bl4GK--Vawe82Y(yqD$x7!5q;A&(n3G-@6t2ll4C}IDf{eE5)DW5z zhoDJ8IXcjyFb#txa1&A{k8&}&L!5~?>^tt*LRNSr(i>*ueme`jB#qH`crmMu(aKSd zL(W#>5?OVfbVqt%h@dGQk25FwO5+Q44MP_?j&(XL4W@LRPB7u2Ne8-@!`92W24R{c z(~;Qu+HDl`wE@0QJhGlJ$Hcw`b^(^IkZ#z)=YE0)rf>%Cqe}UXGLCVS0*chFqdrRw z<@OF#mk2z`aGyTd2H#sH|0Y?No`o%FO#2D>kq*XhRU7*hs?|IbI9IECG~?HahK@Lb zjWv)-EUiJrFCy72-2_`TQ>y^mhO4FHc5ZMTKz2YHnsG?6O2_blswL3|0M>A7D|XCcHwsdy>kxCo_Uz+| z-(XNRm}Dh1IdI?rkMIXGMK8R8ik5+l>s@a&qBNmSVD~DbxcZ4NE3L))nO}?kyIr;s+I^*TE@yLAymVx>%L>S6#7_7fg{e z9FaocXa+`jO@)E*$td#C%qLM?Ge$#0>Cng^#59qZDiAENoFG?~_HEYzTkC)_$um?j zv;-QQPA2rCo6#yR9yrjR0=B{^Xq7zxq&X)WH6dIu%Zi@mpnRm=K@(vOc{A+gY_k^V znw%1pOU*%kkro$38bSFxlC4waOn~p`eZkoiqXRALaaCR_G*IFxC_Gy^$tjz;oDN`aXzc`dI@pG=*hG@ASI%lCa@u*P&`r`|Sj8}^NJ2W$ zgpFX<5;z&~+Fe|K`Z4HhPtcWGt~rwx<52Xa_&@c0iCQ%w(-t1{3~8Me>B_Jshiyvy zM#VO)lfRk4;ulowkElFEXX12<)7Af%wRelvZOg8+TJL>~IoI0zoVvKGT#kKgQV}i_ z5)z07juPW=DG6gD0WngPASF^>kbsw9BzOSvf_Om$B!oo71H$m&H+Uc-;0Pfh8wJ~u zDiClkvV-ipr0l9Xm%aB|bB=!Dq4oK%b+#)c2iog7D6}H({=B)FOH7y?rj;Jr|wrnJ9{9pF_PR z{>3xl?-GCKTfaBn5^)32`yP%Ju-!dZ(S?)@$2wozpiJW ze}0Gi?78rsZw(dtI;bAvAo>1uoC)J%GR=OreWzzeJ$pau*=v4&JwN}fz5n0ddLQv@ zX!86$zMhu>=>GB7?a34QI)VKK)#=giMIQb4^O*y_f!4mBeinK5a|k#NxAE*X#hAvoS07GKr7*)7?Wa| zNdX-NjtIC3+yX;47;}XXOpHq83M}QoBa11TsIv#T=(hFIPHyi~hU`NnxrH~LwKBbQ zH5yrBi?oBrn#Fdudv6YdCk2;X2gWeO z$uyFulhb8v?Hog4wy{X=T#Zg>5vT+7<)LFisFuM05v@cW<0v{>%~3N9e5&*^OL2|HVlphB<+f{U#U*Btt0S^ZzBcj?Sj!WuoH1-Q37Et!Qqip@O1$oD_yu&@q?Dj>ifNMod6sWV{YY zj85z*-DFkG6h3M@W< z=2Uplg)NhVRlQn<+X>jdc4QJ6!IUS@aC6((aP4fG9z6`PIdJZdDq?}QZSr1k=NzNM zJp_$}%?WjdJW?A88vAe9Im3>Ugn)@hOT)e1GwoBCmLYH~jA<;l?j@f^G6O3qQd&}2 zj|gCr*ST#In#6@bh?tY1sPx9AQG<{qUdc8luBr=AR}v2rpi^8?WPz4pRUu$dqv>j` z$L^ZwGi9rA+FccbPTO4k`7WCh3yNyW6o~P%qRG z&3r;n!pK!H-6&v)VhURq%?ab&dcwDQGDlT4_{QH_Bok$c)2nN^rCkD?d>qNhfEkNG zPzq0~q@$8?B4oES5!h)Cm~m1`NG-Wk8bEf7k%sni!3}GKAf?FYQ7+0JCs2A5NxNqm zuEsrN7n1-&n5bEM;yG<95jaOO*iCR6c`%hM1=)(g@5hK13kPC31-1&L+J(_%!3DT! zQlVOWYT}`Slkux*CK9EEBiXDhBG?>If@vDy&FLioY{d)KlU8q0!^3&i+A`qUj+agt=%-RZ`MeT%EZHi)<5v>||&226#^LWp2gmtCl$R=3M_qmK!%ExH%U zK>!jqHXPvVc{m@DHV`tP!UxF^whpr`hcDCz0xp8`JdS-k$)pT*bzxBnHN`uf*ca-%%p zjd_PCa?!T!o^GdX;4%`XycTRED(uNsiGu6{aqu;88qLY2%H_^tv}WNtaPawaonxh2 zh!K~&hvJfo^k&j4%Po(IRL;?4GQTX3nr+gA7<)pntY9+@jT{ z*>-&%-yq#is9g-?J<@IVr(DA!Eoe?69-2E-#n=FJg9q3cR!NwzTzuKlA3U3~Y;drm zgQ9ARVtnFVy!gU<7+?4TgWC(biKkJj>JUe$pel&F>UE&%3GlZJG_&Jb^sL% zb8c8`wT5iaAmU)4krVB-Em2gR-CV}6A*0wTh=FKK1&VASq>zUi7ea%LUL+N>qyfT) zHwj^+ulX+sVT)OV#{~m{cA6JoXH?z_CN2@&l$#a|Hl&k*beYQxB3u9c7AhLSphA(U z42;)k+bphwr2r`uhP0=TyjKOH-p+EyFCblvAdK3J@bJk9_y!p}@X1dA+m8ITuRtCj zA(3U;GgwocdXY3)kA>-R$15%O$^Ao}rtS9DNORB>Qz&-CK{ zx)D8S==MzD1-6&GUY`F< zI-kCdJ{O7E;Qq{t{p|Hzul1P-TrEh-c=lQPlZzJZVwbnYP-(oycW@4i0`tYkMO1tH zzxy@WcQC}y@9<@BdfmIfb@np;F6J}#wrg9Sy>a(X*B_o;)4#>h{rq!m;p=Yyn0P8E zj5n_U0Dt%o{-gM_|J6@p|I{b2pMi*irsJhdoXJS;i~SA{&X{&7_m`2ucF*EdRk{od zPFTHwha5AZ(=m8o+}RGd!t#PUoxExt6)dtWS1j1z9yP9$oC%IjWlRBF$joNDt>DOj z8XM+K6k_DK@oc~Wxm%!m9;iibWaZOZmv!DEpHc%DO3^1AW(paM{(AN!;BxJNCV;zr z!#cc+Di({kWMEe|*q#Z--x|81Fq9v3X;h+&Q21@|H1V)bKp20p<{HqcDoHA z%mdox1y_}u*+9UtBCx4p*oGC0B9IiIJV>JrA&y&4wE(L=Vu^jQ%jBvo)RXejP5@#Z)&)hIH9u~%Owrfs(~ zz(byZDw(61H)r~UQ3Mmfiq#$gePR<9#Rh@GqTrm;<0v}cL=2DZd>>*gaY{D7OY)I? zG?r*IpWYYa?qeu19uXKD#e$=GgE*L+LNP_>8c5rkSs08^8k15cjJ#(BOoF0wD6o+i zoCP2k?v#zo#tKM;M_)}Fxt+nCt*9o}_0wi)6$q2L)F z&Co|9TQsHl@zn`MI<@EnC^9ea$RbziL4eZT=DqHW!TpVO+jm7lmY^{4`Zy>qnn5aX z#tDUBlYtlL#C5G zDvF_9+6n>22@}OE#R;-V;b)f$Dvms1!!U%;d`6d9Y`4#eh{9})4xo^v({t4csevSIGWoi z+&4uWM2R^$h{%E$8{ww}Op1L1rOoQ@(ljk(upRieMVps+$l<tawHh?x&H#p@vf!dD^A)GW4oC4rJ6fQ*LgwxSAL?UVf(2bl$8Txe*xOla3m1BU8I6wD})u~L%E z8KpuiWo&^Iy5-yn>!q3=-Gn(1#+I~{f;XGZ#M<&baGs8BGpO$HC}cSjf#~<$L~-`M z|H!~@1K9Y0QnQ=;Go_hdDiGHeGSO@(yR{F7EH)pz!)$aZ2_JG+ZP6}rrmClyt7~OP z8NxUfnqz}{V!``*GqxdRkge6`E6=*Yk*k2M$*YeZ5O}-$9X1rBBh09Qz1Z|srm)kI z#c7Z<=VJ%ml&8@Ct0)XGTC+MzJ|NIk%(34#v^2W#+S9Hz=LwmPBegqJ-6Ka&^W+Y& zj(Oo?dpu1w`JEZnIh==g?G~?+0qD3i8?q>_cv=^K45O2E^db4GyqCerhl*TfwWwxq zyux?mlkfc)KKr}=DDdJPz;<5TcZK)={C|RPfBo0+g+KnU1E=7_zxXq#_kR%|yn4iY zKl(4?{u5us`OAM1Z@%&8u*)~`>ijNz{)hi0Fh7M4|LT7WJp3x|8x8zmJ}=7Mfhx@E0gGjL}1K2s3p!@G(0)6R$9TM zn#YZOcR|4RhCoJUy%c$3gM01(pexey}= zoSv|K!$`pjVj#9Lf#{a3xS~lE+{h(r0a7;VHkr`v4kC%K$*1vMKlT&&-0%F|jL3cC zFF`)~c}RSjf_bCl)hLQ)^k%p>`qdj0G?*P8Yy=nW^sPfSMY{9~X+0u{jyx#@ffb2; z+mOw$ybV)|nv+)cmEH||!sk4VKAc9Pv;*ec+3VeERq%HVx`xatS`& zh*3Ov*NxlHdxKHKc2~2?kgrV)FtV*C1h(&3oi-5GRU^7huDaX-?P|^}Obo`mHabqo zIo&C|ck-dmM5$ua`xYgEg@YUGQgUPl6A{P3NLdLTZ(8)0WERp`#35G<9Ni>c+y^C$ zB5MEs*bJ4AI3i&}fl+0_Mzs;F2c*G>T$f>T05L$PnG801W;Sz%(P71Cp(FWo=Yq*b zp6O8N*zkJXW8tJzb zN+mi9eqFuX43lNAnDzn!2TI6b(gMV(J6_IE?L%1!P%oNal}|JDN*`}F%hmkJQ*AtlsEUbi@TKVhNMt9bPSjc7S6!o z;;_c@DvZy68DzEgQ;cTdV3hy{V~t8Ctcu(ia5O#)JO(*|a|njrBbUQ_1`z|O zS=h=jm27DYLCJvUV&t&7SzEWf`f=d#)kilc=P&)oe+Hj=^*;7DA3>GzaU>mT8S91x zKpHT}nqoVuLuIrnf}dS=)K8@|U}Z3{aPSg;_PdR&&e7g;LJr}d`V4;izw%Q64%~z6 zZ%f7D0UeV?1CcPHgYq#8A&E@~rYMGUop@Nihid^gq9eY+b3!3ddGw-v$D%x{BghJD z!YJY6dTb8e)u2g~g-wGe@f3Rr;r(WC@X#}a9Nk%pObUH4f!b^?^}_P#wp%uHuUbv| zNQBWXrQU{y=#n`&V}zR6bYh(+#gS&$gYeIA%dz3eQ$GZ z?o(@*GqB`DV2p4}puB~SF@OMe@mpa~BAC)@Q~8!g1~(LAOlUe(7=e^>RM6#iC9zC5 z@^1aacE8bxvJ69k^U-m)k$=3B=XFK%dN-OCayd%d39G%1hj2EVpa^WrmR+{B(cn`_ zp>P<&6Zt>`k|y^xM{^+eY4B7mafBAcrG+iV@2jy`ho5+{8^*LQ4y3cs#s-v=1I#8Y zWU&dzE4vI6cnONhH1H4~fy)hBOrv|JHz1e<{uZm188 ziPIfg#xr&-gvD)$8%T@|$Yaqxrv^9P1J{{o4(@AD)>d-e6s~cMRCf$`C1e;5IA#qD z@Mm!C!`M!Nod*C8q@haTKk2$wm2U5DvqExy$m?n`0za}%Bi4nQjPOc(guOK?DLNdr z1d|2iSdsANOQM*BoWjls-3FigwNN#{l??VWP|UR15$zev0+6J zg=0@6H#fru8a)(6ohOO7Dcr-{kp`9-8aoR#1#=&G^ZGUP-4{sZnwov?DG?wPV!%pg zO0LCRZUYLiBJWRu72ekqh=J=OPe?N~Rhw_`7;?GGq$l6P4Ux2mqpr+i#`JK1kMJdBts1Q7`HZ4iGoRC zlW}7eg(v2ma6j3=+ZOn!g#h^@Y%yh{n~6bLJ;V<%oKea%V3Qjz1VOGSbVFKFP_hA2 zrVu5s1L8H5?*=7dvk<|b0?lMhvJ;R5yE3mmWVBh|U{&qj>P=o-dA(SyA;-ed2^{HE< zvP(!DRVTE|6Oi6D_0~d*wgs2hcU4lP0}nje*6K=cvq9X1N9!UM1Q)ePGN@+rETlP} zsRAhq)x3n-vt1o+hVB7gl`$gh14a~}Bc@pJh6@B3qb-edd5NBHPbaEEVoQ?@j#bHbCX zu1va#0^Rm?#XYoLeRD&m_QSt!lS&qz(T=UcLo6f~^A%=*ahZVol!_H-LhDzhiTIySF6i*c~?@PoT=M z$%f;6!;N0!7Y1Prx6gbws5&YMT~-R13Z*Ecg^Yu((ajNMqc>kaq+822p_|_L`lY({ zx=RW~0_BdWR3pfhX5(?yA_N~t9|U@DP~PA75pn5MAI*orL0 zR8D4zE^+Q}l$$~W8Mrd8%{o&Bbx?$}8i@L!xklVbk3q39vso>R8^+^&r0CUYPaTGP zC*H!O;7DRdT3E{Ca_TVR#(O=O!gyfOmk0~9L#ZKyrXt*Iw)?-WDw>{mKf+5u;dU4O3cU* z?g`I2ZiyI3w@V^Wx%gBK-ft#G7gEQ)1{Avt)S@HHx-Bx5$N($F$^tv7IIOs0WR=&i z?^rx&Tc0j7#gf8#EWBvkla7sOBkgf_i}PiGYO$1Lr%SM!2`r+w zAwz+T#x2;~n@PsGsX>y@=ao#mX+Jl0Y_}-6x|3^{0k7bo(gQeojtXU2hfA}>x{>|j zcA0fDs+pLH#LC2&1}mUeVBcThVV%HA$QamU!cVSoQw8OK)}X^HgN2)*BXA61v$4{| zK!!g{LD*;;NH&~s-Ebz{VDnb`b5cQ~yHQwHx-xHIl`CNf0k#TwGF>NmTj9F!X}h_Z z{d~j_!QI$!oQ|OzDg^1kt`saytP?RT;$l48i3+MjB?}Hq1gShj_`?Yxa5t?>4*9$+ zr`T5K>U|wWo>Q4@5|Bs97J0_Ny_7T%CD%Wb=SiM#MhmmigD@7x$WBLfI7OnnI|_&} z#)GSq8z_Eua29Jq1+`yZdcN;;xbk_HNkP_BF>K)U#kFb}&f{$JKQUIaGa}DIq$|pr z?PBfqF{u-6b3*|*vtYu;icJER6fwgX89o7+vB^6sv5HYxgxuJ*l^n*XS|`^6`!r(K zz=A<|2hsgoGl;f?+n6zwarD4!YY7HN^rxx_r5) z3jAQkTAnd#`w-noF%GtXt8RejHgukeX5r@h_MqSiF2o`j6=mQA1$wgMit6;nv&94U zbxc6Fp1>!SQz#!)%`(tJbMCs$6$L3LpUepDt=>@YgIv8(MTlZmVQc5hP(k{_RvzV=bpA7llO!)PcY-z)yz_fh-||k5UPzx2k}*O}nz&2oz(WQMiq#-u_CORl8ht^eE!cs>8AuUP*h;~(?1((%vGzlZ*b1>dV3wq(TuVx1FptDkE!<6>gF$^As(*T(}L70*q)UkHuIR+H7$P-!a*lmYr;;f5v$e%d+du&}QlC}DK z_lDIbCyg0Aq$I_kk3M{8XR9ETQ~ha^8%OO(bRD=t_EmJGUNOW(V%ng9TM6w=>{G0% zx7g9GMv8V4bfgh{xM^>WsB5sf`WE>~!{BqA6U)T~0p}~=SAPlL{?-2u8-4?K`4L;| z)@Oj6KnTWXei!nC5AZ#I{}+Ilp9jVZV7`QB;Po-_`M>wafR6(Bq+opJ2QePMjmO{o z-*Gn&oZ0Pqny_R9f5>DkA^IuX4=i^Ivl(P%MgZC(_A}Bbh4qf^N3L680G)u|*D@ih zXlEsdByq!2DbRoC{x)H{Vo}TAAX*@=s#_>Wl*5b^;tn(^U`9QGmIJ-W0H`$D!x4b9 z;fmI6x-}@6b91YZK9mc`APq9USRc~v2~NAnRjlTiT9FasZ4*Zg7X4UrVnoRh8eQ0u z*6%^wz|dE;{}K<#&TvANdxC13mzRUzyZAb};b&1yMnP-9I|VF$b{na4d9uO=YhDT+ z*kY4T3JI+2ui1i}rb2Azh5*he3%WV6`I`QEAzq&yF+6Z8qY>WCmI>bXDnhq+u@Io7 zar_*|71*6EFG;%No8X&i7UIYy$4Q%bS*xR5;{Yga%Q^HgOYEc*U0 zI&36*?ABZ+HN$M@L0p2F(7C5Y$NSU`(XmEJM}bk!0@L`dJu-PA#@7*xjBMd&hjvM8 zp_#t}n;K5{#@z9_tvX;4w0*-{J8%uoux7X9Qr0inB}I3UA*3CMqA1^cP=q^v9a=kUex0Q>w8;B)`PAI2~I%unNo>NVa!U*QM-#82U?fBBd3H@^Ho;vf5$ z{w?6U-or2aXMYx-e)Cn>@gctdM}HjOHp5qc{^#)9~qA)adLkXYJVhOW}k_Eva zUd0B|4z{_v!XE=V71;u#bUUb;0#0`lQA!j`BBfC?a^tq{Iv`7K<%?$>7~@I`1P9OH zz*VxvlgZ(wjeDNgis$>QV4{F-Lyab9L_Z>%2ONbxuUDb);`#*<47pm7c}kEGuroT? zV$i|E)9LHR{GK*DrIGMBFiaVFg#tC<5l92h#R7)|CtL3=_oua?lWcjQqEG|8-@PlaB>F= zf_zo;{{mJ*7jX}*#uRc+C2=yQ!{R6eHXT@T0yl#cqwRS*%nDe5$wY?3FN9v3AWdE% z!r?3UcP%hQ;JFY;JocVlyEt{>K-vOE0z3Ego6zHj@|!?iEplHm=)#7K=8sp>{U6R2 z>0#vB26>*>Fqe8vcLdB0dUI@Cb>C4anax4~91i#c(s=M7&~xt>W!IOb>L}6)U$VN; zz*dE@O$QCBb-Fm^h(!PZAOJ~3K~&(h5o&%h&w@fzqHy*Ets=3NAWud?))i0gTskgx zUQ#_D*szT|025O-4B0TCkiKvuq95RfIR;b%1|BC831$r#R#>QV#4SK zsYSPpZ3ro3Ix5&`99@S_>u|d_+ew)hLbTsw3m})%O4I>NwGj19vCyDFw#*>|em zV;bBSsuEig0DF1HFLl|nU=3D@qP1H3FssEfmtF6GLE&{d^Za78PG@JkGAM|J&~drO zM5y7&BKN7dNwsd0%Bo)2C{k7t9PJI{ga~#ScsT?wn*$`hQSc6~m-WL}o-v0cu}#A} zJ6Qx1Cn^_gw(w${7Ap!B!RUM?ES-&ZRh{W)1f|lN>o>5Rp9xx+x=KAbS#D?P^%?a0 zB5xHch&G3!7)gLmRP#!t#q_Ae@`btYbk|M8M{D5y*M@I>P&n2r6kanvyWIot{|4rJ zzYV9}!#?*rcp_|T*|32}ANa)Y{D4E%efx@`6c6^dSzkyWV`m1xba%1XwjQs*OBsa*C`^1tB)9 z@pRRKamO>uFu7y`nl~PbL7;QO+a>GmHlldK9a5}E>?UMl)ZCZ8lQ3rHy`_#qU+g z#$sv51(`6#xR?ZNBpi=Wb3jfY9=RS!0Ob@P{p^S}pZ{Wdi*6WCl-z*(+0c77nRz;5 z20{~Q{B>Qi&ThAt;u>jC-qR_NoX|cDjmEG@kwpA1Ix_h(N3s=89{yRgmA)!#l|qQ;V_p!hpAMRNbtoGAIUAHlIo$PHv~djhg3YKuZ=Vf8a3L=i*jaI&JuQvfMLIhmcaA^LnSbj4X8 zbiD#_y&+@}LPv-ThRha6dQWaUe>S-TE~iReF3w&*+9fIito8835j6f;L}GQ>rjKR~ zPY!dSWMz3Ch%QANHh4}@g(Klpa4K*VnZ)FovGsTbu&Ov@P{tRl8JL$i$pnf4+rVQk zM6yUPkc=u0LyggG-xTpx223Ug{9+IjoM7~L^Z-?^b*OmII+HFGYfMlKK^TnzXL1m7 zgp)5sUIMwhb12F|l^af)Oa~wGNUJ98);snM^8HSRLr;+4Z+rWwf zWZ)DETGqvJ*@-K3LO?_?@@m0O%uR8Occ8!b58&nZem7ox<|ST!-+TDMfAc@UAN7H5r01MjSI2Bylsd zSOG34YVvivvfzmS4Y={XmO1(CP!2(|d#O~V2WywfgV>>f;(2SP$KlJ*g%dG z(Zg^RL5N|cqcn(K$iQQqSi=1P7Liy`!2!o(Ix5&c9M%K51nx4hI|q_O6f?U8Hkkqh zf&gbgn7M*O4XJ>nAjmE7Sk>|I{#1Ih1F71Z6L=zL5_ zR=@h_q9{a+-VBRDgfg=rk&Dw_7st%W2fR4S3P*rZuC-|OMB*&LfZ@&z6(^1gJh

    B}^NtROD~9&OaOWn;7si;#P`J}U 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

    iJ1S(|l8PUpUMGtoKpSWaG{&>I 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 z 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�YVXIkZ~Bw@l-&5s+}v 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

    B2s@qv}FA$uxhqlpfc-0)6!ID7w_SwHj$ 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%0Aq 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 z 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

    j}*M^i_I3*6ZTxVVp3VxCaRI7 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

    2T zM!BvI5lZUGMD9LJu(@_a6BPG`C2crbLl{%TV))5f!jU?ncgiRuDMr4sm?=Q34c_QM zvD^|1^7~F7hMZ_aAbGCD*_4}hdU2|ZS9k@dE65Ad0<@2VOz0Fi>P{ADBg^vmpu5_y ze)AVN_J+rCzzlf%?tA{;Rzcs|1I z5696e*0cgC;kbWA6RRgBL#>qN*TeDaU;h(Q^)1mytyOq$s9z6Q@3_6(5CE2C!H@4h z!85RKugIX0HoUUn>lJ-(xV^pMo7Y!bQS`u%A9vgz$K>a~yuG3wcep1Ut)cdcZF@sm zGaeszl(o>0rS0(DXE;+t$H(J9>y-fF%JaAOhHR@++kh4wH5}F(zHDzm?Ks4!%tq;Y zxM8pKiLrG7I`F8KAjOtZR;H%b*3cde-5ZXhvM4KToXj$Q^Q-UCTE}mH`v)}nEjlWq zcPy#kn{U6zW8ZOqJjUk6k`jkQtmBt` zk;{T4mfUT9!FtK=97wkXOW|6Fv+F)rx_llQw!EGU+@DV{j-JJFP5}9Fz zgWm7H{|*S?$3Omr)~agIj#5@EC8M^X8UYS(sLiprgG_u-HhEiD^kbKlu3_6Uww3GR zvZp(tD(8&CL z9BAQ4Wu;Qa12120yw^OT9}ncR;LF=9j(VWBN}oxi1e!=*L2VC0MoMdc*=}NgkcrXi zfk$-?39P{)a4QRz-xu4 zjWPHEKsvwk>O8dMnPw$w)B8Wz5 z?6OEEN!d2ca7!ze*Bjp7zh3I~K*$d=TDR2aC%M0x^3cbh6l4(<91#2cKRm$*GO|u_z zG3m@0o|p@Jp-o`9>5l2qa6cLrnpvV~f*k>1VSoxeAqRuKq+NpZv`k+RER_JD;FtkuApwsHTOG+3^k7X@ z%&?Y(UR~IMJOeGw?;b@UNCXK1IU^e-qa)?l(qL9|^w^|4nHWX{rS@f;{`Zyw>v}`= zhTf@~+3yc5+eUj2c`f!}jhHqQ<4|}9f_4jF%@UT7a!2cRTB$L`obrnr4J#O6b+m?u zyBMI9{#IuSuSaLFp=+Sz^wA4x6)b=?$?J3k92NTcl9W|uKqbNH#9?=Iq@EaOC<55% z@pEP`U`X`8RM?i~Jo5{vh5+))bqf^qqjHG6FzuR3lZv!1?C+Yqab>gPjr+nBaOfbY znjGkl1ItS9O?oA(-_A)4a*`jS(^7$wWctFE%%0pm@YoNe*2D^Tf`z~jXy~47Iek_+y(&W#I(0HT9B|A;9EGCz(YWp(>JB@^=#qgVFqP zfT|(m⁡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 literal 0 HcmV?d00001 diff --git a/KC8EA/cont_down.png b/KC8EA/cont_down.png new file mode 100644 index 0000000000000000000000000000000000000000..a2cb4e02859d94bfa6ed8108e70b9eb0b21266f8 GIT binary patch literal 3186 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 literal 0 HcmV?d00001 diff --git a/KC8EA/dep_up.png b/KC8EA/dep_up.png new file mode 100644 index 0000000000000000000000000000000000000000..cf715c09ed34799160f25ae184d477356db3f26d GIT binary patch literal 3758 zcmV;f4pH%mP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RU3kMMgEOVdTi~s-tB6LMqbVF}# zZDnqB07G(RVRU6=Aa`kWXdp*PO;8|jZXjVGO<`k)sCPpE01gsKL_t(&-c_2-jwD%9 zg}-BV-6JxqYWi>ZnFSzN%z_;P7VrwZ4Nt@4ATiRc*v$+=AXtplAV%Fi-C30x8R6HA zg_(O~msFKm5s~iK?H)Vl*tw~{|J%RIU;XNr{NrCPENsM<5RlZL1k51~<^)Ck#Yj0K zLBL{g8gN>`oScaO*dPNWGKDaZAQQF}Gm_ZqUbZMPlvu`Ccz6C>kMFbTG zD}Vas;2-|_r<~7|h$|Tr%^>5(WRe15rZmgd_GTyC>^LuOrmRB-wy+}hOLPQ9q)oXIdAkq** z4v_{*(!tDt+W$cGHj%y1?25-slHfEie7t_*gEn4YUm0%B?Ph%QzZ>Iu^76YE)(_us z{_;H!U;TvTvj_ZPkOmndCrE+G4jij*Qq}EO%~1{_v$i)WU}l3_LNYRfBzoZ@0Qmr0 z$ZbP0xosOm3CY5DPaCHY4;OKM3F3MoF0g!j<^0tdf43laWFnYECWgSQ?oZ)QdnXn; z8X~&4rh-(Gvi?B5XHxx`glxbq;5HFro0DM{$c&HIjUR@%nRCs-7RK!oEZ=|P_WdW$ zUz|97@yPo5134D9*oc^D-XN>N=%Urvc{Ee)aW$T3>d1awZ{T2was%67yD~ri!0mP+ zNXF}yoF6{0Jw5R{LDwL!kgq{pf@PV^r^)v5LcCs42Fr&B#yXh807q)9V!ePQa&HhL zNpjojz223AW{^>ZP6;zr<1X*OL~Iwf>jl|h46Dt#xv{0#UT-+bH6Q}kSC}`LGs%2m z-h$=BM^0ayS^wxu^x;cb-hqu;Sll2Jhk9+CY9VtwswgvXD}ueflDWa~BH5W_80ZPz zzQ^WwLsBm~o7)6ppqz!mf{nY`kkF3fpl`TPU+?o!nnYh!aO6-Xcq=IC}a zp8x&VJpTD#v})|vZd`Az0vQk+(Iq9JTRj$|{qZZMw{ zzrb>y^}_RaD4vTKQEfxaemdxOC)4=hRXqOwzk8v%19FrpP;8 zG4I5mkTNXA>m_kpaKU&k*=GH0u)Yr#PlkcaOWy@332XA6Sy;L_e0|~k%OotmA|M!jY`e|Sbj08S=9Gt&6!RgAD+rDXJ zK(S1cY(yrRMfOkMPrmv1eeF2eSOd(^;)GYXdjyt2TCzp*KVQ%0U6EVDObFEmSTVxJ z#x3CG#kqVOtfxoDV#edcnf1L9IbjBoNkotl#C}mqi6ldrum!o%@7Gfa@F6T}!y_Og z3jr9BWo|&s2r?7TlG9W|lsF_-{|AOmUSD1ra|Rm8vI=6qj4?w@MRhRN&63CV?tG0z zvYQmc<(P?xQm^zZ7`Eq7w|higPvR&BDLktu>@;}2CdrjC215gKyJ41?0_JRUBn*`_ zE0L-Kb4JUuHz2qE>iFKhnTUy5YdCvj<)K7wZCF*}5D8}0A2y8T(XmB5KTodPm9Yh! zmVx3GX_j5f#M4@63YTO%-!6}JwUZ#T8qyDj%0t@AtM&s#bY*w{RiE(`3*bKS1^hf1 z4^DU$EG-!hjKyF^Iq&eIxTJ8ZyM7C`Ys&VZaeQ|7tD@v_$LH>_S^?^P)K#xVo5Zk! zpPvU>9V|F6+Fd|(ea=bFB)!Z-Cd`<{brO=7pG*;&#g(zE%iR>`Oj2#Evq)cA?SY9B z)?TOrWnc+rFc#ps-d)+3l#?| zNhX_|LDYYgf!XePc4S4npW5!|+GWn#dUMQ{8c$*pQOuzP%Wj4O6lSVvw1>lG6{p96 zFNr+vlc~t)pOHjvWpW0Bp(=A~lG=$_SWgg
    >5{N0^AXAg8edA2J`su~iw33Fjq zqG2w4)FQ{(QL{uDmmamUStJA3AXAKMfN2~=Y#7m`->B>=z2U?JWwAoWR>Jf&sHmAnJx$g&7aeAIRHn7IS5#+sr+|||;1>80%W5pEF;0d%huhcQkfJ<8OYy$Q z=%zGP9}Gy`t!YG^5AEiny{0t=_s%~&Y9UfGOf~KriA=b}aIvh_-TO3M3*4<>c>v#$ zuH930wv`=ux)?IJc{wKAbzb*D5xvp%G_>P~D4eMhIw_7oZl|U7lR%*}}}nqFQqOPhCu*I?EQ zj1IS?4tK%La8vztutk{rk<{5e6T8pwEtQRnV+N}UA~84Ijfjo$nlM&peLS(OfpIHo zj5dzw@SoZ4N=3E=YWr8+Y3#O}#q72e@WzgZqx+^)fuj^yoBr%+!4Ia)g zmcckV%0N*8fuio-}^G#DD$@12U%5U zHdaw|VzW4ra#8Y*(^ED3WOUai8RhJidjsrdIU64JS@lq8^~C$G7T;!B%Hvptom=-S zl%l)pRA9IZ#a1qcXnn57O+`6e}Xt%@nsdwD+Kij3bGY^+NYy&)!gp?QSPaD5O3u=?KwEb)cgt(9*-Q&QB}=$_`UG^z8ykv z$7U5K_ro&`%Vdy_$w{u2a~_o}up9h{_;-HJ-RSPQCcBnLW7XQQv{3A#o_37b$GCkk z#yqZDuvI~5igC-R^P@DBULU50EgjL_n~5{K8LSV%j)d=i*kx7?r~Hu|9n*qxPXW2R zG3!Y3IJDX?8@wcp3Qn^#AZz{Exvi2mbtP(Ovpb(k2gWLX?}hG%U2iZ)z9DqoF_{_7 z5O1en9p8ruGh;*;o=%!Ey-zS?b)*upYeP59o!DU>+3B&XQb$qEtj#9Ju}y1wQGFls z?r@Ecg3LA3a;CUmQDCXq7~76a8Pe!Pe>>FWsOmBE_0x7Fe&kFYqLmy9YhKiG`cV*= zd-HJ*au3tI&-Ugd&U`7~8iMidZ8Bvydc(Je`bUs(B~+7e^}TnRU9XCVMqpjN^>S8uYhW!LZ(lz$BTTe7qXJ z`*tu!GJbMe`ImqD$edf93wcF+9=ZozeKwzLyAiAo&nPF}Lz7IMR%d^1&;RSXP`~Js znYcNLc)q^!dc8ry>c+{PWf;p@%;m(V`M}JNjOXe6=M!vO%_#0VG}&<{907*qoM6N<$f`6hq?*IS* literal 0 HcmV?d00001 diff --git a/KC8EA/exam_down.png b/KC8EA/exam_down.png new file mode 100644 index 0000000000000000000000000000000000000000..ecbd416639a78ea109ac9ca93912bc4eca98c538 GIT binary patch literal 3339 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 Vz~x9k!8iZ_002ovPDHLkV1gM>KGOgI literal 0 HcmV?d00001 diff --git a/KC8EA/exam_up_halt_down.png b/KC8EA/exam_up_halt_down.png new file mode 100644 index 0000000000000000000000000000000000000000..c734416e7ccaa6aca539932e6737e3e933d6965f GIT binary patch literal 3823 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 literal 0 HcmV?d00001 diff --git a/KC8EA/extdaddrload_up.png b/KC8EA/extdaddrload_up.png new file mode 100644 index 0000000000000000000000000000000000000000..d7f4ce838efe9e4e2bd2ee1a42228dfe9d7fb452 GIT binary patch literal 3904 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 Y2j$|F4fQB~O8@`>07*qoM6N<$f(!DfwEzGB literal 0 HcmV?d00001 diff --git a/KC8EA/halt_up_singstep_up.png b/KC8EA/halt_up_singstep_up.png new file mode 100644 index 0000000000000000000000000000000000000000..384c9fad286b9a905d534b9b6634bbeda8d480b7 GIT binary patch literal 3574 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 FV1gxQN~Zt- literal 0 HcmV?d00001 diff --git a/KC8EA/key2.png b/KC8EA/key2.png new file mode 100644 index 0000000000000000000000000000000000000000..c281d2945f3d428b0c5f3b183a070ba86b973a53 GIT binary patch literal 17506 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 literal 0 HcmV?d00001 diff --git a/KC8EA/knob0.png b/KC8EA/knob0.png new file mode 100644 index 0000000000000000000000000000000000000000..72e632999d7526f111b3b6fac3d21c3d656014d0 GIT binary patch literal 14794 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 literal 0 HcmV?d00001 diff --git a/KC8EA/knob1.png b/KC8EA/knob1.png new file mode 100644 index 0000000000000000000000000000000000000000..9042d170c270e1a8068ef0c350c34f5653570cd5 GIT binary patch literal 14897 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 literal 0 HcmV?d00001 diff --git a/KC8EA/knob2.png b/KC8EA/knob2.png new file mode 100644 index 0000000000000000000000000000000000000000..15ba2725ab7fb31cc3a649fa747762b7ceebb777 GIT binary patch literal 14860 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

    #qX1Ld?lun}nc% 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ã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 literal 0 HcmV?d00001 diff --git a/KC8EA/sr9up_sr10up.png b/KC8EA/sr9up_sr10up.png new file mode 100644 index 0000000000000000000000000000000000000000..0b364a456ade5388e1f4254feb33f9e481573875 GIT binary patch literal 3872 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 Ef)n@JG5`Po literal 0 HcmV?d00001 diff --git a/KC8EA/sw_up.png b/KC8EA/sw_up.png new file mode 100644 index 0000000000000000000000000000000000000000..ce4d12ddecf18d3be342a5cfc7b25dd53b4c3204 GIT binary patch literal 4035 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 pQk>g3({b>6Ev}jT@2`L6{{t4(X}. + */ + + +@class PDP8, BreakpointArray, PluginManager, KeepInMenuWindow; + + +@interface MainController : NSObject +{ +@private + IBOutlet KeepInMenuWindow *cpuWindow; + IBOutlet NSPanel *preferencesPanel; + IBOutlet NSPanel *breakpointPanel; + IBOutlet NSPanel *bootstrapPanel; + IBOutlet NSDrawer *memoryInspectorDrawer; + IBOutlet NSView *loadPaperTapeFieldView; + IBOutlet NSStepper *loadPaperTapeFieldStepper; + IBOutlet PDP8 *pdp8; + IBOutlet BreakpointArray *breakpoints; + IBOutlet BreakpointArray *breakopcodes; + IBOutlet PluginManager *pluginManager; + BOOL memoryInspectorVisibleBeforeGo; + BOOL breakpointPanelVisibleBeforeGo; + BOOL bootstrapPanelVisibleBeforeGo; +} + +- (IBAction) reset:(id)sender; +- (IBAction) step:(id)sender; +- (IBAction) trace:(id)sender; +- (IBAction) go:(id)sender; +- (IBAction) stop:(id)sender; +- (IBAction) showPreferencesPanel:(id)sender; +- (IBAction) showHideBreakpointPanel:(id)sender; +- (IBAction) showHideBootstrapPanel:(id)sender; +- (IBAction) toggleMemoryInspectorDrawer:(id)sender; +- (IBAction) clearAllFlags:(id)sender; +- (IBAction) loadExtendedAddress:(id)sender; +- (IBAction) loadPaperTape:(id)sender; +- (IBAction) performZoomAll:(id)sender; + +@end diff --git a/Main/MainController.m b/Main/MainController.m new file mode 100644 index 0000000..d32079e --- /dev/null +++ b/Main/MainController.m @@ -0,0 +1,324 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MainController.m - Main Application Controller Class + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import +#import + +#import "MainController.h" +#import "CPUWindowController.h" +#import "PDP8.h" +#import "BreakpointArray.h" +#import "BreakpointController.h" +#import "GeneralPreferences.h" +#import "CPUPreferences.h" +#import "PluginManager.h" +#import "Utilities.h" +#import "KeepInMenuWindow.h" + + +@implementation MainController + + +- (void) notifyStopPDP8:(NSNotification *)notification +{ + if (memoryInspectorVisibleBeforeGo) { + [memoryInspectorDrawer open:self]; + memoryInspectorVisibleBeforeGo = NO; + } + if (breakpointPanelVisibleBeforeGo) { + [breakpointPanel orderBack:self]; + breakpointPanelVisibleBeforeGo = NO; + } + if (bootstrapPanelVisibleBeforeGo) { + [bootstrapPanel orderBack:self]; + bootstrapPanelVisibleBeforeGo = NO; + } +} + + +- (void) notifyPreferencesChanged:(NSNotification *)notification +{ + // NSLog (@"MainController notifyPreferencesChanged"); + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [pdp8 mountEAE:[defaults boolForKey:CPU_PREFS_EAE_KEY]]; + /* The preferences may be inconsistent here because NSUserDefaultsController sends the + notification before the km8eClick: method of CPUPreferences is called. */ + BOOL hasKM8E = [defaults boolForKey:CPU_PREFS_KM8E_KEY]; + unsigned memsize = [defaults integerForKey:CPU_PREFS_MEMORYSIZE_KEY]; + memsize = hasKM8E ? max(memsize, 2 * PDP8_FIELDSIZE) : PDP8_FIELDSIZE; + BOOL hasTimesharing = hasKM8E ? [defaults boolForKey:CPU_PREFS_TIMESHARING_KEY] : NO; + [pdp8 mountKM8E:hasKM8E memorySize:memsize timesharingEnabled:hasTimesharing]; + [pdp8 setTraceSpeed:[defaults floatForKey:GENERAL_PREFS_TRACE_SPEED_KEY]]; + [pdp8 setGoSpeed:[defaults integerForKey:GENERAL_PREFS_GO_SPEED_KEY]]; +} + + +- (void) cancelEditing +{ + /* Cancel editing (in memory table views). Otherwise the [tableview reload] + caused by [pdp8 reset] ends editing normally, and this causes values from + the active input field to be written back to the PDP-8 memory. Send the + cancelOperation: only to NSTextView subclasses to avoid a beep caused by + other responders. */ + NSResponder *firstResponder = [[NSApp keyWindow] firstResponder]; + if ([[firstResponder class] isSubclassOfClass:[NSTextView class]]) + [firstResponder doCommandBySelector:@selector(cancelOperation:)]; +} + + +- (IBAction) reset:(id)sender +{ + NSAlert *alert = [[NSAlert alloc] init]; + + [alert setMessageText:NSLocalizedString(@"Do you really want to reset the PDP-8/E?", @"")]; + [alert setInformativeText:NSLocalizedString( + @"All registers and the memory content will be set to zero. " + @"The preferences and mounted tapes, disks etc. will be preserved. " + @"All breakpoints and break opcodes will be disabled.", @"")]; + [[alert addButtonWithTitle:NSLocalizedString(@"Yes", @"")] setKeyEquivalent:@"\r"]; + [[alert addButtonWithTitle:NSLocalizedString(@"No", @"")] setKeyEquivalent:@"\e"]; + if ([alert runModal] == NSAlertFirstButtonReturn) { + [self cancelEditing]; + [pdp8 reset]; + [breakpoints setAllValues:0]; + [breakopcodes setAllValues:0]; + [pluginManager resetAllDevices]; + } + [alert release]; +} + + +- (IBAction) step:(id)sender +{ + [self cancelEditing]; + [pdp8 step]; +} + + +- (IBAction) trace:(id)sender +{ + [self cancelEditing]; + [pdp8 trace:NO_STOP_ADDRESS]; +} + + +- (IBAction) go:(id)sender +{ + int s = [memoryInspectorDrawer state]; + memoryInspectorVisibleBeforeGo = s == NSDrawerOpenState || s == NSDrawerOpeningState; + breakpointPanelVisibleBeforeGo = [breakpointPanel isVisible]; + bootstrapPanelVisibleBeforeGo = [bootstrapPanel isVisible]; + [breakpointPanel orderOut:self]; + [bootstrapPanel orderOut:self]; + [memoryInspectorDrawer close:self]; + [self cancelEditing]; + [pdp8 go:NO_STOP_ADDRESS]; +} + + +- (IBAction) stop:(id)sender +{ + [pdp8 stop]; +} + + +- (IBAction) showPreferencesPanel:(id)sender +{ + [preferencesPanel makeKeyAndOrderFront:self]; +} + + +- (IBAction) showHideBreakpointPanel:(id)sender +{ + if ([breakpointPanel isVisible]) + [breakpointPanel orderOut:sender]; + else { + [breakpointPanel setBecomesKeyOnlyIfNeeded:YES]; + [breakpointPanel orderFront:sender]; + } +} + + +- (IBAction) showHideBootstrapPanel:(id)sender +{ + if ([bootstrapPanel isVisible]) + [bootstrapPanel orderOut:sender]; + else { + [bootstrapPanel setBecomesKeyOnlyIfNeeded:YES]; + [bootstrapPanel orderFront:sender]; + } +} + + +- (IBAction) toggleMemoryInspectorDrawer:(id)sender +{ + [memoryInspectorDrawer toggle:sender]; +} + + +- (IBAction) loadPaperTape:(id)sender +{ + NSOpenPanel *panel = [NSOpenPanel openPanel]; + [panel setTitle:NSLocalizedString(@"Load a Paper Tape", @"")]; + [panel setPrompt:NSLocalizedString(@"Load", @"")]; + [loadPaperTapeFieldView retain]; + // [loadPaperTapeFieldStepper setIntValue:[pdp8 getIF]]; + int lastField = ([pdp8 memorySize] >> 12) - 1; + [loadPaperTapeFieldStepper setMaxValue:lastField]; + [loadPaperTapeFieldStepper setEnabled:lastField != 0]; + [[loadPaperTapeFieldStepper target] performSelector:[loadPaperTapeFieldStepper action] + withObject:loadPaperTapeFieldStepper]; + [panel setAccessoryView:loadPaperTapeFieldView]; + if ([panel runModalForDirectory: + [[NSUserDefaults standardUserDefaults] stringForKey:LAST_FILE_PANEL_DIR_KEY] + file:nil types:[NSArray arrayWithObjects: + NSFileTypeForHFSTypeCode(0x504e4348l /* 'PNCH' */), + @"BIN", @"bin", @"BN", @"bn", @"RIM", @"rim", @"PT", @"pt", nil]] == NSOKButton) { + [self cancelEditing]; + NSString *error = [pdp8 loadPaperTape:[panel filename] + toField:[loadPaperTapeFieldStepper intValue]]; + if (error) { + NSAlert *alert = [[NSAlert alloc] init]; + [alert setAlertStyle:NSWarningAlertStyle]; + [alert setMessageText:error]; + [alert setInformativeText:[panel filename]]; + [alert runModal]; + [alert release]; + } + } + [[NSUserDefaults standardUserDefaults] setObject:[panel directory] forKey:LAST_FILE_PANEL_DIR_KEY]; +} + + +- (IBAction) clearAllFlags:(id)sender +{ + [self cancelEditing]; + [pdp8 clearAllFlags]; +} + + +- (IBAction) loadExtendedAddress:(id)sender +{ + [self cancelEditing]; + [pdp8 loadExtendedAddress]; +} + + +- (BOOL) validateMenuItem:(NSMenuItem *)menuItem +{ + SEL action = [menuItem action]; + if (action == @selector(stop:)) + return [pdp8 isRunning]; + if (action == @selector(step:) || action == @selector(trace:) || action == @selector(go:)) + return ! [pdp8 isHalted] && [pdp8 isStopped]; + if (action == @selector(reset:) || action == @selector(loadPaperTape:) || + action == @selector(clearAllFlags:) || action == @selector(loadExtendedAddress:)) + return [pdp8 isStopped]; + if (action == @selector(showHideBreakpointPanel:)) { + if ([menuItem respondsToSelector:@selector(setState:)]) + [menuItem setState:[breakpointPanel isVisible]]; + return ! [pdp8 isGoing]; + } + if (action == @selector(showHideBootstrapPanel:)) { + if ([menuItem respondsToSelector:@selector(setState:)]) + [menuItem setState:[bootstrapPanel isVisible]]; + return ! [pdp8 isGoing]; + } + if (action == @selector(toggleMemoryInspectorDrawer:)) { + if ([menuItem respondsToSelector:@selector(setState:)]) { + int s = [memoryInspectorDrawer state]; + [menuItem setState:s == NSDrawerOpenState || s == NSDrawerOpeningState ? + NSOnState : NSOffState]; + } + return [[memoryInspectorDrawer parentWindow] isVisible] && ! [pdp8 isGoing]; + } + if (action == @selector(performZoomAll:)) { // don't know how to archieve this automatically + NSWindow *window; + NSEnumerator *enumerator = [[NSApp windows] objectEnumerator]; + while ((window = [enumerator nextObject])) { + if ([window level] == NSNormalWindowLevel && + [window isZoomable] && [window isVisible]) + return TRUE; + } + return FALSE; + } + return TRUE; +} + + +- (BOOL) validateToolbarItem:(NSToolbarItem *)toolbarItem +{ + return [self validateMenuItem:(NSMenuItem *)toolbarItem]; +} + + +- (void) applicationWillFinishLaunching:(NSNotification *)notification +{ + if (! runningOnTigerOrNewer()) { + NSRunAlertPanel ( + NSLocalizedString( + @"This version of the PDP-8/E Simulator needs Mac OS X 10.4 or better", @""), + NSLocalizedString(@"For older Systems (down to System 2.0.1 on a Mac 512Ke), there " + "is still the old version 1.5 of the PDP-8/E Simulator available.", @""), + NSLocalizedString(@"Quit", @""), nil, nil); + exit (0); + } + LOG_ASSERTING (); +} + + +- (void) applicationDidFinishLaunching:(NSNotification *)notification +{ + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyStopPDP8:) name:PDP8_STOP_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPreferencesChanged:) name:NSUserDefaultsDidChangeNotification + object:nil]; + [self notifyPreferencesChanged:nil]; + [breakpoints loadFromPrefs:@"Breakpoints"]; + [breakopcodes loadFromPrefs:@"BreakOpcodes"]; + [[cpuWindow toolbar] validateVisibleItems]; // revalidate because of the HALT/SINGSTEP console key + [cpuWindow orderFrontFromDefaults:self]; +} + + +- (void) applicationWillTerminate:(NSNotification *)notification +{ + [[NSNotificationCenter defaultCenter] removeObserver:self name:NSUserDefaultsDidChangeNotification + object:nil]; +} + + +- (IBAction) performZoomAll:(id)sender // don't know how to archieve this automatically +{ + NSWindow *window; + NSEnumerator *enumerator = [[NSApp windows] objectEnumerator]; + while ((window = [enumerator nextObject])) { + if ([window level] == NSNormalWindowLevel && [window isZoomable] && [window isVisible]) + [window performZoom:sender]; + } +} + + +@end diff --git a/Main/main.m b/Main/main.m new file mode 100644 index 0000000..19716f8 --- /dev/null +++ b/Main/main.m @@ -0,0 +1,31 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * main.m - The main() routine + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + + +int main (int argc, char *argv[]) +{ + return NSApplicationMain(argc, (const char **) argv); +} diff --git a/MemoryInspector/MemoryInspector6BitASCII.m b/MemoryInspector/MemoryInspector6BitASCII.m new file mode 100644 index 0000000..2e0d801 --- /dev/null +++ b/MemoryInspector/MemoryInspector6BitASCII.m @@ -0,0 +1,164 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspector6BitASCII.m - 6-Bit ASCII Memory Inspector + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "MemoryInspectorProtocol.h" +#import "Unicode.h" + + +#define ORDER_IN_MENU 10 +#define WORDS_PER_ROW 4 +#define CONTENT_WIDTH 8 +#define NEEDS_ALIGNMENT NO +#define ALLOWS_EDITING YES +#define MENU_TITLE @"6-Bit ASCII" +#define TOOL_TIP @"This column displays the memory content as 6-bit ASCII. " \ + "When editing a cell, use " UNICODE_MIDDLE_DOT_UTF8 " (option-shift-9) " \ + "to keep the current value and " UNICODE_BULLET_UTF8 \ + " (option-8 on an English keyboard or option-ü on a German keyboard) to force zero." + + +@interface MemoryInspector6BitASCII : NSFormatter +{ +} +@end + + +@implementation MemoryInspector6BitASCII + + ++ (void) load +{ + /* dummy to load the class when zero-linking while development */ +} + + +- (NSNumber *) orderInMemoryInspectorMenu +{ + return [NSNumber numberWithInt:ORDER_IN_MENU]; +} + + +- (NSString *) menuTitle +{ + return NSLocalizedString(MENU_TITLE, @""); +} + + +- (unsigned) wordsPerRow +{ + return WORDS_PER_ROW; +} + + +- (unsigned) contentWidthInCharacters +{ + return CONTENT_WIDTH; +} + + +- (BOOL) needsMemoryAlignment +{ + return NEEDS_ALIGNMENT; +} + + +- (BOOL) allowsEditing +{ + return ALLOWS_EDITING; +} + + +- (NSString *) toolTipForContentColumn +{ + return NSLocalizedString(TOOL_TIP, @""); +} + + +- (NSString *) stringForObjectValue:(NSArray *)value +{ + if ([[value class] isSubclassOfClass:[NSString class]]) + return (NSString *) value; + NSAssert ([value count] == WORDS_PER_ROW, @"Invalid number of words to format"); + NSMutableString *string = [NSMutableString stringWithCapacity:8]; + int i; + for (i = 0; i < WORDS_PER_ROW; i++) { + unsigned short c1 = [[value objectAtIndex:i] intValue]; + unsigned short c0 = c1 >> 6; + if (c0 == 0) + c0 = UNICODE_MIDDLE_DOT; + else if (c0 < 040) + c0 |= 0100; + c1 &= 077; + if (c1 == 0) + c1 = UNICODE_MIDDLE_DOT; + else if (c1 < 040) + c1 |= 0100; + [string appendFormat:@"%C%C", c0, c1]; + } + return string; +} + + +- (BOOL) getObjectValue:(id *)value forString:(NSString *)string errorDescription:(NSString **)error +{ + int i, c0, c1, m0, m1; + + if ([string length] != CONTENT_WIDTH) { + if (error) + *error = NSLocalizedString(@"Exactly eight characters required.", @""); + return FALSE; + } + m1 = c1 = 0; // only to avoid "used uninitialized" compiler warning + NSMutableArray *val = [NSMutableArray arrayWithCapacity:WORDS_PER_ROW]; + for (i = 0; i < CONTENT_WIDTH; i++) { + c0 = [string characterAtIndex:i]; + m0 = 0770000; + if (c0 == UNICODE_MIDDLE_DOT) // don't care, save old value + c0 = m0 = 0; + else if (c0 == UNICODE_BULLET) // force zero + c0 = 0; + else if (040 <= c0 && c0 < 0140) + c0 &= 077; + else { + if (error) + *error = [NSString stringWithFormat:NSLocalizedString( + @"Invalid 6-bit ASCII character %C%C%C.", @""), + UNICODE_LEFT_DOUBLEQUOTE, c0, UNICODE_RIGHT_DOUBLEQUOTE]; + return FALSE; + } + if (i & 1) + [val addObject:[NSNumber numberWithInt:m1 | m0 | c1 | c0]]; + else { + c1 = c0 << 6; + m1 = m0 << 6; + } + } + *value = val; + return TRUE; +} + + +@end diff --git a/MemoryInspector/MemoryInspector8BitASCII.m b/MemoryInspector/MemoryInspector8BitASCII.m new file mode 100644 index 0000000..a090184 --- /dev/null +++ b/MemoryInspector/MemoryInspector8BitASCII.m @@ -0,0 +1,149 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspector8BitASCII.m - 8-Bit ASCII Memory Inspector + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "MemoryInspectorProtocol.h" +#import "Unicode.h" + + +#define ORDER_IN_MENU 20 +#define WORDS_PER_ROW 4 +#define CONTENT_WIDTH 4 +#define NEEDS_ALIGNMENT NO +#define ALLOWS_EDITING YES +#define MENU_TITLE @"8-Bit ASCII" +#define TOOL_TIP @"This column displays the memory content as 8-bit ASCII. " \ + "When editing a cell, use " UNICODE_MIDDLE_DOT_UTF8 " (option-shift-9) " \ + "to keep the current value and " UNICODE_BULLET_UTF8 \ + " (option-8 on an English keyboard or option-ü on a German keyboard) to force zero." + + +@interface MemoryInspector8BitASCII : NSFormatter +{ +} +@end + + +@implementation MemoryInspector8BitASCII + + ++ (void) load +{ + /* dummy to load the class when zero-linking while development */ +} + + +- (NSNumber *) orderInMemoryInspectorMenu +{ + return [NSNumber numberWithInt:ORDER_IN_MENU]; +} + + +- (NSString *) menuTitle +{ + return NSLocalizedString(MENU_TITLE, @""); +} + + +- (unsigned) wordsPerRow +{ + return WORDS_PER_ROW; +} + + +- (unsigned) contentWidthInCharacters +{ + return CONTENT_WIDTH; +} + + +- (BOOL) needsMemoryAlignment +{ + return NEEDS_ALIGNMENT; +} + + +- (BOOL) allowsEditing +{ + return ALLOWS_EDITING; +} + + +- (NSString *) toolTipForContentColumn +{ + return NSLocalizedString(TOOL_TIP, @""); +} + + +- (NSString *) stringForObjectValue:(NSArray *)value +{ + if ([[value class] isSubclassOfClass:[NSString class]]) + return (NSString *) value; + NSAssert ([value count] == WORDS_PER_ROW, @"Invalid number of words to format"); + NSMutableString *string = [NSMutableString stringWithCapacity:4]; + int i; + for (i = 0; i < WORDS_PER_ROW; i++) { + unsigned short c = [[value objectAtIndex:i] intValue]; + c &= ~0200; // ignore parity bit + if (c < 040 || 0177 <= c) + c = UNICODE_MIDDLE_DOT; + [string appendFormat:@"%C", c]; + } + return string; +} + + +- (BOOL) getObjectValue:(id *)value forString:(NSString *)string errorDescription:(NSString **)error +{ + int i, c, m; + + if ([string length] != CONTENT_WIDTH) { + if (error) + *error = NSLocalizedString(@"Exactly four characters required.", @""); + return FALSE; + } + NSMutableArray *val = [NSMutableArray arrayWithCapacity:WORDS_PER_ROW]; + for (i = 0; i < CONTENT_WIDTH; i++) { + c = [string characterAtIndex:i]; + m = 077770000; + if (c == UNICODE_MIDDLE_DOT) // don't care, save old value + c = m = 0; + else if (c == UNICODE_BULLET) // force zero + c = 0; + else if (c & ~0177) { + if (error) + *error = [NSString stringWithFormat:NSLocalizedString( + @"Invalid 8-bit ASCII character %C%C%C.", @""), + UNICODE_LEFT_DOUBLEQUOTE, c, UNICODE_RIGHT_DOUBLEQUOTE]; + return FALSE; + } + [val addObject:[NSNumber numberWithInt:m | c]]; + } + *value = val; + return TRUE; +} + + +@end diff --git a/MemoryInspector/MemoryInspectorController.h b/MemoryInspector/MemoryInspectorController.h new file mode 100644 index 0000000..b4561dd --- /dev/null +++ b/MemoryInspector/MemoryInspectorController.h @@ -0,0 +1,51 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorController.h - Controller for the Memory Inspectors Drawer + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class NonWrappingTableView, TableCornerView, PDP8; +@protocol MemoryInspector; + + +@interface MemoryInspectorScrollView : NSScrollView +{ +} +@end + + +@interface MemoryInspectorController : NSObject { +@private + IBOutlet NSDrawer *memoryInspectorDrawer; + IBOutlet NSPopUpButton *popupButton; + IBOutlet NonWrappingTableView *memoryView; + IBOutlet TableCornerView *cornerView; + IBOutlet PDP8 *pdp8; + NSArray *memoryInspectors; + NSFormatter *currentInspector; + unsigned alignment; + unsigned lastTopRow; +} + +- (IBAction) selectMemoryInspector:(id)sender; +- (IBAction) alignMemory:(id)sender; + +@end diff --git a/MemoryInspector/MemoryInspectorController.m b/MemoryInspector/MemoryInspectorController.m new file mode 100644 index 0000000..329c103 --- /dev/null +++ b/MemoryInspector/MemoryInspectorController.m @@ -0,0 +1,448 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorController.m - Controller for the Memory Inspectors Drawer + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import +#import + +#import "MemoryInspectorController.h" +#import "MemoryInspectorProtocol.h" +#import "NonWrappingTableView.h" +#import "NSTableView+Scrolling.h" +#import "TableCornerView.h" +#import "OctalFormatter.h" +#import "Utilities.h" +#import "PDP8.h" + + +#define ADDR_COLUMN 0 +#define OCTAL_COLUMN 1 +#define CONTENT_COLUMN 2 + +#define ADDR_COLUMN_ID @"0" +#define OCTAL_COLUMN_ID @"1" +#define CONTENT_COLUMN_ID @"2" + +#define CURRENT_INSPECTOR_CLASS_PREFS_KEY @"MemInspectorClass" +#define TOP_ROW_PREFS_KEY @"MemInspectorTopRow" +#define ALIGNMENT_PREFS_KEY @"MemInspectorAlign" +#define INSPECTOR_OPEN_PREFS_KEY @"MemInspectorOpen" + + +@implementation NSFormatter (OrderInMemoryInspectorMenu) + + +- (NSComparisonResult) compareOrderInMemoryInspectorMenu:(id )inspector +{ + return [[(id ) self orderInMemoryInspectorMenu] + compare:[inspector orderInMemoryInspectorMenu]]; +} + + +@end + + +@implementation MemoryInspectorScrollView : NSScrollView + + +- (void) setFrame:(NSRect)frameRect +/* Auto resizing of the drawer makes the memory table view overlap the memory format popup + menu when the CPU window shrinks to the title bar (while "go" mode). (Cocoa bug?) + This methods calculates the scroll view height from the drawer height and the initial, + correct height delta between drawer and scroll view height. */ +{ + static float delta = (float) 0.0; + + if (delta == 0.0) { + if ([self window]) + delta = [[self window] frame].size.height - frameRect.size.height; + } else + frameRect.size.height = [[self window] frame].size.height - delta; + [super setFrame:frameRect]; +} + + +@end + + +@implementation MemoryInspectorController + + +- (void) cancelEditingInInspector +{ + NSResponder *first, *next; + + for (first = next = [[NSApp keyWindow] firstResponder]; next; next = [next nextResponder]) { + if (next == [memoryInspectorDrawer contentView] && + [[first class] isSubclassOfClass:[NSTextView class]]) { + [first doCommandBySelector:@selector(cancelOperation:)]; + break; + } + } +} + + +- (NSArray *) allMemoryInspectors +{ + int i; + + int numClasses = 0; + int newNumClasses = objc_getClassList(NULL, 0); + + Class *allClasses = NULL; + while (numClasses < newNumClasses) { + numClasses = newNumClasses; + allClasses = realloc(allClasses, sizeof(Class) * numClasses); + newNumClasses = objc_getClassList(allClasses, numClasses); + } + NSMutableArray *inspectors = [NSMutableArray array]; + for (i = 0; i < numClasses; i++) { + Class currentClass = allClasses[i]; + while (currentClass) { + if (currentClass->super_class == [NSFormatter class] && + [currentClass conformsToProtocol:@protocol(MemoryInspector)]) { + [inspectors addObject:[[[allClasses[i] alloc] init] autorelease]]; + break; + } + currentClass = currentClass->super_class; + } + } + free (allClasses); + [inspectors sortUsingSelector:@selector(compareOrderInMemoryInspectorMenu:)]; + return inspectors; +} + + +- (NSRange) visibleRange +{ + // see also [CPUMemoryViewController updateVisibleMemoryRange] and [NSTableView(Scrolling) scrollRowToTop:] + NSRange range; + range.location = range.length = 0; + NSRect rect = [memoryView visibleRect]; + if (rect.size.height > 0) { // zero immediately after "Stop" when the window is not yet enlarged + if (runningOnElCapitanOrNewer()) + rect.origin.y += [memoryView rectOfRow:0].size.height; + unsigned pixelPerRow = (unsigned) ([memoryView rowHeight] + [memoryView intercellSpacing].height); + range.location = [memoryView rowsInRect:rect].location; + range.length = rect.size.height / pixelPerRow; + } + return range; +} + + +- (IBAction) selectMemoryInspector:(id)sender +{ + NSSize drawerSize; + + // get the new inspector + NSFormatter *newInspector = [memoryInspectors objectAtIndex:[sender indexOfSelectedItem]]; + if ([currentInspector isEqual:newInspector]) + return; + + // stop editing in the old inspector + [self cancelEditingInInspector]; + + NSTableColumn *addrColumn = [memoryView tableColumnWithIdentifier:ADDR_COLUMN_ID]; + NSTableColumn *octalColumn = [memoryView tableColumnWithIdentifier:OCTAL_COLUMN_ID]; + NSTableColumn *contentColumn = [memoryView tableColumnWithIdentifier:CONTENT_COLUMN_ID]; + + // set octal column width + drawerSize.width = [addrColumn width]; + float width = [newInspector wordsPerRow] * 35; + drawerSize.width += width; + [octalColumn setMinWidth:width]; + [octalColumn setMaxWidth:width]; + [octalColumn setWidth:width]; + + // set content column width + width = [newInspector contentWidthInCharacters] * 7 + 4; + drawerSize.width += width; + [contentColumn setMinWidth:width]; + [contentColumn setMaxWidth:width]; + [contentColumn setWidth:width]; + + // resize drawer + drawerSize.width += 42; + drawerSize.height = 0; + [memoryInspectorDrawer setMaxContentSize:drawerSize]; + [memoryInspectorDrawer setMinContentSize:drawerSize]; + [memoryInspectorDrawer setContentSize:drawerSize]; + + // scroll to a reasonable location + int newTopRow = 0; + int newSelectedRow = -1; + if (currentInspector) { + NSRange visibleRange = [self visibleRange]; + int selectedRow = [memoryView selectedRow]; + if (NSLocationInRange(selectedRow, visibleRange)) { + newTopRow = selectedRow * [currentInspector wordsPerRow] / + [newInspector wordsPerRow] - (selectedRow - visibleRange.location); + newSelectedRow = newTopRow + (selectedRow - visibleRange.location); + } else + newTopRow = visibleRange.location * [currentInspector wordsPerRow] / + [newInspector wordsPerRow]; + int lastAddress = (newTopRow + visibleRange.length) * [newInspector wordsPerRow]; + if (lastAddress >= PDP8_MEMSIZE) // don't show white space at the end of the table view + newTopRow -= (lastAddress - PDP8_MEMSIZE) / [newInspector wordsPerRow] + 1; + } + + // switch to the new inspector, set the formatter and reload data + alignment = 0; + currentInspector = newInspector; + [[octalColumn dataCell] setObjectValue:nil]; // remove old value with wrong number of words + [[[octalColumn dataCell] formatter] setNumberOfWords:[currentInspector wordsPerRow]]; + [[contentColumn dataCell] setObjectValue:nil]; // remove old value with wrong number of words + [[contentColumn dataCell] setFormatter:currentInspector]; + [memoryView reloadData]; + + // set selected row + [memoryView scrollRowToTop:newTopRow]; + if (newSelectedRow >= 0) + [memoryView selectRowIndexes:[NSIndexSet indexSetWithIndex:newSelectedRow] + byExtendingSelection:NO]; + else + [memoryView deselectAll:self]; + + // enable or disable corner view for memory alignment + if ([currentInspector needsMemoryAlignment]) { + [cornerView setImageNamed:@"alignMemoryArrow" toolTip: + NSLocalizedString(@"Click or option-click to align multiword formats", @"")]; + [cornerView setClickable:YES]; + } else { + [cornerView setImageNamed:nil toolTip:nil]; + [cornerView setClickable:NO]; + } +} + + +- (IBAction) alignMemory:(id)sender +{ + if ([currentInspector needsMemoryAlignment]) { + [self cancelEditingInInspector]; + int wordsPerRow = [currentInspector wordsPerRow]; + alignment = (alignment + wordsPerRow + + (([[NSApp currentEvent] modifierFlags] & NSAlternateKeyMask) ? -1 : 1)) % wordsPerRow; + [memoryView reloadData]; + } +} + + +- (void) notifyMemoryChanged:(NSNotification *)notification +{ + // NSLog (@"MemoryInspectorController notifyMemoryChanged"); + [memoryView reloadData]; +} + + +- (BOOL) tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)column row:(int)row +{ + return [currentInspector wordsPerRow] * (row + 1) + alignment <= [pdp8 memorySize] + && ([[column identifier] intValue] != CONTENT_COLUMN || [currentInspector allowsEditing]); +} + + +- (int) numberOfRowsInTableView:(NSTableView *)tableView +{ + int wordsPerRow = [currentInspector wordsPerRow]; + return wordsPerRow ? (PDP8_MEMSIZE + wordsPerRow - alignment - 1) / wordsPerRow : 0; +} + + +- (id) tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)column row:(int)row +{ + int i; + NSMutableArray *value; + + int wordsPerRow = [currentInspector wordsPerRow]; + switch ([[column identifier] intValue]) { + case ADDR_COLUMN : + return [NSString stringWithFormat:@"%5.5o", wordsPerRow * row + alignment]; + case OCTAL_COLUMN : + value = [NSMutableArray arrayWithCapacity:wordsPerRow]; + for (i = 0; i < wordsPerRow && wordsPerRow * row + alignment + i < PDP8_MEMSIZE; i++) + [value addObject:[NSNumber numberWithInt: + [pdp8 memoryAt:wordsPerRow * row + alignment + i]]]; + return value; + case CONTENT_COLUMN : + if (wordsPerRow * (row + 1) /* + alignment */ > [pdp8 memorySize]) + return NSLocalizedString(@"n/a", @""); + value = [NSMutableArray arrayWithCapacity:wordsPerRow]; + for (i = 0; i < wordsPerRow; i++) + [value addObject:[NSNumber numberWithInt: + (wordsPerRow * row + alignment + i < PDP8_MEMSIZE) ? + [pdp8 memoryAt:wordsPerRow * row + alignment + i] : 0]]; + return value; + } + return nil; +} + + +- (NSString *) tableView:(NSTableView *)tableView toolTipForCell:(NSCell *)cell + rect:(NSRectPointer)rect tableColumn:(NSTableColumn *)column row:(int)row + mouseLocation:(NSPoint)mouseLocation +{ + switch ([[column identifier] intValue]) { + case ADDR_COLUMN : + return NSLocalizedString(@"This column displays the memory adresses.", @""); + case OCTAL_COLUMN : + return NSLocalizedString(@"This column displays the octal memory content.", @""); + case CONTENT_COLUMN : + return [currentInspector toolTipForContentColumn]; + } + return nil; +} + + +- (void) tableView:(NSTableView *)tableView setObjectValue:(NSArray *)values + forTableColumn:(NSTableColumn *)column row:(int)row +{ + /* value == nil when the user tabs (without editing) over cells with + output strings that are not valid input strings, e. g. "(IEEE overflow)". + In this case, the formatter is called with error == nil, returns the + value nil for the invalid input string, but Cocoa does not call + control:didFailToFormatString:errorDescription: */ + if (values) + [pdp8 setMemoryAtAddress:row * [currentInspector wordsPerRow] + alignment + toValues:values withMask:[[column identifier] intValue] == CONTENT_COLUMN]; +} + + +- (BOOL) control:(NSControl *)control didFailToFormatString:(NSString *)string + errorDescription:(NSString *)error +{ + NSRange range; + range.location = 0; + range.length = -1; + [[control currentEditor] setSelectedRange:range]; + NSAlert *alert = [[NSAlert alloc] init]; + [alert setMessageText:error]; + [alert beginSheetModalForWindow:[memoryInspectorDrawer parentWindow] + modalDelegate:nil didEndSelector:nil contextInfo:nil]; + [alert release]; + return NO; +} + + +- (BOOL) control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)command +{ + if (command == @selector(cancelOperation:)) { + // ESC aborts editing of the cell + [control abortEditing]; + return YES; + } + return NO; +} + + +#pragma mark Delegate and Notification + + +- (void) drawerWillClose:(NSNotification *)notification +{ + [self cancelEditingInInspector]; + lastTopRow = [self visibleRange].location; +} + + +- (void) scrollDrawerToLastTopRow +{ + [memoryView scrollRowToTop:lastTopRow]; +} + + +- (void) drawerDidOpen:(NSNotification *)notification +{ + // When the PDP-8 runs, the CPU window shrinks to the title bar, so the memory view scrolls to row 0 + // We can't scroll in drawerWillOpen:; even when this method runs, often the CPU window is still shrunk, + // so a direct [memoryView scrollRowToTop:lastTopRow] has no effect, and the memory view stays at location 0. + // So we delay the scrolling via performSelector:, accepting the side effect that the scrolling is visible. + [self performSelector:@selector(scrollDrawerToLastTopRow) withObject:nil afterDelay:0]; +} + + +- (void) notifyApplicationWillTerminate:(NSNotification *)notification +{ + // NSLog (@"MemoryInspectorController notifyApplicationWillTerminate"); + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:[currentInspector className] forKey:CURRENT_INSPECTOR_CLASS_PREFS_KEY]; + [defaults setObject:[NSNumber numberWithInt:[self visibleRange].location] forKey:TOP_ROW_PREFS_KEY]; + [defaults setObject:[NSNumber numberWithInt:alignment] forKey:ALIGNMENT_PREFS_KEY]; + int s = [memoryInspectorDrawer state]; + [defaults setBool:s == NSDrawerOpenState || s == NSDrawerOpeningState + forKey:INSPECTOR_OPEN_PREFS_KEY]; +} + + +- (void) notifyApplicationDidFinishLaunching:(NSNotification *)notification +/* Look for memory inspector classes at "did finish launching", after plugins have been loaded at + "will finish launching", so we find inspector classes of plugins, too. */ +{ + unsigned i; + + memoryInspectors = [[self allMemoryInspectors] retain]; + [popupButton removeAllItems]; + for (i = 0; i < [memoryInspectors count]; i++) + [popupButton addItemWithTitle:[[memoryInspectors objectAtIndex:i] menuTitle]]; + NSFont *font = [NSFont userFixedPitchFontOfSize:11]; + [[[[memoryView tableColumns] objectAtIndex:ADDR_COLUMN] dataCell] setFont:font]; + [[[[memoryView tableColumns] objectAtIndex:OCTAL_COLUMN] dataCell] setFont:font]; + [[[[memoryView tableColumns] objectAtIndex:CONTENT_COLUMN] dataCell] setFont:font]; + [[[[memoryView tableColumns] objectAtIndex:OCTAL_COLUMN] dataCell] + setFormatter:[OctalFormatter formatterWithBitMask:07777 wildcardAllowed:NO]]; + // restore preferences + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSString *currentInspectorClass = [defaults stringForKey:CURRENT_INSPECTOR_CLASS_PREFS_KEY]; + alignment = 0; + lastTopRow = 0; + for (i = 0; i < [memoryInspectors count]; i++) { + if ([[[memoryInspectors objectAtIndex:i] className] isEqualToString:currentInspectorClass]) { + [popupButton selectItemAtIndex:i]; + alignment = [defaults integerForKey:ALIGNMENT_PREFS_KEY]; + lastTopRow = [defaults integerForKey:TOP_ROW_PREFS_KEY]; + break; + } + } + [self selectMemoryInspector:popupButton]; + [memoryView scrollRowToTop:lastTopRow]; + if ([[NSUserDefaults standardUserDefaults] boolForKey:INSPECTOR_OPEN_PREFS_KEY] + && [[memoryInspectorDrawer parentWindow] isVisible]) + [memoryInspectorDrawer open]; +} + + +- (void) awakeFromNib +{ + adjustTableHeaderForElCapitan (memoryView); + // set notifications + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyApplicationDidFinishLaunching:) + name:NSApplicationDidFinishLaunchingNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notifyMemoryChanged:) + name:MEMORY_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyApplicationWillTerminate:) + name:NSApplicationWillTerminateNotification object:nil]; +} + + +@end diff --git a/MemoryInspector/MemoryInspectorDWSignedInteger.m b/MemoryInspector/MemoryInspectorDWSignedInteger.m new file mode 100644 index 0000000..0a7f302 --- /dev/null +++ b/MemoryInspector/MemoryInspectorDWSignedInteger.m @@ -0,0 +1,139 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorDWSignedInteger.m - Double Word Signed Integer Memory Inspector + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "MemoryInspectorProtocol.h" + + +#define ORDER_IN_MENU 60 +#define WORDS_PER_ROW 2 +#define CONTENT_WIDTH 8 +#define NEEDS_ALIGNMENT YES +#define ALLOWS_EDITING YES +#define MENU_TITLE @"Double Word Signed Integer" +#define TOOL_TIP @"This column displays the memory content as double word signed integer." + + +@interface MemoryInspectorDWSignedInteger : NSFormatter +{ +} +@end + + +@implementation MemoryInspectorDWSignedInteger + + ++ (void) load +{ + /* dummy to load the class when zero-linking while development */ +} + + +- (NSNumber *) orderInMemoryInspectorMenu +{ + return [NSNumber numberWithInt:ORDER_IN_MENU]; +} + + +- (NSString *) menuTitle +{ + return NSLocalizedString(MENU_TITLE, @""); +} + + +- (unsigned) wordsPerRow +{ + return WORDS_PER_ROW; +} + + +- (unsigned) contentWidthInCharacters +{ + return CONTENT_WIDTH; +} + + +- (BOOL) needsMemoryAlignment +{ + return NEEDS_ALIGNMENT; +} + + +- (BOOL) allowsEditing +{ + return ALLOWS_EDITING; +} + + +- (NSString *) toolTipForContentColumn +{ + return NSLocalizedString(TOOL_TIP, @""); +} + + +- (NSString *) stringForObjectValue:(NSArray *)value +{ + if ([[value class] isSubclassOfClass:[NSString class]]) + return (NSString *) value; + NSAssert ([value count] == WORDS_PER_ROW, @"Invalid number of words to format"); + int n = [[value objectAtIndex:0] intValue] | ([[value objectAtIndex:1] intValue] << 12); + if (n & 040000000) + n |= ~077777777; + return [NSString stringWithFormat:@"%8d", n]; +} + + +- (BOOL) getObjectValue:(id *)value forString:(NSString *)string errorDescription:(NSString **)error +{ + int n; + + NSMutableArray *val = [NSMutableArray arrayWithCapacity:WORDS_PER_ROW]; + NSScanner *scanner = [NSScanner scannerWithString:string]; + if ([scanner scanInt:&n]) { + if ((n & ~037777777) != 0 && (n & ~037777777) != ~037777777) { + if (error) + *error = NSLocalizedString(@"Double word signed integer out of valid " + "range from -8388608 to 8388607.", @""); + return FALSE; + } + [val addObject:[NSNumber numberWithInt:077770000 | (n & 07777)]]; + [val addObject:[NSNumber numberWithInt:077770000 | ((n >> 12) & 07777)]]; + } else { + if (error) + *error = NSLocalizedString(@"Invalid double word signed integer.", @""); + return FALSE; + } + if (! [scanner isAtEnd]) { + if (error) + *error = NSLocalizedString( + @"Exactly one double word signed integer expected.", @""); + return FALSE; + } + *value = val; + return TRUE; +} + + +@end diff --git a/MemoryInspector/MemoryInspectorDWUnsignedInteger.m b/MemoryInspector/MemoryInspectorDWUnsignedInteger.m new file mode 100644 index 0000000..250c654 --- /dev/null +++ b/MemoryInspector/MemoryInspectorDWUnsignedInteger.m @@ -0,0 +1,137 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorDWUnsignedInteger.m - Double Word Unsigned Integer Memory Inspector + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "MemoryInspectorProtocol.h" + + +#define ORDER_IN_MENU 70 +#define WORDS_PER_ROW 2 +#define CONTENT_WIDTH 8 +#define NEEDS_ALIGNMENT YES +#define ALLOWS_EDITING YES +#define MENU_TITLE @"Double Word Unsigned Integer" +#define TOOL_TIP @"This column displays the memory content as double word unsigned integer." + + +@interface MemoryInspectorDWUnsignedInteger : NSFormatter +{ +} +@end + + +@implementation MemoryInspectorDWUnsignedInteger + + ++ (void) load +{ + /* dummy to load the class when zero-linking while development */ +} + + +- (NSNumber *) orderInMemoryInspectorMenu +{ + return [NSNumber numberWithInt:ORDER_IN_MENU]; +} + + +- (NSString *) menuTitle +{ + return NSLocalizedString(MENU_TITLE, @""); +} + + +- (unsigned) wordsPerRow +{ + return WORDS_PER_ROW; +} + + +- (unsigned) contentWidthInCharacters +{ + return CONTENT_WIDTH; +} + + +- (BOOL) needsMemoryAlignment +{ + return NEEDS_ALIGNMENT; +} + + +- (BOOL) allowsEditing +{ + return ALLOWS_EDITING; +} + + +- (NSString *) toolTipForContentColumn +{ + return NSLocalizedString(TOOL_TIP, @""); +} + + +- (NSString *) stringForObjectValue:(NSArray *)value +{ + if ([[value class] isSubclassOfClass:[NSString class]]) + return (NSString *) value; + NSAssert ([value count] == WORDS_PER_ROW, @"Invalid number of words to format"); + return [NSString stringWithFormat:@"%8d", + [[value objectAtIndex:0] intValue] | ([[value objectAtIndex:1] intValue] << 12)]; +} + + +- (BOOL) getObjectValue:(id *)value forString:(NSString *)string errorDescription:(NSString **)error +{ + int n; + + NSMutableArray *val = [NSMutableArray arrayWithCapacity:WORDS_PER_ROW]; + NSScanner *scanner = [NSScanner scannerWithString:string]; + if ([scanner scanInt:&n]) { + if ((n & ~077777777) != 0) { + if (error) + *error = NSLocalizedString(@"Double word unsigned integer out of valid " + "range from 0 to 16777215.", @""); + return FALSE; + } + [val addObject:[NSNumber numberWithInt:077770000 | (n & 07777)]]; + [val addObject:[NSNumber numberWithInt:077770000 | ((n >> 12) & 07777)]]; + } else { + if (error) + *error = NSLocalizedString(@"Invalid double word unsigned integer.", @""); + return FALSE; + } + if (! [scanner isAtEnd]) { + if (error) + *error = NSLocalizedString( + @"Exactly one double word unsigned integer expected.", @""); + return FALSE; + } + *value = val; + return TRUE; +} + + +@end diff --git a/MemoryInspector/MemoryInspectorFPP8AEPFloatingPoint.m b/MemoryInspector/MemoryInspectorFPP8AEPFloatingPoint.m new file mode 100644 index 0000000..f5fd07b --- /dev/null +++ b/MemoryInspector/MemoryInspectorFPP8AEPFloatingPoint.m @@ -0,0 +1,136 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorFPP8AEPFloatingPoint.m - FPP8-A EP Floating Point Memory Inspector + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "MemoryInspectorProtocol.h" +#import "FloatingPointNumber.h" + + +#define ORDER_IN_MENU 90 +#define WORDS_PER_ROW 6 +#define CONTENT_WIDTH 22 +#define NEEDS_ALIGNMENT YES +#define ALLOWS_EDITING YES +#define MENU_TITLE @"FPP8-A EP Floating Point (6 words)" +#define TOOL_TIP @"This column displays the memory content as FPP8-A EP floating point numbers." + + +@interface MemoryInspectorFPP8AEPFloatingPoint : NSFormatter +{ +} +@end + + +@implementation MemoryInspectorFPP8AEPFloatingPoint + + ++ (void) load +{ + /* dummy to load the class when zero-linking while development */ +} + + +- (NSNumber *) orderInMemoryInspectorMenu +{ + return [NSNumber numberWithInt:ORDER_IN_MENU]; +} + + +- (NSString *) menuTitle +{ + return NSLocalizedString(MENU_TITLE, @""); +} + + +- (unsigned) wordsPerRow +{ + return WORDS_PER_ROW; +} + + +- (unsigned) contentWidthInCharacters +{ + return CONTENT_WIDTH; +} + + +- (BOOL) needsMemoryAlignment +{ + return NEEDS_ALIGNMENT; +} + + +- (BOOL) allowsEditing +{ + return ALLOWS_EDITING; +} + + +- (NSString *) toolTipForContentColumn +{ + return NSLocalizedString(TOOL_TIP, @""); +} + + +- (NSString *) stringForObjectValue:(NSArray *)value +{ + if ([[value class] isSubclassOfClass:[NSString class]]) + return (NSString *) value; + NSAssert ([value count] == WORDS_PER_ROW, @"Invalid number of words to format"); + return [[FloatingPointNumber + floatingPointNumberWithExponent:[[value objectAtIndex:0] intValue] + bias:0 + negative:([[value objectAtIndex:1] intValue] & 04000) ? YES : NO + twoComplementMantissa:YES + mantissa:([[value objectAtIndex:1] longLongValue] << 53) | + ([[value objectAtIndex:2] longLongValue] << 41) | + ([[value objectAtIndex:3] longLongValue] << 29) | + ([[value objectAtIndex:4] longLongValue] << 17) | + ([[value objectAtIndex:5] longLongValue] << 5)] + stringValueWithPrecision:15]; +} + + +- (BOOL) getObjectValue:(id *)value forString:(NSString *)string errorDescription:(NSString **)error +{ + FloatingPointNumber *f = [FloatingPointNumber floatingPointNumberFromString:string + withBias:0 withTwoComplementMantissa:YES error:error]; + if (! f) + return FALSE; + unsigned long long mantissa = [f mantissa]; + *value = [NSArray arrayWithObjects: + [NSNumber numberWithInt:077770000 | [f exponent]], + [NSNumber numberWithInt: + 077770000 | ([f negative] ? 04000 : 0) | (unsigned long) (mantissa >> 53)], + [NSNumber numberWithInt:077770000 | (unsigned long) ((mantissa >> 41) & 07777)], + [NSNumber numberWithInt:077770000 | (unsigned long) ((mantissa >> 29) & 07777)], + [NSNumber numberWithInt:077770000 | (unsigned long) ((mantissa >> 17) & 07777)], + [NSNumber numberWithInt:077770000 | (unsigned long) ((mantissa >> 5) & 07777)], + nil]; + return TRUE; +} + + +@end diff --git a/MemoryInspector/MemoryInspectorFPP8AFPFloatingPoint.m b/MemoryInspector/MemoryInspectorFPP8AFPFloatingPoint.m new file mode 100644 index 0000000..f3d18df --- /dev/null +++ b/MemoryInspector/MemoryInspectorFPP8AFPFloatingPoint.m @@ -0,0 +1,129 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorFPP8AFPFloatingPoint.m - FPP8-A FP Floating Point Memory Inspector + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "MemoryInspectorProtocol.h" +#import "FloatingPointNumber.h" + + +#define ORDER_IN_MENU 80 +#define WORDS_PER_ROW 3 +#define CONTENT_WIDTH 16 +#define NEEDS_ALIGNMENT YES +#define ALLOWS_EDITING YES +#define MENU_TITLE @"FPP8-A FP Floating Point (3 words)" +#define TOOL_TIP @"This column displays the memory content as FPP8-A FP floating point numbers." + + +@interface MemoryInspectorFPP8AFPFloatingPoint : NSFormatter +{ +} +@end + + +@implementation MemoryInspectorFPP8AFPFloatingPoint + + ++ (void) load +{ + /* dummy to load the class when zero-linking while development */ +} + + +- (NSNumber *) orderInMemoryInspectorMenu +{ + return [NSNumber numberWithInt:ORDER_IN_MENU]; +} + + +- (NSString *) menuTitle +{ + return NSLocalizedString(MENU_TITLE, @""); +} + + +- (unsigned) wordsPerRow +{ + return WORDS_PER_ROW; +} + + +- (unsigned) contentWidthInCharacters +{ + return CONTENT_WIDTH; +} + + +- (BOOL) needsMemoryAlignment +{ + return NEEDS_ALIGNMENT; +} + + +- (BOOL) allowsEditing +{ + return ALLOWS_EDITING; +} + + +- (NSString *) toolTipForContentColumn +{ + return NSLocalizedString(TOOL_TIP, @""); +} + + +- (NSString *) stringForObjectValue:(NSArray *)value +{ + if ([[value class] isSubclassOfClass:[NSString class]]) + return (NSString *) value; + NSAssert ([value count] == WORDS_PER_ROW, @"Invalid number of words to format"); + return [[FloatingPointNumber + floatingPointNumberWithExponent:[[value objectAtIndex:0] intValue] + bias:0 + negative:([[value objectAtIndex:1] intValue] & 04000) ? YES : NO + twoComplementMantissa:YES + mantissa:([[value objectAtIndex:1] longLongValue] << 53) | + ([[value objectAtIndex:2] longLongValue] << 41)] + stringValueWithPrecision:6]; +} + + +- (BOOL) getObjectValue:(id *)value forString:(NSString *)string errorDescription:(NSString **)error +{ + FloatingPointNumber *f = [FloatingPointNumber floatingPointNumberFromString:string + withBias:0 withTwoComplementMantissa:YES error:error]; + if (! f) + return FALSE; + *value = [NSArray arrayWithObjects: + [NSNumber numberWithInt:077770000 | [f exponent]], + [NSNumber numberWithInt: + 077770000 | ([f negative] ? 04000 : 0) | (unsigned long) ([f mantissa] >> 53)], + [NSNumber numberWithInt:077770000 | (unsigned long) (([f mantissa] >> 41) & 07777)], + nil]; + return TRUE; +} + + +@end diff --git a/MemoryInspector/MemoryInspectorFortranIIFloatingPoint.m b/MemoryInspector/MemoryInspectorFortranIIFloatingPoint.m new file mode 100644 index 0000000..55f6d84 --- /dev/null +++ b/MemoryInspector/MemoryInspectorFortranIIFloatingPoint.m @@ -0,0 +1,131 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorFortranIIFloatingPoint.m - Fortran II Floating Point Memory Inspector + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "MemoryInspectorProtocol.h" +#import "FloatingPointNumber.h" + + +#define ORDER_IN_MENU 100 +#define WORDS_PER_ROW 3 +#define CONTENT_WIDTH 16 +#define NEEDS_ALIGNMENT YES +#define ALLOWS_EDITING YES +#define MENU_TITLE @"FORTRAN II Floating Point (3 words)" +#define TOOL_TIP @"This column displays the memory content as FORTRAN II floating point numbers." + + +@interface MemoryInspectorFortranIIFloatingPoint : NSFormatter +{ +} +@end + + +@implementation MemoryInspectorFortranIIFloatingPoint + + ++ (void) load +{ + /* dummy to load the class when zero-linking while development */ +} + + +- (NSNumber *) orderInMemoryInspectorMenu +{ + return [NSNumber numberWithInt:ORDER_IN_MENU]; +} + + +- (NSString *) menuTitle +{ + return NSLocalizedString(MENU_TITLE, @""); +} + + +- (unsigned) wordsPerRow +{ + return WORDS_PER_ROW; +} + + +- (unsigned) contentWidthInCharacters +{ + return CONTENT_WIDTH; +} + + +- (BOOL) needsMemoryAlignment +{ + return NEEDS_ALIGNMENT; +} + + +- (BOOL) allowsEditing +{ + return ALLOWS_EDITING; +} + + +- (NSString *) toolTipForContentColumn +{ + return NSLocalizedString(TOOL_TIP, @""); +} + + +- (NSString *) stringForObjectValue:(NSArray *)value +{ + if ([[value class] isSubclassOfClass:[NSString class]]) + return (NSString *) value; + NSAssert ([value count] == WORDS_PER_ROW, @"Invalid number of words to format"); + return [[FloatingPointNumber + floatingPointNumberWithExponent:([[value objectAtIndex:0] intValue] >> 3) & 0377 + bias:0200 + negative:([[value objectAtIndex:0] intValue] & 04000) ? YES : NO + twoComplementMantissa:NO + mantissa:([[value objectAtIndex:0] longLongValue] << 61) | + ([[value objectAtIndex:1] longLongValue] << 49) | + ([[value objectAtIndex:2] longLongValue] << 37)] + stringValueWithPrecision:8]; +} + + +- (BOOL) getObjectValue:(id *)value forString:(NSString *)string errorDescription:(NSString **)error +{ + FloatingPointNumber *f = [FloatingPointNumber floatingPointNumberFromString:string + withBias:0200 withTwoComplementMantissa:NO error:error]; + if (! f) + return FALSE; + unsigned long long mantissa = [f mantissa]; + *value = [NSArray arrayWithObjects: + [NSNumber numberWithInt:077770000 | + ([f negative] ? 04000 : 0) | ([f exponent] << 3) | (unsigned long) (mantissa >> 61)], + [NSNumber numberWithInt:077770000 | (unsigned long) ((mantissa >> 49) & 07777)], + [NSNumber numberWithInt:077770000 | (unsigned long) ((mantissa >> 37) & 07777)], + nil]; + return TRUE; +} + + +@end diff --git a/MemoryInspector/MemoryInspectorOS8Packed8BitASCII.m b/MemoryInspector/MemoryInspectorOS8Packed8BitASCII.m new file mode 100644 index 0000000..a947485 --- /dev/null +++ b/MemoryInspector/MemoryInspectorOS8Packed8BitASCII.m @@ -0,0 +1,178 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorOS8Packed8BitASCII.m - OS/8 Packed 8Bit ASCII Memory Inspector + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "MemoryInspectorProtocol.h" +#import "Unicode.h" + + +#define ORDER_IN_MENU 30 +#define WORDS_PER_ROW 4 +#define CONTENT_WIDTH 6 +#define NEEDS_ALIGNMENT YES +#define ALLOWS_EDITING YES +#define MENU_TITLE @"OS/8 Packed 8-Bit ASCII" +#define TOOL_TIP @"This column displays the memory content as OS/8 Packed 8-bit ASCII. " \ + "When editing a cell, use " UNICODE_MIDDLE_DOT_UTF8 " (option-shift-9) " \ + "to keep the current value and " UNICODE_BULLET_UTF8 \ + " (option-8 on an English keyboard or option-ü on a German keyboard) to force zero." + + +@interface MemoryInspectorOS8Packed8BitASCII : NSFormatter +{ +} +@end + + +@implementation MemoryInspectorOS8Packed8BitASCII + + ++ (void) load +{ + /* dummy to load the class when zero-linking while development */ +} + + +- (NSNumber *) orderInMemoryInspectorMenu +{ + return [NSNumber numberWithInt:ORDER_IN_MENU]; +} + + +- (NSString *) menuTitle +{ + return NSLocalizedString(MENU_TITLE, @""); +} + + +- (unsigned) wordsPerRow +{ + return WORDS_PER_ROW; +} + + +- (unsigned) contentWidthInCharacters +{ + return CONTENT_WIDTH; +} + + +- (BOOL) needsMemoryAlignment +{ + return NEEDS_ALIGNMENT; +} + + +- (BOOL) allowsEditing +{ + return ALLOWS_EDITING; +} + + +- (NSString *) toolTipForContentColumn +{ + return NSLocalizedString(TOOL_TIP, @""); +} + + +- (NSString *) stringForObjectValue:(NSArray *)value +{ + unsigned short i, c, w0, w1; + + if ([[value class] isSubclassOfClass:[NSString class]]) + return (NSString *) value; + NSAssert ([value count] == WORDS_PER_ROW, @"Invalid number of words to format"); + NSMutableString *string = [NSMutableString stringWithCapacity:CONTENT_WIDTH]; + for (i = 0; i < WORDS_PER_ROW; i += 2) { + w0 = [[value objectAtIndex:i] intValue]; + c = w0 & 0177; + if (c < 040 || c >= 0177) + c = UNICODE_MIDDLE_DOT; + [string appendFormat:@"%C", c]; + w1 = [[value objectAtIndex:i + 1] intValue]; + c = w1 & 0177; + if (c < 040 || c >= 0177) + c = UNICODE_MIDDLE_DOT; + [string appendFormat:@"%C", c]; + c = ((w0 & 03400) >> 4) | ((w1 & 07400) >> 8); + if (c < 040 || c >= 0177) + c = UNICODE_MIDDLE_DOT; + [string appendFormat:@"%C", c]; + } + return string; +} + + +- (BOOL) getObjectValue:(id *)value forString:(NSString *)string errorDescription:(NSString **)error +{ + int i, c, c0, c1, m, m0, m1; + + if ([string length] != CONTENT_WIDTH) { + if (error) + *error = NSLocalizedString(@"Exactly six characters required.", @""); + return FALSE; + } + c0 = c1 = m0 = m1 = 0; // only to avoid "used uninitialized" compiler warning + NSMutableArray *val = [NSMutableArray arrayWithCapacity:4]; + for (i = 0; i < CONTENT_WIDTH; i++) { + c = [string characterAtIndex:i]; + m = 0377; + if (c == UNICODE_MIDDLE_DOT) { // don't care, save old value + c = 0; + m &= ~0377; + } else if (c == UNICODE_BULLET) // force zero + c = 0; + else if (c & ~0177) { + if (error) + *error = [NSString stringWithFormat:NSLocalizedString( + @"Invalid 8-bit ASCII character %C%C%C.", @""), + UNICODE_LEFT_DOUBLEQUOTE, c, UNICODE_RIGHT_DOUBLEQUOTE]; + return FALSE; + } + switch (i % 3) { + case 0 : + c0 = c; + m0 = m; + break; + case 1 : + c1 = c; + m1 = m; + break; + case 2 : + c0 |= (c & 0360) << 4; + m0 |= (m & 0360) << 4; + c1 |= (c & 017) << 8; + m1 |= (m & 017) << 8; + [val addObject:[NSNumber numberWithInt:(m0 << 12) | c0]]; + [val addObject:[NSNumber numberWithInt:(m1 << 12) | c1]]; + break; + } + } + *value = val; + return TRUE; +} + + +@end diff --git a/MemoryInspector/MemoryInspectorPascalSFloatingPoint.m b/MemoryInspector/MemoryInspectorPascalSFloatingPoint.m new file mode 100644 index 0000000..3b36cb4 --- /dev/null +++ b/MemoryInspector/MemoryInspectorPascalSFloatingPoint.m @@ -0,0 +1,131 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorPascalSFloatingPoint.m - Pascal-S Floating Point Memory Inspector + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "MemoryInspectorProtocol.h" +#import "FloatingPointNumber.h" + + +#define ORDER_IN_MENU 110 +#define WORDS_PER_ROW 4 +#define CONTENT_WIDTH 17 +#define NEEDS_ALIGNMENT YES +#define ALLOWS_EDITING YES +#define MENU_TITLE @"Pascal-S Floating Point (4 words)" +#define TOOL_TIP @"This column displays the memory content as Pascal-S floating point numbers." + + +@interface MemoryInspectorPascalSFloatingPoint : NSFormatter +{ +} +@end + + +@implementation MemoryInspectorPascalSFloatingPoint + + ++ (void) load +{ + /* dummy to load the class when zero-linking while development */ +} + + +- (NSNumber *) orderInMemoryInspectorMenu +{ + return [NSNumber numberWithInt:ORDER_IN_MENU]; +} + + +- (NSString *) menuTitle +{ + return NSLocalizedString(MENU_TITLE, @""); +} + + +- (unsigned) wordsPerRow +{ + return WORDS_PER_ROW; +} + + +- (unsigned) contentWidthInCharacters +{ + return CONTENT_WIDTH; +} + + +- (BOOL) needsMemoryAlignment +{ + return NEEDS_ALIGNMENT; +} + + +- (BOOL) allowsEditing +{ + return ALLOWS_EDITING; +} + + +- (NSString *) toolTipForContentColumn +{ + return NSLocalizedString(TOOL_TIP, @""); +} + + +- (NSString *) stringForObjectValue:(NSArray *)value +{ + if ([[value class] isSubclassOfClass:[NSString class]]) + return (NSString *) value; + NSAssert ([value count] == WORDS_PER_ROW, @"Invalid number of words to format"); + return [[FloatingPointNumber + floatingPointNumberWithExponent:[[value objectAtIndex:0] intValue] + bias:0 + negative:([[value objectAtIndex:1] intValue] & 04000) ? YES : NO + twoComplementMantissa:NO + mantissa:([[value objectAtIndex:1] longLongValue] << 53) | + ([[value objectAtIndex:2] longLongValue] << 41) | + ([[value objectAtIndex:3] longLongValue] << 29)] + stringValueWithPrecision:10]; +} + + +- (BOOL) getObjectValue:(id *)value forString:(NSString *)string errorDescription:(NSString **)error +{ + FloatingPointNumber *f = [FloatingPointNumber floatingPointNumberFromString:string + withBias:0 withTwoComplementMantissa:NO error:error]; + if (! f) + return FALSE; + *value = [NSArray arrayWithObjects: + [NSNumber numberWithInt:077770000 | [f exponent]], + [NSNumber numberWithInt: + 077770000 | ([f negative] ? 04000 : 0) | (unsigned long) ([f mantissa] >> 53)], + [NSNumber numberWithInt:077770000 | (unsigned long) (([f mantissa] >> 41) & 07777)], + [NSNumber numberWithInt:077770000 | (unsigned long) (([f mantissa] >> 29) & 07777)], + nil]; + return TRUE; +} + + +@end diff --git a/MemoryInspector/MemoryInspectorProtocol.h b/MemoryInspector/MemoryInspectorProtocol.h new file mode 100644 index 0000000..20aa8a7 --- /dev/null +++ b/MemoryInspector/MemoryInspectorProtocol.h @@ -0,0 +1,44 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorProtocol.h - Protocol for Memory Inspectors + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +/* A Memory Inspector is a subclass of NSFormatter that conforms to the MemoryInspector protocol. + To add a new inspector, simply include a new class in a plugin; it will automatically be detected. + The NSFormatter methods work on a NSArray of wordsPerRow 12-bit PDP-8 words. The order of the + inspector in the popup menu of the memory inspector drawer is determined by orderInMemoryInspectorMenu; + the built-in inspectors use numbers 10, 20,... */ + + +@protocol MemoryInspector + ++ (void) load; // empty dummy method to cause ZeroLink to load the class in the debug builds + +- (NSNumber *) orderInMemoryInspectorMenu; +- (NSString *) menuTitle; +- (unsigned) wordsPerRow; +- (unsigned) contentWidthInCharacters; +- (BOOL) needsMemoryAlignment; +- (BOOL) allowsEditing; +- (NSString *) toolTipForContentColumn; + +@end diff --git a/MemoryInspector/MemoryInspectorSignedInteger.m b/MemoryInspector/MemoryInspectorSignedInteger.m new file mode 100644 index 0000000..1eae037 --- /dev/null +++ b/MemoryInspector/MemoryInspectorSignedInteger.m @@ -0,0 +1,145 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorSignedInteger.m - Signed Integer Memory Inspector + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "MemoryInspectorProtocol.h" + + +#define ORDER_IN_MENU 40 +#define WORDS_PER_ROW 2 +#define CONTENT_WIDTH 11 +#define NEEDS_ALIGNMENT NO +#define ALLOWS_EDITING YES +#define MENU_TITLE @"Signed Integer" +#define TOOL_TIP @"This column displays the memory content as signed integer." + + +@interface MemoryInspectorSignedInteger : NSFormatter +{ +} +@end + + +@implementation MemoryInspectorSignedInteger + + ++ (void) load +{ + /* dummy to load the class when zero-linking while development */ +} + + +- (NSNumber *) orderInMemoryInspectorMenu +{ + return [NSNumber numberWithInt:ORDER_IN_MENU]; +} + + +- (NSString *) menuTitle +{ + return NSLocalizedString(MENU_TITLE, @""); +} + + +- (unsigned) wordsPerRow +{ + return WORDS_PER_ROW; +} + + +- (unsigned) contentWidthInCharacters +{ + return CONTENT_WIDTH; +} + + +- (BOOL) needsMemoryAlignment +{ + return NEEDS_ALIGNMENT; +} + + +- (BOOL) allowsEditing +{ + return ALLOWS_EDITING; +} + + +- (NSString *) toolTipForContentColumn +{ + return NSLocalizedString(TOOL_TIP, @""); +} + + +- (NSString *) stringForObjectValue:(NSArray *)value +{ + if ([[value class] isSubclassOfClass:[NSString class]]) + return (NSString *) value; + NSAssert ([value count] == WORDS_PER_ROW, @"Invalid number of words to format"); + int w0 = [[value objectAtIndex:0] intValue]; + int w1 = [[value objectAtIndex:1] intValue]; + if (w0 & 04000) + w0 |= ~07777; + if (w1 & 04000) + w1 |= ~07777; + return [NSString stringWithFormat:@"%5d %5d", w0, w1]; +} + + +- (BOOL) getObjectValue:(id *)value forString:(NSString *)string errorDescription:(NSString **)error +{ + int i, n; + + NSMutableArray *val = [NSMutableArray arrayWithCapacity:WORDS_PER_ROW]; + NSScanner *scanner = [NSScanner scannerWithString:string]; + for (i = 0; i < WORDS_PER_ROW; i++) { + if ([scanner scanInt:&n]) { + if ((n & ~03777) != 0 && (n & ~03777) != ~03777) { + if (error) + *error = NSLocalizedString( + @"Signed integer out of valid range from -2048 to 2047.", + @""); + return FALSE; + } + [val addObject:[NSNumber numberWithInt:077770000 | (n & 07777)]]; + } else { + if (error) + *error = [scanner isAtEnd] ? + NSLocalizedString(@"Exactly two signed integers expected.", @"") : + NSLocalizedString(@"Invalid signed integer.", @""); + return FALSE; + } + } + if (! [scanner isAtEnd]) { + if (error) + *error = NSLocalizedString(@"Exactly two signed integers expected.", @""); + return FALSE; + } + *value = val; + return TRUE; +} + + +@end diff --git a/MemoryInspector/MemoryInspectorUnsignedInteger.m b/MemoryInspector/MemoryInspectorUnsignedInteger.m new file mode 100644 index 0000000..a17aced --- /dev/null +++ b/MemoryInspector/MemoryInspectorUnsignedInteger.m @@ -0,0 +1,139 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * MemoryInspectorUnsignedInteger.m - Unsigned Integer Memory Inspector + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "MemoryInspectorProtocol.h" + + +#define ORDER_IN_MENU 50 +#define WORDS_PER_ROW 2 +#define CONTENT_WIDTH 9 +#define NEEDS_ALIGNMENT NO +#define ALLOWS_EDITING YES +#define MENU_TITLE @"Unsigned Integer" +#define TOOL_TIP @"This column displays the memory content as unsigned integer." + + +@interface MemoryInspectorUnsignedInteger : NSFormatter +{ +} +@end + + +@implementation MemoryInspectorUnsignedInteger + + ++ (void) load +{ + /* dummy to load the class when zero-linking while development */ +} + + +- (NSNumber *) orderInMemoryInspectorMenu +{ + return [NSNumber numberWithInt:ORDER_IN_MENU]; +} + + +- (NSString *) menuTitle +{ + return NSLocalizedString(MENU_TITLE, @""); +} + + +- (unsigned) wordsPerRow +{ + return WORDS_PER_ROW; +} + + +- (unsigned) contentWidthInCharacters +{ + return CONTENT_WIDTH; +} + + +- (BOOL) needsMemoryAlignment +{ + return NEEDS_ALIGNMENT; +} + + +- (BOOL) allowsEditing +{ + return ALLOWS_EDITING; +} + + +- (NSString *) toolTipForContentColumn +{ + return NSLocalizedString(TOOL_TIP, @""); +} + + +- (NSString *) stringForObjectValue:(NSArray *)value +{ + if ([[value class] isSubclassOfClass:[NSString class]]) + return (NSString *) value; + NSAssert ([value count] == WORDS_PER_ROW, @"Invalid number of words to format"); + return [NSString stringWithFormat:@"%4d %4d", + [[value objectAtIndex:0] intValue], [[value objectAtIndex:1] intValue]]; +} + + +- (BOOL) getObjectValue:(id *)value forString:(NSString *)string errorDescription:(NSString **)error +{ + int i, n; + + NSMutableArray *val = [NSMutableArray arrayWithCapacity:WORDS_PER_ROW]; + NSScanner *scanner = [NSScanner scannerWithString:string]; + for (i = 0; i < WORDS_PER_ROW; i++) { + if ([scanner scanInt:&n]) { + if ((n & ~07777) != 0) { + if (error) + *error = NSLocalizedString( + @"Unsigned integer out of valid range from 0 to 4095.", @""); + return FALSE; + } + [val addObject:[NSNumber numberWithInt:077770000 | n]]; + } else { + if (error) + *error = [scanner isAtEnd] ? + NSLocalizedString(@"Exactly two unsigned integers expected.", @"") : + NSLocalizedString(@"Invalid unsigned integer.", @""); + return FALSE; + } + } + if (! [scanner isAtEnd]) { + if (error) + *error = NSLocalizedString(@"Exactly two unsigned integers expected.", @""); + return FALSE; + } + *value = val; + return TRUE; +} + + +@end diff --git a/PC8E/English.lproj/InfoPlist.strings b/PC8E/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..8bb23f4 --- /dev/null +++ b/PC8E/English.lproj/InfoPlist.strings @@ -0,0 +1,28 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * InfoPlist.strings - Localized strings for Info.plist + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +CFBundleName = "PC8-E Paper Tape Reader & Punch"; +CFBundleGetInfoString = "PC8-E Paper Tape Reader & Punch 2.0.2, Copyright © 1994-2015 Bernhard Baehr"; +NSHumanReadableCopyright = "Copyright © 1994-2015 Bernhard Baehr"; +CFBundleHelpBookName = "PC8-E Paper Tape Reader & Punch Help"; \ No newline at end of file diff --git a/PC8E/English.lproj/PC8E.nib/designable.nib b/PC8E/English.lproj/PC8E.nib/designable.nib new file mode 100644 index 0000000..1792567 --- /dev/null +++ b/PC8E/English.lproj/PC8E.nib/designable.nib @@ -0,0 +1,1213 @@ + + + + 1040 + 10K549 + 851 + 1038.36 + 461.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + PC8E + + + FirstResponder + + + NSApplication + + + 4103 + 2 + {{196, 376}, {436, 118}} + 1618477056 + PC8-E Paper Tape Reader & Punch + KeepInMenuWindow + + {1.79769e+308, 1.79769e+308} + + + 256 + + YES + + + 45 + + YES + + + 274 + + YES + + + 256 + {{13, 59}, {57, 19}} + + YES + 1 + 1 + + YES + + -1805647807 + 205521920 + 377 + + LucidaGrande + 11 + 3100 + + + 23.18017578125 + + 67108864 + 67108864 + RBF + + + + + + {57, 19} + {0, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 23.18017578125 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 3 + MQA + + + + + + -2147483392 + {{13, 32}, {182, 19}} + + + YES + + 71303232 + 138545664 + Filename + + + 1 + + 2 + MC44NDcwNTg4OSAwLjg0NzA1ODg5IDAuODQ3MDU4ODkAA + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + -2147483392 + {{13, 12}, {182, 12}} + + 16652 + 100 + + + + 268 + {{78, 54}, {122, 28}} + + YES + + 67108864 + 134348800 + Load + + + -2038284288 + 129 + + + 200 + 25 + + + + {{2, 2}, {208, 89}} + + + + {{5, 4}, {212, 106}} + + {0, 0} + + 67108864 + 0 + High Speed Reader + + + 6 + System + textBackgroundColor + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 3 + 0 + 2 + NO + + + + 45 + + YES + + + 274 + + YES + + + 256 + {{13, 59}, {57, 19}} + + YES + 1 + 1 + + YES + + -1805647807 + 205521920 + 377 + + + 23.18017578125 + + 67108864 + 67108864 + PBF + + + + + + {57, 19} + {0, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 23.18017578125 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + -2147483392 + {{13, 32}, {182, 19}} + + + YES + + 71303232 + 138545664 + Filename + + + 1 + + 2 + MC44NDcwNTg4OSAwLjg0NzA1ODg5IDAuODQ3MDU4ODkAA + + + + + + + -2147483392 + {{13, 12}, {182, 12}} + + 16654 + 100 + + + + 268 + {{78, 54}, {122, 28}} + + 1 + YES + + 67108864 + 134348800 + Load + + + -2038284288 + 129 + + + 200 + 25 + + + + {{2, 2}, {208, 89}} + + + + {{219, 4}, {212, 106}} + + {0, 0} + + 67108864 + 0 + High Speed Punch + + + + 3 + MCAwLjgwMDAwMDAxMTkAA + + + + 3 + 0 + 2 + NO + + + {436, 118} + + + {{0, 0}, {1680, 1028}} + {1.79769e+308, 1.79769e+308} + PC8EWindow + NO + + + PaperTapeController + + + PaperTapeController + + + + + YES + + + window + + + + 39 + + + + filenameField + + + + 206 + + + + progressIndicator + + + + 207 + + + + inputConsumer + + + + 213 + + + + inputConsumer + + + + 216 + + + + reader + + + + 221 + + + + punch + + + + 222 + + + + rbfCell + + + + 224 + + + + filenameField + + + + 235 + + + + progressIndicator + + + + 237 + + + + loadUnloadButton + + + + 250 + + + + loadUnloadClicked: + + + + 251 + + + + pbfCell + + + + 252 + + + + initialFirstResponder + + + + 253 + + + + nextKeyView + + + + 256 + + + + nextKeyView + + + + 257 + + + + nextKeyView + + + + 260 + + + + loadUnloadClicked: + + + + 261 + + + + loadUnloadButton + + + + 262 + + + + nextKeyView + + + + 263 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + + 2 + + + YES + + + + + + + 179 + + + YES + + + + + + + + + 189 + + + YES + + + + + + + 190 + + + YES + + + + + + 191 + + + + + 192 + + + + + 193 + + + + + 194 + + + + + 205 + + + ReaderController + + + 214 + + + PunchController + + + 225 + + + YES + + + + + + + + + 226 + + + + + 228 + + + YES + + + + + + 229 + + + YES + + + + + + + 230 + + + + + 231 + + + + + 232 + + + + + 248 + + + YES + + + + + + 249 + + + + + 258 + + + YES + + + + + + 259 + + + + + + + YES + + YES + -3.IBPluginDependency + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBWindowTemplateEditedContentRect + 1.NSWindowTemplate.visibleAtLaunch + 1.WindowOrigin + 1.editorWindowContentRectSynchronizationRect + 179.IBPluginDependency + 179.IBViewBoundsToFrameTransform + 189.IBAttributePlaceholdersKey + 189.IBPluginDependency + 189.ImportedFromIB2 + 190.IBAttributePlaceholdersKey + 190.IBPluginDependency + 191.CustomClassName + 191.IBAttributePlaceholdersKey + 191.IBPluginDependency + 191.IBViewBoundsToFrameTransform + 192.IBPluginDependency + 193.CustomClassName + 193.IBAttributePlaceholdersKey + 193.IBPluginDependency + 193.ImportedFromIB2 + 194.IBPluginDependency + 2.IBPluginDependency + 205.IBPluginDependency + 214.IBPluginDependency + 225.IBPluginDependency + 225.IBViewBoundsToFrameTransform + 226.CustomClassName + 226.IBAttributePlaceholdersKey + 226.IBPluginDependency + 226.IBViewBoundsToFrameTransform + 228.IBAttributePlaceholdersKey + 228.IBPluginDependency + 229.IBAttributePlaceholdersKey + 229.IBPluginDependency + 229.ImportedFromIB2 + 230.IBPluginDependency + 231.CustomClassName + 231.IBAttributePlaceholdersKey + 231.IBPluginDependency + 231.ImportedFromIB2 + 232.IBPluginDependency + 248.IBAttributePlaceholdersKey + 248.IBPluginDependency + 249.IBPluginDependency + 258.IBAttributePlaceholdersKey + 258.IBPluginDependency + 259.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + {{289, 83}, {436, 118}} + com.apple.InterfaceBuilder.CocoaPlugin + {{289, 83}, {436, 118}} + + {196, 240} + {{357, 418}, {480, 270}} + com.apple.InterfaceBuilder.CocoaPlugin + + AUCgAABAgAAAA + + + ToolTip + + ToolTip + + The RBF (Reader Buffer) receives the characters read from the paper tape. After putting a new character into RBF, the reader raises its input flag. + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Filename of the paper tape currently loaded into the reader + + + com.apple.InterfaceBuilder.CocoaPlugin + PaperTapeProgressIndicator + + ToolTip + + ToolTip + + Progress indicator for the paper tape reader + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBYAAAwbAAAA + + com.apple.InterfaceBuilder.CocoaPlugin + RegisterFormCell + + ToolTip + + ToolTip + + The ERIOT register holds the opcode of the last JMS, JMP, IOT, HLT or OSR instruction performed in user mode. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + AUGIAABCxAAAA + + PaperTapeProgressIndicator + + ToolTip + + ToolTip + + Progress indicator for the paper tape punch + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABBYAAAwbAAAA + + + ToolTip + + ToolTip + + Filename of the paper tape currently loaded into the punch + + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + The CPU loads the characters it wants to punch from AC into PBF (Punch Buffer) using IOT PPC (6024). When the character is punched, the punch sets its output flag. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + RegisterFormCell + + ToolTip + + ToolTip + + The ERIOT register holds the opcode of the last JMS, JMP, IOT, HLT or OSR instruction performed in user mode. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + TG9hZHMgb3IgdW5sb2FkcyBhIHBhcGVyIHRhcGUgZm9yIHRoZSBwdW5jaC4KCllvdSBhbHNvIGNhbiBk +cmFnIGZpbGVzIGZyb20gdGhlIEZpbmRlciB0byB0aGlzIGJ1dHRvbiB0byBsb2FkIHRoZW0uA + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + TG9hZHMgb3IgdW5sb2FkcyBhIHBhcGVyIHRhcGUgZm9yIHRoZSByZWFkZXIuCgpZb3UgYWxzbyBjYW4g +ZHJhZyBmaWxlcyBmcm9tIHRoZSBGaW5kZXIgdG8gdGhpcyBidXR0b24gdG8gbG9hZCB0aGVtLg + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 263 + + + + YES + + KeepInMenuWindow + NSWindow + + YES + + YES + orderBackFromDefaults: + orderFrontFromDefaults: + + + YES + id + id + + + + YES + + YES + orderBackFromDefaults: + orderFrontFromDefaults: + + + YES + + orderBackFromDefaults: + id + + + orderFrontFromDefaults: + id + + + + + IBProjectSource + Utilities/KeepInMenuWindow.h + + + + NSControl + + IBProjectSource + Categories/NSControl+FileDrop.h + + + + PC8E + PDP8Plugin + + YES + + YES + pbfCell + punch + rbfCell + reader + window + + + YES + RegisterFormCell + PaperTapeController + RegisterFormCell + PaperTapeController + KeepInMenuWindow + + + + YES + + YES + pbfCell + punch + rbfCell + reader + window + + + YES + + pbfCell + RegisterFormCell + + + punch + PaperTapeController + + + rbfCell + RegisterFormCell + + + reader + PaperTapeController + + + window + KeepInMenuWindow + + + + + IBProjectSource + PC8E/PC8E.h + + + + PDP8Plugin + NSObject + + IBProjectSource + Plugins/PluginAPI.h + + + + PaperTapeController + NSObject + + YES + + YES + loadUnloadClicked: + onOffClicked: + + + YES + id + id + + + + YES + + YES + loadUnloadClicked: + onOffClicked: + + + YES + + loadUnloadClicked: + id + + + onOffClicked: + id + + + + + YES + + YES + filenameField + inputConsumer + loadUnloadButton + onOffButton + progressIndicator + + + YES + NSTextField + id + NSControl + NSSegmentedControl + PaperTapeProgressIndicator + + + + YES + + YES + filenameField + inputConsumer + loadUnloadButton + onOffButton + progressIndicator + + + YES + + filenameField + NSTextField + + + inputConsumer + id + + + loadUnloadButton + NSControl + + + onOffButton + NSSegmentedControl + + + progressIndicator + PaperTapeProgressIndicator + + + + + IBProjectSource + ASR33/PaperTapeController.h + + + + PaperTapeProgressIndicator + NSProgressIndicator + + IBProjectSource + ASR33/PaperTapeProgressIndicator.h + + + + RegisterFormCell + NSFormCell + + registerOwner + id + + + registerOwner + + registerOwner + id + + + + IBProjectSource + Utilities/RegisterFormCell.h + + + + + YES + + KeepInMenuWindow + NSWindow + + IBFrameworkSource + PluginFramework.framework/Headers/KeepInMenuWindow.h + + + + NSControl + + IBFrameworkSource + PluginFramework.framework/Headers/NSControl+FileDrop.h + + + + PDP8Plugin + NSObject + + IBFrameworkSource + PluginFramework.framework/Headers/PluginAPI.h + + + + RegisterFormCell + NSFormCell + + IBFrameworkSource + PluginFramework.framework/Headers/RegisterFormCell.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../../pdp8e-simulator.xcodeproj + 3 + + diff --git a/PC8E/English.lproj/PC8E.nib/keyedobjects.nib b/PC8E/English.lproj/PC8E.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..8b6263325417157b800a8d1022a91713f162fc0e GIT binary patch literal 12099 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 literal 0 HcmV?d00001 diff --git a/PC8E/English.lproj/PC8EOnlineHelp/ascii_tape.png b/PC8E/English.lproj/PC8EOnlineHelp/ascii_tape.png new file mode 100644 index 0000000000000000000000000000000000000000..6db31a7d33965cf809a329c9767081dfce894285 GIT binary patch literal 7944 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%0AyHb*(!sn9k3}v$ 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 literal 0 HcmV?d00001 diff --git a/PC8E/English.lproj/PC8EOnlineHelp/index.html b/PC8E/English.lproj/PC8EOnlineHelp/index.html new file mode 100644 index 0000000..0264f6e --- /dev/null +++ b/PC8E/English.lproj/PC8EOnlineHelp/index.html @@ -0,0 +1,194 @@ + + + + + + PC8-E Paper Tape Reader & Punch Help + + + + + + + +

    IOTs for the PC8-E Paper Tape Reader & Punch

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Mnemonic
    Symbol
    Octal
    Code

    Description
    RPE6010 + Set the interrupt enable mask for the punch and the reader. +
    RSF6011 + Skip the next instruction when the reader I/O flag is raised, i. e. when a new + character is loaded into the reader buffer RBF. +
    RRB6012 + Read the content of the reader buffer RBF into AC (by performing a logical OR) + and clear the reader I/O flag. +
    RFC6014 + Clear the reader I/O flag and RBF and start to fetch one character from the input tape + to be loaded into RBF. The reader I/O flag is set again when the operation is completed. +
    RCC6016 + Load RBF into AC (by performing a logical OR), clear the reader I/O flag and RBF and + start to read the next tape character. Microprogrammed combination of RRB and RFC. +
    PCE6020 + Clear the interrupt enable mask for the punch and the reader. +
    PSF6021 + Skip the next instruction when the punch I/O flag is set. +
    PCF6022 + Clear the punch I/O flag and the punch buffer PBF. +
    PPC6024 + Load the punch buffer from AC(4-11) (by performing a logical OR) and start to punch the + character in PBF. (This instruction does not clear the PBF and the punch I/O flag.) +
    PLS6026 + Clear the punch I/O flag, clear PBF, load PBF from AC(4-11) and start to punch the + character in PBF. The punch I/O flag is set again when the operation is complete. + Microprogrammed combination of PCF and PPC. +
    + +

    Remark

    + +

    +The IOTs RPE (6010), RCC (6016) and PCE (6020) are not available with older PDP-8 models +(PDP-8, -8/S, -8/I, -8/L). +

    + +

    Paper Tape Formats

    + +

    +There are three basic paper tape formats commonly used in conjunction with the PDP-8 family of computers. +The following paragraphs describe and illustrate these formats. +

    + + + + + + + + + + + + + + +
    + + +

    ASCII Format

    +

    +The ASCII format uses eight channels of the paper tape to represent a single character as shown in the +diagram at left. Channel 8 is normally designated for parity check. The paper tape units of the PDP-8 +family computers do not generate parity, and channel 8 is always punched. +

    +

    +377 (DEL, Rubout; all channels perforated) is used to “correct” typing errors and is ignored +by paper tape rading programs. +

    + + +

    RIM (Read In Mode) Format

    +

    +RIM format tape uses adjacent columns to represent 12-bit binary information directly. +Channels 1 through 6 are used to represent either addresses or information to be stored. +A channel 7 punch indicates that the adjacent column and the following column are to be interpreted as an +address specifiying the location in which the information of the following two columns is to be stored. +The tape leader and trailer of RIM format tape must be punched in channel 8 only (octal 200). +

    +
    + + +

    BIN (Binary) Format

    +

    +BIN format tape is similar to RIM format except that only the first address of consecutive locations is +specified. +An address is designated by a channel 7 punch, and information following an address is stored in sequential +locations after the designated address until another location is specified as an origin. +The tape leader and trailer of BIN format tape must be punched in channel 8 (octal 200) only. +Field setting is designated by channel 8 and 7 punch plus a three digit field number in channels 4 through 6. +

    +

    +The last two columns of a BIN format tape contain a checksum. +The checksum is the sum (modulo 7777) of all preceding columns not containing a channel 8 punch +(the field settings are not included in the checksum). +When the BIN loader halts the PDP-8 with AC ≠ 0, then a checksum error occured while loading the tape. +

    +
    + + + diff --git a/PC8E/English.lproj/PC8EOnlineHelp/pdp8e.png b/PC8E/English.lproj/PC8EOnlineHelp/pdp8e.png new file mode 100644 index 0000000000000000000000000000000000000000..2c0c485d23a4a9a335fe22dfb2ae4604c93d63b3 GIT binary patch literal 1166 zcmY*YZ)_A*5TCcZw|BjA^k^+1)|5s(S}<5?LRyS8Kw3&esEybU`k{de8vS4ie{!Ul znjjP#Vp1hQpjIdrnvhf^%0sPw|Bk0+kJ1Gx4jmf&D)vx zo0;Ftdpp}+UsvPvKIsJjU+u=Kmr48O^62zlY~VIhdef$wDnR+1x!QY_kgS~>U)>Fm zohKKAQ=cp%(7mU2bG3WiotM9;cv;7_asaKMwrbrg6$_YOo3tq6u^^&5)m5aE4sygH ze&-_cyR;C8X$4cC7U_aw9%lfs|8C+I?sNZoiEwLEvm?gR(5YuFuK6CW)JWi zJ%IKMjuKC+OjV8byl4ACn22I9*1A;050s&>EEJrhux&IiA3~$01k<;!V0?cGTDQMJ zkxrrg#|XyTD$r;Rh=~{mA@Xqg7h@L%jNNdO<45YyzI)5Djol?^et#iDY9XJ95Q#bC zd+$ZO^VjrmnrE zPByMU^Lih0Zlko5Uv@ifCV#ksiL-5vE%B+h*Es&zp{+Ri=4$+Dd?KQlY4e<*j|rY^ znku4}LKVSGP|IFO_xCzbPUlVVHg`bIiSJpvc>=-#ncu{l%x z3u#y$fkFY2OxzoF2%Wni3qgQT6%21b^WlaU%33l#16&P{jFo=Wu!Kg0p`t=o{aax6 z$$xZ4s1Pv5fHQ$3yDpAbmM(opdgch^rZ@C;$EwIcv;XELltdDn6+!=Gth}BL1~wes zQnU7*S^R%NR7I^W@Z~mje$kSf>u)F=>8C>j+F~e<<8SIj4!k2f We4z#BSEoX9Q(IkE_4)d(2mS@W-_sBP literal 0 HcmV?d00001 diff --git a/PC8E/English.lproj/PC8EOnlineHelp/rim_tape.png b/PC8E/English.lproj/PC8EOnlineHelp/rim_tape.png new file mode 100644 index 0000000000000000000000000000000000000000..187e756375d0130e9df876b3e14ba8d26d1e739d GIT binary patch literal 8034 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 literal 0 HcmV?d00001 diff --git a/PC8E/English.lproj/PC8EOnlineHelp/styles.css b/PC8E/English.lproj/PC8EOnlineHelp/styles.css new file mode 100644 index 0000000..c18751d --- /dev/null +++ b/PC8E/English.lproj/PC8EOnlineHelp/styles.css @@ -0,0 +1,239 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * styles.css - Online help - Style sheet + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +p { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +p.small { + font-size: 8pt; +} + +a { + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +a:hover { + text-decoration: underline +} + +ul { + margin-left: 1.25em; padding-left: 0em; +} + +li { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +#mainbox { + background-color: #fff; + margin-top: 30px; + margin-right: 26px; + margin-left: 18px; + position: absolute; + top: 10px +} + +#taskbox { + background-color: #eee; + list-style-type: decimal; + list-style-position: outside; + margin-top: 12px; + margin-bottom: 12px; + border: solid 1px #444 +} + +h1 { + font-size: 12pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 6pt; +} + +h2 { + font-size: 12pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 8pt; +} + +h3 { + font-size: 10pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 5pt; +} + +h4 { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 4pt; +} + +/* index.html */ + +table.index { + padding-top: 20px; + width: 100%; +} + +td.banner { + padding: 20px; +} + +td.toc { + padding-top: 10px; + padding-bottom: 10px; + padding-left: 20px; + padding-right:20px; + border-left: 1px solid darkgray; +} + +p.toc { + line-height: 40px; +} + +/* other pages */ + +table { + border-collapse: separate; + border-spacing: 0px; +} + +th { + font-family: "Lucida Grande", Arial, "Sans Serif"; + font-size: 9pt; + font-style: bold; + border-bottom: 1px solid gray; + padding-left: 10px; + padding-right: 10px; +} + +th.left { + text-align: left; +} + +td { + text-align: center; + vertical-align: top; + font-family: "Lucida Grande", Arial, "Sans Serif"; + font-size: 9pt; + padding-left: 10px; + padding-right: 10px; +} + +td.left { + text-align: left; +} + +td.right { + text-align: right; +} + +td.br { + border-right: 1px solid gray; +} + +td.bb { + border-bottom: 1px solid lightgray; +} + +td.bb_left { + text-align: left; + border-bottom: 1px solid lightgray; +} + +td.bbr { + border-bottom: 1px solid lightgray; + border-right: 1px solid gray; +} + +td.opcode { + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_right { + text-align: right; + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_left { + text-align: left; + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tb { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-bottom: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tlb { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-left: 1px solid black; + border-bottom: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tbr { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-bottom: 1px solid black; + border-right: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tlbr { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} diff --git a/PC8E/English.lproj/io-info.plist b/PC8E/English.lproj/io-info.plist new file mode 100644 index 0000000..8c100b7 --- /dev/null +++ b/PC8E/English.lproj/io-info.plist @@ -0,0 +1,59 @@ + + + + + + ioflags + + PC8-E Reader + PC8-E Punch + + ioaddresses + + 1 + 2 + + iots + + + RPE + RSF + RRB + + RFC + + RCC + + + PCE + PSF + PCF + + PPC + + PLS + + + + diff --git a/PC8E/Info.plist b/PC8E/Info.plist new file mode 100644 index 0000000..5467cdc --- /dev/null +++ b/PC8E/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleHelpBookFolder + PC8EOnlineHelp + CFBundleHelpBookName + PC8-E Paper Tape Reader & Punch Help + CFBundleIconFile + + CFBundleIdentifier + de.bernhard-baehr.pdp8e.PC8E + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleShortVersionString + 2.0.2 + CFBundleSignature + ???? + CFBundleVersion + 2.0.2 + NSPrincipalClass + PC8E + + diff --git a/PC8E/PC8E.h b/PC8E/PC8E.h new file mode 100644 index 0000000..8218834 --- /dev/null +++ b/PC8E/PC8E.h @@ -0,0 +1,73 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * ASR33.h - ASR 33 Teletype for the PDP-8/E Simulator + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#define RBF_CHANGED_NOTIFICATION @"pc8eReaderBufferChangedNotification" +#define PBF_CHANGED_NOTIFICATION @"pc8ePunchBufferChangedChangedNotification" + + +@class NSCondition, KeepInMenuWindow, RegisterFormCell, PaperTapeController; + + +@interface PC8E : PDP8Plugin +{ +@public +/* The attributes are public, so the C functions implementing the PDP-8 instructions can + access them directly. No other Cocoa code should use them directly. To ensure this, + the register names are mapped to dummy names with the #defines below. In the source + codes files with the instruction C functions, #define USE_PC8E_REGISTERS_DIRECTLY + to make the registers available. */ + unsigned short RBF; + unsigned long inflag; + unsigned long outflag; + unsigned short output; +@private + unsigned short PBF; // private: not accessed by IOTs + int input; // int: can be EOF == -1 + IBOutlet KeepInMenuWindow *window; + IBOutlet RegisterFormCell *rbfCell; + IBOutlet RegisterFormCell *pbfCell; + IBOutlet PaperTapeController *reader; + IBOutlet PaperTapeController *punch; + NSConditionLock *inputLock; + NSConditionLock *outputLock; +} + +- (void) canContinueInput; +- (void) canContinueOutput; +- (unsigned short) getRBF; +- (void) setRBF:(unsigned short)rbf; +- (unsigned short) getPBF; +- (void) setPBF:(unsigned short)pbf; + +@end + + +#if ! USE_PC8E_REGISTERS_DIRECTLY +#define RBF __dont_use_RBF__ +#define PBF __dont_use_PBF__ +#define inflag __dont_use_inflag__ +#define outflag __dont_use_outflag__ +#define input __dont_use_input__ +#define output __dont_use_output__ +#endif diff --git a/PC8E/PC8E.m b/PC8E/PC8E.m new file mode 100644 index 0000000..b836139 --- /dev/null +++ b/PC8E/PC8E.m @@ -0,0 +1,382 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * PC8E.m - PC8-E Paper Tape Reader and Punch for the PDP-8/E Simulator + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import +#import + +#import "PluginFramework/PluginAPI.h" +#import "PluginFramework/PDP8.h" +#import "PluginFramework/Utilities.h" +#import "PluginFramework/RegisterFormCell.h" +#import "PluginFramework/KeepInMenuWindow.h" +#import "FileDropControlTargetProtocol.h" +#import "PluginFramework/PaperTapeController.h" +#import "PluginFramework/NSThread+MainThread.h" + +#define USE_PC8E_REGISTERS_DIRECTLY 1 + +#import "PC8E.h" +#import "PC8Eiot.h" + + +#define CODER_KEY_RBF @"rbf" +#define CODER_KEY_PBF @"pbf" +#define CODER_KEY_INFLAG @"inflag" +#define CODER_KEY_INMASK @"inmask" +#define CODER_KEY_OUTFLAG @"outflag" +#define CODER_KEY_OUTMASK @"outmask" + +#define NO_OUTPUT 0 +#define OUTPUT 1 +#define NO_INPUT 0 +#define INPUT 1 + +#define READER_CONTINUOUS_DELAY 3333333ull // nanosec. * 300 = 1 sec. => delay for 300 char/sec. +#define READER_STARTSTOP_DELAY 40000000ull // nanosec. * 25 = 1 sec. => delay for 25 char/sec. +#define PUNCH_DELAY 20000000ull // nanosec. * 50 = 1 sec. => delay for 50 char/sec. +#define STOP_DELAY 6000000ull // "stop delay" occurs 6 ms after RFC + + +@implementation PC8E + + +API_VERSION + + +#pragma mark Plugin Methods + + +- (NSArray *) iotsForAddress:(int)ioAddress +{ + return ioAddress == 01 ? + [NSArray arrayWithObjects: + [NSValue valueWithPointer:i6010], + [NSValue valueWithPointer:i6011], + [NSValue valueWithPointer:i6012], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:i6014], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:i6016], + [NSValue valueWithPointer:nil], + nil] : + [NSArray arrayWithObjects: + [NSValue valueWithPointer:i6020], + [NSValue valueWithPointer:i6021], + [NSValue valueWithPointer:i6022], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:i6024], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:i6026], + [NSValue valueWithPointer:nil], + nil]; +} + + +- (NSArray *) skiptestsForAddress:(int)ioAddress +{ + return ioAddress == 01 ? + [NSArray arrayWithObjects: + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:s6011], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + nil] : + [NSArray arrayWithObjects: + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:s6021], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + nil]; +} + + +- (void) setIOFlag:(unsigned long)flag forIOFlagName:(NSString *)name; +{ + if (inflag) + outflag = flag; + else + inflag = flag; +} + + +- (void) CAF:(int)ioAddress +{ + if (ioAddress == 01) { // CAF is called twice, ignore second call (01 == reader I/O address) + RBF = 0; + PBF = 0; + [pdp8 setInterruptMaskBits:inflag | outflag]; + [pdp8 clearIOFlagBits:inflag | outflag]; + } +} + + +- (void) clearAllFlags:(int)ioAddress +{ + if (ioAddress == 01) // CAF is called twice, ignore second call (01 == reader I/O address) + [self resetDevice]; +} + + +- (void) resetDevice +{ + [self setRBF:0]; + [self setPBF:0]; + [pdp8 setInterruptMaskBits:inflag | outflag]; + [pdp8 clearIOFlagBits:inflag | outflag]; +} + + +#pragma mark Thread Handling + + +- (void) realtimeDelay:(uint64_t)matStartTime lastStart:(uint64_t)matLastStartTime +{ + int speed = [pdp8 getGoSpeed]; + if (speed != GO_AS_FAST_AS_POSSIBLE) { + uint64_t delay; + if (matLastStartTime == 0) // punch with 50 cps + delay = PUNCH_DELAY; + else { // reader + uint64_t delta = absolute2nanoseconds(matStartTime - matLastStartTime); + if (delta > READER_STARTSTOP_DELAY) // next char already buffered + delay = 0; + else + if (delta > STOP_DELAY) // start stop mode with 25 cps + delay = READER_STARTSTOP_DELAY; + else // continuous read with 300 cps + delay = READER_CONTINUOUS_DELAY; + } + if (speed == GO_WITH_PDP8_SPEED) + mach_wait_until (matStartTime + nanoseconds2absolute(delay)); + else { + while (mach_absolute_time() < matStartTime + nanoseconds2absolute(delay)) + ; + } + } +} + + +- (void) canContinueInput +{ + if ([inputLock tryLockWhenCondition:NO_INPUT]) + [inputLock unlockWithCondition:INPUT]; +#if ! defined(NS_BLOCK_ASSERTIONS) + else + NSLog (@"PDP-8 software bug: RFC or RCC executed before preceding tape read finished"); +#endif +} + + +- (void) canContinueOutput +{ + if ([outputLock tryLockWhenCondition:NO_OUTPUT]) + [outputLock unlockWithCondition:OUTPUT]; +#if ! defined(NS_BLOCK_ASSERTIONS) + else + NSLog (@"PDP-8 software bug: PPC or PLS executed before preceding tape punch finished"); +#endif +} + + +- (void) pc8eReaderThread:(id)object +{ + [[NSAutoreleasePool alloc] init]; + uint64_t matStartTime = mach_absolute_time(); + uint64_t matLastStartTime; + for (;;) { + [inputLock lockWhenCondition:INPUT]; + matLastStartTime = matStartTime; + matStartTime = mach_absolute_time(); + input = [reader getChar]; + if (input != EOF) + [self setRBF:input & 0377]; // strip off Unicode characters etc. + [inputLock unlockWithCondition:NO_INPUT]; + [self realtimeDelay:matStartTime lastStart:matLastStartTime]; + if (input != EOF) + [pdp8 setIOFlagBits:inflag]; + } +} + + +- (void) pc8ePunchThread:(id)object +{ + [[NSAutoreleasePool alloc] init]; + for (;;) { + [outputLock lockWhenCondition:OUTPUT]; + uint64_t matStart = mach_absolute_time(); + [self setPBF:output]; + BOOL done = [punch putChar:output handleBackspace:NO]; + [outputLock unlockWithCondition:NO_OUTPUT]; + [self realtimeDelay:matStart lastStart:0]; + if (done) + [pdp8 setIOFlagBits:outflag]; + } +} + + +#pragma mark Register Access + + +- (unsigned short) getRBF +{ + return RBF; +} + + +- (void) notifyRBF +{ + NSAssertRunningOnMainThread (); + [[NSNotificationCenter defaultCenter] postNotificationName:RBF_CHANGED_NOTIFICATION object:self]; + +} + + +- (void) setRBF:(unsigned short)rbf +{ + NSAssert1 ((rbf & ~0377) == 0, @"Bad RBF: 0%o", rbf); + RBF = rbf; + if ([NSThread isMainThread]) + [[NSNotificationCenter defaultCenter] + postNotificationName:RBF_CHANGED_NOTIFICATION object:self]; + else + [self performSelectorOnMainThread:@selector(notifyRBF) withObject:self waitUntilDone:NO]; +} + + +- (unsigned short) getPBF +{ + return PBF; +} + + +- (void) notifyPBF +{ + NSAssertRunningOnMainThread (); + [[NSNotificationCenter defaultCenter] postNotificationName:PBF_CHANGED_NOTIFICATION object:self]; + +} + + +- (void) setPBF:(unsigned short)pbf +{ + NSAssert1 ((pbf & ~0377) == 0, @"Bad PBF: 0%o", pbf); + PBF = pbf; + if ([NSThread isMainThread]) + [[NSNotificationCenter defaultCenter] + postNotificationName:PBF_CHANGED_NOTIFICATION object:self]; + else + [self performSelectorOnMainThread:@selector(notifyPBF) withObject:self waitUntilDone:NO]; +} + + +#pragma mark Notifications + + +- (void) notifyApplicationWillTerminate:(NSNotification *)notification +{ + // NSLog (@"PC8E notifyApplicationWillTerminate"); + [[NSNotificationCenter defaultCenter] removeObserver:self name:NSUserDefaultsDidChangeNotification + object:nil]; + NSMutableData *data = [NSMutableData data]; + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + [self encodeWithCoder:archiver]; + [archiver finishEncoding]; + [archiver release]; + [[NSUserDefaults standardUserDefaults] setObject:data forKey:[self pluginName]]; +} + + +- (void) notifyPluginsLoaded:(NSNotification *)notification +{ + [window orderBackFromDefaults:self]; + [window makeFirstResponder:window]; +} + + +#pragma mark Initialization + + +- (id) initWithCoder:(NSCoder *)coder +{ + self = [super init]; + [self setRBF:[coder decodeIntForKey:CODER_KEY_RBF]]; + [self setPBF:[coder decodeIntForKey:CODER_KEY_PBF]]; + [coder decodeBoolForKey:CODER_KEY_INFLAG] ? + [pdp8 setIOFlagBits:inflag] : [pdp8 clearIOFlagBits:inflag]; + [coder decodeBoolForKey:CODER_KEY_INMASK] ? + [pdp8 setInterruptMaskBits:inflag] : [pdp8 clearInterruptMaskBits:inflag]; + [coder decodeBoolForKey:CODER_KEY_OUTFLAG] ? + [pdp8 setIOFlagBits:outflag] : [pdp8 clearIOFlagBits:outflag]; + [coder decodeBoolForKey:CODER_KEY_OUTMASK] ? + [pdp8 setInterruptMaskBits:outflag] : [pdp8 clearInterruptMaskBits:outflag]; + return self; +} + + +- (void) encodeWithCoder:(NSCoder *)coder +{ + [coder encodeInt:[self getRBF] forKey:CODER_KEY_RBF]; + [coder encodeInt:[self getPBF] forKey:CODER_KEY_PBF]; + [coder encodeBool:[pdp8 getIOFlagBits:inflag] ? YES : NO forKey:CODER_KEY_INFLAG]; + [coder encodeBool:[pdp8 getInterruptMaskBits:inflag] ? YES : NO forKey:CODER_KEY_INMASK]; + [coder encodeBool:[pdp8 getIOFlagBits:outflag] ? YES : NO forKey:CODER_KEY_OUTFLAG]; + [coder encodeBool:[pdp8 getInterruptMaskBits:outflag] ? YES : NO forKey:CODER_KEY_OUTMASK]; +} + + +- (void) pluginDidLoad +{ + [rbfCell setupRegisterFor:self getRegisterValue:@selector(getRBF) setRegisterValue:@selector(setRBF:) + changedNotificationName:RBF_CHANGED_NOTIFICATION mask:0377 base:8]; + [pbfCell setupRegisterFor:self getRegisterValue:@selector(getPBF) setRegisterValue:@selector(setPBF:) + changedNotificationName:PBF_CHANGED_NOTIFICATION mask:0377 base:8]; + NSData *data = [[NSUserDefaults standardUserDefaults] dataForKey:[self pluginName]]; + if (data) { + NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; + self = [self initWithCoder:unarchiver]; + [unarchiver finishDecoding]; + [unarchiver release]; + } + inputLock = [[NSConditionLock alloc] initWithCondition:NO_INPUT]; + outputLock = [[NSConditionLock alloc] initWithCondition:NO_OUTPUT]; + [NSThread detachNewThreadSelector:@selector(pc8eReaderThread:) toTarget:self withObject:nil]; + [NSThread detachNewThreadSelector:@selector(pc8ePunchThread:) toTarget:self withObject:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyApplicationWillTerminate:) + name:NSApplicationWillTerminateNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyPluginsLoaded:) + name:PLUGINS_LOADED_NOTIFICATION object:nil]; +} + + +@end diff --git a/PC8E/PC8Eiot.c b/PC8E/PC8Eiot.c new file mode 100644 index 0000000..8cdad78 --- /dev/null +++ b/PC8E/PC8Eiot.c @@ -0,0 +1,124 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * PC8Eiot.c - PC8-E Paper Tape Reader & Punch IOTs + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#define USE_PC8E_REGISTERS_DIRECTLY 1 +#define USE_PDP8_REGISTERS_DIRECTLY 1 + +#import "PluginFramework/PluginAPI.h" +#import "PluginFramework/PDP8.h" + +#import "PC8E.h" +#import "PC8Eiot.h" + + +void i6010 (void) /* RPE 6010 */ +{ + pdp8->IMASK |= PLUGIN_POINTER(PC8E)->inflag | PLUGIN_POINTER(PC8E)->outflag; + EXECUTION_TIME (12); +} + + +void i6011 (void) /* RSF 6011 */ +{ + if (pdp8->IOFLAGS & PLUGIN_POINTER(PC8E)->inflag) + pdp8->PC++; + EXECUTION_TIME (12); +} + + +unsigned s6011 (void) /* RSF 6011 skiptest */ +{ + return pdp8->IOFLAGS & PLUGIN_POINTER(PC8E)->inflag; +} + + +void i6012 (void) /* RRB 6012 */ +{ + pdp8->AC |= PLUGIN_POINTER(PC8E)->RBF; + pdp8->IOFLAGS &= ~PLUGIN_POINTER(PC8E)->inflag; + EXECUTION_TIME (12); +} + + +void i6014 (void) /* RFC 6014 */ +{ + pdp8->IOFLAGS &= ~PLUGIN_POINTER(PC8E)->inflag; + [PLUGIN_POINTER(PC8E) canContinueInput]; + EXECUTION_TIME (12); +} + + +void i6016 (void) /* RCC 6016 */ +{ + pdp8->AC |= PLUGIN_POINTER(PC8E)->RBF; + i6014 (); +} + + +void i6020 (void) /* PCE 6020 */ +{ + pdp8->IMASK &= ~(PLUGIN_POINTER(PC8E)->inflag | PLUGIN_POINTER(PC8E)->outflag); + EXECUTION_TIME (12); +} + + +void i6021 (void) /* PSF 6021 */ +{ + if (pdp8->IOFLAGS & PLUGIN_POINTER(PC8E)->outflag) + pdp8->PC++; + EXECUTION_TIME (12); +} + + +unsigned s6021 (void) /* PSF 6021 skiptest */ +{ + return pdp8->IOFLAGS & PLUGIN_POINTER(PC8E)->outflag; +} + + +void i6022 (void) /* PCF 6022 */ +{ + pdp8->IOFLAGS &= ~PLUGIN_POINTER(PC8E)->outflag; + PLUGIN_POINTER(PC8E)->output = 0; + EXECUTION_TIME (12); +} + + +void i6024 (void) /* PPC 6024 */ +{ + PLUGIN_POINTER(PC8E)->output |= pdp8->AC & 0377; + [PLUGIN_POINTER(PC8E) canContinueOutput]; + EXECUTION_TIME (12); +} + + +void i6026 (void) /* PLS 6026 */ +{ + pdp8->IOFLAGS &= ~PLUGIN_POINTER(PC8E)->outflag; + PLUGIN_POINTER(PC8E)->output = pdp8->AC & 0377; + [PLUGIN_POINTER(PC8E) canContinueOutput]; + EXECUTION_TIME (12); +} diff --git a/PC8E/PC8Eiot.h b/PC8E/PC8Eiot.h new file mode 100644 index 0000000..9355712 --- /dev/null +++ b/PC8E/PC8Eiot.h @@ -0,0 +1,36 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * PC8Eiot.h - PC8-E Paper Tape Reader & Punch IOTs + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +extern void i6010 (void); /* RPE 6010 */ +extern void i6011 (void); /* RSF 6011 */ +extern unsigned s6011 (void); /* RSF (skip test) */ +extern void i6012 (void); /* RRB 6012 */ +extern void i6014 (void); /* RFC 6014 */ +extern void i6016 (void); /* RRB RFC 6016 */ +extern void i6020 (void); /* PCE 6020 */ +extern void i6021 (void); /* PSF 6021 */ +extern unsigned s6021 (void); /* PSF (skip test) */ +extern void i6022 (void); /* PCF 6022 */ +extern void i6024 (void); /* PPC 6024 */ +extern void i6026 (void); /* PLS 6026 */ diff --git a/Panels/BootstrapPanelController.h b/Panels/BootstrapPanelController.h new file mode 100644 index 0000000..3ca1088 --- /dev/null +++ b/Panels/BootstrapPanelController.h @@ -0,0 +1,39 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * BootstrapPanelController.h - Controller for the bootstrap panel + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class PDP8; + + +@interface BootstrapPanelController : NSObject +{ +@private + IBOutlet NSMatrix *loaderRadioButtons; + IBOutlet NSButton *adjustPCCheckbox; + IBOutlet NSStepper *ifStepper; + IBOutlet PDP8 *pdp8; +} + +- (IBAction) loadBootstrapLoader:(id)sender; + +@end diff --git a/Panels/BootstrapPanelController.m b/Panels/BootstrapPanelController.m new file mode 100644 index 0000000..a589f0b --- /dev/null +++ b/Panels/BootstrapPanelController.m @@ -0,0 +1,121 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * BootstrapPanelController.h - Controller for the bootstrap panel + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "BootstrapPanelController.h" +#import "PDP8.h" + + +@implementation BootstrapPanelController + + +#define LOW_SPEED_RIM_TAG 0 +#define HIGH_SPEED_RIM_TAG 1 +#define BIN_LOADER_TAG 2 +#define RK8E_BOOTCODE_TAG 3 + +#define LOW_SPEED_RIM_TAPE @"lowspeedRIM.bin" +#define HIGH_SPEED_RIM_TAPE @"highspeedRIM.bin" +#define BIN_LOADER_TAPE @"binLoader.rim" +#define RK8E_BOOTCODE_TAPE @"rk8eBootcode.bin" + + +- (void) awakeFromNib +{ + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notifyMemorySizeChanged:) + name:KM8E_MOUNT_NOTIFICATION object:nil]; +} + + +- (BOOL) validateMenuItem:(NSMenuItem *)menuItem // only the Load Bootstrap Loader menu item +{ + return ! [pdp8 isGoing]; +} + + +- (void) notifyMemorySizeChanged:(NSNotification *)notification +{ + [ifStepper setMaxValue:([pdp8 memorySize] >> 12) - 1]; + [[ifStepper target] performSelector:[ifStepper action] withObject:ifStepper]; +} + + +- (IBAction) loadBootstrapLoader:(id)sender +{ + unsigned addr, field; + NSString *error, *path, *file; + + NSBundle *mainBundle = [NSBundle mainBundle]; + + switch ([[loaderRadioButtons selectedCell] tag]) { + case LOW_SPEED_RIM_TAG : + path = [mainBundle pathForResource:LOW_SPEED_RIM_TAPE ofType:nil]; + file = LOW_SPEED_RIM_TAPE; + field = [ifStepper intValue]; + addr = 07756; + break; + case HIGH_SPEED_RIM_TAG : + path = [mainBundle pathForResource:HIGH_SPEED_RIM_TAPE ofType:nil]; + file = HIGH_SPEED_RIM_TAPE; + field = [ifStepper intValue]; + addr = 07756; + break; + case BIN_LOADER_TAG : + path = [mainBundle pathForResource:BIN_LOADER_TAPE ofType:nil]; + file = BIN_LOADER_TAPE; + field = [ifStepper intValue]; + addr = 07777; + break; + case RK8E_BOOTCODE_TAG : + path = [mainBundle pathForResource:RK8E_BOOTCODE_TAPE ofType:nil]; + file = RK8E_BOOTCODE_TAPE; + field = 0; + addr = 00027; + break; + default : /* to avoid compiler "used uninitialized" warning */ + path = file = nil; + field = addr = 0; + break; + } + error = [pdp8 loadPaperTape:path toField:field]; + if (error) { + if (! path) + path = [NSString stringWithFormat:NSLocalizedString( + @"The resource file %@ is missing in the application bundle.", @""), file]; + NSAlert *alert = [[NSAlert alloc] init]; + [alert setAlertStyle:NSWarningAlertStyle]; + [alert setMessageText:error]; + [alert setInformativeText:path]; + [alert runModal]; + [alert release]; + } else if ([adjustPCCheckbox intValue]) { + [pdp8 setPC:addr]; + [pdp8 setIF:field]; + [pdp8 setIB:field]; + } +} + + +@end diff --git a/Panels/BreakpointController.h b/Panels/BreakpointController.h new file mode 100644 index 0000000..fff8234 --- /dev/null +++ b/Panels/BreakpointController.h @@ -0,0 +1,43 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * BreakpointController.h - Class for maintaining breakpoints + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class BreakpointArray; + + +@interface BreakpointController : NSObject { +@private + IBOutlet NSTableView *tableView; + IBOutlet NSButton *addButton; + IBOutlet NSButton *deleteButton; + IBOutlet NSButton *enableAllButton; + IBOutlet NSButton *disableAllButton; + IBOutlet BreakpointArray *breakpoints; +} + +- (IBAction) addBreakpoint:(id)sender; +- (IBAction) deleteBreakpoint:(id)sender; +- (IBAction) disableAllBreakpoints:(id)sender; +- (IBAction) enableAllBreakpoints:(id)sender; + +@end diff --git a/Panels/BreakpointController.m b/Panels/BreakpointController.m new file mode 100644 index 0000000..43906f8 --- /dev/null +++ b/Panels/BreakpointController.m @@ -0,0 +1,228 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * BreakpointController.m - Class for maintaining breakpoints + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "BreakpointController.h" +#import "BreakpointArray.h" +#import "OctalFormatter.h" +#import "Utilities.h" + + +@implementation BreakpointController + + +/* ADDRESS_COLUMN is the identifier of the address column. The other checkbox + columns must be identified with integers representing the bit mask for the + enabled bit in the breakpoints enable bit mask, i. e. 1, 2, 4, 8,... + Then ALL_BREAKPOINTS is the mask for "all columns enabled". */ + +#define ADDRESS_COLUMN 0 +#define ALL_BREAKPOINTS ((1 << ([tableView numberOfColumns] - 1)) - 1) + + +/* #defines for the cases where the instance must know if it is the + breakpoints or break opcodes controller */ + +#define IS_BREAKPOINT_CONTROLLER ([tableView numberOfColumns] == 2) +#define IS_BREAKOPCODE_CONTROLLER ([tableView numberOfColumns] == 3) + +#define MAX_ADDRESS (IS_BREAKPOINT_CONTROLLER ? 077777 : 07777) + +#define BREAKPOINT_COLUMN 1 +#define USER_BREAKOPCODE_COLUMN 1 +#define SYSTEM_BREAKOPCODE_COLUMN 2 + + +- (void) notifyUpdateBreakpointView:(NSNotification *)notification +{ + // NSLog (@"BreakpointController notifyUpdateBreakpointView"); + [enableAllButton setEnabled:[breakpoints hasBreakpointWithValueNotEqualTo:ALL_BREAKPOINTS]]; + [disableAllButton setEnabled:[breakpoints hasBreakpointWithValueNotEqualTo:0]]; + [tableView reloadData]; +} + + +- (IBAction) addBreakpoint:(id)sender +{ + [[sender window] makeKeyWindow]; + [breakpoints setBreakpointWithIdentifier:0 value:ALL_BREAKPOINTS]; + [tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:0] byExtendingSelection:NO]; + [tableView editColumn:[tableView columnWithIdentifier: + [NSString stringWithFormat:@"%d", ADDRESS_COLUMN]] + row:0 withEvent:nil select:YES]; +} + + +- (IBAction) deleteBreakpoint:(id)sender +{ + int selectedRow = [tableView selectedRow]; + [tableView reloadData]; // when editing, this saves the edited cell that will be deleted + [breakpoints deleteBreakpointsAtIndexes:[tableView selectedRowIndexes]]; + // reselect old row, otherwise selection jumps to the position of the edited but deleted breakpoint + [tableView selectRowIndexes:[NSIndexSet indexSetWithIndex:selectedRow] byExtendingSelection:NO]; +} + + +- (IBAction) enableAllBreakpoints:(id)sender +{ + [breakpoints setAllValues:ALL_BREAKPOINTS]; +} + + +- (IBAction) disableAllBreakpoints:(id)sender +{ + [breakpoints setAllValues:0]; +} + + +- (void) tableViewSelectionDidChange:(NSNotification *)notification +{ + [deleteButton setEnabled:[tableView numberOfSelectedRows] != 0]; +} + + +- (int) numberOfRowsInTableView:(NSTableView *)tableView +{ + return [breakpoints numberOfBreakpoints]; +} + + +- (id) tableView:(NSTableView *)tableView + objectValueForTableColumn:(NSTableColumn *)column row:(int)row +{ + int columnID = [[column identifier] intValue]; + return columnID == ADDRESS_COLUMN ? + [NSNumber numberWithInt:[breakpoints identifierAtIndex:row]] : + [NSNumber numberWithBool:[breakpoints valueAtIndex:row] & columnID]; +} + + +- (void) tableView:(NSTableView *)tabView setObjectValue:(id)object + forTableColumn:(NSTableColumn *)column row:(int)row +{ + int columnID = [[column identifier] intValue]; + if (columnID == ADDRESS_COLUMN) { + [breakpoints deleteBreakpointAtIndex:row]; + if ([object isKindOfClass:[NSNumber class]]) + [tableView selectRowIndexes:[NSIndexSet indexSetWithIndex: + [breakpoints setBreakpointWithIdentifier:[object intValue] + value:ALL_BREAKPOINTS]] + byExtendingSelection:NO]; + else { + NSIndexSet *index = [breakpoints setBreakpointsWithIdentifierArray:object + value:ALL_BREAKPOINTS]; + [tableView selectRowIndexes:index byExtendingSelection:NO]; + row = [index firstIndex]; + } + [tableView editColumn:0 row:0 withEvent:nil select:NO]; + // [tableView abortEditing] does not work, so edit an invalid cell + [tableView scrollRowToVisible:row]; + [tableView reloadData]; + [enableAllButton setEnabled:[breakpoints hasBreakpointWithValueNotEqualTo:ALL_BREAKPOINTS]]; + [disableAllButton setEnabled:[breakpoints hasBreakpointWithValueNotEqualTo:0]]; + } else { + unsigned value = [breakpoints valueAtIndex:row]; + if ([[NSApp currentEvent] modifierFlags] & NSAlternateKeyMask) + value = value ? 0 : ALL_BREAKPOINTS; + else + value = (value & columnID) ? (value & ~columnID) : (value | columnID); + [breakpoints setBreakpointWithIdentifier:[breakpoints identifierAtIndex:row] value:value]; + } +} + + +- (NSString *) tableView:(NSTableView *)tabView toolTipForCell:(NSCell *)cell + rect:(NSRectPointer)rect tableColumn:(NSTableColumn *)column row:(int)row + mouseLocation:(NSPoint)mouseLocation +{ + switch ([[column identifier] intValue]) { + case ADDRESS_COLUMN : + return IS_BREAKPOINT_CONTROLLER ? + NSLocalizedString( + @"Address where the PDP-8 halts when the breakpoint is enabled", @"") : + NSLocalizedString( + @"Opcode that causes the PDP-8 to halt when enabled for the current mode", @""); + case BREAKPOINT_COLUMN | USER_BREAKOPCODE_COLUMN : + return IS_BREAKPOINT_CONTROLLER ? + NSLocalizedString(@"Enables or disables this breakpoint", @"") : + NSLocalizedString(@"Enables or disables this break opcode for PDP-8 user mode " + @"(option-click to set user and system mode simultaneously)", @""); + case SYSTEM_BREAKOPCODE_COLUMN : + return NSLocalizedString(@"Enables or disables this break opcode for PDP-8 system mode " + @"(option-click to set user and system mode simultaneously)", @""); + + default : + NSAssert (FALSE, @"Unknown column in BreakpointControllers table view"); + break; + } + return nil; +} + + +- (BOOL) control:(NSControl *)control didFailToFormatString:(NSString *)string + errorDescription:(NSString *)error +{ + [control abortEditing]; + NSAlert *alert = [[NSAlert alloc] init]; + [alert setMessageText:error]; + [alert beginSheetModalForWindow:[control window] modalDelegate:self + didEndSelector:nil contextInfo:nil]; + [alert release]; + return NO; +} + + +- (void) awakeFromNib +{ + NSCell *dataCell = [[tableView tableColumnWithIdentifier: + [NSString stringWithFormat:@"%d", ADDRESS_COLUMN]] dataCell]; + [dataCell setFormatter:[OctalFormatter formatterWithBitMask:MAX_ADDRESS wildcardAllowed:YES]]; + [dataCell setFont:[NSFont userFixedPitchFontOfSize:11]]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyUpdateBreakpointView:) + name:BREAKPOINTS_CHANGED_NOTIFICATION object:breakpoints]; + /* set max width = min width of the panel: IB only allows max width one pixel more + than min width, so the user can resize the width for one pixel - bug in IB? */ + NSSize size = [[tableView window] minSize]; + size.height = [[tableView window] maxSize].height; + [[tableView window] setMaxSize:size]; + if (runningOnLionOrNewer()) { // move the + and - button title one pixel up + NSMutableParagraphStyle *style= [[[NSMutableParagraphStyle alloc] init] autorelease]; + [style setAlignment:NSCenterTextAlignment]; + NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithFloat:1], NSBaselineOffsetAttributeName, + style, NSParagraphStyleAttributeName, nil]; + [addButton setAttributedTitle: + [[[NSAttributedString alloc] initWithString:[addButton title] attributes:dict] autorelease]]; + [deleteButton setAttributedTitle: + [[[NSAttributedString alloc] initWithString:[deleteButton title] attributes:dict] autorelease]]; + } + adjustTableHeaderForElCapitan (tableView); +} + + +@end + + diff --git a/Panels/PreferencesController.h b/Panels/PreferencesController.h new file mode 100644 index 0000000..72bb6cf --- /dev/null +++ b/Panels/PreferencesController.h @@ -0,0 +1,36 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * PreferencesController.h - Controller for the preferences panel + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#define PREF_PANE_EXTENSION @"prefPane" + + +@interface PreferencesController : NSObject +{ +@private + IBOutlet NSPanel *prefPanel; + NSArray *prefPaneIdentifiers; + NSPreferencePane *currentPrefPane; +} + +@end diff --git a/Panels/PreferencesController.m b/Panels/PreferencesController.m new file mode 100644 index 0000000..cb900d1 --- /dev/null +++ b/Panels/PreferencesController.m @@ -0,0 +1,228 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * PreferencesController.m - Controller for the preferences panel + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import +#import + +#import "PreferencesController.h" +#import "NSMutableArray+BinarySearch.h" + + +#define PREFS_PANEL_TOPLEFT_KEY @"PrefsPanel TopLeft" + + +@implementation NSBundle (OrderInPreferencesPanelToolbar) + + +- (NSComparisonResult) compareOrderInPreferencesPanelToolbarInfoPlistKey:(NSBundle *)bundle +{ + return [[self objectForInfoDictionaryKey:@"OrderInPreferencesPanelToolbar"] + compare:[bundle objectForInfoDictionaryKey:@"OrderInPreferencesPanelToolbar"]]; +} + + +@end + + +@implementation PreferencesController + + +#pragma mark Toolbar + + +- (void) setupToolbar +{ + NSToolbar *toolbar = [[[NSToolbar alloc] initWithIdentifier:@"PrefsPanelToolbar"] autorelease]; + [toolbar setAllowsUserCustomization:NO]; + [toolbar setAutosavesConfiguration:YES]; + [toolbar setDelegate:self]; + [prefPanel setToolbar:toolbar]; + [prefPanel setShowsToolbarButton:YES]; + [toolbar setSelectedItemIdentifier:[prefPaneIdentifiers objectAtIndex:0]]; +} + + +- (NSToolbarItem *) toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)identifier + willBeInsertedIntoToolbar:(BOOL)willBeInserted +{ + NSToolbarItem *toolbarItem = + [[[NSToolbarItem alloc] initWithItemIdentifier:identifier] autorelease]; + NSBundle *bundle = [NSBundle bundleWithIdentifier:identifier]; + [toolbarItem setLabel:[bundle objectForInfoDictionaryKey:@"NSPrefPaneIconLabel"]]; + [toolbarItem setImage:[[[NSImage alloc] initWithContentsOfFile:[bundle pathForResource: + [bundle objectForInfoDictionaryKey:@"NSPrefPaneIconFile"] ofType:nil]] autorelease]]; + [toolbarItem setTarget:self]; + [toolbarItem setAction:@selector(selectPreferencePane:)]; + return toolbarItem; +} + + +- (NSArray *) toolbarDefaultItemIdentifiers:(NSToolbar *)toolbar +{ + return prefPaneIdentifiers; +} + + +- (NSArray *) toolbarAllowedItemIdentifiers:(NSToolbar *)toolbar +{ + return prefPaneIdentifiers; +} + + +- (NSArray *) toolbarSelectableItemIdentifiers:(NSToolbar *)toolbar +{ + return prefPaneIdentifiers; +} + + +#pragma mark Initialization + + +- (void) findPrefPanesAtPath:(NSString *)path addToArray:(NSMutableArray *)array +{ + NSString *bundleName; + NSBundle *bundle; + + NSDirectoryEnumerator *bundlePathEnum = [[NSFileManager defaultManager] enumeratorAtPath:path]; + while ((bundleName = [bundlePathEnum nextObject])) { + if ([[bundleName pathExtension] isEqualToString:PREF_PANE_EXTENSION]) { + [bundlePathEnum skipDescendents]; + bundle = [NSBundle bundleWithPath:[path stringByAppendingPathComponent:bundleName]]; + if (bundle) + [array addObject:bundle toArraySortedBy: + @selector(compareOrderInPreferencesPanelToolbarInfoPlistKey:) + replaceExistingObject:YES]; + } + } +} + + +- (NSArray *) findPrefPanes +{ + NSEnumerator *enumerator; + NSBundle *bundle; + + NSMutableArray *prefPaneBundles = [NSMutableArray array]; + [self findPrefPanesAtPath:[[NSBundle mainBundle] sharedSupportPath] addToArray:prefPaneBundles]; + [self findPrefPanesAtPath:[[NSBundle mainBundle] builtInPlugInsPath] addToArray:prefPaneBundles]; + NSMutableArray *prefPaneIdents = [NSMutableArray array]; + enumerator = [prefPaneBundles objectEnumerator]; + while ((bundle = [enumerator nextObject])) + [prefPaneIdents addObject:[bundle bundleIdentifier]]; + return prefPaneIdents; +} + + +#pragma mark Pane Handling + + +- (void) resizeWindowForContentView:(NSView *)view +{ + NSRect windowFrame = + [NSPanel contentRectForFrameRect:[prefPanel frame] styleMask:[prefPanel styleMask]]; + float newWindowHeight = NSHeight([view frame]); + if ([[prefPanel toolbar] isVisible]) + newWindowHeight += NSHeight(windowFrame) - NSHeight([[prefPanel contentView] frame]); + NSRect newWindowFrame = [NSPanel frameRectForContentRect: + NSMakeRect(NSMinX(windowFrame), NSMaxY(windowFrame) - newWindowHeight, + NSWidth(windowFrame), newWindowHeight) styleMask:[prefPanel styleMask]]; + [prefPanel setFrame:newWindowFrame display:YES animate:[prefPanel isVisible]]; + } + + +- (void) selectPreferencePaneWithIdentifier:(NSString *)identifier +{ + if (currentPrefPane) { + if ([currentPrefPane shouldUnselect] != NSUnselectNow) { + NSLog (@"Handle pref pane unwilling to unselect"); + return; + } + [currentPrefPane willUnselect]; + [[currentPrefPane mainView] removeFromSuperview]; + [currentPrefPane didUnselect]; + [currentPrefPane release]; + currentPrefPane = nil; + } + NSBundle *prefBundle = [NSBundle bundleWithIdentifier:identifier]; + currentPrefPane = [[[prefBundle principalClass] alloc] initWithBundle:prefBundle]; + if ([currentPrefPane loadMainView]) { + [currentPrefPane willSelect]; + [self resizeWindowForContentView:[currentPrefPane mainView]]; + [prefPanel setContentView:[currentPrefPane mainView]]; + [prefPanel setTitle:[prefBundle objectForInfoDictionaryKey:@"PrefPaneWindowTitle"]]; + [currentPrefPane didSelect]; + [prefPanel setInitialFirstResponder:[currentPrefPane initialKeyView]]; + } else + NSLog (@"Pref pane loadMainView failed"); +} + + +- (IBAction) selectPreferencePane:(id)sender +{ + [[prefPanel toolbar] setSelectedItemIdentifier:[sender itemIdentifier]]; + [self selectPreferencePaneWithIdentifier:[sender itemIdentifier]]; +} + + +- (void) windowWillClose:(NSNotification *)notification +{ + [currentPrefPane willUnselect]; + [currentPrefPane didUnselect]; +} + + +- (void) windowDidMove:(NSNotification *)notificatin +{ + /* because of the panel resizing, we can't use the auto frame save feature */ + NSRect frame = [prefPanel frame]; + NSPoint topLeft = frame.origin; // bottom left + topLeft.y += NSHeight(frame); // top left + [[NSUserDefaults standardUserDefaults] setObject: + [NSString stringWithFormat:@"%f %f", topLeft.x, topLeft.y] forKey:PREFS_PANEL_TOPLEFT_KEY]; +} + + +- (void) windowDidBecomeKey:(NSNotification *)notification +{ + if (prefPaneIdentifiers == nil) { // initialization + prefPaneIdentifiers = [[self findPrefPanes] retain]; + [self setupToolbar]; + } + if (currentPrefPane == nil) { + [self selectPreferencePaneWithIdentifier:[prefPaneIdentifiers objectAtIndex:0]]; + NSString *str = [[NSUserDefaults standardUserDefaults] objectForKey:PREFS_PANEL_TOPLEFT_KEY]; + if (str) { // restore old panel position + NSScanner *scanner = [NSScanner scannerWithString:str]; + NSPoint topLeft; + if ([scanner scanFloat:&topLeft.x] && [scanner scanFloat:&topLeft.y]) + [prefPanel setFrameTopLeftPoint:topLeft]; + else + [prefPanel center]; + } else + [prefPanel center]; + } +} + + +@end diff --git a/Plugins/HelpMenuManager.h b/Plugins/HelpMenuManager.h new file mode 100644 index 0000000..bbd047c --- /dev/null +++ b/Plugins/HelpMenuManager.h @@ -0,0 +1,35 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * HelpMenuManager.h - Manager for Help menu items of plugins + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@interface HelpMenuManager : NSObject +{ +@private + NSMutableArray *registeredHelpBookDomains; +} + ++ (HelpMenuManager *) sharedHelpMenuManager; + +- (void) addBundleHelp:(NSBundle *)bundle; + +@end diff --git a/Plugins/HelpMenuManager.m b/Plugins/HelpMenuManager.m new file mode 100644 index 0000000..4f87f1b --- /dev/null +++ b/Plugins/HelpMenuManager.m @@ -0,0 +1,167 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * HelpMenuManager.m - Manager for Help menu items of plugins + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "Utilities.h" +#import "HelpMenuManager.h" +#import "NSFileManager+Additions.h" + + +@implementation HelpMenuManager + + ++ (HelpMenuManager *) sharedHelpMenuManager +{ + static HelpMenuManager *sharedHelpMenuManager; + + if (! sharedHelpMenuManager) + sharedHelpMenuManager = [[self alloc] init]; + return sharedHelpMenuManager; +} + + +- (HelpMenuManager *) init +{ + self = [super init]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyApplicationWillTerminate:) + name:NSApplicationWillTerminateNotification object:nil]; + registeredHelpBookDomains = [[NSMutableArray alloc] initWithCapacity:10]; + return self; +} + + +- (void) unregisterHelpBookForDomain:(NSString *)domain +// see http://lists.apple.com/archives/carbon-development/2003/Nov/msg00090.html +{ + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithDictionary: + [defaults persistentDomainForName:@"com.apple.help"]]; + [dict removeObjectForKey:domain]; + [defaults setPersistentDomain:dict forName:@"com.apple.help"]; +} + + +- (void) notifyApplicationWillTerminate:(NSNotification *)notification +{ + NSString *domain; + + NSEnumerator *enumerator = [registeredHelpBookDomains objectEnumerator]; + while ((domain = [enumerator nextObject])) + [self unregisterHelpBookForDomain:domain]; +} + + +- (NSString *) helpUrlForId:(NSString *)id +// extract the URL of the help page from ~/Library/Preferences/com.apple.help.plist (Lion and better) +// for Lion and Mountain Lion, the ID is the title of the help book +// for Mavericks, the ID is the bundle identifier of the plugin containing the help book +{ + NSArray *array; + + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSDictionary *dict = [defaults persistentDomainForName:@"com.apple.help"]; + + dict = [dict valueForKey:@"RegisteredBooks"]; + NSEnumerator *enumerator = [dict objectEnumerator]; + while ((array = [enumerator nextObject])) { + dict = [array objectAtIndex:0]; + if ([id isEqualToString:[dict objectForKey:@"id"]]) + return [NSString stringWithFormat:@"%@index.html", [dict objectForKey:@"url"]]; + } + return nil; +} + + +- (void) openHelpUrl:(NSString *)url +// open the HelpViewer.app via AppleScript with the "handle URL" command (Lion only) +{ + NSString *source = [NSString stringWithFormat: + @"tell app \"HelpViewer\"\nactivate\nhandle URL \"%@\"\nend tell", url]; + NSAppleScript *script = [[[NSAppleScript alloc] initWithSource:source] autorelease]; + NSDictionary *error = nil; + [script executeAndReturnError:&error]; + if (error) + NSLog (@"AppleScript error while opening HelpViewer: %@", error); +} + + +- (void) showHelp:(id)sender +{ + NSString *title = [sender title]; + + if (runningOnLionOrNewer()) + // Help book lookup does not work as before, don't know why. + // We now use AppleScript to open HelpViewer with the URL of the help page. + [self openHelpUrl:[self helpUrlForId:(runningOnMavericksOrNewer() ? + [sender representedObject] : title)]]; + else + AHGotoPage (title, NULL, NULL); +} + + +- (void) addHelpMenuItem:(NSString *)title id:(NSString *)id +{ + NSMenu *helpMenu = [[[NSApp mainMenu] itemWithTitle:NSLocalizedString(@"Help", @"")] submenu]; + int n = [helpMenu numberOfItems]; + int i; + for (i = 1; i < n; i++) { + switch ([[[helpMenu itemAtIndex:i] title] compare:title]) { + case NSOrderedSame : + n = -1; + break; + case NSOrderedDescending : + n = i; + break; + default : + break; + } + } + if (n > 0) { + NSMenuItem *item = [helpMenu insertItemWithTitle:title action:@selector(showHelp:) + keyEquivalent:@"" atIndex:n]; + [item setTarget:self]; + [item setRepresentedObject:id]; + } +} + + +- (void) addBundleHelp:(NSBundle *)bundle +{ + FSRef fsRef; + + if ([[NSFileManager defaultManager] fsRef:&fsRef forPath:[bundle bundlePath]]) { + [self unregisterHelpBookForDomain:[bundle bundleIdentifier]]; + if (AHRegisterHelpBook(&fsRef) == noErr) { + [registeredHelpBookDomains addObject:[bundle bundleIdentifier]]; + NSString *bookTitle = [[bundle infoDictionary] objectForKey:@"CFBundleHelpBookName"]; + if (bookTitle) + [self addHelpMenuItem:bookTitle id:[bundle bundleIdentifier]]; + } + } +} + + +@end diff --git a/Plugins/Info.plist b/Plugins/Info.plist new file mode 100644 index 0000000..348a326 --- /dev/null +++ b/Plugins/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + PluginFramework + CFBundleIdentifier + de.bernhard-baehr.pdp8e.PluginFramework + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleVersion + 2.0.2 + CFBundleShortVersionString + 2.0.2 + + diff --git a/Plugins/PluginAPI.h b/Plugins/PluginAPI.h new file mode 100644 index 0000000..6489025 --- /dev/null +++ b/Plugins/PluginAPI.h @@ -0,0 +1,93 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * PluginAPI.h - Plugin API Definitions for PDP-8/E I/O Device Plugins + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#define PLUGIN_API_VERSION_0 0 +#define CURRENT_PLUGIN_API_VERSION PLUGIN_API_VERSION_0 // see apiVersion method, below +#define API_VERSION - (unsigned) apiVersion { \ + LOG_ASSERTING (); \ + return CURRENT_PLUGIN_API_VERSION; \ + } + + +#define DEFAULT_IO_INFO_FILENAME @"io-info" // see iotInformationPlistName method + // keys in this property list: +#define IO_INFO_IOFLAGS_KEY @"ioflags" // an array of I/O flag names in the plist +#define IO_INFO_IOADDRESSES_KEY @"ioaddresses" // an array of I/O addresses in the plist +#define IO_INFO_IOTS_KEY @"iots" // an array of IOT mnemonics in the plist + + +/* Notification that is posted after all plugins are loaded. Plugins are loaded on the + NSApplicationWillFinishLaunchingNotification, then on the NSApplicationDidFinishLaunchingNotification, + the PLUGINS_LOADED_NOTIFICATION is posted. Use this notification e. g. to make plugin windows visible + to avoid screen flicker. */ +#define PLUGINS_LOADED_NOTIFICATION @"PluginsLoadedNotification" + + +@class PDP8; + + +@interface PDP8Plugin : NSObject +{ +@private + NSBundle *bundle; +@protected + PDP8 *pdp8; +} + +- (void) setPDP8:(PDP8 *)p8; // gives the plugin a pointer to the global PDP-8 object +- (unsigned) apiVersion; // get the API compiletime version, you must define this + // method in your implementation with the API_VERSION macro, above +- (NSBundle *) bundle; // returns the plugin bundle private variable +- (void) setBundle:(NSBundle *)bndl; // sets the plugin bundle private variable +- (NSString *) pluginName; // returns the plugin name, i. e. file system name of the bundle +- (void *) pluginPointer; // returns a pointer of the plugin instance that can be accessed + // by the IOT functions via the PLUGIN_POINTER macro from pdp8.h + // useful for multiinstance plugins to access the correct instance +- (NSString *) ioInformationPlistName; // returns the name (in the localizable resources directory) + // for the property list that contains the I/O flag and IOT info +- (NSDictionary *) ioInformation; // returns a dictionary with information about I/O flags and IOTs +- (NSArray *) iotsForAddress:(int)ioAddress; + // get 8 IOTs for an I/O address (nil for unused) +- (NSArray *) skiptestsForAddress:(int)ioAddress; + // get 8 skiptests for an I/O address (nil for unused) + // called after the iotsForAddress method +- (void) setIOFlag:(unsigned long)flag forIOFlagName:(NSString *)name; + // called for each I/O flag name from the property list in that order +- (void) loadNibs; // called after it is known that the I/O device fits into the PDP-8, + // called after the methods above, so they must not access resources + // from nibs +- (void) pluginDidLoad; // called after the plugin has loaded and the PDP-8, the IOTs and + // I/O flags have been setup and the nibs are loaded +- (void) CAF:(int)ioAddress; // called when the CPU performs the CAF instruction; must not update + // the GUI e. g. by sending notifications; is called from non-main + // thread) (note: for devices without I/O adresses, it is not called) +- (void) clearAllFlags:(int)ioAddress; // called when the user operates the Clear key of the KC8-EA console + // (or the equivalent menu item); is called from main thread and must + // update the GUI e. g. by sending notifications + // (note: for devices without I/O addresses, it is not called, but + // you can listen for the CLEAR_ALL_FLAGS_NOTIFICAITON) +- (void) resetDevice; // called when the user resets the simulator (might be nearly + // the same as clearAllFlags:) + +@end diff --git a/Plugins/PluginAPI.m b/Plugins/PluginAPI.m new file mode 100644 index 0000000..6e5b776 --- /dev/null +++ b/Plugins/PluginAPI.m @@ -0,0 +1,149 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * PluginAPI.m - Plugin API Definitions for PDP-8/E I/O Device Plugins + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "PluginAPI.h" +#import "Utilities.h" + + +@implementation PDP8Plugin + + +PDP8 *pdp8; // plugin local pdp8 variable for the IOT functions + + +static void setPDP8 (PDP8 *p8) +{ + pdp8 = p8; // set the plugin local pdp8 variable for the IOT function +} + + +- (void) setPDP8:(PDP8 *)p8 +{ + pdp8 = p8; // set the class variable pdp8 + setPDP8 (p8); +} + + +- (unsigned) apiVersion +{ + [[NSAssertionHandler currentHandler] handleFailureInMethod:_cmd object:self + file:[NSString stringWithCString:__FILE__] lineNumber:__LINE__ + description:NSLocalizedString( + @"Your plugin must override the apiVersion method using the API_VERSION macro.", + @"")]; + return CURRENT_PLUGIN_API_VERSION; +} + + +- (NSBundle *) bundle +{ + return bundle; +} + + +- (void) setBundle:(NSBundle *)bndl +{ + bundle = bndl; +} + + +- (NSString *) pluginName +{ + return [[bundle bundlePath] lastPathComponent]; +} + + +- (void *) pluginPointer +{ + return (void *) self; +} + + +- (NSString *) ioInformationPlistName +{ + return DEFAULT_IO_INFO_FILENAME; +} + + +- (NSDictionary *) ioInformation +{ + return [NSDictionary dictionaryWithContentsOfFile: + [bundle pathForResource:[self ioInformationPlistName] ofType:@"plist"]]; +} + + +- (NSArray *) iotsForAddress:(int)ioAddress +{ + return nil; +} + + +- (NSArray *) skiptestsForAddress:(int)ioAddress +{ + return nil; +} + + +- (void) setIOFlag:(unsigned long)flag forIOFlagName:(NSString *)name; +{ +} + + +- (void) loadNibs +{ + NSString *resourceName; + + NSString *resourcePath = [[NSBundle bundleForClass:[self class]] resourcePath]; + NSDirectoryEnumerator *resourcePathEnum = + [[NSFileManager defaultManager] enumeratorAtPath:resourcePath]; + while (resourcePathEnum && (resourceName = [resourcePathEnum nextObject])) { + if ([[resourceName pathExtension] isEqualToString:@"nib"]) + [NSBundle loadNibNamed:[resourceName lastPathComponent] owner:self]; + } +} + + +- (void) pluginDidLoad +{ +} + + +- (void) CAF:(int)ioAddress +{ +} + + +- (void) clearAllFlags:(int)ioAddress +{ +} + + +- (void) resetDevice +{ +} + + +@end diff --git a/Plugins/PluginManager.h b/Plugins/PluginManager.h new file mode 100644 index 0000000..646c791 --- /dev/null +++ b/Plugins/PluginManager.h @@ -0,0 +1,39 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * PluginManager.h - Manager for I/O Device Plugins + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class PDP8, SkipController, IOFlagController; + + +@interface PluginManager : NSObject +{ +@private + IBOutlet PDP8 *pdp8; + IBOutlet SkipController *skipController; + IBOutlet IOFlagController *ioFlagController; + NSArray *pluginInstances; +} + +- (void) resetAllDevices; + +@end diff --git a/Plugins/PluginManager.m b/Plugins/PluginManager.m new file mode 100644 index 0000000..d08d199 --- /dev/null +++ b/Plugins/PluginManager.m @@ -0,0 +1,280 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * PluginManager.m - Manager for I/O Device Plugins + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "PluginManager.h" +#import "PluginAPI.h" +#import "PDP8.h" +#import "SkipController.h" +#import "IOFlagController.h" +#import "Assembler.h" +#import "Disassembler.h" +#import "OctalFormatter.h" +#import "HelpMenuManager.h" +#import "Unicode.h" +#import "NSFileManager+Additions.h" + + +#define PLUGIN_EXTENSION @"pdp8Plugin" +#define PLUGIN_APPSUPPORT_PATH @"Application Support/PDP-8:E Simulator" +#define PLUGIN_NEXTTOAPP_PATH @"../PDP-8:E Simulator Plugins" + + +@implementation PluginManager + + +- (BOOL) canInstallIOTs:(NSArray *)mnemonics withIOAddresses:(NSArray *)ioAddresses + noLoadMessage:(NSString *)noLoadMessage +{ + NSString *ioAddress; + + if (! mnemonics || ! [mnemonics isKindOfClass:[NSArray class]]) { + NSRunAlertPanel (NSLocalizedString( + @"Invalid IOT information in the I/O description of the plug-in", @""), + noLoadMessage, nil, nil, nil); + return NO; + } + if (! ioAddresses || ! [ioAddresses isKindOfClass:[NSArray class]]) { + NSRunAlertPanel (NSLocalizedString( + @"Invalid I/O address information in the I/O description of the plug-in.", @""), + noLoadMessage, nil, nil, nil); + return NO; + } + if ([mnemonics count] != 8 * [ioAddresses count]) { + NSRunAlertPanel (NSLocalizedString( + @"The number of IOTs does not match number of I/O addresses in the I/O description " + "of the plug-in.", @""), noLoadMessage, nil, nil, nil); + return NO; + } + NSEnumerator *enumerator = [ioAddresses objectEnumerator]; + while ((ioAddress = [enumerator nextObject])) { + NSNumber *number; + if (! [[OctalFormatter formatterWithBitMask:077 wildcardAllowed:NO] getObjectValue:&number + forString:ioAddress errorDescription:nil]) { + NSRunAlertPanel ([NSString stringWithFormat:NSLocalizedString( + @"Invalid I/O address %C%@%C in the I/O description of the plug-in.", + @""), UNICODE_LEFT_DOUBLEQUOTE, ioAddress, UNICODE_RIGHT_DOUBLEQUOTE], + noLoadMessage, nil, nil, nil); + return NO; + } + int addr = [number intValue]; + if (! [pdp8 isIOAddressAvailable:addr]) { + NSRunAlertPanel ([NSString stringWithFormat:NSLocalizedString( + @"The I/O address %2.2o requested by the plug-in is already in use.", @""), + addr], noLoadMessage, nil, nil, nil); + return NO; + } + } + return YES; +} + + +- (void) installIOTs:(NSArray *)mnemonics withAddresses:(NSArray *)ioAddresses forPlugin:(PDP8Plugin *)plugin +{ + int i; + NSString *ioAddress; + + int base = 0; + NSEnumerator *ioAddrEnum = [ioAddresses objectEnumerator]; + while ((ioAddress = [ioAddrEnum nextObject])) { + NSNumber *number; + [[OctalFormatter formatterWithBitMask:077 wildcardAllowed:NO] getObjectValue:&number + forString:ioAddress errorDescription:nil]; + int addr = [number intValue]; + [pdp8 setPluginPointer:plugin forIOAddress:addr]; + NSArray *iots = [plugin iotsForAddress:addr]; + if (iots) { + NSArray *skiptests = [plugin skiptestsForAddress:addr]; + int opcode = 06000 | (addr << 3); + for (i = 0; i < 8; i++) { + NSValue *iot = [iots objectAtIndex:i]; + [pdp8 setIOT:iot forOpcode:opcode | i]; + NSValue *skiptest = skiptests ? [skiptests objectAtIndex:i] : nil; + [skipController addSkiptest:skiptest forInstruction:iot]; + NSString *mnemonic = [mnemonics objectAtIndex:base + i]; + [[Assembler sharedAssembler] addMnemonic:mnemonic forIOT:opcode | i]; + [[Disassembler sharedDisassembler] addMnemonic:mnemonic forIOT:opcode | i]; + } + } + base += 8; + } +} + + +- (BOOL) canInstallIOFlags:(NSArray *)ioFlags noLoadMessage:(NSString *)noLoadMessage +{ + if (! ioFlags || ! [ioFlags isKindOfClass:[NSArray class]]) { + NSRunAlertPanel (NSLocalizedString( + @"Invalid I/O flag information in the I/O description of the plug-in.", @""), + noLoadMessage, nil, nil, nil); + return NO; + } + if ([ioFlags count] > [ioFlagController numberOfAvailableFlags]) { + NSRunAlertPanel (NSLocalizedString(@"There are not enough I/O flags available.", @""), + noLoadMessage, nil, nil, nil); + return NO; + } + return YES; +} + + +- (void) installIOFlags:(NSArray *)ioFlags forPlugin:(PDP8Plugin *)plugin +{ + NSString *ioFlagName; + + NSEnumerator *enumerator = [ioFlags objectEnumerator]; + while ((ioFlagName = [enumerator nextObject])) + [plugin setIOFlag:[ioFlagController addIODevice:ioFlagName] forIOFlagName:ioFlagName]; +} + + +- (void) resetAllDevices +{ + PDP8Plugin *plugin; + + NSEnumerator *enumerator = [pluginInstances objectEnumerator]; + while ((plugin = [enumerator nextObject])) + [plugin resetDevice]; +} + + +- (NSString *) noLoadMessage:(NSString *)pluginName +{ + return [NSString stringWithFormat:NSLocalizedString(@"The plug-in %C%@%C will not be loaded.", @""), + UNICODE_LEFT_DOUBLEQUOTE, pluginName, UNICODE_RIGHT_DOUBLEQUOTE]; +} + + +- (PDP8Plugin *) loadPlugin:(NSBundle *)bundle +{ + PDP8Plugin *plugin = nil; + Class principalClass = [bundle principalClass]; + if (principalClass && [principalClass isSubclassOfClass:[PDP8Plugin class]]) { + plugin = [[principalClass alloc] init]; + if (plugin) { + [plugin apiVersion]; // plugin must overrides this method, otherwise we crash + [plugin setBundle:bundle]; + [plugin setPDP8:pdp8]; + NSDictionary *ioInfo = [plugin ioInformation]; + NSArray *ioFlagNames = [ioInfo objectForKey:IO_INFO_IOFLAGS_KEY]; + NSArray *ioAddresses = [ioInfo objectForKey:IO_INFO_IOADDRESSES_KEY]; + NSArray *mnemonics = [ioInfo objectForKey:IO_INFO_IOTS_KEY]; + if ([self canInstallIOFlags:ioFlagNames + noLoadMessage:[self noLoadMessage:[plugin pluginName]]] && + [self canInstallIOTs:mnemonics withIOAddresses:ioAddresses + noLoadMessage:[self noLoadMessage:[plugin pluginName]]]) { + [self installIOFlags:[ioInfo objectForKey:IO_INFO_IOFLAGS_KEY] + forPlugin:plugin]; + [self installIOTs:mnemonics withAddresses:ioAddresses forPlugin:plugin]; + [plugin loadNibs]; + [plugin pluginDidLoad]; + [[HelpMenuManager sharedHelpMenuManager] addBundleHelp:bundle]; + } else { + [plugin release]; + // unload is a 10.5 method (does nothing on 10.4), but we use the 10.4 SDK + // so use performSelector: to avoid unknown message warning + [bundle performSelector:@selector(unload)]; + return nil; + } + } else { + NSRunAlertPanel (NSLocalizedString(@"Cannot instantiate the plug-in.", @""), + [self noLoadMessage:[[bundle bundlePath] lastPathComponent]], nil, nil, nil); + } + } else { + NSRunAlertPanel (principalClass ? + NSLocalizedString(@"The plug-in has an invalid principal class.", @"") : + NSLocalizedString(@"Cannot determine the principal class of the plug-in.", @""), + [self noLoadMessage:[[bundle bundlePath] lastPathComponent]], nil, nil, nil); + + } + return [plugin autorelease]; +} + + +- (NSArray *) loadAllPlugins +{ + NSEnumerator *searchPathEnum; + NSString *path; + NSString *bundleName; + + NSMutableArray *bundleSearchPaths = [NSMutableArray array]; + NSMutableArray *plugins = [NSMutableArray array]; + + searchPathEnum = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, + NSAllDomainsMask - NSSystemDomainMask, YES) objectEnumerator]; + while ((path = [searchPathEnum nextObject])) + [bundleSearchPaths addObject:[path stringByAppendingPathComponent:PLUGIN_APPSUPPORT_PATH]]; + [bundleSearchPaths addObject:[[[NSBundle mainBundle] bundlePath] + stringByAppendingPathComponent:PLUGIN_NEXTTOAPP_PATH]]; + [bundleSearchPaths addObject:[[NSBundle mainBundle] builtInPlugInsPath]]; + searchPathEnum = [bundleSearchPaths objectEnumerator]; + while ((path = [searchPathEnum nextObject])) { + NSDirectoryEnumerator *bundlePathEnum = + [[NSFileManager defaultManager] enumeratorAtPath:path]; + while (bundlePathEnum && (bundleName = [bundlePathEnum nextObject])) { + [bundlePathEnum skipDescendents]; + if ([[bundleName pathExtension] isEqualToString:PLUGIN_EXTENSION]) { + NSBundle *bundle = [NSBundle bundleWithPath: + [[NSFileManager defaultManager] resolveAliasPath: + [path stringByAppendingPathComponent:bundleName]]]; + if (bundle) { + PDP8Plugin *plugin = [self loadPlugin:bundle]; + if (plugin) + [plugins addObject:plugin]; + } else + NSRunAlertPanel ( + NSLocalizedString(@"Loading of the plug-in bundle failed.", + @""), [self noLoadMessage:bundleName], nil, nil, nil); + } + } + } + return plugins; +} + + +- (void) notifyApplicationWillFinishLaunching:(NSNotification *)notification +{ + pluginInstances = [[self loadAllPlugins] retain]; +} + + +- (void) notifyApplicationDidFinishLaunching:(NSNotification *)notification +{ + [[NSNotificationCenter defaultCenter] postNotificationName:PLUGINS_LOADED_NOTIFICATION object:nil]; +} + + +- (void) awakeFromNib +{ + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyApplicationWillFinishLaunching:) + name:NSApplicationWillFinishLaunchingNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyApplicationDidFinishLaunching:) + name:NSApplicationDidFinishLaunchingNotification object:nil]; +} + + +@end diff --git a/RK8E/English.lproj/InfoPlist.strings b/RK8E/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..d7c9dcd --- /dev/null +++ b/RK8E/English.lproj/InfoPlist.strings @@ -0,0 +1,28 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * InfoPlist.strings - Localized strings for Info.plist + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +CFBundleName = "RK8-E Disk Cartridge System"; +CFBundleGetInfoString = "RK8-E Disk Cartridge System 2.0.2, Copyright © 1994-2015 Bernhard Baehr"; +NSHumanReadableCopyright = "Copyright © 1994-2015 Bernhard Baehr"; +CFBundleHelpBookName = "RK8-E Disk Cartridge System Help"; \ No newline at end of file diff --git a/RK8E/English.lproj/RK8E.nib/designable.nib b/RK8E/English.lproj/RK8E.nib/designable.nib new file mode 100644 index 0000000..20b1afc --- /dev/null +++ b/RK8E/English.lproj/RK8E.nib/designable.nib @@ -0,0 +1,4652 @@ + + + + 1040 + 13E28 + 851 + 1265.21 + 698.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + RK8E + + + FirstResponder + + + NSApplication + + + 4103 + 2 + {{31, 363}, {624, 352}} + 1677721600 + RK8-E Disk Cartridge System + KeepInMenuWindow + + + {1.7976931348623157e+308, 1.7976931348623157e+308} + + + 256 + + + + 268 + + + + 274 + + + + 268 + {{173, 233}, {57, 22}} + + 264 + YES + + -2076180416 + 133120 + + LucidaGrande + 11 + 3088 + + + 109199360 + 1 + + + 400 + 75 + + + No + + 1048576 + 2147483647 + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + _popUpItemAction: + + + YES + + OtherViews + + + + + Yes + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + 1 + YES + YES + 1 + + NO + + + + 268 + {{14, 260}, {60, 17}} + + YES + + 67108928 + 4326400 + Function + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + NO + 1 + + + + 268 + {{184, 108}, {46, 22}} + + 256 + YES + + -2076180416 + 133120 + + + 109199360 + 1 + + + 400 + 75 + + + 0 + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + 1 + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + 1 + YES + YES + 1 + + NO + + + + 268 + {{14, 110}, {108, 17}} + + YES + + 67108928 + 4326400 + Block Number MSB + + + + + + NO + 1 + + + + 268 + {{14, 185}, {77, 17}} + + YES + + 67108928 + 4326400 + Block Length + + + + + + NO + 1 + + + + 268 + {{14, 235}, {129, 17}} + + YES + + 67108928 + 4326400 + Interupt on Done Flag + + + + + + NO + 1 + + + + 268 + {{120, 258}, {110, 22}} + + 1801 + YES + + -2076180416 + 133120 + + + 109199360 + 1 + + + 400 + 75 + + + Read + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + Read All + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + Lock + + 1048576 + 2147483647 + + + _popUpItemAction: + 2 + + + + + Seek + + 1048576 + 2147483647 + + + _popUpItemAction: + 3 + + + + + Write + + 1048576 + 2147483647 + + + _popUpItemAction: + 4 + + + + + Write All + + 1048576 + 2147483647 + + + _popUpItemAction: + 5 + + + + + No Operation + + 1048576 + 2147483647 + + + _popUpItemAction: + 6 + + + + + No Operation + + 1048576 + 2147483647 + + + _popUpItemAction: + 7 + + + + + 1 + YES + YES + 1 + + NO + + + + 268 + {{184, 133}, {46, 22}} + + 769 + YES + + -2076180416 + 133120 + + + 109199360 + 1 + + + 400 + 75 + + + 0 + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + 1 + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + 2 + + + + + 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + 3 + + + + + 1 + YES + YES + 1 + + NO + + + + 268 + {{14, 160}, {151, 17}} + + YES + + 67108928 + 4326400 + Extended Memory Address + + + + + + NO + 1 + + + + 268 + {{184, 158}, {46, 22}} + + 1795 + YES + + -2076180416 + 133120 + + + 109199360 + 1 + + + 400 + 75 + + + 0 + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + + + + 1 + + 1048576 + 2147483647 + + + _popUpItemAction: + 1 + + + + + 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + 2 + + + + + 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + 3 + + + + + 4 + + 1048576 + 2147483647 + + + _popUpItemAction: + 4 + + + + + 5 + + 1048576 + 2147483647 + + + _popUpItemAction: + 5 + + + + + 6 + + 1048576 + 2147483647 + + + _popUpItemAction: + 6 + + + + + 7 + + 1048576 + 2147483647 + + + _popUpItemAction: + 7 + + + + + 1 + YES + YES + 1 + + NO + + + + 268 + {{14, 135}, {77, 17}} + + YES + + 67108928 + 4326400 + Drive Select + + + + + + NO + 1 + + + + 268 + {{109, 183}, {121, 22}} + + 262 + YES + + -2076180416 + 133120 + + + 109199360 + 1 + + + 400 + 75 + + + Half Block + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + 1 + + + YES + + OtherViews + + + + Complete Block + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + 1 + YES + YES + 1 + + NO + + + + 268 + {{251, 181}, {145, 18}} + + 128 + YES + + 67108864 + 131072 + File not Ready + + + 1211912448 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + NO + + + + 268 + {{251, 161}, {145, 18}} + + 64 + YES + + 67108864 + 131072 + Control Busy + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{251, 201}, {145, 18}} + + 256 + YES + + 67108864 + 131072 + Seek Failed + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{251, 61}, {145, 18}} + + 2 + YES + + 67108864 + 131072 + Drive Status Error + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{251, 241}, {145, 18}} + + 1024 + YES + + 67108864 + 131072 + Head in Motion + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{251, 261}, {145, 18}} + + 2048 + YES + + 67108864 + 131072 + Transfer Done + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{251, 221}, {145, 18}} + + 512 + YES + + 67108864 + 131072 + Unused + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{251, 81}, {145, 18}} + + 4 + YES + + 67108864 + 131072 + Data Request Late + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{251, 41}, {145, 18}} + + 1 + YES + + 67108864 + 131072 + Cylinder Address Error + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{251, 121}, {145, 18}} + + 16 + YES + + 67108864 + 131072 + Write Lock Error + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{251, 141}, {145, 18}} + + 32 + YES + + 67108864 + 131072 + Timing Error + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 256 + + {{14, 294}, {99, 19}} + + YES + NO + 1 + 1 + + + -1805647807 + 205652992 + 7777 + + + 59 + + 67108864 + 67108864 + Command + + + + + + {99, 19} + {0, 8} + 524288 + NSActionCell + + 342884416 + 205652992 + + + 59 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + 3 + MQA + + + + + + 256 + {{14, 14}, {141, 19}} + + YES + NO + 1 + 1 + + + -1805647807 + 205521920 + 77777 + + + 94 + + 67108864 + 67108864 + Memory Address + + + + + + {141, 19} + {0, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 94 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + {{29, 41}, {126, 19}} + + YES + NO + 1 + 1 + + + -1805647807 + 205521920 + 17777 + + + 79 + + 67108864 + 67108864 + Block Number + + + + + + {126, 19} + {0, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 79 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + {{251, 294}, {77, 19}} + + YES + NO + 1 + 1 + + + -1805647807 + 205521920 + 7777 + + + 37 + + 67108864 + 67108864 + Status + + + + + + {77, 19} + {0, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 37 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 268 + {{251, 101}, {145, 18}} + + 8 + YES + + 67108864 + 131072 + CRC Error + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{14, 210}, {154, 17}} + + YES + + 67108928 + 4326400 + Set Done Flag on Seek Done + + + + + + NO + 1 + + + + 268 + {{173, 208}, {57, 22}} + + 263 + YES + + -2076180416 + 133120 + + + 109199360 + 1 + + + 400 + 75 + + + Yes + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + 1 + + + YES + + OtherViews + + + + No + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 1 + 1 + YES + YES + 1 + + NO + + + {{1, 1}, {409, 324}} + + + + {{5, 4}, {411, 340}} + + {0, 0} + + 67108864 + 0 + RK8-E Disk Control + + + 6 + System + textBackgroundColor + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + + 268 + + + + 274 + + + + -2147483380 + {{14, 12}, {171, 19}} + + YES + + 71303232 + 138544128 + + + + YES + 1 + + + + NO + 1 + + + + 268 + {{96, 38}, {91, 18}} + + YES + + 67108864 + 131072 + Write Protect + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{14, 38}, {69, 18}} + + YES + + 67108864 + 134348800 + Mount + + + -2037628928 + 32 + + + 400 + 75 + + NO + + + {{1, 1}, {199, 66}} + + + + {{418, 262}, {201, 82}} + + {0, 0} + + 67108864 + 0 + RK05 Drive 0 + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + + 268 + + + + 274 + + + + -2147483380 + {{14, 12}, {171, 19}} + + YES + + 71303232 + 138544128 + + + + YES + 1 + + + + NO + 1 + + + + 268 + {{96, 38}, {91, 18}} + + YES + + 67108864 + 131072 + Write Protect + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{14, 38}, {69, 18}} + + 1 + YES + + 67108864 + 134348800 + Mount + + + -2037628928 + 32 + + + 400 + 75 + + NO + + + {{1, 1}, {199, 66}} + + + + {{418, 176}, {201, 82}} + + {0, 0} + + 67108864 + 0 + RK05 Drive 1 + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + + 268 + + + + 274 + + + + -2147483380 + {{14, 12}, {171, 19}} + + YES + + 71303232 + 138544128 + + + + YES + 1 + + + + NO + 1 + + + + 268 + {{96, 38}, {91, 18}} + + YES + + 67108864 + 131072 + Write Protect + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{14, 38}, {69, 18}} + + 2 + YES + + 67108864 + 134348800 + Mount + + + -2037628928 + 32 + + + 400 + 75 + + NO + + + {{1, 1}, {199, 66}} + + + + {{418, 90}, {201, 82}} + + {0, 0} + + 67108864 + 0 + RK05 Drive 2 + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + + 268 + + + + 274 + + + + -2147483380 + {{14, 12}, {171, 19}} + + YES + + 71303232 + 138544128 + + + + YES + 1 + + + + NO + 1 + + + + 268 + {{96, 38}, {91, 18}} + + YES + + 67108864 + 131072 + Write Protect + + + 1211912448 + 2 + + + + + 200 + 25 + + NO + + + + 268 + {{14, 38}, {69, 18}} + + 3 + YES + + 67108864 + 134348800 + Mount + + + -2037628928 + 32 + + + 400 + 75 + + NO + + + {{1, 1}, {199, 66}} + + + + {{418, 4}, {201, 82}} + + {0, 0} + + 67108864 + 0 + RK05 Drive 3 + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + {624, 352} + + + {{0, 0}, {1440, 878}} + {1.7976931348623157e+308, 1.7976931348623157e+308} + RK8EWindow + YES + + + RK8EController + + + RK05Controller + + + RK05Controller + + + RK05Controller + + + RK05Controller + + + RK05 + + + RK05 + + + RK05 + + + RK05 + + + + + + + nextKeyView + + + + 1179 + + + + nextKeyView + + + + 1180 + + + + nextKeyView + + + + 1181 + + + + nextKeyView + + + + 1182 + + + + nextKeyView + + + + 1183 + + + + nextKeyView + + + + 1184 + + + + nextKeyView + + + + 1185 + + + + nextKeyView + + + + 1186 + + + + nextKeyView + + + + 1188 + + + + nextKeyView + + + + 1189 + + + + nextKeyView + + + + 1190 + + + + nextKeyView + + + + 1191 + + + + nextKeyView + + + + 1192 + + + + nextKeyView + + + + 1193 + + + + nextKeyView + + + + 1194 + + + + nextKeyView + + + + 1195 + + + + nextKeyView + + + + 1196 + + + + nextKeyView + + + + 1197 + + + + nextKeyView + + + + 1199 + + + + nextKeyView + + + + 1202 + + + + nextKeyView + + + + 1222 + + + + nextKeyView + + + + 1223 + + + + nextKeyView + + + + 1224 + + + + nextKeyView + + + + 1226 + + + + nextKeyView + + + + 1228 + + + + nextKeyView + + + + 1230 + + + + nextKeyView + + + + 1276 + + + + nextKeyView + + + + 1277 + + + + nextKeyView + + + + 1278 + + + + nextKeyView + + + + 1279 + + + + nextKeyView + + + + 1280 + + + + blockNumberRegister + + + + 1329 + + + + cmdBlockLength + + + + 1330 + + + + cmdBlockNumberMSB + + + + 1331 + + + + cmdDriveSelect + + + + 1332 + + + + cmdExtendedAddress + + + + 1333 + + + + cmdFunction + + + + 1334 + + + + cmdInterrupt + + + + 1335 + + + + commandRegister + + + + 1336 + + + + memoryAddressRegister + + + + 1337 + + + + rk8e + + + + 1338 + + + + statusControlBusy + + + + 1339 + + + + statusCRCError + + + + 1340 + + + + statusCylinderAddressError + + + + 1341 + + + + statusDataRequestLate + + + + 1342 + + + + statusDriveStatusError + + + + 1343 + + + + statusHeadInMotion + + + + 1344 + + + + statusRegister + + + + 1345 + + + + statusSeekFailed + + + + 1346 + + + + statusTimingError + + + + 1347 + + + + statusTransferDone + + + + 1348 + + + + statusUnused + + + + 1349 + + + + statusWriteLockError + + + + 1350 + + + + statusFileNotReady + + + + 1351 + + + + commandPopupClicked: + + + + 1364 + + + + commandPopupClicked: + + + + 1366 + + + + commandPopupClicked: + + + + 1367 + + + + commandPopupClicked: + + + + 1368 + + + + commandPopupClicked: + + + + 1369 + + + + commandPopupClicked: + + + + 1370 + + + + statusCheckboxClicked: + + + + 1371 + + + + statusCheckboxClicked: + + + + 1372 + + + + statusCheckboxClicked: + + + + 1373 + + + + statusCheckboxClicked: + + + + 1374 + + + + statusCheckboxClicked: + + + + 1375 + + + + statusCheckboxClicked: + + + + 1376 + + + + statusCheckboxClicked: + + + + 1377 + + + + statusCheckboxClicked: + + + + 1378 + + + + statusCheckboxClicked: + + + + 1379 + + + + statusCheckboxClicked: + + + + 1380 + + + + statusCheckboxClicked: + + + + 1381 + + + + statusCheckboxClicked: + + + + 1382 + + + + cmdSetDone + + + + 1396 + + + + commandPopupClicked: + + + + 1397 + + + + writeProtectCheckbox + + + + 1525 + + + + writeProtectCheckbox + + + + 1528 + + + + writeProtectCheckbox + + + + 1531 + + + + writeProtectCheckbox + + + + 1534 + + + + mountUnmountClicked: + + + + 1535 + + + + writeProtectClicked: + + + + 1536 + + + + mountUnmountClicked: + + + + 1537 + + + + writeProtectClicked: + + + + 1538 + + + + mountUnmountClicked: + + + + 1539 + + + + writeProtectClicked: + + + + 1540 + + + + mountUnmountClicked: + + + + 1541 + + + + writeProtectClicked: + + + + 1542 + + + + rk05 + + + + 1547 + + + + rk05 + + + + 1548 + + + + rk05 + + + + 1549 + + + + rk05 + + + + 1550 + + + + mountUnmountButton + + + + 1551 + + + + mountUnmountButton + + + + 1552 + + + + mountUnmountButton + + + + 1553 + + + + mountUnmountButton + + + + 1554 + + + + filenameField + + + + 1555 + + + + filenameField + + + + 1556 + + + + filenameField + + + + 1557 + + + + filenameField + + + + 1558 + + + + window + + + + 1715 + + + + rk05_0 + + + + 1759 + + + + rk05_1 + + + + 1760 + + + + rk05_2 + + + + 1761 + + + + rk05_3 + + + + 1762 + + + + rk8e + + + + 1763 + + + + rk8e + + + + 1764 + + + + rk8e + + + + 1765 + + + + rk8e + + + + 1766 + + + + rk8eBox + + + + 1851 + + + + rk05Controller_0 + + + + 1936 + + + + rk05Controller_1 + + + + 1937 + + + + rk05Controller_2 + + + + 1938 + + + + rk05Controller_3 + + + + 1939 + + + + initialFirstResponder + + + + 1957 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 807 + + + + + + RK8EWindow + + + 808 + + + + + + + + + + + + 812 + + + + + + + + + + 815 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1063 + + + + + + + + + + 1070 + + + + + + + + + + 1077 + + + + + + + + + + 1328 + + + RK8EController + + + 1519 + + + RK05-0 Controller + + + 1520 + + + RK05-1 Controller + + + 1521 + + + RK05-2 Controller + + + 1522 + + + RK05-3 Controller + + + 1543 + + + RK05-0 + + + 1544 + + + RK05-1 + + + 1545 + + + RK05-2 + + + 1546 + + + RK05-3 + + + 909 + + + + + + + + 1895 + + + + + 908 + + + + + + + + 1894 + + + + + 1061 + + + + + + + + 1896 + + + + + 828 + + + + + + + + 1908 + + + + + + + + 830 + + + + + + + + + 831 + + + + + 832 + + + + + 827 + + + + + + + + 1907 + + + + + 826 + + + + + + + + 1906 + + + + + + + + 835 + + + + + + + + + 836 + + + + + 837 + + + + + 825 + + + + + + + + 1905 + + + + + 823 + + + + + + + + 1904 + + + + + 822 + + + + + + + + 1903 + + + + + 821 + + + + + + + + 1902 + + + + + + + + 844 + + + + + + + + + + + + + + + 845 + + + + + 846 + + + + + 847 + + + + + 848 + + + + + 849 + + + + + 850 + + + + + 851 + + + + + 852 + + + + + 820 + + + + + + + + 1901 + + + + + + + + 854 + + + + + + + + + + + 855 + + + + + 856 + + + + + 857 + + + + + 858 + + + + + 819 + + + + + + + + 1900 + + + + + 818 + + + + + + + + 1899 + + + + + + + + 861 + + + + + + + + + + + + + + + 862 + + + + + 863 + + + + + 864 + + + + + 865 + + + + + 866 + + + + + 867 + + + + + 868 + + + + + 869 + + + + + 817 + + + + + + + + 1898 + + + + + 816 + + + + + + + + 1897 + + + + + + + + 872 + + + + + + + + + 873 + + + + + 874 + + + + + 932 + + + + + + + + 1909 + + + + + 933 + + + + + + + + 1910 + + + + + 934 + + + + + + + + 1911 + + + + + 935 + + + + + + + + 1912 + + + + + 937 + + + + + + + + 1913 + + + + + 938 + + + + + + + + 1914 + + + + + 939 + + + + + + + + 1915 + + + + + 940 + + + + + + + + 1916 + + + + + 941 + + + + + + + + 1917 + + + + + 942 + + + + + + + + 1918 + + + + + 943 + + + + + + + + 1919 + + + + + 1110 + + + + + + + + + 1932 + + + + + 1111 + + + + + 1113 + + + + + + + + + 1933 + + + + + 1115 + + + + + 1116 + + + + + + + + + 1934 + + + + + 1117 + + + + + 1119 + + + + + + + + + 1935 + + + + + 1121 + + + + + 944 + + + + + + + + 1920 + + + + + 1383 + + + + + + + + 1921 + + + + + 1385 + + + + + + + + 1922 + + + + + + + + 1387 + + + + + + + + + 1388 + + + + + 1389 + + + + + 1066 + + + + + + + + 1925 + + + + + 1065 + + + + + + + + 1924 + + + + + 1064 + + + + + + + + 1923 + + + + + 1071 + + + + + + + + 1926 + + + + + 1072 + + + + + + + + 1927 + + + + + 1073 + + + + + + + + 1928 + + + + + 1080 + + + + + + + + 1931 + + + + + 1079 + + + + + + + + 1930 + + + + + 1078 + + + + + + + + 1929 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + TW91bnRzIG9yIHVubW91bnRzIGEgREVDcGFjayBkaXNrIGltYWdlIGZvciB0aGlzIFJLMDUgZHJpdmUu +CgpPcHRpb24tY2xpY2sgdG8gY3JlYXRlIGEgbmV3IGRpc2sgaW1hZ2UuCgpZb3UgYWxzbyBjYW4gZHJh +ZyBkaXNrIGltYWdlcyBmcm9tIHRoZSBGaW5kZXIgdG8gdGhpcyBidXR0b24gdG8gbW91bnQgdGhlbS4 + + + com.apple.InterfaceBuilder.CocoaPlugin + + P4AAAL+AAABCEAAAwlgAAA + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + TW91bnRzIG9yIHVubW91bnRzIGEgREVDcGFjayBkaXNrIGltYWdlIGZvciB0aGlzIFJLMDUgZHJpdmUu +CgpPcHRpb24tY2xpY2sgdG8gY3JlYXRlIGEgbmV3IGRpc2sgaW1hZ2UuCgpZb3UgYWxzbyBjYW4gZHJh +ZyBkaXNrIGltYWdlcyBmcm9tIHRoZSBGaW5kZXIgdG8gdGhpcyBidXR0b24gdG8gbW91bnQgdGhlbS4 + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Turns write protection for this RK05 drive on or off. Write protection can be turned on by software (RK8-E command function 2 “Lock”), but it can be turned off only manually using this switch. + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Filename of the mounted DECpack disk image + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Filename of the mounted DECpack disk image + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Turns write protection for this RK05 drive on or off. Write protection can be turned on by software (RK8-E command function 2 “Lock”), but it can be turned off only manually using this switch. + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + TW91bnRzIG9yIHVubW91bnRzIGEgREVDcGFjayBkaXNrIGltYWdlIGZvciB0aGlzIFJLMDUgZHJpdmUu +CgpPcHRpb24tY2xpY2sgdG8gY3JlYXRlIGEgbmV3IGRpc2sgaW1hZ2UuCgpZb3UgYWxzbyBjYW4gZHJh +ZyBkaXNrIGltYWdlcyBmcm9tIHRoZSBGaW5kZXIgdG8gdGhpcyBidXR0b24gdG8gbW91bnQgdGhlbS4 + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + TW91bnRzIG9yIHVubW91bnRzIGEgREVDcGFjayBkaXNrIGltYWdlIGZvciB0aGlzIFJLMDUgZHJpdmUu +CgpPcHRpb24tY2xpY2sgdG8gY3JlYXRlIGEgbmV3IGRpc2sgaW1hZ2UuCgpZb3UgYWxzbyBjYW4gZHJh +ZyBkaXNrIGltYWdlcyBmcm9tIHRoZSBGaW5kZXIgdG8gdGhpcyBidXR0b24gdG8gbW91bnQgdGhlbS4 + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Turns write protection for this RK05 drive on or off. Write protection can be turned on by software (RK8-E command function 2 “Lock”), but it can be turned off only manually using this switch. + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Filename of the mounted DECpack disk image + + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + SU9UIERMREMgKDY3NDYpIGxvYWRzIHRoZSBjb21tYW5kIHRoZSBQRFAtOCB3YW50cyB0aGUgUks4LUUg +dG8gZXhlY3V0ZSBmcm9tIEFDIGludG8gdGhlIENvbW1hbmQgcmVnaXN0ZXIuCgpUaGUgYml0cyBpbiB0 +aGUgQ29tbWFuZCByZWdpc3RlciBhcmUgc2hvd24gaW4gdGhlIHBvcHVwIG1lbnVzIGJlbG93Lg + + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + VGhpcyBNZW1vcnkgQWRkcmVzcyByZWdpc3RlciBzcGVjaWZpZXMgdGhlIGFic29sdXRlIG1lbW9yeSBh +ZGRyZXNzIHRoYXQgZGF0YSBpcyB0byBiZSB0cmFuc2ZlcnJlZCB0byBvciBmcm9tIG1lbW9yeS4KCk5v +dGUgdGhhdCBpdCBpcyBhIDEyLWJpdCByZWdpc3RlcjsgdGhlIHRocmVlIE1TQnMgYXJlIGlkZW50aWNh +bCB0byBiaXRzIDYtOCBvZiB0aGUgQ29tbWFuZCByZWdpc3Rlci4 + + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + VGhlIEJsb2NrIE51bWJlciByZWdpc3RlciBzcGVjaWZpZXMgYSBkaXNrIGJsb2NrIHdoZXJlIGRhdGEg +aXMgdG8gYmUgdHJhbnNmZXJyZWQuIEEgZGlzayBoYXMgdHdvIHN1cmZhY2VzIChzKSwgMTYgc2VjdG9y +cyAoUyksIDIwMyBjeWxpbmRlcnMgKGMpIGFuZCAxMy1iaXQgYWRkcmVzc2VzIGNjY2NjY2Njc1NTU1Mu +CgpOb3RlIHRoYXQgaXQgaXMgYSAxMi1iaXQgcmVnaXN0ZXI7IE1TQj1MU0Igb2YgdGhlIENvbW1hbmQg +cmVnaXN0ZXIuA + + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + VGhlIFN0YXR1cyByZWdpc3RlciBjb250YWlucyBhbGwgdGhlIGluZm9ybWF0aW9uIGEgcHJvZ3JhbSBy +ZXF1aXJlcyB0byBkZXRlcm1pbmUgaWYgdGhlIGNvbW1hbmQgdG8gdGhlIFJLOC1FIGlzIGNvbXBsZXRl +ZCBhbmQgd2hldGhlciBvciBub3QgaXQgd2FzIHN1Y2Nlc3NmdWwuIElPVCBEUlNUICg2NzQ1KSBsb2Fk +cyB0aGUgU3RhdHVzIHJlZ2lzdGVyIGludG8gQUMuCgpUaGUgc3RhdHVzIGZsYWdzIGFyZSBzaG93biBp +biB0aGUgY2hlY2sgYm94ZXMgYmVsb3cuA + + + com.apple.InterfaceBuilder.CocoaPlugin + + + EnableDisableTextField + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + When Command(4) is set, the RK8-E raises its I/O flag when a seek operation finishs. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{100, 309}, {624, 352}} + com.apple.InterfaceBuilder.CocoaPlugin + {{100, 309}, {624, 352}} + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + When Command(5) is set, the RK8-E operates on half blocks (128 12-bit words), otherwise on full blocks (256 12-bit words). + + + com.apple.InterfaceBuilder.CocoaPlugin + + EnableDisableTextField + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Q29tbWFuZCg2LTgpIGhvbGRzIHRoZSBtZW1vcnkgZmllbGQgdGhlIFJLOC1FIHVzZXMgZm9yIERhdGEg +QnJlYWsgSS9PLgoKTm90ZSB0aGF0IHRoZXNlIGJpdHMgYXJlIGlkZW50aWNhbCB0byB0aGUgTVNCcyBv +ZiB0aGUgTWVtb3J5IEFkZHJlc3MgcmVnaXN0ZXIuA + + + com.apple.InterfaceBuilder.CocoaPlugin + + EnableDisableTextField + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Command(9-10) holds the number of the RK05 drive to be used for the command. + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Command(0-2) holds the function to be performed by the RK8-E. + + + com.apple.InterfaceBuilder.CocoaPlugin + + EnableDisableTextField + com.apple.InterfaceBuilder.CocoaPlugin + + EnableDisableTextField + com.apple.InterfaceBuilder.CocoaPlugin + + EnableDisableTextField + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Q29tbWFuZCgxMSkgaXMgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGJsb2NrIG51bWJlci4KCk5v +dGUgdGhhdCB0aGlzIGJpdCBpZGVudGljYWwgdG8gdGhlIE1TQiBvZiB0aGUgQmxvY2sgTnVtYmVyIHJl +Z2lzdGVyLg + + + com.apple.InterfaceBuilder.CocoaPlugin + + EnableDisableTextField + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Q29tbWFuZCgzKSBpcyB0aGUgaW50ZXJydXB0IG1hc2sgZm9yIHRoZSBSSzgtRS4KCk5vdGUgdGhhdCB0 +aGlzIGJpdCBpcyBpZGVudGljYWwgdG8gdGhlIFJLOC1FIEludGVycnVwdCBFbmFibGUgZmxhZyBpbiB0 +aGUgQ1BVIHdpbmRvdy4 + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Turns write protection for this RK05 drive on or off. Write protection can be turned on by software (RK8-E command function 2 “Lock”), but it can be turned off only manually using this switch. + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Filename of the mounted DECpack disk image + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(4) — File not Ready + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(5) — Control Busy + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(3) — Seek Failed + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(10) — Drive Status Error + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(1) — Head in Motion + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(0) — Transfer Done + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(2) — Unused + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(9) — Data Request Late + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(11) — Cylinder Address Error + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(7) — Write Lock Error + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(6) — Timing Error + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + Status(8) — CRC Error + + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + 1957 + + + + + EnableDisableTextField + NSTextField + + IBProjectSource + Utilities/EnableDisableTextField.h + + + + EnableDisableTextField + NSTextField + + IBUserSource + + + + + KeepInMenuWindow + NSWindow + + id + id + + + + orderBackFromDefaults: + id + + + orderFrontFromDefaults: + id + + + + IBProjectSource + Utilities/KeepInMenuWindow.h + + + + KeepInMenuWindow + NSWindow + + IBUserSource + + + + + NSControl + + IBProjectSource + Categories/NSControl+FileDrop.h + + + + NSControl + NSView + + IBUserSource + + + + + PDP8Plugin + NSObject + + IBProjectSource + Plugins/PluginAPI.h + + + + PDP8Plugin + NSObject + + IBUserSource + + + + + RK05 + NSObject + + rk8e + RK8E + + + rk8e + + rk8e + RK8E + + + + IBProjectSource + RK8E/RK05.h + + + + RK05 + NSObject + + IBUserSource + + + + + RK05Controller + NSObject + + id + id + + + + mountUnmountClicked: + id + + + writeProtectClicked: + id + + + + NSTextField + NSButton + RK05 + NSButton + + + + filenameField + NSTextField + + + mountUnmountButton + NSButton + + + rk05 + RK05 + + + writeProtectCheckbox + NSButton + + + + IBProjectSource + RK8E/RK05Controller.h + + + + RK05Controller + NSObject + + IBUserSource + + + + + RK8E + PDP8Plugin + + RK05Controller + RK05Controller + RK05Controller + RK05Controller + RK05 + RK05 + RK05 + RK05 + + + + rk05Controller_0 + RK05Controller + + + rk05Controller_1 + RK05Controller + + + rk05Controller_2 + RK05Controller + + + rk05Controller_3 + RK05Controller + + + rk05_0 + RK05 + + + rk05_1 + RK05 + + + rk05_2 + RK05 + + + rk05_3 + RK05 + + + + IBProjectSource + RK8E/RK8E.h + + + + RK8E + PDP8Plugin + + IBUserSource + + + + + RK8EController + NSObject + + id + id + + + + commandPopupClicked: + id + + + statusCheckboxClicked: + id + + + + RegisterFormCell + NSPopUpButton + NSPopUpButton + NSPopUpButton + NSPopUpButton + NSPopUpButton + NSPopUpButton + NSPopUpButton + RegisterFormCell + RegisterFormCell + RK8E + NSBox + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + RegisterFormCell + NSButton + NSButton + NSButton + NSButton + NSButton + KeepInMenuWindow + + + + blockNumberRegister + RegisterFormCell + + + cmdBlockLength + NSPopUpButton + + + cmdBlockNumberMSB + NSPopUpButton + + + cmdDriveSelect + NSPopUpButton + + + cmdExtendedAddress + NSPopUpButton + + + cmdFunction + NSPopUpButton + + + cmdInterrupt + NSPopUpButton + + + cmdSetDone + NSPopUpButton + + + commandRegister + RegisterFormCell + + + memoryAddressRegister + RegisterFormCell + + + rk8e + RK8E + + + rk8eBox + NSBox + + + statusCRCError + NSButton + + + statusControlBusy + NSButton + + + statusCylinderAddressError + NSButton + + + statusDataRequestLate + NSButton + + + statusDriveStatusError + NSButton + + + statusFileNotReady + NSButton + + + statusHeadInMotion + NSButton + + + statusRegister + RegisterFormCell + + + statusSeekFailed + NSButton + + + statusTimingError + NSButton + + + statusTransferDone + NSButton + + + statusUnused + NSButton + + + statusWriteLockError + NSButton + + + window + KeepInMenuWindow + + + + IBProjectSource + RK8E/RK8EController.h + + + + RK8EController + NSObject + + IBUserSource + + + + + RegisterFormCell + NSFormCell + + registerOwner + id + + + registerOwner + + registerOwner + id + + + + IBProjectSource + Utilities/RegisterFormCell.h + + + + RegisterFormCell + NSFormCell + + IBUserSource + + + + + + + EnableDisableTextField + NSTextField + + IBFrameworkSource + PluginFramework.framework/Headers/EnableDisableTextField.h + + + + KeepInMenuWindow + NSWindow + + IBFrameworkSource + PluginFramework.framework/Headers/KeepInMenuWindow.h + + + + NSControl + + IBFrameworkSource + PluginFramework.framework/Headers/NSControl+FileDrop.h + + + + PDP8Plugin + NSObject + + IBFrameworkSource + PluginFramework.framework/Headers/PluginAPI.h + + + + RegisterFormCell + NSFormCell + + IBFrameworkSource + PluginFramework.framework/Headers/RegisterFormCell.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + YES + ../../pdp8e-simulator.xcodeproj + 3 + + {11, 11} + {10, 3} + {15, 15} + + + diff --git a/RK8E/English.lproj/RK8E.nib/keyedobjects.nib b/RK8E/English.lproj/RK8E.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..5b9c9f44874006e3888cd18532cbb03dbfa92f4e GIT binary patch literal 41635 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

    IOTs for the RK8-E Disk Cartridge System

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Mnemonic
    Symbol
    Octal
    Code

    Description
    DSKP6741 + Disk Skip on Flag. If the RK8-E I/O flag is set, the next instruction is skipped. + The flag is raised when an I/O operation is completed or an I/O error occured. +
    DCLR6742 + Disk Clear. The function is regulated by AC(10–11):
    + AC(10–11) = 00 (DCLS): Clear AC and the status register.
    + AC(10–11) = 01 (DCLC): Clear AC and all RK8-E registers. + This instruction aborts any disk command in progress and resets the maintenance mode.
    + AC(10–11) = 10 (DCLD): Clear AC and the status register and recalibrate the + selected drive to cylinder 0.
    + AC(10–11) = 11: Undefined. Performs the same function as with AC(10–11) = 00. +
    DLAG6743 + Load Address and Go. The disk cylinder, surface and sector bits (12 least significant + bits of the block number) are loaded from AC(0–6), AC(7) and AC(8–11) + respectively, and the function indicated by the current content of the command register + is executed. +
    DLCA6744 + Load Current Address. The content of AC is loaded into the disk current address register + (12 least significant bits of the memory address). The next data transfer between memory + and the disk will use this memory start address. After the transfer is completed, the + content of the current address register is incremented by the size of the transferred + data block. +
    DRST6745 + Read Status. The content of the disk status register is transferred into AC. +
    DLDC6746 + Load Command. The content of AC is loaded into the disk command register. + Then AC and the disk status register are both cleared. +
    DMAN6747 + Maintenance instruction. This instruction is only used by hardware diagnostic software. + The function is regulated by bits in the AC which cannot be microprogrammed:
    + AC(0) = 1: Enter maintenance mode and disable the DLAG IOT.
    + AC(1) = 1: Enable a shift to the lower data buffer DB4.
    + AC(2) = 1: Check CRC register. AC(10), the CRC register and the lower data buffer are + connected as a shift register, and AC(10) shifts to the CRC, CRC shifts to + lower data buffer.
    + AC(3) = 1: Check command register. The command register is shifted by one bit to the + lower data buffer.
    + AC(4) = 1: Check surface and sector register. The surface and sector register (12 LSBs + of the current block number) is shifted by one bit to the lower data buffer.
    + AC(5) = 1: Check data buffer. AC(10) is shifted to the upper data buffer, + the upper data buffer sinks to the lower data buffers when it is full (after 12 shifts).
    + AC(6) = 1: Check data break request. A single cycle data break request is performed. + The direction of data transfer is regulated by the function in the command register.
    + AC(7) = 1: Transfer the content of the lower data buffer DB4 to the AC.
    + AC(8): Not used.
    + AC(9): Not used.
    + AC(10): Used as data for some maintenance functions.
    + AC(11): Not used. +
    + +

    Formatting a DECpack Disk Cartridge

    + +

    +With the PDP-8/E Simulator, formatting a new DECpack disk cartridge is not necessary and would increase +the size of the DECpack disk file to its maximum amount (see Technical Notes, below). With the simulator, +the Read and Read All resp. the Write and Write All commands are identical. With a hardware RK8-E, to +format a new disk, a program has to address every sector and write test patterns (containing the sector +number) with the Write All command, which writes the data and the sector header word. The sector header +word is used internally by the disk control and cannot be accessed by PDP-8 software. The Read All +command then can be used to verify the data written to the initialized sectors. The Read All command +prevents the RK8-E from reading sector header words and report header errors that will certainly exist +on an unformatted disk. +

    + +

    Normal Read and Write Operations

    + +

    +For a normal disk read or write, a program has to perform the following steps: +

    + +
      +
    • + Set up the memory transfer address using DLCA. +
    • +
    • + Set up the command register with 00xy for read and 10xy for write using DLDC (xy is determined + by the memory field for the data transfer, the selected disk drive and the disk block number; + see the RK8-E window for the exact bit assignment.) +
    • +
    • + Set up the required disk address (block number) and start the I/O operation using DLAG. +
    • +
    • + Wait until the data is transferred by “Data Break” (Direct Memory Access, DMA) and + the RK8-E I/O flag is raised (using DSKP), then check for errors (using DRST to read the + status register). +
    • +
    + +

    Seek Only

    + +

    +The sequence for seek only (command register function bits equal three) is different from normal read +or write operation. It is necessary to put two skip or interrupt sequences in the program: +

    + +
      +
    • + Set up the command register with 300x for seek only and the desired drive number. +
    • +
    • + Load the disk address (block number) and go. +
    • +
    • + Wait for the RK8-E I/O flag. +
    • +
    • + Clear the RK8-E I/O flag. The drive has started to move the head to the desired track. +
    • +
    • + If the RK8-E I/O flag is to be set when the seek is complete, bit 4 of the command register must + be set to one. So issue a load command (DLDC) with the selected drive number in AC(10–11) + and AC(4) = 1. +
    • +
    • + Wait for the RK8-E I/O flag. +
    • +
    + +

    +The alternative to the last two steps is to check the “Head in Motion” bit of the +RK8-E status register (bit 1) which is zero when the seek is completed. +

    + +

    +When seek operations are started for more than one RK05 drive simultaneously (overlapped seek), +care has to be taken to determine which drive has completed its seek operation when the RK8-E I/O flag +is raised or a disk interrupt occurs. There are two methods to do this: +

    + +
      +
    • + Before selecting a new drive to check its seek status, clear bit 4 of the command register + without changing the old drive number. Then change the drive number with bit 4 of the + command register equal to a one. When the new drive has completed the seek, there will be + no confusion as to which drive set the RK8-E I/O flag. +
    • +
    • + Leave bit 4 of the command register set and check bit 1 (“Head in Motion”) of the + status register to determine if the now or previously selected drive set the RK8-E I/O flag. +
    • +
    + +

    Capacity of a DECpack Disk Cartridge

    + +

    +A DECpack cartridge has two surfaces, each surface has 200 (+ 3 spare) cylinders, each cylinder has +16 sectors (blocks) with 256 12-bit words. So a disk has block numbers 0–6,495 and a capacity of +1,662,976 words (nearly 2.5 MB); a PDP-8 with four RK05 drives has online access to nearly 10 MB of +mass storage. +

    + +

    Technical Notes

    + +
      +
    • + The PDP-8/E Simulator stores DECpack disk cartridges in files with the extension .rk05. + (For compatibility reasons, files with the file type ‘RK8E’ and creator + ‘RK8E’ used by the Classic PDP-8/E Simulator are still recognized.) + The disk is stored as an unstructured sequence of DECpack disk blocks, each block with 256 12-bit + words. Two consecutive 12-bit words aaaaaaaaAAAA BBBBbbbbbbbb are stored in three consecutive bytes + aaaaaaaa AAAABBBB bbbbbbbb (MSB at the left in both cases). +
    • +
    • + Cylinders of newly created DECpack disk files are not stored in the file until a block of the + cylinder is read or written by the PDP-8. Reading never written data returns zeros. The simulator + always buffers a complete DECpack disk cylinder in memory. +
    • +
    • + The RK8-E uses threads for each RK05 drive, so the drives really work parallel to the simulated PDP-8. +
    • +
    • + The header words of the sectors are not simulated explicitly. They are assumed to be always correct. + It is impossible for PDP-8 software to access this word temporarily stored in the CRC register + with the DMAN IOT. +
    • +
    • + The block CRC words are not stored in the DECpack disk file because there is no danger of single + bit errors with the simulated disks. The CRC is calculated when a block is read or written and is + available for the PDP-8 via the DMAN IOT. However, the PDP-8 can write wrong CRCs to the disk by + issuing DMAN instructions shifting the CRC register while an I/O operation is in progress. Then + the PDP-8 can read the block back and check for CRC errors. For this purpose, the simulator holds + a bit for every block indicating that the CRC of the block was willfully destroyed. This bit array + is not stored with the disk image, so CRC errors disappear by unmounting and remounting a DECpack + disk or by restarting the simulator. +
    • +
    + + + \ No newline at end of file diff --git a/RK8E/English.lproj/RK8EOnlineHelp/pdp8e.png b/RK8E/English.lproj/RK8EOnlineHelp/pdp8e.png new file mode 100644 index 0000000000000000000000000000000000000000..2c0c485d23a4a9a335fe22dfb2ae4604c93d63b3 GIT binary patch literal 1166 zcmY*YZ)_A*5TCcZw|BjA^k^+1)|5s(S}<5?LRyS8Kw3&esEybU`k{de8vS4ie{!Ul znjjP#Vp1hQpjIdrnvhf^%0sPw|Bk0+kJ1Gx4jmf&D)vx zo0;Ftdpp}+UsvPvKIsJjU+u=Kmr48O^62zlY~VIhdef$wDnR+1x!QY_kgS~>U)>Fm zohKKAQ=cp%(7mU2bG3WiotM9;cv;7_asaKMwrbrg6$_YOo3tq6u^^&5)m5aE4sygH ze&-_cyR;C8X$4cC7U_aw9%lfs|8C+I?sNZoiEwLEvm?gR(5YuFuK6CW)JWi zJ%IKMjuKC+OjV8byl4ACn22I9*1A;050s&>EEJrhux&IiA3~$01k<;!V0?cGTDQMJ zkxrrg#|XyTD$r;Rh=~{mA@Xqg7h@L%jNNdO<45YyzI)5Djol?^et#iDY9XJ95Q#bC zd+$ZO^VjrmnrE zPByMU^Lih0Zlko5Uv@ifCV#ksiL-5vE%B+h*Es&zp{+Ri=4$+Dd?KQlY4e<*j|rY^ znku4}LKVSGP|IFO_xCzbPUlVVHg`bIiSJpvc>=-#ncu{l%x z3u#y$fkFY2OxzoF2%Wni3qgQT6%21b^WlaU%33l#16&P{jFo=Wu!Kg0p`t=o{aax6 z$$xZ4s1Pv5fHQ$3yDpAbmM(opdgch^rZ@C;$EwIcv;XELltdDn6+!=Gth}BL1~wes zQnU7*S^R%NR7I^W@Z~mje$kSf>u)F=>8C>j+F~e<<8SIj4!k2f We4z#BSEoX9Q(IkE_4)d(2mS@W-_sBP literal 0 HcmV?d00001 diff --git a/RK8E/English.lproj/RK8EOnlineHelp/styles.css b/RK8E/English.lproj/RK8EOnlineHelp/styles.css new file mode 100644 index 0000000..c18751d --- /dev/null +++ b/RK8E/English.lproj/RK8EOnlineHelp/styles.css @@ -0,0 +1,239 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * styles.css - Online help - Style sheet + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + +p { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +p.small { + font-size: 8pt; +} + +a { + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +a:hover { + text-decoration: underline +} + +ul { + margin-left: 1.25em; padding-left: 0em; +} + +li { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + text-decoration: none +} + +#mainbox { + background-color: #fff; + margin-top: 30px; + margin-right: 26px; + margin-left: 18px; + position: absolute; + top: 10px +} + +#taskbox { + background-color: #eee; + list-style-type: decimal; + list-style-position: outside; + margin-top: 12px; + margin-bottom: 12px; + border: solid 1px #444 +} + +h1 { + font-size: 12pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 6pt; +} + +h2 { + font-size: 12pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 8pt; +} + +h3 { + font-size: 10pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 5pt; +} + +h4 { + font-size: 9pt; + font-family: "Lucida Grande", Arial, "Sans Serif"; + padding-top: 4pt; +} + +/* index.html */ + +table.index { + padding-top: 20px; + width: 100%; +} + +td.banner { + padding: 20px; +} + +td.toc { + padding-top: 10px; + padding-bottom: 10px; + padding-left: 20px; + padding-right:20px; + border-left: 1px solid darkgray; +} + +p.toc { + line-height: 40px; +} + +/* other pages */ + +table { + border-collapse: separate; + border-spacing: 0px; +} + +th { + font-family: "Lucida Grande", Arial, "Sans Serif"; + font-size: 9pt; + font-style: bold; + border-bottom: 1px solid gray; + padding-left: 10px; + padding-right: 10px; +} + +th.left { + text-align: left; +} + +td { + text-align: center; + vertical-align: top; + font-family: "Lucida Grande", Arial, "Sans Serif"; + font-size: 9pt; + padding-left: 10px; + padding-right: 10px; +} + +td.left { + text-align: left; +} + +td.right { + text-align: right; +} + +td.br { + border-right: 1px solid gray; +} + +td.bb { + border-bottom: 1px solid lightgray; +} + +td.bb_left { + text-align: left; + border-bottom: 1px solid lightgray; +} + +td.bbr { + border-bottom: 1px solid lightgray; + border-right: 1px solid gray; +} + +td.opcode { + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_right { + text-align: right; + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_left { + text-align: left; + vertical-align: middle; + width: 40px; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tb { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-bottom: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tlb { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-left: 1px solid black; + border-bottom: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tbr { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border-top: 1px solid black; + border-bottom: 1px solid black; + border-right: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} + +td.opcode_tlbr { + vertical-align: middle; + background: lightgray; + width: 40px; + height: 40px; + border: 1px solid black; + padding-left: 0px; + padding-right: 0px; +} diff --git a/RK8E/English.lproj/io-info.plist b/RK8E/English.lproj/io-info.plist new file mode 100644 index 0000000..c97f10c --- /dev/null +++ b/RK8E/English.lproj/io-info.plist @@ -0,0 +1,47 @@ + + + + + + ioflags + + RK8-E + + ioaddresses + + 74 + + iots + + + DSKP + DCLR + DLAG + DLCA + DRST + DLDC + DMAN + + + diff --git a/RK8E/Info.plist b/RK8E/Info.plist new file mode 100644 index 0000000..c2ba4a5 --- /dev/null +++ b/RK8E/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleHelpBookFolder + RK8EOnlineHelp + CFBundleHelpBookName + RK8-E Disk Cartridge System Help + CFBundleIconFile + + CFBundleIdentifier + de.bernhard-baehr.pdp8e.RK8E + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + CFBundleSignature + ???? + CFBundleVersion + 2.0.2 + CFBundleShortVersionString + 2.0.2 + NSPrincipalClass + RK8E + + diff --git a/RK8E/RK05.h b/RK8E/RK05.h new file mode 100644 index 0000000..b30ed55 --- /dev/null +++ b/RK8E/RK05.h @@ -0,0 +1,77 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * RK05.h - Class implementing a RK05 DECpack drive + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#define WRITEPROTECT_CHANGED_NOTIFICATION @"rk05WriteProtectChangedNotification" + +#define RK05_BUFSIZE ((long) 32 * 384) /* 32 blocks with 256 12-bit-words */ +#define RK05_BLOCKS (203 * 2 * 16) /* 203 tracks, 2 surfaces, 16 blocks per track */ + + +@class RK8E, PDP8; + + +@interface RK05 : NSObject { +@private + IBOutlet RK8E *rk8e; + PDP8 *pdp8; + short driveNumber; + FILE *decpack; + volatile unsigned short cmd; + short cyl; + BOOL dirty; + BOOL locked; + short newcyl; + unsigned short blk; + unsigned char crcstate[RK05_BLOCKS / 8]; // for any block, a bit indicating that the CRC + // word virtually stored on the disk is correct + unsigned char buffer[RK05_BUFSIZE]; // buffer for one RK05 cylinder + unsigned long durationMicroSeconds; // duration of the current I/O operation + uint64_t startAtMachAbsolute; // Mach absolute time when drive started working + NSConditionLock *commandsLock; +} + +- (int) driveNumber; +- (void) setDriveNumber:(short)drvNum; +- (void) setPDP8:(PDP8 *)p8; +- (void) setWriteProtected:(BOOL)writeProtected; +- (BOOL) isWriteProtected; +- (BOOL) flush; +- (BOOL) canMount:(NSString *)path; +- (int) mount:(NSString *)path create:(BOOL)create; // 0 = ok, -1 = can't open file, -2 = file is locked +- (BOOL) unmount; +- (BOOL) isMounted; +- (BOOL) isBusy; +- (BOOL) isCalibrating; +- (void) stopCalibrating; +- (void) abortAllCommands; +- (void) setStatusAndAbortAllCommands; +- (void) setRecalibrating; +- (void) setFlushCylinder; +- (void) setReadCylinder:(unsigned short)cylinder; +- (void) setRaiseFlag; +- (void) clearRaiseFlag; +- (void) setRead:(BOOL)read write:(BOOL)write all:(BOOL)all newBlock:(unsigned short)newBlock; +- (void) start; + +@end diff --git a/RK8E/RK05.m b/RK8E/RK05.m new file mode 100644 index 0000000..cd5522f --- /dev/null +++ b/RK8E/RK05.m @@ -0,0 +1,512 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * RK05.m - Class implementing a RK05 DECpack drive + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import +#import +#import + +#import "PluginFramework/PluginAPI.h" +#import "PluginFramework/PDP8.h" +#import "PluginFramework/Utilities.h" + +#import "RK05.h" +#import "RK8E.h" + + +@implementation RK05 + + +/* "commands" for a RK05 drive to be performed asynchroniously, bit coded in self.cmd */ +#define RK05_RECALIBRATE 0400 +#define RK05_SET_CRC_STATE 0200 +#define RK05_DELAY 0100 +#define RK05_SEEK 0040 +#define RK05_FLUSH_CYL 0020 +#define RK05_READ_CYL 0010 +#define RK05_INPUT_BLOCK 0004 +#define RK05_OUTPUT_BLOCK 0002 +#define RK05_RAISE_FLAG 0001 + +#define NO_COMMANDS_AVAILABLE 0 +#define COMMANDS_AVAILABLE 1 + + +- (int) driveNumber +{ + return driveNumber; +} + + +- (void) setDriveNumber:(short)drvNum +{ + driveNumber = drvNum; +} + + +- (void) setPDP8:(PDP8 *)p8 +{ + pdp8 = p8; +} + + +- (void) setWriteProtected:(BOOL)writeProtected +{ + locked = writeProtected; + [[NSNotificationCenter defaultCenter] postNotificationName:WRITEPROTECT_CHANGED_NOTIFICATION + object:self]; +} + + +- (BOOL) isWriteProtected +{ + return locked; +} + + +- (BOOL) flush +{ + BOOL error = NO; + if (decpack && dirty) { + if (fseek(decpack, cyl * RK05_BUFSIZE, SEEK_SET) < 0) + error = YES; + else if (fwrite(buffer, 1, RK05_BUFSIZE, decpack) != RK05_BUFSIZE) + error = YES; + dirty = NO; + } + return error; +} + + +- (BOOL) canMount:(NSString *)path +{ + NSAssert (decpack == NULL, @"A DECpack is already mounted"); + FILE *handle = fopen([path cStringUsingEncoding:NSUTF8StringEncoding], "r+"); + if (handle) { + if (flock(fileno(handle), LOCK_EX | LOCK_NB)) { + fclose (handle); + return NO; + } + flock (fileno(handle), LOCK_UN); + return YES; + } + return NO; +} + + +- (int) mount:(NSString *)path create:(BOOL)create +{ + NSAssert (decpack == NULL, @"A DECpack is already mounted"); + int err = 0; + decpack = fopen([path cStringUsingEncoding:NSUTF8StringEncoding], create ? "w+" : "r+"); + if (decpack) { + if (flock(fileno(decpack), LOCK_EX | LOCK_NB)) { + fclose (decpack); + decpack = NULL; + err = -2; + } + } else + err = -1; + cyl = -1; + dirty = NO; + memset (crcstate, 0, sizeof(crcstate)); + [rk8e updateStatusMountFlags]; + return err; +} + + +- (BOOL) unmount +{ + NSAssert (decpack != NULL, @"Cannot unmount without mounted DECpack"); + BOOL error = [self flush]; + flock (fileno(decpack), LOCK_UN); + fclose (decpack); + decpack = NULL; + [rk8e updateStatusMountFlags]; + return error; +} + + +- (BOOL) isMounted +{ + return decpack != NULL; +} + + +- (BOOL) isBusy +{ + return cmd != 0; +} + + +- (BOOL) isCalibrating +{ + return (cmd & RK05_RECALIBRATE) ? YES : NO; +} + + +- (void) stopCalibrating +{ + cmd &= ~RK05_RECALIBRATE; +} + + +- (void) abortAllCommands +{ + cmd = 0; +} + + +- (void) setStatusAndAbortAllCommands +{ + if (cmd) { + unsigned short set = 0; + if (cmd & RK05_RECALIBRATE) + set |= STATUS_CONTROL_BUSY; + else + set |= (STATUS_DONE | STATUS_ERROR); + if (cmd & RK05_SEEK) + set |= STATUS_HEAD_IN_MOTION; + cmd = 0; + [rk8e setStatusBits:set clearStatusBits:0]; + } +} + + +- (void) setRecalibrating +{ + durationMicroSeconds = 85000; // 85 ms == 200 track movement + cmd |= RK05_RECALIBRATE | RK05_DELAY; +} + + +- (void) setFlushCylinder +{ + if (dirty) + cmd |= RK05_FLUSH_CYL; +} + + +- (void) setReadCylinder:(unsigned short)cylinder +{ + if (cyl != cylinder) { + newcyl = cylinder; + cmd |= RK05_READ_CYL; + } +} + + +- (void) setRaiseFlag +{ + cmd |= RK05_RAISE_FLAG; +} + + +- (void) clearRaiseFlag +{ + cmd &= ~RK05_RAISE_FLAG; +} + + +- (void) setRead:(BOOL)read write:(BOOL)write all:(BOOL)all newBlock:(unsigned short)newBlock +{ + long d; + + if (write && locked) { + [rk8e setStatusBits:STATUS_WRITE_LOCK_ERROR | STATUS_ERROR clearStatusBits:0]; + return; + } + if (newBlock > 014537) { + [rk8e setStatusBits:STATUS_DONE | STATUS_ERROR clearStatusBits:0]; + return; + } + if (! read && ! write && [self isMounted]) { // seek only + /* set on DISK ADDRESS ACKNOWLAGE; it is set again + on seek complete when command bit 4 is on */ + [rk8e setStatusBits:STATUS_DONE clearStatusBits:0]; + cmd |= RK05_SEEK; + } + if (cyl != (newBlock >> 5)) { + if (dirty) + cmd |= RK05_FLUSH_CYL; + newcyl = newBlock >> 5; + cmd |= RK05_READ_CYL; + d = newcyl - cyl; + if (d < 0) + d = -d; + d = 9621l + 379l * d; + /* 9.621 ms for seek start/stop, 0.379 ms per track */ + } else if (read || write) { + d = ((long) (newBlock & 017)) - ((long) (blk & 017)); + if (d < 0) + d += 16; + /* d == # sectors between the last accessed sector and the new sector */ + if (d <= 1) { /* correctly, this must be "if (d == 1)", but + MAINDEC-08-DHRKB-E-PB test 28 (consecutive sector read all test) + seems to have a little bug: it starts with WRITE ALL sector 36, + then READ ALL sector 0 (two sectors distance) and often fails + immediately with Transfer Done not set. The test should start + with sector 37. */ + if (all) { /* read or write ALL can read consecutive sectors */ + d = 1; + } else { /* normal read can't read consecutive sectors */ + if (d == 1) + d = 16; + } + } + d *= 2500; /* 2.5 ms per sector, 40 ms per revolution */ + } else + d = 0; + durationMicroSeconds = d; + cmd |= RK05_DELAY; + blk = newBlock; /* DMAN may destroy rk8e.block */ + if (read) + cmd |= RK05_INPUT_BLOCK | RK05_RAISE_FLAG; + if (write) + cmd |= RK05_OUTPUT_BLOCK | RK05_RAISE_FLAG; +} + + +- (void) start +{ + NSDate *delayUntil = [[NSDate alloc] initWithTimeIntervalSinceNow:0.005]; // 5 ms + startAtMachAbsolute = mach_absolute_time(); + if ([commandsLock lockWhenCondition:NO_COMMANDS_AVAILABLE beforeDate:delayUntil]) { + [commandsLock unlockWithCondition:COMMANDS_AVAILABLE]; + } + [delayUntil release]; // don't use autorelease, this floods the PDP-8 run thread autorelease pool +} + + +static ushort CRC (const unsigned char *p) /* CRC with polygon x^16 + x^15 + x^2 + 1 */ +{ + register short i, j; + register unsigned long data; + register ushort crc; + + crc = i = 0; + while (i < 384) { + data = p[i++] << 4; + data |= p[i] >> 4; + data |= p[i++] << 20; + data |= p[i++] << 12; + for (j = 0; j < 24; j++) { + if ((data ^ crc) & 0x1) + crc = (crc >> 1) ^ 0xa001; + else + crc >>= 1; + data >>= 1; + } + } + return (crc); +} + + +- (void) processCommand +{ + register ushort *field; + register unsigned char *bp; + register ushort i; + register ushort words; + unsigned short rk8eBlock; + unsigned short rk8eCommand; + unsigned short clear, set; + + /* after processing a command, return, so that the next call can process higher priority + commands that may have been added in the meantime by the RK8-E control */ + if (cmd & RK05_FLUSH_CYL) { + [rk8e lockControl]; + cmd &= ~RK05_FLUSH_CYL; + if (driveNumber == [rk8e getCurrentDriveNumber]) + [rk8e setStatusBits:STATUS_HEAD_IN_MOTION clearStatusBits:0]; + cmd |= RK05_SEEK; + if (fseek(decpack, cyl * RK05_BUFSIZE, SEEK_SET) < 0) + [rk8e setStatusBits:STATUS_SEEK_FAILED clearStatusBits:0]; + else if (fwrite(buffer, 1, RK05_BUFSIZE, decpack) != RK05_BUFSIZE) + [rk8e setStatusBits:STATUS_ERROR clearStatusBits:0]; + else + dirty = 0; + [rk8e unlockControl]; + return; + } + if (cmd & RK05_READ_CYL) { + [rk8e lockControl]; + cmd &= ~RK05_READ_CYL; + if (cyl != newcyl) { + if (driveNumber == [rk8e getCurrentDriveNumber]) + [rk8e setStatusBits:STATUS_HEAD_IN_MOTION clearStatusBits:0]; + cmd |= RK05_SEEK; + cyl = newcyl; + if (fseek(decpack, 0, SEEK_END) < 0) + [rk8e setStatusBits:STATUS_SEEK_FAILED clearStatusBits:0]; + else if (ftell(decpack) < (cyl + 1) * RK05_BUFSIZE) + bzero (buffer, RK05_BUFSIZE); + else if (fseek(decpack, cyl * RK05_BUFSIZE, SEEK_SET) < 0) + [rk8e setStatusBits:STATUS_SEEK_FAILED clearStatusBits:0]; + else if (fread(buffer, 1, RK05_BUFSIZE, decpack) != RK05_BUFSIZE) + [rk8e setStatusBits:STATUS_ERROR clearStatusBits:0]; + } + [rk8e unlockControl]; + return; + } + if (cmd & RK05_INPUT_BLOCK) { + [rk8e lockControl]; + if (! [rk8e isCRCOK]) + [rk8e setStatusBits:STATUS_CYLINDER_ADDRESS_ERROR clearStatusBits:0]; +/* + * Read a sector from the RK8E disk file. The file packing scheme: + * <- 8 bits-> + * +---------+ 0H => High order of pdp8 word 0 + * | 0H | 0L => Low order of pdp8 word 0 + * +----+----+ 1H => High order of pdp8 word 1 + * | 0L | 1H | 1L => Low order of pdp8 word 1 + * +----+----+ + * | 1L | In other words, pdp8 words are written + * +----+----+ in bit order (high to low). + */ + rk8eBlock = [rk8e getBlockNumber]; + bp = buffer + (rk8eBlock & 037) * 384; + [rk8e setCRC:CRC(bp)]; + rk8eCommand = [rk8e getCommand]; + words = (rk8eCommand & COMMAND_HALF_BLOCK) ? 64 : 128; /* half of words to transfer */ + field = [pdp8 directMemoryAccess] + ((rk8eCommand & 070) << 9); + i = [rk8e getCurrentAddress]; + if (field < [pdp8 directMemoryAccess] + [pdp8 memorySize]) { + while (words--) { /* two words per loop */ + field[i & 07777] = *bp++ << 4; + field[i++ & 07777] |= *bp >> 4; + field[i & 07777] = (*bp++ & 017) << 8; + field[i++ & 07777] |= *bp++; + } + [pdp8 directMemoryWriteFinished]; + } + words = (rk8eCommand & COMMAND_HALF_BLOCK) ? 128 : 256; + [rk8e setCurrentAddress:([rk8e getCurrentAddress] + words) & 07777]; + cmd &= ~RK05_INPUT_BLOCK; + if (crcstate[rk8eBlock >> 3] & (1 << (rk8eBlock & 7))) + [rk8e setStatusBits:STATUS_CRC_ERROR clearStatusBits:0]; + [rk8e unlockControl]; + return; + } + if (cmd & RK05_OUTPUT_BLOCK) { + [rk8e lockControl]; + if (! [rk8e isCRCOK]) + [rk8e setStatusBits:STATUS_CYLINDER_ADDRESS_ERROR clearStatusBits:0]; + rk8eBlock = [rk8e getBlockNumber]; + bp = (unsigned char *) buffer + (rk8eBlock & 037) * 384; + rk8eCommand = [rk8e getCommand]; + words = (rk8eCommand & COMMAND_HALF_BLOCK) ? 64 : 128; /* half of words to transfer */ + field = [pdp8 directMemoryAccess] + ((rk8eCommand & 070) << 9); + i = [rk8e getCurrentAddress]; + while (words--) { /* two words per loop */ + *bp++ = field[i & 07777] >> 4; + *bp = field[i++ & 07777] << 4; + *bp++ |= field[i & 07777] >> 8; + *bp++ = field[i++ & 07777]; + } + if (rk8eCommand & COMMAND_HALF_BLOCK) { + for (i = 0; i < 192; i++) + *bp++ = 0; + } + [rk8e setCRC:CRC(bp - 384)]; + words = (rk8eCommand & COMMAND_HALF_BLOCK) ? 128 : 256; + [rk8e setCurrentAddress:([rk8e getCurrentAddress] + words) & 07777]; + dirty = true; + cmd &= ~RK05_OUTPUT_BLOCK; + cmd |= RK05_SET_CRC_STATE; + [rk8e unlockControl]; + return; + } + if (cmd & RK05_DELAY) { + // don't lock the control + cmd &= ~RK05_DELAY; + int speed = [pdp8 getGoSpeed]; + if (speed != GO_AS_FAST_AS_POSSIBLE) { + uint64_t delayUntilAbsolute = startAtMachAbsolute + + nanoseconds2absolute(durationMicroSeconds * 1000ll); + if (speed == GO_WITH_PDP8_SPEED) + mach_wait_until (delayUntilAbsolute); + else { + while (mach_absolute_time() < delayUntilAbsolute) + ; + } + } + // don't unlock the control + return; + } + if (cmd & RK05_SET_CRC_STATE) { + [rk8e lockControl]; + cmd &= ~RK05_SET_CRC_STATE; + words = 1 << (blk & 7); + if ([rk8e isCRCOK]) + crcstate[blk >> 3] &= ~words; + else + crcstate[blk >> 3] |= words; + [rk8e unlockControl]; + return; + } + if (cmd & (RK05_RECALIBRATE | RK05_SEEK | RK05_RAISE_FLAG)) { + [rk8e lockControl]; + set = clear = 0; + if (cmd & RK05_RAISE_FLAG) { + set = STATUS_DONE; + if (driveNumber == [rk8e getCurrentDriveNumber]) + clear |= STATUS_HEAD_IN_MOTION; + if (! [rk8e isCRCOK]) + set |= STATUS_CYLINDER_ADDRESS_ERROR; + } + if (cmd & (RK05_RECALIBRATE | RK05_SEEK)) { + if (driveNumber == [rk8e getCurrentDriveNumber]) { + if ([rk8e getCommand] & COMMAND_SET_DONE_ON_SEEK_DONE) + set = STATUS_DONE; + clear = STATUS_HEAD_IN_MOTION; + } + } + [rk8e setStatusBits:set clearStatusBits:clear]; + cmd &= ~(RK05_RAISE_FLAG | RK05_RECALIBRATE | RK05_SEEK); + [rk8e unlockControl]; + return; + } +} + + +- (void) rk05Thread:(id)object +{ + [[NSAutoreleasePool alloc] init]; + for (;;) { + [commandsLock lockWhenCondition:COMMANDS_AVAILABLE]; + while (cmd) + [self processCommand]; + [commandsLock unlockWithCondition:NO_COMMANDS_AVAILABLE]; + } +} + + +- (void) awakeFromNib +{ + commandsLock = [[NSConditionLock alloc] initWithCondition:NO_COMMANDS_AVAILABLE]; + [NSThread detachNewThreadSelector:@selector(rk05Thread:) toTarget:self withObject:nil]; +} + + +@end diff --git a/RK8E/RK05Controller.h b/RK8E/RK05Controller.h new file mode 100644 index 0000000..0813680 --- /dev/null +++ b/RK8E/RK05Controller.h @@ -0,0 +1,40 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * RK05Controller.h - Controller for RK05 view + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class RK05; + + +@interface RK05Controller : NSObject { +@private + IBOutlet NSButton *mountUnmountButton; + IBOutlet NSButton *writeProtectCheckbox; + IBOutlet NSTextField *filenameField; + IBOutlet RK05 *rk05; + NSString *decpackPath; +} + +- (IBAction) mountUnmountClicked:(id)sender; +- (IBAction) writeProtectClicked:(id)sender; + +@end diff --git a/RK8E/RK05Controller.m b/RK8E/RK05Controller.m new file mode 100644 index 0000000..19d7885 --- /dev/null +++ b/RK8E/RK05Controller.m @@ -0,0 +1,252 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * RK05Controller.m - Controller for RK05 view + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "PluginFramework/PluginAPI.h" +#import "PluginFramework/Utilities.h" +#import "PluginFramework/Unicode.h" +#import "PluginFramework/NSControl+FileDrop.h" +#import "PluginFramework/FileDropControlTargetProtocol.h" + +#import "RK05Controller.h" +#import "RK05.h" + + +#define DECPACK_HFS_TYPE_CODE 0x524b3845l // 'RK8E', for compatibility with the old simulator +#define DECPACK_EXTENSION_RK05 @"rk05" +#define DECPACK_EXTENSION_DECPACK @"decpack" + +#define CODER_KEY_RK05_PATH_FMT @"rk05path%d" +#define CODER_KEY_RK05_LOCK_FMT @"rk05lock%d" + + +@implementation RK05Controller + + +- (IBAction) writeProtectClicked:(id)sender +{ + [rk05 setWriteProtected:[sender intValue]]; +} + + +- (void) notifyWriteProtectChanged:(NSNotification *)notification +{ + // NSLog (@"RK05Controller notifyWriteProtectChanged"); + [writeProtectCheckbox setIntValue:[rk05 isWriteProtected]]; +} + + +- (void) updateMountButton:(NSString *)path +{ + NSBundle *bundle = [NSBundle bundleForClass:[self class]]; + if (path) { + decpackPath = [path retain]; + [filenameField setStringValue:[[NSFileManager defaultManager] displayNameAtPath:path]]; + [filenameField setHidden:NO]; + [mountUnmountButton setTitle: + NSLocalizedStringFromTableInBundle(@"Unmount", nil, bundle, @"")]; + [mountUnmountButton unregisterAsFileDropTarget]; + } else { + [mountUnmountButton setTitle: + NSLocalizedStringFromTableInBundle(@"Mount", nil, bundle, @"")]; + [mountUnmountButton registerAsFileDropTarget]; + [filenameField setHidden:YES]; + [decpackPath release]; + decpackPath = nil; + } +} + + +- (BOOL) mount:(NSString *)path create:(BOOL)create +{ + int err = [rk05 mount:path create:create]; + if (err) { + NSBundle *bundle = [NSBundle bundleForClass:[self class]]; + NSAlert *alert = [[NSAlert alloc] init]; + [alert setMessageText:err == -1 ? + (create ? + NSLocalizedStringFromTableInBundle( + @"Cannot create this DECpack.", nil, bundle, @"") : + NSLocalizedStringFromTableInBundle( + @"Cannot mount this DECpack, maybe it is write protected.", + nil, bundle, @"")) : + NSLocalizedStringFromTableInBundle( + @"This DECpack is already mounted to another RK05 drive.", nil, bundle, @"") + ]; + [alert setInformativeText:path]; + [alert beginSheetModalForWindow:[mountUnmountButton window] + modalDelegate:nil didEndSelector:nil contextInfo:nil]; + [alert release]; + } else + [self updateMountButton:path]; + return err == 0; +} + + +- (void) panelDidEnd:(NSSavePanel *)panel return:(int)ret context:(void *)context +{ + if (ret == NSOKButton) { + [panel close]; + [self mount:[panel filename] create:[panel isMemberOfClass:[NSSavePanel class]]]; + } + [[NSUserDefaults standardUserDefaults] setObject:[panel directory] forKey:LAST_FILE_PANEL_DIR_KEY]; +} + + +- (NSArray *) openFileTypes +{ + return [NSArray arrayWithObjects:DECPACK_EXTENSION_RK05, DECPACK_EXTENSION_DECPACK, + NSFileTypeForHFSTypeCode(DECPACK_HFS_TYPE_CODE), nil]; +} + + +- (IBAction) mountUnmountClicked:(id)sender +{ + if ([rk05 isMounted]) { + if ([rk05 unmount]) { + NSAlert *alert = [[NSAlert alloc] init]; + [alert setMessageText:NSLocalizedStringFromTableInBundle( + @"An error occured while closing the DECpack. " + "The data on that DECpack might be corrupt.", nil, + [NSBundle bundleForClass:[self class]], @"")]; + [alert setInformativeText:[filenameField stringValue]]; + [alert beginSheetModalForWindow:[mountUnmountButton window] + modalDelegate:nil didEndSelector:nil contextInfo:nil]; + [alert release]; + } + [self updateMountButton:nil]; + } else { + if ([[NSApp currentEvent] modifierFlags] & NSAlternateKeyMask) { + NSSavePanel *savePanel = [NSSavePanel savePanel]; + [savePanel setRequiredFileType:@"rk05"]; + [savePanel beginSheetForDirectory: + [[NSUserDefaults standardUserDefaults] stringForKey:LAST_FILE_PANEL_DIR_KEY] + file:nil modalForWindow:[mountUnmountButton window] modalDelegate:self + didEndSelector:@selector(panelDidEnd:return:context:) contextInfo:nil]; + } else + [[NSOpenPanel openPanel] beginSheetForDirectory: + [[NSUserDefaults standardUserDefaults] stringForKey:LAST_FILE_PANEL_DIR_KEY] + file:nil types:[self openFileTypes] + modalForWindow:[mountUnmountButton window] modalDelegate:self + didEndSelector:@selector(panelDidEnd:return:context:) contextInfo:nil]; + } +} + + +- (void) setDecpackPathAndMountAtStartup:(NSString *)path +{ + if (path == nil) + return; + if ([rk05 mount:path create:NO]) { + NSBundle *bundle = [NSBundle bundleForClass:[self class]]; + NSAlert *alert = [[NSAlert alloc] init]; + [alert setMessageText:[NSString stringWithFormat:NSLocalizedStringFromTableInBundle( + @"The following DECpack could not be found. It was mounted on RK05 drive %d. " + "Do you want to locate it?", nil, bundle, @""), [rk05 driveNumber]]]; + [alert setInformativeText:path]; + [[alert addButtonWithTitle:NSLocalizedStringFromTableInBundle(@"Yes", nil, bundle, @"")] + setKeyEquivalent:@"\r"]; + [[alert addButtonWithTitle:NSLocalizedStringFromTableInBundle(@"No", nil, bundle, @"")] + setKeyEquivalent:@"\e"]; + if ([alert runModal] == NSAlertFirstButtonReturn) { + NSOpenPanel *openPanel = [NSOpenPanel openPanel]; + [openPanel setTitle:[NSString stringWithFormat: + NSLocalizedStringFromTableInBundle(@"Locate the DECpack %C%@%C", + nil, bundle, @""), + UNICODE_LEFT_DOUBLEQUOTE, + [[NSFileManager defaultManager] displayNameAtPath:path], + UNICODE_RIGHT_DOUBLEQUOTE]]; + if ([openPanel runModalForDirectory: + [[NSUserDefaults standardUserDefaults] stringForKey:LAST_FILE_PANEL_DIR_KEY] + file:nil types:[self openFileTypes]] == NSOKButton) + [self mount:[openPanel filename] create:NO]; + [[NSUserDefaults standardUserDefaults] + setObject:[openPanel directory] forKey:LAST_FILE_PANEL_DIR_KEY]; + } + [alert release]; + } else + [self updateMountButton:path]; +} + + +#pragma mark FileDropControlTarget Protocol + + +- (BOOL) willAcceptFile:(NSString *)path +{ + NSString *extension = [path pathExtension]; + if ([extension isEqualToString:DECPACK_EXTENSION_RK05] || + [extension isEqualToString:DECPACK_EXTENSION_DECPACK] || + [NSHFSTypeOfFile(path) isEqualToString:NSFileTypeForHFSTypeCode(DECPACK_HFS_TYPE_CODE)]) { + return [rk05 canMount:path]; + } + return NO; +} + + +- (BOOL) acceptFile:(NSString *)path +{ + return [self mount:path create:NO]; +} + + +#pragma mark Initialization + + +- (id) initWithCoder:(NSCoder *)coder +{ + self = [super init]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notifyWriteProtectChanged:) + name:WRITEPROTECT_CHANGED_NOTIFICATION object:nil]; + [mountUnmountButton registerAsFileDropTarget]; + if (runningOnLionOrNewer()) { + // Make the textured button a normal push button of the same size, otherwise + // the label is not centered vertically and aligned with the "Write Proctect" label + NSRect rect = [mountUnmountButton frame]; + [mountUnmountButton setBezelStyle:NSRoundedBezelStyle]; + [mountUnmountButton setFrame:NSInsetRect(NSOffsetRect(rect, 0, -1), -5, -2)]; + } + int drive = [mountUnmountButton tag]; + [rk05 setDriveNumber:drive]; + [self setDecpackPathAndMountAtStartup: + [coder decodeObjectForKey:[NSString stringWithFormat:CODER_KEY_RK05_PATH_FMT, drive]]]; + [rk05 setWriteProtected: + [coder decodeBoolForKey:[NSString stringWithFormat:CODER_KEY_RK05_LOCK_FMT, drive]]]; + return self; +} + + +- (void) encodeWithCoder:(NSCoder *)coder +{ + int drive = [rk05 driveNumber]; + [coder encodeObject:decpackPath forKey: + [NSString stringWithFormat:CODER_KEY_RK05_PATH_FMT, drive]]; + [coder encodeBool:[rk05 isWriteProtected] forKey: + [NSString stringWithFormat:CODER_KEY_RK05_LOCK_FMT, drive]]; + [rk05 flush]; +} + + +@end diff --git a/RK8E/RK8E.h b/RK8E/RK8E.h new file mode 100644 index 0000000..37f26e2 --- /dev/null +++ b/RK8E/RK8E.h @@ -0,0 +1,141 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * RK8E.h - RK8-E Disk Cartridge System for the PDP-8/E Simulator + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#define COMMAND_CHANGED_NOTIFICATION @"rk8eCommandChangedNotification" +#define STATUS_CHANGED_NOTIFICATION @"rk8eStatusChangedNotification" +#define BLOCKNUMBER_CHANGED_NOTIFICATION @"rk8eBlockNumberChangedNotification" +#define MEMORYADDRESS_CHANGED_NOTIFICATION @"rk8eMemoryAddressChangedNotification" + + +/* RK8-E status flags */ +#define STATUS_DONE 04000 +#define STATUS_HEAD_IN_MOTION 02000 +#define STATUS_UNUSED 01000 +#define STATUS_SEEK_FAILED 00400 +#define STATUS_FILE_NOT_READY 00200 +#define STATUS_CONTROL_BUSY 00100 +#define STATUS_TIMING_ERROR 00040 +#define STATUS_WRITE_LOCK_ERROR 00020 +#define STATUS_CRC_ERROR 00010 +#define STATUS_DATA_REQUEST_LATE 00004 +#define STATUS_ERROR 00002 +#define STATUS_CYLINDER_ADDRESS_ERROR 00001 + +//#define STATUS_RAISE_FLAG_MASK 04153 // This is the value from PDP-8/E Simulator 1.x. Why? +#define STATUS_RAISE_FLAG_MASK 04142 + + +/* RK8-E command bits */ +#define COMMAND_FUNCTION_MASK 07000 +#define COMMAND_FUNCTION_READ 00000 +#define COMMAND_FUNCTION_READ_ALL 01000 +#define COMMAND_FUNCTION_LOCK 02000 +#define COMMAND_FUNCTION_SEEK 03000 +#define COMMAND_FUNCTION_WRITE 04000 +#define COMMAND_FUNCTION_WRITE_ALL 05000 +#define COMMAND_INTERRUPT_ON_DONE 00400 +#define COMMAND_SET_DONE_ON_SEEK_DONE 00200 +#define COMMAND_HALF_BLOCK 00100 +#define COMMAND_EXTENDED_ADDRESS_MASK 00070 +#define COMMAND_DRIVE_SELECT_MASK 00006 +#define COMMAND_BLOCK_NUMBER_MSB 00001 + + +@class RK05, RK05Controller; + + +@interface RK8E : PDP8Plugin +{ +@private + IBOutlet RK05 *rk05_0; + IBOutlet RK05 *rk05_1; + IBOutlet RK05 *rk05_2; + IBOutlet RK05 *rk05_3; + IBOutlet RK05Controller *rk05Controller_0; + IBOutlet RK05Controller *rk05Controller_1; + IBOutlet RK05Controller *rk05Controller_2; + IBOutlet RK05Controller *rk05Controller_3; + NSLock *controlLock; +@public +/* The attributes are public, so the C functions implementing the PDP-8 instructions can + access them directly. No other Cocoa code should use them directly. To ensure this, + the register names are mapped to dummy names with the #defines below. In the source + codes files with the instruction C functions, #define USE_RK8E_REGISTERS_DIRECTLY + to make the registers available. */ + RK05 *rk05[4]; // array of the four pointers above set while initialization + unsigned short command; + volatile unsigned short status; + unsigned short block; // 13 bit value + unsigned short curaddr; + unsigned long ioflag; + BOOL maint; // the following registers for maintenance mode + unsigned short ldb[4]; // lower data buffer + unsigned char ldbfill; // how many lower data buffers are full + unsigned short udb; // upper data buffer + unsigned short crc; // checksum + unsigned short checkcrc; // needed for check if DMAN can destroy the CRC + unsigned char shifts; // how many shifts occured for udb or ldb + unsigned short wordcount; // word count for data breaks + BOOL shiftEnabled; // DMAN with AC=2000 was issued +} + +- (unsigned short) getCommand; +- (void) setCommand:(unsigned short)cmd; +- (unsigned short) getStatus; +- (void) setStatus:(unsigned short)stat; +- (unsigned short) getBlockNumber; // 13 bit value including most significant bit +- (void) setBlockNumber:(unsigned short)blk; // from command register +- (unsigned short) getMemoryAddress; // 15 bit value including extended address +- (void) setMemoryAddress:(unsigned short)addr; // from command register +- (unsigned short) getCurrentAddress; +- (void) setCurrentAddress:(unsigned short)addr; + +- (unsigned short) getCurrentDriveNumber; +- (void) updateStatusMountFlags; +- (void) setStatusBits:(unsigned)set clearStatusBits:(unsigned)clear; +- (void) setCRC:(unsigned)newCRC; +- (BOOL) isCRCOK; +- (void) lockControl; +- (void) unlockControl; + +@end + + +#if ! USE_RK8E_REGISTERS_DIRECTLY +#define rk05 __dont_use_rk05__ +#define command __dont_use_command__ +#define status __dont_use_status__ +#define block __dont_use_block__ +#define address __dont_use_address__ +#define curaddr __dont_use_curraddr__ +#define ioflag __dont_use_ioflag__ +#define maint __dont_use_maint__ +#define ldb __dont_use_ldb__ +#define ldbfill __dont_use_ldbfill__ +#define crc __dont_use_crc__ +#define shifts __dont_use_shifts__ +#define wordcount __dont_use_wordcount__ +#define checkcrc __dont_use_checkcrc__ +#define shiftEnabled __dont_use_shiftEnabled__ +#endif diff --git a/RK8E/RK8E.m b/RK8E/RK8E.m new file mode 100644 index 0000000..2299de5 --- /dev/null +++ b/RK8E/RK8E.m @@ -0,0 +1,427 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * RK8E.m - RK8-E Disk Cartridge System for the PDP-8/E Simulator + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "PluginFramework/PluginAPI.h" +#import "PluginFramework/PDP8.h" +#import "PluginFramework/Utilities.h" +#import "PluginFramework/FileDropControlTargetProtocol.h" +#import "PluginFramework/NSThread+MainThread.h" + +#define USE_RK8E_REGISTERS_DIRECTLY 1 + +#import "RK8E.h" +#import "RK8Eiot.h" +#import "RK05.h" +#import "RK05Controller.h" + + +#define CODER_KEY_COMMAND @"cmd" +#define CODER_KEY_STATUS @"status" +#define CODER_KEY_BLOCK @"block" +#define CODER_KEY_CURADDR @"curaddr" +#define CODER_KEY_IOFLAG @"ioflag" +#define CODER_KEY_IOMASK @"iomask" +#define CODER_KEY_MAINT @"maint" +#define CODER_KEY_LDB0 @"ldb0" +#define CODER_KEY_LDB1 @"ldb1" +#define CODER_KEY_LDB2 @"ldb2" +#define CODER_KEY_LDB3 @"ldb3" +#define CODER_KEY_LDBFILL @"ldbfill" +#define CODER_KEY_UDB @"udb" +#define CODER_KEY_CRC @"crc" +#define CODER_KEY_CHECKCRC @"checkcrc" +#define CODER_KEY_SHIFTS @"shifts" +#define CODER_KEY_WORDCOUNT @"wordcount" +#define CODER_KEY_SHIFT_ENABLE @"shiftena" + + +@implementation RK8E + + +API_VERSION + + +#pragma mark Plugin Methods + + +- (NSArray *) iotsForAddress:(int)ioAddress +{ + return [NSArray arrayWithObjects: + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:i6741], + [NSValue valueWithPointer:i6742], + [NSValue valueWithPointer:i6743], + [NSValue valueWithPointer:i6744], + [NSValue valueWithPointer:i6745], + [NSValue valueWithPointer:i6746], + [NSValue valueWithPointer:i6747], + nil]; +} + + +- (NSArray *) skiptestsForAddress:(int)ioAddress +{ + return [NSArray arrayWithObjects: + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:s6741], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + [NSValue valueWithPointer:nil], + nil]; + +} + + +- (void) setIOFlag:(unsigned long)flag forIOFlagName:(NSString *)name; +{ + ioflag = flag; +} + + +- (void) resetInternalRegisters +{ + maint = NO; + ldb[0] = ldb[1] = ldb[2] = ldb[3] = 0; + ldbfill = 0; + udb = 0; + crc = 0; + checkcrc = 0; + shifts = 0; + wordcount = 0; + shiftEnabled = NO; +} + + +- (void) CAF:(int)ioAddress +{ + command = 0; + block = 0; + status = [rk05[0] isMounted] ? 0 : STATUS_HEAD_IN_MOTION | STATUS_FILE_NOT_READY; + curaddr = 0; + [self resetInternalRegisters]; + [pdp8 clearIOFlagBits:ioflag]; + [pdp8 clearInterruptMaskBits:ioflag]; + [rk05[0] abortAllCommands]; + [rk05[1] abortAllCommands]; + [rk05[2] abortAllCommands]; + [rk05[3] abortAllCommands]; +} + + +- (void) clearAllFlags:(int)ioAddress +{ + [self setCommand:0]; + [self setBlockNumber:0]; + [self setStatus:0]; + [self updateStatusMountFlags]; + [self setMemoryAddress:0]; + [self resetInternalRegisters]; + [pdp8 clearIOFlagBits:ioflag]; + [pdp8 clearInterruptMaskBits:ioflag]; + [rk05[0] abortAllCommands]; + [rk05[1] abortAllCommands]; + [rk05[2] abortAllCommands]; + [rk05[3] abortAllCommands]; +} + + +- (void) resetDevice +{ + [self clearAllFlags:0]; + [rk05[0] setWriteProtected:NO]; + [rk05[1] setWriteProtected:NO]; + [rk05[2] setWriteProtected:NO]; + [rk05[3] setWriteProtected:NO]; +} + + +#pragma mark Register Access + + +- (unsigned short) getCommand +{ + return command; +} + + +- (void) setCommand:(unsigned short)cmd +{ + NSAssert1 ((cmd & ~07777) == 0, @"Bad RK8-E Command: 0%o", cmd); + command = cmd; + if (command & COMMAND_INTERRUPT_ON_DONE) + [pdp8 setInterruptMaskBits:ioflag]; + else + [pdp8 clearInterruptMaskBits:ioflag]; + [self updateStatusMountFlags]; + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + [defaultCenter postNotificationName:COMMAND_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:MEMORYADDRESS_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:BLOCKNUMBER_CHANGED_NOTIFICATION object:self]; +} + + +- (void) notifyPDP8IOFlagsChanged:(NSNotification *)notification +{ + //NSLog (@"RK8E notifyPDP8IOFlagsChanged"); + if ([pdp8 getInterruptMaskBits:ioflag]) + command |= COMMAND_INTERRUPT_ON_DONE; + else + command &= ~COMMAND_INTERRUPT_ON_DONE; + [[NSNotificationCenter defaultCenter] postNotificationName:COMMAND_CHANGED_NOTIFICATION object:self]; + if ([pdp8 getIOFlagBits:ioflag]) { + if (! (status & STATUS_RAISE_FLAG_MASK)) + status |= STATUS_DONE; + } else + status &= ~STATUS_RAISE_FLAG_MASK; + [[NSNotificationCenter defaultCenter] postNotificationName:STATUS_CHANGED_NOTIFICATION object:self]; +} + + +- (unsigned short) getStatus +{ + return status; +} + + +- (void) setStatus:(unsigned short)stat +{ + NSAssert1 ((stat & ~07777) == 0, @"Bad RK8-E Status: 0%o", stat); + status = stat; + if (status & STATUS_RAISE_FLAG_MASK) + [pdp8 setIOFlagBits:ioflag]; + else + [pdp8 clearIOFlagBits:ioflag]; + [[NSNotificationCenter defaultCenter] postNotificationName:STATUS_CHANGED_NOTIFICATION object:self]; +} + + +- (void) updateStatusMountFlags +{ + NSAssertRunningOnMainThread (); + if ([rk05[(command >> 1) & 3] isMounted]) + status &= ~(STATUS_HEAD_IN_MOTION | STATUS_FILE_NOT_READY); + else + status |= STATUS_HEAD_IN_MOTION | STATUS_FILE_NOT_READY; + [[NSNotificationCenter defaultCenter] postNotificationName:STATUS_CHANGED_NOTIFICATION object:self]; +} + + +- (void) notifyStatusChangedWhenNotRunning +{ + NSAssertRunningOnMainThread (); + NSAssert (! [pdp8 isGoing], @"PDP-8 is running"); + [[NSNotificationCenter defaultCenter] postNotificationName:STATUS_CHANGED_NOTIFICATION object:self]; +} + + +- (void) setStatusBits:(unsigned)set clearStatusBits:(unsigned)clear +{ + status |= set; + status &= ~clear; + if (status & STATUS_RAISE_FLAG_MASK) + [pdp8 setIOFlagBits:ioflag]; + else + [pdp8 clearIOFlagBits:ioflag]; + if (! [pdp8 isGoing]) + [self performSelectorOnMainThread:@selector(notifyStatusChangedWhenNotRunning) + withObject:nil waitUntilDone:YES]; +} + + +- (unsigned short) getBlockNumber +{ + return ((command & 1) << 12) | block; +} + + +- (void) setBlockNumber:(unsigned short)blk +{ + NSAssert1 ((blk & ~017777) == 0, @"Bad RK8-E Block Number: 0%o", blk); + block = blk & 07777; + [[NSNotificationCenter defaultCenter] postNotificationName:BLOCKNUMBER_CHANGED_NOTIFICATION + object:self]; + [self setCommand:([self getCommand] & 07776) | (blk >> 12)]; +} + + +- (unsigned short) getMemoryAddress +{ + return ((command & 070) << 9) | curaddr; +} + + +- (void) setMemoryAddress:(unsigned short)addr +{ + NSAssert1 ((addr & ~077777) == 0, @"Bad RK8-E Memory Address: 0%o", addr); + curaddr = addr & 07777; + [[NSNotificationCenter defaultCenter] postNotificationName:MEMORYADDRESS_CHANGED_NOTIFICATION + object:self]; + [self setCommand:([self getCommand] & 07707) | ((addr >> 9) & 070)]; +} + + +- (unsigned short) getCurrentAddress +{ + return curaddr; +} + + +- (void) setCurrentAddress:(unsigned short)addr +{ + NSAssert1 ((addr & ~07777) == 0, @"Bad Current Address: 0%o", addr); + curaddr = addr; +} + + +- (unsigned short) getCurrentDriveNumber +{ + return (command >> 1) & 3; +} + + +- (void) setCRC:(unsigned)newCRC +{ + crc = checkcrc = newCRC; +} + + +- (BOOL) isCRCOK +{ + return crc == checkcrc; +} + + +- (void) lockControl +{ + [controlLock lock]; +} + + +- (void) unlockControl +{ + [controlLock unlock]; +} + + +#pragma mark Initialization + + +- (id) initWithCoder:(NSCoder *)coder +{ + self = [super init]; + [self setCommand:[coder decodeIntForKey:CODER_KEY_COMMAND]]; + [self setStatus:[coder decodeIntForKey:CODER_KEY_STATUS]]; + [self setBlockNumber:[coder decodeIntForKey:CODER_KEY_BLOCK]]; + [self setCurrentAddress:[coder decodeIntForKey:CODER_KEY_CURADDR]]; + [coder decodeBoolForKey:CODER_KEY_IOFLAG] ? + [pdp8 setIOFlagBits:ioflag] : [pdp8 clearIOFlagBits:ioflag]; + [coder decodeBoolForKey:CODER_KEY_IOMASK] ? + [pdp8 setInterruptMaskBits:ioflag] : [pdp8 clearInterruptMaskBits:ioflag]; + maint = [coder decodeBoolForKey:CODER_KEY_MAINT]; + ldb[0] = [coder decodeIntForKey:CODER_KEY_LDB0]; + ldb[1] = [coder decodeIntForKey:CODER_KEY_LDB1]; + ldb[2] = [coder decodeIntForKey:CODER_KEY_LDB2]; + ldb[3] = [coder decodeIntForKey:CODER_KEY_LDB3]; + ldbfill = [coder decodeIntForKey:CODER_KEY_LDBFILL]; + udb = [coder decodeIntForKey:CODER_KEY_UDB]; + crc = [coder decodeIntForKey:CODER_KEY_CRC]; + checkcrc = [coder decodeIntForKey:CODER_KEY_CHECKCRC]; + shifts = [coder decodeIntForKey:CODER_KEY_SHIFTS]; + wordcount = [coder decodeIntForKey:CODER_KEY_WORDCOUNT]; + shiftEnabled = [coder decodeBoolForKey:CODER_KEY_SHIFT_ENABLE]; + return self; +} + + +- (void) encodeWithCoder:(NSCoder *)coder +{ + [coder encodeInt:[self getCommand] forKey:CODER_KEY_COMMAND]; + [coder encodeInt:[self getStatus] forKey:CODER_KEY_STATUS]; + [coder encodeInt:[self getBlockNumber] forKey:CODER_KEY_BLOCK]; + [coder encodeInt:[self getCurrentAddress] forKey:CODER_KEY_CURADDR]; + [coder encodeBool:[pdp8 getIOFlagBits:ioflag] ? YES : NO forKey:CODER_KEY_IOFLAG]; + [coder encodeBool:[pdp8 getInterruptMaskBits:ioflag] ? YES : NO forKey:CODER_KEY_IOMASK]; + [coder encodeBool:maint forKey:CODER_KEY_MAINT]; + [coder encodeInt:ldb[0] forKey:CODER_KEY_LDB0]; + [coder encodeInt:ldb[1] forKey:CODER_KEY_LDB1]; + [coder encodeInt:ldb[2] forKey:CODER_KEY_LDB2]; + [coder encodeInt:ldb[3] forKey:CODER_KEY_LDB3]; + [coder encodeInt:ldbfill forKey:CODER_KEY_LDBFILL]; + [coder encodeInt:udb forKey:CODER_KEY_UDB]; + [coder encodeInt:crc forKey:CODER_KEY_CRC]; + [coder encodeInt:checkcrc forKey:CODER_KEY_CHECKCRC]; + [coder encodeInt:shifts forKey:CODER_KEY_SHIFTS]; + [coder encodeInt:wordcount forKey:CODER_KEY_WORDCOUNT]; + [coder encodeBool:shiftEnabled forKey:CODER_KEY_SHIFT_ENABLE]; +} + + +- (void) notifyApplicationWillTerminate:(NSNotification *)notification +{ + // NSLog (@"RK8E notifyApplicationWillTerminate"); + NSMutableData *data = [NSMutableData data]; + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + [self encodeWithCoder:archiver]; + [rk05Controller_0 encodeWithCoder:archiver]; + [rk05Controller_1 encodeWithCoder:archiver]; + [rk05Controller_2 encodeWithCoder:archiver]; + [rk05Controller_3 encodeWithCoder:archiver]; + [archiver finishEncoding]; + [archiver release]; + [[NSUserDefaults standardUserDefaults] setObject:data forKey:[self pluginName]]; +} + + +- (void) pluginDidLoad +{ + rk05[0] = rk05_0; [rk05[0] setPDP8:pdp8]; + rk05[1] = rk05_1; [rk05[1] setPDP8:pdp8]; + rk05[2] = rk05_2; [rk05[2] setPDP8:pdp8]; + rk05[3] = rk05_3; [rk05[3] setPDP8:pdp8]; + NSData *data = [[NSUserDefaults standardUserDefaults] dataForKey:[self pluginName]]; + if (data) { + NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; + self = [self initWithCoder:unarchiver]; + [rk05Controller_0 initWithCoder:unarchiver]; + [rk05Controller_1 initWithCoder:unarchiver]; + [rk05Controller_2 initWithCoder:unarchiver]; + [rk05Controller_3 initWithCoder:unarchiver]; + [unarchiver finishDecoding]; + [unarchiver release]; + } + controlLock = [[NSLock alloc] init]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyApplicationWillTerminate:) + name:NSApplicationWillTerminateNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notifyPDP8IOFlagsChanged:) + name:IOFLAGS_CHANGED_NOTIFICATION object:nil]; +} + + +@end diff --git a/RK8E/RK8EController.h b/RK8E/RK8EController.h new file mode 100644 index 0000000..890c27b --- /dev/null +++ b/RK8E/RK8EController.h @@ -0,0 +1,61 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * RK8EController.h - Controller for RK8-E register view + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +@class RK8E, RegisterFormCell, KeepInMenuWindow; + + +@interface RK8EController : NSObject { +@private + IBOutlet RK8E *rk8e; + IBOutlet KeepInMenuWindow *window; + IBOutlet NSBox *rk8eBox; + IBOutlet RegisterFormCell *commandRegister; + IBOutlet NSPopUpButton *cmdFunction; + IBOutlet NSPopUpButton *cmdInterrupt; + IBOutlet NSPopUpButton *cmdSetDone; + IBOutlet NSPopUpButton *cmdBlockLength; + IBOutlet NSPopUpButton *cmdExtendedAddress; + IBOutlet NSPopUpButton *cmdDriveSelect; + IBOutlet NSPopUpButton *cmdBlockNumberMSB; + IBOutlet RegisterFormCell *statusRegister; + IBOutlet NSButton *statusTransferDone; + IBOutlet NSButton *statusHeadInMotion; + IBOutlet NSButton *statusUnused; + IBOutlet NSButton *statusSeekFailed; + IBOutlet NSButton *statusFileNotReady; + IBOutlet NSButton *statusControlBusy; + IBOutlet NSButton *statusTimingError; + IBOutlet NSButton *statusWriteLockError; + IBOutlet NSButton *statusCRCError; + IBOutlet NSButton *statusDataRequestLate; + IBOutlet NSButton *statusDriveStatusError; + IBOutlet NSButton *statusCylinderAddressError; + IBOutlet RegisterFormCell *blockNumberRegister; + IBOutlet RegisterFormCell *memoryAddressRegister; +} + +- (IBAction) commandPopupClicked:(id)sender; +- (IBAction) statusCheckboxClicked:(id)sender; + +@end diff --git a/RK8E/RK8EController.m b/RK8E/RK8EController.m new file mode 100644 index 0000000..712f324 --- /dev/null +++ b/RK8E/RK8EController.m @@ -0,0 +1,184 @@ +/* + * PDP-8/E Simulator + * + * Copyright © 1994-2015 Bernhard Baehr + * + * RK8EController.h - Controller for RK8-E register view + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#import "PluginFramework/PluginAPI.h" +#import "PluginFramework/PDP8.h" +#import "PluginFramework/RegisterFormCell.h" +#import "PluginFramework/KeepInMenuWindow.h" + +#import "RK8EController.h" +#import "RK8E.h" + + +@implementation RK8EController + + +/* The tags of the popups contain in the high byte the mask for the bits in the command register + represented by the popup, and in the low byte the shift to move the bits of the popup to the + correct position in the command register. The tags of the items of the popup menus are the item + index, i. e. the bits to set when the item is selected. */ + + +- (IBAction) commandPopupClicked:(id)sender +{ + unsigned short tag = [sender tag]; + unsigned short mask = (tag >> 8) << (tag & 0xff); + [rk8e setCommand:([rk8e getCommand] & ~mask) | ([[sender selectedItem] tag] << (tag & 0xff))]; +} + + +- (void) notifyCommandChanged:(NSNotification *)notification +{ + // NSLog (@"RK8EController notifyCommandChanged"); + unsigned short tag; + unsigned short command = [rk8e getCommand]; +#define SET_COMMAND_POPUP(popup) \ + tag = [(popup) tag]; [(popup) selectItemAtIndex:(command >> (tag & 0xff)) & (tag >> 8)] + SET_COMMAND_POPUP (cmdFunction); + SET_COMMAND_POPUP (cmdInterrupt); + SET_COMMAND_POPUP (cmdSetDone); + SET_COMMAND_POPUP (cmdBlockLength); + SET_COMMAND_POPUP (cmdExtendedAddress); + SET_COMMAND_POPUP (cmdDriveSelect); + SET_COMMAND_POPUP (cmdBlockNumberMSB); +#undef SET_COMMAND_POPUP +} + + +/* The tags of the status checkboxes are the corresponding bit masks of the flags in the status register. */ + + +- (IBAction) statusCheckboxClicked:(id)sender +{ + if ([sender intValue]) + [rk8e setStatusBits:[sender tag] clearStatusBits:0]; + else + [rk8e setStatusBits:0 clearStatusBits:[sender tag]]; +} + + +- (void) notifyStatusChanged:(NSNotification *)notification +{ + // NSLog (@"RK8EController notifyStatusChanged"); + unsigned short status = [rk8e getStatus]; +#define SET_STATUS_CHECKBOX(ckbox) [(ckbox) setIntValue:(status & [(ckbox) tag]) ? 1 : 0] + SET_STATUS_CHECKBOX (statusTransferDone); + SET_STATUS_CHECKBOX (statusHeadInMotion); + SET_STATUS_CHECKBOX (statusUnused); + SET_STATUS_CHECKBOX (statusSeekFailed); + SET_STATUS_CHECKBOX (statusFileNotReady); + SET_STATUS_CHECKBOX (statusControlBusy); + SET_STATUS_CHECKBOX (statusTimingError); + SET_STATUS_CHECKBOX (statusWriteLockError); + SET_STATUS_CHECKBOX (statusCRCError); + SET_STATUS_CHECKBOX (statusDataRequestLate); + SET_STATUS_CHECKBOX (statusDriveStatusError); + SET_STATUS_CHECKBOX (statusCylinderAddressError); +#undef SET_STATUS_CHECKBOX +} + + +- (void) setRK8EControllerEnabled:(BOOL)flag +{ + NSControl *control; + NSEnumerator *enumerator = [[[rk8eBox contentView] subviews] objectEnumerator]; + while ((control = [enumerator nextObject])) + [control setEnabled:flag]; +} + + +- (void) notifyGo:(NSNotification *)notification +{ + [self setRK8EControllerEnabled:NO]; +} + + +- (void) notifyStep:(NSNotification *)notification +{ + NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter]; + [defaultCenter postNotificationName:COMMAND_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:STATUS_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:MEMORYADDRESS_CHANGED_NOTIFICATION object:self]; + [defaultCenter postNotificationName:BLOCKNUMBER_CHANGED_NOTIFICATION object:self]; +} + + +- (void) notifyStop:(NSNotification *)notification +{ + [self notifyStep:notification]; + [self setRK8EControllerEnabled:YES]; +} + + +- (void) setupNotifications +{ + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyCommandChanged:) name:COMMAND_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyStatusChanged:) name:STATUS_CHANGED_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyGo:) name:PDP8_GO_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyStop:) name:PDP8_STOP_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(notifyStep:) name:PDP8_STEP_NOTIFICATION object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notifyPluginsLoaded:) + name:PLUGINS_LOADED_NOTIFICATION object:nil]; +} + + +- (void) setupRegisters +{ + [commandRegister setupRegisterFor:rk8e + getRegisterValue:@selector(getCommand) setRegisterValue:@selector(setCommand:) + changedNotificationName:COMMAND_CHANGED_NOTIFICATION mask:07777 base:8]; + [statusRegister setupRegisterFor:rk8e + getRegisterValue:@selector(getStatus) setRegisterValue:@selector(setStatus:) + changedNotificationName:STATUS_CHANGED_NOTIFICATION mask:07777 base:8]; + [blockNumberRegister setupRegisterFor:rk8e + getRegisterValue:@selector(getBlockNumber) setRegisterValue:@selector(setBlockNumber:) + changedNotificationName:BLOCKNUMBER_CHANGED_NOTIFICATION mask:017777 base:8]; + [memoryAddressRegister setupRegisterFor:rk8e + getRegisterValue:@selector(getMemoryAddress) setRegisterValue:@selector(setMemoryAddress:) + changedNotificationName:MEMORYADDRESS_CHANGED_NOTIFICATION mask:077777 base:8]; +} + + +- (void) notifyPluginsLoaded:(NSNotification *)notification +{ + [window orderBackFromDefaults:self]; + [window makeFirstResponder:window]; +} + + +- (void) awakeFromNib +{ + [self setupRegisters]; + [self setupNotifications]; +} + + +@end diff --git a/RK8E/RK8Eiot.c b/RK8E/RK8Eiot.c new file mode 100644 index 0000000..3ceb4ad --- /dev/null +++ b/RK8E/RK8Eiot.c @@ -0,0 +1,383 @@ +/* + * PDP-8/E Simulator Source Code + * + * Copyright © 1994-2015 Bernhard Baehr + * + * RK8Eiot.h - IOTs for the RK8-E plugin + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +#import + +#define USE_RK8E_REGISTERS_DIRECTLY 1 +#define USE_PDP8_REGISTERS_DIRECTLY 1 + +#include "PluginFramework/PluginAPI.h" +#include "PluginFramework/PDP8.h" + +#include "RK8Eiot.h" +#include "RK8E.h" +#include "RK05.h" + + +void i6741 (void) /* DSKP 6741 */ +{ + RK8E *rk8e = PLUGIN_POINTER(RK8E); + [rk8e lockControl]; + if (pdp8->IOFLAGS & rk8e->ioflag) + pdp8->PC++; + + [rk8e unlockControl]; + EXECUTION_TIME (26); +} + + +unsigned s6741 (void) /* DSKP 6741 skiptest */ +{ + return pdp8->IOFLAGS & PLUGIN_POINTER(RK8E)->ioflag; +} + + +void i6742 (void) /* DCLR 6742 */ +{ + RK05 *pack; + + RK8E *rk8e = PLUGIN_POINTER(RK8E); + [rk8e lockControl]; + rk8e->status = 0; + switch (pdp8->AC & 3) { + case 03 : + /* Unlock the drive - else MAINDEC-08-DHRKA-B-PB (diskless control test) + fails on second pass at test 15 because the drives are write protected. + (What happens with a real RK8-E in this case?) + if (! rk8e.pack[(pdp8.AC & 06) >> 1].pb.ioRefNum) + rk8e.pack[(pdp8.AC & 06) >> 1].locked = false; + */ + /* undefined 03 does the same as 00 - fall through */ + case 00 : + pdp8->AC &= 010000 ; + pdp8->IOFLAGS &= ~rk8e->ioflag; + pack = rk8e->rk05[(rk8e->command >> 1) & 3]; + if (! [pack isMounted]) + rk8e->status |= STATUS_HEAD_IN_MOTION | STATUS_FILE_NOT_READY; + if ([pack isCalibrating]) { + rk8e->status |= STATUS_CONTROL_BUSY | STATUS_ERROR; + pdp8->IOFLAGS |= rk8e->ioflag; + } + break; + case 01 : + pdp8->AC &= 010000; + pdp8->IMASK &= ~rk8e->ioflag; + pdp8->IOFLAGS &= ~rk8e->ioflag; + rk8e->command = 0; + rk8e->block &= ~010000; /* CRC is not affected */ + rk8e->curaddr = 0; + [rk8e->rk05[0] abortAllCommands]; + [rk8e->rk05[1] abortAllCommands]; + [rk8e->rk05[2] abortAllCommands]; + [rk8e->rk05[3] abortAllCommands]; + rk8e->maint = false; + rk8e->ldbfill = 0; + rk8e->ldb[0] = 0; + rk8e->ldb[1] = 0; + rk8e->ldb[2] = 0; + rk8e->ldb[3] = 0; + rk8e->udb = 0; + rk8e->wordcount = 0; + rk8e->shifts = 0; + if (! [rk8e->rk05[0] isMounted]) + rk8e->status |= STATUS_HEAD_IN_MOTION | STATUS_FILE_NOT_READY; + break; + case 02 : /* recalibrate to track 0 */ + pdp8->AC &= 010000; + pack = rk8e->rk05[(rk8e->command >> 1) & 3]; + BOOL wasCalibrating = [pack isCalibrating]; + [pack setRecalibrating]; + if ([pack isMounted]) { + [pack setFlushCylinder]; + [pack setReadCylinder:0]; + rk8e->status |= STATUS_DONE; + pdp8->IOFLAGS |= rk8e->ioflag; + if ([pack isBusy]) { + [pack setRaiseFlag]; + [pack start]; + } + } else { + rk8e->status |= STATUS_HEAD_IN_MOTION | STATUS_FILE_NOT_READY | STATUS_ERROR; + if (wasCalibrating) + rk8e->status |= STATUS_CONTROL_BUSY; + if (! rk8e->maint) + pdp8->IOFLAGS |= rk8e->ioflag; + [pack start]; + } + break ; + } + [rk8e unlockControl]; + EXECUTION_TIME (26); +} + + +void i6743 (void) /* DLAG 6743 */ +{ + RK8E *rk8e = PLUGIN_POINTER(RK8E); + [rk8e lockControl]; + rk8e->wordcount = (rk8e->command & COMMAND_HALF_BLOCK) ? 128 : 0; + RK05 *pack = rk8e->rk05[(rk8e->command >> 1) & 3]; + if ((! [pack isWriteProtected] || rk8e->maint) && ! [pack isCalibrating]) { + rk8e->block = ((rk8e->command & 1) << 12) | (pdp8->AC & 07777); + rk8e->crc = rk8e->checkcrc = rk8e->block & 017740; + /* cylinder in 16 bit format 000xxxxxxxx00000*/ + } + pdp8->AC &= 010000; + [pack setStatusAndAbortAllCommands]; + switch (rk8e->command & 07000) { + case 00000 : /* Read Data */ + [pack setRead:YES write:NO all:NO newBlock:rk8e->block]; + break; + case 01000 : /* Read All */ + [pack setRead:YES write:NO all:YES newBlock:rk8e->block]; + break ; + case 02000 : /* Set Write Protect */ + [pack setWriteProtected:YES]; + break ; + case 03000 : /* Seek Only */ + [pack setRead:NO write:NO all:NO newBlock:rk8e->block]; + break ; + case 04000 : /* Write Data */ + [pack setRead:NO write:YES all:NO newBlock:rk8e->block]; + break; + case 05000 : /* Write All */ + [pack setRead:NO write:YES all:YES newBlock:rk8e->block]; + break; + case 06000 : /* unused */ + case 07000 : /* unused */ + pdp8->IOFLAGS |= rk8e->ioflag; + rk8e->status |= STATUS_DONE | STATUS_TIMING_ERROR; + break; + } + if ([pack isMounted]) + [pack start]; + else { + [pack abortAllCommands]; + rk8e->status |= STATUS_HEAD_IN_MOTION | STATUS_FILE_NOT_READY | STATUS_ERROR; + pdp8->IOFLAGS |= rk8e->ioflag; + } + [rk8e unlockControl]; + EXECUTION_TIME (36); +} + + +void i6744 (void) /* DLCA 6744 */ +{ + RK8E *rk8e = PLUGIN_POINTER(RK8E); + [rk8e lockControl]; + rk8e->curaddr = pdp8->AC & 07777; + pdp8->AC &= 010000; + if ([rk8e->rk05[(rk8e->command >> 1) & 3] isCalibrating]) { + rk8e->status |= STATUS_CONTROL_BUSY; + pdp8->IOFLAGS |= rk8e->ioflag; + } + [rk8e unlockControl]; + EXECUTION_TIME (26); +} + + +void i6745 (void) /* DRST 6745 */ +{ + RK8E *rk8e = PLUGIN_POINTER(RK8E); + [rk8e lockControl]; + pdp8->AC = (pdp8->AC & 010000) | rk8e->status; + [rk8e unlockControl]; + EXECUTION_TIME (36); +} + + +void i6746 (void) /* DLDC 6746 */ +{ + RK8E *rk8e = PLUGIN_POINTER(RK8E); + [rk8e lockControl]; + rk8e->status = 0; + pdp8->IOFLAGS &= ~rk8e->ioflag; + RK05 *pack = rk8e->rk05[(rk8e->command >> 1) & 3]; + if (! rk8e->maint || ! [pack isCalibrating]) { + rk8e->command = pdp8->AC & 07777; + if (rk8e->command & 1) + rk8e->block |= 010000; /* CRC is not affected */ + pack = rk8e->rk05[(rk8e->command >> 1) & 3]; + } + pdp8->AC &= 010000; + if ([pack isMounted]) { + if ([pack isBusy]) + rk8e->status |= STATUS_HEAD_IN_MOTION; /* still seeking */ + // detected by Clang: rk8e->status is already 0 + // else + // rk8e->status &= ~STATUS_HEAD_IN_MOTION; /* seek already done */ + if ((rk8e->command & COMMAND_SET_DONE_ON_SEEK_DONE)) { + if (! [pack isBusy]) { + rk8e->status |= STATUS_DONE; + pdp8->IOFLAGS |= rk8e->ioflag; + } + } else + [pack clearRaiseFlag]; + } else { + rk8e->status = STATUS_HEAD_IN_MOTION | STATUS_FILE_NOT_READY; + if ([pack isCalibrating]) { + rk8e->status |= STATUS_CONTROL_BUSY | STATUS_ERROR; + pdp8->IOFLAGS |= rk8e->ioflag; + } + } + if (rk8e->command & COMMAND_INTERRUPT_ON_DONE) + pdp8->IMASK |= rk8e->ioflag; + else + pdp8->IMASK &= ~rk8e->ioflag; + [rk8e unlockControl]; + EXECUTION_TIME (36); +} + + +void i6747 (void) /* DMAN 6747 */ +{ + RK8E *rk8e = PLUGIN_POINTER(RK8E); + [rk8e lockControl]; + RK05 *pack = rk8e->rk05[(rk8e->command >> 1) & 3]; + if (pdp8->AC & 04000) { + /* enter maintenance mode */ + rk8e->maint = true; + rk8e->shifts = 0; + rk8e->shiftEnabled = false; + if (! (rk8e->status & ~(STATUS_HEAD_IN_MOTION | STATUS_FILE_NOT_READY | STATUS_ERROR))) + pdp8->IOFLAGS &= ~rk8e->ioflag; + } + if (rk8e->maint) { + switch (pdp8->AC & 07760) { + case 02000 : + /* enable to shift to lower data buffer */ + rk8e->shiftEnabled = true; + break; + case 01200 : + /* combination of 01000 and 00200 where the bit shifted into lower data + buffer is the logical OR of the bits from CRC and surface & sector */ + rk8e->ldb[0] = ((rk8e->block << 11) | (rk8e->ldb[0] >> 1)) & 07777; + rk8e->crc = ((pdp8->AC & 2) << 14) | (rk8e->crc >> 1); + rk8e->block = (rk8e->crc & 017740) | ((rk8e->block >> 1) & 037); + if (++rk8e->shifts == 12 && rk8e->ldbfill == 0) { + rk8e->ldbfill = 1; + rk8e->shifts = 0; + } + break; + case 01000 : + /* shift CRC to lower data buffer and AC10 to CRC */ + rk8e->ldb[0] = ((rk8e->crc << 11) | (rk8e->ldb[0] >> 1)) & 07777; + rk8e->crc = ((pdp8->AC & 2) << 14) | (rk8e->crc >> 1); + rk8e->block = (rk8e->crc & 017740) | (rk8e->block & 037); + if (++rk8e->shifts == 12 && rk8e->ldbfill == 0) { + rk8e->ldbfill = 1; + rk8e->shifts = 0; + } + if (! rk8e->shiftEnabled && ! rk8e->ldbfill) { + rk8e->status |= STATUS_DATA_REQUEST_LATE; + pdp8->IOFLAGS |= rk8e->ioflag; + } + if ([pack isCalibrating]) { + rk8e->status |= STATUS_DONE; + pdp8->IOFLAGS |= rk8e->ioflag; + } + break; + case 00400 : + /* shift command register to lower data buffer */ + rk8e->ldb[0] = ((rk8e->ldb[0] << 1) | (rk8e->command >> 11)) & 0177777; + rk8e->command = (rk8e->command << 1) & 07777; + rk8e->block &= ~010000; + rk8e->crc &= ~010000; + if (rk8e->command & COMMAND_INTERRUPT_ON_DONE) + pdp8->IMASK |= rk8e->ioflag; + else + pdp8->IMASK &= ~rk8e->ioflag; + if (++rk8e->shifts == 12 && rk8e->ldbfill == 0) + rk8e->ldbfill = 1; + break; + case 00200 : + /* shift surface and sector to lower data buffer */ + rk8e->ldb[0] = ((rk8e->block << 11) | (rk8e->ldb[0] >> 1)) & 07777; + rk8e->block = (rk8e->block & 07740) | ((rk8e->block & 037) >> 1); + if (++rk8e->shifts == 12 && rk8e->ldbfill == 0) { + rk8e->ldbfill = 1; + rk8e->shifts = 0; + } + break; + case 00100 : + /* shift AC10 to upper data buffer, buffer should sink in the silo when full */ + if (rk8e->ldbfill < 4 && rk8e->wordcount < 256) { + rk8e->udb = ((pdp8->AC & 2) << 10) | (rk8e->udb >> 1); + if (++rk8e->shifts == 12) { + if ((rk8e->command & COMMAND_HALF_BLOCK) && rk8e->wordcount >= 128) + rk8e->udb = 0; + rk8e->ldb[3] = rk8e->ldb[2]; + rk8e->ldb[2] = rk8e->ldb[1]; + rk8e->ldb[1] = rk8e->ldb[0]; + rk8e->ldb[0] = rk8e->udb; + rk8e->ldbfill++; + rk8e->wordcount++; + rk8e->shifts = 0; + } + if (((rk8e->command & COMMAND_HALF_BLOCK) && rk8e->wordcount == 128 && + rk8e->shifts == 0) + || (rk8e->wordcount == 255 && rk8e->shifts == 11)) { + rk8e->status |= STATUS_DONE; + pdp8->IOFLAGS |= rk8e->ioflag; + } + } else { + rk8e->status |= STATUS_DATA_REQUEST_LATE; + pdp8->IOFLAGS |= rk8e->ioflag; + } + break; + case 00040 : + /* single cycle data break */ + if ((rk8e->command & 07000) == 04000 || (rk8e->command & 07000) == 05000) { + /* write */ + if (rk8e->wordcount < 256 && rk8e->ldbfill < 4) { + rk8e->ldb[3] = rk8e->ldb[2]; + rk8e->ldb[2] = rk8e->ldb[1]; + rk8e->ldb[1] = rk8e->ldb[0]; + rk8e->ldb[0] = + pdp8->mem[((rk8e->command & 070) << 9) | rk8e->curaddr]; + rk8e->ldbfill++; + rk8e->wordcount++; + } + } else { /* read */ + if (((rk8e->command & 070) << 9) < pdp8->_hw.memsize) { + pdp8->mem[((rk8e->command & 070) << 9) | rk8e->curaddr] = + (rk8e->ldbfill > 0) ? rk8e->ldb[--rk8e->ldbfill] : 0; + } + } + rk8e->curaddr = (rk8e->curaddr + 1) & 07777; + break; + case 04020 : + case 00020 : + /* read lower data buffer into AC */ + if (rk8e->ldbfill > 0) + pdp8->AC = (pdp8->AC & 010000) | (rk8e->ldb[--rk8e->ldbfill] & 07777); + else + pdp8->AC &= 010000; + break; + } + } + [pack stopCalibrating]; + [rk8e unlockControl]; + EXECUTION_TIME (46); +} diff --git a/RK8E/RK8Eiot.h b/RK8E/RK8Eiot.h new file mode 100644 index 0000000..6a4a522 --- /dev/null +++ b/RK8E/RK8Eiot.h @@ -0,0 +1,32 @@ +/* + * PDP-8/E Simulator Source Code + * + * Copyright © 1994-2015 Bernhard Baehr + * + * RK8Eiots.c - IOTs for the RK8-E plugin + * + * This file is part of PDP-8/E Simulator. + * + * PDP-8/E Simulator 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. + * + * This program 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 this program. If not, see . + */ + + +extern void i6741 (void); /* DSKP 6741 */ +extern unsigned s6741 (void); /* DSKP (skip test) */ +extern void i6742 (void); /* DCLR 6742 */ +extern void i6743 (void); /* DLAG 6743 */ +extern void i6744 (void); /* DLCA 6744 */ +extern void i6745 (void); /* DRST 6745 */ +extern void i6746 (void); /* DLDC 6746 */ +extern void i6747 (void); /* DMAN 6747 */ diff --git a/ReadMe.rtf b/ReadMe.rtf new file mode 100644 index 0000000..0c293d5 --- /dev/null +++ b/ReadMe.rtf @@ -0,0 +1,9 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw11900\paperh16840\margl1440\margr1440\vieww12600\viewh7800\viewkind0 +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural + +\f0\fs24 \cf0 This folder contains the source code for PDP-8/E Simulator 2.0.\ +\ +Xcode 3.2.6 and the Mac OS X 10.4 SDK is required to compile and build the application.} \ No newline at end of file diff --git a/Resources/English.lproj/Credits.html b/Resources/English.lproj/Credits.html new file mode 100644 index 0000000..373efe5 --- /dev/null +++ b/Resources/English.lproj/Credits.html @@ -0,0 +1,73 @@ + + + + +About PDP-8/E Simulator + + + + +
    + +


    +This program 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. +

    + +

    +This program 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 this program. If not, see http://www.gnu.org/licenses/. +

    + +

    +The source code for this program is available at the
    +PDP-8/E Simulator homepage. +

    + +

    +You can contact the author via +bernhard.baehr@gmx.de. +

    + +

    +
    + +
    +
    +Made in Germany +

    + +
    +
    + + diff --git a/Resources/English.lproj/InfoPlist.strings b/Resources/English.lproj/InfoPlist.strings new file mode 100644 index 0000000000000000000000000000000000000000..4f2443a0d23ca29fed370472f4fb45ddc478c6e6 GIT binary patch literal 2148 zcmb`I*-qO~5QgWLK83|qTY=M6>MlWA7KsK#f)JNUFeGZ?L~&9?->5Iy_WNgYLRcga zsx15XjOWb!^UvbHe`@yJo><0n#SZK%_qx5antemow7v~(W&>;6)J8U$YbO0Vvawwv z@7uZc(8=sK_e*=v^#)6?>;=2G$TqD&uSBcOdg_ukvfeGLyJ($Z`2fFttFW5;Q(j8^ zRGeMs-b1I0HEI3Al59$QSxbge7Q&?na zywIuKk8;*o!jpV#EqG|U_bVPU+d>kERh4~qrLAG7;62VOj-QUKnt#viHL~k*Tt_Gi zR~5cuPeCjWgL7F_ttWra*o)mu*65C4@4DBUbUa+?8_b7YYDS2JAu4vu z_YHKLT*~}Dr-W41CX_8S>fqn=ouo%d5729JDo0OKEIKM`BO!QP6{mTkUQ+jEbW}ln zZD+p1W7tn#PMk5#rQmLWe&$(Ir9=m-OZv{IzO}i#oYGtk&aN{57|aQYdQ_cqj@6XS zu$-pcazzGnyFTwq&P~0;R82zti3p}#W2RD#>%y-b+a>jpqd(!jhR5X@P$BuUV5kOD zy6R+gbKcLIx(yf@x|h#*S|ykF{gYOy(A#!2ou*Vr{7ag=r~g7`54D`}|H}D;<*b?y z|LcDjh#OSq4v`PNM-IW;raIa_LyJ3o1@8Zg;wJw);24nEO|m$$ACJgKMpR)V;`|51 CJzHY{ literal 0 HcmV?d00001 diff --git a/Resources/English.lproj/MainMenu.nib/designable.nib b/Resources/English.lproj/MainMenu.nib/designable.nib new file mode 100644 index 0000000..e373f6f --- /dev/null +++ b/Resources/English.lproj/MainMenu.nib/designable.nib @@ -0,0 +1,8665 @@ + + + + 1040 + 10K549 + 851 + 1038.36 + 461.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 851 + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + + NSApplication + + + + FirstResponder + + + NSApplication + + + MainMenu + + + + PDP-8/E Simulator + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + + PDP-8/E Simulator + + + + About PDP-8/E Simulator + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + + + Services + + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide PDP-8/E Simulator + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit PDP-8/E Simulator + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + + + File + + + + + Load Paper Tape... + l + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + + + Edit + + + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + + + + Simulator + + 1048576 + 2147483647 + + + submenuAction: + + + Simulator + + + + Step + e + 1048576 + 2147483647 + + + + + + Trace + t + 1048576 + 2147483647 + + + + + + Go + g + 1048576 + 2147483647 + + + + + + Stop + . + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Breakpoints & Break Opcodes + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bootstrap Loader + + 2147483647 + + + + + + Load Bootstrap Loader + b + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Memory Inspector + i + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Clear All Flags + + 1048576 + 2147483647 + + + + + + Load Extended Address + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Reset + n + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + + + Window + + + + + Minimize + m + 1048576 + 2147483647 + + + + + + YES + Minimize All + m + 1572864 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + Zoom All + + 1572864 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar... + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 1048576 + 2147483647 + + + submenuAction: + + + + Help + + + + + PDP-8/E Simulator Help + ? + 1048576 + 2147483647 + + + + + + + + _NSMainMenu + + + MainController + + + BreakpointController + + + 155 + 2 + {{594, 568}, {332, 173}} + -265289728 + Breakpoints & Break Opcodes + NSPanel + + View + + {333, 800} + {332, 173} + + + 256 + + + + 272 + + + + 2304 + + + + 4352 + {138, 85} + + YES + + + 256 + {138, 17} + + + + + + 256 + {{139, 0}, {12, 17}} + + + + + 2 + 20 + 20 + 20 + + 75497536 + 134219776 + S + + LucidaGrande + 11 + 3100 + + + 3 + MC4zMzMzMzI5OQA + + + 6 + System + headerTextColor + + 3 + MAA + + + + + 67108864 + 134479872 + + + LucidaGrande + 12 + 16 + + + 1215582464 + 2 + + NSSwitch + + + + 400 + 75 + + YES + + + + 1 + 20 + 20 + 20 + + 75497536 + 134219776 + U + + + + + + 67108864 + 134479872 + + + + 1215582464 + 2 + + + + 400 + 75 + + YES + + + + 0 + 89 + 87.4599609375 + 89 + + 75497536 + 134219776 + Break Opcodes + + + 6 + System + headerColor + + 3 + MQA + + + + + + 337641536 + 134219776 + Text Cell + + LucidaGrande + 13 + 1044 + + + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 15 + 448790528 + + + 0 + 15 + 0 + YES + 0 + + + {{1, 17}, {138, 85}} + + + + + 4 + + + + 256 + {{139, 17}, {11, 85}} + + 256 + + _doScroller: + 0.5 + + + + -2147483392 + {{-100, -100}, {160, 15}} + + 257 + + _doScroller: + 0.90780138969421387 + + + + 2304 + + + + {{1, 0}, {138, 17}} + + + + + 4 + + + + {{171, 60}, {151, 103}} + + + 18 + + + + + QSAAAEEgAABBiAAAQYgAAA + + + + 272 + + + + 2304 + + + + 4352 + {138, 85} + + YES + + + 256 + {138, 17} + + + + + + 256 + {{139, 0}, {12, 17}} + + + + + 1 + 43 + 43 + 43 + + 75497536 + 134219776 + + + + 3 + MC4zMzMzMzI5OQA + + + + + 67108864 + 134479872 + + + + 1213485312 + 2 + + + + 400 + 75 + + YES + + + + 0 + 88.86865234375 + 74.86865234375 + 89 + + 75497536 + 134219776 + Breakpoints + + + + + + 337641536 + 134219776 + Text Cell + + + + + + + + + 3 + 2 + + + 15 + 448790528 + + + 0 + 15 + 0 + YES + 0 + + + {{1, 17}, {138, 85}} + + + + + 4 + + + + 256 + {{139, 17}, {11, 85}} + + 256 + + _doScroller: + 0.5 + + + + -2147483392 + {{-100, -100}, {146, 15}} + + 257 + + _doScroller: + 0.99047619104385376 + + + + 2304 + + + + {{1, 0}, {138, 17}} + + + + + 4 + + + + {{10, 60}, {151, 103}} + + + 18 + + + + + QSAAAEEgAABBiAAAQYgAAA + + + + 288 + {{10, 34}, {76, 17}} + + YES + + 67108864 + 134217728 + + + + + -2036580352 + 34 + + + + + 200 + 25 + + + + + 288 + {{85, 34}, {76, 17}} + + YES + + 603979776 + 134217728 + - + + + -2036449280 + 34 + + + + 200 + 25 + + + + + 288 + {{171, 34}, {76, 17}} + + YES + + 67108864 + 134217728 + + + + + -2036580352 + 34 + + + + + 200 + 25 + + + + + 288 + {{246, 34}, {76, 17}} + + YES + + 603979776 + 134217728 + - + + + -2036580352 + 34 + + + + + 200 + 25 + + + + + 288 + {{85, 9}, {76, 17}} + + YES + + 603979776 + 134348800 + Disable All + + + -2036580352 + 34 + + + + + 200 + 25 + + + + + 256 + {{246, 9}, {76, 17}} + + YES + + 603979776 + 134348800 + Disable All + + + -2036580352 + 34 + + + + + 200 + 25 + + + + + 288 + {{10, 9}, {76, 17}} + + YES + + 603979776 + 134348800 + Enable All + + + -2036580352 + 34 + + + + + 200 + 25 + + + + + 288 + {{171, 9}, {76, 17}} + + YES + + 603979776 + 134348800 + Enable All + + + -2036580352 + 34 + + + + + 200 + 25 + + + + {332, 173} + + {{0, 0}, {1440, 878}} + {332, 189} + {333, 816} + BreakpointPanel + + + 4111 + 2 + {{38, 286}, {643, 373}} + 1618477056 + PDP-8/E CPU + KeepInMenuWindow + + View + + {1.79769e+308, 1.79769e+308} + {643, 373} + + + 256 + + + + 273 + + + + 2304 + + + + 256 + {351, 357} + + YES + + + 256 + {351, 17} + + + + + + 256 + {{352, 0}, {16, 17}} + + + + + 0 + 23 + 23 + 23 + + 75497536 + 134219776 + PC + + + 3 + MC4zMzMzMzI5OQA + + + + + 0 + 33554432 + + 549453824 + {15, 15} + + + + + + TU0AKgAAAFiAO2BP8AQWDQeEQmFQuGQ0AQJ2wSHROKRWERCJRaNRuExiOR+Px6QSOKyKSSeGSaUSuDyq +WSyXS+UTGZSSaTWQTecRydTuNT2fSWB0GTwEAAAPAQAAAwAAAAEADwAAAQEAAwAAAAEADwAAAQIAAwAA +AAQAAAESAQMAAwAAAAEABQAAAQYAAwAAAAEAAgAAAREABAAAAAEAAAAIARIAAwAAAAEAAQAAARUAAwAA +AAEABAAAARYAAwAAAAEADwAAARcABAAAAAEAAABPARwAAwAAAAEAAQAAAT0AAwAAAAEAAgAAAVIAAwAA +AAEAAQAAAVMAAwAAAAQAAAEah3MABwAAG6wAAAEiAAAAAAAIAAgACAAIAAEAAQABAAEAABusYXBwbAIA +AABtbnRyUkdCIFhZWiAH2wAHABgADgAdAAZhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +ABFyWFlaAAABUAAAABRnWFlaAAABZAAAABRiWFlaAAABeAAAABR3dHB0AAABjAAAABRjaGFkAAABoAAA +ACxyVFJDAAABzAAACAxnVFJDAAAJ2AAACAxiVFJDAAAR5AAACAxhYXJnAAAZ8AAAACBhYWdnAAAaEAAA +ACBhYWJnAAAaMAAAACB2Y2d0AAAaUAAAADBuZGluAAAagAAAADhkZXNjAAAauAAAAGJkc2NtAAAbHAAA +AERtbW9kAAAbYAAAAChjcHJ0AAAbiAAAACRYWVogAAAAAAAAdEsAAD3tAAAD0FhZWiAAAAAAAABacwAA +rHQAABczWFlaIAAAAAAAACgYAAAVngAAuCpYWVogAAAAAAAA81EAAQAAAAEWzHNmMzIAAAAAAAEMQgAA +Bd7///MmAAAHkwAA/ZD///ui///9owAAA9wAAMBuY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo +AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8 +AMEAxgDLANAA1QDaAOAA5QDqAPAA9QD7AQEBBwEMARIBGAEeASUBKwExATgBPgFFAUsBUgFZAWABZgFt +AXUBfAGDAYoBkgGZAaEBqAGwAbgBwAHIAdAB2AHgAekB8QH6AgICCwIUAhwCJQIuAjcCQAJKAlMCXAJm +AnACeQKDAo0ClwKhAqsCtQK/AsoC1ALfAuoC9AL/AwoDFQMgAysDNwNCA00DWQNlA3ADfAOIA5QDoAOs +A7kDxQPSA94D6wP4BAQEEQQeBCwEOQRGBFQEYQRvBHwEigSYBKYEtATCBNEE3wTuBPwFCwUaBSgFNwVH +BVYFZQV0BYQFkwWjBbMFwwXTBeMF8wYDBhQGJAY1BkUGVgZnBngGiQaaBqsGvQbOBuAG8gcDBxUHJwc5 +B0wHXgdwB4MHlgeoB7sHzgfhB/QICAgbCC8IQghWCGoIfgiSCKYIugjOCOMI9wkMCSEJNglLCWAJdQmK +CaAJtQnLCeAJ9goMCiIKOQpPCmUKfAqSCqkKwArXCu4LBQsdCzQLSwtjC3sLkwurC8ML2wvzDAwMJAw9 +DFYMbgyHDKEMugzTDO0NBg0gDToNVA1uDYgNog28DdcN8Q4MDicOQg5dDngOkw6vDsoO5g8CDx4POg9W +D3IPjg+rD8gP5BABEB4QOxBYEHYQkxCxEM4Q7BEKESgRRhFkEYMRoRHAEd8R/hIdEjwSWxJ6EpoSuRLZ +EvkTGRM5E1kTehOaE7sT2xP8FB0UPhRfFIEUohTEFOUVBxUpFUsVbRWQFbIV1RX3FhoWPRZgFoMWpxbK +Fu4XEhc1F1kXfReiF8YX6hgPGDQYWRh9GKMYyBjtGRMZOBleGYQZqhnQGfYaHRpDGmoakBq3Gt4bBhst +G1QbfBujG8sb8xwbHEMcbByUHL0c5h0OHTcdYB2KHbMd3R4GHjAeWh6EHq4e2B8DHy0fWB+DH64f2SAE +IDAgWyCHILMg3iEKITchYyGPIbwh6SIVIkIicCKdIsoi+CMlI1MjgSOvI90kDCQ6JGkklyTGJPUlJCVU +JYMlsyXiJhImQiZyJqMm0ycDJzQnZSeWJ8cn+CgqKFsojSi+KPApIilVKYcpuSnsKh8qUiqFKrgq6yse +K1Irhiu6K+4sIixWLIosvyz0LSktXi2TLcgt/S4zLmkuni7ULwsvQS93L64v5DAbMFIwiTDBMPgxMDFn +MZ8x1zIPMkgygDK4MvEzKjNjM5wz1TQPNEg0gjS8NPY1MDVqNaU13zYaNlU2kDbLNwY3Qjd+N7k39Tgx +OG04qjjmOSM5YDmdOdo6FzpUOpI6zzsNO0s7iTvHPAY8RDyDPMI9AT1APX89vz3+Pj4+fj6+Pv4/Pz9/ +P8BAAEBBQIJAxEEFQUdBiEHKQgxCTkKRQtNDFkNYQ5tD3kQhRGVEqETsRTBFdEW4RfxGQEaFRspHDkdT +R5lH3kgjSGlIr0j1STtJgUnHSg5KVUqbSuJLKktxS7hMAExITJBM2E0gTWhNsU36TkJOjE7VTx5PZ0+x +T/tQRVCPUNlRJFFuUblSBFJPUppS5VMxU3xTyFQUVGBUrVT5VUZVklXfVixWelbHVxRXYlewV/5YTFia +WOlZOFmGWdVaJFp0WsNbE1tjW7JcA1xTXKNc9F1EXZVd5l43Xole2l8sX35f0GAiYHRgx2EZYWxhv2IS +YmViuWMMY2BjtGQIZFxksWUFZVplr2YEZllmr2cEZ1pnsGgGaFxosmkJaV9ptmoNamRqvGsTa2trw2wb +bHNsy20jbXxt1W4ubodu4G86b5Nv7XBHcKFw+3FWcbByC3JmcsFzHHN4c9N0L3SLdOd1Q3Wgdfx2WXa2 +dxN3cHfOeCt4iXjneUV5o3oCemB6v3see3173Hw8fJt8+31bfbt+G358ftx/PX+ef/+AYIDCgSOBhYHn +gkmCq4MOg3CD04Q2hJmE/IVghcOGJ4aLhu+HVIe4iB2IgYjmiUyJsYoWinyK4otIi66MFIx7jOKNSI2v +jheOfo7lj02PtZAdkIWQ7pFWkb+SKJKRkvqTZJPNlDeUoZULlXWV4JZKlrWXIJeLl/eYYpjOmTqZppoS +mn6a65tXm8ScMZyfnQydeZ3nnlWew58xn6CgD6B9oOyhW6HLojqiqqMao4qj+qRqpNulTKW8pi6mn6cQ +p4Kn9KhlqNipSqm8qi+qoqsVq4ir+6xvrOOtVq3Lrj+us68or52wEbCHsPyxcbHnsl2y07NJs7+0NrSt +tSS1m7YStom3Abd5t/G4abjhuVq50rpLusS7Pru3vDC8qr0kvZ6+Gb6Tvw6/icAEwH/A+sF2wfHCbcLp +w2bD4sRfxNzFWcXWxlPG0cdOx8zISsjJyUfJxspFysTLQ8vCzELMwc1BzcHOQs7Cz0PPw9BE0MbRR9HI +0krSzNNO09DUU9TW1VjV29Ze1uLXZdfp2G3Y8dl12fraf9sD24jcDtyT3Rndnt4k3qrfMd+34D7gxeFM +4dPiWuLi42rj8uR65QLli+YT5pznJeev6DjowulM6dbqYOrq63Xr/+yK7Rbtoe4s7rjvRO/Q8Fzw6fF1 +8gLyj/Mc86r0N/TF9VP14fZv9v73jPgb+Kr5OfnJ+ln66Pt4/Aj8mf0p/br+S/7c/25jdXJ2AAAAAAAA +BAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCL +AJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANoA4ADlAOoA8AD1APsBAQEHAQwBEgEYAR4BJQEr +ATEBOAE+AUUBSwFSAVkBYAFmAW0BdQF8AYMBigGSAZkBoQGoAbABuAHAAcgB0AHYAeAB6QHxAfoCAgIL +AhQCHAIlAi4CNwJAAkoCUwJcAmYCcAJ5AoMCjQKXAqECqwK1Ar8CygLUAt8C6gL0Av8DCgMVAyADKwM3 +A0IDTQNZA2UDcAN8A4gDlAOgA6wDuQPFA9ID3gPrA/gEBAQRBB4ELAQ5BEYEVARhBG8EfASKBJgEpgS0 +BMIE0QTfBO4E/AULBRoFKAU3BUcFVgVlBXQFhAWTBaMFswXDBdMF4wXzBgMGFAYkBjUGRQZWBmcGeAaJ +BpoGqwa9Bs4G4AbyBwMHFQcnBzkHTAdeB3AHgweWB6gHuwfOB+EH9AgICBsILwhCCFYIagh+CJIIpgi6 +CM4I4wj3CQwJIQk2CUsJYAl1CYoJoAm1CcsJ4An2CgwKIgo5Ck8KZQp8CpIKqQrACtcK7gsFCx0LNAtL +C2MLewuTC6sLwwvbC/MMDAwkDD0MVgxuDIcMoQy6DNMM7Q0GDSANOg1UDW4NiA2iDbwN1w3xDgwOJw5C +Dl0OeA6TDq8Oyg7mDwIPHg86D1YPcg+OD6sPyA/kEAEQHhA7EFgQdhCTELEQzhDsEQoRKBFGEWQRgxGh +EcAR3xH+Eh0SPBJbEnoSmhK5EtkS+RMZEzkTWRN6E5oTuxPbE/wUHRQ+FF8UgRSiFMQU5RUHFSkVSxVt +FZAVshXVFfcWGhY9FmAWgxanFsoW7hcSFzUXWRd9F6IXxhfqGA8YNBhZGH0YoxjIGO0ZExk4GV4ZhBmq +GdAZ9hodGkMaahqQGrca3hsGGy0bVBt8G6MbyxvzHBscQxxsHJQcvRzmHQ4dNx1gHYodsx3dHgYeMB5a +HoQerh7YHwMfLR9YH4Mfrh/ZIAQgMCBbIIcgsyDeIQohNyFjIY8hvCHpIhUiQiJwIp0iyiL4IyUjUyOB +I68j3SQMJDokaSSXJMYk9SUkJVQlgyWzJeImEiZCJnImoybTJwMnNCdlJ5Ynxyf4KCooWyiNKL4o8Cki +KVUphym5KewqHypSKoUquCrrKx4rUiuGK7or7iwiLFYsiiy/LPQtKS1eLZMtyC39LjMuaS6eLtQvCy9B +L3cvri/kMBswUjCJMMEw+DEwMWcxnzHXMg8ySDKAMrgy8TMqM2MznDPVNA80SDSCNLw09jUwNWo1pTXf +Nho2VTaQNss3BjdCN343uTf1ODE4bTiqOOY5IzlgOZ052joXOlQ6kjrPOw07SzuJO8c8BjxEPIM8wj0B +PUA9fz2/Pf4+Pj5+Pr4+/j8/P38/wEAAQEFAgkDEQQVBR0GIQcpCDEJOQpFC00MWQ1hDm0PeRCFEZUSo +ROxFMEV0RbhF/EZARoVGykcOR1NHmUfeSCNIaUivSPVJO0mBScdKDkpVSptK4ksqS3FLuEwATEhMkEzY +TSBNaE2xTfpOQk6MTtVPHk9nT7FP+1BFUI9Q2VEkUW5RuVIEUk9SmlLlUzFTfFPIVBRUYFStVPlVRlWS +Vd9WLFZ6VsdXFFdiV7BX/lhMWJpY6Vk4WYZZ1VokWnRaw1sTW2NbslwDXFNco1z0XURdlV3mXjdeiV7a +Xyxffl/QYCJgdGDHYRlhbGG/YhJiZWK5YwxjYGO0ZAhkXGSxZQVlWmWvZgRmWWavZwRnWmewaAZoXGiy +aQlpX2m2ag1qZGq8axNra2vDbBtsc2zLbSNtfG3Vbi5uh27gbzpvk2/tcEdwoXD7cVZxsHILcmZywXMc +c3hz03QvdIt053VDdaB1/HZZdrZ3E3dwd854K3iJeOd5RXmjegJ6YHq/ex57fXvcfDx8m3z7fVt9u34b +fnx+3H89f55//4BggMKBI4GFgeeCSYKrgw6DcIPThDaEmYT8hWCFw4YnhouG74dUh7iIHYiBiOaJTImx +ihaKfIrii0iLrowUjHuM4o1Ija+OF45+juWPTY+1kB2QhZDukVaRv5IokpGS+pNkk82UN5ShlQuVdZXg +lkqWtZcgl4uX95himM6ZOpmmmhKafprrm1ebxJwxnJ+dDJ15neeeVZ7DnzGfoKAPoH2g7KFbocuiOqKq +oxqjiqP6pGqk26VMpbymLqafpxCngqf0qGWo2KlKqbyqL6qiqxWriKv7rG+s461WrcuuP66zryivnbAR +sIew/LFxseeyXbLTs0mzv7Q2tK21JLWbthK2ibcBt3m38bhpuOG5WrnSuku6xLs+u7e8MLyqvSS9nr4Z +vpO/Dr+JwATAf8D6wXbB8cJtwunDZsPixF/E3MVZxdbGU8bRx07HzMhKyMnJR8nGykXKxMtDy8LMQszB +zUHNwc5CzsLPQ8/D0ETQxtFH0cjSStLM007T0NRT1NbVWNXb1l7W4tdl1+nYbdjx2XXZ+tp/2wPbiNwO +3JPdGd2e3iTeqt8x37fgPuDF4Uzh0+Ja4uLjauPy5HrlAuWL5hPmnOcl56/oOOjC6Uzp1upg6urrdev/ +7IrtFu2h7izuuO9E79DwXPDp8XXyAvKP8xzzqvQ39MX1U/Xh9m/2/veM+Bv4qvk5+cn6Wfro+3j8CPyZ +/Sn9uv5L/tz/bmN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZ +AF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2gDgAOUA6gDw +APUA+wEBAQcBDAESARgBHgElASsBMQE4AT4BRQFLAVIBWQFgAWYBbQF1AXwBgwGKAZIBmQGhAagBsAG4 +AcAByAHQAdgB4AHpAfEB+gICAgsCFAIcAiUCLgI3AkACSgJTAlwCZgJwAnkCgwKNApcCoQKrArUCvwLK +AtQC3wLqAvQC/wMKAxUDIAMrAzcDQgNNA1kDZQNwA3wDiAOUA6ADrAO5A8UD0gPeA+sD+AQEBBEEHgQs +BDkERgRUBGEEbwR8BIoEmASmBLQEwgTRBN8E7gT8BQsFGgUoBTcFRwVWBWUFdAWEBZMFowWzBcMF0wXj +BfMGAwYUBiQGNQZFBlYGZwZ4BokGmgarBr0GzgbgBvIHAwcVBycHOQdMB14HcAeDB5YHqAe7B84H4Qf0 +CAgIGwgvCEIIVghqCH4IkgimCLoIzgjjCPcJDAkhCTYJSwlgCXUJigmgCbUJywngCfYKDAoiCjkKTwpl +CnwKkgqpCsAK1wruCwULHQs0C0sLYwt7C5MLqwvDC9sL8wwMDCQMPQxWDG4MhwyhDLoM0wztDQYNIA06 +DVQNbg2IDaINvA3XDfEODA4nDkIOXQ54DpMOrw7KDuYPAg8eDzoPVg9yD44Pqw/ID+QQARAeEDsQWBB2 +EJMQsRDOEOwRChEoEUYRZBGDEaERwBHfEf4SHRI8ElsSehKaErkS2RL5ExkTORNZE3oTmhO7E9sT/BQd +FD4UXxSBFKIUxBTlFQcVKRVLFW0VkBWyFdUV9xYaFj0WYBaDFqcWyhbuFxIXNRdZF30XohfGF+oYDxg0 +GFkYfRijGMgY7RkTGTgZXhmEGaoZ0Bn2Gh0aQxpqGpAatxreGwYbLRtUG3wboxvLG/McGxxDHGwclBy9 +HOYdDh03HWAdih2zHd0eBh4wHloehB6uHtgfAx8tH1gfgx+uH9kgBCAwIFsghyCzIN4hCiE3IWMhjyG8 +IekiFSJCInAinSLKIvgjJSNTI4EjryPdJAwkOiRpJJckxiT1JSQlVCWDJbMl4iYSJkImciajJtMnAyc0 +J2UnlifHJ/goKihbKI0ovijwKSIpVSmHKbkp7CofKlIqhSq4KusrHitSK4YruivuLCIsViyKLL8s9C0p +LV4tky3ILf0uMy5pLp4u1C8LL0Evdy+uL+QwGzBSMIkwwTD4MTAxZzGfMdcyDzJIMoAyuDLxMyozYzOc +M9U0DzRINII0vDT2NTA1ajWlNd82GjZVNpA2yzcGN0I3fje5N/U4MThtOKo45jkjOWA5nTnaOhc6VDqS +Os87DTtLO4k7xzwGPEQ8gzzCPQE9QD1/Pb89/j4+Pn4+vj7+Pz8/fz/AQABAQUCCQMRBBUFHQYhBykIM +Qk5CkULTQxZDWEObQ95EIURlRKhE7EUwRXRFuEX8RkBGhUbKRw5HU0eZR95II0hpSK9I9Uk7SYFJx0oO +SlVKm0riSypLcUu4TABMSEyQTNhNIE1oTbFN+k5CToxO1U8eT2dPsU/7UEVQj1DZUSRRblG5UgRST1Ka +UuVTMVN8U8hUFFRgVK1U+VVGVZJV31YsVnpWx1cUV2JXsFf+WExYmljpWThZhlnVWiRadFrDWxNbY1uy +XANcU1yjXPRdRF2VXeZeN16JXtpfLF9+X9BgImB0YMdhGWFsYb9iEmJlYrljDGNgY7RkCGRcZLFlBWVa +Za9mBGZZZq9nBGdaZ7BoBmhcaLJpCWlfabZqDWpkarxrE2tra8NsG2xzbMttI218bdVuLm6HbuBvOm+T +b+1wR3ChcPtxVnGwcgtyZnLBcxxzeHPTdC90i3TndUN1oHX8dll2tncTd3B3zngreIl453lFeaN6Anpg +er97Hnt9e9x8PHybfPt9W327fht+fH7cfz1/nn//gGCAwoEjgYWB54JJgquDDoNwg9OENoSZhPyFYIXD +hieGi4bvh1SHuIgdiIGI5olMibGKFop8iuKLSIuujBSMe4zijUiNr44Xjn6O5Y9Nj7WQHZCFkO6RVpG/ +kiiSkZL6k2STzZQ3lKGVC5V1leCWSpa1lyCXi5f3mGKYzpk6maaaEpp+muubV5vEnDGcn50MnXmd555V +nsOfMZ+goA+gfaDsoVuhy6I6oqqjGqOKo/qkaqTbpUylvKYupp+nEKeCp/SoZajYqUqpvKovqqKrFauI +q/usb6zjrVaty64/rrOvKK+dsBGwh7D8sXGx57JdstOzSbO/tDa0rbUktZu2EraJtwG3ebfxuGm44bla +udK6S7rEuz67t7wwvKq9JL2evhm+k78Ov4nABMB/wPrBdsHxwm3C6cNmw+LEX8TcxVnF1sZTxtHHTsfM +yErIyclHycbKRcrEy0PLwsxCzMHNQc3BzkLOws9Dz8PQRNDG0UfRyNJK0szTTtPQ1FPU1tVY1dvWXtbi +12XX6dht2PHZddn62n/bA9uI3A7ck90Z3Z7eJN6q3zHft+A+4MXhTOHT4lri4uNq4/LkeuUC5YvmE+ac +5yXnr+g46MLpTOnW6mDq6ut16//siu0W7aHuLO6470Tv0PBc8OnxdfIC8o/zHPOq9Df0xfVT9eH2b/b+ +94z4G/iq+Tn5yfpZ+uj7ePwI/Jn9Kf26/kv+3P9ucGFyYQAAAAAAAwAAAAJmZgAA8qcAAA1ZAAAT0AAA +CwNwYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAALA3BhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAA +E9AAAAsDdmNndAAAAAAAAAABAAEAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAQAAbmRpbgAA +AAAAAAAwAAChSAAAVwoAAEuFAACa4QAAJ64AABO2AABQDQAAVDkAAjMzAAIzMwACMzNkZXNjAAAAAAAA +AAhEaXNwbGF5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAACAAAADGVuVVMAAAAOAAAAKGRl +REUAAAAOAAAANgBEAGkAcwBwAGwAYQB5AE0AbwBuAGkAdABvAHJtbW9kAAAAAHVua24AAAcXAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQgQXBwbGUsIEluYy4sIDIwMTEAA + + NSCalibratedRGBColorSpace + 8 + 24 + 0 + + + + + 3 + MCAwAA + + + 0 + 0 + 0 + YES + + + + + 1 + 23 + 23 + 23 + + 75497536 + 134219776 + BP + + + + + + 0 + 33554432 + + 0 + 0 + 0 + YES + + + + + 2 + 45 + 45 + 45 + + 75497536 + 134219776 + Addr + + + + + + 337641536 + 134219776 + Text Cell + + + + + + + + + 3 + 45 + 45 + 45 + + 75497536 + 134219776 + Octal + + + + + + 337641536 + 134219776 + Text Cell + + + + + + + + + 4 + 200 + 200 + 200 + + 75497536 + 2048 + Opcode + + + + + + 338690048 + 0 + Text Cell + + + + 6 + System + textBackgroundColor + + + + + YES + + + + 3 + 2 + + + 15 + 381681664 + + + 0 + 15 + 0 + NO + 0 + + + {{1, 17}, {351, 357}} + + + + + 4 + + + + 256 + {{352, 17}, {15, 342}} + + + _doScroller: + 0.9699699878692627 + + + + -2147483392 + {{-100, -100}, {296, 11}} + + 1 + + _doScroller: + 0.99047619104385376 + + + + 2304 + + + + {{1, 0}, {351, 17}} + + + + + 4 + + + + {{276, -1}, {368, 375}} + + + 18 + + + + + + QSAAAEEgAABBiAAAQYgAAA + + + + 264 + + + + 274 + + + + 256 + {{13, 38}, {29, 19}} + + YES + 1 + 1 + + + 341835841 + 205521920 + 1 + + + 10 + + 67108864 + 67108864 + L + + + + + + {29, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 10 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + 6 + System + controlColor + + + + + + + + 256 + {{53, 65}, {57, 19}} + + YES + 1 + 1 + + + -1805647807 + 205521920 + 7777 + + + 17 + + 67108864 + 67108864 + SR + + + + + + {57, 19} + {0, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 17 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + {{50, 38}, {60, 19}} + + YES + 1 + 1 + + + 341835841 + 205521920 + 7777 + + + 20 + + 67108864 + 67108864 + AC + + + + + + {60, 19} + {0, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 20 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + {{52, 11}, {58, 19}} + + YES + 1 + 1 + + + 341835841 + 205521920 + 7777 + + + 18 + + 67108864 + 67108864 + PC + + + + + + {58, 19} + {0, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 18 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + {{2, 2}, {126, 95}} + + + + {{5, 253}, {130, 112}} + + {0, 0} + + 67108864 + 0 + KK8-E CPU + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 3 + 0 + 2 + NO + + + + 264 + + + + 274 + + + + 256 + {{18, 65}, {44, 19}} + + YES + 1 + 1 + + + 341835841 + 205521920 + 37 + + + 18 + + 67108864 + 67108864 + SC + + + + + + {44, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 18 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + {{70, 65}, {44, 19}} + + YES + 1 + 1 + + + 341835841 + 205521920 + 1 + + + 8 + 25 + + 67108864 + 67108864 + GTF + + + + + + {44, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 25 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + {{13, 38}, {63, 19}} + + YES + 1 + 1 + + + 341835841 + 205521920 + 7777 + + + 23 + + 67108864 + 67108864 + MQ + + + + + + {63, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 23 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + + + + 256 + {{60, 0}, {18, 20}} + + 1 + YES + + 67108864 + 134348800 + B + + + 1 + 914767872 + 34 + + LucidaGrande + 11 + 16 + + + + 400 + 75 + + + + + 256 + {{-3, 3}, {34, 14}} + + YES + + 67108864 + 4325376 + TW9kZQo + + + + + + + + + 256 + {{34, 0}, {18, 20}} + + YES + + 67108864 + 134348800 + A + + + 914767872 + 34 + + + + 400 + 75 + + + + {{16, 10}, {78, 19}} + + + NSView + + NSResponder + + + {{2, 2}, {130, 95}} + + + + {{137, 253}, {134, 112}} + + {0, 0} + + 67108864 + 0 + KE8-E EAE + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 3 + 0 + 2 + NO + + + + 264 + + + + 274 + + + + 256 + {{13, 38}, {38, 19}} + + YES + 1 + 1 + + + -1805647807 + 205521920 + 7 + + + 19 + + 67108864 + 67108864 + DF + + + + + + {38, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 19 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + {{59, 38}, {33, 19}} + + YES + 1 + 1 + + + 341835841 + 205521920 + 7 + + + 14 + + 67108864 + 67108864 + IF + + + + + + {33, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 14 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + {{100, 38}, {37, 19}} + + YES + 1 + 1 + + + 341835841 + 205521920 + 1 + + + 18.5 + + 67108864 + 67108864 + UF + + + + + + {37, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 18 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + {{145, 38}, {49, 19}} + + YES + 1 + 1 + + + -1805647807 + 205521920 + 177 + + + 16 + + 67108864 + 67108864 + SF + + + + + + {49, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 16 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + {{59, 11}, {33, 19}} + + YES + 1 + 1 + + + 341835841 + 205521920 + 7 + + + 14 + + 67108864 + 67108864 + IB + + + + + + {33, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 14 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + + 256 + {{100, 11}, {37, 19}} + + YES + 1 + 1 + + + 341835841 + 205521920 + 1 + + + 18 + + 67108864 + 67108864 + UB + + + + + + {37, 19} + {1, 8} + 67633152 + NSActionCell + + 342884416 + 205521920 + + + 18 + + 67108864 + 67108864 + Field: + + + + -1 + -1 + + + + + + {{2, 2}, {262, 68}} + + + + {{5, 164}, {266, 85}} + + {0, 0} + + 67108864 + 0 + KM8-E Memory Extension + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 3 + 0 + 2 + NO + + + + 272 + + + + 274 + + + + 272 + + + + 2304 + + + + 256 + {149, 97} + + YES + + + 256 + {149, 17} + + + + + + 256 + {{150, 0}, {12, 17}} + + + + + 0 + 90 + 90 + 90 + + 75497536 + 2048 + I/O Device + + + 3 + MC4zMzMzMzI5OQA + + + + + 337641536 + 2048 + Text Cell + + + + + + + + + 1 + 25 + 25 + 25 + + 75497536 + 134219776 + IE + + + + + + 67108864 + 134479872 + + + LucidaGrande + 9 + 3614 + + + -935051008 + 2 + + NSImage + NSSwitch + + + + + 200 + 25 + + YES + + + + 2 + 25 + 25 + 25 + + 75497536 + 134219776 + IO + + + + + + 67108864 + 134479872 + + + + -931905280 + 2 + + + + + 200 + 25 + + YES + + + + 3 + 2 + + + 15 + 314572800 + + + 0 + 15 + 0 + YES + 0 + + + {{1, 17}, {149, 97}} + + + + + 6 + + + + 256 + {{150, 17}, {11, 97}} + + 256 + + _doScroller: + 0.58235293626785278 + + + + -2147483392 + {{-100, -100}, {132, 11}} + + 257 + + _doScroller: + 0.99047619104385376 + + + + 2304 + + + + {{1, 0}, {149, 17}} + + + + + 4 + + + + {{84, 11}, {162, 115}} + + + 18 + + + + + + QSAAAEEgAABBiAAAQYgAAA + + + + 264 + {{13, 109}, {55, 18}} + + YES + + 67108864 + 134348800 + Enable + + + 917782528 + 34 + + + 200 + 25 + + + + + 264 + {{13, 85}, {55, 18}} + + YES + + 67108864 + 134348800 + Delay + + + 917782528 + 34 + + + 200 + 25 + + + + + 264 + {{13, 61}, {55, 18}} + + YES + + 67108864 + 134348800 + Inhibit + + + 917782528 + 34 + + + 200 + 25 + + + + {{2, 2}, {262, 137}} + + + + {{5, 4}, {266, 154}} + + {0, 0} + + 67108864 + 0 + Interrupt Control + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 3 + 0 + 2 + NO + + + + 256 + {{246, 352}, {28, 22}} + + TableCornerView + NSControl + + + {643, 373} + + + {{0, 0}, {1440, 878}} + {643, 395} + {1.79769e+308, 1.79769e+308} + CPUWindow + + + CPUWindowController + + + PDP8 + + + BreakpointArray + + + BreakpointController + + + BreakpointArray + + + CPUMemoryViewController + + + IOFlagController + + + SkipController + + + 147 + 2 + {{30, 613}, {330, 119}} + -260571136 + Bootstrap Loader + + NSPanel + + + View + + {409, 154} + {158.906, 100} + + + 256 + + + + 256 + {{8, 38}, {186, 70}} + + YES + 4 + 1 + + + -2080374784 + 131072 + Low Speed Reader RIM Loader + + + 1211912448 + 0 + + NSRadioButton + + + + + + 200 + 25 + + + 67108864 + 131072 + High Speed Reader RIM Loader + + + 1 + 1211912448 + 0 + + + + 200 + 25 + + + 67108864 + 131072 + BIN Loader + + + 2 + 1211912448 + 0 + + + + 400 + 75 + + + 67108864 + 131072 + RK8-E Boot Sequence + + + 3 + 1211912448 + 0 + + + + 400 + 75 + + + {186, 16} + {4, 2} + 1143472128 + NSActionCell + + 67108864 + 0 + Radio + + 1211912448 + 0 + + 400 + 75 + + + + + + + + + 256 + {{198, 93}, {46, 14}} + + YES + + 67108864 + 272760832 + at 7756 + + + + + + + + + 256 + {{198, 75}, {46, 14}} + + YES + + 67108864 + 272760832 + at 7756 + + + + + + + + + 256 + {{198, 57}, {46, 14}} + + YES + + 67108864 + 272760832 + at 7617 + + + + + + + + + 256 + {{198, 39}, {46, 14}} + + YES + + 67108864 + 272760832 + at 0027 + + + + + + + + + 256 + + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + {{249, 59}, {9, 45}} + + YES + + 0 + 33554432 + + NSImage + bracket + + 0 + 2 + 0 + NO + + YES + + + + 256 + {{7, 8}, {176, 18}} + + YES + + -2080374784 + 131072 + Adjust Program Counter + + + 1211912448 + 2 + + + + 200 + 25 + + + + + 256 + {{245, 3}, {80, 28}} + + YES + + 67108864 + 134348800 + Load + + + -2038284288 + 1 + + + + + + 200 + 25 + + + + + 256 + {{263, 75}, {31, 14}} + + YES + + 67108864 + 272760832 + on IF + + + + + + + + + 256 + {{263, 39}, {42, 14}} + + YES + + 67108864 + 272760832 + on IF 0 + + + + + + + + + 256 + {{307, 70}, {15, 22}} + + YES + + 0 + 131072 + + 7 + 1 + YES + + + + + 256 + {{293, 75}, {11, 14}} + + YES + + 67108864 + 272760832 + 0 + + + + + + + + {330, 119} + + + {{0, 0}, {1440, 878}} + {158.906, 116} + {409, 170} + BootstrapPanel + + + BootstrapPanelController + + + + 256 + + + + 256 + {{-3, 11}, {239, 17}} + + YES + + 68157440 + 272629760 + Load the Paper Tape to Memory Field + + + + + + + + + 256 + {{238, 11}, {14, 17}} + + YES + + 67108864 + 272629760 + 0 + + + + + + + + + 256 + {{253, 5}, {19, 28}} + + YES + + 0 + 0 + + 7 + 1 + YES + + + + {270, 38} + + + NSView + + NSResponder + + + 3 + 2 + {{185, 431}, {500, 250}} + 1886913536 + Preferences + + NSPanel + + + View + + {501, 500} + {500, 5} + + + 256 + {500, 250} + + {{0, 0}, {1440, 878}} + {500, 27} + {501, 522} + + + PreferencesController + + + Menu + + + + Set Breakpoint + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Set Break Opcode + + 1048576 + 2147483647 + + + 1 + + + + Set System Mode Break Opcode + + 1048576 + 2147483647 + + + 2 + + + + Set User Mode Break Opcode + + 1048576 + 2147483647 + + + 3 + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Set Program Counter + + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Go and Stop Here + + 1048576 + 2147483647 + + + 5 + + + + Trace and Stop Here + + 1048576 + 2147483647 + + + 6 + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Scroll to Program Counter + + 2147483647 + + + 7 + + + + YES + YES + + + 2147483647 + + + + + + Set Default Program Counter Row + + 1048576 + 2147483647 + + + 8 + + + + + + + {200, 341} + {100, 0} + {600, 0} + 2 + 0.0 + 15 + + + + + + 256 + + + + 266 + {{7, 314}, {246, 22}} + + YES + + -2076049856 + 133120 + + + 109199360 + 1 + + + + + + 400 + 75 + + + Dummy + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + + OtherViews + + + + + + 3 + YES + YES + 1 + + + + + 274 + + + + 2304 + + + + 4352 + {238, 282} + + YES + + + 256 + {238, 17} + + + + + + -2147483392 + {{-22, 0}, {12, 17}} + + + + + 0 + 45 + 45 + 45 + + 75497536 + 134219776 + Addr + + + 3 + MC4zMzMzMzI5OQA + + + + + 337641536 + 134219776 + Text Cell + + + + + + + + + 1 + 45 + 45 + 45 + + 75497536 + 2048 + Octal + + + + + + 337641536 + 2048 + Text Cell + + + + + + YES + + + + 2 + 70 + 46.3779296875 + 70 + + 75497536 + 2048 + Content + + + + + + 337641536 + 2048 + Text Cell + + + + + + YES + + + + 3 + 2 + + + 15 + 312475648 + + + 0 + 15 + 0 + YES + 0 + + + {{1, 17}, {238, 282}} + + + + + 4 + + + + -2147483392 + {{-22, 17}, {11, 246}} + + 256 + + _doScroller: + 0.98947370052337646 + + + + -2147483392 + {{1, -22}, {227, 11}} + + 257 + + _doScroller: + 0.97844827175140381 + + + + 2304 + + + + {{1, 0}, {238, 17}} + + + + + 4 + + + + {{10, 10}, {240, 300}} + + + 562 + + + + + + QSAAAEEgAABBiAAAQYgAAA + + + + 256 + {{222, 270}, {19, 17}} + + TableCornerView + NSControl + + + {260, 341} + + NSView + + NSResponder + + + MemoryInspectorController + + + PluginManager + + + YES + + + + + + + showHelp: + + + + 122 + + + + terminate: + + + + 139 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + hideOtherApplications: + + + + 146 + + + + hide: + + + + 152 + + + + unhideAllApplications: + + + + 153 + + + + performClose: + + + + 193 + + + + copy: + + + + 224 + + + + paste: + + + + 226 + + + + cut: + + + + 228 + + + + selectAll: + + + + 232 + + + + delete: + + + + 235 + + + + toggleToolbarShown: + + + + 254 + + + + delegate + + + + 279 + + + + nextKeyView + + + + 314 + + + + nextKeyView + + + + 315 + + + + nextKeyView + + + + 316 + + + + nextKeyView + + + + 317 + + + + nextKeyView + + + + 318 + + + + nextKeyView + + + + 319 + + + + nextKeyView + + + + 320 + + + + nextKeyView + + + + 321 + + + + nextKeyView + + + + 322 + + + + nextKeyView + + + + 323 + + + + nextKeyView + + + + 324 + + + + nextKeyView + + + + 325 + + + + window + + + + 348 + + + + enableAllBreakpoints: + + + + 406 + + + + disableAllBreakpoints: + + + + 407 + + + + runToolbarCustomizationPalette: + + + + 424 + + + + delegate + + + + 450 + + + + addBreakpoint: + + + + 509 + + + + dataSource + + + + 512 + + + + deleteBreakpoint: + + + + 601 + + + + breakpoints + + + + 605 + + + + addButton + + + + 606 + + + + enableAllButton + + + + 607 + + + + disableAllButton + + + + 608 + + + + deleteButton + + + + 609 + + + + tableView + + + + 610 + + + + tableView + + + + 614 + + + + addButton + + + + 615 + + + + deleteButton + + + + 616 + + + + enableAllButton + + + + 617 + + + + disableAllButton + + + + 618 + + + + breakpoints + + + + 620 + + + + addBreakpoint: + + + + 621 + + + + deleteBreakpoint: + + + + 622 + + + + enableAllBreakpoints: + + + + 623 + + + + disableAllBreakpoints: + + + + 624 + + + + dataSource + + + + 625 + + + + delegate + + + + 626 + + + + mq + + + + 707 + + + + sc + + + + 709 + + + + l + + + + 712 + + + + pdp8 + + + + 739 + + + + gtf + + + + 740 + + + + pdp8 + + + + 741 + + + + nextKeyView + + + + 785 + + + + nextKeyView + + + + 786 + + + + nextKeyView + + + + 787 + + + + initialFirstResponder + + + + 788 + + + + df + + + + 789 + + + + sf + + + + 794 + + + + sr + + + + 810 + + + + ac + + + + 816 + + + + pc + + + + 817 + + + + _if + + + + 819 + + + + uf + + + + 823 + + + + ib + + + + 826 + + + + ub + + + + 827 + + + + reset: + + + + 831 + + + + cpuWindow + + + + 832 + + + + enable + + + + 887 + + + + delay + + + + 888 + + + + inhibit + + + + 889 + + + + breakopcodes + + + + 891 + + + + breakpoints + + + + 892 + + + + memoryView + + + + 893 + + + + pdp8 + + + + 894 + + + + dataSource + + + + 895 + + + + delegate + + + + 896 + + + + pdp8 + + + + 901 + + + + breakpoints + + + + 903 + + + + pdp8 + + + + 913 + + + + enableCheckboxClicked: + + + + 914 + + + + delayCheckboxClicked: + + + + 915 + + + + inhibitCheckboxClicked: + + + + 916 + + + + delegate + + + + 920 + + + + step: + + + + 926 + + + + trace: + + + + 927 + + + + go: + + + + 928 + + + + stop: + + + + 929 + + + + breakopcodes + + + + 932 + + + + bootstrapPanel + + + + 961 + + + + loaderRadioButtons + + + + 964 + + + + adjustPCCheckbox + + + + 965 + + + + pdp8 + + + + 968 + + + + takeStringValueFrom: + + + + 983 + + + + ifStepper + + + + 984 + + + + breakpointPanel + + + + 990 + + + + loadPaperTape: + + + + 993 + + + + takeIntValueFrom: + + + + 998 + + + + loadPaperTapeFieldView + + + + 999 + + + + loadPaperTapeFieldStepper + + + + 1000 + + + + clearAllFlags: + + + + 1004 + + + + loadExtendedAddress: + + + + 1005 + + + + nextKeyView + + + + 1009 + + + + nextKeyView + + + + 1010 + + + + nextKeyView + + + + 1011 + + + + nextKeyView + + + + 1012 + + + + nextKeyView + + + + 1016 + + + + nextKeyView + + + + 1017 + + + + nextKeyView + + + + 1018 + + + + nextKeyView + + + + 1019 + + + + nextKeyView + + + + 1020 + + + + nextKeyView + + + + 1021 + + + + nextKeyView + + + + 1022 + + + + nextKeyView + + + + 1023 + + + + nextKeyView + + + + 1024 + + + + nextKeyView + + + + 1025 + + + + nextKeyView + + + + 1029 + + + + nextKeyView + + + + 1030 + + + + nextKeyView + + + + 1031 + + + + nextKeyView + + + + 1032 + + + + preferencesPanel + + + + 1066 + + + + showPreferencesPanel: + + + + 1067 + + + + prefPanel + + + + 1075 + + + + menu + + + + 1088 + + + + handleContextMenu: + + + + 1101 + + + + handleContextMenu: + + + + 1102 + + + + handleContextMenu: + + + + 1103 + + + + handleContextMenu: + + + + 1104 + + + + handleContextMenu: + + + + 1105 + + + + handleContextMenu: + + + + 1106 + + + + handleContextMenu: + + + + 1107 + + + + handleContextMenu: + + + + 1110 + + + + delegate + + + + 1115 + + + + contentView + + + + 1123 + + + + parentWindow + + + + 1125 + + + + memoryInspectorDrawer + + + + 1129 + + + + toggleMemoryInspectorDrawer: + + + + 1130 + + + + popupButton + + + + 1142 + + + + memoryView + + + + 1143 + + + + selectMemoryInspector: + + + + 1146 + + + + pdp8 + + + + 1147 + + + + memoryInspectorDrawer + + + + 1148 + + + + cornerView + + + + 1172 + + + + alignMemory: + + + + 1173 + + + + cornerView + + + + 1175 + + + + view + + + + 1176 + + + + cornerView + + + + 1177 + + + + dataSource + + + + 1178 + + + + delegate + + + + 1179 + + + + a + + + + 1195 + + + + b + + + + 1196 + + + + mode + + + + 1197 + + + + eaeModeButtonClick: + + + + 1198 + + + + eaeModeButtonClick: + + + + 1199 + + + + breakpoints + + + + 1211 + + + + breakopcodes + + + + 1212 + + + + nextKeyView + + + + 1213 + + + + nextKeyView + + + + 1214 + + + + nextKeyView + + + + 1215 + + + + nextKeyView + + + + 1216 + + + + nextKeyView + + + + 1217 + + + + arrangeInFront: + + + + 1218 + + + + performMiniaturize: + + + + 1219 + + + + performZoom: + + + + 1220 + + + + pdp8 + + + + 1222 + + + + skipController + + + + 1223 + + + + ioFlagController + + + + 1225 + + + + ioFlagsView + + + + 1417 + + + + dataSource + + + + 1418 + + + + delegate + + + + 1419 + + + + nextKeyView + + + + 1515 + + + + undo: + + + + 1614 + + + + redo: + + + + 1673 + + + + delegate + + + + 1769 + + + + pluginManager + + + + 1837 + + + + value: values.BootstrapLoaderAdjustPC + + + + + + value: values.BootstrapLoaderAdjustPC + value + values.BootstrapLoaderAdjustPC + + + + + + + + + + + + + 2 + + + 2014 + + + + value: values.BootstrapLoaderField + + + + + + value: values.BootstrapLoaderField + value + values.BootstrapLoaderField + + + + + + + + + + + + + 2 + + + 2016 + + + + selectedIndex: values.BootstrapLoader + + + + + + selectedIndex: values.BootstrapLoader + selectedIndex + values.BootstrapLoader + + + + + + + + + + + + + 2 + + + 2018 + + + + miniaturizeAll: + + + + 2124 + + + + performZoomAll: + + + + 2128 + + + + showHideBreakpointPanel: + + + + 2129 + + + + showHideBootstrapPanel: + + + + 2130 + + + + loadBootstrapLoader: + + + + 2232 + + + + loadBootstrapLoader: + + + + 2233 + + + + handleContextMenu: + + + + 2239 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + + + + + + + + + MainMenu + + + 19 + + + + + + + + 24 + + + + + + + + + + + + + + + + 5 + + + + + 23 + + + + + 92 + + + + + 239 + + + + + 251 + + + + + 252 + + + + + 253 + + + + + 2122 + + + + + 2127 + + + + + 56 + + + + + + + + 57 + + + + + + + + + + + + + + + + + + 58 + + + + + 129 + + + + + 131 + + + + + + + + 130 + + + + + 134 + + + + + 136 + + + + + 143 + + + + + 144 + + + + + 145 + + + + + 149 + + + + + 150 + + + + + 236 + + + + + 83 + + + + + + + + 81 + + + + + + + + + + 73 + + + + + 991 + + + + + 992 + + + + + 103 + + + + + + + + 106 + + + + + + + + 111 + + + + + 217 + + + + + + + + 205 + + + + + + + + + + + + + + + 197 + + + + + 198 + + + + + 199 + + + + + 202 + + + + + 203 + + + + + 1611 + + + + + 1612 + + + + + 1672 + + + + + 256 + + + + + + + + 257 + + + + + + + + + + + + + + + + + + + + + + + 258 + + + + + 259 + + + + + 260 + + + + + 262 + + + + + 288 + + + + + 289 + + + + + 829 + + + + + 830 + + + + + 956 + + + + + 1001 + + + + + 1002 + + + + + 1003 + + + + + 1126 + + + + + 1127 + + + + + 278 + + + MainController + + + 291 + + + BreakpointController + + + 292 + + + + + + BreakpointPanel + + + 293 + + + + + + + + + + + + + + + + + 294 + + + + + + + + 295 + + + + + + + + 296 + + + + + + + + 297 + + + + + + + + 298 + + + + + + + + + + + 299 + + + + + + + + + + 300 + + + + + + + + 301 + + + + + 302 + + + + + + + + 303 + + + + + + + + 304 + + + + + 305 + + + + + + + + 306 + + + + + + + + 307 + + + + + + + + 308 + + + + + + + + 309 + + + + + + + + + + + 310 + + + + + + + + + 311 + + + + + + + + 312 + + + + + 313 + + + + + + + + 332 + + + + + + CPUWindow + + + 333 + + + + + + + + + + + + + 334 + + + + + + + + + + + 335 + + + + + + + + + + + + 336 + + + + + + + + 337 + + + + + 338 + + + + + + + + 339 + + + + + 340 + + + + + + + + 341 + + + + + 342 + + + + + + + + 343 + + + + + + + + 639 + + + + + + + + + + + 685 + + + + + + + + + + + 770 + + + + + + + + + + + + + 839 + + + + + + + + + + + 1174 + + + + + 345 + + + CPUWindowController + + + 352 + + + pdp8 + + + 603 + + + Breakpoints + + + 613 + + + BreakOpcodeController + + + 619 + + + BreakOpcodes + + + 890 + + + CPUMemoryViewController + + + 897 + + + IOFlagController + + + 911 + + + SkipController + + + 933 + + + + + + BootstrapPanel + + + 934 + + + + + + + + + + + + + + + + + + + 935 + + + + + + + + + + + + 938 + + + + + 939 + + + + + 940 + + + + + 941 + + + + + 944 + + + + + + + + 945 + + + + + + + + 946 + + + + + + + + 947 + + + + + + + + 949 + + + + + + + + 951 + + + + + + + + 953 + + + + + + + + 954 + + + + + + + + 955 + + + + + + + + 979 + + + + + + + + 980 + + + + + + + + 963 + + + BootstrapPanelController + + + 994 + + + + + + + + LoadPaperTapeFieldView + + + 995 + + + + + + + + 996 + + + + + + + + 997 + + + + + + + + 1033 + + + + + + PreferencesPanel + + + 1034 + + + + + 1070 + + + PreferencesController + + + 1085 + + + + + + + + + + + + + + + + + + + CPUMemContextMenu + + + 1087 + + + + + 1090 + + + + + 1091 + + + + + 1092 + + + + + 1093 + + + + + 1094 + + + + + 1096 + + + + + 1097 + + + + + 1098 + + + + + 1099 + + + + + 1108 + + + + + 1109 + + + + + 1119 + + + MemoryInspectorDrawer + + + 1122 + + + + + + + + MemoryInspectorContentView + + + 1131 + + + + + + + + 1136 + + + + + + + + + + + 1137 + + + + + + + + + + 1138 + + + + + + + + 1139 + + + + + + + + 1140 + + + + + + + + 1171 + + + + + 1141 + + + MemoryInspectorController + + + 1221 + + + PluginManager + + + 2008 + + + Shared User Defaults Controller + + + 2163 + + + + + 2164 + + + + + 2165 + + + + + 2166 + + + + + 2167 + + + + + 2168 + + + + + 2169 + + + + + 2170 + + + + + 2177 + + + + + 2178 + + + + + 2179 + + + + + 2180 + + + + + 2181 + + + + + 2182 + + + + + 2183 + + + + + 2184 + + + + + 2185 + + + + + 2186 + + + + + 2187 + + + + + 2188 + + + + + 2189 + + + + + 2190 + + + + + 2191 + + + + + + + + 2205 + + + + + 2206 + + + + + 2207 + + + + + 2208 + + + + + 2209 + + + + + 2211 + + + + + 2212 + + + + + 2213 + + + + + 1132 + + + + + + + + 1144 + + + + + 2214 + + + + + 2215 + + + + + 2216 + + + + + 2217 + + + + + 2218 + + + + + 2219 + + + + + 2220 + + + + + 2221 + + + + + 2222 + + + + + 2226 + + + + + 2227 + + + + + 2228 + + + + + 660 + + + + + + + + + 2192 + + + + + 663 + + + + + 679 + + + + + + + + + 2193 + + + + + 809 + + + + + 795 + + + + + + + + + 2194 + + + + + 812 + + + + + 802 + + + + + + + + + 2195 + + + + + 814 + + + + + 687 + + + + + + + + + 2196 + + + + + 688 + + + + + 690 + + + + + + + + + 2197 + + + + + 691 + + + + + 693 + + + + + + + + + 2198 + + + + + 694 + + + + + 1185 + + + + + + + + + + 1193 + + + + + + + + 1192 + + + + + + + + 1191 + + + + + + + + 2171 + + + + + 2172 + + + + + 2173 + + + + + 773 + + + + + + + + + 2199 + + + + + 776 + + + + + 777 + + + + + + + + + 2200 + + + + + 818 + + + + + 780 + + + + + + + + + 2201 + + + + + 822 + + + + + 783 + + + + + + + + + 2202 + + + + + 784 + + + + + 820 + + + + + + + + + 2203 + + + + + 821 + + + + + 824 + + + + + + + + + 2204 + + + + + 825 + + + + + 865 + + + + + + + + + + + 2225 + + + + + 2224 + + + + + 2223 + + + + + 866 + + + + + + + + + + 1905 + + + + + + + + 1294 + + + + + + + + 868 + + + + + + + + 2210 + + + + + 1296 + + + + + 1909 + + + + + 881 + + + + + + + + 2174 + + + + + 883 + + + + + + + + 2175 + + + + + 885 + + + + + + + + 2176 + + + + + 2229 + + + + + 2230 + + + + + 2237 + + + + + 2238 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + {501, 500} + {500, 5} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + {{0, 846}, {294, 233}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + MemoryInspectorScrollView + com.apple.InterfaceBuilder.CocoaPlugin + + NonWrappingTableView + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + The EAE can run in two modes. In mode A, the EAE is software-compatible to earlier PDP-8 EAEs; mode B provides an extended set of arithmetic operations. Instructions SWAB (7431) and SWBA (7447) swap the EAE mode. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + EnableDisableTextField + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{251, 515}, {151, 153}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{467, 806}, {235, 163}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{295, 395}, {276, 273}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{131, 969}, {468, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + + + {333, 800} + {332, 173} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + To set multiple break opcode at once, use the wildcard #. E. g. 62#1 sets break opcodes for CDF for all eight memory fields. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + To set multiple breakpoints at once, use the wildcard #. E. g. #0200 sets a breakpoint at address 0200 on all eight memory fields. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{18, 156}, {643, 373}} + com.apple.InterfaceBuilder.CocoaPlugin + {{18, 156}, {643, 373}} + + + {643, 373} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + CPUMemoryTableView + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + ToolTip + + ToolTip + + This area displays the basic components of the PDP-8 CPU. From the software point of view, a bare PDP-8 CPU has only these four registers SR, L, AC and PC. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + L (Link) is a 1-bit register used as an extension of the AC register. If a carry results from the addition of the most significant bits of AC and an other word, this carry causes the link value to toggle from 0 to 1 or from 1 to 0. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + This area displays the Extended Arithmetic Element. The EAE option provides the capability to perform arithmetic operations which cannot be directly performed with the basic PDP-8 instruction set, e. g. multiplication and division. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + SC (Step Counter) is used to hold the number of shift operations needed to normalize a binary fraction held in AC and MQ. The EAE instruction NMI (7411) calculates this number. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + GTF (Greater Than Flag) holds sign information calculated while the execution of some EAE mode B instructions. The mode B skip instruction SGT (6006) skips if GTF is set. In EAE mode A, GTF is not available and should be cleared. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + MQ (Multiplier Quotient) is used in conjunction with AC to perform direct multiplication and divison. The PDP-8/E has the MQ register even if it has no EAE; earlier machines (PDP-8, PDP-8/S, PDP-8/I) have it only in conjunction with an EAE. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + This area displays the KM8-E Memory Extension. The KM8-E provides the capability to expand the PDP-8 memory to up to 32K (15-bit addresses) and contains additions for time sharing operation of the PDP-8. + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + DF (Data Field) is a 3-bit register which determines the memory field from which operands of indirectly addressed memory reference instructions are taken. (The pointer addresses are obtained from the instruction field.) + + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + When an interrupt occurs, the values of UF, IF and DF are loaded into the 7-bit register SF (Save Field) and UF, IF, DF are cleared. RIB (Read Interrupt Buffer, 6234) reads SF into AC; RMF (Restore Memory Fields, 6244) restores UB, IB and DF from SF. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + On a real PDP-8, SR (Switch Register) is a set of twelve toggle switches at the console used to specify values which are loaded into the CPU when other switches are operated. OSR (7404) loads the logical OR of AC and SR into AC. + + + com.apple.InterfaceBuilder.CocoaPlugin + + {{209, 615}, {203, 53}} + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + AC (Accumulator) is the prime component of the arithmetic unit of the basic PDP-8. It is a 12-bit register used to perform all arithmetic operations of the CPU. + + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + PC (Program Counter) is used to record the memory address of the next instruction to be executed. When the PDP-8 has more than 4K memory, the IF register is provided as an extension of PC to enable addressing of up to 32K. + + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + IF (Instruction Field) determines the memory field the next instruction is to be taken from. Directly addressed instructions optain their operand from IF; indirectly addressed instructions take their pointer address from IF and their operand from DF. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + The IF changing instructions CIF x (62x2) load the number of the new instruction field into IB (Instruction Buffer). The value of IB is then loaded into IF while execution of the next JMP or JMS instruction. + + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + For time sharing operation, UF (User Flag) determines whether the CPU is running in system mode (UF=0) or user mode (UF=1). In user mode, the execution of IOT, OSR or HLT instructions causes the CPU issue an interrupt. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + RegisterFormCell + + ToolTip + + ToolTip + + The instructions RTF (6005), RMF (6244), CUF (6264) and SUF (6274) clear or set UB (User Buffer). The value of UB is then loaded into UF while execution of the next JMP or JMS instruction, provided that the time sharing option of the KM8-E is enabled. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + This area displays all elements of the PDP-8 needed for interrupt and I/O processing. When an interrupt occurs, the old value of PC is saved in memory location 0, and execution continues at location 1. UF, IF and DF are saved in SF and become cleared. + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + When the Interrupt Enable Flag is set, the delay and inhibit flags are cleared and an I/O devices interrupt enable flag is set, this device can cause an interrupt by raising its I/O flag. + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + ION (6001) sets the enable and delay flag. This Interrupt Delay Flag is cleared again while the execution of the next instruction after checking for interrupts. So the effect of ION is delayed for one instruction - for secure return from ISR. + + + com.apple.InterfaceBuilder.CocoaPlugin + + + ToolTip + + ToolTip + + The Interrupt Inhibit Flag is part of the KM8-E Memory Extension. It is set by the IF changing instructions CIF x (62x2) and cleared again by the next JMP or JMS instruction. So interrupts cannot occur while the new field setting is not effective. + + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + {{63, 552}, {330, 119}} + com.apple.InterfaceBuilder.CocoaPlugin + {{63, 552}, {330, 119}} + + + + {409, 154} + {158.906, 100} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{42, 661}, {270, 38}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + 2239 + + + + + BootstrapPanelController + NSObject + + loadBootstrapLoader: + id + + + loadBootstrapLoader: + + loadBootstrapLoader: + id + + + + NSButton + NSStepper + NSMatrix + PDP8 + + + + adjustPCCheckbox + NSButton + + + ifStepper + NSStepper + + + loaderRadioButtons + NSMatrix + + + pdp8 + PDP8 + + + + IBProjectSource + Panels/BootstrapPanelController.h + + + + BootstrapPanelController + NSObject + + IBUserSource + + + + + BreakpointArray + NSObject + + IBProjectSource + Utilities/BreakpointArray.h + + + + BreakpointArray + NSObject + + IBUserSource + + + + + BreakpointController + NSObject + + id + id + id + id + + + + addBreakpoint: + id + + + deleteBreakpoint: + id + + + disableAllBreakpoints: + id + + + enableAllBreakpoints: + id + + + + NSButton + BreakpointArray + NSButton + NSButton + NSButton + NSTableView + + + + addButton + NSButton + + + breakpoints + BreakpointArray + + + deleteButton + NSButton + + + disableAllButton + NSButton + + + enableAllButton + NSButton + + + tableView + NSTableView + + + + IBProjectSource + Panels/BreakpointController.h + + + + BreakpointController + NSObject + + IBUserSource + + + + + CPUMemoryTableView + NonWrappingTableView + + IBUserSource + + + + + CPUMemoryViewController + NSObject + + handleContextMenu: + id + + + handleContextMenu: + + handleContextMenu: + id + + + + BreakpointArray + BreakpointArray + CPUMemoryTableView + PDP8 + + + + breakopcodes + BreakpointArray + + + breakpoints + BreakpointArray + + + memoryView + CPUMemoryTableView + + + pdp8 + PDP8 + + + + IBProjectSource + CPUWindow/CPUMemoryViewController.h + + + + CPUMemoryViewController + NSObject + + IBUserSource + + + + + CPUWindowController + NSObject + + id + id + id + id + + + + delayCheckboxClicked: + id + + + eaeModeButtonClick: + id + + + enableCheckboxClicked: + id + + + inhibitCheckboxClicked: + id + + + + RegisterFormCell + NSButton + RegisterFormCell + NSButton + NSButton + RegisterFormCell + NSButton + RegisterFormCell + RegisterFormCell + NSButton + RegisterFormCell + EnableDisableTextField + RegisterFormCell + RegisterFormCell + PDP8 + RegisterFormCell + RegisterFormCell + RegisterFormCell + RegisterFormCell + RegisterFormCell + NSWindow + + + + _if + RegisterFormCell + + + a + NSButton + + + ac + RegisterFormCell + + + b + NSButton + + + delay + NSButton + + + df + RegisterFormCell + + + enable + NSButton + + + gtf + RegisterFormCell + + + ib + RegisterFormCell + + + inhibit + NSButton + + + l + RegisterFormCell + + + mode + EnableDisableTextField + + + mq + RegisterFormCell + + + pc + RegisterFormCell + + + pdp8 + PDP8 + + + sc + RegisterFormCell + + + sf + RegisterFormCell + + + sr + RegisterFormCell + + + ub + RegisterFormCell + + + uf + RegisterFormCell + + + window + NSWindow + + + + IBProjectSource + CPUWindow/CPUWindowController.h + + + + CPUWindowController + NSObject + + IBUserSource + + + + + EnableDisableTextField + NSTextField + + IBProjectSource + Utilities/EnableDisableTextField.h + + + + EnableDisableTextField + NSTextField + + IBUserSource + + + + + FirstResponder + NSObject + + : + id + + + : + + : + id + + + + IBUserSource + + + + + IOFlagController + NSObject + + NSTableView + PDP8 + + + + ioFlagsView + NSTableView + + + pdp8 + PDP8 + + + + IBProjectSource + CPUWindow/IOFlagController.h + + + + IOFlagController + NSObject + + IBUserSource + + + + + KeepInMenuWindow + NSWindow + + id + id + + + + orderBackFromDefaults: + id + + + orderFrontFromDefaults: + id + + + + IBProjectSource + Utilities/KeepInMenuWindow.h + + + + KeepInMenuWindow + NSWindow + + IBUserSource + + + + + MainController + NSObject + + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + clearAllFlags: + id + + + go: + id + + + loadExtendedAddress: + id + + + loadPaperTape: + id + + + performZoomAll: + id + + + reset: + id + + + showHideBootstrapPanel: + id + + + showHideBreakpointPanel: + id + + + showPreferencesPanel: + id + + + step: + id + + + stop: + id + + + toggleMemoryInspectorDrawer: + id + + + trace: + id + + + + NSPanel + BreakpointArray + NSPanel + BreakpointArray + KeepInMenuWindow + NSStepper + NSView + NSDrawer + PDP8 + PluginManager + NSPanel + + + + bootstrapPanel + NSPanel + + + breakopcodes + BreakpointArray + + + breakpointPanel + NSPanel + + + breakpoints + BreakpointArray + + + cpuWindow + KeepInMenuWindow + + + loadPaperTapeFieldStepper + NSStepper + + + loadPaperTapeFieldView + NSView + + + memoryInspectorDrawer + NSDrawer + + + pdp8 + PDP8 + + + pluginManager + PluginManager + + + preferencesPanel + NSPanel + + + + IBProjectSource + Main/MainController.h + + + + MainController + NSObject + + IBUserSource + + + + + MemoryInspectorController + NSObject + + id + id + + + + alignMemory: + id + + + selectMemoryInspector: + id + + + + TableCornerView + NSDrawer + NonWrappingTableView + PDP8 + NSPopUpButton + + + + cornerView + TableCornerView + + + memoryInspectorDrawer + NSDrawer + + + memoryView + NonWrappingTableView + + + pdp8 + PDP8 + + + popupButton + NSPopUpButton + + + + IBProjectSource + MemoryInspector/MemoryInspectorController.h + + + + MemoryInspectorController + NSObject + + IBUserSource + + + + + MemoryInspectorScrollView + NSScrollView + + + + MemoryInspectorScrollView + NSScrollView + + IBUserSource + + + + + NSControl + + IBProjectSource + Categories/NSControl+FileDrop.h + + + + NSControl + NSView + + IBUserSource + + + + + NSTableView + + IBProjectSource + Categories/NSTableView+Scrolling.h + + + + NSTableView + NSControl + + IBUserSource + + + + + NonWrappingTableView + NSTableView + + IBProjectSource + Utilities/NonWrappingTableView.h + + + + NonWrappingTableView + NSTableView + + IBUserSource + + + + + PDP8 + NSObject + + BreakpointArray + BreakpointArray + + + + breakopcodes + BreakpointArray + + + breakpoints + BreakpointArray + + + + IBProjectSource + Emulation/PDP8.h + + + + PDP8 + NSObject + + IBUserSource + + + + + PluginManager + NSObject + + IOFlagController + PDP8 + SkipController + + + + ioFlagController + IOFlagController + + + pdp8 + PDP8 + + + skipController + SkipController + + + + IBProjectSource + Plugins/PluginManager.h + + + + PluginManager + NSObject + + IBUserSource + + + + + PreferencesController + NSObject + + prefPanel + NSPanel + + + prefPanel + + prefPanel + NSPanel + + + + IBProjectSource + Panels/PreferencesController.h + + + + PreferencesController + NSObject + + IBUserSource + + + + + RegisterFormCell + NSFormCell + + registerOwner + id + + + registerOwner + + registerOwner + id + + + + IBProjectSource + Utilities/RegisterFormCell.h + + + + RegisterFormCell + NSFormCell + + IBUserSource + + + + + SkipController + NSObject + + PDP8 + TableCornerView + + + + pdp8 + PDP8 + + + view + TableCornerView + + + + IBProjectSource + CPUWindow/SkipController.h + + + + SkipController + NSObject + + IBUserSource + + + + + TableCornerView + NSControl + + IBProjectSource + Utilities/TableCornerView.h + + + + TableCornerView + NSControl + + IBUserSource + + + + + + + EnableDisableTextField + NSTextField + + IBFrameworkSource + PluginFramework.framework/Headers/EnableDisableTextField.h + + + + KeepInMenuWindow + NSWindow + + IBFrameworkSource + PluginFramework.framework/Headers/KeepInMenuWindow.h + + + + NSControl + + IBFrameworkSource + PluginFramework.framework/Headers/NSControl+FileDrop.h + + + + NSTableView + + IBFrameworkSource + PluginFramework.framework/Headers/NSTableView+Scrolling.h + + + + PDP8 + NSObject + + BreakpointArray + BreakpointArray + + + + breakopcodes + BreakpointArray + + + breakpoints + BreakpointArray + + + + IBFrameworkSource + PluginFramework.framework/Headers/PDP8.h + + + + RegisterFormCell + NSFormCell + + IBFrameworkSource + PluginFramework.framework/Headers/RegisterFormCell.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + YES + ../../pdp8e-simulator.xcodeproj + 3 + + {9, 8} + {7, 2} + {15, 15} + {9, 45} + + + diff --git a/Resources/English.lproj/MainMenu.nib/keyedobjects.nib b/Resources/English.lproj/MainMenu.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..cb48a8a4def2ea172ad36f9f6f4ed8fec97def92 GIT binary patch literal 114470 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 G1^)rRf4G7G literal 0 HcmV?d00001 diff --git a/Resources/English.lproj/OnlineHelp/AsciiCharacterTable/AsciiCharacterTable.html b/Resources/English.lproj/OnlineHelp/AsciiCharacterTable/AsciiCharacterTable.html new file mode 100644 index 0000000..91cc89f --- /dev/null +++ b/Resources/English.lproj/OnlineHelp/AsciiCharacterTable/AsciiCharacterTable.html @@ -0,0 +1,240 @@ + + + + + + ASCII Character Table + + + + + + +

    ASCII Character Table

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + 1. Col.: Decimal — + 2. Col.: 7-Bit Octal — + 3. Col.: ASCII — + 4. Col.: 6-Bit Octal +
    0000NULL32040SPC4064100@0096140`
    1001SOH33041!4165101A0197141a
    2002STX34042"4266102B0298142b
    3003ETX35043#4367103C0399143c
    4004EOT36044$4468104D04100144d
    5005ENQ37045%4569105E05101145e
    6006ACK38046&4670106F06102146f
    707BEL39047'4771107G07103147g
    8010BS40050(5072110H10104150h
    9011HT41051)5173111I11105151i
    10012LF42052*5274112J12106152j
    11013VT43053+5375113K13107153k
    12014FF44054,5476114L14108154l
    13015CR45055-5577115M15109155m
    14016SO46056.5678116N16110156n
    15017SI47057/5779117O17111157o
    16020DLE4806006080120P20112160p
    17021DC14906116181121Q21113161q
    18022DC25006226282122R22114162r
    19023DC35106336383123S23115163s
    20024DC45206446484124T24116164t
    21025NAK5306556585125U25117165u
    22026SYN5406666686126V26118166v
    23027ETB5506776787127W27119167w
    24030CAN5607087088130X30120170x
    25031EM5707197189131Y31121171y
    26032SUB58072:7290132Z32122172z
    27033ESC59073;7391133[33123173{
    28034FS60074<7492134\34124174|
    29035GS61075=7593135]35125175}
    30036RS62076>7694136^36126176~
    31037US63077?7795137_37127177DEL
    + + + diff --git a/Resources/English.lproj/OnlineHelp/DataFormats/DataFormats.html b/Resources/English.lproj/OnlineHelp/DataFormats/DataFormats.html new file mode 100644 index 0000000..b91746f --- /dev/null +++ b/Resources/English.lproj/OnlineHelp/DataFormats/DataFormats.html @@ -0,0 +1,157 @@ + + + + + + Data Formats + + + + + + +

    Data Formats in the Memory Inspector Drawer

    + +
      +
    • +6-Bit ASCII. +Two 6-bit ASCII characters are packed into one memory word, +the first character in the most significant half of the word. +This format is often used for packed storage of character strings in +the PDP-8 memory. +
    • +
    • +8-Bit ASCII. +Any memory word contains one 8-bit ASCII character, stored in the least +significant bits fo the word. The memory inspector ignores the most +significant bit because it is normally set to one or used as a parity bit. +
    • +
    • +OS/8 Packed 8-Bit ASCII. +The OS/8 Disk Monitor System uses this format for storing text files. +Three 8-bit characters aaaaAAAA bbbbBBBB ccccCCCC are stored in two +consecutive 12-bit words as ccccaaaaAAAA CCCCbbbbBBBB. The memory inspector +ignores the most significant bits of the 8-bit characters. +
    • +
    • +Sigend Integer. +The 12-bit memory words are interpreted as 12-bit two’s complement +numbers. The valid range is −2048 to 2047. +
    • +
    • +Unsigned Integer. +The 12-bit memory words are interpreted as 12-bit binary numbers. +The valid range is 0 to 4095. +
    • +
    • +Double Word Signed Integer. +Two consecutive 12-bit memory words are interpreted as a 24-bit two’s +complement number. The first 12-bit word contains the least significant half +of the number, the second word the most significant half. This is the order +used by the EAE instructions DAD and DST. The valid range is −8388608 to +8388607. +
    • +
    • +Double Word Unsigned Integer. +Two consecutive 12-bit memory words are interpreted as a 24-bit binary number. +The first 12-bit word contains the least significant half of the number, the +second word the most significant half. The valid range is 0 to 16777215. +
    • +
    • +FPP8-A Floating Point. +This is the single precision floating point format used by the FPP8-A floating +pointn processor, the DEC floating point software package and a lot of PDP-8 +software, e. g. FORTRAN IV and FOCAL-8. FP numbers are stored in three +memory words: + +The expontent e is a 12-bit signed two’s complement integer, +the mantissa is interpreted as a signed two’s complement normalized +fration, i. e. 0.5 ≤ |m| < 1, and the represented number +is m · 2e. The range of FP numbers is +about −0.99E+619 to 0.99E+619; they have about six significant decimal +digits. +

      +

      + +
      +

      +
    • +
    • +FPP8-A EP Floating Point. +This is the extended precision floating point format of the FPP8-A floating +point processor. The EP format is the same as the FP format, but the mantissa +occupies five 12-bit words, extending the precision of EP numbers to +approximately 15 significant decimal digits. +
    • +
    • +FORTRAN II Floating Point. +This floating point format is used by the PDP-8 8K FORTRAN system. +A number of this format is stored in three words: +

      +

      + +
      +

      +The exponent e of the number is stored (after adding 200 (octal)) as +an 8-bit unsigned binary number. The mantissa m is stored as a 27-bit +usigned normalized fraction, i. e. 0.5 ≤ m < 1. +The range of FORTRAN II floating point numbers is about −1.7E+38 to +1.7E+38, the smallest nonzero number is ±0.14E−38; they have +approximately eight significant decimal digits. +
    • +
    • +Pascal-S Floating Point. +This is the floating point format used by the PDP-8 Pascal-S compiler of +Heinz Stegbauer. It is the same as the FPP8-A FP format, but uses three words +for the mantissa (about ten significant decimal digits) and stores it as an +unsigned (not two’s complement) normalized fraction. +
    • +
    + +

    Remarks

    + +

    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 literal 0 HcmV?d00001 diff --git a/RK8E/English.lproj/RK8EOnlineHelp/index.html b/RK8E/English.lproj/RK8EOnlineHelp/index.html new file mode 100644 index 0000000..b323b41 --- /dev/null +++ b/RK8E/English.lproj/RK8EOnlineHelp/index.html @@ -0,0 +1,268 @@ + + + + + + RK8-E Disk Cartridge System Help + + + + + + + +

    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 literal 0 HcmV?d00001 diff --git a/KC8EA/knob5.png b/KC8EA/knob5.png new file mode 100644 index 0000000000000000000000000000000000000000..94270ac6ed5a4cc57fc567380a15b9b8384b3a5b GIT binary patch literal 14780 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 literal 0 HcmV?d00001 diff --git a/KC8EA/light_on.png b/KC8EA/light_on.png new file mode 100644 index 0000000000000000000000000000000000000000..fc5348e97267a4584f5cd2cac2dc0b456e7ae373 GIT binary patch literal 814 zcmV+}1JV46P)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RU3kMf1H9gx zU=RkIgoMOVh%Yna@yxiVn?*-~V8`Mtt5pBM=ZQ)T`bC9t;NULh5qgJ2 zk!a!L@Cv>R6p*XycdQ=ca*ON)pZpQAcOrCtEfQ?*1VW^92_ zrF+0>)5_AKklpzH5-ofh&OX{dzROi7=ruX*pi3Af?~@M- z$e@RatRuSg(X;c)?RJ^%m!07*qoM6N<$f}dS^W&i*H literal 0 HcmV?d00001 diff --git a/KC8EA/singstep_down.png b/KC8EA/singstep_down.png new file mode 100644 index 0000000000000000000000000000000000000000..14e9d622e40d8e485289f38d1ae8f5207de7243b GIT binary patch literal 3588 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 P00000NkvXXu0mjfOUA$O literal 0 HcmV?d00001 diff --git a/KC8EA/sr10down.png b/KC8EA/sr10down.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0c3c93ab317459ef556275ed33ff6438fd51e3 GIT binary patch literal 3247 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 literal 0 HcmV?d00001 diff --git a/KC8EA/sr10up_sr11down.png b/KC8EA/sr10up_sr11down.png new file mode 100644 index 0000000000000000000000000000000000000000..9ae903e6415b45db5146ef64960960ce17e61fed GIT binary patch literal 3711 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 Tl-nNz00000NkvXXu0mjf$>RaA literal 0 HcmV?d00001 diff --git a/KC8EA/sr11down.png b/KC8EA/sr11down.png new file mode 100644 index 0000000000000000000000000000000000000000..12264bd694cd2f206b8289cc4c22def93b9d3816 GIT binary patch literal 3385 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 P00000NkvXXu0mjfTrpW5 literal 0 HcmV?d00001 diff --git a/KC8EA/sr11up.png b/KC8EA/sr11up.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a335becbdcecb0af88d13e10f00b0613bfb23f GIT binary patch literal 3768 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 literal 0 HcmV?d00001 diff --git a/KC8EA/sr1up_sr2down.png b/KC8EA/sr1up_sr2down.png new file mode 100644 index 0000000000000000000000000000000000000000..168d525e1738e72783682260c0d31d3b5a996948 GIT binary patch literal 3765 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 literal 0 HcmV?d00001 diff --git a/KC8EA/sr1up_sr2up.png b/KC8EA/sr1up_sr2up.png new file mode 100644 index 0000000000000000000000000000000000000000..ddb027616588f0b34454ba5bc685e0296dffff10 GIT binary patch literal 3807 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 literal 0 HcmV?d00001 diff --git a/KC8EA/sr2up_sr3up.png b/KC8EA/sr2up_sr3up.png new file mode 100644 index 0000000000000000000000000000000000000000..f9647366a3b1586cd1c62159815ac9705b919b33 GIT binary patch literal 3723 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 Ar2qf` literal 0 HcmV?d00001 diff --git a/KC8EA/sr3up_sr4down.png b/KC8EA/sr3up_sr4down.png new file mode 100644 index 0000000000000000000000000000000000000000..c3f1615d40dd4574db70476e33f435043f117b3d GIT binary patch literal 3634 zcmV-24$bk2P)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RU3j-D$9RXUG{r~^~B6LMqbVF}# zZDnqB07G(RVRU6=Aa`kWXdp*PO;8|jZXjVGO<`k)sCPpE01cK&L_t(o!*!WoZ)Mq0 z#eb`6pL4J6_Wa9aCW#^xKtTc&A>b7W3Go1*g=fAMFNkk~ghXCKAd?wo$jo%NyW93X zyQ+AoZO;%XmTXz}x#!fbKdaVSNAKV0Czq(q!hIY1tDpTv{@cI&EC2ZSe`mk_^79H6 zr)`))%*R>dJpA_dHg+F%Hi?WnE=S$PoJ;+Y=(?9(g=Y7kH2hMC)uU_88* zW?V2cWI_puJe|)PvVtlXP{nDCy50s8GZnd5Tb0h_1{h6$$tVRAAi@^wGkPz5%eZ8+O@&35xW#(4LNKl!synf?YW zA(K*409jb|>2OFZtQ^cC3o1bnabRXp7wYWnE+Qt0C<T!vL*uBUpEVPchzwGWWM~3Pq9#;;i8wA)tx_70i3^USFf-yf zFcY|t9DpP-H$*Tj*mgLd2e&5T?iF$O!1&@Dc>kC0_{04L|h^oglJ ziBe=%`f2YLzwSCZ@cMv zdbo9fTIEFjK(h`Otu^u#Saz0Hz%hdvpfZk{q<~>)b7l%sjBAJYZwIGcoNfkrl|0%+ zmq$2?uHQPfynkndOu!+E%pU&^gvO+t{h2H>Cz(mH^YYad7v5l-Gc~9v#6Tsk_8YeQ zJI3t`arFZB8$)|>es6=E{LjDtoG~Wzc*_t}85ATF9~(%>b_(aKukVO?!5Pfi0YoG! zqpCpQ8@=PohzahFjh#?}96Rky8RK?meEg#mSD##ydc!3zeDmr8mVEu{LaAG5$S4mi zJMA_gEvb4(R3UTTy@s&``+lY?;$(qj9LFQubRv?>pk|j+dcd{NzwXEq8av~YAAHJ- z4>t00AdH#@2}x0cldLO7uIzyDZWoE{+w;-&6%%kAi@+!%lTzSkr>Yp*Aq_C*als{Q z@BZ7BU;{s&8D|~b+&FUxD<>l;teX^`*F-trVie54)fp;14NM2{%z;oZVW~OO8h>TcTP7M2 zYObLuiexKa6D$fa3M26pei|^ueg!Yi#mJaM9z-OY4=S@KI}4XUMn)iWpim{M?5Xk5 zx6dYf$K`?$?v7Xo$X+>_VAj`KCGO45_S+k5+c7+6UME^i`OqDo}Of~^A$W9%E-`GlP|##WrS4hUc{tO0K3^Y~UK zGx90hmtsrqk#w!zqp^9MKBJ}?W;qi|zU!eUs8 zoK00{%-&tq&4_B@pJ?II%3;j_TGWIpqSjWCHJt&nl3_;W(d9C6b#r37IbkQmEjg`# zIs?^kvf1AK9EFz%se7twZIxCsnbi%Sfmt`LSy5GFC8j~BFnLd`z-UM?4K_>mYv+7> zhRyLIHVfPet>Tw@(nr!wyjTXv2(61%R7D3Yqp~n>l#U2o*3`BNsrkKGP!xt?Y^BoT#GJ_`ZIs5llb6>i<=LM;FcwrwMGQq>SpB}~?E zfH1@+AvezNIj7r!tXfu4*diEE&l!3`p<$<;gGY8mx={$##4u8Y3NG_tW8m)02q=iW zVAieac7lSb-hb``a~OWG-=4U7v7s%oB|^GnzvoLZl#|{1gchPCN`pnvDS^w0>H$Cr zCL|FRY}-y%kN(iWa7@Ni0Heftg{lMYHPnX6Px(Q48)fmq?U1_Lvs%B@5WQ zzvP`oswYueO%3kCTwK36<0s*xX|$>p^)v5V#rxe1)%tB@CZ55t-u%jm3aWblW5$A? zMaT-#dT<+~fmMbN;a8LM%{8ZMLq@L`3RB{4WF_?ka^H!jF}tN0(23EYdCmerQ>{l2 zRMo5{3zI#A+!&2jn>OUaM{>G8v7H;&yqkz&&7Eq2ZLR67wW{_1%BgPjS;?rjdHP%3 z^y~Re;@1BnF?W0zR2v;>!Rc!6roM5^)*>gsdpPvO7PKng^?X_eOJ^*AkQgfOy%u6? zCfr;p0#)IQJ)*=;TLUGDd$FGees)gppYW3-i)HuJ!mOakZv{nFJ2~)ehV(m$DpnOL zaBt7xsiDoS9hd4v%bi;0gs%^dtBvhuXFEAqbwDvYAayddwt7}Jvt0`3seC4V+vKaf zL-T0JFI$t+YFHWTgx!^{BC{9XKIxSDNggY9Zt)HWIrl&u3R@Fxu@sH*lCu-30+Z!@im z_K)W(W{R<2Iq!dT#{H4SDWDn#o)gx0$Gq20v-KvC z-wmXJThC@1)x>ZNPxc|u!KS7Y%3P%c6pI@fDMO{_Valg6ETeYdxO>wbdeYK*V4iAZ z-eknO5t@6^dNS8@%n)*KGv1ySv}dn$TANRVP9}Uw_og>SMNl=# zd?4eIs-RR$f^}9@)gn}mdaRLb1=NlLOFS? z4SUhe4T0Fnaw7Yr!_G*>tXSJWi6t_>OYi{Z!tqk;$Rt67S;086qqOSmWOmP(8aF0K zOZtl5bEOuk&m|~qFRuMeko}emb!HhLC%YD?;>k~GT~KZ2#!SpNW_ z3-jW@18A}}GPO%LXJZV)aSj7TJj=gSqjN+w88kg}rkV$;CUj;-&1kK7Df*RIPie$M zAFz@c#%XuPt2zaqyHi8mMcKdqZ#C>^Xdy8r+H07*qoM6N<$ Eg0MK-E&u=k literal 0 HcmV?d00001 diff --git a/KC8EA/sr3up_sr4up.png b/KC8EA/sr3up_sr4up.png new file mode 100644 index 0000000000000000000000000000000000000000..9d4433dff16fd66e05de8e096c898c40f18f75af GIT binary patch literal 3702 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 QR{#J207*qoM6N<$g1qT==l}o! literal 0 HcmV?d00001 diff --git a/KC8EA/sr4up_sr5down.png b/KC8EA/sr4up_sr5down.png new file mode 100644 index 0000000000000000000000000000000000000000..99b2ff3c50bfe5675eb5b0473a054e712d8d86c6 GIT binary patch literal 3676 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 literal 0 HcmV?d00001 diff --git a/KC8EA/sr5up_sr6down.png b/KC8EA/sr5up_sr6down.png new file mode 100644 index 0000000000000000000000000000000000000000..4ce8ecc0237542e8d44f03c0a4272c8eae008db8 GIT binary patch literal 3666 zcmV-Y4z2NtP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RU3j-D*0e`cD4*&oFB6LMqbVF}# zZDnqB07G(RVRU6=Aa`kWXdp*PO;8|jZXjVGO<`k)sCPpE01dWDL_t(o!)=*Mk0e=A zg}-BV-6JyVF*DusP|pSl1PCF-Nbncf@e5dj#LwWTF$=bA5fTg%pm{a@sOqZ9%8c-9 zW-RPRb`N5anN^wL?&kJ5=h(S=dDh=}GHqCF`}xJ+|J~o_KmGjY@gM*GZ!e!>PIJGQ z@p8!GJWespU)b<;_e6Q0bwpJ~M7&fHFJHZmeLvkly!)6lk6BeO(mYfVCchu%Q5@6F z?(bi|o?m|Xb-w-Z{w(*%W6p{?>$5wq=YqZ9d`5rqv%lo4|NbwI%LCU+K0H2wnKGy$ zQxX7d24KucjeTGdygZ%I^#ViKK8Ryd6Hy{4qKXNO-7tVDYE~T;Tmt4SW`h3VPpCiq zz3;JcMO-l7065}`%D{k3Bmst0Bp@@C1%L@oo3rmbRR@{5J|iMPRUq%rtH=t>4b1Q| z+%B9qC*{cR8J{}*>`z}oJ(AbNN)%3&F)NS^$)G?aP!x$U%#4hrDsdCC>HrX;U!vS7 zgqgTJUJ%7*8}HS;`0kyS<8r-{OeiQDWEDeDW^4vI zKk~_se?(<)`QjbdHNUUp%`cfbQ9&Upovw;Vip=Wr2q2lq z!KXj`3GY69q~*=KA*gK598y6 zr{m1SyMwpC`GVI!{T}x(?|69oKupLgpol28;pBQqRzW7F!c@fd9Xqq9iUb4O5(b>k zaN5skz;-guFJ22z#$8`QZ}e`loPyA1(kuu4tanMKvW9y0)Vy??00*a=LSV77#DzlL z%T>%sF7t|8BfOiDnv9x#7w_`RZ2|9^6$zq7~qmNA(W>mixA z3QClk7n`U>#vn@!o0thx4tYwHQ$*o*+4xa~y#zF&{vY*GbLBugZo2Ghe;a za%T*&os83~GqyQqi3nt3cy$$kQG#JcMB%8*QsCBd7#bQ9P&KvG5e(E4rXaF<$xtC1 zm~Pl=D5KSml5KZR_k*zmo*1p|O(5m!J{XS^uH~3ECQn@|K~}5 zu5mETFg9xSoO?%j+WW1^U~GmPJxwQPd%a`3V6;?{jNWtB;ItH6Z}`C>()VI+kQCzNX-oZSo?V!JcWuMFQhJED;6IYUc2-tyk%>r7cIlPXGp z<$?ua-hb;|PwU@8w$QkQ0Y}~d(Q!dpu$@kvU!EBI#02JrW*ciL9pPlV&u!+;%eNVQX81@}7U43NF z{CAtZVhq9NA|?zB4H1!8!K5%3${zn=&WsBp@qO=OS zJ@T?8l~-f`PKH=D6r-2jqAV%3M^MmBc}#o^u%?(u8k^LvNzMzWZAT7_jT*-GV#l{! zSqLf~o6Bw`(=t5xP9N23^i|JM1)FVP&gPTZWxIT zLj%q)PvF9~?6S+qn#*snRkiLf-4gTvWoYTMq8L8mOcLf8)^cS8Re{2&YT+T&!OOvf zpA0`ccJ4s6%nq~=U#m|_y&Y3M5UOtzr0*nZWwL1EW}G*M53DYv0xyBiRMqmLv@%?n zW#i3ejFZ6#u)=Eq1F5A9EDTf9V{t3p!l}}7a_Tv<8*+`hgVXnSVs3bh-Y%*-fczF5 zWm-F*5sF@)mc!SAdv>XPF}}q!Vhe`~%$gUVI_uAbwZ11r8p8}^Ep5m0C1q`t$yets z0M!6k3{Um@FW<^-Co>^iqpKRf%5wFQEz$Swi*zAd<3mwpWDP8V%?5@wg|t74x3WXT z+E5ZHDGRI$rw~CYFoVf#h2!m!nprO&fLTy>lQ{*ZMZZnX?V=hJ=U~GW^h1U>>3UB< z6YgxsWuY(yUfvH}3e_o8i4>RxEK9qpRJwz%XdS$D%ewEkAQX6l4?3gA z#!U^_SU6L;CS{Oe&(whR`?j<4Ep^NY3VPD2`zNE9ShHHra=&1#poLHwjeJlsQ5wVi zrueEi;ml`lE0WCanOr-cjX|~<+Cs35%3`>fIY}jh0vXa++HF}wm6X7;R+(FcNaLCN zs+CPWfo$UW1UC zYq9MNnVg^)?N@A#DY=%$%2oRtt_2oaZC|8iLBbSJiXp(P=sf9^elvB0N zpcG5HRS$*?x4{fCG9dHj{`Om7eX3A5Q-j8l8;|EReH4|wV$4oxTZ0a`^`5v?LCT-C zRH&#DvDW#>whDq`X7q+^ej?%{$O$W~{kOK7t>v+=bCt5*Xi$TstWUgTZMcTFGu+2$ zYG=!KRB5&DqhV9}gXV&OuE#W>;wncqgt4g;6$Ca6io<=tU zYu}-YZL>D&syK+=f=pzIG@i-Vd&@^8vnG|x6T=w4`KtK!*C)m({JLau^kJiXBTLMf zYc*0+Nd+~RS1E`L;(B1TK`US0cw5Uoc^qI)%*3@VZZs~(fomr-+6J#cfBuT&evtPP zJ9V*LToVnm80_=7UPW@qlvCJ|b!^smtg76kXn9|8omq#llvf&&lx&Dfs%EMi4=QD5 kQX7Q*pBb~BW?6v!FZ%+lQ~I$1J^%m!07*qoM6N<$g0KD0TmS$7 literal 0 HcmV?d00001 diff --git a/KC8EA/sr5up_sr6up.png b/KC8EA/sr5up_sr6up.png new file mode 100644 index 0000000000000000000000000000000000000000..89d22c5ba6b65febc3b6604b9100cb642d3da683 GIT binary patch literal 3713 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 literal 0 HcmV?d00001 diff --git a/KC8EA/sr6down.png b/KC8EA/sr6down.png new file mode 100644 index 0000000000000000000000000000000000000000..d3b638848d543843f2770c987bc6698d946e360b GIT binary patch literal 3439 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 JPDHLkV1iaeY!(0j literal 0 HcmV?d00001 diff --git a/KC8EA/sr6up_sr7up.png b/KC8EA/sr6up_sr7up.png new file mode 100644 index 0000000000000000000000000000000000000000..ebeb3a6e6c5b43bbf1877e4c4ec68387358ce3ea GIT binary patch literal 3914 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 YKL^Or%$JtIiU0rr07*qoM6N<$f|O@oX8-^I literal 0 HcmV?d00001 diff --git a/KC8EA/sr7down.png b/KC8EA/sr7down.png new file mode 100644 index 0000000000000000000000000000000000000000..973c5bebdadb07de4a7c8b3b2ad252c8c6c5b375 GIT binary patch literal 3417 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 literal 0 HcmV?d00001 diff --git a/KC8EA/sr7up_sr8down.png b/KC8EA/sr7up_sr8down.png new file mode 100644 index 0000000000000000000000000000000000000000..e4ce947423e70029181a8e0c1902f9107449ca86 GIT binary patch literal 3911 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 VkoCBuBjf-8002ovPDHLkV1gP!c$NSF literal 0 HcmV?d00001 diff --git a/KC8EA/sr7up_sr8up.png b/KC8EA/sr7up_sr8up.png new file mode 100644 index 0000000000000000000000000000000000000000..47e07061117fa3eb618f0200f7489c228f14ef7d GIT binary patch literal 3940 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

    yC|v#y^NLv0ImfR%kvBZSYw@U7MRU9uO&I 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�{T609jL8g-x)mta_B@>nt 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