ac6502 1.7.0 → 1.9.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/README.md +9 -9
- package/dist/components/IO/ACIA.d.ts +1 -1
- package/dist/components/IO/ACIA.js +1 -1
- package/dist/components/IO/Attachments/LCDAttachment.d.ts +1 -1
- package/dist/components/IO/Attachments/LCDAttachment.js +1 -1
- package/dist/components/IO/RTC.d.ts +3 -5
- package/dist/components/IO/RTC.js +35 -49
- package/dist/components/IO/RTC.js.map +1 -1
- package/dist/components/IO/Storage.js +5 -1
- package/dist/components/IO/Storage.js.map +1 -1
- package/dist/components/IO/VIA.d.ts +2 -2
- package/dist/components/IO/VIA.js +2 -2
- package/dist/components/IO/Video.js +3 -2
- package/dist/components/IO/Video.js.map +1 -1
- package/dist/components/IO.d.ts +1 -1
- package/dist/components/Machine.js +30 -20
- package/dist/components/Machine.js.map +1 -1
- package/dist/index.js +9 -34
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +0 -1
- package/dist/lib.js +1 -3
- package/dist/lib.js.map +1 -1
- package/dist/tests/IO/ACIA.test.js +1 -1
- package/dist/tests/IO/ACIA.test.js.map +1 -1
- package/dist/tests/IO/RTC.test.js +5 -8
- package/dist/tests/IO/RTC.test.js.map +1 -1
- package/dist/tests/IO/VIA.test.js +1 -1
- package/dist/tests/IO/VIA.test.js.map +1 -1
- package/dist/tests/IO/Video.test.js +1 -1
- package/dist/tests/Machine.test.js +1 -1
- package/package.json +1 -1
- package/src/components/IO/ACIA.ts +1 -1
- package/src/components/IO/Attachments/LCDAttachment.ts +1 -1
- package/src/components/IO/RTC.ts +38 -51
- package/src/components/IO/Storage.ts +4 -1
- package/src/components/IO/VIA.ts +2 -2
- package/src/components/IO/Video.ts +3 -2
- package/src/components/IO.ts +1 -1
- package/src/components/Machine.ts +32 -20
- package/src/index.ts +10 -36
- package/src/lib.ts +0 -1
- package/src/tests/IO/ACIA.test.ts +1 -1
- package/src/tests/IO/RTC.test.ts +5 -9
- package/src/tests/IO/VIA.test.ts +1 -1
- package/src/tests/IO/Video.test.ts +1 -1
- package/src/tests/Machine.test.ts +1 -1
- package/src/components/IO/Terminal.ts +0 -34
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VIA.test.js","sourceRoot":"","sources":["../../../src/tests/IO/VIA.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VIA.test.js","sourceRoot":"","sources":["../../../src/tests/IO/VIA.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,7 +72,7 @@ const setupTextMode = (vdp) => {
|
|
|
72
72
|
* Must not overshoot into the next frame (scanline 0 of the next
|
|
73
73
|
* frame clears the status register during sprite processing).
|
|
74
74
|
*/
|
|
75
|
-
const renderOneFrame = (vdp, frequency =
|
|
75
|
+
const renderOneFrame = (vdp, frequency = 1000000) => {
|
|
76
76
|
// At 2MHz: cyclesPerFrame ≈ 33333, each tick = 128 cycles → ~261 ticks/frame
|
|
77
77
|
const ticksPerFrame = Math.ceil((frequency / 60) / 128);
|
|
78
78
|
for (let i = 0; i < ticksPerFrame; i++) {
|
|
@@ -19,7 +19,7 @@ describe('Machine', () => {
|
|
|
19
19
|
});
|
|
20
20
|
test('Machine initializes with correct default properties', () => {
|
|
21
21
|
expect(machine.isRunning).toBe(false);
|
|
22
|
-
expect(machine.frequency).toBe(
|
|
22
|
+
expect(machine.frequency).toBe(1000000);
|
|
23
23
|
expect(machine.scale).toBe(2);
|
|
24
24
|
expect(machine.frames).toBe(0);
|
|
25
25
|
});
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@ import { AttachmentBase } from './Attachment'
|
|
|
4
4
|
* HD44780 LCD Controller Emulation — GPIO Attachment
|
|
5
5
|
*
|
|
6
6
|
* Emulates a 16×2 (or configurable) character LCD with HD44780 controller
|
|
7
|
-
* connected via 8-bit parallel interface on a
|
|
7
|
+
* connected via 8-bit parallel interface on a 6522 VIA.
|
|
8
8
|
*
|
|
9
9
|
* Pin mapping (accent on VIA ports):
|
|
10
10
|
* Port B (D0–D7): 8-bit data bus
|
package/src/components/IO/RTC.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IO } from '../IO'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* DS1511Y Real-Time Clock IC Emulation
|
|
4
|
+
* DS1511Y+ Real-Time Clock IC Emulation
|
|
5
5
|
*
|
|
6
6
|
* Register Map (0x00-0x1F):
|
|
7
7
|
* 0x00: Seconds (BCD, 00-59)
|
|
@@ -71,12 +71,10 @@ export class RTC implements IO {
|
|
|
71
71
|
private ramData: Uint8Array = new Uint8Array(256) // 256 bytes of extended RAM
|
|
72
72
|
|
|
73
73
|
// Time tracking for incrementing
|
|
74
|
-
private
|
|
75
|
-
private cpuFrequency: number =
|
|
76
|
-
private transferCycleCounter: number = 0
|
|
74
|
+
private cycleAccumulator: number = 0 // Accumulated CPU cycles toward next second
|
|
75
|
+
private cpuFrequency: number = 1000000 // Stored for watchdog calculations
|
|
77
76
|
private pendingUserToInternal: boolean = false
|
|
78
77
|
private userSyncNeeded: boolean = false
|
|
79
|
-
private lastTEEnabled: boolean = false
|
|
80
78
|
|
|
81
79
|
constructor() {
|
|
82
80
|
this.initializeWithCurrentTime()
|
|
@@ -95,12 +93,11 @@ export class RTC implements IO {
|
|
|
95
93
|
this.internalMonth = this.decimalToBCD(now.getMonth() + 1)
|
|
96
94
|
this.internalYear = this.decimalToBCD(now.getFullYear() % 100)
|
|
97
95
|
this.internalCentury = this.decimalToBCD(Math.floor(now.getFullYear() / 100))
|
|
98
|
-
this.monthControl =
|
|
96
|
+
this.monthControl = 0x00 // EOSC=0: oscillator enabled (DS1511Y+ default)
|
|
99
97
|
this.copyInternalToUser()
|
|
100
98
|
this.pendingUserToInternal = false
|
|
101
99
|
this.userSyncNeeded = false
|
|
102
|
-
this.
|
|
103
|
-
this.lastTEEnabled = (this.controlB & 0x80) !== 0
|
|
100
|
+
this.cycleAccumulator = 0
|
|
104
101
|
}
|
|
105
102
|
|
|
106
103
|
/**
|
|
@@ -167,13 +164,8 @@ export class RTC implements IO {
|
|
|
167
164
|
}
|
|
168
165
|
|
|
169
166
|
private markUserTimeWrite(): void {
|
|
167
|
+
// Actual copy into internal registers happens on the TE falling edge (1→0)
|
|
170
168
|
this.pendingUserToInternal = true
|
|
171
|
-
if ((this.controlB & 0x80) !== 0 &&
|
|
172
|
-
this.transferCycleCounter >= this.getTransferCyclesRequired()) {
|
|
173
|
-
this.copyUserToInternal()
|
|
174
|
-
this.pendingUserToInternal = false
|
|
175
|
-
this.userSyncNeeded = false
|
|
176
|
-
}
|
|
177
169
|
}
|
|
178
170
|
|
|
179
171
|
/**
|
|
@@ -320,7 +312,8 @@ export class RTC implements IO {
|
|
|
320
312
|
address &= 0x1F
|
|
321
313
|
|
|
322
314
|
switch (address) {
|
|
323
|
-
case 0x00:
|
|
315
|
+
case 0x00:
|
|
316
|
+
return this.userSeconds
|
|
324
317
|
case 0x01: return this.userMinutes
|
|
325
318
|
case 0x02: return this.userHours
|
|
326
319
|
case 0x03: return this.userDayOfWeek & 0x07
|
|
@@ -416,13 +409,28 @@ export class RTC implements IO {
|
|
|
416
409
|
// Writing 1 to flag bits (0-3) clears them; control bits (4-7) are written normally
|
|
417
410
|
this.controlA = (data & 0xF0) | ((this.controlA & 0x0F) & ~(data & 0x0F))
|
|
418
411
|
break
|
|
419
|
-
case 0x0F:
|
|
412
|
+
case 0x0F: {
|
|
413
|
+
const previousTE = (this.controlB & 0x80) !== 0
|
|
420
414
|
this.controlB = data
|
|
415
|
+
const currentTE = (this.controlB & 0x80) !== 0
|
|
416
|
+
// TE falling edge (1→0): commit buffered user writes into internal counters
|
|
417
|
+
if (previousTE && !currentTE) {
|
|
418
|
+
if (this.pendingUserToInternal) {
|
|
419
|
+
this.copyUserToInternal()
|
|
420
|
+
this.pendingUserToInternal = false
|
|
421
|
+
}
|
|
422
|
+
// Mirror the committed time back so CPU reads it immediately
|
|
423
|
+
this.copyInternalToUser()
|
|
424
|
+
this.userSyncNeeded = false
|
|
425
|
+
// Reset cycle accumulator so the next second is measured from now
|
|
426
|
+
this.cycleAccumulator = 0
|
|
427
|
+
}
|
|
421
428
|
this.raiseInterruptIfEnabled(0x04, 0x04)
|
|
422
429
|
if ((this.controlB & 0x02) !== 0) {
|
|
423
430
|
this.reloadWatchdog()
|
|
424
431
|
}
|
|
425
432
|
break
|
|
433
|
+
}
|
|
426
434
|
case 0x10:
|
|
427
435
|
this.ramAddress = data // Set RAM address pointer
|
|
428
436
|
break
|
|
@@ -439,53 +447,36 @@ export class RTC implements IO {
|
|
|
439
447
|
}
|
|
440
448
|
}
|
|
441
449
|
|
|
442
|
-
tick(frequency: number): void {
|
|
443
|
-
// Advance RTC based on CPU frequency
|
|
444
|
-
// Store the frequency for use in time calculations
|
|
445
|
-
this.cpuFrequency = frequency > 0 ? frequency : 2000000
|
|
446
|
-
|
|
447
|
-
const teEnabled = (this.controlB & 0x80) !== 0
|
|
448
|
-
if (teEnabled !== this.lastTEEnabled) {
|
|
449
|
-
this.lastTEEnabled = teEnabled
|
|
450
|
-
this.transferCycleCounter = 0
|
|
451
|
-
}
|
|
452
450
|
|
|
453
|
-
if (teEnabled) {
|
|
454
|
-
this.transferCycleCounter++
|
|
455
|
-
} else {
|
|
456
|
-
this.transferCycleCounter = 0
|
|
457
|
-
}
|
|
458
451
|
|
|
459
|
-
|
|
460
|
-
|
|
452
|
+
tick(frequency: number, cycles: number = 1): void {
|
|
453
|
+
this.cpuFrequency = frequency > 0 ? frequency : 1000000
|
|
461
454
|
|
|
462
|
-
|
|
463
|
-
this.copyUserToInternal()
|
|
464
|
-
this.pendingUserToInternal = false
|
|
465
|
-
this.userSyncNeeded = false
|
|
466
|
-
}
|
|
455
|
+
const teEnabled = (this.controlB & 0x80) !== 0
|
|
467
456
|
|
|
468
|
-
if ((this.monthControl & 0x80)
|
|
469
|
-
//
|
|
457
|
+
if ((this.monthControl & 0x80) !== 0) {
|
|
458
|
+
// EOSC=1: oscillator disabled (DS1511Y+ active-low enable)
|
|
470
459
|
this.stepWatchdog()
|
|
471
460
|
return
|
|
472
461
|
}
|
|
473
462
|
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
this.
|
|
463
|
+
// Advance the clock by counting CPU cycles.
|
|
464
|
+
// One emulated second = cpuFrequency cycles.
|
|
465
|
+
this.cycleAccumulator += cycles
|
|
466
|
+
while (this.cycleAccumulator >= this.cpuFrequency) {
|
|
467
|
+
this.cycleAccumulator -= this.cpuFrequency
|
|
479
468
|
this.incrementTime()
|
|
480
469
|
this.checkAlarm()
|
|
481
470
|
|
|
482
|
-
if (
|
|
471
|
+
if (!teEnabled) {
|
|
483
472
|
this.copyInternalToUser()
|
|
484
473
|
this.userSyncNeeded = false
|
|
485
474
|
} else {
|
|
486
475
|
this.userSyncNeeded = true
|
|
487
476
|
}
|
|
488
|
-
}
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
if (!teEnabled && this.userSyncNeeded) {
|
|
489
480
|
this.copyInternalToUser()
|
|
490
481
|
this.userSyncNeeded = false
|
|
491
482
|
}
|
|
@@ -497,20 +488,16 @@ export class RTC implements IO {
|
|
|
497
488
|
if (coldStart) {
|
|
498
489
|
// Cold start: Initialize with current time
|
|
499
490
|
this.initializeWithCurrentTime()
|
|
500
|
-
this.cycleCounter = 0
|
|
501
491
|
this.watchdogCounterCentis = 0
|
|
502
492
|
this.watchdogCycleCounter = 0
|
|
503
|
-
this.transferCycleCounter = 0
|
|
504
493
|
this.pendingUserToInternal = false
|
|
505
494
|
this.userSyncNeeded = false
|
|
506
495
|
this.setKickstartFlag()
|
|
507
496
|
} else {
|
|
508
497
|
// Warm start: Keep time, reset some control flags but preserve settings
|
|
509
498
|
this.controlA &= 0xF0 // Clear interrupt flags
|
|
510
|
-
this.cycleCounter = 0
|
|
511
499
|
this.watchdogCounterCentis = 0
|
|
512
500
|
this.watchdogCycleCounter = 0
|
|
513
|
-
this.transferCycleCounter = 0
|
|
514
501
|
this.pendingUserToInternal = false
|
|
515
502
|
this.userSyncNeeded = false
|
|
516
503
|
}
|
|
@@ -450,10 +450,13 @@ export class Storage implements IO {
|
|
|
450
450
|
uint8Data = new Uint8Array(data)
|
|
451
451
|
}
|
|
452
452
|
|
|
453
|
-
// Ensure the data is exactly the expected size
|
|
453
|
+
// Ensure the data is exactly the expected size, or empty (new file)
|
|
454
454
|
if (uint8Data.length === Storage.STORAGE_SIZE) {
|
|
455
455
|
this.storage.set(uint8Data)
|
|
456
456
|
console.log(`Storage loaded (${Storage.STORAGE_SIZE} bytes)`)
|
|
457
|
+
} else if (uint8Data.length === 0) {
|
|
458
|
+
this.storage.fill(0x00)
|
|
459
|
+
console.log('Storage initialized as new empty image.')
|
|
457
460
|
} else {
|
|
458
461
|
console.warn(`Warning: Storage data size mismatch. Expected ${Storage.STORAGE_SIZE} bytes, got ${uint8Data.length} bytes.`)
|
|
459
462
|
console.warn('Storage will remain empty.')
|
package/src/components/IO/VIA.ts
CHANGED
|
@@ -2,9 +2,9 @@ import { IO } from '../IO'
|
|
|
2
2
|
import { Attachment } from './Attachments/Attachment'
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* VIA - Emulates the
|
|
5
|
+
* VIA - Emulates the 6522 VIA (Versatile Interface Adapter)
|
|
6
6
|
*
|
|
7
|
-
* The
|
|
7
|
+
* The 6522 VIA provides:
|
|
8
8
|
* - Two 8-bit bidirectional I/O ports (Port A and Port B)
|
|
9
9
|
* - Two 16-bit timers with interrupt generation
|
|
10
10
|
* - Shift register for serial I/O
|
|
@@ -566,9 +566,10 @@ export class Video implements IO {
|
|
|
566
566
|
|
|
567
567
|
let spritesShown = 0
|
|
568
568
|
|
|
569
|
-
// Clear status at start of frame
|
|
569
|
+
// Clear sprite-related status bits at start of frame, but preserve
|
|
570
|
+
// the interrupt flag (bit 7) — it is only cleared on CPU status read
|
|
570
571
|
if (y === 0) {
|
|
571
|
-
this.status
|
|
572
|
+
this.status &= STATUS_INT
|
|
572
573
|
}
|
|
573
574
|
|
|
574
575
|
for (let spriteIdx = 0; spriteIdx < MAX_SPRITES; spriteIdx++) {
|
package/src/components/IO.ts
CHANGED
|
@@ -15,7 +15,6 @@ import { JoystickAttachment } from './IO/Attachments/JoystickAttachment'
|
|
|
15
15
|
import { LCDAttachment } from './IO/Attachments/LCDAttachment'
|
|
16
16
|
import { KeypadAttachment } from './IO/Attachments/KeypadAttachment'
|
|
17
17
|
import { Empty } from './IO/Empty'
|
|
18
|
-
import { Terminal } from './IO/Terminal'
|
|
19
18
|
import { IO } from './IO'
|
|
20
19
|
|
|
21
20
|
export class Machine {
|
|
@@ -53,7 +52,7 @@ export class Machine {
|
|
|
53
52
|
|
|
54
53
|
target: string
|
|
55
54
|
isRunning: boolean = false
|
|
56
|
-
frequency: number =
|
|
55
|
+
frequency: number = 1000000 // 1 MHz
|
|
57
56
|
scale: number = 2
|
|
58
57
|
frames: number = 0
|
|
59
58
|
startTime: number = Date.now()
|
|
@@ -146,23 +145,36 @@ export class Machine {
|
|
|
146
145
|
const rtc = new RTC()
|
|
147
146
|
const storage = new Storage()
|
|
148
147
|
const via = new VIA()
|
|
148
|
+
const sound = new Sound()
|
|
149
|
+
const video = new Video()
|
|
149
150
|
|
|
150
151
|
this.io1 = new RAMBank()
|
|
151
152
|
this.io2 = new RAMBank()
|
|
152
153
|
this.io3 = rtc
|
|
153
154
|
this.io4 = storage
|
|
154
155
|
this.io6 = via
|
|
155
|
-
this.io7 =
|
|
156
|
-
this.io8 =
|
|
156
|
+
this.io7 = sound
|
|
157
|
+
this.io8 = video
|
|
157
158
|
|
|
158
159
|
// Connect RTC IRQ/NMI to CPU
|
|
159
160
|
rtc.raiseIRQ = () => this.cpu.irq()
|
|
160
161
|
rtc.raiseNMI = () => this.cpu.nmi()
|
|
161
162
|
|
|
162
|
-
// Connect
|
|
163
|
+
// Connect Video IRQ/NMI to CPU
|
|
164
|
+
video.raiseIRQ = () => this.cpu.irq()
|
|
165
|
+
video.raiseNMI = () => this.cpu.nmi()
|
|
166
|
+
|
|
167
|
+
// Connect GPIO VIA IRQ/NMI to CPU
|
|
163
168
|
via.raiseIRQ = () => this.cpu.irq()
|
|
164
169
|
via.raiseNMI = () => this.cpu.nmi()
|
|
165
170
|
|
|
171
|
+
// Connect Sound pushSamples callback
|
|
172
|
+
sound.pushSamples = (samples: Float32Array) => {
|
|
173
|
+
if (this.play) {
|
|
174
|
+
this.play(samples)
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
166
178
|
// Create standard GPIO attachments
|
|
167
179
|
this.keyboardMatrixAttachment = new KeyboardMatrixAttachment(10)
|
|
168
180
|
this.keyboardEncoderAttachment = new KeyboardEncoderAttachment(20)
|
|
@@ -349,11 +361,11 @@ export class Machine {
|
|
|
349
361
|
this.ioCycleAccumulator++
|
|
350
362
|
if (this.ioCycleAccumulator >= this.ioTickInterval) {
|
|
351
363
|
// Skip ticking RAMBank IO1 and IO2 since they have no timing behavior
|
|
352
|
-
this.io3.tick(this.frequency)
|
|
353
|
-
this.io4.tick(this.frequency)
|
|
354
|
-
this.io6.tick(this.frequency)
|
|
355
|
-
this.io7.tick(this.frequency)
|
|
356
|
-
this.io8.tick(this.frequency)
|
|
364
|
+
this.io3.tick(this.frequency, this.ioTickInterval)
|
|
365
|
+
this.io4.tick(this.frequency, this.ioTickInterval)
|
|
366
|
+
this.io6.tick(this.frequency, this.ioTickInterval)
|
|
367
|
+
this.io7.tick(this.frequency, this.ioTickInterval)
|
|
368
|
+
this.io8.tick(this.frequency, this.ioTickInterval)
|
|
357
369
|
this.ioCycleAccumulator = 0
|
|
358
370
|
}
|
|
359
371
|
}
|
|
@@ -383,11 +395,11 @@ export class Machine {
|
|
|
383
395
|
this.ioCycleAccumulator++
|
|
384
396
|
if (this.ioCycleAccumulator >= this.ioTickInterval) {
|
|
385
397
|
// Skip ticking RAMBank IO1 and IO2 since they have no timing behavior
|
|
386
|
-
this.io3.tick(this.frequency)
|
|
387
|
-
this.io4.tick(this.frequency)
|
|
388
|
-
this.io6.tick(this.frequency)
|
|
389
|
-
this.io7.tick(this.frequency)
|
|
390
|
-
this.io8.tick(this.frequency)
|
|
398
|
+
this.io3.tick(this.frequency, this.ioTickInterval)
|
|
399
|
+
this.io4.tick(this.frequency, this.ioTickInterval)
|
|
400
|
+
this.io6.tick(this.frequency, this.ioTickInterval)
|
|
401
|
+
this.io7.tick(this.frequency, this.ioTickInterval)
|
|
402
|
+
this.io8.tick(this.frequency, this.ioTickInterval)
|
|
391
403
|
this.ioCycleAccumulator = 0
|
|
392
404
|
}
|
|
393
405
|
}
|
|
@@ -450,11 +462,11 @@ export class Machine {
|
|
|
450
462
|
this.ioCycleAccumulator++
|
|
451
463
|
if (this.ioCycleAccumulator >= this.ioTickInterval) {
|
|
452
464
|
// Skip ticking RAMBank IO1 and IO2 since they have no timing behavior
|
|
453
|
-
this.io3.tick(this.frequency)
|
|
454
|
-
this.io4.tick(this.frequency)
|
|
455
|
-
this.io6.tick(this.frequency)
|
|
456
|
-
this.io7.tick(this.frequency)
|
|
457
|
-
this.io8.tick(this.frequency)
|
|
465
|
+
this.io3.tick(this.frequency, this.ioTickInterval)
|
|
466
|
+
this.io4.tick(this.frequency, this.ioTickInterval)
|
|
467
|
+
this.io6.tick(this.frequency, this.ioTickInterval)
|
|
468
|
+
this.io7.tick(this.frequency, this.ioTickInterval)
|
|
469
|
+
this.io8.tick(this.frequency, this.ioTickInterval)
|
|
458
470
|
this.ioCycleAccumulator = 0
|
|
459
471
|
}
|
|
460
472
|
}
|
package/src/index.ts
CHANGED
|
@@ -5,14 +5,13 @@ import { Machine } from './components/Machine'
|
|
|
5
5
|
import { Command, Option } from 'commander'
|
|
6
6
|
import { SerialPort } from 'serialport'
|
|
7
7
|
import { Video } from './components/IO/Video'
|
|
8
|
-
import { Terminal } from './components/IO/Terminal'
|
|
9
8
|
import { Storage } from './components/IO/Storage'
|
|
10
9
|
import { Sound } from './components/IO/Sound'
|
|
11
10
|
import sdl from '@kmamal/sdl'
|
|
12
11
|
import { readFile, writeFile } from 'fs/promises'
|
|
13
12
|
import { existsSync } from 'fs'
|
|
14
13
|
|
|
15
|
-
const VERSION = '1.
|
|
14
|
+
const VERSION = '1.9.0'
|
|
16
15
|
const WIDTH = 320
|
|
17
16
|
const HEIGHT = 240
|
|
18
17
|
|
|
@@ -118,8 +117,10 @@ class Emulator {
|
|
|
118
117
|
;(this.machine.io4 as Storage).loadData(new Uint8Array(storageData))
|
|
119
118
|
} else {
|
|
120
119
|
console.log(`Storage file not found: ${this.options.storage}`)
|
|
121
|
-
console.log('
|
|
122
|
-
|
|
120
|
+
console.log('Initializing new storage file...')
|
|
121
|
+
const emptyStorage = (this.machine.io4 as Storage).getData()
|
|
122
|
+
await writeFile(this.options.storage, emptyStorage)
|
|
123
|
+
console.log(`Storage file created: ${this.options.storage}`)
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
}
|
|
@@ -362,40 +363,10 @@ class Emulator {
|
|
|
362
363
|
this.window.render(WIDTH, HEIGHT, WIDTH * 4, 'rgba32', Video.buffer)
|
|
363
364
|
}
|
|
364
365
|
} else if (this.options.target === 'dev') {
|
|
365
|
-
const
|
|
366
|
-
const rgbaBuffer = Buffer.alloc(WIDTH * HEIGHT * 4)
|
|
366
|
+
const video = this.machine.io8 as Video
|
|
367
367
|
this.machine.render = () => {
|
|
368
368
|
if (!this.window) { return }
|
|
369
|
-
|
|
370
|
-
for (let i = 0; i < WIDTH * HEIGHT; i++) {
|
|
371
|
-
const v = src[i]
|
|
372
|
-
const off = i * 4
|
|
373
|
-
const r3 = (v >> 5) & 0x07
|
|
374
|
-
const g3 = (v >> 2) & 0x07
|
|
375
|
-
const b2 = v & 0x03
|
|
376
|
-
rgbaBuffer[off] = (r3 << 5) | (r3 << 2) | (r3 >> 1)
|
|
377
|
-
rgbaBuffer[off + 1] = (g3 << 5) | (g3 << 2) | (g3 >> 1)
|
|
378
|
-
rgbaBuffer[off + 2] = (b2 << 6) | (b2 << 4) | (b2 << 2) | b2
|
|
379
|
-
rgbaBuffer[off + 3] = 0xFF
|
|
380
|
-
}
|
|
381
|
-
this.window.render(WIDTH, HEIGHT, WIDTH * 4, 'rgba32', rgbaBuffer)
|
|
382
|
-
|
|
383
|
-
// Synthesize and play any queued VTAC bell tones
|
|
384
|
-
if (this.machine.play && this.audioDevice) {
|
|
385
|
-
const sampleRate = this.audioDevice.frequency
|
|
386
|
-
while (devBoard.vtac.hasQueuedBells()) {
|
|
387
|
-
const bell = devBoard.vtac.getNextBell()
|
|
388
|
-
if (bell) {
|
|
389
|
-
const numSamples = Math.floor((bell.duration / 60) * sampleRate)
|
|
390
|
-
const samples = new Float32Array(numSamples)
|
|
391
|
-
const twoPiF = 2 * Math.PI * bell.frequency
|
|
392
|
-
for (let i = 0; i < numSamples; i++) {
|
|
393
|
-
samples[i] = Math.sin(twoPiF * i / sampleRate)
|
|
394
|
-
}
|
|
395
|
-
this.machine.play(samples)
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
}
|
|
369
|
+
this.window.render(WIDTH, HEIGHT, WIDTH * 4, 'rgba32', video.buffer)
|
|
399
370
|
}
|
|
400
371
|
}
|
|
401
372
|
|
|
@@ -548,6 +519,9 @@ class Emulator {
|
|
|
548
519
|
}
|
|
549
520
|
|
|
550
521
|
private shutdown(): void {
|
|
522
|
+
// Stop the machine loop to prevent further rendering after window close
|
|
523
|
+
this.machine.stop()
|
|
524
|
+
|
|
551
525
|
// Close all connected controllers
|
|
552
526
|
for (const [id, controller] of this.controllers.entries()) {
|
|
553
527
|
if (!controller.closed) {
|
package/src/lib.ts
CHANGED
|
@@ -15,7 +15,6 @@ export { ACIA } from './components/IO/ACIA'
|
|
|
15
15
|
export { SIDVoice, Sound } from './components/IO/Sound'
|
|
16
16
|
export { Storage } from './components/IO/Storage'
|
|
17
17
|
export { Video } from './components/IO/Video'
|
|
18
|
-
export { Terminal } from './components/IO/Terminal'
|
|
19
18
|
|
|
20
19
|
// GPIO attachments
|
|
21
20
|
export type { Attachment } from './components/IO/Attachments/Attachment'
|
|
@@ -141,7 +141,7 @@ describe('ACIA (6551 ACIA)', () => {
|
|
|
141
141
|
const mockIRQ = jest.fn()
|
|
142
142
|
serialCard.raiseIRQ = mockIRQ
|
|
143
143
|
|
|
144
|
-
serialCard.write(0x02, 0x02) // RIIE=1: receive IRQ disabled (
|
|
144
|
+
serialCard.write(0x02, 0x02) // RIIE=1: receive IRQ disabled (R6551: bit1=1 disables)
|
|
145
145
|
serialCard.onData(0x42)
|
|
146
146
|
|
|
147
147
|
expect(mockIRQ).not.toHaveBeenCalled()
|
package/src/tests/IO/RTC.test.ts
CHANGED
|
@@ -2,11 +2,6 @@ import { RTC } from '../../components/IO/RTC'
|
|
|
2
2
|
|
|
3
3
|
const bcdToDecimal = (bcd: number): number => (((bcd >> 4) & 0x0f) * 10) + (bcd & 0x0f)
|
|
4
4
|
|
|
5
|
-
const enableTransfers = (rtc: RTC): void => {
|
|
6
|
-
rtc.write(0x0f, 0x80)
|
|
7
|
-
rtc.tick(1)
|
|
8
|
-
}
|
|
9
|
-
|
|
10
5
|
const setTime = (rtc: RTC, values: {
|
|
11
6
|
seconds: number
|
|
12
7
|
minutes: number
|
|
@@ -17,15 +12,16 @@ const setTime = (rtc: RTC, values: {
|
|
|
17
12
|
year: number
|
|
18
13
|
century: number
|
|
19
14
|
}): void => {
|
|
20
|
-
|
|
15
|
+
rtc.write(0x0f, 0x80) // Set TE to inhibit transfers
|
|
21
16
|
rtc.write(0x00, values.seconds)
|
|
22
17
|
rtc.write(0x01, values.minutes)
|
|
23
18
|
rtc.write(0x02, values.hours)
|
|
24
19
|
rtc.write(0x03, values.dayOfWeek)
|
|
25
20
|
rtc.write(0x04, values.date)
|
|
26
|
-
rtc.write(0x05, values.month
|
|
21
|
+
rtc.write(0x05, values.month) // EOSC=0: oscillator enabled (DS1511Y+ default)
|
|
27
22
|
rtc.write(0x06, values.year)
|
|
28
23
|
rtc.write(0x07, values.century)
|
|
24
|
+
rtc.write(0x0f, 0x00) // Clear TE: falling edge commits user to internal
|
|
29
25
|
}
|
|
30
26
|
|
|
31
27
|
describe('RTC', () => {
|
|
@@ -64,7 +60,7 @@ describe('RTC', () => {
|
|
|
64
60
|
expect(bcdToDecimal(century)).toBeGreaterThanOrEqual(0)
|
|
65
61
|
expect(bcdToDecimal(century)).toBeLessThanOrEqual(39)
|
|
66
62
|
|
|
67
|
-
expect(month & 0x80).toBe(
|
|
63
|
+
expect(month & 0x80).toBe(0x00)
|
|
68
64
|
})
|
|
69
65
|
})
|
|
70
66
|
|
|
@@ -150,7 +146,7 @@ describe('RTC', () => {
|
|
|
150
146
|
century: 0x20
|
|
151
147
|
})
|
|
152
148
|
|
|
153
|
-
rtc.write(0x05,
|
|
149
|
+
rtc.write(0x05, 0x81) // EOSC=1: oscillator disabled
|
|
154
150
|
rtc.tick(1)
|
|
155
151
|
|
|
156
152
|
expect(rtc.read(0x00)).toBe(0x10)
|