71 lines
2.3 KiB
Kotlin
71 lines
2.3 KiB
Kotlin
package android.emu6502.app
|
|
|
|
import android.emu6502.Emulator
|
|
import android.emu6502.R
|
|
import android.os.Bundle
|
|
import android.view.Menu
|
|
import android.view.MenuItem
|
|
import android.view.View
|
|
import androidx.appcompat.app.ActionBar
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
import com.google.android.material.snackbar.Snackbar
|
|
import kotlinx.android.synthetic.main.activity_main.*
|
|
import kotlinx.android.synthetic.main.toolbar.*
|
|
|
|
class MainActivity : AppCompatActivity() {
|
|
private var emulator: Emulator? = null
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
setContentView(R.layout.activity_main)
|
|
setSupportActionBar(toolbar)
|
|
val ab: ActionBar = supportActionBar!!
|
|
ab.setDisplayHomeAsUpEnabled(true)
|
|
|
|
fabRun.setOnClickListener {
|
|
display_wrapper.visibility = View.VISIBLE
|
|
emulator = Emulator(display)
|
|
val emu: Emulator = emulator as Emulator
|
|
emu.assembler.assembleCode(txtInstructions.text.toString().split("\n"))
|
|
Snackbar.make(layout_content,
|
|
"Code assembled successfully, ${emu.assembler.codeLen} bytes.",
|
|
Snackbar.LENGTH_SHORT).show()
|
|
emu.cpu.run()
|
|
}
|
|
|
|
btnReset.setOnClickListener {
|
|
val emu: Emulator = emulator as Emulator
|
|
emu.reset()
|
|
}
|
|
|
|
val onClickButton = { code: Int ->
|
|
if (emulator != null) {
|
|
val emu = emulator as Emulator
|
|
emu.cpu.memory.storeKeypress(code)
|
|
}
|
|
}
|
|
arrowLeft.setOnClickListener { onClickButton(0x61) }
|
|
arrowRight.setOnClickListener { onClickButton(0x64) }
|
|
arrowUp.setOnClickListener { onClickButton(0x77) }
|
|
arrowDown.setOnClickListener { onClickButton(0x73) }
|
|
}
|
|
|
|
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
|
// Inflate the menu; this adds items to the action bar if it is present.
|
|
menuInflater.inflate(R.menu.menu_main, menu)
|
|
return true
|
|
}
|
|
|
|
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
|
|
// Handle action bar item clicks here. The action bar will
|
|
// automatically handle clicks on the Home/Up button, so long
|
|
// as you specify a parent activity in AndroidManifest.xml.
|
|
val id = item!!.itemId
|
|
return if (id == R.id.action_settings) {
|
|
true
|
|
} else {
|
|
super.onOptionsItemSelected(item)
|
|
}
|
|
}
|
|
}
|