aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-08-29 18:29:07 +0200
committerBad Diode <bd@badd10de.dev>2023-08-29 18:29:07 +0200
commitf1ba75ceb98f51e91e45f346d4bafb33d6f26e79 (patch)
treeb1fbb49b3aab15d7201ad66d85611b4f57156c59 /src
parent56c43c1e27fb6cd2c536ce12a199ad69acfd3633 (diff)
downloaduxngba-f1ba75ceb98f51e91e45f346d4bafb33d6f26e79.tar.gz
uxngba-f1ba75ceb98f51e91e45f346d4bafb33d6f26e79.zip
Fix strh operations on the return stack
Diffstat (limited to 'src')
-rw-r--r--src/main.c298
-rw-r--r--src/uxn-core.s8
2 files changed, 154 insertions, 152 deletions
diff --git a/src/main.c b/src/main.c
index 0e5e384..3be4c49 100644
--- a/src/main.c
+++ b/src/main.c
@@ -92,132 +92,134 @@ init_uxn() {
92 // uxn_boot(u, uxn_ram, uxn_dei, uxn_deo); 92 // uxn_boot(u, uxn_ram, uxn_dei, uxn_deo);
93 93
94 // Copy rom to VM. 94 // Copy rom to VM.
95 u8 uxn_rom[] = { 95 // u8 uxn_rom[] = {
96 // // ADD test. 96 // // // ADD test.
97 // 0x80, 0x04, 0x80, 0x08, 0x18, // #04 #08 ADD -> 0c 97 // // 0x80, 0x04, 0x80, 0x08, 0x18, // #04 #08 ADD -> 0c
98 // 0xa0, 0x00, 0x04, 0xa0, 0x00, 0x08, 0x38, // #0004 #0008 ADD2 -> 000c 98 // // 0xa0, 0x00, 0x04, 0xa0, 0x00, 0x08, 0x38, // #0004 #0008 ADD2 -> 000c
99 // 0xa0, 0x00, 0xff, 0xa0, 0x00, 0x02, 0x38, // #00ff #0002 ADD2 -> 0101 99 // // 0xa0, 0x00, 0xff, 0xa0, 0x00, 0x02, 0x38, // #00ff #0002 ADD2 -> 0101
100 // // SUB test. 100 // // // SUB test.
101 // 0x80, 0x08, 0x80, 0x03, 0x19, // #08 #03 SUB -> 05 101 // // 0x80, 0x08, 0x80, 0x03, 0x19, // #08 #03 SUB -> 05
102 // 0xa0, 0x00, 0x08, 0xa0, 0x00, 0x03, 0x39, // #0008 #0003 SUB2 -> 0005 102 // // 0xa0, 0x00, 0x08, 0xa0, 0x00, 0x03, 0x39, // #0008 #0003 SUB2 -> 0005
103 // 0xa0, 0x01, 0x01, 0xa0, 0x00, 0x02, 0x39, // #0008 #0003 SUB2 -> 00ff 103 // // 0xa0, 0x01, 0x01, 0xa0, 0x00, 0x02, 0x39, // #0008 #0003 SUB2 -> 00ff
104 // // MUL test. 104 // // // MUL test.
105 // 0x80, 0x03, 0x80, 0x04, 0x1a, // #03 #04 MUL -> 0c 105 // // 0x80, 0x03, 0x80, 0x04, 0x1a, // #03 #04 MUL -> 0c
106 // 0xa0, 0x00, 0x03, 0xa0, 0x00, 0x04, 0x3a, // #0003 #0004 MUL2 -> 000c 106 // // 0xa0, 0x00, 0x03, 0xa0, 0x00, 0x04, 0x3a, // #0003 #0004 MUL2 -> 000c
107 // 0xa0, 0x00, 0xff, 0xa0, 0x00, 0x02, 0x3a, // #00ff #0002 MUL2 -> 01fe 107 // // 0xa0, 0x00, 0xff, 0xa0, 0x00, 0x02, 0x3a, // #00ff #0002 MUL2 -> 01fe
108 // // DIV test. 108 // // // DIV test.
109 // 0x80, 0x08, 0x80, 0x04, 0x1b, // #08 #04 DIV -> 02 109 // // 0x80, 0x08, 0x80, 0x04, 0x1b, // #08 #04 DIV -> 02
110 // 0xa0, 0x00, 0x08, 0xa0, 0x00, 0x04, 0x3b, // #0008 #0004 DIV2 -> 0002 110 // // 0xa0, 0x00, 0x08, 0xa0, 0x00, 0x04, 0x3b, // #0008 #0004 DIV2 -> 0002
111 // // INC test. 111 // // // INC test.
112 // 0x80, 0x09, 0x01, // #09 INC -> 0a 112 // // 0x80, 0x09, 0x01, // #09 INC -> 0a
113 // 0xa0, 0x00, 0x09, 0x21, // #0009 INC2 -> 000a 113 // // 0xa0, 0x00, 0x09, 0x21, // #0009 INC2 -> 000a
114 // 0xa0, 0x00, 0xff, 0x21, // #0009 INC2 -> 0100 114 // // 0xa0, 0x00, 0xff, 0x21, // #0009 INC2 -> 0100
115 // 0xa0, 0x00, 0xff, 0x21, 0x21, // #0009 INC2 INC2 -> 0101 115 // // 0xa0, 0x00, 0xff, 0x21, 0x21, // #0009 INC2 INC2 -> 0101
116 // // POP. 116 // // // POP.
117 // 0xa0, 0x12, 0x34, 0x02, 117 // // 0xa0, 0x12, 0x34, 0x02,
118 // 0xa0, 0x12, 0x34, 0x22, 118 // // 0xa0, 0x12, 0x34, 0x22,
119 // 0xa0, 0x00, 0x00, 119 // // 0xa0, 0x00, 0x00,
120 // // NIP. 120 // // // NIP.
121 // 0xa0, 0x12, 0x34, 0x03, // -> ( 34 ) 121 // // 0xa0, 0x12, 0x34, 0x03, // -> ( 34 )
122 // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0x23, // -> ( 56 78 ) 122 // // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0x23, // -> ( 56 78 )
123 // // SWP. 123 // // // SWP.
124 // 0xa0, 0x12, 0x34, 0x04, // -> ( 34 12 ) 124 // // 0xa0, 0x12, 0x34, 0x04, // -> ( 34 12 )
125 // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0x24, // -> ( 56 78 12 34 ) 125 // // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0x24, // -> ( 56 78 12 34 )
126 // // ROT. 126 // // // ROT.
127 // 0xa0, 0x12, 0x34, 0x80, 0x56, 0x05, // -> ( 34 56 12 ) 127 // // 0xa0, 0x12, 0x34, 0x80, 0x56, 0x05, // -> ( 34 56 12 )
128 // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0xa0, 0x9a, 0xbc, 0x25, // -> ( 56 78 9a bc 12 34 ) 128 // // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0xa0, 0x9a, 0xbc, 0x25, // -> ( 56 78 9a bc 12 34 )
129 // // DUP. 129 // // // DUP.
130 // 0xa0, 0x12, 0x34, 0x06, // -> ( 12 34 34 ) 130 // // 0xa0, 0x12, 0x34, 0x06, // -> ( 12 34 34 )
131 // 0xa0, 0x12, 0x34, 0x26, // -> ( 12 34 12 34 ) 131 // // 0xa0, 0x12, 0x34, 0x26, // -> ( 12 34 12 34 )
132 // // OVR. 132 // // // OVR.
133 // 0xa0, 0x12, 0x34, 0x07, // -> ( 12 34 12 ) 133 // // 0xa0, 0x12, 0x34, 0x07, // -> ( 12 34 12 )
134 // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0x27, // -> ( 12 34 56 78 12 34 ) 134 // // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0x27, // -> ( 12 34 56 78 12 34 )
135 // // EQU. 135 // // // EQU.
136 // 0xa0, 0x12, 0x12, 0x08, // -> ( 01 ) 136 // // 0xa0, 0x12, 0x12, 0x08, // -> ( 01 )
137 // 0xa0, 0x12, 0x34, 0x08, // -> ( 00 ) 137 // // 0xa0, 0x12, 0x34, 0x08, // -> ( 00 )
138 // 0xa0, 0x12, 0x34, 0xa0, 0x12, 0x34, 0x28, // -> ( 01 ) 138 // // 0xa0, 0x12, 0x34, 0xa0, 0x12, 0x34, 0x28, // -> ( 01 )
139 // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0x28, // -> ( 00 ) 139 // // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0x28, // -> ( 00 )
140 // // NEQ. 140 // // // NEQ.
141 // 0xa0, 0x12, 0x12, 0x09, // -> ( 00 ) 141 // // 0xa0, 0x12, 0x12, 0x09, // -> ( 00 )
142 // 0xa0, 0x12, 0x34, 0x09, // -> ( 01 ) 142 // // 0xa0, 0x12, 0x34, 0x09, // -> ( 01 )
143 // 0xa0, 0x12, 0x34, 0xa0, 0x12, 0x34, 0x29, // -> ( 00 ) 143 // // 0xa0, 0x12, 0x34, 0xa0, 0x12, 0x34, 0x29, // -> ( 00 )
144 // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0x29, // -> ( 01 ) 144 // // 0xa0, 0x12, 0x34, 0xa0, 0x56, 0x78, 0x29, // -> ( 01 )
145 // // GTH. 145 // // // GTH.
146 // 0xa0, 0x12, 0x34, 0x0a, // -> ( 00 ) 146 // // 0xa0, 0x12, 0x34, 0x0a, // -> ( 00 )
147 // 0xa0, 0x34, 0x12, 0x0a, // -> ( 01 ) 147 // // 0xa0, 0x34, 0x12, 0x0a, // -> ( 01 )
148 // 0xa0, 0x12, 0x34, 0xa0, 0x34, 0x56, 0x2a, // -> ( 00 ) 148 // // 0xa0, 0x12, 0x34, 0xa0, 0x34, 0x56, 0x2a, // -> ( 00 )
149 // 0xa0, 0x34, 0x56, 0xa0, 0x12, 0x34, 0x2a, // -> ( 01 ) 149 // // 0xa0, 0x34, 0x56, 0xa0, 0x12, 0x34, 0x2a, // -> ( 01 )
150 // // LTH. 150 // // // LTH.
151 // 0xa0, 0x12, 0x34, 0x0b, // -> ( 01 ) 151 // // 0xa0, 0x12, 0x34, 0x0b, // -> ( 01 )
152 // 0xa0, 0x34, 0x12, 0x0b, // -> ( 00 ) 152 // // 0xa0, 0x34, 0x12, 0x0b, // -> ( 00 )
153 // 0xa0, 0x12, 0x34, 0xa0, 0x34, 0x56, 0x2b, // -> ( 01 ) 153 // // 0xa0, 0x12, 0x34, 0xa0, 0x34, 0x56, 0x2b, // -> ( 01 )
154 // 0xa0, 0x34, 0x56, 0xa0, 0x12, 0x34, 0x2b, // -> ( 00 ) 154 // // 0xa0, 0x34, 0x56, 0xa0, 0x12, 0x34, 0x2b, // -> ( 00 )
155 // // AND. 155 // // // AND.
156 // 0xa0, 0x0f, 0x88, 0x1c, // -> ( 08 ) 156 // // 0xa0, 0x0f, 0x88, 0x1c, // -> ( 08 )
157 // 0xa0, 0xf0, 0x88, 0x1c, // -> ( 80 ) 157 // // 0xa0, 0xf0, 0x88, 0x1c, // -> ( 80 )
158 // 0xa0, 0x00, 0x0f, 0xa0, 0x99, 0x88, 0x3c, // -> ( 00 08 ) 158 // // 0xa0, 0x00, 0x0f, 0xa0, 0x99, 0x88, 0x3c, // -> ( 00 08 )
159 // // ORA. 159 // // // ORA.
160 // 0xa0, 0x0f, 0x88, 0x1d, // -> ( 8f ) 160 // // 0xa0, 0x0f, 0x88, 0x1d, // -> ( 8f )
161 // 0xa0, 0xf0, 0x08, 0x1d, // -> ( f8 ) 161 // // 0xa0, 0xf0, 0x08, 0x1d, // -> ( f8 )
162 // 0xa0, 0xf0, 0x0f, 0xa0, 0xaa, 0xaa, 0x3d, // -> ( fa af ) 162 // // 0xa0, 0xf0, 0x0f, 0xa0, 0xaa, 0xaa, 0x3d, // -> ( fa af )
163 // // EOR. 163 // // // EOR.
164 // 0xa0, 0x0f, 0x88, 0x1e, // -> ( 87 ) 164 // // 0xa0, 0x0f, 0x88, 0x1e, // -> ( 87 )
165 // 0xa0, 0xf0, 0x08, 0x1e, // -> ( f8 ) 165 // // 0xa0, 0xf0, 0x08, 0x1e, // -> ( f8 )
166 // 0xa0, 0xf0, 0x0f, 0xa0, 0xaa, 0xaa, 0x3e, // -> ( 5a a5 ) 166 // // 0xa0, 0xf0, 0x0f, 0xa0, 0xaa, 0xaa, 0x3e, // -> ( 5a a5 )
167 // // SFT. 167 // // // SFT.
168 // 0xa0, 0x34, 0x10, 0x1f, // -> ( 68 ) 168 // // 0xa0, 0x34, 0x10, 0x1f, // -> ( 68 )
169 // 0xa0, 0x34, 0x01, 0x1f, // -> ( 1a ) 169 // // 0xa0, 0x34, 0x01, 0x1f, // -> ( 1a )
170 // 0xa0, 0x34, 0x33, 0x1f, // -> ( 30 ) 170 // // 0xa0, 0x34, 0x33, 0x1f, // -> ( 30 )
171 // 0xa0, 0x12, 0x48, 0x80, 0x34, 0x3f, // -> ( 09 20 ) 171 // // 0xa0, 0x12, 0x48, 0x80, 0x34, 0x3f, // -> ( 09 20 )
172 // // STZ / LDZ. 172 // // // STZ / LDZ.
173 // 0xa0, 0x34, 0x00, 0x11, // STZ (u8*)uxn_ram[1] = 0x34 173 // // 0xa0, 0x34, 0x00, 0x11, // STZ (u8*)uxn_ram[1] = 0x34
174 // 0xa0, 0xaa, 0xbb, 0x80, 0x01, 0x31, // STZ2 (u16*)uxn_ram[1] = 0x34 174 // // 0xa0, 0xaa, 0xbb, 0x80, 0x01, 0x31, // STZ2 (u16*)uxn_ram[1] = 0x34
175 // 0x80, 0x00, 0x10, // LDZ -> ( 34 ) 175 // // 0x80, 0x00, 0x10, // LDZ -> ( 34 )
176 // 0x80, 0x01, 0x30, // LDZ2 -> ( aa bb ) 176 // // 0x80, 0x01, 0x30, // LDZ2 -> ( aa bb )
177 // // LDR / SRT 177 // // // LDR / SRT
178 // 0xa0, 0xab, 0xcd, 0x80, 0xfb, 0x12, 178 // // 0xa0, 0xab, 0xcd, 0x80, 0xfb, 0x12,
179 // 0xa0, 0xab, 0xcd, 0x80, 0xfb, 0x32, 179 // // 0xa0, 0xab, 0xcd, 0x80, 0xfb, 0x32,
180 // 0x80, 1, 0x12, 0xa0, 0xaa, 0xbb, 180 // // 0x80, 1, 0x12, 0xa0, 0xaa, 0xbb,
181 // 0xa0, 0xff, 0xee, 0x80, 0xfa, 0x33, 181 // // 0xa0, 0xff, 0xee, 0x80, 0xfa, 0x33,
182 // 0x80, 0xff, 0x80, 1, 0x13, 0xa0, 0xaa, 0xbb, 182 // // 0x80, 0xff, 0x80, 1, 0x13, 0xa0, 0xaa, 0xbb,
183 // 0xa0, 0xff, 0xee, 0x80, 1, 0x33, 0xa0, 0xaa, 0xbb, 183 // // 0xa0, 0xff, 0xee, 0x80, 1, 0x33, 0xa0, 0xaa, 0xbb,
184 // LDA /STA 184 // // LDA /STA
185 // 0xa0, 0x01, 0x05, 0x14, 0xa0, 0xaa, 0xbb, 185 // // 0xa0, 0x01, 0x05, 0x14, 0xa0, 0xaa, 0xbb,
186 // 0xa0, 0x01, 0x05, 0x34, 0xa0, 0xcc, 0xdd, 186 // // 0xa0, 0x01, 0x05, 0x34, 0xa0, 0xcc, 0xdd,
187 // 0xa0, 0xab, 0xcd, 0xa0, 0x01, 0x08, 0x15, 187 // // 0xa0, 0xab, 0xcd, 0xa0, 0x01, 0x08, 0x15,
188 // 0xa0, 0xab, 0xcd, 0xa0, 0x01, 0x08, 0x35, 188 // // 0xa0, 0xab, 0xcd, 0xa0, 0x01, 0x08, 0x35,
189 // JMP 189 // // JMP
190 // 0x80, 0x01, 0x0c, 0x00, 0x80, 0xaa, 190 // // 0x80, 0x01, 0x0c, 0x00, 0x80, 0xaa,
191 // 0xa0, 0x01, 0x05, 0x2c, 0x00, 0x80, 0xbb, 191 // // 0xa0, 0x01, 0x05, 0x2c, 0x00, 0x80, 0xbb,
192 // JCN 192 // // JCN
193 // 0xa0, 0xab, 0xcd, 0x80, 0x01, 0x80, 0x01, 0x0d, 0x04, 0x02, 193 // // 0xa0, 0xab, 0xcd, 0x80, 0x01, 0x80, 0x01, 0x0d, 0x04, 0x02,
194 // 0xa0, 0xab, 0xcd, 0x80, 0x00, 0x80, 0x01, 0x0d, 0x04, 0x02, 194 // // 0xa0, 0xab, 0xcd, 0x80, 0x00, 0x80, 0x01, 0x0d, 0x04, 0x02,
195 // 0xa0, 0xab, 0xcd, 0x80, 0x01, 0xa0, 0x01, 0x0a, 0x2d, 0x04, 0x02, 195 // // 0xa0, 0xab, 0xcd, 0x80, 0x01, 0xa0, 0x01, 0x0a, 0x2d, 0x04, 0x02,
196 // 0xa0, 0xab, 0xcd, 0x80, 0x00, 0xa0, 0x01, 0x15, 0x2d, 0x04, 0x02, 196 // // 0xa0, 0xab, 0xcd, 0x80, 0x00, 0xa0, 0x01, 0x15, 0x2d, 0x04, 0x02,
197 // JSR 197 // // JSR
198 // 0x80, 0x03, 0x0e, 0x80, 0x01, 0x00, 0x80, 0x02, 0x6c, 198 // // 0x80, 0x03, 0x0e, 0x80, 0x01, 0x00, 0x80, 0x02, 0x6c,
199 // 0x80, 0x03, 0x0e, 0x80, 0x01, 0x00, 0x80, 0x02, 0x6c, 199 // // 0x80, 0x03, 0x0e, 0x80, 0x01, 0x00, 0x80, 0x02, 0x6c,
200 // JMI/JSI/JCI 200 // // JMI/JSI/JCI
201 // 0x40, 0x00, 0x01, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd, 201 // // 0x40, 0x00, 0x01, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd,
202 // 0x40, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd, 202 // // 0x40, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd,
203 // 0x40, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd, 0x40, 0xff, 0xf7, 203 // // 0x40, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd, 0x40, 0xff, 0xf7,
204 // 0x40, 0x00, 0x04, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd, 204 // // 0x40, 0x00, 0x04, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd,
205 // 0x40, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd, 205 // // 0x40, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd,
206 // 0x60, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd, 206 // // 0x60, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd,
207 // 0x60, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd, 0x6c 207 // // 0x60, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd, 0x6c
208 // 0x80, 0x01, 0x20, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd, 208 // // 0x80, 0x01, 0x20, 0x00, 0x03, 0x80, 0xff, 0x00, 0xa0, 0xaa, 0xbb, 0xa0, 0xcc, 0xdd,
209 // DEO/DEO2 209 // // DEO/DEO2
210 // 0x80, 0x68, 0x80, 0x18, 0x17, 0x80, 0x65, 0x80, 0x18, 0x17, 0x80, 0x6c, 0x80, 0x18, 0x17, 0x80, 210 // // 0x80, 0x68, 0x80, 0x18, 0x17, 0x80, 0x65, 0x80, 0x18, 0x17, 0x80, 0x6c, 0x80, 0x18, 0x17, 0x80,
211 // 0x6c, 0x80, 0x18, 0x17, 0x80, 0x6f, 0x80, 0x18, 0x17, 0x80, 0x0a, 0x80, 0x18, 0x17, 211 // // 0x6c, 0x80, 0x18, 0x17, 0x80, 0x6f, 0x80, 0x18, 0x17, 0x80, 0x0a, 0x80, 0x18, 0x17,
212 // 0xa0, 0x00, 0x68, 0x80, 0x18, 0x37, 0x80, 0x65, 0x80, 0x18, 0x17, 0x80, 0x6c, 0x80, 0x18, 0x17, 0x80, 212 // // 0xa0, 0x00, 0x68, 0x80, 0x18, 0x37, 0x80, 0x65, 0x80, 0x18, 0x17, 0x80, 0x6c, 0x80, 0x18, 0x17, 0x80,
213 // 0x6c, 0x80, 0x18, 0x17, 0x80, 0x6f, 0x80, 0x18, 0x17, 0x80, 0x0a, 0x80, 0x18, 0x17, 213 // // 0x6c, 0x80, 0x18, 0x17, 0x80, 0x6f, 0x80, 0x18, 0x17, 0x80, 0x0a, 0x80, 0x18, 0x17,
214 // 0xa0, 0x2c, 0xe9, 0x80, 0x08, 0x37, 214 // // 0xa0, 0x2c, 0xe9, 0x80, 0x08, 0x37,
215 0xa0, 0x6b, 0x4f, 0x80, 0x18, 0x17, 0x80, 0x18, 0x17, 0xa0, 0x0a, 0x18, 0x17, 215 // // 0xa0, 0x6b, 0x4f, 0x80, 0x18, 0x17, 0x80, 0x18, 0x17, 0xa0, 0x0a, 0x18, 0x17,
216 // 0xa0, 0x6b, 0x4f, 0x80, 0x18, 0x17, 0x80, 0x18, 216 // 0xc0, 0x6b, 0x80, 0x4f,
217 // 0x17, 0xa0, 0x0a, 0x18, 0x17, 0xc0, 0x6b, 0x80, 217 // 0x0f,
218 // 0x4f, 0x0f, 0x6f, 0x80, 0x18, 0x17, 0x80, 0x18, 218 // 0x6f,
219 // 0x17, 0xa0, 0x0a, 0x18, 0x17, 0x00, 0x00, 219 // 0x80, 0x18,
220 }; 220 // 0x17, 0x80, 0x18, 0x17, 0xa0, 0x0a, 0x18, 0x17,
221 // // 0x00, 0x00,
222 // };
221 memcpy(uxn_ram + PAGE_PROGRAM, uxn_rom, sizeof(uxn_rom)); 223 memcpy(uxn_ram + PAGE_PROGRAM, uxn_rom, sizeof(uxn_rom));
222 224
223 // Initialize stack and device memory. 225 // Initialize stack and device memory.
@@ -271,18 +273,18 @@ main(void) {
271 273
272 uxn_eval_asm(PAGE_PROGRAM); 274 uxn_eval_asm(PAGE_PROGRAM);
273 275
274 txt_printf("\nROM"); 276// txt_printf("\nROM");
275 for (size_t i = 0; i < 64; i++) { 277// for (size_t i = 0; i < 64; i++) {
276 if (i % 8 == 0) { 278// if (i % 8 == 0) {
277 txt_printf("\n"); 279// txt_printf("\n");
278 } 280// }
279 txt_printf("%02x ", uxn_ram[i + PAGE_PROGRAM]); 281// txt_printf("%02x ", uxn_ram[i + PAGE_PROGRAM]);
280 } 282// }
281 txt_printf("\n"); 283// txt_printf("\n");
282 284
283 txt_printf("WST ("); 285 txt_printf("WST (");
284 txt_printf("SIZE: %d)", wst_ptr - (uintptr_t)wst); 286 txt_printf("SIZE: %d)", wst_ptr - (uintptr_t)wst);
285 for (size_t i = 0; i < 64; i++) { 287 for (size_t i = 0; i < 32; i++) {
286 if (i % 8 == 0) { 288 if (i % 8 == 0) {
287 txt_printf("\n"); 289 txt_printf("\n");
288 } 290 }
@@ -292,19 +294,19 @@ main(void) {
292 txt_printf("%02x ", wst[i]); 294 txt_printf("%02x ", wst[i]);
293 } 295 }
294 } 296 }
295 // txt_printf("\n\n"); 297 txt_printf("\n\n");
296 // txt_printf("RST ("); 298 txt_printf("RST (");
297 // txt_printf("SIZE: %d)", rst_ptr - (uintptr_t)rst); 299 txt_printf("SIZE: %d)", rst_ptr - (uintptr_t)rst);
298 // for (size_t i = 0; i < 64; i++) { 300 for (size_t i = 0; i < 32; i++) {
299 // if (i % 8 == 0) { 301 if (i % 8 == 0) {
300 // txt_printf("\n"); 302 txt_printf("\n");
301 // } 303 }
302 // if (i >= (rst_ptr - (uintptr_t)rst)) { 304 if (i >= (rst_ptr - (uintptr_t)rst)) {
303 // txt_printf("%02x ", 0); 305 txt_printf("%02x ", 0);
304 // } else { 306 } else {
305 // txt_printf("%02x ", rst[i]); 307 txt_printf("%02x ", rst[i]);
306 // } 308 }
307 // } 309 }
308 // txt_printf("\n\n"); 310 // txt_printf("\n\n");
309 // txt_printf("RAM (ZP)\n"); 311 // txt_printf("RAM (ZP)\n");
310 // for (size_t i = 0; i < 64; i++) { 312 // for (size_t i = 0; i < 64; i++) {
diff --git a/src/uxn-core.s b/src/uxn-core.s
index 5b20e03..905dd42 100644
--- a/src/uxn-core.s
+++ b/src/uxn-core.s
@@ -1529,12 +1529,12 @@ jsr2r:
1529 1529
1530sthr: 1530sthr:
1531 rpop8 r3 1531 rpop8 r3
1532 rpush8 r3 1532 wpush8 r3
1533 b uxn_decode 1533 b uxn_decode
1534 1534
1535sth2r: 1535sth2r:
1536 rpop16 r3, r5 1536 rpop16 r3, r5
1537 rpush16 r3 1537 wpush16 r3
1538 b uxn_decode 1538 b uxn_decode
1539 1539
1540ldzr: 1540ldzr:
@@ -2375,12 +2375,12 @@ jsr2kr:
2375 2375
2376sthkr: 2376sthkr:
2377 rpeek8 r3 2377 rpeek8 r3
2378 rpush8 r3 2378 wpush8 r3
2379 b uxn_decode 2379 b uxn_decode
2380 2380
2381sth2kr: 2381sth2kr:
2382 rpeek16 r3, r5 2382 rpeek16 r3, r5
2383 rpush16 r3 2383 wpush16 r3
2384 b uxn_decode 2384 b uxn_decode
2385 2385
2386ldzkr: 2386ldzkr: