summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--instructions/SED.ts6
-rw-r--r--instructions/SEI.ts6
-rw-r--r--instructions/STA.ts8
-rw-r--r--instructions/STX.ts8
-rw-r--r--instructions/STY.ts8
-rw-r--r--thing.s4
6 files changed, 38 insertions, 2 deletions
diff --git a/instructions/SED.ts b/instructions/SED.ts
new file mode 100644
index 0000000..f738907
--- /dev/null
+++ b/instructions/SED.ts
@@ -0,0 +1,6 @@
+import type The65c02 from "../65c02.ts";
+
+export default function (this: The65c02) {
+    this.decimalMode = true;
+    this.programCounter.increment();
+}
\ No newline at end of file
diff --git a/instructions/SEI.ts b/instructions/SEI.ts
new file mode 100644
index 0000000..9854874
--- /dev/null
+++ b/instructions/SEI.ts
@@ -0,0 +1,6 @@
+import type The65c02 from "../65c02.ts";
+
+export default function (this: The65c02) {
+    this.IRQBDisable = true;
+    this.programCounter.increment();
+}
\ No newline at end of file
diff --git a/instructions/STA.ts b/instructions/STA.ts
new file mode 100644
index 0000000..d83da17
--- /dev/null
+++ b/instructions/STA.ts
@@ -0,0 +1,8 @@
+import type The65c02 from "../65c02.ts";
+
+export default function (this: The65c02, mode: string) {
+    const addr = this.getAddr(mode);
+    this.io.address.set(addr);
+    this.io.data.set(this.regA.num())
+    this.write();
+}
\ No newline at end of file
diff --git a/instructions/STX.ts b/instructions/STX.ts
new file mode 100644
index 0000000..b428325
--- /dev/null
+++ b/instructions/STX.ts
@@ -0,0 +1,8 @@
+import type The65c02 from "../65c02.ts";
+
+export default function (this: The65c02, mode: string) {
+    const addr = this.getAddr(mode);
+    this.io.address.set(addr);
+    this.io.data.set(this.regX.num())
+    this.write();
+}
\ No newline at end of file
diff --git a/instructions/STY.ts b/instructions/STY.ts
new file mode 100644
index 0000000..e1ca943
--- /dev/null
+++ b/instructions/STY.ts
@@ -0,0 +1,8 @@
+import type The65c02 from "../65c02.ts";
+
+export default function (this: The65c02, mode: string) {
+    const addr = this.getAddr(mode);
+    this.io.address.set(addr);
+    this.io.data.set(this.regY.num())
+    this.write();
+}
\ No newline at end of file
diff --git a/thing.s b/thing.s
index 5fefcd3..d7fabea 100644
--- a/thing.s
+++ b/thing.s
@@ -1,3 +1,3 @@
-  lda #$55
-  sta $00
+  lda #$55 ; put 55 into A
+  sta $00  ; put A into $0
   brk
\ No newline at end of file