aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/Registers.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/Registers.kt')
-rw-r--r--src/main/kotlin/Registers.kt122
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