ac6502 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +261 -0
- package/dist/components/CPU.js +1170 -0
- package/dist/components/CPU.js.map +1 -0
- package/dist/components/Cart.js +23 -0
- package/dist/components/Cart.js.map +1 -0
- package/dist/components/IO/Empty.js +19 -0
- package/dist/components/IO/Empty.js.map +1 -0
- package/dist/components/IO/GPIOAttachments/GPIOAttachment.js +71 -0
- package/dist/components/IO/GPIOAttachments/GPIOAttachment.js.map +1 -0
- package/dist/components/IO/GPIOAttachments/GPIOJoystickAttachment.js +90 -0
- package/dist/components/IO/GPIOAttachments/GPIOJoystickAttachment.js.map +1 -0
- package/dist/components/IO/GPIOAttachments/GPIOKeyboardEncoderAttachment.js +489 -0
- package/dist/components/IO/GPIOAttachments/GPIOKeyboardEncoderAttachment.js.map +1 -0
- package/dist/components/IO/GPIOAttachments/GPIOKeyboardMatrixAttachment.js +274 -0
- package/dist/components/IO/GPIOAttachments/GPIOKeyboardMatrixAttachment.js.map +1 -0
- package/dist/components/IO/GPIOCard.js +597 -0
- package/dist/components/IO/GPIOCard.js.map +1 -0
- package/dist/components/IO/InputBoard.js +19 -0
- package/dist/components/IO/InputBoard.js.map +1 -0
- package/dist/components/IO/LCDCard.js +19 -0
- package/dist/components/IO/LCDCard.js.map +1 -0
- package/dist/components/IO/RAMCard.js +63 -0
- package/dist/components/IO/RAMCard.js.map +1 -0
- package/dist/components/IO/RTCCard.js +483 -0
- package/dist/components/IO/RTCCard.js.map +1 -0
- package/dist/components/IO/SerialCard.js +282 -0
- package/dist/components/IO/SerialCard.js.map +1 -0
- package/dist/components/IO/SoundCard.js +620 -0
- package/dist/components/IO/SoundCard.js.map +1 -0
- package/dist/components/IO/StorageCard.js +428 -0
- package/dist/components/IO/StorageCard.js.map +1 -0
- package/dist/components/IO/VGACard.js +9 -0
- package/dist/components/IO/VGACard.js.map +1 -0
- package/dist/components/IO/VideoCard.js +623 -0
- package/dist/components/IO/VideoCard.js.map +1 -0
- package/dist/components/IO.js +3 -0
- package/dist/components/IO.js.map +1 -0
- package/dist/components/Machine.js +310 -0
- package/dist/components/Machine.js.map +1 -0
- package/dist/components/RAM.js +24 -0
- package/dist/components/RAM.js.map +1 -0
- package/dist/components/ROM.js +23 -0
- package/dist/components/ROM.js.map +1 -0
- package/dist/index.js +441 -0
- package/dist/index.js.map +1 -0
- package/dist/tests/CPU.test.js +1626 -0
- package/dist/tests/CPU.test.js.map +1 -0
- package/dist/tests/Cart.test.js +119 -0
- package/dist/tests/Cart.test.js.map +1 -0
- package/dist/tests/IO/GPIOAttachments/GPIOAttachment.test.js +339 -0
- package/dist/tests/IO/GPIOAttachments/GPIOAttachment.test.js.map +1 -0
- package/dist/tests/IO/GPIOAttachments/GPIOJoystickAttachment.test.js +126 -0
- package/dist/tests/IO/GPIOAttachments/GPIOJoystickAttachment.test.js.map +1 -0
- package/dist/tests/IO/GPIOAttachments/GPIOKeyboardEncoderAttachment.test.js +779 -0
- package/dist/tests/IO/GPIOAttachments/GPIOKeyboardEncoderAttachment.test.js.map +1 -0
- package/dist/tests/IO/GPIOAttachments/GPIOKeyboardMatrixAttachment.test.js +355 -0
- package/dist/tests/IO/GPIOAttachments/GPIOKeyboardMatrixAttachment.test.js.map +1 -0
- package/dist/tests/IO/GPIOCard.test.js +503 -0
- package/dist/tests/IO/GPIOCard.test.js.map +1 -0
- package/dist/tests/IO/RAMCard.test.js +229 -0
- package/dist/tests/IO/RAMCard.test.js.map +1 -0
- package/dist/tests/IO/RTCCard.test.js +177 -0
- package/dist/tests/IO/RTCCard.test.js.map +1 -0
- package/dist/tests/IO/SerialCard.test.js +423 -0
- package/dist/tests/IO/SerialCard.test.js.map +1 -0
- package/dist/tests/IO/SoundCard.test.js +528 -0
- package/dist/tests/IO/SoundCard.test.js.map +1 -0
- package/dist/tests/IO/StorageCard.test.js +647 -0
- package/dist/tests/IO/StorageCard.test.js.map +1 -0
- package/dist/tests/IO/VideoCard.test.js +549 -0
- package/dist/tests/IO/VideoCard.test.js.map +1 -0
- package/dist/tests/Machine.test.js +383 -0
- package/dist/tests/Machine.test.js.map +1 -0
- package/dist/tests/RAM.test.js +160 -0
- package/dist/tests/RAM.test.js.map +1 -0
- package/dist/tests/ROM.test.js +123 -0
- package/dist/tests/ROM.test.js.map +1 -0
- package/jest.config.cjs +9 -0
- package/package.json +43 -0
- package/src/components/CPU.ts +1371 -0
- package/src/components/Cart.ts +20 -0
- package/src/components/IO/GPIOAttachments/GPIOAttachment.ts +189 -0
- package/src/components/IO/GPIOAttachments/GPIOJoystickAttachment.ts +99 -0
- package/src/components/IO/GPIOAttachments/GPIOKeyboardEncoderAttachment.ts +465 -0
- package/src/components/IO/GPIOAttachments/GPIOKeyboardMatrixAttachment.ts +287 -0
- package/src/components/IO/GPIOCard.ts +677 -0
- package/src/components/IO/RAMCard.ts +68 -0
- package/src/components/IO/RTCCard.ts +518 -0
- package/src/components/IO/SerialCard.ts +335 -0
- package/src/components/IO/SoundCard.ts +711 -0
- package/src/components/IO/StorageCard.ts +473 -0
- package/src/components/IO/VideoCard.ts +730 -0
- package/src/components/IO.ts +11 -0
- package/src/components/Machine.ts +364 -0
- package/src/components/RAM.ts +23 -0
- package/src/components/ROM.ts +19 -0
- package/src/index.ts +474 -0
- package/src/tests/CPU.test.ts +2045 -0
- package/src/tests/Cart.test.ts +149 -0
- package/src/tests/IO/GPIOAttachments/GPIOAttachment.test.ts +413 -0
- package/src/tests/IO/GPIOAttachments/GPIOJoystickAttachment.test.ts +147 -0
- package/src/tests/IO/GPIOAttachments/GPIOKeyboardEncoderAttachment.test.ts +961 -0
- package/src/tests/IO/GPIOAttachments/GPIOKeyboardMatrixAttachment.test.ts +449 -0
- package/src/tests/IO/GPIOCard.test.ts +644 -0
- package/src/tests/IO/RAMCard.test.ts +284 -0
- package/src/tests/IO/RTCCard.test.ts +222 -0
- package/src/tests/IO/SerialCard.test.ts +530 -0
- package/src/tests/IO/SoundCard.test.ts +659 -0
- package/src/tests/IO/StorageCard.test.ts +787 -0
- package/src/tests/IO/VideoCard.test.ts +668 -0
- package/src/tests/Machine.test.ts +437 -0
- package/src/tests/RAM.test.ts +196 -0
- package/src/tests/ROM.test.ts +154 -0
- package/tsconfig.json +12 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const ROM_1 = require("../components/ROM");
|
|
4
|
+
describe('ROM', () => {
|
|
5
|
+
let rom;
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
rom = new ROM_1.ROM();
|
|
8
|
+
});
|
|
9
|
+
describe('Initialization', () => {
|
|
10
|
+
test('can initialize', () => {
|
|
11
|
+
expect(rom).not.toBeNull();
|
|
12
|
+
expect(rom).toBeInstanceOf(ROM_1.ROM);
|
|
13
|
+
});
|
|
14
|
+
test('initializes with correct size', () => {
|
|
15
|
+
expect(rom.data.length).toBe(ROM_1.ROM.SIZE);
|
|
16
|
+
expect(rom.data.length).toBe(0x8000); // 32KB
|
|
17
|
+
});
|
|
18
|
+
test('initializes all memory to zero', () => {
|
|
19
|
+
for (let i = 0; i < ROM_1.ROM.SIZE; i++) {
|
|
20
|
+
expect(rom.data[i]).toBe(0x00);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe('Static Properties', () => {
|
|
25
|
+
test('START is 0x8000', () => {
|
|
26
|
+
expect(ROM_1.ROM.START).toBe(0x8000);
|
|
27
|
+
});
|
|
28
|
+
test('END is 0xFFFF', () => {
|
|
29
|
+
expect(ROM_1.ROM.END).toBe(0xFFFF);
|
|
30
|
+
});
|
|
31
|
+
test('CODE is 0xA000', () => {
|
|
32
|
+
expect(ROM_1.ROM.CODE).toBe(0xA000);
|
|
33
|
+
});
|
|
34
|
+
test('SIZE is calculated correctly', () => {
|
|
35
|
+
expect(ROM_1.ROM.SIZE).toBe(0x8000);
|
|
36
|
+
expect(ROM_1.ROM.SIZE).toBe(ROM_1.ROM.END - ROM_1.ROM.START + 1);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe('read()', () => {
|
|
40
|
+
test('reads zero from uninitialized address', () => {
|
|
41
|
+
expect(rom.read(0x0000)).toBe(0x00);
|
|
42
|
+
expect(rom.read(0x4000)).toBe(0x00);
|
|
43
|
+
expect(rom.read(0x7FFF)).toBe(0x00);
|
|
44
|
+
});
|
|
45
|
+
test('reads data from address', () => {
|
|
46
|
+
rom.data[0x1234] = 0x42;
|
|
47
|
+
expect(rom.read(0x1234)).toBe(0x42);
|
|
48
|
+
});
|
|
49
|
+
test('reads from start address', () => {
|
|
50
|
+
rom.data[0x0000] = 0xFF;
|
|
51
|
+
expect(rom.read(0x0000)).toBe(0xFF);
|
|
52
|
+
});
|
|
53
|
+
test('reads from end address', () => {
|
|
54
|
+
rom.data[0x7FFF] = 0xAB;
|
|
55
|
+
expect(rom.read(0x7FFF)).toBe(0xAB);
|
|
56
|
+
});
|
|
57
|
+
test('reads different values from different addresses', () => {
|
|
58
|
+
rom.data[0x0100] = 0x11;
|
|
59
|
+
rom.data[0x0200] = 0x22;
|
|
60
|
+
rom.data[0x0300] = 0x33;
|
|
61
|
+
expect(rom.read(0x0100)).toBe(0x11);
|
|
62
|
+
expect(rom.read(0x0200)).toBe(0x22);
|
|
63
|
+
expect(rom.read(0x0300)).toBe(0x33);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('load()', () => {
|
|
67
|
+
test('loads data of correct size', () => {
|
|
68
|
+
const testData = new Array(ROM_1.ROM.SIZE).fill(0x00);
|
|
69
|
+
testData[0x0000] = 0xAA;
|
|
70
|
+
testData[0x1234] = 0xBB;
|
|
71
|
+
testData[0x7FFF] = 0xCC;
|
|
72
|
+
rom.load(testData);
|
|
73
|
+
expect(rom.data[0x0000]).toBe(0xAA);
|
|
74
|
+
expect(rom.data[0x1234]).toBe(0xBB);
|
|
75
|
+
expect(rom.data[0x7FFF]).toBe(0xCC);
|
|
76
|
+
});
|
|
77
|
+
test('does not load data of incorrect size (too small)', () => {
|
|
78
|
+
const originalData = [...rom.data];
|
|
79
|
+
const testData = new Array(ROM_1.ROM.SIZE - 1).fill(0xFF);
|
|
80
|
+
rom.load(testData);
|
|
81
|
+
expect(rom.data).toEqual(originalData);
|
|
82
|
+
});
|
|
83
|
+
test('does not load data of incorrect size (too large)', () => {
|
|
84
|
+
const originalData = [...rom.data];
|
|
85
|
+
const testData = new Array(ROM_1.ROM.SIZE + 1).fill(0xFF);
|
|
86
|
+
rom.load(testData);
|
|
87
|
+
expect(rom.data).toEqual(originalData);
|
|
88
|
+
});
|
|
89
|
+
test('loaded data can be read back', () => {
|
|
90
|
+
const testData = new Array(ROM_1.ROM.SIZE).fill(0x00);
|
|
91
|
+
testData[0x1000] = 0x42;
|
|
92
|
+
testData[0x2000] = 0x84;
|
|
93
|
+
testData[0x3000] = 0xC6;
|
|
94
|
+
rom.load(testData);
|
|
95
|
+
expect(rom.read(0x1000)).toBe(0x42);
|
|
96
|
+
expect(rom.read(0x2000)).toBe(0x84);
|
|
97
|
+
expect(rom.read(0x3000)).toBe(0xC6);
|
|
98
|
+
});
|
|
99
|
+
test('load replaces existing data', () => {
|
|
100
|
+
// Set some initial data
|
|
101
|
+
rom.data[0x0100] = 0xAA;
|
|
102
|
+
rom.data[0x0200] = 0xBB;
|
|
103
|
+
// Load new data
|
|
104
|
+
const testData = new Array(ROM_1.ROM.SIZE).fill(0x00);
|
|
105
|
+
testData[0x0100] = 0x11;
|
|
106
|
+
testData[0x0300] = 0x22;
|
|
107
|
+
rom.load(testData);
|
|
108
|
+
expect(rom.read(0x0100)).toBe(0x11);
|
|
109
|
+
expect(rom.read(0x0200)).toBe(0x00); // Old data replaced
|
|
110
|
+
expect(rom.read(0x0300)).toBe(0x22);
|
|
111
|
+
});
|
|
112
|
+
test('load with all different values', () => {
|
|
113
|
+
const testData = new Array(ROM_1.ROM.SIZE).fill(0).map((_, i) => i % 256);
|
|
114
|
+
rom.load(testData);
|
|
115
|
+
expect(rom.read(0x0000)).toBe(0);
|
|
116
|
+
expect(rom.read(0x0001)).toBe(1);
|
|
117
|
+
expect(rom.read(0x00FF)).toBe(255);
|
|
118
|
+
expect(rom.read(0x0100)).toBe(0);
|
|
119
|
+
expect(rom.read(0x0101)).toBe(1);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
//# sourceMappingURL=ROM.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ROM.test.js","sourceRoot":"","sources":["../../src/tests/ROM.test.ts"],"names":[],"mappings":"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"}
|
package/jest.config.cjs
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ac6502",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Emulator for the A.C. Wright 6502 project",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"ac6502": "dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "npx tsc",
|
|
11
|
+
"start": "node ./dist/index.js",
|
|
12
|
+
"test": "NODE_OPTIONS='--no-experimental-webstorage' jest",
|
|
13
|
+
"test:watch": "NODE_OPTIONS='--no-experimental-webstorage' jest --watch",
|
|
14
|
+
"test:coverage": "NODE_OPTIONS='--no-experimental-webstorage' jest --coverage --coverageReporters=text-summary --coverageReporters=lcov"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"6502",
|
|
18
|
+
"emulator",
|
|
19
|
+
"8-bit",
|
|
20
|
+
"sdl",
|
|
21
|
+
"binary",
|
|
22
|
+
"assembly",
|
|
23
|
+
"typescript"
|
|
24
|
+
],
|
|
25
|
+
"author": "A.C. Wright",
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"repository": "https://github.com/acwright/6502-Emulator",
|
|
28
|
+
"homepage": "https://github.com/acwright/6502-Emulator/README.md",
|
|
29
|
+
"type": "commonjs",
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@kmamal/sdl": "^0.11.13",
|
|
32
|
+
"commander": "^14.0.3",
|
|
33
|
+
"figlet": "^1.10.0",
|
|
34
|
+
"serialport": "^13.0.0"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/jest": "^30.0.0",
|
|
38
|
+
"@types/node": "^25.3.3",
|
|
39
|
+
"jest": "^30.2.0",
|
|
40
|
+
"ts-jest": "^29.4.6",
|
|
41
|
+
"typescript": "^5.9.3"
|
|
42
|
+
}
|
|
43
|
+
}
|