FruitMachine-Swift/FruitMachine/ViewController.swift

60 lines
1.6 KiB
Swift
Raw Normal View History

2017-07-20 03:44:57 +00:00
//
// ViewController.swift
// FruitMachine
//
// Created by Christopher Rohl on 7/19/17.
// Copyright © 2017 Christopher Rohl. All rights reserved.
//
import Cocoa
class ViewController: NSViewController {
2017-07-22 07:11:14 +00:00
@IBOutlet weak var text_CPU_A: NSTextField!
@IBOutlet weak var text_CPU_X: NSTextField!
@IBOutlet weak var text_CPU_Y: NSTextField!
@IBOutlet weak var text_CPU_IP: NSTextField!
@IBOutlet weak var text_CPU_SR: NSTextField!
2017-07-20 06:50:28 +00:00
let CPU = CPUState.sharedInstance
2017-07-22 07:11:14 +00:00
func updateCPUStatusFields() {
text_CPU_A.stringValue = String(format:"%02X", CPU.accumulator)
text_CPU_X.stringValue = String(format:"%02X", CPU.index_x)
text_CPU_Y.stringValue = String(format:"%02X", CPU.index_y)
text_CPU_IP.stringValue = String(format:"%04X", CPU.instruction_register)
text_CPU_SR.stringValue = String(format:"%02X", CPU.instruction_register)
}
2017-07-20 03:44:57 +00:00
override func viewDidLoad() {
super.viewDidLoad()
2017-07-22 02:13:53 +00:00
CPU.memoryInterface.loadBinary(path: "/Users/luigi/6502/test.bin")
2017-07-22 07:11:14 +00:00
updateCPUStatusFields()
2017-07-21 07:25:48 +00:00
2017-07-20 03:44:57 +00:00
// Do any additional setup after loading the view.
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
2017-07-22 07:11:14 +00:00
func cpuStep() {
do {
try CPU.executeNextInstruction()
updateCPUStatusFields()
} catch CPUExceptions.invalidInstruction {
print("*** 6502 Exception: Invalid instruction 0xXX at 0xXXXX")
} catch {
print(error)
}
}
@IBAction func btn_CPUStep(_ sender: Any) {
cpuStep()
}
2017-07-20 03:44:57 +00:00
}