diff options
| author | vin <git@vineetk.net> | 2024-06-10 12:54:05 +0530 |
|---|---|---|
| committer | vin <git@vineetk.net> | 2024-06-10 14:28:13 +0530 |
| commit | 454276a50c5843e3401f9bc54d80cb7dda40b782 (patch) | |
| tree | 301126d2bb95befdd7d7b76e2be29ca1ca608bdd /cpu.c | |
| parent | e07d5917a1625e207d1ba96b7e0d1e1c493040b2 (diff) | |
implement sta, stx, sty
Diffstat (limited to 'cpu.c')
| -rw-r--r-- | cpu.c | 40 |
1 files changed, 20 insertions, 20 deletions
| @@ -559,21 +559,21 @@ sei(uint8_t arg) | |||
| 559 | } | 559 | } |
| 560 | 560 | ||
| 561 | static void | 561 | static void |
| 562 | sta(uint8_t arg) | 562 | sta(uint16_t mem) |
| 563 | { | 563 | { |
| 564 | /* TODO: complete this */ | 564 | memwrite(mem, regs.a); |
| 565 | } | 565 | } |
| 566 | 566 | ||
| 567 | static void | 567 | static void |
| 568 | stx(uint8_t arg) | 568 | stx(uint16_t mem) |
| 569 | { | 569 | { |
| 570 | /* TODO: complete this */ | 570 | memwrite(mem, regs.x); |
| 571 | } | 571 | } |
| 572 | 572 | ||
| 573 | static void | 573 | static void |
| 574 | sty(uint8_t arg) | 574 | sty(uint16_t mem) |
| 575 | { | 575 | { |
| 576 | /* TODO: complete this */ | 576 | memwrite(mem, regs.y); |
| 577 | } | 577 | } |
| 578 | 578 | ||
| 579 | static void | 579 | static void |
| @@ -1219,59 +1219,59 @@ interpret(void) | |||
| 1219 | cycles += 2; | 1219 | cycles += 2; |
| 1220 | break; | 1220 | break; |
| 1221 | case 0x85: | 1221 | case 0x85: |
| 1222 | sta(opcode_arg(AM_ZP)); | 1222 | sta(opcode_mem(AM_ZP)); |
| 1223 | cycles += 4; | 1223 | cycles += 4; |
| 1224 | break; | 1224 | break; |
| 1225 | case 0x95: | 1225 | case 0x95: |
| 1226 | sta(opcode_arg(AM_ZP_X)); | 1226 | sta(opcode_mem(AM_ZP_X)); |
| 1227 | cycles += 5; | 1227 | cycles += 5; |
| 1228 | break; | 1228 | break; |
| 1229 | case 0x8d: | 1229 | case 0x8d: |
| 1230 | sta(opcode_arg(AM_ABS)); | 1230 | sta(opcode_mem(AM_ABS)); |
| 1231 | cycles += 5; | 1231 | cycles += 5; |
| 1232 | break; | 1232 | break; |
| 1233 | case 0x9d: | 1233 | case 0x9d: |
| 1234 | sta(opcode_arg(AM_ABS_X)); | 1234 | sta(opcode_mem(AM_ABS_X)); |
| 1235 | cycles += 6; | 1235 | cycles += 6; |
| 1236 | break; | 1236 | break; |
| 1237 | case 0x99: | 1237 | case 0x99: |
| 1238 | sta(opcode_arg(AM_ABS_Y)); | 1238 | sta(opcode_mem(AM_ABS_Y)); |
| 1239 | cycles += 6; | 1239 | cycles += 6; |
| 1240 | break; | 1240 | break; |
| 1241 | case 0x92: | 1241 | case 0x92: |
| 1242 | sta(opcode_arg(AM_IND)); | 1242 | sta(opcode_mem(AM_IND)); |
| 1243 | cycles += 6; | 1243 | cycles += 6; |
| 1244 | break; | 1244 | break; |
| 1245 | case 0x81: | 1245 | case 0x81: |
| 1246 | sta(opcode_arg(AM_IND_X)); | 1246 | sta(opcode_mem(AM_IND_X)); |
| 1247 | cycles += 7; | 1247 | cycles += 7; |
| 1248 | break; | 1248 | break; |
| 1249 | case 0x91: | 1249 | case 0x91: |
| 1250 | sta(opcode_arg(AM_IND_Y)); | 1250 | sta(opcode_mem(AM_IND_Y)); |
| 1251 | cycles += 7; | 1251 | cycles += 7; |
| 1252 | break; | 1252 | break; |
| 1253 | case 0x86: | 1253 | case 0x86: |
| 1254 | stx(opcode_arg(AM_ZP)); | 1254 | stx(opcode_mem(AM_ZP)); |
| 1255 | cycles += 4; | 1255 | cycles += 4; |
| 1256 | break; | 1256 | break; |
| 1257 | case 0x96: | 1257 | case 0x96: |
| 1258 | stx(opcode_arg(AM_ZP_Y)); | 1258 | stx(opcode_mem(AM_ZP_Y)); |
| 1259 | cycles += 5; | 1259 | cycles += 5; |
| 1260 | break; | 1260 | break; |
| 1261 | case 0x8e: | 1261 | case 0x8e: |
| 1262 | stx(opcode_arg(AM_ABS)); | 1262 | stx(opcode_mem(AM_ABS)); |
| 1263 | cycles += 5; | 1263 | cycles += 5; |
| 1264 | break; | 1264 | break; |
| 1265 | case 0x84: | 1265 | case 0x84: |
| 1266 | sty(opcode_arg(AM_ZP)); | 1266 | sty(opcode_mem(AM_ZP)); |
| 1267 | cycles += 4; | 1267 | cycles += 4; |
| 1268 | break; | 1268 | break; |
| 1269 | case 0x94: | 1269 | case 0x94: |
| 1270 | sty(opcode_arg(AM_ZP_X)); | 1270 | sty(opcode_mem(AM_ZP_X)); |
| 1271 | cycles += 5; | 1271 | cycles += 5; |
| 1272 | break; | 1272 | break; |
| 1273 | case 0x8c: | 1273 | case 0x8c: |
| 1274 | sty(opcode_arg(AM_ABS)); | 1274 | sty(opcode_mem(AM_ABS)); |
| 1275 | cycles += 5; | 1275 | cycles += 5; |
| 1276 | break; | 1276 | break; |
| 1277 | case 0xaa: | 1277 | case 0xaa: |
