| 195 | } |
| 196 | |
| 197 | func TestLD(t *testing.T) { |
| 198 | ClearMem() |
| 199 | |
| 200 | testLD(0x0000, 0x0080, 0x0023, []uint16{0x0080, 0x0081, 0x0082, 0x0083}, []uint16{0x0023, 0x0081, 0x0082, 0x0083}, t) |
| 201 | testLD(0x0001, 0x0084, 0x00F2, []uint16{0x0084, 0x0085, 0x0086, 0x0087}, []uint16{0x0084, 0x00F2, 0x0086, 0x0087}, t) |
| 202 | testLD(0x0002, 0x0088, 0x0001, []uint16{0x0088, 0x0089, 0x008A, 0x008B}, []uint16{0x0088, 0x0089, 0x0001, 0x008B}, t) |
| 203 | testLD(0x0003, 0x008C, 0x005A, []uint16{0x008C, 0x008D, 0x008E, 0x008F}, []uint16{0x008C, 0x008D, 0x008E, 0x005A}, t) |
| 204 | |
| 205 | testLD(0x0004, 0x0091, 0x0023, []uint16{0x0090, 0x0091, 0x0092, 0x0093}, []uint16{0x0023, 0x0091, 0x0092, 0x0093}, t) |
| 206 | testLD(0x0005, 0x0095, 0x00F2, []uint16{0x0094, 0x0095, 0x0096, 0x0097}, []uint16{0x0094, 0x00F2, 0x0096, 0x0097}, t) |
| 207 | testLD(0x0006, 0x0099, 0x0001, []uint16{0x0098, 0x0099, 0x009A, 0x009B}, []uint16{0x0098, 0x0099, 0x0001, 0x009B}, t) |
| 208 | testLD(0x0007, 0x009D, 0x005A, []uint16{0x009C, 0x009D, 0x009E, 0x009F}, []uint16{0x009C, 0x009D, 0x009E, 0x005A}, t) |
| 209 | |
| 210 | testLD(0x0008, 0x00A2, 0x0023, []uint16{0x00A0, 0x00A1, 0x00A2, 0x00A3}, []uint16{0x0023, 0x00A1, 0x00A2, 0x00A3}, t) |
| 211 | testLD(0x0009, 0x00A6, 0x00F2, []uint16{0x00A4, 0x00A5, 0x00A6, 0x00A7}, []uint16{0x00A4, 0x00F2, 0x00A6, 0x00A7}, t) |
| 212 | testLD(0x000A, 0x00AA, 0x0001, []uint16{0x00A8, 0x00A9, 0x00AA, 0x00AB}, []uint16{0x00A8, 0x00A9, 0x0001, 0x00AB}, t) |
| 213 | testLD(0x000B, 0x00AE, 0x005A, []uint16{0x00AC, 0x00AD, 0x00AE, 0x00AF}, []uint16{0x00AC, 0x00AD, 0x00AE, 0x005A}, t) |
| 214 | |
| 215 | testLD(0x000C, 0x00B3, 0x0023, []uint16{0x00B0, 0x00B1, 0x00B2, 0x00B3}, []uint16{0x0023, 0x00B1, 0x00B2, 0x00B3}, t) |
| 216 | testLD(0x000D, 0x00B7, 0x00F2, []uint16{0x00B4, 0x00B5, 0x00B6, 0x00B7}, []uint16{0x00B4, 0x00F2, 0x00B6, 0x00B7}, t) |
| 217 | testLD(0x000E, 0x22BB, 0xAB01, []uint16{0x00B8, 0x00B9, 0x00BA, 0x22BB}, []uint16{0x00B8, 0x00B9, 0xAB01, 0x22BB}, t) |
| 218 | testLD(0x000F, 0x00BF, 0x005A, []uint16{0x00BC, 0x00BD, 0x00BE, 0x00BF}, []uint16{0x00BC, 0x00BD, 0x00BE, 0x005A}, t) |
| 219 | } |
| 220 | |
| 221 | func testLD(instruction uint16, memAddress, memValue uint16, inputRegisters, expectedOutputRegisters []uint16, t *testing.T) { |
| 222 | c := SetUpCPU() |