diff options
| author | James Barnett <noreply@jamesbarnett.xyz> | 2018-06-14 21:18:14 +0100 |
|---|---|---|
| committer | James Barnett <noreply@jamesbarnett.xyz> | 2018-06-14 21:18:14 +0100 |
| commit | cf0f98348c5f4df57d3adb44418cc2911e7b37b7 (patch) | |
| tree | 8ee74dfcbd402e7966f8e57440a54ba34d35d899 /src/main/kotlin/Registers.kt | |
| parent | 1d66a2c79cf98970ee80cbb1fe4262fa95c885dd (diff) | |
| download | KGB-cf0f98348c5f4df57d3adb44418cc2911e7b37b7.tar.xz KGB-cf0f98348c5f4df57d3adb44418cc2911e7b37b7.zip | |
Make a start on opcodes
Diffstat (limited to 'src/main/kotlin/Registers.kt')
| -rw-r--r-- | src/main/kotlin/Registers.kt | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/src/main/kotlin/Registers.kt b/src/main/kotlin/Registers.kt deleted file mode 100644 index e65a372..0000000 --- a/src/main/kotlin/Registers.kt +++ /dev/null @@ -1,122 +0,0 @@ -class Registers { - - // General purpose registers - var B: Int = 0 - set(value) { - validateUnsigned8Bit(value) - field = value - } - var C: Int = 0 - set(value) { - validateUnsigned8Bit(value) - field = value - } - var D: Int = 0 - set(value) { - validateUnsigned8Bit(value) - field = value - } - var E: Int = 0 - set(value) { - validateUnsigned8Bit(value) - field = value - } - var H: Int = 0 - set(value) { - validateUnsigned8Bit(value) - field = value - } - var L: Int = 0 - set(value) { - validateUnsigned8Bit(value) - field = value - } - - // Special registers - var A: Int = 0 - set(value) { - validateUnsigned8Bit(value) - field = value - } - var F: Int = 0 - set(value) { - validateUnsigned8Bit(value) - field = value - } - var SP: Int = 0 - set(value) { - validateUnsigned16Bit(value) - field = value - } - var PC: Int = 0 - set(value) { - validateUnsigned16Bit(value) - field = value - } - - // 16-Bit accessors - var AF: Int - get() { - return bytesToWord(A, F) - } - set(value) { - validateUnsigned16Bit(value) - A = getMsb(value) - F = getLsb(value) - } - - var BC: Int - get() { - return bytesToWord(B, C) - } - set(value) { - validateUnsigned16Bit(value) - B = getMsb(value) - C = getLsb(value) - } - - var DE: Int - get() { - return bytesToWord(D, E) - } - set(value) { - validateUnsigned16Bit(value) - D = getMsb(value) - E = getLsb(value) - } - - var HL: Int - get() { - return bytesToWord(H, L) - } - set(value) { - validateUnsigned16Bit(value) - H = getMsb(value) - L = getLsb(value) - } - - private fun bytesToWord(msb: Int, lsb: Int): Int { - return msb.shl(8) + lsb - } - - private fun getMsb(value: Int): Int { - return value.shr(8) - } - - private fun getLsb(value: Int): Int { - return value.and(0xFF) - } - - private fun validateUnsigned8Bit(value: Int) { - if(value < 0 || value > 255) { - throw IllegalArgumentException("Value $value is not an unsigned 8-Bit value") - } - } - - private fun validateUnsigned16Bit(value: Int) { - if(value < 0 || value > 65535) { - throw IllegalArgumentException("Value $value is not an unsigned 16-Bit value") - } - } - -}
\ No newline at end of file |