ac6502 1.10.0 → 1.11.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.
Files changed (75) hide show
  1. package/dist/components/CPU.d.ts +4 -0
  2. package/dist/components/CPU.js +87 -30
  3. package/dist/components/CPU.js.map +1 -1
  4. package/dist/components/IO/ACIA.d.ts +13 -21
  5. package/dist/components/IO/ACIA.js +53 -151
  6. package/dist/components/IO/ACIA.js.map +1 -1
  7. package/dist/components/IO/Attachments/KeyboardEncoderAttachment.js +1 -1
  8. package/dist/components/IO/Attachments/KeyboardEncoderAttachment.js.map +1 -1
  9. package/dist/components/IO/Empty.d.ts +1 -3
  10. package/dist/components/IO/Empty.js +1 -5
  11. package/dist/components/IO/Empty.js.map +1 -1
  12. package/dist/components/IO/RAMBank.d.ts +3 -4
  13. package/dist/components/IO/RAMBank.js +4 -13
  14. package/dist/components/IO/RAMBank.js.map +1 -1
  15. package/dist/components/IO/RTC.d.ts +2 -3
  16. package/dist/components/IO/RTC.js +17 -7
  17. package/dist/components/IO/RTC.js.map +1 -1
  18. package/dist/components/IO/Sound.d.ts +1 -3
  19. package/dist/components/IO/Sound.js +13 -23
  20. package/dist/components/IO/Sound.js.map +1 -1
  21. package/dist/components/IO/Storage.d.ts +1 -3
  22. package/dist/components/IO/Storage.js +1 -3
  23. package/dist/components/IO/Storage.js.map +1 -1
  24. package/dist/components/IO/VIA.d.ts +1 -3
  25. package/dist/components/IO/VIA.js +6 -7
  26. package/dist/components/IO/VIA.js.map +1 -1
  27. package/dist/components/IO/Video.d.ts +1 -3
  28. package/dist/components/IO/Video.js +3 -5
  29. package/dist/components/IO/Video.js.map +1 -1
  30. package/dist/components/IO.d.ts +1 -3
  31. package/dist/components/Machine.d.ts +1 -2
  32. package/dist/components/Machine.js +21 -74
  33. package/dist/components/Machine.js.map +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/tests/IO/ACIA.test.js +57 -108
  36. package/dist/tests/IO/ACIA.test.js.map +1 -1
  37. package/dist/tests/IO/Attachments/KeyboardEncoderAttachment.test.js +5 -0
  38. package/dist/tests/IO/Attachments/KeyboardEncoderAttachment.test.js.map +1 -1
  39. package/dist/tests/IO/Empty.test.js +2 -14
  40. package/dist/tests/IO/Empty.test.js.map +1 -1
  41. package/dist/tests/IO/RAMBank.test.js +5 -12
  42. package/dist/tests/IO/RAMBank.test.js.map +1 -1
  43. package/dist/tests/IO/RTC.test.js +7 -16
  44. package/dist/tests/IO/RTC.test.js.map +1 -1
  45. package/dist/tests/IO/Sound.test.js +6 -8
  46. package/dist/tests/IO/Sound.test.js.map +1 -1
  47. package/dist/tests/IO/Storage.test.js +0 -6
  48. package/dist/tests/IO/Storage.test.js.map +1 -1
  49. package/dist/tests/IO/VIA.test.js +6 -10
  50. package/dist/tests/IO/VIA.test.js.map +1 -1
  51. package/dist/tests/IO/Video.test.js +7 -7
  52. package/dist/tests/IO/Video.test.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/components/CPU.ts +94 -31
  55. package/src/components/IO/ACIA.ts +57 -176
  56. package/src/components/IO/Attachments/KeyboardEncoderAttachment.ts +1 -1
  57. package/src/components/IO/Empty.ts +1 -4
  58. package/src/components/IO/RAMBank.ts +4 -15
  59. package/src/components/IO/RTC.ts +18 -7
  60. package/src/components/IO/Sound.ts +14 -27
  61. package/src/components/IO/Storage.ts +2 -5
  62. package/src/components/IO/VIA.ts +6 -8
  63. package/src/components/IO/Video.ts +5 -7
  64. package/src/components/IO.ts +1 -4
  65. package/src/components/Machine.ts +22 -90
  66. package/src/index.ts +1 -1
  67. package/src/tests/IO/ACIA.test.ts +60 -122
  68. package/src/tests/IO/Attachments/KeyboardEncoderAttachment.test.ts +6 -0
  69. package/src/tests/IO/Empty.test.ts +2 -17
  70. package/src/tests/IO/RAMBank.test.ts +5 -14
  71. package/src/tests/IO/RTC.test.ts +7 -20
  72. package/src/tests/IO/Sound.test.ts +6 -8
  73. package/src/tests/IO/Storage.test.ts +0 -7
  74. package/src/tests/IO/VIA.test.ts +6 -12
  75. package/src/tests/IO/Video.test.ts +7 -8
@@ -2,6 +2,9 @@ import { IO } from '../IO';
2
2
  /**
3
3
  * ACIA - Emulates a R6551 ACIA (Asynchronous Communications Interface Adapter)
4
4
  *
5
+ * Simplified to match real R6551 hardware: single-byte TX/RX registers,
6
+ * no buffers, no baud rate timing (USB serial operates at USB speeds).
7
+ *
5
8
  * Register Map:
6
9
  * $00: Data Register (read/write)
7
10
  * $01: Status Register (read) / Programmed Reset (write)
@@ -9,22 +12,19 @@ import { IO } from '../IO';
9
12
  * $03: Control Register (write)
10
13
  */
11
14
  export declare class ACIA implements IO {
12
- raiseIRQ: () => void;
13
- raiseNMI: () => void;
14
15
  transmit?: (data: number) => void;
15
- private dataRegister;
16
- private statusRegister;
16
+ private txRegister;
17
+ private rxRegister;
17
18
  private commandRegister;
18
19
  private controlRegister;
19
- private transmitBuffer;
20
- private receiveBuffer;
20
+ private txRegEmpty;
21
+ private rxRegFull;
22
+ private txPending;
23
+ private overrun;
21
24
  private parityError;
22
25
  private framingError;
23
- private overrun;
24
26
  private irqFlag;
25
27
  private echoMode;
26
- private cycleCounter;
27
- private baudRate;
28
28
  /**
29
29
  * Read from ACIA register
30
30
  */
@@ -34,11 +34,11 @@ export declare class ACIA implements IO {
34
34
  */
35
35
  write(address: number, data: number): void;
36
36
  /**
37
- * Read data from receive buffer
37
+ * Read data from receive register
38
38
  */
39
39
  private readData;
40
40
  /**
41
- * Write data to transmit buffer
41
+ * Write data to transmit register
42
42
  */
43
43
  private writeData;
44
44
  /**
@@ -54,22 +54,14 @@ export declare class ACIA implements IO {
54
54
  * Write to command register
55
55
  */
56
56
  private writeCommand;
57
- /**
58
- * Write to control register
59
- */
60
- private writeControl;
61
- /**
62
- * Get baud rate from control register code
63
- */
64
- private getBaudRate;
65
57
  /**
66
58
  * Programmed reset
67
59
  */
68
60
  private programmedReset;
69
61
  /**
70
- * Tick - emulate ACIA timing
62
+ * Tick - process TX/RX each cycle, return interrupt status
71
63
  */
72
- tick(frequency: number): void;
64
+ tick(frequency: number): number;
73
65
  /**
74
66
  * Reset the ACIA
75
67
  */
@@ -4,6 +4,9 @@ exports.ACIA = void 0;
4
4
  /**
5
5
  * ACIA - Emulates a R6551 ACIA (Asynchronous Communications Interface Adapter)
6
6
  *
7
+ * Simplified to match real R6551 hardware: single-byte TX/RX registers,
8
+ * no buffers, no baud rate timing (USB serial operates at USB speeds).
9
+ *
7
10
  * Register Map:
8
11
  * $00: Data Register (read/write)
9
12
  * $01: Status Register (read) / Programmed Reset (write)
@@ -12,25 +15,20 @@ exports.ACIA = void 0;
12
15
  */
13
16
  class ACIA {
14
17
  constructor() {
15
- this.raiseIRQ = () => { };
16
- this.raiseNMI = () => { };
17
18
  // Registers
18
- this.dataRegister = 0;
19
- this.statusRegister = 0x10; // Transmit Data Register Empty
19
+ this.txRegister = 0;
20
+ this.rxRegister = 0;
20
21
  this.commandRegister = 0;
21
22
  this.controlRegister = 0;
22
- // Buffers
23
- this.transmitBuffer = [];
24
- this.receiveBuffer = [];
25
23
  // Status flags
24
+ this.txRegEmpty = true;
25
+ this.rxRegFull = false;
26
+ this.txPending = false;
27
+ this.overrun = false;
26
28
  this.parityError = false;
27
29
  this.framingError = false;
28
- this.overrun = false;
29
30
  this.irqFlag = false;
30
31
  this.echoMode = false;
31
- // Timing
32
- this.cycleCounter = 0;
33
- this.baudRate = 115200;
34
32
  }
35
33
  /**
36
34
  * Read from ACIA register
@@ -66,44 +64,28 @@ class ACIA {
66
64
  this.writeCommand(data);
67
65
  break;
68
66
  case 0x03: // Control Register
69
- this.writeControl(data);
67
+ this.controlRegister = data & 0xFF;
70
68
  break;
71
69
  }
72
70
  }
73
71
  /**
74
- * Read data from receive buffer
72
+ * Read data from receive register
75
73
  */
76
74
  readData() {
77
- if (this.receiveBuffer.length > 0) {
78
- const data = this.receiveBuffer.shift();
79
- this.dataRegister = data;
80
- // Update status: clear Receive Data Register Full
81
- this.statusRegister &= ~0x08;
82
- // Check for overrun if more data arrives
83
- if (this.receiveBuffer.length === 0) {
84
- this.overrun = false;
85
- this.statusRegister &= ~0x04;
86
- }
87
- // If more bytes remain in the buffer, re-assert IRQ so the BIOS services them
88
- if (this.receiveBuffer.length > 0 && !(this.commandRegister & 0x02)) {
89
- this.irqFlag = true;
90
- this.statusRegister |= 0x80;
91
- }
92
- else {
93
- this.irqFlag = false;
94
- this.statusRegister &= ~0x80;
95
- }
96
- return data;
97
- }
98
- return this.dataRegister;
75
+ // Clear Receive Data Register Full
76
+ this.rxRegFull = false;
77
+ this.overrun = false;
78
+ // Clear IRQ if it was from RX
79
+ this.irqFlag = false;
80
+ return this.rxRegister;
99
81
  }
100
82
  /**
101
- * Write data to transmit buffer
83
+ * Write data to transmit register
102
84
  */
103
85
  writeData(data) {
104
- this.transmitBuffer.push(data & 0xFF);
105
- // Clear Transmit Data Register Empty flag
106
- this.statusRegister &= ~0x10;
86
+ this.txRegister = data & 0xFF;
87
+ this.txRegEmpty = false;
88
+ this.txPending = true;
107
89
  }
108
90
  /**
109
91
  * Read status register
@@ -125,24 +107,23 @@ class ACIA {
125
107
  if (this.overrun)
126
108
  status |= 0x04;
127
109
  // Bit 3: Receive Data Register Full
128
- if (this.receiveBuffer.length > 0)
110
+ if (this.rxRegFull)
129
111
  status |= 0x08;
130
112
  // Bit 4: Transmit Data Register Empty
131
- if (this.transmitBuffer.length === 0)
113
+ if (this.txRegEmpty)
132
114
  status |= 0x10;
133
- // Bit 5: Data Carrier Detect (DCD)
115
+ // Bit 5: Data Carrier Detect (DCD) - always connected
134
116
  status &= ~0x20;
135
- // Bit 6: Data Set Ready (DSR)
117
+ // Bit 6: Data Set Ready (DSR) - always ready
136
118
  status |= 0x40;
137
119
  // Bit 7: Interrupt (IRQ)
138
120
  if (this.irqFlag)
139
121
  status |= 0x80;
140
- // Clear IRQ and error flags after building the status byte (R6551 spec)
122
+ // Clear IRQ and error flags after reading (R6551 spec)
141
123
  this.irqFlag = false;
142
124
  this.parityError = false;
143
125
  this.framingError = false;
144
126
  this.overrun = false;
145
- this.statusRegister = status;
146
127
  return status;
147
128
  }
148
129
  /**
@@ -150,154 +131,75 @@ class ACIA {
150
131
  */
151
132
  writeCommand(data) {
152
133
  this.commandRegister = data & 0xFF;
153
- // Bits 0-1: DTR control
154
- // const dtrControl = data & 0x03
155
- // Bit 1: Receiver Interrupt Request Disable (RIIE) — 0 = IRQ enabled, 1 = disabled (active low)
156
- const receiveIRQEnabled = (data & 0x02) === 0;
157
- // Bits 3-2: Transmitter Interrupt Control (TIC)
158
- // const transmitControl = (data >> 2) & 0x03
159
134
  // Bit 4: Echo Mode Enable (EME)
160
135
  this.echoMode = (data & 0x10) !== 0;
161
- // Bits 6-7: Parity control
162
- // const parityControl = (data >> 6) & 0x03
163
- // Handle receive IRQ
164
- if (receiveIRQEnabled && this.receiveBuffer.length > 0) {
165
- this.irqFlag = true;
166
- this.statusRegister |= 0x80;
167
- this.raiseIRQ();
168
- }
169
- else if (!receiveIRQEnabled) {
170
- this.irqFlag = false;
171
- this.statusRegister &= ~0x80;
172
- }
173
- }
174
- /**
175
- * Write to control register
176
- */
177
- writeControl(data) {
178
- this.controlRegister = data & 0xFF;
179
- // Bits 0-3: Baud rate
180
- const baudRateCode = data & 0x0F;
181
- this.baudRate = this.getBaudRate(baudRateCode);
182
- // Bit 4: Receiver clock source (internal/external)
183
- const receiverClockSource = (data & 0x10) !== 0;
184
- // Bits 5-6: Word length (5, 6, 7, or 8 bits)
185
- const wordLength = ((data >> 5) & 0x03) + 5;
186
- // Bit 7: Stop bits (1 or 2)
187
- const stopBits = (data & 0x80) ? 2 : 1;
188
- }
189
- /**
190
- * Get baud rate from control register code
191
- */
192
- getBaudRate(code) {
193
- const baudRates = [
194
- 115200, // 0000 (actually 16x external clock, using 115200 as default)
195
- 50, // 0001
196
- 75, // 0010
197
- 110, // 0011
198
- 135, // 0100
199
- 150, // 0101
200
- 300, // 0110
201
- 600, // 0111
202
- 1200, // 1000
203
- 1800, // 1001
204
- 2400, // 1010
205
- 3600, // 1011
206
- 4800, // 1100
207
- 7200, // 1101
208
- 9600, // 1110
209
- 19200 // 1111
210
- ];
211
- return baudRates[code] || 115200;
212
136
  }
213
137
  /**
214
138
  * Programmed reset
215
139
  */
216
140
  programmedReset() {
217
- this.statusRegister = 0x10; // Transmit Data Register Empty
141
+ this.txRegEmpty = true;
142
+ this.txPending = false;
218
143
  this.parityError = false;
219
144
  this.framingError = false;
220
145
  this.overrun = false;
221
146
  this.irqFlag = false;
222
147
  }
223
148
  /**
224
- * Tick - emulate ACIA timing
149
+ * Tick - process TX/RX each cycle, return interrupt status
225
150
  */
226
151
  tick(frequency) {
227
- // Re-evaluate receive interrupt condition.
228
- // After readStatus() clears irqFlag, the IRQ must be re-asserted if
229
- // the underlying condition (RDRF + receive IRQ enabled) is still active.
230
- if (!(this.commandRegister & 0x02) && this.receiveBuffer.length > 0) {
231
- this.irqFlag = true;
232
- }
233
- if (this.irqFlag) {
234
- this.raiseIRQ();
235
- }
236
- this.cycleCounter++;
237
- // Calculate cycles per byte: (CPU_CLOCK / baud_rate) * bits_per_frame
238
- // Assuming 10 bits per frame (1 start + 8 data + 1 stop)
239
- const cyclesPerByte = Math.floor((frequency / this.baudRate) * 10);
240
- // Simulate transmission based on actual baud rate
241
- if (this.cycleCounter >= cyclesPerByte && this.transmitBuffer.length > 0) {
242
- this.cycleCounter = 0;
243
- // Transmit one byte
244
- const byte = this.transmitBuffer.shift();
245
- if (byte !== undefined && this.transmit) {
246
- this.transmit(byte);
152
+ // Handle pending transmit - send immediately (no baud timing)
153
+ if (this.txPending) {
154
+ this.txPending = false;
155
+ if (this.transmit) {
156
+ this.transmit(this.txRegister);
247
157
  }
248
- // Set Transmit Data Register Empty if buffer is empty
249
- if (this.transmitBuffer.length === 0) {
250
- this.statusRegister |= 0x10;
251
- // Trigger transmit complete IRQ if enabled (bits 3-2 = 01 means TxIRQ on TDRE)
252
- if ((this.commandRegister & 0x0C) === 0x04) {
253
- this.irqFlag = true;
254
- this.statusRegister |= 0x80;
255
- this.raiseIRQ();
256
- }
158
+ this.txRegEmpty = true;
159
+ // Trigger transmit complete IRQ if enabled (TIC bits 3-2 = 01)
160
+ if ((this.commandRegister & 0x0C) === 0x04) {
161
+ this.irqFlag = true;
257
162
  }
163
+ // Echo mode: received data echoed back
164
+ // (echo of transmitted data is handled in onData)
258
165
  }
166
+ // Return IRQ status
167
+ return this.irqFlag ? 0x80 : 0;
259
168
  }
260
169
  /**
261
170
  * Reset the ACIA
262
171
  */
263
172
  reset(coldStart) {
264
- this.dataRegister = 0;
265
- this.statusRegister = 0x10; // Transmit Data Register Empty
173
+ this.txRegister = 0;
174
+ this.rxRegister = 0;
266
175
  this.commandRegister = 0;
267
176
  this.controlRegister = 0;
268
- this.transmitBuffer = [];
269
- this.receiveBuffer = [];
177
+ this.txRegEmpty = true;
178
+ this.rxRegFull = false;
179
+ this.txPending = false;
180
+ this.overrun = false;
270
181
  this.parityError = false;
271
182
  this.framingError = false;
272
- this.overrun = false;
273
183
  this.irqFlag = false;
274
184
  this.echoMode = false;
275
- this.cycleCounter = 0;
276
- this.baudRate = 115200;
277
185
  }
278
186
  /**
279
187
  * Receive data from external source
280
188
  */
281
189
  onData(data) {
282
- if (this.receiveBuffer.length > 0) {
190
+ if (this.rxRegFull) {
283
191
  // Overrun: new data arrived before the previous byte was read
284
192
  this.overrun = true;
285
- this.statusRegister |= 0x04;
286
193
  }
287
- this.receiveBuffer.push(data & 0xFF);
288
- // Set Receive Data Register Full flag
289
- this.statusRegister |= 0x08;
194
+ this.rxRegister = data & 0xFF;
195
+ this.rxRegFull = true;
290
196
  // Trigger receive IRQ if enabled (bit 1 = 0 means enabled, active low)
291
197
  if (!(this.commandRegister & 0x02)) {
292
198
  this.irqFlag = true;
293
- this.statusRegister |= 0x80;
294
- this.raiseIRQ();
295
199
  }
296
200
  // Echo mode: automatically transmit received data
297
- if (this.echoMode) {
298
- this.transmitBuffer.push(data & 0xFF);
299
- // Clear Transmit Data Register Empty flag
300
- this.statusRegister &= ~0x10;
201
+ if (this.echoMode && this.transmit) {
202
+ this.transmit(data & 0xFF);
301
203
  }
302
204
  }
303
205
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ACIA.js","sourceRoot":"","sources":["../../../src/components/IO/ACIA.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ACIA.js","sourceRoot":"","sources":["../../../src/components/IO/ACIA.ts"],"names":[],"mappings":"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"}
@@ -90,7 +90,7 @@ class KeyboardEncoderAttachment extends Attachment_1.AttachmentBase {
90
90
  // 'A' = PS/2 encoder on Port A (CA1 IRQ only)
91
91
  // 'B' = Matrix encoder on Port B (CB1 IRQ only)
92
92
  // 'both' = both ports active (default)
93
- this.activePort = 'both';
93
+ this.activePort = 'B';
94
94
  // Port A state
95
95
  this.asciiDataA = 0x00;
96
96
  this.dataReadyA = false;
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardEncoderAttachment.js","sourceRoot":"","sources":["../../../../src/components/IO/Attachments/KeyboardEncoderAttachment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyboardEncoderAttachment.js","sourceRoot":"","sources":["../../../../src/components/IO/Attachments/KeyboardEncoderAttachment.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import { IO } from '../IO';
2
2
  export declare class Empty implements IO {
3
- raiseIRQ: () => void;
4
- raiseNMI: () => void;
5
3
  read(address: number): number;
6
4
  write(address: number, data: number): void;
7
- tick(frequency: number): void;
5
+ tick(frequency: number): number;
8
6
  reset(coldStart: boolean): void;
9
7
  }
@@ -2,15 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Empty = void 0;
4
4
  class Empty {
5
- constructor() {
6
- this.raiseIRQ = () => { };
7
- this.raiseNMI = () => { };
8
- }
9
5
  read(address) {
10
6
  return 0;
11
7
  }
12
8
  write(address, data) { }
13
- tick(frequency) { }
9
+ tick(frequency) { return 0; }
14
10
  reset(coldStart) { }
15
11
  }
16
12
  exports.Empty = Empty;
@@ -1 +1 @@
1
- {"version":3,"file":"Empty.js","sourceRoot":"","sources":["../../../src/components/IO/Empty.ts"],"names":[],"mappings":";;;AAEA,MAAa,KAAK;IAAlB;QAEE,aAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;QACnB,aAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;IAUrB,CAAC;IARC,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAY,IAAS,CAAC;IAC7C,IAAI,CAAC,SAAiB,IAAS,CAAC;IAChC,KAAK,CAAC,SAAkB,IAAS,CAAC;CAEnC;AAbD,sBAaC"}
1
+ {"version":3,"file":"Empty.js","sourceRoot":"","sources":["../../../src/components/IO/Empty.ts"],"names":[],"mappings":";;;AAEA,MAAa,KAAK;IAEhB,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAY,IAAS,CAAC;IAC7C,IAAI,CAAC,SAAiB,IAAY,OAAO,CAAC,CAAA,CAAC,CAAC;IAC5C,KAAK,CAAC,SAAkB,IAAS,CAAC;CAEnC;AAVD,sBAUC"}
@@ -16,20 +16,19 @@ export declare class RAMBank implements IO {
16
16
  static BANK_CONTROL_REGISTER: number;
17
17
  data: number[];
18
18
  currentBank: number;
19
- raiseIRQ: () => void;
20
- raiseNMI: () => void;
21
19
  /**
22
- * Read from RAM or bank control register
20
+ * Read from RAM - all addresses read from the data array
23
21
  */
24
22
  read(address: number): number;
25
23
  /**
26
24
  * Write to RAM or bank control register
25
+ * Writing to $3FF sets the bank AND writes through to the new bank's data
27
26
  */
28
27
  write(address: number, data: number): void;
29
28
  /**
30
29
  * Tick - no timing behavior for RAM
31
30
  */
32
- tick(frequency: number): void;
31
+ tick(frequency: number): number;
33
32
  /**
34
33
  * Reset the RAM card
35
34
  */
@@ -15,36 +15,27 @@ class RAMBank {
15
15
  constructor() {
16
16
  this.data = [...Array(RAMBank.TOTAL_SIZE)].fill(0x00);
17
17
  this.currentBank = 0;
18
- this.raiseIRQ = () => { };
19
- this.raiseNMI = () => { };
20
18
  }
21
19
  /**
22
- * Read from RAM or bank control register
20
+ * Read from RAM - all addresses read from the data array
23
21
  */
24
22
  read(address) {
25
- // Reading from bank control register returns current bank number
26
- if (address === RAMBank.BANK_CONTROL_REGISTER) {
27
- return this.currentBank;
28
- }
29
- // Calculate actual address in RAM: bank * bank_size + offset and return data
30
23
  return this.data[this.currentBank * RAMBank.BANK_SIZE + address];
31
24
  }
32
25
  /**
33
26
  * Write to RAM or bank control register
27
+ * Writing to $3FF sets the bank AND writes through to the new bank's data
34
28
  */
35
29
  write(address, data) {
36
- // Writing to bank control register switches banks
37
30
  if (address === RAMBank.BANK_CONTROL_REGISTER) {
38
- this.currentBank = data & 0xFF; // Ensure 0-255 range
39
- return;
31
+ this.currentBank = data & 0xFF;
40
32
  }
41
- // Calculate actual address in RAM: bank * bank_size + offset and store data
42
33
  this.data[this.currentBank * RAMBank.BANK_SIZE + address] = data & 0xFF;
43
34
  }
44
35
  /**
45
36
  * Tick - no timing behavior for RAM
46
37
  */
47
- tick(frequency) { }
38
+ tick(frequency) { return 0; }
48
39
  /**
49
40
  * Reset the RAM card
50
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RAMBank.js","sourceRoot":"","sources":["../../../src/components/IO/RAMBank.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;GASG;AACH,MAAa,OAAO;IAApB;QAOE,SAAI,GAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1D,gBAAW,GAAW,CAAC,CAAA;QAEvB,aAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;QACnB,aAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;IA4CrB,CAAC;IA1CC;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,iEAAiE;QACjE,IAAI,OAAO,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,WAAW,CAAA;QACzB,CAAC;QAED,6EAA6E;QAC7E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,CAAA;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe,EAAE,IAAY;QACjC,kDAAkD;QAClD,IAAI,OAAO,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,IAAI,CAAA,CAAC,qBAAqB;YACpD,OAAM;QACR,CAAC;QAED,4EAA4E;QAC5E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;IACzE,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,SAAiB,IAAS,CAAC;IAEhC;;OAEG;IACH,KAAK,CAAC,SAAkB;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;;AArDH,0BAuDC;AArDQ,kBAAU,GAAW,GAAG,GAAG,IAAI,AAArB,CAAqB,CAAC,aAAa;AAC7C,iBAAS,GAAW,IAAI,AAAf,CAAe,CAAC,cAAc;AACvC,iBAAS,GAAW,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,AAAjD,CAAiD,CAAC,YAAY;AACvE,6BAAqB,GAAW,KAAK,AAAhB,CAAgB,CAAC,yBAAyB"}
1
+ {"version":3,"file":"RAMBank.js","sourceRoot":"","sources":["../../../src/components/IO/RAMBank.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;GASG;AACH,MAAa,OAAO;IAApB;QAOE,SAAI,GAAa,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1D,gBAAW,GAAW,CAAC,CAAA;IAoCzB,CAAC;IAlCC;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,CAAA;IAClE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAe,EAAE,IAAY;QACjC,IAAI,OAAO,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,IAAI,CAAA;QAChC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;IACzE,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,SAAiB,IAAY,OAAO,CAAC,CAAA,CAAC,CAAC;IAE5C;;OAEG;IACH,KAAK,CAAC,SAAkB;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,WAAW,GAAG,CAAC,CAAA;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;;AA1CH,0BA4CC;AA1CQ,kBAAU,GAAW,GAAG,GAAG,IAAI,AAArB,CAAqB,CAAC,aAAa;AAC7C,iBAAS,GAAW,IAAI,AAAf,CAAe,CAAC,cAAc;AACvC,iBAAS,GAAW,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,AAAjD,CAAiD,CAAC,YAAY;AACvE,6BAAqB,GAAW,KAAK,AAAhB,CAAgB,CAAC,yBAAyB"}
@@ -25,8 +25,6 @@ import { IO } from '../IO';
25
25
  * 0x13: RAM Data (Extended RAM Data at address pointed to by 0x10)
26
26
  */
27
27
  export declare class RTC implements IO {
28
- raiseIRQ: () => void;
29
- raiseNMI: () => void;
30
28
  private userSeconds;
31
29
  private userMinutes;
32
30
  private userHours;
@@ -52,6 +50,7 @@ export declare class RTC implements IO {
52
50
  private watchdog2;
53
51
  private watchdogCounterCentis;
54
52
  private watchdogCycleCounter;
53
+ private nmiPending;
55
54
  private controlA;
56
55
  private controlB;
57
56
  private ramAddress;
@@ -100,6 +99,6 @@ export declare class RTC implements IO {
100
99
  private stepWatchdog;
101
100
  read(address: number): number;
102
101
  write(address: number, data: number): void;
103
- tick(frequency: number, cycles?: number): void;
102
+ tick(frequency: number): number;
104
103
  reset(coldStart: boolean): void;
105
104
  }